API: providers/types

better-web-search-mcp


better-web-search-mcp / providers/types

providers/types#

Classes#

ProviderBlockedError#

Defined in: src/providers/types.ts:62

A provider refused the request rather than finding nothing.

Rate limiting, a challenge page, or an auth failure all mean “we do not know what the results are”, which is a different fact from “there are no results”. Collapsing the two made a throttled search look like a query that matched nothing, which is how a working site: search appeared broken and how a rate-limited benchmark run produced a retention figure that read as real.

Extends#

  • Error

Constructors#

Constructor#

new ProviderBlockedError(provider, reason): ProviderBlockedError

Defined in: src/providers/types.ts:66

Parameters#
ParameterType
providerstring
reasonstring
Returns#

ProviderBlockedError

Overrides#

Error.constructor

Properties#

PropertyModifierTypeDescriptionInherited fromDefined in
cause?publicunknown-Error.causenode_modules/typescript/lib/lib.es2022.error.d.ts:26
messagepublicstring-Error.messagenode_modules/typescript/lib/lib.es5.d.ts:1077
namepublicstring-Error.namenode_modules/typescript/lib/lib.es5.d.ts:1076
providerreadonlystringThe provider that refused.-src/providers/types.ts:64
stack?publicstring-Error.stacknode_modules/typescript/lib/lib.es5.d.ts:1078
stackTraceLimitstaticnumberThe Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)). The default value is 10 but may be set to any valid JavaScript number. Changes will affect any stack trace captured after the value has been changed. If set to a non-number value, or set to a negative number, stack traces will not capture any frames.Error.stackTraceLimitnode_modules/@types/node/globals.d.ts:68

Methods#

captureStackTrace()#

static captureStackTrace(targetObject, constructorOpt?): void

Defined in: node_modules/@types/node/globals.d.ts:52

Creates a .stack property on targetObject, which when accessed returns a string representing the location in the code at which Error.captureStackTrace() was called.

const myObject = {};
Error.captureStackTrace(myObject);
myObject.stack;  // Similar to `new Error().stack`

The first line of the trace will be prefixed with ${myObject.name}: ${myObject.message}.

The optional constructorOpt argument accepts a function. If given, all frames above constructorOpt, including constructorOpt, will be omitted from the generated stack trace.

The constructorOpt argument is useful for hiding implementation details of error generation from the user. For instance:

function a() {
  b();
}

function b() {
  c();
}

function c() {
  // Create an error without stack trace to avoid calculating the stack trace twice.
  const { stackTraceLimit } = Error;
  Error.stackTraceLimit = 0;
  const error = new Error();
  Error.stackTraceLimit = stackTraceLimit;

  // Capture the stack trace above function b
  Error.captureStackTrace(error, b); // Neither function c, nor b is included in the stack trace
  throw error;
}

a();
Parameters#
ParameterType
targetObjectobject
constructorOpt?Function
Returns#

void

Inherited from#

Error.captureStackTrace

prepareStackTrace()#

static prepareStackTrace(err, stackTraces): any

Defined in: node_modules/@types/node/globals.d.ts:56

Parameters#
ParameterType
errError
stackTracesCallSite[]
Returns#

any

See#

https://v8.dev/docs/stack-trace-api#customizing-stack-traces

Inherited from#

Error.prepareStackTrace

Interfaces#

SearchOptions#

Defined in: src/providers/types.ts:27

Options controlling a single provider search.

Properties#

PropertyTypeDescriptionDefined in
count?numberMaximum number of results to request.src/providers/types.ts:29
extraSnippets?booleanRequest extra snippets from providers that support it (Brave).src/providers/types.ts:35
freshness?stringProvider-specific freshness filter (e.g. Brave “pd”/“pw”/“pm”/“py”).src/providers/types.ts:31
recency_days?numberNumber of days back to restrict results to.src/providers/types.ts:33

SearchProvider#

Defined in: src/providers/types.ts:39

A search provider that can be queried and returns normalized results.

Properties#

PropertyTypeDescriptionDefined in
namestringStable provider identifier (e.g. “brave”, “tavily”, “duckduckgo”).src/providers/types.ts:41

Methods#

search(query, opts): Promise<SearchResult[]>

Defined in: src/providers/types.ts:49

Run a search and return normalized results.

Implementations MUST NOT throw on provider errors (missing key, HTTP 401/429, timeout). They return an empty array and log a warning instead, so one failing provider never breaks the aggregate search.

Parameters#
ParameterType
querystring
optsSearchOptions
Returns#

Promise<SearchResult[]>


SearchResult#

Defined in: src/providers/types.ts:11

A single normalized search result returned by any provider.

Extended by#

Properties#

PropertyTypeDescriptionDefined in
published?stringISO date string of publication, when the provider exposes it.src/providers/types.ts:19
score?numberA 0-1 relevance/quality score assigned by the provider, when available.src/providers/types.ts:21
snippetstringA short text snippet / description of the result.src/providers/types.ts:17
sourcestringThe name of the provider that produced this result.src/providers/types.ts:23
titlestringThe result title.src/providers/types.ts:13
urlstringThe canonical URL of the result.src/providers/types.ts:15