/src/$1'
- },
- snapshotSerializers: [
- 'jest-serializer-vue'
- ],
- testMatch: [
- '**/tests/unit/**/*.spec.(js|jsx|ts|tsx)|**/__tests__/*.(js|jsx|ts|tsx)'
- ],
- testEnvironment: 'jsdom',
- testURL: 'http://localhost/',
- watchPlugins: [
- 'jest-watch-typeahead/filename',
- 'jest-watch-typeahead/testname'
- ]
-}
diff --git a/packages/cubejs-client-vue/package.json b/packages/cubejs-client-vue/package.json
deleted file mode 100644
index a2ff3aad8f0a0..0000000000000
--- a/packages/cubejs-client-vue/package.json
+++ /dev/null
@@ -1,80 +0,0 @@
-{
- "name": "@cubejs-client/vue",
- "version": "1.5.9",
- "engines": {},
- "repository": {
- "type": "git",
- "url": "https://github.com/cube-js/cube.js.git",
- "directory": "packages/cubejs-client-vue"
- },
- "description": "Vue.js components for cube.js",
- "author": "Ricardo Tapia",
- "contributors": [
- "Ricardo Tapia",
- "Cube Dev, Inc."
- ],
- "scripts": {
- "serve": "vue-cli-service serve",
- "lint": "vue-cli-service lint",
- "test": "vue-cli-service test:unit",
- "unit": "npm run test:unit",
- "test:unit": "vue-cli-service test:unit",
- "test:unit:watch": "vue-cli-service test:unit --watch --require tests/setup.js"
- },
- "main": "dist/cubejs-client-vue.cjs.js",
- "module": "dist/cubejs-client-vue.esm.js",
- "files": [
- "dist",
- "src"
- ],
- "dependencies": {
- "@cubejs-client/core": "1.5.9",
- "core-js": "^3.6.5",
- "ramda": "^0.27.2"
- },
- "devDependencies": {
- "@babel/plugin-proposal-optional-chaining": "^7.21.0",
- "@vue/babel-preset-app": "^5",
- "@vue/cli-plugin-babel": "^5",
- "@vue/cli-plugin-eslint": "^5",
- "@vue/cli-plugin-unit-jest": "^5",
- "@vue/cli-service": "^5",
- "@vue/test-utils": "^1.3",
- "@vue/vue2-jest": "^29",
- "eslint": "^7.21.0",
- "eslint-plugin-vue": "^6.2.1",
- "vue": "^2.7",
- "vue-template-compiler": "^2.7"
- },
- "peerDependencies": {
- "vue": "^2.6.6"
- },
- "eslintConfig": {
- "root": true,
- "env": {
- "node": true
- },
- "extends": [
- "plugin:vue/essential",
- "eslint:recommended"
- ],
- "rules": {},
- "parserOptions": {
- "parser": "babel-eslint"
- }
- },
- "postcss": {
- "plugins": {
- "autoprefixer": {}
- }
- },
- "browserslist": [
- "> 1%",
- "last 2 versions",
- "not ie <= 8"
- ],
- "license": "MIT",
- "publishConfig": {
- "access": "public"
- }
-}
diff --git a/packages/cubejs-client-vue/src/QueryBuilder.js b/packages/cubejs-client-vue/src/QueryBuilder.js
deleted file mode 100644
index 5fd15fdb3abed..0000000000000
--- a/packages/cubejs-client-vue/src/QueryBuilder.js
+++ /dev/null
@@ -1,700 +0,0 @@
-import {
- isQueryPresent,
- defaultOrder,
- defaultHeuristics,
- GRANULARITIES,
- ResultSet,
- getOrderMembersFromOrder,
- moveItemInArray,
- movePivotItem,
- areQueriesEqual,
-} from '@cubejs-client/core';
-import { clone, equals } from 'ramda';
-
-import QueryRenderer from './QueryRenderer';
-
-const QUERY_ELEMENTS = ['measures', 'dimensions', 'segments', 'timeDimensions', 'filters'];
-
-const toOrderMember = (member) => ({
- id: member.name,
- title: member.title,
-});
-
-const reduceOrderMembers = (array) =>
- array.reduce((acc, { id, order }) => (order !== 'none' ? [...acc, [id, order]] : acc), []);
-
-const operators = ['and', 'or'];
-
-const validateFilters = (filters) =>
- filters.reduce((acc, raw) => {
- if (raw.operator) {
- return [...acc, raw];
- }
-
- const validBooleanFilter = operators.reduce((acc, operator) => {
- const filters = raw[operator];
-
- const booleanFilters = validateFilters(filters || []);
-
- if (booleanFilters.length) {
- return { ...acc, [operator]: booleanFilters };
- }
-
- return acc;
- }, {});
-
- if (operators.some((operator) => validBooleanFilter[operator])) {
- return [...acc, validBooleanFilter];
- }
-
- return acc;
- }, []);
-
-const getDimensionOrMeasure = (meta, m) => {
- const memberName = m.member || m.dimension;
- return memberName && meta.resolveMember(memberName, ['dimensions', 'measures']);
-};
-
-const resolveMembers = (meta, arr) =>
- arr &&
- arr.map((e, index) => {
- return {
- ...e,
- member: getDimensionOrMeasure(meta, e),
- index,
- and: resolveMembers(meta, e.and),
- or: resolveMembers(meta, e.or),
- };
- });
-
-export default {
- components: {
- QueryRenderer,
- },
- props: {
- query: {
- type: Object,
- default: () => ({}),
- },
- cubeApi: {
- type: Object,
- required: true,
- },
- initialChartType: {
- type: String,
- default: () => 'line',
- },
- disableHeuristics: {
- type: Boolean,
- },
- stateChangeHeuristics: {
- type: Function,
- },
- initialVizState: {
- type: Object,
- default: () => ({}),
- },
- wrapWithQueryRenderer: {
- type: Boolean,
- default: true,
- },
- },
- data() {
- const {
- query = this.query,
- chartType = this.initialChartType,
- pivotConfig,
- } = this.initialVizState;
-
- return {
- initialQuery: query,
- skipHeuristics: true,
- meta: undefined,
- mutex: {},
- chartType,
- measures: [],
- dimensions: [],
- segments: [],
- timeDimensions: [],
- filters: [],
- availableMeasures: [],
- availableDimensions: [],
- availableTimeDimensions: [],
- availableSegments: [],
- limit: null,
- offset: null,
- renewQuery: false,
- order: null,
- prevValidatedQuery: null,
- granularities: GRANULARITIES,
- pivotConfig: ResultSet.getNormalizedPivotConfig(query || {}, pivotConfig),
- };
- },
-
- render(createElement) {
- const {
- chartType,
- cubeApi,
- dimensions,
- filters,
- measures,
- meta,
- query,
- segments,
- timeDimensions,
- validatedQuery,
- isQueryPresent,
- availableSegments,
- availableTimeDimensions,
- availableDimensions,
- availableMeasures,
- limit,
- offset,
- setLimit,
- removeLimit,
- setOffset,
- removeOffset,
- renewQuery,
- order,
- orderMembers,
- } = this;
-
- let builderProps = {};
-
- if (meta) {
- builderProps = {
- query,
- validatedQuery,
- isQueryPresent,
- chartType,
- measures,
- dimensions,
- segments,
- timeDimensions,
- filters,
- availableSegments,
- availableTimeDimensions,
- availableDimensions,
- availableMeasures,
- updateChartType: this.updateChart,
- limit,
- offset,
- setLimit,
- removeLimit,
- setOffset,
- removeOffset,
- renewQuery,
- order,
- orderMembers,
- setOrder: this.setOrder,
- setQuery: this.setQuery,
- pivotConfig: this.pivotConfig,
- updateOrder: {
- set: (memberId, newOrder) => {
- this.order = reduceOrderMembers(
- orderMembers.map((orderMember) => ({
- ...orderMember,
- order: orderMember.id === memberId ? newOrder : orderMember.order,
- }))
- );
- },
- update: (newOrder) => {
- this.order = newOrder;
- },
- reorder: (sourceIndex, destinationIndex) => {
- this.order = reduceOrderMembers(
- moveItemInArray(orderMembers, sourceIndex, destinationIndex)
- );
- },
- },
- updatePivotConfig: {
- moveItem: ({ sourceIndex, destinationIndex, sourceAxis, destinationAxis }) => {
- this.pivotConfig = movePivotItem(
- this.pivotConfig,
- sourceIndex,
- destinationIndex,
- sourceAxis,
- destinationAxis
- );
- },
- update: (pivotConfig) => {
- this.pivotConfig = {
- ...this.pivotConfig,
- ...pivotConfig,
- };
- },
- },
- };
-
- QUERY_ELEMENTS.forEach((elementName) => {
- const name = elementName.charAt(0).toUpperCase() + elementName.slice(1);
-
- builderProps[`add${name}`] = (member) => {
- this.addMember(elementName, member);
- };
-
- builderProps[`update${name}`] = (member, updateWith) => {
- this.updateMember(elementName, member, updateWith);
- };
-
- builderProps[`remove${name}`] = (member) => {
- this.removeMember(elementName, member);
- };
-
- builderProps[`set${name}`] = (members) => {
- this.setMembers(elementName, members);
- };
- });
- }
-
- if (!this.wrapWithQueryRenderer && this.$scopedSlots.builder) {
- return createElement('div', {}, [this.$scopedSlots.builder(builderProps)]);
- }
-
- // Pass parent slots to child QueryRenderer component
- const children = Object.keys(this.$slots).map((slot) =>
- createElement('template', { slot }, this.$slots[slot])
- );
-
- return createElement(
- QueryRenderer,
- {
- props: {
- query: this.validatedQuery,
- cubeApi,
- builderProps,
- },
- scopedSlots: this.$scopedSlots,
- on: {
- queryStatus: (event) => {
- this.$emit('queryStatus', event);
- },
- },
- },
- children
- );
- },
- computed: {
- isQueryPresent() {
- const { validatedQuery } = this;
-
- return isQueryPresent(validatedQuery);
- },
- orderMembers() {
- return getOrderMembersFromOrder(
- [
- ...this.measures,
- ...this.dimensions,
- ...this.timeDimensions.reduce((acc, { dimension, granularity }) => {
- if (granularity !== undefined) {
- acc.push(toOrderMember(dimension));
- }
- return acc;
- }, []),
- ]
- .map((member, index) => {
- const id = member.name || member.id;
-
- if (!id) {
- return false;
- }
-
- return {
- index,
- id,
- title: member.title,
- };
- })
- .filter(Boolean),
- this.order
- );
- },
- vizState() {
- return {
- query: this.validatedQuery,
- chartType: this.chartType,
- pivotConfig: this.pivotConfig,
- };
- },
- validatedQuery() {
- let validatedQuery = {};
- let toQuery = (member) => member.name;
- // TODO: implement timezone
-
- let hasElements = false;
- QUERY_ELEMENTS.forEach((element) => {
- if (element === 'timeDimensions') {
- toQuery = (member) => ({
- dimension: member.dimension.name,
- granularity: member.granularity,
- dateRange: member.dateRange,
- });
- } else if (element === 'filters') {
- toQuery = (member) => ({
- member: member.member && member.member.name,
- operator: member.operator,
- values: member.values,
- and: member.and && member.and.map(toQuery),
- or: member.or && member.or.map(toQuery),
- });
- }
-
- if (this[element].length > 0) {
- validatedQuery[element] = this[element].map((x) => toQuery(x));
-
- hasElements = true;
- }
- });
-
- if (validatedQuery.filters) {
- validatedQuery.filters = validateFilters(validatedQuery.filters);
- }
-
- // only set limit and offset if there are elements otherwise an invalid request with just limit/offset
- // gets sent when the component is first mounted, but before the actual query is constructed.
- if (hasElements) {
- if (this.limit) {
- validatedQuery.limit = this.limit;
- }
-
- if (this.offset) {
- validatedQuery.offset = this.offset;
- }
-
- if (this.order) {
- validatedQuery.order = this.order;
- }
-
- if (this.renewQuery) {
- validatedQuery.renewQuery = this.renewQuery;
- }
- }
-
- if (
- !this.skipHeuristics &&
- !this.disableHeuristics &&
- isQueryPresent(validatedQuery) &&
- this.meta
- ) {
- const heuristicsFn = this.stateChangeHeuristics || defaultHeuristics;
- const { query, chartType, shouldApplyHeuristicOrder, pivotConfig } = heuristicsFn(
- {
- query: validatedQuery,
- chartType: this.chartType,
- },
- this.prevValidatedQuery,
- {
- meta: this.meta,
- sessionGranularity: validatedQuery?.timeDimensions?.[0]?.granularity,
- }
- );
-
- validatedQuery = {
- ...validatedQuery,
- ...query,
- ...(shouldApplyHeuristicOrder ? { order: defaultOrder(query) } : null),
- };
-
- this.chartType = chartType || this.chartType;
- this.pivotConfig = ResultSet.getNormalizedPivotConfig(
- validatedQuery,
- pivotConfig !== undefined ? pivotConfig : this.pivotConfig
- );
- this.copyQueryFromProps(validatedQuery);
- }
-
- // query heuristics should only apply on query change (not applied to the initial query)
- if (this.prevValidatedQuery !== null) {
- this.skipHeuristics = false;
- }
-
- this.prevValidatedQuery = validatedQuery;
- return validatedQuery;
- },
- },
-
- async mounted() {
- this.meta = await this.cubeApi.meta();
-
- this.copyQueryFromProps();
-
- if (isQueryPresent(this.initialQuery)) {
- try {
- const dryRunResponse = await this.cubeApi.dryRun(this.initialQuery);
-
- this.pivotConfig = ResultSet.getNormalizedPivotConfig(
- dryRunResponse?.pivotQuery || {},
- this.pivotConfig
- );
- } catch (error) {
- console.error(error);
- }
- }
- },
-
- methods: {
- copyQueryFromProps(query) {
- const {
- measures = [],
- dimensions = [],
- segments = [],
- timeDimensions = [],
- filters = [],
- limit,
- offset,
- renewQuery,
- order,
- } = query || this.initialQuery;
-
- this.measures = measures.map((m, index) => ({
- index,
- ...this.meta.resolveMember(m, 'measures'),
- }));
- this.dimensions = dimensions.map((m, index) => ({
- index,
- ...this.meta.resolveMember(m, 'dimensions'),
- }));
- this.segments = segments.map((m, index) => ({
- index,
- ...this.meta.resolveMember(m, 'segments'),
- }));
- this.timeDimensions = timeDimensions.map((m, index) => ({
- ...m,
- dimension: {
- ...this.meta.resolveMember(m.dimension, 'dimensions'),
- granularities: this.granularities,
- },
- index,
- }));
- const memberTypes = ['dimensions', 'measures'];
- this.filters = filters.map((m, index) => {
- const memberName = m.member || m.dimension;
- return {
- ...m,
- member: memberName && this.meta.resolveMember(memberName, memberTypes),
- operators: memberName && this.meta.filterOperatorsForMember(memberName, memberTypes),
- and: resolveMembers(this.meta, m.and),
- or: resolveMembers(this.meta, m.or),
- index,
- };
- });
-
- this.availableMeasures = this.meta.membersForQuery({}, 'measures') || [];
- this.availableDimensions = this.meta.membersForQuery({}, 'dimensions') || [];
- this.availableTimeDimensions = (this.meta.membersForQuery({}, 'dimensions') || []).filter(
- (m) => m.type === 'time'
- );
- this.availableSegments = this.meta.membersForQuery({}, 'segments') || [];
- this.limit = limit || 10000;
- this.offset = offset || null;
- this.renewQuery = renewQuery || false;
- this.order = order || null;
- },
- addMember(element, member) {
- const name = element.charAt(0).toUpperCase() + element.slice(1);
- let mem;
-
- if (element === 'timeDimensions') {
- mem = this[`available${name}`].find((m) => m.name === member.dimension);
- if (mem) {
- const dimension = {
- ...this.meta.resolveMember(mem.name, 'dimensions'),
- granularities: this.granularities,
- };
-
- mem = {
- ...mem,
- granularity: member.granularity,
- dateRange: member.dateRange,
- dimension,
- index: this[element].length,
- };
- }
- } else if (element === 'filters') {
- mem = {
- ...member,
- and: resolveMembers(this.meta, member.and),
- or: resolveMembers(this.meta, member.or),
- member: getDimensionOrMeasure(this.meta, member),
- };
- } else {
- mem = this[`available${name}`].find((m) => m.name === member);
- }
-
- if (mem) {
- this[element].push(mem);
- }
- },
- removeMember(element, member) {
- let index;
- if (element === 'timeDimensions') {
- index = this[element].findIndex((x) => x.name === member);
- } else if (element === 'filters') {
- index = this[element].findIndex((x) => x.member.name === member);
- } else {
- index = this[element].findIndex((x) => x.name === member);
- }
- this[element].splice(index, 1);
- },
- updateMember(element, old, member) {
- const name = element.charAt(0).toUpperCase() + element.slice(1);
- let mem;
- let index;
-
- if (element === 'timeDimensions') {
- index = this[element].findIndex((x) => x.dimension.name === old.dimension);
- mem = this[`available${name}`].find((m) => m.name === member.dimension);
- if (mem) {
- const dimension = {
- ...this.meta.resolveMember(mem.name, 'dimensions'),
- granularities: this.granularities,
- };
-
- mem = {
- ...mem,
- dimension,
- granularity: member.granularity,
- dateRange: member.dateRange,
- index,
- };
- }
- } else if (element === 'filters') {
- index = this[element].findIndex((x) => x.dimension === old);
- mem = {
- ...member,
- and: resolveMembers(this.meta, member.and),
- or: resolveMembers(this.meta, member.or),
- member: getDimensionOrMeasure(this.meta, member),
- };
- } else {
- index = this[element].findIndex((x) => x.name === old);
- mem = this[`available${name}`].find((m) => m.name === member);
- }
-
- if (mem) {
- this[element].splice(index, 1, mem);
- }
- },
- setMembers(element, members) {
- const name = element.charAt(0).toUpperCase() + element.slice(1);
- let mem;
- const elements = [];
-
- members.filter(Boolean).forEach((m) => {
- if (element === 'timeDimensions') {
- mem = this[`available${name}`].find((x) => x.name === m.dimension);
- if (mem) {
- const dimension = {
- ...this.meta.resolveMember(mem.name, 'dimensions'),
- granularities: this.granularities,
- };
-
- mem = {
- ...mem,
- granularity: m.granularity,
- dateRange: m.dateRange,
- dimension,
- index: this[element].length,
- };
- }
- } else if (element === 'filters') {
- mem = {
- ...m,
- and: resolveMembers(this.meta, m.and),
- or: resolveMembers(this.meta, m.or),
- member: getDimensionOrMeasure(this.meta, m),
- };
- } else {
- mem = this[`available${name}`].find((x) => x.name === m);
- }
-
- if (mem) {
- elements.push(mem);
- }
- });
-
- this[element] = elements;
- },
- setLimit(limit) {
- this.limit = limit;
- },
- removeLimit() {
- this.limit = null;
- },
- setOffset(offset) {
- this.offset = offset;
- },
- updateChart(chartType) {
- this.chartType = chartType;
- },
- setOrder(order = {}) {
- this.order = order;
- },
- emitVizStateChange(partialVizState) {
- this.$emit(
- 'vizStateChange',
- clone({
- ...this.vizState,
- ...partialVizState,
- })
- );
- },
- },
-
- watch: {
- validatedQuery: {
- deep: true,
- handler(query, prevQuery) {
- const hasQueryChanged = !areQueriesEqual(query, prevQuery);
-
- if (hasQueryChanged) {
- this.emitVizStateChange({
- query,
- });
- }
-
- if (isQueryPresent(query) && hasQueryChanged) {
- this.cubeApi
- .dryRun(query, {
- mutexObj: this.mutex,
- })
- .then((result) => {
- const pivotConfig = ResultSet.getNormalizedPivotConfig(result?.pivotQuery, this.pivotConfig);
-
- if (!equals(pivotConfig, this.pivotConfig)) {
- this.pivotConfig = pivotConfig;
- }
- })
- .catch((error) => console.error(error));
- }
- },
- },
- query: {
- deep: true,
- handler(query) {
- if (!this.meta) {
- // this is ok as if meta has not been loaded by the time query prop has changed,
- // then the promise for loading meta (found in mounted()) will call
- // copyQueryFromProps and will therefore update anyway.
- return;
- }
- this.copyQueryFromProps(query);
- },
- },
- pivotConfig: {
- deep: true,
- handler(pivotConfig, prevPivotConfig) {
- if (!equals(pivotConfig, prevPivotConfig)) {
- this.emitVizStateChange({
- pivotConfig,
- });
- }
- },
- },
- chartType(value) {
- this.emitVizStateChange({
- chartType: value,
- });
- },
- },
-};
diff --git a/packages/cubejs-client-vue/src/QueryRenderer.js b/packages/cubejs-client-vue/src/QueryRenderer.js
deleted file mode 100644
index 8e78c7f42372b..0000000000000
--- a/packages/cubejs-client-vue/src/QueryRenderer.js
+++ /dev/null
@@ -1,185 +0,0 @@
-import { toPairs, fromPairs } from 'ramda';
-import { isQueryPresent, areQueriesEqual } from '@cubejs-client/core';
-
-export default {
- props: {
- query: {
- type: [Object, Array],
- default: () => ({}),
- },
- // TODO: validate with current react implementation
- queries: {
- type: Object,
- },
- loadSql: {
- required: false,
- },
- cubeApi: {
- type: Object,
- required: true,
- },
- builderProps: {
- type: Object,
- required: false,
- default: () => ({}),
- },
- chartType: {
- type: String,
- required: false,
- },
- },
- data() {
- return {
- mutexObj: {},
- error: undefined,
- resultSet: undefined,
- loading: false,
- sqlQuery: undefined,
- };
- },
- async mounted() {
- const { query, queries } = this;
-
- if (isQueryPresent(query)) {
- await this.load();
- } else if (isQueryPresent(queries)) {
- await this.loadQueries(queries);
- }
- },
- render(createElement) {
- const { $scopedSlots, resultSet, error, loading, sqlQuery } = this;
- const empty = createElement('div', {});
- let slot = this.$slots.empty ? this.$slots.empty : empty;
- let controls = createElement('div', {});
- const onlyDefault = !('empty' in this.$slots) && !('error' in this.$scopedSlots);
-
- if ($scopedSlots.builder && this.builderProps.measures) {
- controls = $scopedSlots.builder({ ...this.builderProps });
- }
-
- if ((!loading && resultSet && !error) || onlyDefault) {
- let slotProps = {
- resultSet,
- sqlQuery,
- query: this.builderProps.query || this.query,
- };
-
- if (onlyDefault) {
- slotProps = {
- loading,
- error,
- refetch: this.load,
- ...this.builderProps,
- ...slotProps,
- };
- }
-
- slot = $scopedSlots.default ? $scopedSlots.default(slotProps) : slot;
- } else if (error) {
- slot = $scopedSlots.error ? $scopedSlots.error({ error, sqlQuery }) : slot;
- }
-
- return createElement('div', {}, [controls, slot]);
- },
- methods: {
- async load() {
- const { query } = this;
-
- if (!isQueryPresent(query)) {
- return;
- }
-
- try {
- this.loading = true;
- this.error = null;
- this.resultSet = null;
-
- if (this.loadSql === 'only') {
- this.sqlQuery = await this.cubeApi.sql(query, {
- mutexObj: this.mutexObj,
- mutexKey: 'sql',
- });
- } else if (this.loadSql) {
- this.sqlQuery = await this.cubeApi.sql(query, {
- mutexObj: this.mutexObj,
- mutexKey: 'sql',
- });
- this.resultSet = await this.cubeApi.load(query, {
- mutexObj: this.mutexObj,
- mutexKey: 'query',
- });
- } else {
- this.resultSet = await this.cubeApi.load(query, {
- mutexObj: this.mutexObj,
- mutexKey: 'query',
- });
- }
-
- this.loading = false;
- } catch (error) {
- this.error = error;
- this.resultSet = undefined;
- this.loading = false;
- }
- },
- async loadQueries() {
- const { queries } = this;
- try {
- this.error = undefined;
- this.loading = true;
-
- const resultPromises = Promise.all(
- toPairs(queries).map(([name, query]) =>
- this.cubeApi
- .load(query, {
- mutexObj: this.mutexObj,
- mutexKey: name,
- })
- .then((r) => [name, r])
- )
- );
-
- this.resultSet = fromPairs(await resultPromises);
- this.loading = false;
- } catch (error) {
- this.error = error;
- this.loading = false;
- }
- },
- },
- watch: {
- loading(loading) {
- if (loading === false) {
- this.$emit('queryStatus', {
- isLoading: false,
- error: this.error,
- resultSet: this.resultSet,
- });
- } else {
- this.$emit('queryStatus', { isLoading: true });
- }
- },
- cubeApi() {
- this.load();
- },
- chartType() {
- this.load();
- },
- query: {
- deep: true,
- handler(query, prevQuery) {
- if (!areQueriesEqual(query, prevQuery)) {
- this.load();
- }
- },
- },
- queries: {
- handler(val) {
- if (val) {
- this.loadQueries();
- }
- },
- deep: true,
- },
- },
-};
diff --git a/packages/cubejs-client-vue/src/index.js b/packages/cubejs-client-vue/src/index.js
deleted file mode 100644
index bee202e0713c8..0000000000000
--- a/packages/cubejs-client-vue/src/index.js
+++ /dev/null
@@ -1,8 +0,0 @@
-import { GRANULARITIES } from '@cubejs-client/core';
-
-import QueryRenderer from './QueryRenderer';
-import QueryBuilder from './QueryBuilder';
-
-export { QueryRenderer, QueryBuilder, GRANULARITIES };
-
-export default {};
diff --git a/packages/cubejs-client-vue/tests/unit/.eslintrc.js b/packages/cubejs-client-vue/tests/unit/.eslintrc.js
deleted file mode 100644
index 013a195bf0433..0000000000000
--- a/packages/cubejs-client-vue/tests/unit/.eslintrc.js
+++ /dev/null
@@ -1,5 +0,0 @@
-module.exports = {
- env: {
- jest: true
- }
-}
\ No newline at end of file
diff --git a/packages/cubejs-client-vue/tests/unit/QueryBuilder.spec.js b/packages/cubejs-client-vue/tests/unit/QueryBuilder.spec.js
deleted file mode 100644
index 4f76a5b859299..0000000000000
--- a/packages/cubejs-client-vue/tests/unit/QueryBuilder.spec.js
+++ /dev/null
@@ -1,1051 +0,0 @@
-import { mount } from '@vue/test-utils';
-import flushPromises from 'flush-promises';
-
-import fetchMock, { meta, load } from './__mocks__/responses';
-import QueryBuilder from '../../src/QueryBuilder';
-import { createCubeApi } from './utils';
-
-describe('QueryBuilder.vue', () => {
- it('renders meta information', async () => {
- const cube = createCubeApi();
- jest
- .spyOn(cube, 'request')
- .mockImplementation(fetchMock(meta))
- .mockImplementationOnce(fetchMock(meta));
-
- const wrapper = mount(QueryBuilder, {
- propsData: {
- cubeApi: cube,
- query: {},
- },
- slots: {
- empty: `i'm empty
`,
- },
- });
-
- await flushPromises();
-
- expect(wrapper.text()).toContain(`i'm empty`);
- });
-
- it('renders meta information', async () => {
- const cube = createCubeApi();
- jest
- .spyOn(cube, 'request')
- .mockImplementation(fetchMock(load))
- .mockImplementationOnce(fetchMock(meta));
-
- let context;
-
- mount(QueryBuilder, {
- propsData: {
- cubeApi: cube,
- query: {
- measures: ['Orders.count'],
- },
- },
- scopedSlots: {
- builder: (con) => {
- context = con;
- },
- },
- });
-
- await flushPromises();
- expect(context.measures[0].name).toBe('Orders.count');
- });
-
- describe('Update background query members', () => {
- it('adds members', async () => {
- const cube = createCubeApi();
- jest
- .spyOn(cube, 'request')
- .mockImplementation(fetchMock(load))
- .mockImplementationOnce(fetchMock(meta));
-
- const wrapper = mount(QueryBuilder, {
- propsData: {
- cubeApi: cube,
- query: {},
- },
- });
-
- await flushPromises();
-
- expect(wrapper.vm.measures.length).toBe(0);
- wrapper.vm.addMember('measures', 'Orders.count');
- expect(wrapper.vm.measures.length).toBe(1);
- expect(wrapper.vm.measures[0].name).toBe('Orders.count');
- });
-
- it('updates members', async () => {
- const cube = createCubeApi();
- jest
- .spyOn(cube, 'request')
- .mockImplementation(fetchMock(load))
- .mockImplementationOnce(fetchMock(meta));
-
- const wrapper = mount(QueryBuilder, {
- propsData: {
- cubeApi: cube,
- query: {
- measures: ['Orders.count'],
- },
- },
- });
-
- await flushPromises();
-
- expect(wrapper.vm.measures.length).toBe(1);
- expect(wrapper.vm.measures[0].name).toBe('Orders.count');
- wrapper.vm.updateMember('measures', 'Orders.count', 'LineItems.count');
- expect(wrapper.vm.measures.length).toBe(1);
- expect(wrapper.vm.measures[0].name).toBe('LineItems.count');
- });
-
- it('removes members', async () => {
- const cube = createCubeApi();
- jest
- .spyOn(cube, 'request')
- .mockImplementation(fetchMock(load))
- .mockImplementationOnce(fetchMock(meta));
-
- const wrapper = mount(QueryBuilder, {
- propsData: {
- cubeApi: cube,
- query: {
- measures: ['Orders.count'],
- },
- },
- });
-
- await flushPromises();
-
- expect(wrapper.vm.measures.length).toBe(1);
- expect(wrapper.vm.measures[0].name).toBe('Orders.count');
- wrapper.vm.removeMember('measures', 'Orders.count');
- expect(wrapper.vm.measures.length).toBe(0);
- });
-
- it('sets members', async () => {
- const cube = createCubeApi();
- jest
- .spyOn(cube, 'request')
- .mockImplementation(fetchMock(load))
- .mockImplementationOnce(fetchMock(meta));
-
- const wrapper = mount(QueryBuilder, {
- propsData: {
- cubeApi: cube,
- query: {
- measures: ['Orders.count'],
- },
- },
- });
-
- await flushPromises();
-
- expect(wrapper.vm.measures.length).toBe(1);
- expect(wrapper.vm.measures[0].name).toBe('Orders.count');
- wrapper.vm.setMembers('measures', ['LineItems.count']);
- expect(wrapper.vm.measures.length).toBe(1);
- expect(wrapper.vm.measures[0].name).toBe('LineItems.count');
- });
- });
-
- describe('changes background query timeDimensions', () => {
- it('adds timeeDimensions', async () => {
- const cube = createCubeApi();
- jest
- .spyOn(cube, 'request')
- .mockImplementation(fetchMock(load))
- .mockImplementationOnce(fetchMock(meta));
-
- const wrapper = mount(QueryBuilder, {
- propsData: {
- cubeApi: cube,
- query: {},
- },
- });
-
- await flushPromises();
-
- expect(wrapper.vm.measures.length).toBe(0);
- wrapper.vm.addMember('timeDimensions', {
- dimension: 'Orders.createdAt',
- dateRange: ['2015-01-01', '2015-12-31'],
- granularity: 'month',
- });
- expect(wrapper.vm.timeDimensions.length).toBe(1);
- expect(wrapper.vm.timeDimensions[0].name).toBe('Orders.createdAt');
- expect(wrapper.vm.timeDimensions[0].granularity).toBe('month');
- });
-
- it('updates timeDimensions', async () => {
- const cube = createCubeApi();
- jest
- .spyOn(cube, 'request')
- .mockImplementation(fetchMock(load))
- .mockImplementationOnce(fetchMock(meta));
-
- const dimension = {
- dimension: 'Orders.createdAt',
- dateRange: ['2015-01-01', '2015-12-31'],
- granularity: 'month',
- };
-
- const newDimension = {
- dimension: 'LineItems.createdAt',
- dateRange: ['2015-01-01', '2015-12-31'],
- granularity: 'day',
- };
-
- const wrapper = mount(QueryBuilder, {
- propsData: {
- cubeApi: cube,
- query: {
- timeDimensions: [dimension],
- },
- },
- });
-
- await flushPromises();
-
- expect(wrapper.vm.timeDimensions.length).toBe(1);
- expect(wrapper.vm.timeDimensions[0].dimension.name).toBe('Orders.createdAt');
- expect(wrapper.vm.timeDimensions[0].granularity).toBe('month');
- wrapper.vm.updateMember('timeDimensions', dimension, newDimension);
- expect(wrapper.vm.timeDimensions.length).toBe(1);
- expect(wrapper.vm.timeDimensions[0].dimension.name).toBe('LineItems.createdAt');
- expect(wrapper.vm.timeDimensions[0].granularity).toBe('day');
- });
-
- it('removes timeDimensions', async () => {
- const cube = createCubeApi();
- jest
- .spyOn(cube, 'request')
- .mockImplementation(fetchMock(load))
- .mockImplementationOnce(fetchMock(meta));
-
- const dimension = {
- dimension: 'Orders.createdAt',
- dateRange: ['2015-01-01', '2015-12-31'],
- granularity: 'month',
- };
-
- const wrapper = mount(QueryBuilder, {
- propsData: {
- cubeApi: cube,
- query: {
- timeDimensions: [dimension],
- },
- },
- });
-
- await flushPromises();
-
- expect(wrapper.vm.timeDimensions.length).toBe(1);
- expect(wrapper.vm.timeDimensions[0].dimension.name).toBe('Orders.createdAt');
- wrapper.vm.removeMember('timeDimensions', 'Orders.createdAt');
- expect(wrapper.vm.timeDimensions.length).toBe(0);
- });
-
- it('sets timeDimensions', async () => {
- const cube = createCubeApi();
- jest
- .spyOn(cube, 'request')
- .mockImplementation(fetchMock(load))
- .mockImplementationOnce(fetchMock(meta));
-
- const dimension = {
- dimension: 'Orders.createdAt',
- dateRange: ['2015-01-01', '2015-12-31'],
- granularity: 'month',
- };
-
- const newDimension = {
- dimension: 'LineItems.createdAt',
- dateRange: ['2015-01-01', '2015-12-31'],
- granularity: 'day',
- };
-
- const wrapper = mount(QueryBuilder, {
- propsData: {
- cubeApi: cube,
- query: {
- timeDimensions: [dimension],
- },
- },
- });
-
- await flushPromises();
-
- expect(wrapper.vm.timeDimensions.length).toBe(1);
- expect(wrapper.vm.timeDimensions[0].dimension.name).toBe('Orders.createdAt');
- expect(wrapper.vm.timeDimensions[0].granularity).toBe('month');
- wrapper.vm.setMembers('timeDimensions', [newDimension]);
- expect(wrapper.vm.timeDimensions.length).toBe(1);
- expect(wrapper.vm.timeDimensions[0].dimension.name).toBe('LineItems.createdAt');
- expect(wrapper.vm.timeDimensions[0].granularity).toBe('day');
- });
- });
-
- describe('update background query on filters', () => {
- it('adds filters', async () => {
- const cube = createCubeApi();
- jest
- .spyOn(cube, 'request')
- .mockImplementation(fetchMock(load))
- .mockImplementationOnce(fetchMock(meta));
-
- const wrapper = mount(QueryBuilder, {
- propsData: {
- cubeApi: cube,
- query: {},
- },
- });
-
- await flushPromises();
-
- expect(wrapper.vm.filters.length).toBe(0);
- wrapper.vm.addMember('filters', {
- dimension: 'Orders.status',
- operator: 'equals',
- values: ['valid'],
- });
- expect(wrapper.vm.filters.length).toBe(1);
- expect(wrapper.vm.filters[0].member.name).toBe('Orders.status');
- });
-
- it('updates filters', async () => {
- const cube = createCubeApi();
- jest
- .spyOn(cube, 'request')
- .mockImplementation(fetchMock(load))
- .mockImplementationOnce(fetchMock(meta));
-
- const filter = {
- dimension: 'Orders.status',
- operator: 'equals',
- values: ['invalid'],
- };
-
- const newFilter = {
- dimension: 'Orders.status',
- operator: 'equals',
- values: ['valid'],
- };
-
- const wrapper = mount(QueryBuilder, {
- propsData: {
- cubeApi: cube,
- query: {
- filters: [filter],
- },
- },
- });
-
- await flushPromises();
-
- expect(wrapper.vm.filters.length).toBe(1);
- expect(wrapper.vm.filters[0].member.name).toBe('Orders.status');
- expect(wrapper.vm.filters[0].values).toContain('invalid');
- wrapper.vm.updateMember('filters', 'Orders.status', newFilter);
- expect(wrapper.vm.filters.length).toBe(1);
- expect(wrapper.vm.filters[0].member.name).toBe('Orders.status');
- expect(wrapper.vm.filters[0].values).toContain('valid');
- });
-
- it('removes filters', async () => {
- const cube = createCubeApi();
- jest
- .spyOn(cube, 'request')
- .mockImplementation(fetchMock(load))
- .mockImplementationOnce(fetchMock(meta));
-
- const filter = {
- dimension: 'Orders.status',
- operator: 'equals',
- values: ['invalid'],
- };
-
- const wrapper = mount(QueryBuilder, {
- propsData: {
- cubeApi: cube,
- query: {
- filters: [filter],
- },
- },
- });
-
- await flushPromises();
-
- expect(wrapper.vm.filters.length).toBe(1);
- expect(wrapper.vm.filters[0].member.name).toBe('Orders.status');
- expect(wrapper.vm.filters[0].values).toContain('invalid');
- wrapper.vm.removeMember('filters', 'Orders.status');
- expect(wrapper.vm.filters.length).toBe(0);
- });
-
- it('sets filters', async () => {
- const cube = createCubeApi();
- jest
- .spyOn(cube, 'request')
- .mockImplementation(fetchMock(load))
- .mockImplementationOnce(fetchMock(meta));
-
- const filter = {
- dimension: 'Orders.status',
- operator: 'equals',
- values: ['invalid'],
- };
-
- const newFilter = {
- dimension: 'Orders.status',
- operator: 'equals',
- values: ['valid'],
- };
-
- const wrapper = mount(QueryBuilder, {
- propsData: {
- cubeApi: cube,
- query: {
- filters: [filter],
- },
- },
- });
-
- await flushPromises();
-
- expect(wrapper.vm.filters.length).toBe(1);
- expect(wrapper.vm.filters[0].member.name).toBe('Orders.status');
- expect(wrapper.vm.filters[0].values).toContain('invalid');
- wrapper.vm.setMembers('filters', [newFilter]);
- expect(wrapper.vm.filters.length).toBe(1);
- expect(wrapper.vm.filters[0].member.name).toBe('Orders.status');
- expect(wrapper.vm.filters[0].values).toContain('valid');
- });
-
- it('sets filters with boolean logical operators', async () => {
- const cube = createCubeApi();
- jest
- .spyOn(cube, 'request')
- .mockImplementation(fetchMock(load))
- .mockImplementationOnce(fetchMock(meta));
-
- const filter = {
- and: [
- {
- dimension: 'Orders.status',
- operator: 'equals',
- values: ['this'],
- },
- {
- dimension: 'Orders.status',
- operator: 'equals',
- values: ['that'],
- },
- ],
- or: [
- {
- dimension: 'Orders.status',
- operator: 'equals',
- values: ['this'],
- },
- {
- dimension: 'Orders.status',
- operator: 'equals',
- values: ['that'],
- },
- {
- and: [
- {
- dimension: 'Orders.status',
- operator: 'equals',
- values: ['this'],
- },
- {
- dimension: 'Orders.status',
- operator: 'equals',
- values: ['that'],
- },
- ],
- },
- ],
- };
-
- const wrapper = mount(QueryBuilder, {
- propsData: {
- cubeApi: cube,
- query: {
- filters: [filter],
- },
- },
- });
-
- await flushPromises();
-
- expect(wrapper.vm.filters[0].or.length).toBe(3);
- expect(wrapper.vm.filters[0].and.length).toBe(2);
- wrapper.vm.setMembers('filters', []);
- expect(wrapper.vm.validatedQuery.filters).toBeUndefined();
- wrapper.vm.setMembers('filters', [filter]);
- expect(wrapper.vm.validatedQuery.filters.length).toBe(1);
- expect(wrapper.vm.validatedQuery.filters[0].and[0].member).toBe('Orders.status');
- expect(wrapper.vm.validatedQuery.filters[0].and[0].values).toContain('this');
- expect(wrapper.vm.validatedQuery.filters[0].and[1].values).toContain('that');
- expect(wrapper.vm.validatedQuery.filters[0].or[0].member).toBe('Orders.status');
- expect(wrapper.vm.validatedQuery.filters[0].or[0].values).toContain('this');
- expect(wrapper.vm.validatedQuery.filters[0].or[1].values).toContain('that');
- expect(wrapper.vm.validatedQuery.filters[0].or[2].and[0].member).toBe('Orders.status');
- expect(wrapper.vm.validatedQuery.filters[0].or[2].and[0].values).toContain('this');
- expect(wrapper.vm.validatedQuery.filters[0].or[2].and[1].values).toContain('that');
- });
-
- it('filters with boolean logical operators without explicit set', async () => {
- const cube = createCubeApi();
- jest
- .spyOn(cube, 'request')
- .mockImplementation(fetchMock(load))
- .mockImplementationOnce(fetchMock(meta));
-
- const filter = {
- or: [
- {
- dimension: 'Orders.status',
- operator: 'equals',
- values: ['this'],
- },
- {
- dimension: 'Orders.status',
- operator: 'equals',
- values: ['that'],
- },
- {
- and: [
- {
- dimension: 'Orders.status',
- operator: 'equals',
- values: ['this'],
- },
- {
- dimension: 'Orders.status',
- operator: 'equals',
- values: ['that'],
- },
- ],
- },
- ],
- };
-
- const wrapper = mount(QueryBuilder, {
- propsData: {
- cubeApi: cube,
- query: {
- filters: [filter],
- },
- },
- });
-
- await flushPromises();
-
- expect(wrapper.vm.filters[0].or.length).toBe(3);
- expect(wrapper.vm.validatedQuery.filters.length).toBe(1);
- expect(wrapper.vm.validatedQuery.filters[0].or[0].member).toBe('Orders.status');
- expect(wrapper.vm.validatedQuery.filters[0].or[0].values).toContain('this');
- expect(wrapper.vm.validatedQuery.filters[0].or[1].values).toContain('that');
- expect(wrapper.vm.validatedQuery.filters[0].or[2].and[0].member).toBe('Orders.status');
- expect(wrapper.vm.validatedQuery.filters[0].or[2].and[0].values).toContain('this');
- expect(wrapper.vm.validatedQuery.filters[0].or[2].and[1].values).toContain('that');
- });
-
- it.each([
- [
- {
- and: [
- {
- dimension: 'Orders.status',
- values: ['this'],
- },
- ],
- },
- 0,
- ],
- [
- {
- or: [
- {
- dimension: 'Orders.status',
- values: ['this'],
- },
- ],
- },
- 0,
- ],
- [
- {
- or: [
- {
- dimension: 'Orders.status',
- values: ['this'],
- },
- {
- and: [
- {
- dimension: 'Orders.status',
- values: ['this'],
- },
- ],
- },
- ],
- },
- 0,
- ],
- [
- {
- and: [
- {
- dimension: 'Orders.status',
- values: ['this'],
- },
- ],
- or: [
- {
- dimension: 'Orders.status',
- operator: 'equals',
- values: ['this'],
- },
- ],
- },
- 1,
- ],
- [
- {
- or: [
- {
- dimension: 'Orders.status',
- values: ['this'],
- },
- {
- and: [
- {
- dimension: 'Orders.status',
- operator: 'equals',
- values: ['this'],
- },
- ],
- },
- ],
- },
- 1,
- ],
- ])('does not assign boolean logical operators having no operator', async (filter, expected) => {
- const cube = createCubeApi();
- jest
- .spyOn(cube, 'request')
- .mockImplementation(fetchMock(load))
- .mockImplementationOnce(fetchMock(meta));
-
- const wrapper = mount(QueryBuilder, {
- propsData: {
- cubeApi: cube,
- query: {
- filters: [],
- },
- },
- });
-
- await flushPromises();
-
- wrapper.vm.setMembers('filters', [filter]);
- expect(wrapper.vm.validatedQuery.filters.length).toBe(expected);
- });
-
- it('sets filters when using measure', async () => {
- const cube = createCubeApi();
- jest
- .spyOn(cube, 'request')
- .mockImplementation(fetchMock(load))
- .mockImplementationOnce(fetchMock(meta));
-
- const filter = {
- member: 'Orders.number',
- operator: 'gt',
- values: ['1'],
- };
-
- const wrapper = mount(QueryBuilder, {
- propsData: {
- cubeApi: cube,
- query: {
- filters: [filter],
- },
- },
- });
-
- await flushPromises();
-
- expect(wrapper.vm.filters.length).toBe(1);
- expect(wrapper.vm.filters[0].member.name).toBe('Orders.number');
- expect(wrapper.vm.filters[0].values).toContain('1');
- });
-
- it('sets limit', async () => {
- const cube = createCubeApi();
- jest
- .spyOn(cube, 'request')
- .mockImplementation(fetchMock(load))
- .mockImplementationOnce(fetchMock(meta));
-
- const filter = {
- member: 'Orders.status',
- operator: 'equals',
- values: ['invalid'],
- };
-
- const wrapper = mount(QueryBuilder, {
- propsData: {
- cubeApi: cube,
- query: {
- filters: [filter],
- limit: 10,
- },
- },
- });
-
- await flushPromises();
-
- expect(wrapper.vm.limit).toBe(10);
- });
-
- it('sets offset', async () => {
- const cube = createCubeApi();
- jest
- .spyOn(cube, 'request')
- .mockImplementation(fetchMock(load))
- .mockImplementationOnce(fetchMock(meta));
-
- const filter = {
- member: 'Orders.status',
- operator: 'equals',
- values: ['invalid'],
- };
-
- const wrapper = mount(QueryBuilder, {
- propsData: {
- cubeApi: cube,
- query: {
- filters: [filter],
- offset: 10,
- },
- },
- });
-
- await flushPromises();
-
- expect(wrapper.vm.offset).toBe(10);
- });
-
- it('sets renewQuery', async () => {
- const cube = createCubeApi();
- jest
- .spyOn(cube, 'request')
- .mockImplementation(fetchMock(load))
- .mockImplementationOnce(fetchMock(meta));
-
- const filter = {
- member: 'Orders.status',
- operator: 'equals',
- values: ['invalid'],
- };
-
- const wrapper = mount(QueryBuilder, {
- propsData: {
- cubeApi: cube,
- query: {
- filters: [filter],
- renewQuery: true,
- },
- },
- });
-
- await flushPromises();
-
- expect(wrapper.vm.renewQuery).toBe(true);
- });
-
- it('ignore order if empty', async () => {
- const cube = createCubeApi();
- jest
- .spyOn(cube, 'request')
- .mockImplementation(fetchMock(load))
- .mockImplementationOnce(fetchMock(meta));
-
- const filter = {
- member: 'Orders.status',
- operator: 'equals',
- values: ['invalid'],
- };
-
- const wrapper = mount(QueryBuilder, {
- propsData: {
- cubeApi: cube,
- query: {
- filters: [filter],
- },
- },
- });
-
- await flushPromises();
-
- expect(wrapper.vm.order).toBe(null);
- });
-
- it('sets order', async () => {
- const cube = createCubeApi();
- jest
- .spyOn(cube, 'request')
- .mockImplementation(fetchMock(load))
- .mockImplementationOnce(fetchMock(meta));
-
- const filter = {
- member: 'Orders.status',
- operator: 'equals',
- values: ['invalid'],
- };
-
- const wrapper = mount(QueryBuilder, {
- propsData: {
- cubeApi: cube,
- query: {
- dimensions: ['Orders.status'],
- filters: [filter],
- order: {
- 'Orders.status': 'desc',
- },
- },
- },
- });
-
- await flushPromises();
-
- expect(wrapper.vm.order['Orders.status']).toBe('desc');
- });
-
- // todo: fix later
- // it('is reactive when filter is changed', async () => {
- // const cube = createCubeApi();
- // jest
- // .spyOn(cube, 'request')
- // .mockImplementation(fetchMock(load))
- // .mockImplementationOnce(fetchMock(meta));
- //
- // const filter = {
- // member: 'Orders.status',
- // operator: 'equals',
- // values: ['invalid'],
- // };
- //
- // const newFilter = {
- // dimension: 'Orders.number',
- // operator: 'equals',
- // values: ['1'],
- // };
- //
- // const wrapper = mount(QueryBuilder, {
- // propsData: {
- // cubeApi: cube,
- // query: {
- // filters: [filter],
- // },
- // },
- // });
- //
- // await flushPromises();
- //
- // expect(wrapper.vm.filters.length).toBe(1);
- // expect(wrapper.vm.filters[0].member.name).toBe('Orders.status');
- // expect(wrapper.vm.filters[0].values).toContain('invalid');
- //
- // wrapper.setProps({
- // query: {
- // filters: [newFilter],
- // },
- // });
- //
- // await flushPromises();
- //
- // expect(wrapper.vm.filters.length).toBe(1);
- // expect(wrapper.vm.filters[0].member.name).toBe('Orders.number');
- // expect(wrapper.vm.filters[0].values).toContain('1');
- // });
- });
-
- describe('builder slot updatePivotConfig.update', () => {
- it.each([
- { x: ['Orders.status'] },
- { y: ['measures'] },
- { x: ['Orders.status', 'measures'], y: [] },
- { aliasSeries: ['one'] },
- { fillMissingDates: true },
- { fillMissingDates: false },
- ])('sets pivotConfig', async (pivotConfig) => {
- const cube = createCubeApi();
- jest
- .spyOn(cube, 'request')
- .mockImplementation(fetchMock(load))
- .mockImplementationOnce(fetchMock(meta));
-
- const wrapper = mount(QueryBuilder, {
- propsData: {
- cubeApi: cube,
- query: {
- measures: ['Orders.count'],
- dimensions: ['Orders.status'],
- },
- },
- scopedSlots: {
- builder: function ({ updatePivotConfig }) {
- return this.$createElement('input', {
- on: { change: () => updatePivotConfig.update(pivotConfig) },
- });
- },
- },
- });
-
- await flushPromises();
-
- wrapper.find('input').trigger('change');
- expect(wrapper.vm.pivotConfig).toMatchObject(pivotConfig);
- });
- });
-
- describe('builder computed', () => {
- describe('validatedQuery', () => {
- it('correctly updates pivot config after chart type change', async () => {
- const expectedPivotForTable = {
- x: ['Orders.status'],
- y: ['measures'],
- fillMissingDates: true,
- joinDateRange: false,
- };
-
- const expectedPivotForLine = {
- x: ['Orders.createdAt.day'],
- y: ['Orders.status', 'measures'],
- fillMissingDates: true,
- joinDateRange: false,
- };
-
- const cube = createCubeApi();
- jest
- .spyOn(cube, 'request')
- .mockImplementation(fetchMock(load))
- .mockImplementationOnce(fetchMock(meta));
-
- const wrapper = mount(QueryBuilder, {
- propsData: {
- cubeApi: cube,
- query: {
- measures: ['Orders.count'],
- timeDimensions: [{
- dimension: 'Orders.createdAt',
- }],
- },
- },
- scopedSlots: {
- builder: function ({ updateChartType }) {
- return this.$createElement('input', {
- on: { change: () => updateChartType('line')}
- });
- },
- },
- });
-
- await flushPromises();
-
- wrapper.vm.addMember('dimensions', 'Orders.status'); // to trigger first heuristics
- await wrapper.vm.$nextTick();
- expect(wrapper.vm.pivotConfig).toEqual(expectedPivotForTable);
- expect(wrapper.vm.chartType).toBe('table');
- wrapper.find('input').trigger('change');
- await wrapper.vm.$nextTick();
- expect(wrapper.vm.pivotConfig).toEqual(expectedPivotForLine);
- expect(wrapper.vm.chartType).toBe('line');
- });
- });
- describe('orderMembers', () => {
- it('does not contain time dimension if granularity is set to none', async () => {
- const cube = createCubeApi();
- jest
- .spyOn(cube, 'request')
- .mockImplementation(fetchMock(load))
- .mockImplementationOnce(fetchMock(meta));
-
- const wrapper = mount(QueryBuilder, {
- propsData: {
- cubeApi: cube,
- query: {
- measures: ['Orders.count'],
- timeDimensions: [{
- dimension: 'Orders.createdAt',
- }],
- },
- },
- });
-
- await flushPromises();
-
- expect(wrapper.vm.orderMembers.length).toBe(1);
- expect(wrapper.vm.orderMembers).toEqual(
- expect.arrayContaining([
- expect.objectContaining({
- id: 'Orders.count',
- title: 'Orders Count',
- order: 'none',
- }),
- ])
- );
- });
-
- it('contains time dimension if granularity is not none', async () => {
- const cube = createCubeApi();
- jest
- .spyOn(cube, 'request')
- .mockImplementation(fetchMock(load))
- .mockImplementationOnce(fetchMock(meta));
-
- const wrapper = mount(QueryBuilder, {
- propsData: {
- cubeApi: cube,
- query: {
- measures: ['Orders.count'],
- timeDimensions: [{
- dimension: 'Orders.createdAt',
- granularity: 'day',
- }],
- },
- },
- });
-
- await flushPromises();
-
- expect(wrapper.vm.orderMembers.length).toBe(2);
- expect(wrapper.vm.orderMembers).toEqual(
- expect.arrayContaining([
- expect.objectContaining({
- id: 'Orders.createdAt',
- title: 'Orders Created at',
- order: 'none'
- }),
- expect.objectContaining({
- id: 'Orders.count',
- title: 'Orders Count',
- order: 'none',
- })
- ])
- );
- });
- });
- });
-});
diff --git a/packages/cubejs-client-vue/tests/unit/QueryRenderer.spec.js b/packages/cubejs-client-vue/tests/unit/QueryRenderer.spec.js
deleted file mode 100644
index ad6487a84394e..0000000000000
--- a/packages/cubejs-client-vue/tests/unit/QueryRenderer.spec.js
+++ /dev/null
@@ -1,136 +0,0 @@
-import { shallowMount } from '@vue/test-utils';
-import flushPromises from 'flush-promises';
-
-import QueryRenderer from '../../src/QueryRenderer';
-import fetchMock, { load } from './__mocks__/responses';
-import { createCubeApi } from './utils';
-
-describe('QueryRenderer.vue', () => {
- describe('Loads single query from api', () => {
- it('Loads empty state', () => {
- const cube = createCubeApi();
- jest.spyOn(cube, 'request').mockImplementation(fetchMock(load));
-
- const wrapper = shallowMount(QueryRenderer, {
- propsData: {
- query: {},
- cubeApi: cube,
- },
- slots: {
- empty: `i'm empty
`,
- },
- });
-
- expect(wrapper.text()).toContain(`i'm empty`);
- expect(cube.request.mock.calls.length).toBe(0);
- });
-
- it('Loads error state', async () => {
- const cube = createCubeApi();
- jest.spyOn(cube, 'request').mockImplementation(fetchMock({ error: 'error message' }, 400));
-
- const wrapper = shallowMount(QueryRenderer, {
- propsData: {
- query: {
- measures: ['Stories.count'],
- },
- cubeApi: cube,
- },
- scopedSlots: {
- error: `{{props.error}}
`,
- },
- });
-
- await flushPromises();
-
- expect(wrapper.text()).toContain('error');
- expect(cube.request.mock.calls.length).toBe(1);
- });
-
- it('Loads resultSet', async () => {
- const cube = createCubeApi();
- jest.spyOn(cube, 'request').mockImplementation(fetchMock(load));
-
- const wrapper = shallowMount(QueryRenderer, {
- propsData: {
- query: {
- measures: ['Stories.count'],
- },
- cubeApi: cube,
- },
- scopedSlots: {
- default: `Result set is loaded
`,
- },
- });
-
- await flushPromises();
-
- expect(wrapper.text()).toContain('Result set is loaded');
- expect(cube.request.mock.calls.length).toBe(1);
- });
-
- // todo: fix
- // it('Rerender on query nested property change', async () => {
- // const cube = createCubeApi();
- // jest.spyOn(cube, 'request').mockImplementation(fetchMock(single));
- //
- // const parent = mount({
- // components: {
- // QueryRenderer,
- // },
- // template: `
- //
- //
- // {{query}}
- //
- //
- // `,
- // data() {
- // return {
- // cubeApi: cube,
- // query: {
- // measures: ['Stories.count'],
- // dimensions: [],
- // filters: [],
- // segments: [],
- // timeDimensions: [],
- // },
- // };
- // },
- // });
- //
- // await flushPromises();
- //
- // expect(cube.request.mock.calls.length).toBe(1);
- // expect(parent.find('.query').element.textContent).toContain('Stories.count');
- //
- // // await parent.setData({
- // // query: {
- // // measures: ['Users.count'],
- // // },
- // // });
- //
- // // parent.vm.query.measures = ['Users.count'];
- // // await flushPromises();
- //
- // expect(cube.request.mock.calls.length).toBe(2);
- // expect(parent.find('.query').element.textContent).toContain('Users.count');
- //
- // parent.vm.query.measures.push('Users.count');
- // await flushPromises();
- //
- // expect(cube.request.mock.calls.length).toBe(3);
- // expect(parent.find('.query').element.textContent).toContain('Users.count');
- //
- // parent.vm.query.timeDimensions.push({
- // dimension: 'Users.count',
- // dateRange: 'last 6 days',
- // granularity: 'week',
- // });
- // await flushPromises();
- //
- // expect(cube.request.mock.calls.length).toBe(4);
- // expect(parent.find('.query').element.textContent).toContain('week');
- // });
- });
-});
diff --git a/packages/cubejs-client-vue/tests/unit/__mocks__/responses.js b/packages/cubejs-client-vue/tests/unit/__mocks__/responses.js
deleted file mode 100644
index 58aeb40f3066d..0000000000000
--- a/packages/cubejs-client-vue/tests/unit/__mocks__/responses.js
+++ /dev/null
@@ -1,734 +0,0 @@
-export const meta = {
- cubes: [
- {
- name: 'LineItems',
- title: 'Line Items',
- connectedComponent: 1,
- measures: [
- {
- name: 'LineItems.count',
- title: 'Line Items Count',
- shortTitle: 'Count',
- aliasName: 'line_items.count',
- cumulativeTotal: false,
- cumulative: false,
- type: 'number',
- drillMembers: ['LineItems.id', 'LineItems.createdAt'],
- },
- {
- name: 'LineItems.quantity',
- title: 'Line Items Quantity',
- shortTitle: 'Quantity',
- aliasName: 'line_items.quantity',
- cumulativeTotal: false,
- cumulative: false,
- type: 'number',
- },
- {
- name: 'LineItems.price',
- title: 'Line Items Price',
- shortTitle: 'Price',
- aliasName: 'line_items.price',
- cumulativeTotal: false,
- cumulative: false,
- type: 'number',
- },
- ],
- dimensions: [
- {
- name: 'LineItems.createdAt',
- title: 'Line Items Created at',
- type: 'time',
- aliasName: 'line_items.created_at',
- shortTitle: 'Created at',
- suggestFilterValues: true,
- },
- ],
- segments: [],
- },
- {
- name: 'Orders',
- title: 'Orders',
- connectedComponent: 1,
- measures: [
- {
- name: 'Orders.count',
- title: 'Orders Count',
- shortTitle: 'Count',
- aliasName: 'orders.count',
- cumulativeTotal: false,
- cumulative: false,
- type: 'number',
- drillMembers: ['Orders.id', 'Orders.createdAt'],
- },
- {
- name: 'Orders.number',
- title: 'Orders Number',
- shortTitle: 'Number',
- aliasName: 'orders.number',
- cumulativeTotal: false,
- cumulative: false,
- type: 'number',
- },
- ],
- dimensions: [
- {
- name: 'Orders.status',
- title: 'Orders Status',
- type: 'string',
- aliasName: 'orders.status',
- shortTitle: 'Status',
- suggestFilterValues: true,
- },
- {
- name: 'Orders.createdAt',
- title: 'Orders Created at',
- type: 'time',
- aliasName: 'orders.created_at',
- shortTitle: 'Created at',
- suggestFilterValues: true,
- },
- {
- name: 'Orders.completedAt',
- title: 'Orders Completed at',
- type: 'time',
- aliasName: 'orders.completed_at',
- shortTitle: 'Completed at',
- suggestFilterValues: true,
- },
- ],
- segments: [],
- },
- {
- name: 'Users',
- title: 'Users',
- connectedComponent: 1,
- measures: [
- {
- name: 'Users.count',
- title: 'Users Count',
- shortTitle: 'Count',
- aliasName: 'users.count',
- cumulativeTotal: false,
- cumulative: false,
- type: 'number',
- drillMembers: ['Users.city', 'Users.id', 'Users.createdAt'],
- },
- ],
- dimensions: [
- {
- name: 'Users.city',
- title: 'Users City',
- type: 'string',
- aliasName: 'users.city',
- shortTitle: 'City',
- suggestFilterValues: true,
- },
- {
- name: 'Users.gender',
- title: 'Users Gender',
- type: 'string',
- aliasName: 'users.gender',
- shortTitle: 'Gender',
- suggestFilterValues: true,
- },
- {
- name: 'Users.company',
- title: 'Users Company',
- type: 'string',
- aliasName: 'users.company',
- shortTitle: 'Company',
- suggestFilterValues: true,
- },
- {
- name: 'Users.createdAt',
- title: 'Users Created at',
- type: 'time',
- aliasName: 'users.created_at',
- shortTitle: 'Created at',
- suggestFilterValues: true,
- },
- ],
- segments: [],
- },
- ],
-};
-
-export const load = {
- query: {
- measures: ['Users.count'],
- dimensions: ['Users.city'],
- timezone: 'UTC',
- timeDimensions: [],
- },
- data: [
- {
- 'Users.city': 'Mülheim',
- 'Users.count': '4',
- },
- {
- 'Users.city': 'Metairie',
- 'Users.count': '4',
- },
- {
- 'Users.city': 'Lions Bay',
- 'Users.count': '4',
- },
- {
- 'Users.city': 'Torno',
- 'Users.count': '3',
- },
- {
- 'Users.city': 'Houston',
- 'Users.count': '3',
- },
- {
- 'Users.city': 'Naro',
- 'Users.count': '3',
- },
- {
- 'Users.city': 'Tilly',
- 'Users.count': '3',
- },
- {
- 'Users.city': 'Sooke',
- 'Users.count': '3',
- },
- {
- 'Users.city': 'Kansas City',
- 'Users.count': '3',
- },
- {
- 'Users.city': 'Warren',
- 'Users.count': '3',
- },
- {
- 'Users.city': 'Nice',
- 'Users.count': '3',
- },
- {
- 'Users.city': 'Muzaffarnagar',
- 'Users.count': '3',
- },
- {
- 'Users.city': 'Yeovil',
- 'Users.count': '3',
- },
- {
- 'Users.city': 'Delta',
- 'Users.count': '3',
- },
- {
- 'Users.city': 'Sens',
- 'Users.count': '2',
- },
- {
- 'Users.city': 'Prince George',
- 'Users.count': '2',
- },
- {
- 'Users.city': 'Nederokkerzeel',
- 'Users.count': '2',
- },
- {
- 'Users.city': 'Stigliano',
- 'Users.count': '2',
- },
- {
- 'Users.city': 'Bhind',
- 'Users.count': '2',
- },
- {
- 'Users.city': 'LamontzŽe',
- 'Users.count': '2',
- },
- {
- 'Users.city': 'Portland',
- 'Users.count': '2',
- },
- {
- 'Users.city': 'Morvi',
- 'Users.count': '2',
- },
- {
- 'Users.city': 'Nova Iguaçu',
- 'Users.count': '2',
- },
- {
- 'Users.city': 'Wanganui',
- 'Users.count': '2',
- },
- {
- 'Users.city': 'Ockelbo',
- 'Users.count': '2',
- },
- {
- 'Users.city': 'Gatineau',
- 'Users.count': '2',
- },
- {
- 'Users.city': 'Austin',
- 'Users.count': '2',
- },
- {
- 'Users.city': 'Osogbo',
- 'Users.count': '2',
- },
- {
- 'Users.city': 'Lampeter',
- 'Users.count': '2',
- },
- {
- 'Users.city': 'Camaçari',
- 'Users.count': '2',
- },
- {
- 'Users.city': 'Ruda',
- 'Users.count': '2',
- },
- {
- 'Users.city': 'Cincinnati',
- 'Users.count': '2',
- },
- {
- 'Users.city': 'Ponte San Nicolò',
- 'Users.count': '2',
- },
- {
- 'Users.city': 'Anand',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Oyace',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Lillianes',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Slijpe',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Castor',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Curacaví',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Rawalpindi',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Saint-Jean-Geest',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Buckingham',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Berlare',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Glovertown',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Duncan',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Longano',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Chatillon',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Biloxi',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Saint-Dizier',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Stintino',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Raichur',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Morrinsville',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'St. Albans',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Argyle',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Basingstoke',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Machalí',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Bernau',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Logroño',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'D\ufffdgelis',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Santa María',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Halkirk',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Pucón',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'La Baie',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Merbes-Sainte-Marie',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Kharagpur',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Brussel',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Whitby',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Devizes',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Cañas',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Püttlingen',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Springfield',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Pali',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Glendale',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Pointe-Claire',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'San Martino in Pensilis',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Zutphen',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Victoria',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'San Giorgio Albanese',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Marburg',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Salice Salentino',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Zeveneken',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'West Jordan',
- 'Users.count': '1',
- },
- {
- 'Users.city': "Sant'Agapito",
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Sadiqabad',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Wetzlar',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Laces/Latsch',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Ashoknagar-Kalyangarh',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Pelago',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Oevel',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Olivar',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Diets-Heur',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Cockburn',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Saint-Prime',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Orta San Giulio',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Tiarno di Sopra',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Zuienkerke',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Kungälv',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Mérignac',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Durness',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Newtonmore',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Lier',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Cles',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Chiaromonte',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Genappe',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Perugia',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Modakeke',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Poulseur',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Gagliano del Capo',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Paradise',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'San Fratello',
- 'Users.count': '1',
- },
- {
- 'Users.city': "Bersillies-l'Abbaye",
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Dieppe',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Massimino',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Sachs Harbour',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Altidona',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Richmond',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Boorsem',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Schoonaarde',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Garaguso',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Rovereto',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Saint-Pierre',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Jerez de la Frontera',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Cropalati',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Siculiana',
- 'Users.count': '1',
- },
- {
- 'Users.city': 'Trani',
- 'Users.count': '1',
- },
- ],
- annotation: {
- measures: {
- 'Users.count': {
- title: 'Users Count',
- shortTitle: 'Count',
- type: 'number',
- },
- },
- dimensions: {
- 'Users.city': {
- title: 'Users City',
- shortTitle: 'City',
- type: 'string',
- },
- },
- segments: {},
- timeDimensions: {},
- },
-};
-
-export const single = {
- query: {
- measures: ['Users.count'],
- dimensions: [],
- timezone: 'UTC',
- timeDimensions: [],
- },
- data: [
- {
- 'Users.city': 'Mülheim',
- 'Users.count': '4',
- },
- {
- 'Users.city': 'Metairie',
- 'Users.count': '4',
- },
- ],
- annotation: {
- measures: {
- 'Users.count': {
- title: 'Users Count',
- shortTitle: 'Count',
- type: 'number',
- },
- },
- dimensions: {},
- segments: {},
- timeDimensions: {},
- },
-};
-
-export const sql = {};
-
-export default (body = {}, status = 200) => () => ({
- async subscribe(callback) {
- return callback(
- {
- status,
- json: async () => body,
- text: async () => JSON.stringify(body),
- clone: function() {
- return this;
- },
- ok: status >= 200 && status <= 399
- },
- () => this.subscribe(callback)
- );
- },
-});
diff --git a/packages/cubejs-client-vue/tests/unit/utils.js b/packages/cubejs-client-vue/tests/unit/utils.js
deleted file mode 100644
index 6e4a0e6ddd03d..0000000000000
--- a/packages/cubejs-client-vue/tests/unit/utils.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import cubejsApi from '@cubejs-client/core';
-
-export function createCubeApi() {
- return cubejsApi('token', {
- apiUrl: 'http://localhost:4000'
- });
-}
diff --git a/packages/cubejs-client-vue3/CHANGELOG.md b/packages/cubejs-client-vue3/CHANGELOG.md
index 98698c5c44831..b9fe3c93a1e2c 100644
--- a/packages/cubejs-client-vue3/CHANGELOG.md
+++ b/packages/cubejs-client-vue3/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.5.10](https://github.com/cube-js/cube.js/compare/v1.5.9...v1.5.10) (2025-11-28)
+
+**Note:** Version bump only for package @cubejs-client/vue3
+
## [1.5.9](https://github.com/cube-js/cube.js/compare/v1.5.8...v1.5.9) (2025-11-26)
**Note:** Version bump only for package @cubejs-client/vue3
diff --git a/packages/cubejs-client-vue3/package.json b/packages/cubejs-client-vue3/package.json
index fea551f40168e..3a494a1f100ad 100644
--- a/packages/cubejs-client-vue3/package.json
+++ b/packages/cubejs-client-vue3/package.json
@@ -1,6 +1,6 @@
{
"name": "@cubejs-client/vue3",
- "version": "1.5.9",
+ "version": "1.5.10",
"engines": {},
"repository": {
"type": "git",
@@ -28,7 +28,7 @@
"src"
],
"dependencies": {
- "@cubejs-client/core": "1.5.9",
+ "@cubejs-client/core": "1.5.10",
"ramda": "^0.27.0"
},
"devDependencies": {
@@ -38,8 +38,8 @@
"@vue/cli-plugin-unit-jest": "^5",
"@vue/cli-service": "^5.0",
"@vue/test-utils": "^2.4",
- "@vue/vue2-jest": "^29",
"@vue/vue3-jest": "^29",
+ "@babel/plugin-proposal-optional-chaining": "^7",
"babel-core": "7.0.0-bridge.0",
"babel-eslint": "^10.1.0",
"babel-jest": "^29",
diff --git a/packages/cubejs-client-ws-transport/CHANGELOG.md b/packages/cubejs-client-ws-transport/CHANGELOG.md
index d1e902505c994..bb30051d87ce2 100644
--- a/packages/cubejs-client-ws-transport/CHANGELOG.md
+++ b/packages/cubejs-client-ws-transport/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.5.10](https://github.com/cube-js/cube/compare/v1.5.9...v1.5.10) (2025-11-28)
+
+**Note:** Version bump only for package @cubejs-client/ws-transport
+
## [1.5.9](https://github.com/cube-js/cube/compare/v1.5.8...v1.5.9) (2025-11-26)
**Note:** Version bump only for package @cubejs-client/ws-transport
diff --git a/packages/cubejs-client-ws-transport/package.json b/packages/cubejs-client-ws-transport/package.json
index 911f066d1a5b3..f6db32eaf3d2b 100644
--- a/packages/cubejs-client-ws-transport/package.json
+++ b/packages/cubejs-client-ws-transport/package.json
@@ -1,6 +1,6 @@
{
"name": "@cubejs-client/ws-transport",
- "version": "1.5.9",
+ "version": "1.5.10",
"engines": {},
"repository": {
"type": "git",
@@ -20,7 +20,7 @@
},
"dependencies": {
"@babel/runtime": "^7.1.2",
- "@cubejs-client/core": "1.5.9",
+ "@cubejs-client/core": "1.5.10",
"core-js": "^3.6.5",
"isomorphic-ws": "^4.0.1",
"ws": "^7.3.1"
@@ -33,7 +33,7 @@
"@babel/core": "^7.3.3",
"@babel/preset-env": "^7.3.1",
"@babel/preset-typescript": "^7.12.1",
- "@cubejs-backend/linter": "1.5.9",
+ "@cubejs-backend/linter": "1.5.10",
"@types/ws": "^7.2.9",
"typescript": "~5.2.2"
},
diff --git a/packages/cubejs-crate-driver/CHANGELOG.md b/packages/cubejs-crate-driver/CHANGELOG.md
index 585c0fc413689..b5862a4d44d64 100644
--- a/packages/cubejs-crate-driver/CHANGELOG.md
+++ b/packages/cubejs-crate-driver/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.5.10](https://github.com/cube-js/cube/compare/v1.5.9...v1.5.10) (2025-11-28)
+
+**Note:** Version bump only for package @cubejs-backend/crate-driver
+
## [1.5.9](https://github.com/cube-js/cube/compare/v1.5.8...v1.5.9) (2025-11-26)
**Note:** Version bump only for package @cubejs-backend/crate-driver
diff --git a/packages/cubejs-crate-driver/package.json b/packages/cubejs-crate-driver/package.json
index 7d4424cf90c98..1a23cbe3f3283 100644
--- a/packages/cubejs-crate-driver/package.json
+++ b/packages/cubejs-crate-driver/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/crate-driver",
"description": "Cube.js Crate database driver",
"author": "Cube Dev, Inc.",
- "version": "1.5.9",
+ "version": "1.5.10",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -28,14 +28,14 @@
"lint:fix": "eslint --fix src/* --ext .ts"
},
"dependencies": {
- "@cubejs-backend/postgres-driver": "1.5.9",
- "@cubejs-backend/shared": "1.5.9",
+ "@cubejs-backend/postgres-driver": "1.5.10",
+ "@cubejs-backend/shared": "1.5.10",
"pg": "^8.7.1"
},
"license": "Apache-2.0",
"devDependencies": {
- "@cubejs-backend/linter": "1.5.9",
- "@cubejs-backend/testing-shared": "1.5.9",
+ "@cubejs-backend/linter": "1.5.10",
+ "@cubejs-backend/testing-shared": "1.5.10",
"testcontainers": "^10.28.0",
"typescript": "~5.2.2"
},
diff --git a/packages/cubejs-cubestore-driver/CHANGELOG.md b/packages/cubejs-cubestore-driver/CHANGELOG.md
index 7b28ebfaf0f73..77a879ccce642 100644
--- a/packages/cubejs-cubestore-driver/CHANGELOG.md
+++ b/packages/cubejs-cubestore-driver/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.5.10](https://github.com/cube-js/cube/compare/v1.5.9...v1.5.10) (2025-11-28)
+
+**Note:** Version bump only for package @cubejs-backend/cubestore-driver
+
## [1.5.9](https://github.com/cube-js/cube/compare/v1.5.8...v1.5.9) (2025-11-26)
**Note:** Version bump only for package @cubejs-backend/cubestore-driver
diff --git a/packages/cubejs-cubestore-driver/package.json b/packages/cubejs-cubestore-driver/package.json
index 8ee592521f54d..fab83598e1321 100644
--- a/packages/cubejs-cubestore-driver/package.json
+++ b/packages/cubejs-cubestore-driver/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/cubestore-driver",
"description": "Cube Store driver",
"author": "Cube Dev, Inc.",
- "version": "1.5.9",
+ "version": "1.5.10",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -26,10 +26,10 @@
"lint:fix": "eslint --fix src/*.ts"
},
"dependencies": {
- "@cubejs-backend/base-driver": "1.5.9",
- "@cubejs-backend/cubestore": "1.5.9",
- "@cubejs-backend/native": "1.5.9",
- "@cubejs-backend/shared": "1.5.9",
+ "@cubejs-backend/base-driver": "1.5.10",
+ "@cubejs-backend/cubestore": "1.5.10",
+ "@cubejs-backend/native": "1.5.10",
+ "@cubejs-backend/shared": "1.5.10",
"csv-write-stream": "^2.0.0",
"flatbuffers": "23.3.3",
"fs-extra": "^9.1.0",
@@ -41,7 +41,7 @@
"ws": "^7.4.3"
},
"devDependencies": {
- "@cubejs-backend/linter": "1.5.9",
+ "@cubejs-backend/linter": "1.5.10",
"@types/csv-write-stream": "^2.0.0",
"@types/jest": "^29",
"@types/node": "^20",
diff --git a/packages/cubejs-databricks-jdbc-driver/CHANGELOG.md b/packages/cubejs-databricks-jdbc-driver/CHANGELOG.md
index 6ab1a0072ac41..bc0987b127cff 100644
--- a/packages/cubejs-databricks-jdbc-driver/CHANGELOG.md
+++ b/packages/cubejs-databricks-jdbc-driver/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.5.10](https://github.com/cube-js/cube/compare/v1.5.9...v1.5.10) (2025-11-28)
+
+**Note:** Version bump only for package @cubejs-backend/databricks-jdbc-driver
+
## [1.5.9](https://github.com/cube-js/cube/compare/v1.5.8...v1.5.9) (2025-11-26)
**Note:** Version bump only for package @cubejs-backend/databricks-jdbc-driver
diff --git a/packages/cubejs-databricks-jdbc-driver/package.json b/packages/cubejs-databricks-jdbc-driver/package.json
index 048d3adc047a1..7e77bc40d2c4b 100644
--- a/packages/cubejs-databricks-jdbc-driver/package.json
+++ b/packages/cubejs-databricks-jdbc-driver/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/databricks-jdbc-driver",
"description": "Cube.js Databricks database driver",
"author": "Cube Dev, Inc.",
- "version": "1.5.9",
+ "version": "1.5.10",
"license": "Apache-2.0",
"repository": {
"type": "git",
@@ -30,17 +30,17 @@
"bin"
],
"dependencies": {
- "@cubejs-backend/base-driver": "1.5.9",
- "@cubejs-backend/jdbc-driver": "1.5.9",
- "@cubejs-backend/schema-compiler": "1.5.9",
- "@cubejs-backend/shared": "1.5.9",
+ "@cubejs-backend/base-driver": "1.5.10",
+ "@cubejs-backend/jdbc-driver": "1.5.10",
+ "@cubejs-backend/schema-compiler": "1.5.10",
+ "@cubejs-backend/shared": "1.5.10",
"node-fetch": "^2.6.1",
"ramda": "^0.27.2",
"source-map-support": "^0.5.19",
"uuid": "^8.3.2"
},
"devDependencies": {
- "@cubejs-backend/linter": "1.5.9",
+ "@cubejs-backend/linter": "1.5.10",
"@types/jest": "^29",
"@types/node": "^20",
"@types/ramda": "^0.27.34",
diff --git a/packages/cubejs-dbt-schema-extension/CHANGELOG.md b/packages/cubejs-dbt-schema-extension/CHANGELOG.md
index 3039b6e245b15..e1e2b1fcb73ae 100644
--- a/packages/cubejs-dbt-schema-extension/CHANGELOG.md
+++ b/packages/cubejs-dbt-schema-extension/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.5.10](https://github.com/cube-js/cube/compare/v1.5.9...v1.5.10) (2025-11-28)
+
+**Note:** Version bump only for package @cubejs-backend/dbt-schema-extension
+
## [1.5.9](https://github.com/cube-js/cube/compare/v1.5.8...v1.5.9) (2025-11-26)
**Note:** Version bump only for package @cubejs-backend/dbt-schema-extension
diff --git a/packages/cubejs-dbt-schema-extension/package.json b/packages/cubejs-dbt-schema-extension/package.json
index af88beb9815a4..5675f34af5d87 100644
--- a/packages/cubejs-dbt-schema-extension/package.json
+++ b/packages/cubejs-dbt-schema-extension/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/dbt-schema-extension",
"description": "Cube.js dbt Schema Extension",
"author": "Cube Dev, Inc.",
- "version": "1.5.9",
+ "version": "1.5.10",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -25,14 +25,14 @@
"lint:fix": "eslint --fix src/* --ext .ts,.js"
},
"dependencies": {
- "@cubejs-backend/schema-compiler": "1.5.9",
+ "@cubejs-backend/schema-compiler": "1.5.10",
"fs-extra": "^9.1.0",
"inflection": "^1.12.0",
"node-fetch": "^2.6.1"
},
"devDependencies": {
- "@cubejs-backend/linter": "1.5.9",
- "@cubejs-backend/testing": "1.5.9",
+ "@cubejs-backend/linter": "1.5.10",
+ "@cubejs-backend/testing": "1.5.10",
"@types/jest": "^29",
"jest": "^29",
"stream-to-array": "^2.3.0",
diff --git a/packages/cubejs-docker/CHANGELOG.md b/packages/cubejs-docker/CHANGELOG.md
index c811fda5c3004..2fc474c1a3b3f 100644
--- a/packages/cubejs-docker/CHANGELOG.md
+++ b/packages/cubejs-docker/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.5.10](https://github.com/cube-js/cube/compare/v1.5.9...v1.5.10) (2025-11-28)
+
+**Note:** Version bump only for package @cubejs-backend/docker
+
## [1.5.9](https://github.com/cube-js/cube/compare/v1.5.8...v1.5.9) (2025-11-26)
**Note:** Version bump only for package @cubejs-backend/docker
diff --git a/packages/cubejs-docker/dev.Dockerfile b/packages/cubejs-docker/dev.Dockerfile
index 82ed1e7cc3e65..5a24203814eae 100644
--- a/packages/cubejs-docker/dev.Dockerfile
+++ b/packages/cubejs-docker/dev.Dockerfile
@@ -82,7 +82,6 @@ COPY packages/cubejs-vertica-driver/package.json packages/cubejs-vertica-driver/
COPY packages/cubejs-templates/package.json packages/cubejs-templates/package.json
COPY packages/cubejs-client-core/package.json packages/cubejs-client-core/package.json
COPY packages/cubejs-client-react/package.json packages/cubejs-client-react/package.json
-COPY packages/cubejs-client-vue/package.json packages/cubejs-client-vue/package.json
COPY packages/cubejs-client-vue3/package.json packages/cubejs-client-vue3/package.json
COPY packages/cubejs-client-ngx/package.json packages/cubejs-client-ngx/package.json
COPY packages/cubejs-client-ws-transport/package.json packages/cubejs-client-ws-transport/package.json
@@ -160,7 +159,6 @@ COPY packages/cubejs-vertica-driver/ packages/cubejs-vertica-driver/
COPY packages/cubejs-templates/ packages/cubejs-templates/
COPY packages/cubejs-client-core/ packages/cubejs-client-core/
COPY packages/cubejs-client-react/ packages/cubejs-client-react/
-COPY packages/cubejs-client-vue/ packages/cubejs-client-vue/
COPY packages/cubejs-client-vue3/ packages/cubejs-client-vue3/
COPY packages/cubejs-client-ngx/ packages/cubejs-client-ngx/
COPY packages/cubejs-client-ws-transport/ packages/cubejs-client-ws-transport/
diff --git a/packages/cubejs-docker/package.json b/packages/cubejs-docker/package.json
index f46d8b69e8015..44fb530cf7343 100644
--- a/packages/cubejs-docker/package.json
+++ b/packages/cubejs-docker/package.json
@@ -1,6 +1,6 @@
{
"name": "@cubejs-backend/docker",
- "version": "1.5.9",
+ "version": "1.5.10",
"description": "Cube.js In Docker (virtual package)",
"author": "Cube Dev, Inc.",
"license": "Apache-2.0",
@@ -9,35 +9,35 @@
"node": ">=18.0.0"
},
"dependencies": {
- "@cubejs-backend/athena-driver": "1.5.9",
- "@cubejs-backend/bigquery-driver": "1.5.9",
- "@cubejs-backend/clickhouse-driver": "1.5.9",
- "@cubejs-backend/crate-driver": "1.5.9",
- "@cubejs-backend/databricks-jdbc-driver": "1.5.9",
- "@cubejs-backend/dbt-schema-extension": "1.5.9",
- "@cubejs-backend/dremio-driver": "1.5.9",
- "@cubejs-backend/druid-driver": "1.5.9",
- "@cubejs-backend/duckdb-driver": "1.5.9",
- "@cubejs-backend/elasticsearch-driver": "1.5.9",
- "@cubejs-backend/firebolt-driver": "1.5.9",
- "@cubejs-backend/hive-driver": "1.5.9",
- "@cubejs-backend/ksql-driver": "1.5.9",
- "@cubejs-backend/materialize-driver": "1.5.9",
- "@cubejs-backend/mongobi-driver": "1.5.9",
- "@cubejs-backend/mssql-driver": "1.5.9",
- "@cubejs-backend/mysql-driver": "1.5.9",
- "@cubejs-backend/oracle-driver": "1.5.9",
- "@cubejs-backend/pinot-driver": "1.5.9",
- "@cubejs-backend/postgres-driver": "1.5.9",
- "@cubejs-backend/prestodb-driver": "1.5.9",
- "@cubejs-backend/questdb-driver": "1.5.9",
- "@cubejs-backend/redshift-driver": "1.5.9",
- "@cubejs-backend/server": "1.5.9",
- "@cubejs-backend/snowflake-driver": "1.5.9",
- "@cubejs-backend/sqlite-driver": "1.5.9",
- "@cubejs-backend/trino-driver": "1.5.9",
- "@cubejs-backend/vertica-driver": "1.5.9",
- "cubejs-cli": "1.5.9",
+ "@cubejs-backend/athena-driver": "1.5.10",
+ "@cubejs-backend/bigquery-driver": "1.5.10",
+ "@cubejs-backend/clickhouse-driver": "1.5.10",
+ "@cubejs-backend/crate-driver": "1.5.10",
+ "@cubejs-backend/databricks-jdbc-driver": "1.5.10",
+ "@cubejs-backend/dbt-schema-extension": "1.5.10",
+ "@cubejs-backend/dremio-driver": "1.5.10",
+ "@cubejs-backend/druid-driver": "1.5.10",
+ "@cubejs-backend/duckdb-driver": "1.5.10",
+ "@cubejs-backend/elasticsearch-driver": "1.5.10",
+ "@cubejs-backend/firebolt-driver": "1.5.10",
+ "@cubejs-backend/hive-driver": "1.5.10",
+ "@cubejs-backend/ksql-driver": "1.5.10",
+ "@cubejs-backend/materialize-driver": "1.5.10",
+ "@cubejs-backend/mongobi-driver": "1.5.10",
+ "@cubejs-backend/mssql-driver": "1.5.10",
+ "@cubejs-backend/mysql-driver": "1.5.10",
+ "@cubejs-backend/oracle-driver": "1.5.10",
+ "@cubejs-backend/pinot-driver": "1.5.10",
+ "@cubejs-backend/postgres-driver": "1.5.10",
+ "@cubejs-backend/prestodb-driver": "1.5.10",
+ "@cubejs-backend/questdb-driver": "1.5.10",
+ "@cubejs-backend/redshift-driver": "1.5.10",
+ "@cubejs-backend/server": "1.5.10",
+ "@cubejs-backend/snowflake-driver": "1.5.10",
+ "@cubejs-backend/sqlite-driver": "1.5.10",
+ "@cubejs-backend/trino-driver": "1.5.10",
+ "@cubejs-backend/vertica-driver": "1.5.10",
+ "cubejs-cli": "1.5.10",
"typescript": "~5.2.2"
},
"resolutions": {
diff --git a/packages/cubejs-docker/testing-drivers.Dockerfile b/packages/cubejs-docker/testing-drivers.Dockerfile
index e5169371ab22e..fa0f0ae2a8b5d 100644
--- a/packages/cubejs-docker/testing-drivers.Dockerfile
+++ b/packages/cubejs-docker/testing-drivers.Dockerfile
@@ -76,7 +76,6 @@ COPY packages/cubejs-vertica-driver/package.json packages/cubejs-vertica-driver/
#COPY packages/cubejs-templates/package.json packages/cubejs-templates/package.json
#COPY packages/cubejs-client-core/package.json packages/cubejs-client-core/package.json
#COPY packages/cubejs-client-react/package.json packages/cubejs-client-react/package.json
-#COPY packages/cubejs-client-vue/package.json packages/cubejs-client-vue/package.json
#COPY packages/cubejs-client-vue3/package.json packages/cubejs-client-vue3/package.json
#COPY packages/cubejs-client-ngx/package.json packages/cubejs-client-ngx/package.json
#COPY packages/cubejs-client-ws-transport/package.json packages/cubejs-client-ws-transport/package.json
@@ -153,7 +152,6 @@ COPY packages/cubejs-vertica-driver/ packages/cubejs-vertica-driver/
#COPY packages/cubejs-templates/ packages/cubejs-templates/
#COPY packages/cubejs-client-core/ packages/cubejs-client-core/
#COPY packages/cubejs-client-react/ packages/cubejs-client-react/
-#COPY packages/cubejs-client-vue/ packages/cubejs-client-vue/
#COPY packages/cubejs-client-vue3/ packages/cubejs-client-vue3/
#COPY packages/cubejs-client-ngx/ packages/cubejs-client-ngx/
#COPY packages/cubejs-client-ws-transport/ packages/cubejs-client-ws-transport/
diff --git a/packages/cubejs-dremio-driver/CHANGELOG.md b/packages/cubejs-dremio-driver/CHANGELOG.md
index 614df54cbac2e..2a18fbcf27867 100644
--- a/packages/cubejs-dremio-driver/CHANGELOG.md
+++ b/packages/cubejs-dremio-driver/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.5.10](https://github.com/cube-js/cube/compare/v1.5.9...v1.5.10) (2025-11-28)
+
+**Note:** Version bump only for package @cubejs-backend/dremio-driver
+
## [1.5.9](https://github.com/cube-js/cube/compare/v1.5.8...v1.5.9) (2025-11-26)
**Note:** Version bump only for package @cubejs-backend/dremio-driver
diff --git a/packages/cubejs-dremio-driver/package.json b/packages/cubejs-dremio-driver/package.json
index 593600c14b488..8181458b582ee 100644
--- a/packages/cubejs-dremio-driver/package.json
+++ b/packages/cubejs-dremio-driver/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/dremio-driver",
"description": "Cube.js Dremio driver",
"author": "Cube Dev, Inc.",
- "version": "1.5.9",
+ "version": "1.5.10",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -22,15 +22,15 @@
"lint:fix": "eslint driver/*.js"
},
"dependencies": {
- "@cubejs-backend/base-driver": "1.5.9",
- "@cubejs-backend/schema-compiler": "1.5.9",
- "@cubejs-backend/shared": "1.5.9",
+ "@cubejs-backend/base-driver": "1.5.10",
+ "@cubejs-backend/schema-compiler": "1.5.10",
+ "@cubejs-backend/shared": "1.5.10",
"axios": "^1.8.3",
"sqlstring": "^2.3.1"
},
"devDependencies": {
- "@cubejs-backend/linter": "1.5.9",
- "@cubejs-backend/testing-shared": "1.5.9",
+ "@cubejs-backend/linter": "1.5.10",
+ "@cubejs-backend/testing-shared": "1.5.10",
"jest": "^29"
},
"license": "Apache-2.0",
diff --git a/packages/cubejs-druid-driver/CHANGELOG.md b/packages/cubejs-druid-driver/CHANGELOG.md
index ff5f6778415d1..ce1ac0040a432 100644
--- a/packages/cubejs-druid-driver/CHANGELOG.md
+++ b/packages/cubejs-druid-driver/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.5.10](https://github.com/cube-js/cube/compare/v1.5.9...v1.5.10) (2025-11-28)
+
+**Note:** Version bump only for package @cubejs-backend/druid-driver
+
## [1.5.9](https://github.com/cube-js/cube/compare/v1.5.8...v1.5.9) (2025-11-26)
**Note:** Version bump only for package @cubejs-backend/druid-driver
diff --git a/packages/cubejs-druid-driver/package.json b/packages/cubejs-druid-driver/package.json
index c4ad4a517abdb..38d24e0fd2ecb 100644
--- a/packages/cubejs-druid-driver/package.json
+++ b/packages/cubejs-druid-driver/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/druid-driver",
"description": "Cube.js Druid database driver",
"author": "Cube Dev, Inc.",
- "version": "1.5.9",
+ "version": "1.5.10",
"license": "Apache-2.0",
"repository": {
"type": "git",
@@ -28,13 +28,13 @@
"dist/src/*"
],
"dependencies": {
- "@cubejs-backend/base-driver": "1.5.9",
- "@cubejs-backend/schema-compiler": "1.5.9",
- "@cubejs-backend/shared": "1.5.9",
+ "@cubejs-backend/base-driver": "1.5.10",
+ "@cubejs-backend/schema-compiler": "1.5.10",
+ "@cubejs-backend/shared": "1.5.10",
"axios": "^1.8.3"
},
"devDependencies": {
- "@cubejs-backend/linter": "1.5.9",
+ "@cubejs-backend/linter": "1.5.10",
"@types/jest": "^29",
"@types/node": "^20",
"jest": "^29",
diff --git a/packages/cubejs-duckdb-driver/CHANGELOG.md b/packages/cubejs-duckdb-driver/CHANGELOG.md
index c3d0a67de3861..9aa8d31b41925 100644
--- a/packages/cubejs-duckdb-driver/CHANGELOG.md
+++ b/packages/cubejs-duckdb-driver/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.5.10](https://github.com/cube-js/cube/compare/v1.5.9...v1.5.10) (2025-11-28)
+
+**Note:** Version bump only for package @cubejs-backend/duckdb-driver
+
## [1.5.9](https://github.com/cube-js/cube/compare/v1.5.8...v1.5.9) (2025-11-26)
**Note:** Version bump only for package @cubejs-backend/duckdb-driver
diff --git a/packages/cubejs-duckdb-driver/package.json b/packages/cubejs-duckdb-driver/package.json
index 290309fa47df5..43dfee3ec6a7c 100644
--- a/packages/cubejs-duckdb-driver/package.json
+++ b/packages/cubejs-duckdb-driver/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/duckdb-driver",
"description": "Cube DuckDB database driver",
"author": "Cube Dev, Inc.",
- "version": "1.5.9",
+ "version": "1.5.10",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -27,15 +27,15 @@
"lint:fix": "eslint --fix src/* --ext .ts"
},
"dependencies": {
- "@cubejs-backend/base-driver": "1.5.9",
- "@cubejs-backend/schema-compiler": "1.5.9",
- "@cubejs-backend/shared": "1.5.9",
+ "@cubejs-backend/base-driver": "1.5.10",
+ "@cubejs-backend/schema-compiler": "1.5.10",
+ "@cubejs-backend/shared": "1.5.10",
"duckdb": "^1.4.1"
},
"license": "Apache-2.0",
"devDependencies": {
- "@cubejs-backend/linter": "1.5.9",
- "@cubejs-backend/testing-shared": "1.5.9",
+ "@cubejs-backend/linter": "1.5.10",
+ "@cubejs-backend/testing-shared": "1.5.10",
"@types/jest": "^29",
"@types/node": "^20",
"jest": "^29",
diff --git a/packages/cubejs-elasticsearch-driver/CHANGELOG.md b/packages/cubejs-elasticsearch-driver/CHANGELOG.md
index 19df1aa561af6..6bf7b716dba61 100644
--- a/packages/cubejs-elasticsearch-driver/CHANGELOG.md
+++ b/packages/cubejs-elasticsearch-driver/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.5.10](https://github.com/cube-js/cube/compare/v1.5.9...v1.5.10) (2025-11-28)
+
+**Note:** Version bump only for package @cubejs-backend/elasticsearch-driver
+
## [1.5.9](https://github.com/cube-js/cube/compare/v1.5.8...v1.5.9) (2025-11-26)
**Note:** Version bump only for package @cubejs-backend/elasticsearch-driver
diff --git a/packages/cubejs-elasticsearch-driver/package.json b/packages/cubejs-elasticsearch-driver/package.json
index eb8d28f19a07c..4b47f8731357a 100644
--- a/packages/cubejs-elasticsearch-driver/package.json
+++ b/packages/cubejs-elasticsearch-driver/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/elasticsearch-driver",
"description": "Cube.js elasticsearch database driver",
"author": "Cube Dev, Inc.",
- "version": "1.5.9",
+ "version": "1.5.10",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -23,14 +23,14 @@
"driver"
],
"dependencies": {
- "@cubejs-backend/base-driver": "1.5.9",
- "@cubejs-backend/shared": "1.5.9",
+ "@cubejs-backend/base-driver": "1.5.10",
+ "@cubejs-backend/shared": "1.5.10",
"@elastic/elasticsearch": "7.12.0",
"sqlstring": "^2.3.1"
},
"license": "Apache-2.0",
"devDependencies": {
- "@cubejs-backend/linter": "1.5.9",
+ "@cubejs-backend/linter": "1.5.10",
"@types/jest": "^29",
"jest": "^29",
"testcontainers": "^10.28.0"
diff --git a/packages/cubejs-firebolt-driver/CHANGELOG.md b/packages/cubejs-firebolt-driver/CHANGELOG.md
index 83987ea78c1fa..5b24c82c5a4f3 100644
--- a/packages/cubejs-firebolt-driver/CHANGELOG.md
+++ b/packages/cubejs-firebolt-driver/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.5.10](https://github.com/cube-js/cube/compare/v1.5.9...v1.5.10) (2025-11-28)
+
+**Note:** Version bump only for package @cubejs-backend/firebolt-driver
+
## [1.5.9](https://github.com/cube-js/cube/compare/v1.5.8...v1.5.9) (2025-11-26)
**Note:** Version bump only for package @cubejs-backend/firebolt-driver
diff --git a/packages/cubejs-firebolt-driver/package.json b/packages/cubejs-firebolt-driver/package.json
index 1e93a2127d011..d924ed7e12bf9 100644
--- a/packages/cubejs-firebolt-driver/package.json
+++ b/packages/cubejs-firebolt-driver/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/firebolt-driver",
"description": "Cube.js Firebolt database driver",
"author": "Cube Dev, Inc.",
- "version": "1.5.9",
+ "version": "1.5.10",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -28,15 +28,15 @@
"lint:fix": "eslint --fix src/* --ext .ts"
},
"dependencies": {
- "@cubejs-backend/base-driver": "1.5.9",
- "@cubejs-backend/schema-compiler": "1.5.9",
- "@cubejs-backend/shared": "1.5.9",
+ "@cubejs-backend/base-driver": "1.5.10",
+ "@cubejs-backend/schema-compiler": "1.5.10",
+ "@cubejs-backend/shared": "1.5.10",
"firebolt-sdk": "1.10.0"
},
"license": "Apache-2.0",
"devDependencies": {
- "@cubejs-backend/linter": "1.5.9",
- "@cubejs-backend/testing-shared": "1.5.9",
+ "@cubejs-backend/linter": "1.5.10",
+ "@cubejs-backend/testing-shared": "1.5.10",
"typescript": "~5.2.2"
},
"publishConfig": {
diff --git a/packages/cubejs-hive-driver/CHANGELOG.md b/packages/cubejs-hive-driver/CHANGELOG.md
index c5973cd02c485..eda526b09f0b4 100644
--- a/packages/cubejs-hive-driver/CHANGELOG.md
+++ b/packages/cubejs-hive-driver/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.5.10](https://github.com/cube-js/cube/compare/v1.5.9...v1.5.10) (2025-11-28)
+
+**Note:** Version bump only for package @cubejs-backend/hive-driver
+
## [1.5.9](https://github.com/cube-js/cube/compare/v1.5.8...v1.5.9) (2025-11-26)
**Note:** Version bump only for package @cubejs-backend/hive-driver
diff --git a/packages/cubejs-hive-driver/package.json b/packages/cubejs-hive-driver/package.json
index 8e16046163d55..82d9ca99dce2a 100644
--- a/packages/cubejs-hive-driver/package.json
+++ b/packages/cubejs-hive-driver/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/hive-driver",
"description": "Cube.js Hive database driver",
"author": "Cube Dev, Inc.",
- "version": "1.5.9",
+ "version": "1.5.10",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -17,8 +17,8 @@
"lint:fix": "eslint --fix src/* --ext .ts"
},
"dependencies": {
- "@cubejs-backend/base-driver": "1.5.9",
- "@cubejs-backend/shared": "1.5.9",
+ "@cubejs-backend/base-driver": "1.5.10",
+ "@cubejs-backend/shared": "1.5.10",
"generic-pool": "^3.8.2",
"jshs2": "^0.4.4",
"sasl-plain": "^0.1.0",
@@ -28,7 +28,7 @@
},
"license": "Apache-2.0",
"devDependencies": {
- "@cubejs-backend/linter": "1.5.9"
+ "@cubejs-backend/linter": "1.5.10"
},
"publishConfig": {
"access": "public"
diff --git a/packages/cubejs-jdbc-driver/CHANGELOG.md b/packages/cubejs-jdbc-driver/CHANGELOG.md
index c58bf180ead28..f49615aef94f5 100644
--- a/packages/cubejs-jdbc-driver/CHANGELOG.md
+++ b/packages/cubejs-jdbc-driver/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.5.10](https://github.com/cube-js/cube/compare/v1.5.9...v1.5.10) (2025-11-28)
+
+**Note:** Version bump only for package @cubejs-backend/jdbc-driver
+
## [1.5.9](https://github.com/cube-js/cube/compare/v1.5.8...v1.5.9) (2025-11-26)
**Note:** Version bump only for package @cubejs-backend/jdbc-driver
diff --git a/packages/cubejs-jdbc-driver/package.json b/packages/cubejs-jdbc-driver/package.json
index 2b228d3d8cada..cc8e1bee9a02f 100644
--- a/packages/cubejs-jdbc-driver/package.json
+++ b/packages/cubejs-jdbc-driver/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/jdbc-driver",
"description": "Cube.js JDBC database driver",
"author": "Cube Dev, Inc.",
- "version": "1.5.9",
+ "version": "1.5.10",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -25,9 +25,9 @@
"index.js"
],
"dependencies": {
- "@cubejs-backend/base-driver": "1.5.9",
+ "@cubejs-backend/base-driver": "1.5.10",
"@cubejs-backend/node-java-maven": "^0.1.3",
- "@cubejs-backend/shared": "1.5.9",
+ "@cubejs-backend/shared": "1.5.10",
"generic-pool": "^3.9.0",
"sqlstring": "^2.3.0"
},
@@ -43,7 +43,7 @@
"testEnvironment": "node"
},
"devDependencies": {
- "@cubejs-backend/linter": "1.5.9",
+ "@cubejs-backend/linter": "1.5.10",
"@types/node": "^20",
"@types/sqlstring": "^2.3.0",
"typescript": "~5.2.2"
diff --git a/packages/cubejs-ksql-driver/CHANGELOG.md b/packages/cubejs-ksql-driver/CHANGELOG.md
index 52caffcbb878e..ab04f7d1791b1 100644
--- a/packages/cubejs-ksql-driver/CHANGELOG.md
+++ b/packages/cubejs-ksql-driver/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.5.10](https://github.com/cube-js/cube/compare/v1.5.9...v1.5.10) (2025-11-28)
+
+**Note:** Version bump only for package @cubejs-backend/ksql-driver
+
## [1.5.9](https://github.com/cube-js/cube/compare/v1.5.8...v1.5.9) (2025-11-26)
**Note:** Version bump only for package @cubejs-backend/ksql-driver
diff --git a/packages/cubejs-ksql-driver/package.json b/packages/cubejs-ksql-driver/package.json
index 68d6e5b5b078f..5f0f9cb644fef 100644
--- a/packages/cubejs-ksql-driver/package.json
+++ b/packages/cubejs-ksql-driver/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/ksql-driver",
"description": "Cube.js ksql database driver",
"author": "Cube Dev, Inc.",
- "version": "1.5.9",
+ "version": "1.5.10",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -25,9 +25,9 @@
"lint:fix": "eslint --fix src/* --ext .ts"
},
"dependencies": {
- "@cubejs-backend/base-driver": "1.5.9",
- "@cubejs-backend/schema-compiler": "1.5.9",
- "@cubejs-backend/shared": "1.5.9",
+ "@cubejs-backend/base-driver": "1.5.10",
+ "@cubejs-backend/schema-compiler": "1.5.10",
+ "@cubejs-backend/shared": "1.5.10",
"async-mutex": "0.3.2",
"axios": "^1.8.3",
"kafkajs": "^2.2.3",
@@ -41,7 +41,7 @@
"extends": "../cubejs-linter"
},
"devDependencies": {
- "@cubejs-backend/linter": "1.5.9",
+ "@cubejs-backend/linter": "1.5.10",
"typescript": "~5.2.2"
}
}
diff --git a/packages/cubejs-linter/CHANGELOG.md b/packages/cubejs-linter/CHANGELOG.md
index 55e00a8e2aeb7..516722411f1ac 100644
--- a/packages/cubejs-linter/CHANGELOG.md
+++ b/packages/cubejs-linter/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.5.10](https://github.com/cube-js/cube/compare/v1.5.9...v1.5.10) (2025-11-28)
+
+**Note:** Version bump only for package @cubejs-backend/linter
+
## [1.5.9](https://github.com/cube-js/cube/compare/v1.5.8...v1.5.9) (2025-11-26)
**Note:** Version bump only for package @cubejs-backend/linter
diff --git a/packages/cubejs-linter/package.json b/packages/cubejs-linter/package.json
index 6b6dc514e109a..c4cab921878c1 100644
--- a/packages/cubejs-linter/package.json
+++ b/packages/cubejs-linter/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/linter",
"description": "Cube.js ESLint (virtual package) for linting code",
"author": "Cube Dev, Inc.",
- "version": "1.5.9",
+ "version": "1.5.10",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
diff --git a/packages/cubejs-materialize-driver/CHANGELOG.md b/packages/cubejs-materialize-driver/CHANGELOG.md
index 4265fddfabf87..3cbdb391413ef 100644
--- a/packages/cubejs-materialize-driver/CHANGELOG.md
+++ b/packages/cubejs-materialize-driver/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.5.10](https://github.com/cube-js/cube/compare/v1.5.9...v1.5.10) (2025-11-28)
+
+**Note:** Version bump only for package @cubejs-backend/materialize-driver
+
## [1.5.9](https://github.com/cube-js/cube/compare/v1.5.8...v1.5.9) (2025-11-26)
**Note:** Version bump only for package @cubejs-backend/materialize-driver
diff --git a/packages/cubejs-materialize-driver/package.json b/packages/cubejs-materialize-driver/package.json
index 0156a26a4fa2e..0e7a294fc2a62 100644
--- a/packages/cubejs-materialize-driver/package.json
+++ b/packages/cubejs-materialize-driver/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/materialize-driver",
"description": "Cube.js Materialize database driver",
"author": "Cube Dev, Inc.",
- "version": "1.5.9",
+ "version": "1.5.10",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -27,17 +27,17 @@
"lint:fix": "eslint --fix src/* --ext .ts"
},
"dependencies": {
- "@cubejs-backend/base-driver": "1.5.9",
- "@cubejs-backend/postgres-driver": "1.5.9",
- "@cubejs-backend/shared": "1.5.9",
+ "@cubejs-backend/base-driver": "1.5.10",
+ "@cubejs-backend/postgres-driver": "1.5.10",
+ "@cubejs-backend/shared": "1.5.10",
"@types/pg": "^8.6.0",
"pg": "^8.6.0",
"semver": "^7.6.3"
},
"license": "Apache-2.0",
"devDependencies": {
- "@cubejs-backend/linter": "1.5.9",
- "@cubejs-backend/testing": "1.5.9",
+ "@cubejs-backend/linter": "1.5.10",
+ "@cubejs-backend/testing": "1.5.10",
"typescript": "~5.2.2"
},
"publishConfig": {
diff --git a/packages/cubejs-mongobi-driver/CHANGELOG.md b/packages/cubejs-mongobi-driver/CHANGELOG.md
index 5c6725c7cb28b..be2ae5a1ebb66 100644
--- a/packages/cubejs-mongobi-driver/CHANGELOG.md
+++ b/packages/cubejs-mongobi-driver/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.5.10](https://github.com/cube-js/cube/compare/v1.5.9...v1.5.10) (2025-11-28)
+
+**Note:** Version bump only for package @cubejs-backend/mongobi-driver
+
## [1.5.9](https://github.com/cube-js/cube/compare/v1.5.8...v1.5.9) (2025-11-26)
**Note:** Version bump only for package @cubejs-backend/mongobi-driver
diff --git a/packages/cubejs-mongobi-driver/package.json b/packages/cubejs-mongobi-driver/package.json
index 5a2cf94952cce..8ac4ca8740fc4 100644
--- a/packages/cubejs-mongobi-driver/package.json
+++ b/packages/cubejs-mongobi-driver/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/mongobi-driver",
"description": "Cube.js MongoBI driver",
"author": "krunalsabnis@gmail.com",
- "version": "1.5.9",
+ "version": "1.5.10",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -27,8 +27,8 @@
"integration:mongobi": "jest dist/test"
},
"dependencies": {
- "@cubejs-backend/base-driver": "1.5.9",
- "@cubejs-backend/shared": "1.5.9",
+ "@cubejs-backend/base-driver": "1.5.10",
+ "@cubejs-backend/shared": "1.5.10",
"@types/node": "^20",
"generic-pool": "^3.9.0",
"moment": "^2.29.1",
@@ -39,7 +39,7 @@
"access": "public"
},
"devDependencies": {
- "@cubejs-backend/linter": "1.5.9",
+ "@cubejs-backend/linter": "1.5.10",
"testcontainers": "^10.28.0",
"typescript": "~5.2.2"
},
diff --git a/packages/cubejs-mssql-driver/CHANGELOG.md b/packages/cubejs-mssql-driver/CHANGELOG.md
index a732706e43136..38c47cdb7e76a 100644
--- a/packages/cubejs-mssql-driver/CHANGELOG.md
+++ b/packages/cubejs-mssql-driver/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.5.10](https://github.com/cube-js/cube/compare/v1.5.9...v1.5.10) (2025-11-28)
+
+**Note:** Version bump only for package @cubejs-backend/mssql-driver
+
## [1.5.9](https://github.com/cube-js/cube/compare/v1.5.8...v1.5.9) (2025-11-26)
**Note:** Version bump only for package @cubejs-backend/mssql-driver
diff --git a/packages/cubejs-mssql-driver/package.json b/packages/cubejs-mssql-driver/package.json
index a4484155d9b4c..dbbbe5b927794 100644
--- a/packages/cubejs-mssql-driver/package.json
+++ b/packages/cubejs-mssql-driver/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/mssql-driver",
"description": "Cube.js MS SQL database driver",
"author": "Cube Dev, Inc.",
- "version": "1.5.9",
+ "version": "1.5.10",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -25,8 +25,8 @@
"lint:fix": "eslint --fix src/* --ext .ts,.js"
},
"dependencies": {
- "@cubejs-backend/base-driver": "1.5.9",
- "@cubejs-backend/shared": "1.5.9",
+ "@cubejs-backend/base-driver": "1.5.10",
+ "@cubejs-backend/shared": "1.5.10",
"mssql": "^11.0.1"
},
"devDependencies": {
diff --git a/packages/cubejs-mysql-aurora-serverless-driver/CHANGELOG.md b/packages/cubejs-mysql-aurora-serverless-driver/CHANGELOG.md
index ff94223a662e3..77e04f48dec96 100644
--- a/packages/cubejs-mysql-aurora-serverless-driver/CHANGELOG.md
+++ b/packages/cubejs-mysql-aurora-serverless-driver/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.5.10](https://github.com/cube-js/cube/compare/v1.5.9...v1.5.10) (2025-11-28)
+
+**Note:** Version bump only for package @cubejs-backend/mysql-aurora-serverless-driver
+
## [1.5.9](https://github.com/cube-js/cube/compare/v1.5.8...v1.5.9) (2025-11-26)
**Note:** Version bump only for package @cubejs-backend/mysql-aurora-serverless-driver
diff --git a/packages/cubejs-mysql-aurora-serverless-driver/package.json b/packages/cubejs-mysql-aurora-serverless-driver/package.json
index 48b5e1b9a449b..0067370fbaaf3 100644
--- a/packages/cubejs-mysql-aurora-serverless-driver/package.json
+++ b/packages/cubejs-mysql-aurora-serverless-driver/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/mysql-aurora-serverless-driver",
"description": "Cube.js Aurora Serverless Mysql database driver",
"author": "Cube Dev, Inc.",
- "version": "1.5.9",
+ "version": "1.5.10",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -21,14 +21,14 @@
"lint": "eslint driver/*.js test/*.js"
},
"dependencies": {
- "@cubejs-backend/base-driver": "1.5.9",
- "@cubejs-backend/shared": "1.5.9",
+ "@cubejs-backend/base-driver": "1.5.10",
+ "@cubejs-backend/shared": "1.5.10",
"@types/mysql": "^2.15.15",
"aws-sdk": "^2.787.0",
"data-api-client": "^1.1.0"
},
"devDependencies": {
- "@cubejs-backend/linter": "1.5.9",
+ "@cubejs-backend/linter": "1.5.10",
"@types/data-api-client": "^1.2.1",
"@types/jest": "^29",
"jest": "^29",
diff --git a/packages/cubejs-mysql-driver/CHANGELOG.md b/packages/cubejs-mysql-driver/CHANGELOG.md
index 894869b152f8e..df4777cd0ce3f 100644
--- a/packages/cubejs-mysql-driver/CHANGELOG.md
+++ b/packages/cubejs-mysql-driver/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.5.10](https://github.com/cube-js/cube/compare/v1.5.9...v1.5.10) (2025-11-28)
+
+**Note:** Version bump only for package @cubejs-backend/mysql-driver
+
## [1.5.9](https://github.com/cube-js/cube/compare/v1.5.8...v1.5.9) (2025-11-26)
**Note:** Version bump only for package @cubejs-backend/mysql-driver
diff --git a/packages/cubejs-mysql-driver/package.json b/packages/cubejs-mysql-driver/package.json
index 0095bc80a913e..c07e4bd8d7adf 100644
--- a/packages/cubejs-mysql-driver/package.json
+++ b/packages/cubejs-mysql-driver/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/mysql-driver",
"description": "Cube.js Mysql database driver",
"author": "Cube Dev, Inc.",
- "version": "1.5.9",
+ "version": "1.5.10",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -27,14 +27,14 @@
"lint:fix": "eslint --fix src/* test/* --ext .ts,.js"
},
"dependencies": {
- "@cubejs-backend/base-driver": "1.5.9",
- "@cubejs-backend/shared": "1.5.9",
+ "@cubejs-backend/base-driver": "1.5.10",
+ "@cubejs-backend/shared": "1.5.10",
"generic-pool": "^3.9.0",
"mysql": "^2.18.1"
},
"devDependencies": {
- "@cubejs-backend/linter": "1.5.9",
- "@cubejs-backend/testing-shared": "1.5.9",
+ "@cubejs-backend/linter": "1.5.10",
+ "@cubejs-backend/testing-shared": "1.5.10",
"@types/jest": "^29",
"@types/mysql": "^2.15.21",
"jest": "^29",
diff --git a/packages/cubejs-oracle-driver/CHANGELOG.md b/packages/cubejs-oracle-driver/CHANGELOG.md
index 39986647f5cb6..c6867a225f17a 100644
--- a/packages/cubejs-oracle-driver/CHANGELOG.md
+++ b/packages/cubejs-oracle-driver/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.5.10](https://github.com/cube-js/cube/compare/v1.5.9...v1.5.10) (2025-11-28)
+
+**Note:** Version bump only for package @cubejs-backend/oracle-driver
+
## [1.5.9](https://github.com/cube-js/cube/compare/v1.5.8...v1.5.9) (2025-11-26)
**Note:** Version bump only for package @cubejs-backend/oracle-driver
diff --git a/packages/cubejs-oracle-driver/package.json b/packages/cubejs-oracle-driver/package.json
index 174bef04daa30..94c25d4eed7a3 100644
--- a/packages/cubejs-oracle-driver/package.json
+++ b/packages/cubejs-oracle-driver/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/oracle-driver",
"description": "Cube.js oracle database driver",
"author": "Cube Dev, Inc.",
- "version": "1.5.9",
+ "version": "1.5.10",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -13,7 +13,7 @@
},
"main": "driver/OracleDriver.js",
"dependencies": {
- "@cubejs-backend/base-driver": "1.5.9",
+ "@cubejs-backend/base-driver": "1.5.10",
"ramda": "^0.27.0"
},
"optionalDependencies": {
diff --git a/packages/cubejs-pinot-driver/CHANGELOG.md b/packages/cubejs-pinot-driver/CHANGELOG.md
index fdc672a8f7a0b..f348a292e8e57 100644
--- a/packages/cubejs-pinot-driver/CHANGELOG.md
+++ b/packages/cubejs-pinot-driver/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.5.10](https://github.com/cube-js/cube/compare/v1.5.9...v1.5.10) (2025-11-28)
+
+**Note:** Version bump only for package @cubejs-backend/pinot-driver
+
## [1.5.9](https://github.com/cube-js/cube/compare/v1.5.8...v1.5.9) (2025-11-26)
**Note:** Version bump only for package @cubejs-backend/pinot-driver
diff --git a/packages/cubejs-pinot-driver/package.json b/packages/cubejs-pinot-driver/package.json
index b5107e97c9649..d7e2b743d9d35 100644
--- a/packages/cubejs-pinot-driver/package.json
+++ b/packages/cubejs-pinot-driver/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/pinot-driver",
"description": "Cube.js Pinot database driver",
"author": "Julian Ronsse, InTheMemory, Cube Dev, Inc.",
- "version": "1.5.9",
+ "version": "1.5.10",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -27,9 +27,9 @@
"lint:fix": "eslint --fix src/* --ext .ts"
},
"dependencies": {
- "@cubejs-backend/base-driver": "1.5.9",
- "@cubejs-backend/schema-compiler": "1.5.9",
- "@cubejs-backend/shared": "1.5.9",
+ "@cubejs-backend/base-driver": "1.5.10",
+ "@cubejs-backend/schema-compiler": "1.5.10",
+ "@cubejs-backend/shared": "1.5.10",
"node-fetch": "^2.6.1",
"ramda": "^0.27.2",
"sqlstring": "^2.3.3"
@@ -39,7 +39,7 @@
"access": "public"
},
"devDependencies": {
- "@cubejs-backend/linter": "1.5.9",
+ "@cubejs-backend/linter": "1.5.10",
"@types/jest": "^29",
"jest": "^29",
"should": "^13.2.3",
diff --git a/packages/cubejs-playground/CHANGELOG.md b/packages/cubejs-playground/CHANGELOG.md
index 4a6704f7fb027..3c344234d44db 100644
--- a/packages/cubejs-playground/CHANGELOG.md
+++ b/packages/cubejs-playground/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.5.10](https://github.com/cube-js/cube/compare/v1.5.9...v1.5.10) (2025-11-28)
+
+**Note:** Version bump only for package @cubejs-client/playground
+
## [1.5.9](https://github.com/cube-js/cube/compare/v1.5.8...v1.5.9) (2025-11-26)
**Note:** Version bump only for package @cubejs-client/playground
diff --git a/packages/cubejs-playground/package.json b/packages/cubejs-playground/package.json
index 4732ea833d92f..0e92d12efb61a 100644
--- a/packages/cubejs-playground/package.json
+++ b/packages/cubejs-playground/package.json
@@ -1,7 +1,7 @@
{
"name": "@cubejs-client/playground",
"author": "Cube Dev, Inc.",
- "version": "1.5.9",
+ "version": "1.5.10",
"engines": {},
"repository": {
"type": "git",
@@ -69,8 +69,8 @@
"@ant-design/compatible": "^1.0.1",
"@ant-design/icons": "^5.3.5",
"@cube-dev/ui-kit": "0.52.3",
- "@cubejs-client/core": "1.5.9",
- "@cubejs-client/react": "1.5.9",
+ "@cubejs-client/core": "1.5.10",
+ "@cubejs-client/react": "1.5.10",
"@types/flexsearch": "^0.7.3",
"@types/node": "^20",
"@types/react": "^18.3.4",
diff --git a/packages/cubejs-postgres-driver/CHANGELOG.md b/packages/cubejs-postgres-driver/CHANGELOG.md
index 9b25b6bcfc4c1..375bb0ce4dce7 100644
--- a/packages/cubejs-postgres-driver/CHANGELOG.md
+++ b/packages/cubejs-postgres-driver/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.5.10](https://github.com/cube-js/cube/compare/v1.5.9...v1.5.10) (2025-11-28)
+
+**Note:** Version bump only for package @cubejs-backend/postgres-driver
+
## [1.5.9](https://github.com/cube-js/cube/compare/v1.5.8...v1.5.9) (2025-11-26)
**Note:** Version bump only for package @cubejs-backend/postgres-driver
diff --git a/packages/cubejs-postgres-driver/package.json b/packages/cubejs-postgres-driver/package.json
index d51ee131693b2..d75e2183bbcf9 100644
--- a/packages/cubejs-postgres-driver/package.json
+++ b/packages/cubejs-postgres-driver/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/postgres-driver",
"description": "Cube.js Postgres database driver",
"author": "Cube Dev, Inc.",
- "version": "1.5.9",
+ "version": "1.5.10",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -27,8 +27,8 @@
"lint:fix": "eslint --fix src/* --ext .ts"
},
"dependencies": {
- "@cubejs-backend/base-driver": "1.5.9",
- "@cubejs-backend/shared": "1.5.9",
+ "@cubejs-backend/base-driver": "1.5.10",
+ "@cubejs-backend/shared": "1.5.10",
"@types/pg": "^8.6.0",
"@types/pg-query-stream": "^1.0.3",
"moment": "^2.24.0",
@@ -37,8 +37,8 @@
},
"license": "Apache-2.0",
"devDependencies": {
- "@cubejs-backend/linter": "1.5.9",
- "@cubejs-backend/testing-shared": "1.5.9",
+ "@cubejs-backend/linter": "1.5.10",
+ "@cubejs-backend/testing-shared": "1.5.10",
"testcontainers": "^10.28.0",
"typescript": "~5.2.2"
},
diff --git a/packages/cubejs-prestodb-driver/CHANGELOG.md b/packages/cubejs-prestodb-driver/CHANGELOG.md
index 13b4ca5ca87c2..fef38b807b5a2 100644
--- a/packages/cubejs-prestodb-driver/CHANGELOG.md
+++ b/packages/cubejs-prestodb-driver/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.5.10](https://github.com/cube-js/cube/compare/v1.5.9...v1.5.10) (2025-11-28)
+
+**Note:** Version bump only for package @cubejs-backend/prestodb-driver
+
## [1.5.9](https://github.com/cube-js/cube/compare/v1.5.8...v1.5.9) (2025-11-26)
**Note:** Version bump only for package @cubejs-backend/prestodb-driver
diff --git a/packages/cubejs-prestodb-driver/package.json b/packages/cubejs-prestodb-driver/package.json
index 85fdce9181653..87fed6b1d4037 100644
--- a/packages/cubejs-prestodb-driver/package.json
+++ b/packages/cubejs-prestodb-driver/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/prestodb-driver",
"description": "Cube.js Presto database driver",
"author": "Cube Dev, Inc.",
- "version": "1.5.9",
+ "version": "1.5.10",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -27,8 +27,8 @@
"lint:fix": "eslint --fix src/* --ext .ts"
},
"dependencies": {
- "@cubejs-backend/base-driver": "1.5.9",
- "@cubejs-backend/shared": "1.5.9",
+ "@cubejs-backend/base-driver": "1.5.10",
+ "@cubejs-backend/shared": "1.5.10",
"presto-client": "^1.1.0",
"ramda": "^0.27.0",
"sqlstring": "^2.3.1"
@@ -38,7 +38,7 @@
"access": "public"
},
"devDependencies": {
- "@cubejs-backend/linter": "1.5.9",
+ "@cubejs-backend/linter": "1.5.10",
"@types/jest": "^29",
"jest": "^29",
"should": "^13.2.3",
diff --git a/packages/cubejs-query-orchestrator/CHANGELOG.md b/packages/cubejs-query-orchestrator/CHANGELOG.md
index d31bc1437d96d..20dd1696ce90e 100644
--- a/packages/cubejs-query-orchestrator/CHANGELOG.md
+++ b/packages/cubejs-query-orchestrator/CHANGELOG.md
@@ -3,6 +3,12 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.5.10](https://github.com/cube-js/cube/compare/v1.5.9...v1.5.10) (2025-11-28)
+
+### Bug Fixes
+
+- **query-orchestrator:** Table used cache should not be used for unions ([#10192](https://github.com/cube-js/cube/issues/10192)) ([53d79bb](https://github.com/cube-js/cube/commit/53d79bbfd16aeefadb3bd8e0a73a5c0b5e920da4))
+
## [1.5.9](https://github.com/cube-js/cube/compare/v1.5.8...v1.5.9) (2025-11-26)
**Note:** Version bump only for package @cubejs-backend/query-orchestrator
diff --git a/packages/cubejs-query-orchestrator/package.json b/packages/cubejs-query-orchestrator/package.json
index ad78c44056f2f..ff501fb4cabc1 100644
--- a/packages/cubejs-query-orchestrator/package.json
+++ b/packages/cubejs-query-orchestrator/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/query-orchestrator",
"description": "Cube.js Query Orchestrator and Cache",
"author": "Cube Dev, Inc.",
- "version": "1.5.9",
+ "version": "1.5.10",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -29,15 +29,15 @@
"dist/src/*"
],
"dependencies": {
- "@cubejs-backend/base-driver": "1.5.9",
- "@cubejs-backend/cubestore-driver": "1.5.9",
- "@cubejs-backend/shared": "1.5.9",
+ "@cubejs-backend/base-driver": "1.5.10",
+ "@cubejs-backend/cubestore-driver": "1.5.10",
+ "@cubejs-backend/shared": "1.5.10",
"csv-write-stream": "^2.0.0",
"lru-cache": "^11.1.0",
"ramda": "^0.27.2"
},
"devDependencies": {
- "@cubejs-backend/linter": "1.5.9",
+ "@cubejs-backend/linter": "1.5.10",
"@types/jest": "^29",
"@types/node": "^20",
"@types/ramda": "^0.27.32",
diff --git a/packages/cubejs-questdb-driver/CHANGELOG.md b/packages/cubejs-questdb-driver/CHANGELOG.md
index 21d6cdded8bb5..84b7607d6dba3 100644
--- a/packages/cubejs-questdb-driver/CHANGELOG.md
+++ b/packages/cubejs-questdb-driver/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.5.10](https://github.com/cube-js/cube/compare/v1.5.9...v1.5.10) (2025-11-28)
+
+**Note:** Version bump only for package @cubejs-backend/questdb-driver
+
## [1.5.9](https://github.com/cube-js/cube/compare/v1.5.8...v1.5.9) (2025-11-26)
**Note:** Version bump only for package @cubejs-backend/questdb-driver
diff --git a/packages/cubejs-questdb-driver/package.json b/packages/cubejs-questdb-driver/package.json
index ae6d95660433a..156de665d0f33 100644
--- a/packages/cubejs-questdb-driver/package.json
+++ b/packages/cubejs-questdb-driver/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/questdb-driver",
"description": "Cube.js QuestDB database driver",
"author": "Cube Dev, Inc.",
- "version": "1.5.9",
+ "version": "1.5.10",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -27,9 +27,9 @@
"lint:fix": "eslint --fix src/* --ext .ts"
},
"dependencies": {
- "@cubejs-backend/base-driver": "1.5.9",
- "@cubejs-backend/schema-compiler": "1.5.9",
- "@cubejs-backend/shared": "1.5.9",
+ "@cubejs-backend/base-driver": "1.5.10",
+ "@cubejs-backend/schema-compiler": "1.5.10",
+ "@cubejs-backend/shared": "1.5.10",
"@types/pg": "^8.6.0",
"moment": "^2.24.0",
"pg": "^8.7.0",
@@ -37,8 +37,8 @@
},
"license": "Apache-2.0",
"devDependencies": {
- "@cubejs-backend/linter": "1.5.9",
- "@cubejs-backend/testing-shared": "1.5.9",
+ "@cubejs-backend/linter": "1.5.10",
+ "@cubejs-backend/testing-shared": "1.5.10",
"testcontainers": "^10.28.0",
"typescript": "~5.2.2"
},
diff --git a/packages/cubejs-redshift-driver/CHANGELOG.md b/packages/cubejs-redshift-driver/CHANGELOG.md
index 389ab59edb194..6ea6fd18a2970 100644
--- a/packages/cubejs-redshift-driver/CHANGELOG.md
+++ b/packages/cubejs-redshift-driver/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.5.10](https://github.com/cube-js/cube/compare/v1.5.9...v1.5.10) (2025-11-28)
+
+**Note:** Version bump only for package @cubejs-backend/redshift-driver
+
## [1.5.9](https://github.com/cube-js/cube/compare/v1.5.8...v1.5.9) (2025-11-26)
**Note:** Version bump only for package @cubejs-backend/redshift-driver
diff --git a/packages/cubejs-redshift-driver/package.json b/packages/cubejs-redshift-driver/package.json
index 11284bc5cc4d8..218b2f79d1dd6 100644
--- a/packages/cubejs-redshift-driver/package.json
+++ b/packages/cubejs-redshift-driver/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/redshift-driver",
"description": "Cube.js Redshift database driver",
"author": "Cube Dev, Inc.",
- "version": "1.5.9",
+ "version": "1.5.10",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -25,13 +25,13 @@
"lint:fix": "eslint --fix src/* --ext .ts"
},
"dependencies": {
- "@cubejs-backend/base-driver": "1.5.9",
- "@cubejs-backend/postgres-driver": "1.5.9",
- "@cubejs-backend/shared": "1.5.9"
+ "@cubejs-backend/base-driver": "1.5.10",
+ "@cubejs-backend/postgres-driver": "1.5.10",
+ "@cubejs-backend/shared": "1.5.10"
},
"license": "Apache-2.0",
"devDependencies": {
- "@cubejs-backend/linter": "1.5.9",
+ "@cubejs-backend/linter": "1.5.10",
"typescript": "~5.2.2"
},
"publishConfig": {
diff --git a/packages/cubejs-schema-compiler/CHANGELOG.md b/packages/cubejs-schema-compiler/CHANGELOG.md
index 1cc86d98a801f..30d775ac14ff8 100644
--- a/packages/cubejs-schema-compiler/CHANGELOG.md
+++ b/packages/cubejs-schema-compiler/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.5.10](https://github.com/cube-js/cube/compare/v1.5.9...v1.5.10) (2025-11-28)
+
+**Note:** Version bump only for package @cubejs-backend/schema-compiler
+
## [1.5.9](https://github.com/cube-js/cube/compare/v1.5.8...v1.5.9) (2025-11-26)
**Note:** Version bump only for package @cubejs-backend/schema-compiler
diff --git a/packages/cubejs-schema-compiler/package.json b/packages/cubejs-schema-compiler/package.json
index 2818bdd6f412d..a8d1c2fd1340f 100644
--- a/packages/cubejs-schema-compiler/package.json
+++ b/packages/cubejs-schema-compiler/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/schema-compiler",
"description": "Cube schema compiler",
"author": "Cube Dev, Inc.",
- "version": "1.5.9",
+ "version": "1.5.10",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -40,8 +40,8 @@
"@babel/standalone": "^7.24",
"@babel/traverse": "^7.24",
"@babel/types": "^7.24",
- "@cubejs-backend/native": "1.5.9",
- "@cubejs-backend/shared": "1.5.9",
+ "@cubejs-backend/native": "1.5.10",
+ "@cubejs-backend/shared": "1.5.10",
"antlr4": "^4.13.2",
"camelcase": "^6.2.0",
"cron-parser": "^4.9.0",
@@ -60,8 +60,8 @@
},
"devDependencies": {
"@clickhouse/client": "^1.12.0",
- "@cubejs-backend/linter": "1.5.9",
- "@cubejs-backend/query-orchestrator": "1.5.9",
+ "@cubejs-backend/linter": "1.5.10",
+ "@cubejs-backend/query-orchestrator": "1.5.10",
"@types/babel__code-frame": "^7.0.6",
"@types/babel__generator": "^7.6.8",
"@types/babel__traverse": "^7.20.5",
diff --git a/packages/cubejs-schema-compiler/src/compiler/DataSchemaCompiler.ts b/packages/cubejs-schema-compiler/src/compiler/DataSchemaCompiler.ts
index 83fc686ce9bdc..40267faa84a57 100644
--- a/packages/cubejs-schema-compiler/src/compiler/DataSchemaCompiler.ts
+++ b/packages/cubejs-schema-compiler/src/compiler/DataSchemaCompiler.ts
@@ -5,9 +5,6 @@ import fs from 'fs';
import os from 'os';
import path from 'path';
import syntaxCheck from 'syntax-error';
-import { parse } from '@babel/parser';
-import babelGenerator from '@babel/generator';
-import babelTraverse from '@babel/traverse';
import R from 'ramda';
import workerpool from 'workerpool';
import { LRUCache } from 'lru-cache';
@@ -275,12 +272,11 @@ export class DataSchemaCompiler {
const errorsReport = new ErrorReporter(null, [], this.errorReportOptions);
this.errorsReporter = errorsReport;
- const transpilationWorkerThreads = getEnv('transpilationWorkerThreads');
const transpilationNative = getEnv('transpilationNative');
const transpilationNativeThreadsCount = getThreadsCount();
const { compilerId } = this;
- if (transpilationWorkerThreads) {
+ if (!transpilationNative) {
const wc = getEnv('transpilationWorkerThreadsCount');
this.workerPool = workerpool.pool(
path.join(__dirname, 'transpilers/transpiler_worker'),
@@ -292,11 +288,10 @@ export class DataSchemaCompiler {
let cubeNames: string[] = [];
let cubeSymbols: Record> = {};
let transpilerNames: string[] = [];
- let results: (FileContent | undefined)[];
- if (transpilationNative || transpilationWorkerThreads) {
- ({ cubeNames, cubeSymbols, transpilerNames } = this.prepareTranspileSymbols());
- }
+ ({ cubeNames, cubeSymbols, transpilerNames } = this.prepareTranspileSymbols());
+
+ let results: (FileContent | undefined)[];
if (transpilationNative) {
const jsFiles = originalJsFiles;
@@ -325,28 +320,25 @@ export class DataSchemaCompiler {
.map(f => this.transpileJinjaFile(f, errorsReport, { cubeNames, cubeSymbols, transpilerNames }));
results = (await Promise.all([...jsFilesTasks, ...yamlFilesTasks, ...jinjaFilesTasks])).flat();
- } else if (transpilationWorkerThreads) {
- results = await Promise.all(toCompile.map(f => this.transpileFile(f, errorsReport, { cubeNames, cubeSymbols, transpilerNames })));
} else {
- results = await Promise.all(toCompile.map(f => this.transpileFile(f, errorsReport, {})));
+ results = await Promise.all(toCompile.map(f => this.transpileFile(f, errorsReport, { cubeNames, cubeSymbols, transpilerNames })));
}
return results.filter(f => !!f) as FileContent[];
};
const transpilePhase = async (stage: CompileStage): Promise => {
- let cubeNames: string[] = [];
- let cubeSymbols: Record> = {};
- let transpilerNames: string[] = [];
let results: (FileContent | undefined)[];
if (toCompile.length === 0) {
return [];
}
- if (transpilationNative || transpilationWorkerThreads) {
- ({ cubeNames, cubeSymbols, transpilerNames } = this.prepareTranspileSymbols());
- }
+ let cubeNames: string[] = [];
+ let cubeSymbols: Record> = {};
+ let transpilerNames: string[] = [];
+
+ ({ cubeNames, cubeSymbols, transpilerNames } = this.prepareTranspileSymbols());
// After the first phase all files are with JS source code: original or transpiled
@@ -363,10 +355,8 @@ export class DataSchemaCompiler {
const jsFilesTasks = jsChunks.map(chunk => this.transpileJsFilesNativeBulk(chunk, errorsReport, { transpilerNames, compilerId }));
results = (await Promise.all(jsFilesTasks)).flat();
- } else if (transpilationWorkerThreads) {
- results = await Promise.all(toCompile.map(f => this.transpileJsFile(f, errorsReport, { cubeNames, cubeSymbols, transpilerNames })));
} else {
- results = await Promise.all(toCompile.map(f => this.transpileJsFile(f, errorsReport, {})));
+ results = await Promise.all(toCompile.map(f => this.transpileJsFile(f, errorsReport, { cubeNames, cubeSymbols, transpilerNames })));
}
return results.filter(f => !!f) as FileContent[];
@@ -520,7 +510,7 @@ export class DataSchemaCompiler {
errorsReport,
{ cubeNames: [], cubeSymbols: {}, transpilerNames: [], contextSymbols: {}, compilerId: this.compilerId, stage: 0 }
).then(() => undefined);
- } else if (transpilationWorkerThreads && this.workerPool) {
+ } else if (this.workerPool) {
this.workerPool.terminate();
}
});
@@ -701,7 +691,7 @@ export class DataSchemaCompiler {
errorsReport.exitFile();
return { ...file, content: res[0].code };
- } else if (getEnv('transpilationWorkerThreads')) {
+ } else {
const data = {
fileName: file.fileName,
content: file.content,
@@ -715,25 +705,6 @@ export class DataSchemaCompiler {
errorsReport.addWarnings(res.warnings);
return { ...file, content: res.content };
- } else {
- const ast = parse(
- file.content,
- {
- sourceFilename: file.fileName,
- sourceType: 'module',
- plugins: ['objectRestSpread'],
- },
- );
-
- errorsReport.inFile(file);
- this.transpilers.forEach((t) => {
- babelTraverse(ast, t.traverseObject(errorsReport));
- });
- errorsReport.exitFile();
-
- const content = babelGenerator(ast, {}, file.content).code;
-
- return { ...file, content };
}
} catch (e: any) {
if (e.toString().indexOf('SyntaxError') !== -1) {
@@ -778,7 +749,7 @@ export class DataSchemaCompiler {
this.compiledYamlCache.set(cacheKey, res[0].code);
return { ...file, content: res[0].code };
- } else if (getEnv('transpilationWorkerThreads')) {
+ } else {
const data = {
fileName: file.fileName,
content: file.content,
@@ -794,12 +765,6 @@ export class DataSchemaCompiler {
this.compiledYamlCache.set(cacheKey, res.content);
return { ...file, content: res.content };
- } else {
- const transpiledFile = this.yamlCompiler.transpileYamlFile(file, errorsReport);
-
- this.compiledYamlCache.set(cacheKey, transpiledFile?.content || '');
-
- return transpiledFile;
}
}
diff --git a/packages/cubejs-server-core/CHANGELOG.md b/packages/cubejs-server-core/CHANGELOG.md
index e2f63c5e2094e..569a69e557354 100644
--- a/packages/cubejs-server-core/CHANGELOG.md
+++ b/packages/cubejs-server-core/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.5.10](https://github.com/cube-js/cube/compare/v1.5.9...v1.5.10) (2025-11-28)
+
+**Note:** Version bump only for package @cubejs-backend/server-core
+
## [1.5.9](https://github.com/cube-js/cube/compare/v1.5.8...v1.5.9) (2025-11-26)
**Note:** Version bump only for package @cubejs-backend/server-core
diff --git a/packages/cubejs-server-core/package.json b/packages/cubejs-server-core/package.json
index fc20acf976025..7358659357c15 100644
--- a/packages/cubejs-server-core/package.json
+++ b/packages/cubejs-server-core/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/server-core",
"description": "Cube.js base component to wire all backend components together",
"author": "Cube Dev, Inc.",
- "version": "1.5.9",
+ "version": "1.5.10",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -29,16 +29,16 @@
"unit": "jest --runInBand --forceExit --coverage dist/test"
},
"dependencies": {
- "@cubejs-backend/api-gateway": "1.5.9",
- "@cubejs-backend/base-driver": "1.5.9",
- "@cubejs-backend/cloud": "1.5.9",
- "@cubejs-backend/cubestore-driver": "1.5.9",
+ "@cubejs-backend/api-gateway": "1.5.10",
+ "@cubejs-backend/base-driver": "1.5.10",
+ "@cubejs-backend/cloud": "1.5.10",
+ "@cubejs-backend/cubestore-driver": "1.5.10",
"@cubejs-backend/dotenv": "^9.0.2",
- "@cubejs-backend/native": "1.5.9",
- "@cubejs-backend/query-orchestrator": "1.5.9",
- "@cubejs-backend/schema-compiler": "1.5.9",
- "@cubejs-backend/shared": "1.5.9",
- "@cubejs-backend/templates": "1.5.9",
+ "@cubejs-backend/native": "1.5.10",
+ "@cubejs-backend/query-orchestrator": "1.5.10",
+ "@cubejs-backend/schema-compiler": "1.5.10",
+ "@cubejs-backend/shared": "1.5.10",
+ "@cubejs-backend/templates": "1.5.10",
"codesandbox-import-utils": "^2.1.12",
"cross-spawn": "^7.0.1",
"fs-extra": "^8.1.0",
@@ -62,8 +62,8 @@
"ws": "^7.5.3"
},
"devDependencies": {
- "@cubejs-backend/linter": "1.5.9",
- "@cubejs-client/playground": "1.5.9",
+ "@cubejs-backend/linter": "1.5.10",
+ "@cubejs-client/playground": "1.5.10",
"@types/cross-spawn": "^6.0.2",
"@types/express": "^4.17.21",
"@types/fs-extra": "^9.0.8",
diff --git a/packages/cubejs-server/CHANGELOG.md b/packages/cubejs-server/CHANGELOG.md
index 0c2664fc9e4e0..9edf78dbe123d 100644
--- a/packages/cubejs-server/CHANGELOG.md
+++ b/packages/cubejs-server/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.5.10](https://github.com/cube-js/cube/compare/v1.5.9...v1.5.10) (2025-11-28)
+
+**Note:** Version bump only for package @cubejs-backend/server
+
## [1.5.9](https://github.com/cube-js/cube/compare/v1.5.8...v1.5.9) (2025-11-26)
**Note:** Version bump only for package @cubejs-backend/server
diff --git a/packages/cubejs-server/package.json b/packages/cubejs-server/package.json
index 1341ef47b8287..ac73e3e053fe6 100644
--- a/packages/cubejs-server/package.json
+++ b/packages/cubejs-server/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/server",
"description": "Cube.js all-in-one server",
"author": "Cube Dev, Inc.",
- "version": "1.5.9",
+ "version": "1.5.10",
"types": "index.d.ts",
"repository": {
"type": "git",
@@ -40,11 +40,11 @@
"jest:shapshot": "jest --updateSnapshot test"
},
"dependencies": {
- "@cubejs-backend/cubestore-driver": "1.5.9",
+ "@cubejs-backend/cubestore-driver": "1.5.10",
"@cubejs-backend/dotenv": "^9.0.2",
- "@cubejs-backend/native": "1.5.9",
- "@cubejs-backend/server-core": "1.5.9",
- "@cubejs-backend/shared": "1.5.9",
+ "@cubejs-backend/native": "1.5.10",
+ "@cubejs-backend/server-core": "1.5.10",
+ "@cubejs-backend/shared": "1.5.10",
"@oclif/color": "^1.0.0",
"@oclif/command": "^1.8.13",
"@oclif/config": "^1.18.2",
@@ -61,8 +61,8 @@
"ws": "^7.1.2"
},
"devDependencies": {
- "@cubejs-backend/linter": "1.5.9",
- "@cubejs-backend/query-orchestrator": "1.5.9",
+ "@cubejs-backend/linter": "1.5.10",
+ "@cubejs-backend/query-orchestrator": "1.5.10",
"@oclif/dev-cli": "^1.23.1",
"@types/body-parser": "^1.19.0",
"@types/cors": "^2.8.8",
diff --git a/packages/cubejs-snowflake-driver/CHANGELOG.md b/packages/cubejs-snowflake-driver/CHANGELOG.md
index f891702203437..2694778b8fd7e 100644
--- a/packages/cubejs-snowflake-driver/CHANGELOG.md
+++ b/packages/cubejs-snowflake-driver/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.5.10](https://github.com/cube-js/cube/compare/v1.5.9...v1.5.10) (2025-11-28)
+
+**Note:** Version bump only for package @cubejs-backend/snowflake-driver
+
## [1.5.9](https://github.com/cube-js/cube/compare/v1.5.8...v1.5.9) (2025-11-26)
**Note:** Version bump only for package @cubejs-backend/snowflake-driver
diff --git a/packages/cubejs-snowflake-driver/package.json b/packages/cubejs-snowflake-driver/package.json
index 13d2eccd58f21..522918fc6c9e7 100644
--- a/packages/cubejs-snowflake-driver/package.json
+++ b/packages/cubejs-snowflake-driver/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/snowflake-driver",
"description": "Cube.js Snowflake database driver",
"author": "Cube Dev, Inc.",
- "version": "1.5.9",
+ "version": "1.5.10",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -26,8 +26,8 @@
},
"dependencies": {
"@aws-sdk/client-s3": "^3.726.0",
- "@cubejs-backend/base-driver": "1.5.9",
- "@cubejs-backend/shared": "1.5.9",
+ "@cubejs-backend/base-driver": "1.5.10",
+ "@cubejs-backend/shared": "1.5.10",
"date-fns-timezone": "^0.1.4",
"snowflake-sdk": "^2.2.0"
},
@@ -39,7 +39,7 @@
"extends": "../cubejs-linter"
},
"devDependencies": {
- "@cubejs-backend/linter": "1.5.9",
+ "@cubejs-backend/linter": "1.5.10",
"typescript": "~5.2.2"
}
}
diff --git a/packages/cubejs-sqlite-driver/CHANGELOG.md b/packages/cubejs-sqlite-driver/CHANGELOG.md
index 0568612ed1e80..77986d1f31fea 100644
--- a/packages/cubejs-sqlite-driver/CHANGELOG.md
+++ b/packages/cubejs-sqlite-driver/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.5.10](https://github.com/cube-js/cube/compare/v1.5.9...v1.5.10) (2025-11-28)
+
+**Note:** Version bump only for package @cubejs-backend/sqlite-driver
+
## [1.5.9](https://github.com/cube-js/cube/compare/v1.5.8...v1.5.9) (2025-11-26)
**Note:** Version bump only for package @cubejs-backend/sqlite-driver
diff --git a/packages/cubejs-sqlite-driver/package.json b/packages/cubejs-sqlite-driver/package.json
index 04eb75fdc47c0..3482303041c6f 100644
--- a/packages/cubejs-sqlite-driver/package.json
+++ b/packages/cubejs-sqlite-driver/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/sqlite-driver",
"description": "Cube.js Sqlite database driver",
"author": "Cube Dev, Inc.",
- "version": "1.5.9",
+ "version": "1.5.10",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -18,13 +18,13 @@
"unit": "jest"
},
"dependencies": {
- "@cubejs-backend/base-driver": "1.5.9",
- "@cubejs-backend/shared": "1.5.9",
+ "@cubejs-backend/base-driver": "1.5.10",
+ "@cubejs-backend/shared": "1.5.10",
"sqlite3": "^5.1.7"
},
"license": "Apache-2.0",
"devDependencies": {
- "@cubejs-backend/linter": "1.5.9",
+ "@cubejs-backend/linter": "1.5.10",
"jest": "^29"
},
"publishConfig": {
diff --git a/packages/cubejs-templates/CHANGELOG.md b/packages/cubejs-templates/CHANGELOG.md
index c18e44fd062ca..f488c695b081f 100644
--- a/packages/cubejs-templates/CHANGELOG.md
+++ b/packages/cubejs-templates/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.5.10](https://github.com/cube-js/cube/compare/v1.5.9...v1.5.10) (2025-11-28)
+
+**Note:** Version bump only for package @cubejs-backend/templates
+
## [1.5.9](https://github.com/cube-js/cube/compare/v1.5.8...v1.5.9) (2025-11-26)
**Note:** Version bump only for package @cubejs-backend/templates
diff --git a/packages/cubejs-templates/package.json b/packages/cubejs-templates/package.json
index c4c352fbf7631..c9c9f9a34a472 100644
--- a/packages/cubejs-templates/package.json
+++ b/packages/cubejs-templates/package.json
@@ -1,6 +1,6 @@
{
"name": "@cubejs-backend/templates",
- "version": "1.5.9",
+ "version": "1.5.10",
"description": "Cube.js Templates helpers",
"author": "Cube Dev, Inc.",
"license": "Apache-2.0",
@@ -26,7 +26,7 @@
"extends": "../cubejs-linter"
},
"dependencies": {
- "@cubejs-backend/shared": "1.5.9",
+ "@cubejs-backend/shared": "1.5.10",
"cross-spawn": "^7.0.3",
"decompress": "^4.2.1",
"decompress-targz": "^4.1.1",
@@ -36,7 +36,7 @@
"source-map-support": "^0.5.19"
},
"devDependencies": {
- "@cubejs-backend/linter": "1.5.9",
+ "@cubejs-backend/linter": "1.5.10",
"typescript": "~5.2.2"
}
}
diff --git a/packages/cubejs-testing-drivers/CHANGELOG.md b/packages/cubejs-testing-drivers/CHANGELOG.md
index 28667d0148524..042d8d9316d63 100644
--- a/packages/cubejs-testing-drivers/CHANGELOG.md
+++ b/packages/cubejs-testing-drivers/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.5.10](https://github.com/cube-js/cube/compare/v1.5.9...v1.5.10) (2025-11-28)
+
+**Note:** Version bump only for package @cubejs-backend/testing-drivers
+
## [1.5.9](https://github.com/cube-js/cube/compare/v1.5.8...v1.5.9) (2025-11-26)
**Note:** Version bump only for package @cubejs-backend/testing-drivers
diff --git a/packages/cubejs-testing-drivers/fixtures/athena.json b/packages/cubejs-testing-drivers/fixtures/athena.json
index 988029d607cbd..271213ac1e52f 100644
--- a/packages/cubejs-testing-drivers/fixtures/athena.json
+++ b/packages/cubejs-testing-drivers/fixtures/athena.json
@@ -17,7 +17,6 @@
"CUBEJS_SQL_PASSWORD": "admin_password",
"CUBESQL_SQL_PUSH_DOWN": "true",
"CUBEJS_TESSERACT_SQL_PLANNER": "${DRIVERS_TESTS_CUBEJS_TESSERACT_SQL_PLANNER}",
- "CUBEJS_TRANSPILATION_WORKER_THREADS": "${DRIVERS_TESTS_CUBEJS_TRANSPILATION_WORKER_THREADS}",
"CUBEJS_TRANSPILATION_NATIVE": "${DRIVERS_TESTS_CUBEJS_TRANSPILATION_NATIVE}"
},
"ports" : ["4000", "5656"]
diff --git a/packages/cubejs-testing-drivers/fixtures/bigquery.json b/packages/cubejs-testing-drivers/fixtures/bigquery.json
index 3f628e10bdda0..5627d85fb3204 100644
--- a/packages/cubejs-testing-drivers/fixtures/bigquery.json
+++ b/packages/cubejs-testing-drivers/fixtures/bigquery.json
@@ -19,7 +19,6 @@
"CUBEJS_DB_EXPORT_BUCKET": "cube-open-source-export-bucket",
"CUBEJS_DB_EXPORT_BUCKET_TYPE": "gcp",
"CUBEJS_TESSERACT_SQL_PLANNER": "${DRIVERS_TESTS_CUBEJS_TESSERACT_SQL_PLANNER}",
- "CUBEJS_TRANSPILATION_WORKER_THREADS": "${DRIVERS_TESTS_CUBEJS_TRANSPILATION_WORKER_THREADS}",
"CUBEJS_TRANSPILATION_NATIVE": "${DRIVERS_TESTS_CUBEJS_TRANSPILATION_NATIVE}"
},
"ports" : ["4000", "5656"]
diff --git a/packages/cubejs-testing-drivers/fixtures/clickhouse.json b/packages/cubejs-testing-drivers/fixtures/clickhouse.json
index 7649744f2d5e8..0577f89943acb 100644
--- a/packages/cubejs-testing-drivers/fixtures/clickhouse.json
+++ b/packages/cubejs-testing-drivers/fixtures/clickhouse.json
@@ -38,7 +38,6 @@
"CUBEJS_SQL_PASSWORD": "admin_password",
"CUBESQL_SQL_PUSH_DOWN": "true",
"CUBEJS_TESSERACT_SQL_PLANNER": "${DRIVERS_TESTS_CUBEJS_TESSERACT_SQL_PLANNER}",
- "CUBEJS_TRANSPILATION_WORKER_THREADS": "${DRIVERS_TESTS_CUBEJS_TRANSPILATION_WORKER_THREADS}",
"CUBEJS_TRANSPILATION_NATIVE": "${DRIVERS_TESTS_CUBEJS_TRANSPILATION_NATIVE}"
},
"depends_on": ["data"],
diff --git a/packages/cubejs-testing-drivers/fixtures/databricks-jdbc.json b/packages/cubejs-testing-drivers/fixtures/databricks-jdbc.json
index 891f07703c780..5cdd16f7e6b90 100644
--- a/packages/cubejs-testing-drivers/fixtures/databricks-jdbc.json
+++ b/packages/cubejs-testing-drivers/fixtures/databricks-jdbc.json
@@ -79,7 +79,6 @@
"CUBEJS_SQL_PASSWORD": "admin_password",
"CUBESQL_SQL_PUSH_DOWN": "true",
"CUBEJS_TESSERACT_SQL_PLANNER": "${DRIVERS_TESTS_CUBEJS_TESSERACT_SQL_PLANNER}",
- "CUBEJS_TRANSPILATION_WORKER_THREADS": "${DRIVERS_TESTS_CUBEJS_TRANSPILATION_WORKER_THREADS}",
"CUBEJS_TRANSPILATION_NATIVE": "${DRIVERS_TESTS_CUBEJS_TRANSPILATION_NATIVE}"
},
"ports" : ["4000", "5656"]
diff --git a/packages/cubejs-testing-drivers/fixtures/mssql.json b/packages/cubejs-testing-drivers/fixtures/mssql.json
index 337e725466bb1..5b233fb5ace72 100644
--- a/packages/cubejs-testing-drivers/fixtures/mssql.json
+++ b/packages/cubejs-testing-drivers/fixtures/mssql.json
@@ -13,7 +13,6 @@
"CUBEJS_SQL_PASSWORD": "admin_password",
"CUBESQL_SQL_PUSH_DOWN": "true",
"CUBEJS_TESSERACT_SQL_PLANNER": "${DRIVERS_TESTS_CUBEJS_TESSERACT_SQL_PLANNER}",
- "CUBEJS_TRANSPILATION_WORKER_THREADS": "${DRIVERS_TESTS_CUBEJS_TRANSPILATION_WORKER_THREADS}",
"CUBEJS_TRANSPILATION_NATIVE": "${DRIVERS_TESTS_CUBEJS_TRANSPILATION_NATIVE}"
},
"depends_on": ["data"],
diff --git a/packages/cubejs-testing-drivers/fixtures/mysql.json b/packages/cubejs-testing-drivers/fixtures/mysql.json
index c0dd56f4690a2..30cbcffa1df4f 100644
--- a/packages/cubejs-testing-drivers/fixtures/mysql.json
+++ b/packages/cubejs-testing-drivers/fixtures/mysql.json
@@ -14,7 +14,6 @@
"CUBEJS_SQL_PASSWORD": "admin_password",
"CUBESQL_SQL_PUSH_DOWN": "true",
"CUBEJS_TESSERACT_SQL_PLANNER": "${DRIVERS_TESTS_CUBEJS_TESSERACT_SQL_PLANNER}",
- "CUBEJS_TRANSPILATION_WORKER_THREADS": "${DRIVERS_TESTS_CUBEJS_TRANSPILATION_WORKER_THREADS}",
"CUBEJS_TRANSPILATION_NATIVE": "${DRIVERS_TESTS_CUBEJS_TRANSPILATION_NATIVE}"
},
"depends_on": ["data"],
diff --git a/packages/cubejs-testing-drivers/fixtures/postgres.json b/packages/cubejs-testing-drivers/fixtures/postgres.json
index 50d09f2052adc..665e4cc4eb676 100644
--- a/packages/cubejs-testing-drivers/fixtures/postgres.json
+++ b/packages/cubejs-testing-drivers/fixtures/postgres.json
@@ -14,7 +14,6 @@
"CUBEJS_SQL_PASSWORD": "admin_password",
"CUBESQL_SQL_PUSH_DOWN": "true",
"CUBEJS_TESSERACT_SQL_PLANNER": "${DRIVERS_TESTS_CUBEJS_TESSERACT_SQL_PLANNER}",
- "CUBEJS_TRANSPILATION_WORKER_THREADS": "${DRIVERS_TESTS_CUBEJS_TRANSPILATION_WORKER_THREADS}",
"CUBEJS_TRANSPILATION_NATIVE": "${DRIVERS_TESTS_CUBEJS_TRANSPILATION_NATIVE}"
},
"depends_on": ["data"],
diff --git a/packages/cubejs-testing-drivers/fixtures/redshift.json b/packages/cubejs-testing-drivers/fixtures/redshift.json
index 6d6f027e3202b..ac1c913d8fbc9 100644
--- a/packages/cubejs-testing-drivers/fixtures/redshift.json
+++ b/packages/cubejs-testing-drivers/fixtures/redshift.json
@@ -32,7 +32,6 @@
"CUBEJS_SQL_PASSWORD": "admin_password",
"CUBESQL_SQL_PUSH_DOWN": "true",
"CUBEJS_TESSERACT_SQL_PLANNER": "${DRIVERS_TESTS_CUBEJS_TESSERACT_SQL_PLANNER}",
- "CUBEJS_TRANSPILATION_WORKER_THREADS": "${DRIVERS_TESTS_CUBEJS_TRANSPILATION_WORKER_THREADS}",
"CUBEJS_TRANSPILATION_NATIVE": "${DRIVERS_TESTS_CUBEJS_TRANSPILATION_NATIVE}"
},
"ports" : ["4000", "5656"]
diff --git a/packages/cubejs-testing-drivers/fixtures/snowflake.json b/packages/cubejs-testing-drivers/fixtures/snowflake.json
index 3ce4909af95c0..1a505f721cffd 100644
--- a/packages/cubejs-testing-drivers/fixtures/snowflake.json
+++ b/packages/cubejs-testing-drivers/fixtures/snowflake.json
@@ -118,7 +118,6 @@
"CUBEJS_SQL_PASSWORD": "admin_password",
"CUBESQL_SQL_PUSH_DOWN": "true",
"CUBEJS_TESSERACT_SQL_PLANNER": "${DRIVERS_TESTS_CUBEJS_TESSERACT_SQL_PLANNER}",
- "CUBEJS_TRANSPILATION_WORKER_THREADS": "${DRIVERS_TESTS_CUBEJS_TRANSPILATION_WORKER_THREADS}",
"CUBEJS_TRANSPILATION_NATIVE": "${DRIVERS_TESTS_CUBEJS_TRANSPILATION_NATIVE}"
},
"ports" : ["4000", "5656"]
diff --git a/packages/cubejs-testing-drivers/package.json b/packages/cubejs-testing-drivers/package.json
index 87765a6c2633a..1afe7bd4235bd 100644
--- a/packages/cubejs-testing-drivers/package.json
+++ b/packages/cubejs-testing-drivers/package.json
@@ -1,6 +1,6 @@
{
"name": "@cubejs-backend/testing-drivers",
- "version": "1.5.9",
+ "version": "1.5.10",
"description": "Cube.js drivers test suite",
"author": "Cube Dev, Inc.",
"license": "MIT",
@@ -67,24 +67,24 @@
"dist/src"
],
"dependencies": {
- "@cubejs-backend/athena-driver": "1.5.9",
- "@cubejs-backend/base-driver": "1.5.9",
- "@cubejs-backend/bigquery-driver": "1.5.9",
- "@cubejs-backend/clickhouse-driver": "1.5.9",
- "@cubejs-backend/cubestore-driver": "1.5.9",
- "@cubejs-backend/databricks-jdbc-driver": "1.5.9",
+ "@cubejs-backend/athena-driver": "1.5.10",
+ "@cubejs-backend/base-driver": "1.5.10",
+ "@cubejs-backend/bigquery-driver": "1.5.10",
+ "@cubejs-backend/clickhouse-driver": "1.5.10",
+ "@cubejs-backend/cubestore-driver": "1.5.10",
+ "@cubejs-backend/databricks-jdbc-driver": "1.5.10",
"@cubejs-backend/dotenv": "^9.0.2",
- "@cubejs-backend/linter": "1.5.9",
- "@cubejs-backend/mssql-driver": "1.5.9",
- "@cubejs-backend/mysql-driver": "1.5.9",
- "@cubejs-backend/postgres-driver": "1.5.9",
- "@cubejs-backend/query-orchestrator": "1.5.9",
- "@cubejs-backend/server-core": "1.5.9",
- "@cubejs-backend/shared": "1.5.9",
- "@cubejs-backend/snowflake-driver": "1.5.9",
- "@cubejs-backend/testing-shared": "1.5.9",
- "@cubejs-client/core": "1.5.9",
- "@cubejs-client/ws-transport": "1.5.9",
+ "@cubejs-backend/linter": "1.5.10",
+ "@cubejs-backend/mssql-driver": "1.5.10",
+ "@cubejs-backend/mysql-driver": "1.5.10",
+ "@cubejs-backend/postgres-driver": "1.5.10",
+ "@cubejs-backend/query-orchestrator": "1.5.10",
+ "@cubejs-backend/server-core": "1.5.10",
+ "@cubejs-backend/shared": "1.5.10",
+ "@cubejs-backend/snowflake-driver": "1.5.10",
+ "@cubejs-backend/testing-shared": "1.5.10",
+ "@cubejs-client/core": "1.5.10",
+ "@cubejs-client/ws-transport": "1.5.10",
"@jest/globals": "^29",
"@types/jest": "^29",
"@types/node": "^20",
diff --git a/packages/cubejs-testing-shared/CHANGELOG.md b/packages/cubejs-testing-shared/CHANGELOG.md
index 045641a12a93c..6785b7b44b516 100644
--- a/packages/cubejs-testing-shared/CHANGELOG.md
+++ b/packages/cubejs-testing-shared/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.5.10](https://github.com/cube-js/cube/compare/v1.5.9...v1.5.10) (2025-11-28)
+
+**Note:** Version bump only for package @cubejs-backend/testing-shared
+
## [1.5.9](https://github.com/cube-js/cube/compare/v1.5.8...v1.5.9) (2025-11-26)
**Note:** Version bump only for package @cubejs-backend/testing-shared
diff --git a/packages/cubejs-testing-shared/package.json b/packages/cubejs-testing-shared/package.json
index 57fca7faad815..bd36d4954d188 100644
--- a/packages/cubejs-testing-shared/package.json
+++ b/packages/cubejs-testing-shared/package.json
@@ -1,6 +1,6 @@
{
"name": "@cubejs-backend/testing-shared",
- "version": "1.5.9",
+ "version": "1.5.10",
"description": "Cube.js Testing Helpers",
"author": "Cube Dev, Inc.",
"license": "Apache-2.0",
@@ -21,16 +21,16 @@
],
"dependencies": {
"@cubejs-backend/dotenv": "^9.0.2",
- "@cubejs-backend/query-orchestrator": "1.5.9",
- "@cubejs-backend/schema-compiler": "1.5.9",
- "@cubejs-backend/shared": "1.5.9",
+ "@cubejs-backend/query-orchestrator": "1.5.10",
+ "@cubejs-backend/schema-compiler": "1.5.10",
+ "@cubejs-backend/shared": "1.5.10",
"@testcontainers/kafka": "~10.28.0",
"dedent": "^0.7.0",
"node-fetch": "^2.6.7",
"testcontainers": "^10.28.0"
},
"devDependencies": {
- "@cubejs-backend/linter": "1.5.9",
+ "@cubejs-backend/linter": "1.5.10",
"@jest/globals": "^29",
"@types/dedent": "^0.7.0",
"@types/jest": "^29",
diff --git a/packages/cubejs-testing/CHANGELOG.md b/packages/cubejs-testing/CHANGELOG.md
index d9b68d7d7c9e5..8c697513fb44a 100644
--- a/packages/cubejs-testing/CHANGELOG.md
+++ b/packages/cubejs-testing/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.5.10](https://github.com/cube-js/cube/compare/v1.5.9...v1.5.10) (2025-11-28)
+
+**Note:** Version bump only for package @cubejs-backend/testing
+
## [1.5.9](https://github.com/cube-js/cube/compare/v1.5.8...v1.5.9) (2025-11-26)
**Note:** Version bump only for package @cubejs-backend/testing
diff --git a/packages/cubejs-testing/package.json b/packages/cubejs-testing/package.json
index 2b9c617714234..e0e3b4aa3b736 100644
--- a/packages/cubejs-testing/package.json
+++ b/packages/cubejs-testing/package.json
@@ -1,6 +1,6 @@
{
"name": "@cubejs-backend/testing",
- "version": "1.5.9",
+ "version": "1.5.10",
"description": "Cube.js e2e tests",
"author": "Cube Dev, Inc.",
"license": "Apache-2.0",
@@ -94,15 +94,15 @@
"birdbox-fixtures"
],
"dependencies": {
- "@cubejs-backend/cubestore-driver": "1.5.9",
+ "@cubejs-backend/cubestore-driver": "1.5.10",
"@cubejs-backend/dotenv": "^9.0.2",
- "@cubejs-backend/ksql-driver": "1.5.9",
- "@cubejs-backend/postgres-driver": "1.5.9",
- "@cubejs-backend/query-orchestrator": "1.5.9",
- "@cubejs-backend/schema-compiler": "1.5.9",
- "@cubejs-backend/shared": "1.5.9",
- "@cubejs-backend/testing-shared": "1.5.9",
- "@cubejs-client/ws-transport": "1.5.9",
+ "@cubejs-backend/ksql-driver": "1.5.10",
+ "@cubejs-backend/postgres-driver": "1.5.10",
+ "@cubejs-backend/query-orchestrator": "1.5.10",
+ "@cubejs-backend/schema-compiler": "1.5.10",
+ "@cubejs-backend/shared": "1.5.10",
+ "@cubejs-backend/testing-shared": "1.5.10",
+ "@cubejs-client/ws-transport": "1.5.10",
"dedent": "^0.7.0",
"fs-extra": "^8.1.0",
"http-proxy": "^1.18.1",
@@ -113,8 +113,8 @@
},
"devDependencies": {
"@4tw/cypress-drag-drop": "^1.6.0",
- "@cubejs-backend/linter": "1.5.9",
- "@cubejs-client/core": "1.5.9",
+ "@cubejs-backend/linter": "1.5.10",
+ "@cubejs-client/core": "1.5.10",
"@jest/globals": "^29",
"@types/dedent": "^0.7.0",
"@types/http-proxy": "^1.17.5",
diff --git a/packages/cubejs-trino-driver/CHANGELOG.md b/packages/cubejs-trino-driver/CHANGELOG.md
index 89f3a3032751a..3b9fb98bc15e5 100644
--- a/packages/cubejs-trino-driver/CHANGELOG.md
+++ b/packages/cubejs-trino-driver/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.5.10](https://github.com/cube-js/cube/compare/v1.5.9...v1.5.10) (2025-11-28)
+
+**Note:** Version bump only for package @cubejs-backend/trino-driver
+
## [1.5.9](https://github.com/cube-js/cube/compare/v1.5.8...v1.5.9) (2025-11-26)
**Note:** Version bump only for package @cubejs-backend/trino-driver
diff --git a/packages/cubejs-trino-driver/package.json b/packages/cubejs-trino-driver/package.json
index d42f3836d8691..0cabfa1dacc26 100644
--- a/packages/cubejs-trino-driver/package.json
+++ b/packages/cubejs-trino-driver/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/trino-driver",
"description": "Cube.js Trino database driver",
"author": "Cube Dev, Inc.",
- "version": "1.5.9",
+ "version": "1.5.10",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.git",
@@ -27,10 +27,10 @@
"lint:fix": "eslint --fix src/* --ext .ts"
},
"dependencies": {
- "@cubejs-backend/base-driver": "1.5.9",
- "@cubejs-backend/prestodb-driver": "1.5.9",
- "@cubejs-backend/schema-compiler": "1.5.9",
- "@cubejs-backend/shared": "1.5.9",
+ "@cubejs-backend/base-driver": "1.5.10",
+ "@cubejs-backend/prestodb-driver": "1.5.10",
+ "@cubejs-backend/schema-compiler": "1.5.10",
+ "@cubejs-backend/shared": "1.5.10",
"node-fetch": "^2.6.1",
"presto-client": "^1.1.0",
"sqlstring": "^2.3.1"
@@ -40,7 +40,7 @@
"access": "public"
},
"devDependencies": {
- "@cubejs-backend/linter": "1.5.9",
+ "@cubejs-backend/linter": "1.5.10",
"@types/jest": "^29",
"jest": "^29",
"testcontainers": "^10.28.0",
diff --git a/packages/cubejs-vertica-driver/CHANGELOG.md b/packages/cubejs-vertica-driver/CHANGELOG.md
index 008de8e601b26..53a6d8e41abcc 100644
--- a/packages/cubejs-vertica-driver/CHANGELOG.md
+++ b/packages/cubejs-vertica-driver/CHANGELOG.md
@@ -3,6 +3,10 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.5.10](https://github.com/cube-js/cube.js/compare/v1.5.9...v1.5.10) (2025-11-28)
+
+**Note:** Version bump only for package @cubejs-backend/vertica-driver
+
## [1.5.9](https://github.com/cube-js/cube.js/compare/v1.5.8...v1.5.9) (2025-11-26)
**Note:** Version bump only for package @cubejs-backend/vertica-driver
diff --git a/packages/cubejs-vertica-driver/package.json b/packages/cubejs-vertica-driver/package.json
index 7aa8880281da6..d719a87ee0f60 100644
--- a/packages/cubejs-vertica-driver/package.json
+++ b/packages/cubejs-vertica-driver/package.json
@@ -2,7 +2,7 @@
"name": "@cubejs-backend/vertica-driver",
"description": "Cube.js Vertica database driver",
"author": "Eduard Karacharov, Tim Brown, Cube Dev, Inc.",
- "version": "1.5.9",
+ "version": "1.5.10",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.js.git",
@@ -19,16 +19,16 @@
"lint:fix": "eslint --fix **/*.js"
},
"dependencies": {
- "@cubejs-backend/base-driver": "1.5.9",
- "@cubejs-backend/query-orchestrator": "1.5.9",
- "@cubejs-backend/schema-compiler": "1.5.9",
- "@cubejs-backend/shared": "1.5.9",
+ "@cubejs-backend/base-driver": "1.5.10",
+ "@cubejs-backend/query-orchestrator": "1.5.10",
+ "@cubejs-backend/schema-compiler": "1.5.10",
+ "@cubejs-backend/shared": "1.5.10",
"vertica-nodejs": "^1.0.3"
},
"license": "Apache-2.0",
"devDependencies": {
- "@cubejs-backend/linter": "1.5.9",
- "@cubejs-backend/testing-shared": "1.5.9",
+ "@cubejs-backend/linter": "1.5.10",
+ "@cubejs-backend/testing-shared": "1.5.10",
"@types/jest": "^29",
"jest": "^29",
"testcontainers": "^10.28.0"
diff --git a/rollup.config.js b/rollup.config.js
index d976825c4901e..67cbeca6bbd32 100644
--- a/rollup.config.js
+++ b/rollup.config.js
@@ -181,15 +181,6 @@ export default bundle(
external: ['react', 'prop-types'],
})
)
- .concat(
- bundle('cubejs-client-vue', 'cubejsVue', {
- input: 'packages/cubejs-client-vue/src/index.js',
- external: ['vue'],
- globals: {
- vue: 'Vue',
- },
- })
- )
.concat(
bundle('cubejs-client-vue3', 'cubejsVue3', {
input: 'packages/cubejs-client-vue3/src/index.js',
diff --git a/rust/cubesql/CHANGELOG.md b/rust/cubesql/CHANGELOG.md
index 640372d1be784..75607e4ec8ac2 100644
--- a/rust/cubesql/CHANGELOG.md
+++ b/rust/cubesql/CHANGELOG.md
@@ -3,6 +3,12 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [1.5.10](https://github.com/cube-js/cube/compare/v1.5.9...v1.5.10) (2025-11-28)
+
+### Features
+
+- **api-gateway:** Support query timezone in `/cubesql` API endpoint ([#10189](https://github.com/cube-js/cube/issues/10189)) ([499ddc6](https://github.com/cube-js/cube/commit/499ddc62fc1618b78f16a17943e1c72a670f6b48))
+
## [1.5.9](https://github.com/cube-js/cube/compare/v1.5.8...v1.5.9) (2025-11-26)
**Note:** Version bump only for package @cubejs-backend/cubesql
diff --git a/rust/cubesql/cubeclient/.openapi-generator/VERSION b/rust/cubesql/cubeclient/.openapi-generator/VERSION
index 368fd8fd8d784..6328c5424a4a6 100644
--- a/rust/cubesql/cubeclient/.openapi-generator/VERSION
+++ b/rust/cubesql/cubeclient/.openapi-generator/VERSION
@@ -1 +1 @@
-7.15.0
+7.17.0
diff --git a/rust/cubesql/cubeclient/src/models/v1_load_request_query.rs b/rust/cubesql/cubeclient/src/models/v1_load_request_query.rs
index ae966f9c65160..3cf2d9c6500e5 100644
--- a/rust/cubesql/cubeclient/src/models/v1_load_request_query.rs
+++ b/rust/cubesql/cubeclient/src/models/v1_load_request_query.rs
@@ -35,6 +35,8 @@ pub struct V1LoadRequestQuery {
pub subquery_joins: Option>,
#[serde(rename = "joinHints", skip_serializing_if = "Option::is_none")]
pub join_hints: Option>>,
+ #[serde(rename = "timezone", skip_serializing_if = "Option::is_none")]
+ pub timezone: Option,
}
impl V1LoadRequestQuery {
@@ -51,6 +53,7 @@ impl V1LoadRequestQuery {
ungrouped: None,
subquery_joins: None,
join_hints: None,
+ timezone: None,
}
}
}
diff --git a/rust/cubesql/cubesql/src/compile/builder.rs b/rust/cubesql/cubesql/src/compile/builder.rs
index 7fdc2e86bc908..799947c688092 100644
--- a/rust/cubesql/cubesql/src/compile/builder.rs
+++ b/rust/cubesql/cubesql/src/compile/builder.rs
@@ -153,6 +153,7 @@ impl QueryBuilder {
ungrouped: None,
subquery_joins: None,
join_hints: None,
+ timezone: None,
},
meta: self.meta,
}
diff --git a/rust/cubesql/cubesql/src/compile/engine/df/wrapper.rs b/rust/cubesql/cubesql/src/compile/engine/df/wrapper.rs
index 4b31eeb658169..bdd37112e145e 100644
--- a/rust/cubesql/cubesql/src/compile/engine/df/wrapper.rs
+++ b/rust/cubesql/cubesql/src/compile/engine/df/wrapper.rs
@@ -3357,6 +3357,7 @@ impl WrappedSelectNode {
});
let load_request = V1LoadRequestQuery {
+ timezone: None,
measures: Some(
aggregate
.iter()
diff --git a/rust/cubesql/cubesql/src/compile/rewrite/converter.rs b/rust/cubesql/cubesql/src/compile/rewrite/converter.rs
index 68b715d99f4ad..6f2487ffdb4ed 100644
--- a/rust/cubesql/cubesql/src/compile/rewrite/converter.rs
+++ b/rust/cubesql/cubesql/src/compile/rewrite/converter.rs
@@ -1583,6 +1583,14 @@ impl LanguageToLogicalPlanConverter {
let mut query_order = Vec::new();
let mut query_dimensions = Vec::new();
+ query.timezone = self
+ .cube_context
+ .session_state
+ .query_timezone
+ .read()
+ .unwrap()
+ .clone();
+
for m in members {
match m {
LogicalPlanLanguage::Measure(measure_params) => {
diff --git a/rust/cubesql/cubesql/src/sql/session.rs b/rust/cubesql/cubesql/src/sql/session.rs
index a51b4cf6fe6d3..a1e3b6589b8a2 100644
--- a/rust/cubesql/cubesql/src/sql/session.rs
+++ b/rust/cubesql/cubesql/src/sql/session.rs
@@ -92,6 +92,8 @@ pub struct SessionState {
auth_context_expiration: Duration,
pub cache_mode: RwLockSync