{"version":3,"file":"di-error.mjs","names":["DIErrorCode","DIError","Error","context","code","message","name","factoryNotFound","factoryTokenNotResolved","token","toString","instanceNotFound","instanceDestroying","unknown","parent","circularDependency","cycle","cycleStr","join","tokenValidationError","schema","value","tokenSchemaRequiredError","classNotInjectable","className","scopeMismatchError","expectedScope","actualScope","priorityConflictError","records","storageError","operation","instanceName","initializationError","serviceName","error","dependencyResolutionError","dependencyName"],"sources":["../../../src/errors/di-error.mts"],"sourcesContent":["import type { InjectionTokenSchemaType } from '../token/injection-token.mjs'\nimport type { FactoryRecord } from '../token/registry.mjs'\n\nexport enum DIErrorCode {\n  FactoryNotFound = 'FactoryNotFound',\n  FactoryTokenNotResolved = 'FactoryTokenNotResolved',\n  InstanceNotFound = 'InstanceNotFound',\n  InstanceDestroying = 'InstanceDestroying',\n  CircularDependency = 'CircularDependency',\n  TokenValidationError = 'TokenValidationError',\n  TokenSchemaRequiredError = 'TokenSchemaRequiredError',\n  ClassNotInjectable = 'ClassNotInjectable',\n  ScopeMismatchError = 'ScopeMismatchError',\n  PriorityConflictError = 'PriorityConflictError',\n  StorageError = 'StorageError',\n  InitializationError = 'InitializationError',\n  DependencyResolutionError = 'DependencyResolutionError',\n  UnknownError = 'UnknownError',\n}\n\nexport class DIError extends Error {\n  public readonly context?: Record<string, unknown>\n\n  constructor(\n    public readonly code: DIErrorCode,\n    public readonly message: string,\n    context?: Record<string, unknown>,\n  ) {\n    super(message)\n    this.context = context\n    this.name = 'DIError'\n  }\n\n  // Static factory methods for common error types\n  static factoryNotFound(name: string): DIError {\n    return new DIError(\n      DIErrorCode.FactoryNotFound,\n      `Factory ${name} not found`,\n      { name },\n    )\n  }\n\n  static factoryTokenNotResolved(token: string | symbol | unknown): DIError {\n    return new DIError(\n      DIErrorCode.FactoryTokenNotResolved,\n      `Factory token not resolved: ${token?.toString() ?? 'unknown'}`,\n      { token },\n    )\n  }\n\n  static instanceNotFound(name: string): DIError {\n    return new DIError(\n      DIErrorCode.InstanceNotFound,\n      `Instance ${name} not found`,\n      { name },\n    )\n  }\n\n  static instanceDestroying(name: string): DIError {\n    return new DIError(\n      DIErrorCode.InstanceDestroying,\n      `Instance ${name} destroying`,\n      { name },\n    )\n  }\n\n  static unknown(\n    message: string | Error,\n    context?: Record<string, unknown>,\n  ): DIError {\n    if (message instanceof Error) {\n      return new DIError(DIErrorCode.UnknownError, message.message, {\n        ...context,\n        parent: message,\n      })\n    }\n    return new DIError(DIErrorCode.UnknownError, message, context)\n  }\n\n  static circularDependency(cycle: string[]): DIError {\n    const cycleStr = cycle.join(' -> ')\n    return new DIError(\n      DIErrorCode.CircularDependency,\n      `Circular dependency detected: ${cycleStr}`,\n      { cycle },\n    )\n  }\n\n  static tokenValidationError(\n    message: string,\n    schema: InjectionTokenSchemaType | undefined,\n    value: unknown,\n  ): DIError {\n    return new DIError(DIErrorCode.TokenValidationError, message, {\n      schema,\n      value,\n    })\n  }\n\n  static tokenSchemaRequiredError(token: string | symbol | unknown): DIError {\n    return new DIError(\n      DIErrorCode.TokenSchemaRequiredError,\n      `Token ${token?.toString() ?? 'unknown'} requires schema arguments and cannot be used with addInstance. Use BoundInjectionToken or provide arguments when resolving.`,\n      { token },\n    )\n  }\n\n  static classNotInjectable(className: string): DIError {\n    return new DIError(\n      DIErrorCode.ClassNotInjectable,\n      `Class ${className} is not decorated with @Injectable.`,\n      { className },\n    )\n  }\n\n  static scopeMismatchError(\n    token: string | symbol | unknown,\n    expectedScope: string,\n    actualScope: string,\n  ): DIError {\n    return new DIError(\n      DIErrorCode.ScopeMismatchError,\n      `Scope mismatch for ${token?.toString() ?? 'unknown'}: expected ${expectedScope}, got ${actualScope}`,\n      { token, expectedScope, actualScope },\n    )\n  }\n\n  static priorityConflictError(\n    token: string | symbol | unknown,\n    records: FactoryRecord[],\n  ): DIError {\n    return new DIError(\n      DIErrorCode.PriorityConflictError,\n      `Priority conflict for ${token?.toString() ?? 'unknown'}: multiple bindings with same priority`,\n      { token, records },\n    )\n  }\n\n  static storageError(\n    message: string,\n    operation: string,\n    instanceName?: string,\n  ): DIError {\n    return new DIError(DIErrorCode.StorageError, `Storage error: ${message}`, {\n      operation,\n      instanceName,\n    })\n  }\n\n  static initializationError(\n    serviceName: string,\n    error: Error | string,\n  ): DIError {\n    return new DIError(\n      DIErrorCode.InitializationError,\n      `Service ${serviceName} initialization failed: ${error instanceof Error ? error.message : error}`,\n      { serviceName, error },\n    )\n  }\n\n  static dependencyResolutionError(\n    serviceName: string,\n    dependencyName: string,\n    error: Error | string,\n  ): DIError {\n    return new DIError(\n      DIErrorCode.DependencyResolutionError,\n      `Failed to resolve dependency ${dependencyName} for service ${serviceName}: ${error instanceof Error ? error.message : error}`,\n      { serviceName, dependencyName, error },\n    )\n  }\n}\n"],"mappings":";AAGA,IAAO,cAAKA,yBAAAA,eAAAA;;;;;;;;;;;;;;;QAAAA;;AAiBZ,IAAaC,UAAb,MAAaA,gBAAgBC,MAAAA;;;CACXC;CAEhB,YACE,MACA,SACAA,SACA;AACA,QAAME,QAAAA,EAAAA,KAJUD,OAAAA,MAAAA,KACAC,UAAAA;AAIhB,OAAKF,UAAUA;AACf,OAAKG,OAAO;;CAId,OAAOC,gBAAgBD,MAAuB;AAC5C,SAAO,IAAIL,QAAAA,mBAET,WAAWK,KAAK,aAChB,EAAEA,MAAK,CAAA;;CAIX,OAAOE,wBAAwBC,OAA2C;AACxE,SAAO,IAAIR,QAAAA,2BAET,+BAA+BQ,OAAOC,UAAAA,IAAc,aACpD,EAAED,OAAM,CAAA;;CAIZ,OAAOE,iBAAiBL,MAAuB;AAC7C,SAAO,IAAIL,QAAAA,oBAET,YAAYK,KAAK,aACjB,EAAEA,MAAK,CAAA;;CAIX,OAAOM,mBAAmBN,MAAuB;AAC/C,SAAO,IAAIL,QAAAA,sBAET,YAAYK,KAAK,cACjB,EAAEA,MAAK,CAAA;;CAIX,OAAOO,QACLR,SACAF,SACS;AACT,MAAIE,mBAAmBH,MACrB,QAAO,IAAID,QAAAA,gBAAkCI,QAAQA,SAAS;GAC5D,GAAGF;GACHW,QAAQT;GACV,CAAA;AAEF,SAAO,IAAIJ,QAAAA,gBAAkCI,SAASF,QAAAA;;CAGxD,OAAOY,mBAAmBC,OAA0B;AAElD,SAAO,IAAIf,QAAAA,sBAET,iCAHee,MAAME,KAAK,OAAA,IAI1B,EAAEF,OAAM,CAAA;;CAIZ,OAAOG,qBACLd,SACAe,QACAC,OACS;AACT,SAAO,IAAIpB,QAAAA,wBAA0CI,SAAS;GAC5De;GACAC;GACF,CAAA;;CAGF,OAAOC,yBAAyBb,OAA2C;AACzE,SAAO,IAAIR,QAAAA,4BAET,SAASQ,OAAOC,UAAAA,IAAc,UAAU,+HACxC,EAAED,OAAM,CAAA;;CAIZ,OAAOc,mBAAmBC,WAA4B;AACpD,SAAO,IAAIvB,QAAAA,sBAET,SAASuB,UAAU,sCACnB,EAAEA,WAAU,CAAA;;CAIhB,OAAOC,mBACLhB,OACAiB,eACAC,aACS;AACT,SAAO,IAAI1B,QAAAA,sBAET,sBAAsBQ,OAAOC,UAAAA,IAAc,UAAU,aAAagB,cAAc,QAAQC,eACxF;GAAElB;GAAOiB;GAAeC;GAAY,CAAA;;CAIxC,OAAOC,sBACLnB,OACAoB,SACS;AACT,SAAO,IAAI5B,QAAAA,yBAET,yBAAyBQ,OAAOC,UAAAA,IAAc,UAAU,yCACxD;GAAED;GAAOoB;GAAQ,CAAA;;CAIrB,OAAOC,aACLzB,SACA0B,WACAC,cACS;AACT,SAAO,IAAI/B,QAAAA,gBAAkC,kBAAkBI,WAAW;GACxE0B;GACAC;GACF,CAAA;;CAGF,OAAOC,oBACLC,aACAC,OACS;AACT,SAAO,IAAIlC,QAAAA,uBAET,WAAWiC,YAAY,0BAA0BC,iBAAiBjC,QAAQiC,MAAM9B,UAAU8B,SAC1F;GAAED;GAAaC;GAAM,CAAA;;CAIzB,OAAOC,0BACLF,aACAG,gBACAF,OACS;AACT,SAAO,IAAIlC,QAAAA,6BAET,gCAAgCoC,eAAe,eAAeH,YAAY,IAAIC,iBAAiBjC,QAAQiC,MAAM9B,UAAU8B,SACvH;GAAED;GAAaG;GAAgBF;GAAM,CAAA"}