@cubejs-client/core 0.35.0 → 0.35.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"cubejs-client-core.js","sources":["../src/utils.js","../src/ResultSet.js","../src/SqlQuery.js","../src/Meta.js","../src/ProgressResult.js","../src/HttpTransport.js","../src/RequestError.js","../src/index.js"],"sourcesContent":["import { indexBy, prop, clone, equals, fromPairs, toPairs } from 'ramda';\n\nexport const DEFAULT_GRANULARITY = 'day';\n\nexport const GRANULARITIES = [\n { name: undefined, title: 'w/o grouping' },\n { name: 'second', title: 'Second' },\n { name: 'minute', title: 'Minute' },\n { name: 'hour', title: 'Hour' },\n { name: 'day', title: 'Day' },\n { name: 'week', title: 'Week' },\n { name: 'month', title: 'Month' },\n { name: 'quarter', title: 'Quarter' },\n { name: 'year', title: 'Year' },\n];\n\nexport function removeEmptyQueryFields(_query) {\n const query = _query || {};\n \n return fromPairs(\n toPairs(query)\n .map(([key, value]) => {\n if (\n ['measures', 'dimensions', 'segments', 'timeDimensions', 'filters'].includes(key)\n ) {\n if (Array.isArray(value) && value.length === 0) {\n return null;\n }\n }\n \n if (key === 'order' && value) {\n if (Array.isArray(value) && !value.length) {\n return null;\n } else if (!Object.keys(value).length) {\n return null;\n }\n }\n\n return [key, value];\n })\n .filter(Boolean)\n );\n}\n\nexport function validateQuery(_query) {\n const query = _query || {};\n \n return removeEmptyQueryFields({\n ...query,\n filters: (query.filters || []).filter((f) => f.operator),\n timeDimensions: (query.timeDimensions || []).filter(\n (td) => !(!td.dateRange && !td.granularity)\n ),\n });\n}\n\nexport function areQueriesEqual(query1 = {}, query2 = {}) {\n return (\n equals(\n Object.entries((query1 && query1.order) || {}),\n Object.entries((query2 && query2.order) || {})\n ) && equals(query1, query2)\n );\n}\n\nexport function defaultOrder(query) {\n const granularity = (query.timeDimensions || []).find((d) => d.granularity);\n\n if (granularity) {\n return {\n [granularity.dimension]: 'asc',\n };\n } else if (\n (query.measures || []).length > 0 &&\n (query.dimensions || []).length > 0\n ) {\n return {\n [query.measures[0]]: 'desc',\n };\n } else if ((query.dimensions || []).length > 0) {\n return {\n [query.dimensions[0]]: 'asc',\n };\n }\n\n return {};\n}\n\nexport function defaultHeuristics(newState, oldQuery = {}, options) {\n const { query, ...props } = clone(newState);\n const { meta, sessionGranularity } = options;\n const granularity = sessionGranularity || DEFAULT_GRANULARITY;\n\n let state = {\n query,\n ...props,\n };\n\n let newQuery = null;\n if (!areQueriesEqual(query, oldQuery)) {\n newQuery = query;\n }\n\n if (Array.isArray(newQuery) || Array.isArray(oldQuery)) {\n return newState;\n }\n\n if (newQuery) {\n if (\n (oldQuery.timeDimensions || []).length === 1 &&\n (newQuery.timeDimensions || []).length === 1 &&\n newQuery.timeDimensions[0].granularity &&\n oldQuery.timeDimensions[0].granularity !==\n newQuery.timeDimensions[0].granularity\n ) {\n state = {\n ...state,\n sessionGranularity: newQuery.timeDimensions[0].granularity,\n };\n }\n\n if (\n ((oldQuery.measures || []).length === 0 &&\n (newQuery.measures || []).length > 0) ||\n ((oldQuery.measures || []).length === 1 &&\n (newQuery.measures || []).length === 1 &&\n oldQuery.measures[0] !== newQuery.measures[0])\n ) {\n const [td] = newQuery.timeDimensions || [];\n const defaultTimeDimension = meta.defaultTimeDimensionNameFor(\n newQuery.measures[0]\n );\n newQuery = {\n ...newQuery,\n timeDimensions: defaultTimeDimension\n ? [\n {\n dimension: defaultTimeDimension,\n granularity: (td && td.granularity) || granularity,\n dateRange: td && td.dateRange,\n },\n ]\n : [],\n };\n\n return {\n ...state,\n pivotConfig: null,\n shouldApplyHeuristicOrder: true,\n query: newQuery,\n chartType: defaultTimeDimension ? 'line' : 'number',\n };\n }\n\n if (\n (oldQuery.dimensions || []).length === 0 &&\n (newQuery.dimensions || []).length > 0\n ) {\n newQuery = {\n ...newQuery,\n timeDimensions: (newQuery.timeDimensions || []).map((td) => ({\n ...td,\n granularity: undefined,\n })),\n };\n\n return {\n ...state,\n pivotConfig: null,\n shouldApplyHeuristicOrder: true,\n query: newQuery,\n chartType: 'table',\n };\n }\n\n if (\n (oldQuery.dimensions || []).length > 0 &&\n (newQuery.dimensions || []).length === 0\n ) {\n newQuery = {\n ...newQuery,\n timeDimensions: (newQuery.timeDimensions || []).map((td) => ({\n ...td,\n granularity: td.granularity || granularity,\n })),\n };\n\n return {\n ...state,\n pivotConfig: null,\n shouldApplyHeuristicOrder: true,\n query: newQuery,\n chartType: (newQuery.timeDimensions || []).length ? 'line' : 'number',\n };\n }\n\n if (\n ((oldQuery.dimensions || []).length > 0 ||\n (oldQuery.measures || []).length > 0) &&\n (newQuery.dimensions || []).length === 0 &&\n (newQuery.measures || []).length === 0\n ) {\n newQuery = {\n ...newQuery,\n timeDimensions: [],\n filters: [],\n };\n\n return {\n ...state,\n pivotConfig: null,\n shouldApplyHeuristicOrder: true,\n query: newQuery,\n sessionGranularity: null,\n };\n }\n return state;\n }\n\n if (state.chartType) {\n const newChartType = state.chartType;\n if (\n (newChartType === 'line' || newChartType === 'area') &&\n (oldQuery.timeDimensions || []).length === 1 &&\n !oldQuery.timeDimensions[0].granularity\n ) {\n const [td] = oldQuery.timeDimensions;\n return {\n ...state,\n pivotConfig: null,\n query: {\n ...oldQuery,\n timeDimensions: [{ ...td, granularity }],\n },\n };\n }\n\n if (\n (newChartType === 'pie' ||\n newChartType === 'table' ||\n newChartType === 'number') &&\n (oldQuery.timeDimensions || []).length === 1 &&\n oldQuery.timeDimensions[0].granularity\n ) {\n const [td] = oldQuery.timeDimensions;\n return {\n ...state,\n pivotConfig: null,\n shouldApplyHeuristicOrder: true,\n query: {\n ...oldQuery,\n timeDimensions: [{ ...td, granularity: undefined }],\n },\n };\n }\n }\n\n return state;\n}\n\nexport function isQueryPresent(query) {\n if (!query) {\n return false;\n }\n\n return (Array.isArray(query) ? query : [query]).every(\n (q) => (q.measures && q.measures.length) ||\n (q.dimensions && q.dimensions.length) ||\n (q.timeDimensions && q.timeDimensions.length)\n );\n}\n\nexport function movePivotItem(\n pivotConfig,\n sourceIndex,\n destinationIndex,\n sourceAxis,\n destinationAxis\n) {\n const nextPivotConfig = {\n ...pivotConfig,\n x: [...pivotConfig.x],\n y: [...pivotConfig.y],\n };\n const id = pivotConfig[sourceAxis][sourceIndex];\n const lastIndex = nextPivotConfig[destinationAxis].length - 1;\n\n if (id === 'measures') {\n destinationIndex = lastIndex + 1;\n } else if (\n sourceAxis === destinationAxis &&\n destinationIndex >= lastIndex &&\n nextPivotConfig[destinationAxis][lastIndex] === 'measures'\n ) {\n destinationIndex = lastIndex - 1;\n } else if (\n sourceAxis !== destinationAxis &&\n destinationIndex > lastIndex &&\n nextPivotConfig[destinationAxis][lastIndex] === 'measures'\n ) {\n destinationIndex = lastIndex;\n }\n\n nextPivotConfig[sourceAxis].splice(sourceIndex, 1);\n nextPivotConfig[destinationAxis].splice(destinationIndex, 0, id);\n\n return nextPivotConfig;\n}\n\nexport function moveItemInArray(list, sourceIndex, destinationIndex) {\n const result = [...list];\n const [removed] = result.splice(sourceIndex, 1);\n result.splice(destinationIndex, 0, removed);\n\n return result;\n}\n\nexport function flattenFilters(filters = []) {\n return filters.reduce((memo, filter) => {\n if (filter.or || filter.and) {\n return [...memo, ...flattenFilters(filter.or || filter.and)];\n }\n\n return [...memo, filter];\n }, []);\n}\n\nexport function getQueryMembers(query = {}) {\n const keys = ['measures', 'dimensions', 'segments'];\n const members = new Set();\n\n keys.forEach((key) => (query[key] || []).forEach((member) => members.add(member)));\n (query.timeDimensions || []).forEach((td) => members.add(td.dimension));\n\n flattenFilters(query.filters).forEach((filter) => members.add(filter.dimension || filter.member));\n\n return [...members];\n}\n\nexport function getOrderMembersFromOrder(orderMembers, order) {\n const ids = new Set();\n const indexedOrderMembers = indexBy(prop('id'), orderMembers);\n const entries = Array.isArray(order) ? order : Object.entries(order || {});\n const nextOrderMembers = [];\n\n entries.forEach(([memberId, currentOrder]) => {\n if (currentOrder !== 'none' && indexedOrderMembers[memberId]) {\n ids.add(memberId);\n nextOrderMembers.push({\n ...indexedOrderMembers[memberId],\n order: currentOrder,\n });\n }\n });\n orderMembers.forEach((member) => {\n if (!ids.has(member.id)) {\n nextOrderMembers.push({\n ...member,\n order: member.order || 'none',\n });\n }\n });\n\n return nextOrderMembers;\n}\n\nexport function aliasSeries(values, index, pivotConfig, duplicateMeasures) {\n const nonNullValues = values.filter((value) => value != null);\n\n if (\n pivotConfig &&\n pivotConfig.aliasSeries &&\n pivotConfig.aliasSeries[index]\n ) {\n return [pivotConfig.aliasSeries[index], ...nonNullValues];\n } else if (duplicateMeasures.has(nonNullValues[0])) {\n return [index, ...nonNullValues];\n }\n\n return nonNullValues;\n}\n","import dayjs from 'dayjs';\nimport quarterOfYear from 'dayjs/plugin/quarterOfYear';\n\nimport en from 'dayjs/locale/en';\nimport {\n groupBy, pipe, fromPairs, uniq, filter, map, dropLast, equals, reduce, minBy, maxBy, clone, mergeDeepLeft,\n pluck, mergeAll, flatten,\n} from 'ramda';\n\nimport { aliasSeries } from './utils';\n\ndayjs.extend(quarterOfYear);\n\n// When granularity is week, weekStart Value must be 1. However, since the client can change it globally (https://day.js.org/docs/en/i18n/changing-locale)\n// So the function below has been added.\nconst internalDayjs = (...args) => dayjs(...args).locale({ ...en, weekStart: 1 });\n\nexport const TIME_SERIES = {\n day: (range) => range.by('d').map(d => d.format('YYYY-MM-DDT00:00:00.000')),\n month: (range) => range.snapTo('month').by('M').map(d => d.format('YYYY-MM-01T00:00:00.000')),\n year: (range) => range.snapTo('year').by('y').map(d => d.format('YYYY-01-01T00:00:00.000')),\n hour: (range) => range.by('h').map(d => d.format('YYYY-MM-DDTHH:00:00.000')),\n minute: (range) => range.by('m').map(d => d.format('YYYY-MM-DDTHH:mm:00.000')),\n second: (range) => range.by('s').map(d => d.format('YYYY-MM-DDTHH:mm:ss.000')),\n week: (range) => range.snapTo('week').by('w').map(d => d.startOf('week').format('YYYY-MM-DDT00:00:00.000')),\n quarter: (range) => range.snapTo('quarter').by('quarter').map(d => d.startOf('quarter').format('YYYY-MM-DDT00:00:00.000')),\n};\n\nconst DateRegex = /^\\d\\d\\d\\d-\\d\\d-\\d\\d$/;\nconst LocalDateRegex = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}.\\d{3}Z?$/;\n\nconst groupByToPairs = (keyFn) => {\n const acc = new Map();\n\n return (data) => {\n data.forEach((row) => {\n const key = keyFn(row);\n\n if (!acc.has(key)) {\n acc.set(key, []);\n }\n\n acc.get(key).push(row);\n });\n\n return Array.from(acc.entries());\n };\n};\n\nconst unnest = (arr) => {\n const res = [];\n arr.forEach((subArr) => {\n subArr.forEach(element => res.push(element));\n });\n\n return res;\n};\n\nexport const dayRange = (from, to) => ({\n by: (value) => {\n const results = [];\n\n let start = internalDayjs(from);\n const end = internalDayjs(to);\n\n while (start.isBefore(end) || start.isSame(end)) {\n results.push(start);\n start = start.add(1, value);\n }\n\n return results;\n },\n snapTo: (value) => dayRange(internalDayjs(from).startOf(value), internalDayjs(to).endOf(value)),\n start: internalDayjs(from),\n end: internalDayjs(to),\n});\n\nexport const QUERY_TYPE = {\n REGULAR_QUERY: 'regularQuery',\n COMPARE_DATE_RANGE_QUERY: 'compareDateRangeQuery',\n BLENDING_QUERY: 'blendingQuery',\n};\n\nclass ResultSet {\n static measureFromAxis(axisValues) {\n return axisValues[axisValues.length - 1];\n }\n\n static timeDimensionMember(td) {\n return `${td.dimension}.${td.granularity}`;\n }\n\n static deserialize(data, options = {}) {\n return new ResultSet(data.loadResponse, options);\n }\n\n constructor(loadResponse, options = {}) {\n this.loadResponse = loadResponse;\n\n if (this.loadResponse.queryType != null) {\n this.queryType = loadResponse.queryType;\n this.loadResponses = loadResponse.results;\n } else {\n this.queryType = QUERY_TYPE.REGULAR_QUERY;\n this.loadResponse.pivotQuery = {\n ...loadResponse.query,\n queryType: this.queryType\n };\n this.loadResponses = [loadResponse];\n }\n\n if (!Object.values(QUERY_TYPE).includes(this.queryType)) {\n throw new Error('Unknown query type');\n }\n\n this.parseDateMeasures = options.parseDateMeasures;\n this.options = options;\n\n this.backwardCompatibleData = [];\n }\n\n drillDown(drillDownLocator, pivotConfig) {\n if (this.queryType === QUERY_TYPE.COMPARE_DATE_RANGE_QUERY) {\n throw new Error('compareDateRange drillDown query is not currently supported');\n }\n if (this.queryType === QUERY_TYPE.BLENDING_QUERY) {\n throw new Error('Data blending drillDown query is not currently supported');\n }\n\n const { query } = this.loadResponses[0];\n const { xValues = [], yValues = [] } = drillDownLocator;\n const normalizedPivotConfig = this.normalizePivotConfig(pivotConfig);\n\n const values = [];\n normalizedPivotConfig.x.forEach((member, currentIndex) => values.push([member, xValues[currentIndex]]));\n normalizedPivotConfig.y.forEach((member, currentIndex) => values.push([member, yValues[currentIndex]]));\n\n const { filters: parentFilters = [], segments = [] } = this.query();\n const { measures } = this.loadResponses[0].annotation;\n let [, measureName] = values.find(([member]) => member === 'measures') || [];\n\n if (measureName === undefined) {\n [measureName] = Object.keys(measures);\n }\n\n if (!(measures[measureName] && measures[measureName].drillMembers || []).length) {\n return null;\n }\n\n const filters = [\n {\n member: measureName,\n operator: 'measureFilter',\n },\n ...parentFilters\n ];\n const timeDimensions = [];\n\n values.filter(([member]) => member !== 'measures')\n .forEach(([member, value]) => {\n const [cubeName, dimension, granularity] = member.split('.');\n\n if (granularity !== undefined) {\n const range = dayRange(value, value).snapTo(granularity);\n const originalTimeDimension = query.timeDimensions.find((td) => td.dimension);\n \n let dateRange = [\n range.start,\n range.end\n ];\n \n if (originalTimeDimension?.dateRange) {\n const [originalStart, originalEnd] = originalTimeDimension.dateRange;\n \n dateRange = [\n dayjs(originalStart) > range.start ? dayjs(originalStart) : range.start,\n dayjs(originalEnd) < range.end ? dayjs(originalEnd) : range.end,\n ];\n }\n\n timeDimensions.push({\n dimension: [cubeName, dimension].join('.'),\n dateRange: dateRange.map((dt) => dt.format('YYYY-MM-DDTHH:mm:ss.SSS')),\n });\n } else if (value == null) {\n filters.push({\n member,\n operator: 'notSet',\n });\n } else {\n filters.push({\n member,\n operator: 'equals',\n values: [value.toString()],\n });\n }\n });\n \n if (\n timeDimensions.length === 0 &&\n query.timeDimensions.length > 0 &&\n query.timeDimensions[0].granularity == null\n ) {\n timeDimensions.push(query.timeDimensions[0]);\n }\n\n return {\n ...measures[measureName].drillMembersGrouped,\n filters,\n ...(segments.length > 0 ? { segments } : {}),\n timeDimensions,\n segments,\n timezone: query.timezone\n };\n }\n\n series(pivotConfig) {\n return this.seriesNames(pivotConfig).map(({ title, shortTitle, key }) => ({\n title,\n shortTitle,\n key,\n series: this.chartPivot(pivotConfig).map(({ x, ...obj }) => ({ value: obj[key], x }))\n }));\n }\n\n axisValues(axis, resultIndex = 0) {\n const { query } = this.loadResponses[resultIndex];\n\n return row => {\n const value = (measure) => axis.filter(d => d !== 'measures')\n .map(d => (row[d] != null ? row[d] : null)).concat(measure ? [measure] : []);\n\n if (axis.find(d => d === 'measures') && (query.measures || []).length) {\n return query.measures.map(value);\n }\n\n return [value()];\n };\n }\n\n axisValuesString(axisValues, delimiter) {\n const formatValue = (v) => {\n if (v == null) {\n return '∅';\n } else if (v === '') {\n return '[Empty string]';\n } else {\n return v;\n }\n };\n return axisValues.map(formatValue).join(delimiter || ', ');\n }\n\n static getNormalizedPivotConfig(query = {}, pivotConfig = null) {\n const defaultPivotConfig = {\n x: [],\n y: [],\n fillMissingDates: true,\n joinDateRange: false\n };\n\n const {\n measures = [],\n dimensions = []\n } = query;\n\n const timeDimensions = (query.timeDimensions || []).filter(td => !!td.granularity);\n\n pivotConfig = pivotConfig || (timeDimensions.length ? {\n x: timeDimensions.map(td => ResultSet.timeDimensionMember(td)),\n y: dimensions\n } : {\n x: dimensions,\n y: []\n });\n\n pivotConfig = mergeDeepLeft(pivotConfig, defaultPivotConfig);\n\n const substituteTimeDimensionMembers = axis => axis.map(\n subDim => (\n (\n timeDimensions.find(td => td.dimension === subDim) &&\n !dimensions.find(d => d === subDim)\n ) ?\n ResultSet.timeDimensionMember(query.timeDimensions.find(td => td.dimension === subDim)) :\n subDim\n )\n );\n\n pivotConfig.x = substituteTimeDimensionMembers(pivotConfig.x);\n pivotConfig.y = substituteTimeDimensionMembers(pivotConfig.y);\n\n const allIncludedDimensions = pivotConfig.x.concat(pivotConfig.y);\n const allDimensions = timeDimensions.map(td => ResultSet.timeDimensionMember(td)).concat(dimensions);\n\n const dimensionFilter = (key) => allDimensions.includes(key) || key === 'measures';\n\n pivotConfig.x = pivotConfig.x.concat(\n allDimensions.filter(d => !allIncludedDimensions.includes(d) && d !== 'compareDateRange')\n )\n .filter(dimensionFilter);\n pivotConfig.y = pivotConfig.y.filter(dimensionFilter);\n\n if (!pivotConfig.x.concat(pivotConfig.y).find(d => d === 'measures')) {\n pivotConfig.y.push('measures');\n }\n\n if (dimensions.includes('compareDateRange') && !pivotConfig.y.concat(pivotConfig.x).includes('compareDateRange')) {\n pivotConfig.y.unshift('compareDateRange');\n }\n\n if (!measures.length) {\n pivotConfig.x = pivotConfig.x.filter(d => d !== 'measures');\n pivotConfig.y = pivotConfig.y.filter(d => d !== 'measures');\n }\n\n return pivotConfig;\n }\n\n normalizePivotConfig(pivotConfig) {\n return ResultSet.getNormalizedPivotConfig(this.loadResponse.pivotQuery, pivotConfig);\n }\n\n timeSeries(timeDimension, resultIndex) {\n if (!timeDimension.granularity) {\n return null;\n }\n\n let { dateRange } = timeDimension;\n\n if (!dateRange) {\n const member = ResultSet.timeDimensionMember(timeDimension);\n const dates = pipe(\n map(row => row[member] && internalDayjs(row[member])),\n filter(Boolean)\n )(this.timeDimensionBackwardCompatibleData(resultIndex));\n\n dateRange = dates.length && [\n reduce(minBy(d => d.toDate()), dates[0], dates),\n reduce(maxBy(d => d.toDate()), dates[0], dates)\n ] || null;\n }\n\n if (!dateRange) {\n return null;\n }\n\n const padToDay = timeDimension.dateRange ?\n timeDimension.dateRange.find(d => d.match(DateRegex)) :\n !['hour', 'minute', 'second'].includes(timeDimension.granularity);\n\n const [start, end] = dateRange;\n const range = dayRange(start, end);\n\n if (!TIME_SERIES[timeDimension.granularity]) {\n throw new Error(`Unsupported time granularity: ${timeDimension.granularity}`);\n }\n\n return TIME_SERIES[timeDimension.granularity](\n padToDay ? range.snapTo('d') : range\n );\n }\n\n pivot(pivotConfig) {\n pivotConfig = this.normalizePivotConfig(pivotConfig);\n const { pivotQuery: query } = this.loadResponse;\n\n const pivotImpl = (resultIndex = 0) => {\n let groupByXAxis = groupByToPairs(({ xValues }) => this.axisValuesString(xValues));\n\n const measureValue = (row, measure) => row[measure] || 0;\n\n if (\n pivotConfig.fillMissingDates &&\n pivotConfig.x.length === 1 &&\n (equals(\n pivotConfig.x,\n (query.timeDimensions || [])\n .filter(td => Boolean(td.granularity))\n .map(td => ResultSet.timeDimensionMember(td))\n ))\n ) {\n const series = this.loadResponses.map(\n (loadResponse) => this.timeSeries(loadResponse.query.timeDimensions[0], resultIndex)\n );\n\n if (series[0]) {\n groupByXAxis = (rows) => {\n const byXValues = groupBy(\n ({ xValues }) => xValues[0],\n rows\n );\n return series[resultIndex].map(d => [d, byXValues[d] || [{ xValues: [d], row: {} }]]);\n };\n }\n }\n\n const xGrouped = pipe(\n map(row => this.axisValues(pivotConfig.x, resultIndex)(row).map(xValues => ({ xValues, row }))),\n unnest,\n groupByXAxis\n )(this.timeDimensionBackwardCompatibleData(resultIndex));\n\n const yValuesMap = {};\n xGrouped.forEach(([, rows]) => {\n rows.forEach(({ row }) => {\n this.axisValues(pivotConfig.y, resultIndex)(row).forEach((values) => {\n if (Object.keys(row).length > 0) {\n yValuesMap[values.join()] = values;\n }\n });\n });\n });\n const allYValues = Object.values(yValuesMap);\n\n const measureOnX = Boolean(pivotConfig.x.find(d => d === 'measures'));\n\n return xGrouped.map(([, rows]) => {\n const { xValues } = rows[0];\n const yGrouped = {};\n\n rows.forEach(({ row }) => {\n const arr = this.axisValues(pivotConfig.y, resultIndex)(row).map(yValues => ({ yValues, row }));\n arr.forEach((res) => {\n yGrouped[this.axisValuesString(res.yValues)] = res;\n });\n });\n\n return {\n xValues,\n yValuesArray: unnest(allYValues.map(yValues => {\n const measure = measureOnX ?\n ResultSet.measureFromAxis(xValues) :\n ResultSet.measureFromAxis(yValues);\n\n return [[yValues, measureValue((yGrouped[this.axisValuesString(yValues)] ||\n ({ row: {} })).row, measure)]];\n }))\n };\n });\n };\n\n const pivots = this.loadResponses.length > 1\n ? this.loadResponses.map((_, index) => pivotImpl(index))\n : [];\n\n return pivots.length\n ? this.mergePivots(pivots, pivotConfig.joinDateRange)\n : pivotImpl();\n }\n\n mergePivots(pivots, joinDateRange) {\n const minLengthPivot = pivots.reduce(\n (memo, current) => (memo != null && current.length >= memo.length ? memo : current), null\n );\n\n return minLengthPivot.map((_, index) => {\n const xValues = joinDateRange\n ? [pivots.map((pivot) => pivot[index] && pivot[index].xValues || []).join(', ')]\n : minLengthPivot[index].xValues;\n\n return {\n xValues,\n yValuesArray: unnest(pivots.map((pivot) => pivot[index].yValuesArray))\n };\n });\n }\n\n pivotedRows(pivotConfig) { // TODO\n return this.chartPivot(pivotConfig);\n }\n\n chartPivot(pivotConfig) {\n const validate = (value) => {\n if (this.parseDateMeasures && LocalDateRegex.test(value)) {\n return new Date(value);\n } else if (!Number.isNaN(Number.parseFloat(value))) {\n return Number.parseFloat(value);\n }\n\n return value;\n };\n\n const duplicateMeasures = new Set();\n if (this.queryType === QUERY_TYPE.BLENDING_QUERY) {\n const allMeasures = flatten(this.loadResponses.map(({ query }) => query.measures));\n allMeasures.filter((e, i, a) => a.indexOf(e) !== i).forEach(m => duplicateMeasures.add(m));\n }\n\n return this.pivot(pivotConfig).map(({ xValues, yValuesArray }) => {\n const yValuesMap = {};\n\n yValuesArray\n .forEach(([yValues, m], i) => {\n yValuesMap[this.axisValuesString(aliasSeries(yValues, i, pivotConfig, duplicateMeasures), ',')] = m && validate(m);\n });\n\n return ({\n x: this.axisValuesString(xValues, ','),\n xValues,\n ...yValuesMap\n });\n });\n }\n\n tablePivot(pivotConfig) {\n const normalizedPivotConfig = this.normalizePivotConfig(pivotConfig || {});\n const isMeasuresPresent = normalizedPivotConfig.x.concat(normalizedPivotConfig.y).includes('measures');\n\n return this.pivot(normalizedPivotConfig).map(({ xValues, yValuesArray }) => fromPairs(\n normalizedPivotConfig.x\n .map((key, index) => [key, xValues[index]])\n .concat(\n isMeasuresPresent ? yValuesArray.map(([yValues, measure]) => [\n yValues.length ? yValues.join() : 'value',\n measure\n ]) : []\n )\n ));\n }\n\n tableColumns(pivotConfig) {\n const normalizedPivotConfig = this.normalizePivotConfig(pivotConfig || {});\n const annotations = pipe(\n pluck('annotation'),\n reduce(mergeDeepLeft(), {})\n )(this.loadResponses);\n const flatMeta = Object.values(annotations).reduce((a, b) => ({ ...a, ...b }), {});\n const schema = {};\n\n const extractFields = (key) => {\n const { title, shortTitle, type, format, meta } = flatMeta[key] || {};\n\n return {\n key,\n title,\n shortTitle,\n type,\n format,\n meta\n };\n };\n\n const pivot = this.pivot(normalizedPivotConfig);\n\n (pivot[0] && pivot[0].yValuesArray || []).forEach(([yValues]) => {\n if (yValues.length > 0) {\n let currentItem = schema;\n\n yValues.forEach((value, index) => {\n currentItem[`_${value}`] = {\n key: value,\n memberId: normalizedPivotConfig.y[index] === 'measures'\n ? value\n : normalizedPivotConfig.y[index],\n children: (currentItem[`_${value}`] && currentItem[`_${value}`].children) || {}\n };\n\n currentItem = currentItem[`_${value}`].children;\n });\n }\n });\n\n const toColumns = (item = {}, path = []) => {\n if (Object.keys(item).length === 0) {\n return [];\n }\n\n return Object.values(item).map(({ key, ...currentItem }) => {\n const children = toColumns(currentItem.children, [\n ...path,\n key\n ]);\n\n const { title, shortTitle, ...fields } = extractFields(currentItem.memberId);\n\n const dimensionValue = key !== currentItem.memberId || title == null ? key : '';\n\n if (!children.length) {\n return {\n ...fields,\n key,\n dataIndex: [...path, key].join(),\n title: [title, dimensionValue].join(' ').trim(),\n shortTitle: dimensionValue || shortTitle,\n };\n }\n\n return {\n ...fields,\n key,\n title: [title, dimensionValue].join(' ').trim(),\n shortTitle: dimensionValue || shortTitle,\n children,\n };\n });\n };\n\n let otherColumns = [];\n\n if (!pivot.length && normalizedPivotConfig.y.includes('measures')) {\n otherColumns = (this.loadResponses[0].query.measures || []).map(\n (key) => ({ ...extractFields(key), dataIndex: key })\n );\n }\n\n // Syntatic column to display the measure value\n if (!normalizedPivotConfig.y.length && normalizedPivotConfig.x.includes('measures')) {\n otherColumns.push({\n key: 'value',\n dataIndex: 'value',\n title: 'Value',\n shortTitle: 'Value',\n type: 'string',\n });\n }\n\n return normalizedPivotConfig.x\n .map((key) => {\n if (key === 'measures') {\n return {\n key: 'measures',\n dataIndex: 'measures',\n title: 'Measures',\n shortTitle: 'Measures',\n type: 'string',\n };\n }\n\n return ({ ...extractFields(key), dataIndex: key });\n })\n .concat(toColumns(schema))\n .concat(otherColumns);\n }\n\n totalRow(pivotConfig) {\n return this.chartPivot(pivotConfig)[0];\n }\n\n categories(pivotConfig) { // TODO\n return this.chartPivot(pivotConfig);\n }\n\n seriesNames(pivotConfig) {\n pivotConfig = this.normalizePivotConfig(pivotConfig);\n const measures = pipe(\n pluck('annotation'),\n pluck('measures'),\n mergeAll\n )(this.loadResponses);\n\n const seriesNames = unnest(this.loadResponses.map((_, index) => pipe(\n map(this.axisValues(pivotConfig.y, index)),\n unnest,\n uniq\n )(\n this.timeDimensionBackwardCompatibleData(index)\n )));\n const duplicateMeasures = new Set();\n if (this.queryType === QUERY_TYPE.BLENDING_QUERY) {\n const allMeasures = flatten(this.loadResponses.map(({ query }) => query.measures));\n allMeasures.filter((e, i, a) => a.indexOf(e) !== i).forEach(m => duplicateMeasures.add(m));\n }\n\n return seriesNames.map((axisValues, i) => {\n const aliasedAxis = aliasSeries(axisValues, i, pivotConfig, duplicateMeasures);\n return {\n title: this.axisValuesString(\n pivotConfig.y.find(d => d === 'measures') ?\n dropLast(1, aliasedAxis).concat(\n measures[\n ResultSet.measureFromAxis(axisValues)\n ].title\n ) :\n aliasedAxis, ', '\n ),\n shortTitle: this.axisValuesString(\n pivotConfig.y.find(d => d === 'measures') ?\n dropLast(1, aliasedAxis).concat(\n measures[\n ResultSet.measureFromAxis(axisValues)\n ].shortTitle\n ) :\n aliasedAxis, ', '\n ),\n key: this.axisValuesString(aliasedAxis, ','),\n yValues: axisValues\n };\n });\n }\n\n query() {\n if (this.queryType !== QUERY_TYPE.REGULAR_QUERY) {\n throw new Error(`Method is not supported for a '${this.queryType}' query type. Please use decompose`);\n }\n\n return this.loadResponses[0].query;\n }\n\n pivotQuery() {\n return this.loadResponse.pivotQuery || null;\n }\n\n totalRows() {\n return this.loadResponses[0].total;\n }\n\n rawData() {\n if (this.queryType !== QUERY_TYPE.REGULAR_QUERY) {\n throw new Error(`Method is not supported for a '${this.queryType}' query type. Please use decompose`);\n }\n\n return this.loadResponses[0].data;\n }\n\n annotation() {\n if (this.queryType !== QUERY_TYPE.REGULAR_QUERY) {\n throw new Error(`Method is not supported for a '${this.queryType}' query type. Please use decompose`);\n }\n\n return this.loadResponses[0].annotation;\n }\n\n timeDimensionBackwardCompatibleData(resultIndex) {\n if (resultIndex === undefined) {\n throw new Error('resultIndex is required');\n }\n\n if (!this.backwardCompatibleData[resultIndex]) {\n const { data, query } = this.loadResponses[resultIndex];\n const timeDimensions = (query.timeDimensions || []).filter(td => Boolean(td.granularity));\n\n this.backwardCompatibleData[resultIndex] = data.map(row => (\n {\n ...row,\n ...(\n fromPairs(Object.keys(row)\n .filter(\n field => timeDimensions.find(d => d.dimension === field) &&\n !row[ResultSet.timeDimensionMember(timeDimensions.find(d => d.dimension === field))]\n ).map(field => (\n [ResultSet.timeDimensionMember(timeDimensions.find(d => d.dimension === field)), row[field]]\n )))\n )\n }\n ));\n }\n\n return this.backwardCompatibleData[resultIndex];\n }\n\n decompose() {\n return this.loadResponses.map((result) => new ResultSet({\n queryType: QUERY_TYPE.REGULAR_QUERY,\n pivotQuery: {\n ...result.query,\n queryType: QUERY_TYPE.REGULAR_QUERY,\n },\n results: [result]\n }, this.options));\n }\n\n serialize() {\n return {\n loadResponse: clone(this.loadResponse)\n };\n }\n}\n\nexport default ResultSet;\n","export default class SqlQuery {\n constructor(sqlQuery) {\n this.sqlQuery = sqlQuery;\n }\n\n rawQuery() {\n return this.sqlQuery.sql;\n }\n\n sql() {\n return this.rawQuery().sql[0];\n }\n}\n","/**\n * @module @cubejs-client/core\n */\n\nimport { unnest, fromPairs } from 'ramda';\n\nconst memberMap = (memberArray) => fromPairs(memberArray.map((m) => [m.name, m]));\n\nconst operators = {\n string: [\n { name: 'contains', title: 'contains' },\n { name: 'notContains', title: 'does not contain' },\n { name: 'equals', title: 'equals' },\n { name: 'notEquals', title: 'does not equal' },\n { name: 'set', title: 'is set' },\n { name: 'notSet', title: 'is not set' },\n { name: 'startsWith', title: 'starts with' },\n { name: 'notStartsWith', title: 'does not start with' },\n { name: 'endsWith', title: 'ends with' },\n { name: 'notEndsWith', title: 'does not end with' },\n ],\n number: [\n { name: 'equals', title: 'equals' },\n { name: 'notEquals', title: 'does not equal' },\n { name: 'set', title: 'is set' },\n { name: 'notSet', title: 'is not set' },\n { name: 'gt', title: '>' },\n { name: 'gte', title: '>=' },\n { name: 'lt', title: '<' },\n { name: 'lte', title: '<=' },\n ],\n time: [\n { name: 'equals', title: 'equals' },\n { name: 'notEquals', title: 'does not equal' },\n { name: 'inDateRange', title: 'in date range' },\n { name: 'notInDateRange', title: 'not in date range' },\n { name: 'afterDate', title: 'after date' },\n { name: 'afterOrOnDate', title: 'after or on date' },\n { name: 'beforeDate', title: 'before date' },\n { name: 'beforeOrOnDate', title: 'before or on date' },\n ],\n};\n\n/**\n * Contains information about available cubes and it's members.\n */\nclass Meta {\n constructor(metaResponse) {\n this.meta = metaResponse;\n const { cubes } = this.meta;\n this.cubes = cubes;\n this.cubesMap = fromPairs(\n cubes.map((c) => [\n c.name,\n {\n measures: memberMap(c.measures),\n dimensions: memberMap(c.dimensions),\n segments: memberMap(c.segments),\n },\n ])\n );\n }\n\n membersForQuery(query, memberType) {\n return unnest(this.cubes.map((c) => c[memberType])).sort((a, b) => (a.title > b.title ? 1 : -1));\n }\n\n membersGroupedByCube() {\n const memberKeys = ['measures', 'dimensions', 'segments', 'timeDimensions'];\n\n return this.cubes.reduce(\n (memo, cube) => {\n memberKeys.forEach((key) => {\n let members = cube[key];\n\n if (key === 'timeDimensions') {\n members = cube.dimensions.filter((m) => m.type === 'time');\n }\n\n memo[key] = [\n ...memo[key],\n {\n cubeName: cube.name,\n cubeTitle: cube.title,\n type: cube.type,\n public: cube.public,\n members\n },\n ];\n });\n\n return memo;\n },\n {\n measures: [],\n dimensions: [],\n segments: [],\n timeDimensions: [],\n }\n );\n }\n\n resolveMember(memberName, memberType) {\n const [cube] = memberName.split('.');\n\n if (!this.cubesMap[cube]) {\n return { title: memberName, error: `Cube not found ${cube} for path '${memberName}'` };\n }\n\n const memberTypes = Array.isArray(memberType) ? memberType : [memberType];\n const member = memberTypes\n .map((type) => this.cubesMap[cube][type] && this.cubesMap[cube][type][memberName])\n .find((m) => m);\n\n if (!member) {\n return {\n title: memberName,\n error: `Path not found '${memberName}'`,\n };\n }\n\n return member;\n }\n\n defaultTimeDimensionNameFor(memberName) {\n const [cube] = memberName.split('.');\n if (!this.cubesMap[cube]) {\n return null;\n }\n return Object.keys(this.cubesMap[cube].dimensions || {}).find(\n (d) => this.cubesMap[cube].dimensions[d].type === 'time'\n );\n }\n\n filterOperatorsForMember(memberName, memberType) {\n const member = this.resolveMember(memberName, memberType);\n\n return operators[member.type] || operators.string;\n }\n}\n\nexport default Meta;\n","export default class ProgressResult {\n constructor(progressResponse) {\n this.progressResponse = progressResponse;\n }\n\n stage() {\n return this.progressResponse.stage;\n }\n\n timeElapsed() {\n return this.progressResponse.timeElapsed;\n }\n}\n","import fetch from 'cross-fetch';\nimport 'url-search-params-polyfill';\n\nclass HttpTransport {\n constructor({ authorization, apiUrl, method, headers = {}, credentials }) {\n this.authorization = authorization;\n this.apiUrl = apiUrl;\n this.method = method;\n this.headers = headers;\n this.credentials = credentials;\n }\n\n request(method, { baseRequestId, ...params }) {\n let spanCounter = 1;\n const searchParams = new URLSearchParams(\n params && Object.keys(params)\n .map(k => ({ [k]: typeof params[k] === 'object' ? JSON.stringify(params[k]) : params[k] }))\n .reduce((a, b) => ({ ...a, ...b }), {})\n );\n\n let url = `${this.apiUrl}/${method}${searchParams.toString().length ? `?${searchParams}` : ''}`;\n\n const requestMethod = this.method || (url.length < 2000 ? 'GET' : 'POST');\n if (requestMethod === 'POST') {\n url = `${this.apiUrl}/${method}`;\n this.headers['Content-Type'] = 'application/json';\n }\n\n // Currently, all methods make GET requests. If a method makes a request with a body payload,\n // remember to add {'Content-Type': 'application/json'} to the header.\n const runRequest = () => fetch(url, {\n method: requestMethod,\n headers: {\n Authorization: this.authorization,\n 'x-request-id': baseRequestId && `${baseRequestId}-span-${spanCounter++}`,\n ...this.headers\n },\n credentials: this.credentials,\n body: requestMethod === 'POST' ? JSON.stringify(params) : null\n });\n\n return {\n /* eslint no-unsafe-finally: off */\n async subscribe(callback) {\n let result = {\n error: 'network Error' // add default error message\n };\n try {\n result = await runRequest();\n } finally {\n return callback(result, () => this.subscribe(callback));\n }\n }\n };\n }\n}\n\nexport default HttpTransport;\n","export default class RequestError extends Error {\n constructor(message, response, status) {\n super(message);\n this.response = response;\n this.status = status;\n }\n}\n","import { v4 as uuidv4 } from 'uuid';\nimport ResultSet from './ResultSet';\nimport SqlQuery from './SqlQuery';\nimport Meta from './Meta';\nimport ProgressResult from './ProgressResult';\nimport HttpTransport from './HttpTransport';\nimport RequestError from './RequestError';\n\nlet mutexCounter = 0;\n\nconst MUTEX_ERROR = 'Mutex has been changed';\n\n/**\n * Query result dataset formats enum.\n */\nconst ResultType = {\n DEFAULT: 'default',\n COMPACT: 'compact'\n};\n\nfunction mutexPromise(promise) {\n return new Promise(async (resolve, reject) => {\n try {\n resolve(await promise);\n } catch (error) {\n if (error !== MUTEX_ERROR) {\n reject(error);\n }\n }\n });\n}\n\nclass CubeApi {\n constructor(apiToken, options) {\n if (apiToken !== null && !Array.isArray(apiToken) && typeof apiToken === 'object') {\n options = apiToken;\n apiToken = undefined;\n }\n options = options || {};\n\n if (!options.transport && !options.apiUrl) {\n throw new Error('The `apiUrl` option is required');\n }\n\n this.apiToken = apiToken;\n this.apiUrl = options.apiUrl;\n this.method = options.method;\n this.headers = options.headers || {};\n this.credentials = options.credentials;\n this.transport = options.transport || new HttpTransport({\n authorization: typeof apiToken === 'function' ? undefined : apiToken,\n apiUrl: this.apiUrl,\n method: this.method,\n headers: this.headers,\n credentials: this.credentials\n });\n this.pollInterval = options.pollInterval || 5;\n this.parseDateMeasures = options.parseDateMeasures;\n\n this.updateAuthorizationPromise = null;\n }\n\n request(method, params) {\n return this.transport.request(method, {\n baseRequestId: uuidv4(),\n ...params\n });\n }\n\n loadMethod(request, toResult, options, callback) {\n const mutexValue = ++mutexCounter;\n if (typeof options === 'function' && !callback) {\n callback = options;\n options = undefined;\n }\n\n options = options || {};\n\n const mutexKey = options.mutexKey || 'default';\n if (options.mutexObj) {\n options.mutexObj[mutexKey] = mutexValue;\n }\n\n const requestPromise = this\n .updateTransportAuthorization()\n .then(() => request());\n\n let skipAuthorizationUpdate = true;\n let unsubscribed = false;\n\n const checkMutex = async () => {\n const requestInstance = await requestPromise;\n\n if (\n options.mutexObj &&\n options.mutexObj[mutexKey] !== mutexValue\n ) {\n unsubscribed = true;\n if (requestInstance.unsubscribe) {\n await requestInstance.unsubscribe();\n }\n throw MUTEX_ERROR;\n }\n };\n\n const loadImpl = async (response, next) => {\n const requestInstance = await requestPromise;\n\n const subscribeNext = async () => {\n if (options.subscribe && !unsubscribed) {\n if (requestInstance.unsubscribe) {\n return next();\n } else {\n await new Promise(resolve => setTimeout(() => resolve(), this.pollInterval * 1000));\n return next();\n }\n }\n return null;\n };\n\n const continueWait = async (wait) => {\n if (!unsubscribed) {\n if (wait) {\n await new Promise(resolve => setTimeout(() => resolve(), this.pollInterval * 1000));\n }\n return next();\n }\n return null;\n };\n\n if (options.subscribe && !skipAuthorizationUpdate) {\n await this.updateTransportAuthorization();\n }\n\n skipAuthorizationUpdate = false;\n\n if (response.status === 502) {\n await checkMutex();\n return continueWait(true);\n }\n\n let body = {};\n let text = '';\n try {\n text = await response.text();\n body = JSON.parse(text);\n } catch (_) {\n body.error = text;\n }\n\n if (body.error === 'Continue wait') {\n await checkMutex();\n if (options.progressCallback) {\n options.progressCallback(new ProgressResult(body));\n }\n return continueWait();\n }\n\n if (response.status !== 200) {\n await checkMutex();\n if (!options.subscribe && requestInstance.unsubscribe) {\n await requestInstance.unsubscribe();\n }\n\n const error = new RequestError(body.error, body, response.status); // TODO error class\n if (callback) {\n callback(error);\n } else {\n throw error;\n }\n\n return subscribeNext();\n }\n await checkMutex();\n if (!options.subscribe && requestInstance.unsubscribe) {\n await requestInstance.unsubscribe();\n }\n const result = toResult(body);\n if (callback) {\n callback(null, result);\n } else {\n return result;\n }\n\n return subscribeNext();\n };\n\n const promise = requestPromise.then(requestInstance => mutexPromise(requestInstance.subscribe(loadImpl)));\n\n if (callback) {\n return {\n unsubscribe: async () => {\n const requestInstance = await requestPromise;\n\n unsubscribed = true;\n if (requestInstance.unsubscribe) {\n return requestInstance.unsubscribe();\n }\n return null;\n }\n };\n } else {\n return promise;\n }\n }\n\n async updateTransportAuthorization() {\n if (this.updateAuthorizationPromise) {\n await this.updateAuthorizationPromise;\n return;\n }\n\n if (typeof this.apiToken === 'function') {\n this.updateAuthorizationPromise = new Promise(async (resolve, reject) => {\n try {\n const token = await this.apiToken();\n if (this.transport.authorization !== token) {\n this.transport.authorization = token;\n }\n resolve();\n } catch (error) {\n reject(error);\n } finally {\n this.updateAuthorizationPromise = null;\n }\n });\n\n await this.updateAuthorizationPromise;\n }\n }\n\n /**\n * Add system properties to a query object.\n * @param {Query} query\n * @param {string} responseFormat\n * @returns {void}\n * @private\n */\n patchQueryInternal(query, responseFormat) {\n if (\n responseFormat === ResultType.COMPACT &&\n query.responseFormat !== ResultType.COMPACT\n ) {\n return {\n ...query,\n responseFormat: ResultType.COMPACT,\n };\n } else {\n return query;\n }\n }\n\n /**\n * Process result fetched from the gateway#load method according\n * to the network protocol.\n * @param {*} response\n * @returns ResultSet\n * @private\n */\n loadResponseInternal(response, options = {}) {\n if (\n response.results.length\n ) {\n if (options.castNumerics) {\n response.results.forEach((result) => {\n const numericMembers = Object.entries({\n ...result.annotation.measures,\n ...result.annotation.dimensions,\n }).map(([k, v]) => {\n if (v.type === 'number') {\n return k;\n }\n \n return undefined;\n }).filter(Boolean);\n \n result.data = result.data.map((row) => {\n numericMembers.forEach((key) => {\n if (row[key] != null) {\n row[key] = Number(row[key]);\n }\n });\n \n return row;\n });\n });\n }\n \n if (response.results[0].query.responseFormat &&\n response.results[0].query.responseFormat === ResultType.COMPACT) {\n response.results.forEach((result, j) => {\n const data = [];\n result.data.dataset.forEach((r) => {\n const row = {};\n result.data.members.forEach((m, i) => {\n row[m] = r[i];\n });\n data.push(row);\n });\n response.results[j].data = data;\n });\n }\n }\n \n return new ResultSet(response, {\n parseDateMeasures: this.parseDateMeasures\n });\n }\n\n load(query, options, callback, responseFormat = ResultType.DEFAULT) {\n if (responseFormat === ResultType.COMPACT) {\n if (Array.isArray(query)) {\n query = query.map((q) => this.patchQueryInternal(q, ResultType.COMPACT));\n } else {\n query = this.patchQueryInternal(query, ResultType.COMPACT);\n }\n }\n return this.loadMethod(\n () => this.request('load', {\n query,\n queryType: 'multi',\n }),\n (response) => this.loadResponseInternal(response, options),\n options,\n callback\n );\n }\n\n subscribe(query, options, callback, responseFormat = ResultType.DEFAULT) {\n if (responseFormat === ResultType.COMPACT) {\n if (Array.isArray(query)) {\n query = query.map((q) => this.patchQueryInternal(q, ResultType.COMPACT));\n } else {\n query = this.patchQueryInternal(query, ResultType.COMPACT);\n }\n }\n return this.loadMethod(\n () => this.request('subscribe', {\n query,\n queryType: 'multi',\n }),\n (response) => this.loadResponseInternal(response, options),\n { ...options, subscribe: true },\n callback\n );\n }\n\n sql(query, options, callback) {\n return this.loadMethod(\n () => this.request('sql', { query }),\n (response) => (Array.isArray(response) ? response.map((body) => new SqlQuery(body)) : new SqlQuery(response)),\n options,\n callback\n );\n }\n\n meta(options, callback) {\n return this.loadMethod(\n () => this.request('meta'),\n (body) => new Meta(body),\n options,\n callback\n );\n }\n\n dryRun(query, options, callback) {\n return this.loadMethod(\n () => this.request('dry-run', { query }),\n (response) => response,\n options,\n callback\n );\n }\n}\n\nexport default (apiToken, options) => new CubeApi(apiToken, options);\n\nexport { CubeApi, HttpTransport, ResultSet, RequestError, Meta };\nexport * from './utils';\n"],"names":["DEFAULT_GRANULARITY","GRANULARITIES","name","undefined","title","removeEmptyQueryFields","_query","query","fromPairs","toPairs","map","key","value","includes","Array","isArray","length","Object","keys","filter","Boolean","validateQuery","filters","f","operator","timeDimensions","td","dateRange","granularity","areQueriesEqual","query1","query2","equals","entries","order","defaultOrder","find","d","dimension","measures","dimensions","defaultHeuristics","newState","oldQuery","options","clone","props","meta","sessionGranularity","state","newQuery","defaultTimeDimension","defaultTimeDimensionNameFor","pivotConfig","shouldApplyHeuristicOrder","chartType","newChartType","isQueryPresent","every","q","movePivotItem","sourceIndex","destinationIndex","sourceAxis","destinationAxis","nextPivotConfig","x","y","id","lastIndex","splice","moveItemInArray","list","result","removed","flattenFilters","reduce","memo","or","and","getQueryMembers","members","Set","forEach","member","add","getOrderMembersFromOrder","orderMembers","ids","indexedOrderMembers","indexBy","prop","nextOrderMembers","memberId","currentOrder","push","has","aliasSeries","values","index","duplicateMeasures","nonNullValues","dayjs","extend","quarterOfYear","internalDayjs","locale","en","weekStart","TIME_SERIES","day","range","by","format","month","snapTo","year","hour","minute","second","week","startOf","quarter","DateRegex","LocalDateRegex","groupByToPairs","keyFn","acc","Map","data","row","set","get","from","unnest","arr","res","subArr","element","dayRange","to","results","start","end","isBefore","isSame","endOf","QUERY_TYPE","REGULAR_QUERY","COMPARE_DATE_RANGE_QUERY","BLENDING_QUERY","ResultSet","loadResponse","queryType","loadResponses","pivotQuery","Error","parseDateMeasures","backwardCompatibleData","drillDownLocator","xValues","yValues","normalizedPivotConfig","normalizePivotConfig","currentIndex","parentFilters","segments","annotation","measureName","drillMembers","split","cubeName","originalTimeDimension","originalStart","originalEnd","join","dt","toString","drillMembersGrouped","timezone","seriesNames","shortTitle","series","chartPivot","obj","axis","resultIndex","measure","concat","axisValues","delimiter","formatValue","v","getNormalizedPivotConfig","timeDimension","timeDimensionMember","dates","pipe","timeDimensionBackwardCompatibleData","minBy","toDate","maxBy","padToDay","match","pivotImpl","groupByXAxis","axisValuesString","measureValue","fillMissingDates","timeSeries","rows","byXValues","groupBy","xGrouped","yValuesMap","allYValues","measureOnX","yGrouped","yValuesArray","measureFromAxis","pivots","_","mergePivots","joinDateRange","minLengthPivot","current","pivot","validate","test","Date","Number","isNaN","parseFloat","allMeasures","flatten","e","i","a","indexOf","m","isMeasuresPresent","annotations","pluck","mergeDeepLeft","flatMeta","b","schema","extractFields","type","currentItem","children","toColumns","item","path","fields","dimensionValue","dataIndex","trim","otherColumns","mergeAll","uniq","aliasedAxis","dropLast","total","field","defaultPivotConfig","substituteTimeDimensionMembers","subDim","allIncludedDimensions","allDimensions","dimensionFilter","unshift","SqlQuery","sqlQuery","sql","rawQuery","memberMap","memberArray","operators","string","number","time","Meta","metaResponse","cubes","cubesMap","c","memberType","sort","memberKeys","cube","cubeTitle","memberName","error","memberTypes","resolveMember","ProgressResult","progressResponse","stage","timeElapsed","HttpTransport","authorization","apiUrl","method","headers","credentials","baseRequestId","params","spanCounter","searchParams","URLSearchParams","k","_typeof","JSON","stringify","url","requestMethod","runRequest","fetch","Authorization","body","subscribe","callback","RequestError","message","response","status","mutexCounter","MUTEX_ERROR","ResultType","DEFAULT","COMPACT","mutexPromise","promise","Promise","resolve","reject","CubeApi","apiToken","transport","pollInterval","updateAuthorizationPromise","request","uuidv4","toResult","mutexValue","mutexKey","mutexObj","requestPromise","updateTransportAuthorization","then","skipAuthorizationUpdate","unsubscribed","checkMutex","requestInstance","unsubscribe","loadImpl","next","subscribeNext","setTimeout","continueWait","wait","text","parse","progressCallback","token","responseFormat","castNumerics","numericMembers","j","dataset","r","patchQueryInternal","loadMethod","loadResponseInternal"],"mappings":"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"}
1
+ {"version":3,"file":"cubejs-client-core.js","sources":["../src/utils.js","../src/ResultSet.js","../src/SqlQuery.js","../src/Meta.js","../src/ProgressResult.js","../src/HttpTransport.js","../src/RequestError.js","../src/index.js"],"sourcesContent":["import { indexBy, prop, clone, equals, fromPairs, toPairs } from 'ramda';\n\nexport const DEFAULT_GRANULARITY = 'day';\n\nexport const GRANULARITIES = [\n { name: undefined, title: 'w/o grouping' },\n { name: 'second', title: 'Second' },\n { name: 'minute', title: 'Minute' },\n { name: 'hour', title: 'Hour' },\n { name: 'day', title: 'Day' },\n { name: 'week', title: 'Week' },\n { name: 'month', title: 'Month' },\n { name: 'quarter', title: 'Quarter' },\n { name: 'year', title: 'Year' },\n];\n\nexport function removeEmptyQueryFields(_query) {\n const query = _query || {};\n \n return fromPairs(\n toPairs(query)\n .map(([key, value]) => {\n if (\n ['measures', 'dimensions', 'segments', 'timeDimensions', 'filters'].includes(key)\n ) {\n if (Array.isArray(value) && value.length === 0) {\n return null;\n }\n }\n \n if (key === 'order' && value) {\n if (Array.isArray(value) && !value.length) {\n return null;\n } else if (!Object.keys(value).length) {\n return null;\n }\n }\n\n return [key, value];\n })\n .filter(Boolean)\n );\n}\n\nexport function validateQuery(_query) {\n const query = _query || {};\n \n return removeEmptyQueryFields({\n ...query,\n filters: (query.filters || []).filter((f) => f.operator),\n timeDimensions: (query.timeDimensions || []).filter(\n (td) => !(!td.dateRange && !td.granularity)\n ),\n });\n}\n\nexport function areQueriesEqual(query1 = {}, query2 = {}) {\n return (\n equals(\n Object.entries((query1 && query1.order) || {}),\n Object.entries((query2 && query2.order) || {})\n ) && equals(query1, query2)\n );\n}\n\nexport function defaultOrder(query) {\n const granularity = (query.timeDimensions || []).find((d) => d.granularity);\n\n if (granularity) {\n return {\n [granularity.dimension]: 'asc',\n };\n } else if (\n (query.measures || []).length > 0 &&\n (query.dimensions || []).length > 0\n ) {\n return {\n [query.measures[0]]: 'desc',\n };\n } else if ((query.dimensions || []).length > 0) {\n return {\n [query.dimensions[0]]: 'asc',\n };\n }\n\n return {};\n}\n\nexport function defaultHeuristics(newState, oldQuery = {}, options) {\n const { query, ...props } = clone(newState);\n const { meta, sessionGranularity } = options;\n const granularity = sessionGranularity || DEFAULT_GRANULARITY;\n\n let state = {\n query,\n ...props,\n };\n\n let newQuery = null;\n if (!areQueriesEqual(query, oldQuery)) {\n newQuery = query;\n }\n\n if (Array.isArray(newQuery) || Array.isArray(oldQuery)) {\n return newState;\n }\n\n if (newQuery) {\n if (\n (oldQuery.timeDimensions || []).length === 1 &&\n (newQuery.timeDimensions || []).length === 1 &&\n newQuery.timeDimensions[0].granularity &&\n oldQuery.timeDimensions[0].granularity !==\n newQuery.timeDimensions[0].granularity\n ) {\n state = {\n ...state,\n sessionGranularity: newQuery.timeDimensions[0].granularity,\n };\n }\n\n if (\n ((oldQuery.measures || []).length === 0 &&\n (newQuery.measures || []).length > 0) ||\n ((oldQuery.measures || []).length === 1 &&\n (newQuery.measures || []).length === 1 &&\n oldQuery.measures[0] !== newQuery.measures[0])\n ) {\n const [td] = newQuery.timeDimensions || [];\n const defaultTimeDimension = meta.defaultTimeDimensionNameFor(\n newQuery.measures[0]\n );\n newQuery = {\n ...newQuery,\n timeDimensions: defaultTimeDimension\n ? [\n {\n dimension: defaultTimeDimension,\n granularity: (td && td.granularity) || granularity,\n dateRange: td && td.dateRange,\n },\n ]\n : [],\n };\n\n return {\n ...state,\n pivotConfig: null,\n shouldApplyHeuristicOrder: true,\n query: newQuery,\n chartType: defaultTimeDimension ? 'line' : 'number',\n };\n }\n\n if (\n (oldQuery.dimensions || []).length === 0 &&\n (newQuery.dimensions || []).length > 0\n ) {\n newQuery = {\n ...newQuery,\n timeDimensions: (newQuery.timeDimensions || []).map((td) => ({\n ...td,\n granularity: undefined,\n })),\n };\n\n return {\n ...state,\n pivotConfig: null,\n shouldApplyHeuristicOrder: true,\n query: newQuery,\n chartType: 'table',\n };\n }\n\n if (\n (oldQuery.dimensions || []).length > 0 &&\n (newQuery.dimensions || []).length === 0\n ) {\n newQuery = {\n ...newQuery,\n timeDimensions: (newQuery.timeDimensions || []).map((td) => ({\n ...td,\n granularity: td.granularity || granularity,\n })),\n };\n\n return {\n ...state,\n pivotConfig: null,\n shouldApplyHeuristicOrder: true,\n query: newQuery,\n chartType: (newQuery.timeDimensions || []).length ? 'line' : 'number',\n };\n }\n\n if (\n ((oldQuery.dimensions || []).length > 0 ||\n (oldQuery.measures || []).length > 0) &&\n (newQuery.dimensions || []).length === 0 &&\n (newQuery.measures || []).length === 0\n ) {\n newQuery = {\n ...newQuery,\n timeDimensions: [],\n filters: [],\n };\n\n return {\n ...state,\n pivotConfig: null,\n shouldApplyHeuristicOrder: true,\n query: newQuery,\n sessionGranularity: null,\n };\n }\n return state;\n }\n\n if (state.chartType) {\n const newChartType = state.chartType;\n if (\n (newChartType === 'line' || newChartType === 'area') &&\n (oldQuery.timeDimensions || []).length === 1 &&\n !oldQuery.timeDimensions[0].granularity\n ) {\n const [td] = oldQuery.timeDimensions;\n return {\n ...state,\n pivotConfig: null,\n query: {\n ...oldQuery,\n timeDimensions: [{ ...td, granularity }],\n },\n };\n }\n\n if (\n (newChartType === 'pie' ||\n newChartType === 'table' ||\n newChartType === 'number') &&\n (oldQuery.timeDimensions || []).length === 1 &&\n oldQuery.timeDimensions[0].granularity\n ) {\n const [td] = oldQuery.timeDimensions;\n return {\n ...state,\n pivotConfig: null,\n shouldApplyHeuristicOrder: true,\n query: {\n ...oldQuery,\n timeDimensions: [{ ...td, granularity: undefined }],\n },\n };\n }\n }\n\n return state;\n}\n\nexport function isQueryPresent(query) {\n if (!query) {\n return false;\n }\n\n return (Array.isArray(query) ? query : [query]).every(\n (q) => (q.measures && q.measures.length) ||\n (q.dimensions && q.dimensions.length) ||\n (q.timeDimensions && q.timeDimensions.length)\n );\n}\n\nexport function movePivotItem(\n pivotConfig,\n sourceIndex,\n destinationIndex,\n sourceAxis,\n destinationAxis\n) {\n const nextPivotConfig = {\n ...pivotConfig,\n x: [...pivotConfig.x],\n y: [...pivotConfig.y],\n };\n const id = pivotConfig[sourceAxis][sourceIndex];\n const lastIndex = nextPivotConfig[destinationAxis].length - 1;\n\n if (id === 'measures') {\n destinationIndex = lastIndex + 1;\n } else if (\n sourceAxis === destinationAxis &&\n destinationIndex >= lastIndex &&\n nextPivotConfig[destinationAxis][lastIndex] === 'measures'\n ) {\n destinationIndex = lastIndex - 1;\n } else if (\n sourceAxis !== destinationAxis &&\n destinationIndex > lastIndex &&\n nextPivotConfig[destinationAxis][lastIndex] === 'measures'\n ) {\n destinationIndex = lastIndex;\n }\n\n nextPivotConfig[sourceAxis].splice(sourceIndex, 1);\n nextPivotConfig[destinationAxis].splice(destinationIndex, 0, id);\n\n return nextPivotConfig;\n}\n\nexport function moveItemInArray(list, sourceIndex, destinationIndex) {\n const result = [...list];\n const [removed] = result.splice(sourceIndex, 1);\n result.splice(destinationIndex, 0, removed);\n\n return result;\n}\n\nexport function flattenFilters(filters = []) {\n return filters.reduce((memo, filter) => {\n if (filter.or || filter.and) {\n return [...memo, ...flattenFilters(filter.or || filter.and)];\n }\n\n return [...memo, filter];\n }, []);\n}\n\nexport function getQueryMembers(query = {}) {\n const keys = ['measures', 'dimensions', 'segments'];\n const members = new Set();\n\n keys.forEach((key) => (query[key] || []).forEach((member) => members.add(member)));\n (query.timeDimensions || []).forEach((td) => members.add(td.dimension));\n\n flattenFilters(query.filters).forEach((filter) => members.add(filter.dimension || filter.member));\n\n return [...members];\n}\n\nexport function getOrderMembersFromOrder(orderMembers, order) {\n const ids = new Set();\n const indexedOrderMembers = indexBy(prop('id'), orderMembers);\n const entries = Array.isArray(order) ? order : Object.entries(order || {});\n const nextOrderMembers = [];\n\n entries.forEach(([memberId, currentOrder]) => {\n if (currentOrder !== 'none' && indexedOrderMembers[memberId]) {\n ids.add(memberId);\n nextOrderMembers.push({\n ...indexedOrderMembers[memberId],\n order: currentOrder,\n });\n }\n });\n orderMembers.forEach((member) => {\n if (!ids.has(member.id)) {\n nextOrderMembers.push({\n ...member,\n order: member.order || 'none',\n });\n }\n });\n\n return nextOrderMembers;\n}\n\nexport function aliasSeries(values, index, pivotConfig, duplicateMeasures) {\n const nonNullValues = values.filter((value) => value != null);\n\n if (\n pivotConfig &&\n pivotConfig.aliasSeries &&\n pivotConfig.aliasSeries[index]\n ) {\n return [pivotConfig.aliasSeries[index], ...nonNullValues];\n } else if (duplicateMeasures.has(nonNullValues[0])) {\n return [index, ...nonNullValues];\n }\n\n return nonNullValues;\n}\n","import dayjs from 'dayjs';\nimport quarterOfYear from 'dayjs/plugin/quarterOfYear';\n\nimport en from 'dayjs/locale/en';\nimport {\n groupBy, pipe, fromPairs, uniq, filter, map, dropLast, equals, reduce, minBy, maxBy, clone, mergeDeepLeft,\n pluck, mergeAll, flatten,\n} from 'ramda';\n\nimport { aliasSeries } from './utils';\n\ndayjs.extend(quarterOfYear);\n\n// When granularity is week, weekStart Value must be 1. However, since the client can change it globally (https://day.js.org/docs/en/i18n/changing-locale)\n// So the function below has been added.\nconst internalDayjs = (...args) => dayjs(...args).locale({ ...en, weekStart: 1 });\n\nexport const TIME_SERIES = {\n day: (range) => range.by('d').map(d => d.format('YYYY-MM-DDT00:00:00.000')),\n month: (range) => range.snapTo('month').by('M').map(d => d.format('YYYY-MM-01T00:00:00.000')),\n year: (range) => range.snapTo('year').by('y').map(d => d.format('YYYY-01-01T00:00:00.000')),\n hour: (range) => range.by('h').map(d => d.format('YYYY-MM-DDTHH:00:00.000')),\n minute: (range) => range.by('m').map(d => d.format('YYYY-MM-DDTHH:mm:00.000')),\n second: (range) => range.by('s').map(d => d.format('YYYY-MM-DDTHH:mm:ss.000')),\n week: (range) => range.snapTo('week').by('w').map(d => d.startOf('week').format('YYYY-MM-DDT00:00:00.000')),\n quarter: (range) => range.snapTo('quarter').by('quarter').map(d => d.startOf('quarter').format('YYYY-MM-DDT00:00:00.000')),\n};\n\nconst DateRegex = /^\\d\\d\\d\\d-\\d\\d-\\d\\d$/;\nconst LocalDateRegex = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}.\\d{3}Z?$/;\n\nconst groupByToPairs = (keyFn) => {\n const acc = new Map();\n\n return (data) => {\n data.forEach((row) => {\n const key = keyFn(row);\n\n if (!acc.has(key)) {\n acc.set(key, []);\n }\n\n acc.get(key).push(row);\n });\n\n return Array.from(acc.entries());\n };\n};\n\nconst unnest = (arr) => {\n const res = [];\n arr.forEach((subArr) => {\n subArr.forEach(element => res.push(element));\n });\n\n return res;\n};\n\nexport const dayRange = (from, to) => ({\n by: (value) => {\n const results = [];\n\n let start = internalDayjs(from);\n const end = internalDayjs(to);\n\n while (start.isBefore(end) || start.isSame(end)) {\n results.push(start);\n start = start.add(1, value);\n }\n\n return results;\n },\n snapTo: (value) => dayRange(internalDayjs(from).startOf(value), internalDayjs(to).endOf(value)),\n start: internalDayjs(from),\n end: internalDayjs(to),\n});\n\nexport const QUERY_TYPE = {\n REGULAR_QUERY: 'regularQuery',\n COMPARE_DATE_RANGE_QUERY: 'compareDateRangeQuery',\n BLENDING_QUERY: 'blendingQuery',\n};\n\nclass ResultSet {\n static measureFromAxis(axisValues) {\n return axisValues[axisValues.length - 1];\n }\n\n static timeDimensionMember(td) {\n return `${td.dimension}.${td.granularity}`;\n }\n\n static deserialize(data, options = {}) {\n return new ResultSet(data.loadResponse, options);\n }\n\n constructor(loadResponse, options = {}) {\n this.loadResponse = loadResponse;\n\n if (this.loadResponse.queryType != null) {\n this.queryType = loadResponse.queryType;\n this.loadResponses = loadResponse.results;\n } else {\n this.queryType = QUERY_TYPE.REGULAR_QUERY;\n this.loadResponse.pivotQuery = {\n ...loadResponse.query,\n queryType: this.queryType\n };\n this.loadResponses = [loadResponse];\n }\n\n if (!Object.values(QUERY_TYPE).includes(this.queryType)) {\n throw new Error('Unknown query type');\n }\n\n this.parseDateMeasures = options.parseDateMeasures;\n this.options = options;\n\n this.backwardCompatibleData = [];\n }\n\n drillDown(drillDownLocator, pivotConfig) {\n if (this.queryType === QUERY_TYPE.COMPARE_DATE_RANGE_QUERY) {\n throw new Error('compareDateRange drillDown query is not currently supported');\n }\n if (this.queryType === QUERY_TYPE.BLENDING_QUERY) {\n throw new Error('Data blending drillDown query is not currently supported');\n }\n\n const { query } = this.loadResponses[0];\n const { xValues = [], yValues = [] } = drillDownLocator;\n const normalizedPivotConfig = this.normalizePivotConfig(pivotConfig);\n\n const values = [];\n normalizedPivotConfig.x.forEach((member, currentIndex) => values.push([member, xValues[currentIndex]]));\n normalizedPivotConfig.y.forEach((member, currentIndex) => values.push([member, yValues[currentIndex]]));\n\n const { filters: parentFilters = [], segments = [] } = this.query();\n const { measures } = this.loadResponses[0].annotation;\n let [, measureName] = values.find(([member]) => member === 'measures') || [];\n\n if (measureName === undefined) {\n [measureName] = Object.keys(measures);\n }\n\n if (!(measures[measureName] && measures[measureName].drillMembers || []).length) {\n return null;\n }\n\n const filters = [\n {\n member: measureName,\n operator: 'measureFilter',\n },\n ...parentFilters\n ];\n const timeDimensions = [];\n\n values.filter(([member]) => member !== 'measures')\n .forEach(([member, value]) => {\n const [cubeName, dimension, granularity] = member.split('.');\n\n if (granularity !== undefined) {\n const range = dayRange(value, value).snapTo(granularity);\n const originalTimeDimension = query.timeDimensions.find((td) => td.dimension);\n \n let dateRange = [\n range.start,\n range.end\n ];\n \n if (originalTimeDimension?.dateRange) {\n const [originalStart, originalEnd] = originalTimeDimension.dateRange;\n \n dateRange = [\n dayjs(originalStart) > range.start ? dayjs(originalStart) : range.start,\n dayjs(originalEnd) < range.end ? dayjs(originalEnd) : range.end,\n ];\n }\n\n timeDimensions.push({\n dimension: [cubeName, dimension].join('.'),\n dateRange: dateRange.map((dt) => dt.format('YYYY-MM-DDTHH:mm:ss.SSS')),\n });\n } else if (value == null) {\n filters.push({\n member,\n operator: 'notSet',\n });\n } else {\n filters.push({\n member,\n operator: 'equals',\n values: [value.toString()],\n });\n }\n });\n \n if (\n timeDimensions.length === 0 &&\n query.timeDimensions.length > 0 &&\n query.timeDimensions[0].granularity == null\n ) {\n timeDimensions.push(query.timeDimensions[0]);\n }\n\n return {\n ...measures[measureName].drillMembersGrouped,\n filters,\n ...(segments.length > 0 ? { segments } : {}),\n timeDimensions,\n segments,\n timezone: query.timezone\n };\n }\n\n series(pivotConfig) {\n return this.seriesNames(pivotConfig).map(({ title, shortTitle, key }) => ({\n title,\n shortTitle,\n key,\n series: this.chartPivot(pivotConfig).map(({ x, ...obj }) => ({ value: obj[key], x }))\n }));\n }\n\n axisValues(axis, resultIndex = 0) {\n const { query } = this.loadResponses[resultIndex];\n\n return row => {\n const value = (measure) => axis.filter(d => d !== 'measures')\n .map(d => (row[d] != null ? row[d] : null)).concat(measure ? [measure] : []);\n\n if (axis.find(d => d === 'measures') && (query.measures || []).length) {\n return query.measures.map(value);\n }\n\n return [value()];\n };\n }\n\n axisValuesString(axisValues, delimiter) {\n const formatValue = (v) => {\n if (v == null) {\n return '∅';\n } else if (v === '') {\n return '[Empty string]';\n } else {\n return v;\n }\n };\n return axisValues.map(formatValue).join(delimiter || ', ');\n }\n\n static getNormalizedPivotConfig(query = {}, pivotConfig = null) {\n const defaultPivotConfig = {\n x: [],\n y: [],\n fillMissingDates: true,\n joinDateRange: false\n };\n\n const {\n measures = [],\n dimensions = []\n } = query;\n\n const timeDimensions = (query.timeDimensions || []).filter(td => !!td.granularity);\n\n pivotConfig = pivotConfig || (timeDimensions.length ? {\n x: timeDimensions.map(td => ResultSet.timeDimensionMember(td)),\n y: dimensions\n } : {\n x: dimensions,\n y: []\n });\n\n pivotConfig = mergeDeepLeft(pivotConfig, defaultPivotConfig);\n\n const substituteTimeDimensionMembers = axis => axis.map(\n subDim => (\n (\n timeDimensions.find(td => td.dimension === subDim) &&\n !dimensions.find(d => d === subDim)\n ) ?\n ResultSet.timeDimensionMember(query.timeDimensions.find(td => td.dimension === subDim)) :\n subDim\n )\n );\n\n pivotConfig.x = substituteTimeDimensionMembers(pivotConfig.x);\n pivotConfig.y = substituteTimeDimensionMembers(pivotConfig.y);\n\n const allIncludedDimensions = pivotConfig.x.concat(pivotConfig.y);\n const allDimensions = timeDimensions.map(td => ResultSet.timeDimensionMember(td)).concat(dimensions);\n\n const dimensionFilter = (key) => allDimensions.includes(key) || key === 'measures';\n\n pivotConfig.x = pivotConfig.x.concat(\n allDimensions.filter(d => !allIncludedDimensions.includes(d) && d !== 'compareDateRange')\n )\n .filter(dimensionFilter);\n pivotConfig.y = pivotConfig.y.filter(dimensionFilter);\n\n if (!pivotConfig.x.concat(pivotConfig.y).find(d => d === 'measures')) {\n pivotConfig.y.push('measures');\n }\n\n if (dimensions.includes('compareDateRange') && !pivotConfig.y.concat(pivotConfig.x).includes('compareDateRange')) {\n pivotConfig.y.unshift('compareDateRange');\n }\n\n if (!measures.length) {\n pivotConfig.x = pivotConfig.x.filter(d => d !== 'measures');\n pivotConfig.y = pivotConfig.y.filter(d => d !== 'measures');\n }\n\n return pivotConfig;\n }\n\n normalizePivotConfig(pivotConfig) {\n return ResultSet.getNormalizedPivotConfig(this.loadResponse.pivotQuery, pivotConfig);\n }\n\n timeSeries(timeDimension, resultIndex) {\n if (!timeDimension.granularity) {\n return null;\n }\n\n let { dateRange } = timeDimension;\n\n if (!dateRange) {\n const member = ResultSet.timeDimensionMember(timeDimension);\n const dates = pipe(\n map(row => row[member] && internalDayjs(row[member])),\n filter(Boolean)\n )(this.timeDimensionBackwardCompatibleData(resultIndex));\n\n dateRange = dates.length && [\n reduce(minBy(d => d.toDate()), dates[0], dates),\n reduce(maxBy(d => d.toDate()), dates[0], dates)\n ] || null;\n }\n\n if (!dateRange) {\n return null;\n }\n\n const padToDay = timeDimension.dateRange ?\n timeDimension.dateRange.find(d => d.match(DateRegex)) :\n !['hour', 'minute', 'second'].includes(timeDimension.granularity);\n\n const [start, end] = dateRange;\n const range = dayRange(start, end);\n\n if (!TIME_SERIES[timeDimension.granularity]) {\n throw new Error(`Unsupported time granularity: ${timeDimension.granularity}`);\n }\n\n return TIME_SERIES[timeDimension.granularity](\n padToDay ? range.snapTo('d') : range\n );\n }\n\n pivot(pivotConfig) {\n pivotConfig = this.normalizePivotConfig(pivotConfig);\n const { pivotQuery: query } = this.loadResponse;\n\n const pivotImpl = (resultIndex = 0) => {\n let groupByXAxis = groupByToPairs(({ xValues }) => this.axisValuesString(xValues));\n\n const measureValue = (row, measure) => row[measure] || 0;\n\n if (\n pivotConfig.fillMissingDates &&\n pivotConfig.x.length === 1 &&\n (equals(\n pivotConfig.x,\n (query.timeDimensions || [])\n .filter(td => Boolean(td.granularity))\n .map(td => ResultSet.timeDimensionMember(td))\n ))\n ) {\n const series = this.loadResponses.map(\n (loadResponse) => this.timeSeries(loadResponse.query.timeDimensions[0], resultIndex)\n );\n\n if (series[0]) {\n groupByXAxis = (rows) => {\n const byXValues = groupBy(\n ({ xValues }) => xValues[0],\n rows\n );\n return series[resultIndex].map(d => [d, byXValues[d] || [{ xValues: [d], row: {} }]]);\n };\n }\n }\n\n const xGrouped = pipe(\n map(row => this.axisValues(pivotConfig.x, resultIndex)(row).map(xValues => ({ xValues, row }))),\n unnest,\n groupByXAxis\n )(this.timeDimensionBackwardCompatibleData(resultIndex));\n\n const yValuesMap = {};\n xGrouped.forEach(([, rows]) => {\n rows.forEach(({ row }) => {\n this.axisValues(pivotConfig.y, resultIndex)(row).forEach((values) => {\n if (Object.keys(row).length > 0) {\n yValuesMap[values.join()] = values;\n }\n });\n });\n });\n const allYValues = Object.values(yValuesMap);\n\n const measureOnX = Boolean(pivotConfig.x.find(d => d === 'measures'));\n\n return xGrouped.map(([, rows]) => {\n const { xValues } = rows[0];\n const yGrouped = {};\n\n rows.forEach(({ row }) => {\n const arr = this.axisValues(pivotConfig.y, resultIndex)(row).map(yValues => ({ yValues, row }));\n arr.forEach((res) => {\n yGrouped[this.axisValuesString(res.yValues)] = res;\n });\n });\n\n return {\n xValues,\n yValuesArray: unnest(allYValues.map(yValues => {\n const measure = measureOnX ?\n ResultSet.measureFromAxis(xValues) :\n ResultSet.measureFromAxis(yValues);\n\n return [[yValues, measureValue((yGrouped[this.axisValuesString(yValues)] ||\n ({ row: {} })).row, measure)]];\n }))\n };\n });\n };\n\n const pivots = this.loadResponses.length > 1\n ? this.loadResponses.map((_, index) => pivotImpl(index))\n : [];\n\n return pivots.length\n ? this.mergePivots(pivots, pivotConfig.joinDateRange)\n : pivotImpl();\n }\n\n mergePivots(pivots, joinDateRange) {\n const minLengthPivot = pivots.reduce(\n (memo, current) => (memo != null && current.length >= memo.length ? memo : current), null\n );\n\n return minLengthPivot.map((_, index) => {\n const xValues = joinDateRange\n ? [pivots.map((pivot) => pivot[index] && pivot[index].xValues || []).join(', ')]\n : minLengthPivot[index].xValues;\n\n return {\n xValues,\n yValuesArray: unnest(pivots.map((pivot) => pivot[index].yValuesArray))\n };\n });\n }\n\n pivotedRows(pivotConfig) { // TODO\n return this.chartPivot(pivotConfig);\n }\n\n chartPivot(pivotConfig) {\n const validate = (value) => {\n if (this.parseDateMeasures && LocalDateRegex.test(value)) {\n return new Date(value);\n } else if (!Number.isNaN(Number.parseFloat(value))) {\n return Number.parseFloat(value);\n }\n\n return value;\n };\n\n const duplicateMeasures = new Set();\n if (this.queryType === QUERY_TYPE.BLENDING_QUERY) {\n const allMeasures = flatten(this.loadResponses.map(({ query }) => query.measures));\n allMeasures.filter((e, i, a) => a.indexOf(e) !== i).forEach(m => duplicateMeasures.add(m));\n }\n\n return this.pivot(pivotConfig).map(({ xValues, yValuesArray }) => {\n const yValuesMap = {};\n\n yValuesArray\n .forEach(([yValues, m], i) => {\n yValuesMap[this.axisValuesString(aliasSeries(yValues, i, pivotConfig, duplicateMeasures), ',')] = m && validate(m);\n });\n\n return ({\n x: this.axisValuesString(xValues, ','),\n xValues,\n ...yValuesMap\n });\n });\n }\n\n tablePivot(pivotConfig) {\n const normalizedPivotConfig = this.normalizePivotConfig(pivotConfig || {});\n const isMeasuresPresent = normalizedPivotConfig.x.concat(normalizedPivotConfig.y).includes('measures');\n\n return this.pivot(normalizedPivotConfig).map(({ xValues, yValuesArray }) => fromPairs(\n normalizedPivotConfig.x\n .map((key, index) => [key, xValues[index]])\n .concat(\n isMeasuresPresent ? yValuesArray.map(([yValues, measure]) => [\n yValues.length ? yValues.join() : 'value',\n measure\n ]) : []\n )\n ));\n }\n\n tableColumns(pivotConfig) {\n const normalizedPivotConfig = this.normalizePivotConfig(pivotConfig || {});\n const annotations = pipe(\n pluck('annotation'),\n reduce(mergeDeepLeft(), {})\n )(this.loadResponses);\n const flatMeta = Object.values(annotations).reduce((a, b) => ({ ...a, ...b }), {});\n const schema = {};\n\n const extractFields = (key) => {\n const { title, shortTitle, type, format, meta } = flatMeta[key] || {};\n\n return {\n key,\n title,\n shortTitle,\n type,\n format,\n meta\n };\n };\n\n const pivot = this.pivot(normalizedPivotConfig);\n\n (pivot[0] && pivot[0].yValuesArray || []).forEach(([yValues]) => {\n if (yValues.length > 0) {\n let currentItem = schema;\n\n yValues.forEach((value, index) => {\n currentItem[`_${value}`] = {\n key: value,\n memberId: normalizedPivotConfig.y[index] === 'measures'\n ? value\n : normalizedPivotConfig.y[index],\n children: (currentItem[`_${value}`] && currentItem[`_${value}`].children) || {}\n };\n\n currentItem = currentItem[`_${value}`].children;\n });\n }\n });\n\n const toColumns = (item = {}, path = []) => {\n if (Object.keys(item).length === 0) {\n return [];\n }\n\n return Object.values(item).map(({ key, ...currentItem }) => {\n const children = toColumns(currentItem.children, [\n ...path,\n key\n ]);\n\n const { title, shortTitle, ...fields } = extractFields(currentItem.memberId);\n\n const dimensionValue = key !== currentItem.memberId || title == null ? key : '';\n\n if (!children.length) {\n return {\n ...fields,\n key,\n dataIndex: [...path, key].join(),\n title: [title, dimensionValue].join(' ').trim(),\n shortTitle: dimensionValue || shortTitle,\n };\n }\n\n return {\n ...fields,\n key,\n title: [title, dimensionValue].join(' ').trim(),\n shortTitle: dimensionValue || shortTitle,\n children,\n };\n });\n };\n\n let otherColumns = [];\n\n if (!pivot.length && normalizedPivotConfig.y.includes('measures')) {\n otherColumns = (this.loadResponses[0].query.measures || []).map(\n (key) => ({ ...extractFields(key), dataIndex: key })\n );\n }\n\n // Syntatic column to display the measure value\n if (!normalizedPivotConfig.y.length && normalizedPivotConfig.x.includes('measures')) {\n otherColumns.push({\n key: 'value',\n dataIndex: 'value',\n title: 'Value',\n shortTitle: 'Value',\n type: 'string',\n });\n }\n\n return normalizedPivotConfig.x\n .map((key) => {\n if (key === 'measures') {\n return {\n key: 'measures',\n dataIndex: 'measures',\n title: 'Measures',\n shortTitle: 'Measures',\n type: 'string',\n };\n }\n\n return ({ ...extractFields(key), dataIndex: key });\n })\n .concat(toColumns(schema))\n .concat(otherColumns);\n }\n\n totalRow(pivotConfig) {\n return this.chartPivot(pivotConfig)[0];\n }\n\n categories(pivotConfig) { // TODO\n return this.chartPivot(pivotConfig);\n }\n\n seriesNames(pivotConfig) {\n pivotConfig = this.normalizePivotConfig(pivotConfig);\n const measures = pipe(\n pluck('annotation'),\n pluck('measures'),\n mergeAll\n )(this.loadResponses);\n\n const seriesNames = unnest(this.loadResponses.map((_, index) => pipe(\n map(this.axisValues(pivotConfig.y, index)),\n unnest,\n uniq\n )(\n this.timeDimensionBackwardCompatibleData(index)\n )));\n const duplicateMeasures = new Set();\n if (this.queryType === QUERY_TYPE.BLENDING_QUERY) {\n const allMeasures = flatten(this.loadResponses.map(({ query }) => query.measures));\n allMeasures.filter((e, i, a) => a.indexOf(e) !== i).forEach(m => duplicateMeasures.add(m));\n }\n\n return seriesNames.map((axisValues, i) => {\n const aliasedAxis = aliasSeries(axisValues, i, pivotConfig, duplicateMeasures);\n return {\n title: this.axisValuesString(\n pivotConfig.y.find(d => d === 'measures') ?\n dropLast(1, aliasedAxis).concat(\n measures[\n ResultSet.measureFromAxis(axisValues)\n ].title\n ) :\n aliasedAxis, ', '\n ),\n shortTitle: this.axisValuesString(\n pivotConfig.y.find(d => d === 'measures') ?\n dropLast(1, aliasedAxis).concat(\n measures[\n ResultSet.measureFromAxis(axisValues)\n ].shortTitle\n ) :\n aliasedAxis, ', '\n ),\n key: this.axisValuesString(aliasedAxis, ','),\n yValues: axisValues\n };\n });\n }\n\n query() {\n if (this.queryType !== QUERY_TYPE.REGULAR_QUERY) {\n throw new Error(`Method is not supported for a '${this.queryType}' query type. Please use decompose`);\n }\n\n return this.loadResponses[0].query;\n }\n\n pivotQuery() {\n return this.loadResponse.pivotQuery || null;\n }\n\n totalRows() {\n return this.loadResponses[0].total;\n }\n\n rawData() {\n if (this.queryType !== QUERY_TYPE.REGULAR_QUERY) {\n throw new Error(`Method is not supported for a '${this.queryType}' query type. Please use decompose`);\n }\n\n return this.loadResponses[0].data;\n }\n\n annotation() {\n if (this.queryType !== QUERY_TYPE.REGULAR_QUERY) {\n throw new Error(`Method is not supported for a '${this.queryType}' query type. Please use decompose`);\n }\n\n return this.loadResponses[0].annotation;\n }\n\n timeDimensionBackwardCompatibleData(resultIndex) {\n if (resultIndex === undefined) {\n throw new Error('resultIndex is required');\n }\n\n if (!this.backwardCompatibleData[resultIndex]) {\n const { data, query } = this.loadResponses[resultIndex];\n const timeDimensions = (query.timeDimensions || []).filter(td => Boolean(td.granularity));\n\n this.backwardCompatibleData[resultIndex] = data.map(row => (\n {\n ...row,\n ...(\n fromPairs(Object.keys(row)\n .filter(\n field => timeDimensions.find(d => d.dimension === field) &&\n !row[ResultSet.timeDimensionMember(timeDimensions.find(d => d.dimension === field))]\n ).map(field => (\n [ResultSet.timeDimensionMember(timeDimensions.find(d => d.dimension === field)), row[field]]\n )))\n )\n }\n ));\n }\n\n return this.backwardCompatibleData[resultIndex];\n }\n\n decompose() {\n return this.loadResponses.map((result) => new ResultSet({\n queryType: QUERY_TYPE.REGULAR_QUERY,\n pivotQuery: {\n ...result.query,\n queryType: QUERY_TYPE.REGULAR_QUERY,\n },\n results: [result]\n }, this.options));\n }\n\n serialize() {\n return {\n loadResponse: clone(this.loadResponse)\n };\n }\n}\n\nexport default ResultSet;\n","export default class SqlQuery {\n constructor(sqlQuery) {\n this.sqlQuery = sqlQuery;\n }\n\n rawQuery() {\n return this.sqlQuery.sql;\n }\n\n sql() {\n return this.rawQuery().sql[0];\n }\n}\n","/**\n * @module @cubejs-client/core\n */\n\nimport { unnest, fromPairs } from 'ramda';\n\nconst memberMap = (memberArray) => fromPairs(memberArray.map((m) => [m.name, m]));\n\nconst operators = {\n string: [\n { name: 'contains', title: 'contains' },\n { name: 'notContains', title: 'does not contain' },\n { name: 'equals', title: 'equals' },\n { name: 'notEquals', title: 'does not equal' },\n { name: 'set', title: 'is set' },\n { name: 'notSet', title: 'is not set' },\n { name: 'startsWith', title: 'starts with' },\n { name: 'notStartsWith', title: 'does not start with' },\n { name: 'endsWith', title: 'ends with' },\n { name: 'notEndsWith', title: 'does not end with' },\n ],\n number: [\n { name: 'equals', title: 'equals' },\n { name: 'notEquals', title: 'does not equal' },\n { name: 'set', title: 'is set' },\n { name: 'notSet', title: 'is not set' },\n { name: 'gt', title: '>' },\n { name: 'gte', title: '>=' },\n { name: 'lt', title: '<' },\n { name: 'lte', title: '<=' },\n ],\n time: [\n { name: 'equals', title: 'equals' },\n { name: 'notEquals', title: 'does not equal' },\n { name: 'inDateRange', title: 'in date range' },\n { name: 'notInDateRange', title: 'not in date range' },\n { name: 'afterDate', title: 'after date' },\n { name: 'afterOrOnDate', title: 'after or on date' },\n { name: 'beforeDate', title: 'before date' },\n { name: 'beforeOrOnDate', title: 'before or on date' },\n ],\n};\n\n/**\n * Contains information about available cubes and it's members.\n */\nclass Meta {\n constructor(metaResponse) {\n this.meta = metaResponse;\n const { cubes } = this.meta;\n this.cubes = cubes;\n this.cubesMap = fromPairs(\n cubes.map((c) => [\n c.name,\n {\n measures: memberMap(c.measures),\n dimensions: memberMap(c.dimensions),\n segments: memberMap(c.segments),\n },\n ])\n );\n }\n\n membersForQuery(query, memberType) {\n return unnest(this.cubes.map((c) => c[memberType])).sort((a, b) => (a.title > b.title ? 1 : -1));\n }\n\n membersGroupedByCube() {\n const memberKeys = ['measures', 'dimensions', 'segments', 'timeDimensions'];\n\n return this.cubes.reduce(\n (memo, cube) => {\n memberKeys.forEach((key) => {\n let members = cube[key];\n\n if (key === 'timeDimensions') {\n members = cube.dimensions.filter((m) => m.type === 'time');\n }\n\n memo[key] = [\n ...memo[key],\n {\n cubeName: cube.name,\n cubeTitle: cube.title,\n type: cube.type,\n public: cube.public,\n members\n },\n ];\n });\n\n return memo;\n },\n {\n measures: [],\n dimensions: [],\n segments: [],\n timeDimensions: [],\n }\n );\n }\n\n resolveMember(memberName, memberType) {\n const [cube] = memberName.split('.');\n\n if (!this.cubesMap[cube]) {\n return { title: memberName, error: `Cube not found ${cube} for path '${memberName}'` };\n }\n\n const memberTypes = Array.isArray(memberType) ? memberType : [memberType];\n const member = memberTypes\n .map((type) => this.cubesMap[cube][type] && this.cubesMap[cube][type][memberName])\n .find((m) => m);\n\n if (!member) {\n return {\n title: memberName,\n error: `Path not found '${memberName}'`,\n };\n }\n\n return member;\n }\n\n defaultTimeDimensionNameFor(memberName) {\n const [cube] = memberName.split('.');\n if (!this.cubesMap[cube]) {\n return null;\n }\n return Object.keys(this.cubesMap[cube].dimensions || {}).find(\n (d) => this.cubesMap[cube].dimensions[d].type === 'time'\n );\n }\n\n filterOperatorsForMember(memberName, memberType) {\n const member = this.resolveMember(memberName, memberType);\n\n return operators[member.type] || operators.string;\n }\n}\n\nexport default Meta;\n","export default class ProgressResult {\n constructor(progressResponse) {\n this.progressResponse = progressResponse;\n }\n\n stage() {\n return this.progressResponse.stage;\n }\n\n timeElapsed() {\n return this.progressResponse.timeElapsed;\n }\n}\n","import fetch from 'cross-fetch';\nimport 'url-search-params-polyfill';\n\nclass HttpTransport {\n constructor({ authorization, apiUrl, method, headers = {}, credentials }) {\n this.authorization = authorization;\n this.apiUrl = apiUrl;\n this.method = method;\n this.headers = headers;\n this.credentials = credentials;\n }\n\n request(method, { baseRequestId, ...params }) {\n let spanCounter = 1;\n const searchParams = new URLSearchParams(\n params && Object.keys(params)\n .map(k => ({ [k]: typeof params[k] === 'object' ? JSON.stringify(params[k]) : params[k] }))\n .reduce((a, b) => ({ ...a, ...b }), {})\n );\n\n let url = `${this.apiUrl}/${method}${searchParams.toString().length ? `?${searchParams}` : ''}`;\n\n const requestMethod = this.method || (url.length < 2000 ? 'GET' : 'POST');\n if (requestMethod === 'POST') {\n url = `${this.apiUrl}/${method}`;\n this.headers['Content-Type'] = 'application/json';\n }\n\n // Currently, all methods make GET requests. If a method makes a request with a body payload,\n // remember to add {'Content-Type': 'application/json'} to the header.\n const runRequest = () => fetch(url, {\n method: requestMethod,\n headers: {\n Authorization: this.authorization,\n 'x-request-id': baseRequestId && `${baseRequestId}-span-${spanCounter++}`,\n ...this.headers\n },\n credentials: this.credentials,\n body: requestMethod === 'POST' ? JSON.stringify(params) : null\n });\n\n return {\n /* eslint no-unsafe-finally: off */\n async subscribe(callback) {\n let result = {\n error: 'network Error' // add default error message\n };\n try {\n result = await runRequest();\n } finally {\n return callback(result, () => this.subscribe(callback));\n }\n }\n };\n }\n}\n\nexport default HttpTransport;\n","export default class RequestError extends Error {\n constructor(message, response, status) {\n super(message);\n this.response = response;\n this.status = status;\n }\n}\n","import { v4 as uuidv4 } from 'uuid';\nimport ResultSet from './ResultSet';\nimport SqlQuery from './SqlQuery';\nimport Meta from './Meta';\nimport ProgressResult from './ProgressResult';\nimport HttpTransport from './HttpTransport';\nimport RequestError from './RequestError';\n\nlet mutexCounter = 0;\n\nconst MUTEX_ERROR = 'Mutex has been changed';\n\n/**\n * Query result dataset formats enum.\n */\nconst ResultType = {\n DEFAULT: 'default',\n COMPACT: 'compact'\n};\n\nfunction mutexPromise(promise) {\n return new Promise(async (resolve, reject) => {\n try {\n resolve(await promise);\n } catch (error) {\n if (error !== MUTEX_ERROR) {\n reject(error);\n }\n }\n });\n}\n\nclass CubeApi {\n constructor(apiToken, options) {\n if (apiToken !== null && !Array.isArray(apiToken) && typeof apiToken === 'object') {\n options = apiToken;\n apiToken = undefined;\n }\n options = options || {};\n\n if (!options.transport && !options.apiUrl) {\n throw new Error('The `apiUrl` option is required');\n }\n\n this.apiToken = apiToken;\n this.apiUrl = options.apiUrl;\n this.method = options.method;\n this.headers = options.headers || {};\n this.credentials = options.credentials;\n this.transport = options.transport || new HttpTransport({\n authorization: typeof apiToken === 'function' ? undefined : apiToken,\n apiUrl: this.apiUrl,\n method: this.method,\n headers: this.headers,\n credentials: this.credentials\n });\n this.pollInterval = options.pollInterval || 5;\n this.parseDateMeasures = options.parseDateMeasures;\n this.castNumerics = typeof options.castNumerics === 'boolean' ? options.castNumerics : false;\n\n this.updateAuthorizationPromise = null;\n }\n\n request(method, params) {\n return this.transport.request(method, {\n baseRequestId: uuidv4(),\n ...params\n });\n }\n\n loadMethod(request, toResult, options, callback) {\n const mutexValue = ++mutexCounter;\n if (typeof options === 'function' && !callback) {\n callback = options;\n options = undefined;\n }\n\n options = options || {};\n\n const mutexKey = options.mutexKey || 'default';\n if (options.mutexObj) {\n options.mutexObj[mutexKey] = mutexValue;\n }\n\n const requestPromise = this\n .updateTransportAuthorization()\n .then(() => request());\n\n let skipAuthorizationUpdate = true;\n let unsubscribed = false;\n\n const checkMutex = async () => {\n const requestInstance = await requestPromise;\n\n if (\n options.mutexObj &&\n options.mutexObj[mutexKey] !== mutexValue\n ) {\n unsubscribed = true;\n if (requestInstance.unsubscribe) {\n await requestInstance.unsubscribe();\n }\n throw MUTEX_ERROR;\n }\n };\n\n const loadImpl = async (response, next) => {\n const requestInstance = await requestPromise;\n\n const subscribeNext = async () => {\n if (options.subscribe && !unsubscribed) {\n if (requestInstance.unsubscribe) {\n return next();\n } else {\n await new Promise(resolve => setTimeout(() => resolve(), this.pollInterval * 1000));\n return next();\n }\n }\n return null;\n };\n\n const continueWait = async (wait) => {\n if (!unsubscribed) {\n if (wait) {\n await new Promise(resolve => setTimeout(() => resolve(), this.pollInterval * 1000));\n }\n return next();\n }\n return null;\n };\n\n if (options.subscribe && !skipAuthorizationUpdate) {\n await this.updateTransportAuthorization();\n }\n\n skipAuthorizationUpdate = false;\n\n if (response.status === 502) {\n await checkMutex();\n return continueWait(true);\n }\n\n let body = {};\n let text = '';\n try {\n text = await response.text();\n body = JSON.parse(text);\n } catch (_) {\n body.error = text;\n }\n\n if (body.error === 'Continue wait') {\n await checkMutex();\n if (options.progressCallback) {\n options.progressCallback(new ProgressResult(body));\n }\n return continueWait();\n }\n\n if (response.status !== 200) {\n await checkMutex();\n if (!options.subscribe && requestInstance.unsubscribe) {\n await requestInstance.unsubscribe();\n }\n\n const error = new RequestError(body.error, body, response.status); // TODO error class\n if (callback) {\n callback(error);\n } else {\n throw error;\n }\n\n return subscribeNext();\n }\n await checkMutex();\n if (!options.subscribe && requestInstance.unsubscribe) {\n await requestInstance.unsubscribe();\n }\n const result = toResult(body);\n if (callback) {\n callback(null, result);\n } else {\n return result;\n }\n\n return subscribeNext();\n };\n\n const promise = requestPromise.then(requestInstance => mutexPromise(requestInstance.subscribe(loadImpl)));\n\n if (callback) {\n return {\n unsubscribe: async () => {\n const requestInstance = await requestPromise;\n\n unsubscribed = true;\n if (requestInstance.unsubscribe) {\n return requestInstance.unsubscribe();\n }\n return null;\n }\n };\n } else {\n return promise;\n }\n }\n\n async updateTransportAuthorization() {\n if (this.updateAuthorizationPromise) {\n await this.updateAuthorizationPromise;\n return;\n }\n\n if (typeof this.apiToken === 'function') {\n this.updateAuthorizationPromise = new Promise(async (resolve, reject) => {\n try {\n const token = await this.apiToken();\n if (this.transport.authorization !== token) {\n this.transport.authorization = token;\n }\n resolve();\n } catch (error) {\n reject(error);\n } finally {\n this.updateAuthorizationPromise = null;\n }\n });\n\n await this.updateAuthorizationPromise;\n }\n }\n\n /**\n * Add system properties to a query object.\n * @param {Query} query\n * @param {string} responseFormat\n * @returns {void}\n * @private\n */\n patchQueryInternal(query, responseFormat) {\n if (\n responseFormat === ResultType.COMPACT &&\n query.responseFormat !== ResultType.COMPACT\n ) {\n return {\n ...query,\n responseFormat: ResultType.COMPACT,\n };\n } else {\n return query;\n }\n }\n\n /**\n * Process result fetched from the gateway#load method according\n * to the network protocol.\n * @param {*} response\n * @returns ResultSet\n * @private\n */\n loadResponseInternal(response, options = {}) {\n if (\n response.results.length\n ) {\n if (options.castNumerics) {\n response.results.forEach((result) => {\n const numericMembers = Object.entries({\n ...result.annotation.measures,\n ...result.annotation.dimensions,\n }).map(([k, v]) => {\n if (v.type === 'number') {\n return k;\n }\n \n return undefined;\n }).filter(Boolean);\n \n result.data = result.data.map((row) => {\n numericMembers.forEach((key) => {\n if (row[key] != null) {\n row[key] = Number(row[key]);\n }\n });\n \n return row;\n });\n });\n }\n \n if (response.results[0].query.responseFormat &&\n response.results[0].query.responseFormat === ResultType.COMPACT) {\n response.results.forEach((result, j) => {\n const data = [];\n result.data.dataset.forEach((r) => {\n const row = {};\n result.data.members.forEach((m, i) => {\n row[m] = r[i];\n });\n data.push(row);\n });\n response.results[j].data = data;\n });\n }\n }\n \n return new ResultSet(response, {\n parseDateMeasures: this.parseDateMeasures\n });\n }\n\n load(query, options, callback, responseFormat = ResultType.DEFAULT) {\n options = {\n castNumerics: this.castNumerics,\n ...options\n };\n\n if (responseFormat === ResultType.COMPACT) {\n if (Array.isArray(query)) {\n query = query.map((q) => this.patchQueryInternal(q, ResultType.COMPACT));\n } else {\n query = this.patchQueryInternal(query, ResultType.COMPACT);\n }\n }\n return this.loadMethod(\n () => this.request('load', {\n query,\n queryType: 'multi',\n }),\n (response) => this.loadResponseInternal(response, options),\n options,\n callback\n );\n }\n\n subscribe(query, options, callback, responseFormat = ResultType.DEFAULT) {\n options = {\n castNumerics: this.castNumerics,\n ...options\n };\n\n if (responseFormat === ResultType.COMPACT) {\n if (Array.isArray(query)) {\n query = query.map((q) => this.patchQueryInternal(q, ResultType.COMPACT));\n } else {\n query = this.patchQueryInternal(query, ResultType.COMPACT);\n }\n }\n return this.loadMethod(\n () => this.request('subscribe', {\n query,\n queryType: 'multi',\n }),\n (response) => this.loadResponseInternal(response, options),\n { ...options, subscribe: true },\n callback\n );\n }\n\n sql(query, options, callback) {\n return this.loadMethod(\n () => this.request('sql', { query }),\n (response) => (Array.isArray(response) ? response.map((body) => new SqlQuery(body)) : new SqlQuery(response)),\n options,\n callback\n );\n }\n\n meta(options, callback) {\n return this.loadMethod(\n () => this.request('meta'),\n (body) => new Meta(body),\n options,\n callback\n );\n }\n\n dryRun(query, options, callback) {\n return this.loadMethod(\n () => this.request('dry-run', { query }),\n (response) => response,\n options,\n callback\n );\n }\n}\n\nexport default (apiToken, options) => new CubeApi(apiToken, options);\n\nexport { CubeApi, HttpTransport, ResultSet, RequestError, Meta };\nexport * from './utils';\n"],"names":["DEFAULT_GRANULARITY","GRANULARITIES","name","undefined","title","removeEmptyQueryFields","_query","query","fromPairs","toPairs","map","_ref","_ref2","_slicedToArray","key","value","includes","Array","isArray","length","Object","keys","filter","Boolean","validateQuery","_objectSpread","filters","f","operator","timeDimensions","td","dateRange","granularity","areQueriesEqual","query1","arguments","query2","equals","entries","order","defaultOrder","find","d","_defineProperty","dimension","measures","dimensions","defaultHeuristics","newState","oldQuery","options","_clone","clone","props","_objectWithoutProperties","_excluded","meta","sessionGranularity","state","newQuery","_ref6","_ref7","defaultTimeDimension","defaultTimeDimensionNameFor","pivotConfig","shouldApplyHeuristicOrder","chartType","newChartType","_oldQuery$timeDimensi","_oldQuery$timeDimensi2","isQueryPresent","every","q","movePivotItem","sourceIndex","destinationIndex","sourceAxis","destinationAxis","nextPivotConfig","x","_toConsumableArray","y","id","lastIndex","splice","moveItemInArray","list","result","_result$splice","_result$splice2","removed","flattenFilters","reduce","memo","or","and","concat","getQueryMembers","members","Set","forEach","member","add","getOrderMembersFromOrder","orderMembers","ids","indexedOrderMembers","indexBy","prop","nextOrderMembers","_ref8","_ref9","memberId","currentOrder","push","has","aliasSeries","values","index","duplicateMeasures","nonNullValues","dayjs","extend","quarterOfYear","internalDayjs","apply","locale","en","weekStart","TIME_SERIES","day","range","by","format","month","snapTo","year","hour","minute","second","week","startOf","quarter","DateRegex","LocalDateRegex","groupByToPairs","keyFn","acc","Map","data","row","set","get","from","unnest","arr","res","subArr","element","dayRange","to","results","start","end","isBefore","isSame","endOf","QUERY_TYPE","REGULAR_QUERY","COMPARE_DATE_RANGE_QUERY","BLENDING_QUERY","ResultSet","loadResponse","_classCallCheck","queryType","loadResponses","pivotQuery","Error","parseDateMeasures","backwardCompatibleData","_createClass","drillDown","drillDownLocator","_drillDownLocator$xVa","xValues","_drillDownLocator$yVa","yValues","normalizedPivotConfig","normalizePivotConfig","currentIndex","_this$query","_this$query$filters","parentFilters","_this$query$segments","segments","annotation","_ref3","_ref4","measureName","_Object$keys","_Object$keys2","drillMembers","_ref5","_member$split","split","_member$split2","cubeName","originalTimeDimension","_originalTimeDimensio","originalStart","originalEnd","join","dt","toString","drillMembersGrouped","timezone","series","_this","seriesNames","shortTitle","chartPivot","_ref10","obj","axisValues","axis","resultIndex","measure","axisValuesString","delimiter","formatValue","v","getNormalizedPivotConfig","timeSeries","timeDimension","timeDimensionMember","dates","pipe","timeDimensionBackwardCompatibleData","minBy","toDate","maxBy","padToDay","match","_dateRange","_dateRange2","pivot","_this2","pivotImpl","groupByXAxis","_ref11","measureValue","fillMissingDates","rows","byXValues","groupBy","_ref12","xGrouped","yValuesMap","_ref13","_ref14","_ref15","allYValues","measureOnX","_ref16","_ref17","yGrouped","_ref18","yValuesArray","measureFromAxis","pivots","_","mergePivots","joinDateRange","minLengthPivot","current","pivotedRows","_this3","validate","test","Date","Number","isNaN","parseFloat","allMeasures","flatten","_ref19","e","i","a","indexOf","m","_ref20","_ref21","_ref22","tablePivot","isMeasuresPresent","_ref23","_ref24","_ref25","tableColumns","annotations","pluck","mergeDeepLeft","flatMeta","b","schema","extractFields","_ref26","type","_ref27","_ref28","currentItem","children","toColumns","item","path","_ref29","_excluded2","_extractFields","fields","_excluded3","dimensionValue","dataIndex","trim","otherColumns","totalRow","categories","_this4","mergeAll","uniq","_ref30","aliasedAxis","dropLast","totalRows","total","rawData","_this$loadResponses$r","field","decompose","_this5","serialize","deserialize","defaultPivotConfig","_query$measures","_query$dimensions","substituteTimeDimensionMembers","subDim","allIncludedDimensions","allDimensions","dimensionFilter","unshift","SqlQuery","sqlQuery","rawQuery","sql","memberMap","memberArray","operators","string","number","time","Meta","metaResponse","cubes","cubesMap","c","membersForQuery","memberType","sort","membersGroupedByCube","memberKeys","cube","cubeTitle","resolveMember","memberName","_memberName$split","_memberName$split2","error","memberTypes","_memberName$split3","_memberName$split4","filterOperatorsForMember","ProgressResult","progressResponse","stage","timeElapsed","HttpTransport","authorization","apiUrl","method","_ref$headers","headers","credentials","request","baseRequestId","params","spanCounter","searchParams","URLSearchParams","k","_typeof","JSON","stringify","url","requestMethod","runRequest","fetch","Authorization","body","subscribe","callback","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context","prev","next","sent","abrupt","stop","RequestError","_Error","_inherits","_super","_createSuper","message","response","status","call","_wrapNativeSuper","mutexCounter","MUTEX_ERROR","ResultType","DEFAULT","COMPACT","mutexPromise","promise","Promise","resolve","reject","t0","t1","t2","_x","_x2","CubeApi","apiToken","transport","pollInterval","castNumerics","updateAuthorizationPromise","uuidv4","loadMethod","toResult","mutexValue","mutexKey","mutexObj","requestPromise","updateTransportAuthorization","then","skipAuthorizationUpdate","unsubscribed","checkMutex","_callee2","requestInstance","_callee2$","_context2","unsubscribe","loadImpl","_callee5","subscribeNext","continueWait","text","_callee5$","_context5","_callee3","_callee3$","_context3","setTimeout","_callee4","wait","_callee4$","_context4","_x5","parse","progressCallback","_x3","_x4","_unsubscribe","_callee6","_callee6$","_context6","_updateTransportAuthorization","_callee8","_callee8$","_context8","_callee7","token","_callee7$","_context7","finish","_x6","_x7","patchQueryInternal","responseFormat","loadResponseInternal","numericMembers","j","dataset","r","load","_this6","dryRun","_this7"],"mappings":"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"}