{"version":3,"file":"errors.mjs","names":["MessageError","Error","constructor","options","locale","id","restOptions","inLocale","cause","message","prototype","name","MissingTranslationError","NoLocaleError","MissingLocaleError","availableLocales","ParseError","MessageEvaluationError","MissingArgumentError","argName","ArgumentTypeError","expectedType","got"],"sources":["../src/errors.ts"],"sourcesContent":["/**\n * An error for a specific message. It is thrown when:\n *\n * - the message is missing,\n * - the message contains a syntax error, or\n * - the message cannot be evaluated with the supplied parameters.\n *\n * @since 0.1.7 (`@hi18n/core`)\n */\nexport class MessageError extends Error {\n  public override readonly cause: Error;\n  public readonly locale?: string | undefined;\n  public readonly id: string;\n  static {\n    this.prototype.name = \"MessageError\";\n  }\n  constructor(\n    options: ErrorOptions & {\n      cause: Error;\n      locale?: string | undefined;\n      id: string;\n    }\n  ) {\n    const { locale, id, ...restOptions } = options;\n\n    const inLocale = locale != null ? ` in ${locale}` : \"\";\n\n    super(\n      `Error translating ${id}${inLocale}: ${options.cause.message}`,\n      restOptions\n    );\n    this.locale = locale;\n    this.id = id;\n    this.cause ??= options.cause;\n  }\n}\n\n/**\n * Missing translation. Usually wrapped in {@link MessageError}.\n *\n * @since 0.1.7 (`@hi18n/core`)\n */\nexport class MissingTranslationError extends Error {\n  static {\n    this.prototype.name = \"MissingTranslationError\";\n  }\n  constructor(message = \"Missing translation\", options?: ErrorOptions) {\n    super(message, options);\n  }\n}\n\n/**\n * No locale specified.\n *\n * @since 0.1.7 (`@hi18n/core`)\n */\nexport class NoLocaleError extends Error {\n  static {\n    this.prototype.name = \"NoLocaleError\";\n  }\n  constructor(message = \"No locale specified\", options?: ErrorOptions) {\n    super(message, options);\n  }\n}\n\n/**\n * Locale is specified, but no such locale exists in the book.\n *\n * @since 0.1.7 (`@hi18n/core`)\n */\nexport class MissingLocaleError extends Error {\n  public readonly locale: string;\n  public readonly availableLocales: readonly string[];\n  static {\n    this.prototype.name = \"MissingLocaleError\";\n  }\n  constructor(\n    options: ErrorOptions & {\n      locale: string;\n      availableLocales: readonly string[];\n    }\n  ) {\n    const { locale, availableLocales, ...restOptions } = options;\n\n    super(`Missing locale: ${locale}`, restOptions);\n    this.locale = locale;\n    this.availableLocales = availableLocales;\n  }\n}\n\n/**\n * Parse error. Usually wrapped in {@link MessageError}.\n *\n * @since 0.1.7 (`@hi18n/core`)\n */\nexport class ParseError extends Error {\n  static {\n    this.prototype.name = \"ParseError\";\n  }\n}\n\n/**\n * An error during evaluating messages. Usually wrapped in {@link MessageError}.\n *\n * @since 0.1.7 (`@hi18n/core`)\n */\nexport class MessageEvaluationError extends Error {\n  static {\n    this.prototype.name = \"MessageEvaluationError\";\n  }\n}\n\n/**\n * Missing translation argument. Usually wrapped in {@link MessageError}.\n *\n * @since 0.1.7 (`@hi18n/core`)\n */\nexport class MissingArgumentError extends MessageEvaluationError {\n  public readonly argName: string | number;\n  static {\n    this.prototype.name = \"MissingArgumentError\";\n  }\n  constructor(\n    options: ErrorOptions & {\n      argName: string | number;\n    }\n  ) {\n    const { argName, ...restOptions } = options;\n    super(`Missing argument: ${argName}`, restOptions);\n    this.argName = argName;\n  }\n}\n\n/**\n * Translation argument type mismatch. Usually wrapped in {@link MessageError}.\n *\n * @since 0.1.7 (`@hi18n/core`)\n */\nexport class ArgumentTypeError extends MessageEvaluationError {\n  public readonly argName: string | number;\n  public readonly expectedType: string;\n  public readonly got: unknown;\n  static {\n    this.prototype.name = \"ArgumentTypeError\";\n  }\n  constructor(\n    options: ErrorOptions & {\n      argName: string | number;\n      expectedType: string;\n      got: unknown;\n    }\n  ) {\n    const { argName, expectedType, got, ...restOptions } = options;\n    super(\n      // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n      `Invalid argument ${argName}: expected ${expectedType}, got ${got}`,\n      restOptions\n    );\n    this.argName = argName;\n    this.expectedType = expectedType;\n    this.got = got;\n  }\n}\n"],"mappings":"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"}