@adcp/sdk API Reference - v7.9.0
    Preparing search index...

    Class NeedsAuthorizationError

    Error raised when an agent returns a 401 and we do not have credentials to satisfy it. Carries everything needed to run an interactive OAuth flow or show the operator an actionable prompt.

    Extends AuthenticationRequiredError so existing callers that catch AuthenticationRequiredError automatically receive the richer variant — they can downcast with instanceof NeedsAuthorizationError when they want walked discovery metadata.

    Note on code vs subCode: The parent class declares readonly code = 'AUTHENTICATION_REQUIRED' as a class field that re-initializes on every construction, so a child-side override attempt is silently overwritten under useDefineForClassFields. The narrow discriminator is exposed as subCode — prefer instanceof NeedsAuthorizationError for type-narrowing and use subCode only for structured-log keying.

    Note on hasOAuth: The inherited getter returns true only when both authorization_endpoint and token_endpoint were walked successfully. A partially-walked requirements record (PRM reachable but AS metadata missing) still yields hasOAuth === false even though requirements.authorizationServer is set. Treat it as "we have enough to start a flow," not "server wants OAuth."

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    subCode: "needs_authorization" = ...

    Narrow discriminator for consumers that already know about this class.

    details?: unknown
    code: "AUTHENTICATION_REQUIRED" = 'AUTHENTICATION_REQUIRED'
    agentUrl: string
    oauthMetadata?: OAuthMetadataInfo
    challenge?: AuthChallengeInfo
    stackTraceLimit: number

    The 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.

    cause?: unknown
    name: string
    message: string
    stack?: string

    Accessors

    • get hasOAuth(): boolean

      Check if OAuth authentication is available

      Returns boolean

    • get authorizationUrl(): string | undefined

      Get the authorization URL if OAuth is available

      Returns string | undefined

    • get suggestedScheme(): string | undefined

      Lowercased scheme from the WWW-Authenticate challenge, when present. 'basic' is the common non-OAuth case — gateway-fronted agents speaking RFC 7617.

      Returns string | undefined

    Methods

    • 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

      • targetObject: object
      • OptionalconstructorOpt: Function

      Returns void