bmlt-query-client 1.1.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/AGENTS.md +14 -0
- package/CHANGELOG.md +80 -0
- package/README.md +38 -0
- package/dist/app.d.ts +135 -56
- package/dist/app.js +292 -268
- package/dist/app.js.map +1 -1
- package/package.json +3 -2
- package/vite.config.ts +3 -3
package/AGENTS.md
CHANGED
|
@@ -97,6 +97,20 @@ Key rules:
|
|
|
97
97
|
4. Export any new public types from `src/types/index.ts` and any new public classes/functions from `src/index.ts`.
|
|
98
98
|
5. Add a usage example in `examples/basic-usage.ts`.
|
|
99
99
|
6. Add or extend a test in `test/basic.test.ts`.
|
|
100
|
+
7. Update `CHANGELOG.md` under `[Unreleased]`.
|
|
101
|
+
|
|
102
|
+
## Raw Query
|
|
103
|
+
|
|
104
|
+
`BmltClient.rawQuery<T>(queryString, format?)` sends a raw BMLT query string directly to the server. The first token is treated as the switcher value when it has no `=` sign:
|
|
105
|
+
|
|
106
|
+
- `'GetSearchResults&venue_types=2'` → `switcher=GetSearchResults&venue_types=2`
|
|
107
|
+
- `'switcher=GetSearchResults&venue_types=2'` → passed through unchanged
|
|
108
|
+
|
|
109
|
+
The internal HTTP fetch+parse logic lives in the private `fetchAndParse` method shared with `makeRequest`. Do not duplicate it.
|
|
110
|
+
|
|
111
|
+
## Array Parameters
|
|
112
|
+
|
|
113
|
+
`meeting_key_value` in `SearchResultsParams` accepts `string | string[]`. The URL builder serialises arrays as repeated `key[]=value` entries (e.g. `meeting_key_value[]=USA&meeting_key_value[]=US`). This same pattern applies to all other array-typed parameters (`weekdays`, `venue_types`, `formats`, `services`, `root_server_ids`, `meeting_ids`).
|
|
100
114
|
|
|
101
115
|
## Geocoding
|
|
102
116
|
|
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
6
|
+
|
|
7
|
+
## [Unreleased]
|
|
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
|
+
|
|
29
|
+
## [1.2.0] - 2026-05-12
|
|
30
|
+
|
|
31
|
+
### Added
|
|
32
|
+
|
|
33
|
+
- `BmltClient.rawQuery<T>(queryString, format?)` — execute a raw BMLT query string directly against the server. The switcher can be written as a bare endpoint name (`GetSearchResults&...`) or with the explicit `switcher=` key (`switcher=GetSearchResults&...`).
|
|
34
|
+
- `meeting_key_value` in `SearchResultsParams` now accepts `string | string[]`, enabling multi-value field searches (e.g. `meeting_key_value: ['USA', 'US']` serialises as `meeting_key_value[]=USA&meeting_key_value[]=US`).
|
|
35
|
+
- `MeetingQueryBuilder.fieldValue()` now accepts `string | string[]` to match multiple values for a field key.
|
|
36
|
+
- Raw query input section added to the browser demo (`docs/index.html`).
|
|
37
|
+
|
|
38
|
+
## [1.1.0] - 2026-04-27
|
|
39
|
+
|
|
40
|
+
### Added
|
|
41
|
+
|
|
42
|
+
- `BmltClient.searchMeetingsWithFormats()` — fetches meetings and the formats they reference in a single round-trip using `get_used_formats=true`. Avoids a separate `getFormats()` call on large servers.
|
|
43
|
+
- `MeetingQueryBuilder.executeWithFormats()` — equivalent fluent builder method that returns `MeetingsWithFormats`.
|
|
44
|
+
- `BmltClient.getServerURL()` and `BmltClient.setServerURL()` — read and update the server URL after construction.
|
|
45
|
+
- `findDuplicateMeetings(lists, options?)` utility — identifies the same meeting appearing across multiple result lists. Configurable comparison fields and normalization.
|
|
46
|
+
- `countUniqueGroups(meetings)` utility — counts distinct groups (service body + meeting name) in a meeting list.
|
|
47
|
+
- Additional language codes added to the `Language` enum.
|
|
48
|
+
|
|
49
|
+
## [1.0.6] - 2026-03-26
|
|
50
|
+
|
|
51
|
+
### Fixed
|
|
52
|
+
|
|
53
|
+
- Response type corrections in `responses.ts`.
|
|
54
|
+
|
|
55
|
+
### Changed
|
|
56
|
+
|
|
57
|
+
- Dependency updates.
|
|
58
|
+
|
|
59
|
+
## [1.0.0] - 2025-09-06
|
|
60
|
+
|
|
61
|
+
### Added
|
|
62
|
+
|
|
63
|
+
- Initial release.
|
|
64
|
+
- `BmltClient` with full BMLT Semantic API coverage: `searchMeetings`, `getFormats`, `getServiceBodies`, `getChanges`, `getFieldKeys`, `getFieldValues`, `getNAWSDump`, `getServerInfo`, `getCoverageArea`.
|
|
65
|
+
- `MeetingQueryBuilder` — fluent, chainable query builder for meeting searches.
|
|
66
|
+
- `QuickSearch` — convenience helpers (`today()`, `virtual()`, `evening()`, `weekend()`, etc.).
|
|
67
|
+
- Built-in geocoding via OpenStreetMap Nominatim with rate limiting and retry.
|
|
68
|
+
- `BmltClient.searchMeetingsByAddress()` and `searchMeetingsByCoordinates()` for geographic searches.
|
|
69
|
+
- `BmltClient.geocodeAddress()` and `reverseGeocode()`.
|
|
70
|
+
- Configurable user agent, timeout, default format, and geocoding options.
|
|
71
|
+
- `BmltQueryError` / `BmltErrorType` for typed error handling.
|
|
72
|
+
- Zero external runtime dependencies — p-queue and p-retry are bundled via Vite.
|
|
73
|
+
- ES module only; native `fetch` API; TypeScript declarations included.
|
|
74
|
+
|
|
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
|
|
77
|
+
[1.2.0]: https://github.com/bmlt-enabled/bmlt-query-client/compare/v1.1.0...v1.2.0
|
|
78
|
+
[1.1.0]: https://github.com/bmlt-enabled/bmlt-query-client/compare/v1.0.6...v1.1.0
|
|
79
|
+
[1.0.6]: https://github.com/bmlt-enabled/bmlt-query-client/compare/v1.0.0...v1.0.6
|
|
80
|
+
[1.0.0]: https://github.com/bmlt-enabled/bmlt-query-client/releases/tag/v1.0.0
|
package/README.md
CHANGED
|
@@ -183,6 +183,44 @@ const todaysVirtualMeetings = await quickSearch
|
|
|
183
183
|
.execute();
|
|
184
184
|
```
|
|
185
185
|
|
|
186
|
+
### Raw Query
|
|
187
|
+
|
|
188
|
+
When you need to pass a BMLT query string exactly as-is — including parameters like `meeting_key_value[]` that match multiple values — use `rawQuery`:
|
|
189
|
+
|
|
190
|
+
```javascript
|
|
191
|
+
// Bare endpoint shorthand (most common)
|
|
192
|
+
const meetings = await client.rawQuery(
|
|
193
|
+
'GetSearchResults&venue_types=2&meeting_key=location_nation&meeting_key_value[]=USA&meeting_key_value[]=US'
|
|
194
|
+
);
|
|
195
|
+
|
|
196
|
+
// Explicit switcher= form also works
|
|
197
|
+
const meetings2 = await client.rawQuery('switcher=GetSearchResults&page_size=10');
|
|
198
|
+
|
|
199
|
+
// With get_used_formats — returns { meetings, formats }
|
|
200
|
+
import type { MeetingsWithFormats } from 'bmlt-query-client';
|
|
201
|
+
|
|
202
|
+
const result = await client.rawQuery<MeetingsWithFormats>(
|
|
203
|
+
'GetSearchResults&get_used_formats=1&venue_types=2'
|
|
204
|
+
);
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
Multi-value `meeting_key_value` is also available through the typed API:
|
|
208
|
+
|
|
209
|
+
```javascript
|
|
210
|
+
// Typed params — array serialises as meeting_key_value[]=USA&meeting_key_value[]=US
|
|
211
|
+
const meetings = await client.searchMeetings({
|
|
212
|
+
venue_types: VenueType.IN_PERSON,
|
|
213
|
+
meeting_key: 'location_nation',
|
|
214
|
+
meeting_key_value: ['USA', 'US'],
|
|
215
|
+
});
|
|
216
|
+
|
|
217
|
+
// Or via query builder
|
|
218
|
+
const meetings2 = await new MeetingQueryBuilder(client)
|
|
219
|
+
.inPersonOnly()
|
|
220
|
+
.fieldValue('location_nation', ['USA', 'US'])
|
|
221
|
+
.execute();
|
|
222
|
+
```
|
|
223
|
+
|
|
186
224
|
### Finding Duplicate Meetings
|
|
187
225
|
|
|
188
226
|
When querying meetings from multiple service bodies or servers, use `findDuplicateMeetings` to identify the same meeting appearing in more than one list:
|
package/dist/app.d.ts
CHANGED
|
@@ -14,10 +14,27 @@ export declare class BmltClient {
|
|
|
14
14
|
private serverURL;
|
|
15
15
|
private defaultFormat;
|
|
16
16
|
constructor(options: BmltClientOptions);
|
|
17
|
+
/**
|
|
18
|
+
* Fetch a URL and parse the response according to format
|
|
19
|
+
*/
|
|
20
|
+
private fetchAndParse;
|
|
17
21
|
/**
|
|
18
22
|
* Make a request to the BMLT API
|
|
19
23
|
*/
|
|
20
24
|
private makeRequest;
|
|
25
|
+
/**
|
|
26
|
+
* Execute a raw BMLT query string against the server.
|
|
27
|
+
*
|
|
28
|
+
* Pass the query exactly as you'd append it to a BMLT URL. The switcher
|
|
29
|
+
* can be written with or without the key name:
|
|
30
|
+
*
|
|
31
|
+
* // bare endpoint name — most common shorthand
|
|
32
|
+
* client.rawQuery('GetSearchResults&venue_types=2&meeting_key=location_nation&meeting_key_value[]=USA&meeting_key_value[]=US')
|
|
33
|
+
*
|
|
34
|
+
* // explicit switcher= key also works
|
|
35
|
+
* client.rawQuery('switcher=GetSearchResults&venue_types=2')
|
|
36
|
+
*/
|
|
37
|
+
rawQuery<T = unknown>(queryString: string, format?: BmltDataFormat): Promise<T>;
|
|
21
38
|
/**
|
|
22
39
|
* Search for meetings
|
|
23
40
|
*/
|
|
@@ -75,11 +92,11 @@ export declare class BmltClient {
|
|
|
75
92
|
/**
|
|
76
93
|
* Geocode an address using the built-in geocoding service
|
|
77
94
|
*/
|
|
78
|
-
geocodeAddress(address: string, options?: Partial<GeocodeOptions>): Promise<GeocodeResult>;
|
|
95
|
+
geocodeAddress(address: string, options?: Partial<GeocodeOptions>): Promise< GeocodeResult>;
|
|
79
96
|
/**
|
|
80
97
|
* Reverse geocode coordinates to an address
|
|
81
98
|
*/
|
|
82
|
-
reverseGeocode(coordinates: Coordinates, options?: Partial<GeocodeOptions>): Promise<GeocodeResult>;
|
|
99
|
+
reverseGeocode(coordinates: Coordinates, options?: Partial<GeocodeOptions>): Promise< GeocodeResult>;
|
|
83
100
|
/**
|
|
84
101
|
* Get the server URL
|
|
85
102
|
*/
|
|
@@ -294,14 +311,14 @@ export declare interface Coordinates {
|
|
|
294
311
|
export declare function countUniqueGroups(meetings: Meeting[]): number;
|
|
295
312
|
|
|
296
313
|
export declare interface CoverageArea {
|
|
297
|
-
/**
|
|
298
|
-
|
|
299
|
-
/**
|
|
300
|
-
|
|
301
|
-
/**
|
|
302
|
-
|
|
303
|
-
/**
|
|
304
|
-
|
|
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;
|
|
305
322
|
}
|
|
306
323
|
|
|
307
324
|
/** A single meeting paired with the index of the list it came from */
|
|
@@ -438,10 +455,10 @@ export declare interface Format {
|
|
|
438
455
|
description_string: string;
|
|
439
456
|
/** Language */
|
|
440
457
|
lang: string;
|
|
441
|
-
/** World format ID */
|
|
442
|
-
world_id
|
|
443
|
-
/** Format type enum */
|
|
444
|
-
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;
|
|
445
462
|
/** Root server URI (for aggregator mode) */
|
|
446
463
|
root_server_uri?: string;
|
|
447
464
|
}
|
|
@@ -579,10 +596,10 @@ export declare enum Language {
|
|
|
579
596
|
export declare interface Meeting {
|
|
580
597
|
/** Meeting ID */
|
|
581
598
|
id_bigint: string;
|
|
582
|
-
/** Weekday (1-7) */
|
|
583
|
-
weekday_tinyint:
|
|
584
|
-
/** Venue type (1=In-person, 2=Virtual, 3=Hybrid) */
|
|
585
|
-
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;
|
|
586
603
|
/** Start time (24-hour format HH:MM:SS) */
|
|
587
604
|
start_time: string;
|
|
588
605
|
/** Duration time (HH:MM:SS) */
|
|
@@ -611,12 +628,12 @@ export declare interface Meeting {
|
|
|
611
628
|
location_sub_province?: string;
|
|
612
629
|
/** Location nation */
|
|
613
630
|
location_nation?: string;
|
|
614
|
-
/** Latitude */
|
|
615
|
-
latitude:
|
|
616
|
-
/** Longitude */
|
|
617
|
-
longitude:
|
|
618
|
-
/** Published status (0=unpublished, 1=published) */
|
|
619
|
-
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;
|
|
620
637
|
/** Email contact */
|
|
621
638
|
email_contact?: string;
|
|
622
639
|
/** World Committee Code */
|
|
@@ -625,20 +642,46 @@ export declare interface Meeting {
|
|
|
625
642
|
service_body_bigint: string;
|
|
626
643
|
/** Service body Name */
|
|
627
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;
|
|
628
649
|
/** Meeting formats (comma-separated format IDs) */
|
|
629
650
|
format_shared_id_list?: string;
|
|
651
|
+
/** Language enum (e.g. "en") */
|
|
652
|
+
lang_enum?: string;
|
|
630
653
|
/** Meeting comments */
|
|
631
654
|
comments?: string;
|
|
632
655
|
/** Virtual meeting URL */
|
|
633
656
|
virtual_meeting_link?: string;
|
|
634
657
|
/** Virtual meeting additional info */
|
|
635
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;
|
|
636
679
|
/** Root server URI (for aggregator mode) */
|
|
637
680
|
root_server_uri?: string;
|
|
638
|
-
/** Distance from search point (when using geographic search) */
|
|
639
|
-
distance_in_km?:
|
|
640
|
-
/** Distance in miles
|
|
641
|
-
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;
|
|
642
685
|
}
|
|
643
686
|
|
|
644
687
|
export declare class MeetingQueryBuilder {
|
|
@@ -729,9 +772,9 @@ export declare class MeetingQueryBuilder {
|
|
|
729
772
|
*/
|
|
730
773
|
nearCoordinates(coordinates: Coordinates, radiusMiles?: number, radiusKm?: number): this;
|
|
731
774
|
/**
|
|
732
|
-
* Search for specific field value
|
|
775
|
+
* Search for specific field value; pass an array to match any of multiple values
|
|
733
776
|
*/
|
|
734
|
-
fieldValue(fieldKey: string, value: string): this;
|
|
777
|
+
fieldValue(fieldKey: string, value: string | string[]): this;
|
|
735
778
|
/**
|
|
736
779
|
* Return only specific fields
|
|
737
780
|
*/
|
|
@@ -979,8 +1022,8 @@ export declare interface SearchResultsParams extends BaseSearchParams {
|
|
|
979
1022
|
sort_results_by_distance?: boolean;
|
|
980
1023
|
/** Search for specific field value */
|
|
981
1024
|
meeting_key?: string;
|
|
982
|
-
/** The value to search for */
|
|
983
|
-
meeting_key_value?: string;
|
|
1025
|
+
/** The value to search for; pass an array to match any of multiple values */
|
|
1026
|
+
meeting_key_value?: string | string[];
|
|
984
1027
|
/** Return only specific fields (comma-separated) */
|
|
985
1028
|
data_field_key?: string;
|
|
986
1029
|
/** Sort results by specific fields (comma-separated) */
|
|
@@ -998,22 +1041,58 @@ export declare interface SearchResultsParams extends BaseSearchParams {
|
|
|
998
1041
|
}
|
|
999
1042
|
|
|
1000
1043
|
export declare interface ServerInfo {
|
|
1001
|
-
/** Server version */
|
|
1044
|
+
/** Server version (e.g. "4.2.0") */
|
|
1002
1045
|
version: string;
|
|
1003
|
-
/**
|
|
1004
|
-
|
|
1005
|
-
/** Supported
|
|
1006
|
-
|
|
1007
|
-
/**
|
|
1008
|
-
langs: string[];
|
|
1009
|
-
/** 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") */
|
|
1010
1051
|
nativeLang: string;
|
|
1011
|
-
/**
|
|
1012
|
-
|
|
1013
|
-
/**
|
|
1014
|
-
|
|
1015
|
-
/**
|
|
1016
|
-
|
|
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;
|
|
1017
1096
|
}
|
|
1018
1097
|
|
|
1019
1098
|
export declare interface ServiceBodiesParams extends BaseSearchParams {
|
|
@@ -1030,18 +1109,18 @@ export declare interface ServiceBody {
|
|
|
1030
1109
|
id: string;
|
|
1031
1110
|
/** Service body name */
|
|
1032
1111
|
name: string;
|
|
1033
|
-
/** Service body description */
|
|
1034
|
-
description
|
|
1112
|
+
/** Service body description (may be empty string) */
|
|
1113
|
+
description: string;
|
|
1035
1114
|
/** Service body type */
|
|
1036
1115
|
type: string;
|
|
1037
|
-
/** Service body URL */
|
|
1038
|
-
url
|
|
1039
|
-
/** Help line */
|
|
1040
|
-
helpline
|
|
1041
|
-
/** World service committee code */
|
|
1042
|
-
world_id
|
|
1043
|
-
/** Parent service body ID */
|
|
1044
|
-
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;
|
|
1045
1124
|
/** Root server URI (for aggregator mode) */
|
|
1046
1125
|
root_server_uri?: string;
|
|
1047
1126
|
}
|