{"version":3,"file":"OpenBadgeCredentialRecord.mjs","names":["credentialId: string | undefined","issuerId: string | undefined","subjectId: string | undefined"],"sources":["../../src/repository/OpenBadgeCredentialRecord.ts"],"sourcesContent":["import type { TagsBase } from '@credo-ts/core'\nimport { BaseRecord, utils } from '@credo-ts/core'\n\nexport type DefaultOpenBadgeCredentialTags = {\n  credentialId?: string\n  issuerId?: string\n  subjectId?: string\n  status?: 'valid' | 'revoked' | 'expired' | 'unknown'\n  sourceUrl?: string\n}\n\nexport type CustomOpenBadgeCredentialTags = TagsBase\n\nexport type OpenBadgeCredentialRecordProps = {\n  id?: string\n  createdAt?: Date\n  updatedAt?: Date\n  credential?: unknown // raw JSON-LD credential\n  jwt?: string // optional VC-JWT\n  derived?: {\n    title?: string\n    description?: string\n    issuerName?: string\n    issuedOn?: string\n    image?: string\n  }\n  status?: 'valid' | 'revoked' | 'expired' | 'unknown'\n  sourceUrl?: string\n  tags?: CustomOpenBadgeCredentialTags\n}\n\nexport class OpenBadgeCredentialRecord\n  extends BaseRecord<DefaultOpenBadgeCredentialTags, CustomOpenBadgeCredentialTags>\n  implements OpenBadgeCredentialRecordProps\n{\n  public credential?: unknown\n  public jwt?: string\n  public derived?: { title?: string; description?: string; issuerName?: string; issuedOn?: string; image?: string }\n  public status?: 'valid' | 'revoked' | 'expired' | 'unknown'\n  public sourceUrl?: string\n\n  public static readonly type = 'OpenBadgeCredentialRecord'\n  public readonly type = OpenBadgeCredentialRecord.type\n\n  public constructor(props?: OpenBadgeCredentialRecordProps) {\n    super()\n    if (props) {\n      this.id = props.id ?? utils.uuid()\n      this.createdAt = props.createdAt ?? new Date()\n      this.updatedAt = props.updatedAt ?? new Date()\n      this.credential = props.credential\n      this.jwt = props.jwt\n      this.derived = props.derived\n      this.status = props.status\n      this.sourceUrl = props.sourceUrl\n      this._tags = props.tags ?? {}\n    } else {\n      this.id = utils.uuid()\n      this.createdAt = new Date()\n      this.updatedAt = new Date()\n      this._tags = {}\n    }\n  }\n\n  public getTags(): DefaultOpenBadgeCredentialTags {\n    // Extract minimal tags from credential if present\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    const cred = this.credential as any\n    const credentialId: string | undefined = cred?.id\n    const issuerId: string | undefined = cred?.issuer?.id ?? cred?.issuer\n    const subjectId: string | undefined = cred?.credentialSubject?.id\n\n    return {\n      ...this._tags,\n      credentialId,\n      issuerId,\n      subjectId,\n      status: this.status,\n      sourceUrl: this.sourceUrl,\n    }\n  }\n}\n\n\n"],"mappings":";;;AA+BA,IAAa,4BAAb,MAAa,kCACH,WAEV;CAUE,AAAO,YAAY,OAAwC;AACzD,SAAO;OAHO,OAAO,0BAA0B;AAI/C,MAAI,OAAO;AACT,QAAK,KAAK,MAAM,MAAM,MAAM,MAAM;AAClC,QAAK,YAAY,MAAM,6BAAa,IAAI,MAAM;AAC9C,QAAK,YAAY,MAAM,6BAAa,IAAI,MAAM;AAC9C,QAAK,aAAa,MAAM;AACxB,QAAK,MAAM,MAAM;AACjB,QAAK,UAAU,MAAM;AACrB,QAAK,SAAS,MAAM;AACpB,QAAK,YAAY,MAAM;AACvB,QAAK,QAAQ,MAAM,QAAQ,EAAE;SACxB;AACL,QAAK,KAAK,MAAM,MAAM;AACtB,QAAK,4BAAY,IAAI,MAAM;AAC3B,QAAK,4BAAY,IAAI,MAAM;AAC3B,QAAK,QAAQ,EAAE;;;CAInB,AAAO,UAA0C;EAG/C,MAAM,OAAO,KAAK;EAClB,MAAMA,eAAmC,MAAM;EAC/C,MAAMC,WAA+B,MAAM,QAAQ,MAAM,MAAM;EAC/D,MAAMC,YAAgC,MAAM,mBAAmB;AAE/D,SAAO;GACL,GAAG,KAAK;GACR;GACA;GACA;GACA,QAAQ,KAAK;GACb,WAAW,KAAK;GACjB;;;0BAtCoB,OAAO"}