bmlt-query-client 1.2.0 → 1.3.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 CHANGED
@@ -6,6 +6,26 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [1.3.0] - 2026-05-15
10
+
11
+ ### Added
12
+
13
+ - `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`.
14
+ - `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`.
15
+
16
+ ### Changed
17
+
18
+ - **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`.
19
+ - **Breaking:** `ServiceBody` fields `description`, `url`, `helpline`, `world_id`, and `parent_id` are now required (the server always returns them, possibly as empty strings).
20
+ - **Breaking:** `Format` fields `world_id` and `format_type_enum` are now required (the server always returns them, possibly as empty strings).
21
+ - **Breaking:** `ServerInfo` interface no longer includes the fictional fields `availableEndpoints`, `supportedFormats`, `name`, `description`, or `coverageArea`. `langs` is now a comma-separated `string` (was `string[]`).
22
+ - **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.
23
+ - `BmltClient.getServerInfo()` and `getCoverageArea()` now unwrap the single-element array returned by the server, preserving the single-object return type.
24
+
25
+ ### Fixed
26
+
27
+ - 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.
28
+
9
29
  ## [1.2.0] - 2026-05-12
10
30
 
11
31
  ### Added
@@ -52,7 +72,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
52
72
  - Zero external runtime dependencies — p-queue and p-retry are bundled via Vite.
53
73
  - ES module only; native `fetch` API; TypeScript declarations included.
54
74
 
55
- [Unreleased]: https://github.com/bmlt-enabled/bmlt-query-client/compare/v1.2.0...HEAD
75
+ [Unreleased]: https://github.com/bmlt-enabled/bmlt-query-client/compare/v1.3.0...HEAD
76
+ [1.3.0]: https://github.com/bmlt-enabled/bmlt-query-client/compare/v1.2.0...v1.3.0
56
77
  [1.2.0]: https://github.com/bmlt-enabled/bmlt-query-client/compare/v1.1.0...v1.2.0
57
78
  [1.1.0]: https://github.com/bmlt-enabled/bmlt-query-client/compare/v1.0.6...v1.1.0
58
79
  [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
- /** North boundary */
315
- north_latitude: number;
316
- /** South boundary */
317
- south_latitude: number;
318
- /** East boundary */
319
- east_longitude: number;
320
- /** West boundary */
321
- west_longitude: number;
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?: string;
460
- /** Format type enum */
461
- format_type_enum?: string;
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: number;
601
- /** Venue type (1=In-person, 2=Virtual, 3=Hybrid) */
602
- venue_type: number;
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: number;
633
- /** Longitude */
634
- longitude: number;
635
- /** Published status (0=unpublished, 1=published) */
636
- published: number;
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?: number;
657
- /** Distance in miles from search point */
658
- distance_in_miles?: number;
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
- /** Available endpoints */
1021
- availableEndpoints: string[];
1022
- /** Supported formats */
1023
- supportedFormats: string[];
1024
- /** Supported languages */
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
- /** Server name */
1029
- name?: string;
1030
- /** Server description */
1031
- description?: string;
1032
- /** Coverage area information */
1033
- coverageArea?: CoverageArea;
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?: string;
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?: string;
1056
- /** Help line */
1057
- helpline?: string;
1058
- /** World service committee code */
1059
- world_id?: string;
1060
- /** Parent service body ID */
1061
- parent_id?: string;
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
  }