{"version":3,"sources":["../src/index.ts","../src/types/index.ts"],"sourcesContent":["import type { Config, Destination, Env } from './types';\nimport { isObject } from '@walkeros/core';\nimport { getEnv } from '@walkeros/web-core';\n\n// Types\nexport * as DestinationPlausible from './types';\n\nexport const destinationPlausible: Destination = {\n  type: 'plausible',\n\n  config: {},\n\n  init({ config, env }) {\n    const { window } = getEnv<Env>(env);\n    const settings = config.settings || {};\n\n    if (config.loadScript) addScript(settings.domain, env);\n\n    window.plausible =\n      window.plausible ||\n      function () {\n        (window.plausible!.q = window.plausible!.q || []).push(arguments);\n      };\n\n    return config;\n  },\n\n  push(event, { config, data, env }) {\n    const params = isObject(data) ? data : {};\n\n    const { window } = getEnv<Env>(env);\n    window.plausible!(`${event.name}`, params);\n  },\n};\n\nfunction addScript(\n  domain?: string,\n  env?: Env,\n  src = 'https://plausible.io/js/script.manual.js',\n) {\n  const { document } = getEnv<Env>(env);\n  const script = document.createElement('script');\n  script.src = src;\n  if (domain) script.dataset.domain = domain;\n  document.head.appendChild(script);\n}\n\nexport default destinationPlausible;\n","import type {\n  Mapping as WalkerOSMapping,\n  WalkerOS,\n  Destination as CoreDestination,\n} from '@walkeros/core';\nimport type { DestinationWeb } from '@walkeros/web-core';\n\ndeclare global {\n  interface Window {\n    plausible?: Plausible & { q?: IArguments[] };\n  }\n}\n\nexport type Plausible = (\n  event: string,\n  options?: { props?: WalkerOS.AnyObject },\n) => void;\n\nexport interface Settings {\n  domain?: string;\n}\n\nexport type InitSettings = Partial<Settings>;\n\nexport interface Mapping {}\n\nexport interface Env extends DestinationWeb.Env {\n  window: {\n    // Optional: the SDK global may be absent until `init` installs the stub.\n    plausible?: Plausible & { q?: IArguments[] };\n  };\n}\n\nexport type Types = CoreDestination.Types<Settings, Mapping, Env, InitSettings>;\n\nexport type Destination = DestinationWeb.Destination<Types>;\nexport type Config = DestinationWeb.Config<Types>;\n\nexport interface PlausibleDestination extends Destination {\n  env?: Env;\n}\n\nexport type Rule = WalkerOSMapping.Rule<Mapping>;\nexport type Rules = WalkerOSMapping.Rules<Rule>;\n"],"mappings":";AACA,SAAS,gBAAgB;AACzB,SAAS,cAAc;;;ACFvB;;;ADOO,IAAM,uBAAoC;AAAA,EAC/C,MAAM;AAAA,EAEN,QAAQ,CAAC;AAAA,EAET,KAAK,EAAE,QAAQ,IAAI,GAAG;AACpB,UAAM,EAAE,OAAO,IAAI,OAAY,GAAG;AAClC,UAAM,WAAW,OAAO,YAAY,CAAC;AAErC,QAAI,OAAO,WAAY,WAAU,SAAS,QAAQ,GAAG;AAErD,WAAO,YACL,OAAO,aACP,WAAY;AACV,OAAC,OAAO,UAAW,IAAI,OAAO,UAAW,KAAK,CAAC,GAAG,KAAK,SAAS;AAAA,IAClE;AAEF,WAAO;AAAA,EACT;AAAA,EAEA,KAAK,OAAO,EAAE,QAAQ,MAAM,IAAI,GAAG;AACjC,UAAM,SAAS,SAAS,IAAI,IAAI,OAAO,CAAC;AAExC,UAAM,EAAE,OAAO,IAAI,OAAY,GAAG;AAClC,WAAO,UAAW,GAAG,MAAM,IAAI,IAAI,MAAM;AAAA,EAC3C;AACF;AAEA,SAAS,UACP,QACA,KACA,MAAM,4CACN;AACA,QAAM,EAAE,SAAS,IAAI,OAAY,GAAG;AACpC,QAAM,SAAS,SAAS,cAAc,QAAQ;AAC9C,SAAO,MAAM;AACb,MAAI,OAAQ,QAAO,QAAQ,SAAS;AACpC,WAAS,KAAK,YAAY,MAAM;AAClC;AAEA,IAAO,gBAAQ;","names":[]}