@bowmark/web 1.12.1 → 1.12.3
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/README.md +36 -3
- package/{src → dist}/generated/library.d.ts +1007 -34
- package/dist/generated/validators.d.ts +2 -0
- package/dist/generated/validators.js +23430 -0
- package/dist/guard.d.ts +64 -0
- package/dist/guard.js +174 -0
- package/dist/index.d.ts +29 -0
- package/{src/index.ts → dist/index.js} +7 -33
- package/dist/session.d.ts +46 -0
- package/dist/session.js +153 -0
- package/dist/transport.d.ts +150 -0
- package/dist/transport.js +183 -0
- package/dist/validate.d.ts +132 -0
- package/dist/validate.js +278 -0
- package/package.json +10 -6
- package/src/generated/validators.ts +0 -22634
- package/src/guard.ts +0 -198
- package/src/session.ts +0 -194
- package/src/transport.ts +0 -342
- package/src/validate.ts +0 -371
|
@@ -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:
|
|
9
|
-
//
|
|
8
|
+
// Manifest version: 7ac4a9084853ee226f56e4964cb0bb95339c8375142eebd03526a4d6651ae380
|
|
9
|
+
// 39 capabilities, 274 providers, 707 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
|
|
@@ -197,6 +197,53 @@ type CallOptions = {
|
|
|
197
197
|
}
|
|
198
198
|
}
|
|
199
199
|
|
|
200
|
+
declare namespace BowmarkCapability_costume_size_check {
|
|
201
|
+
// ── Check one costume character's stock at one size, across Target, Walmart, and Spirit Halloween — the unit's own declarations, verbatim ──
|
|
202
|
+
interface RetailerSizeMatch {
|
|
203
|
+
title: string
|
|
204
|
+
url: string
|
|
205
|
+
price: { amount: number; currency: string } | null
|
|
206
|
+
inStock: boolean
|
|
207
|
+
}
|
|
208
|
+
interface RetailerSizeResult {
|
|
209
|
+
matched: RetailerSizeMatch | null // null + incomplete=false means this retailer
|
|
210
|
+
// answered and has no listing in this size
|
|
211
|
+
incomplete: boolean // true means this retailer's call never
|
|
212
|
+
// answered — matched is NOT a stockout then
|
|
213
|
+
}
|
|
214
|
+
interface CostumeSizeCheck {
|
|
215
|
+
character: string
|
|
216
|
+
size: string
|
|
217
|
+
retailers: { target: RetailerSizeResult; walmart: RetailerSizeResult; spirithalloween: RetailerSizeResult }
|
|
218
|
+
warnings: string[]
|
|
219
|
+
}
|
|
220
|
+
type CallOptions = {
|
|
221
|
+
timeoutMs?: number // per-provider budget in ms, default 30000, clamped to 1000-55000.
|
|
222
|
+
// A provider slower than this is DROPPED from the results and
|
|
223
|
+
// NAMED in warnings — never silently absent
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
/**
|
|
227
|
+
* Given a costume character and a size, fans out to Target, Walmart, and Spirit Halloween and
|
|
228
|
+
* reports whether each retailer has that exact character-and-size combination in stock right
|
|
229
|
+
* now — the per-size question a plain product search can't answer, because Target and Walmart
|
|
230
|
+
* bake size into a free-text title and Spirit Halloween only exposes its full size matrix on
|
|
231
|
+
* the product page.
|
|
232
|
+
*/
|
|
233
|
+
interface Unit {
|
|
234
|
+
/**
|
|
235
|
+
* Checks whether one costume character exists in one size, right now, at Target, Walmart, and
|
|
236
|
+
* Spirit Halloween. `retailers.<name>.matched` is the listing that named both the character
|
|
237
|
+
* and the size, or null when that retailer answered and has none. `incomplete: true` means
|
|
238
|
+
* that retailer's own call never answered — a missed deadline or an error — so `matched: null`
|
|
239
|
+
* there is NOT a stockout; nothing was learned. Never throws on one or two retailers being
|
|
240
|
+
* unreachable — the surviving legs still answer and the dropped ones are named in `warnings`;
|
|
241
|
+
* throws only when all three failed.
|
|
242
|
+
*/
|
|
243
|
+
checkSize(args: { character: string; size: string }): Promise<CostumeSizeCheck>;
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
|
|
200
247
|
declare namespace BowmarkCapability_coworking {
|
|
201
248
|
// ── Coworking space day passes — the unit's own declarations, verbatim ──
|
|
202
249
|
type CoworkingDayPass = {
|
|
@@ -325,6 +372,46 @@ type CallOptions = {
|
|
|
325
372
|
}
|
|
326
373
|
}
|
|
327
374
|
|
|
375
|
+
declare namespace BowmarkCapability_delivery {
|
|
376
|
+
// ── Food-delivery fee comparison — the unit's own declarations, verbatim ──
|
|
377
|
+
type DeliveryFeeQuote = {
|
|
378
|
+
app: string // which app quoted this, e.g. "doordash"
|
|
379
|
+
name: string
|
|
380
|
+
deliveryFee: number | null // the app's own advertised delivery fee, before a cart is built
|
|
381
|
+
url: string
|
|
382
|
+
rating: number | null
|
|
383
|
+
}
|
|
384
|
+
type CompareDeliveryFeesResult = {
|
|
385
|
+
query: string
|
|
386
|
+
quotes: DeliveryFeeQuote[] // every store any queried app returned
|
|
387
|
+
warnings: string[] // always present; empty when nothing was dropped
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
type CallOptions = {
|
|
391
|
+
timeoutMs?: number // per-provider budget in ms, default 30000, clamped to 1000-55000.
|
|
392
|
+
// A provider slower than this is DROPPED from the results and
|
|
393
|
+
// NAMED in warnings — never silently absent
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
/**
|
|
397
|
+
* Runs a free-text restaurant search on DoorDash and returns each store's own advertised
|
|
398
|
+
* delivery fee, rating and ETA — the fee shown before a cart is built. Uber Eats is declared
|
|
399
|
+
* but not yet wired (its search stub isn't built); a full delivery+service+tax+tip checkout
|
|
400
|
+
* TOTAL needs a real cart and address and is separately not-yet-built on both apps.
|
|
401
|
+
*/
|
|
402
|
+
interface Unit {
|
|
403
|
+
/**
|
|
404
|
+
* Runs a free-text search — `bowmark.delivery.compareDeliveryFees("pad thai austin tx")` —
|
|
405
|
+
* across the delivery apps this library covers (DoorDash today) and returns every matching
|
|
406
|
+
* store tagged with which app quoted it, that app's own advertised delivery fee, rating and
|
|
407
|
+
* listing URL. This is the fee shown on the app's OWN results card before a cart is built, not
|
|
408
|
+
* a full checkout total (delivery + service fee + tax + tip after a real cart and address) —
|
|
409
|
+
* see the capability blurb for what that needs.
|
|
410
|
+
*/
|
|
411
|
+
compareDeliveryFees(query: string | { query: string; limit?: number }, options?: CallOptions): Promise<CompareDeliveryFeesResult>;
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
|
|
328
415
|
declare namespace BowmarkCapability_developer_api_key_signup {
|
|
329
416
|
// ── Developer API key signup — the unit's own declarations, verbatim ──
|
|
330
417
|
interface DeveloperApiKeySignupDetails {
|
|
@@ -1258,6 +1345,87 @@ type CallOptions = {
|
|
|
1258
1345
|
}
|
|
1259
1346
|
}
|
|
1260
1347
|
|
|
1348
|
+
declare namespace BowmarkCapability_local_database_gui {
|
|
1349
|
+
// ── Browse a local database GUI's tables — the unit's own declarations, verbatim ──
|
|
1350
|
+
interface DbGuiTable {
|
|
1351
|
+
name: string | null // a <caption>, the nearest preceding heading, or an
|
|
1352
|
+
// aria-label/data-testid naming it — null if nothing does
|
|
1353
|
+
columns: string[] // "col_1", "col_2", … when the table has no header row
|
|
1354
|
+
rows: Record<string, string>[]
|
|
1355
|
+
rowCount: number // the real count, even when rows[] was cut
|
|
1356
|
+
truncated: boolean
|
|
1357
|
+
}
|
|
1358
|
+
interface DbGuiBrowseOptions {
|
|
1359
|
+
maxTables?: number // default 25
|
|
1360
|
+
maxRowsPerTable?: number // default 200
|
|
1361
|
+
}
|
|
1362
|
+
interface DbGuiBrowseResult {
|
|
1363
|
+
tables: DbGuiTable[]
|
|
1364
|
+
navLinks: string[] // candidate table/collection names from a sidebar-shaped nav
|
|
1365
|
+
warnings: string[]
|
|
1366
|
+
}
|
|
1367
|
+
|
|
1368
|
+
/**
|
|
1369
|
+
* Turns the HTML of a local database GUI (Adminer, phpMyAdmin, pgAdmin, Drizzle Studio,
|
|
1370
|
+
* mongo-express, or anything similar running on the caller's own localhost) into typed tables
|
|
1371
|
+
* and a candidate table list — Bowmark cannot navigate a caller-private address itself, so
|
|
1372
|
+
* this takes the page the caller's own agent already has and structures it. Read-only; nothing
|
|
1373
|
+
* here can submit or modify a row.
|
|
1374
|
+
*/
|
|
1375
|
+
interface Unit {
|
|
1376
|
+
/**
|
|
1377
|
+
* Parses the HTML of a local database GUI page (e.g. the caller's own agent read it off
|
|
1378
|
+
* http://localhost:<port> — Bowmark cannot reach that address itself) and returns every
|
|
1379
|
+
* <table> on the page as structured rows keyed by column name, plus a `navLinks` list of
|
|
1380
|
+
* candidate table/collection names pulled from a sidebar-shaped nav. `options.maxTables`
|
|
1381
|
+
* (default 25) and `options.maxRowsPerTable` (default 200) cap how much is kept; a cut table
|
|
1382
|
+
* reports its real `rowCount` and `truncated: true`. Never throws on odd markup — an empty or
|
|
1383
|
+
* table-less page comes back with `tables: []` and a warning rather than an error.
|
|
1384
|
+
*/
|
|
1385
|
+
browse(html: string, options?: DbGuiBrowseOptions): Promise<DbGuiBrowseResult>;
|
|
1386
|
+
}
|
|
1387
|
+
}
|
|
1388
|
+
|
|
1389
|
+
declare namespace BowmarkCapability_local_html_preview {
|
|
1390
|
+
// ── Preview local HTML (structure, text, links, forms — read-only) — the unit's own declarations, verbatim ──
|
|
1391
|
+
|
|
1392
|
+
interface PreviewHeading { level: number; text: string }
|
|
1393
|
+
interface PreviewLink { text: string; href: string | null }
|
|
1394
|
+
interface PreviewImage { src: string | null; alt: string | null }
|
|
1395
|
+
interface PreviewForm { action: string | null; method: string; fieldCount: number }
|
|
1396
|
+
|
|
1397
|
+
interface PreviewOptions {
|
|
1398
|
+
maxChars?: number // default 20000; over it, text is cut + truncated:true
|
|
1399
|
+
}
|
|
1400
|
+
|
|
1401
|
+
interface HtmlPreviewResult {
|
|
1402
|
+
title: string | null
|
|
1403
|
+
text: string // visible text, block structure kept as blank lines
|
|
1404
|
+
chars: number
|
|
1405
|
+
truncated: boolean
|
|
1406
|
+
headings: PreviewHeading[]
|
|
1407
|
+
links: PreviewLink[]
|
|
1408
|
+
images: PreviewImage[]
|
|
1409
|
+
forms: PreviewForm[] // inventory only — nothing here submits a form
|
|
1410
|
+
wordCount: number
|
|
1411
|
+
warnings: string[]
|
|
1412
|
+
}
|
|
1413
|
+
|
|
1414
|
+
/**
|
|
1415
|
+
* Render an HTML file or fragment the caller already has and get back its title, text,
|
|
1416
|
+
* headings, links, images and forms — no network, no browser, nothing executed or submitted.
|
|
1417
|
+
*/
|
|
1418
|
+
interface Unit {
|
|
1419
|
+
/**
|
|
1420
|
+
* Parses supplied HTML (a local file's contents, or a fragment) and returns a structured
|
|
1421
|
+
* preview: title, readable text, headings, links, images and a read-only form inventory. Never
|
|
1422
|
+
* executes scripts, never fetches anything, never submits a form — it only reads the markup
|
|
1423
|
+
* you already have.
|
|
1424
|
+
*/
|
|
1425
|
+
render(html: string, options?: PreviewOptions): Promise<HtmlPreviewResult>;
|
|
1426
|
+
}
|
|
1427
|
+
}
|
|
1428
|
+
|
|
1261
1429
|
declare namespace BowmarkCapability_mcp_registry {
|
|
1262
1430
|
// ── MCP Registry — the unit's own declarations, verbatim ──
|
|
1263
1431
|
interface McpRegistryEntry {
|
|
@@ -1741,6 +1909,49 @@ type CallOptions = {
|
|
|
1741
1909
|
}
|
|
1742
1910
|
}
|
|
1743
1911
|
|
|
1912
|
+
declare namespace BowmarkCapability_retail {
|
|
1913
|
+
// ── Retail (general merchandise, multi-store) — the unit's own declarations, verbatim ──
|
|
1914
|
+
type RetailOffer = {
|
|
1915
|
+
store: "walmart" | "target" | "bestbuy" // where this offer is from
|
|
1916
|
+
title: string // the product as the store lists it
|
|
1917
|
+
price: number | null // USD; null if unpriced
|
|
1918
|
+
wasPrice: number | null // the pre-markdown price, when the store publishes one
|
|
1919
|
+
url: string | null // product page
|
|
1920
|
+
inStock: boolean // this store's OWN in-stock signal — not comparable
|
|
1921
|
+
// across stores as one normalized fact
|
|
1922
|
+
}
|
|
1923
|
+
type RetailSearchResult = {
|
|
1924
|
+
results: RetailOffer[] // ONE query across ALL stores, price-sorted (cheapest first)
|
|
1925
|
+
warnings: string[] // always present; names any store that did not answer. A
|
|
1926
|
+
// store named here priced NOTHING, so read this before
|
|
1927
|
+
// concluding a store has no stock or a worse price
|
|
1928
|
+
}
|
|
1929
|
+
|
|
1930
|
+
type CallOptions = {
|
|
1931
|
+
timeoutMs?: number // per-provider budget in ms, default 30000, clamped to 1000-55000.
|
|
1932
|
+
// A provider slower than this is DROPPED from the results and
|
|
1933
|
+
// NAMED in warnings — never silently absent
|
|
1934
|
+
}
|
|
1935
|
+
|
|
1936
|
+
/**
|
|
1937
|
+
* General-merchandise retail across Walmart, Target and Best Buy — one keyword search, fanned
|
|
1938
|
+
* out in parallel and returned price-sorted, so an agent can answer 'where can I actually buy
|
|
1939
|
+
* this and what does it cost' without querying each store by hand. Best Buy's leg needs the
|
|
1940
|
+
* caller's own Best Buy developer key; without one the search still returns Walmart + Target
|
|
1941
|
+
* with a `warnings` entry naming the drop.
|
|
1942
|
+
*/
|
|
1943
|
+
interface Unit {
|
|
1944
|
+
/**
|
|
1945
|
+
* Searches Walmart, Target and Best Buy in parallel for a keyword and returns one price-sorted
|
|
1946
|
+
* list of offers across all stores, each tagged with which store it's from. `warnings` names
|
|
1947
|
+
* any store that did not answer — including Best Buy when the caller holds no Best Buy
|
|
1948
|
+
* developer key — so a caller can tell a genuinely cheaper/only offer from one where a store
|
|
1949
|
+
* simply didn't answer.
|
|
1950
|
+
*/
|
|
1951
|
+
search(args: { query: string }): Promise<RetailSearchResult>;
|
|
1952
|
+
}
|
|
1953
|
+
}
|
|
1954
|
+
|
|
1744
1955
|
declare namespace BowmarkCapability_school_shopping_basket {
|
|
1745
1956
|
// ── Price a school-supply list across Target and Walmart — the unit's own declarations, verbatim ──
|
|
1746
1957
|
interface BasketItemMatch {
|
|
@@ -1750,9 +1961,13 @@ interface BasketItemMatch {
|
|
|
1750
1961
|
price: { amount: number; currency: string } // integer minor units
|
|
1751
1962
|
}
|
|
1752
1963
|
interface RetailerBasket {
|
|
1753
|
-
total: { amount: number; currency: string } | null
|
|
1964
|
+
total: { amount: number; currency: string } | null // sums matched only — a partial
|
|
1965
|
+
// sum whenever incomplete is
|
|
1966
|
+
// non-empty
|
|
1754
1967
|
matched: BasketItemMatch[]
|
|
1755
|
-
unavailable: string[]
|
|
1968
|
+
unavailable: string[] // this retailer ANSWERED and has no in-stock priced match
|
|
1969
|
+
incomplete: string[] // this retailer's search never answered — NOT out of stock,
|
|
1970
|
+
// nothing was learned; retry with fewer items or more time
|
|
1756
1971
|
}
|
|
1757
1972
|
interface SchoolShoppingBasket {
|
|
1758
1973
|
retailers: { target: RetailerBasket; walmart: RetailerBasket }
|
|
@@ -1771,10 +1986,15 @@ type CallOptions = {
|
|
|
1771
1986
|
*/
|
|
1772
1987
|
interface Unit {
|
|
1773
1988
|
/**
|
|
1774
|
-
* Prices a multi-item shopping list at Target and Walmart, one basket total per retailer
|
|
1775
|
-
*
|
|
1776
|
-
*
|
|
1777
|
-
*
|
|
1989
|
+
* Prices a multi-item shopping list at Target and Walmart, one basket total per retailer. An
|
|
1990
|
+
* item the retailer answered about and does not stock is in `unavailable`; an item whose
|
|
1991
|
+
* search never answered is in `incomplete` and is NOT a stockout — nothing was learned about
|
|
1992
|
+
* it, and the retailer's total is then a partial sum. Every incomplete item is also named in
|
|
1993
|
+
* `warnings`. Never throws on one retailer being unreachable — that retailer's basket is
|
|
1994
|
+
* dropped and named in `warnings` instead; throws only when BOTH retailers failed on every
|
|
1995
|
+
* item. Walmart drives a real browser per item and every item is searched at once, so a long
|
|
1996
|
+
* list is what costs time: price fewer items per call before reaching for a larger
|
|
1997
|
+
* `timeoutMs`.
|
|
1778
1998
|
*/
|
|
1779
1999
|
priceList(args: { items: string[] }): Promise<SchoolShoppingBasket>;
|
|
1780
2000
|
}
|
|
@@ -3141,6 +3361,51 @@ interface AppleTradeInEstimate {
|
|
|
3141
3361
|
}
|
|
3142
3362
|
}
|
|
3143
3363
|
|
|
3364
|
+
declare namespace BowmarkProvider_aquaphoenixsci {
|
|
3365
|
+
// ── AquaPhoenix Scientific — the unit's own declarations, verbatim ──
|
|
3366
|
+
// aquaphoenixsci's OWN shapes — not a capability contract.
|
|
3367
|
+
|
|
3368
|
+
interface AquaphoenixsciListing {
|
|
3369
|
+
sku: string;
|
|
3370
|
+
name: string;
|
|
3371
|
+
path: string; // pass to getProduct()
|
|
3372
|
+
price: number | null; // dollars, or null when gated behind a business account
|
|
3373
|
+
requiresBusinessAccount: boolean;
|
|
3374
|
+
}
|
|
3375
|
+
|
|
3376
|
+
interface AquaphoenixsciProduct {
|
|
3377
|
+
sku: string;
|
|
3378
|
+
name: string;
|
|
3379
|
+
path: string;
|
|
3380
|
+
price: number | null; // dollars, or null when gated behind a business account
|
|
3381
|
+
requiresBusinessAccount: boolean;
|
|
3382
|
+
inStock: boolean;
|
|
3383
|
+
checkoutUrl: string; // the real product page — add-to-cart / checkout entry point
|
|
3384
|
+
}
|
|
3385
|
+
|
|
3386
|
+
/**
|
|
3387
|
+
* AquaPhoenix Scientific's real catalog storefront (water/chemical testing and feed-control
|
|
3388
|
+
* equipment) — browse a category for real SKUs and prices, and read one product's real price,
|
|
3389
|
+
* stock status and add-to-cart/checkout URL.
|
|
3390
|
+
*/
|
|
3391
|
+
interface Unit {
|
|
3392
|
+
/**
|
|
3393
|
+
* Lists real products in one of AquaPhoenix's catalog categories, e.g.
|
|
3394
|
+
* "testing-supplies/test-kits" or "feed-and-control-equipment/pumps-accessories" — real SKU,
|
|
3395
|
+
* name, product path, and either a real anonymous price or a note that the SKU requires a
|
|
3396
|
+
* business account. THROWS naming the closed set of real category paths on an unknown one.
|
|
3397
|
+
*/
|
|
3398
|
+
browseCategory(category: string): Promise<AquaphoenixsciListing[]>;
|
|
3399
|
+
|
|
3400
|
+
/**
|
|
3401
|
+
* Reads one product's real detail page — SKU, name, price (when anonymously priced), stock
|
|
3402
|
+
* status, and the real product URL to hand to the shopper as the add-to-cart / checkout entry
|
|
3403
|
+
* point. THROWS naming browseCategory() as the way to find a real path on an unknown one.
|
|
3404
|
+
*/
|
|
3405
|
+
getProduct(path: string): Promise<AquaphoenixsciProduct>;
|
|
3406
|
+
}
|
|
3407
|
+
}
|
|
3408
|
+
|
|
3144
3409
|
declare namespace BowmarkProvider_archipelago {
|
|
3145
3410
|
// ── Archipelago — the unit's own declarations, verbatim ──
|
|
3146
3411
|
interface ArchipelagoAsset {
|
|
@@ -3799,6 +4064,44 @@ interface AzureListServicesResult {
|
|
|
3799
4064
|
}
|
|
3800
4065
|
}
|
|
3801
4066
|
|
|
4067
|
+
declare namespace BowmarkProvider_bankmycell {
|
|
4068
|
+
// ── BankMyCell — the unit's own declarations, verbatim ──
|
|
4069
|
+
interface BankmycellOffer {
|
|
4070
|
+
merchant: string;
|
|
4071
|
+
price: number;
|
|
4072
|
+
paymentOptions: string;
|
|
4073
|
+
shippingOptions: { id: string; name: string }[];
|
|
4074
|
+
pricelockTimescale: string | null;
|
|
4075
|
+
paymentTimescale: string | null;
|
|
4076
|
+
checkoutLink: string;
|
|
4077
|
+
reviewsRating: number | null;
|
|
4078
|
+
reviewsCount: number | null;
|
|
4079
|
+
}
|
|
4080
|
+
interface BankmycellQuoteResult {
|
|
4081
|
+
deviceUrl: string;
|
|
4082
|
+
selections: { capacity: string | null; condition: string | null; carrier: string | null; lockedStatus: string | null };
|
|
4083
|
+
offers: BankmycellOffer[];
|
|
4084
|
+
unavailableMerchants: string[];
|
|
4085
|
+
summary: { minPrice: number | null; maxPrice: number | null; avgPrice: number | null; count: number };
|
|
4086
|
+
}
|
|
4087
|
+
|
|
4088
|
+
/**
|
|
4089
|
+
* Live trade-in offers for a phone/device from every merchant BankMyCell compares, for a
|
|
4090
|
+
* chosen capacity/condition/carrier — read off the same pricing endpoint the site's own sell
|
|
4091
|
+
* page polls, instead of parsing prose off the rendered page.
|
|
4092
|
+
*/
|
|
4093
|
+
interface Unit {
|
|
4094
|
+
/**
|
|
4095
|
+
* Reads live trade-in offers for the device at a bankmycell.com sell page (e.g.
|
|
4096
|
+
* .../sell/iphone-14-pro), from every merchant the site compares, for the given
|
|
4097
|
+
* capacity/condition/carrier/lockedStatus (each matched against that device's own option
|
|
4098
|
+
* labels, e.g. condition: "Flawless"). Any selection left out uses the page's own default
|
|
4099
|
+
* option for that attribute. THROWS if a selection names an option this device does not offer.
|
|
4100
|
+
*/
|
|
4101
|
+
getTradeInQuote(deviceUrl: string, selections?: { capacity?: string; condition?: string; carrier?: string; lockedStatus?: string }): Promise<BankmycellQuoteResult>;
|
|
4102
|
+
}
|
|
4103
|
+
}
|
|
4104
|
+
|
|
3802
4105
|
declare namespace BowmarkProvider_barletta {
|
|
3803
4106
|
// ── Barletta Boats — the unit's own declarations, verbatim ──
|
|
3804
4107
|
// Barletta's OWN shapes — not a capability contract.
|
|
@@ -6236,6 +6539,43 @@ interface ClasspassSearchResult {
|
|
|
6236
6539
|
}
|
|
6237
6540
|
}
|
|
6238
6541
|
|
|
6542
|
+
declare namespace BowmarkProvider_claudemarketplaces_com {
|
|
6543
|
+
// ── Claude Marketplaces — the unit's own declarations, verbatim ──
|
|
6544
|
+
interface claudeMarketplacesListing {
|
|
6545
|
+
url: string;
|
|
6546
|
+
kind: string;
|
|
6547
|
+
publisher: string;
|
|
6548
|
+
slug: string;
|
|
6549
|
+
name: string;
|
|
6550
|
+
description: string;
|
|
6551
|
+
applicationCategory: string | null;
|
|
6552
|
+
operatingSystem: string | null;
|
|
6553
|
+
codeRepository: string | null;
|
|
6554
|
+
featureList: string[];
|
|
6555
|
+
price: string | null;
|
|
6556
|
+
priceCurrency: string | null;
|
|
6557
|
+
}
|
|
6558
|
+
|
|
6559
|
+
/**
|
|
6560
|
+
* A directory of Claude plugin/MCP/skill marketplace listings — fetch one listing's structured
|
|
6561
|
+
* fields (name, description, category, repo, declared tools, price) instead of parsing its
|
|
6562
|
+
* page by hand.
|
|
6563
|
+
*/
|
|
6564
|
+
interface Unit {
|
|
6565
|
+
/**
|
|
6566
|
+
* Fetches one MCP server listing page from claudemarketplaces.com — `url` is the listing's
|
|
6567
|
+
* full URL or path, e.g. "https://claudemarketplaces.com/mcp/metroxe/bowmark" or
|
|
6568
|
+
* "/mcp/github/github-mcp-server". Returns the listing's structured fields straight off the
|
|
6569
|
+
* page's own schema.org `SoftwareApplication` record: `name`, `description`,
|
|
6570
|
+
* `applicationCategory`, `operatingSystem`, `codeRepository`, `featureList` (the tool/feature
|
|
6571
|
+
* names the listing declares), and `price`/`priceCurrency`. `publisher`, `kind` and `slug` are
|
|
6572
|
+
* read off the URL path. Only `mcp`-kind listings (`/mcp/<publisher>/<slug>`) are implemented
|
|
6573
|
+
* — `getListing` throws `ClaudeMarketplacesInputError` for any other path shape.
|
|
6574
|
+
*/
|
|
6575
|
+
getListing(url: string): Promise<claudeMarketplacesListing>;
|
|
6576
|
+
}
|
|
6577
|
+
}
|
|
6578
|
+
|
|
6239
6579
|
declare namespace BowmarkProvider_cleanairlawncare {
|
|
6240
6580
|
// ── Clean Air Lawn Care — the unit's own declarations, verbatim ──
|
|
6241
6581
|
interface CleanAirEstimateAvailability {
|
|
@@ -6426,17 +6766,35 @@ interface ClubchampionFittingsMenu {
|
|
|
6426
6766
|
activePromoTerms: string | null;
|
|
6427
6767
|
}
|
|
6428
6768
|
|
|
6429
|
-
interface
|
|
6769
|
+
interface ClubchampionFitter {
|
|
6770
|
+
id: string; // the id checkAvailability takes
|
|
6771
|
+
name: string;
|
|
6772
|
+
locationId: string;
|
|
6773
|
+
locationName: string; // the studio name listStudios() and getFittings() use
|
|
6774
|
+
timezone: string;
|
|
6775
|
+
handedness: string[];
|
|
6776
|
+
specialties: string[];
|
|
6777
|
+
locationBayCount: number;
|
|
6778
|
+
}
|
|
6779
|
+
|
|
6780
|
+
interface ClubchampionSlot {
|
|
6781
|
+
start: string; // ISO instant, e.g. "2026-09-08T10:00:00.000Z"
|
|
6782
|
+
end: string;
|
|
6783
|
+
status: string; // the site's own word, e.g. "available"
|
|
6430
6784
|
resourceId: string;
|
|
6785
|
+
}
|
|
6786
|
+
|
|
6787
|
+
interface ClubchampionAvailability {
|
|
6788
|
+
resourceId: string; // the fitter id, echoed back
|
|
6431
6789
|
range: { start: string; end: string };
|
|
6432
|
-
mode: string;
|
|
6433
|
-
slots:
|
|
6790
|
+
mode: string; // the site's own live/cached indicator
|
|
6791
|
+
slots: ClubchampionSlot[]; // verbatim — empty is a real answer
|
|
6434
6792
|
}
|
|
6435
6793
|
|
|
6436
6794
|
/**
|
|
6437
|
-
* Club Champion's live studio directory, real per-store fitting pricing, and real
|
|
6438
|
-
* availability
|
|
6439
|
-
* browser.
|
|
6795
|
+
* Club Champion's live studio directory, its fitters, real per-store fitting pricing, and real
|
|
6796
|
+
* open-slot availability on a named fitter's calendar — the same booking widget backend the
|
|
6797
|
+
* site itself calls. Rung 10, no browser.
|
|
6440
6798
|
*/
|
|
6441
6799
|
interface Unit {
|
|
6442
6800
|
/**
|
|
@@ -6453,12 +6811,22 @@ interface ClubchampionAvailability {
|
|
|
6453
6811
|
getFittings(storeName: string): Promise<ClubchampionFittingsMenu>;
|
|
6454
6812
|
|
|
6455
6813
|
/**
|
|
6456
|
-
*
|
|
6457
|
-
*
|
|
6458
|
-
*
|
|
6814
|
+
* Reads the live list of every Club Champion fitter (~396 across the chain) — the person a
|
|
6815
|
+
* fitting is booked with, and the only id checkAvailability accepts. Pass a studio name from
|
|
6816
|
+
* listStudios(), e.g. "Bellevue", to get just that studio's fitters.
|
|
6817
|
+
*/
|
|
6818
|
+
listFitters(storeName?: string): Promise<ClubchampionFitter[]>;
|
|
6819
|
+
|
|
6820
|
+
/**
|
|
6821
|
+
* Checks real, live open-slot availability on one FITTER's calendar (an `id` from
|
|
6822
|
+
* listFitters()) over a "YYYY-MM-DD"..."YYYY-MM-DD" range — the same live check the site's own
|
|
6823
|
+
* booking widget makes. A fitting `productId` from getFittings() is a DIFFERENT id space and
|
|
6824
|
+
* the site answers it with an empty list, so pass a fitter id. Optional `durationMinutes` and
|
|
6825
|
+
* `fittingType` mirror what the widget sends. An empty `slots` array is the site's real answer
|
|
6826
|
+
* — a closed day, a booked-out fitter, or a date past the ~60-day booking horizon — not an
|
|
6459
6827
|
* error.
|
|
6460
6828
|
*/
|
|
6461
|
-
checkAvailability(
|
|
6829
|
+
checkAvailability(fitterId: string, start: string, end: string, durationMinutes?: number, fittingType?: string): Promise<ClubchampionAvailability>;
|
|
6462
6830
|
}
|
|
6463
6831
|
}
|
|
6464
6832
|
|
|
@@ -6658,6 +7026,41 @@ interface CultureFlyCheckoutLink {
|
|
|
6658
7026
|
}
|
|
6659
7027
|
}
|
|
6660
7028
|
|
|
7029
|
+
declare namespace BowmarkProvider_curiocity {
|
|
7030
|
+
// ── Curiocity — the unit's own declarations, verbatim ──
|
|
7031
|
+
interface CuriocityEvent {
|
|
7032
|
+
title: string; // "Slayyyter – WOR$T GIRL IN THE WORLD TOUR"
|
|
7033
|
+
url: string; // click-through — the event's own link, or the article's
|
|
7034
|
+
when: string | null; // "Thursday, Sept. 3, 2026" — free text, as curiocity writes it
|
|
7035
|
+
time: string | null; // "7 p.m."
|
|
7036
|
+
where: string | null; // "868 Granville St."
|
|
7037
|
+
cost: string | null; // "$650+"
|
|
7038
|
+
articleTitle: string; // the roundup (or single-event) post this came from
|
|
7039
|
+
articleUrl: string;
|
|
7040
|
+
publishedAt: string | null; // the article's own pubDate
|
|
7041
|
+
}
|
|
7042
|
+
|
|
7043
|
+
interface CuriocityListEventsQuery {
|
|
7044
|
+
city: string; // curiocity's own city slug, e.g. "vancouver", "toronto"
|
|
7045
|
+
}
|
|
7046
|
+
|
|
7047
|
+
/**
|
|
7048
|
+
* Curiocity's own city 'things to do' feeds, parsed into individual events — title, when,
|
|
7049
|
+
* time, where, cost and a click-through link — instead of the raw RSS/HTML a caller would
|
|
7050
|
+
* otherwise have to regex apart.
|
|
7051
|
+
*/
|
|
7052
|
+
interface Unit {
|
|
7053
|
+
/**
|
|
7054
|
+
* Reads curiocity.com's own 'things to do' feed for one city and returns individual events —
|
|
7055
|
+
* title, when, time, where, cost and a click-through link — parsed out of the site's roundup
|
|
7056
|
+
* posts instead of the raw RSS. `city` is curiocity's own slug (e.g. "vancouver", "toronto").
|
|
7057
|
+
* An empty array is the feed's own answer for a city curiocity does not cover, never invented
|
|
7058
|
+
* here — a block page or a moved endpoint THROWS instead.
|
|
7059
|
+
*/
|
|
7060
|
+
listEvents(query: CuriocityListEventsQuery): Promise<CuriocityEvent[]>;
|
|
7061
|
+
}
|
|
7062
|
+
}
|
|
7063
|
+
|
|
6661
7064
|
declare namespace BowmarkProvider_cyberpowerpc {
|
|
6662
7065
|
// ── CyberPowerPC — the unit's own declarations, verbatim ──
|
|
6663
7066
|
interface CyberpowerpcConfigurator {
|
|
@@ -7566,6 +7969,34 @@ interface DisneyTicketPrice {
|
|
|
7566
7969
|
}
|
|
7567
7970
|
}
|
|
7568
7971
|
|
|
7972
|
+
declare namespace BowmarkProvider_doordash {
|
|
7973
|
+
// ── DoorDash — the unit's own declarations, verbatim ──
|
|
7974
|
+
interface DoordashSearchArgs {
|
|
7975
|
+
query: string; // free text, e.g. "pad thai austin tx" — DoorDash resolves location itself
|
|
7976
|
+
limit?: number; // default 10, clamped to [1, 30]
|
|
7977
|
+
}
|
|
7978
|
+
|
|
7979
|
+
interface DoordashSearchResult {
|
|
7980
|
+
name: string;
|
|
7981
|
+
url: string;
|
|
7982
|
+
deliveryFee: number | null; // DoorDash's own advertised delivery fee, in dollars
|
|
7983
|
+
rating: number | null;
|
|
7984
|
+
etaMinutes: number | null;
|
|
7985
|
+
}
|
|
7986
|
+
|
|
7987
|
+
/**
|
|
7988
|
+
* DoorDash's own store search — returns real, currently-listed stores for a free-text query
|
|
7989
|
+
* with the delivery fee, rating and ETA DoorDash itself advertises on the results card.
|
|
7990
|
+
*/
|
|
7991
|
+
interface Unit {
|
|
7992
|
+
/**
|
|
7993
|
+
* Runs DoorDash's own store search for a free-text query and returns real, currently-listed
|
|
7994
|
+
* stores with DoorDash's own advertised delivery fee, rating and ETA. Read-only.
|
|
7995
|
+
*/
|
|
7996
|
+
search(args: DoordashSearchArgs): Promise<DoordashSearchResult[]>;
|
|
7997
|
+
}
|
|
7998
|
+
}
|
|
7999
|
+
|
|
7569
8000
|
declare namespace BowmarkProvider_ebay {
|
|
7570
8001
|
// ── eBay — the unit's own declarations, verbatim ──
|
|
7571
8002
|
interface ebayItem {
|
|
@@ -7816,6 +8247,34 @@ interface ErieAgent {
|
|
|
7816
8247
|
}
|
|
7817
8248
|
}
|
|
7818
8249
|
|
|
8250
|
+
declare namespace BowmarkProvider_etsy {
|
|
8251
|
+
// ── Etsy — the unit's own declarations, verbatim ──
|
|
8252
|
+
interface etsyListing {
|
|
8253
|
+
listingId: number;
|
|
8254
|
+
title: string;
|
|
8255
|
+
price: number | null;
|
|
8256
|
+
currencyCode: string | null;
|
|
8257
|
+
quantity: number | null;
|
|
8258
|
+
tags: string[];
|
|
8259
|
+
url: string;
|
|
8260
|
+
}
|
|
8261
|
+
|
|
8262
|
+
/**
|
|
8263
|
+
* Etsy's own documented Open API v3 (openapi.etsy.com) — searches active listings on etsy.com
|
|
8264
|
+
* by keyword and returns id, title, price, currency, quantity, tags and the listing's own
|
|
8265
|
+
* etsy.com URL, without scraping etsy.com's search page (which sits behind DataDome).
|
|
8266
|
+
*/
|
|
8267
|
+
interface Unit {
|
|
8268
|
+
/**
|
|
8269
|
+
* Searches Etsy's live catalog of active listings by keyword, via Etsy's documented Open API
|
|
8270
|
+
* v3, and returns the matching listings — id, title, price, currency, quantity available, tags
|
|
8271
|
+
* and the listing's own etsy.com URL. `limit` caps the row count (default 10, Etsy's own
|
|
8272
|
+
* ceiling 100). Requires an Etsy developer API key — see this provider's `auth`.
|
|
8273
|
+
*/
|
|
8274
|
+
search(args: string | { query: string; limit?: number }): Promise<etsyListing[]>;
|
|
8275
|
+
}
|
|
8276
|
+
}
|
|
8277
|
+
|
|
7819
8278
|
declare namespace BowmarkProvider_eventsource {
|
|
7820
8279
|
// ── Event Source — the unit's own declarations, verbatim ──
|
|
7821
8280
|
interface EventSourceDesign {
|
|
@@ -9616,6 +10075,78 @@ interface GlassesusaProduct {
|
|
|
9616
10075
|
}
|
|
9617
10076
|
}
|
|
9618
10077
|
|
|
10078
|
+
declare namespace BowmarkProvider_goloadup {
|
|
10079
|
+
// ── LoadUp — the unit's own declarations, verbatim ──
|
|
10080
|
+
// LoadUp's OWN shapes — not a capability contract.
|
|
10081
|
+
|
|
10082
|
+
interface GoloadupItemType {
|
|
10083
|
+
id: string; // the key getQuote's items take
|
|
10084
|
+
name: string;
|
|
10085
|
+
category: string | null; // e.g. "COUCH", "MATTRESS"
|
|
10086
|
+
aliases: string[]; // alternate names the site matches this item on
|
|
10087
|
+
pickupAllowed: boolean;
|
|
10088
|
+
pickupPrice: number | null; // national base price — getQuote is the real, ZIP-priced number
|
|
10089
|
+
assemblyAllowed: boolean;
|
|
10090
|
+
assemblyPrice: number | null;
|
|
10091
|
+
disassemblyAllowed: boolean;
|
|
10092
|
+
disassemblyPrice: number | null;
|
|
10093
|
+
}
|
|
10094
|
+
|
|
10095
|
+
interface GoloadupQuoteItem { itemId: string; quantity: number }
|
|
10096
|
+
|
|
10097
|
+
interface GoloadupQuote {
|
|
10098
|
+
validServiceArea: boolean; // false = ZIP is outside LoadUp's service area, other fields are placeholders
|
|
10099
|
+
validZip: boolean; // false = ZIP itself is not recognized
|
|
10100
|
+
basePrice: number; // the area/trip fee added on top of the items
|
|
10101
|
+
total: number; // the guaranteed total for exactly these items at this ZIP
|
|
10102
|
+
totalFormatted: string; // "$124.00"
|
|
10103
|
+
taxAmount: number;
|
|
10104
|
+
minimumPrice: number; // the floor LoadUp charges regardless of what's selected
|
|
10105
|
+
minimumPriceApplied: boolean;
|
|
10106
|
+
sameDayAllowed: boolean;
|
|
10107
|
+
bookingUrl: string; // hand the shopper here to finish scheduling
|
|
10108
|
+
}
|
|
10109
|
+
|
|
10110
|
+
interface GoloadupServiceAvailability {
|
|
10111
|
+
validZip: boolean;
|
|
10112
|
+
inService: boolean;
|
|
10113
|
+
sameDayAllowed: boolean;
|
|
10114
|
+
estimationAllowed: boolean;
|
|
10115
|
+
retailAssembliesAllowed: boolean;
|
|
10116
|
+
}
|
|
10117
|
+
|
|
10118
|
+
/**
|
|
10119
|
+
* LoadUp's own item-selector and live pricing engine for junk removal, donation and furniture
|
|
10120
|
+
* pickup — the current catalog of items with base prices, a real ZIP-specific guaranteed quote
|
|
10121
|
+
* for an exact set of items, and whether/how a ZIP is served, all off the same GraphQL API the
|
|
10122
|
+
* site's own booking widget calls.
|
|
10123
|
+
*/
|
|
10124
|
+
interface Unit {
|
|
10125
|
+
/**
|
|
10126
|
+
* Returns LoadUp's full current catalog of pickupable items (couches, mattresses, appliances,
|
|
10127
|
+
* and 400+ more), each with its category, alternate names, and national base
|
|
10128
|
+
* pickup/assembly/disassembly prices. The `id` on each row is what getQuote's items take —
|
|
10129
|
+
* this is the entry point every quote starts from.
|
|
10130
|
+
*/
|
|
10131
|
+
getPricingCatalog(): Promise<GoloadupItemType[]>;
|
|
10132
|
+
|
|
10133
|
+
/**
|
|
10134
|
+
* Prices an EXACT set of items (e.g. [{ itemId: "7412", quantity: 1 }] for one Couch/Loveseat)
|
|
10135
|
+
* at a real ZIP code against LoadUp's live pricing engine — the same call its own booking
|
|
10136
|
+
* widget makes. Returns the guaranteed total, whether the ZIP falls under the site's
|
|
10137
|
+
* minimum-price floor, and same-day availability. `validServiceArea: false` means the ZIP is
|
|
10138
|
+
* real but outside LoadUp's coverage, not an error — check it before reading `total`.
|
|
10139
|
+
*/
|
|
10140
|
+
getQuote(zip: string, items: GoloadupQuoteItem[]): Promise<GoloadupQuote>;
|
|
10141
|
+
|
|
10142
|
+
/**
|
|
10143
|
+
* Checks whether and how LoadUp serves one ZIP code, independent of any specific items — in
|
|
10144
|
+
* service, same-day pickup allowed, and whether retail assembly is offered there.
|
|
10145
|
+
*/
|
|
10146
|
+
checkServiceAvailability(zip: string): Promise<GoloadupServiceAvailability>;
|
|
10147
|
+
}
|
|
10148
|
+
}
|
|
10149
|
+
|
|
9619
10150
|
declare namespace BowmarkProvider_goodway {
|
|
9620
10151
|
// ── Goodway Technologies — the unit's own declarations, verbatim ──
|
|
9621
10152
|
interface GoodwayProductSummary {
|
|
@@ -11370,6 +11901,69 @@ interface HobieLocalAvailability {
|
|
|
11370
11901
|
}
|
|
11371
11902
|
}
|
|
11372
11903
|
|
|
11904
|
+
declare namespace BowmarkProvider_hodjapasha {
|
|
11905
|
+
// ── Hodjapasha Culture Center — Istanbul whirling-dervish and dance show ticketing — the unit's own declarations, verbatim ──
|
|
11906
|
+
interface HodjapashaListingEntry {
|
|
11907
|
+
productId: string;
|
|
11908
|
+
title: string;
|
|
11909
|
+
summary: string | null;
|
|
11910
|
+
duration: string | null;
|
|
11911
|
+
priceFrom: string | null; // the site's own "from" price, e.g. "$42.22"
|
|
11912
|
+
currency: string | null;
|
|
11913
|
+
url: string;
|
|
11914
|
+
}
|
|
11915
|
+
interface HodjapashaShowDetail {
|
|
11916
|
+
productId: string;
|
|
11917
|
+
title: string;
|
|
11918
|
+
description: string | null; // the site's own description paragraphs, joined
|
|
11919
|
+
duration: string | null;
|
|
11920
|
+
location: string | null;
|
|
11921
|
+
productCode: string | null;
|
|
11922
|
+
priceFrom: string | null;
|
|
11923
|
+
currency: string | null;
|
|
11924
|
+
url: string;
|
|
11925
|
+
}
|
|
11926
|
+
interface HodjapashaSession {
|
|
11927
|
+
sessionId: string;
|
|
11928
|
+
label: string; // e.g. "20:30 - Available"
|
|
11929
|
+
}
|
|
11930
|
+
interface HodjapashaAvailability {
|
|
11931
|
+
productId: string;
|
|
11932
|
+
date: string; // YYYY-MM-DD, as queried
|
|
11933
|
+
available: boolean;
|
|
11934
|
+
sessions: HodjapashaSession[];
|
|
11935
|
+
totalPrice: string | null; // e.g. "1900"
|
|
11936
|
+
currency: string | null;
|
|
11937
|
+
}
|
|
11938
|
+
|
|
11939
|
+
/**
|
|
11940
|
+
* The Hodjapasha Culture Center's own Rezdy booking widget for its whirling-dervish (Sema) and
|
|
11941
|
+
* Ottoman/folk dance shows in Istanbul — show list, per-show pricing and description, and
|
|
11942
|
+
* date/party-size availability with session times and total price, read straight off the
|
|
11943
|
+
* widget's own pages.
|
|
11944
|
+
*/
|
|
11945
|
+
interface Unit {
|
|
11946
|
+
/**
|
|
11947
|
+
* Reads every show hodjapasha.com's own booking widget lists off /widget/index.php — title,
|
|
11948
|
+
* productId, from-price, duration.
|
|
11949
|
+
*/
|
|
11950
|
+
listShows(): Promise<HodjapashaListingEntry[]>;
|
|
11951
|
+
|
|
11952
|
+
/**
|
|
11953
|
+
* Reads one show's full description, adult/child pricing, location and duration off its own
|
|
11954
|
+
* /widget/product-detail.php page.
|
|
11955
|
+
*/
|
|
11956
|
+
getShow(productId: string): Promise<HodjapashaShowDetail>;
|
|
11957
|
+
|
|
11958
|
+
/**
|
|
11959
|
+
* Checks the widget's own availability endpoint for a show, YYYY-MM-DD date and party size
|
|
11960
|
+
* (defaults: 1 adult, 0 children), returning the session time(s) offered and the total price,
|
|
11961
|
+
* or `available: false` for a date the show does not run.
|
|
11962
|
+
*/
|
|
11963
|
+
getAvailability(productId: string, date: string, opts?: { adults?: number; children?: number }): Promise<HodjapashaAvailability>;
|
|
11964
|
+
}
|
|
11965
|
+
}
|
|
11966
|
+
|
|
11373
11967
|
declare namespace BowmarkProvider_holidaybuilders {
|
|
11374
11968
|
// ── Holiday Builders — the unit's own declarations, verbatim ──
|
|
11375
11969
|
// Holiday Builders' OWN shapes — not a capability contract.
|
|
@@ -11745,6 +12339,22 @@ interface IdentitygroupMountOptionResult {
|
|
|
11745
12339
|
}
|
|
11746
12340
|
}
|
|
11747
12341
|
|
|
12342
|
+
declare namespace BowmarkProvider_ihg {
|
|
12343
|
+
// ── IHG Hotels & Resorts — the unit's own declarations, verbatim ──
|
|
12344
|
+
interface ihgRow { id: string; brandCode: string; availabilityStatus: string; lowestCashOnlyCost: { baseAmount: string; ratePlanType: string | null } | null; highestCashOnlyCost: { baseAmount: string; ratePlanType: string | null } | null; propertyCurrency: string | null; distance: number | null; distanceKm: number | null; }
|
|
12345
|
+
|
|
12346
|
+
/** IHG live hotel availability search across its brand portfolio. */
|
|
12347
|
+
interface Unit {
|
|
12348
|
+
/**
|
|
12349
|
+
* Searches IHG's live cash availability for a destination and increasing ISO
|
|
12350
|
+
* check-in/check-out dates. Returns IHG's hotel mnemonic, brand code, availability status,
|
|
12351
|
+
* cash-price range, currency and distance; IHG's availability endpoint does not include
|
|
12352
|
+
* display names.
|
|
12353
|
+
*/
|
|
12354
|
+
search(args: { destination: string; checkIn: string; checkOut: string; adults?: number; rooms?: number; radius?: number }): Promise<ihgRow[]>;
|
|
12355
|
+
}
|
|
12356
|
+
}
|
|
12357
|
+
|
|
11748
12358
|
declare namespace BowmarkProvider_instagram {
|
|
11749
12359
|
// ── Instagram — the unit's own declarations, verbatim ──
|
|
11750
12360
|
interface InstagramProfile {
|
|
@@ -13433,6 +14043,24 @@ interface KayakCar {
|
|
|
13433
14043
|
}
|
|
13434
14044
|
}
|
|
13435
14045
|
|
|
14046
|
+
declare namespace BowmarkProvider_keepa {
|
|
14047
|
+
// ── Keepa — the unit's own declarations, verbatim ──
|
|
14048
|
+
interface KeepaProductResult { product: KeepaProduct; tokensLeft: number | null; tokensConsumed: number | null; refillRate: number | null; }
|
|
14049
|
+
interface KeepaProduct { asin: string; domainId: number; title: string; csv?: unknown[]; stats?: Record<string, unknown>; }
|
|
14050
|
+
|
|
14051
|
+
/**
|
|
14052
|
+
* Keepa's documented Amazon product API — reads a product's native price history and metadata
|
|
14053
|
+
* by ASIN. Requires a caller-provided Keepa API key.
|
|
14054
|
+
*/
|
|
14055
|
+
interface Unit {
|
|
14056
|
+
/**
|
|
14057
|
+
* Reads Keepa's native Amazon product record and compact price-history series for one ASIN.
|
|
14058
|
+
* Requires a caller-provided Keepa API key.
|
|
14059
|
+
*/
|
|
14060
|
+
getProduct(args: { asin: string; domain?: number; stats?: number }): Promise<KeepaProductResult>;
|
|
14061
|
+
}
|
|
14062
|
+
}
|
|
14063
|
+
|
|
13436
14064
|
declare namespace BowmarkProvider_kingsdown {
|
|
13437
14065
|
// ── Kingsdown — the unit's own declarations, verbatim ──
|
|
13438
14066
|
interface kingsdownBedmatchResult {
|
|
@@ -16115,6 +16743,58 @@ interface StoreShelfRoster {
|
|
|
16115
16743
|
}
|
|
16116
16744
|
}
|
|
16117
16745
|
|
|
16746
|
+
declare namespace BowmarkProvider_millisaraylar {
|
|
16747
|
+
// ── millisaraylar.gov.tr — Türkiye Presidential Administration of National Palaces — the unit's own declarations, verbatim ──
|
|
16748
|
+
interface MillisaraylarPalace {
|
|
16749
|
+
id: string;
|
|
16750
|
+
name: string;
|
|
16751
|
+
url: string;
|
|
16752
|
+
}
|
|
16753
|
+
interface MillisaraylarVisitingHours {
|
|
16754
|
+
name: string;
|
|
16755
|
+
closedDays: string | null; // the site's own text, e.g. "Tuesday"
|
|
16756
|
+
ticketOfficeOpeningTime: string | null; // "HH:MM"
|
|
16757
|
+
ticketOfficeClosingTime: string | null; // "HH:MM"
|
|
16758
|
+
url: string;
|
|
16759
|
+
}
|
|
16760
|
+
interface MillisaraylarTicketPrices {
|
|
16761
|
+
name: string;
|
|
16762
|
+
currency: "TRY";
|
|
16763
|
+
domestic: number | null;
|
|
16764
|
+
domesticStudent: number | null;
|
|
16765
|
+
foreign: number | null;
|
|
16766
|
+
url: string;
|
|
16767
|
+
}
|
|
16768
|
+
|
|
16769
|
+
/**
|
|
16770
|
+
* Türkiye's Presidential Administration of National Palaces — the palace/kiosk/pavilion list,
|
|
16771
|
+
* closed days and ticket-office hours, and domestic/domestic-student/foreign ticket prices for
|
|
16772
|
+
* Topkapi Palace, Dolmabahçe Palace, Yıldız Palace, Beylerbeyi Palace and the other sites it
|
|
16773
|
+
* administers, read straight off the site's own ticket-purchase and detail pages.
|
|
16774
|
+
*/
|
|
16775
|
+
interface Unit {
|
|
16776
|
+
/**
|
|
16777
|
+
* Reads the full palace/kiosk/pavilion/museum/factory list off millisaraylar.gov.tr's own site
|
|
16778
|
+
* navigation.
|
|
16779
|
+
*/
|
|
16780
|
+
getPalaces(): Promise<MillisaraylarPalace[]>;
|
|
16781
|
+
|
|
16782
|
+
/**
|
|
16783
|
+
* Matches `query` against `getPalaces()`'s own listing (a substring match on the site's own
|
|
16784
|
+
* display name, e.g. "Topkapi" or "Dolmabahce") and reads that site's closed day(s) and
|
|
16785
|
+
* ticket-office opening/closing hours off its detail page.
|
|
16786
|
+
*/
|
|
16787
|
+
getVisitingHours(query: string): Promise<MillisaraylarVisitingHours>;
|
|
16788
|
+
|
|
16789
|
+
/**
|
|
16790
|
+
* Matches `query` against millisaraylar.gov.tr's own ticket-purchase location list (a narrower
|
|
16791
|
+
* set than `getPalaces` — only what is sold as a standalone ticket) and reads the domestic,
|
|
16792
|
+
* domestic-student and foreign prices (TRY) the site itself quotes.
|
|
16793
|
+
*/
|
|
16794
|
+
getTicketPrices(query: string): Promise<MillisaraylarTicketPrices>;
|
|
16795
|
+
}
|
|
16796
|
+
}
|
|
16797
|
+
|
|
16118
16798
|
declare namespace BowmarkProvider_minimax {
|
|
16119
16799
|
// ── MiniMax — the unit's own declarations, verbatim ──
|
|
16120
16800
|
interface MinimaxDocIndexEntry {
|
|
@@ -16606,6 +17286,43 @@ interface MuzeVisitingHours {
|
|
|
16606
17286
|
}
|
|
16607
17287
|
}
|
|
16608
17288
|
|
|
17289
|
+
declare namespace BowmarkProvider_myollie {
|
|
17290
|
+
// ── Ollie — the unit's own declarations, verbatim ──
|
|
17291
|
+
interface OllieMealPlanOption {
|
|
17292
|
+
planType: string;
|
|
17293
|
+
planTypeName: string;
|
|
17294
|
+
startingPricePerWeek: number;
|
|
17295
|
+
availableCadences: number[];
|
|
17296
|
+
defaultCadence: number;
|
|
17297
|
+
}
|
|
17298
|
+
|
|
17299
|
+
interface GetMealPlanResult {
|
|
17300
|
+
weightLbs: number;
|
|
17301
|
+
activityLevel: "Low" | "Moderate" | "High";
|
|
17302
|
+
plans: OllieMealPlanOption[];
|
|
17303
|
+
checkoutUrl: string;
|
|
17304
|
+
}
|
|
17305
|
+
|
|
17306
|
+
/**
|
|
17307
|
+
* Fresh dog food subscription. getMealPlan is live — the same
|
|
17308
|
+
* weight/activity/neuter-status-driven meal plan and REAL per-plan weekly price the site's own
|
|
17309
|
+
* onboarding quiz computes, given a dog's weight, activity level and neuter status. Returns
|
|
17310
|
+
* all four plan tiers (Fresh, Baked, Mixed, Half Fresh) with this dog's own computed starting
|
|
17311
|
+
* price, plus a checkout link that carries the answers forward.
|
|
17312
|
+
*/
|
|
17313
|
+
interface Unit {
|
|
17314
|
+
/**
|
|
17315
|
+
* Computes Ollie's personalized fresh-food meal plan and REAL weekly price for a dog, given
|
|
17316
|
+
* `weightLbs` (number, e.g. 45), `activityLevel` ("Low"|"Moderate"|"High"), `isNeutered`
|
|
17317
|
+
* (boolean) and optional `gender` ("Male"|"Female"). Returns all four plan tiers (Fresh,
|
|
17318
|
+
* Baked, Mixed, Half Fresh) each with this dog's own computed `startingPricePerWeek` — not a
|
|
17319
|
+
* marketing-page range — plus a `checkoutUrl` that carries the answers into the site's own
|
|
17320
|
+
* checkout. Recovered from the onboarding quiz's own API, not guessed at.
|
|
17321
|
+
*/
|
|
17322
|
+
getMealPlan(args: object): Promise<GetMealPlanResult>;
|
|
17323
|
+
}
|
|
17324
|
+
}
|
|
17325
|
+
|
|
16609
17326
|
declare namespace BowmarkProvider_naic {
|
|
16610
17327
|
// ── NAIC — the unit's own declarations, verbatim ──
|
|
16611
17328
|
interface naicCompanyQuery {
|
|
@@ -17105,6 +17822,43 @@ interface StoreStock {
|
|
|
17105
17822
|
}
|
|
17106
17823
|
}
|
|
17107
17824
|
|
|
17825
|
+
declare namespace BowmarkProvider_nutrafol {
|
|
17826
|
+
// ── Nutrafol — the unit's own declarations, verbatim ──
|
|
17827
|
+
interface RootCause {
|
|
17828
|
+
category: "Stress" | "Metabolism" | "Nutrition" | "Lifestyle" | "Hormone" | "Aging";
|
|
17829
|
+
severity: string; // the site's own label, e.g. "NEEDS SUPPORT", "MODERATE", "NORMAL"
|
|
17830
|
+
description: string | null;
|
|
17831
|
+
signs: string[];
|
|
17832
|
+
}
|
|
17833
|
+
interface HairWellnessAssessment {
|
|
17834
|
+
rootCauses: RootCause[];
|
|
17835
|
+
}
|
|
17836
|
+
interface QuizOverview {
|
|
17837
|
+
description: string;
|
|
17838
|
+
rootCauseCategories: string[];
|
|
17839
|
+
}
|
|
17840
|
+
|
|
17841
|
+
/**
|
|
17842
|
+
* Nutrafol's own Hair Wellness Quiz — assessHairWellness runs the real root-cause assessment
|
|
17843
|
+
* and returns its own computed per-category severities (Stress, Metabolism, Nutrition,
|
|
17844
|
+
* Lifestyle, Hormone, Aging), the personalized output the site's marketing pages only
|
|
17845
|
+
* describe.
|
|
17846
|
+
*/
|
|
17847
|
+
interface Unit {
|
|
17848
|
+
/**
|
|
17849
|
+
* Runs Nutrafol's own Hair Wellness Quiz along its default answer path and returns the site's
|
|
17850
|
+
* real computed root-cause severities. Read-only — never adds to cart or checks out.
|
|
17851
|
+
*/
|
|
17852
|
+
assessHairWellness(): Promise<HairWellnessAssessment>;
|
|
17853
|
+
|
|
17854
|
+
/**
|
|
17855
|
+
* Reads the Hair Wellness Quiz's own static intro page — its real description and the six
|
|
17856
|
+
* root-cause categories it screens for — with a plain browserless fetch.
|
|
17857
|
+
*/
|
|
17858
|
+
getQuizOverview(): Promise<QuizOverview>;
|
|
17859
|
+
}
|
|
17860
|
+
}
|
|
17861
|
+
|
|
17108
17862
|
declare namespace BowmarkProvider_nvisioncenters {
|
|
17109
17863
|
// ── NVISION Eye Centers — the unit's own declarations, verbatim ──
|
|
17110
17864
|
// NVISION's OWN shapes — not a capability contract.
|
|
@@ -17257,6 +18011,69 @@ interface OliverwineryShippingAvailability {
|
|
|
17257
18011
|
}
|
|
17258
18012
|
}
|
|
17259
18013
|
|
|
18014
|
+
declare namespace BowmarkProvider_othership {
|
|
18015
|
+
// ── Othership — the unit's own declarations, verbatim ──
|
|
18016
|
+
// Othership's OWN shapes — not a capability contract.
|
|
18017
|
+
|
|
18018
|
+
interface OthershipLocation {
|
|
18019
|
+
id: string; // the key getClassSchedule's locationId takes
|
|
18020
|
+
name: string; // e.g. "Adelaide", "Flatiron", "Williamsburg"
|
|
18021
|
+
city: string;
|
|
18022
|
+
stateProvince: string;
|
|
18023
|
+
formattedAddress: string;
|
|
18024
|
+
timezone: string;
|
|
18025
|
+
currencyCode: string;
|
|
18026
|
+
regionName: string | null; // e.g. "Toronto", "NYC"
|
|
18027
|
+
}
|
|
18028
|
+
|
|
18029
|
+
interface OthershipClass {
|
|
18030
|
+
id: string;
|
|
18031
|
+
name: string; // e.g. "Guided Up: Arctic Tundra - 60 min"
|
|
18032
|
+
description: string;
|
|
18033
|
+
durationMinutes: number;
|
|
18034
|
+
classroomName: string;
|
|
18035
|
+
instructorNames: string[];
|
|
18036
|
+
tags: string[]; // e.g. ["Guided", "Sun Pass"]
|
|
18037
|
+
startDateTime: string; // ISO 8601 with the location's own UTC offset
|
|
18038
|
+
bookingStartDateTime: string;
|
|
18039
|
+
availableSpotCount: number; // real, live — 0 means fully booked, not "not offered"
|
|
18040
|
+
capacity: number;
|
|
18041
|
+
spotCountIsPublic: boolean;
|
|
18042
|
+
isCancelled: boolean;
|
|
18043
|
+
}
|
|
18044
|
+
|
|
18045
|
+
interface OthershipClassSchedule {
|
|
18046
|
+
classes: OthershipClass[];
|
|
18047
|
+
totalCount: number; // may exceed classes.length if the range was too broad — see warnings
|
|
18048
|
+
scheduleUrl: string; // hand the visitor here to finish booking
|
|
18049
|
+
warnings: string[];
|
|
18050
|
+
}
|
|
18051
|
+
|
|
18052
|
+
/**
|
|
18053
|
+
* Othership's real, live class schedule and seat availability across its Toronto and NYC
|
|
18054
|
+
* sauna/ice-bath/breathwork studios — the same data its Mariana Tek booking widget shows, read
|
|
18055
|
+
* directly rather than through a JS embed nothing outside a real browser can render.
|
|
18056
|
+
*/
|
|
18057
|
+
interface Unit {
|
|
18058
|
+
/**
|
|
18059
|
+
* Returns every Othership studio location (Toronto's Adelaide and Yorkville, NYC's Flatiron
|
|
18060
|
+
* and Williamsburg) with its site id, city, address and timezone. The `id` on each row is what
|
|
18061
|
+
* getClassSchedule's locationId takes — this is the entry point every schedule search starts
|
|
18062
|
+
* from.
|
|
18063
|
+
*/
|
|
18064
|
+
getLocations(): Promise<OthershipLocation[]>;
|
|
18065
|
+
|
|
18066
|
+
/**
|
|
18067
|
+
* Searches one Othership location's real, live class schedule between two YYYY-MM-DD dates —
|
|
18068
|
+
* sauna, ice bath and breathwork sessions with instructor names, duration, tags and the actual
|
|
18069
|
+
* seats left right now, off the same Mariana Tek API the site's own booking widget calls.
|
|
18070
|
+
* `availableSpotCount: 0` means fully booked, not unavailable; `scheduleUrl` is where to send
|
|
18071
|
+
* someone to finish booking.
|
|
18072
|
+
*/
|
|
18073
|
+
getClassSchedule(locationId: string, startDate: string, endDate: string): Promise<OthershipClassSchedule>;
|
|
18074
|
+
}
|
|
18075
|
+
}
|
|
18076
|
+
|
|
17260
18077
|
declare namespace BowmarkProvider_otto {
|
|
17261
18078
|
// ── OTTO — the unit's own declarations, verbatim ──
|
|
17262
18079
|
interface ottoProduct {
|
|
@@ -20749,6 +21566,62 @@ interface ScPlaylist {
|
|
|
20749
21566
|
}
|
|
20750
21567
|
}
|
|
20751
21568
|
|
|
21569
|
+
declare namespace BowmarkProvider_spirithalloween {
|
|
21570
|
+
// ── Spirit Halloween — the unit's own declarations, verbatim ──
|
|
21571
|
+
interface SpiritHalloweenSearchResult {
|
|
21572
|
+
productId: string
|
|
21573
|
+
sku: string
|
|
21574
|
+
name: string
|
|
21575
|
+
url: string
|
|
21576
|
+
image: string | null
|
|
21577
|
+
price: number | null
|
|
21578
|
+
currency: "USD"
|
|
21579
|
+
listedSize: string | null // the ONE size this listing row is indexed under
|
|
21580
|
+
listedSizeStock: number | null // that size's stock only — not the full range
|
|
21581
|
+
}
|
|
21582
|
+
interface SpiritHalloweenSearchResults {
|
|
21583
|
+
query: string
|
|
21584
|
+
category: string
|
|
21585
|
+
results: SpiritHalloweenSearchResult[]
|
|
21586
|
+
totalMatches: number | null
|
|
21587
|
+
}
|
|
21588
|
+
interface SpiritHalloweenSizeVariant {
|
|
21589
|
+
color: string
|
|
21590
|
+
size: string // the site's own size label, e.g. "CHILD MEDIUM"
|
|
21591
|
+
price: number
|
|
21592
|
+
inStock: boolean
|
|
21593
|
+
shipStockQuantity: number
|
|
21594
|
+
variantId: string
|
|
21595
|
+
}
|
|
21596
|
+
interface SpiritHalloweenProduct {
|
|
21597
|
+
productId: string
|
|
21598
|
+
name: string
|
|
21599
|
+
url: string
|
|
21600
|
+
sizes: SpiritHalloweenSizeVariant[] // every real color/size combination, each with its own live stock
|
|
21601
|
+
}
|
|
21602
|
+
|
|
21603
|
+
/**
|
|
21604
|
+
* The licensed Halloween costume specialist — category browse and per-size, per-color live
|
|
21605
|
+
* stock for the lines it carries (today: KPop Demon Hunters).
|
|
21606
|
+
*/
|
|
21607
|
+
interface Unit {
|
|
21608
|
+
/**
|
|
21609
|
+
* Browses Spirit Halloween's category listing for a query resolved against a small internal
|
|
21610
|
+
* directory of mapped categories (today: "KPop Demon Hunters" and its characters — rumi, mira,
|
|
21611
|
+
* zoey, saja) — NOT a general free-text site search, which was probed 2026-09-01 and does not
|
|
21612
|
+
* render results server-side. Each result row carries only its OWN listed size's stock; call
|
|
21613
|
+
* getProduct for the full per-size breakdown.
|
|
21614
|
+
*/
|
|
21615
|
+
search(args: { query: string; limit?: number }): Promise<SpiritHalloweenSearchResults>;
|
|
21616
|
+
|
|
21617
|
+
/**
|
|
21618
|
+
* Reads one product page's full live size/color matrix — every real variant this product sells
|
|
21619
|
+
* in, each with its own price and in-stock signal — for a product URL returned by search.
|
|
21620
|
+
*/
|
|
21621
|
+
getProduct(args: { url: string }): Promise<SpiritHalloweenProduct>;
|
|
21622
|
+
}
|
|
21623
|
+
}
|
|
21624
|
+
|
|
20752
21625
|
declare namespace BowmarkProvider_starlighthomes {
|
|
20753
21626
|
// ── Starlight Homes — the unit's own declarations, verbatim ──
|
|
20754
21627
|
// Starlight Homes' OWN shapes — not a capability contract.
|
|
@@ -21307,7 +22180,7 @@ interface SunHomeSaunasQuizOption {
|
|
|
21307
22180
|
interface SunHomeSaunasQuizQuestion {
|
|
21308
22181
|
id: string; // pass back as answers[].questionId
|
|
21309
22182
|
title: string;
|
|
21310
|
-
type: string; // the site's own
|
|
22183
|
+
type: string; // the site's own Digioh question type, e.g. "DIGIOH_PRQ"
|
|
21311
22184
|
options: SunHomeSaunasQuizOption[]; // option.id -> answers[].optionIds
|
|
21312
22185
|
}
|
|
21313
22186
|
|
|
@@ -21315,8 +22188,8 @@ interface SunHomeSaunasMatch {
|
|
|
21315
22188
|
handle: string; // the key addSaunaToCart takes
|
|
21316
22189
|
title: string;
|
|
21317
22190
|
price: number; // dollars — real live Shopify price
|
|
21318
|
-
matchScore: number; //
|
|
21319
|
-
matchOutOf: number; //
|
|
22191
|
+
matchScore: number; // selected answers that positively weighted this product
|
|
22192
|
+
matchOutOf: number; // submitted answer selections
|
|
21320
22193
|
}
|
|
21321
22194
|
|
|
21322
22195
|
interface SunHomeSaunasCartResult {
|
|
@@ -21330,30 +22203,29 @@ interface SunHomeSaunasCartResult {
|
|
|
21330
22203
|
}
|
|
21331
22204
|
|
|
21332
22205
|
/**
|
|
21333
|
-
* Sun Home Saunas'
|
|
21334
|
-
*
|
|
21335
|
-
*
|
|
22206
|
+
* Sun Home Saunas' live Digioh buyer quiz — its current questions, published product-ranking
|
|
22207
|
+
* rules, real Shopify prices, and a real cart write for a recommended product — no login or
|
|
22208
|
+
* dealer routing.
|
|
21336
22209
|
*/
|
|
21337
22210
|
interface Unit {
|
|
21338
22211
|
/**
|
|
21339
|
-
* Reads Sun Home Saunas' real, live
|
|
21340
|
-
*
|
|
22212
|
+
* Reads Sun Home Saunas' real, live Digioh buyer quiz from its published breakpoint
|
|
22213
|
+
* configuration — every current question and answer button, with the ids
|
|
21341
22214
|
* getPersonalizedSaunaMatches() needs to answer them.
|
|
21342
22215
|
*/
|
|
21343
22216
|
getSaunaFinderQuestions(): Promise<SunHomeSaunasQuizQuestion[]>;
|
|
21344
22217
|
|
|
21345
22218
|
/**
|
|
21346
|
-
*
|
|
21347
|
-
* site's
|
|
21348
|
-
*
|
|
21349
|
-
* see, never a guess from general knowledge.
|
|
22219
|
+
* Applies real answers (from getSaunaFinderQuestions()) to the live Digioh `prq_keywords`
|
|
22220
|
+
* rules the site's quiz publishes, then returns the site's own weighted ranking with real
|
|
22221
|
+
* current Shopify prices — never a general-knowledge guess.
|
|
21350
22222
|
*/
|
|
21351
22223
|
getPersonalizedSaunaMatches(answers: {questionId: string, optionIds: string[]}[]): Promise<SunHomeSaunasMatch[]>;
|
|
21352
22224
|
|
|
21353
22225
|
/**
|
|
21354
|
-
* Adds one real matched
|
|
21355
|
-
* cart at Sun Home Saunas' own real live price, and reads the cart back to confirm the
|
|
21356
|
-
* landed. THROWS if the product is currently out of stock.
|
|
22226
|
+
* Adds one real matched product (a handle from getPersonalizedSaunaMatches()) to a real
|
|
22227
|
+
* Shopify cart at Sun Home Saunas' own real live price, and reads the cart back to confirm the
|
|
22228
|
+
* write landed. THROWS if the product is currently out of stock.
|
|
21357
22229
|
*/
|
|
21358
22230
|
addSaunaToCart(handle: string, quantity?: number): Promise<SunHomeSaunasCartResult>;
|
|
21359
22231
|
}
|
|
@@ -21783,7 +22655,7 @@ interface TherabodyRecommendation {
|
|
|
21783
22655
|
|
|
21784
22656
|
/**
|
|
21785
22657
|
* Filters the live catalogue by what a shopper actually needs — device family, audience, and
|
|
21786
|
-
* the features named (
|
|
22658
|
+
* the features named (percussive, recovery, massage, vibration). Returns the matching products
|
|
21787
22659
|
* with their real prices, ranked by in-stock first. The storefront does not publish a query or
|
|
21788
22660
|
* filter endpoint, so the function is local filtering on the catalogue listTheragunProducts
|
|
21789
22661
|
* already returns — the divide is what the function does with the data, not how it gets there.
|
|
@@ -22534,6 +23406,54 @@ interface TitlenineBraSizeResult {
|
|
|
22534
23406
|
}
|
|
22535
23407
|
}
|
|
22536
23408
|
|
|
23409
|
+
declare namespace BowmarkProvider_tmobile {
|
|
23410
|
+
// ── T-Mobile — the unit's own declarations, verbatim ──
|
|
23411
|
+
interface TmobileSku {
|
|
23412
|
+
id: string;
|
|
23413
|
+
listPriceUsd: number;
|
|
23414
|
+
monthlyPaymentUsd: number | null;
|
|
23415
|
+
contractTermMonths: number | null;
|
|
23416
|
+
}
|
|
23417
|
+
interface TmobileTradeInCredit {
|
|
23418
|
+
deviceLabel: string;
|
|
23419
|
+
creditUsd: number;
|
|
23420
|
+
}
|
|
23421
|
+
interface TmobilePromotion {
|
|
23422
|
+
promoId: string;
|
|
23423
|
+
displayName: string;
|
|
23424
|
+
headlineCreditUsd: number;
|
|
23425
|
+
tradeInCredits: TmobileTradeInCredit[];
|
|
23426
|
+
}
|
|
23427
|
+
interface TmobileTradeInMatch {
|
|
23428
|
+
model: string;
|
|
23429
|
+
promoId: string;
|
|
23430
|
+
promoDisplayName: string;
|
|
23431
|
+
creditUsd: number;
|
|
23432
|
+
}
|
|
23433
|
+
interface TmobileUpgradeOffer {
|
|
23434
|
+
devicePath: string;
|
|
23435
|
+
sourceUrl: string;
|
|
23436
|
+
sku: TmobileSku;
|
|
23437
|
+
promotions: TmobilePromotion[];
|
|
23438
|
+
tradeInMatch: TmobileTradeInMatch | null;
|
|
23439
|
+
}
|
|
23440
|
+
|
|
23441
|
+
/**
|
|
23442
|
+
* t-mobile.com's own device-page pricing call — real list price, real monthly financing, and
|
|
23443
|
+
* the site's own per-trade-in-device credit tiers, read through a real browser session (the
|
|
23444
|
+
* site signs every pricing request).
|
|
23445
|
+
*/
|
|
23446
|
+
interface Unit {
|
|
23447
|
+
/**
|
|
23448
|
+
* Reads one t-mobile.com device page's own pricing call (list price, monthly financing, and
|
|
23449
|
+
* every applicable promotion's per-trade-in-device credit tier) and, when `tradeInModel` is
|
|
23450
|
+
* given, resolves the BEST matching credit across all of them — e.g. "iPhone 13" against a
|
|
23451
|
+
* page carrying tiers like "Save $830: iPhone 13".
|
|
23452
|
+
*/
|
|
23453
|
+
getUpgradeOffer(arg: { devicePath: string; tradeInModel?: string }): Promise<TmobileUpgradeOffer>;
|
|
23454
|
+
}
|
|
23455
|
+
}
|
|
23456
|
+
|
|
22537
23457
|
declare namespace BowmarkProvider_topviewtix {
|
|
22538
23458
|
// ── TopView Sightseeing — the unit's own declarations, verbatim ──
|
|
22539
23459
|
interface topviewtixPackageDetails {
|
|
@@ -23629,6 +24549,7 @@ interface walmartSearchResult {
|
|
|
23629
24549
|
price: number | null;
|
|
23630
24550
|
wasPrice: number | null;
|
|
23631
24551
|
priceRangeMin: number | null;
|
|
24552
|
+
conditionCode: number | null;
|
|
23632
24553
|
inStock: boolean;
|
|
23633
24554
|
rating: number | null;
|
|
23634
24555
|
reviewCount: number;
|
|
@@ -23924,6 +24845,36 @@ interface XpressWaitTime {
|
|
|
23924
24845
|
}
|
|
23925
24846
|
}
|
|
23926
24847
|
|
|
24848
|
+
declare namespace BowmarkProvider_yelp {
|
|
24849
|
+
// ── Yelp — the unit's own declarations, verbatim ──
|
|
24850
|
+
interface YelpSearchArgs {
|
|
24851
|
+
term: string; // e.g. "ramen" — Yelp's own find_desc
|
|
24852
|
+
location: string; // e.g. "Philadelphia, PA" — Yelp's own find_loc
|
|
24853
|
+
limit?: number; // default 10, clamped to [1, 30]
|
|
24854
|
+
}
|
|
24855
|
+
|
|
24856
|
+
interface YelpSearchResult {
|
|
24857
|
+
name: string;
|
|
24858
|
+
url: string;
|
|
24859
|
+
rating: number | null;
|
|
24860
|
+
reviewCount: number | null;
|
|
24861
|
+
priceRange: string | null; // "$".."$$$$", or null
|
|
24862
|
+
neighborhood: string | null;
|
|
24863
|
+
}
|
|
24864
|
+
|
|
24865
|
+
/**
|
|
24866
|
+
* Yelp's own business search — returns real, currently-listed businesses for a search term and
|
|
24867
|
+
* location with Yelp's own star rating, review count, price tier and neighborhood.
|
|
24868
|
+
*/
|
|
24869
|
+
interface Unit {
|
|
24870
|
+
/**
|
|
24871
|
+
* Runs Yelp's own business search for a term and location and returns real, currently-listed
|
|
24872
|
+
* businesses with Yelp's own rating, review count, price tier and neighborhood. Read-only.
|
|
24873
|
+
*/
|
|
24874
|
+
search(args: YelpSearchArgs): Promise<YelpSearchResult[]>;
|
|
24875
|
+
}
|
|
24876
|
+
}
|
|
24877
|
+
|
|
23927
24878
|
declare namespace BowmarkProvider_yorkwallcoverings {
|
|
23928
24879
|
// ── York Wallcoverings — the unit's own declarations, verbatim ──
|
|
23929
24880
|
interface YorkWallcoveringsSearchResult {
|
|
@@ -24940,6 +25891,7 @@ interface BowmarkProviders {
|
|
|
24940
25891
|
ancientnutrition: BowmarkProvider_ancientnutrition.Unit;
|
|
24941
25892
|
andersenwindows: BowmarkProvider_andersenwindows.Unit;
|
|
24942
25893
|
apple: BowmarkProvider_apple.Unit;
|
|
25894
|
+
aquaphoenixsci: BowmarkProvider_aquaphoenixsci.Unit;
|
|
24943
25895
|
archipelago: BowmarkProvider_archipelago.Unit;
|
|
24944
25896
|
ashleyfurniture: BowmarkProvider_ashleyfurniture.Unit;
|
|
24945
25897
|
asppoolco: BowmarkProvider_asppoolco.Unit;
|
|
@@ -24950,6 +25902,7 @@ interface BowmarkProviders {
|
|
|
24950
25902
|
avis: BowmarkProvider_avis.Unit;
|
|
24951
25903
|
azazie: BowmarkProvider_azazie.Unit;
|
|
24952
25904
|
azure: BowmarkProvider_azure.Unit;
|
|
25905
|
+
bankmycell: BowmarkProvider_bankmycell.Unit;
|
|
24953
25906
|
barletta: BowmarkProvider_barletta.Unit;
|
|
24954
25907
|
baublebar: BowmarkProvider_baublebar.Unit;
|
|
24955
25908
|
bcparkscamping: BowmarkProvider_bcparkscamping.Unit;
|
|
@@ -24984,6 +25937,7 @@ interface BowmarkProviders {
|
|
|
24984
25937
|
chriscraft: BowmarkProvider_chriscraft.Unit;
|
|
24985
25938
|
classichome: BowmarkProvider_classichome.Unit;
|
|
24986
25939
|
classpass: BowmarkProvider_classpass.Unit;
|
|
25940
|
+
claudemarketplaces_com: BowmarkProvider_claudemarketplaces_com.Unit;
|
|
24987
25941
|
cleanairlawncare: BowmarkProvider_cleanairlawncare.Unit;
|
|
24988
25942
|
cloudflare: BowmarkProvider_cloudflare.Unit;
|
|
24989
25943
|
clubchampion: BowmarkProvider_clubchampion.Unit;
|
|
@@ -24991,6 +25945,7 @@ interface BowmarkProviders {
|
|
|
24991
25945
|
couponfollow: BowmarkProvider_couponfollow.Unit;
|
|
24992
25946
|
cruiselakegeneva: BowmarkProvider_cruiselakegeneva.Unit;
|
|
24993
25947
|
culturefly: BowmarkProvider_culturefly.Unit;
|
|
25948
|
+
curiocity: BowmarkProvider_curiocity.Unit;
|
|
24994
25949
|
cyberpowerpc: BowmarkProvider_cyberpowerpc.Unit;
|
|
24995
25950
|
davidsonhomes: BowmarkProvider_davidsonhomes.Unit;
|
|
24996
25951
|
deangroup: BowmarkProvider_deangroup.Unit;
|
|
@@ -25001,11 +25956,13 @@ interface BowmarkProviders {
|
|
|
25001
25956
|
dillards: BowmarkProvider_dillards.Unit;
|
|
25002
25957
|
discounttire: BowmarkProvider_discounttire.Unit;
|
|
25003
25958
|
disney: BowmarkProvider_disney.Unit;
|
|
25959
|
+
doordash: BowmarkProvider_doordash.Unit;
|
|
25004
25960
|
ebay: BowmarkProvider_ebay.Unit;
|
|
25005
25961
|
elevenlabs: BowmarkProvider_elevenlabs.Unit;
|
|
25006
25962
|
embroker: BowmarkProvider_embroker.Unit;
|
|
25007
25963
|
eq3: BowmarkProvider_eq3.Unit;
|
|
25008
25964
|
erieinsurance: BowmarkProvider_erieinsurance.Unit;
|
|
25965
|
+
etsy: BowmarkProvider_etsy.Unit;
|
|
25009
25966
|
eventsource: BowmarkProvider_eventsource.Unit;
|
|
25010
25967
|
evolutionofsmooth: BowmarkProvider_evolutionofsmooth.Unit;
|
|
25011
25968
|
executivehomecare: BowmarkProvider_executivehomecare.Unit;
|
|
@@ -25024,6 +25981,7 @@ interface BowmarkProviders {
|
|
|
25024
25981
|
geico: BowmarkProvider_geico.Unit;
|
|
25025
25982
|
github: BowmarkProvider_github.Unit;
|
|
25026
25983
|
glassesusa: BowmarkProvider_glassesusa.Unit;
|
|
25984
|
+
goloadup: BowmarkProvider_goloadup.Unit;
|
|
25027
25985
|
goodway: BowmarkProvider_goodway.Unit;
|
|
25028
25986
|
google_flights: BowmarkProvider_google_flights.Unit;
|
|
25029
25987
|
gotchacovered: BowmarkProvider_gotchacovered.Unit;
|
|
@@ -25042,10 +26000,12 @@ interface BowmarkProviders {
|
|
|
25042
26000
|
hilton: BowmarkProvider_hilton.Unit;
|
|
25043
26001
|
historymaker: BowmarkProvider_historymaker.Unit;
|
|
25044
26002
|
hobie: BowmarkProvider_hobie.Unit;
|
|
26003
|
+
hodjapasha: BowmarkProvider_hodjapasha.Unit;
|
|
25045
26004
|
holidaybuilders: BowmarkProvider_holidaybuilders.Unit;
|
|
25046
26005
|
hunter: BowmarkProvider_hunter.Unit;
|
|
25047
26006
|
ibuypower: BowmarkProvider_ibuypower.Unit;
|
|
25048
26007
|
identitygroup: BowmarkProvider_identitygroup.Unit;
|
|
26008
|
+
ihg: BowmarkProvider_ihg.Unit;
|
|
25049
26009
|
instagram: BowmarkProvider_instagram.Unit;
|
|
25050
26010
|
insurify: BowmarkProvider_insurify.Unit;
|
|
25051
26011
|
interiordefine: BowmarkProvider_interiordefine.Unit;
|
|
@@ -25060,6 +26020,7 @@ interface BowmarkProviders {
|
|
|
25060
26020
|
justinwine: BowmarkProvider_justinwine.Unit;
|
|
25061
26021
|
kaleidescape: BowmarkProvider_kaleidescape.Unit;
|
|
25062
26022
|
kayak: BowmarkProvider_kayak.Unit;
|
|
26023
|
+
keepa: BowmarkProvider_keepa.Unit;
|
|
25063
26024
|
kingsdown: BowmarkProvider_kingsdown.Unit;
|
|
25064
26025
|
kitchentuneup: BowmarkProvider_kitchentuneup.Unit;
|
|
25065
26026
|
kompan: BowmarkProvider_kompan.Unit;
|
|
@@ -25086,6 +26047,7 @@ interface BowmarkProviders {
|
|
|
25086
26047
|
medicare: BowmarkProvider_medicare.Unit;
|
|
25087
26048
|
mergify: BowmarkProvider_mergify.Unit;
|
|
25088
26049
|
microcenter: BowmarkProvider_microcenter.Unit;
|
|
26050
|
+
millisaraylar: BowmarkProvider_millisaraylar.Unit;
|
|
25089
26051
|
minimax: BowmarkProvider_minimax.Unit;
|
|
25090
26052
|
minted: BowmarkProvider_minted.Unit;
|
|
25091
26053
|
mixbook: BowmarkProvider_mixbook.Unit;
|
|
@@ -25093,14 +26055,17 @@ interface BowmarkProviders {
|
|
|
25093
26055
|
momondo: BowmarkProvider_momondo.Unit;
|
|
25094
26056
|
mossyoak: BowmarkProvider_mossyoak.Unit;
|
|
25095
26057
|
muze_gov_tr: BowmarkProvider_muze_gov_tr.Unit;
|
|
26058
|
+
myollie: BowmarkProvider_myollie.Unit;
|
|
25096
26059
|
naic: BowmarkProvider_naic.Unit;
|
|
25097
26060
|
namecheap: BowmarkProvider_namecheap.Unit;
|
|
25098
26061
|
nationalbusinessfurniture: BowmarkProvider_nationalbusinessfurniture.Unit;
|
|
25099
26062
|
newageproducts: BowmarkProvider_newageproducts.Unit;
|
|
25100
26063
|
newegg: BowmarkProvider_newegg.Unit;
|
|
26064
|
+
nutrafol: BowmarkProvider_nutrafol.Unit;
|
|
25101
26065
|
nvisioncenters: BowmarkProvider_nvisioncenters.Unit;
|
|
25102
26066
|
oanda: BowmarkProvider_oanda.Unit;
|
|
25103
26067
|
oliverwinery: BowmarkProvider_oliverwinery.Unit;
|
|
26068
|
+
othership: BowmarkProvider_othership.Unit;
|
|
25104
26069
|
otto: BowmarkProvider_otto.Unit;
|
|
25105
26070
|
outdoorresearch: BowmarkProvider_outdoorresearch.Unit;
|
|
25106
26071
|
pacificabeauty: BowmarkProvider_pacificabeauty.Unit;
|
|
@@ -25142,6 +26107,7 @@ interface BowmarkProviders {
|
|
|
25142
26107
|
smithery: BowmarkProvider_smithery.Unit;
|
|
25143
26108
|
solostove: BowmarkProvider_solostove.Unit;
|
|
25144
26109
|
soundcloud: BowmarkProvider_soundcloud.Unit;
|
|
26110
|
+
spirithalloween: BowmarkProvider_spirithalloween.Unit;
|
|
25145
26111
|
starlighthomes: BowmarkProvider_starlighthomes.Unit;
|
|
25146
26112
|
statefarm: BowmarkProvider_statefarm.Unit;
|
|
25147
26113
|
stickergiant: BowmarkProvider_stickergiant.Unit;
|
|
@@ -25160,6 +26126,7 @@ interface BowmarkProviders {
|
|
|
25160
26126
|
thibautdesign: BowmarkProvider_thibautdesign.Unit;
|
|
25161
26127
|
tilsonhomes: BowmarkProvider_tilsonhomes.Unit;
|
|
25162
26128
|
titlenine: BowmarkProvider_titlenine.Unit;
|
|
26129
|
+
tmobile: BowmarkProvider_tmobile.Unit;
|
|
25163
26130
|
topviewtix: BowmarkProvider_topviewtix.Unit;
|
|
25164
26131
|
travelinsured: BowmarkProvider_travelinsured.Unit;
|
|
25165
26132
|
trawickinternational: BowmarkProvider_trawickinternational.Unit;
|
|
@@ -25181,6 +26148,7 @@ interface BowmarkProviders {
|
|
|
25181
26148
|
wellfound: BowmarkProvider_wellfound.Unit;
|
|
25182
26149
|
winestyles: BowmarkProvider_winestyles.Unit;
|
|
25183
26150
|
xpresswellnessurgentcare: BowmarkProvider_xpresswellnessurgentcare.Unit;
|
|
26151
|
+
yelp: BowmarkProvider_yelp.Unit;
|
|
25184
26152
|
yorkwallcoverings: BowmarkProvider_yorkwallcoverings.Unit;
|
|
25185
26153
|
yourarborhome: BowmarkProvider_yourarborhome.Unit;
|
|
25186
26154
|
youtube: BowmarkProvider_youtube.Unit;
|
|
@@ -76911,8 +77879,10 @@ interface BowmarkLibrary {
|
|
|
76911
77879
|
bundles: BowmarkCapability_bundles.Unit;
|
|
76912
77880
|
cable_railing_quote: BowmarkCapability_cable_railing_quote.Unit;
|
|
76913
77881
|
cars: BowmarkCapability_cars.Unit;
|
|
77882
|
+
costume_size_check: BowmarkCapability_costume_size_check.Unit;
|
|
76914
77883
|
coworking: BowmarkCapability_coworking.Unit;
|
|
76915
77884
|
custom_sofa_configurator: BowmarkCapability_custom_sofa_configurator.Unit;
|
|
77885
|
+
delivery: BowmarkCapability_delivery.Unit;
|
|
76916
77886
|
developer_api_key_signup: BowmarkCapability_developer_api_key_signup.Unit;
|
|
76917
77887
|
domain: BowmarkCapability_domain.Unit;
|
|
76918
77888
|
email: BowmarkCapability_email.Unit;
|
|
@@ -76924,6 +77894,8 @@ interface BowmarkLibrary {
|
|
|
76924
77894
|
hvac: BowmarkCapability_hvac.Unit;
|
|
76925
77895
|
insurance: BowmarkCapability_insurance.Unit;
|
|
76926
77896
|
istanbul_schedules: BowmarkCapability_istanbul_schedules.Unit;
|
|
77897
|
+
local_database_gui: BowmarkCapability_local_database_gui.Unit;
|
|
77898
|
+
local_html_preview: BowmarkCapability_local_html_preview.Unit;
|
|
76927
77899
|
mcp_registry: BowmarkCapability_mcp_registry.Unit;
|
|
76928
77900
|
music: BowmarkCapability_music.Unit;
|
|
76929
77901
|
pcparts: BowmarkCapability_pcparts.Unit;
|
|
@@ -76933,6 +77905,7 @@ interface BowmarkLibrary {
|
|
|
76933
77905
|
promocodes: BowmarkCapability_promocodes.Unit;
|
|
76934
77906
|
read: BowmarkCapability_read.Unit;
|
|
76935
77907
|
restaurant_booking: BowmarkCapability_restaurant_booking.Unit;
|
|
77908
|
+
retail: BowmarkCapability_retail.Unit;
|
|
76936
77909
|
school_shopping_basket: BowmarkCapability_school_shopping_basket.Unit;
|
|
76937
77910
|
search: BowmarkCapability_search.Unit;
|
|
76938
77911
|
sheds: BowmarkCapability_sheds.Unit;
|