{"version":3,"sources":["/home/runner/work/loglayer/loglayer/packages/transports/google-cloud-logging/dist/index.cjs","../src/GoogleCloudLoggingTransport.ts"],"names":[],"mappings":"AAAA;ACEA,gDAA0D;AAiBnD,IAAM,4BAAA,EAAN,MAAA,QAA0C,yBAAmB;AAAA,EAC1D;AAAA,EACA;AAAA,EAER,WAAA,CAAY,MAAA,EAA2C;AACrD,IAAA,KAAA,CAAM,MAAM,CAAA;AACZ,IAAA,IAAA,CAAK,cAAA,EAAgB,MAAA,CAAO,cAAA,GAAiB,CAAC,CAAA;AAC9C,IAAA,IAAA,CAAK,MAAA,mBAAQ,MAAA,CAAO,KAAA,UAAS,mBAAA,CAAS,OAAA;AAAA,EACxC;AAAA,EAEQ,WAAA,CAAY,KAAA,EAAyB;AAC3C,IAAA,OAAA,CAAQ,KAAA,EAAO;AAAA,MACb,KAAK,mBAAA,CAAS,KAAA;AACZ,QAAA,OAAO,UAAA;AAAA,MACT,KAAK,mBAAA,CAAS,KAAA;AACZ,QAAA,OAAO,OAAA;AAAA,MACT,KAAK,mBAAA,CAAS,IAAA;AACZ,QAAA,OAAO,SAAA;AAAA,MACT,KAAK,mBAAA,CAAS,IAAA;AACZ,QAAA,OAAO,MAAA;AAAA,MACT,KAAK,mBAAA,CAAS,KAAA;AACZ,QAAA,OAAO,OAAA;AAAA,MACT,KAAK,mBAAA,CAAS,KAAA;AACZ,QAAA,OAAO,OAAA;AAAA,MACT,OAAA;AACE,QAAA,OAAO,SAAA;AAAA,IACX;AAAA,EACF;AAAA,EAEA,YAAA,CAAa,EAAE,IAAA,EAAM,OAAA,EAAS,QAAA,EAAU,SAAS,CAAA,EAAmC;AAElF,IAAA,GAAA,CAAI,2BAAA,CAAiB,QAAQ,EAAA,EAAI,2BAAA,CAAiB,IAAA,CAAK,KAAK,CAAA,EAAG;AAC7D,MAAA,OAAO,CAAC,CAAA;AAAA,IACV;AAEA,IAAA,MAAM,MAAA,EAAQ,IAAA,CAAK,MAAA,CAAO,KAAA;AAAA,MACxB;AAAA,QACE,GAAG,IAAA,CAAK,aAAA;AAAA,QACR,QAAA,EAAU,IAAA,CAAK,WAAA,CAAY,QAAQ,CAAA;AAAA,QACnC,SAAA,kBAAW,IAAI,IAAA,CAAK;AAAA,MACtB,CAAA;AAAA,MACA;AAAA,QACE,GAAI,KAAA,GAAQ,QAAA,EAAU,KAAA,EAAO,CAAC,CAAA;AAAA,QAC9B,OAAA,EAAS,QAAA,CAAS,IAAA,CAAK,GAAG;AAAA,MAC5B;AAAA,IACF,CAAA;AAEA,IAAA,IAAA,CAAK,MAAA,CAAO,KAAA,CAAM,KAAK,CAAA;AAEvB,IAAA,GAAA,CAAI,KAAA,GAAQ,OAAA,EAAS;AACnB,MAAA,OAAO,CAAC,IAAA,EAAM,QAAQ,CAAA;AAAA,IACxB;AAEA,IAAA,OAAO,CAAC,QAAQ,CAAA;AAAA,EAClB;AACF,CAAA;ADxBA;AACE;AACF,kEAAC","file":"/home/runner/work/loglayer/loglayer/packages/transports/google-cloud-logging/dist/index.cjs","sourcesContent":[null,"import type { Log } from \"@google-cloud/logging\";\nimport type { LogEntry } from \"@google-cloud/logging/build/src/entry.js\";\nimport { BaseTransport, LogLevel, LogLevelPriority } from \"@loglayer/transport\";\nimport type { LogLayerTransportConfig, LogLayerTransportParams } from \"@loglayer/transport\";\n\nexport interface GoogleCloudLoggingTransportConfig extends LogLayerTransportConfig<Log> {\n  /**\n   * The root level data to include for all log entries.\n   * \"severity\", \"timestamp\" and \"jsonPayload\" are already populated by the transport.\n   * @see https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry\n   */\n  rootLevelData?: Omit<LogEntry, \"severity\" | \"timestamp\" | \"jsonPayload\">;\n\n  /**\n   * Minimum log level to process. Defaults to \"trace\"\n   */\n  level?: LogLevel | \"trace\" | \"debug\" | \"info\" | \"warn\" | \"error\" | \"fatal\";\n}\n\nexport class GoogleCloudLoggingTransport extends BaseTransport<Log> {\n  private rootLevelData: Omit<LogEntry, \"severity\" | \"timestamp\" | \"jsonPayload\">;\n  private level: LogLevel | \"trace\" | \"debug\" | \"info\" | \"warn\" | \"error\" | \"fatal\";\n\n  constructor(config: GoogleCloudLoggingTransportConfig) {\n    super(config);\n    this.rootLevelData = config.rootLevelData || {};\n    this.level = config.level ?? LogLevel.trace; // Default to trace to allow all logs\n  }\n\n  private mapLogLevel(level: LogLevel): string {\n    switch (level) {\n      case LogLevel.fatal:\n        return \"CRITICAL\";\n      case LogLevel.error:\n        return \"ERROR\";\n      case LogLevel.warn:\n        return \"WARNING\";\n      case LogLevel.info:\n        return \"INFO\";\n      case LogLevel.debug:\n        return \"DEBUG\";\n      case LogLevel.trace:\n        return \"DEBUG\";\n      default:\n        return \"DEFAULT\";\n    }\n  }\n\n  shipToLogger({ data, hasData, logLevel, messages }: LogLayerTransportParams): any[] {\n    // Skip if log level is lower priority than configured minimum\n    if (LogLevelPriority[logLevel] < LogLevelPriority[this.level]) {\n      return [];\n    }\n\n    const entry = this.logger.entry(\n      {\n        ...this.rootLevelData,\n        severity: this.mapLogLevel(logLevel),\n        timestamp: new Date(),\n      },\n      {\n        ...(data && hasData ? data : {}),\n        message: messages.join(\" \"),\n      },\n    );\n\n    this.logger.write(entry);\n\n    if (data && hasData) {\n      return [data, messages];\n    }\n\n    return [messages];\n  }\n}\n"]}