@bowmark/web 1.15.0 → 1.16.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: 23b6633ded987b433276311bd6c89f96297649a628b9687bc4fbd8d39745a4ee
9
- // 43 capabilities, 331 providers, 833 typed functions, 20 refused.
8
+ // Manifest version: a1e3e6de6a511c3fcbec88c14d4c7a9805aef78095475d828edf1aeaa922747f
9
+ // 43 capabilities, 341 providers, 857 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
@@ -2639,6 +2639,70 @@ type CallOptions = {
2639
2639
  }
2640
2640
  }
2641
2641
 
2642
+ declare namespace BowmarkProvider_a1storage {
2643
+ // ── A-1 Self Storage — the unit's own declarations, verbatim ──
2644
+ // A-1 Self Storage's OWN shapes — not a capability contract.
2645
+
2646
+ interface a1storageFacility {
2647
+ facilityId: string; // the id getFacilityUnits/getMoveInCost take
2648
+ name: string; address: string; city: string; state: string; zip: string;
2649
+ phone: string; email: string;
2650
+ lat: number | null; lng: number | null;
2651
+ locationUrl: string; // the facility's public page, verified against A-1's own sitemap
2652
+ }
2653
+
2654
+ interface a1storageFacilitySearchFilters { state?: string; city?: string }
2655
+
2656
+ interface a1storageUnitGroup {
2657
+ unitId: string; // the id getMoveInCost's unitId takes
2658
+ length: number; width: number; areaSqFt: number;
2659
+ categoryName: string; // e.g. "Medium"
2660
+ features: string[];
2661
+ availableCount: number;
2662
+ regularPrice: number | null;
2663
+ promoPrice: number | null; // null when no promo is currently active
2664
+ promoLabel: string | null;
2665
+ }
2666
+
2667
+ interface a1storageCharge { description: string; charge: number; tax: number; total: number }
2668
+
2669
+ interface a1storageMoveInCost {
2670
+ charges: a1storageCharge[];
2671
+ subtotal: number; taxes: number; total: number;
2672
+ firstMonthRent: number;
2673
+ promotionName: string | null;
2674
+ }
2675
+
2676
+ /**
2677
+ * Reads A-1 Self Storage's own live unit availability, pricing and per-unit itemized move-in
2678
+ * cost — real size, category, live rate and any active promo, and the exact pre-rental total
2679
+ * for a selected unit — off the site's own Storage Essentials REST API, the way its facility
2680
+ * pages compute the same numbers client-side.
2681
+ */
2682
+ interface Unit {
2683
+ /**
2684
+ * Lists every A-1 Self Storage facility (51 today), optionally narrowed by US state or city.
2685
+ * Each row carries the facilityId getFacilityUnits/getMoveInCost take, plus address, phone,
2686
+ * email, lat/lng and a public locationUrl.
2687
+ */
2688
+ listFacilities(filters?: a1storageFacilitySearchFilters): Promise<a1storageFacility[]>;
2689
+
2690
+ /**
2691
+ * Reads one facility's live unit inventory by size group: real dimensions, category, current
2692
+ * availability, the standard web rate and any active promo rate. THROWS on an unknown
2693
+ * facilityId — call listFacilities() first.
2694
+ */
2695
+ getFacilityUnits(facilityId: string): Promise<a1storageUnitGroup[]>;
2696
+
2697
+ /**
2698
+ * Computes the itemized pre-rental move-in cost for one selected unit — rent, admin fee,
2699
+ * deposit, subtotal and total — before any tenant, ID or payment step. THROWS on an unknown
2700
+ * facilityId/unitId pair — call getFacilityUnits() first.
2701
+ */
2702
+ getMoveInCost(facilityId: string, unitId: string): Promise<a1storageMoveInCost>;
2703
+ }
2704
+ }
2705
+
2642
2706
  declare namespace BowmarkProvider_aa {
2643
2707
  // ── American Airlines — the unit's own declarations, verbatim ──
2644
2708
  interface aaFlight {
@@ -3147,6 +3211,31 @@ interface abercrombieStockQuery {
3147
3211
  }
3148
3212
  }
3149
3213
 
3214
+ declare namespace BowmarkProvider_acerentacar {
3215
+ // ── ACE Rent A Car — the unit's own declarations, verbatim ──
3216
+ interface AcerentacarSearchArgs { pickupLocationCode: string; pickupDate: string; dropoffDate: string; pickupTime?: string; dropoffTime?: string; }
3217
+ interface AcerentacarVehicle { code: string; name: string; type: string; category: string; passengers: number; baggage: number; automatic: boolean; currencyCode: string; rates: { bidId: string; baseRate: number; totalAmount: number; prepaid: boolean }[]; reservationUrl: string; }
3218
+ interface AcerentacarLocation { code: string; name: string; city: string; state: string | null; countryISO: string; }
3219
+
3220
+ /**
3221
+ * ACE Rent A Car's live public vehicle availability and rates for a location and itinerary,
3222
+ * with a reservation handoff.
3223
+ */
3224
+ interface Unit {
3225
+ /**
3226
+ * Returns ACE's live available vehicle classes and rate totals for a public pickup location
3227
+ * and itinerary, plus a reservation handoff URL.
3228
+ */
3229
+ searchAvailability(args: AcerentacarSearchArgs): Promise<AcerentacarVehicle[]>;
3230
+
3231
+ /**
3232
+ * Matches a free-text city, airport or state against ACE's public location catalog and returns
3233
+ * the location codes searchAvailability needs.
3234
+ */
3235
+ searchLocations(args: { query: string }): Promise<AcerentacarLocation[]>;
3236
+ }
3237
+ }
3238
+
3150
3239
  declare namespace BowmarkProvider_achosahw {
3151
3240
  // ── Achosa Home Warranty — the unit's own declarations, verbatim ──
3152
3241
  // Achosa's OWN shapes — not a capability contract.
@@ -7349,6 +7438,120 @@ interface CarePatrolFindLocalAdvisorResult {
7349
7438
  }
7350
7439
  }
7351
7440
 
7441
+ declare namespace BowmarkProvider_carlsgolfland {
7442
+ // ── Carl's Golfland — the unit's own declarations, verbatim ──
7443
+ // Carl's Golfland's OWN shapes — not a capability contract.
7444
+
7445
+ interface CglProductSummary {
7446
+ urlKey: string; // the key getProduct takes
7447
+ sku: string;
7448
+ name: string;
7449
+ url: string;
7450
+ stockStatus: string; // "IN_STOCK" | "OUT_OF_STOCK"
7451
+ basePrice: number;
7452
+ basePriceFormatted: string; // "$447.00"
7453
+ }
7454
+
7455
+ interface CglOptionChoice { label: string; valueIndex: number }
7456
+
7457
+ interface CglOption {
7458
+ groupLabel: string; // "Hand", "Driver Loft", "Shaft" — the real group name
7459
+ attributeCode: string;
7460
+ choices: CglOptionChoice[];
7461
+ }
7462
+
7463
+ interface CglVariant {
7464
+ sku: string;
7465
+ stockStatus: string;
7466
+ price: number;
7467
+ priceFormatted: string;
7468
+ selections: Record<string, number>; // attributeCode -> valueIndex
7469
+ }
7470
+
7471
+ interface CglProduct {
7472
+ urlKey: string;
7473
+ sku: string;
7474
+ name: string;
7475
+ url: string;
7476
+ stockStatus: string;
7477
+ basePrice: number;
7478
+ basePriceFormatted: string;
7479
+ options: CglOption[];
7480
+ variants: CglVariant[];
7481
+ }
7482
+
7483
+ interface CglPriceResult {
7484
+ urlKey: string;
7485
+ sku: string;
7486
+ variantSku: string | null; // null until every multi-choice group is picked
7487
+ stockStatus: string | null;
7488
+ price: number | null;
7489
+ priceFormatted: string | null;
7490
+ applied: { group: string; choice: string }[];
7491
+ missingGroups: string[]; // groups with >1 choice and no selection applied
7492
+ unmatched: string[]; // selections that didn't match a real group/choice
7493
+ handoffUrl: string; // the product's entry page
7494
+ }
7495
+
7496
+ interface CglCartHandoff {
7497
+ urlKey: string;
7498
+ sku: string;
7499
+ name: string;
7500
+ url: string; // the product page — Carl's Golfland publishes no query-param deep link
7501
+ applied: { group: string; choice: string }[];
7502
+ price: number | null;
7503
+ priceFormatted: string | null;
7504
+ stockStatus: string | null;
7505
+ missingGroups: string[];
7506
+ unmatched: string[];
7507
+ }
7508
+
7509
+ /**
7510
+ * Carl's Golfland's golf-equipment catalog — search live inventory, read one product's real
7511
+ * configurable options (hand, loft, shaft) with each combination's exact price and stock
7512
+ * status, and resolve a specific configuration to its real variant rather than a researched
7513
+ * estimate.
7514
+ */
7515
+ interface Unit {
7516
+ /**
7517
+ * Searches Carl's Golfland's golf-equipment catalog by free text (e.g. "driver", "putter") and
7518
+ * returns every match's urlKey, SKU, name, entry URL, stock status and starting price. The
7519
+ * `urlKey` on each row is what getProduct takes.
7520
+ */
7521
+ searchProducts(query: string): Promise<CglProductSummary[]>;
7522
+
7523
+ /**
7524
+ * Reads one product's full configurable-option set (e.g. Hand, Driver Loft, Shaft) with each
7525
+ * choice's real label, plus every real buildable variant's exact price and stock status.
7526
+ * THROWS on an unknown urlKey, naming searchProducts() as the way to find current ones.
7527
+ */
7528
+ getProduct(urlKey: string): Promise<CglProduct>;
7529
+
7530
+ /**
7531
+ * Resolves ONE specific configuration — selections keyed by option group (case-insensitive),
7532
+ * e.g. { "Hand": "Right", "Driver Loft": "10.5*", "Shaft": "PING ALTA CB Blue 50 Regular" } —
7533
+ * against the product's live options and returns the matching variant's real price and stock
7534
+ * status, the applied choices, and the site URL to re-pick the same choices (Carl's Golfland
7535
+ * publishes no shareable URL for a configured state). `missingGroups` names any option group
7536
+ * with more than one choice left unpicked — price is null until every such group is chosen.
7537
+ * `unmatched` names any selection that did not match a real group or choice, rather than
7538
+ * silently mispricing.
7539
+ */
7540
+ priceConfiguration(urlKey: string, selections: Record<string, string>): Promise<CglPriceResult>;
7541
+
7542
+ /**
7543
+ * Turns a configuration into the handoff you give the shopper: Carl's Golfland's own product
7544
+ * page URL plus the exact choices to click there, since this storefront does not honour a
7545
+ * query-param deep link for a configured state (measured — see the provider's reach note).
7546
+ * Same selections shape as priceConfiguration, and returns the same price, stock status and
7547
+ * applied choices alongside the URL. NOTHING IS CREATED SERVER-SIDE and nothing is bought —
7548
+ * this provider never posts to the site's own add-to-cart endpoint, which requires a
7549
+ * session-bound form key this stateless call does not hold.
7550
+ */
7551
+ addToCart(urlKey: string, selections: Record<string, string>): Promise<CglCartHandoff>;
7552
+ }
7553
+ }
7554
+
7352
7555
  declare namespace BowmarkProvider_carmelrealtycompany {
7353
7556
  // ── Carmel Realty Company — the unit's own declarations, verbatim ──
7354
7557
  interface carmelrealtycompanyListingSummary {
@@ -7984,6 +8187,90 @@ interface FoundationMatch {
7984
8187
  }
7985
8188
  }
7986
8189
 
8190
+ declare namespace BowmarkProvider_chappellet {
8191
+ // ── Chappellet — the unit's own declarations, verbatim ──
8192
+ interface ChappelletVariantInventory {
8193
+ inventoryLocationId: string;
8194
+ availableForSaleCount: number;
8195
+ }
8196
+
8197
+ interface ChappelletVariant {
8198
+ id: string;
8199
+ title: string;
8200
+ sku: string | null;
8201
+ volumeInML: number | null;
8202
+ price: number; // cents
8203
+ inventory: ChappelletVariantInventory[];
8204
+ totalAvailable: number;
8205
+ }
8206
+
8207
+ interface ChappelletWine {
8208
+ id: string;
8209
+ slug: string;
8210
+ title: string;
8211
+ webStatus: string;
8212
+ variants: ChappelletVariant[];
8213
+ inStock: boolean;
8214
+ url: string;
8215
+ }
8216
+
8217
+ interface ChappelletShippingCheck {
8218
+ stateCode: string;
8219
+ shippable: boolean;
8220
+ }
8221
+
8222
+ /**
8223
+ * Chappellet's live public wine shop — current releases, real price and stock, and destination
8224
+ * shipping eligibility, read straight off the Commerce7 storefront that powers
8225
+ * chappellet.com/shop.
8226
+ */
8227
+ interface Unit {
8228
+ /**
8229
+ * Lists the current releases in Chappellet's public shop, with live price and per-location
8230
+ * stock. Takes nothing (page defaults to 1). Example: bowmark.providers.chappellet.listWines()
8231
+ */
8232
+ listWines(page?: number): Promise<ChappelletWine[]>;
8233
+
8234
+ /**
8235
+ * Reads one wine by the slug listWines returns — full variant, price and live stock detail.
8236
+ * Example: bowmark.providers.chappellet.getWine("2023-pritchard-hill-cabernet-sauvignon")
8237
+ */
8238
+ getWine(slug: string): Promise<ChappelletWine>;
8239
+
8240
+ /**
8241
+ * Checks whether Chappellet's storefront can ship wine to a US state right now. Example:
8242
+ * bowmark.providers.chappellet.checkShippingEligibility("IL")
8243
+ */
8244
+ checkShippingEligibility(stateCode: string): Promise<ChappelletShippingCheck>;
8245
+ }
8246
+ }
8247
+
8248
+ declare namespace BowmarkProvider_charterhomes {
8249
+ // ── Charter Homes & Neighborhoods — the unit's own declarations, verbatim ──
8250
+ interface CharterhomesSearchArgs { city?: string; minBedrooms?: number; }
8251
+ interface CharterhomesListing { id: string; address: string; neighborhood: string; price: number; beds: number; baths: number; sqft: number; url: string; }
8252
+ interface CharterhomesVisitOption { neighborhood: string; label: string; calendlyUrl: string; }
8253
+
8254
+ /**
8255
+ * Live Charter Homes & Neighborhoods for-sale inventory plus real per-neighborhood Calendly
8256
+ * tour-booking links; prefer it when current price/availability or how to book a visit
8257
+ * matters.
8258
+ */
8259
+ interface Unit {
8260
+ /**
8261
+ * Searches Charter Homes' current for-sale inventory by city/neighborhood and minimum bedroom
8262
+ * count. Returns live address, neighborhood, price, beds, baths, sqft and the listing URL.
8263
+ */
8264
+ searchHomes(args?: CharterhomesSearchArgs): Promise<CharterhomesListing[]>;
8265
+
8266
+ /**
8267
+ * Reads Charter's live schedule-a-visit page and returns every neighborhood with its real
8268
+ * Calendly tour-booking URL. Never books anything.
8269
+ */
8270
+ getScheduleVisitOptions(): Promise<CharterhomesVisitOption[]>;
8271
+ }
8272
+ }
8273
+
7987
8274
  declare namespace BowmarkProvider_cheapflights {
7988
8275
  // ── Cheapflights — the unit's own declarations, verbatim ──
7989
8276
  interface KayakQuery {
@@ -11081,6 +11368,41 @@ interface FaceRealitySkincareEstheticianRow {
11081
11368
  }
11082
11369
  }
11083
11370
 
11371
+ declare namespace BowmarkProvider_fieldstonehomes {
11372
+ // ── Fieldstone Homes — the unit's own declarations, verbatim ──
11373
+ interface FieldstonehomesSearchArgs { city?: string; homeType?: string; minPrice?: number; maxPrice?: number; minBeds?: number; minSqft?: number; }
11374
+ interface FieldstonehomesQuickMoveIn { id: string; address: string; city: string; state: string; price: number; homeType: string; planName: string; sqft: number; beds: number; baths: number; availability: string | null; incentive: string | null; imageUrl: string | null; url: string; }
11375
+ interface FieldstonehomesFormOption { value: string; label: string; }
11376
+ interface FieldstonehomesFormField { name: string; label: string; type: string; required: boolean; options?: FieldstonehomesFormOption[]; }
11377
+ interface FieldstonehomesAppointmentForm { action: string; fields: FieldstonehomesFormField[]; }
11378
+ interface FieldstonehomesPrepareAppointmentArgs { firstName: string; lastName: string; email: string; phone?: string; communityId: string; requestedAt: string; message?: string; pageUrl?: string; }
11379
+ interface FieldstonehomesPreparedAppointment { valid: boolean; errors: string[]; action: string; handoffUrl: string; fields: Record<string, string>; }
11380
+
11381
+ /**
11382
+ * Live Fieldstone Homes quick-move-in inventory plus a validated appointment handoff; prefer
11383
+ * it when current availability, incentives or booking details matter.
11384
+ */
11385
+ interface Unit {
11386
+ /**
11387
+ * Searches Fieldstone Homes' current quick-move-in inventory. Filter by city, exact home type,
11388
+ * price, beds or square footage; returns live availability, incentives and the listing URL.
11389
+ */
11390
+ searchQuickMoveIns(args?: FieldstonehomesSearchArgs): Promise<FieldstonehomesQuickMoveIn[]>;
11391
+
11392
+ /**
11393
+ * Reads Fieldstone's current schedule-appointment form and Community Of Interest values
11394
+ * without submitting anything.
11395
+ */
11396
+ getAppointmentFormSchema(): Promise<FieldstonehomesAppointmentForm>;
11397
+
11398
+ /**
11399
+ * Validates a requested Fieldstone appointment against the live form and returns its exact
11400
+ * handoff values. Never submits the POST.
11401
+ */
11402
+ prepareAppointment(args: FieldstonehomesPrepareAppointmentArgs): Promise<FieldstonehomesPreparedAppointment>;
11403
+ }
11404
+ }
11405
+
11084
11406
  declare namespace BowmarkProvider_firstdibs {
11085
11407
  // ── 1stDibs — the unit's own declarations, verbatim ──
11086
11408
  interface FirstdibsSearchResult {
@@ -14979,6 +15301,26 @@ interface ihgRow { id: string; brandCode: string; availabilityStatus: string; lo
14979
15301
  }
14980
15302
  }
14981
15303
 
15304
+ declare namespace BowmarkProvider_inspirecommunities {
15305
+ // ── Inspire Communities — the unit's own declarations, verbatim ──
15306
+ interface InspirecommunitiesSearchHomesArgs { state?: string; community?: string; minBeds?: number; minBaths?: number; minPrice?: number; maxPrice?: number; listingType?: "sale" | "rent"; limit?: number; }
15307
+ interface InspirecommunitiesHome { id: string; address: string; community: string; location: string; price: number; beds: number; baths: number; sqft: number; listingType: "sale" | "rent"; detailUrl: string; tourHandoffUrl: string | null; }
15308
+ interface InspirecommunitiesSearchHomesResult { total: number; pages: number; homes: InspirecommunitiesHome[]; }
15309
+
15310
+ /**
15311
+ * Searches Inspire Communities' live manufactured-home inventory and returns the real listing
15312
+ * plus its schedule-a-tour handoff.
15313
+ */
15314
+ interface Unit {
15315
+ /**
15316
+ * Searches Inspire Communities' current manufactured homes by state, community, beds, baths,
15317
+ * price and sale or rent status. Returns live inventory, detail URLs and a read-only
15318
+ * schedule-a-tour handoff URL.
15319
+ */
15320
+ searchHomes(args?: InspirecommunitiesSearchHomesArgs): Promise<InspirecommunitiesSearchHomesResult>;
15321
+ }
15322
+ }
15323
+
14982
15324
  declare namespace BowmarkProvider_instagram {
14983
15325
  // ── Instagram — the unit's own declarations, verbatim ──
14984
15326
  interface InstagramProfile {
@@ -17895,6 +18237,30 @@ interface LufthansaBaggageAllowance {
17895
18237
  }
17896
18238
  }
17897
18239
 
18240
+ declare namespace BowmarkProvider_luggageforward {
18241
+ // ── Luggage Forward — the unit's own declarations, verbatim ──
18242
+ interface LuggageforwardLuggageType { id: string; name: string; maxWeight: string | null; maxDimensions: string | null; }
18243
+ interface LuggageforwardQuoteItem { name: string; quantity: number; }
18244
+ interface LuggageforwardQuoteArgs { items?: LuggageforwardQuoteItem[]; }
18245
+ interface LuggageforwardQuoteOption { service: string; deliveryDate: string | null; businessDays: string | null; price: number; currency: string; items: LuggageforwardQuoteItem[]; handoffUrl: string; }
18246
+
18247
+ /**
18248
+ * Live Luggage Forward shipping price tiers and luggage limits; prefer it when current
18249
+ * door-to-door luggage shipping prices or delivery speeds matter.
18250
+ */
18251
+ interface Unit {
18252
+ /**
18253
+ * Returns Luggage Forward's current public shipping prices across every available speed tier
18254
+ * for selected luggage. Defaults to one Standard Bag; use listLuggageTypes for live luggage
18255
+ * names and limits.
18256
+ */
18257
+ getQuoteOptions(args?: LuggageforwardQuoteArgs): Promise<LuggageforwardQuoteOption[]>;
18258
+
18259
+ /** Lists Luggage Forward's live luggage categories with their maximum weight and dimensions. */
18260
+ listLuggageTypes(): Promise<LuggageforwardLuggageType[]>;
18261
+ }
18262
+ }
18263
+
17898
18264
  declare namespace BowmarkProvider_lululemon {
17899
18265
  // ── lululemon — the unit's own declarations, verbatim ──
17900
18266
  interface LululemonVariant {
@@ -20735,6 +21101,69 @@ interface npmjsDownloads {
20735
21101
  }
20736
21102
  }
20737
21103
 
21104
+ declare namespace BowmarkProvider_nurturelife {
21105
+ // ── Nurture Life — the unit's own declarations, verbatim ──
21106
+ interface NurtureLifeMealPlan {
21107
+ slug: string;
21108
+ name: string;
21109
+ threshold: number;
21110
+ pricePerItem: number;
21111
+ shippingCost: number;
21112
+ discount: number;
21113
+ tag: string | null;
21114
+ }
21115
+
21116
+ interface GetMealPlansResult {
21117
+ plans: NurtureLifeMealPlan[];
21118
+ }
21119
+
21120
+ interface NurtureLifeBundleItem {
21121
+ sku: string;
21122
+ name: string;
21123
+ quantity: number;
21124
+ categoryName: string;
21125
+ }
21126
+
21127
+ interface NurtureLifeBundle {
21128
+ slug: string;
21129
+ name: string;
21130
+ defaultPlanSlug: string | null;
21131
+ items: NurtureLifeBundleItem[];
21132
+ }
21133
+
21134
+ interface GetMealBundleArgs {
21135
+ bundleSlug?: string;
21136
+ }
21137
+
21138
+ interface GetMealBundleResult {
21139
+ bundles: NurtureLifeBundle[];
21140
+ }
21141
+
21142
+ /**
21143
+ * Kids-meal delivery subscription. getMealPlans is live — the site's own real, current
21144
+ * per-plan pricing (7/10/14/21-meal tiers, per-meal price and discount) with no email or ZIP
21145
+ * required. getMealBundle returns the site's current curated meal bundles by real SKU and
21146
+ * name, never a stale or guessed list.
21147
+ */
21148
+ interface Unit {
21149
+ /**
21150
+ * Returns Nurture Life's real, live plan tiers (7/10/14/21 meals) with each tier's actual
21151
+ * current per-meal price, dollar discount and flat shipping cost — the same numbers the site's
21152
+ * own onboarding funnel computes, with no email or ZIP submitted. Not a marketing-page range
21153
+ * and not a guess off an old blog post.
21154
+ */
21155
+ getMealPlans(): Promise<GetMealPlansResult>;
21156
+
21157
+ /**
21158
+ * Returns Nurture Life's currently-offered curated meal bundles with their real, current meal
21159
+ * composition by SKU and name — pass `bundleSlug` (e.g. "picky-eater-bundle") for one bundle,
21160
+ * or omit it to list every bundle the site currently offers. Recovered from the site's own
21161
+ * bundle catalog API, not scraped from stale marketing copy.
21162
+ */
21163
+ getMealBundle(args: GetMealBundleArgs): Promise<GetMealBundleResult>;
21164
+ }
21165
+ }
21166
+
20738
21167
  declare namespace BowmarkProvider_nutrafol {
20739
21168
  // ── Nutrafol — the unit's own declarations, verbatim ──
20740
21169
  interface RootCause {
@@ -26824,6 +27253,54 @@ interface TrekTravelSearchFilters {
26824
27253
  }
26825
27254
  }
26826
27255
 
27256
+ declare namespace BowmarkProvider_trojanstorage {
27257
+ // ── Trojan Storage — the unit's own declarations, verbatim ──
27258
+ // Trojan Storage's OWN shapes — not a capability contract.
27259
+
27260
+ interface TrojanstorageFacility {
27261
+ facilityId: string; // the id getFacilityUnits takes
27262
+ name: string; url: string;
27263
+ street: string; city: string; state: string; zip: string; phone: string;
27264
+ lat: number | null; lng: number | null;
27265
+ }
27266
+
27267
+ interface TrojanstorageFacilitySearchFilters { state?: string; city?: string }
27268
+
27269
+ interface TrojanstorageUnit {
27270
+ unitGroupId: string;
27271
+ name: string; // e.g. "5x5 Upstairs Storage"
27272
+ features: string[];
27273
+ areaSqFt: number | null;
27274
+ regularPrice: number | null;
27275
+ promoPrice: number | null; // null when no promo is currently active
27276
+ promoLabel: string | null;
27277
+ availableCount: number | null;
27278
+ moveInUrl: string; // Quikstor handoff URL, price baked in
27279
+ }
27280
+
27281
+ /**
27282
+ * Reads Trojan Storage's own live per-facility unit pricing and availability — real size,
27283
+ * features, regular and current promo price, and a pre-computed Quikstor move-in handoff URL
27284
+ * with that exact price baked in — off the site's own storage-essentials REST API, the way its
27285
+ * facility pages render the same data client-side.
27286
+ */
27287
+ interface Unit {
27288
+ /**
27289
+ * Lists every Trojan Storage facility (56 today), optionally narrowed by US state or city.
27290
+ * Each row carries the facilityId getFacilityUnits() takes, plus address, phone and lat/lng.
27291
+ */
27292
+ listFacilities(filters?: TrojanstorageFacilitySearchFilters): Promise<TrojanstorageFacility[]>;
27293
+
27294
+ /**
27295
+ * Reads one facility's live unit inventory: real size, features, regular price, any active
27296
+ * promo and its promo'd price, current availability, and a pre-computed Quikstor move-in URL
27297
+ * with that exact price baked in. THROWS on an unknown facilityId — call listFacilities()
27298
+ * first.
27299
+ */
27300
+ getFacilityUnits(facilityId: string): Promise<TrojanstorageUnit[]>;
27301
+ }
27302
+ }
27303
+
26827
27304
  declare namespace BowmarkProvider_trophysignaturehomes {
26828
27305
  // ── Trophy Signature Homes — the unit's own declarations, verbatim ──
26829
27306
  // Trophy Signature Homes' OWN shapes — not a capability contract.
@@ -29219,9 +29696,11 @@ interface ShopifyCart {
29219
29696
  * wire — the id in the manifest, the trace, the namespace and a script are one
29220
29697
  * string, so there is no camelCase alias to be uncertain about. */
29221
29698
  interface BowmarkProviders {
29699
+ a1storage: BowmarkProvider_a1storage.Unit;
29222
29700
  aa: BowmarkProvider_aa.Unit;
29223
29701
  aauto: BowmarkProvider_aauto.Unit;
29224
29702
  abercrombie: BowmarkProvider_abercrombie.Unit;
29703
+ acerentacar: BowmarkProvider_acerentacar.Unit;
29225
29704
  achosahw: BowmarkProvider_achosahw.Unit;
29226
29705
  acqualinaresort: BowmarkProvider_acqualinaresort.Unit;
29227
29706
  aiper: BowmarkProvider_aiper.Unit;
@@ -29295,6 +29774,7 @@ interface BowmarkProviders {
29295
29774
  capitalbrands: BowmarkProvider_capitalbrands.Unit;
29296
29775
  caraway: BowmarkProvider_caraway.Unit;
29297
29776
  carepatrol: BowmarkProvider_carepatrol.Unit;
29777
+ carlsgolfland: BowmarkProvider_carlsgolfland.Unit;
29298
29778
  carmelrealtycompany: BowmarkProvider_carmelrealtycompany.Unit;
29299
29779
  carolefabrics: BowmarkProvider_carolefabrics.Unit;
29300
29780
  carpetlandusa: BowmarkProvider_carpetlandusa.Unit;
@@ -29304,6 +29784,8 @@ interface BowmarkProviders {
29304
29784
  cbhhomes: BowmarkProvider_cbhhomes.Unit;
29305
29785
  champxpress: BowmarkProvider_champxpress.Unit;
29306
29786
  chantecaille: BowmarkProvider_chantecaille.Unit;
29787
+ chappellet: BowmarkProvider_chappellet.Unit;
29788
+ charterhomes: BowmarkProvider_charterhomes.Unit;
29307
29789
  cheapflights: BowmarkProvider_cheapflights.Unit;
29308
29790
  chesmar: BowmarkProvider_chesmar.Unit;
29309
29791
  chipotle: BowmarkProvider_chipotle.Unit;
@@ -29346,6 +29828,7 @@ interface BowmarkProviders {
29346
29828
  executivehomecare: BowmarkProvider_executivehomecare.Unit;
29347
29829
  extraspace: BowmarkProvider_extraspace.Unit;
29348
29830
  facerealityskincare: BowmarkProvider_facerealityskincare.Unit;
29831
+ fieldstonehomes: BowmarkProvider_fieldstonehomes.Unit;
29349
29832
  firstdibs: BowmarkProvider_firstdibs.Unit;
29350
29833
  fivebelow: BowmarkProvider_fivebelow.Unit;
29351
29834
  fivestarbathsolutions: BowmarkProvider_fivestarbathsolutions.Unit;
@@ -29389,6 +29872,7 @@ interface BowmarkProviders {
29389
29872
  ibuypower: BowmarkProvider_ibuypower.Unit;
29390
29873
  identitygroup: BowmarkProvider_identitygroup.Unit;
29391
29874
  ihg: BowmarkProvider_ihg.Unit;
29875
+ inspirecommunities: BowmarkProvider_inspirecommunities.Unit;
29392
29876
  instagram: BowmarkProvider_instagram.Unit;
29393
29877
  insurify: BowmarkProvider_insurify.Unit;
29394
29878
  interiordefine: BowmarkProvider_interiordefine.Unit;
@@ -29421,6 +29905,7 @@ interface BowmarkProviders {
29421
29905
  louvershop: BowmarkProvider_louvershop.Unit;
29422
29906
  lovelybride: BowmarkProvider_lovelybride.Unit;
29423
29907
  lufthansa: BowmarkProvider_lufthansa.Unit;
29908
+ luggageforward: BowmarkProvider_luggageforward.Unit;
29424
29909
  lululemon: BowmarkProvider_lululemon.Unit;
29425
29910
  maidenhome: BowmarkProvider_maidenhome.Unit;
29426
29911
  mailchimp: BowmarkProvider_mailchimp.Unit;
@@ -29450,6 +29935,7 @@ interface BowmarkProviders {
29450
29935
  newegg: BowmarkProvider_newegg.Unit;
29451
29936
  nfa_futures_org: BowmarkProvider_nfa_futures_org.Unit;
29452
29937
  npmjs: BowmarkProvider_npmjs.Unit;
29938
+ nurturelife: BowmarkProvider_nurturelife.Unit;
29453
29939
  nutrafol: BowmarkProvider_nutrafol.Unit;
29454
29940
  nvisioncenters: BowmarkProvider_nvisioncenters.Unit;
29455
29941
  oanda: BowmarkProvider_oanda.Unit;
@@ -29525,6 +30011,7 @@ interface BowmarkProviders {
29525
30011
  travelinsured: BowmarkProvider_travelinsured.Unit;
29526
30012
  trawickinternational: BowmarkProvider_trawickinternational.Unit;
29527
30013
  trektravel: BowmarkProvider_trektravel.Unit;
30014
+ trojanstorage: BowmarkProvider_trojanstorage.Unit;
29528
30015
  trophysignaturehomes: BowmarkProvider_trophysignaturehomes.Unit;
29529
30016
  twiddy: BowmarkProvider_twiddy.Unit;
29530
30017
  uhc_smallbusiness: BowmarkProvider_uhc_smallbusiness.Unit;