@blockchaincommons/dcbor-parse - v1.0.0-beta.3
    Preparing search index...

    Class DcborParseError

    Thrown by parseDcborItem and parseDcborItemPartial (and carried by the try… forms) for text that does not parse. code says why; details carries the span and the code-specific fields; fullMessage(source) renders the message with the source line and a caret. Instances come from the static factories only.

    try {
    parseDcborItem(text);
    } catch (e) {
    if (DcborParseError.isDcborParseError(e) && e.code === "UnknownTagName") {
    e.details.name; // the tag name that did not resolve
    }
    }

    Hierarchy

    • Error
      • DcborParseError
    Index
    name: "DcborParseError"

    Always "DcborParseError"; the cross-copy identity DcborParseError.isDcborParseError checks.

    The discriminant; equals details.code.

    The structured payload, discriminated by code.

    • get span(): Span | undefined

      The span, if the error has one.

      Returns Span | undefined

    • Type guard for a DcborParseError, including one from another copy of this package.

      Parameters

      • value: unknown

      Returns value is
          | DcborParseError & {
              code: "UnrecognizedToken";
              details: { code: "UnrecognizedToken"; span: Span };
          }
          | DcborParseError & {
              code: "InvalidDateString";
              details: { code: "InvalidDateString"; span: Span; dateString: string };
          }
          | DcborParseError & {
              code: "InvalidTagValue";
              details: { code: "InvalidTagValue"; span: Span; value: string };
          }
          | DcborParseError & {
              code: "InvalidHexString";
              details: { code: "InvalidHexString"; span: Span };
          }
          | DcborParseError & {
              code: "InvalidBase64String";
              details: { code: "InvalidBase64String"; span: Span };
          }
          | DcborParseError & {
              code: "InvalidKnownValue";
              details: { code: "InvalidKnownValue"; span: Span; value: string };
          }
          | DcborParseError & {
              code: "InvalidUr";
              details: { code: "InvalidUr"; span: Span; cause: string };
          }
          | DcborParseError & { code: "EmptyInput"; details: { code: "EmptyInput" } }
          | DcborParseError & {
              code: "UnexpectedEndOfInput";
              details: { code: "UnexpectedEndOfInput" };
          }
          | DcborParseError & {
              code: "ExtraData";
              details: { code: "ExtraData"; span: Span };
          }
          | DcborParseError & {
              code: "UnexpectedToken";
              details: { code: "UnexpectedToken"; span: Span; token: Token };
          }
          | DcborParseError & {
              code: "ExpectedComma";
              details: { code: "ExpectedComma"; span: Span };
          }
          | DcborParseError & {
              code: "ExpectedColon";
              details: { code: "ExpectedColon"; span: Span };
          }
          | DcborParseError & {
              code: "UnmatchedParentheses";
              details: { code: "UnmatchedParentheses"; span: Span };
          }
          | DcborParseError & {
              code: "UnmatchedBraces";
              details: { code: "UnmatchedBraces"; span: Span };
          }
          | DcborParseError & {
              code: "ExpectedMapKey";
              details: { code: "ExpectedMapKey"; span: Span };
          }
          | DcborParseError & {
              code: "UnknownTagName";
              details: { code: "UnknownTagName"; span: Span; name: string };
          }
          | DcborParseError & {
              code: "UnknownUrType";
              details: { code: "UnknownUrType"; span: Span; urType: string };
          }
          | DcborParseError & {
              code: "UnknownKnownValueName";
              details: { code: "UnknownKnownValueName"; span: Span; name: string };
          }
          | DcborParseError & {
              code: "DuplicateMapKey";
              details: { code: "DuplicateMapKey"; span: Span };
          }
          | DcborParseError & {
              code: "NestingTooDeep";
              details: { code: "NestingTooDeep"; span: Span; maxDepth: number };
          }

    • The message with the source line and a caret under the span.

      Parameters

      • source: string

      Returns string

    • The source holds nothing but whitespace and comments.

      Returns DcborParseError & { code: "EmptyInput"; details: { code: "EmptyInput" } }

      • Readonlycode: "EmptyInput"

        The discriminant.

      • Readonlydetails: { code: "EmptyInput" }

        The payload of code.

        • Readonlycode: "EmptyInput"

          The discriminant.

    • The source ended inside an item.

      Returns DcborParseError & {
          code: "UnexpectedEndOfInput";
          details: { code: "UnexpectedEndOfInput" };
      }

      • Readonlycode: "UnexpectedEndOfInput"

        The discriminant.

      • Readonlydetails: { code: "UnexpectedEndOfInput" }

        The payload of code.

        • Readonlycode: "UnexpectedEndOfInput"

          The discriminant.

    • Text follows the first item.

      Parameters

      Returns DcborParseError & {
          code: "ExtraData";
          details: { code: "ExtraData"; span: Span };
      }

      • Readonlycode: "ExtraData"

        The discriminant.

      • Readonlydetails: { code: "ExtraData"; span: Span }

        The payload of code.

        • Readonlycode: "ExtraData"

          The discriminant.

        • Readonlyspan: Span

          The first token past the item.

    • A token that cannot start or continue an item here; text is its source text.

      Parameters

      • token: Token
      • text: string

      Returns DcborParseError & {
          code: "UnexpectedToken";
          details: { code: "UnexpectedToken"; span: Span; token: Token };
      }

      • Readonlycode: "UnexpectedToken"

        The discriminant.

      • Readonlydetails: { code: "UnexpectedToken"; span: Span; token: Token }

        The payload of code.

        • Readonlycode: "UnexpectedToken"

          The discriminant.

        • Readonlyspan: Span

          The token.

        • Readonlytoken: Token

          The token found, with its payload (a literal's decoded value or its own error).

    • Text no token matches.

      Parameters

      Returns DcborParseError & {
          code: "UnrecognizedToken";
          details: { code: "UnrecognizedToken"; span: Span };
      }

      • Readonlycode: "UnrecognizedToken"

        The discriminant.

      • Readonlydetails: { code: "UnrecognizedToken"; span: Span }

        The payload of code.

        • Readonlycode: "UnrecognizedToken"

          The discriminant.

        • Readonlyspan: Span

          The token before the unrecognised text (an empty span at the start of the source).

    • Two items in a container with nothing between them.

      Parameters

      Returns DcborParseError & {
          code: "ExpectedComma";
          details: { code: "ExpectedComma"; span: Span };
      }

      • Readonlycode: "ExpectedComma"

        The discriminant.

      • Readonlydetails: { code: "ExpectedComma"; span: Span }

        The payload of code.

        • Readonlycode: "ExpectedComma"

          The discriminant.

        • Readonlyspan: Span

          The token found instead.

    • A map key not followed by a colon.

      Parameters

      Returns DcborParseError & {
          code: "ExpectedColon";
          details: { code: "ExpectedColon"; span: Span };
      }

      • Readonlycode: "ExpectedColon"

        The discriminant.

      • Readonlydetails: { code: "ExpectedColon"; span: Span }

        The payload of code.

        • Readonlycode: "ExpectedColon"

          The discriminant.

        • Readonlyspan: Span

          The token found instead, or the key when the source ended.

    • A tag's content not followed by ).

      Parameters

      Returns DcborParseError & {
          code: "UnmatchedParentheses";
          details: { code: "UnmatchedParentheses"; span: Span };
      }

      • Readonlycode: "UnmatchedParentheses"

        The discriminant.

      • Readonlydetails: { code: "UnmatchedParentheses"; span: Span }

        The payload of code.

        • Readonlycode: "UnmatchedParentheses"

          The discriminant.

        • Readonlyspan: Span

          The token found instead of ), or the last token when the source ended.

    • A map not closed before the end of the source.

      Parameters

      Returns DcborParseError & {
          code: "UnmatchedBraces";
          details: { code: "UnmatchedBraces"; span: Span };
      }

      • Readonlycode: "UnmatchedBraces"

        The discriminant.

      • Readonlydetails: { code: "UnmatchedBraces"; span: Span }

        The payload of code.

        • Readonlycode: "UnmatchedBraces"

          The discriminant.

        • Readonlyspan: Span

          The last token before the source ended.

    • A map entry without a value.

      Parameters

      Returns DcborParseError & {
          code: "ExpectedMapKey";
          details: { code: "ExpectedMapKey"; span: Span };
      }

      • Readonlycode: "ExpectedMapKey"

        The discriminant.

      • Readonlydetails: { code: "ExpectedMapKey"; span: Span }

        The payload of code.

        • Readonlycode: "ExpectedMapKey"

          The discriminant.

        • Readonlyspan: Span

          The } found where a value was expected.

    • A tag number outside the unsigned 64-bit range.

      Parameters

      • value: string
      • span: Span

      Returns DcborParseError & {
          code: "InvalidTagValue";
          details: { code: "InvalidTagValue"; span: Span; value: string };
      }

      • Readonlycode: "InvalidTagValue"

        The discriminant.

      • Readonlydetails: { code: "InvalidTagValue"; span: Span; value: string }

        The payload of code.

        • Readonlycode: "InvalidTagValue"

          The discriminant.

        • Readonlyspan: Span

          The digits.

        • Readonlyvalue: string

          The digits as written.

    • A tag name the tags store does not know.

      Parameters

      • name: string
      • span: Span

      Returns DcborParseError & {
          code: "UnknownTagName";
          details: { code: "UnknownTagName"; span: Span; name: string };
      }

      • Readonlycode: "UnknownTagName"

        The discriminant.

      • Readonlydetails: { code: "UnknownTagName"; span: Span; name: string }

        The payload of code.

        • Readonlycode: "UnknownTagName"

          The discriminant.

        • Readonlyspan: Span

          The name.

        • Readonlyname: string

          The name that did not resolve.

    • An h'…' literal with an odd number of digits.

      Parameters

      Returns DcborParseError & {
          code: "InvalidHexString";
          details: { code: "InvalidHexString"; span: Span };
      }

      • Readonlycode: "InvalidHexString"

        The discriminant.

      • Readonlydetails: { code: "InvalidHexString"; span: Span }

        The payload of code.

        • Readonlycode: "InvalidHexString"

          The discriminant.

        • Readonlyspan: Span

          The literal.

    • A b64'…' literal that is not canonical base64.

      Parameters

      Returns DcborParseError & {
          code: "InvalidBase64String";
          details: { code: "InvalidBase64String"; span: Span };
      }

      • Readonlycode: "InvalidBase64String"

        The discriminant.

      • Readonlydetails: { code: "InvalidBase64String"; span: Span }

        The payload of code.

        • Readonlycode: "InvalidBase64String"

          The discriminant.

        • Readonlyspan: Span

          The literal.

    • A UR whose type has no tag in the tags store.

      Parameters

      • urType: string
      • span: Span

      Returns DcborParseError & {
          code: "UnknownUrType";
          details: { code: "UnknownUrType"; span: Span; urType: string };
      }

      • Readonlycode: "UnknownUrType"

        The discriminant.

      • Readonlydetails: { code: "UnknownUrType"; span: Span; urType: string }

        The payload of code.

        • Readonlycode: "UnknownUrType"

          The discriminant.

        • Readonlyspan: Span

          The type inside the UR.

        • ReadonlyurType: string

          The UR type that did not resolve.

    • A UR the decoder rejects.

      Parameters

      • cause: string
      • span: Span

      Returns DcborParseError & {
          code: "InvalidUr";
          details: { code: "InvalidUr"; span: Span; cause: string };
      }

      • Readonlycode: "InvalidUr"

        The discriminant.

      • Readonlydetails: { code: "InvalidUr"; span: Span; cause: string }

        The payload of code.

        • Readonlycode: "InvalidUr"

          The discriminant.

        • Readonlyspan: Span

          The UR.

        • Readonlycause: string

          The UR decoder's reason.

    • A known-value number outside the unsigned 64-bit range.

      Parameters

      • value: string
      • span: Span

      Returns DcborParseError & {
          code: "InvalidKnownValue";
          details: { code: "InvalidKnownValue"; span: Span; value: string };
      }

      • Readonlycode: "InvalidKnownValue"

        The discriminant.

      • Readonlydetails: { code: "InvalidKnownValue"; span: Span; value: string }

        The payload of code.

        • Readonlycode: "InvalidKnownValue"

          The discriminant.

        • Readonlyspan: Span

          The digits inside the quotes.

        • Readonlyvalue: string

          The digits as written.

    • A known-value name the registry does not know.

      Parameters

      • name: string
      • span: Span

      Returns DcborParseError & {
          code: "UnknownKnownValueName";
          details: { code: "UnknownKnownValueName"; span: Span; name: string };
      }

      • Readonlycode: "UnknownKnownValueName"

        The discriminant.

      • Readonlydetails: { code: "UnknownKnownValueName"; span: Span; name: string }

        The payload of code.

        • Readonlycode: "UnknownKnownValueName"

          The discriminant.

        • Readonlyspan: Span

          The name inside the quotes.

        • Readonlyname: string

          The name that did not resolve.

    • A date literal that is not a valid instant.

      Parameters

      • dateString: string
      • span: Span

      Returns DcborParseError & {
          code: "InvalidDateString";
          details: { code: "InvalidDateString"; span: Span; dateString: string };
      }

      • Readonlycode: "InvalidDateString"

        The discriminant.

      • Readonlydetails: { code: "InvalidDateString"; span: Span; dateString: string }

        The payload of code.

        • Readonlycode: "InvalidDateString"

          The discriminant.

        • Readonlyspan: Span

          The literal.

        • ReadonlydateString: string

          The literal as written.

    • A map key that appears twice.

      Parameters

      Returns DcborParseError & {
          code: "DuplicateMapKey";
          details: { code: "DuplicateMapKey"; span: Span };
      }

      • Readonlycode: "DuplicateMapKey"

        The discriminant.

      • Readonlydetails: { code: "DuplicateMapKey"; span: Span }

        The payload of code.

        • Readonlycode: "DuplicateMapKey"

          The discriminant.

        • Readonlyspan: Span

          The second occurrence of the key.

    • A container or tag nested deeper than maxDepth.

      Parameters

      • maxDepth: number
      • span: Span

      Returns DcborParseError & {
          code: "NestingTooDeep";
          details: { code: "NestingTooDeep"; span: Span; maxDepth: number };
      }

      • Readonlycode: "NestingTooDeep"

        The discriminant.

      • Readonlydetails: { code: "NestingTooDeep"; span: Span; maxDepth: number }

        The payload of code.

        • Readonlycode: "NestingTooDeep"

          The discriminant.

        • Readonlyspan: Span

          The token that opened the level too many.

        • ReadonlymaxDepth: number

          The limit in force.