ris-mcp-ts 1.0.0

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 (87) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +490 -0
  3. package/dist/client.d.ts +109 -0
  4. package/dist/client.d.ts.map +1 -0
  5. package/dist/client.js +371 -0
  6. package/dist/client.js.map +1 -0
  7. package/dist/constants.d.ts +67 -0
  8. package/dist/constants.d.ts.map +1 -0
  9. package/dist/constants.js +168 -0
  10. package/dist/constants.js.map +1 -0
  11. package/dist/formatting.d.ts +70 -0
  12. package/dist/formatting.d.ts.map +1 -0
  13. package/dist/formatting.js +366 -0
  14. package/dist/formatting.js.map +1 -0
  15. package/dist/helpers.d.ts +46 -0
  16. package/dist/helpers.d.ts.map +1 -0
  17. package/dist/helpers.js +92 -0
  18. package/dist/helpers.js.map +1 -0
  19. package/dist/index.d.ts +9 -0
  20. package/dist/index.d.ts.map +1 -0
  21. package/dist/index.js +21 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/parser.d.ts +48 -0
  24. package/dist/parser.d.ts.map +1 -0
  25. package/dist/parser.js +240 -0
  26. package/dist/parser.js.map +1 -0
  27. package/dist/server.d.ts +11 -0
  28. package/dist/server.d.ts.map +1 -0
  29. package/dist/server.js +16 -0
  30. package/dist/server.js.map +1 -0
  31. package/dist/tools/bezirke.d.ts +6 -0
  32. package/dist/tools/bezirke.d.ts.map +1 -0
  33. package/dist/tools/bezirke.js +68 -0
  34. package/dist/tools/bezirke.js.map +1 -0
  35. package/dist/tools/bundesgesetzblatt.d.ts +6 -0
  36. package/dist/tools/bundesgesetzblatt.d.ts.map +1 -0
  37. package/dist/tools/bundesgesetzblatt.js +55 -0
  38. package/dist/tools/bundesgesetzblatt.js.map +1 -0
  39. package/dist/tools/bundesrecht.d.ts +6 -0
  40. package/dist/tools/bundesrecht.d.ts.map +1 -0
  41. package/dist/tools/bundesrecht.js +63 -0
  42. package/dist/tools/bundesrecht.js.map +1 -0
  43. package/dist/tools/dokument.d.ts +6 -0
  44. package/dist/tools/dokument.d.ts.map +1 -0
  45. package/dist/tools/dokument.js +244 -0
  46. package/dist/tools/dokument.js.map +1 -0
  47. package/dist/tools/gemeinden.d.ts +6 -0
  48. package/dist/tools/gemeinden.d.ts.map +1 -0
  49. package/dist/tools/gemeinden.js +125 -0
  50. package/dist/tools/gemeinden.js.map +1 -0
  51. package/dist/tools/history.d.ts +6 -0
  52. package/dist/tools/history.d.ts.map +1 -0
  53. package/dist/tools/history.js +65 -0
  54. package/dist/tools/history.js.map +1 -0
  55. package/dist/tools/index.d.ts +12 -0
  56. package/dist/tools/index.d.ts.map +1 -0
  57. package/dist/tools/index.js +36 -0
  58. package/dist/tools/index.js.map +1 -0
  59. package/dist/tools/judikatur.d.ts +6 -0
  60. package/dist/tools/judikatur.d.ts.map +1 -0
  61. package/dist/tools/judikatur.js +46 -0
  62. package/dist/tools/judikatur.js.map +1 -0
  63. package/dist/tools/landesgesetzblatt.d.ts +6 -0
  64. package/dist/tools/landesgesetzblatt.d.ts.map +1 -0
  65. package/dist/tools/landesgesetzblatt.js +60 -0
  66. package/dist/tools/landesgesetzblatt.js.map +1 -0
  67. package/dist/tools/landesrecht.d.ts +6 -0
  68. package/dist/tools/landesrecht.d.ts.map +1 -0
  69. package/dist/tools/landesrecht.js +51 -0
  70. package/dist/tools/landesrecht.js.map +1 -0
  71. package/dist/tools/regierungsvorlagen.d.ts +6 -0
  72. package/dist/tools/regierungsvorlagen.d.ts.map +1 -0
  73. package/dist/tools/regierungsvorlagen.js +97 -0
  74. package/dist/tools/regierungsvorlagen.js.map +1 -0
  75. package/dist/tools/sonstige.d.ts +6 -0
  76. package/dist/tools/sonstige.d.ts.map +1 -0
  77. package/dist/tools/sonstige.js +271 -0
  78. package/dist/tools/sonstige.js.map +1 -0
  79. package/dist/tools/verordnungen.d.ts +6 -0
  80. package/dist/tools/verordnungen.d.ts.map +1 -0
  81. package/dist/tools/verordnungen.js +68 -0
  82. package/dist/tools/verordnungen.js.map +1 -0
  83. package/dist/types.d.ts +471 -0
  84. package/dist/types.d.ts.map +1 -0
  85. package/dist/types.js +151 -0
  86. package/dist/types.js.map +1 -0
  87. package/package.json +87 -0
@@ -0,0 +1,471 @@
1
+ /**
2
+ * Zod schemas and TypeScript types for the RIS MCP Server.
3
+ *
4
+ * This module defines all data models used for interacting with the Austrian
5
+ * Legal Information System (RIS) API, including enums for various search
6
+ * parameters and document models for representing legal documents.
7
+ */
8
+ import { z } from 'zod';
9
+ /**
10
+ * Application types for federal law searches in RIS.
11
+ */
12
+ export declare const BundesrechtApplikationSchema: z.ZodEnum<["BrKons", "Begut", "BgblAuth", "Erv"]>;
13
+ export type BundesrechtApplikation = z.infer<typeof BundesrechtApplikationSchema>;
14
+ /**
15
+ * Court types for case law searches in RIS.
16
+ */
17
+ export declare const JudikaturGerichtSchema: z.ZodEnum<["Justiz", "Vfgh", "Vwgh", "Bvwg", "Lvwg", "Dsk", "AsylGH", "Normenliste", "Pvak", "Gbk", "Dok"]>;
18
+ export type JudikaturGericht = z.infer<typeof JudikaturGerichtSchema>;
19
+ /**
20
+ * Austrian federal states (Bundesländer).
21
+ * Note: Uses Umlauts (ö, ä) for display purposes.
22
+ */
23
+ export declare const BundeslandSchema: z.ZodEnum<["Wien", "Niederösterreich", "Oberösterreich", "Steiermark", "Tirol", "Kärnten", "Salzburg", "Vorarlberg", "Burgenland"]>;
24
+ export type Bundesland = z.infer<typeof BundeslandSchema>;
25
+ /**
26
+ * Austrian federal states for Landesrecht API (ASCII versions without Umlauts).
27
+ * The RIS API uses the SucheIn format (e.g., Bundesland.SucheInWien=true).
28
+ */
29
+ export declare const LANDESRECHT_BUNDESLAENDER: readonly ["Wien", "Niederoesterreich", "Oberoesterreich", "Salzburg", "Tirol", "Vorarlberg", "Kaernten", "Steiermark", "Burgenland"];
30
+ export declare const LandesrechtBundeslandSchema: z.ZodEnum<["Wien", "Niederoesterreich", "Oberoesterreich", "Salzburg", "Tirol", "Vorarlberg", "Kaernten", "Steiermark", "Burgenland"]>;
31
+ export type LandesrechtBundesland = z.infer<typeof LandesrechtBundeslandSchema>;
32
+ /**
33
+ * Date format validation schema (YYYY-MM-DD).
34
+ * Used for date parameters in RIS API requests.
35
+ */
36
+ export declare const DateSchema: z.ZodString;
37
+ export declare const OptionalDateSchema: z.ZodOptional<z.ZodString>;
38
+ /**
39
+ * Number of documents per page for paginated API responses.
40
+ */
41
+ export declare const DokumenteProSeiteSchema: z.ZodEnum<["Ten", "Twenty", "Fifty", "OneHundred"]>;
42
+ export type DokumenteProSeite = z.infer<typeof DokumenteProSeiteSchema>;
43
+ /**
44
+ * Output format for MCP tool responses.
45
+ */
46
+ export declare const ResponseFormatSchema: z.ZodEnum<["markdown", "json"]>;
47
+ export type ResponseFormat = z.infer<typeof ResponseFormatSchema>;
48
+ /**
49
+ * URLs for accessing document content in different formats.
50
+ */
51
+ export declare const ContentUrlSchema: z.ZodObject<{
52
+ xml: z.ZodOptional<z.ZodNullable<z.ZodString>>;
53
+ html: z.ZodOptional<z.ZodNullable<z.ZodString>>;
54
+ rtf: z.ZodOptional<z.ZodNullable<z.ZodString>>;
55
+ pdf: z.ZodOptional<z.ZodNullable<z.ZodString>>;
56
+ }, "strip", z.ZodTypeAny, {
57
+ xml?: string | null | undefined;
58
+ html?: string | null | undefined;
59
+ rtf?: string | null | undefined;
60
+ pdf?: string | null | undefined;
61
+ }, {
62
+ xml?: string | null | undefined;
63
+ html?: string | null | undefined;
64
+ rtf?: string | null | undefined;
65
+ pdf?: string | null | undefined;
66
+ }>;
67
+ export type ContentUrl = z.infer<typeof ContentUrlSchema>;
68
+ /**
69
+ * Citation information for a legal document.
70
+ */
71
+ export declare const CitationSchema: z.ZodObject<{
72
+ kurztitel: z.ZodOptional<z.ZodNullable<z.ZodString>>;
73
+ langtitel: z.ZodOptional<z.ZodNullable<z.ZodString>>;
74
+ kundmachungsorgan: z.ZodOptional<z.ZodNullable<z.ZodString>>;
75
+ paragraph: z.ZodOptional<z.ZodNullable<z.ZodString>>;
76
+ eli: z.ZodOptional<z.ZodNullable<z.ZodString>>;
77
+ inkrafttreten: z.ZodOptional<z.ZodNullable<z.ZodString>>;
78
+ ausserkrafttreten: z.ZodOptional<z.ZodNullable<z.ZodString>>;
79
+ }, "strip", z.ZodTypeAny, {
80
+ kurztitel?: string | null | undefined;
81
+ langtitel?: string | null | undefined;
82
+ kundmachungsorgan?: string | null | undefined;
83
+ paragraph?: string | null | undefined;
84
+ eli?: string | null | undefined;
85
+ inkrafttreten?: string | null | undefined;
86
+ ausserkrafttreten?: string | null | undefined;
87
+ }, {
88
+ kurztitel?: string | null | undefined;
89
+ langtitel?: string | null | undefined;
90
+ kundmachungsorgan?: string | null | undefined;
91
+ paragraph?: string | null | undefined;
92
+ eli?: string | null | undefined;
93
+ inkrafttreten?: string | null | undefined;
94
+ ausserkrafttreten?: string | null | undefined;
95
+ }>;
96
+ export type Citation = z.infer<typeof CitationSchema>;
97
+ /**
98
+ * A single legal document from the RIS database.
99
+ */
100
+ export declare const DocumentSchema: z.ZodObject<{
101
+ dokumentnummer: z.ZodString;
102
+ applikation: z.ZodString;
103
+ titel: z.ZodString;
104
+ kurztitel: z.ZodOptional<z.ZodNullable<z.ZodString>>;
105
+ citation: z.ZodObject<{
106
+ kurztitel: z.ZodOptional<z.ZodNullable<z.ZodString>>;
107
+ langtitel: z.ZodOptional<z.ZodNullable<z.ZodString>>;
108
+ kundmachungsorgan: z.ZodOptional<z.ZodNullable<z.ZodString>>;
109
+ paragraph: z.ZodOptional<z.ZodNullable<z.ZodString>>;
110
+ eli: z.ZodOptional<z.ZodNullable<z.ZodString>>;
111
+ inkrafttreten: z.ZodOptional<z.ZodNullable<z.ZodString>>;
112
+ ausserkrafttreten: z.ZodOptional<z.ZodNullable<z.ZodString>>;
113
+ }, "strip", z.ZodTypeAny, {
114
+ kurztitel?: string | null | undefined;
115
+ langtitel?: string | null | undefined;
116
+ kundmachungsorgan?: string | null | undefined;
117
+ paragraph?: string | null | undefined;
118
+ eli?: string | null | undefined;
119
+ inkrafttreten?: string | null | undefined;
120
+ ausserkrafttreten?: string | null | undefined;
121
+ }, {
122
+ kurztitel?: string | null | undefined;
123
+ langtitel?: string | null | undefined;
124
+ kundmachungsorgan?: string | null | undefined;
125
+ paragraph?: string | null | undefined;
126
+ eli?: string | null | undefined;
127
+ inkrafttreten?: string | null | undefined;
128
+ ausserkrafttreten?: string | null | undefined;
129
+ }>;
130
+ content_urls: z.ZodObject<{
131
+ xml: z.ZodOptional<z.ZodNullable<z.ZodString>>;
132
+ html: z.ZodOptional<z.ZodNullable<z.ZodString>>;
133
+ rtf: z.ZodOptional<z.ZodNullable<z.ZodString>>;
134
+ pdf: z.ZodOptional<z.ZodNullable<z.ZodString>>;
135
+ }, "strip", z.ZodTypeAny, {
136
+ xml?: string | null | undefined;
137
+ html?: string | null | undefined;
138
+ rtf?: string | null | undefined;
139
+ pdf?: string | null | undefined;
140
+ }, {
141
+ xml?: string | null | undefined;
142
+ html?: string | null | undefined;
143
+ rtf?: string | null | undefined;
144
+ pdf?: string | null | undefined;
145
+ }>;
146
+ dokument_url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
147
+ gesamte_rechtsvorschrift_url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
148
+ }, "strip", z.ZodTypeAny, {
149
+ dokumentnummer: string;
150
+ applikation: string;
151
+ titel: string;
152
+ citation: {
153
+ kurztitel?: string | null | undefined;
154
+ langtitel?: string | null | undefined;
155
+ kundmachungsorgan?: string | null | undefined;
156
+ paragraph?: string | null | undefined;
157
+ eli?: string | null | undefined;
158
+ inkrafttreten?: string | null | undefined;
159
+ ausserkrafttreten?: string | null | undefined;
160
+ };
161
+ content_urls: {
162
+ xml?: string | null | undefined;
163
+ html?: string | null | undefined;
164
+ rtf?: string | null | undefined;
165
+ pdf?: string | null | undefined;
166
+ };
167
+ kurztitel?: string | null | undefined;
168
+ dokument_url?: string | null | undefined;
169
+ gesamte_rechtsvorschrift_url?: string | null | undefined;
170
+ }, {
171
+ dokumentnummer: string;
172
+ applikation: string;
173
+ titel: string;
174
+ citation: {
175
+ kurztitel?: string | null | undefined;
176
+ langtitel?: string | null | undefined;
177
+ kundmachungsorgan?: string | null | undefined;
178
+ paragraph?: string | null | undefined;
179
+ eli?: string | null | undefined;
180
+ inkrafttreten?: string | null | undefined;
181
+ ausserkrafttreten?: string | null | undefined;
182
+ };
183
+ content_urls: {
184
+ xml?: string | null | undefined;
185
+ html?: string | null | undefined;
186
+ rtf?: string | null | undefined;
187
+ pdf?: string | null | undefined;
188
+ };
189
+ kurztitel?: string | null | undefined;
190
+ dokument_url?: string | null | undefined;
191
+ gesamte_rechtsvorschrift_url?: string | null | undefined;
192
+ }>;
193
+ export type Document = z.infer<typeof DocumentSchema>;
194
+ /**
195
+ * Paginated search results from the RIS API.
196
+ */
197
+ export declare const SearchResultSchema: z.ZodObject<{
198
+ total_hits: z.ZodNumber;
199
+ page: z.ZodNumber;
200
+ page_size: z.ZodNumber;
201
+ has_more: z.ZodBoolean;
202
+ documents: z.ZodArray<z.ZodObject<{
203
+ dokumentnummer: z.ZodString;
204
+ applikation: z.ZodString;
205
+ titel: z.ZodString;
206
+ kurztitel: z.ZodOptional<z.ZodNullable<z.ZodString>>;
207
+ citation: z.ZodObject<{
208
+ kurztitel: z.ZodOptional<z.ZodNullable<z.ZodString>>;
209
+ langtitel: z.ZodOptional<z.ZodNullable<z.ZodString>>;
210
+ kundmachungsorgan: z.ZodOptional<z.ZodNullable<z.ZodString>>;
211
+ paragraph: z.ZodOptional<z.ZodNullable<z.ZodString>>;
212
+ eli: z.ZodOptional<z.ZodNullable<z.ZodString>>;
213
+ inkrafttreten: z.ZodOptional<z.ZodNullable<z.ZodString>>;
214
+ ausserkrafttreten: z.ZodOptional<z.ZodNullable<z.ZodString>>;
215
+ }, "strip", z.ZodTypeAny, {
216
+ kurztitel?: string | null | undefined;
217
+ langtitel?: string | null | undefined;
218
+ kundmachungsorgan?: string | null | undefined;
219
+ paragraph?: string | null | undefined;
220
+ eli?: string | null | undefined;
221
+ inkrafttreten?: string | null | undefined;
222
+ ausserkrafttreten?: string | null | undefined;
223
+ }, {
224
+ kurztitel?: string | null | undefined;
225
+ langtitel?: string | null | undefined;
226
+ kundmachungsorgan?: string | null | undefined;
227
+ paragraph?: string | null | undefined;
228
+ eli?: string | null | undefined;
229
+ inkrafttreten?: string | null | undefined;
230
+ ausserkrafttreten?: string | null | undefined;
231
+ }>;
232
+ content_urls: z.ZodObject<{
233
+ xml: z.ZodOptional<z.ZodNullable<z.ZodString>>;
234
+ html: z.ZodOptional<z.ZodNullable<z.ZodString>>;
235
+ rtf: z.ZodOptional<z.ZodNullable<z.ZodString>>;
236
+ pdf: z.ZodOptional<z.ZodNullable<z.ZodString>>;
237
+ }, "strip", z.ZodTypeAny, {
238
+ xml?: string | null | undefined;
239
+ html?: string | null | undefined;
240
+ rtf?: string | null | undefined;
241
+ pdf?: string | null | undefined;
242
+ }, {
243
+ xml?: string | null | undefined;
244
+ html?: string | null | undefined;
245
+ rtf?: string | null | undefined;
246
+ pdf?: string | null | undefined;
247
+ }>;
248
+ dokument_url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
249
+ gesamte_rechtsvorschrift_url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
250
+ }, "strip", z.ZodTypeAny, {
251
+ dokumentnummer: string;
252
+ applikation: string;
253
+ titel: string;
254
+ citation: {
255
+ kurztitel?: string | null | undefined;
256
+ langtitel?: string | null | undefined;
257
+ kundmachungsorgan?: string | null | undefined;
258
+ paragraph?: string | null | undefined;
259
+ eli?: string | null | undefined;
260
+ inkrafttreten?: string | null | undefined;
261
+ ausserkrafttreten?: string | null | undefined;
262
+ };
263
+ content_urls: {
264
+ xml?: string | null | undefined;
265
+ html?: string | null | undefined;
266
+ rtf?: string | null | undefined;
267
+ pdf?: string | null | undefined;
268
+ };
269
+ kurztitel?: string | null | undefined;
270
+ dokument_url?: string | null | undefined;
271
+ gesamte_rechtsvorschrift_url?: string | null | undefined;
272
+ }, {
273
+ dokumentnummer: string;
274
+ applikation: string;
275
+ titel: string;
276
+ citation: {
277
+ kurztitel?: string | null | undefined;
278
+ langtitel?: string | null | undefined;
279
+ kundmachungsorgan?: string | null | undefined;
280
+ paragraph?: string | null | undefined;
281
+ eli?: string | null | undefined;
282
+ inkrafttreten?: string | null | undefined;
283
+ ausserkrafttreten?: string | null | undefined;
284
+ };
285
+ content_urls: {
286
+ xml?: string | null | undefined;
287
+ html?: string | null | undefined;
288
+ rtf?: string | null | undefined;
289
+ pdf?: string | null | undefined;
290
+ };
291
+ kurztitel?: string | null | undefined;
292
+ dokument_url?: string | null | undefined;
293
+ gesamte_rechtsvorschrift_url?: string | null | undefined;
294
+ }>, "many">;
295
+ }, "strip", z.ZodTypeAny, {
296
+ total_hits: number;
297
+ page: number;
298
+ page_size: number;
299
+ has_more: boolean;
300
+ documents: {
301
+ dokumentnummer: string;
302
+ applikation: string;
303
+ titel: string;
304
+ citation: {
305
+ kurztitel?: string | null | undefined;
306
+ langtitel?: string | null | undefined;
307
+ kundmachungsorgan?: string | null | undefined;
308
+ paragraph?: string | null | undefined;
309
+ eli?: string | null | undefined;
310
+ inkrafttreten?: string | null | undefined;
311
+ ausserkrafttreten?: string | null | undefined;
312
+ };
313
+ content_urls: {
314
+ xml?: string | null | undefined;
315
+ html?: string | null | undefined;
316
+ rtf?: string | null | undefined;
317
+ pdf?: string | null | undefined;
318
+ };
319
+ kurztitel?: string | null | undefined;
320
+ dokument_url?: string | null | undefined;
321
+ gesamte_rechtsvorschrift_url?: string | null | undefined;
322
+ }[];
323
+ }, {
324
+ total_hits: number;
325
+ page: number;
326
+ page_size: number;
327
+ has_more: boolean;
328
+ documents: {
329
+ dokumentnummer: string;
330
+ applikation: string;
331
+ titel: string;
332
+ citation: {
333
+ kurztitel?: string | null | undefined;
334
+ langtitel?: string | null | undefined;
335
+ kundmachungsorgan?: string | null | undefined;
336
+ paragraph?: string | null | undefined;
337
+ eli?: string | null | undefined;
338
+ inkrafttreten?: string | null | undefined;
339
+ ausserkrafttreten?: string | null | undefined;
340
+ };
341
+ content_urls: {
342
+ xml?: string | null | undefined;
343
+ html?: string | null | undefined;
344
+ rtf?: string | null | undefined;
345
+ pdf?: string | null | undefined;
346
+ };
347
+ kurztitel?: string | null | undefined;
348
+ dokument_url?: string | null | undefined;
349
+ gesamte_rechtsvorschrift_url?: string | null | undefined;
350
+ }[];
351
+ }>;
352
+ export type SearchResult = z.infer<typeof SearchResultSchema>;
353
+ /**
354
+ * Raw content URL from API response.
355
+ */
356
+ export interface RawContentUrl {
357
+ DataType?: string;
358
+ Url?: string;
359
+ }
360
+ /**
361
+ * Raw URLs container from API response.
362
+ */
363
+ export interface RawUrls {
364
+ ContentUrl?: RawContentUrl | RawContentUrl[];
365
+ }
366
+ /**
367
+ * Raw content reference from API response.
368
+ */
369
+ export interface RawContentReference {
370
+ ContentType?: string;
371
+ Name?: string | {
372
+ '#text'?: string;
373
+ };
374
+ Urls?: RawUrls;
375
+ }
376
+ /**
377
+ * Raw hits info from API response.
378
+ */
379
+ export interface RawHitsInfo {
380
+ '#text'?: string | number;
381
+ '@pageNumber'?: string | number;
382
+ '@pageSize'?: string | number;
383
+ }
384
+ /**
385
+ * Raw document reference from API response.
386
+ */
387
+ export interface RawDocumentReference {
388
+ Data?: {
389
+ Metadaten?: {
390
+ Technisch?: {
391
+ ID?: string;
392
+ Applikation?: string;
393
+ };
394
+ Allgemein?: {
395
+ DokumentUrl?: string;
396
+ };
397
+ Bundesrecht?: {
398
+ Kurztitel?: string;
399
+ Langtitel?: string;
400
+ Titel?: string;
401
+ Eli?: string;
402
+ BrKons?: {
403
+ Kundmachungsorgan?: string;
404
+ ArtikelParagraphAnlage?: string;
405
+ Inkrafttretensdatum?: string;
406
+ Ausserkrafttretensdatum?: string;
407
+ GesamteRechtsvorschriftUrl?: string;
408
+ };
409
+ };
410
+ Landesrecht?: {
411
+ Kurztitel?: string;
412
+ Langtitel?: string;
413
+ Titel?: string;
414
+ Eli?: string;
415
+ LrKons?: {
416
+ Kundmachungsorgan?: string;
417
+ ArtikelParagraphAnlage?: string;
418
+ Inkrafttretensdatum?: string;
419
+ Ausserkrafttretensdatum?: string;
420
+ GesamteRechtsvorschriftUrl?: string;
421
+ };
422
+ };
423
+ Judikatur?: {
424
+ Geschaeftszahl?: {
425
+ item?: string | string[];
426
+ } | string;
427
+ Entscheidungsdatum?: string;
428
+ Vfgh?: {
429
+ Leitsatz?: string;
430
+ };
431
+ Vwgh?: {
432
+ Leitsatz?: string;
433
+ };
434
+ Justiz?: {
435
+ Leitsatz?: string;
436
+ };
437
+ Bvwg?: {
438
+ Leitsatz?: string;
439
+ };
440
+ };
441
+ };
442
+ Dokumentliste?: {
443
+ ContentReference?: RawContentReference | RawContentReference[];
444
+ };
445
+ };
446
+ }
447
+ /**
448
+ * Raw API search response structure.
449
+ */
450
+ export interface RawApiResponse {
451
+ OgdSearchResult?: {
452
+ OgdDocumentResults?: {
453
+ Hits?: RawHitsInfo | string | number;
454
+ OgdDocumentReference?: RawDocumentReference | RawDocumentReference[];
455
+ };
456
+ };
457
+ }
458
+ /**
459
+ * Normalized search results from client.
460
+ */
461
+ export interface NormalizedSearchResults {
462
+ hits: number;
463
+ page_number: number;
464
+ page_size: number;
465
+ documents: RawDocumentReference[];
466
+ }
467
+ /**
468
+ * Map numeric limit to RIS API DokumenteProSeite value.
469
+ */
470
+ export declare function limitToDokumenteProSeite(limit: number): DokumenteProSeite;
471
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,151 @@
1
+ /**
2
+ * Zod schemas and TypeScript types for the RIS MCP Server.
3
+ *
4
+ * This module defines all data models used for interacting with the Austrian
5
+ * Legal Information System (RIS) API, including enums for various search
6
+ * parameters and document models for representing legal documents.
7
+ */
8
+ import { z } from 'zod';
9
+ // =============================================================================
10
+ // Enums
11
+ // =============================================================================
12
+ /**
13
+ * Application types for federal law searches in RIS.
14
+ */
15
+ export const BundesrechtApplikationSchema = z.enum([
16
+ 'BrKons', // Consolidated federal law
17
+ 'Begut', // Draft legislation
18
+ 'BgblAuth', // Federal Law Gazette authentic
19
+ 'Erv', // English translations
20
+ ]);
21
+ /**
22
+ * Court types for case law searches in RIS.
23
+ */
24
+ export const JudikaturGerichtSchema = z.enum([
25
+ 'Justiz', // Ordinary courts (OGH, OLG, LG, BG)
26
+ 'Vfgh', // Constitutional Court
27
+ 'Vwgh', // Supreme Administrative Court
28
+ 'Bvwg', // Federal Administrative Court
29
+ 'Lvwg', // State Administrative Courts
30
+ 'Dsk', // Data Protection Authority
31
+ 'AsylGH', // Asylum Court (historical, until 2013)
32
+ 'Normenliste', // Court norm lists (judicial review)
33
+ 'Pvak', // Personnel Representation Supervision Commission
34
+ 'Gbk', // Equal Treatment Commission
35
+ 'Dok', // Disciplinary Commission
36
+ ]);
37
+ /**
38
+ * Austrian federal states (Bundesländer).
39
+ * Note: Uses Umlauts (ö, ä) for display purposes.
40
+ */
41
+ export const BundeslandSchema = z.enum([
42
+ 'Wien',
43
+ 'Niederösterreich',
44
+ 'Oberösterreich',
45
+ 'Steiermark',
46
+ 'Tirol',
47
+ 'Kärnten',
48
+ 'Salzburg',
49
+ 'Vorarlberg',
50
+ 'Burgenland',
51
+ ]);
52
+ /**
53
+ * Austrian federal states for Landesrecht API (ASCII versions without Umlauts).
54
+ * The RIS API uses the SucheIn format (e.g., Bundesland.SucheInWien=true).
55
+ */
56
+ export const LANDESRECHT_BUNDESLAENDER = [
57
+ 'Wien',
58
+ 'Niederoesterreich',
59
+ 'Oberoesterreich',
60
+ 'Salzburg',
61
+ 'Tirol',
62
+ 'Vorarlberg',
63
+ 'Kaernten',
64
+ 'Steiermark',
65
+ 'Burgenland',
66
+ ];
67
+ export const LandesrechtBundeslandSchema = z.enum(LANDESRECHT_BUNDESLAENDER);
68
+ /**
69
+ * Date format validation schema (YYYY-MM-DD).
70
+ * Used for date parameters in RIS API requests.
71
+ */
72
+ export const DateSchema = z.string().regex(/^\d{4}-\d{2}-\d{2}$/, {
73
+ message: 'Datum muss im Format YYYY-MM-DD sein (z.B. 2024-01-15)',
74
+ });
75
+ export const OptionalDateSchema = DateSchema.optional();
76
+ /**
77
+ * Number of documents per page for paginated API responses.
78
+ */
79
+ export const DokumenteProSeiteSchema = z.enum([
80
+ 'Ten', // 10 documents
81
+ 'Twenty', // 20 documents
82
+ 'Fifty', // 50 documents
83
+ 'OneHundred', // 100 documents
84
+ ]);
85
+ /**
86
+ * Output format for MCP tool responses.
87
+ */
88
+ export const ResponseFormatSchema = z.enum(['markdown', 'json']);
89
+ // =============================================================================
90
+ // Document Models
91
+ // =============================================================================
92
+ /**
93
+ * URLs for accessing document content in different formats.
94
+ */
95
+ export const ContentUrlSchema = z.object({
96
+ xml: z.string().nullable().optional(),
97
+ html: z.string().nullable().optional(),
98
+ rtf: z.string().nullable().optional(),
99
+ pdf: z.string().nullable().optional(),
100
+ });
101
+ /**
102
+ * Citation information for a legal document.
103
+ */
104
+ export const CitationSchema = z.object({
105
+ kurztitel: z.string().nullable().optional(),
106
+ langtitel: z.string().nullable().optional(),
107
+ kundmachungsorgan: z.string().nullable().optional(),
108
+ paragraph: z.string().nullable().optional(),
109
+ eli: z.string().nullable().optional(),
110
+ inkrafttreten: z.string().nullable().optional(),
111
+ ausserkrafttreten: z.string().nullable().optional(),
112
+ });
113
+ /**
114
+ * A single legal document from the RIS database.
115
+ */
116
+ export const DocumentSchema = z.object({
117
+ dokumentnummer: z.string(),
118
+ applikation: z.string(),
119
+ titel: z.string(),
120
+ kurztitel: z.string().nullable().optional(),
121
+ citation: CitationSchema,
122
+ content_urls: ContentUrlSchema,
123
+ dokument_url: z.string().nullable().optional(),
124
+ gesamte_rechtsvorschrift_url: z.string().nullable().optional(),
125
+ });
126
+ /**
127
+ * Paginated search results from the RIS API.
128
+ */
129
+ export const SearchResultSchema = z.object({
130
+ total_hits: z.number().min(0),
131
+ page: z.number().min(1),
132
+ page_size: z.number().min(1).max(100),
133
+ has_more: z.boolean(),
134
+ documents: z.array(DocumentSchema),
135
+ });
136
+ // =============================================================================
137
+ // Helper for limit mapping
138
+ // =============================================================================
139
+ /**
140
+ * Map numeric limit to RIS API DokumenteProSeite value.
141
+ */
142
+ export function limitToDokumenteProSeite(limit) {
143
+ const mapping = {
144
+ 10: 'Ten',
145
+ 20: 'Twenty',
146
+ 50: 'Fifty',
147
+ 100: 'OneHundred',
148
+ };
149
+ return mapping[limit] ?? 'Twenty';
150
+ }
151
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}