{"version":3,"sources":["../src/index.ts","../src/types/index.ts"],"sourcesContent":["import type { Settings, Destination, Env } from './types';\nimport { isDefined } from '@walkeros/core';\nimport { sendServer } from '@walkeros/server-core';\n\n// Types\nexport * as DestinationAPI from './types';\n\nexport const destinationAPI: Destination = {\n  type: 'api',\n\n  config: {},\n\n  env: { sendServer },\n\n  async push(event, { config, rule, data, env, logger }) {\n    const { settings } = config;\n    const { url, headers, method, transform, timeout } = settings || {};\n\n    if (!url) return;\n\n    const eventData = isDefined(data) ? data : event;\n    const body = transform\n      ? transform(eventData, config, rule) // Transform event data\n      : JSON.stringify(eventData);\n\n    logger?.debug('API destination sending request', {\n      url,\n      method: method || 'POST',\n      eventName: event.name,\n    });\n\n    const sendServerFn = (env as Env)?.sendServer || sendServer;\n    const response = await sendServerFn(url, body, {\n      headers,\n      method,\n      timeout,\n    });\n\n    logger?.debug('API destination response', { ok: response?.ok });\n  },\n};\n\nexport default destinationAPI;\n","import type {\n  Mapping as WalkerOSMapping,\n  SendDataValue,\n  SendHeaders,\n  Destination as CoreDestination,\n} from '@walkeros/core';\nimport type { DestinationServer, sendServer } from '@walkeros/server-core';\n\nexport interface Settings {\n  url: string;\n  headers?: SendHeaders;\n  method?: string;\n  transform?: Transform;\n  timeout?: number;\n}\n\nexport interface Mapping {}\n\nexport interface Env extends DestinationServer.Env {\n  sendServer?: typeof sendServer;\n}\n\nexport type Types = CoreDestination.Types<Settings, Mapping, Env>;\n\nexport type Destination = DestinationServer.Destination<Types>;\nexport type Config = DestinationServer.Config<Types>;\nexport type PushFn = DestinationServer.PushFn<Types>;\n\nexport type Rule = WalkerOSMapping.Rule<Mapping>;\nexport type Rules = WalkerOSMapping.Rules<Rule>;\n\nexport type Transform = (\n  data?: unknown,\n  config?: Config,\n  mapping?: WalkerOSMapping.Rule<Mapping>,\n) => SendDataValue;\n"],"mappings":";AACA,SAAS,iBAAiB;AAC1B,SAAS,kBAAkB;;;ACF3B;;;ADOO,IAAM,iBAA8B;AAAA,EACzC,MAAM;AAAA,EAEN,QAAQ,CAAC;AAAA,EAET,KAAK,EAAE,WAAW;AAAA,EAElB,MAAM,KAAK,OAAO,EAAE,QAAQ,MAAM,MAAM,KAAK,OAAO,GAAG;AACrD,UAAM,EAAE,SAAS,IAAI;AACrB,UAAM,EAAE,KAAK,SAAS,QAAQ,WAAW,QAAQ,IAAI,YAAY,CAAC;AAElE,QAAI,CAAC,IAAK;AAEV,UAAM,YAAY,UAAU,IAAI,IAAI,OAAO;AAC3C,UAAM,OAAO,YACT,UAAU,WAAW,QAAQ,IAAI,IACjC,KAAK,UAAU,SAAS;AAE5B,YAAQ,MAAM,mCAAmC;AAAA,MAC/C;AAAA,MACA,QAAQ,UAAU;AAAA,MAClB,WAAW,MAAM;AAAA,IACnB,CAAC;AAED,UAAM,eAAgB,KAAa,cAAc;AACjD,UAAM,WAAW,MAAM,aAAa,KAAK,MAAM;AAAA,MAC7C;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAED,YAAQ,MAAM,4BAA4B,EAAE,IAAI,UAAU,GAAG,CAAC;AAAA,EAChE;AACF;AAEA,IAAO,gBAAQ;","names":[]}