From c917eb1fcfbbc8a7a8937e1398784553a6f2e8f4 Mon Sep 17 00:00:00 2001 From: Simon Holthausen Date: Wed, 21 Jun 2023 16:50:32 +0200 Subject: [PATCH 1/9] fix: account for sourcemap in meta info We need to use a different method for getting the meta info because `locate` is used to help construct the source map that references the preprocessed Svelte file. If we would now add source maps to that `locate` function it would go the the original source directly which means skipping potentially intermediate source maps which we would need in other situations. fixes #8360 closes #8362 --- packages/svelte/package.json | 269 +++++++++--------- .../svelte/src/compiler/compile/Component.js | 26 +- .../compiler/compile/render_dom/Renderer.js | 4 + .../render_dom/wrappers/Element/index.js | 2 +- pnpm-lock.yaml | 3 + 5 files changed, 168 insertions(+), 136 deletions(-) diff --git a/packages/svelte/package.json b/packages/svelte/package.json index 10df08e9f1af..30069ba35594 100644 --- a/packages/svelte/package.json +++ b/packages/svelte/package.json @@ -1,135 +1,136 @@ { - "name": "svelte", - "version": "4.0.0-next.2", - "description": "Cybernetically enhanced web apps", - "type": "module", - "module": "src/runtime/index.js", - "main": "src/runtime/index.js", - "files": [ - "src", - "types", - "compiler.*", - "register.js", - "index.d.ts", - "store.d.ts", - "animate.d.ts", - "transition.d.ts", - "easing.d.ts", - "motion.d.ts", - "action.d.ts", - "elements.d.ts", - "README.md" - ], - "exports": { - "./package.json": "./package.json", - ".": { - "types": "./types/index.d.ts", - "browser": { - "import": "./src/runtime/index.js" - }, - "import": "./src/runtime/ssr.js" - }, - "./compiler": { - "types": "./types/index.d.ts", - "import": "./src/compiler/index.js", - "require": "./compiler.cjs" - }, - "./action": { - "types": "./types/index.d.ts" - }, - "./animate": { - "types": "./types/index.d.ts", - "import": "./src/runtime/animate/index.js" - }, - "./easing": { - "types": "./types/index.d.ts", - "import": "./src/runtime/easing/index.js" - }, - "./internal": { - "import": "./src/runtime/internal/index.js" - }, - "./motion": { - "types": "./types/index.d.ts", - "import": "./src/runtime/motion/index.js" - }, - "./store": { - "types": "./types/index.d.ts", - "import": "./src/runtime/store/index.js" - }, - "./transition": { - "types": "./types/index.d.ts", - "import": "./src/runtime/transition/index.js" - }, - "./elements": { - "types": "./elements.d.ts" - } - }, - "engines": { - "node": ">=16" - }, - "types": "types/index.d.ts", - "scripts": { - "format": "prettier . --cache --plugin-search-dir=. --write", - "check": "prettier . --cache --plugin-search-dir=. --check", - "test": "vitest run && echo \"manually check that there are no type errors in test/types by opening the files in there\"", - "build": "rollup -c && pnpm types", - "generate:version": "node ./scripts/generate-version.js", - "dev": "rollup -cw", - "posttest": "agadoo src/internal/index.js", - "prepublishOnly": "pnpm build", - "types": "node ./scripts/generate-dts.js", - "lint": "eslint \"{src,test}/**/*.{ts,js}\" --cache" - }, - "repository": { - "type": "git", - "url": "https://github.com/sveltejs/svelte.git", - "directory": "packages/svelte" - }, - "keywords": [ - "UI", - "framework", - "templates", - "templating" - ], - "author": "Rich Harris", - "license": "MIT", - "bugs": { - "url": "https://github.com/sveltejs/svelte/issues" - }, - "homepage": "https://svelte.dev", - "dependencies": { - "@ampproject/remapping": "^2.2.1", - "@jridgewell/sourcemap-codec": "^1.4.15", - "acorn": "^8.8.2", - "aria-query": "^5.2.1", - "axobject-query": "^3.2.1", - "code-red": "^1.0.3", - "css-tree": "^2.3.1", - "estree-walker": "^3.0.3", - "is-reference": "^3.0.1", - "locate-character": "^3.0.0", - "magic-string": "^0.30.0", - "periscopic": "^3.1.0" - }, - "devDependencies": { - "@playwright/test": "^1.34.3", - "@rollup/plugin-commonjs": "^24.1.0", - "@rollup/plugin-json": "^6.0.0", - "@rollup/plugin-node-resolve": "^15.0.2", - "@sveltejs/eslint-config": "^6.0.4", - "@types/aria-query": "^5.0.1", - "@types/estree": "^1.0.1", - "@types/node": "^14.14.31", - "agadoo": "^3.0.0", - "dts-buddy": "^0.1.7", - "esbuild": "^0.17.19", - "happy-dom": "^9.18.3", - "jsdom": "^21.1.1", - "kleur": "^4.1.5", - "rollup": "^3.20.2", - "source-map": "^0.7.4", - "tiny-glob": "^0.2.9", - "typescript": "^5.0.4", - "vitest": "^0.31.1" - } -} \ No newline at end of file + "name": "svelte", + "version": "4.0.0-next.2", + "description": "Cybernetically enhanced web apps", + "type": "module", + "module": "src/runtime/index.js", + "main": "src/runtime/index.js", + "files": [ + "src", + "types", + "compiler.*", + "register.js", + "index.d.ts", + "store.d.ts", + "animate.d.ts", + "transition.d.ts", + "easing.d.ts", + "motion.d.ts", + "action.d.ts", + "elements.d.ts", + "README.md" + ], + "exports": { + "./package.json": "./package.json", + ".": { + "types": "./types/index.d.ts", + "browser": { + "import": "./src/runtime/index.js" + }, + "import": "./src/runtime/ssr.js" + }, + "./compiler": { + "types": "./types/index.d.ts", + "import": "./src/compiler/index.js", + "require": "./compiler.cjs" + }, + "./action": { + "types": "./types/index.d.ts" + }, + "./animate": { + "types": "./types/index.d.ts", + "import": "./src/runtime/animate/index.js" + }, + "./easing": { + "types": "./types/index.d.ts", + "import": "./src/runtime/easing/index.js" + }, + "./internal": { + "import": "./src/runtime/internal/index.js" + }, + "./motion": { + "types": "./types/index.d.ts", + "import": "./src/runtime/motion/index.js" + }, + "./store": { + "types": "./types/index.d.ts", + "import": "./src/runtime/store/index.js" + }, + "./transition": { + "types": "./types/index.d.ts", + "import": "./src/runtime/transition/index.js" + }, + "./elements": { + "types": "./elements.d.ts" + } + }, + "engines": { + "node": ">=16" + }, + "types": "types/index.d.ts", + "scripts": { + "format": "prettier . --cache --plugin-search-dir=. --write", + "check": "prettier . --cache --plugin-search-dir=. --check", + "test": "vitest run && echo \"manually check that there are no type errors in test/types by opening the files in there\"", + "build": "rollup -c && pnpm types", + "generate:version": "node ./scripts/generate-version.js", + "dev": "rollup -cw", + "posttest": "agadoo src/internal/index.js", + "prepublishOnly": "pnpm build", + "types": "node ./scripts/generate-dts.js", + "lint": "eslint \"{src,test}/**/*.{ts,js}\" --cache" + }, + "repository": { + "type": "git", + "url": "https://github.com/sveltejs/svelte.git", + "directory": "packages/svelte" + }, + "keywords": [ + "UI", + "framework", + "templates", + "templating" + ], + "author": "Rich Harris", + "license": "MIT", + "bugs": { + "url": "https://github.com/sveltejs/svelte/issues" + }, + "homepage": "https://svelte.dev", + "dependencies": { + "@ampproject/remapping": "^2.2.1", + "@jridgewell/sourcemap-codec": "^1.4.15", + "@jridgewell/trace-mapping": "^0.3.18", + "acorn": "^8.8.2", + "aria-query": "^5.2.1", + "axobject-query": "^3.2.1", + "code-red": "^1.0.3", + "css-tree": "^2.3.1", + "estree-walker": "^3.0.3", + "is-reference": "^3.0.1", + "locate-character": "^3.0.0", + "magic-string": "^0.30.0", + "periscopic": "^3.1.0" + }, + "devDependencies": { + "@playwright/test": "^1.34.3", + "@rollup/plugin-commonjs": "^24.1.0", + "@rollup/plugin-json": "^6.0.0", + "@rollup/plugin-node-resolve": "^15.0.2", + "@sveltejs/eslint-config": "^6.0.4", + "@types/aria-query": "^5.0.1", + "@types/estree": "^1.0.1", + "@types/node": "^14.14.31", + "agadoo": "^3.0.0", + "dts-buddy": "^0.1.7", + "esbuild": "^0.17.19", + "happy-dom": "^9.18.3", + "jsdom": "^21.1.1", + "kleur": "^4.1.5", + "rollup": "^3.20.2", + "source-map": "^0.7.4", + "tiny-glob": "^0.2.9", + "typescript": "^5.0.4", + "vitest": "^0.31.1" + } +} diff --git a/packages/svelte/src/compiler/compile/Component.js b/packages/svelte/src/compiler/compile/Component.js index 92c7fcaf46de..e96921bd04db 100644 --- a/packages/svelte/src/compiler/compile/Component.js +++ b/packages/svelte/src/compiler/compile/Component.js @@ -1,3 +1,4 @@ +import { TraceMap, originalPositionFor } from '@jridgewell/trace-mapping'; import { walk } from 'estree-walker'; import { getLocator } from 'locate-character'; import { reserved, is_valid } from '../utils/names.js'; @@ -142,9 +143,18 @@ export default class Component { /** @type {string} */ file; - /** @type {(c: number) => { line: number; column: number }} */ + /** + * Use this for source mappings. Use `meta_locate` for the meta data on the dom elements. + * @type {(c: number) => { line: number; column: number }} + */ locate; + /** + * Use this for the meta data on the dom elements. Use `locate` for source mappings. + * @type {(c: number) => { line: number; column: number }} + */ + meta_locate; + /** @type {import('./nodes/Element.js').default[]} */ elements = []; @@ -199,7 +209,21 @@ export default class Component { .replace(process.cwd(), '') .replace(regex_leading_directory_separator, '') : compile_options.filename); + + // line numbers in stack trace frames are 1-based. source maps are 0-based this.locate = getLocator(this.source, { offsetLine: 1 }); + // @ts-expect-error - fix the type of CompileOptions.sourcemap + const tracer = compile_options.sourcemap ? new TraceMap(compile_options.sourcemap) : undefined; + this.meta_locate = (c) => { + /** @type {{ line: number, column: number }} */ + let location = this.locate(c); + if (tracer) { + // originalPositionFor returns 1-based lines like locator + location = originalPositionFor(tracer, location); + } + return location; + }; + // styles this.stylesheet = new Stylesheet({ source, diff --git a/packages/svelte/src/compiler/compile/render_dom/Renderer.js b/packages/svelte/src/compiler/compile/render_dom/Renderer.js index 23f9ab5fba0c..a23dc822c72e 100644 --- a/packages/svelte/src/compiler/compile/render_dom/Renderer.js +++ b/packages/svelte/src/compiler/compile/render_dom/Renderer.js @@ -65,6 +65,9 @@ export default class Renderer { /** @type {(c: number) => { line: number; column: number }} */ locate; + /** @type {(c: number) => { line: number; column: number }} */ + meta_locate; + /** * @param {import('../Component.js').default} component * @param {import('../../interfaces.js').CompileOptions} options @@ -73,6 +76,7 @@ export default class Renderer { this.component = component; this.options = options; this.locate = component.locate; // TODO messy + this.meta_locate = component.meta_locate; // TODO messy this.file_var = options.dev && this.component.get_unique_name('file'); component.vars .filter((v) => !v.hoistable || (v.export_name && !v.module)) diff --git a/packages/svelte/src/compiler/compile/render_dom/wrappers/Element/index.js b/packages/svelte/src/compiler/compile/render_dom/wrappers/Element/index.js index eca5f09fc5fe..bc815e493769 100644 --- a/packages/svelte/src/compiler/compile/render_dom/wrappers/Element/index.js +++ b/packages/svelte/src/compiler/compile/render_dom/wrappers/Element/index.js @@ -585,7 +585,7 @@ export default class ElementWrapper extends Wrapper { ); } if (renderer.options.dev) { - const loc = renderer.locate(this.node.start); + const loc = renderer.meta_locate(this.node.start); block.chunks.hydrate.push( b`@add_location(${this.var}, ${renderer.file_var}, ${loc.line - 1}, ${loc.column}, ${ this.node.start diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8b1bf23be648..236859eb5bd2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -56,6 +56,9 @@ importers: '@jridgewell/sourcemap-codec': specifier: ^1.4.15 version: 1.4.15 + '@jridgewell/trace-mapping': + specifier: ^0.3.18 + version: 0.3.18 acorn: specifier: ^8.8.2 version: 8.8.2 From 903ba2e42b04f7f391ee408a643217da5ceb49d7 Mon Sep 17 00:00:00 2001 From: Simon Holthausen Date: Wed, 21 Jun 2023 17:14:06 +0200 Subject: [PATCH 2/9] changeset --- .changeset/silly-ladybugs-marry.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/silly-ladybugs-marry.md diff --git a/.changeset/silly-ladybugs-marry.md b/.changeset/silly-ladybugs-marry.md new file mode 100644 index 000000000000..10cf4b0888f0 --- /dev/null +++ b/.changeset/silly-ladybugs-marry.md @@ -0,0 +1,5 @@ +--- +'svelte': patch +--- + +fix: account for preprocessor source maps when calculating meta info From 10aadf4ecea3e718ccdb3255a16cac645d6c9465 Mon Sep 17 00:00:00 2001 From: Simon H <5968653+dummdidumm@users.noreply.github.com> Date: Thu, 22 Jun 2023 10:04:58 +0200 Subject: [PATCH 3/9] Apply suggestions from code review Co-authored-by: Ben McCann <322311+benmccann@users.noreply.github.com> --- packages/svelte/src/compiler/compile/Component.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/svelte/src/compiler/compile/Component.js b/packages/svelte/src/compiler/compile/Component.js index e96921bd04db..f148426c458e 100644 --- a/packages/svelte/src/compiler/compile/Component.js +++ b/packages/svelte/src/compiler/compile/Component.js @@ -144,13 +144,15 @@ export default class Component { file; /** - * Use this for source mappings. Use `meta_locate` for the meta data on the dom elements. + * Use this for stack traces. It is 1-based and acts on pre-processed sources. + * Use `meta_locate` for metadata on DOM elements. * @type {(c: number) => { line: number; column: number }} */ locate; /** - * Use this for the meta data on the dom elements. Use `locate` for source mappings. + * Use this for metadata on DOM elements. It is 1-based and acts on sources that have not been pre-processed. + * Use `locate` for source mappings. * @type {(c: number) => { line: number; column: number }} */ meta_locate; From 61ff4ea8b78b0dff2a94cb60bae8f70fd71010dd Mon Sep 17 00:00:00 2001 From: Simon Holthausen Date: Thu, 22 Jun 2023 11:16:12 +0200 Subject: [PATCH 4/9] doc here, too --- .../src/compiler/compile/render_dom/Renderer.js | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/packages/svelte/src/compiler/compile/render_dom/Renderer.js b/packages/svelte/src/compiler/compile/render_dom/Renderer.js index a23dc822c72e..0a7cd11ea6a7 100644 --- a/packages/svelte/src/compiler/compile/render_dom/Renderer.js +++ b/packages/svelte/src/compiler/compile/render_dom/Renderer.js @@ -62,10 +62,18 @@ export default class Renderer { /** @type {import('estree').Identifier} */ file_var; - /** @type {(c: number) => { line: number; column: number }} */ + /** + * Use this for stack traces. It is 1-based and acts on pre-processed sources. + * Use `meta_locate` for metadata on DOM elements. + * @type {(c: number) => { line: number; column: number }} + */ locate; - /** @type {(c: number) => { line: number; column: number }} */ + /** + * Use this for metadata on DOM elements. It is 1-based and acts on sources that have not been pre-processed. + * Use `locate` for source mappings. + * @type {(c: number) => { line: number; column: number }} + */ meta_locate; /** From a6ddb2de71af497fddf7af1350cac0770033d83d Mon Sep 17 00:00:00 2001 From: Simon Holthausen Date: Thu, 22 Jun 2023 11:19:29 +0200 Subject: [PATCH 5/9] lazy init for a tiny speed boost on prod builds --- packages/svelte/src/compiler/compile/Component.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/svelte/src/compiler/compile/Component.js b/packages/svelte/src/compiler/compile/Component.js index f148426c458e..03d2c2fad323 100644 --- a/packages/svelte/src/compiler/compile/Component.js +++ b/packages/svelte/src/compiler/compile/Component.js @@ -214,11 +214,15 @@ export default class Component { // line numbers in stack trace frames are 1-based. source maps are 0-based this.locate = getLocator(this.source, { offsetLine: 1 }); - // @ts-expect-error - fix the type of CompileOptions.sourcemap - const tracer = compile_options.sourcemap ? new TraceMap(compile_options.sourcemap) : undefined; + /** @type {TraceMap | null | undefined} initialise lazy because only used in dev mode */ + let tracer; this.meta_locate = (c) => { /** @type {{ line: number, column: number }} */ let location = this.locate(c); + if (tracer === undefined) { + // @ts-expect-error - fix the type of CompileOptions.sourcemap + tracer = compile_options.sourcemap ? new TraceMap(compile_options.sourcemap) : null; + } if (tracer) { // originalPositionFor returns 1-based lines like locator location = originalPositionFor(tracer, location); From f4108c078cfc336977eee59b40c07aab5bc178a2 Mon Sep 17 00:00:00 2001 From: Simon Holthausen Date: Thu, 22 Jun 2023 11:39:52 +0200 Subject: [PATCH 6/9] add comment about limitation --- .../src/compiler/compile/render_dom/wrappers/Element/index.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/svelte/src/compiler/compile/render_dom/wrappers/Element/index.js b/packages/svelte/src/compiler/compile/render_dom/wrappers/Element/index.js index bc815e493769..5f8def5f2910 100644 --- a/packages/svelte/src/compiler/compile/render_dom/wrappers/Element/index.js +++ b/packages/svelte/src/compiler/compile/render_dom/wrappers/Element/index.js @@ -588,6 +588,8 @@ export default class ElementWrapper extends Wrapper { const loc = renderer.meta_locate(this.node.start); block.chunks.hydrate.push( b`@add_location(${this.var}, ${renderer.file_var}, ${loc.line - 1}, ${loc.column}, ${ + // TODO this.node.start isn't correct if there's a source map. But since we don't know how the + // original source file looked, there's not much we can do. this.node.start });` ); From db686cf1b6bd030e58d60df5fb77a74070940e93 Mon Sep 17 00:00:00 2001 From: Simon Holthausen Date: Thu, 22 Jun 2023 11:52:55 +0200 Subject: [PATCH 7/9] test --- .../_config.js | 33 +++++++++++++++++++ .../main.svelte | 5 +++ 2 files changed, 38 insertions(+) create mode 100644 packages/svelte/test/runtime/samples/element-source-location-preprocessed/_config.js create mode 100644 packages/svelte/test/runtime/samples/element-source-location-preprocessed/main.svelte diff --git a/packages/svelte/test/runtime/samples/element-source-location-preprocessed/_config.js b/packages/svelte/test/runtime/samples/element-source-location-preprocessed/_config.js new file mode 100644 index 000000000000..de202df56cac --- /dev/null +++ b/packages/svelte/test/runtime/samples/element-source-location-preprocessed/_config.js @@ -0,0 +1,33 @@ +import MagicString from 'magic-string'; +import * as path from 'node:path'; + +// fake preprocessor by doing transforms on the source +const str = new MagicString( + ` + +

{foo}

+`.replace(/\r\n/g, '\n') +); +str.remove(8, 26); // remove line type Foo = ... +str.remove(55, 56); // remove whitespace before

+ +export default { + compileOptions: { + dev: true, + sourcemap: str.generateMap({ hires: true }) + }, + + test({ assert, target }) { + const h1 = target.querySelector('h1'); + + assert.deepEqual(h1.__svelte_meta.loc, { + file: path.relative(process.cwd(), path.resolve(__dirname, 'main.svelte')), + line: 5, // line 4 in main.svelte, but that's the preprocessed code, the original code is above in the fake preprocessor + column: 1, // line 0 in main.svelte, but that's the preprocessed code, the original code is above in the fake preprocessor + char: 38 // TODO this is wrong but we can't backtrace it due to limitations, see meta_locate function comment for more info + }); + } +}; diff --git a/packages/svelte/test/runtime/samples/element-source-location-preprocessed/main.svelte b/packages/svelte/test/runtime/samples/element-source-location-preprocessed/main.svelte new file mode 100644 index 000000000000..fd631ff11ccd --- /dev/null +++ b/packages/svelte/test/runtime/samples/element-source-location-preprocessed/main.svelte @@ -0,0 +1,5 @@ + + +

{foo}

From a03ec026fca1f0f9c30f161f8fd9d790f1d89ce7 Mon Sep 17 00:00:00 2001 From: Simon Holthausen Date: Thu, 22 Jun 2023 11:55:02 +0200 Subject: [PATCH 8/9] package.json spaces --- .prettierrc | 2 +- packages/svelte/package.json | 268 +++++++++++++++++------------------ 2 files changed, 135 insertions(+), 135 deletions(-) diff --git a/.prettierrc b/.prettierrc index c187505941b7..0ea7a0b1e9fe 100644 --- a/.prettierrc +++ b/.prettierrc @@ -12,7 +12,7 @@ } }, { - "files": ["README.md", "packages/*/README.md"], + "files": ["README.md", "packages/*/README.md", "**/package.json"], "options": { "useTabs": false, "tabWidth": 2 diff --git a/packages/svelte/package.json b/packages/svelte/package.json index 30069ba35594..50af14cbcd65 100644 --- a/packages/svelte/package.json +++ b/packages/svelte/package.json @@ -1,136 +1,136 @@ { - "name": "svelte", - "version": "4.0.0-next.2", - "description": "Cybernetically enhanced web apps", - "type": "module", - "module": "src/runtime/index.js", - "main": "src/runtime/index.js", - "files": [ - "src", - "types", - "compiler.*", - "register.js", - "index.d.ts", - "store.d.ts", - "animate.d.ts", - "transition.d.ts", - "easing.d.ts", - "motion.d.ts", - "action.d.ts", - "elements.d.ts", - "README.md" - ], - "exports": { - "./package.json": "./package.json", - ".": { - "types": "./types/index.d.ts", - "browser": { - "import": "./src/runtime/index.js" - }, - "import": "./src/runtime/ssr.js" - }, - "./compiler": { - "types": "./types/index.d.ts", - "import": "./src/compiler/index.js", - "require": "./compiler.cjs" - }, - "./action": { - "types": "./types/index.d.ts" - }, - "./animate": { - "types": "./types/index.d.ts", - "import": "./src/runtime/animate/index.js" - }, - "./easing": { - "types": "./types/index.d.ts", - "import": "./src/runtime/easing/index.js" - }, - "./internal": { - "import": "./src/runtime/internal/index.js" - }, - "./motion": { - "types": "./types/index.d.ts", - "import": "./src/runtime/motion/index.js" - }, - "./store": { - "types": "./types/index.d.ts", - "import": "./src/runtime/store/index.js" - }, - "./transition": { - "types": "./types/index.d.ts", - "import": "./src/runtime/transition/index.js" - }, - "./elements": { - "types": "./elements.d.ts" - } - }, - "engines": { - "node": ">=16" - }, - "types": "types/index.d.ts", - "scripts": { - "format": "prettier . --cache --plugin-search-dir=. --write", - "check": "prettier . --cache --plugin-search-dir=. --check", - "test": "vitest run && echo \"manually check that there are no type errors in test/types by opening the files in there\"", - "build": "rollup -c && pnpm types", - "generate:version": "node ./scripts/generate-version.js", - "dev": "rollup -cw", - "posttest": "agadoo src/internal/index.js", - "prepublishOnly": "pnpm build", - "types": "node ./scripts/generate-dts.js", - "lint": "eslint \"{src,test}/**/*.{ts,js}\" --cache" - }, - "repository": { - "type": "git", - "url": "https://github.com/sveltejs/svelte.git", - "directory": "packages/svelte" - }, - "keywords": [ - "UI", - "framework", - "templates", - "templating" - ], - "author": "Rich Harris", - "license": "MIT", - "bugs": { - "url": "https://github.com/sveltejs/svelte/issues" - }, - "homepage": "https://svelte.dev", - "dependencies": { - "@ampproject/remapping": "^2.2.1", - "@jridgewell/sourcemap-codec": "^1.4.15", - "@jridgewell/trace-mapping": "^0.3.18", - "acorn": "^8.8.2", - "aria-query": "^5.2.1", - "axobject-query": "^3.2.1", - "code-red": "^1.0.3", - "css-tree": "^2.3.1", - "estree-walker": "^3.0.3", - "is-reference": "^3.0.1", - "locate-character": "^3.0.0", - "magic-string": "^0.30.0", - "periscopic": "^3.1.0" - }, - "devDependencies": { - "@playwright/test": "^1.34.3", - "@rollup/plugin-commonjs": "^24.1.0", - "@rollup/plugin-json": "^6.0.0", - "@rollup/plugin-node-resolve": "^15.0.2", - "@sveltejs/eslint-config": "^6.0.4", - "@types/aria-query": "^5.0.1", - "@types/estree": "^1.0.1", - "@types/node": "^14.14.31", - "agadoo": "^3.0.0", - "dts-buddy": "^0.1.7", - "esbuild": "^0.17.19", - "happy-dom": "^9.18.3", - "jsdom": "^21.1.1", - "kleur": "^4.1.5", - "rollup": "^3.20.2", - "source-map": "^0.7.4", - "tiny-glob": "^0.2.9", - "typescript": "^5.0.4", - "vitest": "^0.31.1" - } + "name": "svelte", + "version": "4.0.0-next.2", + "description": "Cybernetically enhanced web apps", + "type": "module", + "module": "src/runtime/index.js", + "main": "src/runtime/index.js", + "files": [ + "src", + "types", + "compiler.*", + "register.js", + "index.d.ts", + "store.d.ts", + "animate.d.ts", + "transition.d.ts", + "easing.d.ts", + "motion.d.ts", + "action.d.ts", + "elements.d.ts", + "README.md" + ], + "exports": { + "./package.json": "./package.json", + ".": { + "types": "./types/index.d.ts", + "browser": { + "import": "./src/runtime/index.js" + }, + "import": "./src/runtime/ssr.js" + }, + "./compiler": { + "types": "./types/index.d.ts", + "import": "./src/compiler/index.js", + "require": "./compiler.cjs" + }, + "./action": { + "types": "./types/index.d.ts" + }, + "./animate": { + "types": "./types/index.d.ts", + "import": "./src/runtime/animate/index.js" + }, + "./easing": { + "types": "./types/index.d.ts", + "import": "./src/runtime/easing/index.js" + }, + "./internal": { + "import": "./src/runtime/internal/index.js" + }, + "./motion": { + "types": "./types/index.d.ts", + "import": "./src/runtime/motion/index.js" + }, + "./store": { + "types": "./types/index.d.ts", + "import": "./src/runtime/store/index.js" + }, + "./transition": { + "types": "./types/index.d.ts", + "import": "./src/runtime/transition/index.js" + }, + "./elements": { + "types": "./elements.d.ts" + } + }, + "engines": { + "node": ">=16" + }, + "types": "types/index.d.ts", + "scripts": { + "format": "prettier . --cache --plugin-search-dir=. --write", + "check": "prettier . --cache --plugin-search-dir=. --check", + "test": "vitest run && echo \"manually check that there are no type errors in test/types by opening the files in there\"", + "build": "rollup -c && pnpm types", + "generate:version": "node ./scripts/generate-version.js", + "dev": "rollup -cw", + "posttest": "agadoo src/internal/index.js", + "prepublishOnly": "pnpm build", + "types": "node ./scripts/generate-dts.js", + "lint": "eslint \"{src,test}/**/*.{ts,js}\" --cache" + }, + "repository": { + "type": "git", + "url": "https://github.com/sveltejs/svelte.git", + "directory": "packages/svelte" + }, + "keywords": [ + "UI", + "framework", + "templates", + "templating" + ], + "author": "Rich Harris", + "license": "MIT", + "bugs": { + "url": "https://github.com/sveltejs/svelte/issues" + }, + "homepage": "https://svelte.dev", + "dependencies": { + "@ampproject/remapping": "^2.2.1", + "@jridgewell/sourcemap-codec": "^1.4.15", + "@jridgewell/trace-mapping": "^0.3.18", + "acorn": "^8.8.2", + "aria-query": "^5.2.1", + "axobject-query": "^3.2.1", + "code-red": "^1.0.3", + "css-tree": "^2.3.1", + "estree-walker": "^3.0.3", + "is-reference": "^3.0.1", + "locate-character": "^3.0.0", + "magic-string": "^0.30.0", + "periscopic": "^3.1.0" + }, + "devDependencies": { + "@playwright/test": "^1.34.3", + "@rollup/plugin-commonjs": "^24.1.0", + "@rollup/plugin-json": "^6.0.0", + "@rollup/plugin-node-resolve": "^15.0.2", + "@sveltejs/eslint-config": "^6.0.4", + "@types/aria-query": "^5.0.1", + "@types/estree": "^1.0.1", + "@types/node": "^14.14.31", + "agadoo": "^3.0.0", + "dts-buddy": "^0.1.7", + "esbuild": "^0.17.19", + "happy-dom": "^9.18.3", + "jsdom": "^21.1.1", + "kleur": "^4.1.5", + "rollup": "^3.20.2", + "source-map": "^0.7.4", + "tiny-glob": "^0.2.9", + "typescript": "^5.0.4", + "vitest": "^0.31.1" + } } From f0ff44369a2fa2a7c95a16ec8e58af38b481e2f6 Mon Sep 17 00:00:00 2001 From: Simon Holthausen Date: Thu, 22 Jun 2023 11:58:40 +0200 Subject: [PATCH 9/9] fix comment --- .../samples/element-source-location-preprocessed/_config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/svelte/test/runtime/samples/element-source-location-preprocessed/_config.js b/packages/svelte/test/runtime/samples/element-source-location-preprocessed/_config.js index de202df56cac..d132db01417c 100644 --- a/packages/svelte/test/runtime/samples/element-source-location-preprocessed/_config.js +++ b/packages/svelte/test/runtime/samples/element-source-location-preprocessed/_config.js @@ -27,7 +27,7 @@ export default { file: path.relative(process.cwd(), path.resolve(__dirname, 'main.svelte')), line: 5, // line 4 in main.svelte, but that's the preprocessed code, the original code is above in the fake preprocessor column: 1, // line 0 in main.svelte, but that's the preprocessed code, the original code is above in the fake preprocessor - char: 38 // TODO this is wrong but we can't backtrace it due to limitations, see meta_locate function comment for more info + char: 38 // TODO this is wrong but we can't backtrace it due to limitations, see add_location function usage comment for more info }); } };