@cenogram/mcp-server 0.2.0 → 0.6.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.
- package/README.md +32 -10
- package/dist/api-client.d.ts +678 -7
- package/dist/api-client.js +169 -22
- package/dist/auth-dispatch.js +0 -27
- package/dist/client-id.js +0 -5
- package/dist/error-messages.d.ts +4 -0
- package/dist/error-messages.js +50 -7
- package/dist/formatters.d.ts +20 -1
- package/dist/formatters.js +1094 -21
- package/dist/index.d.ts +1 -0
- package/dist/index.js +73 -40
- package/dist/mappings.d.ts +12 -5
- package/dist/mappings.js +131 -14
- package/dist/oauth-jwt.js +1 -3
- package/dist/sentry-scrub.d.ts +2 -0
- package/dist/sentry-scrub.js +14 -0
- package/dist/sentry.d.ts +2 -0
- package/dist/sentry.js +29 -0
- package/dist/tools.d.ts +1 -0
- package/dist/tools.js +487 -86
- package/dist/transport-mode.d.ts +2 -0
- package/dist/transport-mode.js +6 -0
- package/package.json +20 -7
package/dist/api-client.d.ts
CHANGED
|
@@ -44,14 +44,39 @@ export interface Transaction {
|
|
|
44
44
|
floor: number | null;
|
|
45
45
|
district: string | null;
|
|
46
46
|
street: string | null;
|
|
47
|
+
address_source?: "rcn" | "approx_high" | "approx_low" | "none" | null;
|
|
47
48
|
building_number: string | null;
|
|
48
49
|
city: string | null;
|
|
49
50
|
parcel_area: number | null;
|
|
50
51
|
unit_function: number | null;
|
|
52
|
+
is_garage?: boolean | null;
|
|
53
|
+
area_basis?: "unit" | "building" | null;
|
|
51
54
|
parcel_id: string | null;
|
|
52
55
|
parcel_number: string | null;
|
|
53
56
|
county_name: string | null;
|
|
54
57
|
voivodeship_name: string | null;
|
|
58
|
+
share_basis?: "full" | "fraction" | "ambiguous" | null;
|
|
59
|
+
parcel_count?: number | null;
|
|
60
|
+
area_is_ha_converted?: boolean | null;
|
|
61
|
+
property_type_inferred?: boolean | null;
|
|
62
|
+
property_type_reclassed?: boolean | null;
|
|
63
|
+
ownership_type?: number | null;
|
|
64
|
+
ownership_share?: string | null;
|
|
65
|
+
seller_type?: number | null;
|
|
66
|
+
buyer_type?: number | null;
|
|
67
|
+
land_use?: string | null;
|
|
68
|
+
unit_price?: number | string | null;
|
|
69
|
+
vat?: number | string | null;
|
|
70
|
+
building_count?: number | null;
|
|
71
|
+
footprint_area_m2?: number | null;
|
|
72
|
+
est_total_area_m2?: number | null;
|
|
73
|
+
building_storeys?: number | null;
|
|
74
|
+
flood_risk?: "high" | "medium" | "low" | null;
|
|
75
|
+
flood_assessed?: boolean | null;
|
|
76
|
+
heritage_status?: "listed" | "zone" | null;
|
|
77
|
+
heritage_assessed?: boolean | null;
|
|
78
|
+
landslide_risk?: "landslide" | "threatened" | null;
|
|
79
|
+
landslide_assessed?: boolean | null;
|
|
55
80
|
centroid: {
|
|
56
81
|
type: string;
|
|
57
82
|
coordinates: [number, number];
|
|
@@ -86,6 +111,230 @@ export interface HistogramBin {
|
|
|
86
111
|
range_min: number;
|
|
87
112
|
range_max: number;
|
|
88
113
|
}
|
|
114
|
+
export interface Percentiles {
|
|
115
|
+
p10: number | null;
|
|
116
|
+
p25: number | null;
|
|
117
|
+
p50: number | null;
|
|
118
|
+
p75: number | null;
|
|
119
|
+
p90: number | null;
|
|
120
|
+
}
|
|
121
|
+
export interface LocationRef {
|
|
122
|
+
name: string;
|
|
123
|
+
country_code: "PL";
|
|
124
|
+
location_type: "city" | "county";
|
|
125
|
+
teryt: string;
|
|
126
|
+
}
|
|
127
|
+
export interface TxWindow {
|
|
128
|
+
from: string | null;
|
|
129
|
+
to: string | null;
|
|
130
|
+
}
|
|
131
|
+
export interface RentalYieldResponse {
|
|
132
|
+
location: LocationRef;
|
|
133
|
+
metric: "indicative_gross_rental_yield";
|
|
134
|
+
currency: "PLN";
|
|
135
|
+
segment: {
|
|
136
|
+
market_type: "primary" | "secondary" | "all";
|
|
137
|
+
property_type: "apartment";
|
|
138
|
+
area_bucket: string | null;
|
|
139
|
+
};
|
|
140
|
+
result: {
|
|
141
|
+
gross_yield_pct: number | null;
|
|
142
|
+
calculation_method: "ratio_of_market_medians";
|
|
143
|
+
matched_observations: false;
|
|
144
|
+
};
|
|
145
|
+
inputs: {
|
|
146
|
+
rent: {
|
|
147
|
+
median_monthly_asking_per_m2: number | null;
|
|
148
|
+
annualized_per_m2: number | null;
|
|
149
|
+
sample_n: number | null;
|
|
150
|
+
snapshot_date: string | null;
|
|
151
|
+
};
|
|
152
|
+
transaction: {
|
|
153
|
+
median_price_per_m2: number | null;
|
|
154
|
+
sample_n: number | null;
|
|
155
|
+
window: TxWindow;
|
|
156
|
+
};
|
|
157
|
+
};
|
|
158
|
+
distribution: {
|
|
159
|
+
asking_rent_monthly_per_m2: Percentiles;
|
|
160
|
+
transaction_price_per_m2: Percentiles;
|
|
161
|
+
};
|
|
162
|
+
assumptions: {
|
|
163
|
+
vacancy_included: false;
|
|
164
|
+
tax_included: false;
|
|
165
|
+
maintenance_included: false;
|
|
166
|
+
transaction_costs_included: false;
|
|
167
|
+
};
|
|
168
|
+
quality: {
|
|
169
|
+
coverage: "full" | "low_sample" | "no_rental_data" | "suppressed" | "data_stale";
|
|
170
|
+
confidence: "high" | "low";
|
|
171
|
+
as_of: string | null;
|
|
172
|
+
stale: boolean;
|
|
173
|
+
notes: string[];
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
export interface RentalYieldLocation {
|
|
177
|
+
location: string;
|
|
178
|
+
county_code: string;
|
|
179
|
+
voivodeship: string;
|
|
180
|
+
type: "city" | "county";
|
|
181
|
+
rent_sample_n: number;
|
|
182
|
+
confidence: "high" | "low";
|
|
183
|
+
}
|
|
184
|
+
export interface RentalYieldLocationsResponse {
|
|
185
|
+
data: RentalYieldLocation[];
|
|
186
|
+
meta: {
|
|
187
|
+
total: number;
|
|
188
|
+
snapshot_date: string | null;
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
export interface PriceSpreadResponse {
|
|
192
|
+
location: LocationRef;
|
|
193
|
+
metric: "asking_to_transaction_price_spread";
|
|
194
|
+
currency: "PLN";
|
|
195
|
+
segment: {
|
|
196
|
+
market_type: "primary" | "secondary" | "all";
|
|
197
|
+
property_type: "apartment";
|
|
198
|
+
area_bucket: string | null;
|
|
199
|
+
};
|
|
200
|
+
result: {
|
|
201
|
+
spread_pct: number | null;
|
|
202
|
+
calculation_method: "relative_difference_of_market_medians";
|
|
203
|
+
matched_observations: false;
|
|
204
|
+
};
|
|
205
|
+
inputs: {
|
|
206
|
+
asking: {
|
|
207
|
+
median_price_per_m2: number | null;
|
|
208
|
+
sample_n: number | null;
|
|
209
|
+
snapshot_date: string | null;
|
|
210
|
+
window?: TxWindow;
|
|
211
|
+
};
|
|
212
|
+
transaction: {
|
|
213
|
+
median_price_per_m2: number | null;
|
|
214
|
+
sample_n: number | null;
|
|
215
|
+
window: TxWindow;
|
|
216
|
+
};
|
|
217
|
+
};
|
|
218
|
+
distribution: {
|
|
219
|
+
asking_sale_per_m2: Percentiles;
|
|
220
|
+
transaction_price_per_m2: Percentiles;
|
|
221
|
+
};
|
|
222
|
+
quality: {
|
|
223
|
+
coverage: "full" | "low_sample" | "no_asking_data" | "suppressed" | "data_stale";
|
|
224
|
+
confidence: "high" | "low";
|
|
225
|
+
as_of: string | null;
|
|
226
|
+
stale: boolean;
|
|
227
|
+
notes: string[];
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
export interface PriceSpreadLocation {
|
|
231
|
+
location: string;
|
|
232
|
+
county_code: string;
|
|
233
|
+
voivodeship: string;
|
|
234
|
+
type: "city" | "county";
|
|
235
|
+
asking_sample_n: number;
|
|
236
|
+
confidence: "high" | "low";
|
|
237
|
+
}
|
|
238
|
+
export interface PriceSpreadLocationsResponse {
|
|
239
|
+
data: PriceSpreadLocation[];
|
|
240
|
+
meta: {
|
|
241
|
+
total: number;
|
|
242
|
+
snapshot_date: string | null;
|
|
243
|
+
};
|
|
244
|
+
}
|
|
245
|
+
export interface DemographicsIndicator {
|
|
246
|
+
name: string;
|
|
247
|
+
unit: string;
|
|
248
|
+
variable_id: number | null;
|
|
249
|
+
category: string;
|
|
250
|
+
level: string;
|
|
251
|
+
values: Record<string, number>;
|
|
252
|
+
note?: string;
|
|
253
|
+
derived?: boolean;
|
|
254
|
+
snapshot?: boolean;
|
|
255
|
+
snapshot_note?: string;
|
|
256
|
+
}
|
|
257
|
+
export interface DemographicsResponse {
|
|
258
|
+
location: {
|
|
259
|
+
name: string | null;
|
|
260
|
+
country_code: "PL";
|
|
261
|
+
location_type: "city" | "county" | "municipality" | "voivodeship";
|
|
262
|
+
teryt: string;
|
|
263
|
+
level: string;
|
|
264
|
+
hierarchy?: Record<string, {
|
|
265
|
+
teryt: string | null;
|
|
266
|
+
name: string;
|
|
267
|
+
}>;
|
|
268
|
+
};
|
|
269
|
+
coverage: "full" | "no_data";
|
|
270
|
+
indicators: Record<string, DemographicsIndicator>;
|
|
271
|
+
meta: {
|
|
272
|
+
variables_count: number;
|
|
273
|
+
categories: string[];
|
|
274
|
+
levels_included: string[];
|
|
275
|
+
data_source: string;
|
|
276
|
+
as_of: string | null;
|
|
277
|
+
};
|
|
278
|
+
demo?: boolean;
|
|
279
|
+
}
|
|
280
|
+
export declare function getDemographics(params: {
|
|
281
|
+
location?: string;
|
|
282
|
+
teryt?: string;
|
|
283
|
+
year?: number;
|
|
284
|
+
yearFrom?: number;
|
|
285
|
+
yearTo?: number;
|
|
286
|
+
category?: string;
|
|
287
|
+
}, apiKey?: string): Promise<ApiResponse<DemographicsResponse>>;
|
|
288
|
+
export interface InfraTender {
|
|
289
|
+
title: string;
|
|
290
|
+
category: string;
|
|
291
|
+
notice_type: string;
|
|
292
|
+
published_at: string;
|
|
293
|
+
value_pln: number | null;
|
|
294
|
+
value_kind: string | null;
|
|
295
|
+
attribution_confidence: string | null;
|
|
296
|
+
bzp_url: string | null;
|
|
297
|
+
}
|
|
298
|
+
export interface InfrastructureSignalsResponse {
|
|
299
|
+
location: {
|
|
300
|
+
name: string | null;
|
|
301
|
+
country_code: "PL";
|
|
302
|
+
location_type: "city" | "county" | "municipality";
|
|
303
|
+
teryt: string;
|
|
304
|
+
level: string;
|
|
305
|
+
};
|
|
306
|
+
coverage: "full" | "partial" | "no_data";
|
|
307
|
+
tenders: {
|
|
308
|
+
window_months: number;
|
|
309
|
+
by_category: Record<string, number>;
|
|
310
|
+
recent: InfraTender[];
|
|
311
|
+
truncated: boolean;
|
|
312
|
+
};
|
|
313
|
+
kposk: {
|
|
314
|
+
in_agglomeration: boolean;
|
|
315
|
+
agglomerations: Array<{
|
|
316
|
+
name: string;
|
|
317
|
+
rlm: number | null;
|
|
318
|
+
}>;
|
|
319
|
+
truncated: boolean;
|
|
320
|
+
};
|
|
321
|
+
capex: {
|
|
322
|
+
by_year: Record<string, {
|
|
323
|
+
value_pln: number;
|
|
324
|
+
doc_category: string;
|
|
325
|
+
resolution_date: string | null;
|
|
326
|
+
gmina_count: number;
|
|
327
|
+
}>;
|
|
328
|
+
};
|
|
329
|
+
meta: {
|
|
330
|
+
coverage_note: string;
|
|
331
|
+
as_of: string | null;
|
|
332
|
+
};
|
|
333
|
+
}
|
|
334
|
+
export declare function getInfrastructureSignals(params: {
|
|
335
|
+
location?: string;
|
|
336
|
+
teryt?: string;
|
|
337
|
+
}, apiKey?: string): Promise<ApiResponse<InfrastructureSignalsResponse>>;
|
|
89
338
|
export interface CreditInfo {
|
|
90
339
|
balance: number;
|
|
91
340
|
cost: number;
|
|
@@ -94,7 +343,14 @@ export interface ApiResponse<T> {
|
|
|
94
343
|
data: T;
|
|
95
344
|
creditInfo: CreditInfo | null;
|
|
96
345
|
}
|
|
346
|
+
export declare const OAUTH_CTX_PREFIX = "\u0001";
|
|
97
347
|
export declare function encodeOAuthCtx(userId: string, grantId: string): string;
|
|
348
|
+
export declare function decodeOAuthCtx(key: string): {
|
|
349
|
+
userId: string;
|
|
350
|
+
grantId: string;
|
|
351
|
+
} | null;
|
|
352
|
+
export declare function parseRetryAfterSeconds(headerValue: string | null | undefined): number | null;
|
|
353
|
+
export declare function formatRetryAfter(seconds: number): string;
|
|
98
354
|
export declare function fetchApi<T>(path: string, params?: Record<string, string>, apiKey?: string): Promise<ApiResponse<T>>;
|
|
99
355
|
export declare function fetchApiPost<T>(path: string, body: unknown, apiKey?: string): Promise<ApiResponse<T>>;
|
|
100
356
|
export declare function getStats(apiKey?: string): Promise<ApiResponse<StatsResponse>>;
|
|
@@ -106,8 +362,9 @@ export interface TransactionParams {
|
|
|
106
362
|
parcelId?: string;
|
|
107
363
|
propertyType?: number;
|
|
108
364
|
marketType?: number;
|
|
109
|
-
unitFunction?: number;
|
|
110
|
-
buildingType?: number;
|
|
365
|
+
unitFunction?: number | string;
|
|
366
|
+
buildingType?: number | string;
|
|
367
|
+
ownershipType?: number | string;
|
|
111
368
|
mpzpDesignation?: string;
|
|
112
369
|
minPrice?: number;
|
|
113
370
|
maxPrice?: number;
|
|
@@ -116,6 +373,12 @@ export interface TransactionParams {
|
|
|
116
373
|
minArea?: number;
|
|
117
374
|
maxArea?: number;
|
|
118
375
|
bbox?: string;
|
|
376
|
+
transactionType?: string;
|
|
377
|
+
rooms?: string;
|
|
378
|
+
floor?: string;
|
|
379
|
+
floodRisk?: string;
|
|
380
|
+
heritageStatus?: string;
|
|
381
|
+
landslideRisk?: string;
|
|
119
382
|
limit?: number;
|
|
120
383
|
page?: number;
|
|
121
384
|
sort?: string;
|
|
@@ -125,6 +388,88 @@ export declare function getTransactions(p: TransactionParams, apiKey?: string):
|
|
|
125
388
|
export declare function getTransactionsSummary(p: TransactionParams, apiKey?: string): Promise<ApiResponse<TransactionsSummary>>;
|
|
126
389
|
export declare function getPricePerM2(apiKey?: string): Promise<ApiResponse<PricePerM2Row[]>>;
|
|
127
390
|
export declare function getDistricts(apiKey?: string): Promise<ApiResponse<string[]>>;
|
|
391
|
+
export declare function getRentalYield(params: {
|
|
392
|
+
location?: string;
|
|
393
|
+
teryt?: string;
|
|
394
|
+
areaBucket?: string;
|
|
395
|
+
}, apiKey?: string): Promise<ApiResponse<RentalYieldResponse>>;
|
|
396
|
+
export declare function getRentalYieldLocations(params: {
|
|
397
|
+
search?: string;
|
|
398
|
+
}, apiKey?: string): Promise<ApiResponse<RentalYieldLocationsResponse>>;
|
|
399
|
+
export declare function getPriceSpread(params: {
|
|
400
|
+
location?: string;
|
|
401
|
+
teryt?: string;
|
|
402
|
+
marketType?: string;
|
|
403
|
+
areaBucket?: string;
|
|
404
|
+
}, apiKey?: string): Promise<ApiResponse<PriceSpreadResponse>>;
|
|
405
|
+
export declare function getPriceSpreadLocations(params: {
|
|
406
|
+
search?: string;
|
|
407
|
+
}, apiKey?: string): Promise<ApiResponse<PriceSpreadLocationsResponse>>;
|
|
408
|
+
export interface ValuationComparable {
|
|
409
|
+
distance_m: number;
|
|
410
|
+
transaction_date: string;
|
|
411
|
+
area_m2: number;
|
|
412
|
+
price_per_m2: number;
|
|
413
|
+
rooms: number | null;
|
|
414
|
+
floor: number | null;
|
|
415
|
+
market_type: "primary" | "secondary" | null;
|
|
416
|
+
district: string | null;
|
|
417
|
+
has_unit_number: boolean;
|
|
418
|
+
unit_number?: string | null;
|
|
419
|
+
}
|
|
420
|
+
export interface ValuationResponse {
|
|
421
|
+
location: {
|
|
422
|
+
country_code: string;
|
|
423
|
+
lat: number | null;
|
|
424
|
+
lng: number | null;
|
|
425
|
+
county_code: string | null;
|
|
426
|
+
};
|
|
427
|
+
metric: string;
|
|
428
|
+
currency: string;
|
|
429
|
+
segment: {
|
|
430
|
+
property_type: string;
|
|
431
|
+
market_type: "primary" | "secondary" | "all";
|
|
432
|
+
area_m2: number;
|
|
433
|
+
rooms: number | null;
|
|
434
|
+
};
|
|
435
|
+
result: {
|
|
436
|
+
estimated_value: number | null;
|
|
437
|
+
price_per_m2: number | null;
|
|
438
|
+
value_range_likely: {
|
|
439
|
+
low: number | null;
|
|
440
|
+
high: number | null;
|
|
441
|
+
};
|
|
442
|
+
value_range_wide: {
|
|
443
|
+
low: number | null;
|
|
444
|
+
high: number | null;
|
|
445
|
+
};
|
|
446
|
+
confidence: number | null;
|
|
447
|
+
confidence_band: "high" | "medium" | "low" | null;
|
|
448
|
+
};
|
|
449
|
+
inputs: {
|
|
450
|
+
comps_total: number;
|
|
451
|
+
radius_m: number | null;
|
|
452
|
+
window_months: number;
|
|
453
|
+
comparables: ValuationComparable[] | null;
|
|
454
|
+
};
|
|
455
|
+
quality: {
|
|
456
|
+
coverage: "covered" | "no_data" | "not_covered";
|
|
457
|
+
as_of: string | null;
|
|
458
|
+
price_basis: "apartment" | "deed";
|
|
459
|
+
ess: number | null;
|
|
460
|
+
accuracy_segment: "wwa" | "duze" | "srednie" | "male" | null;
|
|
461
|
+
note: string;
|
|
462
|
+
};
|
|
463
|
+
}
|
|
464
|
+
export declare function getValuation(params: {
|
|
465
|
+
lat?: number;
|
|
466
|
+
lng?: number;
|
|
467
|
+
parcelId?: string;
|
|
468
|
+
area: number;
|
|
469
|
+
rooms?: number;
|
|
470
|
+
market?: "primary" | "secondary";
|
|
471
|
+
includeComps?: boolean;
|
|
472
|
+
}, apiKey?: string): Promise<ApiResponse<ValuationResponse>>;
|
|
128
473
|
export interface LocationItem {
|
|
129
474
|
code: string;
|
|
130
475
|
name: string;
|
|
@@ -134,7 +479,7 @@ export interface LocationItem {
|
|
|
134
479
|
export declare function getLocations(parent?: string, apiKey?: string): Promise<ApiResponse<LocationItem[]>>;
|
|
135
480
|
export declare function getPriceHistogram(bins?: number, max?: number, apiKey?: string): Promise<ApiResponse<HistogramBin[]>>;
|
|
136
481
|
export interface ParcelSearchResult {
|
|
137
|
-
parcel_id
|
|
482
|
+
parcel_id?: string;
|
|
138
483
|
district: string | null;
|
|
139
484
|
area_m2: number | null;
|
|
140
485
|
lat: number;
|
|
@@ -144,6 +489,140 @@ export interface ParcelSearchResponse {
|
|
|
144
489
|
results: ParcelSearchResult[];
|
|
145
490
|
}
|
|
146
491
|
export declare function searchParcels(q: string, limit?: number, apiKey?: string): Promise<ApiResponse<ParcelSearchResponse>>;
|
|
492
|
+
export interface ParcelResolveMatch {
|
|
493
|
+
id: string;
|
|
494
|
+
parcel_id: string | null;
|
|
495
|
+
parcel_key: string | null;
|
|
496
|
+
district: string | null;
|
|
497
|
+
county_code: string | null;
|
|
498
|
+
parcel_number: string | null;
|
|
499
|
+
area_m2: number | null;
|
|
500
|
+
has_geometry: boolean;
|
|
501
|
+
centroid: {
|
|
502
|
+
lat: number;
|
|
503
|
+
lng: number;
|
|
504
|
+
} | null;
|
|
505
|
+
}
|
|
506
|
+
export interface ParcelResolveResponse {
|
|
507
|
+
query: {
|
|
508
|
+
mode: string;
|
|
509
|
+
q?: string;
|
|
510
|
+
parcelId?: string;
|
|
511
|
+
lat?: number;
|
|
512
|
+
lng?: number;
|
|
513
|
+
};
|
|
514
|
+
coverage: "covered" | "not_covered";
|
|
515
|
+
as_of: string | null;
|
|
516
|
+
matches: ParcelResolveMatch[];
|
|
517
|
+
truncated: boolean;
|
|
518
|
+
}
|
|
519
|
+
export interface ResolveParcelParams {
|
|
520
|
+
q?: string;
|
|
521
|
+
parcelId?: string;
|
|
522
|
+
lat?: number;
|
|
523
|
+
lng?: number;
|
|
524
|
+
}
|
|
525
|
+
export declare function resolveParcel(params: ResolveParcelParams, apiKey?: string): Promise<ApiResponse<ParcelResolveResponse>>;
|
|
526
|
+
export interface ReportMarketLevel {
|
|
527
|
+
coverage: string;
|
|
528
|
+
median_price_per_m2: number | null;
|
|
529
|
+
n: number;
|
|
530
|
+
county_code?: string | null;
|
|
531
|
+
district?: string | null;
|
|
532
|
+
}
|
|
533
|
+
export interface ReportMarketContext {
|
|
534
|
+
coverage: string;
|
|
535
|
+
as_of: string | null;
|
|
536
|
+
county: ReportMarketLevel;
|
|
537
|
+
locality: ReportMarketLevel;
|
|
538
|
+
note?: string | null;
|
|
539
|
+
}
|
|
540
|
+
export interface ReportDemographicsSection {
|
|
541
|
+
coverage: string;
|
|
542
|
+
as_of: string | null;
|
|
543
|
+
name: string | null;
|
|
544
|
+
indicators: Record<string, DemographicsIndicator>;
|
|
545
|
+
}
|
|
546
|
+
export interface ReportInfraSection {
|
|
547
|
+
coverage: string;
|
|
548
|
+
as_of: string | null;
|
|
549
|
+
gmina_name: string | null;
|
|
550
|
+
tenders: {
|
|
551
|
+
window_months: number;
|
|
552
|
+
by_category: Record<string, number>;
|
|
553
|
+
recent: InfraTender[];
|
|
554
|
+
truncated: boolean;
|
|
555
|
+
};
|
|
556
|
+
kposk: {
|
|
557
|
+
in_agglomeration: boolean;
|
|
558
|
+
agglomerations: Array<{
|
|
559
|
+
name: string;
|
|
560
|
+
rlm: number | null;
|
|
561
|
+
}>;
|
|
562
|
+
truncated: boolean;
|
|
563
|
+
};
|
|
564
|
+
capex: {
|
|
565
|
+
by_year: Record<string, unknown>;
|
|
566
|
+
};
|
|
567
|
+
note?: string | null;
|
|
568
|
+
}
|
|
569
|
+
export interface ReportLocationContext {
|
|
570
|
+
coverage: string;
|
|
571
|
+
as_of: string | null;
|
|
572
|
+
gmina_teryt: string | null;
|
|
573
|
+
demographics: ReportDemographicsSection;
|
|
574
|
+
infra_signals: ReportInfraSection;
|
|
575
|
+
note?: string | null;
|
|
576
|
+
}
|
|
577
|
+
export interface ReportSection {
|
|
578
|
+
coverage: string;
|
|
579
|
+
as_of: string | null;
|
|
580
|
+
note?: string | null;
|
|
581
|
+
[key: string]: unknown;
|
|
582
|
+
}
|
|
583
|
+
export interface ParcelReportResponse {
|
|
584
|
+
parcel: {
|
|
585
|
+
id: string | null;
|
|
586
|
+
parcel_id: string | null;
|
|
587
|
+
parcel_key: string | null;
|
|
588
|
+
district?: string | null;
|
|
589
|
+
county_code?: string | null;
|
|
590
|
+
county_name?: string | null;
|
|
591
|
+
voivodeship_name?: string | null;
|
|
592
|
+
parcel_number?: string | null;
|
|
593
|
+
area_m2?: number | null;
|
|
594
|
+
land_use?: string | null;
|
|
595
|
+
mpzp_designation?: string | null;
|
|
596
|
+
has_geometry?: boolean;
|
|
597
|
+
centroid?: {
|
|
598
|
+
lat: number;
|
|
599
|
+
lng: number;
|
|
600
|
+
} | null;
|
|
601
|
+
};
|
|
602
|
+
coverage: string;
|
|
603
|
+
as_of: string | null;
|
|
604
|
+
sections: {
|
|
605
|
+
transactions: ReportSection;
|
|
606
|
+
flood: ReportSection;
|
|
607
|
+
heritage: ReportSection;
|
|
608
|
+
landslide: ReportSection;
|
|
609
|
+
surroundings: ReportSection;
|
|
610
|
+
transit: ReportSection;
|
|
611
|
+
planning: ReportSection;
|
|
612
|
+
buildings: ReportSection;
|
|
613
|
+
permits: ReportSection;
|
|
614
|
+
farmland: ReportSection;
|
|
615
|
+
market_context: ReportMarketContext;
|
|
616
|
+
location_context: ReportLocationContext;
|
|
617
|
+
};
|
|
618
|
+
billing: {
|
|
619
|
+
charged: number;
|
|
620
|
+
refunded: number;
|
|
621
|
+
rule: string;
|
|
622
|
+
};
|
|
623
|
+
note?: string | null;
|
|
624
|
+
}
|
|
625
|
+
export declare function getParcelReport(parcelKey: string, apiKey?: string): Promise<ApiResponse<ParcelReportResponse>>;
|
|
147
626
|
export interface SpatialSearchParams {
|
|
148
627
|
polygon: {
|
|
149
628
|
type: "Polygon";
|
|
@@ -151,8 +630,9 @@ export interface SpatialSearchParams {
|
|
|
151
630
|
};
|
|
152
631
|
propertyType?: number;
|
|
153
632
|
marketType?: number;
|
|
154
|
-
unitFunction?: number;
|
|
155
|
-
buildingType?: number;
|
|
633
|
+
unitFunction?: number | string;
|
|
634
|
+
buildingType?: number | string;
|
|
635
|
+
ownershipType?: number | string;
|
|
156
636
|
mpzpDesignation?: string;
|
|
157
637
|
minPrice?: number;
|
|
158
638
|
maxPrice?: number;
|
|
@@ -162,6 +642,9 @@ export interface SpatialSearchParams {
|
|
|
162
642
|
maxArea?: number;
|
|
163
643
|
district?: string;
|
|
164
644
|
street?: string;
|
|
645
|
+
transactionType?: string;
|
|
646
|
+
rooms?: string;
|
|
647
|
+
floor?: string;
|
|
165
648
|
limit?: number;
|
|
166
649
|
}
|
|
167
650
|
export interface SpatialFeatureProperties {
|
|
@@ -175,11 +658,30 @@ export interface SpatialFeatureProperties {
|
|
|
175
658
|
rooms: number | null;
|
|
176
659
|
floor: number | null;
|
|
177
660
|
street: string | null;
|
|
661
|
+
address_source?: "rcn" | "approx_high" | "approx_low" | "none" | null;
|
|
178
662
|
building_number: string | null;
|
|
179
663
|
city: string | null;
|
|
180
664
|
district: string | null;
|
|
181
665
|
parcel_area: number | null;
|
|
182
666
|
parcel_number: string | null;
|
|
667
|
+
share_basis?: "full" | "fraction" | "ambiguous" | null;
|
|
668
|
+
is_garage?: boolean | null;
|
|
669
|
+
area_basis?: "unit" | "building" | null;
|
|
670
|
+
parcel_count?: number | null;
|
|
671
|
+
area_is_ha_converted?: boolean | null;
|
|
672
|
+
property_type_inferred?: boolean | null;
|
|
673
|
+
property_type_reclassed?: boolean | null;
|
|
674
|
+
ownership_type?: number | null;
|
|
675
|
+
ownership_share?: string | null;
|
|
676
|
+
seller_type?: number | null;
|
|
677
|
+
buyer_type?: number | null;
|
|
678
|
+
land_use?: string | null;
|
|
679
|
+
unit_price?: number | string | null;
|
|
680
|
+
vat?: number | string | null;
|
|
681
|
+
building_count?: number | null;
|
|
682
|
+
footprint_area_m2?: number | null;
|
|
683
|
+
est_total_area_m2?: number | null;
|
|
684
|
+
building_storeys?: number | null;
|
|
183
685
|
}
|
|
184
686
|
export interface SpatialFeature {
|
|
185
687
|
type: "Feature";
|
|
@@ -196,6 +698,14 @@ export interface SpatialSearchResponse {
|
|
|
196
698
|
total: number;
|
|
197
699
|
}
|
|
198
700
|
export declare function searchByPolygon(p: SpatialSearchParams, apiKey?: string): Promise<ApiResponse<SpatialSearchResponse>>;
|
|
701
|
+
export interface CompareDemographicsIndicator {
|
|
702
|
+
value: number | null;
|
|
703
|
+
year: number | null;
|
|
704
|
+
unit: string;
|
|
705
|
+
derived?: boolean;
|
|
706
|
+
cross_source?: boolean;
|
|
707
|
+
note?: string;
|
|
708
|
+
}
|
|
199
709
|
export interface CompareEntry {
|
|
200
710
|
median_price_m2: number | null;
|
|
201
711
|
avg_area: number | null;
|
|
@@ -203,14 +713,16 @@ export interface CompareEntry {
|
|
|
203
713
|
max_date: string | null;
|
|
204
714
|
total: number;
|
|
205
715
|
suggestions?: string[];
|
|
716
|
+
demographics?: Record<string, CompareDemographicsIndicator>;
|
|
206
717
|
}
|
|
207
718
|
export type CompareResponse = Record<string, CompareEntry>;
|
|
208
719
|
export interface CompareParams {
|
|
209
720
|
districts: string;
|
|
210
721
|
propertyType?: number;
|
|
211
722
|
marketType?: number;
|
|
212
|
-
unitFunction?: number;
|
|
213
|
-
buildingType?: number;
|
|
723
|
+
unitFunction?: number | string;
|
|
724
|
+
buildingType?: number | string;
|
|
725
|
+
ownershipType?: number | string;
|
|
214
726
|
mpzpDesignation?: string;
|
|
215
727
|
minPrice?: number;
|
|
216
728
|
maxPrice?: number;
|
|
@@ -219,5 +731,164 @@ export interface CompareParams {
|
|
|
219
731
|
minArea?: number;
|
|
220
732
|
maxArea?: number;
|
|
221
733
|
street?: string;
|
|
734
|
+
transactionType?: string;
|
|
735
|
+
rooms?: string;
|
|
736
|
+
floor?: string;
|
|
737
|
+
include?: string;
|
|
222
738
|
}
|
|
223
739
|
export declare function compareLocations(p: CompareParams, apiKey?: string): Promise<ApiResponse<CompareResponse>>;
|
|
740
|
+
export interface BuildingBreakdownRow {
|
|
741
|
+
building_type: number | null;
|
|
742
|
+
footprint_area_m2: number | null;
|
|
743
|
+
footprint_area_alt_m2: number | null;
|
|
744
|
+
footprint_divergent: boolean | null;
|
|
745
|
+
storeys: number | null;
|
|
746
|
+
est_total_area_m2: number | null;
|
|
747
|
+
match_confidence: string | null;
|
|
748
|
+
}
|
|
749
|
+
export interface BuildingBreakdownResponse {
|
|
750
|
+
data: BuildingBreakdownRow[];
|
|
751
|
+
truncated: boolean;
|
|
752
|
+
}
|
|
753
|
+
export declare function getBuildingBreakdown(transactionId: string, apiKey?: string): Promise<ApiResponse<BuildingBreakdownResponse>>;
|
|
754
|
+
export interface FloodScenario {
|
|
755
|
+
scenario: string | null;
|
|
756
|
+
source: string | null;
|
|
757
|
+
returnPeriod: number | null;
|
|
758
|
+
severity: number;
|
|
759
|
+
isLeveeFailure: boolean;
|
|
760
|
+
depthClass: string | null;
|
|
761
|
+
}
|
|
762
|
+
export interface FloodBreakdownRow {
|
|
763
|
+
flood_risk: "high" | "medium" | "low" | null;
|
|
764
|
+
severity_rank: number | null;
|
|
765
|
+
worst_scenario: string | null;
|
|
766
|
+
source: string | null;
|
|
767
|
+
depth_class: string | null;
|
|
768
|
+
pct_in_zone: number | string | null;
|
|
769
|
+
nearest_zone_m: number | null;
|
|
770
|
+
scenarios: FloodScenario[] | null;
|
|
771
|
+
}
|
|
772
|
+
export interface FloodBreakdownResponse {
|
|
773
|
+
data: FloodBreakdownRow[];
|
|
774
|
+
truncated: boolean;
|
|
775
|
+
}
|
|
776
|
+
export declare function getTransactionFlood(transactionId: string, apiKey?: string): Promise<ApiResponse<FloodBreakdownResponse>>;
|
|
777
|
+
export interface HeritageSite {
|
|
778
|
+
category: string;
|
|
779
|
+
name?: string | null;
|
|
780
|
+
function: string | null;
|
|
781
|
+
period: string | null;
|
|
782
|
+
entry_date: string | null;
|
|
783
|
+
}
|
|
784
|
+
export interface HeritageBreakdownRow {
|
|
785
|
+
heritage_status: "listed" | "zone" | null;
|
|
786
|
+
severity_rank: number | null;
|
|
787
|
+
pct_in_zone: number | string | null;
|
|
788
|
+
site_count: number | null;
|
|
789
|
+
sites: HeritageSite[] | null;
|
|
790
|
+
}
|
|
791
|
+
export interface HeritageBreakdownResponse {
|
|
792
|
+
data: HeritageBreakdownRow[];
|
|
793
|
+
truncated: boolean;
|
|
794
|
+
}
|
|
795
|
+
export interface LandslideZone {
|
|
796
|
+
kind: string | null;
|
|
797
|
+
source_version_date: string | null;
|
|
798
|
+
}
|
|
799
|
+
export interface LandslideBreakdownRow {
|
|
800
|
+
landslide_risk: "landslide" | "threatened" | null;
|
|
801
|
+
severity_rank: number | null;
|
|
802
|
+
pct_in_zone: number | string | null;
|
|
803
|
+
zones: LandslideZone[] | null;
|
|
804
|
+
}
|
|
805
|
+
export interface LandslideBreakdownResponse {
|
|
806
|
+
data: LandslideBreakdownRow[];
|
|
807
|
+
truncated: boolean;
|
|
808
|
+
}
|
|
809
|
+
export interface TransitBreakdownRow {
|
|
810
|
+
rail_distance_m: number | null;
|
|
811
|
+
rail_stop_name: string | null;
|
|
812
|
+
metro_distance_m: number | null;
|
|
813
|
+
metro_stop_name: string | null;
|
|
814
|
+
tram_distance_m: number | null;
|
|
815
|
+
tram_stop_name: string | null;
|
|
816
|
+
bus_distance_m: number | null;
|
|
817
|
+
bus_stop_name: string | null;
|
|
818
|
+
}
|
|
819
|
+
export interface TransitBreakdownResponse {
|
|
820
|
+
data: TransitBreakdownRow[];
|
|
821
|
+
truncated: boolean;
|
|
822
|
+
}
|
|
823
|
+
export interface PermitRecord {
|
|
824
|
+
record_kind: "permit" | "notification";
|
|
825
|
+
intent_type: string | null;
|
|
826
|
+
object_category: string | null;
|
|
827
|
+
works_type: string | null;
|
|
828
|
+
status: string | null;
|
|
829
|
+
decision_date: string | null;
|
|
830
|
+
intake_date: string | null;
|
|
831
|
+
authority: string | null;
|
|
832
|
+
address_street: string | null;
|
|
833
|
+
address_number: string | null;
|
|
834
|
+
address_city: string | null;
|
|
835
|
+
volume_m3: number | null;
|
|
836
|
+
}
|
|
837
|
+
export interface PermitsResponse {
|
|
838
|
+
data: PermitRecord[];
|
|
839
|
+
truncated: boolean;
|
|
840
|
+
note?: string;
|
|
841
|
+
}
|
|
842
|
+
export declare function getTransactionHeritage(transactionId: string, apiKey?: string): Promise<ApiResponse<HeritageBreakdownResponse>>;
|
|
843
|
+
export declare function getTransactionLandslide(transactionId: string, apiKey?: string): Promise<ApiResponse<LandslideBreakdownResponse>>;
|
|
844
|
+
export interface SurroundingsRow {
|
|
845
|
+
assessed: boolean;
|
|
846
|
+
cemetery_distance_m: number | string | null;
|
|
847
|
+
landfill_distance_m: number | string | null;
|
|
848
|
+
sewage_treatment_distance_m: number | string | null;
|
|
849
|
+
industrial_area_distance_m: number | string | null;
|
|
850
|
+
industrial_plant_distance_m: number | string | null;
|
|
851
|
+
livestock_farm_distance_m: number | string | null;
|
|
852
|
+
}
|
|
853
|
+
export interface SurroundingsResponse {
|
|
854
|
+
data: SurroundingsRow[];
|
|
855
|
+
truncated?: boolean;
|
|
856
|
+
}
|
|
857
|
+
export declare function getTransactionSurroundings(transactionId: string, apiKey?: string): Promise<ApiResponse<SurroundingsResponse>>;
|
|
858
|
+
export declare function getTransactionTransit(transactionId: string, apiKey?: string): Promise<ApiResponse<TransitBreakdownResponse>>;
|
|
859
|
+
export declare function getTransactionPermits(transactionId: string, apiKey?: string): Promise<ApiResponse<PermitsResponse>>;
|
|
860
|
+
export interface PlanningRow {
|
|
861
|
+
parcel_ord: number;
|
|
862
|
+
kind: string;
|
|
863
|
+
zone_symbol: string | null;
|
|
864
|
+
zone_name: string | null;
|
|
865
|
+
pct_of_parcel: number | string | null;
|
|
866
|
+
max_building_height_m: number | string | null;
|
|
867
|
+
max_development_intensity: number | string | null;
|
|
868
|
+
max_built_up_coverage_pct: number | string | null;
|
|
869
|
+
min_bio_active_area_pct: number | string | null;
|
|
870
|
+
params_mixed: boolean;
|
|
871
|
+
effective_from: string | null;
|
|
872
|
+
}
|
|
873
|
+
export interface PlanningResponse {
|
|
874
|
+
data: PlanningRow[];
|
|
875
|
+
truncated: boolean;
|
|
876
|
+
coverage: "covered" | "covered_no_data" | "not_covered";
|
|
877
|
+
parcels_total: number;
|
|
878
|
+
parcels_covered: number;
|
|
879
|
+
note: string | null;
|
|
880
|
+
}
|
|
881
|
+
export declare function getTransactionPlanning(transactionId: string, apiKey?: string): Promise<ApiResponse<PlanningResponse>>;
|
|
882
|
+
export interface FarmlandRow {
|
|
883
|
+
eligible_area_m2: number;
|
|
884
|
+
pct_of_parcel: number | null;
|
|
885
|
+
feature_count: number;
|
|
886
|
+
}
|
|
887
|
+
export interface FarmlandResponse {
|
|
888
|
+
data: FarmlandRow[];
|
|
889
|
+
truncated: boolean;
|
|
890
|
+
parcels_total: number;
|
|
891
|
+
parcels_with_data: number;
|
|
892
|
+
as_of: string | null;
|
|
893
|
+
}
|
|
894
|
+
export declare function getTransactionFarmland(transactionId: string, apiKey?: string): Promise<ApiResponse<FarmlandResponse>>;
|