deno
deno copied to clipboard
Support for SvelteKit
Prompted by discussion on Discord I tried to get SvelteKit working in Deno.
After an hour of debugging I found the main blocker: by default SvelteKit installed Node adapter, which does a bit of setup that is not needed in Deno and makes the project crash, namely:
https://github.com/sveltejs/kit/blob/e7bc0be2b25aff5ac151e3d83b771ad80cac1ab8/packages/kit/src/exports/node/polyfills.js#L6-L28
which installs polyfills from undici for various Web APIs like fetch or Response. These objects work slightly differently in Deno and arguably installing them in Deno is not needed.
I think the way forward would be to get a Deno dedicated adapter that would essentially be a noop as there's no need to change anything to make SvelteKit work.
Of course it would be very nice if deno run -A npm:create-svelte@latest would set up a project in a way that requires no changes (namely making specifiers use npm: prefixes).
Hi @bartlomieju, thanks for taking a look to support SvelteKit! I work on SvelteKit and wanted to better understand the issue to know if there's anything we're doing wrong on our side. Newer versions of Node provide those APIs out-of-the-box, but older versions don't. SvelteKit polyfills those APIs only when they're not already available.
These objects work slightly differently in Deno and arguably installing them in Deno is not needed.
I know very little about Deno. I'd assume if Deno has those APIs then SvelteKit would not polyfill them, but if it doesn't have those APIs then SvelteKit will probably break if they don't get polyfilled. Does Deno do something differently than Node here such as not adding the APIs to globalThis? How should users utilize the APIs in this case?
I think the way forward would be to get a Deno dedicated adapter that would essentially be a noop as there's no need to change anything to make SvelteKit work.
To clarify, would that adapter live in SvelteKit?
Of course it would be very nice if deno run -A npm:create-svelte@latest would set up a project in a way that requires no changes (namely making specifiers use npm: prefixes).
Assuming this is something we'd have to implement on our side, can you clarify what "making specifiers use npm: prefixes" means?
Hi @benmccann, thanks for taking the time.
Newer versions of Node provide those APIs out-of-the-box, but older versions don't. SvelteKit polyfills those APIs only when they're not already available.
I haven't seen this bit - from what I saw in the Node adapter these polyfills were installed unconditionally. I assume there must be some check for Node version that causes the polyfills to be installed. Which version would be required? When polyfilling Node APIs we return version v18.12.1 (latest LTS Node.js version).
I know very little about Deno. I'd assume if Deno has those APIs then SvelteKit would not polyfill them, but if it doesn't have those APIs then SvelteKit will probably break if they don't get polyfilled. Does Deno do something differently than Node here such as not adding the APIs to globalThis? How should users utilize the APIs in this case?
They work the same in Deno as in browsers or with undici, they are present on globalThis. They work the same for all intents and purposes for end-users, but internally they are implemented differently than in browsers or undici and some of our APIs break when certain non-public fields are not present. This becomes non-issue if the polyfills are not installed.
To clarify, would that adapter live in SvelteKit?
I think that's a question for you, whether you're interested in providing an official adapter for Deno, I'll be glad to help in any capacity to make it happen :)
Assuming this is something we'd have to implement on our side, can you clarify what "making specifiers use npm: prefixes" means?
Deno has now built-in support for npm - we do that by using npm: specifiers - more info on that here: https://deno.land/[email protected]/node/npm_specifiers. Long story, short: we currently don't rely (or actually use at all) package.json file to figure out dependencies needed, but instead look at all imports with npm: specifiers to pull relevant packages (and then recursively analyzing them). What I meant by that comment was that it would be nice if Svelte's generator would for example put import svelte from "npm:svelte" instead of import svelte from "svelte" when it sees it's being run in Deno (eg. by checking for typeof globalThis.Deno !== "undefined". Though I think it's a secondary issue at this point - we already added custom templates to https://github.com/bluwy/create-vite-extra that take care of that and we're debating internally if we should support package.json in user code.
Thanks for dropping by and helping with this problem!
these polyfills were installed unconditionally
Oops! My bad. That was outdated info. It seems as of https://github.com/sveltejs/kit/pull/7675 that you're correct. It appears we had to do it unconditionally to overwrite the Node-provided version which is an older version of Undici and is broken (https://github.com/sveltejs/kit/issues/7673). Maybe with Node 20 or SvelteKit 2 we'll be able to do something nicer :smile:
from what I saw in the Node adapter
Ah! I was pointed here by an issue in the SvelteKit repo which talked about the dev command, which I guess was broken by the fact that we now polyfill unconditionally. The adapters are only run with the build command. The node adapter was really only meant for Node.js, but we do have a Deno adapter that a community member developed and I'm assuming this issue would not be present there: https://github.com/pluvial/svelte-adapter-deno.
I'm not quite sure what the best fix for the dev mode issue would be. Maybe we could detect node vs deno and only install the polyfills on Node. I'd prefer if there were a nicer way to do this, but maybe it's just temporary until Node 20 / SvelteKit 2 anyway so we can live with it being imperfect. I'll have to check with the other maintainers though
Oops! My bad. That was outdated info. It seems as of https://github.com/sveltejs/kit/pull/7675 that you're correct. It appears we had to do it unconditionally to overwrite the Node-provided version which is an older version of Undici and is broken (https://github.com/sveltejs/kit/issues/7673). Maybe with Node 20 or SvelteKit 2 we'll be able to do something nicer 😄
Thanks for a quick response. That's exactly the problem that I've faced.
I'm not quite sure what the best fix for the dev mode issue would be. Maybe we could detect node vs deno and only install the polyfills on Node. I'd prefer if there were a nicer way to do this, but maybe it's just temporary until Node 20 / SvelteKit 2 anyway so we can live with it being imperfect. I'll have to check with the other maintainers though
A bit quick and dirty, but that would solve the problem at hand and would allow us and Deno users to leverage Svelte with Vite. I'm eager to hear what you decide to do. Let me know if there's anything I can help with to move this issue forward.
Hopefully this is fixed in SvelteKit 1.0.4: https://github.com/sveltejs/kit/blob/master/packages/kit/CHANGELOG.md#104
Thanks for tracking down the issue and sharing enough details to help get it fixed! Let me know if there's anything else to be done on the SvelteKit side.
Hopefully this is fixed in SvelteKit 1.0.4: https://github.com/sveltejs/kit/blob/master/packages/kit/CHANGELOG.md#104
Thanks for tracking down the issue and sharing enough details to help get it fixed! Let me know if there's anything else to be done on the SvelteKit side.
Thank for a quick turnaround @benmccann, I can confirm that latest version fixes the problem. I'm gonna keep this issue open for a little longer as we might take approach of supporting SvelteKit running in Vite as-is, without any changes (eg. npm: specifiers).
I also confirm that updating fixes the issue with running the development server. I've also been trying to integrate svelte-adapter-deno to generate the production build itself for Deno: https://github.com/jpaquim/sveltekit-deno
I'm getting this error, though:
error: Uncaught TypeError: Could not resolve 'file:///Users/<user>/sveltekit-deno/.svelte-kit/output/server/index.js' from 'file:///Users/<user>/sveltekit-deno/node_modules/.deno/@[email protected]/node_modules/@sveltejs/kit/src/core/prerender/prerender.js'.
Caused by:
could not find npm package for 'file:///Users/<user>/sveltekit-deno/.svelte-kit/output/server/index.js'
at async prerender (file:///Users/<user>/sveltekit-deno/node_modules/.deno/@[email protected]/node_modules/@sveltejs/kit/src/core/prerender/prerender.js:100:31)
[vite-plugin-sveltekit-compile] Prerendering failed with code 1
error during build:
Error: Prerendering failed with code 1
at ChildProcess.<anonymous> (file:///Users/<user>/sveltekit-deno/node_modules/.deno/@[email protected]/node_modules/@sveltejs/kit/src/exports/vite/index.js:551:15)
at ChildProcess.emit (https://deno.land/[email protected]/node/_events.mjs:379:28)
at https://deno.land/[email protected]/node/internal/child_process.ts:229:16
The file (.svelte-kit/output/server/index.js) is generated correctly, but for some reason importing it seems to be failing, maybe due to the way the dynamic import is being built here? https://github.com/sveltejs/kit/blob/master/packages/kit/src/core/prerender/prerender.js#L100
I also had to manually remove the @neoconfetti/svelte import as it wasn't working even with the npm: specifier. Same thing with the @import '@fontsource/fira-mono' in styles.css, commented out for now.
Hopefully this is fixed in SvelteKit 1.0.4: https://github.com/sveltejs/kit/blob/master/packages/kit/CHANGELOG.md#104 Thanks for tracking down the issue and sharing enough details to help get it fixed! Let me know if there's anything else to be done on the SvelteKit side.
Thank for a quick turnaround @benmccann, I can confirm that latest version fixes the problem. I'm gonna keep this issue open for a little longer as we might take approach of supporting SvelteKit running in Vite as-is, without any changes (eg.
npm:specifiers).
It looks like the sk patch was reviewed and merged by rich harris yesterday. https://github.com/sveltejs/kit/pull/8338
What's the process of installing sveltekit in a deno project now? I've ran deno run -A npm:create-vite-extra and selected the deno-svelte template with typescript and then went to vite.config.mts and replaced the svelte plugin with sveltekit like so
import { defineConfig } from 'npm:vite@^4.0.0'
import { svelte } from 'npm:@sveltejs/vite-plugin-svelte@^2.0.0'
import { sveltekit } from 'npm:@sveltejs/kit/vite'
import 'npm:svelte@^3.54.0'
// https://vitejs.dev/config/
export default defineConfig({
plugins: [sveltekit()]
})
ran deno task dev and still got the pesky undefined body error. When looking through my deno.lock, I noticed that the pre-patched version of sveltekit (1.0.1) was imported and that my file structure has things missing (app.html, the routes folder, no +page.svelte) etc
A clarification will be highly appreciated! How would we go about getting a deno-sveltekit template in create-vite-extra?
What's the process of installing sveltekit in a deno project now? I've ran deno run -A npm:create-vite-extra and selected the deno-svelte template with typescript and then went to vite.config.mts and replaced the svelte plugin with sveltekit like so
Most likely the template needs to be updated - I created these templates about 3 months ago so they might be outdated by now.
ran deno task dev and still got the pesky undefined body error. When looking through my deno.lock, I noticed that the pre-patched version of sveltekit (1.0.1) was imported and that my file structure has things missing (app.html, the routes folder, no +page.svelte) etc
If you have used Svelte before and used unversioned import you might get a version from cache. Either use version import or run with --reload to force Deno to pull latest version.
A clarification will be highly appreciated! How would we go about getting a deno-sveltekit template in create-vite-extra?
I just opened a PR to create-vite-extra that essentially copy-pasted existing templates and adjusted them to be Deno compatible (by changing imports to use npm: specifiers and list all dependencies in vite.config.mts.
I'm trying to run vite build script
deno run -A --unstable --node-modules-dir npm:vite build
on a deno + sveltekit + unocss project
but got this error
error: Uncaught TypeError: Could not resolve 'file:///Users/anon/deno-sk-uno/.svelte-kit/output/server/index.js' from 'file:///Users/anon/deno-sk-uno/node_modules/.deno/@[email protected]/node_modules/@sveltejs/kit/src/core/prerender/prerender.js'.
Caused by:
could not find npm package for 'file:///Users/anon/deno-sk-uno/.svelte-kit/output/server/index.js'
at async prerender (file:///Users/anon/deno-sk-uno/node_modules/.deno/@[email protected]/node_modules/@sveltejs/kit/src/core/prerender/prerender.js:102:31)
[vite-plugin-sveltekit-compile] Prerendering failed with code 1
error during build:
Error: Prerendering failed with code 1
at ChildProcess.<anonymous> (file:///Users/anon/deno-sk-uno/node_modules/.deno/@[email protected]/node_modules/@sveltejs/kit/src/exports/vite/index.js:551:15)
at ChildProcess.emit (https://deno.land/[email protected]/node/_events.mjs:379:28)
at https://deno.land/[email protected]/node/internal/child_process.ts:229:16
The issue has occurred on the child process spawned for the pre-render stage...
the generated files on output/*.js don't follow deno import syntaxt for npm packages
It appears this will be fixed by future updates to Deno: https://github.com/denoland/deno/issues/17475
running deno task build in a skeleton-app created with create-svelte results in an error
develop/reproductions/denokit ❯ deno task build
Warning Currently only basic package.json `scripts` are supported. Programs like `rimraf` or `cross-env` will not work correctly. This will be fixed in the upcoming release.
Task build vite build
vite v4.1.4 building SSR bundle for production...
transforming (72) src/routes/styles.css"confetti" is imported from external module "@neoconfetti/svelte" but never used in "src/routes/sverdle/+page.svelte".
✓ 74 modules transformed.
6:23:26 PM [vite-plugin-svelte] ssr compile done.
package files time avg
denokit 9 91.3ms 10.1ms
error: Uncaught Error: Argument list too long (os error 7)
at spawnChildInner (internal:runtime/js/40_spawn.js:45:17)
at spawnChild (internal:runtime/js/40_spawn.js:65:10)
at Command.spawn (internal:runtime/js/40_spawn.js:322:12)
at new ChildProcess (internal:deno_node/polyfills/internal/child_process.ts:108:16)
at spawn (internal:deno_node/polyfills/child_process.ts:102:12)
at Object.fork (internal:deno_node/polyfills/child_process.ts:93:12)
at file:///home/dominikg/develop/reproductions/denokit/node_modules/.deno/@[email protected]/node_modules/@sveltejs/kit/src/utils/fork.js:39:32
at new Promise (<anonymous>)
at fn (file:///home/dominikg/develop/reproductions/denokit/node_modules/.deno/@[email protected]/node_modules/@sveltejs/kit/src/utils/fork.js:38:10)
at Object.handler (file:///home/dominikg/develop/reproductions/denokit/node_modules/.deno/@[email protected]/node_modules/@sveltejs/kit/src/exports/vite/index.js:648:28)
Reported on Discord by @dominikg
@bartlomieju It is not possible to run the vite build on deno for a svelte-kit project ... it seems deno doesn't implement process.send used in the sveltekit prerender stage for the ipc
https://github.com/sveltejs/kit/blob/master/packages/kit/src/core/postbuild/prerender.js#L16 https://github.com/sveltejs/kit/blob/master/packages/kit/src/utils/fork.js#L14
@fernandolguevara @bartlomieju @benmccann It's seems to me (I might be wrong, of course) that since one of Deno's main design goals is providing "A runtime that resembles the web, using browser APIs that work on the server" thus going the web workers APIs way to create an IPC between parent and child process, maybe the SvelteKit team could consider addressing this particularity by branching https://github.com/sveltejs/kit/blob/master/packages/kit/src/utils/fork.js#L14 according to, for example, https://medium.com/deno-the-complete-reference/going-from-node-js-to-deno-part-5-child-process-bde9cd21d3d6
The reason SvelteKit does prerendering in a subprocess is so that we can call process.exit to ensure it's fully killed (e.g. to support cases where the user's app does something like leave a database connection we need to kill) without killing the main process (see https://github.com/sveltejs/kit/issues/5306).
I'm not familiar with web workers, but we would need to be able to call process.exit from one without killing the main process. It sounds like that's what happens so it should be a viable alternative: https://nodejs.org/api/worker_threads.html#class-worker
If anyone wants to send a PR, this sounds like something we could accept a PR for in SvelteKit assuming it doesn't massively complicate things.
Could anyone gauge how much effort it would take for say, Svelte and SvelteKit to provide an actual native Deno package? Seems like a huge opportunity?
Could anyone gauge how much effort it would take for say, Svelte and SvelteKit to provide an actual native Deno package? Seems like a huge opportunity?
As a community member, it's challenging to gauge the effort it would take to provide a native Deno package for Svelte and SvelteKit, and it's better left to SvelteKit or Deno core developers. However, there is some relevant information to consider.
Currently, we can use the Svelte compiler module from NPM in Deno, as shown in the example below:
import { compile } from "npm:svelte/compiler";
const result = compile("Hello world", {
format: "esm",
filename: "hello-world.svelte",
});
console.log({ result });
This allows us to use the Svelte compiler in Deno. However, SvelteKit, the framework, relies on other Svelte language tools that are not fully compatible with Deno, such as the Svelte LSP which is built for the Node.js toolchain.
It appears that several Svelte tools would need to be refactored in order to fully support Deno. Therefore, determining the effort required to provide a native Deno package for Svelte and SvelteKit would require closer collaboration between the SvelteKit and Deno core developers.
SvelteKit, the framework, relies on other Svelte language tools that are not fully compatible with Deno, such as the Svelte LSP which is built for the Node.js toolchain
I guess you're talking about the check script that's included in new projects when you choose to enable type checking in the new project creation wizard? While svelte-check is a very nice tool for type checking your .svelte files, you can still fully use SvelteKit without it. It's probably best to discuss svelte-check in a separate ticket because it's a different project with a different set of developers from SvelteKit. Unfortunately I don't know anything about the svelte-check internals.
For SvelteKit itself, the only thing I'm aware of that's needed is switching the subprocess to a worker as mentioned in https://github.com/denoland/deno/issues/17248#issuecomment-1499382376. It's not a priority for the Svelte team as we focus on Svelte 4, but if anyone wants to send a PR I'm happy to advise and we will review it!
I very much hope this moves forward, and soon. By the issues I've been looking Deno and SvelteKit don't know each other very well but having spent a good chunk of time getting to know both I am very confident they would be a match made in heaven... 🤞🏼
This is an excellent thread. I recently committed all my future frontend work to be done in SvelteKit, having come from a more "traditional" Design > HTML5/CSS > frontend route.
SvelteKit works the way I think frontend frameworks should. 😁 Deno is the future for "tidy" front-end web development. Once we throw in WebAssembly and Domain-Specific-Languages like Rust and Python, wrapped in single binary executable, then we will be in business. 😃
fyi, you can already use deno to run sveltekit applications, it's building that doesn't work currently. So eg. have a multi-stage Dockerfile where the first stage builds your app with node, then copies the result to a runner stage from a deno image of the same arch, call deno with appropriate permission flags and you're good to go.
Thank you @dominikg,
That is very good to know. I should try this out and report back. Better still, do you have or where can one find a repo with something like you have explained?
Thank you @dominikg,
That is very good to know. I should try this out and report back. Better still, do you have or where can one find a repo with something like you have explained?
fyi, you can already use deno to run sveltekit applications, it's building that doesn't work currently. So eg. have a multi-stage Dockerfile where the first stage builds your app with node, then copies the result to a runner stage from a deno image of the same arch, call deno with appropriate permission flags and you're good to go.
@dominikg do you mind sharing an example dockerfile for the basic svelte starter app? I'm not quite getting the part where you copy the result to the runner stage. Most likely my bad for not understanding deno and docker well enough.
The last issue I know about was fixed in SvelteKit 1.17.0: https://github.com/sveltejs/kit/blob/master/packages/kit/CHANGELOG.md#1170
Are there any issues remaining or can this issue be closed now?
@benmccann thanks for the ping. I'm OOO this week. I will verify that everything works as expected and that Deno is compatible with Svelte v4 (congratulations!) over the weekend and close the issue then.
If this is to be closed as complete, is there a full example of how to get SvelteKit working with deno? Bits and pieces aren't great for future reference.
@benmccann sorry for slow response. I just tried [email protected] and @sveltejs/[email protected] and while deno task dev works fine I get this error for deno task build:
error during build:
Error: Unexpected early exit. This happens when Promises returned by plugins cannot resolve. Unfinished hook action(s) on exit:
(vite-plugin-sveltekit-compile) writeBundle
at process.handleBeforeExit (file:///Users/ib/dev/try_svelte_kit/my-app/node_modules/.deno/[email protected]/node_modules/rollup/dist/es/shared/node-entry.js:25670:28)
at Object.onceWrapper (ext:deno_node/_events.mjs:507:26)
at process.emit (ext:deno_node/_events.mjs:382:28)
at process.emit (ext:deno_node/process.ts:343:26)
at ext:deno_node/process.ts:535:17
at innerInvokeEventListeners (ext:deno_web/02_event.js:792:7)
at invokeEventListeners (ext:deno_web/02_event.js:839:5)
at dispatch (ext:deno_web/02_event.js:696:9)
at dispatchEvent (ext:deno_web/02_event.js:1101:12)
at [ext:cli/worker.rs:161:38]:1:1
Trying [email protected] (deno run -A --unstable --reload npm:create-svelte@latest my-app) I get:
create-svelte version 5.0.1
┌ Welcome to SvelteKit!
error: Uncaught Error: Not implemented: net.Socket.prototype.constructor with fd option
at notImplemented (ext:deno_node/_utils.ts:7:11)
at new Socket (ext:deno_node/net.ts:453:13)
at new WriteStream (ext:deno_node/tty.ts:18:8)
at ED.prompt (file:///Users/ib/Library/Caches/deno/npm/registry.npmjs.org/@clack/core/0.3.2/dist/index.mjs:9:693)
at Module.ee (file:///Users/ib/Library/Caches/deno/npm/registry.npmjs.org/@clack/prompts/0.6.3/dist/index.mjs:28:7)
at template (file:///Users/ib/Library/Caches/deno/npm/registry.npmjs.org/create-svelte/5.0.1/bin.js:48:6)
at Module.$e (file:///Users/ib/Library/Caches/deno/npm/registry.npmjs.org/@clack/prompts/0.6.3/dist/index.mjs:80:345)
at file:///Users/ib/Library/Caches/deno/npm/registry.npmjs.org/create-svelte/5.0.1/bin.js:45:25
So it seems we got a few more bugs to iron out. I'll try to prioritize this work in July.
@benmccann sorry for slow response. I just tried [email protected] and @sveltejs/[email protected] and while
deno task devworks fine I get this error fordeno task build:error during build: Error: Unexpected early exit. This happens when Promises returned by plugins cannot resolve. Unfinished hook action(s) on exit: (vite-plugin-sveltekit-compile) writeBundle at process.handleBeforeExit (file:///Users/ib/dev/try_svelte_kit/my-app/node_modules/.deno/[email protected]/node_modules/rollup/dist/es/shared/node-entry.js:25670:28) at Object.onceWrapper (ext:deno_node/_events.mjs:507:26) at process.emit (ext:deno_node/_events.mjs:382:28) at process.emit (ext:deno_node/process.ts:343:26) at ext:deno_node/process.ts:535:17 at innerInvokeEventListeners (ext:deno_web/02_event.js:792:7) at invokeEventListeners (ext:deno_web/02_event.js:839:5) at dispatch (ext:deno_web/02_event.js:696:9) at dispatchEvent (ext:deno_web/02_event.js:1101:12) at [ext:cli/worker.rs:161:38]:1:1Trying
[email protected](deno run -A --unstable --reload npm:create-svelte@latest my-app) I get:create-svelte version 5.0.1 ┌ Welcome to SvelteKit! error: Uncaught Error: Not implemented: net.Socket.prototype.constructor with fd option at notImplemented (ext:deno_node/_utils.ts:7:11) at new Socket (ext:deno_node/net.ts:453:13) at new WriteStream (ext:deno_node/tty.ts:18:8) at ED.prompt (file:///Users/ib/Library/Caches/deno/npm/registry.npmjs.org/@clack/core/0.3.2/dist/index.mjs:9:693) at Module.ee (file:///Users/ib/Library/Caches/deno/npm/registry.npmjs.org/@clack/prompts/0.6.3/dist/index.mjs:28:7) at template (file:///Users/ib/Library/Caches/deno/npm/registry.npmjs.org/create-svelte/5.0.1/bin.js:48:6) at Module.$e (file:///Users/ib/Library/Caches/deno/npm/registry.npmjs.org/@clack/prompts/0.6.3/dist/index.mjs:80:345) at file:///Users/ib/Library/Caches/deno/npm/registry.npmjs.org/create-svelte/5.0.1/bin.js:45:25So it seems we got a few more bugs to iron out. I'll try to prioritize this work in July.
I got same issue:
siki@siki ~/Lab> deno run -A --unstable --reload npm:create-svelte@latest sveltekit-deno
create-svelte version 5.0.2
┌ Welcome to SvelteKit!
error: Uncaught Error: Not implemented: net.Socket.prototype.constructor with fd option
at notImplemented (ext:deno_node/_utils.ts:7:11)
at new Socket (ext:deno_node/net.ts:453:13)
at new WriteStream (ext:deno_node/tty.ts:18:8)
at ED.prompt (file:///home/siki/.cache/deno/npm/registry.npmjs.org/@clack/core/0.3.2/dist/index.mjs:9:693)
at Module.ee (file:///home/siki/.cache/deno/npm/registry.npmjs.org/@clack/prompts/0.6.3/dist/index.mjs:28:7)
at template (file:///home/siki/.cache/deno/npm/registry.npmjs.org/create-svelte/5.0.2/bin.js:48:6)
at Module.$e (file:///home/siki/.cache/deno/npm/registry.npmjs.org/@clack/prompts/0.6.3/dist/index.mjs:80:345)
at file:///home/siki/.cache/deno/npm/registry.npmjs.org/create-svelte/5.0.2/bin.js:45:25