diff --git a/packages/repl/package.json b/packages/repl/package.json index 159639e3..cfc98464 100644 --- a/packages/repl/package.json +++ b/packages/repl/package.json @@ -48,43 +48,42 @@ "svelte": "^3.54.0 || ^4.0.0-next.0 || ^4.0.0" }, "devDependencies": { - "@fontsource/fira-mono": "^5.0.3", - "@sveltejs/adapter-static": "^2.0.2", - "@sveltejs/kit": "^1.20.5", - "@sveltejs/package": "^2.1.0", - "@types/marked": "^5.0.0", - "publint": "^0.1.12", - "svelte": "^4.0.0", - "svelte-check": "^3.4.4", - "tslib": "^2.6.0", - "typescript": "^5.1.3", - "vite": "^4.3.9" + "@fontsource/fira-mono": "^5.0.8", + "@sveltejs/adapter-static": "^2.0.3", + "@sveltejs/kit": "^1.27.6", + "@sveltejs/package": "^2.2.3", + "publint": "^0.2.6", + "svelte": "^4.2.8", + "svelte-check": "^3.6.2", + "tslib": "^2.6.2", + "typescript": "^5.3.2", + "vite": "^4.5.0" }, "dependencies": { - "@codemirror/autocomplete": "^6.8.1", - "@codemirror/commands": "^6.2.4", - "@codemirror/lang-css": "^6.2.0", - "@codemirror/lang-javascript": "^6.1.9", + "@codemirror/autocomplete": "^6.11.1", + "@codemirror/commands": "^6.3.2", + "@codemirror/lang-css": "^6.2.1", + "@codemirror/lang-javascript": "^6.2.1", "@codemirror/lang-json": "^6.0.1", - "@codemirror/lang-markdown": "^6.2.0", - "@codemirror/language": "^6.8.0", - "@codemirror/lint": "^6.3.0", - "@codemirror/state": "^6.2.1", - "@codemirror/view": "^6.14.0", + "@codemirror/lang-markdown": "^6.2.3", + "@codemirror/language": "^6.9.3", + "@codemirror/lint": "^6.4.2", + "@codemirror/state": "^6.3.2", + "@codemirror/view": "^6.22.1", "@jridgewell/sourcemap-codec": "^1.4.15", - "@lezer/highlight": "^1.1.6", - "@neocodemirror/svelte": "0.0.15", + "@lezer/highlight": "^1.2.0", + "@neocodemirror/svelte": "0.0.17", "@replit/codemirror-lang-svelte": "^6.0.0", - "@replit/codemirror-vim": "^6.0.14", + "@replit/codemirror-vim": "^6.1.0", "@rich_harris/svelte-split-pane": "^1.1.1", - "@rollup/browser": "^3.25.3", + "@rollup/browser": "^4.6.1", "@sveltejs/site-kit": "5.2.2", - "acorn": "^8.9.0", + "acorn": "^8.11.2", "codemirror": "^6.0.1", "esm-env": "^1.0.0", "estree-walker": "^3.0.3", - "marked": "^5.1.0", + "marked": "^11.0.0", "resolve.exports": "^2.0.2", - "svelte-json-tree": "^2.0.0" + "svelte-json-tree": "^2.2.0" } } diff --git a/packages/repl/src/lib/Bundler.js b/packages/repl/src/lib/Bundler.js index 6edff462..e20946de 100644 --- a/packages/repl/src/lib/Bundler.js +++ b/packages/repl/src/lib/Bundler.js @@ -59,7 +59,7 @@ export default class Bundler { this.worker.postMessage({ uid, type: 'bundle', - files, + files }); uid += 1; diff --git a/packages/repl/src/lib/CodeMirror.svelte b/packages/repl/src/lib/CodeMirror.svelte index 6573ae13..309bd11f 100644 --- a/packages/repl/src/lib/CodeMirror.svelte +++ b/packages/repl/src/lib/CodeMirror.svelte @@ -260,10 +260,11 @@ lintOptions: { delay: 200 }, autocomplete, extensions, - instanceStore: cmInstance + instanceStore: cmInstance, + documentId: 'id' }} on:codemirror:textChange={({ detail: value }) => { - code = value; + code = value ?? ''; dispatch('change', { value: code }); }} > diff --git a/packages/repl/src/lib/Output/Output.svelte b/packages/repl/src/lib/Output/Output.svelte index b60d0de4..056ee358 100644 --- a/packages/repl/src/lib/Output/Output.svelte +++ b/packages/repl/src/lib/Output/Output.svelte @@ -49,7 +49,7 @@ } if (file.type === 'md') { - markdown = marked(file.source); + markdown = await marked(file.source); return; } @@ -71,7 +71,7 @@ if (/(js|json)/.test(selected.type)) return; if (selected.type === 'md') { - markdown = marked(selected.source); + markdown = await marked(selected.source); return; } diff --git a/packages/repl/src/lib/workers/bundler/index.js b/packages/repl/src/lib/workers/bundler/index.js index 5887f6e7..297819e3 100644 --- a/packages/repl/src/lib/workers/bundler/index.js +++ b/packages/repl/src/lib/workers/bundler/index.js @@ -1,6 +1,7 @@ /// import '../patch_window.js'; + import { sleep } from '$lib/utils.js'; import { rollup } from '@rollup/browser'; import { DEV } from 'esm-env'; @@ -22,7 +23,7 @@ let svelte_url; /** @type {number} */ let current_id; -/** @type {(...arg: never) => void} */ +/** @type {(...arg: any[]) => void} */ let fulfil_ready; const ready = new Promise((f) => { fulfil_ready = f; @@ -273,6 +274,7 @@ async function get_bundle(uid, mode, cache, local_files_lookup) { // importing from another file in REPL if (local_files_lookup.has(importee) && (!importer || local_files_lookup.has(importer))) return importee; + if (local_files_lookup.has(importee + '.js')) return importee + '.js'; if (local_files_lookup.has(importee + '.json')) return importee + '.json'; @@ -405,7 +407,9 @@ async function get_bundle(uid, mode, cache, local_files_lookup) { 'process.env.NODE_ENV': JSON.stringify('production') }) ], - inlineDynamicImports: true, + output: { + inlineDynamicImports: true + }, onwarn(warning) { all_warnings.push({ message: warning.message diff --git a/packages/repl/src/lib/workers/patch_window.js b/packages/repl/src/lib/workers/patch_window.js index ff7057c9..d1323a74 100644 --- a/packages/repl/src/lib/workers/patch_window.js +++ b/packages/repl/src/lib/workers/patch_window.js @@ -1 +1,2 @@ self.window = self; // hack for magic-sring and rollup inline sourcemaps +self.window.btoa = self.btoa; // hack to get rollup rolling diff --git a/packages/repl/src/routes/+page.svelte b/packages/repl/src/routes/+page.svelte index b64ffd03..6d81afcb 100644 --- a/packages/repl/src/routes/+page.svelte +++ b/packages/repl/src/routes/+page.svelte @@ -36,7 +36,7 @@
- +