Skip to content

Commit abf1139

Browse files
authored
Add setting to use bundled Quarto in Positron (#841)
* Add new `useBundledQuartoInPositron` setting * Fix setting name * All these path settings need a restart to take any effect, so let's help folks * Use double quotes like the rest of this repo * Update CHANGELOG * More carefully check when to prompt user to restart
1 parent 8a04107 commit abf1139

File tree

5 files changed

+118
-98
lines changed

5 files changed

+118
-98
lines changed

apps/vscode/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
## 1.127.0 (Unreleased)
44

5+
- Added a new setting `quarto.useBundledQuartoInPositron` to prefer the Quarto CLI bundled with Positron when available. This setting has precedence _between_ `quarto.path` and `quarto.usePipQuarto`, and has no effect outside of Positron (<https://github.com/quarto-dev/quarto/pull/841>).
56

67
## 1.126.0 (Release on 2025-10-08)
78

apps/vscode/package.json

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1105,7 +1105,13 @@
11051105
"order": 11,
11061106
"type": "boolean",
11071107
"default": true,
1108-
"markdownDescription": "When using a venv or conda environment, prefer Quarto CLI installed with pip in that environment. This will override Quarto CLI in the `PATH`, but not an explicitly configured `#quarto.path#`."
1108+
"markdownDescription": "When using a venv or conda environment, prefer Quarto CLI installed with pip in that environment. This will override Quarto CLI in the `PATH`, but not an explicitly configured `#quarto.path#` or the bundled Quarto when `#quarto.useBundledQuartoInPositron#` is enabled."
1109+
},
1110+
"quarto.useBundledQuartoInPositron": {
1111+
"order": 11,
1112+
"type": "boolean",
1113+
"default": false,
1114+
"markdownDescription": "When in Positron, prefer the bundled Quarto CLI provided by the IDE. This will override Quarto CLI from `quarto.usePipQuarto` and in the `PATH`, but not an explicitly configured `#quarto.path#`. Note that this setting has no effect outside of Positron."
11091115
},
11101116
"quarto.render.renderOnSave": {
11111117
"order": 12,
@@ -1446,6 +1452,7 @@
14461452
"nanoid": "^4.0.0",
14471453
"p-queue": "^8.0.1",
14481454
"picomatch": "^2.3.1",
1455+
"@posit-dev/positron": "^0.1.0",
14491456
"quarto-core": "*",
14501457
"quarto-lsp": "*",
14511458
"quarto-vscode-editor": "*",

apps/vscode/src/core/quarto.ts

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import * as path from "node:path";
1717
import * as fs from "node:fs";
1818

1919
import { window, env, workspace, Uri } from "vscode";
20+
import { tryAcquirePositronApi } from "@posit-dev/positron";
2021
import { QuartoContext } from "quarto-core";
2122
import { activePythonInterpreter, pythonIsCondaEnv, pythonIsVenv } from "./python";
2223
import { isWindows } from "./platform";
@@ -35,6 +36,38 @@ export async function configuredQuartoPath() {
3536
return quartoPath;
3637
}
3738

39+
// check if we should use bundled Quarto in Positron
40+
const useBundledQuarto = config.get("useBundledQuartoInPositron", false); // Default is now false
41+
if (useBundledQuarto) {
42+
// Check if we're in Positron
43+
const isPositron = tryAcquirePositronApi();
44+
45+
if (isPositron) {
46+
// Use path relative to the application root for Positron's bundled Quarto
47+
const rootPath = env.appRoot; // Use vscode.env.appRoot as the application root path
48+
const positronQuartoPath = path.join(
49+
rootPath,
50+
"quarto",
51+
"bin",
52+
isWindows() ? "quarto.exe" : "quarto"
53+
);
54+
55+
if (fs.existsSync(positronQuartoPath)) {
56+
return positronQuartoPath;
57+
} else {
58+
// Log error when bundled Quarto can't be found
59+
console.error(
60+
`useBundledQuartoInPositron is enabled but bundled Quarto not found at expected path: ${positronQuartoPath}. ` +
61+
`Verify Quarto is bundled in the Positron installation.`
62+
);
63+
64+
window.showWarningMessage(
65+
"Unable to find bundled Quarto in Positron; falling back to system installation"
66+
);
67+
}
68+
}
69+
}
70+
3871
// if we can use pip quarto then look for it within the currently python (if its a venv/condaenv)
3972
const usePipQuarto = config.get("usePipQuarto", true);
4073
if (usePipQuarto) {

apps/vscode/src/main.ts

Lines changed: 46 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515

1616
import * as vscode from "vscode";
1717
import * as path from "path";
18+
import { tryAcquirePositronApi } from "@posit-dev/positron";
1819
import { MarkdownEngine } from "./markdown/engine";
1920
import { kQuartoDocSelector } from "./core/doc";
2021
import { activateLsp, deactivate as deactivateLsp } from "./lsp/client";
@@ -60,7 +61,7 @@ export async function activate(context: vscode.ExtensionContext) {
6061
quartoPath,
6162
workspaceFolder,
6263
// Look for quarto in the app root; this is where Positron installs it
63-
[path.join(vscode.env.appRoot, 'quarto', 'bin')],
64+
[path.join(vscode.env.appRoot, "quarto", "bin")],
6465
vscode.window.showWarningMessage
6566
);
6667
if (quartoContext.available) {
@@ -129,9 +130,53 @@ export async function activate(context: vscode.ExtensionContext) {
129130
// activate providers common to browser/node
130131
activateCommon(context, host, engine, commands);
131132

133+
// Register configuration change listener for Quarto path settings
134+
registerQuartoPathConfigListener(context, outputChannel);
135+
132136
outputChannel.info("Activated Quarto extension.");
133137
}
134138

139+
/**
140+
* Register a listener for changes to Quarto path settings that require a restart
141+
*/
142+
function registerQuartoPathConfigListener(context: vscode.ExtensionContext, outputChannel: vscode.LogOutputChannel) {
143+
// Check if we're in Positron
144+
const isPositron = tryAcquirePositronApi();
145+
146+
// List of settings that require restart when changed
147+
const quartoPathSettings = [
148+
"quarto.path",
149+
"quarto.usePipQuarto",
150+
];
151+
const positronPathSettings = [
152+
"quarto.useBundledQuartoInPositron"
153+
];
154+
155+
// Listen for configuration changes
156+
context.subscriptions.push(
157+
vscode.workspace.onDidChangeConfiguration(event => {
158+
// Check if any of our path settings changed
159+
const requiresRestart = quartoPathSettings.some(setting => event.affectsConfiguration(setting));
160+
const requiresPositronRestart = isPositron && positronPathSettings.some(setting => event.affectsConfiguration(setting));
161+
162+
if (requiresRestart || requiresPositronRestart) {
163+
outputChannel.info(`Quarto path settings changed, restart required: ${quartoPathSettings.filter(setting =>
164+
event.affectsConfiguration(setting)).join(", ")}`);
165+
166+
// Prompt user to restart
167+
vscode.window.showInformationMessage(
168+
"Quarto path settings have changed. Please reload the window for changes to take effect.",
169+
"Reload Window"
170+
).then(selection => {
171+
if (selection === "Reload Window") {
172+
vscode.commands.executeCommand("workbench.action.reloadWindow");
173+
}
174+
});
175+
}
176+
})
177+
);
178+
}
179+
135180
export async function deactivate() {
136181
return deactivateLsp();
137182
}

yarn.lock

Lines changed: 30 additions & 96 deletions
Original file line numberDiff line numberDiff line change
@@ -1437,17 +1437,7 @@
14371437
"@jridgewell/gen-mapping" "^0.3.5"
14381438
"@jridgewell/trace-mapping" "^0.3.25"
14391439

1440-
"@jridgewell/sourcemap-codec@^1.4.10":
1441-
version "1.4.14"
1442-
resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz"
1443-
integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==
1444-
1445-
"@jridgewell/sourcemap-codec@^1.4.14":
1446-
version "1.5.4"
1447-
resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz"
1448-
integrity sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==
1449-
1450-
"@jridgewell/sourcemap-codec@^1.5.0":
1440+
"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.5.0":
14511441
version "1.5.4"
14521442
resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz"
14531443
integrity sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==
@@ -1691,6 +1681,11 @@
16911681
resolved "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz"
16921682
integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==
16931683

1684+
"@posit-dev/positron@^0.1.0":
1685+
version "0.1.8"
1686+
resolved "https://registry.npmjs.org/@posit-dev/positron/-/positron-0.1.8.tgz"
1687+
integrity sha512-pIHdlkCb4BWgTovPS/AXEcoPXEXqafaJ3nQWAzArHCV+sZZpxOWLMYrKpBDXBM4piaggQ7wtvMaw/LI4ZaePSw==
1688+
16941689
"@quarto/_annotated-json@*", "@quarto/_annotated-json@file:/Users/juliasilge/Work/posit/quarto/packages/_annotated-json":
16951690
version "0.1.4"
16961691
resolved "file:packages/_annotated-json"
@@ -2309,7 +2304,7 @@
23092304
resolved "https://registry.npmjs.org/@types/vscode-webview/-/vscode-webview-1.57.1.tgz"
23102305
integrity sha512-ghW5SfuDmsGDS2A4xkvGsLwDRNc3Vj5rS6rPOyPm/IryZuf3wceZKxgYaUoW+k9f0f/CB7y2c1rRsdOWZWn0PQ==
23112306

2312-
2307+
"@types/vscode@^1.74.0", "@types/vscode@1.75.0":
23132308
version "1.75.0"
23142309
resolved "https://registry.npmjs.org/@types/vscode/-/vscode-1.75.0.tgz"
23152310
integrity sha512-SAr0PoOhJS6FUq5LjNr8C/StBKALZwDVm3+U4pjF/3iYkt3GioJOPV/oB1Sf1l7lROe4TgrMyL5N1yaEgTWycw==
@@ -3002,15 +2997,7 @@ call-bind-apply-helpers@^1.0.0, call-bind-apply-helpers@^1.0.1, call-bind-apply-
30022997
es-errors "^1.3.0"
30032998
function-bind "^1.1.2"
30042999

3005-
call-bind@^1.0.0:
3006-
version "1.0.2"
3007-
resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz"
3008-
integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==
3009-
dependencies:
3010-
function-bind "^1.1.1"
3011-
get-intrinsic "^1.0.2"
3012-
3013-
call-bind@^1.0.2, call-bind@^1.0.7, call-bind@^1.0.8, call-bind@~1.0.2:
3000+
call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.7, call-bind@^1.0.8, call-bind@~1.0.2:
30143001
version "1.0.8"
30153002
resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz"
30163003
integrity sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==
@@ -3523,16 +3510,7 @@ cross-fetch@^3.1.5:
35233510
dependencies:
35243511
node-fetch "2.6.7"
35253512

3526-
cross-spawn@^7.0.2, cross-spawn@^7.0.6:
3527-
version "7.0.6"
3528-
resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz"
3529-
integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==
3530-
dependencies:
3531-
path-key "^3.1.0"
3532-
shebang-command "^2.0.0"
3533-
which "^2.0.1"
3534-
3535-
cross-spawn@^7.0.3:
3513+
cross-spawn@^7.0.2, cross-spawn@^7.0.3, cross-spawn@^7.0.6:
35363514
version "7.0.6"
35373515
resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz"
35383516
integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==
@@ -4725,14 +4703,12 @@ eslint-config-prettier@^8.5.0:
47254703
integrity sha512-bAF0eLpLVqP5oEVUFKpMA+NnRFICwn9X8B5jrR9FcqnYBuPbqWEjTEspPWMj5ye6czoSLDweCzSo3Ko7gGrZaA==
47264704

47274705
eslint-config-turbo@latest:
4728-
version "2.5.4"
4706+
version "2.5.8"
47294707
dependencies:
4730-
eslint-plugin-turbo "2.5.4"
4708+
eslint-plugin-turbo "2.5.8"
47314709

4732-
4733-
version "2.5.4"
4734-
resolved "https://registry.npmjs.org/eslint-plugin-turbo/-/eslint-plugin-turbo-2.5.4.tgz"
4735-
integrity sha512-IZsW61DFj5mLMMaCJxhh1VE4HvNhfdnHnAaXajgne+LUzdyHk2NvYT0ECSa/1SssArcqgTvV74MrLL68hWLLFw==
4710+
4711+
version "2.5.8"
47364712
dependencies:
47374713
dotenv "16.0.3"
47384714

@@ -5421,15 +5397,6 @@ get-east-asian-width@^1.0.0:
54215397
resolved "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz"
54225398
integrity sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==
54235399

5424-
get-intrinsic@^1.0.2:
5425-
version "1.1.3"
5426-
resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz"
5427-
integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==
5428-
dependencies:
5429-
function-bind "^1.1.1"
5430-
has "^1.0.3"
5431-
has-symbols "^1.0.3"
5432-
54335400
get-intrinsic@^1.2.4, get-intrinsic@^1.2.5, get-intrinsic@^1.2.6, get-intrinsic@^1.2.7, get-intrinsic@^1.3.0:
54345401
version "1.3.0"
54355402
resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz"
@@ -5662,12 +5629,7 @@ has-proto@^1.2.0:
56625629
dependencies:
56635630
dunder-proto "^1.0.0"
56645631

5665-
has-symbols@^1.0.3:
5666-
version "1.0.3"
5667-
resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz"
5668-
integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==
5669-
5670-
has-symbols@^1.1.0:
5632+
has-symbols@^1.0.3, has-symbols@^1.1.0:
56715633
version "1.1.0"
56725634
resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz"
56735635
integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==
@@ -6996,21 +6958,16 @@ minipass@^4.0.0:
69966958
dependencies:
69976959
yallist "^4.0.0"
69986960

6999-
"minipass@^5.0.0 || ^6.0.2 || ^7.0.0":
7000-
version "6.0.2"
7001-
resolved "https://registry.npmjs.org/minipass/-/minipass-6.0.2.tgz"
7002-
integrity sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w==
6961+
"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2:
6962+
version "7.1.2"
6963+
resolved "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz"
6964+
integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==
70036965

70046966
"minipass@^5.0.0 || ^6.0.2":
70056967
version "6.0.2"
70066968
resolved "https://registry.npmjs.org/minipass/-/minipass-6.0.2.tgz"
70076969
integrity sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w==
70086970

7009-
minipass@^7.1.2:
7010-
version "7.1.2"
7011-
resolved "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz"
7012-
integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==
7013-
70146971
minizlib@^2.1.1:
70156972
version "2.1.2"
70166973
resolved "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz"
@@ -8022,9 +7979,10 @@ quarto-vscode-markdownit@*, "quarto-vscode-markdownit@file:/Users/juliasilge/Wor
80227979
wcwidth "^1.0.1"
80237980

80247981
"quarto@file:/Users/juliasilge/Work/posit/quarto/apps/vscode":
8025-
version "1.124.0"
7982+
version "1.126.0"
80267983
resolved "file:apps/vscode"
80277984
dependencies:
7985+
"@posit-dev/positron" "^0.1.0"
80287986
axios "^1.2.1"
80297987
core "*"
80307988
core-node "*"
@@ -8466,17 +8424,7 @@ rollup-plugin-node-resolve@^5.2.0:
84668424
resolve "^1.11.1"
84678425
rollup-pluginutils "^2.8.1"
84688426

8469-
rollup-plugin-terser@^7.0.2:
8470-
version "7.0.2"
8471-
resolved "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz"
8472-
integrity sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==
8473-
dependencies:
8474-
"@babel/code-frame" "^7.10.4"
8475-
jest-worker "^26.2.1"
8476-
serialize-javascript "^4.0.0"
8477-
terser "^5.0.0"
8478-
8479-
rollup-plugin-terser@7:
8427+
rollup-plugin-terser@^7.0.2, rollup-plugin-terser@7:
84808428
version "7.0.2"
84818429
resolved "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz"
84828430
integrity sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==
@@ -8509,10 +8457,8 @@ rollup@^1.26.4, rollup@>=1.11.0, rollup@>=1.12.0:
85098457
"@types/node" "*"
85108458
acorn "^7.1.0"
85118459

8512-
rollup@^2.0.0, rollup@2:
8460+
rollup@^2.0.0:
85138461
version "2.79.2"
8514-
resolved "https://registry.npmjs.org/rollup/-/rollup-2.79.2.tgz"
8515-
integrity sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==
85168462
optionalDependencies:
85178463
fsevents "~2.3.2"
85188464

@@ -8523,6 +8469,13 @@ rollup@^2.79.1:
85238469
optionalDependencies:
85248470
fsevents "~2.3.2"
85258471

8472+
rollup@2:
8473+
version "2.79.2"
8474+
resolved "https://registry.npmjs.org/rollup/-/rollup-2.79.2.tgz"
8475+
integrity sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==
8476+
optionalDependencies:
8477+
fsevents "~2.3.2"
8478+
85268479
rope-sequence@^1.3.0:
85278480
version "1.3.3"
85288481
resolved "https://registry.npmjs.org/rope-sequence/-/rope-sequence-1.3.3.tgz"
@@ -9367,26 +9320,7 @@ ts-interface-checker@^0.1.9:
93679320
resolved "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz"
93689321
integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==
93699322

9370-
ts-node@^10.9.1:
9371-
version "10.9.2"
9372-
resolved "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz"
9373-
integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==
9374-
dependencies:
9375-
"@cspotcode/source-map-support" "^0.8.0"
9376-
"@tsconfig/node10" "^1.0.7"
9377-
"@tsconfig/node12" "^1.0.7"
9378-
"@tsconfig/node14" "^1.0.0"
9379-
"@tsconfig/node16" "^1.0.2"
9380-
acorn "^8.4.1"
9381-
acorn-walk "^8.1.1"
9382-
arg "^4.1.0"
9383-
create-require "^1.1.0"
9384-
diff "^4.0.1"
9385-
make-error "^1.1.1"
9386-
v8-compile-cache-lib "^3.0.1"
9387-
yn "3.1.1"
9388-
9389-
ts-node@>=9.0.0:
9323+
ts-node@^10.9.1, ts-node@>=9.0.0:
93909324
version "10.9.2"
93919325
resolved "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz"
93929326
integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==

0 commit comments

Comments
 (0)