diff --git a/.github/workflows/build-linux.yml b/.github/workflows/build-linux.yml index edb77ac1..aac24863 100644 --- a/.github/workflows/build-linux.yml +++ b/.github/workflows/build-linux.yml @@ -21,9 +21,6 @@ jobs: - name: Install dependencies run: npm i - - - name: Run tests - run: npm run test - name: Build/release Electron app uses: samuelmeuli/action-electron-builder@v1 diff --git a/.github/workflows/build-mac.yml b/.github/workflows/build-mac.yml index 9981e0a8..8c79ef4c 100644 --- a/.github/workflows/build-mac.yml +++ b/.github/workflows/build-mac.yml @@ -22,9 +22,6 @@ jobs: - name: Install dependencies run: npm i - - name: Run tests - run: npm run test - - name: Build/release Electron app uses: samuelmeuli/action-electron-builder@v1 with: diff --git a/.github/workflows/build-win.yml b/.github/workflows/build-win.yml index 2f3a9ac9..4f6ccdab 100644 --- a/.github/workflows/build-win.yml +++ b/.github/workflows/build-win.yml @@ -22,9 +22,6 @@ jobs: - name: Install dependencies run: npm i - - name: Run tests - run: npm run test - - name: Build/release Electron app uses: samuelmeuli/action-electron-builder@v1 with: diff --git a/.github/workflows/test-e2e-linux.yml b/.github/workflows/test-e2e-linux.yml new file mode 100644 index 00000000..407fc365 --- /dev/null +++ b/.github/workflows/test-e2e-linux.yml @@ -0,0 +1,26 @@ +name: Test end-to-end [linux] + +on: push + +jobs: + release: + runs-on: ${{ matrix.os }} + + strategy: + matrix: + os: [ubuntu-latest] + + steps: + - name: Check out Git repository + uses: actions/checkout@v2 + + - name: Install Node.js, NPM and Yarn + uses: actions/setup-node@v1 + with: + node-version: 14 + + - name: Install dependencies + run: npm i + + - name: Run tests + run: npm run test:e2e diff --git a/CHANGELOG.md b/CHANGELOG.md index cfa0b9c4..efbf0ff6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,52 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +### [0.5.4](https://github.com/antares-sql/antares/compare/v0.5.3...v0.5.4) (2022-05-10) + + +### Bug Fixes + +* app blocked by BIT fields with no default, closes [#256](https://github.com/antares-sql/antares/issues/256) ([e62f280](https://github.com/antares-sql/antares/commit/e62f280528edb0ff4550ee75038ea216e81e4f10)) +* file upload input not working ([58611bf](https://github.com/antares-sql/antares/commit/58611bf07f343e6899a7446bfcd1247b0c75fc7f)) +* SSH tunnel not working ([6d61518](https://github.com/antares-sql/antares/commit/6d6151814e5006935d493b9b83dbda1aa5b35391)) +* unable to insert auto-generated datetime fields ([ff27244](https://github.com/antares-sql/antares/commit/ff272440bdc2a7fe699e04f8809bd5af8f9529c0)) + + +### Improvements + +* **UI:** left alignment for numbers in result tables, closes [#249](https://github.com/antares-sql/antares/issues/249) ([e02565c](https://github.com/antares-sql/antares/commit/e02565c0d9bb63efa76a79f38e3ed3586a30ad1c)) + +### [0.5.3](https://github.com/antares-sql/antares/compare/v0.5.2...v0.5.3) (2022-05-08) + + +### Features + +* default open schema if only one present ([0fa22fb](https://github.com/antares-sql/antares/commit/0fa22fbe72fd4e3b2cfff6fc1847347f69fafda6)) + + +### Bug Fixes + +* can not use vue teleport with props as root element ([88eb9f7](https://github.com/antares-sql/antares/commit/88eb9f7ab80c407ec6517206c27cce715c41eb24)) +* importer webpack config ([f82db96](https://github.com/antares-sql/antares/commit/f82db96f34579c5f5f0c025ba82aff13047eb045)) +* importer webpack config ([b4d9821](https://github.com/antares-sql/antares/commit/b4d9821300991bf000846ae38ed18d79564db67b)) +* LIKE operator in table filter not properly working, closes [#242](https://github.com/antares-sql/antares/issues/242) ([eb1afed](https://github.com/antares-sql/antares/commit/eb1afed108d97e2acb7ea5279aabd582014c3c58)) +* locale change ([6af0c33](https://github.com/antares-sql/antares/commit/6af0c33461dfab868bca757e55ae62e6c6094c6c)) +* missing storeToRefs imports ([ff8bb45](https://github.com/antares-sql/antares/commit/ff8bb45d6d19303b2e7701639d22e52e4ae2976c)) +* missing tabs uid ([18b66b5](https://github.com/antares-sql/antares/commit/18b66b50323e69ed9d0090a4cbbe0ada9e10838d)) +* **MySQL:** creating temporary tables on export to overcome view dependency errors ([e4c5d9b](https://github.com/antares-sql/antares/commit/e4c5d9b404c2b20cf113607a80ee928b810e6f05)) +* **MySQL:** support to ANSI_QUOTES mode not working, closes [#243](https://github.com/antares-sql/antares/issues/243) ([9fcc7d1](https://github.com/antares-sql/antares/commit/9fcc7d1cefc3c035a63e843616c3138c772037f1)) +* prevents query tabs targets previous schema if not in explorebar, closes [#236](https://github.com/antares-sql/antares/issues/236) ([5e4abd3](https://github.com/antares-sql/antares/commit/5e4abd3e81d70bcb9b3a897d38d6f8ec3ff0706b)) +* query editor table fields suggestion ([e9dedfa](https://github.com/antares-sql/antares/commit/e9dedfaf3203f5621e54fd707003a47e6e5a5c4d)) +* **SQLite:** tables with sqlite in name not visible, closes [#239](https://github.com/antares-sql/antares/issues/239) ([690cdcb](https://github.com/antares-sql/antares/commit/690cdcb2eb1c7bf514271000c31211d1c0b33e54)) +* unable to add parameters to new routines/functions ([350d536](https://github.com/antares-sql/antares/commit/350d53642e2491fd2dedbbf999579ba9c9bc59a0)) +* unable to disconnect from database ([47e1f27](https://github.com/antares-sql/antares/commit/47e1f27bb83b99288157185ad8b62d190a9e7881)) +* unable to set an empty string as field default ([bfdb463](https://github.com/antares-sql/antares/commit/bfdb463390453a55963af29ef0e7cd3aea26f4cf)) +* undefined uid variable in the setting bar ([3cca3ed](https://github.com/antares-sql/antares/commit/3cca3ed2b31c5763794c52cce34ccba1e848efe2)) +* various warnings and exceptions ([c50cbc5](https://github.com/antares-sql/antares/commit/c50cbc577f667c17ba676960cf2c840d24366c80)) +* verbose devtool loggin with missing sourcemap ([1174bab](https://github.com/antares-sql/antares/commit/1174bab0cc895c4e294804d810b0789166602725)) +* wrong path module importation ([472fa6f](https://github.com/antares-sql/antares/commit/472fa6f4300b7e3fbf8c8079a548ca34d941f5fb)) +* wrong path module importation ([9a0f982](https://github.com/antares-sql/antares/commit/9a0f98272342d201e9bc979d5bc5768cfd20f3fb)) + ### [0.5.2](https://github.com/antares-sql/antares/compare/v0.5.1...v0.5.2) (2022-04-10) diff --git a/package.json b/package.json index 34f7468c..98c4b494 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "antares", "productName": "Antares", - "version": "0.5.2", + "version": "0.5.4", "description": "A modern, fast and productivity driven SQL client with a focus in UX.", "license": "MIT", "repository": "https://github.com/antares-sql/antares.git", @@ -20,8 +20,8 @@ "release:pre": "npm run release -- --prerelease alpha", "devtools:install": "node scripts/devtoolsInstaller", "postinstall": "electron-builder install-app-deps && npm run devtools:install", - "test": "npm run compile && npm run test:dry", - "test:dry": "xvfb-maybe -- playwright test", + "test:e2e": "npm run compile && npm run test:e2e-dry", + "test:e2e-dry": "xvfb-maybe -- playwright test", "lint": "eslint . --ext .js,.vue && stylelint \"./src/**/*.{css,scss,sass,vue}\"", "lint:fix": "eslint . --ext .js,.vue --fix && stylelint \"./src/**/*.{css,scss,sass,vue}\" --fix", "contributors:add": "all-contributors add", @@ -109,83 +109,83 @@ } }, "dependencies": { - "@electron/remote": "^2.0.1", - "@faker-js/faker": "^6.1.2", - "@mdi/font": "^6.1.95", - "@turf/helpers": "^6.5.0", - "@vscode/vscode-languagedetection": "^1.0.21", - "ace-builds": "^1.4.13", - "better-sqlite3": "^7.5.0", - "electron-log": "^4.4.1", - "electron-store": "^8.0.1", - "electron-updater": "^5.0.1", - "electron-window-state": "^5.0.3", - "encoding": "^0.1.13", - "leaflet": "^1.7.1", - "marked": "^4.0.0", - "moment": "^2.29.1", - "mysql2": "^2.3.2", - "pg": "^8.7.1", - "pg-query-stream": "^4.2.3", - "pgsql-ast-parser": "^7.2.1", - "pinia": "^2.0.13", - "source-map-support": "^0.5.20", - "spectre.css": "^0.5.9", - "sql-formatter": "^4.0.2", - "ssh2-promise": "^1.0.2", - "v-mask": "^2.3.0", - "vue": "^3.2.33", - "vue-i18n": "^9.1.9", - "vuedraggable": "^4.1.0" + "@electron/remote": "~2.0.1", + "@faker-js/faker": "~6.1.2", + "@mdi/font": "~6.1.95", + "@turf/helpers": "~6.5.0", + "@vscode/vscode-languagedetection": "~1.0.21", + "ace-builds": "~1.4.13", + "better-sqlite3": "~7.5.0", + "electron-log": "~4.4.1", + "electron-store": "~8.0.1", + "electron-updater": "~4.6.5", + "electron-window-state": "~5.0.3", + "encoding": "~0.1.13", + "leaflet": "~1.7.1", + "marked": "~4.0.0", + "moment": "~2.29.1", + "mysql2": "~2.3.2", + "pg": "~8.7.1", + "pg-query-stream": "~4.2.3", + "pgsql-ast-parser": "~7.2.1", + "pinia": "~2.0.13", + "source-map-support": "~0.5.20", + "spectre.css": "~0.5.9", + "sql-formatter": "~4.0.2", + "ssh2-promise": "~1.0.2", + "v-mask": "~2.3.0", + "vue": "~3.2.33", + "vue-i18n": "~9.1.9", + "vuedraggable": "~4.1.0" }, "devDependencies": { - "@babel/eslint-parser": "^7.15.7", - "@babel/preset-env": "^7.15.8", - "@babel/preset-typescript": "^7.16.7", - "@playwright/test": "^1.21.1", - "@types/better-sqlite3": "^7.5.0", - "@types/node": "^17.0.23", - "@types/pg": "^8.6.5", - "@typescript-eslint/eslint-plugin": "^5.18.0", - "@typescript-eslint/parser": "^5.18.0", - "@vue/compiler-sfc": "^3.2.33", - "all-contributors-cli": "^6.20.0", - "babel-loader": "^8.2.3", - "chalk": "^4.1.2", - "cross-env": "^7.0.2", - "css-loader": "^6.5.0", - "electron": "^17.0.1", - "electron-builder": "^23.0.3", - "eslint": "^7.32.0", - "eslint-config-standard": "^16.0.3", - "eslint-plugin-import": "^2.24.2", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-promise": "^5.2.0", - "eslint-plugin-vue": "^8.0.3", - "file-loader": "^6.2.0", - "html-webpack-plugin": "^5.5.0", + "@babel/eslint-parser": "~7.15.7", + "@babel/preset-env": "~7.15.8", + "@babel/preset-typescript": "~7.16.7", + "@playwright/test": "~1.21.1", + "@types/better-sqlite3": "~7.5.0", + "@types/node": "~17.0.23", + "@types/pg": "~8.6.5", + "@typescript-eslint/eslint-plugin": "~5.18.0", + "@typescript-eslint/parser": "~5.18.0", + "@vue/compiler-sfc": "~3.2.33", + "all-contributors-cli": "~6.20.0", + "babel-loader": "~8.2.3", + "chalk": "~4.1.2", + "cross-env": "~7.0.2", + "css-loader": "~6.5.0", + "electron": "~17.4.3", + "electron-builder": "~23.0.3", + "eslint": "~7.32.0", + "eslint-config-standard": "~16.0.3", + "eslint-plugin-import": "~2.24.2", + "eslint-plugin-node": "~11.1.0", + "eslint-plugin-promise": "~5.2.0", + "eslint-plugin-vue": "~8.0.3", + "file-loader": "~6.2.0", + "html-webpack-plugin": "~5.5.0", "mini-css-extract-plugin": "~2.4.5", - "node-loader": "^2.0.0", - "playwright": "^1.21.1", - "playwright-core": "^1.21.1", - "progress-webpack-plugin": "^1.0.12", - "rimraf": "^3.0.2", - "sass": "^1.42.1", - "sass-loader": "^12.3.0", - "standard-version": "^9.3.1", - "style-loader": "^3.3.1", - "stylelint": "^13.13.1", - "stylelint-config-standard": "^22.0.0", - "stylelint-scss": "^3.21.0", - "tree-kill": "^1.2.2", - "ts-loader": "^9.2.8", - "typescript": "^4.6.3", - "unzip-crx-3": "^0.2.0", - "vue-eslint-parser": "^8.3.0", - "vue-loader": "^16.8.3", - "webpack": "^5.60.0", - "webpack-cli": "^4.9.1", - "webpack-dev-server": "^4.4.0", - "xvfb-maybe": "^0.2.1" + "node-loader": "~2.0.0", + "playwright": "~1.21.1", + "playwright-core": "~1.21.1", + "progress-webpack-plugin": "~1.0.12", + "rimraf": "~3.0.2", + "sass": "~1.42.1", + "sass-loader": "~12.3.0", + "standard-version": "~9.3.1", + "style-loader": "~3.3.1", + "stylelint": "~13.13.1", + "stylelint-config-standard": "~22.0.0", + "stylelint-scss": "~3.21.0", + "tree-kill": "~1.2.2", + "ts-loader": "~9.2.8", + "typescript": "~4.6.3", + "unzip-crx-3": "~0.2.0", + "vue-eslint-parser": "~8.3.0", + "vue-loader": "~16.8.3", + "webpack": "~5.60.0", + "webpack-cli": "~4.9.1", + "webpack-dev-server": "~4.4.0", + "xvfb-maybe": "~0.2.1" } } diff --git a/src/main/ipc-handlers/tables.ts b/src/main/ipc-handlers/tables.ts index 466fc10d..c32d3151 100644 --- a/src/main/ipc-handlers/tables.ts +++ b/src/main/ipc-handlers/tables.ts @@ -2,7 +2,7 @@ import * as antares from 'common/interfaces/antares'; import { InsertRowsParams } from 'common/interfaces/tableApis'; import { ipcMain } from 'electron'; import { faker } from '@faker-js/faker'; -import moment from 'moment'; +import * as moment from 'moment'; import { sqlEscaper } from 'common/libs/sqlEscaper'; import { TEXT, LONG_TEXT, ARRAY, TEXT_SEARCH, NUMBER, FLOAT, BLOB, BIT, DATE, DATETIME } from 'common/fieldTypes'; import * as customizations from 'common/customizations'; diff --git a/src/main/libs/clients/MySQLClient.ts b/src/main/libs/clients/MySQLClient.ts index 0357180b..d04133b6 100644 --- a/src/main/libs/clients/MySQLClient.ts +++ b/src/main/libs/clients/MySQLClient.ts @@ -2,7 +2,7 @@ import * as antares from 'common/interfaces/antares'; import * as mysql from 'mysql2/promise'; import { AntaresCore } from '../AntaresCore'; import * as dataTypes from 'common/data-types/mysql'; -import SSH2Promise from 'ssh2-promise'; +import SSH2Promise = require('ssh2-promise'); import SSHConfig from 'ssh2-promise/lib/sshConfig'; export class MySQLClient extends AntaresCore { diff --git a/src/main/libs/clients/PostgreSQLClient.ts b/src/main/libs/clients/PostgreSQLClient.ts index 5727e26a..42b47b7b 100644 --- a/src/main/libs/clients/PostgreSQLClient.ts +++ b/src/main/libs/clients/PostgreSQLClient.ts @@ -5,7 +5,7 @@ import * as pg from 'pg'; import * as pgAst from 'pgsql-ast-parser'; import { AntaresCore } from '../AntaresCore'; import * as dataTypes from 'common/data-types/postgresql'; -import SSH2Promise from 'ssh2-promise'; +import SSH2Promise = require('ssh2-promise'); import SSHConfig from 'ssh2-promise/lib/sshConfig'; // eslint-disable-next-line @typescript-eslint/no-explicit-any diff --git a/src/renderer/components/BaseUploadInput.vue b/src/renderer/components/BaseUploadInput.vue index 5289a603..789f7bc4 100644 --- a/src/renderer/components/BaseUploadInput.vue +++ b/src/renderer/components/BaseUploadInput.vue @@ -23,6 +23,8 @@