{"version":3,"file":"vuePlugin.mjs","names":["vueVersion"],"sources":["../../src/domain/vuePlugin.ts"],"sourcesContent":["import { version as vueVersion } from 'vue'\nimport { toIntegrations, toMajorVersionIntegration } from '@datadog/browser-core'\nimport type { RumPlugin, RumPublicApi, StartRumResult } from '@datadog/browser-rum-core'\n\nlet globalPublicApi: RumPublicApi | undefined\nlet globalConfiguration: VuePluginConfiguration | undefined\nlet globalAddError: StartRumResult['addError'] | undefined\n\ntype InitSubscriber = (configuration: VuePluginConfiguration, rumPublicApi: RumPublicApi) => void\ntype StartSubscriber = (addError: StartRumResult['addError']) => void\n\nconst onRumInitSubscribers: InitSubscriber[] = []\nconst onRumStartSubscribers: StartSubscriber[] = []\n\nexport interface VuePluginConfiguration {\n  router?: boolean\n}\n\nexport type VuePlugin = Required<RumPlugin>\n\nexport function vuePlugin(configuration: VuePluginConfiguration = {}): VuePlugin {\n  return {\n    name: 'vue',\n    onInit({ publicApi, initConfiguration }) {\n      globalPublicApi = publicApi\n      globalConfiguration = configuration\n      for (const subscriber of onRumInitSubscribers) {\n        subscriber(globalConfiguration, globalPublicApi)\n      }\n      if (configuration.router) {\n        initConfiguration.trackViewsManually = true\n      }\n    },\n    onRumStart({ addError }) {\n      globalAddError = addError\n      if (addError) {\n        for (const subscriber of onRumStartSubscribers) {\n          subscriber(addError)\n        }\n      }\n    },\n    getConfigurationTelemetry() {\n      const vueIntegration = toMajorVersionIntegration('vue', vueVersion)\n      return {\n        router: !!configuration.router,\n        integrations: toIntegrations(vueIntegration, configuration.router && 'vue-router'),\n      }\n    },\n  } satisfies RumPlugin\n}\n\nexport function onRumInit(callback: InitSubscriber) {\n  if (globalConfiguration && globalPublicApi) {\n    callback(globalConfiguration, globalPublicApi)\n  } else {\n    onRumInitSubscribers.push(callback)\n  }\n}\n\nexport function onRumStart(callback: StartSubscriber) {\n  if (globalAddError) {\n    callback(globalAddError)\n  } else {\n    onRumStartSubscribers.push(callback)\n  }\n}\n\nexport function resetVuePlugin() {\n  globalPublicApi = undefined\n  globalConfiguration = undefined\n  globalAddError = undefined\n  onRumInitSubscribers.length = 0\n  onRumStartSubscribers.length = 0\n}\n"],"mappings":";;;AAIA,IAAI;AACJ,IAAI;AACJ,IAAI;AAKJ,MAAM,uBAAyC,CAAC;AAChD,MAAM,wBAA2C,CAAC;AAQlD,SAAgB,UAAU,gBAAwC,CAAC,GAAc;CAC/E,OAAO;EACL,MAAM;EACN,OAAO,EAAE,WAAW,qBAAqB;GACvC,kBAAkB;GAClB,sBAAsB;GACtB,KAAK,MAAM,cAAc,sBACvB,WAAW,qBAAqB,eAAe;GAEjD,IAAI,cAAc,QAChB,kBAAkB,qBAAqB;EAE3C;EACA,WAAW,EAAE,YAAY;GACvB,iBAAiB;GACjB,IAAI,UACF,KAAK,MAAM,cAAc,uBACvB,WAAW,QAAQ;EAGzB;EACA,4BAA4B;GAC1B,MAAM,iBAAiB,0BAA0B,OAAOA,OAAU;GAClE,OAAO;IACL,QAAQ,CAAC,CAAC,cAAc;IACxB,cAAc,eAAe,gBAAgB,cAAc,UAAU,YAAY;GACnF;EACF;CACF;AACF;AAEA,SAAgB,UAAU,UAA0B;CAClD,IAAI,uBAAuB,iBACzB,SAAS,qBAAqB,eAAe;MAE7C,qBAAqB,KAAK,QAAQ;AAEtC;AAEA,SAAgB,WAAW,UAA2B;CACpD,IAAI,gBACF,SAAS,cAAc;MAEvB,sBAAsB,KAAK,QAAQ;AAEvC"}