Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1,912 changes: 733 additions & 1,179 deletions package-lock.json

Large diffs are not rendered by default.

16 changes: 7 additions & 9 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -1125,11 +1125,11 @@
"eslint-plugin-import": "^2.32.0",
"eslint-plugin-license-header": "^0.8.0",
"eslint-plugin-unused-imports": "^4.1.4",
"glob": "^8.1.0",
"glob": "^11.0.3",
"istanbul-lib-coverage": "^3.2.2",
"istanbul-lib-instrument": "^3.3.0",
"istanbul-lib-report": "^2.0.8",
"istanbul-lib-source-maps": "^3.0.6",
"istanbul-lib-instrument": "^6.0.1",
"istanbul-lib-report": "^3.0.1",
"istanbul-lib-source-maps": "^5.0.6",
"istanbul-reports": "^3.1.7",
"jsdom": "^26.1.0",
"lit": "^3.3.0",
Expand All @@ -1142,17 +1142,15 @@
"sinon": "^21.0.0",
"typescript": "^5.8.3",
"typescript-eslint": "^8.34.1",
"vscode-dts": "^0.3.3",
"vscode-extension-tester": "^8.15.0",
"vscode-languageclient": "^9.0.1",
"vscode-languageserver": "^9.0.1",
"vscode-languageserver-textdocument": "^1.0.12",
"vscode-test": "^1.6.1"
"vscode-languageserver-textdocument": "^1.0.12"
},
"dependencies": {
"@ag-grid-community/core": "^32.3.5",
"@vscode/dts": "^0.4.1",
"@vscode/extension-telemetry": "^1.0.0",
"@vscode/webview-ui-toolkit": "^1.4.0",
"@windozer/node-q": "^2.6.0",
"ag-grid-community": "^33.3.2",
"axios": "^1.10.0",
Expand All @@ -1167,7 +1165,7 @@
"node-q": "^2.7.0",
"pick-port": "^2.0.1",
"semver": "^7.7.2",
"vscode-languageserver-textdocument": "^1.0.11",
"vscode-languageserver-textdocument": "^1.0.12",
"vscode-uri": "^3.1.0"
}
}
5 changes: 2 additions & 3 deletions server/src/qLangServer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
* specific language governing permissions and limitations under the License.
*/

import { sync as glob } from "glob";
import { globSync } from "glob";
import { readFileSync } from "node:fs";
import { fileURLToPath, pathToFileURL } from "node:url";
import {
Expand Down Expand Up @@ -80,7 +80,6 @@ import {
lamdaDefinition,
} from "./parser";


interface Settings {
debug: boolean;
linting: boolean;
Expand Down Expand Up @@ -499,7 +498,7 @@ export default class QLangServer {
try {
for (const folder of folders) {
this.parseFiles(
glob("**/*.{q,quke}", {
globSync("**/*.{q,quke}", {
dot: true,
absolute: true,
nodir: true,
Expand Down
98 changes: 45 additions & 53 deletions src/webview/components/kdbNewConnectionView.ts
Original file line number Diff line number Diff line change
Expand Up @@ -339,16 +339,16 @@ export class KdbNewConnectionView extends LitElement {
renderInsecureSSL() {
return html`
<div class="row mt-1">
<vscode-checkbox
.checked="${this.insightsServer.insecure}"
@change="${(event: Event) => {
<sl-checkbox
.checked="${this.insightsServer.insecure ?? false}"
@sl-change="${(event: Event) => {
/* istanbul ignore next */
this.insightsServer.insecure = (
event.target as HTMLInputElement
).checked;
}}"
>Accept insecure SSL certifcates</vscode-checkbox
>
}}">
Accept insecure SSL certifcates
</sl-checkbox>
</div>
`;
}
Expand Down Expand Up @@ -564,27 +564,25 @@ export class KdbNewConnectionView extends LitElement {
<div class="row">
<div class="col gap-0">
<div class="row">
<vscode-text-field
<sl-input
class="text-field larger option-title"
value="${this.kdbServer.username ? this.kdbServer.username : ""}"
@input="${(event: Event) =>
label="Username"
.value="${this.kdbServer.username || ""}"
@sl-input="${(event: Event) =>
(this.kdbServer.username = (
event.target as HTMLSelectElement
).value)}"
>Username</vscode-text-field
>
event.target as HTMLInputElement
).value)}"></sl-input>
</div>
<div class="row">
<vscode-text-field
<sl-input
type="password"
class="text-field larger option-title"
value="${this.kdbServer.password ? this.kdbServer.password : ""}"
@input="${(event: Event) =>
label="Password"
.value="${this.kdbServer.password || ""}"
@sl-input="${(event: Event) =>
(this.kdbServer.password = (
event.target as HTMLSelectElement
).value)}"
>Password</vscode-text-field
>
event.target as HTMLInputElement
).value)}"></sl-input>
</div>
<div class="row option-description option-help">
Add required authentication to get access to the server connection
Expand All @@ -596,11 +594,11 @@ export class KdbNewConnectionView extends LitElement {
<div class="col gap-0">
<div class="row option-title">Optional: Enable TLS Encryption</div>
<div class="row">
<vscode-checkbox
value="${this.kdbServer.tls}"
@click="${() => this.changeTLS()}"
>Enable TLS Encryption on the kdb connection</vscode-checkbox
>
<sl-checkbox
.checked="${this.kdbServer.tls}"
@sl-change="${() => this.changeTLS()}">
Enable TLS Encryption on the kdb connection
</sl-checkbox>
</div>
</div>
</div>
Expand Down Expand Up @@ -878,11 +876,11 @@ export class KdbNewConnectionView extends LitElement {
<div class="col gap-0">
<div class="row option-title">Optional: Edit Auth options</div>
<div class="row">
<vscode-checkbox
value="${this.editAuth}"
@click="${() => this.editAuthOfConn()}"
>Edit existing auth on the kdb connection</vscode-checkbox
>
<sl-checkbox
.checked="${this.editAuth}"
@sl-change="${() => this.editAuthOfConn()}">
Edit existing auth on the kdb connection
</sl-checkbox>
</div>
</div>
</div>
Expand All @@ -891,31 +889,25 @@ export class KdbNewConnectionView extends LitElement {
<div class="row">
<div class="col gap-0">
<div class="row">
<vscode-text-field
<sl-input
class="text-field larger option-title"
value="${this.kdbServer.username
? this.kdbServer.username
: ""}"
@input="${(event: Event) =>
label="Username"
.value="${this.kdbServer.username || ""}"
@sl-input="${(event: Event) =>
(this.kdbServer.username = (
event.target as HTMLSelectElement
).value)}"
>Username</vscode-text-field
>
event.target as HTMLInputElement
).value)}"></sl-input>
</div>
<div class="row">
<vscode-text-field
<sl-input
type="password"
class="text-field larger option-title"
value="${this.kdbServer.password
? this.kdbServer.password
: ""}"
@input="${(event: Event) =>
label="Password"
.value="${this.kdbServer.password || ""}"
@sl-input="${(event: Event) =>
(this.kdbServer.password = (
event.target as HTMLSelectElement
).value)}"
>Password</vscode-text-field
>
event.target as HTMLInputElement
).value)}"></sl-input>
</div>
<div class="row option-description option-help">
Add required authentication to get access to the server
Expand All @@ -929,11 +921,11 @@ export class KdbNewConnectionView extends LitElement {
<div class="col gap-0">
<div class="row option-title">Optional: Enable TLS Encryption</div>
<div class="row">
<vscode-checkbox
value="${this.kdbServer.tls}"
@click="${() => this.changeTLS()}"
>Enable TLS Encryption on the kdb connection</vscode-checkbox
>
<sl-checkbox
.checked="${this.kdbServer.tls}"
@sl-change="${() => this.changeTLS()}">
Enable TLS Encryption on the kdb connection
</sl-checkbox>
</div>
</div>
</div>
Expand Down
6 changes: 0 additions & 6 deletions src/webview/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,6 @@ import "@shoelace-style/shoelace/dist/components/menu/menu.js";
import "@shoelace-style/shoelace/dist/components/menu-item/menu-item.js";
import "@shoelace-style/shoelace/dist/components/tooltip/tooltip.js";

import {
allComponents,
provideVSCodeDesignSystem,
} from "@vscode/webview-ui-toolkit";
import "./components/kdbDataSourceView";
import "./components/kdbNewConnectionView";
import "./components/kdbChartView";

provideVSCodeDesignSystem().register(allComponents);
44 changes: 27 additions & 17 deletions test/coverage.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,17 +13,17 @@

import * as fs from "fs";
import { createCoverageMap } from "istanbul-lib-coverage";
import { createInstrumenter } from "istanbul-lib-instrument";
import { createContext } from "istanbul-lib-report";
import { create } from "istanbul-reports";
import * as path from "path";

const REPO_ROOT = path.join(__dirname, "../..");

export function instrument() {
// eslint-disable-next-line @typescript-eslint/no-require-imports
const iLibInstrument = require("istanbul-lib-instrument");

const instrumenter = iLibInstrument.createInstrumenter();
const instrumenter = createInstrumenter();
const files = rreaddir(path.resolve(REPO_ROOT, "out"));

for (let i = 0; i < files.length; i++) {
const file = files[i];
if (/\.js\.map$/.test(file)) {
Expand All @@ -38,11 +38,12 @@ export function instrument() {
continue;
}

let map = null;
let map = undefined;
try {
map = JSON.parse(fs.readFileSync(`${inputPath}.map`).toString());
const mapContent = fs.readFileSync(`${inputPath}.map`).toString();
map = JSON.parse(mapContent);
} catch {
// missing source map
// missing source map - map remains undefined
}

const instrumentedCode = instrumenter.instrumentSync(
Expand All @@ -55,20 +56,19 @@ export function instrument() {
}

export function createReport(): void {
// eslint-disable-next-line @typescript-eslint/no-require-imports
const iLibSourceMaps = require("istanbul-lib-source-maps");
// eslint-disable-next-line @typescript-eslint/no-require-imports
const iLibReport = require("istanbul-lib-report");

const global = new Function("return this")();

const mapStore = iLibSourceMaps.createSourceMapStore();
if (!global.__coverage__ || Object.keys(global.__coverage__).length === 0) {
console.warn("No coverage data available to generate report");
return;
}

const coverageMap = createCoverageMap(global.__coverage__);
const transformed = mapStore.transformCoverage(coverageMap);

const tree = iLibReport.summarizers.flat(transformed.map);
const context = iLibReport.createContext({
// Use the simpler approach that we know works
const context = createContext({
dir: path.join(REPO_ROOT, `coverage-reports`),
coverageMap: coverageMap,
});

const reports = [
Expand All @@ -78,7 +78,17 @@ export function createReport(): void {
create("html"),
create("text"),
];
reports.forEach((report) => tree.visit(report, context));

reports.forEach((report) => {
try {
report.execute(context);
} catch (err) {
console.error(
`Failed to generate ${report.constructor.name} report:`,
err,
);
}
});
}

function copyFile(inputPath: string, outputPath: string): void {
Expand Down
Loading