diff --git a/.github/workflows/build-app-beta.yaml b/.github/workflows/build-app-beta.yaml
index 223b5f649..0bd99714f 100644
--- a/.github/workflows/build-app-beta.yaml
+++ b/.github/workflows/build-app-beta.yaml
@@ -51,8 +51,10 @@ jobs:
env:
GH_TOKEN: ${{ secrets.GH_TOKEN }} # token for electron publish
- WIN_CSC_LINK: ${{ secrets.WINCERT_CERTIFICATE }}
- WIN_CSC_KEY_PASSWORD: ${{ secrets.WINCERT_PASSWORD }}
+ WIN_CSC_LINK: ${{ secrets.WINCERT_2025 }}
+ WIN_CSC_KEY_PASSWORD: ${{ secrets.WINCERT_2025_PASSWORD }}
+ # WIN_CSC_LINK: ${{ secrets.WINCERT_CERTIFICATE }}
+ # WIN_CSC_KEY_PASSWORD: ${{ secrets.WINCERT_PASSWORD }}
CSC_LINK: ${{ secrets.APPLECERT_CERTIFICATE }}
CSC_KEY_PASSWORD: ${{ secrets.APPLECERT_PASSWORD }}
diff --git a/.github/workflows/build-app.yaml b/.github/workflows/build-app.yaml
index b37334d0e..ee9a7dede 100644
--- a/.github/workflows/build-app.yaml
+++ b/.github/workflows/build-app.yaml
@@ -57,8 +57,10 @@ jobs:
env:
GH_TOKEN: ${{ secrets.GH_TOKEN }} # token for electron publish
- WIN_CSC_LINK: ${{ secrets.WINCERT_CERTIFICATE }}
- WIN_CSC_KEY_PASSWORD: ${{ secrets.WINCERT_PASSWORD }}
+ WIN_CSC_LINK: ${{ secrets.WINCERT_2025 }}
+ WIN_CSC_KEY_PASSWORD: ${{ secrets.WINCERT_2025_PASSWORD }}
+ # WIN_CSC_LINK: ${{ secrets.WINCERT_CERTIFICATE }}
+ # WIN_CSC_KEY_PASSWORD: ${{ secrets.WINCERT_PASSWORD }}
CSC_LINK: ${{ secrets.APPLECERT_CERTIFICATE }}
CSC_KEY_PASSWORD: ${{ secrets.APPLECERT_PASSWORD }}
diff --git a/.node-version b/.node-version
new file mode 100644
index 000000000..d9f880069
--- /dev/null
+++ b/.node-version
@@ -0,0 +1 @@
+16.14.2
diff --git a/CHANGELOG.md b/CHANGELOG.md
index da78e8708..b20d79009 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -8,6 +8,17 @@ Builds:
- linux - application for linux
- win - application for Windows
+### 5.1.6
+- ADDED: Connection folders support #274
+- ADDED: Keyboard shortcut to hide result window and show/hide the side toolbar #406
+- ADDED: Ability to show/hide query results #406
+- FIXED: Double click does not maximize window on MacOS #416
+- FIXED: Some perspective rendering errors
+- FIXED: Connection to MongoDB via database URL info SSH tunnel is used
+- CHANGED: Updated windows code signing certificate
+- ADDED: Query session cleanup (kill query sessions, if browser tab is closed)
+- CHANGED: More strict timeouts to kill database and server connections (reduces resource consumption)
+
### 5.1.5
- ADDED: Support perspectives for MongoDB - MongoDB query designer
- ADDED: Show JSON content directly in the overview #395
diff --git a/adjustPackageJson.js b/adjustPackageJson.js
index d805f266e..8581fb30c 100644
--- a/adjustPackageJson.js
+++ b/adjustPackageJson.js
@@ -5,6 +5,9 @@ function adjustFile(file) {
if (process.platform != 'win32') {
delete json.optionalDependencies.msnodesqlv8;
}
+ if (process.arch == 'arm64') {
+ delete json.optionalDependencies.oracledb;
+ }
fs.writeFileSync(file, JSON.stringify(json, null, 2), 'utf-8');
}
diff --git a/app/package.json b/app/package.json
index 06bc10157..3b3e266c9 100644
--- a/app/package.json
+++ b/app/package.json
@@ -113,6 +113,7 @@
},
"optionalDependencies": {
"better-sqlite3": "7.6.2",
+ "oracledb": "^5.5.0",
"msnodesqlv8": "^2.6.0"
}
}
diff --git a/app/src/mainMenuDefinition.js b/app/src/mainMenuDefinition.js
index 8d5e8c02e..8ce7056e0 100644
--- a/app/src/mainMenuDefinition.js
+++ b/app/src/mainMenuDefinition.js
@@ -69,6 +69,7 @@ module.exports = ({ editMenu }) => [
{ command: 'app.toggleDevTools', hideDisabled: true },
{ command: 'app.toggleFullScreen', hideDisabled: true },
{ command: 'app.minimize', hideDisabled: true },
+ { command: 'toggle.sidebar' },
{ divider: true },
{ command: 'theme.changeTheme', hideDisabled: true },
{ command: 'settings.show' },
diff --git a/app/yarn.lock b/app/yarn.lock
index 7827ccdb2..2d262e719 100644
--- a/app/yarn.lock
+++ b/app/yarn.lock
@@ -1833,6 +1833,11 @@ open@^7.4.2:
is-docker "^2.0.0"
is-wsl "^2.1.1"
+oracledb@^5.5.0:
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/oracledb/-/oracledb-5.5.0.tgz#0cf9af5d0c0815f74849ae9ed56aee823514d71b"
+ integrity sha512-i5cPvMENpZP8nnqptB6l0pjiOyySj1IISkbM4Hr3yZEDdANo2eezarwZb9NQ8fTh5pRjmgpZdSyIbnn9N3AENw==
+
os-tmpdir@~1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
diff --git a/fillNativeModules.js b/fillNativeModules.js
index 61dea66eb..cc390b394 100644
--- a/fillNativeModules.js
+++ b/fillNativeModules.js
@@ -5,9 +5,12 @@ let fillContent = '';
if (process.platform == 'win32') {
fillContent += `content.msnodesqlv8 = () => require('msnodesqlv8');`;
}
+if (process.arch != 'arm64') {
+ fillContent += `content.oracledb = () => require('oracledb');`;
+}
fillContent += `content['better-sqlite3'] = () => require('better-sqlite3');`;
-const getContent = (empty) => `
+const getContent = empty => `
// this file is generated automatically by script fillNativeModules.js, do not edit it manually
const content = {};
diff --git a/package.json b/package.json
index eeff09400..07f0f8f00 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"private": true,
- "version": "5.1.5",
+ "version": "5.1.7-beta.1",
"name": "dbgate-all",
"workspaces": [
"packages/*",
diff --git a/packages/api/package.json b/packages/api/package.json
index 8190e5805..a3005862b 100644
--- a/packages/api/package.json
+++ b/packages/api/package.json
@@ -75,6 +75,7 @@
},
"optionalDependencies": {
"better-sqlite3": "7.6.2",
+ "oracledb": "^5.5.0",
"msnodesqlv8": "^2.6.0"
}
}
diff --git a/packages/api/src/controllers/connections.js b/packages/api/src/controllers/connections.js
index 63b3c872c..5447a6f4d 100644
--- a/packages/api/src/controllers/connections.js
+++ b/packages/api/src/controllers/connections.js
@@ -62,6 +62,7 @@ function getPortalCollections() {
displayName: process.env[`LABEL_${id}`],
isReadOnly: process.env[`READONLY_${id}`],
databases: process.env[`DBCONFIG_${id}`] ? safeJsonParse(process.env[`DBCONFIG_${id}`]) : null,
+ parent: process.env[`PARENT_${id}`] || undefined,
// SSH tunnel
useSshTunnel: process.env[`USE_SSH_${id}`],
diff --git a/packages/api/src/controllers/sessions.js b/packages/api/src/controllers/sessions.js
index e42844214..71e04bf84 100644
--- a/packages/api/src/controllers/sessions.js
+++ b/packages/api/src/controllers/sessions.js
@@ -103,6 +103,12 @@ module.exports = {
if (handleProcessCommunication(message, subprocess)) return;
this[`handle_${msgtype}`](sesid, message);
});
+ subprocess.on('exit', () => {
+ this.opened = this.opened.filter(x => x.sesid != sesid);
+ this.dispatchMessage(sesid, 'Query session closed');
+ socket.emit(`session-closed-${sesid}`);
+ });
+
subprocess.send({ msgtype: 'connect', ...connection, database });
return _.pick(newOpened, ['conid', 'database', 'sesid']);
},
@@ -165,6 +171,17 @@ module.exports = {
return { state: 'ok' };
},
+ ping_meta: true,
+ async ping({ sesid }) {
+ const session = this.opened.find(x => x.sesid == sesid);
+ if (!session) {
+ throw new Error('Invalid session');
+ }
+ session.subprocess.send({ msgtype: 'ping' });
+
+ return { state: 'ok' };
+ },
+
// runCommand_meta: true,
// async runCommand({ conid, database, sql }) {
// console.log(`Running SQL command , conid=${conid}, database=${database}, sql=${sql}`);
diff --git a/packages/api/src/proc/databaseConnectionProcess.js b/packages/api/src/proc/databaseConnectionProcess.js
index 88f5ef8d9..96de90996 100644
--- a/packages/api/src/proc/databaseConnectionProcess.js
+++ b/packages/api/src/proc/databaseConnectionProcess.js
@@ -335,11 +335,11 @@ function start() {
setInterval(() => {
const time = new Date().getTime();
- if (time - lastPing > 120 * 1000) {
+ if (time - lastPing > 40 * 1000) {
console.log('Database connection not alive, exiting');
process.exit(0);
}
- }, 60 * 1000);
+ }, 10 * 1000);
process.on('message', async message => {
if (handleProcessCommunication(message)) return;
diff --git a/packages/api/src/proc/serverConnectionProcess.js b/packages/api/src/proc/serverConnectionProcess.js
index 592071040..a700b026b 100644
--- a/packages/api/src/proc/serverConnectionProcess.js
+++ b/packages/api/src/proc/serverConnectionProcess.js
@@ -111,11 +111,11 @@ function start() {
setInterval(() => {
const time = new Date().getTime();
- if (time - lastPing > 120 * 1000) {
+ if (time - lastPing > 40 * 1000) {
console.log('Server connection not alive, exiting');
process.exit(0);
}
- }, 60 * 1000);
+ }, 10 * 1000);
process.on('message', async message => {
if (handleProcessCommunication(message)) return;
diff --git a/packages/api/src/proc/sessionProcess.js b/packages/api/src/proc/sessionProcess.js
index 459e934f5..4b7d140fe 100644
--- a/packages/api/src/proc/sessionProcess.js
+++ b/packages/api/src/proc/sessionProcess.js
@@ -15,6 +15,7 @@ let systemConnection;
let storedConnection;
let afterConnectCallbacks = [];
// let currentHandlers = [];
+let lastPing = null;
class TableWriter {
constructor() {
@@ -271,10 +272,15 @@ async function handleExecuteReader({ jslid, sql, fileName }) {
});
}
+function handlePing() {
+ lastPing = new Date().getTime();
+}
+
const messageHandlers = {
connect: handleConnect,
executeQuery: handleExecuteQuery,
executeReader: handleExecuteReader,
+ ping: handlePing,
// cancel: handleCancel,
};
@@ -285,6 +291,17 @@ async function handleMessage({ msgtype, ...other }) {
function start() {
childProcessChecker();
+
+ lastPing = new Date().getTime();
+
+ setInterval(() => {
+ const time = new Date().getTime();
+ if (time - lastPing > 25 * 1000) {
+ console.log('Session not alive, exiting');
+ process.exit(0);
+ }
+ }, 10 * 1000);
+
process.on('message', async message => {
if (handleProcessCommunication(message)) return;
try {
diff --git a/packages/datalib/src/ChangeSet.ts b/packages/datalib/src/ChangeSet.ts
index ebf95b38d..2e38d62b7 100644
--- a/packages/datalib/src/ChangeSet.ts
+++ b/packages/datalib/src/ChangeSet.ts
@@ -9,7 +9,7 @@ import {
AllowIdentityInsert,
Expression,
} from 'dbgate-sqltree';
-import { NamedObjectInfo, DatabaseInfo } from 'dbgate-types';
+import type { NamedObjectInfo, DatabaseInfo } from 'dbgate-types';
export interface ChangeSetItem {
pureName: string;
diff --git a/packages/datalib/src/CollectionGridDisplay.ts b/packages/datalib/src/CollectionGridDisplay.ts
index a70c20968..6af931bb5 100644
--- a/packages/datalib/src/CollectionGridDisplay.ts
+++ b/packages/datalib/src/CollectionGridDisplay.ts
@@ -1,6 +1,6 @@
import _ from 'lodash';
import { GridDisplay, ChangeCacheFunc, ChangeConfigFunc, DisplayColumn } from './GridDisplay';
-import { EngineDriver, ViewInfo, ColumnInfo, CollectionInfo } from 'dbgate-types';
+import type { EngineDriver, ViewInfo, ColumnInfo, CollectionInfo } from 'dbgate-types';
import { GridConfig, GridCache } from './GridConfig';
function getObjectKeys(obj) {
diff --git a/packages/datalib/src/FormViewDisplay.ts b/packages/datalib/src/FormViewDisplay.ts
index 20a372a10..4bba3c55c 100644
--- a/packages/datalib/src/FormViewDisplay.ts
+++ b/packages/datalib/src/FormViewDisplay.ts
@@ -1,6 +1,6 @@
import _ from 'lodash';
import { GridConfig, GridCache, GridConfigColumns, createGridCache, GroupFunc } from './GridConfig';
-import { TableInfo, EngineDriver, DatabaseInfo, SqlDialect } from 'dbgate-types';
+import type { TableInfo, EngineDriver, DatabaseInfo, SqlDialect } from 'dbgate-types';
import { getFilterValueExpression } from 'dbgate-filterparser';
import { ChangeCacheFunc, ChangeConfigFunc, DisplayColumn } from './GridDisplay';
diff --git a/packages/datalib/src/FreeTableGridDisplay.ts b/packages/datalib/src/FreeTableGridDisplay.ts
index f636fcf82..607abf4e9 100644
--- a/packages/datalib/src/FreeTableGridDisplay.ts
+++ b/packages/datalib/src/FreeTableGridDisplay.ts
@@ -1,5 +1,5 @@
import _ from 'lodash';
-import { EngineDriver, ViewInfo, ColumnInfo } from 'dbgate-types';
+import type { EngineDriver, ViewInfo, ColumnInfo } from 'dbgate-types';
import { GridDisplay, ChangeCacheFunc, ChangeConfigFunc } from './GridDisplay';
import { GridConfig, GridCache } from './GridConfig';
import { FreeTableModel } from './FreeTableModel';
diff --git a/packages/datalib/src/FreeTableModel.ts b/packages/datalib/src/FreeTableModel.ts
index e5cce2f76..616e0c8e2 100644
--- a/packages/datalib/src/FreeTableModel.ts
+++ b/packages/datalib/src/FreeTableModel.ts
@@ -1,4 +1,4 @@
-import { TableInfo } from 'dbgate-types';
+import type { TableInfo } from 'dbgate-types';
export interface FreeTableModel {
structure: TableInfo;
diff --git a/packages/datalib/src/GridConfig.ts b/packages/datalib/src/GridConfig.ts
index d38a468cf..c6c7fd5eb 100644
--- a/packages/datalib/src/GridConfig.ts
+++ b/packages/datalib/src/GridConfig.ts
@@ -1,6 +1,3 @@
-import { DisplayColumn } from './GridDisplay';
-import { TableInfo } from 'dbgate-types';
-
export interface GridConfigColumns {
hiddenColumns: string[];
expandedColumns: string[];
diff --git a/packages/datalib/src/GridDisplay.ts b/packages/datalib/src/GridDisplay.ts
index b04f1783c..7ac527d68 100644
--- a/packages/datalib/src/GridDisplay.ts
+++ b/packages/datalib/src/GridDisplay.ts
@@ -1,6 +1,6 @@
import _ from 'lodash';
import { GridConfig, GridCache, GridConfigColumns, createGridCache, GroupFunc, createGridConfig } from './GridConfig';
-import {
+import type {
ForeignKeyInfo,
TableInfo,
ColumnInfo,
diff --git a/packages/datalib/src/JslGridDisplay.ts b/packages/datalib/src/JslGridDisplay.ts
index 323f01751..698520b93 100644
--- a/packages/datalib/src/JslGridDisplay.ts
+++ b/packages/datalib/src/JslGridDisplay.ts
@@ -1,6 +1,5 @@
import _ from 'lodash';
import { GridDisplay, ChangeCacheFunc, ChangeConfigFunc } from './GridDisplay';
-import { QueryResultColumn } from 'dbgate-types';
import { GridConfig, GridCache } from './GridConfig';
import { analyseCollectionDisplayColumns } from './CollectionGridDisplay';
diff --git a/packages/datalib/src/PerspectiveCache.ts b/packages/datalib/src/PerspectiveCache.ts
index e706b8ae4..00ef68cd9 100644
--- a/packages/datalib/src/PerspectiveCache.ts
+++ b/packages/datalib/src/PerspectiveCache.ts
@@ -1,4 +1,3 @@
-import { RangeDefinition } from 'dbgate-types';
import { PerspectiveDataLoadProps } from './PerspectiveDataProvider';
import _pick from 'lodash/pick';
import _zip from 'lodash/zip';
diff --git a/packages/datalib/src/PerspectiveConfig.ts b/packages/datalib/src/PerspectiveConfig.ts
index d7af928f6..fd80d83bc 100644
--- a/packages/datalib/src/PerspectiveConfig.ts
+++ b/packages/datalib/src/PerspectiveConfig.ts
@@ -1,4 +1,4 @@
-import { DatabaseInfo, ForeignKeyInfo, NamedObjectInfo, TableInfo } from 'dbgate-types';
+import type { DatabaseInfo, ForeignKeyInfo, NamedObjectInfo, TableInfo } from 'dbgate-types';
import uuidv1 from 'uuid/v1';
// export interface PerspectiveConfigColumns {
diff --git a/packages/datalib/src/PerspectiveDataProvider.ts b/packages/datalib/src/PerspectiveDataProvider.ts
index 5c471c55e..130f12d69 100644
--- a/packages/datalib/src/PerspectiveDataProvider.ts
+++ b/packages/datalib/src/PerspectiveDataProvider.ts
@@ -1,6 +1,6 @@
import debug from 'debug';
import { Condition } from 'dbgate-sqltree';
-import { RangeDefinition } from 'dbgate-types';
+import type { RangeDefinition } from 'dbgate-types';
import { PerspectiveBindingGroup, PerspectiveCache } from './PerspectiveCache';
import { PerspectiveDataLoader } from './PerspectiveDataLoader';
import { PerspectiveDataPatternDict } from './PerspectiveDataPattern';
diff --git a/packages/datalib/src/PerspectiveTreeNode.ts b/packages/datalib/src/PerspectiveTreeNode.ts
index 4518c149f..7774d73d3 100644
--- a/packages/datalib/src/PerspectiveTreeNode.ts
+++ b/packages/datalib/src/PerspectiveTreeNode.ts
@@ -1,4 +1,4 @@
-import {
+import type {
CollectionInfo,
ColumnInfo,
DatabaseInfo,
diff --git a/packages/datalib/src/TableFormViewDisplay.ts b/packages/datalib/src/TableFormViewDisplay.ts
index ca1cfd3b7..9502b85b0 100644
--- a/packages/datalib/src/TableFormViewDisplay.ts
+++ b/packages/datalib/src/TableFormViewDisplay.ts
@@ -1,7 +1,7 @@
import { FormViewDisplay } from './FormViewDisplay';
import _ from 'lodash';
import { ChangeCacheFunc, DisplayColumn, ChangeConfigFunc } from './GridDisplay';
-import { EngineDriver, NamedObjectInfo, DatabaseInfo } from 'dbgate-types';
+import type { EngineDriver, NamedObjectInfo, DatabaseInfo } from 'dbgate-types';
import { GridConfig, GridCache } from './GridConfig';
import { mergeConditions, Condition, OrderByExpression } from 'dbgate-sqltree';
import { TableGridDisplay } from './TableGridDisplay';
diff --git a/packages/datalib/src/TableGridDisplay.ts b/packages/datalib/src/TableGridDisplay.ts
index 9252c5ab2..9896380e0 100644
--- a/packages/datalib/src/TableGridDisplay.ts
+++ b/packages/datalib/src/TableGridDisplay.ts
@@ -1,7 +1,7 @@
import _ from 'lodash';
import { filterName, isTableColumnUnique } from 'dbgate-tools';
import { GridDisplay, ChangeCacheFunc, DisplayColumn, DisplayedColumnInfo, ChangeConfigFunc } from './GridDisplay';
-import {
+import type {
TableInfo,
EngineDriver,
ViewInfo,
diff --git a/packages/datalib/src/ViewGridDisplay.ts b/packages/datalib/src/ViewGridDisplay.ts
index 82d73505b..40515db02 100644
--- a/packages/datalib/src/ViewGridDisplay.ts
+++ b/packages/datalib/src/ViewGridDisplay.ts
@@ -1,6 +1,6 @@
import _ from 'lodash';
import { GridDisplay, ChangeCacheFunc, ChangeConfigFunc } from './GridDisplay';
-import { EngineDriver, ViewInfo, ColumnInfo } from 'dbgate-types';
+import type { EngineDriver, ViewInfo, ColumnInfo } from 'dbgate-types';
import { GridConfig, GridCache } from './GridConfig';
export class ViewGridDisplay extends GridDisplay {
diff --git a/packages/datalib/src/deleteCascade.ts b/packages/datalib/src/deleteCascade.ts
index 77415f3ae..973d5772a 100644
--- a/packages/datalib/src/deleteCascade.ts
+++ b/packages/datalib/src/deleteCascade.ts
@@ -1,6 +1,6 @@
import _ from 'lodash';
import { Command, Insert, Update, Delete, UpdateField, Condition, AllowIdentityInsert } from 'dbgate-sqltree';
-import { NamedObjectInfo, DatabaseInfo, ForeignKeyInfo, TableInfo } from 'dbgate-types';
+import type { NamedObjectInfo, DatabaseInfo, ForeignKeyInfo, TableInfo } from 'dbgate-types';
import { ChangeSet, ChangeSetItem, extractChangeSetCondition } from './ChangeSet';
export interface ChangeSetDeleteCascade {
diff --git a/packages/datalib/src/index.ts b/packages/datalib/src/index.ts
index d4626bb57..2c782139f 100644
--- a/packages/datalib/src/index.ts
+++ b/packages/datalib/src/index.ts
@@ -20,3 +20,4 @@ export * from './PerspectiveCache';
export * from './PerspectiveConfig';
export * from './processPerspectiveDefaultColunns';
export * from './PerspectiveDataPattern';
+export * from './PerspectiveDataLoader';
diff --git a/packages/datalib/src/processPerspectiveDefaultColunns.ts b/packages/datalib/src/processPerspectiveDefaultColunns.ts
index 2e106acf7..564d2da09 100644
--- a/packages/datalib/src/processPerspectiveDefaultColunns.ts
+++ b/packages/datalib/src/processPerspectiveDefaultColunns.ts
@@ -1,5 +1,5 @@
import { findForeignKeyForColumn } from 'dbgate-tools';
-import { DatabaseInfo, TableInfo, ViewInfo } from 'dbgate-types';
+import type { DatabaseInfo, TableInfo, ViewInfo } from 'dbgate-types';
import { createPerspectiveNodeConfig, MultipleDatabaseInfo, PerspectiveConfig } from './PerspectiveConfig';
import { PerspectiveDataPattern, PerspectiveDataPatternDict } from './PerspectiveDataPattern';
import { PerspectiveTableNode } from './PerspectiveTreeNode';
diff --git a/packages/datalib/src/tests/chinookDbInfo.ts b/packages/datalib/src/tests/chinookDbInfo.ts
index 20fbbb784..b36a8cda3 100644
--- a/packages/datalib/src/tests/chinookDbInfo.ts
+++ b/packages/datalib/src/tests/chinookDbInfo.ts
@@ -1,4 +1,4 @@
-import { DatabaseInfo } from 'dbgate-types';
+import type { DatabaseInfo } from 'dbgate-types';
export const chinookDbInfo: DatabaseInfo = {
tables: [
diff --git a/packages/filterparser/src/datetimeParser.ts b/packages/filterparser/src/datetimeParser.ts
index 22d0dd682..d4355122c 100644
--- a/packages/filterparser/src/datetimeParser.ts
+++ b/packages/filterparser/src/datetimeParser.ts
@@ -2,7 +2,7 @@ import P from 'parsimmon';
import moment from 'moment';
import { FilterType } from './types';
import { Condition } from 'dbgate-sqltree';
-import { TransformType } from 'dbgate-types';
+import type { TransformType } from 'dbgate-types';
import { interpretEscapes, token, word, whitespace } from './common';
const compoudCondition = conditionType => conditions => {
diff --git a/packages/filterparser/src/parseFilter.ts b/packages/filterparser/src/parseFilter.ts
index 35cb8fa4c..65c2b988f 100644
--- a/packages/filterparser/src/parseFilter.ts
+++ b/packages/filterparser/src/parseFilter.ts
@@ -2,7 +2,6 @@ import P from 'parsimmon';
import moment from 'moment';
import { FilterType } from './types';
import { Condition } from 'dbgate-sqltree';
-import { TransformType } from 'dbgate-types';
import { interpretEscapes, token, word, whitespace } from './common';
import { mongoParser } from './mongoParser';
import { datetimeParser } from './datetimeParser';
diff --git a/packages/sqltree/src/dumpSqlCommand.ts b/packages/sqltree/src/dumpSqlCommand.ts
index ea7fa3aba..9a7ea6fe5 100644
--- a/packages/sqltree/src/dumpSqlCommand.ts
+++ b/packages/sqltree/src/dumpSqlCommand.ts
@@ -1,4 +1,4 @@
-import { SqlDumper } from 'dbgate-types';
+import type { SqlDumper } from 'dbgate-types';
import { Command, Select, Update, Delete, Insert } from './types';
import { dumpSqlExpression } from './dumpSqlExpression';
import { dumpSqlFromDefinition, dumpSqlSourceRef } from './dumpSqlSource';
diff --git a/packages/sqltree/src/dumpSqlCondition.ts b/packages/sqltree/src/dumpSqlCondition.ts
index ea2abc446..a95fa86f4 100644
--- a/packages/sqltree/src/dumpSqlCondition.ts
+++ b/packages/sqltree/src/dumpSqlCondition.ts
@@ -1,4 +1,4 @@
-import { SqlDumper } from 'dbgate-types';
+import type { SqlDumper } from 'dbgate-types';
import { Condition, BinaryCondition } from './types';
import { dumpSqlExpression } from './dumpSqlExpression';
import { dumpSqlSelect } from './dumpSqlCommand';
diff --git a/packages/sqltree/src/dumpSqlExpression.ts b/packages/sqltree/src/dumpSqlExpression.ts
index 7cd279a2f..4772a4bde 100644
--- a/packages/sqltree/src/dumpSqlExpression.ts
+++ b/packages/sqltree/src/dumpSqlExpression.ts
@@ -1,5 +1,5 @@
import _ from 'lodash';
-import { SqlDumper } from 'dbgate-types';
+import type { SqlDumper } from 'dbgate-types';
import { Expression, ColumnRefExpression } from './types';
import { dumpSqlSourceRef } from './dumpSqlSource';
diff --git a/packages/sqltree/src/dumpSqlSource.ts b/packages/sqltree/src/dumpSqlSource.ts
index e13dc1f2f..0c5d46635 100644
--- a/packages/sqltree/src/dumpSqlSource.ts
+++ b/packages/sqltree/src/dumpSqlSource.ts
@@ -1,5 +1,5 @@
import { Source, FromDefinition, Relation } from './types';
-import { SqlDumper } from 'dbgate-types';
+import type { SqlDumper } from 'dbgate-types';
import { dumpSqlSelect } from './dumpSqlCommand';
import { dumpSqlCondition } from './dumpSqlCondition';
diff --git a/packages/sqltree/src/evaluateCondition.ts b/packages/sqltree/src/evaluateCondition.ts
index 944c3ef89..f615af4eb 100644
--- a/packages/sqltree/src/evaluateCondition.ts
+++ b/packages/sqltree/src/evaluateCondition.ts
@@ -1,10 +1,6 @@
-import { SqlDumper } from 'dbgate-types';
import _ from 'lodash';
import { Condition, BinaryCondition } from './types';
-import { dumpSqlExpression } from './dumpSqlExpression';
-import { link } from 'fs';
import { evaluateExpression } from './evaluateExpression';
-import { cond } from 'lodash';
function isEmpty(value) {
if (value == null) return true;
diff --git a/packages/sqltree/src/types.ts b/packages/sqltree/src/types.ts
index 07e9e4b03..3e3e45a1e 100644
--- a/packages/sqltree/src/types.ts
+++ b/packages/sqltree/src/types.ts
@@ -1,4 +1,4 @@
-import { NamedObjectInfo, RangeDefinition, TransformType } from 'dbgate-types';
+import type { NamedObjectInfo, RangeDefinition, TransformType } from 'dbgate-types';
// export interface Command {
// }
diff --git a/packages/sqltree/src/utility.ts b/packages/sqltree/src/utility.ts
index 39301a9ee..ccab90e87 100644
--- a/packages/sqltree/src/utility.ts
+++ b/packages/sqltree/src/utility.ts
@@ -1,4 +1,4 @@
-import { EngineDriver, SqlDumper } from 'dbgate-types';
+import type { EngineDriver, SqlDumper } from 'dbgate-types';
import { Command, Condition } from './types';
import { dumpSqlCommand } from './dumpSqlCommand';
diff --git a/packages/tools/src/SqlDumper.ts b/packages/tools/src/SqlDumper.ts
index c8bb5c6af..82af25c6c 100644
--- a/packages/tools/src/SqlDumper.ts
+++ b/packages/tools/src/SqlDumper.ts
@@ -1,5 +1,5 @@
import _ from 'lodash';
-import {
+import type {
ColumnInfo,
ConstraintInfo,
EngineDriver,
diff --git a/packages/tools/src/SqlGenerator.ts b/packages/tools/src/SqlGenerator.ts
index 48b0d103a..edcefa6b8 100644
--- a/packages/tools/src/SqlGenerator.ts
+++ b/packages/tools/src/SqlGenerator.ts
@@ -1,4 +1,4 @@
-import {
+import type {
DatabaseInfo,
EngineDriver,
FunctionInfo,
diff --git a/packages/tools/src/computeDiffRows.ts b/packages/tools/src/computeDiffRows.ts
index a5c64b48c..a1fa836ac 100644
--- a/packages/tools/src/computeDiffRows.ts
+++ b/packages/tools/src/computeDiffRows.ts
@@ -1,5 +1,5 @@
import { DbDiffOptions, testEqualColumns, testEqualTables, testEqualSqlObjects } from './diffTools';
-import { DatabaseInfo, EngineDriver, SqlObjectInfo, TableInfo } from 'dbgate-types';
+import type { DatabaseInfo, EngineDriver, SqlObjectInfo, TableInfo } from 'dbgate-types';
import _ from 'lodash';
export function computeDiffRowsCore(sourceList, targetList, testEqual) {
diff --git a/packages/tools/src/createBulkInsertStreamBase.ts b/packages/tools/src/createBulkInsertStreamBase.ts
index 01f8b1b2a..9a8812226 100644
--- a/packages/tools/src/createBulkInsertStreamBase.ts
+++ b/packages/tools/src/createBulkInsertStreamBase.ts
@@ -1,4 +1,3 @@
-import { EngineDriver } from 'dbgate-types';
import _intersection from 'lodash/intersection';
import { prepareTableForImport } from './tableTransforms';
diff --git a/packages/tools/src/diffTools.ts b/packages/tools/src/diffTools.ts
index c7f19d3fc..f3b7fb33d 100644
--- a/packages/tools/src/diffTools.ts
+++ b/packages/tools/src/diffTools.ts
@@ -1,4 +1,4 @@
-import {
+import type {
ColumnInfo,
ConstraintInfo,
DatabaseInfo,
diff --git a/packages/tools/src/nameTools.ts b/packages/tools/src/nameTools.ts
index 14e2b8961..617481a3e 100644
--- a/packages/tools/src/nameTools.ts
+++ b/packages/tools/src/nameTools.ts
@@ -1,6 +1,6 @@
import _cloneDeep from 'lodash/cloneDeep';
import _isString from 'lodash/isString';
-import {
+import type {
ColumnInfo,
ColumnReference,
DatabaseInfo,
diff --git a/packages/tools/src/packageTools.ts b/packages/tools/src/packageTools.ts
index 5e2047129..76c3897a9 100644
--- a/packages/tools/src/packageTools.ts
+++ b/packages/tools/src/packageTools.ts
@@ -1,4 +1,4 @@
-import { EngineDriver, ExtensionsDirectory } from 'dbgate-types';
+import type { EngineDriver, ExtensionsDirectory } from 'dbgate-types';
import _camelCase from 'lodash/camelCase';
import _isString from 'lodash/isString';
import _isPlainObject from 'lodash/isPlainObject';
diff --git a/packages/tools/src/preloadedRowsTools.ts b/packages/tools/src/preloadedRowsTools.ts
index d0be38064..09c2e083e 100644
--- a/packages/tools/src/preloadedRowsTools.ts
+++ b/packages/tools/src/preloadedRowsTools.ts
@@ -1,5 +1,5 @@
import _ from 'lodash';
-import { DatabaseInfo, EngineDriver } from 'dbgate-types';
+import type { DatabaseInfo, EngineDriver } from 'dbgate-types';
export async function enrichWithPreloadedRows(
dbModel: DatabaseInfo,
diff --git a/packages/tools/src/schemaEditorTools.ts b/packages/tools/src/schemaEditorTools.ts
index c67c3d2d6..5c5c92657 100644
--- a/packages/tools/src/schemaEditorTools.ts
+++ b/packages/tools/src/schemaEditorTools.ts
@@ -1,6 +1,6 @@
import uuidv1 from 'uuid/v1';
import _omit from 'lodash/omit';
-import {
+import type {
ColumnInfo,
ConstraintInfo,
ForeignKeyInfo,
diff --git a/packages/tools/src/structureTools.ts b/packages/tools/src/structureTools.ts
index 660c5779c..42b0ffbca 100644
--- a/packages/tools/src/structureTools.ts
+++ b/packages/tools/src/structureTools.ts
@@ -1,4 +1,4 @@
-import { DatabaseInfo, TableInfo, ApplicationDefinition, ViewInfo, CollectionInfo } from 'dbgate-types';
+import type { DatabaseInfo, TableInfo, ApplicationDefinition, ViewInfo, CollectionInfo } from 'dbgate-types';
import _flatten from 'lodash/flatten';
export function addTableDependencies(db: DatabaseInfo): DatabaseInfo {
diff --git a/packages/tools/src/tableTransforms.ts b/packages/tools/src/tableTransforms.ts
index 54f46ed03..d53c38570 100644
--- a/packages/tools/src/tableTransforms.ts
+++ b/packages/tools/src/tableTransforms.ts
@@ -1,4 +1,4 @@
-import { TableInfo } from 'dbgate-types';
+import type { TableInfo } from 'dbgate-types';
import _cloneDeep from 'lodash/cloneDeep';
import _fromPairs from 'lodash/fromPairs';
import _get from 'lodash/get';
diff --git a/packages/web/rollup.config.js b/packages/web/rollup.config.js
index f12e6b6d9..599ee5632 100644
--- a/packages/web/rollup.config.js
+++ b/packages/web/rollup.config.js
@@ -45,7 +45,7 @@ export default [
resolve({
browser: true,
}),
-
+
// If we're building for production (npm run build
// instead of npm run dev), minify
production && terser(),
@@ -88,6 +88,20 @@ export default [
// enable run-time checks when not in production
dev: !production,
},
+ onwarn: (warning, handler) => {
+ const ignoreWarnings = [
+ 'a11y-click-events-have-key-events',
+ 'a11y-missing-attribute',
+ 'a11y-invalid-attribute',
+ 'a11y-no-noninteractive-tabindex',
+ 'a11y-label-has-associated-control',
+ 'vite-plugin-svelte-css-no-scopable-elements',
+ 'unused-export-let',
+ ];
+ if (ignoreWarnings.includes(warning.code)) return;
+ // console.log('***************************', warning.code);
+ handler(warning);
+ },
}),
// we'll extract any component CSS out into
// a separate file - better for performance
diff --git a/packages/web/src/Screen.svelte b/packages/web/src/Screen.svelte
index 7db86775b..5ba23f30f 100644
--- a/packages/web/src/Screen.svelte
+++ b/packages/web/src/Screen.svelte
@@ -8,6 +8,7 @@
leftPanelWidth,
openedSnackbars,
selectedWidget,
+ visibleWidgetSideBar,
visibleCommandPalette,
visibleTitleBar,
visibleToolbar,
@@ -29,7 +30,7 @@
$: currentThemeType = $currentThemeDefinition?.themeType == 'dark' ? 'theme-type-dark' : 'theme-type-light';
- $: themeStyle = ``;
+ $: themeStyle = `