@cyanheads/ris-austria-mcp-server 0.1.5

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 (154) hide show
  1. package/AGENTS.md +401 -0
  2. package/CLAUDE.md +401 -0
  3. package/Dockerfile +125 -0
  4. package/LICENSE +201 -0
  5. package/README.md +309 -0
  6. package/changelog/0.1.x/0.1.0.md +25 -0
  7. package/changelog/0.1.x/0.1.1.md +24 -0
  8. package/changelog/0.1.x/0.1.2.md +16 -0
  9. package/changelog/0.1.x/0.1.3.md +11 -0
  10. package/changelog/0.1.x/0.1.4.md +11 -0
  11. package/changelog/0.1.x/0.1.5.md +18 -0
  12. package/changelog/template.md +129 -0
  13. package/dist/config/server-config.d.ts +19 -0
  14. package/dist/config/server-config.d.ts.map +1 -0
  15. package/dist/config/server-config.js +35 -0
  16. package/dist/config/server-config.js.map +1 -0
  17. package/dist/index.d.ts +7 -0
  18. package/dist/index.d.ts.map +1 -0
  19. package/dist/index.js +37 -0
  20. package/dist/index.js.map +1 -0
  21. package/dist/mcp-server/resources/definitions/ris-document.resource.d.ts +30 -0
  22. package/dist/mcp-server/resources/definitions/ris-document.resource.d.ts.map +1 -0
  23. package/dist/mcp-server/resources/definitions/ris-document.resource.js +75 -0
  24. package/dist/mcp-server/resources/definitions/ris-document.resource.js.map +1 -0
  25. package/dist/mcp-server/tools/definitions/_shared.d.ts +8 -0
  26. package/dist/mcp-server/tools/definitions/_shared.d.ts.map +1 -0
  27. package/dist/mcp-server/tools/definitions/_shared.js +10 -0
  28. package/dist/mcp-server/tools/definitions/_shared.js.map +1 -0
  29. package/dist/mcp-server/tools/definitions/ris-get-document.tool.d.ts +189 -0
  30. package/dist/mcp-server/tools/definitions/ris-get-document.tool.d.ts.map +1 -0
  31. package/dist/mcp-server/tools/definitions/ris-get-document.tool.js +504 -0
  32. package/dist/mcp-server/tools/definitions/ris-get-document.tool.js.map +1 -0
  33. package/dist/mcp-server/tools/definitions/ris-list-reference.tool.d.ts +42 -0
  34. package/dist/mcp-server/tools/definitions/ris-list-reference.tool.d.ts.map +1 -0
  35. package/dist/mcp-server/tools/definitions/ris-list-reference.tool.js +316 -0
  36. package/dist/mcp-server/tools/definitions/ris-list-reference.tool.js.map +1 -0
  37. package/dist/mcp-server/tools/definitions/ris-lookup-citation.tool.d.ts +80 -0
  38. package/dist/mcp-server/tools/definitions/ris-lookup-citation.tool.d.ts.map +1 -0
  39. package/dist/mcp-server/tools/definitions/ris-lookup-citation.tool.js +529 -0
  40. package/dist/mcp-server/tools/definitions/ris-lookup-citation.tool.js.map +1 -0
  41. package/dist/mcp-server/tools/definitions/ris-search-announcements.tool.d.ts +118 -0
  42. package/dist/mcp-server/tools/definitions/ris-search-announcements.tool.d.ts.map +1 -0
  43. package/dist/mcp-server/tools/definitions/ris-search-announcements.tool.js +389 -0
  44. package/dist/mcp-server/tools/definitions/ris-search-announcements.tool.js.map +1 -0
  45. package/dist/mcp-server/tools/definitions/ris-search-case-law.tool.d.ts +178 -0
  46. package/dist/mcp-server/tools/definitions/ris-search-case-law.tool.d.ts.map +1 -0
  47. package/dist/mcp-server/tools/definitions/ris-search-case-law.tool.js +495 -0
  48. package/dist/mcp-server/tools/definitions/ris-search-case-law.tool.js.map +1 -0
  49. package/dist/mcp-server/tools/definitions/ris-search-drafts.tool.d.ts +80 -0
  50. package/dist/mcp-server/tools/definitions/ris-search-drafts.tool.d.ts.map +1 -0
  51. package/dist/mcp-server/tools/definitions/ris-search-drafts.tool.js +264 -0
  52. package/dist/mcp-server/tools/definitions/ris-search-drafts.tool.js.map +1 -0
  53. package/dist/mcp-server/tools/definitions/ris-search-gazette.tool.d.ts +147 -0
  54. package/dist/mcp-server/tools/definitions/ris-search-gazette.tool.d.ts.map +1 -0
  55. package/dist/mcp-server/tools/definitions/ris-search-gazette.tool.js +509 -0
  56. package/dist/mcp-server/tools/definitions/ris-search-gazette.tool.js.map +1 -0
  57. package/dist/mcp-server/tools/definitions/ris-search-legislation.tool.d.ts +145 -0
  58. package/dist/mcp-server/tools/definitions/ris-search-legislation.tool.d.ts.map +1 -0
  59. package/dist/mcp-server/tools/definitions/ris-search-legislation.tool.js +466 -0
  60. package/dist/mcp-server/tools/definitions/ris-search-legislation.tool.js.map +1 -0
  61. package/dist/mcp-server/tools/definitions/ris-track-changes.tool.d.ts +73 -0
  62. package/dist/mcp-server/tools/definitions/ris-track-changes.tool.d.ts.map +1 -0
  63. package/dist/mcp-server/tools/definitions/ris-track-changes.tool.js +265 -0
  64. package/dist/mcp-server/tools/definitions/ris-track-changes.tool.js.map +1 -0
  65. package/dist/services/ris/normalizer.d.ts +40 -0
  66. package/dist/services/ris/normalizer.d.ts.map +1 -0
  67. package/dist/services/ris/normalizer.js +480 -0
  68. package/dist/services/ris/normalizer.js.map +1 -0
  69. package/dist/services/ris/reference/applications.d.ts +529 -0
  70. package/dist/services/ris/reference/applications.d.ts.map +1 -0
  71. package/dist/services/ris/reference/applications.js +520 -0
  72. package/dist/services/ris/reference/applications.js.map +1 -0
  73. package/dist/services/ris/reference/changed-since-intervals.d.ts +42 -0
  74. package/dist/services/ris/reference/changed-since-intervals.d.ts.map +1 -0
  75. package/dist/services/ris/reference/changed-since-intervals.js +16 -0
  76. package/dist/services/ris/reference/changed-since-intervals.js.map +1 -0
  77. package/dist/services/ris/reference/citation-formats.d.ts +39 -0
  78. package/dist/services/ris/reference/citation-formats.d.ts.map +1 -0
  79. package/dist/services/ris/reference/citation-formats.js +39 -0
  80. package/dist/services/ris/reference/citation-formats.js.map +1 -0
  81. package/dist/services/ris/reference/collections.d.ts +82 -0
  82. package/dist/services/ris/reference/collections.d.ts.map +1 -0
  83. package/dist/services/ris/reference/collections.js +102 -0
  84. package/dist/services/ris/reference/collections.js.map +1 -0
  85. package/dist/services/ris/reference/courts.d.ts +201 -0
  86. package/dist/services/ris/reference/courts.d.ts.map +1 -0
  87. package/dist/services/ris/reference/courts.js +198 -0
  88. package/dist/services/ris/reference/courts.js.map +1 -0
  89. package/dist/services/ris/reference/decision-kinds.d.ts +78 -0
  90. package/dist/services/ris/reference/decision-kinds.d.ts.map +1 -0
  91. package/dist/services/ris/reference/decision-kinds.js +117 -0
  92. package/dist/services/ris/reference/decision-kinds.js.map +1 -0
  93. package/dist/services/ris/reference/decision-types.d.ts +36 -0
  94. package/dist/services/ris/reference/decision-types.d.ts.map +1 -0
  95. package/dist/services/ris/reference/decision-types.js +29 -0
  96. package/dist/services/ris/reference/decision-types.js.map +1 -0
  97. package/dist/services/ris/reference/district-authorities.d.ts +314 -0
  98. package/dist/services/ris/reference/district-authorities.d.ts.map +1 -0
  99. package/dist/services/ris/reference/district-authorities.js +212 -0
  100. package/dist/services/ris/reference/district-authorities.js.map +1 -0
  101. package/dist/services/ris/reference/gazette-parts.d.ts +73 -0
  102. package/dist/services/ris/reference/gazette-parts.d.ts.map +1 -0
  103. package/dist/services/ris/reference/gazette-parts.js +58 -0
  104. package/dist/services/ris/reference/gazette-parts.js.map +1 -0
  105. package/dist/services/ris/reference/index.d.ts +23 -0
  106. package/dist/services/ris/reference/index.d.ts.map +1 -0
  107. package/dist/services/ris/reference/index.js +23 -0
  108. package/dist/services/ris/reference/index.js.map +1 -0
  109. package/dist/services/ris/reference/issuing-bodies.d.ts +642 -0
  110. package/dist/services/ris/reference/issuing-bodies.d.ts.map +1 -0
  111. package/dist/services/ris/reference/issuing-bodies.js +616 -0
  112. package/dist/services/ris/reference/issuing-bodies.js.map +1 -0
  113. package/dist/services/ris/reference/justiz-subject-areas.d.ts +133 -0
  114. package/dist/services/ris/reference/justiz-subject-areas.d.ts.map +1 -0
  115. package/dist/services/ris/reference/justiz-subject-areas.js +67 -0
  116. package/dist/services/ris/reference/justiz-subject-areas.js.map +1 -0
  117. package/dist/services/ris/reference/law-types.d.ts +46 -0
  118. package/dist/services/ris/reference/law-types.d.ts.map +1 -0
  119. package/dist/services/ris/reference/law-types.js +41 -0
  120. package/dist/services/ris/reference/law-types.js.map +1 -0
  121. package/dist/services/ris/reference/ministries.d.ts +360 -0
  122. package/dist/services/ris/reference/ministries.d.ts.map +1 -0
  123. package/dist/services/ris/reference/ministries.js +408 -0
  124. package/dist/services/ris/reference/ministries.js.map +1 -0
  125. package/dist/services/ris/reference/search-syntax.d.ts +66 -0
  126. package/dist/services/ris/reference/search-syntax.d.ts.map +1 -0
  127. package/dist/services/ris/reference/search-syntax.js +65 -0
  128. package/dist/services/ris/reference/search-syntax.js.map +1 -0
  129. package/dist/services/ris/reference/section-types.d.ts +33 -0
  130. package/dist/services/ris/reference/section-types.d.ts.map +1 -0
  131. package/dist/services/ris/reference/section-types.js +29 -0
  132. package/dist/services/ris/reference/section-types.js.map +1 -0
  133. package/dist/services/ris/reference/stages.d.ts +41 -0
  134. package/dist/services/ris/reference/stages.d.ts.map +1 -0
  135. package/dist/services/ris/reference/stages.js +27 -0
  136. package/dist/services/ris/reference/stages.js.map +1 -0
  137. package/dist/services/ris/reference/states.d.ts +90 -0
  138. package/dist/services/ris/reference/states.d.ts.map +1 -0
  139. package/dist/services/ris/reference/states.js +85 -0
  140. package/dist/services/ris/reference/states.js.map +1 -0
  141. package/dist/services/ris/request-builder.d.ts +195 -0
  142. package/dist/services/ris/request-builder.d.ts.map +1 -0
  143. package/dist/services/ris/request-builder.js +673 -0
  144. package/dist/services/ris/request-builder.js.map +1 -0
  145. package/dist/services/ris/ris-service.d.ts +65 -0
  146. package/dist/services/ris/ris-service.d.ts.map +1 -0
  147. package/dist/services/ris/ris-service.js +200 -0
  148. package/dist/services/ris/ris-service.js.map +1 -0
  149. package/dist/services/ris/types.d.ts +651 -0
  150. package/dist/services/ris/types.d.ts.map +1 -0
  151. package/dist/services/ris/types.js +11 -0
  152. package/dist/services/ris/types.js.map +1 -0
  153. package/package.json +108 -0
  154. package/server.json +111 -0
@@ -0,0 +1,651 @@
1
+ /**
2
+ * @fileoverview Domain types for the RIS OGD service layer: the raw JSON-serialized-XML
3
+ * envelope RIS returns (`@attr`/`#text` nodes, object-or-array lists, `{ item: … }`
4
+ * wrapped lists) and the normalized shapes the tool handlers consume. Raw types cover
5
+ * exactly the fields the normalizer reads and default to optional — live payloads are
6
+ * sparse and omit fields entirely. Grounded in per-application payloads harvested from
7
+ * the production API 2026-07-05.
8
+ * @module services/ris/types
9
+ */
10
+ import type { RisController } from './reference/index.js';
11
+ /** A value RIS renders as a single node or an array (single-element XML lists collapse). */
12
+ export type OneOrMany<T> = T | T[];
13
+ /** RIS wrapped list node: `{ item: T | T[] }`; empty elements arrive as `''`. */
14
+ export interface RawWrappedList<T> {
15
+ readonly item?: OneOrMany<T>;
16
+ }
17
+ /** Top-level response shape of every RIS OGD endpoint. */
18
+ export interface RawOgdResponse {
19
+ readonly OgdSearchResult?: RawOgdSearchResult;
20
+ }
21
+ /** Search-result envelope: either document results or an in-band error. */
22
+ export interface RawOgdSearchResult {
23
+ readonly Error?: RawRisError;
24
+ readonly OgdDocumentResults?: RawDocumentResults;
25
+ readonly Version?: string;
26
+ }
27
+ /**
28
+ * In-band error node. The handbook documents `@type` (`"Client"` | `"Server"`), but live
29
+ * responses omit the attribute and prefix `Message` with `soap:Client.` / `soap:Server.`
30
+ * instead (observed 2026-07-05) — classification must check both.
31
+ */
32
+ export interface RawRisError {
33
+ readonly '@type'?: string;
34
+ readonly Applikation?: string;
35
+ readonly Message?: string;
36
+ }
37
+ /** Paged document results. `OgdDocumentReference` is absent when `Hits` is zero. */
38
+ export interface RawDocumentResults {
39
+ readonly Hits?: RawHits;
40
+ readonly OgdDocumentReference?: OneOrMany<RawDocumentReference>;
41
+ }
42
+ /** Hit counter: attributes + text node, all serialized as strings. */
43
+ export interface RawHits {
44
+ readonly '@pageNumber'?: string;
45
+ readonly '@pageSize'?: string;
46
+ readonly '#text'?: string;
47
+ }
48
+ /**
49
+ * One search hit. Regular hits carry `Data`; History responses with
50
+ * `IncludeDeletedDocuments=True` interleave deletion records that carry `Deleted`
51
+ * instead (observed live 2026-07-05) — never both.
52
+ */
53
+ export interface RawDocumentReference {
54
+ readonly Data?: RawDocumentData;
55
+ readonly Deleted?: RawDeletedNode;
56
+ }
57
+ /** Deletion record from the History feed. `Applikation` uses the History name. */
58
+ export interface RawDeletedNode {
59
+ readonly Applikation?: string;
60
+ readonly ID?: string;
61
+ readonly ImportTimestamp?: string;
62
+ readonly Organ?: string;
63
+ }
64
+ /** Hit payload: metadata plus the content-URL list (BgblAlt renders it as `''`). */
65
+ export interface RawDocumentData {
66
+ readonly Dokumentliste?: RawDokumentliste | '';
67
+ readonly Metadaten?: RawMetadaten;
68
+ }
69
+ /** Content-reference list wrapper. */
70
+ export interface RawDokumentliste {
71
+ readonly ContentReference?: OneOrMany<RawContentReference>;
72
+ }
73
+ /** One content reference (main document, attachment, …). */
74
+ export interface RawContentReference {
75
+ readonly ContentType?: string;
76
+ readonly Name?: string;
77
+ readonly Urls?: {
78
+ readonly ContentUrl?: OneOrMany<RawContentUrl>;
79
+ };
80
+ }
81
+ /** One rendition URL. `DataType` ∈ Xml/Html/Pdf/Rtf/Authentisch/Gif/…. */
82
+ export interface RawContentUrl {
83
+ readonly DataType?: string;
84
+ readonly Url?: string;
85
+ }
86
+ /** Shared metadata: technical identity, general dates, one controller-class node. */
87
+ export interface RawMetadaten {
88
+ readonly Allgemein?: RawAllgemein;
89
+ readonly Bezirke?: RawBezirkeMeta;
90
+ readonly Bundesrecht?: RawBundesrechtMeta;
91
+ readonly Gemeinden?: RawGemeindenMeta;
92
+ readonly Judikatur?: RawJudikaturMeta;
93
+ readonly Landesrecht?: RawLandesrechtMeta;
94
+ readonly Sonstige?: RawSonstigeMeta;
95
+ readonly Technisch?: RawTechnisch;
96
+ }
97
+ /** Technical identity node. */
98
+ export interface RawTechnisch {
99
+ readonly Applikation?: string;
100
+ readonly Einbringer?: string;
101
+ readonly ID?: string;
102
+ readonly Organ?: string;
103
+ }
104
+ /** General dates and the RIS web-view URL. */
105
+ export interface RawAllgemein {
106
+ readonly DokumentUrl?: string;
107
+ readonly Geaendert?: string;
108
+ readonly Veroeffentlicht?: string;
109
+ }
110
+ /** Consolidated-law fields shared by the BrKons and LrKons application nodes. */
111
+ export interface RawKonsNode {
112
+ readonly Aenderung?: string;
113
+ readonly ArtikelParagraphAnlage?: string;
114
+ readonly Ausserkrafttretensdatum?: string;
115
+ readonly Eli?: string;
116
+ readonly GesamteRechtsvorschriftUrl?: string;
117
+ readonly Gesetzesnummer?: string;
118
+ readonly Indizes?: RawWrappedList<string>;
119
+ readonly Inkrafttretensdatum?: string;
120
+ readonly Kundmachungsorgan?: string;
121
+ readonly Schlagworte?: string;
122
+ readonly Typ?: string;
123
+ }
124
+ /** `Metadaten.Bundesrecht` — class fields plus one per-application node. */
125
+ export interface RawBundesrechtMeta {
126
+ readonly Begut?: {
127
+ readonly Abkuerzung?: string;
128
+ readonly BeginnBegutachtungsfrist?: string;
129
+ readonly EinbringendeStelle?: string;
130
+ readonly EndeBegutachtungsfrist?: string;
131
+ readonly Schlagworte?: string;
132
+ };
133
+ readonly BgblAlt?: {
134
+ readonly AlexUrl?: string;
135
+ readonly Anfangsseite?: string;
136
+ readonly Fundstelle?: string;
137
+ readonly Kundmachungsdatum?: string;
138
+ readonly Kundmachungsorgan?: string;
139
+ readonly Stueck?: string;
140
+ readonly Typ?: string;
141
+ };
142
+ readonly BgblAuth?: {
143
+ readonly Ausgabedatum?: string;
144
+ readonly Bgblnummer?: string;
145
+ readonly Teil?: string;
146
+ readonly Typ?: string;
147
+ };
148
+ readonly BgblPdf?: {
149
+ readonly Bgblnummer?: string;
150
+ readonly CelexNummer?: string;
151
+ readonly Fundstelle?: string;
152
+ readonly Jahrgang?: string;
153
+ readonly Kundmachungsdatum?: string;
154
+ readonly Teil?: string;
155
+ readonly Typ?: string;
156
+ };
157
+ readonly BrKons?: RawKonsNode;
158
+ readonly Eli?: string;
159
+ readonly Erv?: {
160
+ readonly Author?: string;
161
+ readonly Source?: string;
162
+ };
163
+ readonly Kurztitel?: string;
164
+ readonly RegV?: {
165
+ readonly Abkuerzung?: string;
166
+ readonly Beschlussdatum?: string;
167
+ readonly EinbringendeStelle?: string;
168
+ readonly Schlagworte?: string;
169
+ };
170
+ readonly Titel?: string;
171
+ }
172
+ /** `Metadaten.Landesrecht` — class fields plus one per-application node. */
173
+ export interface RawLandesrechtMeta {
174
+ readonly Bundesland?: string;
175
+ readonly Kundmachungsdatum?: string;
176
+ readonly Kurztitel?: string;
177
+ readonly Lgbl?: {
178
+ readonly Fundstelle?: string;
179
+ readonly Typ?: string;
180
+ };
181
+ readonly LgblAuth?: {
182
+ readonly CelexNummer?: RawWrappedList<string>;
183
+ readonly EuropeanLegislationIdentifier?: string;
184
+ readonly Lgblnummer?: string;
185
+ readonly Typ?: string;
186
+ };
187
+ readonly LgblNO?: {
188
+ readonly Ausgabedatum?: string;
189
+ readonly Gliederungszahl?: string;
190
+ readonly Indizes?: RawWrappedList<string>;
191
+ readonly StueckNummer?: string;
192
+ readonly Typ?: string;
193
+ };
194
+ readonly LrKons?: RawKonsNode;
195
+ readonly Titel?: string;
196
+ readonly Vbl?: {
197
+ readonly Kundmachungsnummer?: string;
198
+ readonly Kundmachungsorgan?: string;
199
+ readonly Typ?: string;
200
+ };
201
+ }
202
+ /** Judikatur application keys observed as per-court metadata nodes. */
203
+ export type RawJudikaturAppKey = 'AsylGH' | 'Bks' | 'Bvwg' | 'Dok' | 'Dsk' | 'Gbk' | 'Justiz' | 'Lvwg' | 'Normenliste' | 'Pvak' | 'Ubas' | 'Umse' | 'Uvs' | 'Verg' | 'Vfgh' | 'Vwgh';
204
+ /** Per-court node fields the normalizer consumes (union across courts, all sparse). */
205
+ export interface RawJudikaturAppNode {
206
+ readonly Abkuerzung?: string;
207
+ readonly Anfechtung?: string;
208
+ readonly Anmerkung?: string;
209
+ readonly Bundesland?: string;
210
+ readonly Diskriminierungsgrund?: string;
211
+ readonly EntscheidendeBehoerde?: string;
212
+ readonly Entscheidungsart?: string;
213
+ readonly Fundstelle?: string;
214
+ readonly Gericht?: string;
215
+ readonly Indizes?: RawWrappedList<string>;
216
+ readonly Kommission?: string;
217
+ readonly Kurzinformation?: string;
218
+ readonly Leitsatz?: string;
219
+ readonly Rechtsgebiete?: RawWrappedList<string>;
220
+ readonly Sammlungsnummer?: string;
221
+ readonly Senat?: string;
222
+ readonly Titel?: string;
223
+ readonly Typ?: string;
224
+ }
225
+ /** `Metadaten.Judikatur` — class fields plus one per-court node. */
226
+ export interface RawJudikaturMeta extends Partial<Record<RawJudikaturAppKey, RawJudikaturAppNode>> {
227
+ readonly Dokumenttyp?: string;
228
+ readonly Entscheidungsdatum?: string;
229
+ readonly EntscheidungstextUrl?: string;
230
+ readonly EuropeanCaseLawIdentifier?: string;
231
+ readonly GesamteEntscheidungUrl?: string;
232
+ readonly Geschaeftszahl?: RawWrappedList<string>;
233
+ readonly Normen?: RawWrappedList<string>;
234
+ readonly RechtssaetzeUrl?: string;
235
+ readonly Schlagworte?: string;
236
+ }
237
+ /** `Metadaten.Bezirke` — class fields plus the Bvb node. */
238
+ export interface RawBezirkeMeta {
239
+ readonly Bundesland?: string;
240
+ readonly Bvb?: {
241
+ readonly Bezirksverwaltungsbehoerde?: string;
242
+ readonly Kundmachungsdatum?: string;
243
+ readonly Kundmachungsnummer?: string;
244
+ readonly Kundmachungsorgan?: string;
245
+ readonly Schlagworte?: string;
246
+ readonly Typ?: string;
247
+ };
248
+ readonly Kurztitel?: string;
249
+ readonly Titel?: string;
250
+ }
251
+ /** `Metadaten.Gemeinden` — class fields plus the Gr / GrA node. */
252
+ export interface RawGemeindenMeta {
253
+ readonly Anmerkung?: string;
254
+ readonly Bundesland?: string;
255
+ readonly Gemeinde?: string;
256
+ readonly Geschaeftszahl?: RawWrappedList<string>;
257
+ readonly Gr?: {
258
+ readonly Indizes?: RawWrappedList<string>;
259
+ readonly Inkrafttretensdatum?: string;
260
+ };
261
+ readonly GrA?: {
262
+ readonly Abkuerzung?: string;
263
+ readonly Bezirk?: string;
264
+ readonly Kundmachungsdatum?: string;
265
+ readonly KundmachungsorganNr?: string;
266
+ readonly Schlagworte?: string;
267
+ };
268
+ readonly Kurztitel?: string;
269
+ readonly Titel?: string;
270
+ readonly Typ?: string;
271
+ }
272
+ /** `Metadaten.Sonstige` — class fields plus one per-collection node. */
273
+ export interface RawSonstigeMeta {
274
+ readonly Avn?: {
275
+ readonly Anmerkung?: string;
276
+ readonly Ausserkrafttretensdatum?: string;
277
+ readonly Avnnummer?: string;
278
+ readonly Geschaeftszahl?: string;
279
+ readonly Inkrafttretensdatum?: string;
280
+ readonly Kurzinformation?: string;
281
+ readonly Normen?: RawWrappedList<string>;
282
+ readonly Typ?: string;
283
+ };
284
+ readonly Avsv?: {
285
+ readonly Avsvnummer?: string;
286
+ readonly Dokumentart?: string;
287
+ readonly Kurzinformation?: string;
288
+ readonly Urheber?: string;
289
+ };
290
+ readonly Erlaesse?: {
291
+ readonly Abteilung?: string;
292
+ readonly Ausserkrafttretensdatum?: string;
293
+ readonly Bundesministerium?: string;
294
+ readonly Fundstelle?: string;
295
+ readonly Geschaeftszahl?: RawWrappedList<string>;
296
+ readonly Inkrafttretensdatum?: string;
297
+ readonly Kurzinformation?: string;
298
+ readonly Typ?: string;
299
+ };
300
+ readonly KmGer?: {
301
+ readonly Ausserkrafttretensdatum?: string;
302
+ readonly Gericht?: string;
303
+ readonly GZ?: string;
304
+ readonly Inkrafttretensdatum?: string;
305
+ readonly Kurzinformation?: string;
306
+ readonly Typ?: string;
307
+ };
308
+ readonly Kundmachungsdatum?: string;
309
+ readonly Kurztitel?: string;
310
+ readonly Mrp?: {
311
+ readonly Einbringer?: RawWrappedList<string>;
312
+ readonly Gesetzgebungsperiode?: string;
313
+ readonly Sitzungsdatum?: string;
314
+ readonly Sitzungsnummer?: string;
315
+ };
316
+ readonly PruefGewO?: {
317
+ readonly Anmerkung?: string;
318
+ readonly GZ?: string;
319
+ readonly Inkrafttretensdatum?: string;
320
+ readonly Kurzinformation?: string;
321
+ readonly Typ?: string;
322
+ };
323
+ readonly Schlagworte?: string;
324
+ readonly Spg?: {
325
+ readonly Inkrafttretensdatum?: string;
326
+ readonly Kurzinformation?: string;
327
+ readonly Land?: string;
328
+ readonly Spgnummer?: string;
329
+ readonly Typ?: string;
330
+ };
331
+ readonly Titel?: string;
332
+ readonly Upts?: {
333
+ readonly Entscheidungsdatum?: string;
334
+ readonly GZ?: string;
335
+ readonly Norm?: string;
336
+ readonly Partei?: string;
337
+ };
338
+ }
339
+ /** Rendition URLs keyed by DataType; non-core DataTypes (Gif, Docx, …) land in `other`. */
340
+ export interface RisKeyedUrls {
341
+ readonly authentic?: string;
342
+ readonly html?: string;
343
+ readonly other?: readonly {
344
+ readonly dataType: string;
345
+ readonly url: string;
346
+ }[];
347
+ readonly pdf?: string;
348
+ readonly rtf?: string;
349
+ readonly xml?: string;
350
+ }
351
+ /** One normalized content reference (main document, attachment, material, …). */
352
+ export interface RisContentReference {
353
+ readonly name?: string;
354
+ readonly type?: string;
355
+ readonly urls: RisKeyedUrls;
356
+ }
357
+ /** Consolidated-law fields shared by federal (BrKons) and state (LrKons) records. */
358
+ export interface RisConsolidatedFields {
359
+ /** Amendment note (Aenderung), CELEX markers preserved in `celexReferences`. */
360
+ readonly amendment?: string;
361
+ /** Systematik index entries (Indizes). */
362
+ readonly indexes: readonly string[];
363
+ /** Entry-into-force date (Inkrafttretensdatum). */
364
+ readonly inForceFrom?: string;
365
+ /** Repeal date (Ausserkrafttretensdatum). */
366
+ readonly inForceUntil?: string;
367
+ /** Keywords (Schlagworte), HTML remnants stripped. */
368
+ readonly keywords?: string;
369
+ /** Law-level grouping key (Gesetzesnummer). */
370
+ readonly lawId?: string;
371
+ /** RIS web view of the whole law (GesamteRechtsvorschriftUrl). */
372
+ readonly lawUrl?: string;
373
+ /** Norm type code (Typ — BG, V, K, …). */
374
+ readonly normType?: string;
375
+ /** Promulgation reference (Kundmachungsorgan). */
376
+ readonly promulgation?: string;
377
+ /** §/Artikel/Anlage label (ArtikelParagraphAnlage). */
378
+ readonly sectionLabel?: string;
379
+ }
380
+ /** Normalized `Metadaten.Bundesrecht` (BrKons, BgblAuth, BgblPdf, BgblAlt, Begut, RegV, Erv). */
381
+ export interface RisBundesrechtMetadata extends RisConsolidatedFields {
382
+ /** Official abbreviation (Begut/RegV Abkuerzung). */
383
+ readonly abbreviation?: string;
384
+ /** ÖNB scan link for BgblAlt issues (AlexUrl). */
385
+ readonly alexUrl?: string;
386
+ /** Translation author (Erv). */
387
+ readonly author?: string;
388
+ readonly celexReferences: readonly string[];
389
+ readonly controller: 'Bundesrecht';
390
+ /** Council-of-ministers adoption date (RegV Beschlussdatum). */
391
+ readonly decided?: string;
392
+ readonly eli?: string;
393
+ /** Gazette number (Bgblnummer / BgblAlt Fundstelle). */
394
+ readonly gazetteNumber?: string;
395
+ /** Gazette issue number (BgblAlt Stueck). */
396
+ readonly issue?: string;
397
+ /** Submitting ministry (Begut/RegV EinbringendeStelle). */
398
+ readonly ministry?: string;
399
+ /** Gazette part (Teil — 1/2/3). */
400
+ readonly part?: string;
401
+ /** Gazette publication date (Ausgabedatum / Kundmachungsdatum). */
402
+ readonly publishedDate?: string;
403
+ /** Review window end (Begut EndeBegutachtungsfrist). */
404
+ readonly reviewDeadline?: string;
405
+ /** Review window start (Begut BeginnBegutachtungsfrist). */
406
+ readonly reviewStart?: string;
407
+ readonly shortTitle?: string;
408
+ /** Translation source (Erv). */
409
+ readonly source?: string;
410
+ /** BgblAlt first page in the issue (Anfangsseite). */
411
+ readonly startPage?: string;
412
+ readonly title?: string;
413
+ /** Gazette volume year (BgblPdf Jahrgang). */
414
+ readonly year?: string;
415
+ }
416
+ /** Normalized `Metadaten.Landesrecht` (LrKons, LgblAuth, Lgbl, LgblNO, Vbl). */
417
+ export interface RisLandesrechtMetadata extends RisConsolidatedFields {
418
+ readonly celexReferences: readonly string[];
419
+ readonly controller: 'Landesrecht';
420
+ readonly eli?: string;
421
+ /** Gazette number (Lgblnummer / Lgbl Fundstelle / Vbl Kundmachungsnummer). */
422
+ readonly gazetteNumber?: string;
423
+ /** Gazette issue number (LgblNO StueckNummer). */
424
+ readonly issue?: string;
425
+ /** Gazette publication date (Kundmachungsdatum / LgblNO Ausgabedatum). */
426
+ readonly publishedDate?: string;
427
+ readonly shortTitle?: string;
428
+ /** Bundesland the record belongs to. */
429
+ readonly state?: string;
430
+ /** LgblNO systematic classification number (Gliederungszahl). */
431
+ readonly systematicNumber?: string;
432
+ readonly title?: string;
433
+ }
434
+ /** Normalized `Metadaten.Judikatur` (all 16 Judikatur applications). */
435
+ export interface RisJudikaturMetadata {
436
+ /** Abbreviation (Normenliste). */
437
+ readonly abbreviation?: string;
438
+ /** Geschäftszahlen — upstream object-or-array coerced. */
439
+ readonly caseNumbers: readonly string[];
440
+ /** Official collection number (Sammlungsnummer — VfSlg/VwSlg/UVS), where present. */
441
+ readonly collectionNumber?: string;
442
+ readonly controller: 'Judikatur';
443
+ /** Deciding court name (Gericht), where the court node carries it. */
444
+ readonly courtName?: string;
445
+ /** Decision date (Entscheidungsdatum). */
446
+ readonly decisionDate?: string;
447
+ /** Rechtssatz vs Text (Dokumenttyp). */
448
+ readonly decisionDocumentType?: string;
449
+ /** Per-court decision kind (Entscheidungsart), where present. */
450
+ readonly decisionKind?: string;
451
+ /** Full-decision web view (GesamteEntscheidungUrl). */
452
+ readonly decisionUrl?: string;
453
+ /** ECLI (EuropeanCaseLawIdentifier). */
454
+ readonly ecli?: string;
455
+ /** Vfgh guiding principle (Leitsatz). */
456
+ readonly guidingPrinciple?: string;
457
+ /** Headnotes web view (RechtssaetzeUrl). */
458
+ readonly headnotesUrl?: string;
459
+ readonly indexes: readonly string[];
460
+ /** Deciding body (EntscheidendeBehoerde — Dsk/Dok/Pvak/Uvs/…). */
461
+ readonly issuingBody?: string;
462
+ /** Keywords (Schlagworte), HTML remnants stripped. */
463
+ readonly keywords?: string;
464
+ /** Justiz legal areas (Rechtsgebiete). */
465
+ readonly legalAreas: readonly string[];
466
+ /** Challenge/legal-force note (Dsk Anfechtung). */
467
+ readonly legalForceNote?: string;
468
+ /** Cited norms (Normen) — coerced to array. */
469
+ readonly normsCited: readonly string[];
470
+ /** Norm type (Normenliste Typ). */
471
+ readonly normType?: string;
472
+ /** Annotation (Anmerkung), HTML remnants stripped. */
473
+ readonly note?: string;
474
+ /** Norm reference (Normenliste Fundstelle). */
475
+ readonly reference?: string;
476
+ /** Bundesland (Lvwg/Uvs). */
477
+ readonly state?: string;
478
+ /** Short summary (Kurzinformation). */
479
+ readonly summary?: string;
480
+ /** Decision-text web view (EntscheidungstextUrl). */
481
+ readonly textUrl?: string;
482
+ /** Title (Normenliste Titel). */
483
+ readonly title?: string;
484
+ }
485
+ /** Normalized `Metadaten.Bezirke` (Bvb). */
486
+ export interface RisBezirkeMetadata {
487
+ readonly controller: 'Bezirke';
488
+ /** District administrative authority (Bezirksverwaltungsbehoerde). */
489
+ readonly districtAuthority?: string;
490
+ /** Promulgation number (Kundmachungsnummer). */
491
+ readonly gazetteNumber?: string;
492
+ readonly keywords?: string;
493
+ /** Norm type (Typ). */
494
+ readonly normType?: string;
495
+ /** Promulgation organ (Kundmachungsorgan). */
496
+ readonly promulgation?: string;
497
+ /** Promulgation date (Kundmachungsdatum). */
498
+ readonly publishedDate?: string;
499
+ readonly shortTitle?: string;
500
+ readonly state?: string;
501
+ readonly title?: string;
502
+ }
503
+ /** Normalized `Metadaten.Gemeinden` (Gr, GrA). */
504
+ export interface RisGemeindenMetadata {
505
+ /** Abbreviation (GrA Abkuerzung). */
506
+ readonly abbreviation?: string;
507
+ readonly caseNumbers: readonly string[];
508
+ readonly controller: 'Gemeinden';
509
+ /** District (GrA Bezirk). */
510
+ readonly district?: string;
511
+ /** Promulgation number (GrA KundmachungsorganNr). */
512
+ readonly gazetteNumber?: string;
513
+ readonly indexes: readonly string[];
514
+ /** Entry-into-force date (Gr Inkrafttretensdatum). */
515
+ readonly inForceFrom?: string;
516
+ readonly keywords?: string;
517
+ /** Municipality name (Gemeinde). */
518
+ readonly municipality?: string;
519
+ /** Norm type (Typ). */
520
+ readonly normType?: string;
521
+ /** Annotation (Anmerkung), HTML remnants stripped. */
522
+ readonly note?: string;
523
+ /** Promulgation date (GrA Kundmachungsdatum). */
524
+ readonly publishedDate?: string;
525
+ readonly shortTitle?: string;
526
+ readonly state?: string;
527
+ readonly title?: string;
528
+ }
529
+ /** Normalized `Metadaten.Sonstige` (Avsv, Avn, KmGer, PruefGewO, Spg, Erlaesse, Mrp, Upts). */
530
+ export interface RisSonstigeMetadata {
531
+ readonly caseNumbers: readonly string[];
532
+ readonly controller: 'Sonstige';
533
+ /** Court whose rules the document carries (KmGer Gericht). */
534
+ readonly courtName?: string;
535
+ /** Upts decision date (Entscheidungsdatum). */
536
+ readonly decisionDate?: string;
537
+ /** Ministry department (Erlaesse Abteilung). */
538
+ readonly department?: string;
539
+ /** Entry-into-force date (Inkrafttretensdatum). */
540
+ readonly inForceFrom?: string;
541
+ /** Repeal date (Ausserkrafttretensdatum). */
542
+ readonly inForceUntil?: string;
543
+ /** Issuing bodies (Urheber / Bundesministerium / Mrp Einbringer list). */
544
+ readonly issuers: readonly string[];
545
+ readonly keywords?: string;
546
+ /** Mrp legislature period (Gesetzgebungsperiode). */
547
+ readonly legislature?: string;
548
+ /** Cited norms (Avn Normen / Upts Norm). */
549
+ readonly normsCited: readonly string[];
550
+ /** Norm type / document type (Typ). */
551
+ readonly normType?: string;
552
+ /** Annotation (Anmerkung), HTML remnants stripped. */
553
+ readonly note?: string;
554
+ /** Serial number (Avsvnummer / Avnnummer / Spgnummer). */
555
+ readonly number?: string;
556
+ /** Upts party the decision concerns (Partei). */
557
+ readonly party?: string;
558
+ /** Spg regional-plan Bundesland (Land). */
559
+ readonly planState?: string;
560
+ /** Publication date (Kundmachungsdatum). */
561
+ readonly publishedDate?: string;
562
+ /** Mrp session date (Sitzungsdatum). */
563
+ readonly sessionDate?: string;
564
+ /** Mrp session number (Sitzungsnummer). */
565
+ readonly sessionNumber?: string;
566
+ readonly shortTitle?: string;
567
+ /** Short summary (Kurzinformation). */
568
+ readonly summary?: string;
569
+ readonly title?: string;
570
+ }
571
+ /** Controller-class-discriminated normalized metadata. */
572
+ export type RisHitMetadata = RisBezirkeMetadata | RisBundesrechtMetadata | RisGemeindenMetadata | RisJudikaturMetadata | RisLandesrechtMetadata | RisSonstigeMetadata;
573
+ /** One normalized search hit. */
574
+ export interface RisHit {
575
+ /** Exact `Applikation` code the record belongs to (Technisch.Applikation). */
576
+ readonly application?: string;
577
+ /** Last-changed date in RIS (Allgemein.Geaendert). */
578
+ readonly changed?: string;
579
+ /** All content references (main document first as delivered); empty for BgblAlt. */
580
+ readonly contentReferences: readonly RisContentReference[];
581
+ /** Main document's rendition URLs; `{}` when the application publishes none. */
582
+ readonly contentUrls: RisKeyedUrls;
583
+ /** Technical document number (Technisch.ID) — the key for content-URL construction. */
584
+ readonly documentNumber: string;
585
+ /** RIS web view of the document (Allgemein.DokumentUrl). */
586
+ readonly documentUrl?: string;
587
+ /** Normalized controller-class metadata. */
588
+ readonly metadata: RisHitMetadata;
589
+ /** Issuing organ (Technisch.Organ). */
590
+ readonly organ?: string;
591
+ /** First-published date in RIS (Allgemein.Veroeffentlicht). */
592
+ readonly published?: string;
593
+ /** Submitting body (Technisch.Einbringer). */
594
+ readonly submitter?: string;
595
+ }
596
+ /** One normalized search-result page. */
597
+ export interface RisSearchResult {
598
+ readonly hits: readonly RisHit[];
599
+ /** 1-based page number RIS served. */
600
+ readonly page: number;
601
+ /** Page size RIS applied. */
602
+ readonly pageSize: number;
603
+ /** Total matching documents across all pages. */
604
+ readonly total: number;
605
+ }
606
+ /**
607
+ * One entry of a History change feed: a changed document in its standard record shape,
608
+ * or a deletion record (only with `includeDeleted`) carrying identity fields alone.
609
+ */
610
+ export type RisChange = {
611
+ readonly kind: 'deleted';
612
+ readonly record: RisDeletedRecord;
613
+ } | {
614
+ readonly kind: 'document';
615
+ readonly hit: RisHit;
616
+ };
617
+ /** A document removed from RIS, as reported by the History feed. */
618
+ export interface RisDeletedRecord {
619
+ /** Application the document belonged to — History naming (e.g. `Bundesnormen`). */
620
+ readonly application?: string;
621
+ /** Deletion import timestamp. */
622
+ readonly deletedAt?: string;
623
+ /** Technical document number of the removed document. */
624
+ readonly documentNumber: string;
625
+ /** Issuing organ. */
626
+ readonly organ?: string;
627
+ }
628
+ /** One normalized History change-feed page. */
629
+ export interface RisChangeSet {
630
+ readonly changes: readonly RisChange[];
631
+ /** 1-based page number RIS served. */
632
+ readonly page: number;
633
+ /** Page size RIS applied. */
634
+ readonly pageSize: number;
635
+ /** Total entries across all pages. */
636
+ readonly total: number;
637
+ }
638
+ /** Result of a document-content fetch from the RIS content host. */
639
+ export interface RisDocumentContent {
640
+ /** Body size in bytes (UTF-8). */
641
+ readonly byteSize: number;
642
+ /** Content-Type header reported by the content host, when present. */
643
+ readonly contentType?: string;
644
+ /** Raw response body (HTML or XML rendition). */
645
+ readonly text: string;
646
+ /** Final URL fetched. */
647
+ readonly url: string;
648
+ }
649
+ /** Re-exported for consumers that route by controller. */
650
+ export type { RisController };
651
+ //# sourceMappingURL=types.d.ts.map