{"version":3,"file":"getPluginSettings.mjs","sources":["../../../../src/services/pluginSettings/getPluginSettings.ts"],"sourcesContent":["import { type PluginMeta } from '@grafana/data';\n\nimport { getFeatureFlagClient } from '../../internal/openFeature';\nimport { FlagKeys } from '../../internal/openFeature/openfeature.gen';\nimport { getCachedPromiseWithArgs } from '../../utils/getCachedPromise';\nimport { getBackendSrv } from '../backendSrv';\nimport { getPluginMetaFromCache } from '../pluginMeta/plugins';\n\nimport { logPluginSettingsDebug, logPluginSettingsError } from './logging';\nimport { getSettingsMapper } from './mappers/mappers';\nimport { type Settings as v0alpha1Settings } from './types';\nimport { getApiVersion, getCacheKey, getLegacyCacheKey, getNamespace, isAuthError } from './utils';\n\nexport function getLegacySettings(pluginId: string, showErrorAlert?: boolean): Promise<PluginMeta> {\n  const options = { showErrorAlert, validatePath: true };\n  logPluginSettingsDebug('PluginSettings: getting legacy plugin settings', { pluginId });\n\n  return getBackendSrv()\n    .get(`/api/plugins/${pluginId}/settings`, undefined, undefined, options)\n    .catch((err) => {\n      // User does not have access to plugin\n      if (isAuthError(err)) {\n        err.isHandled = true;\n        return Promise.reject(err);\n      }\n\n      logPluginSettingsError('PluginSettings: getting legacy plugin settings failed', err, { pluginId });\n      return Promise.reject(new Error('Unknown Plugin', { cause: err }));\n    });\n}\n\nexport function getAppPluginSettings(pluginId: string, showErrorAlert?: boolean): Promise<v0alpha1Settings> {\n  const options = { showErrorAlert, validatePath: true };\n  logPluginSettingsDebug('PluginSettings: getting plugin settings', { pluginId });\n\n  return getBackendSrv()\n    .get<v0alpha1Settings>(\n      `/apis/${pluginId}/${getApiVersion()}/namespaces/${getNamespace()}/app/instance`,\n      undefined,\n      undefined,\n      options\n    )\n    .catch((err) => {\n      // User does not have access to plugin\n      if (isAuthError(err)) {\n        err.isHandled = true;\n        return Promise.reject(err);\n      }\n\n      logPluginSettingsError('PluginSettings: getting plugin settings failed', err, { pluginId });\n      return Promise.reject(new Error('Unknown Plugin', { cause: err }));\n    });\n}\n\n/**\n * Get the settings for a plugin, returning a cached promise when available.\n * @param pluginId - The id of the plugin.\n * @param showErrorAlert - Whether to show a UI error alert if the request fails.\n * @returns The plugin's `PluginMeta`.\n */\nexport async function getPluginSettings(pluginId: string, showErrorAlert = false): Promise<PluginMeta> {\n  if (!getFeatureFlagClient().getBooleanValue(FlagKeys.PluginsUseMTPluginSettings, false)) {\n    return getCachedLegacySettings(pluginId, showErrorAlert);\n  }\n\n  const meta = await getPluginMetaFromCache(pluginId);\n  if (!meta) {\n    logPluginSettingsDebug('PluginSettings: falling back to getting legacy plugin settings', { pluginId });\n    return getCachedLegacySettings(pluginId, showErrorAlert);\n  }\n\n  if (meta.spec.pluginJson.type !== 'app') {\n    const mapper = getSettingsMapper();\n    return mapper(meta.spec);\n  }\n\n  const settings = await getCachedAppSettings(pluginId, showErrorAlert);\n  const mapper = getSettingsMapper();\n  return mapper(meta.spec, settings);\n}\n\nconst getCachedLegacySettings = getCachedPromiseWithArgs(getLegacySettings, {\n  cacheKeyFn: getLegacyCacheKey,\n});\n\nconst getCachedAppSettings = getCachedPromiseWithArgs(getAppPluginSettings, {\n  cacheKeyFn: getCacheKey,\n});\n"],"names":["mapper"],"mappings":";;;;;;;;;;AAaO,SAAS,iBAAA,CAAkB,UAAkB,cAAA,EAA+C;AACjG,EAAA,MAAM,OAAA,GAAU,EAAE,cAAA,EAAgB,YAAA,EAAc,IAAA,EAAK;AACrD,EAAA,sBAAA,CAAuB,gDAAA,EAAkD,EAAE,QAAA,EAAU,CAAA;AAErF,EAAA,OAAO,aAAA,EAAc,CAClB,GAAA,CAAI,CAAA,aAAA,EAAgB,QAAQ,CAAA,SAAA,CAAA,EAAa,KAAA,CAAA,EAAW,KAAA,CAAA,EAAW,OAAO,CAAA,CACtE,KAAA,CAAM,CAAC,GAAA,KAAQ;AAEd,IAAA,IAAI,WAAA,CAAY,GAAG,CAAA,EAAG;AACpB,MAAA,GAAA,CAAI,SAAA,GAAY,IAAA;AAChB,MAAA,OAAO,OAAA,CAAQ,OAAO,GAAG,CAAA;AAAA,IAC3B;AAEA,IAAA,sBAAA,CAAuB,uDAAA,EAAyD,GAAA,EAAK,EAAE,QAAA,EAAU,CAAA;AACjG,IAAA,OAAO,OAAA,CAAQ,OAAO,IAAI,KAAA,CAAM,kBAAkB,EAAE,KAAA,EAAO,GAAA,EAAK,CAAC,CAAA;AAAA,EACnE,CAAC,CAAA;AACL;AAEO,SAAS,oBAAA,CAAqB,UAAkB,cAAA,EAAqD;AAC1G,EAAA,MAAM,OAAA,GAAU,EAAE,cAAA,EAAgB,YAAA,EAAc,IAAA,EAAK;AACrD,EAAA,sBAAA,CAAuB,yCAAA,EAA2C,EAAE,QAAA,EAAU,CAAA;AAE9E,EAAA,OAAO,eAAc,CAClB,GAAA;AAAA,IACC,SAAS,QAAQ,CAAA,CAAA,EAAI,eAAe,CAAA,YAAA,EAAe,cAAc,CAAA,aAAA,CAAA;AAAA,IACjE,KAAA,CAAA;AAAA,IACA,KAAA,CAAA;AAAA,IACA;AAAA,GACF,CACC,KAAA,CAAM,CAAC,GAAA,KAAQ;AAEd,IAAA,IAAI,WAAA,CAAY,GAAG,CAAA,EAAG;AACpB,MAAA,GAAA,CAAI,SAAA,GAAY,IAAA;AAChB,MAAA,OAAO,OAAA,CAAQ,OAAO,GAAG,CAAA;AAAA,IAC3B;AAEA,IAAA,sBAAA,CAAuB,gDAAA,EAAkD,GAAA,EAAK,EAAE,QAAA,EAAU,CAAA;AAC1F,IAAA,OAAO,OAAA,CAAQ,OAAO,IAAI,KAAA,CAAM,kBAAkB,EAAE,KAAA,EAAO,GAAA,EAAK,CAAC,CAAA;AAAA,EACnE,CAAC,CAAA;AACL;AAQA,eAAsB,iBAAA,CAAkB,QAAA,EAAkB,cAAA,GAAiB,KAAA,EAA4B;AACrG,EAAA,IAAI,CAAC,oBAAA,EAAqB,CAAE,gBAAgB,QAAA,CAAS,0BAAA,EAA4B,KAAK,CAAA,EAAG;AACvF,IAAA,OAAO,uBAAA,CAAwB,UAAU,cAAc,CAAA;AAAA,EACzD;AAEA,EAAA,MAAM,IAAA,GAAO,MAAM,sBAAA,CAAuB,QAAQ,CAAA;AAClD,EAAA,IAAI,CAAC,IAAA,EAAM;AACT,IAAA,sBAAA,CAAuB,gEAAA,EAAkE,EAAE,QAAA,EAAU,CAAA;AACrG,IAAA,OAAO,uBAAA,CAAwB,UAAU,cAAc,CAAA;AAAA,EACzD;AAEA,EAAA,IAAI,IAAA,CAAK,IAAA,CAAK,UAAA,CAAW,IAAA,KAAS,KAAA,EAAO;AACvC,IAAA,MAAMA,UAAS,iBAAA,EAAkB;AACjC,IAAA,OAAOA,OAAAA,CAAO,KAAK,IAAI,CAAA;AAAA,EACzB;AAEA,EAAA,MAAM,QAAA,GAAW,MAAM,oBAAA,CAAqB,QAAA,EAAU,cAAc,CAAA;AACpE,EAAA,MAAM,SAAS,iBAAA,EAAkB;AACjC,EAAA,OAAO,MAAA,CAAO,IAAA,CAAK,IAAA,EAAM,QAAQ,CAAA;AACnC;AAEA,MAAM,uBAAA,GAA0B,yBAAyB,iBAAA,EAAmB;AAAA,EAC1E,UAAA,EAAY;AACd,CAAC,CAAA;AAED,MAAM,oBAAA,GAAuB,yBAAyB,oBAAA,EAAsB;AAAA,EAC1E,UAAA,EAAY;AACd,CAAC,CAAA;;;;"}