{"version":3,"file":"UserLogRecordProcessor.cjs","names":["ATTR_USER_ID"],"sources":["../../../src/processors/UserLogRecordProcessor/UserLogRecordProcessor.ts"],"sourcesContent":["import type { LogRecordProcessor, SdkLogRecord } from '@opentelemetry/sdk-logs';\nimport { ATTR_USER_ID } from '@opentelemetry/semantic-conventions/incubating';\nimport type { UserManager } from '../../api-users/index.ts';\nimport type { UserLogRecordProcessorArgs } from './types.ts';\n\n/**\n * UserLogRecordProcessor sets the userId attribute on all log records if the userId is set in the UserManager.\n */\nexport class UserLogRecordProcessor implements LogRecordProcessor {\n  private readonly _userManager: UserManager;\n\n  public constructor({ userManager }: UserLogRecordProcessorArgs) {\n    this._userManager = userManager;\n  }\n\n  // no-op\n  public forceFlush(): Promise<void> {\n    return Promise.resolve(undefined);\n  }\n\n  public onEmit(logRecord: SdkLogRecord) {\n    const userId = this._userManager.getUserId();\n\n    if (userId) {\n      logRecord.setAttributes({\n        [ATTR_USER_ID]: this._userManager.getUserId(),\n      });\n    }\n  }\n\n  // no-op\n  public shutdown(): Promise<void> {\n    return Promise.resolve(undefined);\n  }\n}\n"],"mappings":";;;;;;;AAQA,IAAa,yBAAb,MAAkE;CAChE;CAEA,YAAmB,EAAE,eAA2C;AAC9D,OAAK,eAAe;;CAItB,aAAmC;AACjC,SAAO,QAAQ,QAAQ,KAAA,EAAU;;CAGnC,OAAc,WAAyB;AAGrC,MAFe,KAAK,aAAa,WAAW,CAG1C,WAAU,cAAc,GACrBA,+CAAAA,eAAe,KAAK,aAAa,WAAW,EAC9C,CAAC;;CAKN,WAAiC;AAC/B,SAAO,QAAQ,QAAQ,KAAA,EAAU"}