@cubejs-client/core 0.28.17 → 0.28.37
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.
- package/CHANGELOG.md +45 -0
- package/dist/cubejs-client-core.esm.js +237 -138
- package/dist/cubejs-client-core.esm.js.map +1 -1
- package/dist/cubejs-client-core.js +239 -139
- package/dist/cubejs-client-core.js.map +1 -1
- package/dist/cubejs-client-core.umd.js +282 -175
- package/dist/cubejs-client-core.umd.js.map +1 -1
- package/index.d.ts +10 -2
- package/package.json +2 -2
- package/src/ResultSet.js +8 -4
- package/src/index.js +41 -10
- package/src/tests/ResultSet.test.js +16 -0
- package/src/tests/table.test.js +95 -0
- package/src/utils.js +1 -0
|
@@ -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 } 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: 'year', title: 'Year' },\n];\n\nexport function areQueriesEqual(query1 = {}, query2 = {}) {\n return (\n equals(Object.entries((query1 && query1.order) || {}), 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 ((query.measures || []).length > 0 && (query.dimensions || []).length > 0) {\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 !== 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 && (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(newQuery.measures[0]);\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 ((oldQuery.dimensions || []).length === 0 && (newQuery.dimensions || []).length > 0) {\n newQuery = {\n ...newQuery,\n timeDimensions: (newQuery.timeDimensions || []).map((td) => ({ ...td, granularity: undefined })),\n };\n\n return {\n ...state,\n pivotConfig: null,\n shouldApplyHeuristicOrder: true,\n query: newQuery,\n chartType: 'table',\n };\n }\n\n if ((oldQuery.dimensions || []).length > 0 && (newQuery.dimensions || []).length === 0) {\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 || (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' || newChartType === 'table' || 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(pivotConfig, sourceIndex, destinationIndex, sourceAxis, destinationAxis) {\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 (destinationIndex >= lastIndex && nextPivotConfig[destinationAxis][lastIndex] === 'measures') {\n destinationIndex = lastIndex - 1;\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 (pivotConfig && pivotConfig.aliasSeries && pivotConfig.aliasSeries[index]) {\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 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.locale({\n ...en,\n weekStart: 1,\n});\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};\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 = dayjs(from);\n const end = dayjs(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(dayjs(from).startOf(value), dayjs(to).endOf(value)),\n start: dayjs(from),\n end: dayjs(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 { 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\n timeDimensions.push({\n dimension: [cubeName, dimension].join('.'),\n dateRange: [\n range.start,\n range.end\n ].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 const { query } = this.loadResponses[0];\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, key }) => ({\n title,\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] && dayjs(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 let measureValue = (row, measure) => row[measure];\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 measureValue = (row, measure) => row[measure] || 0;\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 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 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 ],\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: 'beforeDate', title: 'before 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 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 async subscribe(callback) {\n const result = await runRequest();\n return callback(result, () => this.subscribe(callback));\n }\n };\n }\n}\n\nexport default HttpTransport;\n","export default class RequestError extends Error {\n constructor(message, response) {\n super(message);\n this.response = response;\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\nconst mutexPromise = (promise) => new Promise((resolve, reject) => {\n promise.then(r => resolve(r), e => e !== MUTEX_ERROR && reject(e));\n});\n\nclass CubejsApi {\n constructor(apiToken, options) {\n if (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\n request(method, params) {\n return this.transport.request(method, { baseRequestId: uuidv4(), ...params });\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.updateTransportAuthorization().then(() => request());\n\n let unsubscribed = false;\n\n const checkMutex = async () => {\n const requestInstance = await requestPromise;\n\n if (options.mutexObj && options.mutexObj[mutexKey] !== mutexValue) {\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 await this.updateTransportAuthorization();\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); // 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 (typeof this.apiToken === 'function') {\n const token = await this.apiToken();\n if (this.transport.authorization !== token) {\n this.transport.authorization = token;\n }\n }\n }\n\n load(query, options, callback) {\n return this.loadMethod(\n () => this.request('load', {\n query,\n queryType: 'multi'\n }),\n (response) => new ResultSet(response, { parseDateMeasures: this.parseDateMeasures }),\n options,\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 subscribe(query, options, callback) {\n return this.loadMethod(\n () => this.request('subscribe', {\n query,\n queryType: 'multi'\n }),\n (body) => new ResultSet(body, { parseDateMeasures: this.parseDateMeasures }),\n { ...options, subscribe: true },\n callback\n );\n }\n}\n\nexport default (apiToken, options) => new CubejsApi(apiToken, options);\n\nexport { CubejsApi, HttpTransport, ResultSet };\nexport {\n areQueriesEqual,\n defaultHeuristics,\n movePivotItem,\n isQueryPresent,\n moveItemInArray,\n defaultOrder,\n flattenFilters,\n getQueryMembers,\n getOrderMembersFromOrder,\n GRANULARITIES\n} from './utils';\n"],"names":["DEFAULT_GRANULARITY","GRANULARITIES","name","undefined","title","areQueriesEqual","query1","query2","equals","Object","entries","order","defaultOrder","query","granularity","timeDimensions","find","d","dimension","measures","length","dimensions","defaultHeuristics","newState","oldQuery","options","clone","props","meta","sessionGranularity","state","newQuery","Array","isArray","td","defaultTimeDimension","defaultTimeDimensionNameFor","dateRange","pivotConfig","shouldApplyHeuristicOrder","chartType","map","filters","newChartType","isQueryPresent","every","q","movePivotItem","sourceIndex","destinationIndex","sourceAxis","destinationAxis","nextPivotConfig","x","y","id","lastIndex","splice","moveItemInArray","list","result","removed","flattenFilters","reduce","memo","filter","or","and","getQueryMembers","keys","members","Set","forEach","key","member","add","getOrderMembersFromOrder","orderMembers","ids","indexedOrderMembers","indexBy","prop","nextOrderMembers","memberId","currentOrder","push","has","aliasSeries","values","index","duplicateMeasures","nonNullValues","value","dayjs","locale","en","weekStart","TIME_SERIES","day","range","by","format","month","snapTo","year","hour","minute","second","week","startOf","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","includes","Error","parseDateMeasures","backwardCompatibleData","drillDownLocator","xValues","yValues","normalizedPivotConfig","normalizePivotConfig","currentIndex","parentFilters","segments","annotation","measureName","drillMembers","operator","split","cubeName","join","dt","toString","drillMembersGrouped","timezone","seriesNames","series","chartPivot","obj","axis","resultIndex","measure","concat","axisValues","delimiter","formatValue","v","getNormalizedPivotConfig","timeDimension","timeDimensionMember","dates","pipe","Boolean","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","fromPairs","annotations","pluck","mergeDeepLeft","flatMeta","b","schema","extractFields","shortTitle","type","currentItem","children","toColumns","item","path","fields","dimensionValue","dataIndex","trim","otherColumns","mergeAll","uniq","aliasedAxis","dropLast","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","mutexCounter","MUTEX_ERROR","mutexPromise","promise","Promise","resolve","reject","then","r","CubejsApi","apiToken","transport","pollInterval","request","uuidv4","toResult","mutexValue","mutexKey","mutexObj","requestPromise","updateTransportAuthorization","unsubscribed","checkMutex","requestInstance","unsubscribe","loadImpl","next","subscribeNext","setTimeout","continueWait","wait","status","text","parse","progressCallback","token","loadMethod"],"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 } 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 areQueriesEqual(query1 = {}, query2 = {}) {\n return (\n equals(Object.entries((query1 && query1.order) || {}), 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 ((query.measures || []).length > 0 && (query.dimensions || []).length > 0) {\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 !== 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 && (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(newQuery.measures[0]);\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 ((oldQuery.dimensions || []).length === 0 && (newQuery.dimensions || []).length > 0) {\n newQuery = {\n ...newQuery,\n timeDimensions: (newQuery.timeDimensions || []).map((td) => ({ ...td, granularity: undefined })),\n };\n\n return {\n ...state,\n pivotConfig: null,\n shouldApplyHeuristicOrder: true,\n query: newQuery,\n chartType: 'table',\n };\n }\n\n if ((oldQuery.dimensions || []).length > 0 && (newQuery.dimensions || []).length === 0) {\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 || (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' || newChartType === 'table' || 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(pivotConfig, sourceIndex, destinationIndex, sourceAxis, destinationAxis) {\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 (destinationIndex >= lastIndex && nextPivotConfig[destinationAxis][lastIndex] === 'measures') {\n destinationIndex = lastIndex - 1;\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 (pivotConfig && pivotConfig.aliasSeries && pivotConfig.aliasSeries[index]) {\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.locale({\n ...en,\n weekStart: 1,\n});\ndayjs.extend(quarterOfYear);\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 = dayjs(from);\n const end = dayjs(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(dayjs(from).startOf(value), dayjs(to).endOf(value)),\n start: dayjs(from),\n end: dayjs(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 { 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\n timeDimensions.push({\n dimension: [cubeName, dimension].join('.'),\n dateRange: [\n range.start,\n range.end\n ].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 const { query } = this.loadResponses[0];\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, key }) => ({\n title,\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] && dayjs(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 let measureValue = (row, measure) => row[measure];\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 measureValue = (row, measure) => row[measure] || 0;\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 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 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 ],\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: 'beforeDate', title: 'before 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 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 async subscribe(callback) {\n const result = await runRequest();\n return callback(result, () => this.subscribe(callback));\n }\n };\n }\n}\n\nexport default HttpTransport;\n","export default class RequestError extends Error {\n constructor(message, response) {\n super(message);\n this.response = response;\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\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 CubejsApi {\n constructor(apiToken, options) {\n if (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, { baseRequestId: uuidv4(), ...params });\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.updateTransportAuthorization().then(() => request());\n\n let skipAuthorizationUpdate = true;\n let unsubscribed = false;\n\n const checkMutex = async () => {\n const requestInstance = await requestPromise;\n\n if (options.mutexObj && options.mutexObj[mutexKey] !== mutexValue) {\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); // 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 load(query, options, callback) {\n return this.loadMethod(\n () => this.request('load', {\n query,\n queryType: 'multi'\n }),\n (response) => new ResultSet(response, { parseDateMeasures: this.parseDateMeasures }),\n options,\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 subscribe(query, options, callback) {\n return this.loadMethod(\n () => this.request('subscribe', {\n query,\n queryType: 'multi'\n }),\n (body) => new ResultSet(body, { parseDateMeasures: this.parseDateMeasures }),\n { ...options, subscribe: true },\n callback\n );\n }\n}\n\nexport default (apiToken, options) => new CubejsApi(apiToken, options);\n\nexport { CubejsApi, HttpTransport, ResultSet };\nexport {\n areQueriesEqual,\n defaultHeuristics,\n movePivotItem,\n isQueryPresent,\n moveItemInArray,\n defaultOrder,\n flattenFilters,\n getQueryMembers,\n getOrderMembersFromOrder,\n GRANULARITIES\n} from './utils';\n"],"names":["DEFAULT_GRANULARITY","GRANULARITIES","name","undefined","title","areQueriesEqual","query1","query2","equals","Object","entries","order","defaultOrder","query","granularity","timeDimensions","find","d","dimension","measures","length","dimensions","defaultHeuristics","newState","oldQuery","options","clone","props","meta","sessionGranularity","state","newQuery","Array","isArray","td","defaultTimeDimension","defaultTimeDimensionNameFor","dateRange","pivotConfig","shouldApplyHeuristicOrder","chartType","map","filters","newChartType","isQueryPresent","every","q","movePivotItem","sourceIndex","destinationIndex","sourceAxis","destinationAxis","nextPivotConfig","x","y","id","lastIndex","splice","moveItemInArray","list","result","removed","flattenFilters","reduce","memo","filter","or","and","getQueryMembers","keys","members","Set","forEach","key","member","add","getOrderMembersFromOrder","orderMembers","ids","indexedOrderMembers","indexBy","prop","nextOrderMembers","memberId","currentOrder","push","has","aliasSeries","values","index","duplicateMeasures","nonNullValues","value","dayjs","locale","en","weekStart","extend","quarterOfYear","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","includes","Error","parseDateMeasures","backwardCompatibleData","drillDownLocator","xValues","yValues","normalizedPivotConfig","normalizePivotConfig","currentIndex","parentFilters","segments","annotation","measureName","drillMembers","operator","split","cubeName","join","dt","toString","drillMembersGrouped","timezone","seriesNames","series","chartPivot","obj","axis","resultIndex","measure","concat","axisValues","delimiter","formatValue","v","getNormalizedPivotConfig","timeDimension","timeDimensionMember","dates","pipe","Boolean","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","fromPairs","annotations","pluck","mergeDeepLeft","flatMeta","b","schema","extractFields","shortTitle","type","currentItem","children","toColumns","item","path","fields","dimensionValue","dataIndex","trim","otherColumns","mergeAll","uniq","aliasedAxis","dropLast","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","mutexCounter","MUTEX_ERROR","mutexPromise","promise","Promise","resolve","reject","CubejsApi","apiToken","transport","pollInterval","updateAuthorizationPromise","request","uuidv4","toResult","mutexValue","mutexKey","mutexObj","requestPromise","updateTransportAuthorization","then","skipAuthorizationUpdate","unsubscribed","checkMutex","requestInstance","unsubscribe","loadImpl","next","subscribeNext","setTimeout","continueWait","wait","status","text","parse","progressCallback","token","loadMethod"],"mappings":"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"}
|
|
@@ -191,7 +191,7 @@
|
|
|
191
191
|
(module.exports = function (key, value) {
|
|
192
192
|
return sharedStore[key] || (sharedStore[key] = value !== undefined ? value : {});
|
|
193
193
|
})('versions', []).push({
|
|
194
|
-
version: '3.16.
|
|
194
|
+
version: '3.16.1',
|
|
195
195
|
mode: 'global',
|
|
196
196
|
copyright: '© 2021 Denis Pushkarev (zloirock.ru)'
|
|
197
197
|
});
|
|
@@ -1357,42 +1357,6 @@
|
|
|
1357
1357
|
defineProperty: objectDefineProperty.f
|
|
1358
1358
|
});
|
|
1359
1359
|
|
|
1360
|
-
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
|
1361
|
-
try {
|
|
1362
|
-
var info = gen[key](arg);
|
|
1363
|
-
var value = info.value;
|
|
1364
|
-
} catch (error) {
|
|
1365
|
-
reject(error);
|
|
1366
|
-
return;
|
|
1367
|
-
}
|
|
1368
|
-
|
|
1369
|
-
if (info.done) {
|
|
1370
|
-
resolve(value);
|
|
1371
|
-
} else {
|
|
1372
|
-
Promise.resolve(value).then(_next, _throw);
|
|
1373
|
-
}
|
|
1374
|
-
}
|
|
1375
|
-
|
|
1376
|
-
function _asyncToGenerator(fn) {
|
|
1377
|
-
return function () {
|
|
1378
|
-
var self = this,
|
|
1379
|
-
args = arguments;
|
|
1380
|
-
return new Promise(function (resolve, reject) {
|
|
1381
|
-
var gen = fn.apply(self, args);
|
|
1382
|
-
|
|
1383
|
-
function _next(value) {
|
|
1384
|
-
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
|
|
1385
|
-
}
|
|
1386
|
-
|
|
1387
|
-
function _throw(err) {
|
|
1388
|
-
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
|
1389
|
-
}
|
|
1390
|
-
|
|
1391
|
-
_next(undefined);
|
|
1392
|
-
});
|
|
1393
|
-
};
|
|
1394
|
-
}
|
|
1395
|
-
|
|
1396
1360
|
function _defineProperty(obj, key, value) {
|
|
1397
1361
|
if (key in obj) {
|
|
1398
1362
|
Object.defineProperty(obj, key, {
|
|
@@ -1446,6 +1410,42 @@
|
|
|
1446
1410
|
return Constructor;
|
|
1447
1411
|
}
|
|
1448
1412
|
|
|
1413
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
|
1414
|
+
try {
|
|
1415
|
+
var info = gen[key](arg);
|
|
1416
|
+
var value = info.value;
|
|
1417
|
+
} catch (error) {
|
|
1418
|
+
reject(error);
|
|
1419
|
+
return;
|
|
1420
|
+
}
|
|
1421
|
+
|
|
1422
|
+
if (info.done) {
|
|
1423
|
+
resolve(value);
|
|
1424
|
+
} else {
|
|
1425
|
+
Promise.resolve(value).then(_next, _throw);
|
|
1426
|
+
}
|
|
1427
|
+
}
|
|
1428
|
+
|
|
1429
|
+
function _asyncToGenerator(fn) {
|
|
1430
|
+
return function () {
|
|
1431
|
+
var self = this,
|
|
1432
|
+
args = arguments;
|
|
1433
|
+
return new Promise(function (resolve, reject) {
|
|
1434
|
+
var gen = fn.apply(self, args);
|
|
1435
|
+
|
|
1436
|
+
function _next(value) {
|
|
1437
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
|
|
1438
|
+
}
|
|
1439
|
+
|
|
1440
|
+
function _throw(err) {
|
|
1441
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
|
1442
|
+
}
|
|
1443
|
+
|
|
1444
|
+
_next(undefined);
|
|
1445
|
+
});
|
|
1446
|
+
};
|
|
1447
|
+
}
|
|
1448
|
+
|
|
1449
1449
|
/**
|
|
1450
1450
|
* Copyright (c) 2014-present, Facebook, Inc.
|
|
1451
1451
|
*
|
|
@@ -2537,6 +2537,8 @@
|
|
|
2537
2537
|
clear: clear
|
|
2538
2538
|
};
|
|
2539
2539
|
|
|
2540
|
+
var engineIsIosPebble = /iphone|ipod|ipad/i.test(engineUserAgent) && global$1.Pebble !== undefined;
|
|
2541
|
+
|
|
2540
2542
|
var engineIsWebosWebkit = /web0s(?!.*chrome)/i.test(engineUserAgent);
|
|
2541
2543
|
|
|
2542
2544
|
var getOwnPropertyDescriptor$1 = objectGetOwnPropertyDescriptor.f;
|
|
@@ -2545,6 +2547,7 @@
|
|
|
2545
2547
|
|
|
2546
2548
|
|
|
2547
2549
|
|
|
2550
|
+
|
|
2548
2551
|
var MutationObserver = global$1.MutationObserver || global$1.WebKitMutationObserver;
|
|
2549
2552
|
var document$2 = global$1.document;
|
|
2550
2553
|
var process$1 = global$1.process;
|
|
@@ -2584,7 +2587,7 @@
|
|
|
2584
2587
|
node.data = toggle = !toggle;
|
|
2585
2588
|
};
|
|
2586
2589
|
// environments with maybe non-completely correct, but existent Promise
|
|
2587
|
-
} else if (Promise$1 && Promise$1.resolve) {
|
|
2590
|
+
} else if (!engineIsIosPebble && Promise$1 && Promise$1.resolve) {
|
|
2588
2591
|
// Promise.resolve without an argument throws an error in LG WebOS 2
|
|
2589
2592
|
promise = Promise$1.resolve(undefined);
|
|
2590
2593
|
// workaround of WebKit ~ iOS Safari 10.1 bug
|
|
@@ -4922,6 +4925,10 @@
|
|
|
4922
4925
|
!function(t,e){module.exports=e();}(commonjsGlobal,(function(){var t=1e3,e=6e4,n=36e5,r="millisecond",i="second",s="minute",u="hour",a="day",o="week",f="month",h="quarter",c="year",d="date",$="Invalid Date",l=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,y=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_")},m=function(t,e,n){var r=String(t);return !r||r.length>=e?t:""+Array(e+1-r.length).join(n)+t},g={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return (e<=0?"+":"-")+m(r,2,"0")+":"+m(i,2,"0")},m:function t(e,n){if(e.date()<n.date())return -t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,f),s=n-i<0,u=e.clone().add(r+(s?-1:1),f);return +(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return {M:f,y:c,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:h}[t]||String(t||"").toLowerCase().replace(/s$/,"")},u:function(t){return void 0===t}},D="en",v={};v[D]=M;var p=function(t){return t instanceof _},S=function(t,e,n){var r;if(!t)return D;if("string"==typeof t)v[t]&&(r=t),e&&(v[t]=e,r=t);else {var i=t.name;v[i]=t,r=i;}return !n&&r&&(D=r),r||!n&&D},w=function(t,e){if(p(t))return t.clone();var n="object"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},O=g;O.l=S,O.i=p,O.w=function(t,e){return w(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=S(t.locale,null,!0),this.parse(t);}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(O.u(e))return new Date;if(e instanceof Date)return new Date(e);if("string"==typeof e&&!/Z$/i.test(e)){var r=e.match(l);if(r){var i=r[2]-1||0,s=(r[7]||"0").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.$x=t.x||{},this.init();},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds();},m.$utils=function(){return O},m.isValid=function(){return !(this.$d.toString()===$)},m.isSame=function(t,e){var n=w(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return w(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<w(t)},m.$g=function(t,e,n){return O.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!O.u(e)||e,h=O.p(t),$=function(t,e){var i=O.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},l=function(t,e){return O.w(n.toDate()[t].apply(n.toDate("s"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,g="set"+(this.$u?"UTC":"");switch(h){case c:return r?$(1,0):$(31,11);case f:return r?$(1,M):$(0,M+1);case o:var D=this.$locale().weekStart||0,v=(y<D?y+7:y)-D;return $(r?m-v:m+(6-v),M);case a:case d:return l(g+"Hours",0);case u:return l(g+"Minutes",1);case s:return l(g+"Seconds",2);case i:return l(g+"Milliseconds",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=O.p(t),h="set"+(this.$u?"UTC":""),$=(n={},n[a]=h+"Date",n[d]=h+"Date",n[f]=h+"Month",n[c]=h+"FullYear",n[u]=h+"Hours",n[s]=h+"Minutes",n[i]=h+"Seconds",n[r]=h+"Milliseconds",n)[o],l=o===a?this.$D+(e-this.$W):e;if(o===f||o===c){var y=this.clone().set(d,1);y.$d[$](l),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d;}else $&&this.$d[$](l);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[O.p(t)]()},m.add=function(r,h){var d,$=this;r=Number(r);var l=O.p(h),y=function(t){var e=w($);return O.w(e.date(e.date()+Math.round(t*r)),$)};if(l===f)return this.set(f,this.$M+r);if(l===c)return this.set(c,this.$y+r);if(l===a)return y(1);if(l===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[l]||1,m=this.$d.getTime()+r*M;return O.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||$;var r=t||"YYYY-MM-DDTHH:mm:ssZ",i=O.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,f=n.months,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].substr(0,s)},c=function(t){return O.s(s%12||12,t,"0")},d=n.meridiem||function(t,e,n){var r=t<12?"AM":"PM";return n?r.toLowerCase():r},l={YY:String(this.$y).slice(-2),YYYY:this.$y,M:a+1,MM:O.s(a+1,2,"0"),MMM:h(n.monthsShort,a,f,3),MMMM:h(f,a),D:this.$D,DD:O.s(this.$D,2,"0"),d:String(this.$W),dd:h(n.weekdaysMin,this.$W,o,2),ddd:h(n.weekdaysShort,this.$W,o,3),dddd:o[this.$W],H:String(s),HH:O.s(s,2,"0"),h:c(1),hh:c(2),a:d(s,u,!0),A:d(s,u,!1),m:String(u),mm:O.s(u,2,"0"),s:String(this.$s),ss:O.s(this.$s,2,"0"),SSS:O.s(this.$ms,3,"0"),Z:i};return r.replace(y,(function(t,e){return e||l[t]||i.replace(":","")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,$){var l,y=O.p(d),M=w(r),m=(M.utcOffset()-this.utcOffset())*e,g=this-M,D=O.m(this,M);return D=(l={},l[c]=D/12,l[f]=D,l[h]=D/3,l[o]=(g-m)/6048e5,l[a]=(g-m)/864e5,l[u]=g/n,l[s]=g/e,l[i]=g/t,l)[y]||g,$?D:O.a(D)},m.daysInMonth=function(){return this.endOf(f).$D},m.$locale=function(){return v[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=S(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return O.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),b=_.prototype;return w.prototype=b,[["$ms",r],["$s",i],["$m",s],["$H",u],["$W",a],["$M",f],["$y",c],["$D",d]].forEach((function(t){b[t[1]]=function(e){return this.$g(e,t[0],t[1])};})),w.extend=function(t,e){return t.$i||(t(e,_,w),t.$i=!0),w},w.locale=S,w.isDayjs=p,w.unix=function(t){return w(1e3*t)},w.en=v[D],w.Ls=v,w.p={},w}));
|
|
4923
4926
|
});
|
|
4924
4927
|
|
|
4928
|
+
var quarterOfYear = createCommonjsModule(function (module, exports) {
|
|
4929
|
+
!function(t,n){module.exports=n();}(commonjsGlobal,(function(){var t="month",n="quarter";return function(e,i){var r=i.prototype;r.quarter=function(t){return this.$utils().u(t)?Math.ceil((this.month()+1)/3):this.month(this.month()%3+3*(t-1))};var s=r.add;r.add=function(e,i){return e=Number(e),this.$utils().p(i)===n?this.add(3*e,t):s.bind(this)(e,i)};var u=r.startOf;r.startOf=function(e,i){var r=this.$utils(),s=!!r.u(i)||i;if(r.p(e)===n){var o=this.quarter()-1;return s?this.month(3*o).startOf(t).startOf("day"):this.month(3*o+2).endOf(t).endOf("day")}return u.bind(this)(e,i)};}}));
|
|
4930
|
+
});
|
|
4931
|
+
|
|
4925
4932
|
var en = createCommonjsModule(function (module, exports) {
|
|
4926
4933
|
!function(e,n){module.exports=n();}(commonjsGlobal,(function(){return {name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_")}}));
|
|
4927
4934
|
});
|
|
@@ -7678,6 +7685,9 @@
|
|
|
7678
7685
|
}, {
|
|
7679
7686
|
name: 'month',
|
|
7680
7687
|
title: 'Month'
|
|
7688
|
+
}, {
|
|
7689
|
+
name: 'quarter',
|
|
7690
|
+
title: 'Quarter'
|
|
7681
7691
|
}, {
|
|
7682
7692
|
name: 'year',
|
|
7683
7693
|
title: 'Year'
|
|
@@ -7954,6 +7964,7 @@
|
|
|
7954
7964
|
dayjs_min.locale(_objectSpread$2(_objectSpread$2({}, en), {}, {
|
|
7955
7965
|
weekStart: 1
|
|
7956
7966
|
}));
|
|
7967
|
+
dayjs_min.extend(quarterOfYear);
|
|
7957
7968
|
var TIME_SERIES = {
|
|
7958
7969
|
day: function day(range) {
|
|
7959
7970
|
return range.by('d').map(function (d) {
|
|
@@ -7989,6 +8000,11 @@
|
|
|
7989
8000
|
return range.snapTo('week').by('w').map(function (d) {
|
|
7990
8001
|
return d.startOf('week').format('YYYY-MM-DDT00:00:00.000');
|
|
7991
8002
|
});
|
|
8003
|
+
},
|
|
8004
|
+
quarter: function quarter(range) {
|
|
8005
|
+
return range.snapTo('quarter').by('quarter').map(function (d) {
|
|
8006
|
+
return d.startOf('quarter').format('YYYY-MM-DDT00:00:00.000');
|
|
8007
|
+
});
|
|
7992
8008
|
}
|
|
7993
8009
|
};
|
|
7994
8010
|
var DateRegex = /^\d\d\d\d-\d\d-\d\d$/;
|
|
@@ -8531,12 +8547,12 @@
|
|
|
8531
8547
|
if (yValues.length > 0) {
|
|
8532
8548
|
var currentItem = schema;
|
|
8533
8549
|
yValues.forEach(function (value, index) {
|
|
8534
|
-
currentItem[value] = {
|
|
8550
|
+
currentItem["_".concat(value)] = {
|
|
8535
8551
|
key: value,
|
|
8536
8552
|
memberId: normalizedPivotConfig.y[index] === 'measures' ? value : normalizedPivotConfig.y[index],
|
|
8537
|
-
children: currentItem[value] && currentItem[value].children || {}
|
|
8553
|
+
children: currentItem["_".concat(value)] && currentItem["_".concat(value)].children || {}
|
|
8538
8554
|
};
|
|
8539
|
-
currentItem = currentItem[value].children;
|
|
8555
|
+
currentItem = currentItem["_".concat(value)].children;
|
|
8540
8556
|
});
|
|
8541
8557
|
}
|
|
8542
8558
|
});
|
|
@@ -11962,6 +11978,8 @@
|
|
|
11962
11978
|
function _possibleConstructorReturn(self, call) {
|
|
11963
11979
|
if (call && (_typeof(call) === "object" || typeof call === "function")) {
|
|
11964
11980
|
return call;
|
|
11981
|
+
} else if (call !== void 0) {
|
|
11982
|
+
throw new TypeError("Derived constructors may only return object or undefined");
|
|
11965
11983
|
}
|
|
11966
11984
|
|
|
11967
11985
|
return _assertThisInitialized(self);
|
|
@@ -12070,15 +12088,45 @@
|
|
|
12070
12088
|
var mutexCounter = 0;
|
|
12071
12089
|
var MUTEX_ERROR = 'Mutex has been changed';
|
|
12072
12090
|
|
|
12073
|
-
|
|
12074
|
-
return new Promise(function (
|
|
12075
|
-
|
|
12076
|
-
return
|
|
12077
|
-
|
|
12078
|
-
|
|
12079
|
-
|
|
12080
|
-
|
|
12081
|
-
|
|
12091
|
+
function mutexPromise(promise) {
|
|
12092
|
+
return new Promise( /*#__PURE__*/function () {
|
|
12093
|
+
var _ref = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee(resolve, reject) {
|
|
12094
|
+
return regenerator.wrap(function _callee$(_context) {
|
|
12095
|
+
while (1) {
|
|
12096
|
+
switch (_context.prev = _context.next) {
|
|
12097
|
+
case 0:
|
|
12098
|
+
_context.prev = 0;
|
|
12099
|
+
_context.t0 = resolve;
|
|
12100
|
+
_context.next = 4;
|
|
12101
|
+
return promise;
|
|
12102
|
+
|
|
12103
|
+
case 4:
|
|
12104
|
+
_context.t1 = _context.sent;
|
|
12105
|
+
(0, _context.t0)(_context.t1);
|
|
12106
|
+
_context.next = 11;
|
|
12107
|
+
break;
|
|
12108
|
+
|
|
12109
|
+
case 8:
|
|
12110
|
+
_context.prev = 8;
|
|
12111
|
+
_context.t2 = _context["catch"](0);
|
|
12112
|
+
|
|
12113
|
+
if (_context.t2 !== MUTEX_ERROR) {
|
|
12114
|
+
reject(_context.t2);
|
|
12115
|
+
}
|
|
12116
|
+
|
|
12117
|
+
case 11:
|
|
12118
|
+
case "end":
|
|
12119
|
+
return _context.stop();
|
|
12120
|
+
}
|
|
12121
|
+
}
|
|
12122
|
+
}, _callee, null, [[0, 8]]);
|
|
12123
|
+
}));
|
|
12124
|
+
|
|
12125
|
+
return function (_x, _x2) {
|
|
12126
|
+
return _ref.apply(this, arguments);
|
|
12127
|
+
};
|
|
12128
|
+
}());
|
|
12129
|
+
}
|
|
12082
12130
|
|
|
12083
12131
|
var CubejsApi = /*#__PURE__*/function () {
|
|
12084
12132
|
function CubejsApi(apiToken, options) {
|
|
@@ -12109,6 +12157,7 @@
|
|
|
12109
12157
|
});
|
|
12110
12158
|
this.pollInterval = options.pollInterval || 5;
|
|
12111
12159
|
this.parseDateMeasures = options.parseDateMeasures;
|
|
12160
|
+
this.updateAuthorizationPromise = null;
|
|
12112
12161
|
}
|
|
12113
12162
|
|
|
12114
12163
|
_createClass(CubejsApi, [{
|
|
@@ -12140,34 +12189,35 @@
|
|
|
12140
12189
|
var requestPromise = this.updateTransportAuthorization().then(function () {
|
|
12141
12190
|
return request();
|
|
12142
12191
|
});
|
|
12192
|
+
var skipAuthorizationUpdate = true;
|
|
12143
12193
|
var unsubscribed = false;
|
|
12144
12194
|
|
|
12145
12195
|
var checkMutex = /*#__PURE__*/function () {
|
|
12146
|
-
var
|
|
12196
|
+
var _ref2 = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee2() {
|
|
12147
12197
|
var requestInstance;
|
|
12148
|
-
return regenerator.wrap(function
|
|
12198
|
+
return regenerator.wrap(function _callee2$(_context2) {
|
|
12149
12199
|
while (1) {
|
|
12150
|
-
switch (
|
|
12200
|
+
switch (_context2.prev = _context2.next) {
|
|
12151
12201
|
case 0:
|
|
12152
|
-
|
|
12202
|
+
_context2.next = 2;
|
|
12153
12203
|
return requestPromise;
|
|
12154
12204
|
|
|
12155
12205
|
case 2:
|
|
12156
|
-
requestInstance =
|
|
12206
|
+
requestInstance = _context2.sent;
|
|
12157
12207
|
|
|
12158
12208
|
if (!(options.mutexObj && options.mutexObj[mutexKey] !== mutexValue)) {
|
|
12159
|
-
|
|
12209
|
+
_context2.next = 9;
|
|
12160
12210
|
break;
|
|
12161
12211
|
}
|
|
12162
12212
|
|
|
12163
12213
|
unsubscribed = true;
|
|
12164
12214
|
|
|
12165
12215
|
if (!requestInstance.unsubscribe) {
|
|
12166
|
-
|
|
12216
|
+
_context2.next = 8;
|
|
12167
12217
|
break;
|
|
12168
12218
|
}
|
|
12169
12219
|
|
|
12170
|
-
|
|
12220
|
+
_context2.next = 8;
|
|
12171
12221
|
return requestInstance.unsubscribe();
|
|
12172
12222
|
|
|
12173
12223
|
case 8:
|
|
@@ -12175,50 +12225,50 @@
|
|
|
12175
12225
|
|
|
12176
12226
|
case 9:
|
|
12177
12227
|
case "end":
|
|
12178
|
-
return
|
|
12228
|
+
return _context2.stop();
|
|
12179
12229
|
}
|
|
12180
12230
|
}
|
|
12181
|
-
},
|
|
12231
|
+
}, _callee2);
|
|
12182
12232
|
}));
|
|
12183
12233
|
|
|
12184
12234
|
return function checkMutex() {
|
|
12185
|
-
return
|
|
12235
|
+
return _ref2.apply(this, arguments);
|
|
12186
12236
|
};
|
|
12187
12237
|
}();
|
|
12188
12238
|
|
|
12189
12239
|
var loadImpl = /*#__PURE__*/function () {
|
|
12190
|
-
var
|
|
12240
|
+
var _ref3 = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee5(response, next) {
|
|
12191
12241
|
var requestInstance, subscribeNext, continueWait, body, text, error, result;
|
|
12192
|
-
return regenerator.wrap(function
|
|
12242
|
+
return regenerator.wrap(function _callee5$(_context5) {
|
|
12193
12243
|
while (1) {
|
|
12194
|
-
switch (
|
|
12244
|
+
switch (_context5.prev = _context5.next) {
|
|
12195
12245
|
case 0:
|
|
12196
|
-
|
|
12246
|
+
_context5.next = 2;
|
|
12197
12247
|
return requestPromise;
|
|
12198
12248
|
|
|
12199
12249
|
case 2:
|
|
12200
|
-
requestInstance =
|
|
12250
|
+
requestInstance = _context5.sent;
|
|
12201
12251
|
|
|
12202
12252
|
subscribeNext = /*#__PURE__*/function () {
|
|
12203
|
-
var
|
|
12204
|
-
return regenerator.wrap(function
|
|
12253
|
+
var _ref4 = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee3() {
|
|
12254
|
+
return regenerator.wrap(function _callee3$(_context3) {
|
|
12205
12255
|
while (1) {
|
|
12206
|
-
switch (
|
|
12256
|
+
switch (_context3.prev = _context3.next) {
|
|
12207
12257
|
case 0:
|
|
12208
12258
|
if (!(options.subscribe && !unsubscribed)) {
|
|
12209
|
-
|
|
12259
|
+
_context3.next = 8;
|
|
12210
12260
|
break;
|
|
12211
12261
|
}
|
|
12212
12262
|
|
|
12213
12263
|
if (!requestInstance.unsubscribe) {
|
|
12214
|
-
|
|
12264
|
+
_context3.next = 5;
|
|
12215
12265
|
break;
|
|
12216
12266
|
}
|
|
12217
12267
|
|
|
12218
|
-
return
|
|
12268
|
+
return _context3.abrupt("return", next());
|
|
12219
12269
|
|
|
12220
12270
|
case 5:
|
|
12221
|
-
|
|
12271
|
+
_context3.next = 7;
|
|
12222
12272
|
return new Promise(function (resolve) {
|
|
12223
12273
|
return setTimeout(function () {
|
|
12224
12274
|
return resolve();
|
|
@@ -12226,41 +12276,41 @@
|
|
|
12226
12276
|
});
|
|
12227
12277
|
|
|
12228
12278
|
case 7:
|
|
12229
|
-
return
|
|
12279
|
+
return _context3.abrupt("return", next());
|
|
12230
12280
|
|
|
12231
12281
|
case 8:
|
|
12232
|
-
return
|
|
12282
|
+
return _context3.abrupt("return", null);
|
|
12233
12283
|
|
|
12234
12284
|
case 9:
|
|
12235
12285
|
case "end":
|
|
12236
|
-
return
|
|
12286
|
+
return _context3.stop();
|
|
12237
12287
|
}
|
|
12238
12288
|
}
|
|
12239
|
-
},
|
|
12289
|
+
}, _callee3);
|
|
12240
12290
|
}));
|
|
12241
12291
|
|
|
12242
12292
|
return function subscribeNext() {
|
|
12243
|
-
return
|
|
12293
|
+
return _ref4.apply(this, arguments);
|
|
12244
12294
|
};
|
|
12245
12295
|
}();
|
|
12246
12296
|
|
|
12247
12297
|
continueWait = /*#__PURE__*/function () {
|
|
12248
|
-
var
|
|
12249
|
-
return regenerator.wrap(function
|
|
12298
|
+
var _ref5 = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee4(wait) {
|
|
12299
|
+
return regenerator.wrap(function _callee4$(_context4) {
|
|
12250
12300
|
while (1) {
|
|
12251
|
-
switch (
|
|
12301
|
+
switch (_context4.prev = _context4.next) {
|
|
12252
12302
|
case 0:
|
|
12253
12303
|
if (unsubscribed) {
|
|
12254
|
-
|
|
12304
|
+
_context4.next = 5;
|
|
12255
12305
|
break;
|
|
12256
12306
|
}
|
|
12257
12307
|
|
|
12258
12308
|
if (!wait) {
|
|
12259
|
-
|
|
12309
|
+
_context4.next = 4;
|
|
12260
12310
|
break;
|
|
12261
12311
|
}
|
|
12262
12312
|
|
|
12263
|
-
|
|
12313
|
+
_context4.next = 4;
|
|
12264
12314
|
return new Promise(function (resolve) {
|
|
12265
12315
|
return setTimeout(function () {
|
|
12266
12316
|
return resolve();
|
|
@@ -12268,150 +12318,157 @@
|
|
|
12268
12318
|
});
|
|
12269
12319
|
|
|
12270
12320
|
case 4:
|
|
12271
|
-
return
|
|
12321
|
+
return _context4.abrupt("return", next());
|
|
12272
12322
|
|
|
12273
12323
|
case 5:
|
|
12274
|
-
return
|
|
12324
|
+
return _context4.abrupt("return", null);
|
|
12275
12325
|
|
|
12276
12326
|
case 6:
|
|
12277
12327
|
case "end":
|
|
12278
|
-
return
|
|
12328
|
+
return _context4.stop();
|
|
12279
12329
|
}
|
|
12280
12330
|
}
|
|
12281
|
-
},
|
|
12331
|
+
}, _callee4);
|
|
12282
12332
|
}));
|
|
12283
12333
|
|
|
12284
|
-
return function continueWait(
|
|
12285
|
-
return
|
|
12334
|
+
return function continueWait(_x5) {
|
|
12335
|
+
return _ref5.apply(this, arguments);
|
|
12286
12336
|
};
|
|
12287
12337
|
}();
|
|
12288
12338
|
|
|
12289
|
-
|
|
12339
|
+
if (!(options.subscribe && !skipAuthorizationUpdate)) {
|
|
12340
|
+
_context5.next = 8;
|
|
12341
|
+
break;
|
|
12342
|
+
}
|
|
12343
|
+
|
|
12344
|
+
_context5.next = 8;
|
|
12290
12345
|
return _this.updateTransportAuthorization();
|
|
12291
12346
|
|
|
12292
|
-
case
|
|
12347
|
+
case 8:
|
|
12348
|
+
skipAuthorizationUpdate = false;
|
|
12349
|
+
|
|
12293
12350
|
if (!(response.status === 502)) {
|
|
12294
|
-
|
|
12351
|
+
_context5.next = 13;
|
|
12295
12352
|
break;
|
|
12296
12353
|
}
|
|
12297
12354
|
|
|
12298
|
-
|
|
12355
|
+
_context5.next = 12;
|
|
12299
12356
|
return checkMutex();
|
|
12300
12357
|
|
|
12301
|
-
case
|
|
12302
|
-
return
|
|
12358
|
+
case 12:
|
|
12359
|
+
return _context5.abrupt("return", continueWait(true));
|
|
12303
12360
|
|
|
12304
|
-
case
|
|
12361
|
+
case 13:
|
|
12305
12362
|
body = {};
|
|
12306
12363
|
text = '';
|
|
12307
|
-
|
|
12308
|
-
|
|
12364
|
+
_context5.prev = 15;
|
|
12365
|
+
_context5.next = 18;
|
|
12309
12366
|
return response.text();
|
|
12310
12367
|
|
|
12311
|
-
case
|
|
12312
|
-
text =
|
|
12368
|
+
case 18:
|
|
12369
|
+
text = _context5.sent;
|
|
12313
12370
|
body = JSON.parse(text);
|
|
12314
|
-
|
|
12371
|
+
_context5.next = 25;
|
|
12315
12372
|
break;
|
|
12316
12373
|
|
|
12317
|
-
case
|
|
12318
|
-
|
|
12319
|
-
|
|
12374
|
+
case 22:
|
|
12375
|
+
_context5.prev = 22;
|
|
12376
|
+
_context5.t0 = _context5["catch"](15);
|
|
12320
12377
|
body.error = text;
|
|
12321
12378
|
|
|
12322
|
-
case
|
|
12379
|
+
case 25:
|
|
12323
12380
|
if (!(body.error === 'Continue wait')) {
|
|
12324
|
-
|
|
12381
|
+
_context5.next = 30;
|
|
12325
12382
|
break;
|
|
12326
12383
|
}
|
|
12327
12384
|
|
|
12328
|
-
|
|
12385
|
+
_context5.next = 28;
|
|
12329
12386
|
return checkMutex();
|
|
12330
12387
|
|
|
12331
|
-
case
|
|
12388
|
+
case 28:
|
|
12332
12389
|
if (options.progressCallback) {
|
|
12333
12390
|
options.progressCallback(new ProgressResult(body));
|
|
12334
12391
|
}
|
|
12335
12392
|
|
|
12336
|
-
return
|
|
12393
|
+
return _context5.abrupt("return", continueWait());
|
|
12337
12394
|
|
|
12338
|
-
case
|
|
12395
|
+
case 30:
|
|
12339
12396
|
if (!(response.status !== 200)) {
|
|
12340
|
-
|
|
12397
|
+
_context5.next = 43;
|
|
12341
12398
|
break;
|
|
12342
12399
|
}
|
|
12343
12400
|
|
|
12344
|
-
|
|
12401
|
+
_context5.next = 33;
|
|
12345
12402
|
return checkMutex();
|
|
12346
12403
|
|
|
12347
|
-
case
|
|
12404
|
+
case 33:
|
|
12348
12405
|
if (!(!options.subscribe && requestInstance.unsubscribe)) {
|
|
12349
|
-
|
|
12406
|
+
_context5.next = 36;
|
|
12350
12407
|
break;
|
|
12351
12408
|
}
|
|
12352
12409
|
|
|
12353
|
-
|
|
12410
|
+
_context5.next = 36;
|
|
12354
12411
|
return requestInstance.unsubscribe();
|
|
12355
12412
|
|
|
12356
|
-
case
|
|
12413
|
+
case 36:
|
|
12357
12414
|
error = new RequestError(body.error, body); // TODO error class
|
|
12358
12415
|
|
|
12359
12416
|
if (!callback) {
|
|
12360
|
-
|
|
12417
|
+
_context5.next = 41;
|
|
12361
12418
|
break;
|
|
12362
12419
|
}
|
|
12363
12420
|
|
|
12364
12421
|
callback(error);
|
|
12365
|
-
|
|
12422
|
+
_context5.next = 42;
|
|
12366
12423
|
break;
|
|
12367
12424
|
|
|
12368
|
-
case
|
|
12425
|
+
case 41:
|
|
12369
12426
|
throw error;
|
|
12370
12427
|
|
|
12371
|
-
case
|
|
12372
|
-
return
|
|
12428
|
+
case 42:
|
|
12429
|
+
return _context5.abrupt("return", subscribeNext());
|
|
12373
12430
|
|
|
12374
|
-
case
|
|
12375
|
-
|
|
12431
|
+
case 43:
|
|
12432
|
+
_context5.next = 45;
|
|
12376
12433
|
return checkMutex();
|
|
12377
12434
|
|
|
12378
|
-
case
|
|
12435
|
+
case 45:
|
|
12379
12436
|
if (!(!options.subscribe && requestInstance.unsubscribe)) {
|
|
12380
|
-
|
|
12437
|
+
_context5.next = 48;
|
|
12381
12438
|
break;
|
|
12382
12439
|
}
|
|
12383
12440
|
|
|
12384
|
-
|
|
12441
|
+
_context5.next = 48;
|
|
12385
12442
|
return requestInstance.unsubscribe();
|
|
12386
12443
|
|
|
12387
|
-
case
|
|
12444
|
+
case 48:
|
|
12388
12445
|
result = toResult(body);
|
|
12389
12446
|
|
|
12390
12447
|
if (!callback) {
|
|
12391
|
-
|
|
12448
|
+
_context5.next = 53;
|
|
12392
12449
|
break;
|
|
12393
12450
|
}
|
|
12394
12451
|
|
|
12395
12452
|
callback(null, result);
|
|
12396
|
-
|
|
12453
|
+
_context5.next = 54;
|
|
12397
12454
|
break;
|
|
12398
12455
|
|
|
12399
|
-
case
|
|
12400
|
-
return
|
|
12456
|
+
case 53:
|
|
12457
|
+
return _context5.abrupt("return", result);
|
|
12401
12458
|
|
|
12402
|
-
case
|
|
12403
|
-
return
|
|
12459
|
+
case 54:
|
|
12460
|
+
return _context5.abrupt("return", subscribeNext());
|
|
12404
12461
|
|
|
12405
|
-
case
|
|
12462
|
+
case 55:
|
|
12406
12463
|
case "end":
|
|
12407
|
-
return
|
|
12464
|
+
return _context5.stop();
|
|
12408
12465
|
}
|
|
12409
12466
|
}
|
|
12410
|
-
},
|
|
12467
|
+
}, _callee5, null, [[15, 22]]);
|
|
12411
12468
|
}));
|
|
12412
12469
|
|
|
12413
|
-
return function loadImpl(
|
|
12414
|
-
return
|
|
12470
|
+
return function loadImpl(_x3, _x4) {
|
|
12471
|
+
return _ref3.apply(this, arguments);
|
|
12415
12472
|
};
|
|
12416
12473
|
}();
|
|
12417
12474
|
|
|
@@ -12422,35 +12479,35 @@
|
|
|
12422
12479
|
if (callback) {
|
|
12423
12480
|
return {
|
|
12424
12481
|
unsubscribe: function () {
|
|
12425
|
-
var _unsubscribe = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function
|
|
12482
|
+
var _unsubscribe = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee6() {
|
|
12426
12483
|
var requestInstance;
|
|
12427
|
-
return regenerator.wrap(function
|
|
12484
|
+
return regenerator.wrap(function _callee6$(_context6) {
|
|
12428
12485
|
while (1) {
|
|
12429
|
-
switch (
|
|
12486
|
+
switch (_context6.prev = _context6.next) {
|
|
12430
12487
|
case 0:
|
|
12431
|
-
|
|
12488
|
+
_context6.next = 2;
|
|
12432
12489
|
return requestPromise;
|
|
12433
12490
|
|
|
12434
12491
|
case 2:
|
|
12435
|
-
requestInstance =
|
|
12492
|
+
requestInstance = _context6.sent;
|
|
12436
12493
|
unsubscribed = true;
|
|
12437
12494
|
|
|
12438
12495
|
if (!requestInstance.unsubscribe) {
|
|
12439
|
-
|
|
12496
|
+
_context6.next = 6;
|
|
12440
12497
|
break;
|
|
12441
12498
|
}
|
|
12442
12499
|
|
|
12443
|
-
return
|
|
12500
|
+
return _context6.abrupt("return", requestInstance.unsubscribe());
|
|
12444
12501
|
|
|
12445
12502
|
case 6:
|
|
12446
|
-
return
|
|
12503
|
+
return _context6.abrupt("return", null);
|
|
12447
12504
|
|
|
12448
12505
|
case 7:
|
|
12449
12506
|
case "end":
|
|
12450
|
-
return
|
|
12507
|
+
return _context6.stop();
|
|
12451
12508
|
}
|
|
12452
12509
|
}
|
|
12453
|
-
},
|
|
12510
|
+
}, _callee6);
|
|
12454
12511
|
}));
|
|
12455
12512
|
|
|
12456
12513
|
function unsubscribe() {
|
|
@@ -12467,33 +12524,83 @@
|
|
|
12467
12524
|
}, {
|
|
12468
12525
|
key: "updateTransportAuthorization",
|
|
12469
12526
|
value: function () {
|
|
12470
|
-
var _updateTransportAuthorization = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function
|
|
12471
|
-
var
|
|
12472
|
-
|
|
12527
|
+
var _updateTransportAuthorization = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee8() {
|
|
12528
|
+
var _this2 = this;
|
|
12529
|
+
|
|
12530
|
+
return regenerator.wrap(function _callee8$(_context8) {
|
|
12473
12531
|
while (1) {
|
|
12474
|
-
switch (
|
|
12532
|
+
switch (_context8.prev = _context8.next) {
|
|
12475
12533
|
case 0:
|
|
12476
|
-
if (!
|
|
12477
|
-
|
|
12534
|
+
if (!this.updateAuthorizationPromise) {
|
|
12535
|
+
_context8.next = 4;
|
|
12478
12536
|
break;
|
|
12479
12537
|
}
|
|
12480
12538
|
|
|
12481
|
-
|
|
12482
|
-
return this.
|
|
12539
|
+
_context8.next = 3;
|
|
12540
|
+
return this.updateAuthorizationPromise;
|
|
12483
12541
|
|
|
12484
12542
|
case 3:
|
|
12485
|
-
|
|
12543
|
+
return _context8.abrupt("return");
|
|
12486
12544
|
|
|
12487
|
-
|
|
12488
|
-
|
|
12545
|
+
case 4:
|
|
12546
|
+
if (!(typeof this.apiToken === 'function')) {
|
|
12547
|
+
_context8.next = 8;
|
|
12548
|
+
break;
|
|
12489
12549
|
}
|
|
12490
12550
|
|
|
12491
|
-
|
|
12551
|
+
this.updateAuthorizationPromise = new Promise( /*#__PURE__*/function () {
|
|
12552
|
+
var _ref6 = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee7(resolve, reject) {
|
|
12553
|
+
var token;
|
|
12554
|
+
return regenerator.wrap(function _callee7$(_context7) {
|
|
12555
|
+
while (1) {
|
|
12556
|
+
switch (_context7.prev = _context7.next) {
|
|
12557
|
+
case 0:
|
|
12558
|
+
_context7.prev = 0;
|
|
12559
|
+
_context7.next = 3;
|
|
12560
|
+
return _this2.apiToken();
|
|
12561
|
+
|
|
12562
|
+
case 3:
|
|
12563
|
+
token = _context7.sent;
|
|
12564
|
+
|
|
12565
|
+
if (_this2.transport.authorization !== token) {
|
|
12566
|
+
_this2.transport.authorization = token;
|
|
12567
|
+
}
|
|
12568
|
+
|
|
12569
|
+
resolve();
|
|
12570
|
+
_context7.next = 11;
|
|
12571
|
+
break;
|
|
12572
|
+
|
|
12573
|
+
case 8:
|
|
12574
|
+
_context7.prev = 8;
|
|
12575
|
+
_context7.t0 = _context7["catch"](0);
|
|
12576
|
+
reject(_context7.t0);
|
|
12577
|
+
|
|
12578
|
+
case 11:
|
|
12579
|
+
_context7.prev = 11;
|
|
12580
|
+
_this2.updateAuthorizationPromise = null;
|
|
12581
|
+
return _context7.finish(11);
|
|
12582
|
+
|
|
12583
|
+
case 14:
|
|
12584
|
+
case "end":
|
|
12585
|
+
return _context7.stop();
|
|
12586
|
+
}
|
|
12587
|
+
}
|
|
12588
|
+
}, _callee7, null, [[0, 8, 11, 14]]);
|
|
12589
|
+
}));
|
|
12590
|
+
|
|
12591
|
+
return function (_x6, _x7) {
|
|
12592
|
+
return _ref6.apply(this, arguments);
|
|
12593
|
+
};
|
|
12594
|
+
}());
|
|
12595
|
+
_context8.next = 8;
|
|
12596
|
+
return this.updateAuthorizationPromise;
|
|
12597
|
+
|
|
12598
|
+
case 8:
|
|
12492
12599
|
case "end":
|
|
12493
|
-
return
|
|
12600
|
+
return _context8.stop();
|
|
12494
12601
|
}
|
|
12495
12602
|
}
|
|
12496
|
-
},
|
|
12603
|
+
}, _callee8, this);
|
|
12497
12604
|
}));
|
|
12498
12605
|
|
|
12499
12606
|
function updateTransportAuthorization() {
|
|
@@ -12505,26 +12612,26 @@
|
|
|
12505
12612
|
}, {
|
|
12506
12613
|
key: "load",
|
|
12507
12614
|
value: function load(query, options, callback) {
|
|
12508
|
-
var
|
|
12615
|
+
var _this3 = this;
|
|
12509
12616
|
|
|
12510
12617
|
return this.loadMethod(function () {
|
|
12511
|
-
return
|
|
12618
|
+
return _this3.request('load', {
|
|
12512
12619
|
query: query,
|
|
12513
12620
|
queryType: 'multi'
|
|
12514
12621
|
});
|
|
12515
12622
|
}, function (response) {
|
|
12516
12623
|
return new ResultSet(response, {
|
|
12517
|
-
parseDateMeasures:
|
|
12624
|
+
parseDateMeasures: _this3.parseDateMeasures
|
|
12518
12625
|
});
|
|
12519
12626
|
}, options, callback);
|
|
12520
12627
|
}
|
|
12521
12628
|
}, {
|
|
12522
12629
|
key: "sql",
|
|
12523
12630
|
value: function sql(query, options, callback) {
|
|
12524
|
-
var
|
|
12631
|
+
var _this4 = this;
|
|
12525
12632
|
|
|
12526
12633
|
return this.loadMethod(function () {
|
|
12527
|
-
return
|
|
12634
|
+
return _this4.request('sql', {
|
|
12528
12635
|
query: query
|
|
12529
12636
|
});
|
|
12530
12637
|
}, function (response) {
|
|
@@ -12536,10 +12643,10 @@
|
|
|
12536
12643
|
}, {
|
|
12537
12644
|
key: "meta",
|
|
12538
12645
|
value: function meta(options, callback) {
|
|
12539
|
-
var
|
|
12646
|
+
var _this5 = this;
|
|
12540
12647
|
|
|
12541
12648
|
return this.loadMethod(function () {
|
|
12542
|
-
return
|
|
12649
|
+
return _this5.request('meta');
|
|
12543
12650
|
}, function (body) {
|
|
12544
12651
|
return new Meta(body);
|
|
12545
12652
|
}, options, callback);
|
|
@@ -12547,10 +12654,10 @@
|
|
|
12547
12654
|
}, {
|
|
12548
12655
|
key: "dryRun",
|
|
12549
12656
|
value: function dryRun(query, options, callback) {
|
|
12550
|
-
var
|
|
12657
|
+
var _this6 = this;
|
|
12551
12658
|
|
|
12552
12659
|
return this.loadMethod(function () {
|
|
12553
|
-
return
|
|
12660
|
+
return _this6.request('dry-run', {
|
|
12554
12661
|
query: query
|
|
12555
12662
|
});
|
|
12556
12663
|
}, function (response) {
|
|
@@ -12560,16 +12667,16 @@
|
|
|
12560
12667
|
}, {
|
|
12561
12668
|
key: "subscribe",
|
|
12562
12669
|
value: function subscribe(query, options, callback) {
|
|
12563
|
-
var
|
|
12670
|
+
var _this7 = this;
|
|
12564
12671
|
|
|
12565
12672
|
return this.loadMethod(function () {
|
|
12566
|
-
return
|
|
12673
|
+
return _this7.request('subscribe', {
|
|
12567
12674
|
query: query,
|
|
12568
12675
|
queryType: 'multi'
|
|
12569
12676
|
});
|
|
12570
12677
|
}, function (body) {
|
|
12571
12678
|
return new ResultSet(body, {
|
|
12572
|
-
parseDateMeasures:
|
|
12679
|
+
parseDateMeasures: _this7.parseDateMeasures
|
|
12573
12680
|
});
|
|
12574
12681
|
}, _objectSpread(_objectSpread({}, options), {}, {
|
|
12575
12682
|
subscribe: true
|