@bowmark/web 1.17.0 → 1.18.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.
@@ -5,8 +5,8 @@
5
5
  // rather than imported. An `import` or `export` at the top level of this file would
6
6
  // turn it into a module and every declaration below would stop being global.
7
7
  //
8
- // Manifest version: c3b10cd54e186870ffdcb91995b4222605550dc2a437407330e776b47faaaf31
9
- // 45 capabilities, 363 providers, 902 typed functions, 20 refused.
8
+ // Manifest version: 12940343b1f8c9228a6b145e3e5125fe143419901694198fcc8789af04b5dc2e
9
+ // 45 capabilities, 367 providers, 913 typed functions, 20 refused.
10
10
  // 51,715 family members, sharing 2 interface(s) — declared once and pointed at, never repeated per member.
11
11
  //
12
12
  // REFUSED — these functions are real and callable, and their declared arguments
@@ -10551,6 +10551,7 @@ interface DentalplansPlanListing {
10551
10551
  monthlyPrice: number;
10552
10552
  dentistsNearYou: number | null;
10553
10553
  detailUrl: string;
10554
+ checkoutUrl: string | null;
10554
10555
  }
10555
10556
 
10556
10557
  interface DentalplansSearchResult {
@@ -11400,6 +11401,78 @@ interface ebayItem {
11400
11401
  }
11401
11402
  }
11402
11403
 
11404
+ declare namespace BowmarkProvider_elase {
11405
+ // ── Elase Med Spa — the unit's own declarations, verbatim ──
11406
+ interface ElaseLocationLink {
11407
+ slug: string;
11408
+ url: string;
11409
+ }
11410
+
11411
+ interface ElaseLocation {
11412
+ slug: string;
11413
+ name: string;
11414
+ url: string;
11415
+ centerId: string; // the id listServices and checkAvailability take
11416
+ phone: string | null;
11417
+ address: string | null;
11418
+ hours: string | null;
11419
+ }
11420
+
11421
+ interface ElaseService {
11422
+ id: string; // the id checkAvailability takes
11423
+ name: string;
11424
+ description: string | null;
11425
+ durationMinutes: number | null;
11426
+ price: number | null;
11427
+ }
11428
+
11429
+ interface ElaseSlot {
11430
+ time: string; // an ISO-ish "YYYY-MM-DDTHH:mm:ss" local time
11431
+ }
11432
+
11433
+ interface ElaseAvailability {
11434
+ centerId: string;
11435
+ serviceId: string;
11436
+ date: string;
11437
+ slots: ElaseSlot[]; // verbatim — empty is a real answer (fully booked / closed)
11438
+ }
11439
+
11440
+ /**
11441
+ * Elase Med Spa's real location directory, live per-location service catalog, and real
11442
+ * open-slot appointment availability — the same Zenoti booking backend the site's own widget
11443
+ * calls. Rung 9/11, no browser.
11444
+ */
11445
+ interface Unit {
11446
+ /**
11447
+ * Reads the live list of every Elase Med Spa location (slug + page URL) off the site's own
11448
+ * /locations/ directory.
11449
+ */
11450
+ listLocations(): Promise<ElaseLocationLink[]>;
11451
+
11452
+ /**
11453
+ * Resolves a slug/neighborhood query (e.g. "sugar-house") to the matching real Elase
11454
+ * location(s) — name, address, phone, hours, and the Zenoti centerId listServices and
11455
+ * checkAvailability need. Call listLocations() first for the real slugs.
11456
+ */
11457
+ findLocation(query: string): Promise<ElaseLocation[]>;
11458
+
11459
+ /**
11460
+ * Reads one location's real, live service catalog — pass a `centerId` from findLocation(), and
11461
+ * an optional search string (e.g. "botox", "consultation") to narrow it; omit it for the full
11462
+ * catalog.
11463
+ */
11464
+ listServices(centerId: string, query?: string): Promise<ElaseService[]>;
11465
+
11466
+ /**
11467
+ * Checks real, live open time slots for one service at one location on one "YYYY-MM-DD" date —
11468
+ * the same live check Elase's own Zenoti booking widget makes before showing bookable times.
11469
+ * An empty `slots` array is the site's real answer (fully booked or closed that day), not an
11470
+ * error.
11471
+ */
11472
+ checkAvailability(centerId: string, serviceId: string, date: string): Promise<ElaseAvailability>;
11473
+ }
11474
+ }
11475
+
11403
11476
  declare namespace BowmarkProvider_elevenlabs {
11404
11477
  // ── ElevenLabs — the unit's own declarations, verbatim ──
11405
11478
  interface elevenlabsSynthesisResult {
@@ -11607,6 +11680,34 @@ interface Eq3SofaConfiguration {
11607
11680
  }
11608
11681
  }
11609
11682
 
11683
+ declare namespace BowmarkProvider_equinox_hotels {
11684
+ // ── Equinox Hotels — the unit's own declarations, verbatim ──
11685
+ interface EquinoxRoom { code: string; name: string; description: string | null; maxOccupants: number | null; bookingUrl: string; }
11686
+
11687
+ interface SearchEquinoxRatesArgs { checkIn: string; checkOut: string; adults?: number; }
11688
+
11689
+ interface EquinoxRate { roomCode: string; rateCode: string; description: string | null; currency: string; nightlyBeforeTax: number; nightlyAfterTax: number; stayBeforeTax: number | null; stayAfterTax: number | null; cancellationText: string | null; bookingUrl: string; }
11690
+
11691
+ /**
11692
+ * Equinox Hotel New York's own live room inventory and direct booking rates, including nightly
11693
+ * and stay-total tax-inclusive prices before any guest details are required.
11694
+ */
11695
+ interface Unit {
11696
+ /**
11697
+ * Lists Equinox Hotel New York's live room inventory, including the booking engine's room
11698
+ * code, description, and occupancy limit.
11699
+ */
11700
+ listRooms(): Promise<EquinoxRoom[]>;
11701
+
11702
+ /**
11703
+ * Searches Equinox Hotel New York's own live booking engine for direct rates on
11704
+ * check-in/check-out dates and an adult count. Returns every room/rate plan with nightly and
11705
+ * stay-total prices, not an OTA estimate.
11706
+ */
11707
+ searchRates(args: SearchEquinoxRatesArgs): Promise<EquinoxRate[]>;
11708
+ }
11709
+ }
11710
+
11610
11711
  declare namespace BowmarkProvider_erieinsurance {
11611
11712
  // ── ERIE Insurance — the unit's own declarations, verbatim ──
11612
11713
  interface ErieAgentQuery {
@@ -11817,6 +11918,31 @@ type ShadeQuizAnswerResult =
11817
11918
  }
11818
11919
  }
11819
11920
 
11921
+ declare namespace BowmarkProvider_evolvemedspa {
11922
+ // ── Evolve Med Spa — the unit's own declarations, verbatim ──
11923
+ interface EvolveMedSpaLocation { id: string; name: string; address: string | null; phone: string | null; }
11924
+ interface EvolveMedSpaService { id: string; name: string; description: string | null; durationMinutes: number | null; price: number | null; }
11925
+ interface EvolveMedSpaAvailability { centerId: string; serviceId: string; date: string; slots: { time: string }[]; }
11926
+
11927
+ /**
11928
+ * Evolve Med Spa's live Zenoti locations, service catalog, and bookable appointment slots — no
11929
+ * login, no PII, and no browser.
11930
+ */
11931
+ interface Unit {
11932
+ /** Lists Evolve Med Spa's real bookable Zenoti locations. */
11933
+ listLocations(): Promise<EvolveMedSpaLocation[]>;
11934
+
11935
+ /** Lists a location's live Zenoti services, prices, and durations. */
11936
+ listServices(centerId: string, query?: string): Promise<EvolveMedSpaService[]>;
11937
+
11938
+ /**
11939
+ * Reads real open appointment slots for a service and date; an empty list is a real
11940
+ * fully-booked answer.
11941
+ */
11942
+ checkAvailability(centerId: string, serviceId: string, date: string): Promise<EvolveMedSpaAvailability>;
11943
+ }
11944
+ }
11945
+
11820
11946
  declare namespace BowmarkProvider_executivehomecare {
11821
11947
  // ── Executive Home Care — the unit's own declarations, verbatim ──
11822
11948
  interface ExecutivehomecareOffice {
@@ -28774,6 +28900,62 @@ interface uspsRateOption {
28774
28900
  }
28775
28901
  }
28776
28902
 
28903
+ declare namespace BowmarkProvider_vbt {
28904
+ // ── VBT Vacations — the unit's own declarations, verbatim ──
28905
+ interface VbtTourListing {
28906
+ slug: string; // e.g. "dolomites-self-guided-bike-tour"
28907
+ url: string; // full https://www.vbt.com/... tour page URL
28908
+ region: string; // e.g. "europe"
28909
+ country: string; // e.g. "italy"
28910
+ lastmod: string | null;
28911
+ }
28912
+ interface VbtPackageOption {
28913
+ durationDays: number;
28914
+ fromPrice: number; // per-person starting price, USD
28915
+ }
28916
+ interface VbtDeparture {
28917
+ id: string;
28918
+ departureDate: string; // ISO date
28919
+ returnDate: string | null; // ISO date
28920
+ stopSellFlag: boolean; // VBT's own "sales closed" signal, not live seat count
28921
+ status: string | null; // the site's own labels — read the values off a result, never guess one from prose
28922
+ deposit: string | null;
28923
+ finalPaymentDate: string | null;
28924
+ }
28925
+ interface VbtTourDepartures {
28926
+ tourId: string;
28927
+ tourName: string;
28928
+ tourUrl: string;
28929
+ packageOptions: { tour: VbtPackageOption; tourPlusTravelPackage: VbtPackageOption };
28930
+ departures: VbtDeparture[];
28931
+ bookingUrl: string; // the same page — VBT's own "View Dates & Book" is client-rendered here
28932
+ }
28933
+
28934
+ /**
28935
+ * Reads VBT's own tour pages — every self-guided/guided bike and walking tour it sells — and
28936
+ * returns its current departure dates, stop-sell flags and Tour-Only / Tour+Travel-Package
28937
+ * starting prices straight out of the page's own server-rendered data, no browser.
28938
+ */
28939
+ interface Unit {
28940
+ /**
28941
+ * Lists every tour VBT publishes today, straight off vbt.com's own sitemap.xml — slug, full
28942
+ * tour URL and region/country for every /destinations/<region>/<country>/<slug> entry (108
28943
+ * tours measured 2026-09-11). The entry point: pass any returned `url` or `slug` into
28944
+ * `getTourDepartures`.
28945
+ */
28946
+ listTours(): Promise<{ tours: VbtTourListing[] }>;
28947
+
28948
+ /**
28949
+ * Reads one VBT tour's own page (full URL from `listTours`, or just its slug, e.g.
28950
+ * `"dolomites-self-guided-bike-tour"`) and returns its Tour-Only and Tour+Travel-Package
28951
+ * starting prices plus every listed departure — date, VBT's own stop-sell flag, return date,
28952
+ * deposit and final-payment date — exactly as published today, with the page URL as the
28953
+ * booking handoff. Throws if the slug does not resolve to a real tour.
28954
+ */
28955
+ getTourDepartures(tourUrlOrSlug: string): Promise<VbtTourDepartures>;
28956
+ }
28957
+ }
28958
+
28777
28959
  declare namespace BowmarkProvider_vervecoffee {
28778
28960
  // ── Verve Coffee Roasters — the unit's own declarations, verbatim ──
28779
28961
  interface VervecoffeeSubscription {
@@ -30982,14 +31164,17 @@ interface BowmarkProviders {
30982
31164
  doordash: BowmarkProvider_doordash.Unit;
30983
31165
  dumpsters: BowmarkProvider_dumpsters.Unit;
30984
31166
  ebay: BowmarkProvider_ebay.Unit;
31167
+ elase: BowmarkProvider_elase.Unit;
30985
31168
  elevenlabs: BowmarkProvider_elevenlabs.Unit;
30986
31169
  embroker: BowmarkProvider_embroker.Unit;
30987
31170
  epromos: BowmarkProvider_epromos.Unit;
30988
31171
  eq3: BowmarkProvider_eq3.Unit;
31172
+ equinox_hotels: BowmarkProvider_equinox_hotels.Unit;
30989
31173
  erieinsurance: BowmarkProvider_erieinsurance.Unit;
30990
31174
  etsy: BowmarkProvider_etsy.Unit;
30991
31175
  eventsource: BowmarkProvider_eventsource.Unit;
30992
31176
  evolutionofsmooth: BowmarkProvider_evolutionofsmooth.Unit;
31177
+ evolvemedspa: BowmarkProvider_evolvemedspa.Unit;
30993
31178
  executivehomecare: BowmarkProvider_executivehomecare.Unit;
30994
31179
  extraspace: BowmarkProvider_extraspace.Unit;
30995
31180
  facerealityskincare: BowmarkProvider_facerealityskincare.Unit;
@@ -31190,6 +31375,7 @@ interface BowmarkProviders {
31190
31375
  ulrichlifestyle: BowmarkProvider_ulrichlifestyle.Unit;
31191
31376
  ups: BowmarkProvider_ups.Unit;
31192
31377
  usps: BowmarkProvider_usps.Unit;
31378
+ vbt: BowmarkProvider_vbt.Unit;
31193
31379
  vervecoffee: BowmarkProvider_vervecoffee.Unit;
31194
31380
  vessi: BowmarkProvider_vessi.Unit;
31195
31381
  viewrail: BowmarkProvider_viewrail.Unit;
@@ -5,10 +5,10 @@
5
5
  // declares no readable argument shape — not an absent one, which is what the
6
6
  // guard fails closed on.
7
7
  //
8
- // Manifest version: c3b10cd54e186870ffdcb91995b4222605550dc2a437407330e776b47faaaf31
9
- // 884 checked, 20 unchecked.
8
+ // Manifest version: 12940343b1f8c9228a6b145e3e5125fe143419901694198fcc8789af04b5dc2e
9
+ // 895 checked, 20 unchecked.
10
10
  export const VALIDATORS = {
11
- "version": "c3b10cd54e186870ffdcb91995b4222605550dc2a437407330e776b47faaaf31",
11
+ "version": "12940343b1f8c9228a6b145e3e5125fe143419901694198fcc8789af04b5dc2e",
12
12
  "units": {
13
13
  "bundles": {
14
14
  "defs": {},
@@ -10230,6 +10230,60 @@ export const VALIDATORS = {
10230
10230
  ]
10231
10231
  }
10232
10232
  },
10233
+ "providers.elase": {
10234
+ "defs": {},
10235
+ "functions": {
10236
+ "listLocations": [],
10237
+ "findLocation": [
10238
+ {
10239
+ "name": "query",
10240
+ "schema": {
10241
+ "k": "string"
10242
+ },
10243
+ "optional": false
10244
+ }
10245
+ ],
10246
+ "listServices": [
10247
+ {
10248
+ "name": "centerId",
10249
+ "schema": {
10250
+ "k": "string"
10251
+ },
10252
+ "optional": false
10253
+ },
10254
+ {
10255
+ "name": "query",
10256
+ "schema": {
10257
+ "k": "string"
10258
+ },
10259
+ "optional": true
10260
+ }
10261
+ ],
10262
+ "checkAvailability": [
10263
+ {
10264
+ "name": "centerId",
10265
+ "schema": {
10266
+ "k": "string"
10267
+ },
10268
+ "optional": false
10269
+ },
10270
+ {
10271
+ "name": "serviceId",
10272
+ "schema": {
10273
+ "k": "string"
10274
+ },
10275
+ "optional": false
10276
+ },
10277
+ {
10278
+ "name": "date",
10279
+ "schema": {
10280
+ "k": "string"
10281
+ },
10282
+ "optional": false
10283
+ }
10284
+ ]
10285
+ }
10286
+ },
10233
10287
  "providers.elevenlabs": {
10234
10288
  "defs": {},
10235
10289
  "functions": {
@@ -10426,6 +10480,49 @@ export const VALIDATORS = {
10426
10480
  ]
10427
10481
  }
10428
10482
  },
10483
+ "providers.equinox_hotels": {
10484
+ "defs": {
10485
+ "SearchEquinoxRatesArgs": {
10486
+ "k": "object",
10487
+ "props": [
10488
+ {
10489
+ "name": "checkIn",
10490
+ "schema": {
10491
+ "k": "string"
10492
+ },
10493
+ "optional": false
10494
+ },
10495
+ {
10496
+ "name": "checkOut",
10497
+ "schema": {
10498
+ "k": "string"
10499
+ },
10500
+ "optional": false
10501
+ },
10502
+ {
10503
+ "name": "adults",
10504
+ "schema": {
10505
+ "k": "number"
10506
+ },
10507
+ "optional": true
10508
+ }
10509
+ ]
10510
+ }
10511
+ },
10512
+ "functions": {
10513
+ "listRooms": [],
10514
+ "searchRates": [
10515
+ {
10516
+ "name": "args",
10517
+ "schema": {
10518
+ "k": "ref",
10519
+ "name": "SearchEquinoxRatesArgs"
10520
+ },
10521
+ "optional": false
10522
+ }
10523
+ ]
10524
+ }
10525
+ },
10429
10526
  "providers.erieinsurance": {
10430
10527
  "defs": {
10431
10528
  "ErieAgentQuery": {
@@ -10595,6 +10692,51 @@ export const VALIDATORS = {
10595
10692
  ]
10596
10693
  }
10597
10694
  },
10695
+ "providers.evolvemedspa": {
10696
+ "defs": {},
10697
+ "functions": {
10698
+ "listLocations": [],
10699
+ "listServices": [
10700
+ {
10701
+ "name": "centerId",
10702
+ "schema": {
10703
+ "k": "string"
10704
+ },
10705
+ "optional": false
10706
+ },
10707
+ {
10708
+ "name": "query",
10709
+ "schema": {
10710
+ "k": "string"
10711
+ },
10712
+ "optional": true
10713
+ }
10714
+ ],
10715
+ "checkAvailability": [
10716
+ {
10717
+ "name": "centerId",
10718
+ "schema": {
10719
+ "k": "string"
10720
+ },
10721
+ "optional": false
10722
+ },
10723
+ {
10724
+ "name": "serviceId",
10725
+ "schema": {
10726
+ "k": "string"
10727
+ },
10728
+ "optional": false
10729
+ },
10730
+ {
10731
+ "name": "date",
10732
+ "schema": {
10733
+ "k": "string"
10734
+ },
10735
+ "optional": false
10736
+ }
10737
+ ]
10738
+ }
10739
+ },
10598
10740
  "providers.executivehomecare": {
10599
10741
  "defs": {},
10600
10742
  "functions": {
@@ -26781,6 +26923,21 @@ export const VALIDATORS = {
26781
26923
  ]
26782
26924
  }
26783
26925
  },
26926
+ "providers.vbt": {
26927
+ "defs": {},
26928
+ "functions": {
26929
+ "listTours": [],
26930
+ "getTourDepartures": [
26931
+ {
26932
+ "name": "tourUrlOrSlug",
26933
+ "schema": {
26934
+ "k": "string"
26935
+ },
26936
+ "optional": false
26937
+ }
26938
+ ]
26939
+ }
26940
+ },
26784
26941
  "providers.vervecoffee": {
26785
26942
  "defs": {
26786
26943
  "CoffeeQuizAnswers": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bowmark/web",
3
- "version": "1.17.0",
3
+ "version": "1.18.0",
4
4
  "type": "module",
5
5
  "description": "The public client for the Bowmark capability library — real TypeScript for the whole bowmark.* surface, with no Bowmark source on the caller's disk. ZERO runtime dependencies, deliberately and permanently.",
6
6
  "license": "MIT",