{"version":3,"file":"types.mjs","sources":["../../src/types.ts"],"sourcesContent":["// Core Grafana history https://github.com/grafana/grafana/blob/v11.0.0-preview/public/app/plugins/datasource/prometheus/types.ts\nimport { type DataSourceJsonData } from '@grafana/data';\nimport { type DataQuery } from '@grafana/schema';\n\nimport { type Prometheus as GenPromQuery } from './dataquery';\nimport { type QueryBuilderLabelFilter, type QueryEditorMode } from './querybuilder/shared/types';\n\nexport interface PromQuery extends GenPromQuery, DataQuery {\n  /**\n   * Timezone offset to align start & end time on backend\n   */\n  utcOffsetSec?: number;\n  valueWithRefId?: boolean;\n  showingGraph?: boolean;\n  showingTable?: boolean;\n  hinting?: boolean;\n  interval?: string;\n  fromExploreMetrics?: boolean;\n}\n\nexport enum PrometheusCacheLevel {\n  Low = 'Low',\n  Medium = 'Medium',\n  High = 'High',\n  None = 'None',\n}\n\nexport enum PromApplication {\n  Cortex = 'Cortex',\n  Mimir = 'Mimir',\n  Prometheus = 'Prometheus',\n  Thanos = 'Thanos',\n}\n\nexport interface PromOptions extends DataSourceJsonData {\n  timeInterval?: string;\n  queryTimeout?: string;\n  httpMethod?: string;\n  customQueryParameters?: string;\n  disableMetricsLookup?: boolean;\n  exemplarTraceIdDestinations?: ExemplarTraceIdDestination[];\n  prometheusType?: PromApplication;\n  prometheusVersion?: string;\n  cacheLevel?: PrometheusCacheLevel;\n  defaultEditor?: QueryEditorMode;\n  incrementalQuerying?: boolean;\n  incrementalQueryOverlapWindow?: string;\n  disableRecordingRules?: boolean;\n  allowAsRecordingRulesTarget?: boolean;\n  sigV4Auth?: boolean;\n  oauthPassThru?: boolean;\n  seriesEndpoint?: boolean;\n  seriesLimit?: number;\n}\n\nexport type ExemplarTraceIdDestination = {\n  name: string;\n  url?: string;\n  urlDisplayLabel?: string;\n  datasourceUid?: string;\n};\n\nexport interface PromQueryRequest extends PromQuery {\n  step?: number;\n  requestId?: string;\n  start: number;\n  end: number;\n  headers?: any;\n}\n\nexport interface PromMetricsMetadataItem {\n  type: string;\n  help: string;\n  unit?: string;\n}\n\nexport interface PromMetricsMetadata {\n  [metric: string]: PromMetricsMetadataItem;\n}\n\nexport type PromValue = [number, any];\n\nexport interface PromMetric {\n  __name__?: string;\n\n  [index: string]: any;\n}\n\nexport interface PromBuildInfoResponse {\n  data: {\n    application?: string;\n    version: string;\n    revision: string;\n    features?: {\n      ruler_config_api?: 'true' | 'false';\n      alertmanager_config_api?: 'true' | 'false';\n      query_sharding?: 'true' | 'false';\n      federated_rules?: 'true' | 'false';\n    };\n    [key: string]: unknown;\n  };\n  status: 'success';\n}\n\n/**\n * Auto = query.legendFormat == '__auto'\n * Verbose = query.legendFormat == null/undefined/''\n * Custom query.legendFormat.length > 0 && query.legendFormat !== '__auto'\n */\nexport enum LegendFormatMode {\n  Auto = '__auto',\n  Verbose = '__verbose',\n  Custom = '__custom',\n}\n\nexport enum PromVariableQueryType {\n  LabelNames,\n  LabelValues,\n  MetricNames,\n  VarQueryResult,\n  SeriesQuery,\n  ClassicQuery,\n}\n\nexport interface PromVariableQuery extends DataQuery {\n  query?: string;\n  expr?: string;\n  qryType?: PromVariableQueryType;\n  label?: string;\n  metric?: string;\n  varQuery?: string;\n  seriesQuery?: string;\n  labelFilters?: QueryBuilderLabelFilter[];\n  match?: string;\n  classicQuery?: string;\n}\n\nexport type StandardPromVariableQuery = {\n  query: string;\n  refId: string;\n};\n\n// Rules that we fetch from Prometheus\nexport type RawRecordingRules = {\n  name: string;\n  file: string;\n  rules: Rule[];\n  interval?: number;\n  limit?: number;\n};\n\n// A single recording rule with its labels and the query it represents\n// In this object, there may be other fields but those are the ones we care for now\nexport type Rule = {\n  name: string;\n  query: string;\n  duration?: number;\n  labels?: Record<string, string>;\n  annotations?: Record<string, string>;\n  alerts?: AlertInfo[];\n  type: 'alerting' | 'recording';\n};\n\nexport type AlertInfo = {\n  labels: Record<string, string>;\n  annotations: Record<string, string>;\n  state: string;\n  activeAt: string;\n  value: string;\n};\n\n// Extracted recording rules with labels\n// We parse and extract the rules because\n// there might be multiple rules with same name but different labels and queries\nexport type RuleQueryMapping = {\n  [key: string]: Array<{\n    query: string;\n    labels?: Record<string, string>;\n  }>;\n};\n\nexport type RecordingRuleIdentifier = {\n  expandedQuery: string;\n  identifier?: string;\n  identifierValue?: string;\n};\n"],"names":["PrometheusCacheLevel","PromApplication","LegendFormatMode","PromVariableQueryType"],"mappings":";AAoBO,IAAK,oBAAA,qBAAAA,qBAAAA,KAAL;AACL,EAAAA,sBAAA,KAAA,CAAA,GAAM,KAAA;AACN,EAAAA,sBAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,sBAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,sBAAA,MAAA,CAAA,GAAO,MAAA;AAJG,EAAA,OAAAA,qBAAAA;AAAA,CAAA,EAAA,oBAAA,IAAA,EAAA;AAOL,IAAK,eAAA,qBAAAC,gBAAAA,KAAL;AACL,EAAAA,iBAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,iBAAA,OAAA,CAAA,GAAQ,OAAA;AACR,EAAAA,iBAAA,YAAA,CAAA,GAAa,YAAA;AACb,EAAAA,iBAAA,QAAA,CAAA,GAAS,QAAA;AAJC,EAAA,OAAAA,gBAAAA;AAAA,CAAA,EAAA,eAAA,IAAA,EAAA;AAkFL,IAAK,gBAAA,qBAAAC,iBAAAA,KAAL;AACL,EAAAA,kBAAA,MAAA,CAAA,GAAO,QAAA;AACP,EAAAA,kBAAA,SAAA,CAAA,GAAU,WAAA;AACV,EAAAA,kBAAA,QAAA,CAAA,GAAS,UAAA;AAHC,EAAA,OAAAA,iBAAAA;AAAA,CAAA,EAAA,gBAAA,IAAA,EAAA;AAML,IAAK,qBAAA,qBAAAC,sBAAAA,KAAL;AACL,EAAAA,sBAAAA,CAAAA,sBAAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAA;AACA,EAAAA,sBAAAA,CAAAA,sBAAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAA;AACA,EAAAA,sBAAAA,CAAAA,sBAAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAA;AACA,EAAAA,sBAAAA,CAAAA,sBAAAA,CAAA,gBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,gBAAA;AACA,EAAAA,sBAAAA,CAAAA,sBAAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAA;AACA,EAAAA,sBAAAA,CAAAA,sBAAAA,CAAA,cAAA,CAAA,GAAA,CAAA,CAAA,GAAA,cAAA;AANU,EAAA,OAAAA,sBAAAA;AAAA,CAAA,EAAA,qBAAA,IAAA,EAAA;;;;"}