{"version":3,"file":"OpenId4VcModuleConfig.mjs","names":[],"sources":["../src/OpenId4VcModuleConfig.ts"],"sourcesContent":["import type { Express } from 'express'\n\nimport {\n  type InternalOpenId4VcIssuerModuleConfigOptions,\n  OpenId4VcIssuerModuleConfig,\n} from './openid4vc-issuer/OpenId4VcIssuerModuleConfig'\nimport {\n  type InternalOpenId4VcVerifierModuleConfigOptions,\n  OpenId4VcVerifierModuleConfig,\n} from './openid4vc-verifier/OpenId4VcVerifierModuleConfig'\nimport { importExpress } from './shared/router'\n\nexport type OpenId4VcIssuerModuleConfigOptions = Omit<InternalOpenId4VcIssuerModuleConfigOptions, 'app'>\nexport type OpenId4VcVerifierModuleConfigOptions = Omit<InternalOpenId4VcVerifierModuleConfigOptions, 'app'>\n\nexport type OpenId4VcModuleConfigOptions<\n  IssuerConfig extends OpenId4VcIssuerModuleConfigOptions | undefined | null = null,\n  VerifierConfig extends OpenId4VcVerifierModuleConfigOptions | undefined | null = null,\n> = {\n  /**\n   * Express app on which the openid4vc endpoints will be registered. If\n   * no app is provided and either the issuer or verifier modules is enabled\n   * a new one will be created.\n   *\n   * NOTE: you must manually start the server foryour express app and\n   * expose this on a public url that is reachable.\n   *\n   * NOTE: It is recommended that you register your middleware and routes\n   * AFTER the openid4vc routes are registered on the app. The openid4vc\n   * module ensures only the routes are listened to that are needed.\n   */\n  app?: Express\n} & (IssuerConfig extends null\n  ? { issuer?: OpenId4VcIssuerModuleConfigOptions }\n  : IssuerConfig extends undefined\n    ? { issuer?: undefined }\n    : { issuer: IssuerConfig }) &\n  (VerifierConfig extends null\n    ? { verifier?: OpenId4VcVerifierModuleConfigOptions }\n    : VerifierConfig extends undefined\n      ? { verifier?: undefined }\n      : { verifier: VerifierConfig })\n\nexport class OpenId4VcModuleConfig<\n  IssuerConfig extends OpenId4VcIssuerModuleConfigOptions | undefined | null = null,\n  VerifierConfig extends OpenId4VcVerifierModuleConfigOptions | undefined | null = null,\n> {\n  private options: OpenId4VcModuleConfigOptions<IssuerConfig, VerifierConfig>\n\n  public readonly app: IssuerConfig extends OpenId4VcIssuerModuleConfigOptions\n    ? Express\n    : VerifierConfig extends OpenId4VcVerifierModuleConfigOptions\n      ? Express\n      : undefined\n\n  public readonly issuer: IssuerConfig extends OpenId4VcVerifierModuleConfigOptions\n    ? OpenId4VcIssuerModuleConfig\n    : undefined\n  public readonly verifier: VerifierConfig extends OpenId4VcVerifierModuleConfigOptions\n    ? OpenId4VcVerifierModuleConfig\n    : undefined\n\n  public constructor(options?: OpenId4VcModuleConfigOptions<IssuerConfig, VerifierConfig>) {\n    this.options = options ?? ({} as OpenId4VcModuleConfigOptions<IssuerConfig, VerifierConfig>)\n\n    this.app = (this.options.app ||\n      (this.options.issuer || this.options.verifier ? importExpress()() : undefined)) as this['app']\n\n    this.issuer = (\n      this.options.issuer\n        ? new OpenId4VcIssuerModuleConfig({\n            ...this.options.issuer,\n            app: this.app as Express, // app is always defined if issuer options are defined,\n          })\n        : undefined\n    ) as this['issuer']\n    this.verifier = (\n      this.options.verifier\n        ? new OpenId4VcVerifierModuleConfig({\n            ...this.options.verifier,\n            app: this.app as Express, // app is always defined if issuer options are defined,\n          })\n        : undefined\n    ) as this['verifier']\n  }\n}\n"],"mappings":";;;;;;AA2CA,IAAa,wBAAb,MAGE;CAgBA,AAAO,YAAY,SAAsE;AACvF,OAAK,UAAU,WAAY,EAAE;AAE7B,OAAK,MAAO,KAAK,QAAQ,QACtB,KAAK,QAAQ,UAAU,KAAK,QAAQ,WAAW,eAAe,EAAE,GAAG;AAEtE,OAAK,SACH,KAAK,QAAQ,SACT,IAAI,4BAA4B;GAC9B,GAAG,KAAK,QAAQ;GAChB,KAAK,KAAK;GACX,CAAC,GACF;AAEN,OAAK,WACH,KAAK,QAAQ,WACT,IAAI,8BAA8B;GAChC,GAAG,KAAK,QAAQ;GAChB,KAAK,KAAK;GACX,CAAC,GACF"}