{"version":3,"sources":["../../src/common/consumerRegistry.ts"],"sourcesContent":["import { ApitallyConsumer } from \"./types.js\";\n\nexport const consumerFromStringOrObject = (\n  consumer: ApitallyConsumer | string,\n) => {\n  if (typeof consumer === \"string\") {\n    consumer = String(consumer).trim().substring(0, 128);\n    return consumer ? { identifier: consumer } : null;\n  } else {\n    consumer.identifier = String(consumer.identifier).trim().substring(0, 128);\n    consumer.name = consumer.name?.trim().substring(0, 64);\n    consumer.group = consumer.group?.trim().substring(0, 64);\n    return consumer.identifier ? consumer : null;\n  }\n};\n\nexport default class ConsumerRegistry {\n  private consumers: Map<string, ApitallyConsumer>;\n  private updated: Set<string>;\n\n  constructor() {\n    this.consumers = new Map();\n    this.updated = new Set();\n  }\n\n  public addOrUpdateConsumer(consumer?: ApitallyConsumer | null) {\n    if (!consumer || (!consumer.name && !consumer.group)) {\n      return;\n    }\n    const existing = this.consumers.get(consumer.identifier);\n    if (!existing) {\n      this.consumers.set(consumer.identifier, consumer);\n      this.updated.add(consumer.identifier);\n    } else {\n      if (consumer.name && consumer.name !== existing.name) {\n        existing.name = consumer.name;\n        this.updated.add(consumer.identifier);\n      }\n      if (consumer.group && consumer.group !== existing.group) {\n        existing.group = consumer.group;\n        this.updated.add(consumer.identifier);\n      }\n    }\n  }\n\n  public getAndResetUpdatedConsumers() {\n    const data: Array<ApitallyConsumer> = [];\n    this.updated.forEach((identifier) => {\n      const consumer = this.consumers.get(identifier);\n      if (consumer) {\n        data.push(consumer);\n      }\n    });\n    this.updated.clear();\n    return data;\n  }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAEA;;;;;;AAAO,MAAMA,6BAA6B,wBACxCC,aAAAA;AADF;AAGE,MAAI,OAAOA,aAAa,UAAU;AAChCA,eAAWC,OAAOD,QAAAA,EAAUE,KAAI,EAAGC,UAAU,GAAG,GAAA;AAChD,WAAOH,WAAW;MAAEI,YAAYJ;IAAS,IAAI;EAC/C,OAAO;AACLA,aAASI,aAAaH,OAAOD,SAASI,UAAU,EAAEF,KAAI,EAAGC,UAAU,GAAG,GAAA;AACtEH,aAASK,QAAOL,cAASK,SAATL,mBAAeE,OAAOC,UAAU,GAAG;AACnDH,aAASM,SAAQN,cAASM,UAATN,mBAAgBE,OAAOC,UAAU,GAAG;AACrD,WAAOH,SAASI,aAAaJ,WAAW;EAC1C;AACF,GAZ0C;AAc1C,MAAqBO,oBAArB,MAAqBA,kBAAAA;EACXC;EACAC;EAER,cAAc;AACZ,SAAKD,YAAY,oBAAIE,IAAAA;AACrB,SAAKD,UAAU,oBAAIE,IAAAA;EACrB;EAEOC,oBAAoBZ,UAAoC;AAC7D,QAAI,CAACA,YAAa,CAACA,SAASK,QAAQ,CAACL,SAASM,OAAQ;AACpD;IACF;AACA,UAAMO,WAAW,KAAKL,UAAUM,IAAId,SAASI,UAAU;AACvD,QAAI,CAACS,UAAU;AACb,WAAKL,UAAUO,IAAIf,SAASI,YAAYJ,QAAAA;AACxC,WAAKS,QAAQO,IAAIhB,SAASI,UAAU;IACtC,OAAO;AACL,UAAIJ,SAASK,QAAQL,SAASK,SAASQ,SAASR,MAAM;AACpDQ,iBAASR,OAAOL,SAASK;AACzB,aAAKI,QAAQO,IAAIhB,SAASI,UAAU;MACtC;AACA,UAAIJ,SAASM,SAASN,SAASM,UAAUO,SAASP,OAAO;AACvDO,iBAASP,QAAQN,SAASM;AAC1B,aAAKG,QAAQO,IAAIhB,SAASI,UAAU;MACtC;IACF;EACF;EAEOa,8BAA8B;AACnC,UAAMC,OAAgC,CAAA;AACtC,SAAKT,QAAQU,QAAQ,CAACf,eAAAA;AACpB,YAAMJ,WAAW,KAAKQ,UAAUM,IAAIV,UAAAA;AACpC,UAAIJ,UAAU;AACZkB,aAAKE,KAAKpB,QAAAA;MACZ;IACF,CAAA;AACA,SAAKS,QAAQY,MAAK;AAClB,WAAOH;EACT;AACF;AAxCqBX;AAArB,IAAqBA,mBAArB;","names":["consumerFromStringOrObject","consumer","String","trim","substring","identifier","name","group","ConsumerRegistry","consumers","updated","Map","Set","addOrUpdateConsumer","existing","get","set","add","getAndResetUpdatedConsumers","data","forEach","push","clear"]}