@bowmark/web 1.7.0 → 1.8.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/package.json +1 -1
- package/src/generated/library.d.ts +710 -114
- package/src/generated/validators.ts +960 -110
|
@@ -5,9 +5,9 @@
|
|
|
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:
|
|
9
|
-
// 9 capabilities,
|
|
10
|
-
// 51,
|
|
8
|
+
// Manifest version: b71c060db620c119ab92eac724aab2d9670d3d22f342f754075e353929634db2
|
|
9
|
+
// 9 capabilities, 121 providers, 380 typed functions, 20 refused.
|
|
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
|
|
13
13
|
// carry no types, so no honest signature exists. Each one is commented in place
|
|
@@ -2029,6 +2029,58 @@ interface StoreStock {
|
|
|
2029
2029
|
}
|
|
2030
2030
|
}
|
|
2031
2031
|
|
|
2032
|
+
declare namespace BowmarkProvider_bigrentz {
|
|
2033
|
+
// ── BigRentz — the unit's own declarations, verbatim ──
|
|
2034
|
+
interface BigrentzEquipmentRow {
|
|
2035
|
+
id: number;
|
|
2036
|
+
name: string;
|
|
2037
|
+
slug: string;
|
|
2038
|
+
permalink: string;
|
|
2039
|
+
categories: { id: number; name: string; slug: string }[];
|
|
2040
|
+
images: { src: string; alt: string }[];
|
|
2041
|
+
inStock: boolean;
|
|
2042
|
+
priced: false;
|
|
2043
|
+
priceNote: string;
|
|
2044
|
+
}
|
|
2045
|
+
interface BigrentzEquipmentDetail extends BigrentzEquipmentRow {
|
|
2046
|
+
description: string;
|
|
2047
|
+
specSheetUrls: string[];
|
|
2048
|
+
}
|
|
2049
|
+
interface BigrentzCategoryRow {
|
|
2050
|
+
id: number;
|
|
2051
|
+
name: string;
|
|
2052
|
+
slug: string;
|
|
2053
|
+
count: number;
|
|
2054
|
+
permalink: string;
|
|
2055
|
+
}
|
|
2056
|
+
|
|
2057
|
+
/**
|
|
2058
|
+
* BigRentz's own equipment catalog — search, category browse and per-item detail, real data
|
|
2059
|
+
* from their WooCommerce Store API. Live rental pricing is not yet built (site gates it behind
|
|
2060
|
+
* a location + date picker); see getRentalPricing.
|
|
2061
|
+
*/
|
|
2062
|
+
interface Unit {
|
|
2063
|
+
/**
|
|
2064
|
+
* Searches BigRentz's equipment catalog by free text (e.g. "boom lift", "40 ft boom lift") and
|
|
2065
|
+
* returns matching rows. Real catalog data — id, name, slug, permalink, category, stock flag,
|
|
2066
|
+
* images — but NOT a real price (see `priceNote` on each row).
|
|
2067
|
+
*/
|
|
2068
|
+
search(query: string): Promise<BigrentzEquipmentRow[]>;
|
|
2069
|
+
|
|
2070
|
+
/**
|
|
2071
|
+
* Reads one piece of equipment in full by the slug `search` or `listCategories` returned —
|
|
2072
|
+
* description, spec-sheet PDF links, category and stock flag.
|
|
2073
|
+
*/
|
|
2074
|
+
getEquipment(slug: string): Promise<BigrentzEquipmentDetail>;
|
|
2075
|
+
|
|
2076
|
+
/**
|
|
2077
|
+
* Lists BigRentz's equipment categories — id, name, slug, live listing count, category page
|
|
2078
|
+
* URL. Pass `parentSlug` to list a category's children.
|
|
2079
|
+
*/
|
|
2080
|
+
listCategories(options?: { parentSlug?: string }): Promise<BigrentzCategoryRow[]>;
|
|
2081
|
+
}
|
|
2082
|
+
}
|
|
2083
|
+
|
|
2032
2084
|
declare namespace BowmarkProvider_blenderseyewear {
|
|
2033
2085
|
// ── Blenders Eyewear — the unit's own declarations, verbatim ──
|
|
2034
2086
|
// Blenders Eyewear's OWN shapes — not a capability contract.
|
|
@@ -2352,6 +2404,62 @@ interface BmwusaModelListing {
|
|
|
2352
2404
|
}
|
|
2353
2405
|
}
|
|
2354
2406
|
|
|
2407
|
+
declare namespace BowmarkProvider_boydsleep {
|
|
2408
|
+
// ── Boyd Sleep — the unit's own declarations, verbatim ──
|
|
2409
|
+
// Boyd Sleep's OWN shapes — not a capability contract.
|
|
2410
|
+
|
|
2411
|
+
type BoydsleepGender = "Male" | "Female" | "Non Binary";
|
|
2412
|
+
type BoydsleepSleepPosition = "Side" | "Back" | "Stomach" | "Multi";
|
|
2413
|
+
|
|
2414
|
+
interface BoydsleepCalibrationInput {
|
|
2415
|
+
gender: BoydsleepGender;
|
|
2416
|
+
heightInches: number; // snapped to the site's own height band
|
|
2417
|
+
weightLbs: number; // snapped to the site's own weight band
|
|
2418
|
+
sleepPosition: BoydsleepSleepPosition;
|
|
2419
|
+
}
|
|
2420
|
+
|
|
2421
|
+
interface Boydsleep2ZoneResult {
|
|
2422
|
+
supportIndex: number; // 0-100
|
|
2423
|
+
heightBandInches: number;
|
|
2424
|
+
weightBandLbs: number;
|
|
2425
|
+
setupGuideUrl: string; // the real next step — no checkout exists on this domain
|
|
2426
|
+
calibratorUrl: string;
|
|
2427
|
+
}
|
|
2428
|
+
|
|
2429
|
+
interface Boydsleep6ZoneResult {
|
|
2430
|
+
headFoot: number;
|
|
2431
|
+
center: number;
|
|
2432
|
+
heightBandInches: number;
|
|
2433
|
+
weightBandLbs: number;
|
|
2434
|
+
setupGuideUrl: string;
|
|
2435
|
+
calibratorUrl: string;
|
|
2436
|
+
}
|
|
2437
|
+
|
|
2438
|
+
/**
|
|
2439
|
+
* Boyd Sleep's own 'Smart Support Number' calibrator for a Nautica Home Smart Zone air bed —
|
|
2440
|
+
* the real personalized 0-100 Support Index (2-zone) or Head/Foot + Center numbers (6-zone),
|
|
2441
|
+
* computed exactly as the site computes them, plus the site's own setup guide as the real next
|
|
2442
|
+
* step (Boyd sells through retail/franchise partners, so there is no DTC checkout on this
|
|
2443
|
+
* domain to route to).
|
|
2444
|
+
*/
|
|
2445
|
+
interface Unit {
|
|
2446
|
+
/**
|
|
2447
|
+
* Runs Boyd's own 2-zone Smart Support Number calculation for a Nautica Home Smart Zone air
|
|
2448
|
+
* bed — a real, personalized 0-100 Support Index computed exactly as the site's own calculator
|
|
2449
|
+
* computes it, no estimate. `setupGuideUrl` is the real next step; Boyd sells through
|
|
2450
|
+
* retail/franchise partners, so there is no cart to route to on this domain.
|
|
2451
|
+
*/
|
|
2452
|
+
calibrateSupportNumber(input: BoydsleepCalibrationInput): Promise<Boydsleep2ZoneResult>;
|
|
2453
|
+
|
|
2454
|
+
/**
|
|
2455
|
+
* Runs Boyd's own 6-zone Smart Support Number calculation — same inputs as the 2-zone tool,
|
|
2456
|
+
* returns a separate Head/Foot number and a Center (lumbar) number for the 6-zone Nautica Home
|
|
2457
|
+
* Smart Zone bed.
|
|
2458
|
+
*/
|
|
2459
|
+
calibrateSixZoneSupportNumber(input: BoydsleepCalibrationInput): Promise<Boydsleep6ZoneResult>;
|
|
2460
|
+
}
|
|
2461
|
+
}
|
|
2462
|
+
|
|
2355
2463
|
declare namespace BowmarkProvider_bykoket {
|
|
2356
2464
|
// ── KOKET — the unit's own declarations, verbatim ──
|
|
2357
2465
|
interface KoketProductSummary {
|
|
@@ -4122,6 +4230,64 @@ interface ErieAgent {
|
|
|
4122
4230
|
}
|
|
4123
4231
|
}
|
|
4124
4232
|
|
|
4233
|
+
declare namespace BowmarkProvider_eventsource {
|
|
4234
|
+
// ── Event Source — the unit's own declarations, verbatim ──
|
|
4235
|
+
interface EventSourceDesign {
|
|
4236
|
+
designId: number;
|
|
4237
|
+
visionBoardId: number;
|
|
4238
|
+
roomId: number;
|
|
4239
|
+
designName: string;
|
|
4240
|
+
roomName: string;
|
|
4241
|
+
venueName: string;
|
|
4242
|
+
hasLayouts: boolean;
|
|
4243
|
+
hasTemplates: boolean;
|
|
4244
|
+
}
|
|
4245
|
+
interface EventSourceShowroom {
|
|
4246
|
+
accessCode: string;
|
|
4247
|
+
showroomName: string;
|
|
4248
|
+
ownerName: string;
|
|
4249
|
+
branded: boolean;
|
|
4250
|
+
underConstruction: boolean;
|
|
4251
|
+
logoUrl: string;
|
|
4252
|
+
eventId: number;
|
|
4253
|
+
venueIds: number[];
|
|
4254
|
+
designs: EventSourceDesign[];
|
|
4255
|
+
}
|
|
4256
|
+
interface EventSourceVenue {
|
|
4257
|
+
venueId: number;
|
|
4258
|
+
businessName: string;
|
|
4259
|
+
city: string;
|
|
4260
|
+
state: string;
|
|
4261
|
+
zipCode: string;
|
|
4262
|
+
market: string;
|
|
4263
|
+
primaryImageUrl: string;
|
|
4264
|
+
rooms: Array<{ roomId: number; roomName: string; primaryImageUrl: string; active: boolean }>;
|
|
4265
|
+
}
|
|
4266
|
+
interface EventSourceInquiryContact {
|
|
4267
|
+
inquiryRequestEmail: string;
|
|
4268
|
+
ownerName: string;
|
|
4269
|
+
ownerLogoUrl: string;
|
|
4270
|
+
}
|
|
4271
|
+
|
|
4272
|
+
/**
|
|
4273
|
+
* Reads a public Event Source Virtual Design Center showroom (design, venue, inquiry contact)
|
|
4274
|
+
* by its access code — no login.
|
|
4275
|
+
*/
|
|
4276
|
+
interface Unit {
|
|
4277
|
+
/**
|
|
4278
|
+
* Reads a public Virtual Design Center showroom by its access code — its design(s), venue and
|
|
4279
|
+
* branding.
|
|
4280
|
+
*/
|
|
4281
|
+
getShowroom(code: string): Promise<EventSourceShowroom>;
|
|
4282
|
+
|
|
4283
|
+
/** Reads the real venue/room a showroom's design is staged in. */
|
|
4284
|
+
getShowroomVenue(eventId: number, venueId: number, code: string): Promise<EventSourceVenue>;
|
|
4285
|
+
|
|
4286
|
+
/** Reads who a showroom's Send Inquiry button emails, without submitting anything. */
|
|
4287
|
+
getShowroomInquiryContact(code: string): Promise<EventSourceInquiryContact>;
|
|
4288
|
+
}
|
|
4289
|
+
}
|
|
4290
|
+
|
|
4125
4291
|
declare namespace BowmarkProvider_extraspace {
|
|
4126
4292
|
// ── Extra Space Storage — the unit's own declarations, verbatim ──
|
|
4127
4293
|
interface ExtraspaceSearchResult {
|
|
@@ -5614,6 +5780,72 @@ interface graingerStockRow {
|
|
|
5614
5780
|
}
|
|
5615
5781
|
}
|
|
5616
5782
|
|
|
5783
|
+
declare namespace BowmarkProvider_grandwelcome {
|
|
5784
|
+
// ── Grand Welcome — the unit's own declarations, verbatim ──
|
|
5785
|
+
interface GrandwelcomeRentalRow {
|
|
5786
|
+
rentalId: string;
|
|
5787
|
+
name: string;
|
|
5788
|
+
url: string;
|
|
5789
|
+
location: string;
|
|
5790
|
+
propertyType: string;
|
|
5791
|
+
petFriendly: boolean;
|
|
5792
|
+
priceFromUsd: number | null;
|
|
5793
|
+
priceFromFormatted: string | null;
|
|
5794
|
+
bedrooms: number | null;
|
|
5795
|
+
bathrooms: number | null;
|
|
5796
|
+
guests: number | null;
|
|
5797
|
+
ratingValue: number | null;
|
|
5798
|
+
ratingCount: number | null;
|
|
5799
|
+
}
|
|
5800
|
+
interface GrandwelcomeRentalDetail {
|
|
5801
|
+
rentalId: string;
|
|
5802
|
+
propertyId: string;
|
|
5803
|
+
name: string;
|
|
5804
|
+
description: string;
|
|
5805
|
+
images: string[];
|
|
5806
|
+
url: string;
|
|
5807
|
+
}
|
|
5808
|
+
interface GrandwelcomeQuoteFee {
|
|
5809
|
+
label: string;
|
|
5810
|
+
amountUsd: number;
|
|
5811
|
+
}
|
|
5812
|
+
type GrandwelcomeQuote =
|
|
5813
|
+
| { available: true; propertyId: string; checkin: string; checkout: string; currency: "USD";
|
|
5814
|
+
rentUsd: number; fees: GrandwelcomeQuoteFee[]; feesTotalUsd: number; taxUsd: number;
|
|
5815
|
+
totalUsd: number; bookNowUrl: string }
|
|
5816
|
+
| { available: false; propertyId: string; checkin: string; checkout: string };
|
|
5817
|
+
|
|
5818
|
+
/**
|
|
5819
|
+
* Grand Welcome's own vacation rental search, listing detail, and real-time dated
|
|
5820
|
+
* pricing/booking-link engine — a national franchise's own inventory, live availability and
|
|
5821
|
+
* price, not a stale catalog.
|
|
5822
|
+
*/
|
|
5823
|
+
interface Unit {
|
|
5824
|
+
/**
|
|
5825
|
+
* Runs Grand Welcome's own destination search (a market slug like "california-sea-ranch", from
|
|
5826
|
+
* a rental's own page or the destination directory), optionally filtered to a bedroom count,
|
|
5827
|
+
* and returns the live matching listings — name, url, location, type, pet-friendly flag,
|
|
5828
|
+
* advertised "as low as" price, bed/bath/guest counts, rating.
|
|
5829
|
+
*/
|
|
5830
|
+
searchRentals(destinationSlug: string, options?: { bedrooms?: number }): Promise<GrandwelcomeRentalRow[]>;
|
|
5831
|
+
|
|
5832
|
+
/**
|
|
5833
|
+
* Reads one rental in full — name, description, photos, and the internal numeric propertyId
|
|
5834
|
+
* getRentalQuote needs — from the rentalId a search result or a grandwelcome.com/rentals/<id>
|
|
5835
|
+
* URL carries.
|
|
5836
|
+
*/
|
|
5837
|
+
getRentalDetail(rentalId: string): Promise<GrandwelcomeRentalDetail>;
|
|
5838
|
+
|
|
5839
|
+
/**
|
|
5840
|
+
* Runs the site's own real-time pricing engine for one property and a date range
|
|
5841
|
+
* ("YYYY-MM-DD") — rent, fees, tax, total — and returns the exact Book Now checkout URL for
|
|
5842
|
+
* those dates. `available: false` means the site checked and the property is not free for
|
|
5843
|
+
* those dates, an ordinary answer.
|
|
5844
|
+
*/
|
|
5845
|
+
getRentalQuote(propertyId: string, options: { checkin: string; checkout: string }): Promise<GrandwelcomeQuote>;
|
|
5846
|
+
}
|
|
5847
|
+
}
|
|
5848
|
+
|
|
5617
5849
|
declare namespace BowmarkProvider_handypro {
|
|
5618
5850
|
// ── HandyPro — the unit's own declarations, verbatim ──
|
|
5619
5851
|
// HandyPro's OWN shapes — not a capability contract.
|
|
@@ -8032,6 +8264,64 @@ interface IsllcSearchCommunitiesResult {
|
|
|
8032
8264
|
}
|
|
8033
8265
|
}
|
|
8034
8266
|
|
|
8267
|
+
declare namespace BowmarkProvider_jennikayne {
|
|
8268
|
+
// ── Jenni Kayne — the unit's own declarations, verbatim ──
|
|
8269
|
+
interface GiftCardDenomination {
|
|
8270
|
+
variantId: string;
|
|
8271
|
+
amount: string;
|
|
8272
|
+
available: boolean;
|
|
8273
|
+
}
|
|
8274
|
+
interface GiftCardOptions {
|
|
8275
|
+
productUrl: string;
|
|
8276
|
+
denominations: GiftCardDenomination[];
|
|
8277
|
+
timezones: string[];
|
|
8278
|
+
}
|
|
8279
|
+
interface GiftCardConfig {
|
|
8280
|
+
amount: string;
|
|
8281
|
+
recipientName: string;
|
|
8282
|
+
recipientEmail: string;
|
|
8283
|
+
giftMessage?: string;
|
|
8284
|
+
deliveryDate: string;
|
|
8285
|
+
deliveryTimezone: string;
|
|
8286
|
+
}
|
|
8287
|
+
interface GiftCardLink {
|
|
8288
|
+
amount: string;
|
|
8289
|
+
variantId: string;
|
|
8290
|
+
recipientName: string;
|
|
8291
|
+
recipientEmail: string;
|
|
8292
|
+
giftMessage: string | null;
|
|
8293
|
+
deliveryDate: string;
|
|
8294
|
+
deliveryTimezone: string;
|
|
8295
|
+
available: boolean;
|
|
8296
|
+
cartUrl: string;
|
|
8297
|
+
checkoutUrl: string;
|
|
8298
|
+
deliveryTimeLeftToShopper: true;
|
|
8299
|
+
}
|
|
8300
|
+
|
|
8301
|
+
/**
|
|
8302
|
+
* Jenni Kayne's live gift-card product: read the real denominations and hand the shopper a
|
|
8303
|
+
* checkout link pre-filled with the recipient, message and scheduled delivery date/timezone.
|
|
8304
|
+
*/
|
|
8305
|
+
interface Unit {
|
|
8306
|
+
/**
|
|
8307
|
+
* Reads the live Jenni Kayne digital gift-card product — every denomination from $50 to $1,000
|
|
8308
|
+
* with its real variant id and current stock, plus the exact timezone strings the checkout
|
|
8309
|
+
* form accepts. Call this first to know what buildGiftCardLink will accept.
|
|
8310
|
+
*/
|
|
8311
|
+
getGiftCardOptions(): Promise<GiftCardOptions>;
|
|
8312
|
+
|
|
8313
|
+
/**
|
|
8314
|
+
* Configures a Jenni Kayne digital gift card — amount, recipient name/email, an optional
|
|
8315
|
+
* message, and a scheduled delivery date + timezone — and returns a checkout link with every
|
|
8316
|
+
* one of those fields already filled in, so the shopper only has to pick a delivery TIME and
|
|
8317
|
+
* pay. THROWS on an unknown amount, an invalid email, a malformed date, or a timezone the
|
|
8318
|
+
* store does not offer — call getGiftCardOptions first to see the live choices. Builds the
|
|
8319
|
+
* link only; nothing is purchased or charged here.
|
|
8320
|
+
*/
|
|
8321
|
+
buildGiftCardLink(config: GiftCardConfig): Promise<GiftCardLink>;
|
|
8322
|
+
}
|
|
8323
|
+
}
|
|
8324
|
+
|
|
8035
8325
|
declare namespace BowmarkProvider_joybird {
|
|
8036
8326
|
// ── Joybird — the unit's own declarations, verbatim ──
|
|
8037
8327
|
interface JoybirdConfigurator {
|
|
@@ -8702,9 +8992,9 @@ interface LiquiddeathCart {
|
|
|
8702
8992
|
interface LiquiddeathLiveCartLine {
|
|
8703
8993
|
lineId: string;
|
|
8704
8994
|
variantId: string;
|
|
8705
|
-
|
|
8706
|
-
productTitle: string;
|
|
8995
|
+
title: string;
|
|
8707
8996
|
quantity: number;
|
|
8997
|
+
unitPrice: string;
|
|
8708
8998
|
lineTotal: string;
|
|
8709
8999
|
}
|
|
8710
9000
|
interface LiquiddeathLiveCart {
|
|
@@ -8715,9 +9005,7 @@ interface LiquiddeathLiveCart {
|
|
|
8715
9005
|
total: string;
|
|
8716
9006
|
currency: string;
|
|
8717
9007
|
checkoutUrl: string;
|
|
8718
|
-
|
|
8719
|
-
createdAt: string | null;
|
|
8720
|
-
updatedAt: string | null;
|
|
9008
|
+
expiresAt: string | null;
|
|
8721
9009
|
}
|
|
8722
9010
|
|
|
8723
9011
|
/**
|
|
@@ -8753,15 +9041,19 @@ interface LiquiddeathLiveCart {
|
|
|
8753
9041
|
addToCart(items: LiquiddeathCartItem[]): Promise<LiquiddeathCart>;
|
|
8754
9042
|
|
|
8755
9043
|
/**
|
|
8756
|
-
* Reads a cart the shopper already has, by its id — line items, quantities, per-
|
|
8757
|
-
*
|
|
8758
|
-
*
|
|
8759
|
-
* (liquiddeath.com/cart/c/<token>?key=<key>), NOT the
|
|
8760
|
-
* — those are a separate Ajax id space this endpoint
|
|
8761
|
-
* is no way to list or search carts, so
|
|
8762
|
-
*
|
|
8763
|
-
*
|
|
8764
|
-
*
|
|
9044
|
+
* Reads a cart the shopper already has, by its id — line items, quantities, per-unit and
|
|
9045
|
+
* per-line prices, order subtotal and total, the cart's currency and expiry, and the real
|
|
9046
|
+
* checkout URL to hand back. The id is a bearer credential the SHOPPER holds, and it is the
|
|
9047
|
+
* one their cart or checkout LINK carries (liquiddeath.com/cart/c/<token>?key=<key>), NOT the
|
|
9048
|
+
* store's `cart` cookie or /cart.js token — those are a separate Ajax id space this endpoint
|
|
9049
|
+
* answers 'The requested cart does not exist' for. There is no way to list or search carts, so
|
|
9050
|
+
* a caller without an id cannot get one. THE WHOLE id IS REQUIRED, `?key=` included: the store
|
|
9051
|
+
* checks the key's value, so a bare token comes back as a cart that does not exist rather than
|
|
9052
|
+
* as a missing credential, and this refuses it here instead. THROWS when the cart does not
|
|
9053
|
+
* exist or has expired — Shopify drops an unused cart within 30 days and deletes it at
|
|
9054
|
+
* checkout — because an empty cart and a dead link are opposite answers. Each line carries the
|
|
9055
|
+
* store's own joined product-and-variant `title` ("Death Western Hat - Cream/Green"); this
|
|
9056
|
+
* door publishes no separate product title. Does not return shipping options or discounts:
|
|
8765
9057
|
* both require setting an address on the cart, which is a write this provider does not
|
|
8766
9058
|
* perform.
|
|
8767
9059
|
*/
|
|
@@ -12705,6 +12997,47 @@ interface RitaniPriceResult {
|
|
|
12705
12997
|
}
|
|
12706
12998
|
}
|
|
12707
12999
|
|
|
13000
|
+
declare namespace BowmarkProvider_roofmaxx {
|
|
13001
|
+
// ── Roof Maxx — the unit's own declarations, verbatim ──
|
|
13002
|
+
interface RoofmaxxCalculatorSettings {
|
|
13003
|
+
title: string;
|
|
13004
|
+
description: string;
|
|
13005
|
+
}
|
|
13006
|
+
|
|
13007
|
+
interface RoofmaxxCostEstimateArgs {
|
|
13008
|
+
squareFootage: number;
|
|
13009
|
+
region: "new-england" | "middle-atlantic" | "east-north-central" | "west-north-central" |
|
|
13010
|
+
"south-atlantic" | "east-south-central" | "west-south-central" | "mountain" | "pacific";
|
|
13011
|
+
roofType: "asphalt" | "metal" | "clay" | "wood";
|
|
13012
|
+
roofSlope: "walkable" | "semiWalkable" | "nonWalkable";
|
|
13013
|
+
numOfLevels: "1" | "2" | "3";
|
|
13014
|
+
garageType: "nogarage" | "1car" | "2car";
|
|
13015
|
+
}
|
|
13016
|
+
|
|
13017
|
+
interface RoofmaxxCostEstimate {
|
|
13018
|
+
low: number;
|
|
13019
|
+
mid: number;
|
|
13020
|
+
high: number;
|
|
13021
|
+
}
|
|
13022
|
+
|
|
13023
|
+
/**
|
|
13024
|
+
* Roof Maxx's own Roof Replacement Cost Calculator (roofmaxx.com/learning-hub) — given a
|
|
13025
|
+
* home's size, location and roof details, returns the site's real server-computed low/mid/high
|
|
13026
|
+
* full-replacement-cost estimate.
|
|
13027
|
+
*/
|
|
13028
|
+
interface Unit {
|
|
13029
|
+
/** The Roof Replacement Cost Calculator's own admin-configured title and description. */
|
|
13030
|
+
getCalculatorSettings(): Promise<RoofmaxxCalculatorSettings>;
|
|
13031
|
+
|
|
13032
|
+
/**
|
|
13033
|
+
* Runs the real calculator: given square footage, region, roof type, roof slope, garage size
|
|
13034
|
+
* and building levels, returns Roof Maxx's own server-computed low/mid/high
|
|
13035
|
+
* full-replacement-cost tiers.
|
|
13036
|
+
*/
|
|
13037
|
+
estimateRoofReplacementCost(arg: RoofmaxxCostEstimateArgs): Promise<RoofmaxxCostEstimate>;
|
|
13038
|
+
}
|
|
13039
|
+
}
|
|
13040
|
+
|
|
12708
13041
|
declare namespace BowmarkProvider_samsclub {
|
|
12709
13042
|
// ── Sam's Club — the unit's own declarations, verbatim ──
|
|
12710
13043
|
interface SamsclubInstantSavingsItem {
|
|
@@ -13792,6 +14125,52 @@ interface SunHomeSaunasCartResult {
|
|
|
13792
14125
|
}
|
|
13793
14126
|
}
|
|
13794
14127
|
|
|
14128
|
+
declare namespace BowmarkProvider_tamarackidaho {
|
|
14129
|
+
// ── Tamarack Resort — the unit's own declarations, verbatim ──
|
|
14130
|
+
interface tamarackidahoSearchArgs {
|
|
14131
|
+
arrivalDate: string;
|
|
14132
|
+
departureDate: string;
|
|
14133
|
+
adultCount: number;
|
|
14134
|
+
childCount?: number;
|
|
14135
|
+
}
|
|
14136
|
+
|
|
14137
|
+
interface tamarackidahoSearchResult {
|
|
14138
|
+
arrivalDate: string;
|
|
14139
|
+
departureDate: string;
|
|
14140
|
+
adultCount: number;
|
|
14141
|
+
childCount: number;
|
|
14142
|
+
units: tamarackidahoUnit[];
|
|
14143
|
+
}
|
|
14144
|
+
|
|
14145
|
+
interface tamarackidahoUnit {
|
|
14146
|
+
supplierId: string;
|
|
14147
|
+
supplierName: string;
|
|
14148
|
+
productId: string;
|
|
14149
|
+
unitName: string;
|
|
14150
|
+
totalPrice: number;
|
|
14151
|
+
}
|
|
14152
|
+
|
|
14153
|
+
/**
|
|
14154
|
+
* Tamarack Resort's own direct-managed lodging booking engine (Inntopia RTP) — real
|
|
14155
|
+
* availability and price per unit type for a date range and party size, straight from the
|
|
14156
|
+
* site's own search widget, browserless.
|
|
14157
|
+
*/
|
|
14158
|
+
interface Unit {
|
|
14159
|
+
/**
|
|
14160
|
+
* Searches Tamarack Resort's own direct-managed lodging (the Lodge at Osprey Meadows, the
|
|
14161
|
+
* Village at Tamarack Resort, and Tamarack Homes and Cottages — not the golf tee-time flow, a
|
|
14162
|
+
* different vendor) for a stay and party size. `arrivalDate`/`departureDate` are "MM/DD/YYYY"
|
|
14163
|
+
* strings (the widget's own format), `adultCount` is required and positive, `childCount`
|
|
14164
|
+
* defaults to 0. Returns every unit type Tamarack's own booking engine (Inntopia RTP)
|
|
14165
|
+
* currently prices as AVAILABLE for that exact query — each with its supplier (property), unit
|
|
14166
|
+
* name, and `totalPrice` in USD for the whole queried stay (not nightly) — genuinely computed
|
|
14167
|
+
* per call, not a cached listing. An empty `units` array is a real answer: Tamarack has
|
|
14168
|
+
* nothing available for that stay, not a failure.
|
|
14169
|
+
*/
|
|
14170
|
+
searchLodging(args: tamarackidahoSearchArgs): Promise<tamarackidahoSearchResult>;
|
|
14171
|
+
}
|
|
14172
|
+
}
|
|
14173
|
+
|
|
13795
14174
|
declare namespace BowmarkProvider_target {
|
|
13796
14175
|
// ── Target — the unit's own declarations, verbatim ──
|
|
13797
14176
|
interface targetRow {
|
|
@@ -13846,6 +14225,55 @@ interface TargetStoreSearch {
|
|
|
13846
14225
|
}
|
|
13847
14226
|
}
|
|
13848
14227
|
|
|
14228
|
+
declare namespace BowmarkProvider_tatcha {
|
|
14229
|
+
// ── Tatcha — the unit's own declarations, verbatim ──
|
|
14230
|
+
interface TatchaQuizOption {
|
|
14231
|
+
value: string;
|
|
14232
|
+
label: string;
|
|
14233
|
+
}
|
|
14234
|
+
|
|
14235
|
+
interface TatchaRitualQuizOptions {
|
|
14236
|
+
skinTypes: TatchaQuizOption[];
|
|
14237
|
+
benefits: TatchaQuizOption[];
|
|
14238
|
+
eyeConcerns: TatchaQuizOption[];
|
|
14239
|
+
}
|
|
14240
|
+
|
|
14241
|
+
interface TatchaRitualProduct {
|
|
14242
|
+
step: string;
|
|
14243
|
+
sku: string;
|
|
14244
|
+
name: string;
|
|
14245
|
+
secondaryName: string;
|
|
14246
|
+
price: string;
|
|
14247
|
+
handle: string;
|
|
14248
|
+
url: string;
|
|
14249
|
+
image: string;
|
|
14250
|
+
usageTime: "AM" | "PM" | "both";
|
|
14251
|
+
description: string;
|
|
14252
|
+
inStock: boolean;
|
|
14253
|
+
}
|
|
14254
|
+
|
|
14255
|
+
interface TatchaRitual {
|
|
14256
|
+
summary: string;
|
|
14257
|
+
products: TatchaRitualProduct[];
|
|
14258
|
+
handoffUrl: string;
|
|
14259
|
+
}
|
|
14260
|
+
|
|
14261
|
+
/**
|
|
14262
|
+
* Runs Tatcha's real "Ritual Finder" skincare quiz — the site's own product-matching backend,
|
|
14263
|
+
* not a generic routine.
|
|
14264
|
+
*/
|
|
14265
|
+
interface Unit {
|
|
14266
|
+
/** Reads the live Ritual Finder quiz's real skin-type, benefit and eye-concern menus. */
|
|
14267
|
+
getRitualQuizOptions(): Promise<TatchaRitualQuizOptions>;
|
|
14268
|
+
|
|
14269
|
+
/**
|
|
14270
|
+
* Runs real quiz answers through Tatcha's own personalization backend and returns the real
|
|
14271
|
+
* AM/PM product ritual it recommends.
|
|
14272
|
+
*/
|
|
14273
|
+
getPersonalizedRitual(skinType: string, benefits: string[], eyeConcerns?: string[], sensitive?: boolean, owned?: string[]): Promise<TatchaRitual>;
|
|
14274
|
+
}
|
|
14275
|
+
}
|
|
14276
|
+
|
|
13849
14277
|
declare namespace BowmarkProvider_teladoc {
|
|
13850
14278
|
// ── Teladoc Health — the unit's own declarations, verbatim ──
|
|
13851
14279
|
interface teladocRow {
|
|
@@ -13900,98 +14328,6 @@ interface teladocInsuranceCoverage {
|
|
|
13900
14328
|
}
|
|
13901
14329
|
}
|
|
13902
14330
|
|
|
13903
|
-
declare namespace BowmarkProvider_tentree {
|
|
13904
|
-
// ── tentree — the unit's own declarations, verbatim ──
|
|
13905
|
-
interface TentreeVariant {
|
|
13906
|
-
/** Shopify's numeric variant id as a string. What addToCart takes. */
|
|
13907
|
-
id: string;
|
|
13908
|
-
/** The variant's own label, e.g. "ASHWOOD METEORITE BLACK / ONE". */
|
|
13909
|
-
title: string;
|
|
13910
|
-
/** Decimal string exactly as the store publishes it, e.g. "45.00". */
|
|
13911
|
-
price: string;
|
|
13912
|
-
compareAtPrice: string | null;
|
|
13913
|
-
sku: string | null;
|
|
13914
|
-
/** The store's own per-variant stock flag. */
|
|
13915
|
-
available: boolean;
|
|
13916
|
-
options: string[];
|
|
13917
|
-
}
|
|
13918
|
-
interface TentreeProduct {
|
|
13919
|
-
handle: string;
|
|
13920
|
-
title: string;
|
|
13921
|
-
productType: string;
|
|
13922
|
-
vendor: string;
|
|
13923
|
-
url: string;
|
|
13924
|
-
optionNames: string[];
|
|
13925
|
-
variants: TentreeVariant[];
|
|
13926
|
-
priceRange: { min: string; max: string } | null;
|
|
13927
|
-
inStock: boolean;
|
|
13928
|
-
tags: string[];
|
|
13929
|
-
descriptionHtml: string | null;
|
|
13930
|
-
}
|
|
13931
|
-
interface TentreeCartLine {
|
|
13932
|
-
/** Shopify's own line key, which its cart-change endpoints address a line by. */
|
|
13933
|
-
lineKey: string;
|
|
13934
|
-
variantId: string;
|
|
13935
|
-
productTitle: string;
|
|
13936
|
-
/** Null on a single-variant product. */
|
|
13937
|
-
variantTitle: string | null;
|
|
13938
|
-
quantity: number;
|
|
13939
|
-
price: string;
|
|
13940
|
-
lineTotal: string;
|
|
13941
|
-
url: string;
|
|
13942
|
-
}
|
|
13943
|
-
interface TentreeCart {
|
|
13944
|
-
/** The store's own cart token — a bearer credential, so treat it like one. */
|
|
13945
|
-
token: string;
|
|
13946
|
-
lines: TentreeCartLine[];
|
|
13947
|
-
/** Units, NOT lines: two of one variant is one line and two items. */
|
|
13948
|
-
itemCount: number;
|
|
13949
|
-
subtotal: string;
|
|
13950
|
-
currency: string;
|
|
13951
|
-
cartUrl: string;
|
|
13952
|
-
checkoutUrl: string;
|
|
13953
|
-
}
|
|
13954
|
-
|
|
13955
|
-
/**
|
|
13956
|
-
* Sustainable apparel storefront — hats, tees, hoodies and outerwear — with a real guest cart
|
|
13957
|
-
* a caller can fill across several calls.
|
|
13958
|
-
*/
|
|
13959
|
-
interface Unit {
|
|
13960
|
-
/**
|
|
13961
|
-
* Searches tentree's live catalogue and returns matching products with their real variants,
|
|
13962
|
-
* current prices and per-variant stock. Matches whole words, so 'tee' finds tees and not
|
|
13963
|
-
* 'steel'. Returns [] when nothing matches, which is an ordinary answer rather than an error.
|
|
13964
|
-
*/
|
|
13965
|
-
searchProducts(query: string, opts?: { productType?: string; inStockOnly?: boolean; limit?: number }): Promise<TentreeProduct[]>;
|
|
13966
|
-
|
|
13967
|
-
/**
|
|
13968
|
-
* Reads one product by its handle — every variant, its exact price and whether that specific
|
|
13969
|
-
* size or colour is purchasable right now. Takes the handle searchProducts returns, and its
|
|
13970
|
-
* variants[].id is what addToCart takes. THROWS on an unknown handle (the store answers a real
|
|
13971
|
-
* 404).
|
|
13972
|
-
*/
|
|
13973
|
-
getProduct(handle: string): Promise<TentreeProduct>;
|
|
13974
|
-
|
|
13975
|
-
/**
|
|
13976
|
-
* Puts variants into THIS run's own cart on the store and returns the cart as the store
|
|
13977
|
-
* reports it. Really writes — the cart exists on tentree.com from the first call, and it
|
|
13978
|
-
* belongs to this run's cookie jar. Call it several times inside one bowmark.session() and the
|
|
13979
|
-
* lines accumulate; call it across two separate runs and the second cart does not contain the
|
|
13980
|
-
* first's lines. Takes VARIANT ids (getProduct().variants[].id), never handles. Nothing is
|
|
13981
|
-
* bought: checkoutUrl is where a shopper would pay.
|
|
13982
|
-
*/
|
|
13983
|
-
addToCart(items: Array<{ variantId: string; quantity?: number }>): Promise<TentreeCart>;
|
|
13984
|
-
|
|
13985
|
-
/**
|
|
13986
|
-
* Reads THIS run's cart back from the store — lines, quantities, per-line and order totals,
|
|
13987
|
-
* and the real cart and checkout URLs. Takes no id: the cart is the one this run's cookie jar
|
|
13988
|
-
* holds, so a fresh run reads an empty cart rather than somebody else's. An empty cart is an
|
|
13989
|
-
* ordinary answer (itemCount 0), not an error.
|
|
13990
|
-
*/
|
|
13991
|
-
getCart(): Promise<TentreeCart>;
|
|
13992
|
-
}
|
|
13993
|
-
}
|
|
13994
|
-
|
|
13995
14331
|
declare namespace BowmarkProvider_therabody {
|
|
13996
14332
|
// ── Therabody — the unit's own declarations, verbatim ──
|
|
13997
14333
|
interface TherabodyVariant {
|
|
@@ -14687,6 +15023,72 @@ interface TrekTravelSearchFilters {
|
|
|
14687
15023
|
}
|
|
14688
15024
|
}
|
|
14689
15025
|
|
|
15026
|
+
declare namespace BowmarkProvider_twiddy {
|
|
15027
|
+
// ── Twiddy & Company Realtors — the unit's own declarations, verbatim ──
|
|
15028
|
+
interface TwiddyRentalRow {
|
|
15029
|
+
propertyId: number;
|
|
15030
|
+
propertyNumber: string;
|
|
15031
|
+
name: string;
|
|
15032
|
+
url: string;
|
|
15033
|
+
town: string;
|
|
15034
|
+
distanceToBeach: string;
|
|
15035
|
+
bedrooms: number | null;
|
|
15036
|
+
priceFromUsd: number | null;
|
|
15037
|
+
priceFromFormatted: string | null;
|
|
15038
|
+
ratingValue: number | null;
|
|
15039
|
+
isAvailable: boolean;
|
|
15040
|
+
}
|
|
15041
|
+
interface TwiddyRentalDetail {
|
|
15042
|
+
propertyId: number;
|
|
15043
|
+
name: string;
|
|
15044
|
+
identifier: string;
|
|
15045
|
+
description: string;
|
|
15046
|
+
streetAddress: string;
|
|
15047
|
+
town: string;
|
|
15048
|
+
petsAllowed: boolean;
|
|
15049
|
+
amenities: string[];
|
|
15050
|
+
numberOfBedrooms: number | null;
|
|
15051
|
+
numberOfBathrooms: number | null;
|
|
15052
|
+
images: string[];
|
|
15053
|
+
url: string;
|
|
15054
|
+
}
|
|
15055
|
+
type TwiddyQuote =
|
|
15056
|
+
| { available: true; propertyId: number; checkin: string; nights: number; currency: "USD";
|
|
15057
|
+
rentalFeeUsd: number; discountUsd: number; taxUsd: number; totalUsd: number; checkoutUrl: string }
|
|
15058
|
+
| { available: false; propertyId: number; checkin: string; nights: number };
|
|
15059
|
+
|
|
15060
|
+
/**
|
|
15061
|
+
* Twiddy & Company's own Outer Banks vacation rental search and real-time weekly
|
|
15062
|
+
* pricing/booking-handoff engine — a regional owner-operator's own 1,000+ property inventory,
|
|
15063
|
+
* live availability and price, not a stale catalog.
|
|
15064
|
+
*/
|
|
15065
|
+
interface Unit {
|
|
15066
|
+
/**
|
|
15067
|
+
* Runs Twiddy's own portfolio-wide search (all 1,000+ managed Outer Banks properties in one
|
|
15068
|
+
* call), optionally filtered to one of the six towns ("Corolla", "Duck", "4x4", "Southern
|
|
15069
|
+
* Shores", "Kitty Hawk", "Kill Devil Hills", "Nags Head") and/or a minimum bedroom count, and
|
|
15070
|
+
* returns the live matching listings — name, url, town, distance to beach, bed count, an "as
|
|
15071
|
+
* low as" headline price, rating.
|
|
15072
|
+
*/
|
|
15073
|
+
searchRentals(options?: { town?: string; minBedrooms?: number }): Promise<TwiddyRentalRow[]>;
|
|
15074
|
+
|
|
15075
|
+
/**
|
|
15076
|
+
* Reads one rental in full — description, address, pets-allowed flag, amenities, bed/bath
|
|
15077
|
+
* counts, photos, and the internal numeric propertyId getRentalQuote needs — from the
|
|
15078
|
+
* propertyUrl a search result carries (a twiddy.com/outer-banks/... path or full URL).
|
|
15079
|
+
*/
|
|
15080
|
+
getRentalDetail(propertyUrl: string): Promise<TwiddyRentalDetail>;
|
|
15081
|
+
|
|
15082
|
+
/**
|
|
15083
|
+
* Runs the site's own real-time weekly pricing engine for one property and a check-in date
|
|
15084
|
+
* ("YYYY-MM-DD", default 7 nights) — rental fee, discount, tax, total — and returns the exact
|
|
15085
|
+
* booking/checkout URL for that week. `available: false` means the site checked and the
|
|
15086
|
+
* property has no live rate for that week, an ordinary answer.
|
|
15087
|
+
*/
|
|
15088
|
+
getRentalQuote(propertyId: number, options: { checkin: string; nights?: number }): Promise<TwiddyQuote>;
|
|
15089
|
+
}
|
|
15090
|
+
}
|
|
15091
|
+
|
|
14690
15092
|
declare namespace BowmarkProvider_ulrichlifestyle {
|
|
14691
15093
|
// ── Ulrich Lifestyle Structures — the unit's own declarations, verbatim ──
|
|
14692
15094
|
// Ulrich Lifestyle Structures' OWN shapes — not a capability contract.
|
|
@@ -14758,6 +15160,58 @@ interface UlrichPriceResult {
|
|
|
14758
15160
|
}
|
|
14759
15161
|
}
|
|
14760
15162
|
|
|
15163
|
+
declare namespace BowmarkProvider_vervecoffee {
|
|
15164
|
+
// ── Verve Coffee Roasters — the unit's own declarations, verbatim ──
|
|
15165
|
+
interface VervecoffeeSubscription {
|
|
15166
|
+
id: string;
|
|
15167
|
+
handle: string;
|
|
15168
|
+
title: string;
|
|
15169
|
+
priceFormatted: string;
|
|
15170
|
+
url: string;
|
|
15171
|
+
}
|
|
15172
|
+
interface VervecoffeeCoffeeMatch {
|
|
15173
|
+
id: string;
|
|
15174
|
+
title: string;
|
|
15175
|
+
descriptionHtml: string;
|
|
15176
|
+
startingPriceFormatted: string;
|
|
15177
|
+
url: string;
|
|
15178
|
+
subscriptionPlans: Array<{ name: string; deliveryInterval: string; priceWithDiscount: string }>;
|
|
15179
|
+
}
|
|
15180
|
+
interface VervecoffeeCoffeeMatchResult {
|
|
15181
|
+
recommendedProducts: VervecoffeeCoffeeMatch[];
|
|
15182
|
+
}
|
|
15183
|
+
interface CoffeeQuizAnswers {
|
|
15184
|
+
journeyStage: "coffee_curious" | "casual_coffee_lover" | "coffee_connoisseur" | "barista";
|
|
15185
|
+
brewMethod: "pourover" | "coffee_maker" | "espresso" | "french_press" | "aeropress";
|
|
15186
|
+
coffeeStyle: "black" | "milk_or_cream" | "sugar_or_sweetener";
|
|
15187
|
+
roastPreference: "light" | "medium" | "dark" | "not_sure";
|
|
15188
|
+
tastingNote: "chocolate" | "citrus" | "fruits" | "sweet" | "floral" | "nuts";
|
|
15189
|
+
}
|
|
15190
|
+
|
|
15191
|
+
/**
|
|
15192
|
+
* Verve Coffee Roasters' Roaster's Choice subscription catalog and its real 'Find Your Coffee
|
|
15193
|
+
* Match' quiz (Octane AI-powered) — drives the same 5 questions the live site asks and returns
|
|
15194
|
+
* the actual subscription it recommends, priced, with a buy link.
|
|
15195
|
+
*/
|
|
15196
|
+
interface Unit {
|
|
15197
|
+
/**
|
|
15198
|
+
* Lists Verve's five real Roaster's Choice coffee subscription products (single origin, blend,
|
|
15199
|
+
* espresso, Africa, Latin America) with their live USD price, read off the storefront's own
|
|
15200
|
+
* /products.json catalog.
|
|
15201
|
+
*/
|
|
15202
|
+
listRoastersChoiceSubscriptions(): Promise<VervecoffeeSubscription[]>;
|
|
15203
|
+
|
|
15204
|
+
/**
|
|
15205
|
+
* Runs Verve's real 'Find Your Coffee Match' quiz end to end — the same 5 questions the live
|
|
15206
|
+
* Octane AI-powered quiz at /pages/quiz asks every visitor — and returns the actual Roaster's
|
|
15207
|
+
* Choice subscription(s) it recommends, with real USD price and a buy-page link. THROWS if
|
|
15208
|
+
* Verve's quiz has been reconfigured and one of the 5 answer labels no longer matches (see the
|
|
15209
|
+
* error for the live option set).
|
|
15210
|
+
*/
|
|
15211
|
+
matchCoffeeSubscription(answers: CoffeeQuizAnswers): Promise<VervecoffeeCoffeeMatchResult>;
|
|
15212
|
+
}
|
|
15213
|
+
}
|
|
15214
|
+
|
|
14761
15215
|
declare namespace BowmarkProvider_viewrail {
|
|
14762
15216
|
// ── Viewrail — the unit's own declarations, verbatim ──
|
|
14763
15217
|
interface ViewrailMaterial {
|
|
@@ -14798,6 +15252,62 @@ interface ViewrailMountingStyle {
|
|
|
14798
15252
|
}
|
|
14799
15253
|
}
|
|
14800
15254
|
|
|
15255
|
+
declare namespace BowmarkProvider_villagerealtyobx {
|
|
15256
|
+
// ── Village Realty — the unit's own declarations, verbatim ──
|
|
15257
|
+
interface VillagerealtyobxListing {
|
|
15258
|
+
propertyID: string;
|
|
15259
|
+
seoName: string;
|
|
15260
|
+
name: string;
|
|
15261
|
+
town: string;
|
|
15262
|
+
address: string | null;
|
|
15263
|
+
bedrooms: number | null;
|
|
15264
|
+
maxGuests: number | null;
|
|
15265
|
+
photoUrl: string | null;
|
|
15266
|
+
url: string;
|
|
15267
|
+
}
|
|
15268
|
+
|
|
15269
|
+
interface VillagerealtyobxQuote {
|
|
15270
|
+
propertyID: string;
|
|
15271
|
+
checkin: string;
|
|
15272
|
+
checkout: string;
|
|
15273
|
+
available: boolean;
|
|
15274
|
+
rent: number | null;
|
|
15275
|
+
taxes: number | null;
|
|
15276
|
+
total: number | null;
|
|
15277
|
+
currency: string;
|
|
15278
|
+
bookNowURL: string | null;
|
|
15279
|
+
message: string | null;
|
|
15280
|
+
}
|
|
15281
|
+
|
|
15282
|
+
/**
|
|
15283
|
+
* Village Realty's own Outer Banks vacation-rental search and real-time property quote (rent,
|
|
15284
|
+
* taxes, total, book-now link) — the same live pricing their own site computes, no login
|
|
15285
|
+
* required.
|
|
15286
|
+
*/
|
|
15287
|
+
interface Unit {
|
|
15288
|
+
/**
|
|
15289
|
+
* Searches Village Realty's own 900+ Outer Banks rental listings the way
|
|
15290
|
+
* villagerealtyobx.com/outer-banks-vacation-rentals does — filter by town (e.g. "Corolla",
|
|
15291
|
+
* "Nags Head"), exact bedroom count, amenities (e.g. "Private Pool", "Elevator"), and
|
|
15292
|
+
* optionally a date range — returning each matching property's id, name, town, address,
|
|
15293
|
+
* bedroom count, max guests and detail-page URL. Call getQuote with a result's propertyID for
|
|
15294
|
+
* a real priced quote.
|
|
15295
|
+
*/
|
|
15296
|
+
searchRentals(args?: { town?: string, bedrooms?: number, amenities?: string[], checkin?: string, checkout?: string, page?: number }): Promise<VillagerealtyobxListing[]>;
|
|
15297
|
+
|
|
15298
|
+
/**
|
|
15299
|
+
* Gets a real-time price quote for one Village Realty property and date range — the exact
|
|
15300
|
+
* server-computed rent, taxes and total the rental detail page shows after picking dates, plus
|
|
15301
|
+
* the book-now URL. `checkin`/`checkout` are `MM/DD/YYYY`. `available: false` is a genuine
|
|
15302
|
+
* site answer (e.g. the dates fail the property's minimum-night-stay rule), not an error —
|
|
15303
|
+
* this is the flow ChatGPT itself cannot operate today: asked to price a Village Realty stay
|
|
15304
|
+
* it answers "I can't complete the booking or take payment for you" and recommends competitor
|
|
15305
|
+
* sites instead of quoting Village Realty's own live price.
|
|
15306
|
+
*/
|
|
15307
|
+
getQuote(args: { propertyID: string, checkin: string, checkout: string }): Promise<VillagerealtyobxQuote>;
|
|
15308
|
+
}
|
|
15309
|
+
}
|
|
15310
|
+
|
|
14801
15311
|
declare namespace BowmarkProvider_visible {
|
|
14802
15312
|
// ── Visible — the unit's own declarations, verbatim ──
|
|
14803
15313
|
interface VisibleDealOffer {
|
|
@@ -15057,6 +15567,33 @@ interface VisibleGetPlansResult {
|
|
|
15057
15567
|
}
|
|
15058
15568
|
}
|
|
15059
15569
|
|
|
15570
|
+
declare namespace BowmarkProvider_voluspa {
|
|
15571
|
+
// ── Voluspa — the unit's own declarations, verbatim ──
|
|
15572
|
+
interface VoluspaQuizButton {
|
|
15573
|
+
text: string;
|
|
15574
|
+
action: string;
|
|
15575
|
+
url?: string;
|
|
15576
|
+
selectedValue?: string;
|
|
15577
|
+
}
|
|
15578
|
+
interface VoluspaQuizIntro {
|
|
15579
|
+
paths: VoluspaQuizButton[];
|
|
15580
|
+
firstQuestionOptions: VoluspaQuizButton[];
|
|
15581
|
+
}
|
|
15582
|
+
|
|
15583
|
+
/**
|
|
15584
|
+
* Voluspa's own "Find Your Fragrance" quiz suite — reads the branching quiz's entry paths and
|
|
15585
|
+
* first-question scent-family options straight from the quiz vendor's config.
|
|
15586
|
+
*/
|
|
15587
|
+
interface Unit {
|
|
15588
|
+
/**
|
|
15589
|
+
* Reads the fragrance quiz's entry screen — its two branching paths and the FIRST question's
|
|
15590
|
+
* scent-family options for one of them (0 = home fragrance, 1 = personal fragrance/EDP, as the
|
|
15591
|
+
* splash screen lists them; default 0) — decoded from Digioh's own campaign config.
|
|
15592
|
+
*/
|
|
15593
|
+
getFragranceQuizIntro(pathIndex?: number): Promise<VoluspaQuizIntro>;
|
|
15594
|
+
}
|
|
15595
|
+
}
|
|
15596
|
+
|
|
15060
15597
|
declare namespace BowmarkProvider_walmart {
|
|
15061
15598
|
// ── Walmart — the unit's own declarations, verbatim ──
|
|
15062
15599
|
interface walmartStore {
|
|
@@ -15236,6 +15773,52 @@ interface wellfoundCompanyDetail {
|
|
|
15236
15773
|
}
|
|
15237
15774
|
}
|
|
15238
15775
|
|
|
15776
|
+
declare namespace BowmarkProvider_xpresswellnessurgentcare {
|
|
15777
|
+
// ── Xpress Wellness Urgent Care — the unit's own declarations, verbatim ──
|
|
15778
|
+
interface XpressFacility {
|
|
15779
|
+
facilityId: string; // healow facility_id — what checkWaitTime takes
|
|
15780
|
+
name: string; // e.g. "Manhattan, KS"
|
|
15781
|
+
address: string | null;
|
|
15782
|
+
phone: string | null;
|
|
15783
|
+
detailsUrl: string | null; // the clinic's own page on the marketing site
|
|
15784
|
+
checkinUrl: string; // the healow openaccess widget URL
|
|
15785
|
+
}
|
|
15786
|
+
interface XpressWaitTime {
|
|
15787
|
+
facilityId: string;
|
|
15788
|
+
facilityName: string; // confirmed by the widget's own dataLayer, not assumed
|
|
15789
|
+
address: string | null;
|
|
15790
|
+
phone: string | null;
|
|
15791
|
+
waitTimeText: string; // the site's own bucketed phrase, e.g. "Under 30 mins"
|
|
15792
|
+
hoursText: string | null; // e.g. "OPEN - Until 8 PM"
|
|
15793
|
+
url: string;
|
|
15794
|
+
}
|
|
15795
|
+
|
|
15796
|
+
/**
|
|
15797
|
+
* Reads Xpress Wellness Urgent Care's clinic roster and each clinic's live healow wait-time /
|
|
15798
|
+
* check-in widget — no key, no browser.
|
|
15799
|
+
*/
|
|
15800
|
+
interface Unit {
|
|
15801
|
+
/**
|
|
15802
|
+
* Lists every Xpress Wellness Urgent Care clinic — 40 locations across Oklahoma, Kansas and
|
|
15803
|
+
* one Texas site — with name, address, phone, the clinic's own detail page and the healow
|
|
15804
|
+
* check-in widget URL + facility_id. Takes nothing. The facilityId it returns is what
|
|
15805
|
+
* checkWaitTime takes. THROWS rather than returning [] when the roster page answers with no
|
|
15806
|
+
* clinics — the roster is never honestly empty.
|
|
15807
|
+
*/
|
|
15808
|
+
listFacilities(): Promise<XpressFacility[]>;
|
|
15809
|
+
|
|
15810
|
+
/**
|
|
15811
|
+
* Reads one clinic's live estimated wait time, hours-today status and confirmed identity
|
|
15812
|
+
* straight off its healow openaccess widget. facilityId is the numeric id listFacilities
|
|
15813
|
+
* returns (e.g. "10"). Confirms the facility resolved by cross-checking the widget's own
|
|
15814
|
+
* embedded facility name before returning a reading; THROWS with the caller-facing facility_id
|
|
15815
|
+
* named if the widget carries no name (an unknown id) or no wait-time reading (the widget's
|
|
15816
|
+
* markup changed).
|
|
15817
|
+
*/
|
|
15818
|
+
checkWaitTime(facilityId: string): Promise<XpressWaitTime>;
|
|
15819
|
+
}
|
|
15820
|
+
}
|
|
15821
|
+
|
|
15239
15822
|
declare namespace BowmarkProvider_yourarborhome {
|
|
15240
15823
|
// ── Arbor Homes — the unit's own declarations, verbatim ──
|
|
15241
15824
|
interface ArborHome {
|
|
@@ -15606,8 +16189,8 @@ interface ShopifyCart {
|
|
|
15606
16189
|
|
|
15607
16190
|
/**
|
|
15608
16191
|
* OSMUND OLSEN — Every Shopify storefront, reached by its own name. One engine over the
|
|
15609
|
-
* platform's two published surfaces — the store's own MCP server at /api/mcp for
|
|
15610
|
-
* the keyless Ajax storefront JSON for products and the cart.
|
|
16192
|
+
* platform's two published surfaces — the store's own UCP MCP server at /api/ucp/mcp for
|
|
16193
|
+
* search, and the keyless Ajax storefront JSON for products and the cart.
|
|
15611
16194
|
*/
|
|
15612
16195
|
interface Unit {
|
|
15613
16196
|
/**
|
|
@@ -16019,8 +16602,8 @@ interface ShopifyCart {
|
|
|
16019
16602
|
|
|
16020
16603
|
/**
|
|
16021
16604
|
* friedrikdev — Every Shopify storefront, reached by its own name. One engine over the
|
|
16022
|
-
* platform's two published surfaces — the store's own MCP server at /api/mcp for
|
|
16023
|
-
* the keyless Ajax storefront JSON for products and the cart.
|
|
16605
|
+
* platform's two published surfaces — the store's own UCP MCP server at /api/ucp/mcp for
|
|
16606
|
+
* search, and the keyless Ajax storefront JSON for products and the cart.
|
|
16024
16607
|
*/
|
|
16025
16608
|
interface Unit {
|
|
16026
16609
|
/**
|
|
@@ -16114,9 +16697,11 @@ interface BowmarkProviders {
|
|
|
16114
16697
|
azure: BowmarkProvider_azure.Unit;
|
|
16115
16698
|
barletta: BowmarkProvider_barletta.Unit;
|
|
16116
16699
|
bhphoto: BowmarkProvider_bhphoto.Unit;
|
|
16700
|
+
bigrentz: BowmarkProvider_bigrentz.Unit;
|
|
16117
16701
|
blenderseyewear: BowmarkProvider_blenderseyewear.Unit;
|
|
16118
16702
|
bluehaven: BowmarkProvider_bluehaven.Unit;
|
|
16119
16703
|
bmwusa: BowmarkProvider_bmwusa.Unit;
|
|
16704
|
+
boydsleep: BowmarkProvider_boydsleep.Unit;
|
|
16120
16705
|
bykoket: BowmarkProvider_bykoket.Unit;
|
|
16121
16706
|
cancer: BowmarkProvider_cancer.Unit;
|
|
16122
16707
|
caraway: BowmarkProvider_caraway.Unit;
|
|
@@ -16134,6 +16719,7 @@ interface BowmarkProviders {
|
|
|
16134
16719
|
discounttire: BowmarkProvider_discounttire.Unit;
|
|
16135
16720
|
embroker: BowmarkProvider_embroker.Unit;
|
|
16136
16721
|
erieinsurance: BowmarkProvider_erieinsurance.Unit;
|
|
16722
|
+
eventsource: BowmarkProvider_eventsource.Unit;
|
|
16137
16723
|
extraspace: BowmarkProvider_extraspace.Unit;
|
|
16138
16724
|
firstdibs: BowmarkProvider_firstdibs.Unit;
|
|
16139
16725
|
flightradar24: BowmarkProvider_flightradar24.Unit;
|
|
@@ -16144,6 +16730,7 @@ interface BowmarkProviders {
|
|
|
16144
16730
|
google_flights: BowmarkProvider_google_flights.Unit;
|
|
16145
16731
|
gotchacovered: BowmarkProvider_gotchacovered.Unit;
|
|
16146
16732
|
grainger: BowmarkProvider_grainger.Unit;
|
|
16733
|
+
grandwelcome: BowmarkProvider_grandwelcome.Unit;
|
|
16147
16734
|
handypro: BowmarkProvider_handypro.Unit;
|
|
16148
16735
|
harmar: BowmarkProvider_harmar.Unit;
|
|
16149
16736
|
hauslabs: BowmarkProvider_hauslabs.Unit;
|
|
@@ -16157,6 +16744,7 @@ interface BowmarkProviders {
|
|
|
16157
16744
|
insurify: BowmarkProvider_insurify.Unit;
|
|
16158
16745
|
interiordefine: BowmarkProvider_interiordefine.Unit;
|
|
16159
16746
|
islllc: BowmarkProvider_islllc.Unit;
|
|
16747
|
+
jennikayne: BowmarkProvider_jennikayne.Unit;
|
|
16160
16748
|
joybird: BowmarkProvider_joybird.Unit;
|
|
16161
16749
|
kayak: BowmarkProvider_kayak.Unit;
|
|
16162
16750
|
kitchentuneup: BowmarkProvider_kitchentuneup.Unit;
|
|
@@ -16191,6 +16779,7 @@ interface BowmarkProviders {
|
|
|
16191
16779
|
prose: BowmarkProvider_prose.Unit;
|
|
16192
16780
|
reddit: BowmarkProvider_reddit.Unit;
|
|
16193
16781
|
ritani: BowmarkProvider_ritani.Unit;
|
|
16782
|
+
roofmaxx: BowmarkProvider_roofmaxx.Unit;
|
|
16194
16783
|
samsclub: BowmarkProvider_samsclub.Unit;
|
|
16195
16784
|
sears: BowmarkProvider_sears.Unit;
|
|
16196
16785
|
seegarsfence: BowmarkProvider_seegarsfence.Unit;
|
|
@@ -16200,18 +16789,24 @@ interface BowmarkProviders {
|
|
|
16200
16789
|
statefarm: BowmarkProvider_statefarm.Unit;
|
|
16201
16790
|
stickergiant: BowmarkProvider_stickergiant.Unit;
|
|
16202
16791
|
sunhomesaunas: BowmarkProvider_sunhomesaunas.Unit;
|
|
16792
|
+
tamarackidaho: BowmarkProvider_tamarackidaho.Unit;
|
|
16203
16793
|
target: BowmarkProvider_target.Unit;
|
|
16794
|
+
tatcha: BowmarkProvider_tatcha.Unit;
|
|
16204
16795
|
teladoc: BowmarkProvider_teladoc.Unit;
|
|
16205
|
-
tentree: BowmarkProvider_tentree.Unit;
|
|
16206
16796
|
therabody: BowmarkProvider_therabody.Unit;
|
|
16207
16797
|
thezebra: BowmarkProvider_thezebra.Unit;
|
|
16208
16798
|
topviewtix: BowmarkProvider_topviewtix.Unit;
|
|
16209
16799
|
trektravel: BowmarkProvider_trektravel.Unit;
|
|
16800
|
+
twiddy: BowmarkProvider_twiddy.Unit;
|
|
16210
16801
|
ulrichlifestyle: BowmarkProvider_ulrichlifestyle.Unit;
|
|
16802
|
+
vervecoffee: BowmarkProvider_vervecoffee.Unit;
|
|
16211
16803
|
viewrail: BowmarkProvider_viewrail.Unit;
|
|
16804
|
+
villagerealtyobx: BowmarkProvider_villagerealtyobx.Unit;
|
|
16212
16805
|
visible: BowmarkProvider_visible.Unit;
|
|
16806
|
+
voluspa: BowmarkProvider_voluspa.Unit;
|
|
16213
16807
|
walmart: BowmarkProvider_walmart.Unit;
|
|
16214
16808
|
wellfound: BowmarkProvider_wellfound.Unit;
|
|
16809
|
+
xpresswellnessurgentcare: BowmarkProvider_xpresswellnessurgentcare.Unit;
|
|
16215
16810
|
yourarborhome: BowmarkProvider_yourarborhome.Unit;
|
|
16216
16811
|
"000de82": BowmarkFamily_shopify_store.Unit;
|
|
16217
16812
|
"001r3iv0": BowmarkFamily_shopify_store.Unit;
|
|
@@ -58133,6 +58728,7 @@ interface BowmarkProviders {
|
|
|
58133
58728
|
tentarte: BowmarkFamily_shopify_store.Unit;
|
|
58134
58729
|
tenthavenuenorthshop: BowmarkFamily_shopify_store.Unit;
|
|
58135
58730
|
tenthpine: BowmarkFamily_shopify_store.Unit;
|
|
58731
|
+
tentree: BowmarkFamily_shopify_store.Unit;
|
|
58136
58732
|
teoapparel: BowmarkFamily_shopify_store.Unit;
|
|
58137
58733
|
teopanzolcobarcelonnette: BowmarkFamily_shopify_store.Unit;
|
|
58138
58734
|
tepawines: BowmarkFamily_shopify_store.Unit;
|