diff --git a/editors/vscode/src/compiler.cjs b/editors/vscode/src/compiler.cjs index 70ad9e93..e8078845 100644 --- a/editors/vscode/src/compiler.cjs +++ b/editors/vscode/src/compiler.cjs @@ -1,6 +1,6 @@ "use strict"; // Generated by scripts/build-editor-compiler.mjs. Do not edit directly. -// WRN editor compiler source hash: 653a88ea2a34e9c446fc55b268f3ba9c5d27f9e114fc6aa9228ef560e1fd616d +// WRN editor compiler source hash: 2987e8e9d91b793818a195395e740d35d0d5c2a320ff1c3a5ae77363850c7b8e // WRN editor compiler generator hash: a54ca847c758bc98d8e353ad6d70088df31de1820f6cf9d1c3462505f563e6b8 // Generated with TypeScript: 6.0.3 const __nodeRequire = require; @@ -7069,12 +7069,13 @@ function parseHtmlView(src, pos) { if (quote !== '"' && quote !== "'") return fail("Expected a quoted attribute value"); i++; - // Backslash-escapes the delimiter (and anything else) so an attribute - // value -- e.g. an `api="fn({ a: \"b\" })"` call expression -- can carry - // the same quote character it's wrapped in. + // Backslash escapes the delimiter -- so an attribute value such as the + // call expression `api="fn({ a: \"b\" })"` can carry the same quote + // character it's wrapped in -- and escapes itself. Every other backslash + // is a literal one, so a value like "C:\Users\name" survives intact. let value = ""; while (i < src.length && src[i] !== quote) { - if (src[i] === "\\" && i + 1 < src.length) { + if (src[i] === "\\" && (src[i + 1] === quote || src[i + 1] === "\\")) { value += src[i + 1]; i += 2; continue; diff --git a/editors/vscode/src/extension.bundle.cjs b/editors/vscode/src/extension.bundle.cjs index 1836adfa..5d3fbb9d 100644 --- a/editors/vscode/src/extension.bundle.cjs +++ b/editors/vscode/src/extension.bundle.cjs @@ -1,4 +1,4 @@ -// WRN editor extension source hash: feecaeb59a41771bd1a35be172bf89cec8451468a4bf817f176cc54de3d8267a +// WRN editor extension source hash: 01c5b97824df25422267667a6083adbdc0a5dc14ae7fbec5345084a214d40523 // WRN editor extension generator hash: 456d1d614e44e5fb1f19b784176c09cf2ade9b64ef73a17934c2698150b62728 "use strict"; var __commonJS = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports); diff --git a/editors/vscode/src/language-server.cjs b/editors/vscode/src/language-server.cjs index 0f23ad08..cbbc564d 100644 --- a/editors/vscode/src/language-server.cjs +++ b/editors/vscode/src/language-server.cjs @@ -1,5 +1,5 @@ #!/usr/bin/env node -// WRN editor language server source hash: 613d98d8154714b7e5799b02a27e16cd707a50bc2b5ae7d9fbb3f0834b9251e6 +// WRN editor language server source hash: 92a9c7cd3babafdbc518a6f20c0c8f0025e49e92a28a2fa5598c8bb7a858e800 // WRN editor language server generator hash: f593a44aaf05495b789ce7a3086bee1eebb951b884d41c0e017bbcfe5f547e72 // @bun @bun-cjs (function(exports, require, module, __filename, __dirname) {var __create = Object.create; @@ -172043,7 +172043,7 @@ function parseHtmlView(src, pos) { i++; let value = ""; while (i < src.length && src[i] !== quote) { - if (src[i] === "\\" && i + 1 < src.length) { + if (src[i] === "\\" && (src[i + 1] === quote || src[i + 1] === "\\")) { value += src[i + 1]; i += 2; continue; diff --git a/packages/cli/src/migrations/apis-block.ts b/packages/cli/src/migrations/apis-block.ts index 9d1e0d83..8851438a 100644 --- a/packages/cli/src/migrations/apis-block.ts +++ b/packages/cli/src/migrations/apis-block.ts @@ -276,7 +276,9 @@ export function migrateApisBlock( parse(after); } catch (error) { const message = error instanceof Error ? error.message : String(error); - throw new Error(`apis-block migration produced source that failed to parse: ${message}`); + throw new Error(`apis-block migration produced source that failed to parse: ${message}`, { + cause: error, + }); } return { source: after, changed: true }; diff --git a/packages/cli/src/migrations/mode-functions.ts b/packages/cli/src/migrations/mode-functions.ts index 31f8c2e3..9135916e 100644 --- a/packages/cli/src/migrations/mode-functions.ts +++ b/packages/cli/src/migrations/mode-functions.ts @@ -266,7 +266,9 @@ export function migrateModeFunctions( parse(after); } catch (error) { const message = error instanceof Error ? error.message : String(error); - throw new Error(`mode-functions migration produced source that failed to parse: ${message}`); + throw new Error(`mode-functions migration produced source that failed to parse: ${message}`, { + cause: error, + }); } } diff --git a/packages/compiler/test/apis-server-emit.test.ts b/packages/compiler/test/apis-server-emit.test.ts index 3f6e2248..43536044 100644 --- a/packages/compiler/test/apis-server-emit.test.ts +++ b/packages/compiler/test/apis-server-emit.test.ts @@ -1,5 +1,5 @@ import { afterEach, expect, test } from "bun:test"; -import { mkdirSync, mkdtempSync, readFileSync, rmSync, symlinkSync, writeFileSync } from "node:fs"; +import { mkdirSync, mkdtempSync, rmSync, symlinkSync, writeFileSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { parse } from "@wrnexus/syntax"; diff --git a/packages/dev-server/test/server-fn-rpc-request-context.test.ts b/packages/dev-server/test/server-fn-rpc-request-context.test.ts index d08732d9..ba2198ac 100644 --- a/packages/dev-server/test/server-fn-rpc-request-context.test.ts +++ b/packages/dev-server/test/server-fn-rpc-request-context.test.ts @@ -9,7 +9,7 @@ import { withServerFnRequestContext } from "../src/index.ts"; // request context, not `undefined`. test("a handler invoked through the server-function RPC path can read the request context", async () => { let seen: unknown; - const innerHandler = async (request: Request): Promise => { + const innerHandler = async (_request: Request): Promise => { seen = getRequestContext(); return new Response("ok"); };