@blockchaincommons/dcbor-pattern - v1.0.0-beta.2
    Preparing search index...

    Class DcborPatternError

    Thrown by parsePattern and parsePatternPartial (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 {
    parsePattern("[1, 2");
    } catch (e) {
    if (DcborPatternError.isDcborPatternError(e) && e.code === "ExpectedCloseBracket") {
    e.details.span; // the end of the source, where the bracket was required
    }
    }

    Hierarchy

    • Error
      • DcborPatternError
    Index
    name: "DcborPatternError"

    Always "DcborPatternError"; the cross-copy identity DcborPatternError.isDcborPatternError 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 DcborPatternError, including one from another copy of this package.

      Parameters

      • value: unknown

      Returns value is
          | DcborPatternError & {
              code: "EmptyInput";
              details: { code: "EmptyInput" };
          }
          | DcborPatternError & {
              code: "UnexpectedEndOfInput";
              details: { code: "UnexpectedEndOfInput" };
          }
          | DcborPatternError & {
              code: "ExtraData";
              details: { code: "ExtraData"; span: Span };
          }
          | DcborPatternError & {
              code: "UnexpectedToken";
              details: {
                  code: "UnexpectedToken";
                  span: Span;
                  kind: TokenKind;
                  text: string;
              };
          }
          | DcborPatternError & {
              code: "UnrecognizedToken";
              details: { code: "UnrecognizedToken"; span: Span };
          }
          | DcborPatternError & {
              code: "InvalidRegex";
              details: { code: "InvalidRegex"; span: Span };
          }
          | DcborPatternError & {
              code: "UnterminatedRegex";
              details: { code: "UnterminatedRegex"; span: Span };
          }
          | DcborPatternError & {
              code: "UnterminatedString";
              details: { code: "UnterminatedString"; span: Span };
          }
          | DcborPatternError & {
              code: "InvalidRange";
              details: { code: "InvalidRange"; span: Span };
          }
          | DcborPatternError & {
              code: "InvalidHexString";
              details: { code: "InvalidHexString"; span: Span };
          }
          | DcborPatternError & {
              code: "UnterminatedHexString";
              details: { code: "UnterminatedHexString"; span: Span };
          }
          | DcborPatternError & {
              code: "InvalidDateFormat";
              details: { code: "InvalidDateFormat"; span: Span };
          }
          | DcborPatternError & {
              code: "InvalidNumberFormat";
              details: { code: "InvalidNumberFormat"; span: Span };
          }
          | DcborPatternError & {
              code: "InvalidUr";
              details: { code: "InvalidUr"; span: Span; cause: string };
          }
          | DcborPatternError & {
              code: "ExpectedOpenParen";
              details: { code: "ExpectedOpenParen"; span: Span };
          }
          | DcborPatternError & {
              code: "ExpectedCloseParen";
              details: { code: "ExpectedCloseParen"; span: Span };
          }
          | DcborPatternError & {
              code: "ExpectedCloseBracket";
              details: { code: "ExpectedCloseBracket"; span: Span };
          }
          | DcborPatternError & {
              code: "ExpectedCloseBrace";
              details: { code: "ExpectedCloseBrace"; span: Span };
          }
          | DcborPatternError & {
              code: "ExpectedColon";
              details: { code: "ExpectedColon"; span: Span };
          }
          | DcborPatternError & {
              code: "ExpectedPattern";
              details: { code: "ExpectedPattern"; span: Span };
          }
          | DcborPatternError & {
              code: "UnmatchedParentheses";
              details: { code: "UnmatchedParentheses"; span: Span };
          }
          | DcborPatternError & {
              code: "UnmatchedBraces";
              details: { code: "UnmatchedBraces"; span: Span };
          }
          | DcborPatternError & {
              code: "InvalidCaptureGroupName";
              details: { code: "InvalidCaptureGroupName"; span: Span; name: string };
          }
          | DcborPatternError & {
              code: "InvalidDigestPattern";
              details: { code: "InvalidDigestPattern"; span: Span; reason: string };
          }
          | DcborPatternError & {
              code: "UnterminatedDigestQuoted";
              details: { code: "UnterminatedDigestQuoted"; span: Span };
          }
          | DcborPatternError & {
              code: "UnterminatedDateQuoted";
              details: { code: "UnterminatedDateQuoted"; span: Span };
          }
          | DcborPatternError & {
              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 is empty.

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

      • Readonlycode: "EmptyInput"

        The discriminant.

      • Readonlydetails: { code: "EmptyInput" }

        The payload of code.

        • Readonlycode: "EmptyInput"

          The discriminant.

    • The source ended inside a pattern.

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

      • Readonlycode: "UnexpectedEndOfInput"

        The discriminant.

      • Readonlydetails: { code: "UnexpectedEndOfInput" }

        The payload of code.

        • Readonlycode: "UnexpectedEndOfInput"

          The discriminant.

    • Text follows the pattern.

      Parameters

      Returns DcborPatternError & {
          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 text after the pattern.

    • A token that cannot start or continue a pattern here.

      Parameters

      Returns DcborPatternError & {
          code: "UnexpectedToken";
          details: {
              code: "UnexpectedToken";
              span: Span;
              kind: TokenKind;
              text: string;
          };
      }

      • Readonlycode: "UnexpectedToken"

        The discriminant.

      • Readonlydetails: { code: "UnexpectedToken"; span: Span; kind: TokenKind; text: string }

        The payload of code.

        • Readonlycode: "UnexpectedToken"

          The discriminant.

        • Readonlyspan: Span

          The token.

        • Readonlykind: TokenKind

          The kind of the token found.

        • Readonlytext: string

          The token's source text.

    • Text no token matches.

      Parameters

      Returns DcborPatternError & {
          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

          What a single-pass scanner reads before giving up: a keyword's prefix, a bare @, or one code point.

    • A regex the dialect does not accept.

      Parameters

      Returns DcborPatternError & {
          code: "InvalidRegex";
          details: { code: "InvalidRegex"; span: Span };
      }

      • Readonlycode: "InvalidRegex"

        The discriminant.

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

        The payload of code.

        • Readonlycode: "InvalidRegex"

          The discriminant.

        • Readonlyspan: Span

          The regex literal.

    • A /regex/ without its closing slash.

      Parameters

      Returns DcborPatternError & {
          code: "UnterminatedRegex";
          details: { code: "UnterminatedRegex"; span: Span };
      }

      • Readonlycode: "UnterminatedRegex"

        The discriminant.

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

        The payload of code.

        • Readonlycode: "UnterminatedRegex"

          The discriminant.

        • Readonlyspan: Span

          The opening / or h'/.

    • A string literal without its closing quote.

      Parameters

      Returns DcborPatternError & {
          code: "UnterminatedString";
          details: { code: "UnterminatedString"; span: Span };
      }

      • Readonlycode: "UnterminatedString"

        The discriminant.

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

        The payload of code.

        • Readonlycode: "UnterminatedString"

          The discriminant.

        • Readonlyspan: Span

          The opening quote.

    • A {n,m} range that is not one, or with n above m.

      Parameters

      Returns DcborPatternError & {
          code: "InvalidRange";
          details: { code: "InvalidRange"; span: Span };
      }

      • Readonlycode: "InvalidRange"

        The discriminant.

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

        The payload of code.

        • Readonlycode: "InvalidRange"

          The discriminant.

        • Readonlyspan: Span

          The {, or the whole range when its bounds are inverted.

    • A hex literal that is not even-length hex.

      Parameters

      Returns DcborPatternError & {
          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 h' of an h'…' literal, or the whole digest'…' literal.

    • An h'…' literal without its closing quote.

      Parameters

      Returns DcborPatternError & {
          code: "UnterminatedHexString";
          details: { code: "UnterminatedHexString"; span: Span };
      }

      • Readonlycode: "UnterminatedHexString"

        The discriminant.

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

        The payload of code.

        • Readonlycode: "UnterminatedHexString"

          The discriminant.

        • Readonlyspan: Span

          The opening h'.

    • A date'…' body that is not a date, a range of dates, or a regex.

      Parameters

      Returns DcborPatternError & {
          code: "InvalidDateFormat";
          details: { code: "InvalidDateFormat"; span: Span };
      }

      • Readonlycode: "InvalidDateFormat"

        The discriminant.

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

        The payload of code.

        • Readonlycode: "InvalidDateFormat"

          The discriminant.

        • Readonlyspan: Span

          The literal.

    • A number literal dCBOR does not read.

      Parameters

      Returns DcborPatternError & {
          code: "InvalidNumberFormat";
          details: { code: "InvalidNumberFormat"; span: Span };
      }

      • Readonlycode: "InvalidNumberFormat"

        The discriminant.

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

        The payload of code.

        • Readonlycode: "InvalidNumberFormat"

          The discriminant.

        • Readonlyspan: Span

          The literal.

    • A digest'ur:…' body the UR decoder rejects.

      Parameters

      • cause: string
      • range: Span

      Returns DcborPatternError & {
          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 literal.

        • Readonlycause: string

          The UR decoder's reason.

    • An opening parenthesis was required.

      Parameters

      Returns DcborPatternError & {
          code: "ExpectedOpenParen";
          details: { code: "ExpectedOpenParen"; span: Span };
      }

      • Readonlycode: "ExpectedOpenParen"

        The discriminant.

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

        The payload of code.

        • Readonlycode: "ExpectedOpenParen"

          The discriminant.

        • Readonlyspan: Span

          Never raised.

    • A closing parenthesis was required.

      Parameters

      Returns DcborPatternError & {
          code: "ExpectedCloseParen";
          details: { code: "ExpectedCloseParen"; span: Span };
      }

      • Readonlycode: "ExpectedCloseParen"

        The discriminant.

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

        The payload of code.

        • Readonlycode: "ExpectedCloseParen"

          The discriminant.

        • Readonlyspan: Span

          The end of the source.

    • A closing bracket was required.

      Parameters

      Returns DcborPatternError & {
          code: "ExpectedCloseBracket";
          details: { code: "ExpectedCloseBracket"; span: Span };
      }

      • Readonlycode: "ExpectedCloseBracket"

        The discriminant.

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

        The payload of code.

        • Readonlycode: "ExpectedCloseBracket"

          The discriminant.

        • Readonlyspan: Span

          The end of the source.

    • A closing brace was required.

      Parameters

      Returns DcborPatternError & {
          code: "ExpectedCloseBrace";
          details: { code: "ExpectedCloseBrace"; span: Span };
      }

      • Readonlycode: "ExpectedCloseBrace"

        The discriminant.

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

        The payload of code.

        • Readonlycode: "ExpectedCloseBrace"

          The discriminant.

        • Readonlyspan: Span

          The end of the source.

    • A colon was required between a map key and its value.

      Parameters

      Returns DcborPatternError & {
          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 end of the source.

    • A pattern was required after an operator.

      Parameters

      Returns DcborPatternError & {
          code: "ExpectedPattern";
          details: { code: "ExpectedPattern"; span: Span };
      }

      • Readonlycode: "ExpectedPattern"

        The discriminant.

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

        The payload of code.

        • Readonlycode: "ExpectedPattern"

          The discriminant.

        • Readonlyspan: Span

          Never raised.

    • Parentheses that do not pair.

      Parameters

      Returns DcborPatternError & {
          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

          Never raised.

    • Braces that do not pair.

      Parameters

      Returns DcborPatternError & {
          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

          Never raised.

    • A capture name that is not an identifier.

      Parameters

      • name: string
      • range: Span

      Returns DcborPatternError & {
          code: "InvalidCaptureGroupName";
          details: { code: "InvalidCaptureGroupName"; span: Span; name: string };
      }

      • Readonlycode: "InvalidCaptureGroupName"

        The discriminant.

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

        The payload of code.

        • Readonlycode: "InvalidCaptureGroupName"

          The discriminant.

        • Readonlyspan: Span

          Never raised.

        • Readonlyname: string

          The name as written.

    • A digest'…' body that is neither a UR, a regex nor a hex prefix.

      Parameters

      • reason: string
      • range: Span

      Returns DcborPatternError & {
          code: "InvalidDigestPattern";
          details: { code: "InvalidDigestPattern"; span: Span; reason: string };
      }

      • Readonlycode: "InvalidDigestPattern"

        The discriminant.

      • Readonlydetails: { code: "InvalidDigestPattern"; span: Span; reason: string }

        The payload of code.

        • Readonlycode: "InvalidDigestPattern"

          The discriminant.

        • Readonlyspan: Span

          The literal.

        • Readonlyreason: string

          The body as written, or empty content.

    • A digest'…' literal without its closing quote.

      Parameters

      Returns DcborPatternError & {
          code: "UnterminatedDigestQuoted";
          details: { code: "UnterminatedDigestQuoted"; span: Span };
      }

      • Readonlycode: "UnterminatedDigestQuoted"

        The discriminant.

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

        The payload of code.

        • Readonlycode: "UnterminatedDigestQuoted"

          The discriminant.

        • Readonlyspan: Span

          The opening digest'.

    • A date'…' literal without its closing quote.

      Parameters

      Returns DcborPatternError & {
          code: "UnterminatedDateQuoted";
          details: { code: "UnterminatedDateQuoted"; span: Span };
      }

      • Readonlycode: "UnterminatedDateQuoted"

        The discriminant.

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

        The payload of code.

        • Readonlycode: "UnterminatedDateQuoted"

          The discriminant.

        • Readonlyspan: Span

          The opening date'.

    • A pattern nested deeper than a given maxDepth.

      Parameters

      • maxDepth: number
      • range: Span

      Returns DcborPatternError & {
          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.