diff --git a/CHANGELOG.md b/CHANGELOG.md index a84ede0e2a80..5f5a2930c792 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,33 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.27.4](https://github.com/cube-js/cube.js/compare/v0.27.3...v0.27.4) (2021-04-29) + + +### Bug Fixes + +* **@cubejs-client/playground:** cache pane crash ([#2635](https://github.com/cube-js/cube.js/issues/2635)) ([405b80b](https://github.com/cube-js/cube.js/commit/405b80b4f9b14b98eb6d47803b0f1e519ce1e0c9)) +* **@cubejs-client/playground:** pass field, win host ([e3144e9](https://github.com/cube-js/cube.js/commit/e3144e9110f4d572aca56cf9393a558e4c0817d1)) +* **cubestore:** make top-k scan less batches ([486ee32](https://github.com/cube-js/cube.js/commit/486ee328f7625fd9fb2c490ec68e1fcd2c4c8a50)) +* **cubestore-driver:** Ping connection only when it's OPEN ([d80e157](https://github.com/cube-js/cube.js/commit/d80e157e5865318c14be534a7f8a1bc39b0ad851)) +* Show warning for deprecated variables only once ([fecbda4](https://github.com/cube-js/cube.js/commit/fecbda456b2b66005fb230e093b117db76c4919e)) + + + + + +## [0.27.3](https://github.com/cube-js/cube.js/compare/v0.27.2...v0.27.3) (2021-04-29) + + +### Bug Fixes + +* **@cubejs-backend/cloud:** Missed dependency ([#2626](https://github.com/cube-js/cube.js/issues/2626)) ([0d396bf](https://github.com/cube-js/cube.js/commit/0d396bf7bd41c5d9acb8d84ae62bdd4ee33fc2a3)) +* **@cubejs-server/core:** env file path ([#2622](https://github.com/cube-js/cube.js/issues/2622)) ([b9abb19](https://github.com/cube-js/cube.js/commit/b9abb195b5c73b3a0077801302721bf8ae2bdaa0)) + + + + + ## [0.27.2](https://github.com/cube-js/cube.js/compare/v0.27.1...v0.27.2) (2021-04-28) diff --git a/DEPRECATION.md b/DEPRECATION.md index cc50685e9686..3f0ca938ce09 100644 --- a/DEPRECATION.md +++ b/DEPRECATION.md @@ -35,7 +35,7 @@ features: | Status | Feature | Deprecated | Remove | | ---------- | ------------------------------------------------------------------------------------------------------------------ | ---------- | --------- | -| Deprecated | [Node.js 8](#nodejs-8) | v0.22.4 | v0.26.0 | +| Removed | [Node.js 8](#nodejs-8) | v0.22.4 | v0.26.0 | | Deprecated | [`hearBeatInterval`](#hearbeatinterval) | v0.23.8 | June 2021 | | Removed | [`CUBEJS_ENABLE_TLS`](#cubejs_enable_tls) | v0.23.11 | v0.26.0 | | Deprecated | [Embedding Cube.js within Express](#embedding-cubejs-within-express) | v0.24.0 | June 2021 | diff --git a/docs/content/Configuration/Environment-Variables-Reference.md b/docs/content/Configuration/Environment-Variables-Reference.md index 319f1aec4a2c..befd54860bc6 100644 --- a/docs/content/Configuration/Environment-Variables-Reference.md +++ b/docs/content/Configuration/Environment-Variables-Reference.md @@ -72,6 +72,7 @@ databases [in this guide][link-connecting-to-db]. | `CUBEJS_DB_BQ_CREDENTIALS` | BigQuery | A Base64 encoded JSON key file for connecting to Google BigQuery | A valid Google BigQuery JSON key file encoded as a Base64 string | | `CUBEJS_DB_BQ_KEY_FILE` | BigQuery | The path to a JSON key file for connecting to Google BigQuery | A valid Google BigQuery JSON key file | | `CUBEJS_DB_BQ_PROJECT_ID` | BigQuery | The Google BigQuery project ID to connect to | A valid Google BigQuery Project ID | +| `CUBEJS_DB_BQ_EXPORT_BUCKET` | BigQuery | GCS bucket to use for export pre-aggregation tables to Cube Store. Use it to achieve best Cube Store ingestion performance possible. | A valid Google Cloud Storage Bucket ID | | `CUBEJS_DB_URL` | Druid, Elasticsearch | The URL for a database | A valid database URL for Druid/Elasticsearch | | `CUBEJS_DB_ELASTIC_OPENDISTRO` | Elasticsearch | If `true`, then use the Open Distro for Elasticsearch | `true`, `false` | | `CUBEJS_DB_ELASTIC_QUERY_FORMAT` | Elasticsearch | By default, queries return data in JDBC format, but you can also return data in standard Elasticsearch JDBC, JSON, CSV, YAML or raw formats (only JSON and JDBC are currently supported) | `json`, `jdbc` | diff --git a/docs/content/Schema/cube.md b/docs/content/Schema/cube.md index 02ffa484dd38..dd9d505963ce 100644 --- a/docs/content/Schema/cube.md +++ b/docs/content/Schema/cube.md @@ -319,11 +319,14 @@ SELECT FLOOR(EXTRACT(EPOCH FROM NOW()) / 5) ### dataSource Each cube in schema can have it's own `dataSource` name to support scenarios where data should be fetched from multiple databases. -Value of `dataSource` parameter will be passed to [dbType](@cubejs-backend-server-core#options-reference-db-type) and -[driverFactory](@cubejs-backend-server-core#options-reference-driver-factory) functions as part of context param. -By default each cube has a `default` value for it's `dataSource`. +Value of `dataSource` parameter will be passed to [`dbType`][ref-config-dbtype] and +[`driverFactory`][ref-config-driverfactory] functions as part of the context paramameter. +By default, each cube has a `default` value for it's `dataSource`. To override it you can use: +[ref-config-dbtype]: /config#options-reference-db-type +[ref-config-driverfactory]: /config#options-reference-driver-factory + ```javascript cube(`OrderFacts`, { sql: `SELECT * FROM orders`, diff --git a/docs/yarn.lock b/docs/yarn.lock index 6a7f804e43f8..67b1413a353a 100644 --- a/docs/yarn.lock +++ b/docs/yarn.lock @@ -7502,9 +7502,9 @@ fault@^1.0.0, fault@^1.0.1: dependencies: format "^0.2.0" -"favicons-webpack-plugin@git+https://github.com/Creatiwity/favicons-webpack-plugin.git#0872de414061baaad0a2853c77ae75bc38b8bbbf": +"favicons-webpack-plugin@https://github.com/Creatiwity/favicons-webpack-plugin.git#0872de414061baaad0a2853c77ae75bc38b8bbbf": version "0.0.9" - resolved "git+https://github.com/Creatiwity/favicons-webpack-plugin.git#0872de414061baaad0a2853c77ae75bc38b8bbbf" + resolved "https://github.com/Creatiwity/favicons-webpack-plugin.git#0872de414061baaad0a2853c77ae75bc38b8bbbf" dependencies: core-js "^2.5.7" favicons "^5.1.1" diff --git a/examples/cubestore-benchmark/.gitignore b/examples/cubestore-benchmark/.gitignore new file mode 100644 index 000000000000..42a895842558 --- /dev/null +++ b/examples/cubestore-benchmark/.gitignore @@ -0,0 +1,2 @@ +.cubestore +.postgres diff --git a/examples/cubestore-benchmark/README.md b/examples/cubestore-benchmark/README.md new file mode 100644 index 000000000000..b246a7c38374 --- /dev/null +++ b/examples/cubestore-benchmark/README.md @@ -0,0 +1,15 @@ +# Cube Store benchmark template + +## Setting up + +* Update `cubejs-cubestore/docker-compose.yml` and `cubejs-postgres/docker-compose.yml` with data source credentials (see `TODO` comments) +* Update `cubejs-cubestore/schema` and `cubejs-postgres/schema` with relevant data schema that matches your data source +* Update `loadtest/queries.js` with relevant queries + +## Running + +* Go to `cubejs-cubestore` and run `docker-compose -p cubejs-cubestore up` +* Go to `cubejs-postgres` and run `docker-compose -p cubejs-postgres up` +* Go to `loadtest` and run `npm install` +* Then, start the relay server using `npm start` +* Then, run the load test using `RPS= DURATION=s npm test` (e.g., `RPS=10 DURATION=10s npm test`) \ No newline at end of file diff --git a/examples/cubestore-benchmark/cubejs-cubestore/cube.js b/examples/cubestore-benchmark/cubejs-cubestore/cube.js new file mode 100644 index 000000000000..d865ecd39d20 --- /dev/null +++ b/examples/cubestore-benchmark/cubejs-cubestore/cube.js @@ -0,0 +1,13 @@ +module.exports = { + orchestratorOptions: { + rollupOnlyMode: !process.env.CUBEJS_SCHEDULED_REFRESH_TIMER, + queryCacheOptions: { + externalQueueOptions: { + concurrency: 20 + } + }, + preAggregationsOptions: { + externalRefresh: process.env.CUBEJS_SCHEDULED_REFRESH_TIMER !== 'true' + } + } +} \ No newline at end of file diff --git a/examples/cubestore-benchmark/cubejs-cubestore/docker-compose.yml b/examples/cubestore-benchmark/cubejs-cubestore/docker-compose.yml new file mode 100644 index 000000000000..9dede66ec62a --- /dev/null +++ b/examples/cubestore-benchmark/cubejs-cubestore/docker-compose.yml @@ -0,0 +1,103 @@ +version: '2.2' + +services: + cube: + image: cubejs/cube:latest + ports: + - 4001:4000 + - 3001:3000 + environment: + - CUBEJS_DB_TYPE=bigquery + # TODO: Fill in the values below + - CUBEJS_DB_BQ_PROJECT_ID= + - CUBEJS_DB_BQ_CREDENTIALS= + - CUBEJS_DB_BQ_EXPORT_BUCKET= + + - CUBEJS_EXT_DB_TYPE=cubestore + - CUBEJS_EXT_DB_HOST=cubestore + - CUBEJS_EXT_DB_PORT=3030 + + - CUBEJS_REDIS_URL=redis://redis:6379 + + - CUBEJS_API_SECRET=SECRET + volumes: + - .:/cube/conf + depends_on: + - refresh_worker + - cubestore + - redis + + refresh_worker: + image: cubejs/cube:latest + environment: + - CUBEJS_SCHEDULED_REFRESH_TIMER=true + - CUBEJS_DB_TYPE=bigquery + # TODO: Fill in the values below + - CUBEJS_DB_BQ_PROJECT_ID= + - CUBEJS_DB_BQ_CREDENTIALS= + - CUBEJS_DB_BQ_EXPORT_BUCKET= + + - CUBEJS_EXT_DB_TYPE=cubestore + - CUBEJS_EXT_DB_HOST=cubestore + - CUBEJS_EXT_DB_PORT=3030 + + - CUBEJS_REDIS_URL=redis://redis:6379 + + - CUBEJS_API_SECRET=SECRET + volumes: + - .:/cube/conf + depends_on: + - cubestore + - redis + + cubestore: + image: cubejs/cubestore:latest + environment: + - CUBESTORE_WORKERS=cubestore_worker_1:10001,cubestore_worker_2:10002,cubestore_worker_3:10003,cubestore_worker_4:10004 + - CUBESTORE_REMOTE_DIR=/cube/data + volumes: + - .cubestore:/cube/data + depends_on: + - cubestore_worker_1 + - cubestore_worker_2 + - cubestore_worker_3 + - cubestore_worker_4 + + cubestore_worker_1: + image: cubejs/cubestore:latest + environment: + - CUBESTORE_WORKER_PORT=10001 + - CUBESTORE_REMOTE_DIR=/cube/data + volumes: + - .cubestore:/cube/data + + cubestore_worker_2: + image: cubejs/cubestore:latest + environment: + - CUBESTORE_WORKER_PORT=10002 + - CUBESTORE_REMOTE_DIR=/cube/data + volumes: + - .cubestore:/cube/data + + cubestore_worker_3: + image: cubejs/cubestore:latest + environment: + - CUBESTORE_WORKER_PORT=10003 + - CUBESTORE_REMOTE_DIR=/cube/data + volumes: + - .cubestore:/cube/data + + cubestore_worker_4: + image: cubejs/cubestore:latest + environment: + - CUBESTORE_WORKER_PORT=10004 + - CUBESTORE_REMOTE_DIR=/cube/data + volumes: + - .cubestore:/cube/data + + redis: + image: bitnami/redis:latest + environment: + - ALLOW_EMPTY_PASSWORD=yes + logging: + driver: none \ No newline at end of file diff --git a/examples/cubestore-benchmark/cubejs-cubestore/schema/Mobility.js b/examples/cubestore-benchmark/cubejs-cubestore/schema/Mobility.js new file mode 100644 index 000000000000..0cfe49b4e7de --- /dev/null +++ b/examples/cubestore-benchmark/cubejs-cubestore/schema/Mobility.js @@ -0,0 +1,83 @@ +cube(`Mobility`, { + sql: ` + SELECT * + FROM \`bigquery-public-data.covid19_google_mobility.mobility_report\` + `, + + refreshKey: { + sql: ` + SELECT COUNT(*) + FROM \`bigquery-public-data.covid19_google_mobility.mobility_report\` + `, + }, + + measures: { + grocery: { + sql: `grocery_and_pharmacy_percent_change_from_baseline`, + type: `max`, + format: 'percent', + }, + + park: { + sql: `parks_percent_change_from_baseline`, + type: `max`, + format: 'percent', + }, + + residential: { + sql: `residential_percent_change_from_baseline`, + type: `max`, + format: 'percent', + }, + + retail: { + sql: `retail_and_recreation_percent_change_from_baseline`, + type: `max`, + format: 'percent', + }, + + transit: { + sql: `transit_stations_percent_change_from_baseline`, + type: `max`, + format: 'percent', + }, + + workplace: { + sql: `workplaces_percent_change_from_baseline`, + type: `max`, + format: 'percent', + }, + }, + + dimensions: { + key: { + sql: `CONCAT(country_region, '-', sub_region_1, '-', sub_region_2, '-', ${Mobility}.date)`, + type: `string`, + primaryKey: true + }, + + country: { + sql: `country_region`, + type: `string` + }, + + date: { + sql: `TIMESTAMP(${Mobility}.date)`, + type: `time` + }, + }, + + preAggregations: { + main: { + type: `rollup`, + external: true, + scheduledRefresh: true, + refreshKey: { every: '1 hour' }, + measureReferences: [ grocery, park, residential, retail, transit, workplace ], + dimensionReferences: [ country ], + timeDimensionReference: date, + granularity: 'day', + partitionGranularity: 'month', + }, + }, +}); \ No newline at end of file diff --git a/examples/cubestore-benchmark/cubejs-postgres/cube.js b/examples/cubestore-benchmark/cubejs-postgres/cube.js new file mode 100644 index 000000000000..d865ecd39d20 --- /dev/null +++ b/examples/cubestore-benchmark/cubejs-postgres/cube.js @@ -0,0 +1,13 @@ +module.exports = { + orchestratorOptions: { + rollupOnlyMode: !process.env.CUBEJS_SCHEDULED_REFRESH_TIMER, + queryCacheOptions: { + externalQueueOptions: { + concurrency: 20 + } + }, + preAggregationsOptions: { + externalRefresh: process.env.CUBEJS_SCHEDULED_REFRESH_TIMER !== 'true' + } + } +} \ No newline at end of file diff --git a/examples/cubestore-benchmark/cubejs-postgres/docker-compose.yml b/examples/cubestore-benchmark/cubejs-postgres/docker-compose.yml new file mode 100644 index 000000000000..063916ca6f31 --- /dev/null +++ b/examples/cubestore-benchmark/cubejs-postgres/docker-compose.yml @@ -0,0 +1,73 @@ +version: '2.2' + +services: + cube: + image: cubejs/cube:latest + ports: + - 4002:4000 + - 3002:3000 + environment: + - CUBEJS_DB_TYPE=bigquery + # TODO: Fill in the values below + - CUBEJS_DB_BQ_PROJECT_ID= + - CUBEJS_DB_BQ_CREDENTIALS= + - CUBEJS_DB_BQ_EXPORT_BUCKET= + + - CUBEJS_EXT_DB_TYPE=postgres + - CUBEJS_EXT_DB_HOST=postgres + - CUBEJS_EXT_DB_PORT=5432 + - CUBEJS_EXT_DB_NAME=postgres + - CUBEJS_EXT_DB_USER=postgres + - CUBEJS_EXT_DB_PASS=postgres + + - CUBEJS_REDIS_URL=redis://redis:6379 + + - CUBEJS_API_SECRET=SECRET + volumes: + - .:/cube/conf + depends_on: + - refresh_worker + - postgres + - redis + + refresh_worker: + image: cubejs/cube:latest + environment: + - CUBEJS_SCHEDULED_REFRESH_TIMER=true + - CUBEJS_DB_TYPE=bigquery + # TODO: Fill in the values below + - CUBEJS_DB_BQ_PROJECT_ID= + - CUBEJS_DB_BQ_CREDENTIALS= + - CUBEJS_DB_BQ_EXPORT_BUCKET= + + - CUBEJS_EXT_DB_TYPE=postgres + - CUBEJS_EXT_DB_HOST=postgres + - CUBEJS_EXT_DB_PORT=5432 + - CUBEJS_EXT_DB_NAME=postgres + - CUBEJS_EXT_DB_USER=postgres + - CUBEJS_EXT_DB_PASS=postgres + + - CUBEJS_REDIS_URL=redis://redis:6379 + + - CUBEJS_API_SECRET=SECRET + volumes: + - .:/cube/conf + depends_on: + - postgres + - redis + + postgres: + image: postgres:latest + environment: + POSTGRES_USER: postgres + POSTGRES_PASSWORD: postgres + PGDATA: /data/postgres + volumes: + - .postgres:/data/postgres + + redis: + image: bitnami/redis:latest + environment: + - ALLOW_EMPTY_PASSWORD=yes + logging: + driver: none \ No newline at end of file diff --git a/examples/cubestore-benchmark/cubejs-postgres/schema/Mobility.js b/examples/cubestore-benchmark/cubejs-postgres/schema/Mobility.js new file mode 100644 index 000000000000..0cfe49b4e7de --- /dev/null +++ b/examples/cubestore-benchmark/cubejs-postgres/schema/Mobility.js @@ -0,0 +1,83 @@ +cube(`Mobility`, { + sql: ` + SELECT * + FROM \`bigquery-public-data.covid19_google_mobility.mobility_report\` + `, + + refreshKey: { + sql: ` + SELECT COUNT(*) + FROM \`bigquery-public-data.covid19_google_mobility.mobility_report\` + `, + }, + + measures: { + grocery: { + sql: `grocery_and_pharmacy_percent_change_from_baseline`, + type: `max`, + format: 'percent', + }, + + park: { + sql: `parks_percent_change_from_baseline`, + type: `max`, + format: 'percent', + }, + + residential: { + sql: `residential_percent_change_from_baseline`, + type: `max`, + format: 'percent', + }, + + retail: { + sql: `retail_and_recreation_percent_change_from_baseline`, + type: `max`, + format: 'percent', + }, + + transit: { + sql: `transit_stations_percent_change_from_baseline`, + type: `max`, + format: 'percent', + }, + + workplace: { + sql: `workplaces_percent_change_from_baseline`, + type: `max`, + format: 'percent', + }, + }, + + dimensions: { + key: { + sql: `CONCAT(country_region, '-', sub_region_1, '-', sub_region_2, '-', ${Mobility}.date)`, + type: `string`, + primaryKey: true + }, + + country: { + sql: `country_region`, + type: `string` + }, + + date: { + sql: `TIMESTAMP(${Mobility}.date)`, + type: `time` + }, + }, + + preAggregations: { + main: { + type: `rollup`, + external: true, + scheduledRefresh: true, + refreshKey: { every: '1 hour' }, + measureReferences: [ grocery, park, residential, retail, transit, workplace ], + dimensionReferences: [ country ], + timeDimensionReference: date, + granularity: 'day', + partitionGranularity: 'month', + }, + }, +}); \ No newline at end of file diff --git a/examples/cubestore-benchmark/loadtest/.env b/examples/cubestore-benchmark/loadtest/.env new file mode 100644 index 000000000000..830e4b970a9e --- /dev/null +++ b/examples/cubestore-benchmark/loadtest/.env @@ -0,0 +1,7 @@ +RELAY_PORT=7676 + +CUBEJS_CUBESTORE_API_URL=http://localhost:4001/cubejs-api/v1 +CUBEJS_CUBESTORE_TOKEN=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE2MTk2NDIxNzMsImV4cCI6NDc3NTQwMjE3M30.Tl7CSKIT8k8RzBm8X9ngzd2ED_LVMFFAIKHxZSg18Go + +CUBEJS_POSTGRES_API_URL=http://localhost:4002/cubejs-api/v1 +CUBEJS_POSTGRES_TOKEN=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE2MTk2NDIxNzMsImV4cCI6NDc3NTQwMjE3M30.Tl7CSKIT8k8RzBm8X9ngzd2ED_LVMFFAIKHxZSg18Go diff --git a/examples/cubestore-benchmark/loadtest/.gitignore b/examples/cubestore-benchmark/loadtest/.gitignore new file mode 100644 index 000000000000..d4b252c9382b --- /dev/null +++ b/examples/cubestore-benchmark/loadtest/.gitignore @@ -0,0 +1,3 @@ +node_modules/ + +result.json \ No newline at end of file diff --git a/examples/cubestore-benchmark/loadtest/package.json b/examples/cubestore-benchmark/loadtest/package.json new file mode 100644 index 000000000000..02e8a10b63ac --- /dev/null +++ b/examples/cubestore-benchmark/loadtest/package.json @@ -0,0 +1,17 @@ +{ + "name": "cubestore-loadtest", + "version": "1.0.0", + "description": "", + "scripts": { + "start": "node relay.js", + "test": "k6 run --summary-time-unit s --summary-export result.json test.js" + }, + "type": "module", + "author": "", + "license": "ISC", + "dependencies": { + "@cubejs-client/core": "^0.27.0", + "dotenv": "^8.2.0", + "express": "^4.17.1" + } +} diff --git a/examples/cubestore-benchmark/loadtest/queries.js b/examples/cubestore-benchmark/loadtest/queries.js new file mode 100644 index 000000000000..b47460330327 --- /dev/null +++ b/examples/cubestore-benchmark/loadtest/queries.js @@ -0,0 +1,52 @@ +function getRandomInRange(min, max) { + return min + Math.round(Math.random() * (max - min)) +} + +function pad(n, width, z) { + z = z || '0'; + n = n + ''; + return n.length >= width ? n : new Array(width - n.length + 1).join(z) + n; +} + +export default [ + { + name: 'order-count-by-created-at-by-day', + + data: () => { + const year = getRandomInRange(2019, 2021) + + return { + year1: year, + year2: year + 1, + month1: pad(getRandomInRange(1, 12), 2), + month2: pad(getRandomInRange(1, 12), 2), + day1: pad(getRandomInRange(1, 28), 2), + day2: pad(getRandomInRange(1, 28), 2), + } + }, + + query: ({ year1, year2, month1, month2, day1, day2 }) => ({ + "order": { + "Mobility.grocery": "desc" + }, + "measures": [ + "Mobility.grocery", + "Mobility.park", + "Mobility.residential", + ], + "dimensions": [ + "Mobility.country" + ], + "timeDimensions": [ + { + "dimension": "Mobility.date", + "granularity": "day", + "dateRange": [ + `${year1}-${month1}-${day1}`, + `${year2}-${month2}-${day2}`, + ] + } + ] + }), + }, +]; \ No newline at end of file diff --git a/examples/cubestore-benchmark/loadtest/relay.js b/examples/cubestore-benchmark/loadtest/relay.js new file mode 100644 index 000000000000..213927231054 --- /dev/null +++ b/examples/cubestore-benchmark/loadtest/relay.js @@ -0,0 +1,51 @@ +import dotenv from 'dotenv'; +dotenv.config(); + +import express from 'express'; +import cubejs from '@cubejs-client/core'; + +const port = process.env.RELAY_PORT + +import queries from './queries.js'; + +function getNextQuery() { + return queries[Math.floor(Math.random() * queries.length)] +} + +function prepareQuery(type) { + let query = getNextQuery() + let data = query.data ? query.data() : undefined + let generateQuery = query[type] + + return generateQuery ? generateQuery(data) : undefined +} + +express() + + .get('/:endpoint', (req, res) => { + let query = prepareQuery('query'); + + const api = cubejs.default( + process.env[`CUBEJS_${req.params.endpoint.toUpperCase()}_TOKEN`], + { apiUrl: process.env[`CUBEJS_${req.params.endpoint.toUpperCase()}_API_URL`] } + ); + + if (!query) { + res.status(200).send() + return + } + + api + .load(query) + .then(() => res.status(200).send()) + .catch(e => { + console.log(req.params.endpoint) + console.log(JSON.stringify(query)) + console.log(e) + res.status(400).send() + }) + }) + + .listen(port, () => { + console.log(`Ready to relay at http://localhost:${port}`) + }) \ No newline at end of file diff --git a/examples/cubestore-benchmark/loadtest/test.js b/examples/cubestore-benchmark/loadtest/test.js new file mode 100644 index 000000000000..8cff0a264492 --- /dev/null +++ b/examples/cubestore-benchmark/loadtest/test.js @@ -0,0 +1,56 @@ +import { check } from 'k6'; +import { Trend } from 'k6/metrics'; +import http from 'k6/http'; + +const RELAY_PORT = __ENV.RELAY_PORT || 7676; +const RELAY_URL = `http://localhost:${RELAY_PORT}`; + + +const defaultScenario = { + executor: 'constant-arrival-rate', + preAllocatedVUs: 600, + rate: __ENV.RPS || 1, + duration: __ENV.DURATION || '10s', + gracefulStop: '300s', +}; + +export let options = { + setupTimeout: '300s', + teardownTimeout: '300s', + scenarios: { + cubestore: Object.assign( + Object.assign({}, defaultScenario), + { exec: 'cubestore' }, + ), + postgres: Object.assign( + Object.assign({}, defaultScenario), + { exec: 'postgres' }, + ), + }, +}; + + +let cubestoreLantency = new Trend('Latency (Cube.js with Cube Store)', true); + +export function cubestore() { + let res = http.get(`${RELAY_URL}/cubestore`); + + cubestoreLantency.add(res.timings.duration); + + check(res, { + 'is status 200': res => res.status === 200, + }); +} + + +let postgresLantency = new Trend('Latency (Cube.js with Postgres)', true); + +export function postgres() { + let res = http.get(`${RELAY_URL}/postgres`); + + postgresLantency.add(res.timings.duration); + + check(res, { + 'is status 200': res => res.status === 200, + }); +} \ No newline at end of file diff --git a/lerna.json b/lerna.json index 2bd79af51ff2..0a11b121b699 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "0.27.2", + "version": "0.27.4", "npmClient": "yarn", "useWorkspaces": true, "packages": [ diff --git a/packages/cubejs-api-gateway/CHANGELOG.md b/packages/cubejs-api-gateway/CHANGELOG.md index 0bbd2a3cdf0f..ae2da9485d64 100644 --- a/packages/cubejs-api-gateway/CHANGELOG.md +++ b/packages/cubejs-api-gateway/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.27.4](https://github.com/cube-js/cube.js/compare/v0.27.3...v0.27.4) (2021-04-29) + +**Note:** Version bump only for package @cubejs-backend/api-gateway + + + + + ## [0.27.2](https://github.com/cube-js/cube.js/compare/v0.27.1...v0.27.2) (2021-04-28) **Note:** Version bump only for package @cubejs-backend/api-gateway diff --git a/packages/cubejs-api-gateway/package.json b/packages/cubejs-api-gateway/package.json index b99cf0f7ec76..cd64270da2f7 100644 --- a/packages/cubejs-api-gateway/package.json +++ b/packages/cubejs-api-gateway/package.json @@ -2,7 +2,7 @@ "name": "@cubejs-backend/api-gateway", "description": "Cube.js API Gateway", "author": "Cube Dev, Inc.", - "version": "0.27.2", + "version": "0.27.4", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.js.git", @@ -27,7 +27,7 @@ "dist/src/*" ], "dependencies": { - "@cubejs-backend/shared": "^0.27.2", + "@cubejs-backend/shared": "^0.27.4", "@hapi/joi": "^15.1.1", "body-parser": "^1.19.0", "chrono-node": "^2.2.6", diff --git a/packages/cubejs-athena-driver/CHANGELOG.md b/packages/cubejs-athena-driver/CHANGELOG.md index 4e1af1946ac3..e0193cb9c1b7 100644 --- a/packages/cubejs-athena-driver/CHANGELOG.md +++ b/packages/cubejs-athena-driver/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.27.4](https://github.com/cube-js/cube.js/compare/v0.27.3...v0.27.4) (2021-04-29) + +**Note:** Version bump only for package @cubejs-backend/athena-driver + + + + + ## [0.27.2](https://github.com/cube-js/cube.js/compare/v0.27.1...v0.27.2) (2021-04-28) **Note:** Version bump only for package @cubejs-backend/athena-driver diff --git a/packages/cubejs-athena-driver/package.json b/packages/cubejs-athena-driver/package.json index 88cb06d3d4e8..0b037a93287a 100644 --- a/packages/cubejs-athena-driver/package.json +++ b/packages/cubejs-athena-driver/package.json @@ -2,7 +2,7 @@ "name": "@cubejs-backend/athena-driver", "description": "Cube.js Athena database driver", "author": "Cube Dev, Inc.", - "version": "0.27.2", + "version": "0.27.4", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.js.git", @@ -17,8 +17,8 @@ "main": "driver/AthenaDriver.js", "types": "driver/index.d.ts", "dependencies": { - "@cubejs-backend/query-orchestrator": "^0.27.2", - "@cubejs-backend/shared": "^0.27.2", + "@cubejs-backend/query-orchestrator": "^0.27.4", + "@cubejs-backend/shared": "^0.27.4", "aws-sdk": "^2.403.0", "sqlstring": "^2.3.1" }, diff --git a/packages/cubejs-backend-cloud/CHANGELOG.md b/packages/cubejs-backend-cloud/CHANGELOG.md index 429436eef0d2..4ef462c99109 100644 --- a/packages/cubejs-backend-cloud/CHANGELOG.md +++ b/packages/cubejs-backend-cloud/CHANGELOG.md @@ -3,6 +3,25 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.27.4](https://github.com/cube-js/cube.js/compare/v0.27.3...v0.27.4) (2021-04-29) + +**Note:** Version bump only for package @cubejs-backend/cloud + + + + + +## [0.27.3](https://github.com/cube-js/cube.js/compare/v0.27.2...v0.27.3) (2021-04-29) + + +### Bug Fixes + +* **@cubejs-backend/cloud:** Missed dependency ([#2626](https://github.com/cube-js/cube.js/issues/2626)) ([0d396bf](https://github.com/cube-js/cube.js/commit/0d396bf7bd41c5d9acb8d84ae62bdd4ee33fc2a3)) + + + + + ## [0.27.2](https://github.com/cube-js/cube.js/compare/v0.27.1...v0.27.2) (2021-04-28) **Note:** Version bump only for package @cubejs-backend/cloud diff --git a/packages/cubejs-backend-cloud/package.json b/packages/cubejs-backend-cloud/package.json index 841258b16760..29f542987793 100644 --- a/packages/cubejs-backend-cloud/package.json +++ b/packages/cubejs-backend-cloud/package.json @@ -1,6 +1,6 @@ { "name": "@cubejs-backend/cloud", - "version": "0.27.2", + "version": "0.27.4", "description": "Cube Cloud package", "main": "dist/src/index.js", "typings": "dist/src/index.d.ts", @@ -32,11 +32,12 @@ }, "dependencies": { "@cubejs-backend/dotenv": "^9.0.2", - "@cubejs-backend/shared": "^0.27.2", + "@cubejs-backend/shared": "^0.27.4", "chokidar": "^3.5.1", "env-var": "^6.3.0", "fs-extra": "^9.1.0", "jsonwebtoken": "^8.5.1", + "request": "^2.88.2", "request-promise": "^4.2.5" }, "publishConfig": { diff --git a/packages/cubejs-backend-maven/CHANGELOG.md b/packages/cubejs-backend-maven/CHANGELOG.md index f31be6c2b02a..1803b51859fb 100644 --- a/packages/cubejs-backend-maven/CHANGELOG.md +++ b/packages/cubejs-backend-maven/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.27.4](https://github.com/cube-js/cube.js/compare/v0.27.3...v0.27.4) (2021-04-29) + +**Note:** Version bump only for package @cubejs-backend/maven + + + + + ## [0.27.2](https://github.com/cube-js/cube.js/compare/v0.27.1...v0.27.2) (2021-04-28) **Note:** Version bump only for package @cubejs-backend/maven diff --git a/packages/cubejs-backend-maven/package.json b/packages/cubejs-backend-maven/package.json index 68be1676eb5b..509d36480389 100644 --- a/packages/cubejs-backend-maven/package.json +++ b/packages/cubejs-backend-maven/package.json @@ -2,7 +2,7 @@ "name": "@cubejs-backend/maven", "description": "Cube.js Maven Wrapper for java dependencies downloading", "author": "Cube Dev, Inc.", - "version": "0.27.2", + "version": "0.27.4", "license": "Apache-2.0", "repository": { "type": "git", @@ -31,7 +31,7 @@ "dist/src/*" ], "dependencies": { - "@cubejs-backend/shared": "^0.27.2", + "@cubejs-backend/shared": "^0.27.4", "source-map-support": "^0.5.19", "xmlbuilder2": "^2.4.0" }, diff --git a/packages/cubejs-backend-shared/CHANGELOG.md b/packages/cubejs-backend-shared/CHANGELOG.md index 04fc6d1661f9..45e6ac2e03e9 100644 --- a/packages/cubejs-backend-shared/CHANGELOG.md +++ b/packages/cubejs-backend-shared/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.27.4](https://github.com/cube-js/cube.js/compare/v0.27.3...v0.27.4) (2021-04-29) + + +### Bug Fixes + +* Show warning for deprecated variables only once ([fecbda4](https://github.com/cube-js/cube.js/commit/fecbda456b2b66005fb230e093b117db76c4919e)) + + + + + ## [0.27.2](https://github.com/cube-js/cube.js/compare/v0.27.1...v0.27.2) (2021-04-28) diff --git a/packages/cubejs-backend-shared/package.json b/packages/cubejs-backend-shared/package.json index 518f218b4bd4..7527fd46097e 100644 --- a/packages/cubejs-backend-shared/package.json +++ b/packages/cubejs-backend-shared/package.json @@ -1,6 +1,6 @@ { "name": "@cubejs-backend/shared", - "version": "0.27.2", + "version": "0.27.4", "description": "Shared code for Cube.js backend packages", "main": "dist/src/index.js", "typings": "dist/src/index.d.ts", diff --git a/packages/cubejs-backend-shared/src/env.ts b/packages/cubejs-backend-shared/src/env.ts index 05c6bd585a7a..8f81b10a7bdb 100644 --- a/packages/cubejs-backend-shared/src/env.ts +++ b/packages/cubejs-backend-shared/src/env.ts @@ -69,6 +69,10 @@ function asBoolOrTime(input: string, envName: string): number|boolean { ); } +let legacyRedisPasswordAlerted: boolean = false; +let legacyRedisUrlAlerted: boolean = false; +let legacyRedisTlsAlerted: boolean = false; + const variables: Record any> = { devMode: () => get('CUBEJS_DEV_MODE') .default('false') @@ -115,6 +119,15 @@ const variables: Record any> = { // BigQuery Driver bigQueryLocation: () => get('CUBEJS_DB_BQ_LOCATION') .asString(), + // Cube Store + cubeStoreHost: () => get('CUBEJS_CUBESTORE_HOST') + .asString(), + cubeStorePort: () => get('CUBEJS_CUBESTORE_PORT') + .asPortNumber(), + cubeStoreUser: () => get('CUBEJS_CUBESTORE_USER') + .asString(), + cubeStorePass: () => get('CUBEJS_CUBESTORE_PASS') + .asString(), // Databricks databrickUrl: () => get('CUBEJS_DB_DATABRICKS_URL') .required() @@ -141,7 +154,11 @@ const variables: Record any> = { const legacyRedisPassword = get('REDIS_PASSWORD') .asString(); if (legacyRedisPassword) { - displayCLIWarning('REDIS_PASSWORD is deprecated and will be removed, please use CUBEJS_REDIS_PASSWORD.'); + if (!legacyRedisPasswordAlerted) { + displayCLIWarning('REDIS_PASSWORD is deprecated and will be removed, please use CUBEJS_REDIS_PASSWORD.'); + + legacyRedisPasswordAlerted = true; + } return legacyRedisPassword; } @@ -158,7 +175,11 @@ const variables: Record any> = { const legacyRedisUrl = get('REDIS_URL') .asString(); if (legacyRedisUrl) { - displayCLIWarning('REDIS_URL is deprecated and will be removed, please use CUBEJS_REDIS_URL.'); + if (!legacyRedisUrlAlerted) { + displayCLIWarning('REDIS_URL is deprecated and will be removed, please use CUBEJS_REDIS_URL.'); + + legacyRedisUrlAlerted = true; + } return legacyRedisUrl; } @@ -175,7 +196,11 @@ const variables: Record any> = { const legacyRedisTls = get('REDIS_TLS') .asBoolStrict(); if (legacyRedisTls) { - displayCLIWarning('REDIS_TLS is deprecated and will be removed, please use CUBEJS_REDIS_TLS.'); + if (!legacyRedisTlsAlerted) { + displayCLIWarning('REDIS_TLS is deprecated and will be removed, please use CUBEJS_REDIS_TLS.'); + + legacyRedisTlsAlerted = true; + } return legacyRedisTls; } diff --git a/packages/cubejs-backend-shared/src/track.ts b/packages/cubejs-backend-shared/src/track.ts index 3bfcad7f8c3c..69584a73507e 100644 --- a/packages/cubejs-backend-shared/src/track.ts +++ b/packages/cubejs-backend-shared/src/track.ts @@ -14,6 +14,7 @@ export type Event = BaseEvent & { anonymousId: string, platform: string, nodeVersion: string, + sentFrom: 'backend'; }; let flushPromise: Promise|null = null; @@ -84,6 +85,7 @@ export async function track(opts: BaseEvent) { arch: process.arch, nodeVersion: process.version, anonymousId, + sentFrom: 'backend' }); const currentPromise = (flushPromise || Promise.resolve()).then(() => flush()).then(() => { diff --git a/packages/cubejs-bigquery-driver/CHANGELOG.md b/packages/cubejs-bigquery-driver/CHANGELOG.md index 1d8416bf2607..179eb839bdf5 100644 --- a/packages/cubejs-bigquery-driver/CHANGELOG.md +++ b/packages/cubejs-bigquery-driver/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.27.4](https://github.com/cube-js/cube.js/compare/v0.27.3...v0.27.4) (2021-04-29) + +**Note:** Version bump only for package @cubejs-backend/bigquery-driver + + + + + ## [0.27.2](https://github.com/cube-js/cube.js/compare/v0.27.1...v0.27.2) (2021-04-28) **Note:** Version bump only for package @cubejs-backend/bigquery-driver diff --git a/packages/cubejs-bigquery-driver/package.json b/packages/cubejs-bigquery-driver/package.json index e7e476e2b1c7..50c2479411d6 100644 --- a/packages/cubejs-bigquery-driver/package.json +++ b/packages/cubejs-bigquery-driver/package.json @@ -2,7 +2,7 @@ "name": "@cubejs-backend/bigquery-driver", "description": "Cube.js BigQuery database driver", "author": "Cube Dev, Inc.", - "version": "0.27.2", + "version": "0.27.4", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.js.git", @@ -14,8 +14,8 @@ "main": "driver/BigQueryDriver.js", "types": "driver/index.d.ts", "dependencies": { - "@cubejs-backend/query-orchestrator": "^0.27.2", - "@cubejs-backend/shared": "^0.27.2", + "@cubejs-backend/query-orchestrator": "^0.27.4", + "@cubejs-backend/shared": "^0.27.4", "@google-cloud/bigquery": "^5.5.0", "@google-cloud/storage": "^5.7.2", "ramda": "^0.27.0" diff --git a/packages/cubejs-cli/CHANGELOG.md b/packages/cubejs-cli/CHANGELOG.md index e6e3cac2343e..840d6ff30ce1 100644 --- a/packages/cubejs-cli/CHANGELOG.md +++ b/packages/cubejs-cli/CHANGELOG.md @@ -3,6 +3,22 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.27.4](https://github.com/cube-js/cube.js/compare/v0.27.3...v0.27.4) (2021-04-29) + +**Note:** Version bump only for package cubejs-cli + + + + + +## [0.27.3](https://github.com/cube-js/cube.js/compare/v0.27.2...v0.27.3) (2021-04-29) + +**Note:** Version bump only for package cubejs-cli + + + + + ## [0.27.2](https://github.com/cube-js/cube.js/compare/v0.27.1...v0.27.2) (2021-04-28) **Note:** Version bump only for package cubejs-cli diff --git a/packages/cubejs-cli/package.json b/packages/cubejs-cli/package.json index df8853d77b0b..40716d75b05b 100644 --- a/packages/cubejs-cli/package.json +++ b/packages/cubejs-cli/package.json @@ -2,7 +2,7 @@ "name": "cubejs-cli", "description": "Cube.js Command Line Interface", "author": "Cube Dev, Inc.", - "version": "0.27.2", + "version": "0.27.4", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.js.git", @@ -31,7 +31,7 @@ ], "dependencies": { "@cubejs-backend/dotenv": "^9.0.2", - "@cubejs-backend/shared": "^0.27.2", + "@cubejs-backend/shared": "^0.27.4", "chalk": "^2.4.2", "cli-progress": "^3.8.2", "commander": "^2.19.0", @@ -46,7 +46,7 @@ }, "devDependencies": { "@cubejs-backend/linter": "^0.27.0", - "@cubejs-backend/server": "^0.27.2", + "@cubejs-backend/server": "^0.27.4", "@oclif/command": "^1.8.0", "@types/cli-progress": "^3.8.0", "@types/cross-spawn": "^6.0.2", diff --git a/packages/cubejs-cli/src/command/create.ts b/packages/cubejs-cli/src/command/create.ts index 06160abd3a70..039805a29400 100644 --- a/packages/cubejs-cli/src/command/create.ts +++ b/packages/cubejs-cli/src/command/create.ts @@ -163,10 +163,6 @@ const create = async (projectName, options) => { dbType: options.dbType }); - // It's placed here, because fail of it can affect whole creation. Let's do it in the end for preview period. - logStage('Installing Cube Store driver'); - await npmInstall(['@cubejs-backend/cubestore-driver'], options.template === 'docker'); - logStage(`${chalk.green(projectName)} app has been created 🎉`); console.log(); diff --git a/packages/cubejs-clickhouse-driver/CHANGELOG.md b/packages/cubejs-clickhouse-driver/CHANGELOG.md index fc7436b9f112..5b8a15810193 100644 --- a/packages/cubejs-clickhouse-driver/CHANGELOG.md +++ b/packages/cubejs-clickhouse-driver/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.27.4](https://github.com/cube-js/cube.js/compare/v0.27.3...v0.27.4) (2021-04-29) + +**Note:** Version bump only for package @cubejs-backend/clickhouse-driver + + + + + ## [0.27.2](https://github.com/cube-js/cube.js/compare/v0.27.1...v0.27.2) (2021-04-28) **Note:** Version bump only for package @cubejs-backend/clickhouse-driver diff --git a/packages/cubejs-clickhouse-driver/package.json b/packages/cubejs-clickhouse-driver/package.json index 46313236862d..71c5dd7591d9 100644 --- a/packages/cubejs-clickhouse-driver/package.json +++ b/packages/cubejs-clickhouse-driver/package.json @@ -2,7 +2,7 @@ "name": "@cubejs-backend/clickhouse-driver", "description": "Cube.js ClickHouse database driver", "author": "Cube Dev, Inc.", - "version": "0.27.2", + "version": "0.27.4", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.js.git", @@ -20,8 +20,8 @@ }, "dependencies": { "@apla/clickhouse": "^1.5.5", - "@cubejs-backend/query-orchestrator": "^0.27.2", - "@cubejs-backend/shared": "^0.27.2", + "@cubejs-backend/query-orchestrator": "^0.27.4", + "@cubejs-backend/shared": "^0.27.4", "generic-pool": "^3.6.0", "sqlstring": "^2.3.1", "uuidv4": "^6.0.2" diff --git a/packages/cubejs-client-core/index.d.ts b/packages/cubejs-client-core/index.d.ts index b563c4a2d863..73888fca1437 100644 --- a/packages/cubejs-client-core/index.d.ts +++ b/packages/cubejs-client-core/index.d.ts @@ -131,6 +131,7 @@ declare module '@cubejs-client/core' { lastRefreshTime: string; query: Query; data: T[]; + usedPreAggregations?: Record; }; export type LoadResponse = { diff --git a/packages/cubejs-cubestore-driver/CHANGELOG.md b/packages/cubejs-cubestore-driver/CHANGELOG.md index 0fa1c2e23e7a..456ac421eb90 100644 --- a/packages/cubejs-cubestore-driver/CHANGELOG.md +++ b/packages/cubejs-cubestore-driver/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.27.4](https://github.com/cube-js/cube.js/compare/v0.27.3...v0.27.4) (2021-04-29) + + +### Bug Fixes + +* **cubestore-driver:** Ping connection only when it's OPEN ([d80e157](https://github.com/cube-js/cube.js/commit/d80e157e5865318c14be534a7f8a1bc39b0ad851)) + + + + + ## [0.27.2](https://github.com/cube-js/cube.js/compare/v0.27.1...v0.27.2) (2021-04-28) **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 9c26f49e8544..d3687666c880 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": "0.27.2", + "version": "0.27.4", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.js.git", @@ -26,10 +26,10 @@ "lint:fix": "eslint --fix src/*.ts" }, "dependencies": { - "@cubejs-backend/cubestore": "^0.27.2", - "@cubejs-backend/query-orchestrator": "^0.27.2", - "@cubejs-backend/schema-compiler": "^0.27.2", - "@cubejs-backend/shared": "^0.27.2", + "@cubejs-backend/cubestore": "^0.27.4", + "@cubejs-backend/query-orchestrator": "^0.27.4", + "@cubejs-backend/schema-compiler": "^0.27.4", + "@cubejs-backend/shared": "^0.27.4", "csv-write-stream": "^2.0.0", "flatbuffers": "^1.12.0", "fs-extra": "^9.1.0", diff --git a/packages/cubejs-cubestore-driver/src/CubeStoreDriver.ts b/packages/cubejs-cubestore-driver/src/CubeStoreDriver.ts index 16781d70fc0c..bd9a78af2ffd 100644 --- a/packages/cubejs-cubestore-driver/src/CubeStoreDriver.ts +++ b/packages/cubejs-cubestore-driver/src/CubeStoreDriver.ts @@ -5,6 +5,7 @@ import { unlink } from 'fs-extra'; import tempy from 'tempy'; import csvWriter from 'csv-write-stream'; import { BaseDriver } from '@cubejs-backend/query-orchestrator'; +import { getEnv } from '@cubejs-backend/shared'; import { format as formatSql } from 'sqlstring'; import fetch from 'node-fetch'; @@ -33,11 +34,11 @@ export class CubeStoreDriver extends BaseDriver { super(); this.config = { - host: process.env.CUBEJS_DB_HOST, - port: process.env.CUBEJS_DB_PORT, - user: process.env.CUBEJS_DB_USER, - password: process.env.CUBEJS_DB_PASS, ...config, + host: config?.host || getEnv('cubeStoreHost'), + port: config?.port || getEnv('cubeStorePort'), + user: config?.user || getEnv('cubeStoreUser'), + password: config?.password || getEnv('cubeStorePass'), }; this.baseUrl = (this.config.url || `ws://${this.config.host || 'localhost'}:${this.config.port || '3030'}/`).replace(/\/ws$/, '/').replace(/\/$/, ''); this.connection = new WebSocketConnection(`${this.baseUrl}/ws`); diff --git a/packages/cubejs-cubestore-driver/src/WebSocketConnection.ts b/packages/cubejs-cubestore-driver/src/WebSocketConnection.ts index 5039f7964298..9b7176d57fb2 100644 --- a/packages/cubejs-cubestore-driver/src/WebSocketConnection.ts +++ b/packages/cubejs-cubestore-driver/src/WebSocketConnection.ts @@ -21,13 +21,15 @@ export class WebSocketConnection { webSocket.readyPromise = new Promise((resolve, reject) => { webSocket.lastHeartBeat = new Date(); const pingInterval = setInterval(() => { - if (webSocket.readyState !== WebSocket.CLOSED) { + if (webSocket.readyState === WebSocket.OPEN) { webSocket.ping(); } + if (new Date().getTime() - webSocket.lastHeartBeat.getTime() > 30000) { webSocket.close(); } }, 5000); + webSocket.sendAsync = async (message) => new Promise((resolveSend, rejectSend) => { webSocket.send(message, (err) => { if (err) { @@ -49,6 +51,7 @@ export class WebSocketConnection { }); webSocket.on('close', () => { clearInterval(pingInterval); + if (Object.keys(webSocket.sentMessages).length) { setTimeout(async () => { try { diff --git a/packages/cubejs-databricks-jdbc-driver/CHANGELOG.md b/packages/cubejs-databricks-jdbc-driver/CHANGELOG.md index cdf59440e665..0cfc48b9de1e 100644 --- a/packages/cubejs-databricks-jdbc-driver/CHANGELOG.md +++ b/packages/cubejs-databricks-jdbc-driver/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.27.4](https://github.com/cube-js/cube.js/compare/v0.27.3...v0.27.4) (2021-04-29) + +**Note:** Version bump only for package @cubejs-backend/databricks-jdbc-driver + + + + + ## [0.27.2](https://github.com/cube-js/cube.js/compare/v0.27.1...v0.27.2) (2021-04-28) **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 60d5607c50de..c16926811a2e 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": "0.27.2", + "version": "0.27.4", "license": "Apache-2.0", "repository": { "type": "git", @@ -28,10 +28,10 @@ "bin" ], "dependencies": { - "@cubejs-backend/jdbc-driver": "^0.27.2", - "@cubejs-backend/query-orchestrator": "^0.27.2", - "@cubejs-backend/schema-compiler": "^0.27.2", - "@cubejs-backend/shared": "^0.27.2", + "@cubejs-backend/jdbc-driver": "^0.27.4", + "@cubejs-backend/query-orchestrator": "^0.27.4", + "@cubejs-backend/schema-compiler": "^0.27.4", + "@cubejs-backend/shared": "^0.27.4", "inquirer": "^8.0.0", "ramda": "^0.27.1", "source-map-support": "^0.5.19" diff --git a/packages/cubejs-docker/CHANGELOG.md b/packages/cubejs-docker/CHANGELOG.md index 68aff0963ad9..7df62257d0ae 100644 --- a/packages/cubejs-docker/CHANGELOG.md +++ b/packages/cubejs-docker/CHANGELOG.md @@ -3,6 +3,22 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.27.4](https://github.com/cube-js/cube.js/compare/v0.27.3...v0.27.4) (2021-04-29) + +**Note:** Version bump only for package @cubejs-backend/docker + + + + + +## [0.27.3](https://github.com/cube-js/cube.js/compare/v0.27.2...v0.27.3) (2021-04-29) + +**Note:** Version bump only for package @cubejs-backend/docker + + + + + ## [0.27.2](https://github.com/cube-js/cube.js/compare/v0.27.1...v0.27.2) (2021-04-28) **Note:** Version bump only for package @cubejs-backend/docker diff --git a/packages/cubejs-docker/package.json b/packages/cubejs-docker/package.json index a483699715ae..b038644731f1 100644 --- a/packages/cubejs-docker/package.json +++ b/packages/cubejs-docker/package.json @@ -1,6 +1,6 @@ { "name": "@cubejs-backend/docker", - "version": "0.27.2", + "version": "0.27.4", "description": "Cube.js In Docker (virtual package)", "author": "Cube Dev, Inc.", "license": "Apache-2.0", @@ -9,25 +9,23 @@ "node": ">=10.8.0" }, "dependencies": { - "@cubejs-backend/athena-driver": "^0.27.2", - "@cubejs-backend/bigquery-driver": "^0.27.2", - "@cubejs-backend/clickhouse-driver": "^0.27.2", - "@cubejs-backend/cubestore": "^0.27.2", - "@cubejs-backend/cubestore-driver": "^0.27.2", - "@cubejs-backend/dremio-driver": "^0.27.2", - "@cubejs-backend/druid-driver": "^0.27.2", - "@cubejs-backend/elasticsearch-driver": "^0.27.2", - "@cubejs-backend/hive-driver": "^0.27.2", - "@cubejs-backend/mongobi-driver": "^0.27.2", - "@cubejs-backend/mssql-driver": "^0.27.2", - "@cubejs-backend/mysql-driver": "^0.27.2", - "@cubejs-backend/oracle-driver": "^0.27.2", - "@cubejs-backend/postgres-driver": "^0.27.2", - "@cubejs-backend/prestodb-driver": "^0.27.2", - "@cubejs-backend/server": "^0.27.2", - "@cubejs-backend/snowflake-driver": "^0.27.2", - "@cubejs-backend/sqlite-driver": "^0.27.2", - "cubejs-cli": "^0.27.2", + "@cubejs-backend/athena-driver": "^0.27.4", + "@cubejs-backend/bigquery-driver": "^0.27.4", + "@cubejs-backend/clickhouse-driver": "^0.27.4", + "@cubejs-backend/dremio-driver": "^0.27.4", + "@cubejs-backend/druid-driver": "^0.27.4", + "@cubejs-backend/elasticsearch-driver": "^0.27.4", + "@cubejs-backend/hive-driver": "^0.27.4", + "@cubejs-backend/mongobi-driver": "^0.27.4", + "@cubejs-backend/mssql-driver": "^0.27.4", + "@cubejs-backend/mysql-driver": "^0.27.4", + "@cubejs-backend/oracle-driver": "^0.27.4", + "@cubejs-backend/postgres-driver": "^0.27.4", + "@cubejs-backend/prestodb-driver": "^0.27.4", + "@cubejs-backend/server": "^0.27.4", + "@cubejs-backend/snowflake-driver": "^0.27.4", + "@cubejs-backend/sqlite-driver": "^0.27.4", + "cubejs-cli": "^0.27.4", "typescript": "~4.1.5" } } diff --git a/packages/cubejs-dremio-driver/CHANGELOG.md b/packages/cubejs-dremio-driver/CHANGELOG.md index 9b2e82f363ac..fa192725a032 100644 --- a/packages/cubejs-dremio-driver/CHANGELOG.md +++ b/packages/cubejs-dremio-driver/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.27.4](https://github.com/cube-js/cube.js/compare/v0.27.3...v0.27.4) (2021-04-29) + +**Note:** Version bump only for package @cubejs-backend/dremio-driver + + + + + ## [0.27.2](https://github.com/cube-js/cube.js/compare/v0.27.1...v0.27.2) (2021-04-28) **Note:** Version bump only for package @cubejs-backend/dremio-driver diff --git a/packages/cubejs-dremio-driver/driver/DremioDriver.js b/packages/cubejs-dremio-driver/driver/DremioDriver.js index d8d16e839aa9..5dc587f0e33b 100644 --- a/packages/cubejs-dremio-driver/driver/DremioDriver.js +++ b/packages/cubejs-dremio-driver/driver/DremioDriver.js @@ -114,13 +114,6 @@ class DremioDriver extends BaseDriver { return this.restDremioQuery('get', `/api/v3/job/${jobId}/results?offset=${offset}&limit=${limit}`); } - /** - * @protected - */ - async getJobFullResults(jobId, limit = 500, offset = 0) { - return this.restDremioQuery('get', `/api/v3/job/${jobId}/results?offset=${offset}&limit=${limit}`); - } - /** * @protected * @param {string} sql diff --git a/packages/cubejs-dremio-driver/package.json b/packages/cubejs-dremio-driver/package.json index fe835b0514fa..0e4eadf3624a 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": "0.27.2", + "version": "0.27.4", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.js.git", @@ -17,9 +17,9 @@ "lint:fix": "eslint driver/*.js" }, "dependencies": { - "@cubejs-backend/query-orchestrator": "^0.27.2", - "@cubejs-backend/schema-compiler": "^0.27.2", - "@cubejs-backend/shared": "^0.27.2", + "@cubejs-backend/query-orchestrator": "^0.27.4", + "@cubejs-backend/schema-compiler": "^0.27.4", + "@cubejs-backend/shared": "^0.27.4", "axios": "^0.21.1", "moment-timezone": "^0.5.31", "sqlstring": "^2.3.1" diff --git a/packages/cubejs-druid-driver/CHANGELOG.md b/packages/cubejs-druid-driver/CHANGELOG.md index c8746962d8c3..dfe41754c791 100644 --- a/packages/cubejs-druid-driver/CHANGELOG.md +++ b/packages/cubejs-druid-driver/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.27.4](https://github.com/cube-js/cube.js/compare/v0.27.3...v0.27.4) (2021-04-29) + +**Note:** Version bump only for package @cubejs-backend/druid-driver + + + + + ## [0.27.2](https://github.com/cube-js/cube.js/compare/v0.27.1...v0.27.2) (2021-04-28) **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 b5330a811815..2cedb1c5487b 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": "0.27.2", + "version": "0.27.4", "license": "Apache-2.0", "repository": { "type": "git", @@ -28,9 +28,9 @@ "dist/src/*" ], "dependencies": { - "@cubejs-backend/query-orchestrator": "^0.27.2", - "@cubejs-backend/schema-compiler": "^0.27.2", - "@cubejs-backend/shared": "^0.27.2", + "@cubejs-backend/query-orchestrator": "^0.27.4", + "@cubejs-backend/schema-compiler": "^0.27.4", + "@cubejs-backend/shared": "^0.27.4", "axios": "^0.21.1", "moment-timezone": "^0.5.31" }, diff --git a/packages/cubejs-elasticsearch-driver/CHANGELOG.md b/packages/cubejs-elasticsearch-driver/CHANGELOG.md index 0bdf59502688..8753d800a7f9 100644 --- a/packages/cubejs-elasticsearch-driver/CHANGELOG.md +++ b/packages/cubejs-elasticsearch-driver/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.27.4](https://github.com/cube-js/cube.js/compare/v0.27.3...v0.27.4) (2021-04-29) + +**Note:** Version bump only for package @cubejs-backend/elasticsearch-driver + + + + + ## [0.27.2](https://github.com/cube-js/cube.js/compare/v0.27.1...v0.27.2) (2021-04-28) **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 4aa97b2523eb..35cba7c41036 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": "0.27.2", + "version": "0.27.4", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.js.git", @@ -23,7 +23,7 @@ "driver" ], "dependencies": { - "@cubejs-backend/query-orchestrator": "^0.27.2", + "@cubejs-backend/query-orchestrator": "^0.27.4", "@elastic/elasticsearch": "^7.5.0", "sqlstring": "^2.3.1" }, diff --git a/packages/cubejs-hive-driver/CHANGELOG.md b/packages/cubejs-hive-driver/CHANGELOG.md index ab96ba0d4a00..b3922c6b9199 100644 --- a/packages/cubejs-hive-driver/CHANGELOG.md +++ b/packages/cubejs-hive-driver/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.27.4](https://github.com/cube-js/cube.js/compare/v0.27.3...v0.27.4) (2021-04-29) + +**Note:** Version bump only for package @cubejs-backend/hive-driver + + + + + ## [0.27.2](https://github.com/cube-js/cube.js/compare/v0.27.1...v0.27.2) (2021-04-28) **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 d1116b625b26..fa1f8ff4186a 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": "0.27.2", + "version": "0.27.4", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.js.git", @@ -13,7 +13,7 @@ }, "main": "driver/HiveDriver.js", "dependencies": { - "@cubejs-backend/query-orchestrator": "^0.27.2", + "@cubejs-backend/query-orchestrator": "^0.27.4", "generic-pool": "^3.6.0", "jshs2": "^0.4.4", "sasl-plain": "^0.1.0", diff --git a/packages/cubejs-jdbc-driver/CHANGELOG.md b/packages/cubejs-jdbc-driver/CHANGELOG.md index abc1899fc97e..9b754ec0f339 100644 --- a/packages/cubejs-jdbc-driver/CHANGELOG.md +++ b/packages/cubejs-jdbc-driver/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.27.4](https://github.com/cube-js/cube.js/compare/v0.27.3...v0.27.4) (2021-04-29) + +**Note:** Version bump only for package @cubejs-backend/jdbc-driver + + + + + ## [0.27.2](https://github.com/cube-js/cube.js/compare/v0.27.1...v0.27.2) (2021-04-28) **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 75db670e48a1..ec48dc7517dc 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": "0.27.2", + "version": "0.27.4", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.js.git", @@ -25,7 +25,7 @@ "index.js" ], "dependencies": { - "@cubejs-backend/query-orchestrator": "^0.27.2", + "@cubejs-backend/query-orchestrator": "^0.27.4", "generic-pool": "^3.1.7", "node-java-maven": "^0.1.2", "sqlstring": "^2.3.0" diff --git a/packages/cubejs-mongobi-driver/CHANGELOG.md b/packages/cubejs-mongobi-driver/CHANGELOG.md index ae8a63154948..cda38e2b8b11 100644 --- a/packages/cubejs-mongobi-driver/CHANGELOG.md +++ b/packages/cubejs-mongobi-driver/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.27.4](https://github.com/cube-js/cube.js/compare/v0.27.3...v0.27.4) (2021-04-29) + +**Note:** Version bump only for package @cubejs-backend/mongobi-driver + + + + + ## [0.27.2](https://github.com/cube-js/cube.js/compare/v0.27.1...v0.27.2) (2021-04-28) **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 8d567ab5a264..22fc07b8ae9c 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": "0.27.2", + "version": "0.27.4", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.js.git", @@ -14,7 +14,7 @@ "main": "driver/MongoBIDriver.js", "typings": "driver/index.d.ts", "dependencies": { - "@cubejs-backend/query-orchestrator": "^0.27.2", + "@cubejs-backend/query-orchestrator": "^0.27.4", "generic-pool": "^3.6.0", "mysql2": "^2.1.0" }, diff --git a/packages/cubejs-mssql-driver/CHANGELOG.md b/packages/cubejs-mssql-driver/CHANGELOG.md index d082426f96a5..88f7c13560dd 100644 --- a/packages/cubejs-mssql-driver/CHANGELOG.md +++ b/packages/cubejs-mssql-driver/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.27.4](https://github.com/cube-js/cube.js/compare/v0.27.3...v0.27.4) (2021-04-29) + +**Note:** Version bump only for package @cubejs-backend/mssql-driver + + + + + ## [0.27.2](https://github.com/cube-js/cube.js/compare/v0.27.1...v0.27.2) (2021-04-28) **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 87568e091ad7..e64195dace97 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": "0.27.2", + "version": "0.27.4", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.js.git", @@ -13,7 +13,7 @@ }, "main": "driver/MSSqlDriver.js", "dependencies": { - "@cubejs-backend/query-orchestrator": "^0.27.2", + "@cubejs-backend/query-orchestrator": "^0.27.4", "mssql": "^6.1.0" }, "license": "Apache-2.0", diff --git a/packages/cubejs-mysql-aurora-serverless-driver/CHANGELOG.md b/packages/cubejs-mysql-aurora-serverless-driver/CHANGELOG.md index 8628a870eaf9..b911f7de48e1 100644 --- a/packages/cubejs-mysql-aurora-serverless-driver/CHANGELOG.md +++ b/packages/cubejs-mysql-aurora-serverless-driver/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.27.4](https://github.com/cube-js/cube.js/compare/v0.27.3...v0.27.4) (2021-04-29) + +**Note:** Version bump only for package @cubejs-backend/mysql-aurora-serverless-driver + + + + + ## [0.27.2](https://github.com/cube-js/cube.js/compare/v0.27.1...v0.27.2) (2021-04-28) **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 2d5cc861dbe9..c764d827e2f8 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": "0.27.2", + "version": "0.27.4", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.js.git", @@ -21,7 +21,7 @@ "lint": "eslint driver/*.js test/*.js" }, "dependencies": { - "@cubejs-backend/query-orchestrator": "^0.27.2", + "@cubejs-backend/query-orchestrator": "^0.27.4", "@types/mysql": "^2.15.15", "aws-sdk": "^2.787.0", "data-api-client": "^1.1.0" diff --git a/packages/cubejs-mysql-driver/CHANGELOG.md b/packages/cubejs-mysql-driver/CHANGELOG.md index 3e4f8588b1bc..4cb324b930df 100644 --- a/packages/cubejs-mysql-driver/CHANGELOG.md +++ b/packages/cubejs-mysql-driver/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.27.4](https://github.com/cube-js/cube.js/compare/v0.27.3...v0.27.4) (2021-04-29) + +**Note:** Version bump only for package @cubejs-backend/mysql-driver + + + + + ## [0.27.2](https://github.com/cube-js/cube.js/compare/v0.27.1...v0.27.2) (2021-04-28) **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 641776b6431d..1de33d85c894 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": "0.27.2", + "version": "0.27.4", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.js.git", @@ -19,7 +19,7 @@ "lint": "eslint driver/*.js test/*.js" }, "dependencies": { - "@cubejs-backend/query-orchestrator": "^0.27.2", + "@cubejs-backend/query-orchestrator": "^0.27.4", "@types/mysql": "^2.15.15", "generic-pool": "^3.6.0", "mysql": "^2.16.0" diff --git a/packages/cubejs-oracle-driver/CHANGELOG.md b/packages/cubejs-oracle-driver/CHANGELOG.md index 9f1b11948ab4..dcc6183721b2 100644 --- a/packages/cubejs-oracle-driver/CHANGELOG.md +++ b/packages/cubejs-oracle-driver/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.27.4](https://github.com/cube-js/cube.js/compare/v0.27.3...v0.27.4) (2021-04-29) + +**Note:** Version bump only for package @cubejs-backend/oracle-driver + + + + + ## [0.27.2](https://github.com/cube-js/cube.js/compare/v0.27.1...v0.27.2) (2021-04-28) **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 21661cee393e..22fd357f7bb6 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": "Trikoz I.", - "version": "0.27.2", + "version": "0.27.4", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.js.git", @@ -13,7 +13,7 @@ }, "main": "driver/OracleDriver.js", "dependencies": { - "@cubejs-backend/query-orchestrator": "^0.27.2", + "@cubejs-backend/query-orchestrator": "^0.27.4", "oracledb": "^4.2.0", "ramda": "^0.27.0" }, diff --git a/packages/cubejs-playground/CHANGELOG.md b/packages/cubejs-playground/CHANGELOG.md index 4a5fc39d023a..d67e547b403d 100644 --- a/packages/cubejs-playground/CHANGELOG.md +++ b/packages/cubejs-playground/CHANGELOG.md @@ -3,6 +3,18 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.27.4](https://github.com/cube-js/cube.js/compare/v0.27.3...v0.27.4) (2021-04-29) + + +### Bug Fixes + +* **@cubejs-client/playground:** cache pane crash ([#2635](https://github.com/cube-js/cube.js/issues/2635)) ([405b80b](https://github.com/cube-js/cube.js/commit/405b80b4f9b14b98eb6d47803b0f1e519ce1e0c9)) +* **@cubejs-client/playground:** pass field, win host ([e3144e9](https://github.com/cube-js/cube.js/commit/e3144e9110f4d572aca56cf9393a558e4c0817d1)) + + + + + ## [0.27.2](https://github.com/cube-js/cube.js/compare/v0.27.1...v0.27.2) (2021-04-28) diff --git a/packages/cubejs-playground/package.json b/packages/cubejs-playground/package.json index 7e941813a79f..b66d34721f30 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": "0.27.2", + "version": "0.27.4", "engines": {}, "repository": { "type": "git", diff --git a/packages/cubejs-playground/src/App.tsx b/packages/cubejs-playground/src/App.tsx index f65db493140c..e1d42db5db2f 100755 --- a/packages/cubejs-playground/src/App.tsx +++ b/packages/cubejs-playground/src/App.tsx @@ -55,6 +55,7 @@ class App extends Component { setAnonymousId(context.anonymousId, { coreServerVersion: context.coreServerVersion, projectFingerprint: context.projectFingerprint, + isDocker: Boolean(context.isDocker) }); this.setState({ context }, () => { if (context.shouldStartConnectionWizardFlow) { diff --git a/packages/cubejs-playground/src/components/CachePane.tsx b/packages/cubejs-playground/src/components/CachePane.tsx index 69b87bf29923..9f847316427a 100644 --- a/packages/cubejs-playground/src/components/CachePane.tsx +++ b/packages/cubejs-playground/src/components/CachePane.tsx @@ -84,9 +84,9 @@ const CachePane = ({ query }) => ( title: 'Refresh Key Value', key: 'value', render: (text, record) => - loadResponse?.usedPreAggregations[ + loadResponse?.usedPreAggregations?.[ record.tableName - ].refreshKeyValues.map((k) => ( + ]?.refreshKeyValues.map((k) => ( 0; + + event(servedByPreAggregation ? 'load_request_success_aggregated:frontend' : 'load_request_success:frontend'); } if (resultSet || error) { diff --git a/packages/cubejs-playground/src/events.ts b/packages/cubejs-playground/src/events.ts index 2239b21ab4a1..b27d45b0bf09 100644 --- a/packages/cubejs-playground/src/events.ts +++ b/packages/cubejs-playground/src/events.ts @@ -3,13 +3,16 @@ import cookie from 'component-cookie'; import uuidv4 from 'uuid/v4'; let flushPromise = null; -let trackEvents: string[] = []; -let baseProps = {}; +let trackEvents: BaseEvent[] = []; +let baseProps = { + sentFrom: 'frontend' +}; const track = async (event) => { if (!cookie('playground_anonymous')) { cookie('playground_anonymous', uuidv4()); } + trackEvents.push({ ...baseProps, ...event, @@ -17,22 +20,21 @@ const track = async (event) => { clientAnonymousId: cookie('playground_anonymous'), clientTimestamp: new Date().toJSON(), }); - const flush = async (toFlush?: string[], retries?: number) => { + + const flush = async (toFlush?: BaseEvent[], retries: number = 10) => { if (!toFlush) { toFlush = trackEvents; trackEvents = []; } + if (!toFlush.length) { return null; } - if (retries == null) { - retries = 10; - } + try { const sentAt = new Date().toJSON(); const result = await fetch('https://track.cube.dev/track', { method: 'post', - // @ts-ignore body: JSON.stringify(toFlush.map((r) => ({ ...r, sentAt }))), headers: { 'Content-Type': 'application/json' }, }); @@ -43,7 +45,6 @@ const track = async (event) => { if (retries > 0) { return flush(toFlush, retries - 1); } - // console.log(e); } return null; }; @@ -60,15 +61,20 @@ const track = async (event) => { }; export const setAnonymousId = (anonymousId, props) => { - baseProps = props; + baseProps = { + ...baseProps, + ...props + }; track({ event: 'identify', anonymousId, ...props }); }; -export const event = (name, params) => { +type BaseEvent = Record; + +export const event = (name: string, params: BaseEvent = {}) => { track({ event: name, ...params }); }; -export const playgroundAction = (name, options = {}) => { +export const playgroundAction = (name: string, options: BaseEvent = {}) => { event('Playground Action', { name, ...options }); }; diff --git a/packages/cubejs-playground/src/pages/ConnectionWizard/ConnectionWizardPage.tsx b/packages/cubejs-playground/src/pages/ConnectionWizard/ConnectionWizardPage.tsx index 5379d8d89eb9..b6f219ef0de2 100644 --- a/packages/cubejs-playground/src/pages/ConnectionWizard/ConnectionWizardPage.tsx +++ b/packages/cubejs-playground/src/pages/ConnectionWizard/ConnectionWizardPage.tsx @@ -9,6 +9,7 @@ import { DatabaseCard, SelectedDatabaseCard } from './components/DatabaseCard'; import DatabaseForm from './components/DatabaseForm'; import { Button } from '../../atoms'; import { LocalhostTipBox } from './components/LocalhostTipBox'; +import { event, playgroundAction } from '../../events'; const { Title, Paragraph } = Typography; @@ -78,6 +79,10 @@ export default function ConnectionWizardPage({ history }) { const [testConnectionResult, setTestConnectionResult] = useState(null); const [db, selectDatabase] = useState(null); + useEffect(() => { + playgroundAction('connection_wizard_open'); + }, []); + useEffect(() => { setTestConnectionLoading(false); setTestConnectionResult(null); @@ -130,7 +135,6 @@ export default function ConnectionWizardPage({ history }) { loading={isLoading} disabled={isTestConnectionLoading} hostname={hostname} - onCancel={() => selectDatabase(null)} onSubmit={async (variables) => { try { setTestConnectionResult(null); @@ -146,12 +150,16 @@ export default function ConnectionWizardPage({ history }) { await saveConnection(variables); setLoading(false); + event('test_database_connection_success:frontend'); + history.push('/schema'); } catch (error) { setTestConnectionResult({ success: false, error, }); + + event('test_database_connection_error:frontend'); } setTestConnectionLoading(false); diff --git a/packages/cubejs-playground/src/pages/ConnectionWizard/components/DatabaseForm.tsx b/packages/cubejs-playground/src/pages/ConnectionWizard/components/DatabaseForm.tsx index a8ffa24bc3ad..804426d82dd9 100644 --- a/packages/cubejs-playground/src/pages/ConnectionWizard/components/DatabaseForm.tsx +++ b/packages/cubejs-playground/src/pages/ConnectionWizard/components/DatabaseForm.tsx @@ -1,4 +1,4 @@ -import { Button, Form, Input, Space } from 'antd'; +import { Button, Form, Input } from 'antd'; import { useEffect } from 'react'; import Base64Upload from './Base64Upload'; @@ -10,7 +10,6 @@ export default function DatabaseForm({ disabled = false, hostname = '', onSubmit, - onCancel, }) { const [form] = Form.useForm(); @@ -59,7 +58,11 @@ export default function DatabaseForm({ name={param.env} > {param.title ? ( - + param.env === 'CUBEJS_DB_PASS' ? ( + + ) : ( + + ) ) : ( diff --git a/packages/cubejs-postgres-driver/CHANGELOG.md b/packages/cubejs-postgres-driver/CHANGELOG.md index e5099c73944a..7afe1b2af649 100644 --- a/packages/cubejs-postgres-driver/CHANGELOG.md +++ b/packages/cubejs-postgres-driver/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.27.4](https://github.com/cube-js/cube.js/compare/v0.27.3...v0.27.4) (2021-04-29) + +**Note:** Version bump only for package @cubejs-backend/postgres-driver + + + + + ## [0.27.2](https://github.com/cube-js/cube.js/compare/v0.27.1...v0.27.2) (2021-04-28) **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 f8f6e32e2921..d82bc5761cd0 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": "0.27.2", + "version": "0.27.4", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.js.git", @@ -17,7 +17,7 @@ "lint": "eslint **/*.js" }, "dependencies": { - "@cubejs-backend/query-orchestrator": "^0.27.2", + "@cubejs-backend/query-orchestrator": "^0.27.4", "@types/pg": "^7.14.5", "moment": "^2.24.0", "pg": "^8.2.1" diff --git a/packages/cubejs-prestodb-driver/CHANGELOG.md b/packages/cubejs-prestodb-driver/CHANGELOG.md index c0e12457fe40..4de0de1e5109 100644 --- a/packages/cubejs-prestodb-driver/CHANGELOG.md +++ b/packages/cubejs-prestodb-driver/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.27.4](https://github.com/cube-js/cube.js/compare/v0.27.3...v0.27.4) (2021-04-29) + +**Note:** Version bump only for package @cubejs-backend/prestodb-driver + + + + + ## [0.27.2](https://github.com/cube-js/cube.js/compare/v0.27.1...v0.27.2) (2021-04-28) **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 608db6d6978a..d3e325f8fc1f 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": "0.27.2", + "version": "0.27.4", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.js.git", @@ -19,7 +19,7 @@ "lint:fix": "eslint --fix **/*.js" }, "dependencies": { - "@cubejs-backend/query-orchestrator": "^0.27.2", + "@cubejs-backend/query-orchestrator": "^0.27.4", "presto-client": "^0.8.0", "ramda": "^0.27.0", "sqlstring": "^2.3.1" diff --git a/packages/cubejs-query-orchestrator/CHANGELOG.md b/packages/cubejs-query-orchestrator/CHANGELOG.md index 35043a1c87cc..4f11418523fc 100644 --- a/packages/cubejs-query-orchestrator/CHANGELOG.md +++ b/packages/cubejs-query-orchestrator/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.27.4](https://github.com/cube-js/cube.js/compare/v0.27.3...v0.27.4) (2021-04-29) + +**Note:** Version bump only for package @cubejs-backend/query-orchestrator + + + + + ## [0.27.2](https://github.com/cube-js/cube.js/compare/v0.27.1...v0.27.2) (2021-04-28) diff --git a/packages/cubejs-query-orchestrator/package.json b/packages/cubejs-query-orchestrator/package.json index e0d054504feb..8a81d7dea511 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": "0.27.2", + "version": "0.27.4", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.js.git", @@ -31,7 +31,7 @@ "dist/src/*" ], "dependencies": { - "@cubejs-backend/shared": "^0.27.2", + "@cubejs-backend/shared": "^0.27.4", "generic-pool": "^3.7.1", "ioredis": "^4.19.4", "lru-cache": "^6.0.0", diff --git a/packages/cubejs-schema-compiler/CHANGELOG.md b/packages/cubejs-schema-compiler/CHANGELOG.md index 00dd9104614a..1699634e483a 100644 --- a/packages/cubejs-schema-compiler/CHANGELOG.md +++ b/packages/cubejs-schema-compiler/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.27.4](https://github.com/cube-js/cube.js/compare/v0.27.3...v0.27.4) (2021-04-29) + +**Note:** Version bump only for package @cubejs-backend/schema-compiler + + + + + ## [0.27.2](https://github.com/cube-js/cube.js/compare/v0.27.1...v0.27.2) (2021-04-28) diff --git a/packages/cubejs-schema-compiler/package.json b/packages/cubejs-schema-compiler/package.json index b21a2f8d341f..0fba1d822d3c 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.js schema compiler", "author": "Cube Dev, Inc.", - "version": "0.27.2", + "version": "0.27.4", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.js.git", @@ -57,7 +57,7 @@ "devDependencies": { "@apla/clickhouse": "^1.5.5", "@cubejs-backend/linter": "^0.27.0", - "@cubejs-backend/shared": "^0.27.2", + "@cubejs-backend/shared": "^0.27.4", "@types/babel__code-frame": "^7.0.2", "@types/babel__generator": "^7.6.2", "@types/babel__parser": "^7.1.1", diff --git a/packages/cubejs-server-core/CHANGELOG.md b/packages/cubejs-server-core/CHANGELOG.md index 1078cc307d19..04a3de65cd05 100644 --- a/packages/cubejs-server-core/CHANGELOG.md +++ b/packages/cubejs-server-core/CHANGELOG.md @@ -3,6 +3,28 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.27.4](https://github.com/cube-js/cube.js/compare/v0.27.3...v0.27.4) (2021-04-29) + + +### Bug Fixes + +* **cubestore-driver:** Ping connection only when it's OPEN ([d80e157](https://github.com/cube-js/cube.js/commit/d80e157e5865318c14be534a7f8a1bc39b0ad851)) + + + + + +## [0.27.3](https://github.com/cube-js/cube.js/compare/v0.27.2...v0.27.3) (2021-04-29) + + +### Bug Fixes + +* **@cubejs-server/core:** env file path ([#2622](https://github.com/cube-js/cube.js/issues/2622)) ([b9abb19](https://github.com/cube-js/cube.js/commit/b9abb195b5c73b3a0077801302721bf8ae2bdaa0)) + + + + + ## [0.27.2](https://github.com/cube-js/cube.js/compare/v0.27.1...v0.27.2) (2021-04-28) diff --git a/packages/cubejs-server-core/package.json b/packages/cubejs-server-core/package.json index a509940648ea..7f0dffe29527 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": "0.27.2", + "version": "0.27.4", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.js.git", @@ -30,12 +30,12 @@ "unit": "jest --runInBand --coverage dist/test" }, "dependencies": { - "@cubejs-backend/api-gateway": "^0.27.2", - "@cubejs-backend/cloud": "^0.27.2", + "@cubejs-backend/api-gateway": "^0.27.4", + "@cubejs-backend/cloud": "^0.27.4", "@cubejs-backend/dotenv": "^9.0.2", - "@cubejs-backend/query-orchestrator": "^0.27.2", - "@cubejs-backend/schema-compiler": "^0.27.2", - "@cubejs-backend/shared": "^0.27.2", + "@cubejs-backend/query-orchestrator": "^0.27.4", + "@cubejs-backend/schema-compiler": "^0.27.4", + "@cubejs-backend/shared": "^0.27.4", "@cubejs-backend/templates": "^0.27.0", "@hapi/joi": "^15.1.1", "codesandbox-import-utils": "^2.1.12", @@ -54,9 +54,9 @@ "uuid": "^3.3.3" }, "devDependencies": { - "@cubejs-backend/cubestore-driver": "^0.27.2", + "@cubejs-backend/cubestore-driver": "^0.27.4", "@cubejs-backend/linter": "^0.27.0", - "@cubejs-client/playground": "^0.27.2", + "@cubejs-client/playground": "^0.27.4", "@types/cross-spawn": "^6.0.2", "@types/express": "^4.17.9", "@types/fs-extra": "^9.0.8", diff --git a/packages/cubejs-server-core/src/core/server.ts b/packages/cubejs-server-core/src/core/server.ts index 89ac864b7eae..b41d24180987 100644 --- a/packages/cubejs-server-core/src/core/server.ts +++ b/packages/cubejs-server-core/src/core/server.ts @@ -255,18 +255,6 @@ export class CubejsServerCore { } } - protected getDbType(opts: CreateOptions, ctx: RequestContext) { - if (opts.dbType) { - if (typeof opts.dbType === 'function') { - return opts.dbType(ctx); - } - - return opts.dbType; - } - - return process.env.CUBEJS_DB_TYPE; - } - protected isReadyForQueryProcessing(): boolean { const dbType = this.options.dbType || process.env.CUBEJS_DB_TYPE; @@ -311,13 +299,12 @@ export class CubejsServerCore { CubeStoreDevDriver: typeof CubeStoreDevDriver, }>('@cubejs-backend/cubestore-driver', { relative: isDockerImage(), - silent: true, }); protected handleConfiguration(opts: CreateOptions): ServerCoreInitializedOptions { optionsValidate(opts); - const externalDbType = opts.externalDbType || process.env.CUBEJS_EXT_DB_TYPE; + const externalDbType = opts.externalDbType || process.env.CUBEJS_EXT_DB_TYPE || 'cubestore'; const devServer = process.env.NODE_ENV !== 'production' || process.env.CUBEJS_DEV_MODE === 'true'; const logger: LoggerFn = opts.logger || ( @@ -340,9 +327,32 @@ export class CubejsServerCore { CubejsServerCore.lookupDriverClass(externalDbType).dialectClass && CubejsServerCore.lookupDriverClass(externalDbType).dialectClass(); - if (!externalDbType && getEnv('devMode')) { - const cubeStorePackage = this.requireCubeStoreDriver(); - if (cubeStorePackage) { + if (externalDbType === 'cubestore' && getEnv('devMode') && !opts.serverless) { + const skipOnEnv = [ + // Default EXT_DB variables + 'CUBEJS_EXT_DB_URL', + 'CUBEJS_EXT_DB_HOST', + 'CUBEJS_EXT_DB_NAME', + 'CUBEJS_EXT_DB_PORT', + 'CUBEJS_EXT_DB_USER', + 'CUBEJS_EXT_DB_PASS', + // Cube Store variables + 'CUBEJS_CUBESTORE_HOST', + 'CUBEJS_CUBESTORE_PORT', + 'CUBEJS_CUBESTORE_USER', + 'CUBEJS_CUBESTORE_PASS', + ]; + + const definedExtDBVariables = skipOnEnv.filter((field) => process.env[field] !== undefined); + if (definedExtDBVariables.length > 0) { + logger('Cube Store auto provisioning disabled', { + warning: ( + 'It\'s not possible to setup auto provisioning for Cube Store, ' + + `because you define "${definedExtDBVariables.join(', ')}" env variable(s).` + ), + }); + } else { + const cubeStorePackage = this.requireCubeStoreDriver(); if (cubeStorePackage.isCubeStoreSupported()) { console.log(`🔥 Cube Store (${version}) is assigned to 3030 port.`); diff --git a/packages/cubejs-server-core/src/core/types.ts b/packages/cubejs-server-core/src/core/types.ts index ad3c7db4e414..9b9d8865029f 100644 --- a/packages/cubejs-server-core/src/core/types.ts +++ b/packages/cubejs-server-core/src/core/types.ts @@ -55,6 +55,7 @@ export interface DialectContext extends DriverContext { export interface DriverFactory {} export type DatabaseType = + | 'cubestore' | 'athena' | 'bigquery' | 'clickhouse' @@ -128,4 +129,6 @@ export interface CreateOptions { dashboardAppPort?: number; sqlCache?: boolean; livePreview?: boolean; + // Internal flag, that we use to detect serverless env + serverless?: boolean; } diff --git a/packages/cubejs-server/CHANGELOG.md b/packages/cubejs-server/CHANGELOG.md index 526875919255..8b507e49708a 100644 --- a/packages/cubejs-server/CHANGELOG.md +++ b/packages/cubejs-server/CHANGELOG.md @@ -3,6 +3,22 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.27.4](https://github.com/cube-js/cube.js/compare/v0.27.3...v0.27.4) (2021-04-29) + +**Note:** Version bump only for package @cubejs-backend/server + + + + + +## [0.27.3](https://github.com/cube-js/cube.js/compare/v0.27.2...v0.27.3) (2021-04-29) + +**Note:** Version bump only for package @cubejs-backend/server + + + + + ## [0.27.2](https://github.com/cube-js/cube.js/compare/v0.27.1...v0.27.2) (2021-04-28) **Note:** Version bump only for package @cubejs-backend/server diff --git a/packages/cubejs-server/package.json b/packages/cubejs-server/package.json index efffae3470a1..1818747495b6 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": "0.27.2", + "version": "0.27.4", "types": "index.d.ts", "repository": { "type": "git", @@ -40,9 +40,10 @@ "jest:shapshot": "jest --updateSnapshot test" }, "dependencies": { + "@cubejs-backend/cubestore-driver": "^0.27.4", "@cubejs-backend/dotenv": "^9.0.2", - "@cubejs-backend/server-core": "^0.27.2", - "@cubejs-backend/shared": "^0.27.2", + "@cubejs-backend/server-core": "^0.27.4", + "@cubejs-backend/shared": "^0.27.4", "@oclif/color": "^0.1.2", "@oclif/command": "^1.8.0", "@oclif/config": "^1.17.0", @@ -60,7 +61,7 @@ }, "devDependencies": { "@cubejs-backend/linter": "^0.27.0", - "@cubejs-backend/query-orchestrator": "^0.27.2", + "@cubejs-backend/query-orchestrator": "^0.27.4", "@oclif/dev-cli": "^1.23.1", "@types/body-parser": "^1.19.0", "@types/cors": "^2.8.8", diff --git a/packages/cubejs-serverless-aws/CHANGELOG.md b/packages/cubejs-serverless-aws/CHANGELOG.md index 80c3e975be15..39ec10234ce3 100644 --- a/packages/cubejs-serverless-aws/CHANGELOG.md +++ b/packages/cubejs-serverless-aws/CHANGELOG.md @@ -3,6 +3,22 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.27.4](https://github.com/cube-js/cube.js/compare/v0.27.3...v0.27.4) (2021-04-29) + +**Note:** Version bump only for package @cubejs-backend/serverless-aws + + + + + +## [0.27.3](https://github.com/cube-js/cube.js/compare/v0.27.2...v0.27.3) (2021-04-29) + +**Note:** Version bump only for package @cubejs-backend/serverless-aws + + + + + ## [0.27.2](https://github.com/cube-js/cube.js/compare/v0.27.1...v0.27.2) (2021-04-28) **Note:** Version bump only for package @cubejs-backend/serverless-aws diff --git a/packages/cubejs-serverless-aws/package.json b/packages/cubejs-serverless-aws/package.json index 453003fe9790..deafa5ccdc6f 100644 --- a/packages/cubejs-serverless-aws/package.json +++ b/packages/cubejs-serverless-aws/package.json @@ -2,7 +2,7 @@ "name": "@cubejs-backend/serverless-aws", "description": "Cube.js Serverless AWS support", "author": "Cube Dev, Inc.", - "version": "0.27.2", + "version": "0.27.4", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.js.git", @@ -13,7 +13,7 @@ }, "main": "index.js", "dependencies": { - "@cubejs-backend/serverless": "^0.27.2", + "@cubejs-backend/serverless": "^0.27.4", "aws-sdk": "^2.404.0" }, "devDependencies": { diff --git a/packages/cubejs-serverless-google/CHANGELOG.md b/packages/cubejs-serverless-google/CHANGELOG.md index ae0357a1fbf4..5d1a562467da 100644 --- a/packages/cubejs-serverless-google/CHANGELOG.md +++ b/packages/cubejs-serverless-google/CHANGELOG.md @@ -3,6 +3,22 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.27.4](https://github.com/cube-js/cube.js/compare/v0.27.3...v0.27.4) (2021-04-29) + +**Note:** Version bump only for package @cubejs-backend/serverless-google + + + + + +## [0.27.3](https://github.com/cube-js/cube.js/compare/v0.27.2...v0.27.3) (2021-04-29) + +**Note:** Version bump only for package @cubejs-backend/serverless-google + + + + + ## [0.27.2](https://github.com/cube-js/cube.js/compare/v0.27.1...v0.27.2) (2021-04-28) **Note:** Version bump only for package @cubejs-backend/serverless-google diff --git a/packages/cubejs-serverless-google/package.json b/packages/cubejs-serverless-google/package.json index 2a5c07c74962..c4ba391b6be1 100644 --- a/packages/cubejs-serverless-google/package.json +++ b/packages/cubejs-serverless-google/package.json @@ -2,7 +2,7 @@ "name": "@cubejs-backend/serverless-google", "description": "Cube.js Serverless Google support", "author": "Cube Dev, Inc.", - "version": "0.27.2", + "version": "0.27.4", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.js.git", @@ -13,7 +13,7 @@ }, "main": "index.js", "dependencies": { - "@cubejs-backend/serverless": "^0.27.2", + "@cubejs-backend/serverless": "^0.27.4", "@google-cloud/pubsub": "^2.5.0" }, "devDependencies": { diff --git a/packages/cubejs-serverless/CHANGELOG.md b/packages/cubejs-serverless/CHANGELOG.md index 06e28effd699..b85c6afd226f 100644 --- a/packages/cubejs-serverless/CHANGELOG.md +++ b/packages/cubejs-serverless/CHANGELOG.md @@ -3,6 +3,22 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.27.4](https://github.com/cube-js/cube.js/compare/v0.27.3...v0.27.4) (2021-04-29) + +**Note:** Version bump only for package @cubejs-backend/serverless + + + + + +## [0.27.3](https://github.com/cube-js/cube.js/compare/v0.27.2...v0.27.3) (2021-04-29) + +**Note:** Version bump only for package @cubejs-backend/serverless + + + + + ## [0.27.2](https://github.com/cube-js/cube.js/compare/v0.27.1...v0.27.2) (2021-04-28) **Note:** Version bump only for package @cubejs-backend/serverless diff --git a/packages/cubejs-serverless/Handlers.js b/packages/cubejs-serverless/Handlers.js index 21cab5cf8ad1..f4a049995272 100644 --- a/packages/cubejs-serverless/Handlers.js +++ b/packages/cubejs-serverless/Handlers.js @@ -34,6 +34,7 @@ class Handlers { constructor(options) { options = { ...options, + serverless: true, orchestratorOptions: (context) => ({ ...(options && options.orchestratorOptions), queryCacheOptions: { diff --git a/packages/cubejs-serverless/package.json b/packages/cubejs-serverless/package.json index a232911a95d2..faf28e9b236a 100644 --- a/packages/cubejs-serverless/package.json +++ b/packages/cubejs-serverless/package.json @@ -2,7 +2,7 @@ "name": "@cubejs-backend/serverless", "description": "Cube.js Serverless", "author": "Cube Dev, Inc.", - "version": "0.27.2", + "version": "0.27.4", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.js.git", @@ -13,7 +13,7 @@ }, "main": "index.js", "dependencies": { - "@cubejs-backend/server-core": "^0.27.2", + "@cubejs-backend/server-core": "^0.27.4", "cors": "^2.8.5", "serverless-express": "^2.0.11" }, diff --git a/packages/cubejs-snowflake-driver/CHANGELOG.md b/packages/cubejs-snowflake-driver/CHANGELOG.md index b951b53e39c0..7895d02320df 100644 --- a/packages/cubejs-snowflake-driver/CHANGELOG.md +++ b/packages/cubejs-snowflake-driver/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.27.4](https://github.com/cube-js/cube.js/compare/v0.27.3...v0.27.4) (2021-04-29) + +**Note:** Version bump only for package @cubejs-backend/snowflake-driver + + + + + ## [0.27.2](https://github.com/cube-js/cube.js/compare/v0.27.1...v0.27.2) (2021-04-28) **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 213a2f26b6f6..f32cd4dc4b3f 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": "0.27.2", + "version": "0.27.4", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.js.git", @@ -17,7 +17,7 @@ "lint:fix": "eslint --fix driver/*" }, "dependencies": { - "@cubejs-backend/query-orchestrator": "^0.27.2", + "@cubejs-backend/query-orchestrator": "^0.27.4", "date-fns-timezone": "^0.1.4", "snowflake-sdk": "^1.1.15" }, diff --git a/packages/cubejs-sqlite-driver/CHANGELOG.md b/packages/cubejs-sqlite-driver/CHANGELOG.md index ad3713fbe6f0..6da3ce38ced3 100644 --- a/packages/cubejs-sqlite-driver/CHANGELOG.md +++ b/packages/cubejs-sqlite-driver/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.27.4](https://github.com/cube-js/cube.js/compare/v0.27.3...v0.27.4) (2021-04-29) + +**Note:** Version bump only for package @cubejs-backend/sqlite-driver + + + + + ## [0.27.2](https://github.com/cube-js/cube.js/compare/v0.27.1...v0.27.2) (2021-04-28) **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 2c2c79ee497b..b36cae661006 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": "0.27.2", + "version": "0.27.4", "repository": { "type": "git", "url": "https://github.com/cube-js/cube.js.git", @@ -17,7 +17,7 @@ "lint": "eslint **/*.js" }, "dependencies": { - "@cubejs-backend/query-orchestrator": "^0.27.2", + "@cubejs-backend/query-orchestrator": "^0.27.4", "sqlite3": "^5.0.2" }, "license": "Apache-2.0", diff --git a/packages/cubejs-testing/CHANGELOG.md b/packages/cubejs-testing/CHANGELOG.md index 52dac11b7b74..9f60c0d5402b 100644 --- a/packages/cubejs-testing/CHANGELOG.md +++ b/packages/cubejs-testing/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.27.4](https://github.com/cube-js/cube.js/compare/v0.27.3...v0.27.4) (2021-04-29) + +**Note:** Version bump only for package @cubejs-backend/testing + + + + + ## [0.27.2](https://github.com/cube-js/cube.js/compare/v0.27.1...v0.27.2) (2021-04-28) **Note:** Version bump only for package @cubejs-backend/testing diff --git a/packages/cubejs-testing/cypress/integration/playground-docker-connection-wizard.spec.js b/packages/cubejs-testing/cypress/integration/playground-docker-connection-wizard.spec.js index f75456775e47..498a6016a680 100644 --- a/packages/cubejs-testing/cypress/integration/playground-docker-connection-wizard.spec.js +++ b/packages/cubejs-testing/cypress/integration/playground-docker-connection-wizard.spec.js @@ -54,7 +54,7 @@ context('Playground: Connection Wizard', () => { cy.getByTestId('wizard-localhost-tipbox').should('exist'); }); - it('fails to connect to the DB with wrong crednetials', () => { + it('fails to connect to the DB with wrong credentials', () => { cy.visit('/'); cy.getByTestId('wizard-db-card').contains('PostgreSQL').click(); cy.fixture('databases.json').then(({ postgresql }) => { diff --git a/packages/cubejs-testing/package.json b/packages/cubejs-testing/package.json index 8eead2b96329..a0affdb868ea 100644 --- a/packages/cubejs-testing/package.json +++ b/packages/cubejs-testing/package.json @@ -1,6 +1,6 @@ { "name": "@cubejs-backend/testing", - "version": "0.27.2", + "version": "0.27.4", "description": "Cube.js Testing Helpers", "author": "Cube Dev, Inc.", "license": "Apache-2.0", @@ -34,7 +34,7 @@ "birdbox-fixtures" ], "dependencies": { - "@cubejs-backend/shared": "^0.27.2", + "@cubejs-backend/shared": "^0.27.4", "@cubejs-client/ws-transport": "^0.27.0", "fs-extra": "^8.1.0", "http-proxy": "^1.18.1", diff --git a/rust/CHANGELOG.md b/rust/CHANGELOG.md index a459f24081ec..2dbe17133c74 100644 --- a/rust/CHANGELOG.md +++ b/rust/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.27.4](https://github.com/cube-js/cube.js/compare/v0.27.3...v0.27.4) (2021-04-29) + + +### Bug Fixes + +* **cubestore:** make top-k scan less batches ([486ee32](https://github.com/cube-js/cube.js/commit/486ee328f7625fd9fb2c490ec68e1fcd2c4c8a50)) + + + + + ## [0.27.2](https://github.com/cube-js/cube.js/compare/v0.27.1...v0.27.2) (2021-04-28) **Note:** Version bump only for package @cubejs-backend/cubestore diff --git a/rust/cubestore/src/metastore/mod.rs b/rust/cubestore/src/metastore/mod.rs index a1f8d24f0bfe..3f1867f33c14 100644 --- a/rust/cubestore/src/metastore/mod.rs +++ b/rust/cubestore/src/metastore/mod.rs @@ -1856,15 +1856,20 @@ impl RocksMetaStore { v?; } - let current_metastore_file = remote_fs.local_file("metastore-current").await?; + let uploads_dir = remote_fs.uploads_dir().await?; + let (file, file_path) = tokio::task::spawn_blocking(move || { + tempfile::Builder::new() + .prefix("metastore-current") + .tempfile_in(uploads_dir) + }) + .await?? + .into_parts(); - { - let mut file = File::create(¤t_metastore_file).await?; - tokio::io::AsyncWriteExt::write_all(&mut file, remote_path.as_bytes()).await?; - } + tokio::io::AsyncWriteExt::write_all(&mut fs::File::from_std(file), remote_path.as_bytes()) + .await?; remote_fs - .upload_file(¤t_metastore_file, "metastore-current") + .upload_file(file_path.keep()?.to_str().unwrap(), "metastore-current") .await?; Ok(()) diff --git a/rust/cubestore/src/queryplanner/topk/execute.rs b/rust/cubestore/src/queryplanner/topk/execute.rs index 369e8d98df53..c03921e49548 100644 --- a/rust/cubestore/src/queryplanner/topk/execute.rs +++ b/rust/cubestore/src/queryplanner/topk/execute.rs @@ -2,6 +2,7 @@ use crate::queryplanner::topk::SortColumn; use arrow::array::ArrayRef; use arrow::compute::SortOptions; use arrow::datatypes::SchemaRef; +use arrow::error::ArrowError; use arrow::record_batch::RecordBatch; use async_trait::async_trait; use datafusion::error::DataFusionError; @@ -18,7 +19,7 @@ use datafusion::physical_plan::{ }; use datafusion::scalar::ScalarValue; use flatbuffers::bitflags::_core::cmp::Ordering; -use futures::StreamExt; +use futures::{Stream, StreamExt}; use itertools::Itertools; use smallvec::smallvec; use smallvec::SmallVec; @@ -153,7 +154,7 @@ impl ExecutionPlan for AggregateTopKExec { let cluster = self.cluster.clone(); tasks.push(tokio::spawn(async move { // fuse the streams to simplify further code. - cluster.execute(p).await.map(|s| s.fuse()) + cluster.execute(p).await.map(|s| (s.schema(), s.fuse())) })); } let mut streams = Vec::with_capacity(nodes); @@ -175,22 +176,17 @@ impl ExecutionPlan for AggregateTopKExec { &self.agg_descr, &mut buffer, )?; + let mut wanted_nodes = vec![true; nodes]; let mut batches = Vec::with_capacity(nodes); 'processing: loop { assert!(batches.is_empty()); - for s in &mut streams { + for i in 0..nodes { + let (schema, s) = &mut streams[i]; let batch; - loop { - if let Some(b) = s.next().await { - let b = b?; - if b.num_rows() == 0 { - continue; - } - batch = Some(b); - } else { - batch = None; - } - break; + if wanted_nodes[i] { + batch = next_non_empty(s).await?; + } else { + batch = Some(RecordBatch::new_empty(schema.clone())) } batches.push(batch); } @@ -199,6 +195,7 @@ impl ExecutionPlan for AggregateTopKExec { batches.clear(); break 'processing; } + state.populate_wanted_nodes(&mut wanted_nodes); batches.clear(); } @@ -337,6 +334,25 @@ impl TopKState<'_> { }) } + /// Sets `wanted_nodes[i]` iff we need to scan the node `i` to make progress on top candidate. + pub fn populate_wanted_nodes(&self, wanted_nodes: &mut Vec) { + let candidate = self.sorted.first(); + if candidate.is_none() { + for i in 0..wanted_nodes.len() { + wanted_nodes[i] = true; + } + return; + } + + let candidate = candidate.unwrap(); + let buf = self.buffer.lock().unwrap(); + let candidate_nodes = &buf[candidate.index].nodes; + assert_eq!(candidate_nodes.len(), wanted_nodes.len()); + for i in 0..wanted_nodes.len() { + wanted_nodes[i] = !candidate_nodes[i]; + } + } + pub fn update(&mut self, batches: &mut [Option]) -> Result { let num_nodes = batches.len(); assert_eq!(num_nodes, self.finished_nodes.len()); @@ -505,7 +521,6 @@ impl TopKState<'_> { candidate = self.sorted.pop_first().unwrap(); } } - self.top.push(candidate.index); } return Ok(self.top.len() == self.limit || self.finished_nodes.iter().all(|f| *f)); @@ -1219,3 +1234,20 @@ mod tests { rows } } + +async fn next_non_empty(s: &mut S) -> Result, ArrowError> +where + S: Stream> + Unpin, +{ + loop { + if let Some(b) = s.next().await { + let b = b?; + if b.num_rows() == 0 { + continue; + } + return Ok(Some(b)); + } else { + return Ok(None); + } + } +} diff --git a/rust/cubestore/src/remotefs/gcs.rs b/rust/cubestore/src/remotefs/gcs.rs index 1c5ea7f65b38..6ad834b47514 100644 --- a/rust/cubestore/src/remotefs/gcs.rs +++ b/rust/cubestore/src/remotefs/gcs.rs @@ -52,13 +52,12 @@ impl RemoteFs for GCSRemoteFs { let time = SystemTime::now(); debug!("Uploading {}", remote_path); let file = File::open(temp_upload_path).await?; - let size = file.metadata().await?.len(); let stream = FramedRead::new(file, BytesCodec::new()); let stream = stream.map(|r| r.map(|b| b.to_vec())); Object::create_streamed( self.bucket.as_str(), stream, - Some(size), + None, self.gcs_path(remote_path).as_str(), "application/octet-stream", ) diff --git a/rust/cubestore/src/remotefs/mod.rs b/rust/cubestore/src/remotefs/mod.rs index 96d346d63c18..ec78fce2a165 100644 --- a/rust/cubestore/src/remotefs/mod.rs +++ b/rust/cubestore/src/remotefs/mod.rs @@ -43,6 +43,20 @@ pub trait RemoteFs: DIService + Send + Sync + Debug { self.local_file(&format!("uploads/{}", remote_path)).await } + /// Convention is to use this directory for creating files to be uploaded later. + async fn uploads_dir(&self) -> Result { + // Call to `temp_upload_path` ensures we created the uploads dir. + let file_in_dir = self + .temp_upload_path("never_created_remote_fs_file") + .await?; + Ok(Path::new(&file_in_dir) + .parent() + .unwrap() + .to_str() + .unwrap() + .to_owned()) + } + /// In addition to uploading this file to the remote filesystem, this function moves the file /// from `temp_upload_path` to `self.local_path(remote_path)` on the local file system. async fn upload_file(&self, temp_upload_path: &str, remote_path: &str) diff --git a/rust/package.json b/rust/package.json index 30a003000e31..8938438fa823 100644 --- a/rust/package.json +++ b/rust/package.json @@ -1,6 +1,6 @@ { "name": "@cubejs-backend/cubestore", - "version": "0.27.2", + "version": "0.27.4", "description": "Cube.js pre-aggregation storage layer.", "main": "dist/index.js", "typings": "dist/index.d.ts", @@ -37,7 +37,7 @@ "access": "public" }, "dependencies": { - "@cubejs-backend/shared": "^0.27.2", + "@cubejs-backend/shared": "^0.27.4", "@octokit/core": "^3.2.5", "source-map-support": "^0.5.19" }, diff --git a/yarn.lock b/yarn.lock index e5b2c300c129..b8de6463aa32 100644 --- a/yarn.lock +++ b/yarn.lock @@ -345,10 +345,10 @@ dependencies: "@babel/highlight" "^7.12.13" -"@babel/compat-data@^7.12.1", "@babel/compat-data@^7.13.11", "@babel/compat-data@^7.13.15", "@babel/compat-data@^7.13.8", "@babel/compat-data@^7.9.6": - version "7.13.15" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.13.15.tgz#7e8eea42d0b64fda2b375b22d06c605222e848f4" - integrity sha512-ltnibHKR1VnrU4ymHyQ/CXtNXI6yZC0oJThyW78Hft8XndANwi+9H+UIklBDraIjFEJzw8wmcM427oDd9KS5wA== +"@babel/compat-data@^7.12.1", "@babel/compat-data@^7.13.11", "@babel/compat-data@^7.13.15", "@babel/compat-data@^7.13.8", "@babel/compat-data@^7.14.0", "@babel/compat-data@^7.9.6": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.14.0.tgz#a901128bce2ad02565df95e6ecbf195cf9465919" + integrity sha512-vu9V3uMM/1o5Hl5OekMUowo3FqXLJSw+s+66nt0fSWVWTtmosdzn45JHOB3cPtZoe6CTBDzvSw0RdOY85Q37+Q== "@babel/core@7.12.3": version "7.12.3" @@ -395,19 +395,19 @@ source-map "^0.5.0" "@babel/core@^7.0.0", "@babel/core@^7.1.0", "@babel/core@^7.11.0", "@babel/core@^7.12.10", "@babel/core@^7.12.3", "@babel/core@^7.13.8", "@babel/core@^7.3.3", "@babel/core@^7.7.5", "@babel/core@^7.8.4", "@babel/core@^7.9.0": - version "7.13.16" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.13.16.tgz#7756ab24396cc9675f1c3fcd5b79fcce192ea96a" - integrity sha512-sXHpixBiWWFti0AV2Zq7avpTasr6sIAu7Y396c608541qAU2ui4a193m0KSQmfPSKFZLnQ3cvlKDOm3XkuXm3Q== + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.14.0.tgz#47299ff3ec8d111b493f1a9d04bf88c04e728d88" + integrity sha512-8YqpRig5NmIHlMLw09zMlPTvUVMILjqCOtVgu+TVNWEBvy9b5I3RRyhqnrV4hjgEK7n8P9OqvkWJAFmEL6Wwfw== dependencies: "@babel/code-frame" "^7.12.13" - "@babel/generator" "^7.13.16" + "@babel/generator" "^7.14.0" "@babel/helper-compilation-targets" "^7.13.16" - "@babel/helper-module-transforms" "^7.13.14" - "@babel/helpers" "^7.13.16" - "@babel/parser" "^7.13.16" + "@babel/helper-module-transforms" "^7.14.0" + "@babel/helpers" "^7.14.0" + "@babel/parser" "^7.14.0" "@babel/template" "^7.12.13" - "@babel/traverse" "^7.13.15" - "@babel/types" "^7.13.16" + "@babel/traverse" "^7.14.0" + "@babel/types" "^7.14.0" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" @@ -425,12 +425,12 @@ lodash "^4.17.13" source-map "^0.5.0" -"@babel/generator@^7.12.1", "@babel/generator@^7.12.10", "@babel/generator@^7.13.16", "@babel/generator@^7.4.0", "@babel/generator@^7.9.6": - version "7.13.16" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.13.16.tgz#0befc287031a201d84cdfc173b46b320ae472d14" - integrity sha512-grBBR75UnKOcUWMp8WoDxNsWCFl//XCK6HWTrBQKTr5SV9f5g0pNOjdyzi/DTBv12S9GnYPInIXQBTky7OXEMg== +"@babel/generator@^7.12.1", "@babel/generator@^7.12.10", "@babel/generator@^7.14.0", "@babel/generator@^7.4.0", "@babel/generator@^7.9.6": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.14.0.tgz#0f35d663506c43e4f10898fbda0d752ec75494be" + integrity sha512-C6u00HbmsrNPug6A+CiNl8rEys7TsdcXwg12BHi2ca5rUfAs3+UwZsuDQSXnc+wCElCXMB8gMaJ3YXDdh8fAlg== dependencies: - "@babel/types" "^7.13.16" + "@babel/types" "^7.14.0" jsesc "^2.5.1" source-map "^0.5.0" @@ -449,7 +449,7 @@ "@babel/helper-explode-assignable-expression" "^7.12.13" "@babel/types" "^7.12.13" -"@babel/helper-compilation-targets@^7.12.1", "@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.13.13", "@babel/helper-compilation-targets@^7.13.16", "@babel/helper-compilation-targets@^7.13.8", "@babel/helper-compilation-targets@^7.9.6": +"@babel/helper-compilation-targets@^7.12.1", "@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.13.16", "@babel/helper-compilation-targets@^7.13.8", "@babel/helper-compilation-targets@^7.9.6": version "7.13.16" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.16.tgz#6e91dccf15e3f43e5556dffe32d860109887563c" integrity sha512-3gmkYIrpqsLlieFwjkGgLaSHmhnvlAYzZLlYVjlW+QwI+1zE17kGxuJGmIqDQdYp56XdmGeD+Bswx0UTyG18xA== @@ -459,15 +459,16 @@ browserslist "^4.14.5" semver "^6.3.0" -"@babel/helper-create-class-features-plugin@^7.12.1", "@babel/helper-create-class-features-plugin@^7.13.0", "@babel/helper-create-class-features-plugin@^7.13.11": - version "7.13.11" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.13.11.tgz#30d30a005bca2c953f5653fc25091a492177f4f6" - integrity sha512-ays0I7XYq9xbjCSvT+EvysLgfc3tOkwCULHjrnscGT3A9qD4sk3wXnJ3of0MAWsWGjdinFvajHU2smYuqXKMrw== +"@babel/helper-create-class-features-plugin@^7.12.1", "@babel/helper-create-class-features-plugin@^7.13.0", "@babel/helper-create-class-features-plugin@^7.13.11", "@babel/helper-create-class-features-plugin@^7.14.0": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.0.tgz#38367d3dab125b12f94273de418f4df23a11a15e" + integrity sha512-6pXDPguA5zC40Y8oI5mqr+jEUpjMJonKvknvA+vD8CYDz5uuXEwWBK8sRAsE/t3gfb1k15AQb9RhwpscC4nUJQ== dependencies: + "@babel/helper-annotate-as-pure" "^7.12.13" "@babel/helper-function-name" "^7.12.13" - "@babel/helper-member-expression-to-functions" "^7.13.0" + "@babel/helper-member-expression-to-functions" "^7.13.12" "@babel/helper-optimise-call-expression" "^7.12.13" - "@babel/helper-replace-supers" "^7.13.0" + "@babel/helper-replace-supers" "^7.13.12" "@babel/helper-split-export-declaration" "^7.12.13" "@babel/helper-create-regexp-features-plugin@^7.12.13": @@ -523,7 +524,7 @@ "@babel/traverse" "^7.13.15" "@babel/types" "^7.13.16" -"@babel/helper-member-expression-to-functions@^7.13.0", "@babel/helper-member-expression-to-functions@^7.13.12": +"@babel/helper-member-expression-to-functions@^7.13.12": version "7.13.12" resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz#dfe368f26d426a07299d8d6513821768216e6d72" integrity sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw== @@ -537,19 +538,19 @@ dependencies: "@babel/types" "^7.13.12" -"@babel/helper-module-transforms@^7.12.1", "@babel/helper-module-transforms@^7.13.0", "@babel/helper-module-transforms@^7.13.14", "@babel/helper-module-transforms@^7.9.0": - version "7.13.14" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.13.14.tgz#e600652ba48ccb1641775413cb32cfa4e8b495ef" - integrity sha512-QuU/OJ0iAOSIatyVZmfqB0lbkVP0kDRiKj34xy+QNsnVZi/PA6BoSoreeqnxxa9EHFAIL0R9XOaAR/G9WlIy5g== +"@babel/helper-module-transforms@^7.12.1", "@babel/helper-module-transforms@^7.13.0", "@babel/helper-module-transforms@^7.14.0", "@babel/helper-module-transforms@^7.9.0": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.14.0.tgz#8fcf78be220156f22633ee204ea81f73f826a8ad" + integrity sha512-L40t9bxIuGOfpIGA3HNkJhU9qYrf4y5A5LUSw7rGMSn+pcG8dfJ0g6Zval6YJGd2nEjI7oP00fRdnhLKndx6bw== dependencies: "@babel/helper-module-imports" "^7.13.12" "@babel/helper-replace-supers" "^7.13.12" "@babel/helper-simple-access" "^7.13.12" "@babel/helper-split-export-declaration" "^7.12.13" - "@babel/helper-validator-identifier" "^7.12.11" + "@babel/helper-validator-identifier" "^7.14.0" "@babel/template" "^7.12.13" - "@babel/traverse" "^7.13.13" - "@babel/types" "^7.13.14" + "@babel/traverse" "^7.14.0" + "@babel/types" "^7.14.0" "@babel/helper-optimise-call-expression@^7.12.13": version "7.12.13" @@ -582,7 +583,7 @@ "@babel/traverse" "^7.13.0" "@babel/types" "^7.13.12" -"@babel/helper-simple-access@^7.12.13", "@babel/helper-simple-access@^7.13.12": +"@babel/helper-simple-access@^7.13.12": version "7.13.12" resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz#dd6c538afb61819d205a012c31792a39c7a5eaf6" integrity sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA== @@ -603,10 +604,10 @@ dependencies: "@babel/types" "^7.12.13" -"@babel/helper-validator-identifier@^7.12.11": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed" - integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw== +"@babel/helper-validator-identifier@^7.12.11", "@babel/helper-validator-identifier@^7.14.0": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz#d26cad8a47c65286b15df1547319a5d0bcf27288" + integrity sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A== "@babel/helper-validator-option@^7.12.1", "@babel/helper-validator-option@^7.12.17": version "7.12.17" @@ -623,28 +624,28 @@ "@babel/traverse" "^7.13.0" "@babel/types" "^7.13.0" -"@babel/helpers@^7.12.1", "@babel/helpers@^7.13.16", "@babel/helpers@^7.9.6": - version "7.13.17" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.13.17.tgz#b497c7a00e9719d5b613b8982bda6ed3ee94caf6" - integrity sha512-Eal4Gce4kGijo1/TGJdqp3WuhllaMLSrW6XcL0ulyUAQOuxHcCafZE8KHg9857gcTehsm/v7RcOx2+jp0Ryjsg== +"@babel/helpers@^7.12.1", "@babel/helpers@^7.14.0", "@babel/helpers@^7.9.6": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.14.0.tgz#ea9b6be9478a13d6f961dbb5f36bf75e2f3b8f62" + integrity sha512-+ufuXprtQ1D1iZTO/K9+EBRn+qPWMJjZSw/S0KlFrxCw4tkrzv9grgpDHkY9MeQTjTY8i2sp7Jep8DfU6tN9Mg== dependencies: "@babel/template" "^7.12.13" - "@babel/traverse" "^7.13.17" - "@babel/types" "^7.13.17" + "@babel/traverse" "^7.14.0" + "@babel/types" "^7.14.0" "@babel/highlight@^7.10.4", "@babel/highlight@^7.12.13": - version "7.13.10" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.13.10.tgz#a8b2a66148f5b27d666b15d81774347a731d52d1" - integrity sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg== + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.0.tgz#3197e375711ef6bf834e67d0daec88e4f46113cf" + integrity sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg== dependencies: - "@babel/helper-validator-identifier" "^7.12.11" + "@babel/helper-validator-identifier" "^7.14.0" chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@*", "@babel/parser@^7.1.0", "@babel/parser@^7.12.10", "@babel/parser@^7.12.13", "@babel/parser@^7.12.3", "@babel/parser@^7.13.16", "@babel/parser@^7.4.3", "@babel/parser@^7.7.0", "@babel/parser@^7.8.6", "@babel/parser@^7.9.6": - version "7.13.16" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.13.16.tgz#0f18179b0448e6939b1f3f5c4c355a3a9bcdfd37" - integrity sha512-6bAg36mCwuqLO0hbR+z7PHuqWiCeP7Dzg73OpQwsAB1Eb8HnGEz5xYBzCfbu+YjoaJsJs+qheDxVAuqbt3ILEw== +"@babel/parser@*", "@babel/parser@^7.1.0", "@babel/parser@^7.12.10", "@babel/parser@^7.12.13", "@babel/parser@^7.12.3", "@babel/parser@^7.14.0", "@babel/parser@^7.4.3", "@babel/parser@^7.7.0", "@babel/parser@^7.8.6", "@babel/parser@^7.9.6": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.0.tgz#2f0ebfed92bcddcc8395b91f1895191ce2760380" + integrity sha512-AHbfoxesfBALg33idaTBVUkLnfXtsgvJREf93p4p0Lwsz4ppfE7g1tpEXVm4vrxUcH4DVhAa9Z1m1zqf9WUC7Q== "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.13.12": version "7.13.12" @@ -680,6 +681,14 @@ "@babel/helper-create-class-features-plugin" "^7.13.0" "@babel/helper-plugin-utils" "^7.13.0" +"@babel/plugin-proposal-class-static-block@^7.13.11": + version "7.13.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.13.11.tgz#6fcbba4a962702c17e5371a0c7b39afde186d703" + integrity sha512-fJTdFI4bfnMjvxJyNuaf8i9mVcZ0UhetaGEUHaHV9KEnibLugJkZAtXikR8KcYj+NYmI4DZMS8yQAyg+hvfSqg== + dependencies: + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-class-static-block" "^7.12.13" + "@babel/plugin-proposal-decorators@7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.12.1.tgz#59271439fed4145456c41067450543aee332d15f" @@ -807,6 +816,16 @@ "@babel/helper-create-class-features-plugin" "^7.13.0" "@babel/helper-plugin-utils" "^7.13.0" +"@babel/plugin-proposal-private-property-in-object@^7.14.0": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.14.0.tgz#b1a1f2030586b9d3489cc26179d2eb5883277636" + integrity sha512-59ANdmEwwRUkLjB7CRtwJxxwtjESw+X2IePItA+RGQh+oy5RmpCh/EvVVvh5XQc3yxsm5gtv0+i9oBZhaDNVTg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.12.13" + "@babel/helper-create-class-features-plugin" "^7.14.0" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-private-property-in-object" "^7.14.0" + "@babel/plugin-proposal-unicode-property-regex@^7.12.1", "@babel/plugin-proposal-unicode-property-regex@^7.12.13", "@babel/plugin-proposal-unicode-property-regex@^7.2.0", "@babel/plugin-proposal-unicode-property-regex@^7.4.4", "@babel/plugin-proposal-unicode-property-regex@^7.8.3": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.13.tgz#bebde51339be829c17aaaaced18641deb62b39ba" @@ -836,6 +855,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.12.13" +"@babel/plugin-syntax-class-static-block@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.12.13.tgz#8e3d674b0613e67975ceac2776c97b60cafc5c9c" + integrity sha512-ZmKQ0ZXR0nYpHZIIuj9zE7oIqCx2hw9TKi+lIo73NNrMPAZGHfS92/VRV0ZmPj6H2ffBgyFHXvJ5NYsNeEaP2A== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/plugin-syntax-decorators@^7.12.1", "@babel/plugin-syntax-decorators@^7.12.13": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.12.13.tgz#fac829bf3c7ef4a1bc916257b403e58c6bdaf648" @@ -927,6 +953,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" +"@babel/plugin-syntax-private-property-in-object@^7.14.0": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.0.tgz#762a4babec61176fec6c88480dec40372b140c0b" + integrity sha512-bda3xF8wGl5/5btF794utNOL0Jw+9jE5C1sLZcoK7c4uonE/y3iQiyG+KbkF3WBV/paX58VCpjhxLPkdj5Fe4w== + dependencies: + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-top-level-await@^7.12.1", "@babel/plugin-syntax-top-level-await@^7.12.13", "@babel/plugin-syntax-top-level-await@^7.8.3": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz#c5f0fa6e249f5b739727f923540cf7a806130178" @@ -964,7 +997,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-block-scoping@^7.12.1", "@babel/plugin-transform-block-scoping@^7.12.13", "@babel/plugin-transform-block-scoping@^7.3.4", "@babel/plugin-transform-block-scoping@^7.8.3": +"@babel/plugin-transform-block-scoping@^7.12.1", "@babel/plugin-transform-block-scoping@^7.13.16", "@babel/plugin-transform-block-scoping@^7.3.4", "@babel/plugin-transform-block-scoping@^7.8.3": version "7.13.16" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.13.16.tgz#a9c0f10794855c63b1d629914c7dcfeddd185892" integrity sha512-ad3PHUxGnfWF4Efd3qFuznEtZKoBp0spS+DgqzVzRPV7urEBvPLue3y2j80w4Jf2YLzZHj8TOv/Lmvdmh3b2xg== @@ -991,7 +1024,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-transform-destructuring@^7.12.1", "@babel/plugin-transform-destructuring@^7.13.0", "@babel/plugin-transform-destructuring@^7.2.0", "@babel/plugin-transform-destructuring@^7.9.5": +"@babel/plugin-transform-destructuring@^7.12.1", "@babel/plugin-transform-destructuring@^7.13.17", "@babel/plugin-transform-destructuring@^7.2.0", "@babel/plugin-transform-destructuring@^7.9.5": version "7.13.17" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.13.17.tgz#678d96576638c19d5b36b332504d3fd6e06dea27" integrity sha512-UAUqiLv+uRLO+xuBKKMEpC+t7YRNVRqBsWWq1yKXbBZBje/t3IXCiSinZhjn/DC3qzBfICeYd2EFGEbHsh5RLA== @@ -1058,23 +1091,23 @@ dependencies: "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-modules-amd@^7.12.1", "@babel/plugin-transform-modules-amd@^7.13.0", "@babel/plugin-transform-modules-amd@^7.2.0", "@babel/plugin-transform-modules-amd@^7.9.6": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.13.0.tgz#19f511d60e3d8753cc5a6d4e775d3a5184866cc3" - integrity sha512-EKy/E2NHhY/6Vw5d1k3rgoobftcNUmp9fGjb9XZwQLtTctsRBOTRO7RHHxfIky1ogMN5BxN7p9uMA3SzPfotMQ== +"@babel/plugin-transform-modules-amd@^7.12.1", "@babel/plugin-transform-modules-amd@^7.14.0", "@babel/plugin-transform-modules-amd@^7.2.0", "@babel/plugin-transform-modules-amd@^7.9.6": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.0.tgz#589494b5b290ff76cf7f59c798011f6d77026553" + integrity sha512-CF4c5LX4LQ03LebQxJ5JZes2OYjzBuk1TdiF7cG7d5dK4lAdw9NZmaxq5K/mouUdNeqwz3TNjnW6v01UqUNgpQ== dependencies: - "@babel/helper-module-transforms" "^7.13.0" + "@babel/helper-module-transforms" "^7.14.0" "@babel/helper-plugin-utils" "^7.13.0" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-commonjs@^7.12.1", "@babel/plugin-transform-modules-commonjs@^7.13.8", "@babel/plugin-transform-modules-commonjs@^7.2.0", "@babel/plugin-transform-modules-commonjs@^7.9.6": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.13.8.tgz#7b01ad7c2dcf2275b06fa1781e00d13d420b3e1b" - integrity sha512-9QiOx4MEGglfYZ4XOnU79OHr6vIWUakIj9b4mioN8eQIoEh+pf5p/zEB36JpDFWA12nNMiRf7bfoRvl9Rn79Bw== +"@babel/plugin-transform-modules-commonjs@^7.12.1", "@babel/plugin-transform-modules-commonjs@^7.14.0", "@babel/plugin-transform-modules-commonjs@^7.2.0", "@babel/plugin-transform-modules-commonjs@^7.9.6": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.0.tgz#52bc199cb581e0992edba0f0f80356467587f161" + integrity sha512-EX4QePlsTaRZQmw9BsoPeyh5OCtRGIhwfLquhxGp5e32w+dyL8htOcDwamlitmNFK6xBZYlygjdye9dbd9rUlQ== dependencies: - "@babel/helper-module-transforms" "^7.13.0" + "@babel/helper-module-transforms" "^7.14.0" "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-simple-access" "^7.12.13" + "@babel/helper-simple-access" "^7.13.12" babel-plugin-dynamic-import-node "^2.3.3" "@babel/plugin-transform-modules-systemjs@^7.12.1", "@babel/plugin-transform-modules-systemjs@^7.13.8", "@babel/plugin-transform-modules-systemjs@^7.3.4", "@babel/plugin-transform-modules-systemjs@^7.9.6": @@ -1088,12 +1121,12 @@ "@babel/helper-validator-identifier" "^7.12.11" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-umd@^7.12.1", "@babel/plugin-transform-modules-umd@^7.13.0", "@babel/plugin-transform-modules-umd@^7.2.0", "@babel/plugin-transform-modules-umd@^7.9.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.13.0.tgz#8a3d96a97d199705b9fd021580082af81c06e70b" - integrity sha512-D/ILzAh6uyvkWjKKyFE/W0FzWwasv6vPTSqPcjxFqn6QpX3u8DjRVliq4F2BamO2Wee/om06Vyy+vPkNrd4wxw== +"@babel/plugin-transform-modules-umd@^7.12.1", "@babel/plugin-transform-modules-umd@^7.14.0", "@babel/plugin-transform-modules-umd@^7.2.0", "@babel/plugin-transform-modules-umd@^7.9.0": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.0.tgz#2f8179d1bbc9263665ce4a65f305526b2ea8ac34" + integrity sha512-nPZdnWtXXeY7I87UZr9VlsWme3Y0cfFFE41Wbxz4bbaexAjNMInXPFUpRRUJ8NoMm0Cw+zxbqjdPmLhcjfazMw== dependencies: - "@babel/helper-module-transforms" "^7.13.0" + "@babel/helper-module-transforms" "^7.14.0" "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-transform-named-capturing-groups-regex@^7.12.1", "@babel/plugin-transform-named-capturing-groups-regex@^7.12.13", "@babel/plugin-transform-named-capturing-groups-regex@^7.3.0", "@babel/plugin-transform-named-capturing-groups-regex@^7.8.3": @@ -1487,17 +1520,18 @@ semver "^5.3.0" "@babel/preset-env@^7.12.10", "@babel/preset-env@^7.13.9", "@babel/preset-env@^7.3.1", "@babel/preset-env@^7.8.4", "@babel/preset-env@^7.9.5": - version "7.13.15" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.13.15.tgz#c8a6eb584f96ecba183d3d414a83553a599f478f" - integrity sha512-D4JAPMXcxk69PKe81jRJ21/fP/uYdcTZ3hJDF5QX2HSI9bBxxYw/dumdR6dGumhjxlprHPE4XWoPaqzZUVy2MA== + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.14.0.tgz#236f88cd5da625e625dd40500d4824523f50e6c5" + integrity sha512-GWRCdBv2whxqqaSi7bo/BEXf070G/fWFMEdCnmoRg2CZJy4GK06ovFuEjJrZhDRXYgBsYtxVbG8GUHvw+UWBkQ== dependencies: - "@babel/compat-data" "^7.13.15" - "@babel/helper-compilation-targets" "^7.13.13" + "@babel/compat-data" "^7.14.0" + "@babel/helper-compilation-targets" "^7.13.16" "@babel/helper-plugin-utils" "^7.13.0" "@babel/helper-validator-option" "^7.12.17" "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.13.12" "@babel/plugin-proposal-async-generator-functions" "^7.13.15" "@babel/plugin-proposal-class-properties" "^7.13.0" + "@babel/plugin-proposal-class-static-block" "^7.13.11" "@babel/plugin-proposal-dynamic-import" "^7.13.8" "@babel/plugin-proposal-export-namespace-from" "^7.12.13" "@babel/plugin-proposal-json-strings" "^7.13.8" @@ -1508,9 +1542,11 @@ "@babel/plugin-proposal-optional-catch-binding" "^7.13.8" "@babel/plugin-proposal-optional-chaining" "^7.13.12" "@babel/plugin-proposal-private-methods" "^7.13.0" + "@babel/plugin-proposal-private-property-in-object" "^7.14.0" "@babel/plugin-proposal-unicode-property-regex" "^7.12.13" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.12.13" "@babel/plugin-syntax-dynamic-import" "^7.8.3" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" "@babel/plugin-syntax-json-strings" "^7.8.3" @@ -1520,14 +1556,15 @@ "@babel/plugin-syntax-object-rest-spread" "^7.8.3" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-private-property-in-object" "^7.14.0" "@babel/plugin-syntax-top-level-await" "^7.12.13" "@babel/plugin-transform-arrow-functions" "^7.13.0" "@babel/plugin-transform-async-to-generator" "^7.13.0" "@babel/plugin-transform-block-scoped-functions" "^7.12.13" - "@babel/plugin-transform-block-scoping" "^7.12.13" + "@babel/plugin-transform-block-scoping" "^7.13.16" "@babel/plugin-transform-classes" "^7.13.0" "@babel/plugin-transform-computed-properties" "^7.13.0" - "@babel/plugin-transform-destructuring" "^7.13.0" + "@babel/plugin-transform-destructuring" "^7.13.17" "@babel/plugin-transform-dotall-regex" "^7.12.13" "@babel/plugin-transform-duplicate-keys" "^7.12.13" "@babel/plugin-transform-exponentiation-operator" "^7.12.13" @@ -1535,10 +1572,10 @@ "@babel/plugin-transform-function-name" "^7.12.13" "@babel/plugin-transform-literals" "^7.12.13" "@babel/plugin-transform-member-expression-literals" "^7.12.13" - "@babel/plugin-transform-modules-amd" "^7.13.0" - "@babel/plugin-transform-modules-commonjs" "^7.13.8" + "@babel/plugin-transform-modules-amd" "^7.14.0" + "@babel/plugin-transform-modules-commonjs" "^7.14.0" "@babel/plugin-transform-modules-systemjs" "^7.13.8" - "@babel/plugin-transform-modules-umd" "^7.13.0" + "@babel/plugin-transform-modules-umd" "^7.14.0" "@babel/plugin-transform-named-capturing-groups-regex" "^7.12.13" "@babel/plugin-transform-new-target" "^7.12.13" "@babel/plugin-transform-object-super" "^7.12.13" @@ -1554,7 +1591,7 @@ "@babel/plugin-transform-unicode-escapes" "^7.12.13" "@babel/plugin-transform-unicode-regex" "^7.12.13" "@babel/preset-modules" "^0.1.4" - "@babel/types" "^7.13.14" + "@babel/types" "^7.14.0" babel-plugin-polyfill-corejs2 "^0.2.0" babel-plugin-polyfill-corejs3 "^0.2.0" babel-plugin-polyfill-regenerator "^0.2.0" @@ -1615,17 +1652,17 @@ "@babel/plugin-transform-typescript" "^7.13.0" "@babel/runtime-corejs2@^7.0.0", "@babel/runtime-corejs2@^7.2.0": - version "7.13.17" - resolved "https://registry.yarnpkg.com/@babel/runtime-corejs2/-/runtime-corejs2-7.13.17.tgz#13d965ee876a30b290df6d8b4842dbe3f56f73e7" - integrity sha512-uvDSI/cLYd3G7S/iFd635tVkIwPji2CjEZzCXznL/lTFDMevIhoIjxSeKQ+AUDaX7D6L4Y1dIGvN4ZtA32m6IA== + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs2/-/runtime-corejs2-7.14.0.tgz#5519b92ccc819bd3d0a1ecb25ab3cb5a775485f8" + integrity sha512-btR4E8JiGlmmDI5YgirlG9z3T91rBdxnVh2YuEStrHDcekffaaIeK+CE0S4IaYUyYhMa7rFDfF2GEO79XNbLEA== dependencies: core-js "^2.6.5" regenerator-runtime "^0.13.4" "@babel/runtime-corejs3@^7.10.2": - version "7.13.17" - resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.13.17.tgz#9baf45f03d4d013f021760b992d6349a9d27deaf" - integrity sha512-RGXINY1YvduBlGrP+vHjJqd/nK7JVpfM4rmZLGMx77WoL3sMrhheA0qxii9VNn1VHnxJLEyxmvCB+Wqc+x/FMw== + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.14.0.tgz#6bf5fbc0b961f8e3202888cb2cd0fb7a0a9a3f66" + integrity sha512-0R0HTZWHLk6G8jIk0FtoX+AatCtKnswS98VhXwGImFc759PJRp4Tru0PQYZofyijTFUr+gT8Mu7sgXVJLQ0ceg== dependencies: core-js-pure "^3.0.0" regenerator-runtime "^0.13.4" @@ -1645,16 +1682,16 @@ regenerator-runtime "^0.13.4" "@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.1", "@babel/runtime@^7.10.2", "@babel/runtime@^7.10.4", "@babel/runtime@^7.11.1", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.9", "@babel/runtime@^7.4.5", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2": - version "7.13.17" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.13.17.tgz#8966d1fc9593bf848602f0662d6b4d0069e3a7ec" - integrity sha512-NCdgJEelPTSh+FEFylhnP1ylq848l1z9t9N0j1Lfbcw0+KXGjsTvUmkxy+voLLXB5SOKMbLLx4jxYliGrYQseA== + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.14.0.tgz#46794bc20b612c5f75e62dd071e24dfd95f1cbe6" + integrity sha512-JELkvo/DlpNdJ7dlyw/eY7E0suy5i5GQH+Vlxaq1nsNJ+H7f4Vtv3jMeCEgRhZZQFXTjldYfQgv2qmM6M1v5wA== dependencies: regenerator-runtime "^0.13.4" "@babel/standalone@^7.12.10": - version "7.13.17" - resolved "https://registry.yarnpkg.com/@babel/standalone/-/standalone-7.13.17.tgz#921b82a11a80ce824589516736d629efc53297aa" - integrity sha512-Y9P198T45MIIu+AvGOCcjsdKl79+BCL2nA+6ODA5p/DhGzymvzaTgtzvNcjZDcJmbPszcmohjLLgvma3tmvVtg== + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/standalone/-/standalone-7.14.0.tgz#fe62e8f0df0c3d3217189bd37d72c39397bbb71f" + integrity sha512-PPkwh7AQyP+QBHUavMBNSnAVsW4xFe76CQn3d8kWorwwu9l5R7QDjA9v4GkF6jHhL5fen6so20eqY1KDaJjMEQ== "@babel/template@7.8.6": version "7.8.6" @@ -1674,26 +1711,26 @@ "@babel/parser" "^7.12.13" "@babel/types" "^7.12.13" -"@babel/traverse@^7.1.0", "@babel/traverse@^7.12.1", "@babel/traverse@^7.12.10", "@babel/traverse@^7.13.0", "@babel/traverse@^7.13.13", "@babel/traverse@^7.13.15", "@babel/traverse@^7.13.17", "@babel/traverse@^7.4.3", "@babel/traverse@^7.4.5", "@babel/traverse@^7.7.0", "@babel/traverse@^7.9.6": - version "7.13.17" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.13.17.tgz#c85415e0c7d50ac053d758baec98b28b2ecfeea3" - integrity sha512-BMnZn0R+X6ayqm3C3To7o1j7Q020gWdqdyP50KEoVqaCO2c/Im7sYZSmVgvefp8TTMQ+9CtwuBp0Z1CZ8V3Pvg== +"@babel/traverse@^7.1.0", "@babel/traverse@^7.12.1", "@babel/traverse@^7.12.10", "@babel/traverse@^7.13.0", "@babel/traverse@^7.13.15", "@babel/traverse@^7.14.0", "@babel/traverse@^7.4.3", "@babel/traverse@^7.4.5", "@babel/traverse@^7.7.0", "@babel/traverse@^7.9.6": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.14.0.tgz#cea0dc8ae7e2b1dec65f512f39f3483e8cc95aef" + integrity sha512-dZ/a371EE5XNhTHomvtuLTUyx6UEoJmYX+DT5zBCQN3McHemsuIaKKYqsc/fs26BEkHs/lBZy0J571LP5z9kQA== dependencies: "@babel/code-frame" "^7.12.13" - "@babel/generator" "^7.13.16" + "@babel/generator" "^7.14.0" "@babel/helper-function-name" "^7.12.13" "@babel/helper-split-export-declaration" "^7.12.13" - "@babel/parser" "^7.13.16" - "@babel/types" "^7.13.17" + "@babel/parser" "^7.14.0" + "@babel/types" "^7.14.0" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.12.1", "@babel/types@^7.12.12", "@babel/types@^7.12.13", "@babel/types@^7.12.6", "@babel/types@^7.13.0", "@babel/types@^7.13.12", "@babel/types@^7.13.14", "@babel/types@^7.13.16", "@babel/types@^7.13.17", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.0", "@babel/types@^7.4.4", "@babel/types@^7.7.0", "@babel/types@^7.8.6", "@babel/types@^7.9.6": - version "7.13.17" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.13.17.tgz#48010a115c9fba7588b4437dd68c9469012b38b4" - integrity sha512-RawydLgxbOPDlTLJNtoIypwdmAy//uQIzlKt2+iBiJaRlVuI6QLUxVAyWGNfOzp8Yu4L4lLIacoCyTNtpb4wiA== +"@babel/types@^7.0.0", "@babel/types@^7.12.1", "@babel/types@^7.12.12", "@babel/types@^7.12.13", "@babel/types@^7.12.6", "@babel/types@^7.13.0", "@babel/types@^7.13.12", "@babel/types@^7.13.16", "@babel/types@^7.14.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.0", "@babel/types@^7.4.4", "@babel/types@^7.7.0", "@babel/types@^7.8.6", "@babel/types@^7.9.6": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.14.0.tgz#3fc3fc74e0cdad878182e5f66cc6bcab1915a802" + integrity sha512-O2LVLdcnWplaGxiPBz12d0HcdN8QdxdsWYhz5LSeuukV/5mn2xUUc3gBeU4QBYPJ18g/UToe8F532XJ608prmg== dependencies: - "@babel/helper-validator-identifier" "^7.12.11" + "@babel/helper-validator-identifier" "^7.14.0" to-fast-properties "^2.0.0" "@bcoe/v8-coverage@^0.2.3": @@ -1905,9 +1942,9 @@ which "^1.3.1" "@google-cloud/bigquery@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@google-cloud/bigquery/-/bigquery-5.5.0.tgz#cfe72f8d056abd9c8289c724150d1082a0a6367d" - integrity sha512-hMje0+Fd1B/b29yMUGvnTUXEaUQQD1zyvYjGEu/HCh9w2ek47DQr1zVrHdstlpstUZfaeRCjxK/c3HY6wWrVFg== + version "5.6.0" + resolved "https://registry.yarnpkg.com/@google-cloud/bigquery/-/bigquery-5.6.0.tgz#1f45b23eec328bafe254c193f0f34386a4fe3e7c" + integrity sha512-uWeDCwI33L+4bx6xrVuDqGwgIqafd3Bfr0UfGAZzLYfiEStZqf8H8c8G8A/6WpUXWA3cNlYpd+KfMCcXmVg9oA== dependencies: "@google-cloud/common" "^3.1.0" "@google-cloud/paginator" "^3.0.0" @@ -2007,22 +2044,23 @@ stream-events "^1.0.1" xdg-basedir "^4.0.0" -"@grpc/grpc-js@~1.2.0": - version "1.2.12" - resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.2.12.tgz#0153f27512acf69184bb52c0a1035ca91d6c14b0" - integrity sha512-+gPCklP1eqIgrNPyzddYQdt9+GvZqPlLpIjIo+TveE+gbtp74VV1A2ju8ExeO8ma8f7MbpaGZx/KJPYVWL9eDw== +"@grpc/grpc-js@~1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.3.0.tgz#c6febaaf00ce7f53b5ec52c7cf3e2a4725b82bcb" + integrity sha512-fiL7ZaGg2HBiFtmv6m34d5jEgEtNXfctjzB3f7b3iuT7olBX4mHLMOqOBmGTTSOTfNRQJH5+vsyk6mEz3I0Q7Q== dependencies: "@types/node" ">=12.12.47" - google-auth-library "^6.1.1" - semver "^6.2.0" -"@grpc/proto-loader@^0.5.1": - version "0.5.6" - resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.5.6.tgz#1dea4b8a6412b05e2d58514d507137b63a52a98d" - integrity sha512-DT14xgw3PSzPxwS13auTEwxhMMOoz33DPUKNtmYK/QYbBSpLXJy78FGGs5yVoxVobEqPm4iW9MOIoz0A3bLTRQ== +"@grpc/proto-loader@^0.6.1": + version "0.6.1" + resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.6.1.tgz#ad63e8c7d2a23b0175c78eebc26dedf6b0af0b0b" + integrity sha512-4DIvEOZhw5nGj3RQngIoiMXRsre3InEH136krZTcirs/G2em3WMXdtx4Lqlnb4E2ertbWGs5gPeVDKU5BHffXw== dependencies: + "@types/long" "^4.0.1" lodash.camelcase "^4.3.0" - protobufjs "^6.8.6" + long "^4.0.0" + protobufjs "^6.10.0" + yargs "^16.1.1" "@hapi/address@2.x.x": version "2.1.4" @@ -3624,10 +3662,10 @@ "@octokit/types" "^6.0.3" universal-user-agent "^6.0.0" -"@octokit/openapi-types@^6.2.0": - version "6.2.0" - resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-6.2.0.tgz#6ea796b20c7111b9e422a4d607f796c1179622cd" - integrity sha512-V2vFYuawjpP5KUb8CPYsq20bXT4qnE8sH1QKpYqUlcNOntBiRr/VzGVvY0s+YXGgrVbFUVO4EI0VnHYSVBWfBg== +"@octokit/openapi-types@^6.2.1": + version "6.2.1" + resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-6.2.1.tgz#5830395622ca0d8e945532c7ace722aec3670508" + integrity sha512-rSyuVb2zVwEbWpl1FJzVziyDfvEhNcvIsp6QxmEJkpiFuPfcZ4LwXz2/fhVdVC8Xy7BCugUQr7/ISdhYwgs3zQ== "@octokit/plugin-enterprise-rest@^6.0.1": version "6.0.1" @@ -3714,11 +3752,11 @@ "@types/node" ">= 8" "@octokit/types@^6.0.3", "@octokit/types@^6.7.1": - version "6.14.0" - resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.14.0.tgz#587529b4a461d8b7621b99845718dc5c79281f52" - integrity sha512-43qHvDsPsKgNt4W4al3dyU6s2XZ7ZMsiiIw8rQcM9CyEo7g9W8/6m1W4xHuRqmEjTfG1U4qsE/E4Jftw1/Ak1g== + version "6.14.1" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.14.1.tgz#4579bbdabee9a8349ce302f29ebc6f81775f0f5c" + integrity sha512-RDzkeFPaT2TgZcNtB2s1HtaMmtOrvXsc5VsAdpzApNkTwNN7Jk76RRCzGYhjm+hQ/HHuQXZkxUDWhJlt2QAyKQ== dependencies: - "@octokit/openapi-types" "^6.2.0" + "@octokit/openapi-types" "^6.2.1" "@oozcitak/dom@1.15.8": version "1.15.8" @@ -4520,7 +4558,7 @@ "@types/node" "*" form-data "^3.0.0" -"@types/node@*", "@types/node@>= 8", "@types/node@>=12.12.47": +"@types/node@*", "@types/node@>= 8", "@types/node@>=12.12.47", "@types/node@>=13.7.0": version "15.0.1" resolved "https://registry.yarnpkg.com/@types/node/-/node-15.0.1.tgz#ef34dea0881028d11398be5bf4e856743e3dc35a" integrity sha512-TMkXt0Ck1y0KKsGr9gJtWGjttxlZnnvDtphxUOSd0bfaR6Q1jle+sPvrzNR1urqYTWMinoKvjKfXUGsumaO1PA== @@ -4540,11 +4578,6 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.11.tgz#980832cd56efafff8c18aa148c4085eb02a483f4" integrity sha512-gema+apZ6qLQK7k7F0dGkGCWQYsL0qqKORWOQO6tq46q+x+1C0vbOiOqOwRVlh4RAdbQwV/j/ryr3u5NOG1fPQ== -"@types/node@^13.7.0": - version "13.13.51" - resolved "https://registry.yarnpkg.com/@types/node/-/node-13.13.51.tgz#a424c5282f99fc1ca41f11b727b6aea80668bcba" - integrity sha512-66/xg5I5Te4oGi5Jws11PtNmKkZbOPZWyBZZ/l5AOrWj1Dyw+6Ge/JhYTq/2/Yvdqyhrue8RL+DGI298OJ0xcg== - "@types/node@^14.14.35": version "14.14.43" resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.43.tgz#26bcbb0595b305400e8ceaf9a127a7f905ae49c8" @@ -5599,9 +5632,9 @@ acorn@^7.0.0, acorn@^7.1.0, acorn@^7.1.1, acorn@^7.4.0: integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== acorn@^8.1.0: - version "8.2.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.2.1.tgz#0d36af126fb6755095879c1dc6fd7edf7d60a5fb" - integrity sha512-z716cpm5TX4uzOzILx8PavOE6C6DKshHDw1aQN52M/yNSqE9s5O8SMfyhCCfCJ3HmTL0NkVOi+8a/55T7YB3bg== + version "8.2.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.2.2.tgz#c4574e4fea298d6e6ed4b85ab844b06dd59f26d6" + integrity sha512-VrMS8kxT0e7J1EX0p6rI/E0FbfOVcvBpbIqHThFv+f8YrZIlMfVotYcXKVPmTvPW8sW5miJzfUFrrvthUZg8VQ== adal-node@^0.1.28: version "0.1.28" @@ -5921,9 +5954,9 @@ anymatch@^3.0.3, anymatch@~3.1.1: picomatch "^2.0.4" app-path@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/app-path/-/app-path-3.2.0.tgz#06d426e0c988885264e0aa0a766dfa2723491633" - integrity sha512-PQPaKXi64FZuofJkrtaO3I5RZESm9Yjv7tkeJaDz4EZMeBBfGtr5MyQ3m5AC7F0HVrISBLatPxAAAgvbe418fQ== + version "3.3.0" + resolved "https://registry.yarnpkg.com/app-path/-/app-path-3.3.0.tgz#0342a909db37079c593979c720f99e872475eba3" + integrity sha512-EAgEXkdcxH1cgEePOSsmUtw9ItPl0KTxnh/pj9ZbhvbKbij9x0oX6PWpGnorDr0DS5AosLgoa5n3T/hZmKQpYA== dependencies: execa "^1.0.0" @@ -6255,9 +6288,9 @@ async-retry@^1.3.1: retry "0.12.0" async-validator@^3.0.3: - version "3.5.1" - resolved "https://registry.yarnpkg.com/async-validator/-/async-validator-3.5.1.tgz#cd62b9688b2465f48420e27adb47760ab1b5559f" - integrity sha512-DDmKA7sdSAJtTVeNZHrnr2yojfFaoeW8MfQN8CeuXg8DDQHTqKk9Fdv38dSvnesHoO8MUwMI2HphOeSyIF+wmQ== + version "3.5.2" + resolved "https://registry.yarnpkg.com/async-validator/-/async-validator-3.5.2.tgz#68e866a96824e8b2694ff7a831c1a25c44d5e500" + integrity sha512-8eLCg00W9pIRZSB781UUX/H6Oskmm8xloZfr09lz5bikRpBVDlJ3hRVuxxP1SxcwsEYfJ4IU8Q19Y8/893r3rQ== async-validator@~1.11.3: version "1.11.5" @@ -6340,9 +6373,9 @@ autoprefixer@^9.6.1, autoprefixer@^9.6.5, autoprefixer@^9.8.6: postcss-value-parser "^4.1.0" aws-sdk@^2.403.0, aws-sdk@^2.404.0, aws-sdk@^2.787.0, aws-sdk@^2.819.0: - version "2.894.0" - resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.894.0.tgz#acf740256ee051ea2c075549f7a10929c324d70a" - integrity sha512-qzmxkZ1JOQ/sQPIlxE+aOpJ9OlPq640ab1Ot8p4VIuatkGSEvQvk8nWqAeLyrRwmNQuacGM7xWTI0k9pGhbDXA== + version "2.896.0" + resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.896.0.tgz#5328ef20000bd7d02ea03f3b7f96dba175946142" + integrity sha512-tX2HmKLAdVY6/DuZTniQWwSC/5Kqpu1lpWf4iCkz3wR8RdDDUMoebIBKLjrTS/IDGQ2KFnzA8mZDn93bWgt1gQ== dependencies: buffer "4.9.2" events "1.1.1" @@ -7167,7 +7200,7 @@ browserslist@4.14.2: escalade "^3.0.2" node-releases "^1.1.61" -browserslist@^4.0.0, browserslist@^4.11.1, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.16.4, browserslist@^4.3.4, browserslist@^4.6.2, browserslist@^4.6.4, browserslist@^4.7.0, browserslist@^4.9.1: +browserslist@^4.0.0, browserslist@^4.11.1, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.16.5, browserslist@^4.3.4, browserslist@^4.6.2, browserslist@^4.6.4, browserslist@^4.7.0, browserslist@^4.9.1: version "4.16.5" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.5.tgz#952825440bca8913c62d0021334cbe928ef062ae" integrity sha512-C2HAjrM1AI/djrpAUU/tr4pml1DqLIzJKSLDBXBrNErl9ZCCTXdhwxdJjYc16953+mBWf7Lw+uUJgpgb8cN71A== @@ -8526,17 +8559,17 @@ copy-webpack-plugin@^5.1.1: webpack-log "^2.0.0" core-js-compat@^3.6.2, core-js-compat@^3.9.0, core-js-compat@^3.9.1: - version "3.11.0" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.11.0.tgz#635683f43480a0b41e3f6be3b1c648dadb8b4390" - integrity sha512-3wsN9YZJohOSDCjVB0GequOyHax8zFiogSX3XWLE28M1Ew7dTU57tgHjIylSBKSIouwmLBp3g61sKMz/q3xEGA== + version "3.11.1" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.11.1.tgz#57a91e9b02d3bb8cf37f82eceaf44a3d646fa614" + integrity sha512-aZ0e4tmlG/aOBHj92/TuOuZwp6jFvn1WNabU5VOVixzhu5t5Ao+JZkQOPlgNXu6ynwLrwJxklT4Gw1G1VGEh+g== dependencies: - browserslist "^4.16.4" + browserslist "^4.16.5" semver "7.0.0" core-js-pure@^3.0.0: - version "3.11.0" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.11.0.tgz#e07f25a8f616d178ec16b0354b008ad28b20b2f0" - integrity sha512-PxEiQGjzC+5qbvE7ZIs5Zn6BynNeZO9zHhrrWmkRff2SZLq0CE/H5LuZOJHhmOQ8L38+eMzEHAmPYWrUtDfuDQ== + version "3.11.1" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.11.1.tgz#fd52fa8c8b7b797b3606524b3d97278a8d8e7f09" + integrity sha512-2JukQi8HgAOCD5CSimxWWXVrUBoA9Br796uIA5Z06bIjt7PBBI19ircFaAxplgE1mJf3x2BY6MkT/HWA/UryPg== core-js@3.6.4: version "3.6.4" @@ -8554,9 +8587,9 @@ core-js@^2.4.0, core-js@^2.6.5: integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== core-js@^3.4.1, core-js@^3.6.5: - version "3.11.0" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.11.0.tgz#05dac6aa70c0a4ad842261f8957b961d36eb8926" - integrity sha512-bd79DPpx+1Ilh9+30aT5O1sgpQd4Ttg8oqkqi51ZzhedMM1omD2e6IOF48Z/DzDCZ2svp49tN/3vneTK6ZBkXw== + version "3.11.1" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.11.1.tgz#f920392bf8ed63a0ec8e4e729857bfa3d121c525" + integrity sha512-k93Isqg7e4txZWMGNYwevZL9MiogLk8pd1PtwrmFmi8IBq4GXqUaVW/a33Llt6amSI36uSjd0GWwc9pTT9ALlQ== core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" @@ -9087,9 +9120,9 @@ cypress-image-snapshot@^4.0.1: term-img "^4.0.0" cypress-localstorage-commands@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/cypress-localstorage-commands/-/cypress-localstorage-commands-1.4.3.tgz#776d07e3e69c875f454726bb13e91da3492be7cb" - integrity sha512-m4j/s0ThzrMraj7uvo8nVBgo3vi91WiZQad+J9GU1slk37Hb2N2WVs8wZb8MmFykmK2WrTyXpeUhHMdGE422Sw== + version "1.4.4" + resolved "https://registry.yarnpkg.com/cypress-localstorage-commands/-/cypress-localstorage-commands-1.4.4.tgz#96ebce71b78895bd34a96c6d424b5de18a257b82" + integrity sha512-j502dbaQxTkz8iXYPClpYn2AIFyMZvvODNNHVZVoKBSkKOEuWAx3/RT4RvH0naV4/T05oUw2O9Cm5VxeZbyxiw== cypress-plugin-snapshots@^1.4.4: version "1.4.4" @@ -9758,9 +9791,9 @@ doctrine@^3.0.0: esutils "^2.0.2" dom-align@^1.7.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/dom-align/-/dom-align-1.12.0.tgz#56fb7156df0b91099830364d2d48f88963f5a29c" - integrity sha512-YkoezQuhp3SLFGdOlr5xkqZ640iXrnHAwVYcDg8ZKRUtO7mSzSC2BA5V0VuyAwPSJA4CLIc6EDDJh4bEsD2+zA== + version "1.12.1" + resolved "https://registry.yarnpkg.com/dom-align/-/dom-align-1.12.1.tgz#aedbc2c312983b46ea6b7a4d636617336a490ee9" + integrity sha512-CdTD9EdA5WviP8oO3n+okOm0Xt7dSuWxRTLcJiW0memwUr3Tvz66JDDCh9cb50IZFHXvBmLoyX454uJU/EVg+g== dom-converter@^0.2: version "0.2.0" @@ -11647,9 +11680,9 @@ gauge@~2.7.3: wide-align "^1.1.0" gaxios@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/gaxios/-/gaxios-4.2.0.tgz#33bdc4fc241fc33b8915a4b8c07cfb368b932e46" - integrity sha512-Ms7fNifGv0XVU+6eIyL9LB7RVESeML9+cMvkwGS70xyD6w2Z80wl6RiqiJ9k1KFlJCUTQqFFc8tXmPQfSKUe8g== + version "4.2.1" + resolved "https://registry.yarnpkg.com/gaxios/-/gaxios-4.2.1.tgz#7463d3a06f56ddbffa745a242d2b4933b88b2ada" + integrity sha512-s+rTywpw6CmfB8r9TXYkpix7YFeuRjnR/AqhaJrQqsNhsAqej+IAiCc3hadzQH3gHyWth30tvYjxH8EVjQt/8Q== dependencies: abort-controller "^3.0.0" extend "^3.0.2" @@ -12091,21 +12124,6 @@ good-listener@^1.2.2: dependencies: delegate "^3.1.2" -google-auth-library@^6.1.1: - version "6.1.6" - resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-6.1.6.tgz#deacdcdb883d9ed6bac78bb5d79a078877fdf572" - integrity sha512-Q+ZjUEvLQj/lrVHF/IQwRo6p3s8Nc44Zk/DALsN+ac3T4HY/g/3rrufkgtl+nZ1TW7DNAw5cTChdVp4apUXVgQ== - dependencies: - arrify "^2.0.0" - base64-js "^1.3.0" - ecdsa-sig-formatter "^1.0.11" - fast-text-encoding "^1.0.0" - gaxios "^4.0.0" - gcp-metadata "^4.2.0" - gtoken "^5.0.4" - jws "^4.0.0" - lru-cache "^6.0.0" - google-auth-library@^7.0.0, google-auth-library@^7.0.2: version "7.0.4" resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-7.0.4.tgz#610cb010de71435dca47dfbe8dc7fbff23055d2c" @@ -12122,12 +12140,12 @@ google-auth-library@^7.0.0, google-auth-library@^7.0.2: lru-cache "^6.0.0" google-gax@^2.9.2: - version "2.11.2" - resolved "https://registry.yarnpkg.com/google-gax/-/google-gax-2.11.2.tgz#9ef7773b94aaa61c4588fb2408d62e8444995026" - integrity sha512-PNqXv7Oi5XBMgoMWVxLZHUidfMv7cPHrDSDXqLyEd6kY6pqFnVKC8jt2T1df4JPSc2+VLPdeo6L7X9mbdQG8Xw== + version "2.12.0" + resolved "https://registry.yarnpkg.com/google-gax/-/google-gax-2.12.0.tgz#caf04b72d81ca8a3c34c72d7f4e9866ad38dd775" + integrity sha512-UDx4ZZx85vXBe6GZ0sdRSzuegLrRQdRjCxlauX+U7i5YwOoSgcSaIM71BhcdHwGPhEkvO/SSHrEfc1wpL/J6JA== dependencies: - "@grpc/grpc-js" "~1.2.0" - "@grpc/proto-loader" "^0.5.1" + "@grpc/grpc-js" "~1.3.0" + "@grpc/proto-loader" "^0.6.1" "@types/long" "^4.0.0" abort-controller "^3.0.0" duplexify "^4.0.0" @@ -12135,6 +12153,7 @@ google-gax@^2.9.2: google-auth-library "^7.0.2" is-stream-ended "^0.1.4" node-fetch "^2.6.1" + object-hash "^2.1.1" protobufjs "^6.10.2" retry-request "^4.0.0" @@ -12645,9 +12664,9 @@ http-proxy-middleware@0.19.1: micromatch "^3.1.10" http-proxy-middleware@^1.0.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-1.3.0.tgz#eda5e0b7d1f27ac82bd11eb5099d8c309d30cf30" - integrity sha512-nHn8lcFNmxCalzHGXMn0ojKunXC9twBvJ+y7QNhvK/ep7ZDOXvO7Gph01rSwsMOrG4m6N72gAAWXMYhPZvK6OA== + version "1.3.1" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-1.3.1.tgz#43700d6d9eecb7419bf086a128d0f7205d9eb665" + integrity sha512-13eVVDYS4z79w7f1+NPllJtOQFx/FdUW4btIvVRMaRlUY9VGstAbo5MOhLEuUgZFRHn3x50ufn25zkj/boZnEg== dependencies: "@types/http-proxy" "^1.17.5" http-proxy "^1.18.1" @@ -17270,6 +17289,11 @@ object-hash@^1.1.4: resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-1.3.1.tgz#fde452098a951cb145f039bb7d455449ddc126df" integrity sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA== +object-hash@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-2.1.1.tgz#9447d0279b4fcf80cff3259bf66a1dc73afabe09" + integrity sha512-VOJmgmS+7wvXf8CjbQmimtCnEx3IAoLxI3fp2fbWehxrWBcAQFbk+vcwb6vzR0VZv/eNCJ/27j151ZTwqW/JeQ== + object-inspect@^1.9.0: version "1.10.2" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.10.2.tgz#b6385a3e2b7cae0b5eafcf90cddf85d128767f30" @@ -19340,10 +19364,10 @@ proto-list@~1.2.1: resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= -protobufjs@^6.10.2, protobufjs@^6.8.6: - version "6.10.2" - resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.10.2.tgz#b9cb6bd8ec8f87514592ba3fdfd28e93f33a469b" - integrity sha512-27yj+04uF6ya9l+qfpH187aqEzfCF4+Uit0I9ZBQVqK09hk/SQzKa2MUqUpXaVa7LOFRg1TSSr3lVxGOk6c0SQ== +protobufjs@^6.10.0, protobufjs@^6.10.2: + version "6.11.1" + resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.11.1.tgz#327dcee492fbcd421a6cd6200f79bfed6efb2405" + integrity sha512-7KCLPvNGF/oDv/OXz+Zn2ViJx8x9WUKs5HrxZ5Gz0F2LD8jSTcsA1z9tBtOlPVVnJELOaFL+zj+oLc/WWSqlzw== dependencies: "@protobufjs/aspromise" "^1.1.2" "@protobufjs/base64" "^1.1.2" @@ -19356,7 +19380,7 @@ protobufjs@^6.10.2, protobufjs@^6.8.6: "@protobufjs/pool" "^1.1.0" "@protobufjs/utf8" "^1.1.0" "@types/long" "^4.0.1" - "@types/node" "^13.7.0" + "@types/node" ">=13.7.0" long "^4.0.0" protocols@^1.1.0, protocols@^1.4.0: @@ -20030,9 +20054,9 @@ rc-util@^4.10.0, rc-util@^4.15.3: shallowequal "^1.1.0" rc-util@^5.0.0, rc-util@^5.0.1, rc-util@^5.0.5, rc-util@^5.0.6, rc-util@^5.0.7, rc-util@^5.2.0, rc-util@^5.2.1, rc-util@^5.3.0, rc-util@^5.4.0, rc-util@^5.5.0, rc-util@^5.5.1, rc-util@^5.6.1, rc-util@^5.7.0, rc-util@^5.8.0, rc-util@^5.8.1, rc-util@^5.9.4, rc-util@^5.9.8: - version "5.12.0" - resolved "https://registry.yarnpkg.com/rc-util/-/rc-util-5.12.0.tgz#b0678e3e85c104fdeeb466d466c78dbeaec306c2" - integrity sha512-RCUdMYmFiPHfqnErr+J/4S1uWPbiFk0/utU/NH4inSWa0Wf8dflWOLuc9Gutv9jjjn2TgdgcTQ4JKExN/2WyoA== + version "5.12.1" + resolved "https://registry.yarnpkg.com/rc-util/-/rc-util-5.12.1.tgz#026e889546ad957bd8201512951923821f6dab63" + integrity sha512-PrvX/LUPONoeIaJ35hiS5SeXP6DhwAfpoJG6X4Kc5X7NDgCgk/NfXrNfmijuSh8suHkWk1Quz93d2JdjomwOQA== dependencies: "@babel/runtime" "^7.12.5" react-is "^16.12.0" @@ -21196,9 +21220,9 @@ rollup@^1.31.1: acorn "^7.1.0" rollup@^2.40.0, rollup@^2.8.0: - version "2.45.2" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.45.2.tgz#8fb85917c9f35605720e92328f3ccbfba6f78b48" - integrity sha512-kRRU7wXzFHUzBIv0GfoFFIN3m9oteY4uAsKllIpQDId5cfnkWF2J130l+27dzDju0E6MScKiV0ZM5Bw8m4blYQ== + version "2.46.0" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.46.0.tgz#8cacf89d2ee31a34755f1af40a665168f592b829" + integrity sha512-qPGoUBNl+Z8uNu0z7pD3WPTABWRbcOwIrO/5ccDJzmrtzn0LVf6Lj91+L5CcWhXl6iWf23FQ6m8Jkl2CmN1O7Q== optionalDependencies: fsevents "~2.3.1" @@ -21330,9 +21354,9 @@ sass@1.26.5: chokidar ">=2.0.0 <4.0.0" sass@^1.23.0: - version "1.32.11" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.32.11.tgz#b236b3ea55c76602c2ef2bd0445f0db581baa218" - integrity sha512-O9tRcob/fegUVSIV1ihLLZcftIOh0AF1VpKgusUfLqnb2jQ0GLDwI5ivv1FYWivGv8eZ/AwntTyTzjcHu0c/qw== + version "1.32.12" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.32.12.tgz#a2a47ad0f1c168222db5206444a30c12457abb9f" + integrity sha512-zmXn03k3hN0KaiVTjohgkg98C3UowhL1/VSGdj4/VAAiMKGQOE80PFPxFP2Kyq0OUskPKcY5lImkhBKEHlypJA== dependencies: chokidar ">=3.0.0 <4.0.0" @@ -23756,9 +23780,9 @@ uglify-js@3.4.x: source-map "~0.6.1" uglify-js@^3.1.4, uglify-js@^3.4.9: - version "3.13.4" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.13.4.tgz#592588bb9f47ae03b24916e2471218d914955574" - integrity sha512-kv7fCkIXyQIilD5/yQy8O+uagsYIOt5cZvs890W40/e/rvjMSzJw81o9Bg0tkURxzZBROtDQhW2LFjOGoK3RZw== + version "3.13.5" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.13.5.tgz#5d71d6dbba64cf441f32929b1efce7365bb4f113" + integrity sha512-xtB8yEqIkn7zmOyS2zUNBsYCBRhDkvlNxMMY2smuJ/qA8NCHeQvKCF3i9Z4k8FJH4+PJvZRtMrPynfZ75+CSZw== uid-number@0.0.6: version "0.0.6"