bmlt-query-client 1.2.0 → 1.4.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/CHANGELOG.md +36 -1
- package/dist/app.d.ts +112 -50
- package/dist/app.js +93 -93
- package/dist/app.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,39 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [1.4.0] - 2026-05-15
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- Response transforms applied inside `searchMeetings`, `searchMeetingsByAddress`, `searchMeetingsByCoordinates`, `searchMeetingsWithFormats`, `getServerInfo`, and `getCoverageArea`. BMLT serializes numeric fields as quoted strings; the client now coerces them to real `number` values so consumers get idiomatic types without needing to parse manually.
|
|
14
|
+
|
|
15
|
+
### Changed
|
|
16
|
+
|
|
17
|
+
- **Breaking:** `Meeting` numeric fields are now typed and returned as `number` (were `string` in 1.3.0): `weekday_tinyint`, `venue_type`, `published`, `latitude`, `longitude`.
|
|
18
|
+
- **Breaking:** `Meeting.distance_in_km` and `Meeting.distance_in_miles` are `number | undefined` (were `string | undefined`); the transform maps the empty strings BMLT returns for non-geographic searches to `undefined`.
|
|
19
|
+
- **Breaking:** `ServerInfo` numeric fields are now `number` (were `string`): `versionInt`, `centerLongitude`, `centerLatitude`, `centerZoom`, `semanticAdmin`, `changesPerMeeting`.
|
|
20
|
+
- **Breaking:** `CoverageArea` corner fields are now `number` (were `string`): `nw_corner_longitude`, `nw_corner_latitude`, `se_corner_longitude`, `se_corner_latitude`.
|
|
21
|
+
|
|
22
|
+
## [1.3.0] - 2026-05-15
|
|
23
|
+
|
|
24
|
+
### Added
|
|
25
|
+
|
|
26
|
+
- `Meeting` response type now includes fields previously missing from the interface: `formats` (comma-separated format key strings), `phone_meeting_number`, `bus_lines`, `train_lines`, `shared_group_id_bigint`, `lang_enum`, `contact_name_1`/`contact_name_2`, `contact_phone_1`/`contact_phone_2`, `contact_email_1`/`contact_email_2`, and `admin_notes`.
|
|
27
|
+
- `ServerInfo` response type rewritten to match the actual `GetServerInfo` response: added `versionInt`, `centerLongitude`, `centerLatitude`, `centerZoom`, `defaultDuration`, `regionBias`, `charSet`, `distanceUnits`, `semanticAdmin`, `changesPerMeeting`, `meeting_states_and_provinces`, `meeting_counties_and_sub_provinces`, `available_keys`, `google_api_key`, `dbVersion`, `dbPrefix`, `phpVersion`, `auto_geocoding_enabled`, `county_auto_geocoding_enabled`, `zip_auto_geocoding_enabled`, `commit`, `default_closed_status`, and `aggregator_mode_enabled`.
|
|
28
|
+
|
|
29
|
+
### Changed
|
|
30
|
+
|
|
31
|
+
- **Breaking:** `Meeting` numeric fields are now typed as `string` to match the actual JSON response (BMLT returns these as quoted strings): `weekday_tinyint`, `venue_type`, `published`, `latitude`, `longitude`, `distance_in_km`, `distance_in_miles`.
|
|
32
|
+
- **Breaking:** `ServiceBody` fields `description`, `url`, `helpline`, `world_id`, and `parent_id` are now required (the server always returns them, possibly as empty strings).
|
|
33
|
+
- **Breaking:** `Format` fields `world_id` and `format_type_enum` are now required (the server always returns them, possibly as empty strings).
|
|
34
|
+
- **Breaking:** `ServerInfo` interface no longer includes the fictional fields `availableEndpoints`, `supportedFormats`, `name`, `description`, or `coverageArea`. `langs` is now a comma-separated `string` (was `string[]`).
|
|
35
|
+
- **Breaking:** `CoverageArea` rewritten with the actual response fields (`nw_corner_longitude`, `nw_corner_latitude`, `se_corner_longitude`, `se_corner_latitude` — all numeric strings); replaces the previous `north_latitude`/`south_latitude`/`east_longitude`/`west_longitude` fields.
|
|
36
|
+
- `BmltClient.getServerInfo()` and `getCoverageArea()` now unwrap the single-element array returned by the server, preserving the single-object return type.
|
|
37
|
+
|
|
38
|
+
### Fixed
|
|
39
|
+
|
|
40
|
+
- Misleading doc comment on `Meeting.format_shared_id_list` — clarified that this field is comma-separated format IDs while the new `formats` field is comma-separated format key strings.
|
|
41
|
+
|
|
9
42
|
## [1.2.0] - 2026-05-12
|
|
10
43
|
|
|
11
44
|
### Added
|
|
@@ -52,7 +85,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
|
52
85
|
- Zero external runtime dependencies — p-queue and p-retry are bundled via Vite.
|
|
53
86
|
- ES module only; native `fetch` API; TypeScript declarations included.
|
|
54
87
|
|
|
55
|
-
[Unreleased]: https://github.com/bmlt-enabled/bmlt-query-client/compare/v1.
|
|
88
|
+
[Unreleased]: https://github.com/bmlt-enabled/bmlt-query-client/compare/v1.4.0...HEAD
|
|
89
|
+
[1.4.0]: https://github.com/bmlt-enabled/bmlt-query-client/compare/v1.3.0...v1.4.0
|
|
90
|
+
[1.3.0]: https://github.com/bmlt-enabled/bmlt-query-client/compare/v1.2.0...v1.3.0
|
|
56
91
|
[1.2.0]: https://github.com/bmlt-enabled/bmlt-query-client/compare/v1.1.0...v1.2.0
|
|
57
92
|
[1.1.0]: https://github.com/bmlt-enabled/bmlt-query-client/compare/v1.0.6...v1.1.0
|
|
58
93
|
[1.0.6]: https://github.com/bmlt-enabled/bmlt-query-client/compare/v1.0.0...v1.0.6
|
package/dist/app.d.ts
CHANGED
|
@@ -311,14 +311,14 @@ export declare interface Coordinates {
|
|
|
311
311
|
export declare function countUniqueGroups(meetings: Meeting[]): number;
|
|
312
312
|
|
|
313
313
|
export declare interface CoverageArea {
|
|
314
|
-
/**
|
|
315
|
-
|
|
316
|
-
/**
|
|
317
|
-
|
|
318
|
-
/**
|
|
319
|
-
|
|
320
|
-
/**
|
|
321
|
-
|
|
314
|
+
/** Northwest corner longitude as a numeric string */
|
|
315
|
+
nw_corner_longitude: string;
|
|
316
|
+
/** Northwest corner latitude as a numeric string */
|
|
317
|
+
nw_corner_latitude: string;
|
|
318
|
+
/** Southeast corner longitude as a numeric string */
|
|
319
|
+
se_corner_longitude: string;
|
|
320
|
+
/** Southeast corner latitude as a numeric string */
|
|
321
|
+
se_corner_latitude: string;
|
|
322
322
|
}
|
|
323
323
|
|
|
324
324
|
/** A single meeting paired with the index of the list it came from */
|
|
@@ -455,10 +455,10 @@ export declare interface Format {
|
|
|
455
455
|
description_string: string;
|
|
456
456
|
/** Language */
|
|
457
457
|
lang: string;
|
|
458
|
-
/** World format ID */
|
|
459
|
-
world_id
|
|
460
|
-
/** Format type enum */
|
|
461
|
-
format_type_enum
|
|
458
|
+
/** World format ID (may be empty string) */
|
|
459
|
+
world_id: string;
|
|
460
|
+
/** Format type enum (may be empty string) */
|
|
461
|
+
format_type_enum: string;
|
|
462
462
|
/** Root server URI (for aggregator mode) */
|
|
463
463
|
root_server_uri?: string;
|
|
464
464
|
}
|
|
@@ -596,10 +596,10 @@ export declare enum Language {
|
|
|
596
596
|
export declare interface Meeting {
|
|
597
597
|
/** Meeting ID */
|
|
598
598
|
id_bigint: string;
|
|
599
|
-
/** Weekday (1-7) */
|
|
600
|
-
weekday_tinyint:
|
|
601
|
-
/** Venue type (1=In-person, 2=Virtual, 3=Hybrid) */
|
|
602
|
-
venue_type:
|
|
599
|
+
/** Weekday (1-7) as a numeric string */
|
|
600
|
+
weekday_tinyint: string;
|
|
601
|
+
/** Venue type (1=In-person, 2=Virtual, 3=Hybrid) as a numeric string */
|
|
602
|
+
venue_type: string;
|
|
603
603
|
/** Start time (24-hour format HH:MM:SS) */
|
|
604
604
|
start_time: string;
|
|
605
605
|
/** Duration time (HH:MM:SS) */
|
|
@@ -628,12 +628,12 @@ export declare interface Meeting {
|
|
|
628
628
|
location_sub_province?: string;
|
|
629
629
|
/** Location nation */
|
|
630
630
|
location_nation?: string;
|
|
631
|
-
/** Latitude */
|
|
632
|
-
latitude:
|
|
633
|
-
/** Longitude */
|
|
634
|
-
longitude:
|
|
635
|
-
/** Published status (0=unpublished, 1=published) */
|
|
636
|
-
published:
|
|
631
|
+
/** Latitude as a numeric string */
|
|
632
|
+
latitude: string;
|
|
633
|
+
/** Longitude as a numeric string */
|
|
634
|
+
longitude: string;
|
|
635
|
+
/** Published status (0=unpublished, 1=published) as a numeric string */
|
|
636
|
+
published: string;
|
|
637
637
|
/** Email contact */
|
|
638
638
|
email_contact?: string;
|
|
639
639
|
/** World Committee Code */
|
|
@@ -642,20 +642,46 @@ export declare interface Meeting {
|
|
|
642
642
|
service_body_bigint: string;
|
|
643
643
|
/** Service body Name */
|
|
644
644
|
service_body_name?: string;
|
|
645
|
+
/** Shared group ID */
|
|
646
|
+
shared_group_id_bigint?: string;
|
|
647
|
+
/** Meeting formats (comma-separated format key strings, e.g. "O,D,NS,FD") */
|
|
648
|
+
formats: string;
|
|
645
649
|
/** Meeting formats (comma-separated format IDs) */
|
|
646
650
|
format_shared_id_list?: string;
|
|
651
|
+
/** Language enum (e.g. "en") */
|
|
652
|
+
lang_enum?: string;
|
|
647
653
|
/** Meeting comments */
|
|
648
654
|
comments?: string;
|
|
649
655
|
/** Virtual meeting URL */
|
|
650
656
|
virtual_meeting_link?: string;
|
|
651
657
|
/** Virtual meeting additional info */
|
|
652
658
|
virtual_meeting_additional_info?: string;
|
|
659
|
+
/** Phone meeting number (may be empty string) */
|
|
660
|
+
phone_meeting_number: string;
|
|
661
|
+
/** Bus lines serving the meeting location (may be empty string) */
|
|
662
|
+
bus_lines: string;
|
|
663
|
+
/** Train lines serving the meeting location (may be empty string) */
|
|
664
|
+
train_lines: string;
|
|
665
|
+
/** Primary contact name (only returned to authenticated admins) */
|
|
666
|
+
contact_name_1?: string;
|
|
667
|
+
/** Secondary contact name (only returned to authenticated admins) */
|
|
668
|
+
contact_name_2?: string;
|
|
669
|
+
/** Primary contact phone (only returned to authenticated admins) */
|
|
670
|
+
contact_phone_1?: string;
|
|
671
|
+
/** Secondary contact phone (only returned to authenticated admins) */
|
|
672
|
+
contact_phone_2?: string;
|
|
673
|
+
/** Primary contact email (only returned to authenticated admins) */
|
|
674
|
+
contact_email_1?: string;
|
|
675
|
+
/** Secondary contact email (only returned to authenticated admins) */
|
|
676
|
+
contact_email_2?: string;
|
|
677
|
+
/** Admin notes (only returned to authenticated admins) */
|
|
678
|
+
admin_notes?: string;
|
|
653
679
|
/** Root server URI (for aggregator mode) */
|
|
654
680
|
root_server_uri?: string;
|
|
655
|
-
/** Distance from search point (when using geographic search) */
|
|
656
|
-
distance_in_km?:
|
|
657
|
-
/** Distance in miles
|
|
658
|
-
distance_in_miles?:
|
|
681
|
+
/** Distance from search point in km as a numeric string (when using geographic search; may be empty string otherwise) */
|
|
682
|
+
distance_in_km?: string;
|
|
683
|
+
/** Distance from search point in miles as a numeric string (when using geographic search; may be empty string otherwise) */
|
|
684
|
+
distance_in_miles?: string;
|
|
659
685
|
}
|
|
660
686
|
|
|
661
687
|
export declare class MeetingQueryBuilder {
|
|
@@ -1015,22 +1041,58 @@ export declare interface SearchResultsParams extends BaseSearchParams {
|
|
|
1015
1041
|
}
|
|
1016
1042
|
|
|
1017
1043
|
export declare interface ServerInfo {
|
|
1018
|
-
/** Server version */
|
|
1044
|
+
/** Server version (e.g. "4.2.0") */
|
|
1019
1045
|
version: string;
|
|
1020
|
-
/**
|
|
1021
|
-
|
|
1022
|
-
/** Supported
|
|
1023
|
-
|
|
1024
|
-
/**
|
|
1025
|
-
langs: string[];
|
|
1026
|
-
/** Native language */
|
|
1046
|
+
/** Server version as integer string (e.g. "4002000") */
|
|
1047
|
+
versionInt: string;
|
|
1048
|
+
/** Supported languages, comma-separated (e.g. "da,de,el,en,es") */
|
|
1049
|
+
langs: string;
|
|
1050
|
+
/** Native language code (e.g. "en") */
|
|
1027
1051
|
nativeLang: string;
|
|
1028
|
-
/**
|
|
1029
|
-
|
|
1030
|
-
/**
|
|
1031
|
-
|
|
1032
|
-
/**
|
|
1033
|
-
|
|
1052
|
+
/** Map center longitude as a numeric string */
|
|
1053
|
+
centerLongitude: string;
|
|
1054
|
+
/** Map center latitude as a numeric string */
|
|
1055
|
+
centerLatitude: string;
|
|
1056
|
+
/** Default map zoom level as a numeric string */
|
|
1057
|
+
centerZoom: string;
|
|
1058
|
+
/** Default meeting duration (HH:MM:SS) */
|
|
1059
|
+
defaultDuration: string;
|
|
1060
|
+
/** Region bias for geocoding (e.g. "us") */
|
|
1061
|
+
regionBias: string;
|
|
1062
|
+
/** Character set (e.g. "UTF-8") */
|
|
1063
|
+
charSet: string;
|
|
1064
|
+
/** Distance units ("mi" or "km") */
|
|
1065
|
+
distanceUnits: string;
|
|
1066
|
+
/** Semantic admin enabled flag as a numeric string ("0" or "1") */
|
|
1067
|
+
semanticAdmin: string;
|
|
1068
|
+
/** Number of changes tracked per meeting as a numeric string */
|
|
1069
|
+
changesPerMeeting: string;
|
|
1070
|
+
/** Comma-separated list of states/provinces with meetings */
|
|
1071
|
+
meeting_states_and_provinces: string;
|
|
1072
|
+
/** Comma-separated list of counties/sub-provinces with meetings */
|
|
1073
|
+
meeting_counties_and_sub_provinces: string;
|
|
1074
|
+
/** Comma-separated list of meeting fields available in search results */
|
|
1075
|
+
available_keys: string;
|
|
1076
|
+
/** Google Maps API key */
|
|
1077
|
+
google_api_key: string;
|
|
1078
|
+
/** Database migration version */
|
|
1079
|
+
dbVersion: string;
|
|
1080
|
+
/** Database table prefix */
|
|
1081
|
+
dbPrefix: string;
|
|
1082
|
+
/** PHP version running on the server */
|
|
1083
|
+
phpVersion: string;
|
|
1084
|
+
/** Whether automatic geocoding is enabled */
|
|
1085
|
+
auto_geocoding_enabled: boolean;
|
|
1086
|
+
/** Whether county auto-geocoding is enabled */
|
|
1087
|
+
county_auto_geocoding_enabled: boolean;
|
|
1088
|
+
/** Whether ZIP auto-geocoding is enabled */
|
|
1089
|
+
zip_auto_geocoding_enabled: boolean;
|
|
1090
|
+
/** Git commit hash of the server build */
|
|
1091
|
+
commit: string;
|
|
1092
|
+
/** Whether new meetings default to closed status */
|
|
1093
|
+
default_closed_status: boolean;
|
|
1094
|
+
/** Whether aggregator mode is enabled */
|
|
1095
|
+
aggregator_mode_enabled: boolean;
|
|
1034
1096
|
}
|
|
1035
1097
|
|
|
1036
1098
|
export declare interface ServiceBodiesParams extends BaseSearchParams {
|
|
@@ -1047,18 +1109,18 @@ export declare interface ServiceBody {
|
|
|
1047
1109
|
id: string;
|
|
1048
1110
|
/** Service body name */
|
|
1049
1111
|
name: string;
|
|
1050
|
-
/** Service body description */
|
|
1051
|
-
description
|
|
1112
|
+
/** Service body description (may be empty string) */
|
|
1113
|
+
description: string;
|
|
1052
1114
|
/** Service body type */
|
|
1053
1115
|
type: string;
|
|
1054
|
-
/** Service body URL */
|
|
1055
|
-
url
|
|
1056
|
-
/** Help line */
|
|
1057
|
-
helpline
|
|
1058
|
-
/** World service committee code */
|
|
1059
|
-
world_id
|
|
1060
|
-
/** Parent service body ID */
|
|
1061
|
-
parent_id
|
|
1116
|
+
/** Service body URL (may be empty string) */
|
|
1117
|
+
url: string;
|
|
1118
|
+
/** Help line (may be empty string) */
|
|
1119
|
+
helpline: string;
|
|
1120
|
+
/** World service committee code (may be empty string) */
|
|
1121
|
+
world_id: string;
|
|
1122
|
+
/** Parent service body ID ("0" for root service bodies) */
|
|
1123
|
+
parent_id: string;
|
|
1062
1124
|
/** Root server URI (for aggregator mode) */
|
|
1063
1125
|
root_server_uri?: string;
|
|
1064
1126
|
}
|