From 990ff6ce57df1b3b20903ecc8bdb3a240cc394c6 Mon Sep 17 00:00:00 2001 From: Charlie Moog Date: Tue, 29 Mar 2022 20:56:59 -0500 Subject: [PATCH 1/4] dev: cleanup build scripts Compile the node component to a single file, bundled with all the node modules inline. This fixes a vsce warning by dramatically reducing the number of files in the final .vsix asset. --- .gitignore | 3 +- .vscode/launch.json | 8 +- .vscode/settings.json | 7 +- .vscode/tasks.json | 2 - .vscodeignore | 27 +- CHANGELOG.md | 2 +- package-lock.json | 500 +++++++++++--------------------------- package.json | 12 +- src/connections.ts | 2 +- src/form.ts | 2 +- src/lsp.ts | 1 - src/tsconfig.json | 9 +- webview/tsconfig.json | 2 +- webview/webpack.config.js | 2 +- 14 files changed, 180 insertions(+), 399 deletions(-) diff --git a/.gitignore b/.gitignore index 39847ee..2632f8a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ -out +dist node_modules *.vsix sqls_bin sqls +.direnv diff --git a/.vscode/launch.json b/.vscode/launch.json index ca05255..2a066a6 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -10,10 +10,8 @@ "type": "pwa-extensionHost", "request": "launch", "args": ["--extensionDevelopmentPath=${workspaceFolder}"], - "outFiles": ["${workspaceFolder}/out/**/*.js"], - "debugWebviews": { - "urlFilter": "*notebookRenderer*" - }, + "outFiles": ["${workspaceFolder}/dist/**/*.js"], + "debugWebviews": true, "trace": true, "preLaunchTask": "npm: watch" }, @@ -22,7 +20,7 @@ "type": "extensionHost", "request": "launch", "args": ["--extensionDevelopmentPath=${workspaceFolder}"], - "outFiles": ["${workspaceFolder}/out/**/*.js"], + "outFiles": ["${workspaceFolder}/dist/**/*.js"], "debugWebviews": true, "preLaunchTask": "npm: watch" } diff --git a/.vscode/settings.json b/.vscode/settings.json index 7e0d93a..2c4e30c 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,10 +1,11 @@ { "files.exclude": { - "out": false // set this to true to hide the "out" folder with the compiled JS files + "dist": false // set this to true to hide the "out" folder with the compiled JS files }, "search.exclude": { - "out": true // set this to false to include "out" folder in search results + "dist": true }, // Turn off tsc task auto detection since we have the necessary tasks as npm scripts - "typescript.tsc.autoDetect": "off" + "typescript.tsc.autoDetect": "off", + "cSpell.enabled": true } diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 7a1b17e..b1434c3 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -6,7 +6,6 @@ { "type": "npm", "script": "watch", - "problemMatcher": ["$tsc-watch", "$ts-checker-webpack-watch"], "isBackground": true, "presentation": { "reveal": "never" @@ -19,7 +18,6 @@ { "type": "npm", "script": "compile", - "problemMatcher": ["$tsc", "$ts-checker-webpack"], "group": "build" } ] diff --git a/.vscodeignore b/.vscodeignore index 39da2eb..18e0e89 100644 --- a/.vscodeignore +++ b/.vscodeignore @@ -1,17 +1,10 @@ -.vscode/** -.vscode-test/** -out/test/** -src/** -.gitignore -**/tsconfig.json -**/.eslintrc.json -**/*.map -**/*.ts -**/*.tsbuildinfo -sqls -.github -flake.nix -flake.lock -.envrc -.gitmodules -webview +* +**/** +!LICENSE +!CHANGELOG.md +!dist/**/* +!media/**/* +!sqls_bin/**/* +!README.md +!package.json +!package-lock.json diff --git a/CHANGELOG.md b/CHANGELOG.md index a539ca4..50116ae 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ ## v0.5.2 -- When clicking `Run All`, cells now execute in series. Previously, cells executed in parallel. +- When clicking `Run All`, cells now execute in series. Previously, cells executed in parallel. - New configuration option for maximum number of result rows before truncating the result table. Defaults to `25`. diff --git a/package-lock.json b/package-lock.json index 7954cf1..6a7014a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "sqlnotebook", - "version": "0.4.1", + "version": "0.5.2", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "sqlnotebook", - "version": "0.4.1", + "version": "0.5.2", "dependencies": { "@vscode/webview-ui-toolkit": "^0.9.3", "mssql": "^7.2.1", @@ -30,6 +30,7 @@ "@types/webpack-env": "^1.16.0", "@typescript-eslint/eslint-plugin": "^4.26.0", "@typescript-eslint/parser": "^4.26.0", + "@vercel/ncc": "^0.33.3", "concurrently": "^7.0.0", "css-loader": "^6.6.0", "eslint": "^7.27.0", @@ -41,7 +42,7 @@ "style-loader": "^1.2.1", "ts-loader": "^9.2.6", "typescript": "^4.3.2", - "vsce": "1.100.0", + "vsce": "^2.7.0", "vscode-notebook-error-overlay": "^1.0.1", "vscode-test": "^1.5.2", "webpack": "^5.65.0", @@ -969,6 +970,15 @@ "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", "dev": true }, + "node_modules/@vercel/ncc": { + "version": "0.33.3", + "resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.33.3.tgz", + "integrity": "sha512-JGZ11QV+/ZcfudW2Cz2JVp54/pJNXbsuWRgSh2ZmmZdQBKXqBtIGrwI1Wyx8nlbzAiEFe7FHi4K1zX4//jxTnQ==", + "dev": true, + "bin": { + "ncc": "dist/ncc/cli.js" + } + }, "node_modules/@vscode/webview-ui-toolkit": { "version": "0.9.3", "resolved": "https://registry.npmjs.org/@vscode/webview-ui-toolkit/-/webview-ui-toolkit-0.9.3.tgz", @@ -2216,12 +2226,6 @@ "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", "devOptional": true }, - "node_modules/denodeify": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/denodeify/-/denodeify-1.2.1.tgz", - "integrity": "sha1-OjYof1A05pnnV3kBBSwubJQlFjE=", - "dev": true - }, "node_modules/denque": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/denque/-/denque-2.0.1.tgz", @@ -3438,9 +3442,9 @@ } }, "node_modules/has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "engines": { "node": ">= 0.4" }, @@ -4042,9 +4046,9 @@ "dev": true }, "node_modules/linkify-it": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz", - "integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", + "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", "dev": true, "dependencies": { "uc.micro": "^1.0.1" @@ -4260,14 +4264,14 @@ } }, "node_modules/markdown-it": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-10.0.0.tgz", - "integrity": "sha512-YWOP1j7UbDNz+TumYP1kpwnP0aEa711cJjrAQrzd0UXlbJfc5aAq0F/PZHjiioqDC1NKgvIMX+o+9Bk7yuM2dg==", + "version": "12.3.2", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", + "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", "dev": true, "dependencies": { - "argparse": "^1.0.7", - "entities": "~2.0.0", - "linkify-it": "^2.0.0", + "argparse": "^2.0.1", + "entities": "~2.1.0", + "linkify-it": "^3.0.1", "mdurl": "^1.0.1", "uc.micro": "^1.0.5" }, @@ -4275,12 +4279,21 @@ "markdown-it": "bin/markdown-it.js" } }, - "node_modules/markdown-it/node_modules/entities": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.3.tgz", - "integrity": "sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==", + "node_modules/markdown-it/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, + "node_modules/markdown-it/node_modules/entities": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", + "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", + "dev": true, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/mdurl": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", @@ -4791,34 +4804,6 @@ "node": ">= 0.8.0" } }, - "node_modules/os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "dev": true, - "dependencies": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, "node_modules/ovsx": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/ovsx/-/ovsx-0.3.0.tgz", @@ -4839,12 +4824,6 @@ "node": ">= 14" } }, - "node_modules/ovsx/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, "node_modules/ovsx/node_modules/commander": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", @@ -4854,89 +4833,6 @@ "node": ">= 6" } }, - "node_modules/ovsx/node_modules/entities": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", - "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", - "dev": true, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/ovsx/node_modules/linkify-it": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", - "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", - "dev": true, - "dependencies": { - "uc.micro": "^1.0.1" - } - }, - "node_modules/ovsx/node_modules/markdown-it": { - "version": "12.3.2", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", - "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1", - "entities": "~2.1.0", - "linkify-it": "^3.0.1", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" - }, - "bin": { - "markdown-it": "bin/markdown-it.js" - } - }, - "node_modules/ovsx/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/ovsx/node_modules/url-join": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", - "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==", - "dev": true - }, - "node_modules/ovsx/node_modules/vsce": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/vsce/-/vsce-2.7.0.tgz", - "integrity": "sha512-CKU34wrQlbKDeJCRBkd1a8iwF9EvNxcYMg9hAUH6AxFGR6Wo2IKWwt3cJIcusHxx6XdjDHWlfAS/fJN30uvVnA==", - "dev": true, - "dependencies": { - "azure-devops-node-api": "^11.0.1", - "chalk": "^2.4.2", - "cheerio": "^1.0.0-rc.9", - "commander": "^6.1.0", - "glob": "^7.0.6", - "hosted-git-info": "^4.0.2", - "keytar": "^7.7.0", - "leven": "^3.1.0", - "markdown-it": "^12.3.2", - "mime": "^1.3.4", - "minimatch": "^3.0.3", - "parse-semver": "^1.1.1", - "read": "^1.0.7", - "semver": "^5.1.0", - "tmp": "^0.2.1", - "typed-rest-client": "^1.8.4", - "url-join": "^4.0.1", - "xml2js": "^0.4.23", - "yauzl": "^2.3.1", - "yazl": "^2.2.2" - }, - "bin": { - "vsce": "vsce" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -6339,6 +6235,24 @@ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==" }, + "node_modules/terser": { + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.12.1.tgz", + "integrity": "sha512-NXbs+7nisos5E+yXwAD+y7zrcTkMqb0dEJxIGtSKPdCBzopf7ni4odPul2aechpV7EXNvOudYOX2bb5tln1jbQ==", + "dev": true, + "dependencies": { + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map": "~0.7.2", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/terser-webpack-plugin": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.0.tgz", @@ -6373,26 +6287,6 @@ } } }, - "node_modules/terser-webpack-plugin/node_modules/acorn": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", - "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", - "dev": true, - "optional": true, - "peer": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/terser-webpack-plugin/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, "node_modules/terser-webpack-plugin/node_modules/schema-utils": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", @@ -6411,32 +6305,25 @@ "url": "https://opencollective.com/webpack" } }, - "node_modules/terser-webpack-plugin/node_modules/terser": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.10.0.tgz", - "integrity": "sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA==", + "node_modules/terser/node_modules/acorn": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", "dev": true, - "dependencies": { - "commander": "^2.20.0", - "source-map": "~0.7.2", - "source-map-support": "~0.5.20" - }, "bin": { - "terser": "bin/terser" + "acorn": "bin/acorn" }, "engines": { - "node": ">=10" - }, - "peerDependencies": { - "acorn": "^8.5.0" - }, - "peerDependenciesMeta": { - "acorn": { - "optional": true - } + "node": ">=0.4.0" } }, - "node_modules/terser-webpack-plugin/node_modules/terser/node_modules/source-map": { + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/terser/node_modules/source-map": { "version": "0.7.3", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", @@ -6774,9 +6661,9 @@ } }, "node_modules/url-join": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/url-join/-/url-join-1.1.0.tgz", - "integrity": "sha1-dBxsL0WWxIMNZxhGCSDQySIC3Hg=", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", + "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==", "dev": true }, "node_modules/util-deprecate": { @@ -6799,39 +6686,37 @@ "dev": true }, "node_modules/vsce": { - "version": "1.100.0", - "resolved": "https://registry.npmjs.org/vsce/-/vsce-1.100.0.tgz", - "integrity": "sha512-sY1NVSZkesioir/1w04igdSPKKHb4QAn7AngOQIKvNTvtFUFuEE/KrcURcld9Gai9W5167zaeifW5rWUsX3rLg==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/vsce/-/vsce-2.7.0.tgz", + "integrity": "sha512-CKU34wrQlbKDeJCRBkd1a8iwF9EvNxcYMg9hAUH6AxFGR6Wo2IKWwt3cJIcusHxx6XdjDHWlfAS/fJN30uvVnA==", "dev": true, "dependencies": { "azure-devops-node-api": "^11.0.1", "chalk": "^2.4.2", "cheerio": "^1.0.0-rc.9", "commander": "^6.1.0", - "denodeify": "^1.2.1", "glob": "^7.0.6", "hosted-git-info": "^4.0.2", + "keytar": "^7.7.0", "leven": "^3.1.0", - "lodash": "^4.17.15", - "markdown-it": "^10.0.0", + "markdown-it": "^12.3.2", "mime": "^1.3.4", "minimatch": "^3.0.3", - "osenv": "^0.1.3", "parse-semver": "^1.1.1", "read": "^1.0.7", "semver": "^5.1.0", "tmp": "^0.2.1", "typed-rest-client": "^1.8.4", - "url-join": "^1.1.0", + "url-join": "^4.0.1", "xml2js": "^0.4.23", "yauzl": "^2.3.1", "yazl": "^2.2.2" }, "bin": { - "vsce": "out/vsce" + "vsce": "vsce" }, "engines": { - "node": ">= 10" + "node": ">= 14" } }, "node_modules/vsce/node_modules/commander": { @@ -8157,6 +8042,12 @@ "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", "dev": true }, + "@vercel/ncc": { + "version": "0.33.3", + "resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.33.3.tgz", + "integrity": "sha512-JGZ11QV+/ZcfudW2Cz2JVp54/pJNXbsuWRgSh2ZmmZdQBKXqBtIGrwI1Wyx8nlbzAiEFe7FHi4K1zX4//jxTnQ==", + "dev": true + }, "@vscode/webview-ui-toolkit": { "version": "0.9.3", "resolved": "https://registry.npmjs.org/@vscode/webview-ui-toolkit/-/webview-ui-toolkit-0.9.3.tgz", @@ -9130,12 +9021,6 @@ "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", "devOptional": true }, - "denodeify": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/denodeify/-/denodeify-1.2.1.tgz", - "integrity": "sha1-OjYof1A05pnnV3kBBSwubJQlFjE=", - "dev": true - }, "denque": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/denque/-/denque-2.0.1.tgz", @@ -10057,9 +9942,9 @@ "dev": true }, "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" }, "has-unicode": { "version": "2.0.1", @@ -10501,9 +10386,9 @@ "dev": true }, "linkify-it": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz", - "integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", + "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", "dev": true, "requires": { "uc.micro": "^1.0.1" @@ -10676,22 +10561,28 @@ } }, "markdown-it": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-10.0.0.tgz", - "integrity": "sha512-YWOP1j7UbDNz+TumYP1kpwnP0aEa711cJjrAQrzd0UXlbJfc5aAq0F/PZHjiioqDC1NKgvIMX+o+9Bk7yuM2dg==", + "version": "12.3.2", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", + "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", "dev": true, "requires": { - "argparse": "^1.0.7", - "entities": "~2.0.0", - "linkify-it": "^2.0.0", + "argparse": "^2.0.1", + "entities": "~2.1.0", + "linkify-it": "^3.0.1", "mdurl": "^1.0.1", "uc.micro": "^1.0.5" }, "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, "entities": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.3.tgz", - "integrity": "sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", + "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", "dev": true } } @@ -11088,28 +10979,6 @@ "word-wrap": "^1.2.3" } }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true - }, - "osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "dev": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, "ovsx": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/ovsx/-/ovsx-0.3.0.tgz", @@ -11124,85 +10993,11 @@ "vsce": "^2.6.3" }, "dependencies": { - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, "commander": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", "dev": true - }, - "entities": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", - "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", - "dev": true - }, - "linkify-it": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", - "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", - "dev": true, - "requires": { - "uc.micro": "^1.0.1" - } - }, - "markdown-it": { - "version": "12.3.2", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", - "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", - "dev": true, - "requires": { - "argparse": "^2.0.1", - "entities": "~2.1.0", - "linkify-it": "^3.0.1", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "url-join": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", - "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==", - "dev": true - }, - "vsce": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/vsce/-/vsce-2.7.0.tgz", - "integrity": "sha512-CKU34wrQlbKDeJCRBkd1a8iwF9EvNxcYMg9hAUH6AxFGR6Wo2IKWwt3cJIcusHxx6XdjDHWlfAS/fJN30uvVnA==", - "dev": true, - "requires": { - "azure-devops-node-api": "^11.0.1", - "chalk": "^2.4.2", - "cheerio": "^1.0.0-rc.9", - "commander": "^6.1.0", - "glob": "^7.0.6", - "hosted-git-info": "^4.0.2", - "keytar": "^7.7.0", - "leven": "^3.1.0", - "markdown-it": "^12.3.2", - "mime": "^1.3.4", - "minimatch": "^3.0.3", - "parse-semver": "^1.1.1", - "read": "^1.0.7", - "semver": "^5.1.0", - "tmp": "^0.2.1", - "typed-rest-client": "^1.8.4", - "url-join": "^4.0.1", - "xml2js": "^0.4.23", - "yauzl": "^2.3.1", - "yazl": "^2.2.2" - } } } }, @@ -12210,26 +12005,23 @@ } } }, - "terser-webpack-plugin": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.0.tgz", - "integrity": "sha512-LPIisi3Ol4chwAaPP8toUJ3L4qCM1G0wao7L3qNv57Drezxj6+VEyySpPw4B1HSO2Eg/hDY/MNF5XihCAoqnsQ==", + "terser": { + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.12.1.tgz", + "integrity": "sha512-NXbs+7nisos5E+yXwAD+y7zrcTkMqb0dEJxIGtSKPdCBzopf7ni4odPul2aechpV7EXNvOudYOX2bb5tln1jbQ==", "dev": true, "requires": { - "jest-worker": "^27.4.1", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.0", - "source-map": "^0.6.1", - "terser": "^5.7.2" + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map": "~0.7.2", + "source-map-support": "~0.5.20" }, "dependencies": { "acorn": { "version": "8.7.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", - "dev": true, - "optional": true, - "peer": true + "dev": true }, "commander": { "version": "2.20.3", @@ -12237,6 +12029,27 @@ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true + } + } + }, + "terser-webpack-plugin": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.0.tgz", + "integrity": "sha512-LPIisi3Ol4chwAaPP8toUJ3L4qCM1G0wao7L3qNv57Drezxj6+VEyySpPw4B1HSO2Eg/hDY/MNF5XihCAoqnsQ==", + "dev": true, + "requires": { + "jest-worker": "^27.4.1", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1", + "terser": "^5.7.2" + }, + "dependencies": { "schema-utils": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", @@ -12247,25 +12060,6 @@ "ajv": "^6.12.5", "ajv-keywords": "^3.5.2" } - }, - "terser": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.10.0.tgz", - "integrity": "sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA==", - "dev": true, - "requires": { - "commander": "^2.20.0", - "source-map": "~0.7.2", - "source-map-support": "~0.5.20" - }, - "dependencies": { - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true - } - } } } }, @@ -12527,9 +12321,9 @@ } }, "url-join": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/url-join/-/url-join-1.1.0.tgz", - "integrity": "sha1-dBxsL0WWxIMNZxhGCSDQySIC3Hg=", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", + "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==", "dev": true }, "util-deprecate": { @@ -12549,30 +12343,28 @@ "dev": true }, "vsce": { - "version": "1.100.0", - "resolved": "https://registry.npmjs.org/vsce/-/vsce-1.100.0.tgz", - "integrity": "sha512-sY1NVSZkesioir/1w04igdSPKKHb4QAn7AngOQIKvNTvtFUFuEE/KrcURcld9Gai9W5167zaeifW5rWUsX3rLg==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/vsce/-/vsce-2.7.0.tgz", + "integrity": "sha512-CKU34wrQlbKDeJCRBkd1a8iwF9EvNxcYMg9hAUH6AxFGR6Wo2IKWwt3cJIcusHxx6XdjDHWlfAS/fJN30uvVnA==", "dev": true, "requires": { "azure-devops-node-api": "^11.0.1", "chalk": "^2.4.2", "cheerio": "^1.0.0-rc.9", "commander": "^6.1.0", - "denodeify": "^1.2.1", "glob": "^7.0.6", "hosted-git-info": "^4.0.2", + "keytar": "^7.7.0", "leven": "^3.1.0", - "lodash": "^4.17.15", - "markdown-it": "^10.0.0", + "markdown-it": "^12.3.2", "mime": "^1.3.4", "minimatch": "^3.0.3", - "osenv": "^0.1.3", "parse-semver": "^1.1.1", "read": "^1.0.7", "semver": "^5.1.0", "tmp": "^0.2.1", "typed-rest-client": "^1.8.4", - "url-join": "^1.1.0", + "url-join": "^4.0.1", "xml2js": "^0.4.23", "yauzl": "^2.3.1", "yazl": "^2.2.2" diff --git a/package.json b/package.json index 9591c7b..aad7f8c 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "onNotebook:sql-notebook", "onView:sqlnotebook-connections" ], - "main": "./out/extension/main.js", + "main": "./dist/index.js", "capabilities": { "virtualWorkspaces": true, "untrustedWorkspaces": { @@ -139,10 +139,11 @@ "scripts": { "build": "vsce package", "vscode:prepublish": "npm run compile", - "compile": "tsc -b ./src & webpack --config ./webview/webpack.config.js", + "compile": "ncc build ./src/main.ts --minify --out ./dist && webpack --config ./webview/webpack.config.js", + "clean": "rm -rf ./dist", "lint": "eslint src --ext ts", - "watch": "tsc -b ./src --watch & webpack --watch --config ./webview/webpack.config.js", - "fmt": "npx prettier --write --ignore-path .gitignore ." + "watch": "ncc build ./src/main.ts --minify --watch --out ./dist & webpack --watch --config ./webview/webpack.config.js", + "fmt": "prettier --write --ignore-path .gitignore ." }, "devDependencies": { "@types/escape-html": "^1.0.1", @@ -158,6 +159,7 @@ "@types/webpack-env": "^1.16.0", "@typescript-eslint/eslint-plugin": "^4.26.0", "@typescript-eslint/parser": "^4.26.0", + "@vercel/ncc": "^0.33.3", "concurrently": "^7.0.0", "css-loader": "^6.6.0", "eslint": "^7.27.0", @@ -169,7 +171,7 @@ "style-loader": "^1.2.1", "ts-loader": "^9.2.6", "typescript": "^4.3.2", - "vsce": "1.100.0", + "vsce": "^2.7.0", "vscode-notebook-error-overlay": "^1.0.1", "vscode-test": "^1.5.2", "webpack": "^5.65.0", diff --git a/src/connections.ts b/src/connections.ts index dccf6b7..4d96b4a 100644 --- a/src/connections.ts +++ b/src/connections.ts @@ -110,4 +110,4 @@ export class ConnectionListItem extends vscode.TreeItem { } } -export const mediaDir = path.join(__filename, '..', '..', '..', 'media'); +export const mediaDir = path.join(__filename, '..', '..', 'media'); diff --git a/src/form.ts b/src/form.ts index 00aeff6..8f8e09f 100644 --- a/src/form.ts +++ b/src/form.ts @@ -101,7 +101,7 @@ async function getWebviewContent( 'toolkit.js', ]); const bundlePath = getUri(webview, extensionUri, [ - 'out', + 'dist', 'webview', 'main-bundle.js', ]); diff --git a/src/lsp.ts b/src/lsp.ts index 7d1427e..8eec90c 100644 --- a/src/lsp.ts +++ b/src/lsp.ts @@ -44,7 +44,6 @@ export function getCompiledLSPBinaryPath(): string | null { __filename, '..', '..', - '..', 'sqls_bin', `sqls_${goarch}_${goos}` ); diff --git a/src/tsconfig.json b/src/tsconfig.json index 7ca49af..c64c127 100644 --- a/src/tsconfig.json +++ b/src/tsconfig.json @@ -4,15 +4,12 @@ "target": "ES2019", "lib": ["ES2019"], "rootDir": ".", - "outDir": "../out/extension", "types": ["node"], "moduleResolution": "node", "sourceMap": true, - "strict": true /* enable all strict type-checking options */ - /* Additional Checks */ - // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */ - // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ - // "noUnusedParameters": true, /* Report errors on unused parameters. */ + "strict": true, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true }, "references": [] } diff --git a/webview/tsconfig.json b/webview/tsconfig.json index c9747d2..25b096e 100644 --- a/webview/tsconfig.json +++ b/webview/tsconfig.json @@ -5,7 +5,7 @@ "target": "es5", "lib": ["ES2019", "dom"], "rootDir": ".", - "outDir": "../out/webview", + "outDir": "../dist/webview", "moduleResolution": "node", "sourceMap": true, "strict": true diff --git a/webview/webpack.config.js b/webview/webpack.config.js index 2771cef..d767f85 100644 --- a/webview/webpack.config.js +++ b/webview/webpack.config.js @@ -8,7 +8,7 @@ module.exports = { main: path.resolve(__dirname, './main.tsx'), }, output: { - path: path.resolve(__dirname, '../out/webview'), + path: path.resolve(__dirname, '../dist/webview'), filename: '[name]-bundle.js', }, resolve: { From 870c5874cbc07ff8d65c7e0778c6a8ed9f8e1c48 Mon Sep 17 00:00:00 2001 From: Charlie Moog Date: Fri, 8 Apr 2022 12:47:54 -0500 Subject: [PATCH 2/4] fix: improve rendering of binary and json fields (#42) --- src/controller.ts | 22 +++++++++++++++++----- src/driver.ts | 2 +- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/src/controller.ts b/src/controller.ts index 84cc7ac..75e574d 100644 --- a/src/controller.ts +++ b/src/controller.ts @@ -140,17 +140,29 @@ function getMaxRows(): number { return maxRows ?? fallbackMaxRows; } -function escapeNewline(a: string | number | null): string | number | null { - if (typeof a === 'string') { - return a.replace(/\n/g, '\\n').replace(/\r/g, '\\r'); +function serializeCell(a: any): any { + try { + // serialize buffers as hex strings + if (Buffer.isBuffer(a)) { + return `0x${a.toString('hex')}`; + } + // attempt to serialize all remaining "object" values as JSON + if (typeof a === 'object') { + return JSON.stringify(a); + } + if (typeof a === 'string') { + return a.replace(/\n/g, '\\n').replace(/\r/g, '\\r'); + } + return a; + } catch { + return a; } - return a; } function markdownRow(row: Row): string { const middle = Object.entries(row) .map((pair) => pair[1]) - .map(escapeNewline) + .map(serializeCell) .join(' | '); return `| ${middle} |`; } diff --git a/src/driver.ts b/src/driver.ts index 4fe7012..17e0f13 100644 --- a/src/driver.ts +++ b/src/driver.ts @@ -19,7 +19,7 @@ export type ExecutionResult = TabularResult[]; export type TabularResult = Row[]; // Row represents an arbitrary map of data with marshallable values. -export type Row = { [key: string]: string | number | null }; +export type Row = { [key: string]: any }; // Conn is an abstraction over driver-specific connection interfaces. interface Conn { From 63c1bec295b49f3a83ec196f62d223004b39af0e Mon Sep 17 00:00:00 2001 From: Charlie Moog Date: Fri, 8 Apr 2022 17:25:01 -0500 Subject: [PATCH 3/4] fix: build process bundling of UI toolkit --- src/form.ts | 8 -------- webview/Form.tsx | 44 ++++++++++++++++++++++++-------------------- webview/main.tsx | 13 ------------- 3 files changed, 24 insertions(+), 41 deletions(-) diff --git a/src/form.ts b/src/form.ts index 8f8e09f..1993195 100644 --- a/src/form.ts +++ b/src/form.ts @@ -93,13 +93,6 @@ async function getWebviewContent( webview: vscode.Webview, extensionUri: vscode.Uri ) { - const toolkitUri = getUri(webview, extensionUri, [ - 'node_modules', - '@vscode', - 'webview-ui-toolkit', - 'dist', - 'toolkit.js', - ]); const bundlePath = getUri(webview, extensionUri, [ 'dist', 'webview', @@ -112,7 +105,6 @@ async function getWebviewContent( - SQL Notebook New Connection diff --git a/webview/Form.tsx b/webview/Form.tsx index 7b56cd8..4c71075 100644 --- a/webview/Form.tsx +++ b/webview/Form.tsx @@ -1,4 +1,11 @@ import * as React from 'react'; +import { + VSCodeButton, + VSCodeTextField, + VSCodeDropdown, + VSCodeOption, + VSCodeCheckbox, +} from '@vscode/webview-ui-toolkit/react'; const Form: React.FC<{ handleSubmit: (form: HTMLFormElement) => void }> = ({ handleSubmit, @@ -28,11 +35,11 @@ const Form: React.FC<{ handleSubmit: (form: HTMLFormElement) => void }> = ({ - - mysql - postgres - mssql - + + mysql + postgres + mssql + @@ -47,7 +54,7 @@ const Form: React.FC<{ handleSubmit: (form: HTMLFormElement) => void }> = ({ {showDriverConfig(driver)}
- { formRef.current?.reset(); @@ -55,13 +62,10 @@ const Form: React.FC<{ handleSubmit: (form: HTMLFormElement) => void }> = ({ }} > Clear - - handleSubmit(formRef.current!)} - > + + handleSubmit(formRef.current!)}> Create - +
); @@ -93,9 +97,9 @@ function showDriverConfig(driver: string) { case 'mysql': return ( <> - + Multiple statements - + ); case 'postgres': @@ -103,12 +107,12 @@ function showDriverConfig(driver: string) { case 'mssql': return ( <> - + Encrypt - - + + Trust Server Certificate - + ); } @@ -121,8 +125,8 @@ const TextOption: React.FC<{ type?: string; }> = ({ objectKey, label, type }) => { return ( - + {label} - + ); }; diff --git a/webview/main.tsx b/webview/main.tsx index 3441052..d002959 100644 --- a/webview/main.tsx +++ b/webview/main.tsx @@ -2,23 +2,10 @@ import * as React from 'react'; import * as ReactDOM from 'react-dom'; import Form from './Form'; -declare global { - namespace JSX { - interface IntrinsicElements { - 'vscode-button': any; - 'vscode-text-field': any; - 'vscode-dropdown': any; - 'vscode-option': any; - 'vscode-checkbox': any; - } - } -} - // @ts-ignore const vscode = acquireVsCodeApi(); function createConnection(config: any) { - // @ts-ignore vscode.postMessage({ type: 'create_connection', data: config }); } From c64dd0d6229225b255734ee4c670d5c7500918b2 Mon Sep 17 00:00:00 2001 From: Charlie Moog Date: Fri, 8 Apr 2022 17:50:55 -0500 Subject: [PATCH 4/4] release v0.5.3 --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 50116ae..5de945e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Change Log +## v0.5.3 + +- Fix rendering of binary and JSON data. + - Serialize binary data as hexadecimal with a `0x` prefix. + - Marshal JSON data to a string. +- Inline all dependencies to reduce bundle size by ~20%. + ## v0.5.2 - When clicking `Run All`, cells now execute in series. Previously, cells executed in parallel. diff --git a/package.json b/package.json index aad7f8c..ff2e3e6 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "repository": { "url": "https://github.com/cmoog/vscode-sql-notebook" }, - "version": "0.5.2", + "version": "0.5.3", "preview": false, "engines": { "vscode": "^1.59.0"