From e66c03f9d233fc408f2443c355c964fa368d2f0d Mon Sep 17 00:00:00 2001 From: Ignatius Bagus Date: Thu, 2 Nov 2023 14:37:59 +0700 Subject: [PATCH 01/54] docs: use the chrome web store badge (#171) --- README.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 268b1b1..54d64a0 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,11 @@ # Svelte DevTools -[![Chrome Web Store](https://img.shields.io/chrome-web-store/users/kfidecgcdjjfpeckbblhmfkhmlgecoff?color=blue&label=Chrome)](https://chrome.google.com/webstore/detail/svelte-devtools/kfidecgcdjjfpeckbblhmfkhmlgecoff) + + + + Chrome Web Store + + Svelte DevTools is a Chrome extension for the [Svelte](https://svelte.dev/) framework. It allows you to inspect the Svelte state and component hierarchies in the Developer Tools. From 526808fe7eeec18f21fd7a59d38954f9276bc9fa Mon Sep 17 00:00:00 2001 From: Ignatius Bagus Date: Thu, 2 Nov 2023 14:38:25 +0700 Subject: [PATCH 02/54] feat: create zip bundling workflow (#172) --- .github/workflows/release.yaml | 36 ++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 .github/workflows/release.yaml diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml new file mode 100644 index 0000000..d05a76d --- /dev/null +++ b/.github/workflows/release.yaml @@ -0,0 +1,36 @@ +name: REL + +on: + push: + branches: [master] + pull_request: + +jobs: + bundle: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + - uses: pnpm/action-setup@v2 + - uses: actions/setup-node@v3 + with: + node-version: 18 + cache: pnpm + + - run: pnpm install + - run: pnpm build + - run: cd build && zip -r svelte-devtools-${{ github.sha }} * + + - uses: actions/upload-artifact@v3 + with: + name: extension-${{ github.sha }} + path: build/svelte-devtools-${{ github.sha }}.zip + + # publish: + # runs-on: ubuntu-latest + # needs: bundle + + # steps: + # - uses: actions/download-artifact@v3 + # with: + # name: extension-${{ github.sha }} From 57ccb049a140e1290c15d7a6e3af7c69b3b452ee Mon Sep 17 00:00:00 2001 From: Ignatius Bagus Date: Thu, 2 Nov 2023 16:34:34 +0700 Subject: [PATCH 03/54] ~ v2.0.1 --- static/manifest.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/static/manifest.json b/static/manifest.json index 27c497b..bb5b8fa 100644 --- a/static/manifest.json +++ b/static/manifest.json @@ -1,7 +1,7 @@ { "manifest_version": 3, "name": "Svelte DevTools", - "version": "2.0.0", + "version": "2.0.1", "description": "Browser DevTools extension for debugging Svelte applications.", "icons": { "16": "icons/default-16.png", From 592a9f4d745758693d8900ff4f9f274367d2aef1 Mon Sep 17 00:00:00 2001 From: Ignatius Bagus Date: Wed, 15 Nov 2023 16:36:38 +0700 Subject: [PATCH 04/54] refactor: standardize messaging format (#173) --- src/client/index.js | 16 ++++++++-------- src/lib/nodes/Node.svelte | 2 +- src/lib/runtime.ts | 16 ++++++++-------- src/routes/+layout.svelte | 4 ++-- src/routes/ConnectMessage.svelte | 2 +- src/routes/PickerButton.svelte | 4 ++-- src/routes/ProfileButton.svelte | 2 +- static/background.js | 32 +++++++++++++++++++------------- static/register.js | 2 +- static/sensor.js | 2 +- 10 files changed, 44 insertions(+), 38 deletions(-) diff --git a/src/client/index.js b/src/client/index.js index 8d3b8d0..20a2c1c 100644 --- a/src/client/index.js +++ b/src/client/index.js @@ -19,18 +19,18 @@ window.addEventListener('message', ({ data, source }) => { // only accept messages from our application or script if (source !== window || data?.source !== 'svelte-devtools') return; - if (data.type === 'ext/select') { + if (data.type === 'bridge::ext/select') { const node = getNode(data.payload); // @ts-expect-error - saved for `inspect()` if (node) window.$n = node.detail; - } else if (data.type === 'ext/highlight') { + } else if (data.type === 'bridge::ext/highlight') { const node = getNode(data.payload); return highlight(node); } // --- TODO: cleanup/implement below --- - // case 'ext/inspect': { + // case 'bridge::ext/inspect': { // console.log(data.payload, data.payload instanceof HTMLElement); // /** @param {MouseEvent} event */ // const move = ({ target }) => highlight({ type: 'element', detail: target }); @@ -54,7 +54,7 @@ window.addEventListener('message', ({ data, source }) => { // return highlight(undefined); // } - // case 'ext/profiler': { + // case 'bridge::ext/profiler': { // return data.payload ? startProfiler() : stopProfiler(); // } @@ -185,7 +185,7 @@ function send(type, payload) { addListener({ add(node, anchor) { - send('courier/node:add', { + send('bridge::courier/node->add', { node: serialize(node), target: node.parent?.id ?? null, anchor: anchor?.id ?? null, @@ -193,14 +193,14 @@ addListener({ }, remove(node) { - send('courier/node:remove', { node: serialize(node) }); + send('bridge::courier/node->remove', { node: serialize(node) }); }, update(node) { - send('courier/node:update', { node: serialize(node) }); + send('bridge::courier/node->update', { node: serialize(node) }); }, profile(/** frame */) { - // send('courier/profile:update', { frame }); + // send('bridge::courier/profile->update', { frame }); }, }); diff --git a/src/lib/nodes/Node.svelte b/src/lib/nodes/Node.svelte index 3133ad4..89bee21 100644 --- a/src/lib/nodes/Node.svelte +++ b/src/lib/nodes/Node.svelte @@ -38,7 +38,7 @@ on:click|stopPropagation={() => selected.set(node)} on:mousemove|stopPropagation={() => { if ($hovered?.id === node.id) return; - background.send('ext/highlight', node.id); + background.send('bridge::ext/highlight', node.id); hovered.set(node); }} > diff --git a/src/lib/runtime.ts b/src/lib/runtime.ts index 993ed27..a6421b0 100644 --- a/src/lib/runtime.ts +++ b/src/lib/runtime.ts @@ -3,10 +3,10 @@ import { type DebugNode, hovered, root, selected } from './store'; const tabId = chrome.devtools.inspectedWindow.tabId; const port = chrome.runtime.connect({ name: `${tabId}` }); -port.postMessage({ source: 'svelte-devtools', tabId, type: 'ext/init' }); +port.postMessage({ source: 'svelte-devtools', tabId, type: 'bypass::ext/init' }); export const background = { - send(type: `${'ext' | 'page'}/${string}`, payload?: any) { + send(type: `bridge::${'ext' | 'page'}/${string}` | 'bypass::ext/page->refresh', payload?: any) { port.postMessage({ source: 'svelte-devtools', tabId, type, payload }); }, }; @@ -39,18 +39,18 @@ function resolveEventBubble(node: any) { port.onMessage.addListener(({ type, payload }) => { switch (type) { - case 'ext/clear': { + case 'bridge::ext/clear': { selected.set(undefined); hovered.set(undefined); return root.set([]); } - case 'ext/inspect': { + case 'bridge::ext/inspect': { const current = nodes.get(payload.node.id); return selected.set(current); } - case 'courier/node:add': { + case 'bridge::courier/node->add': { const { node, target, anchor } = payload as { node: DebugNode; target: null | number; @@ -73,7 +73,7 @@ port.onMessage.addListener(({ type, payload }) => { return (node.parent = parent).invalidate(); } - case 'courier/node:remove': { + case 'bridge::courier/node->remove': { const node = payload.node as SvelteBlockDetail; const current = nodes.get(node.id); if (current) nodes.delete(current.id); @@ -84,7 +84,7 @@ port.onMessage.addListener(({ type, payload }) => { return current.parent.invalidate(); } - case 'courier/node:update': { + case 'bridge::courier/node->update': { const node = payload.node as SvelteBlockDetail; const current = nodes.get(node.id); if (!current) return; @@ -95,7 +95,7 @@ port.onMessage.addListener(({ type, payload }) => { return current.invalidate(); } - // case 'courier/profile:update': { + // case 'bridge::courier/profile->update': { // resolveFrame(frame); // profileFrame.set(frame); // break; diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index 02b5166..a3b0866 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -18,7 +18,7 @@ import { hovered, root, selected, visibility } from '$lib/store'; $: if ($selected) { - background.send('ext/select', $selected.id); + background.send('bridge::ext/select', $selected.id); let current = $selected; let invalid = null; @@ -32,7 +32,7 @@ } function reset() { - background.send('ext/highlight', null); + background.send('bridge::ext/highlight', null); hovered.set(undefined); } diff --git a/src/routes/ConnectMessage.svelte b/src/routes/ConnectMessage.svelte index 753cdb8..dc37a9c 100644 --- a/src/routes/ConnectMessage.svelte +++ b/src/routes/ConnectMessage.svelte @@ -7,7 +7,7 @@

No Svelte app detected - +

diff --git a/src/routes/PickerButton.svelte b/src/routes/PickerButton.svelte index e792d86..68f15b1 100644 --- a/src/routes/PickerButton.svelte +++ b/src/routes/PickerButton.svelte @@ -9,7 +9,7 @@ function click() { if (active) { active = false; - background.send('ext/inspect', 'stop'); + background.send('bridge::ext/inspect', 'stop'); return; } @@ -24,7 +24,7 @@ }, 120); }); active = true; - background.send('ext/inspect', 'start'); + background.send('bridge::ext/inspect', 'start'); } diff --git a/src/routes/ProfileButton.svelte b/src/routes/ProfileButton.svelte index 2ef7830..9cc0e64 100644 --- a/src/routes/ProfileButton.svelte +++ b/src/routes/ProfileButton.svelte @@ -5,7 +5,7 @@ let enabled = false; - diff --git a/src/lib/nodes/ElementAttributes.svelte b/src/lib/nodes/ElementAttributes.svelte index c76a41e..d989fbc 100644 --- a/src/lib/nodes/ElementAttributes.svelte +++ b/src/lib/nodes/ElementAttributes.svelte @@ -1,24 +1,27 @@ -{#each attributes as { key, value, bounded, flash } (key)} +{#each attributes as { key, value, bounded } (key)} {@const prefix = bounded ? 'bind:' : ''}   - + diff --git a/src/lib/nodes/Ellipsis.svelte b/src/lib/nodes/Ellipsis.svelte index 9edc0e8..7ee9cbd 100644 --- a/src/lib/nodes/Ellipsis.svelte +++ b/src/lib/nodes/Ellipsis.svelte @@ -1,4 +1,12 @@ - + + + diff --git a/src/lib/panel/PropertyList.svelte b/src/lib/panel/PropertyList.svelte index 98ec3c3..e05f678 100644 --- a/src/lib/panel/PropertyList.svelte +++ b/src/lib/panel/PropertyList.svelte @@ -1,37 +1,102 @@ {#if entries.length}
    - {#each entries as { key, value } (key)} - change(key, updated)} - /> + {#each entries as { key, value, readonly = false } (key)} + {@const id = `${app.selected?.id}+${keys.join('.')}.${key}`} + {@const type = typeof value} + + + +
  • { + event.stopPropagation(); + expanded = !expanded; + }} + > + {key}: +   + + {#if type === 'string'} + inject([...keys, key], updated)} + /> + {:else if value == null || value !== value} + inject([...keys, key], updated)} + /> + {:else if type === 'number' || type === 'boolean'} + inject([...keys, key], updated)} + /> + {:else if Array.isArray(value)} + Array [{value.length || ''}] + + {#if value.length && expanded} + {@const entries = value.map((v, i) => ({ key: `${i}`, value: v, readonly }))} + + + {/if} + {:else if type === 'object'} + {#if value.__is === 'function'} + function {value.name || ''}() + {#if expanded}
    {value.source}
    {/if} + {:else if value.__is === 'symbol'} + {value.name || 'Symbol()'} + {:else if Object.keys(value).length} + Object {…} + + {#if expanded} + {@const entries = Object.entries(value).map(([key, v]) => { + return { key, value: v, readonly }; + })} + + + {/if} + {:else} + Object { } + {/if} + {/if} +
  • {/each}
{:else} @@ -40,9 +105,38 @@ diff --git a/src/lib/panel/core.svelte.ts b/src/lib/panel/core.svelte.ts new file mode 100644 index 0000000..3865e1a --- /dev/null +++ b/src/lib/panel/core.svelte.ts @@ -0,0 +1,17 @@ +import { app } from '$lib/state.svelte'; + +export const errors = $state<{ [keys: string]: string | false }>({}); + +export function inject(keys: string[], value: any) { + const uuid = app.selected?.id; + if (!uuid) return; + + const accessors = `[${keys.map((k) => `'${k}'`).join(', ')}]`; + chrome.devtools.inspectedWindow.eval( + `window['#SvelteDevTools'].inject('${uuid}', ${accessors}, ${value})`, + (_, error) => { + const id = `${uuid}+${keys.join('.')}`; + errors[id] = error?.isException && error.value.slice(0, error.value.indexOf('\n')); + }, + ); +} diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index c095369..19ceea2 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -146,28 +146,28 @@ {#if app.selected?.type === 'component'}

Props

- +

Events

- +

State

- + {:else if app.selected?.type === 'block' || app.selected?.type === 'iteration'}

State

- + {:else if app.selected?.type === 'element'}

Attributes

- +

Events

- + {/if} {:else} From 42569b0f4da27189b1120792c3c3afb02888ae66 Mon Sep 17 00:00:00 2001 From: Ignatius Bagus Date: Wed, 24 Apr 2024 15:18:49 +0700 Subject: [PATCH 28/54] meta: setup monorepo (#208) --- .github/workflows/release.yaml | 6 +- .gitignore | 4 - package.json | 25 +- pnpm-lock.yaml | 734 +++++++++++++++--- pnpm-workspace.yaml | 2 + workspace/extension/.gitignore | 4 + index.html => workspace/extension/index.html | 0 workspace/extension/package.json | 20 + .../extension/rollup.config.js | 0 .../extension/src/App.svelte | 12 +- {src => workspace/extension/src}/app.css | 0 {src => workspace/extension/src}/app.d.ts | 0 .../extension/src}/client/core.js | 0 .../extension/src}/client/highlight.js | 0 .../extension/src}/client/runtime.js | 0 .../extension/src}/client/svelte-4.js | 0 .../extension/src}/client/utils.js | 0 {src => workspace/extension/src}/entry.ts | 2 +- .../src}/lib/components/Button.svelte | 0 .../src}/lib/components/Divider.svelte | 0 .../src}/lib/components/Indexer.svelte | 0 .../src}/lib/components/Relative.svelte | 0 .../src}/lib/components/Resizable.svelte | 0 .../src}/lib/components/Toolbar.svelte | 0 .../extension/src}/lib/nodes/Block.svelte | 0 .../extension/src}/lib/nodes/Element.svelte | 0 .../src}/lib/nodes/ElementAttributes.svelte | 0 .../extension/src}/lib/nodes/Ellipsis.svelte | 0 .../extension/src}/lib/nodes/Iteration.svelte | 0 .../extension/src}/lib/nodes/Node.svelte | 0 .../extension/src}/lib/nodes/Slot.svelte | 0 .../extension/src}/lib/panel/Editable.svelte | 0 .../src}/lib/panel/PropertyList.svelte | 0 .../extension/src}/lib/panel/core.svelte.ts | 0 .../extension/src}/lib/runtime.svelte.ts | 0 .../extension/src}/lib/state.svelte.ts | 0 .../extension/src}/routes/Breadcrumbs.svelte | 0 .../src}/routes/ConnectMessage.svelte | 0 .../extension/src}/routes/Inspector.svelte | 0 .../src}/routes/ProfileButton.svelte | 0 .../extension/src}/routes/Profiler.svelte | 0 .../src}/routes/ProfilerFrame.svelte | 0 .../extension/src}/routes/SearchBox.svelte | 0 .../src}/routes/VisibilitySelection.svelte | 0 .../extension/static}/background.js | 0 .../extension/static}/icons/default-128.png | Bin .../extension/static}/icons/default-16.png | Bin .../extension/static}/icons/default-24.png | Bin .../extension/static}/icons/default-48.png | Bin .../extension/static}/icons/default-96.png | Bin .../extension/static}/icons/disabled-128.png | Bin .../extension/static}/icons/disabled-16.png | Bin .../extension/static}/icons/disabled-24.png | Bin .../extension/static}/icons/disabled-48.png | Bin .../extension/static}/icons/disabled-96.png | Bin .../extension/static}/icons/svelte-dark.svg | 0 .../static}/icons/svelte-default.svg | 0 .../static}/icons/svelte-disabled.svg | 0 .../extension/static}/icons/svelte.svg | 0 .../extension/static}/manifest.json | 0 .../extension/static}/register.html | 0 .../extension/static}/register.js | 0 .../extension/svelte.config.js | 0 .../extension/tsconfig.json | 0 .../extension/vite.config.ts | 0 workspace/website/.gitignore | 2 + workspace/website/package.json | 16 + workspace/website/svelte.config.js | 13 + workspace/website/tsconfig.json | 6 + workspace/website/vite.config.ts | 8 + 70 files changed, 693 insertions(+), 161 deletions(-) create mode 100644 pnpm-workspace.yaml create mode 100644 workspace/extension/.gitignore rename index.html => workspace/extension/index.html (100%) create mode 100644 workspace/extension/package.json rename rollup.config.js => workspace/extension/rollup.config.js (100%) rename src/routes/+layout.svelte => workspace/extension/src/App.svelte (93%) rename {src => workspace/extension/src}/app.css (100%) rename {src => workspace/extension/src}/app.d.ts (100%) rename {src => workspace/extension/src}/client/core.js (100%) rename {src => workspace/extension/src}/client/highlight.js (100%) rename {src => workspace/extension/src}/client/runtime.js (100%) rename {src => workspace/extension/src}/client/svelte-4.js (100%) rename {src => workspace/extension/src}/client/utils.js (100%) rename {src => workspace/extension/src}/entry.ts (86%) rename {src => workspace/extension/src}/lib/components/Button.svelte (100%) rename {src => workspace/extension/src}/lib/components/Divider.svelte (100%) rename {src => workspace/extension/src}/lib/components/Indexer.svelte (100%) rename {src => workspace/extension/src}/lib/components/Relative.svelte (100%) rename {src => workspace/extension/src}/lib/components/Resizable.svelte (100%) rename {src => workspace/extension/src}/lib/components/Toolbar.svelte (100%) rename {src => workspace/extension/src}/lib/nodes/Block.svelte (100%) rename {src => workspace/extension/src}/lib/nodes/Element.svelte (100%) rename {src => workspace/extension/src}/lib/nodes/ElementAttributes.svelte (100%) rename {src => workspace/extension/src}/lib/nodes/Ellipsis.svelte (100%) rename {src => workspace/extension/src}/lib/nodes/Iteration.svelte (100%) rename {src => workspace/extension/src}/lib/nodes/Node.svelte (100%) rename {src => workspace/extension/src}/lib/nodes/Slot.svelte (100%) rename {src => workspace/extension/src}/lib/panel/Editable.svelte (100%) rename {src => workspace/extension/src}/lib/panel/PropertyList.svelte (100%) rename {src => workspace/extension/src}/lib/panel/core.svelte.ts (100%) rename {src => workspace/extension/src}/lib/runtime.svelte.ts (100%) rename {src => workspace/extension/src}/lib/state.svelte.ts (100%) rename {src => workspace/extension/src}/routes/Breadcrumbs.svelte (100%) rename {src => workspace/extension/src}/routes/ConnectMessage.svelte (100%) rename {src => workspace/extension/src}/routes/Inspector.svelte (100%) rename {src => workspace/extension/src}/routes/ProfileButton.svelte (100%) rename {src => workspace/extension/src}/routes/Profiler.svelte (100%) rename {src => workspace/extension/src}/routes/ProfilerFrame.svelte (100%) rename {src => workspace/extension/src}/routes/SearchBox.svelte (100%) rename {src => workspace/extension/src}/routes/VisibilitySelection.svelte (100%) rename {static => workspace/extension/static}/background.js (100%) rename {static => workspace/extension/static}/icons/default-128.png (100%) rename {static => workspace/extension/static}/icons/default-16.png (100%) rename {static => workspace/extension/static}/icons/default-24.png (100%) rename {static => workspace/extension/static}/icons/default-48.png (100%) rename {static => workspace/extension/static}/icons/default-96.png (100%) rename {static => workspace/extension/static}/icons/disabled-128.png (100%) rename {static => workspace/extension/static}/icons/disabled-16.png (100%) rename {static => workspace/extension/static}/icons/disabled-24.png (100%) rename {static => workspace/extension/static}/icons/disabled-48.png (100%) rename {static => workspace/extension/static}/icons/disabled-96.png (100%) rename {static => workspace/extension/static}/icons/svelte-dark.svg (100%) rename {static => workspace/extension/static}/icons/svelte-default.svg (100%) rename {static => workspace/extension/static}/icons/svelte-disabled.svg (100%) rename {static => workspace/extension/static}/icons/svelte.svg (100%) rename {static => workspace/extension/static}/manifest.json (100%) rename {static => workspace/extension/static}/register.html (100%) rename {static => workspace/extension/static}/register.js (100%) rename svelte.config.js => workspace/extension/svelte.config.js (100%) rename tsconfig.json => workspace/extension/tsconfig.json (100%) rename vite.config.ts => workspace/extension/vite.config.ts (100%) create mode 100644 workspace/website/.gitignore create mode 100644 workspace/website/package.json create mode 100644 workspace/website/svelte.config.js create mode 100644 workspace/website/tsconfig.json create mode 100644 workspace/website/vite.config.ts diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 1566107..81b15c8 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -18,13 +18,13 @@ jobs: cache: pnpm - run: pnpm install - - run: pnpm build - - run: cd build && zip -r svelte-devtools * + - run: cd workspace/extension && pnpm build + - run: cd workspace/extension/build && zip -r svelte-devtools * - uses: actions/upload-artifact@v3 with: name: extension-${{ github.sha }} - path: build/svelte-devtools.zip + path: workspace/extension/build/svelte-devtools.zip # publish: # runs-on: ubuntu-latest diff --git a/.gitignore b/.gitignore index 5a599fd..aaa9ce1 100644 --- a/.gitignore +++ b/.gitignore @@ -1,9 +1,5 @@ node_modules -/build .DS_Store .cache .env - -# generated files -static/courier.js diff --git a/package.json b/package.json index 2644c4a..c42e1ce 100644 --- a/package.json +++ b/package.json @@ -2,29 +2,20 @@ "private": true, "type": "module", "scripts": { - "dev": "pnpm run --parallel \"/dev:*/\"", - "dev:app": "vite build -wd --minify=false --sourcemap=inline", - "dev:scripts": "rollup -cw", - "build": "rollup -c && vite build", - "bundle:zip": "cd build && zip -r svelte-devtools.zip *", - "bundle:tar": "cd build && tar -czf svelte-devtools.tar.gz *", - "format": "prettier -w .", - "check": "pnpm run --parallel \"/check:*/\"", - "check:style": "prettier -c .", - "check:svelte": "svelte-check --tsconfig ./tsconfig.json" + "clean": "git add * && git clean -dfx -e node_modules", + "check": "pnpm --filter \"./workspace/*\" check", + "format": "pnpm --filter \"./workspace/*\" format" }, "packageManager": "pnpm@8.15.6", "devDependencies": { - "@sveltejs/vite-plugin-svelte": "^3.0.2", - "@types/chrome": "^0.0.263", - "@types/node": "^20.12.2", + "@sveltejs/vite-plugin-svelte": "^3.1.0", + "@types/node": "^20.12.7", "prettier": "^3.2.5", "prettier-plugin-sort-package-json": "^0.2.0", - "prettier-plugin-svelte": "^3.2.2", - "rollup": "^4.13.2", + "prettier-plugin-svelte": "^3.2.3", "svelte": "5.0.0-next.90", "svelte-check": "^3.6.9", - "typescript": "^5.4.3", - "vite": "^5.2.7" + "typescript": "^5.4.5", + "vite": "^5.2.9" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f270a5e..0c13cae 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,40 +4,55 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false -devDependencies: - '@sveltejs/vite-plugin-svelte': - specifier: ^3.0.2 - version: 3.0.2(svelte@5.0.0-next.90)(vite@5.2.7) - '@types/chrome': - specifier: ^0.0.263 - version: 0.0.263 - '@types/node': - specifier: ^20.12.2 - version: 20.12.3 - prettier: - specifier: ^3.2.5 - version: 3.2.5 - prettier-plugin-sort-package-json: - specifier: ^0.2.0 - version: 0.2.0(prettier@3.2.5) - prettier-plugin-svelte: - specifier: ^3.2.2 - version: 3.2.2(prettier@3.2.5)(svelte@5.0.0-next.90) - rollup: - specifier: ^4.13.2 - version: 4.13.2 - svelte: - specifier: 5.0.0-next.90 - version: 5.0.0-next.90 - svelte-check: - specifier: ^3.6.9 - version: 3.6.9(svelte@5.0.0-next.90) - typescript: - specifier: ^5.4.3 - version: 5.4.3 - vite: - specifier: ^5.2.7 - version: 5.2.7(@types/node@20.12.3) +importers: + + .: + devDependencies: + '@sveltejs/vite-plugin-svelte': + specifier: ^3.1.0 + version: 3.1.0(svelte@5.0.0-next.90)(vite@5.2.9) + '@types/node': + specifier: ^20.12.7 + version: 20.12.7 + prettier: + specifier: ^3.2.5 + version: 3.2.5 + prettier-plugin-sort-package-json: + specifier: ^0.2.0 + version: 0.2.0(prettier@3.2.5) + prettier-plugin-svelte: + specifier: ^3.2.3 + version: 3.2.3(prettier@3.2.5)(svelte@5.0.0-next.90) + svelte: + specifier: 5.0.0-next.90 + version: 5.0.0-next.90 + svelte-check: + specifier: ^3.6.9 + version: 3.6.9(svelte@5.0.0-next.90) + typescript: + specifier: ^5.4.5 + version: 5.4.5 + vite: + specifier: ^5.2.9 + version: 5.2.9(@types/node@20.12.7) + + workspace/extension: + devDependencies: + '@types/chrome': + specifier: ^0.0.266 + version: 0.0.266 + rollup: + specifier: ^4.14.3 + version: 4.14.3 + + workspace/website: + devDependencies: + '@sveltejs/adapter-vercel': + specifier: ^5.3.0 + version: 5.3.0(@sveltejs/kit@2.5.6) + '@sveltejs/kit': + specifier: ^2.5.6 + version: 2.5.6(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@5.0.0-next.90)(vite@5.2.9) packages: @@ -286,6 +301,24 @@ packages: '@jridgewell/sourcemap-codec': 1.4.15 dev: true + /@mapbox/node-pre-gyp@1.0.11: + resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==} + hasBin: true + dependencies: + detect-libc: 2.0.3 + https-proxy-agent: 5.0.1 + make-dir: 3.1.0 + node-fetch: 2.7.0 + nopt: 5.0.0 + npmlog: 5.0.1 + rimraf: 3.0.2 + semver: 7.6.0 + tar: 6.2.1 + transitivePeerDependencies: + - encoding + - supports-color + dev: true + /@nodelib/fs.scandir@2.1.5: resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -307,175 +340,239 @@ packages: fastq: 1.17.1 dev: true - /@rollup/rollup-android-arm-eabi@4.13.2: - resolution: {integrity: sha512-3XFIDKWMFZrMnao1mJhnOT1h2g0169Os848NhhmGweEcfJ4rCi+3yMCOLG4zA61rbJdkcrM/DjVZm9Hg5p5w7g==} + /@polka/url@1.0.0-next.25: + resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==} + dev: true + + /@rollup/pluginutils@4.2.1: + resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} + engines: {node: '>= 8.0.0'} + dependencies: + estree-walker: 2.0.2 + picomatch: 2.3.1 + dev: true + + /@rollup/rollup-android-arm-eabi@4.14.3: + resolution: {integrity: sha512-X9alQ3XM6I9IlSlmC8ddAvMSyG1WuHk5oUnXGw+yUBs3BFoTizmG1La/Gr8fVJvDWAq+zlYTZ9DBgrlKRVY06g==} cpu: [arm] os: [android] requiresBuild: true dev: true optional: true - /@rollup/rollup-android-arm64@4.13.2: - resolution: {integrity: sha512-GdxxXbAuM7Y/YQM9/TwwP+L0omeE/lJAR1J+olu36c3LqqZEBdsIWeQ91KBe6nxwOnb06Xh7JS2U5ooWU5/LgQ==} + /@rollup/rollup-android-arm64@4.14.3: + resolution: {integrity: sha512-eQK5JIi+POhFpzk+LnjKIy4Ks+pwJ+NXmPxOCSvOKSNRPONzKuUvWE+P9JxGZVxrtzm6BAYMaL50FFuPe0oWMQ==} cpu: [arm64] os: [android] requiresBuild: true dev: true optional: true - /@rollup/rollup-darwin-arm64@4.13.2: - resolution: {integrity: sha512-mCMlpzlBgOTdaFs83I4XRr8wNPveJiJX1RLfv4hggyIVhfB5mJfN4P8Z6yKh+oE4Luz+qq1P3kVdWrCKcMYrrA==} + /@rollup/rollup-darwin-arm64@4.14.3: + resolution: {integrity: sha512-Od4vE6f6CTT53yM1jgcLqNfItTsLt5zE46fdPaEmeFHvPs5SjZYlLpHrSiHEKR1+HdRfxuzXHjDOIxQyC3ptBA==} cpu: [arm64] os: [darwin] requiresBuild: true dev: true optional: true - /@rollup/rollup-darwin-x64@4.13.2: - resolution: {integrity: sha512-yUoEvnH0FBef/NbB1u6d3HNGyruAKnN74LrPAfDQL3O32e3k3OSfLrPgSJmgb3PJrBZWfPyt6m4ZhAFa2nZp2A==} + /@rollup/rollup-darwin-x64@4.14.3: + resolution: {integrity: sha512-0IMAO21axJeNIrvS9lSe/PGthc8ZUS+zC53O0VhF5gMxfmcKAP4ESkKOCwEi6u2asUrt4mQv2rjY8QseIEb1aw==} cpu: [x64] os: [darwin] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm-gnueabihf@4.13.2: - resolution: {integrity: sha512-GYbLs5ErswU/Xs7aGXqzc3RrdEjKdmoCrgzhJWyFL0r5fL3qd1NPcDKDowDnmcoSiGJeU68/Vy+OMUluRxPiLQ==} + /@rollup/rollup-linux-arm-gnueabihf@4.14.3: + resolution: {integrity: sha512-ge2DC7tHRHa3caVEoSbPRJpq7azhG+xYsd6u2MEnJ6XzPSzQsTKyXvh6iWjXRf7Rt9ykIUWHtl0Uz3T6yXPpKw==} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm-musleabihf@4.14.3: + resolution: {integrity: sha512-ljcuiDI4V3ySuc7eSk4lQ9wU8J8r8KrOUvB2U+TtK0TiW6OFDmJ+DdIjjwZHIw9CNxzbmXY39wwpzYuFDwNXuw==} cpu: [arm] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm64-gnu@4.13.2: - resolution: {integrity: sha512-L1+D8/wqGnKQIlh4Zre9i4R4b4noxzH5DDciyahX4oOz62CphY7WDWqJoQ66zNR4oScLNOqQJfNSIAe/6TPUmQ==} + /@rollup/rollup-linux-arm64-gnu@4.14.3: + resolution: {integrity: sha512-Eci2us9VTHm1eSyn5/eEpaC7eP/mp5n46gTRB3Aar3BgSvDQGJZuicyq6TsH4HngNBgVqC5sDYxOzTExSU+NjA==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm64-musl@4.13.2: - resolution: {integrity: sha512-tK5eoKFkXdz6vjfkSTCupUzCo40xueTOiOO6PeEIadlNBkadH1wNOH8ILCPIl8by/Gmb5AGAeQOFeLev7iZDOA==} + /@rollup/rollup-linux-arm64-musl@4.14.3: + resolution: {integrity: sha512-UrBoMLCq4E92/LCqlh+blpqMz5h1tJttPIniwUgOFJyjWI1qrtrDhhpHPuFxULlUmjFHfloWdixtDhSxJt5iKw==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-powerpc64le-gnu@4.13.2: - resolution: {integrity: sha512-zvXvAUGGEYi6tYhcDmb9wlOckVbuD+7z3mzInCSTACJ4DQrdSLPNUeDIcAQW39M3q6PDquqLWu7pnO39uSMRzQ==} - cpu: [ppc64le] + /@rollup/rollup-linux-powerpc64le-gnu@4.14.3: + resolution: {integrity: sha512-5aRjvsS8q1nWN8AoRfrq5+9IflC3P1leMoy4r2WjXyFqf3qcqsxRCfxtZIV58tCxd+Yv7WELPcO9mY9aeQyAmw==} + cpu: [ppc64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-riscv64-gnu@4.13.2: - resolution: {integrity: sha512-C3GSKvMtdudHCN5HdmAMSRYR2kkhgdOfye4w0xzyii7lebVr4riCgmM6lRiSCnJn2w1Xz7ZZzHKuLrjx5620kw==} + /@rollup/rollup-linux-riscv64-gnu@4.14.3: + resolution: {integrity: sha512-sk/Qh1j2/RJSX7FhEpJn8n0ndxy/uf0kI/9Zc4b1ELhqULVdTfN6HL31CDaTChiBAOgLcsJ1sgVZjWv8XNEsAQ==} cpu: [riscv64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-s390x-gnu@4.13.2: - resolution: {integrity: sha512-l4U0KDFwzD36j7HdfJ5/TveEQ1fUTjFFQP5qIt9gBqBgu1G8/kCaq5Ok05kd5TG9F8Lltf3MoYsUMw3rNlJ0Yg==} + /@rollup/rollup-linux-s390x-gnu@4.14.3: + resolution: {integrity: sha512-jOO/PEaDitOmY9TgkxF/TQIjXySQe5KVYB57H/8LRP/ux0ZoO8cSHCX17asMSv3ruwslXW/TLBcxyaUzGRHcqg==} cpu: [s390x] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-x64-gnu@4.13.2: - resolution: {integrity: sha512-xXMLUAMzrtsvh3cZ448vbXqlUa7ZL8z0MwHp63K2IIID2+DeP5iWIT6g1SN7hg1VxPzqx0xZdiDM9l4n9LRU1A==} + /@rollup/rollup-linux-x64-gnu@4.14.3: + resolution: {integrity: sha512-8ybV4Xjy59xLMyWo3GCfEGqtKV5M5gCSrZlxkPGvEPCGDLNla7v48S662HSGwRd6/2cSneMQWiv+QzcttLrrOA==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-x64-musl@4.13.2: - resolution: {integrity: sha512-M/JYAWickafUijWPai4ehrjzVPKRCyDb1SLuO+ZyPfoXgeCEAlgPkNXewFZx0zcnoIe3ay4UjXIMdXQXOZXWqA==} + /@rollup/rollup-linux-x64-musl@4.14.3: + resolution: {integrity: sha512-s+xf1I46trOY10OqAtZ5Rm6lzHre/UiLA1J2uOhCFXWkbZrJRkYBPO6FhvGfHmdtQ3Bx793MNa7LvoWFAm93bg==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-arm64-msvc@4.13.2: - resolution: {integrity: sha512-2YWwoVg9KRkIKaXSh0mz3NmfurpmYoBBTAXA9qt7VXk0Xy12PoOP40EFuau+ajgALbbhi4uTj3tSG3tVseCjuA==} + /@rollup/rollup-win32-arm64-msvc@4.14.3: + resolution: {integrity: sha512-+4h2WrGOYsOumDQ5S2sYNyhVfrue+9tc9XcLWLh+Kw3UOxAvrfOrSMFon60KspcDdytkNDh7K2Vs6eMaYImAZg==} cpu: [arm64] os: [win32] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-ia32-msvc@4.13.2: - resolution: {integrity: sha512-2FSsE9aQ6OWD20E498NYKEQLneShWes0NGMPQwxWOdws35qQXH+FplabOSP5zEe1pVjurSDOGEVCE2agFwSEsw==} + /@rollup/rollup-win32-ia32-msvc@4.14.3: + resolution: {integrity: sha512-T1l7y/bCeL/kUwh9OD4PQT4aM7Bq43vX05htPJJ46RTI4r5KNt6qJRzAfNfM+OYMNEVBWQzR2Gyk+FXLZfogGw==} cpu: [ia32] os: [win32] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-x64-msvc@4.13.2: - resolution: {integrity: sha512-7h7J2nokcdPePdKykd8wtc8QqqkqxIrUz7MHj6aNr8waBRU//NLDVnNjQnqQO6fqtjrtCdftpbTuOKAyrAQETQ==} + /@rollup/rollup-win32-x64-msvc@4.14.3: + resolution: {integrity: sha512-/BypzV0H1y1HzgYpxqRaXGBRqfodgoBBCcsrujT6QRcakDQdfU+Lq9PENPh5jB4I44YWq+0C2eHsHya+nZY1sA==} cpu: [x64] os: [win32] requiresBuild: true dev: true optional: true - /@sveltejs/vite-plugin-svelte-inspector@2.0.0(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@5.0.0-next.90)(vite@5.2.7): - resolution: {integrity: sha512-gjr9ZFg1BSlIpfZ4PRewigrvYmHWbDrq2uvvPB1AmTWKuM+dI1JXQSUu2pIrYLb/QncyiIGkFDFKTwJ0XqQZZg==} + /@sveltejs/adapter-vercel@5.3.0(@sveltejs/kit@2.5.6): + resolution: {integrity: sha512-JzTJVmAWmbyNe3pQU2l0M1ggt4FjIVnKHEQOrqW4XVxYtNGdq3znuMqFSdzsR+5LaIEFqZaLIpm82XZsZroBoQ==} + peerDependencies: + '@sveltejs/kit': ^2.4.0 + dependencies: + '@sveltejs/kit': 2.5.6(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@5.0.0-next.90)(vite@5.2.9) + '@vercel/nft': 0.26.4 + esbuild: 0.20.2 + transitivePeerDependencies: + - encoding + - supports-color + dev: true + + /@sveltejs/kit@2.5.6(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@5.0.0-next.90)(vite@5.2.9): + resolution: {integrity: sha512-AYb02Jm5MfNqJHc8zrj7ScQAFAKmTUCkpkfoi8EVaZZDdnjkvI7L2GtnTDhpiXSAZRVitZX4qm59sMS1FgL+lQ==} + engines: {node: '>=18.13'} + hasBin: true + requiresBuild: true + peerDependencies: + '@sveltejs/vite-plugin-svelte': ^3.0.0 + svelte: ^4.0.0 || ^5.0.0-next.0 + vite: ^5.0.3 + dependencies: + '@sveltejs/vite-plugin-svelte': 3.1.0(svelte@5.0.0-next.90)(vite@5.2.9) + '@types/cookie': 0.6.0 + cookie: 0.6.0 + devalue: 4.3.2 + esm-env: 1.0.0 + import-meta-resolve: 4.0.0 + kleur: 4.1.5 + magic-string: 0.30.9 + mrmime: 2.0.0 + sade: 1.8.1 + set-cookie-parser: 2.6.0 + sirv: 2.0.4 + svelte: 5.0.0-next.90 + tiny-glob: 0.2.9 + vite: 5.2.9(@types/node@20.12.7) + dev: true + + /@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@5.0.0-next.90)(vite@5.2.9): + resolution: {integrity: sha512-9QX28IymvBlSCqsCll5t0kQVxipsfhFFL+L2t3nTWfXnddYwxBuAEtTtlaVQpRz9c37BhJjltSeY4AJSC03SSg==} engines: {node: ^18.0.0 || >=20} peerDependencies: '@sveltejs/vite-plugin-svelte': ^3.0.0 svelte: ^4.0.0 || ^5.0.0-next.0 vite: ^5.0.0 dependencies: - '@sveltejs/vite-plugin-svelte': 3.0.2(svelte@5.0.0-next.90)(vite@5.2.7) + '@sveltejs/vite-plugin-svelte': 3.1.0(svelte@5.0.0-next.90)(vite@5.2.9) debug: 4.3.4 svelte: 5.0.0-next.90 - vite: 5.2.7(@types/node@20.12.3) + vite: 5.2.9(@types/node@20.12.7) transitivePeerDependencies: - supports-color dev: true - /@sveltejs/vite-plugin-svelte@3.0.2(svelte@5.0.0-next.90)(vite@5.2.7): - resolution: {integrity: sha512-MpmF/cju2HqUls50WyTHQBZUV3ovV/Uk8k66AN2gwHogNAG8wnW8xtZDhzNBsFJJuvmq1qnzA5kE7YfMJNFv2Q==} + /@sveltejs/vite-plugin-svelte@3.1.0(svelte@5.0.0-next.90)(vite@5.2.9): + resolution: {integrity: sha512-sY6ncCvg+O3njnzbZexcVtUqOBE3iYmQPJ9y+yXSkOwG576QI/xJrBnQSRXFLGwJNBa0T78JEKg5cIR0WOAuUw==} engines: {node: ^18.0.0 || >=20} peerDependencies: svelte: ^4.0.0 || ^5.0.0-next.0 vite: ^5.0.0 dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 2.0.0(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@5.0.0-next.90)(vite@5.2.7) + '@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@5.0.0-next.90)(vite@5.2.9) debug: 4.3.4 deepmerge: 4.3.1 kleur: 4.1.5 - magic-string: 0.30.7 + magic-string: 0.30.9 svelte: 5.0.0-next.90 - svelte-hmr: 0.15.3(svelte@5.0.0-next.90) - vite: 5.2.7(@types/node@20.12.3) - vitefu: 0.2.5(vite@5.2.7) + svelte-hmr: 0.16.0(svelte@5.0.0-next.90) + vite: 5.2.9(@types/node@20.12.7) + vitefu: 0.2.5(vite@5.2.9) transitivePeerDependencies: - supports-color dev: true - /@types/chrome@0.0.263: - resolution: {integrity: sha512-As0vzv99ov3M6ZR7R6VzhMWFZXkPMrFrCEXXVrMN576Cm70fTkj7Df2CF+qEo170JepX50pd11cX6O4DSAtl2Q==} + /@types/chrome@0.0.266: + resolution: {integrity: sha512-QSQWJTL7NjZElvq/6/E5C1+pHgEP8UAJzwoz7M4vSJ7AECt6NNehJ+tU6snnvuTqZOBjFCivvitYo5+8tNPmhg==} dependencies: - '@types/filesystem': 0.0.35 + '@types/filesystem': 0.0.36 '@types/har-format': 1.2.15 dev: true + /@types/cookie@0.6.0: + resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} + dev: true + /@types/estree@1.0.5: resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} dev: true - /@types/filesystem@0.0.35: - resolution: {integrity: sha512-1eKvCaIBdrD2mmMgy5dwh564rVvfEhZTWVQQGRNn0Nt4ZEnJ0C8oSUCzvMKRA4lGde5oEVo+q2MrTTbV/GHDCQ==} + /@types/filesystem@0.0.36: + resolution: {integrity: sha512-vPDXOZuannb9FZdxgHnqSwAG/jvdGM8Wq+6N4D/d80z+D4HWH+bItqsZaVRQykAn6WEVeEkLm2oQigyHtgb0RA==} dependencies: '@types/filewriter': 0.0.33 dev: true @@ -488,8 +585,8 @@ packages: resolution: {integrity: sha512-RpQH4rXLuvTXKR0zqHq3go0RVXYv/YVqv4TnPH95VbwUxZdQlK1EtcMvQvMpDngHbt13Csh9Z4qT9AbkiQH5BA==} dev: true - /@types/node@20.12.3: - resolution: {integrity: sha512-sD+ia2ubTeWrOu+YMF+MTAB7E+O7qsMqAbMfW7DG3K1URwhZ5hN1pLlRVGbf4wDFzSfikL05M17EyorS86jShw==} + /@types/node@20.12.7: + resolution: {integrity: sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==} dependencies: undici-types: 5.26.5 dev: true @@ -498,6 +595,40 @@ packages: resolution: {integrity: sha512-Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA==} dev: true + /@vercel/nft@0.26.4: + resolution: {integrity: sha512-j4jCOOXke2t8cHZCIxu1dzKLHLcFmYzC3yqAK6MfZznOL1QIJKd0xcFsXK3zcqzU7ScsE2zWkiMMNHGMHgp+FA==} + engines: {node: '>=16'} + hasBin: true + dependencies: + '@mapbox/node-pre-gyp': 1.0.11 + '@rollup/pluginutils': 4.2.1 + acorn: 8.11.3 + acorn-import-attributes: 1.9.5(acorn@8.11.3) + async-sema: 3.1.1 + bindings: 1.5.0 + estree-walker: 2.0.2 + glob: 7.2.3 + graceful-fs: 4.2.11 + micromatch: 4.0.5 + node-gyp-build: 4.8.0 + resolve-from: 5.0.0 + transitivePeerDependencies: + - encoding + - supports-color + dev: true + + /abbrev@1.1.1: + resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} + dev: true + + /acorn-import-attributes@1.9.5(acorn@8.11.3): + resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} + peerDependencies: + acorn: ^8 + dependencies: + acorn: 8.11.3 + dev: true + /acorn-typescript@1.4.13(acorn@8.11.3): resolution: {integrity: sha512-xsc9Xv0xlVfwp2o7sQ+GCQ1PgbkdcpWdTzrwXxO3xDMTAywVS3oXVOcOHuRjAPkS4P9b+yc/qNF15460v+jp4Q==} peerDependencies: @@ -512,6 +643,20 @@ packages: hasBin: true dev: true + /agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} + dependencies: + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + dev: true + /anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} @@ -520,12 +665,28 @@ packages: picomatch: 2.3.1 dev: true + /aproba@2.0.0: + resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} + dev: true + + /are-we-there-yet@2.0.0: + resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==} + engines: {node: '>=10'} + dependencies: + delegates: 1.0.0 + readable-stream: 3.6.2 + dev: true + /aria-query@5.3.0: resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} dependencies: dequal: 2.0.3 dev: true + /async-sema@3.1.1: + resolution: {integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==} + dev: true + /axobject-query@4.0.0: resolution: {integrity: sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==} dependencies: @@ -536,11 +697,17 @@ packages: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} dev: true - /binary-extensions@2.2.0: - resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + /binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} dev: true + /bindings@1.5.0: + resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} + dependencies: + file-uri-to-path: 1.0.0 + dev: true + /brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: @@ -579,10 +746,29 @@ packages: fsevents: 2.3.3 dev: true + /chownr@2.0.0: + resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} + engines: {node: '>=10'} + dev: true + + /color-support@1.1.3: + resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} + hasBin: true + dev: true + /concat-map@0.0.1: resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} dev: true + /console-control-strings@1.1.0: + resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} + dev: true + + /cookie@0.6.0: + resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} + engines: {node: '>= 0.6'} + dev: true + /debug@4.3.4: resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} engines: {node: '>=6.0'} @@ -600,6 +786,10 @@ packages: engines: {node: '>=0.10.0'} dev: true + /delegates@1.0.0: + resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} + dev: true + /dequal@2.0.3: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} @@ -610,6 +800,19 @@ packages: engines: {node: '>=8'} dev: true + /detect-libc@2.0.3: + resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} + engines: {node: '>=8'} + dev: true + + /devalue@4.3.2: + resolution: {integrity: sha512-KqFl6pOgOW+Y6wJgu80rHpo2/3H07vr8ntR9rkkFIRETewbf5GaYYcakYfiKz89K+sLsuPkQIZaXDMjUObZwWg==} + dev: true + + /emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + dev: true + /es6-promise@3.3.1: resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==} dev: true @@ -656,6 +859,10 @@ packages: '@types/estree': 1.0.5 dev: true + /estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + dev: true + /fast-glob@3.3.2: resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} engines: {node: '>=8.6.0'} @@ -673,6 +880,10 @@ packages: reusify: 1.0.4 dev: true + /file-uri-to-path@1.0.0: + resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} + dev: true + /fill-range@7.0.1: resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} engines: {node: '>=8'} @@ -680,6 +891,13 @@ packages: to-regex-range: 5.0.1 dev: true + /fs-minipass@2.1.0: + resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} + engines: {node: '>= 8'} + dependencies: + minipass: 3.3.6 + dev: true + /fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} dev: true @@ -692,6 +910,21 @@ packages: dev: true optional: true + /gauge@3.0.2: + resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==} + engines: {node: '>=10'} + dependencies: + aproba: 2.0.0 + color-support: 1.1.3 + console-control-strings: 1.1.0 + has-unicode: 2.0.1 + object-assign: 4.1.1 + signal-exit: 3.0.7 + string-width: 4.2.3 + strip-ansi: 6.0.1 + wide-align: 1.1.5 + dev: true + /glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -710,10 +943,32 @@ packages: path-is-absolute: 1.0.1 dev: true + /globalyzer@0.1.0: + resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==} + dev: true + + /globrex@0.1.2: + resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} + dev: true + /graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} dev: true + /has-unicode@2.0.1: + resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} + dev: true + + /https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} + dependencies: + agent-base: 6.0.2 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + /import-fresh@3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} @@ -722,6 +977,10 @@ packages: resolve-from: 4.0.0 dev: true + /import-meta-resolve@4.0.0: + resolution: {integrity: sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==} + dev: true + /inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} dependencies: @@ -737,7 +996,7 @@ packages: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} dependencies: - binary-extensions: 2.2.0 + binary-extensions: 2.3.0 dev: true /is-extglob@2.1.1: @@ -745,6 +1004,11 @@ packages: engines: {node: '>=0.10.0'} dev: true + /is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + dev: true + /is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} @@ -772,20 +1036,27 @@ packages: resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} dev: true - /magic-string@0.30.7: - resolution: {integrity: sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==} - engines: {node: '>=12'} + /lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 + yallist: 4.0.0 dev: true - /magic-string@0.30.8: - resolution: {integrity: sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==} + /magic-string@0.30.9: + resolution: {integrity: sha512-S1+hd+dIrC8EZqKyT9DstTH/0Z+f76kmmvZnkfQVmOpDEF9iVgdYif3Q/pIWHmCoo59bQVGW0kVL3e2nl+9+Sw==} engines: {node: '>=12'} dependencies: '@jridgewell/sourcemap-codec': 1.4.15 dev: true + /make-dir@3.1.0: + resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} + engines: {node: '>=8'} + dependencies: + semver: 6.3.1 + dev: true + /merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} @@ -814,6 +1085,26 @@ packages: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} dev: true + /minipass@3.3.6: + resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} + engines: {node: '>=8'} + dependencies: + yallist: 4.0.0 + dev: true + + /minipass@5.0.0: + resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} + engines: {node: '>=8'} + dev: true + + /minizlib@2.1.2: + resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} + engines: {node: '>= 8'} + dependencies: + minipass: 3.3.6 + yallist: 4.0.0 + dev: true + /mkdirp@0.5.6: resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} hasBin: true @@ -821,11 +1112,22 @@ packages: minimist: 1.2.8 dev: true + /mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + dev: true + /mri@1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} engines: {node: '>=4'} dev: true + /mrmime@2.0.0: + resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} + engines: {node: '>=10'} + dev: true + /ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} dev: true @@ -836,11 +1138,50 @@ packages: hasBin: true dev: true + /node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + dependencies: + whatwg-url: 5.0.0 + dev: true + + /node-gyp-build@4.8.0: + resolution: {integrity: sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==} + hasBin: true + dev: true + + /nopt@5.0.0: + resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==} + engines: {node: '>=6'} + hasBin: true + dependencies: + abbrev: 1.1.1 + dev: true + /normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} dev: true + /npmlog@5.0.1: + resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} + dependencies: + are-we-there-yet: 2.0.0 + console-control-strings: 1.1.0 + gauge: 3.0.2 + set-blocking: 2.0.0 + dev: true + + /object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + dev: true + /once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: @@ -885,8 +1226,8 @@ packages: prettier: 3.2.5 dev: true - /prettier-plugin-svelte@3.2.2(prettier@3.2.5)(svelte@5.0.0-next.90): - resolution: {integrity: sha512-ZzzE/wMuf48/1+Lf2Ffko0uDa6pyCfgHV6+uAhtg2U0AAXGrhCSW88vEJNAkAxW5qyrFY1y1zZ4J8TgHrjW++Q==} + /prettier-plugin-svelte@3.2.3(prettier@3.2.5)(svelte@5.0.0-next.90): + resolution: {integrity: sha512-wJq8RunyFlWco6U0WJV5wNCM7zpBFakS76UBSbmzMGpncpK98NZABaE+s7n8/APDCEVNHXC5Mpq+MLebQtsRlg==} peerDependencies: prettier: ^3.0.0 svelte: ^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0 @@ -905,6 +1246,15 @@ packages: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} dev: true + /readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + dev: true + /readdirp@3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} @@ -917,6 +1267,11 @@ packages: engines: {node: '>=4'} dev: true + /resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + dev: true + /reusify@1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} @@ -929,28 +1284,36 @@ packages: glob: 7.2.3 dev: true - /rollup@4.13.2: - resolution: {integrity: sha512-MIlLgsdMprDBXC+4hsPgzWUasLO9CE4zOkj/u6j+Z6j5A4zRY+CtiXAdJyPtgCsc42g658Aeh1DlrdVEJhsL2g==} + /rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true + dependencies: + glob: 7.2.3 + dev: true + + /rollup@4.14.3: + resolution: {integrity: sha512-ag5tTQKYsj1bhrFC9+OEWqb5O6VYgtQDO9hPDBMmIbePwhfSr+ExlcU741t8Dhw5DkPCQf6noz0jb36D6W9/hw==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true dependencies: '@types/estree': 1.0.5 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.13.2 - '@rollup/rollup-android-arm64': 4.13.2 - '@rollup/rollup-darwin-arm64': 4.13.2 - '@rollup/rollup-darwin-x64': 4.13.2 - '@rollup/rollup-linux-arm-gnueabihf': 4.13.2 - '@rollup/rollup-linux-arm64-gnu': 4.13.2 - '@rollup/rollup-linux-arm64-musl': 4.13.2 - '@rollup/rollup-linux-powerpc64le-gnu': 4.13.2 - '@rollup/rollup-linux-riscv64-gnu': 4.13.2 - '@rollup/rollup-linux-s390x-gnu': 4.13.2 - '@rollup/rollup-linux-x64-gnu': 4.13.2 - '@rollup/rollup-linux-x64-musl': 4.13.2 - '@rollup/rollup-win32-arm64-msvc': 4.13.2 - '@rollup/rollup-win32-ia32-msvc': 4.13.2 - '@rollup/rollup-win32-x64-msvc': 4.13.2 + '@rollup/rollup-android-arm-eabi': 4.14.3 + '@rollup/rollup-android-arm64': 4.14.3 + '@rollup/rollup-darwin-arm64': 4.14.3 + '@rollup/rollup-darwin-x64': 4.14.3 + '@rollup/rollup-linux-arm-gnueabihf': 4.14.3 + '@rollup/rollup-linux-arm-musleabihf': 4.14.3 + '@rollup/rollup-linux-arm64-gnu': 4.14.3 + '@rollup/rollup-linux-arm64-musl': 4.14.3 + '@rollup/rollup-linux-powerpc64le-gnu': 4.14.3 + '@rollup/rollup-linux-riscv64-gnu': 4.14.3 + '@rollup/rollup-linux-s390x-gnu': 4.14.3 + '@rollup/rollup-linux-x64-gnu': 4.14.3 + '@rollup/rollup-linux-x64-musl': 4.14.3 + '@rollup/rollup-win32-arm64-msvc': 4.14.3 + '@rollup/rollup-win32-ia32-msvc': 4.14.3 + '@rollup/rollup-win32-x64-msvc': 4.14.3 fsevents: 2.3.3 dev: true @@ -967,6 +1330,10 @@ packages: mri: 1.2.0 dev: true + /safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + dev: true + /sander@0.5.1: resolution: {integrity: sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==} dependencies: @@ -976,6 +1343,40 @@ packages: rimraf: 2.7.1 dev: true + /semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + dev: true + + /semver@7.6.0: + resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: true + + /set-blocking@2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + dev: true + + /set-cookie-parser@2.6.0: + resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==} + dev: true + + /signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + dev: true + + /sirv@2.0.4: + resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} + engines: {node: '>= 10'} + dependencies: + '@polka/url': 1.0.0-next.25 + mrmime: 2.0.0 + totalist: 3.0.1 + dev: true + /sorcery@0.11.0: resolution: {integrity: sha512-J69LQ22xrQB1cIFJhPfgtLuI6BpWRiWu1Y3vSsIwK/eAScqJxd/+CJlUuHQRdX2C9NGFamq+KqNywGgaThwfHw==} hasBin: true @@ -991,6 +1392,28 @@ packages: engines: {node: '>=0.10.0'} dev: true + /string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + dev: true + + /string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + dependencies: + safe-buffer: 5.2.1 + dev: true + + /strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.1 + dev: true + /strip-indent@3.0.0: resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} engines: {node: '>=8'} @@ -1011,8 +1434,8 @@ packages: picocolors: 1.0.0 sade: 1.8.1 svelte: 5.0.0-next.90 - svelte-preprocess: 5.1.3(svelte@5.0.0-next.90)(typescript@5.4.3) - typescript: 5.4.3 + svelte-preprocess: 5.1.4(svelte@5.0.0-next.90)(typescript@5.4.5) + typescript: 5.4.5 transitivePeerDependencies: - '@babel/core' - coffeescript @@ -1025,8 +1448,8 @@ packages: - sugarss dev: true - /svelte-hmr@0.15.3(svelte@5.0.0-next.90): - resolution: {integrity: sha512-41snaPswvSf8TJUhlkoJBekRrABDXDMdpNpT2tfHIv4JuhgvHqLMhEPGtaQn0BmbNSTkuz2Ed20DF2eHw0SmBQ==} + /svelte-hmr@0.16.0(svelte@5.0.0-next.90): + resolution: {integrity: sha512-Gyc7cOS3VJzLlfj7wKS0ZnzDVdv3Pn2IuVeJPk9m2skfhcu5bq3wtIZyQGggr7/Iim5rH5cncyQft/kRLupcnA==} engines: {node: ^12.20 || ^14.13.1 || >= 16} peerDependencies: svelte: ^3.19.0 || ^4.0.0 @@ -1034,9 +1457,9 @@ packages: svelte: 5.0.0-next.90 dev: true - /svelte-preprocess@5.1.3(svelte@5.0.0-next.90)(typescript@5.4.3): - resolution: {integrity: sha512-xxAkmxGHT+J/GourS5mVJeOXZzne1FR5ljeOUAMXUkfEhkLEllRreXpbl3dIYJlcJRfL1LO1uIAPpBpBfiqGPw==} - engines: {node: '>= 16.0.0', pnpm: ^8.0.0} + /svelte-preprocess@5.1.4(svelte@5.0.0-next.90)(typescript@5.4.5): + resolution: {integrity: sha512-IvnbQ6D6Ao3Gg6ftiM5tdbR6aAETwjhHV+UKGf5bHGYR69RQvF1ho0JKPcbUON4vy4R7zom13jPjgdOWCQ5hDA==} + engines: {node: '>= 16.0.0'} requiresBuild: true peerDependencies: '@babel/core': ^7.10.2 @@ -1074,11 +1497,11 @@ packages: dependencies: '@types/pug': 2.0.10 detect-indent: 6.1.0 - magic-string: 0.30.8 + magic-string: 0.30.9 sorcery: 0.11.0 strip-indent: 3.0.0 svelte: 5.0.0-next.90 - typescript: 5.4.3 + typescript: 5.4.5 dev: true /svelte@5.0.0-next.90: @@ -1096,10 +1519,29 @@ packages: esrap: 1.2.1 is-reference: 3.0.2 locate-character: 3.0.0 - magic-string: 0.30.8 + magic-string: 0.30.9 zimmerframe: 1.1.2 dev: true + /tar@6.2.1: + resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} + engines: {node: '>=10'} + dependencies: + chownr: 2.0.0 + fs-minipass: 2.1.0 + minipass: 5.0.0 + minizlib: 2.1.2 + mkdirp: 1.0.4 + yallist: 4.0.0 + dev: true + + /tiny-glob@0.2.9: + resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} + dependencies: + globalyzer: 0.1.0 + globrex: 0.1.2 + dev: true + /to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} @@ -1107,8 +1549,17 @@ packages: is-number: 7.0.0 dev: true - /typescript@5.4.3: - resolution: {integrity: sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==} + /totalist@3.0.1: + resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} + engines: {node: '>=6'} + dev: true + + /tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + dev: true + + /typescript@5.4.5: + resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} engines: {node: '>=14.17'} hasBin: true dev: true @@ -1117,8 +1568,12 @@ packages: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} dev: true - /vite@5.2.7(@types/node@20.12.3): - resolution: {integrity: sha512-k14PWOKLI6pMaSzAuGtT+Cf0YmIx12z9YGon39onaJNy8DLBfBJrzg9FQEmkAM5lpHBZs9wksWAsyF/HkpEwJA==} + /util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + dev: true + + /vite@5.2.9(@types/node@20.12.7): + resolution: {integrity: sha512-uOQWfuZBlc6Y3W/DTuQ1Sr+oIXWvqljLvS881SVmAj00d5RdgShLcuXWxseWPd4HXwiYBFW/vXHfKFeqj9uQnw==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -1145,15 +1600,15 @@ packages: terser: optional: true dependencies: - '@types/node': 20.12.3 + '@types/node': 20.12.7 esbuild: 0.20.2 postcss: 8.4.38 - rollup: 4.13.2 + rollup: 4.14.3 optionalDependencies: fsevents: 2.3.3 dev: true - /vitefu@0.2.5(vite@5.2.7): + /vitefu@0.2.5(vite@5.2.9): resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==} peerDependencies: vite: ^3.0.0 || ^4.0.0 || ^5.0.0 @@ -1161,13 +1616,34 @@ packages: vite: optional: true dependencies: - vite: 5.2.7(@types/node@20.12.3) + vite: 5.2.9(@types/node@20.12.7) + dev: true + + /webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + dev: true + + /whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + dev: true + + /wide-align@1.1.5: + resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} + dependencies: + string-width: 4.2.3 dev: true /wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} dev: true + /yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + dev: true + /zimmerframe@1.1.2: resolution: {integrity: sha512-rAbqEGa8ovJy4pyBxZM70hg4pE6gDgaQ0Sl9M3enG3I0d6H4XSAM3GeNGLKnsBpuijUow064sf7ww1nutC5/3w==} dev: true diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 0000000..2c52ad5 --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,2 @@ +packages: + - 'workspace/*' diff --git a/workspace/extension/.gitignore b/workspace/extension/.gitignore new file mode 100644 index 0000000..ef49293 --- /dev/null +++ b/workspace/extension/.gitignore @@ -0,0 +1,4 @@ +/build + +# generated files +static/courier.js diff --git a/index.html b/workspace/extension/index.html similarity index 100% rename from index.html rename to workspace/extension/index.html diff --git a/workspace/extension/package.json b/workspace/extension/package.json new file mode 100644 index 0000000..575e296 --- /dev/null +++ b/workspace/extension/package.json @@ -0,0 +1,20 @@ +{ + "private": true, + "type": "module", + "scripts": { + "dev": "pnpm run --parallel \"/^dev:.*/\"", + "dev:app": "vite build -wd --minify=false --sourcemap=inline", + "dev:scripts": "rollup -cw", + "build": "rollup -c && vite build", + "bundle:zip": "cd build && zip -r svelte-devtools.zip *", + "bundle:tar": "cd build && tar -czf svelte-devtools.tar.gz *", + "format": "prettier -w .", + "check": "pnpm run --parallel \"/^check:.*/\"", + "check:style": "prettier -c .", + "check:svelte": "svelte-check --tsconfig ./tsconfig.json" + }, + "devDependencies": { + "@types/chrome": "^0.0.266", + "rollup": "^4.14.3" + } +} diff --git a/rollup.config.js b/workspace/extension/rollup.config.js similarity index 100% rename from rollup.config.js rename to workspace/extension/rollup.config.js diff --git a/src/routes/+layout.svelte b/workspace/extension/src/App.svelte similarity index 93% rename from src/routes/+layout.svelte rename to workspace/extension/src/App.svelte index 19ceea2..9c3a900 100644 --- a/src/routes/+layout.svelte +++ b/workspace/extension/src/App.svelte @@ -6,13 +6,11 @@ import Resizable from '$lib/components/Resizable.svelte'; import Toolbar from '$lib/components/Toolbar.svelte'; - import Breadcrumbs from './Breadcrumbs.svelte'; - import ConnectMessage from './ConnectMessage.svelte'; - import Inspector from './Inspector.svelte'; - // import ProfileButton from './ProfileButton.svelte'; - // import Profiler from './Profiler.svelte'; - import SearchBox from './SearchBox.svelte'; - import VisibilitySelection from './VisibilitySelection.svelte'; + import Breadcrumbs from './routes/Breadcrumbs.svelte'; + import ConnectMessage from './routes/ConnectMessage.svelte'; + import Inspector from './routes/Inspector.svelte'; + import SearchBox from './routes/SearchBox.svelte'; + import VisibilitySelection from './routes/VisibilitySelection.svelte'; import { background } from '$lib/runtime.svelte'; import { app, visibility } from '$lib/state.svelte'; diff --git a/src/app.css b/workspace/extension/src/app.css similarity index 100% rename from src/app.css rename to workspace/extension/src/app.css diff --git a/src/app.d.ts b/workspace/extension/src/app.d.ts similarity index 100% rename from src/app.d.ts rename to workspace/extension/src/app.d.ts diff --git a/src/client/core.js b/workspace/extension/src/client/core.js similarity index 100% rename from src/client/core.js rename to workspace/extension/src/client/core.js diff --git a/src/client/highlight.js b/workspace/extension/src/client/highlight.js similarity index 100% rename from src/client/highlight.js rename to workspace/extension/src/client/highlight.js diff --git a/src/client/runtime.js b/workspace/extension/src/client/runtime.js similarity index 100% rename from src/client/runtime.js rename to workspace/extension/src/client/runtime.js diff --git a/src/client/svelte-4.js b/workspace/extension/src/client/svelte-4.js similarity index 100% rename from src/client/svelte-4.js rename to workspace/extension/src/client/svelte-4.js diff --git a/src/client/utils.js b/workspace/extension/src/client/utils.js similarity index 100% rename from src/client/utils.js rename to workspace/extension/src/client/utils.js diff --git a/src/entry.ts b/workspace/extension/src/entry.ts similarity index 86% rename from src/entry.ts rename to workspace/extension/src/entry.ts index 59f53ce..54dd677 100644 --- a/src/entry.ts +++ b/workspace/extension/src/entry.ts @@ -1,5 +1,5 @@ import './app.css'; -import App from './routes/+layout.svelte'; +import App from './App.svelte'; import { mount } from 'svelte'; if (chrome.devtools.panels.themeName === 'dark') { diff --git a/src/lib/components/Button.svelte b/workspace/extension/src/lib/components/Button.svelte similarity index 100% rename from src/lib/components/Button.svelte rename to workspace/extension/src/lib/components/Button.svelte diff --git a/src/lib/components/Divider.svelte b/workspace/extension/src/lib/components/Divider.svelte similarity index 100% rename from src/lib/components/Divider.svelte rename to workspace/extension/src/lib/components/Divider.svelte diff --git a/src/lib/components/Indexer.svelte b/workspace/extension/src/lib/components/Indexer.svelte similarity index 100% rename from src/lib/components/Indexer.svelte rename to workspace/extension/src/lib/components/Indexer.svelte diff --git a/src/lib/components/Relative.svelte b/workspace/extension/src/lib/components/Relative.svelte similarity index 100% rename from src/lib/components/Relative.svelte rename to workspace/extension/src/lib/components/Relative.svelte diff --git a/src/lib/components/Resizable.svelte b/workspace/extension/src/lib/components/Resizable.svelte similarity index 100% rename from src/lib/components/Resizable.svelte rename to workspace/extension/src/lib/components/Resizable.svelte diff --git a/src/lib/components/Toolbar.svelte b/workspace/extension/src/lib/components/Toolbar.svelte similarity index 100% rename from src/lib/components/Toolbar.svelte rename to workspace/extension/src/lib/components/Toolbar.svelte diff --git a/src/lib/nodes/Block.svelte b/workspace/extension/src/lib/nodes/Block.svelte similarity index 100% rename from src/lib/nodes/Block.svelte rename to workspace/extension/src/lib/nodes/Block.svelte diff --git a/src/lib/nodes/Element.svelte b/workspace/extension/src/lib/nodes/Element.svelte similarity index 100% rename from src/lib/nodes/Element.svelte rename to workspace/extension/src/lib/nodes/Element.svelte diff --git a/src/lib/nodes/ElementAttributes.svelte b/workspace/extension/src/lib/nodes/ElementAttributes.svelte similarity index 100% rename from src/lib/nodes/ElementAttributes.svelte rename to workspace/extension/src/lib/nodes/ElementAttributes.svelte diff --git a/src/lib/nodes/Ellipsis.svelte b/workspace/extension/src/lib/nodes/Ellipsis.svelte similarity index 100% rename from src/lib/nodes/Ellipsis.svelte rename to workspace/extension/src/lib/nodes/Ellipsis.svelte diff --git a/src/lib/nodes/Iteration.svelte b/workspace/extension/src/lib/nodes/Iteration.svelte similarity index 100% rename from src/lib/nodes/Iteration.svelte rename to workspace/extension/src/lib/nodes/Iteration.svelte diff --git a/src/lib/nodes/Node.svelte b/workspace/extension/src/lib/nodes/Node.svelte similarity index 100% rename from src/lib/nodes/Node.svelte rename to workspace/extension/src/lib/nodes/Node.svelte diff --git a/src/lib/nodes/Slot.svelte b/workspace/extension/src/lib/nodes/Slot.svelte similarity index 100% rename from src/lib/nodes/Slot.svelte rename to workspace/extension/src/lib/nodes/Slot.svelte diff --git a/src/lib/panel/Editable.svelte b/workspace/extension/src/lib/panel/Editable.svelte similarity index 100% rename from src/lib/panel/Editable.svelte rename to workspace/extension/src/lib/panel/Editable.svelte diff --git a/src/lib/panel/PropertyList.svelte b/workspace/extension/src/lib/panel/PropertyList.svelte similarity index 100% rename from src/lib/panel/PropertyList.svelte rename to workspace/extension/src/lib/panel/PropertyList.svelte diff --git a/src/lib/panel/core.svelte.ts b/workspace/extension/src/lib/panel/core.svelte.ts similarity index 100% rename from src/lib/panel/core.svelte.ts rename to workspace/extension/src/lib/panel/core.svelte.ts diff --git a/src/lib/runtime.svelte.ts b/workspace/extension/src/lib/runtime.svelte.ts similarity index 100% rename from src/lib/runtime.svelte.ts rename to workspace/extension/src/lib/runtime.svelte.ts diff --git a/src/lib/state.svelte.ts b/workspace/extension/src/lib/state.svelte.ts similarity index 100% rename from src/lib/state.svelte.ts rename to workspace/extension/src/lib/state.svelte.ts diff --git a/src/routes/Breadcrumbs.svelte b/workspace/extension/src/routes/Breadcrumbs.svelte similarity index 100% rename from src/routes/Breadcrumbs.svelte rename to workspace/extension/src/routes/Breadcrumbs.svelte diff --git a/src/routes/ConnectMessage.svelte b/workspace/extension/src/routes/ConnectMessage.svelte similarity index 100% rename from src/routes/ConnectMessage.svelte rename to workspace/extension/src/routes/ConnectMessage.svelte diff --git a/src/routes/Inspector.svelte b/workspace/extension/src/routes/Inspector.svelte similarity index 100% rename from src/routes/Inspector.svelte rename to workspace/extension/src/routes/Inspector.svelte diff --git a/src/routes/ProfileButton.svelte b/workspace/extension/src/routes/ProfileButton.svelte similarity index 100% rename from src/routes/ProfileButton.svelte rename to workspace/extension/src/routes/ProfileButton.svelte diff --git a/src/routes/Profiler.svelte b/workspace/extension/src/routes/Profiler.svelte similarity index 100% rename from src/routes/Profiler.svelte rename to workspace/extension/src/routes/Profiler.svelte diff --git a/src/routes/ProfilerFrame.svelte b/workspace/extension/src/routes/ProfilerFrame.svelte similarity index 100% rename from src/routes/ProfilerFrame.svelte rename to workspace/extension/src/routes/ProfilerFrame.svelte diff --git a/src/routes/SearchBox.svelte b/workspace/extension/src/routes/SearchBox.svelte similarity index 100% rename from src/routes/SearchBox.svelte rename to workspace/extension/src/routes/SearchBox.svelte diff --git a/src/routes/VisibilitySelection.svelte b/workspace/extension/src/routes/VisibilitySelection.svelte similarity index 100% rename from src/routes/VisibilitySelection.svelte rename to workspace/extension/src/routes/VisibilitySelection.svelte diff --git a/static/background.js b/workspace/extension/static/background.js similarity index 100% rename from static/background.js rename to workspace/extension/static/background.js diff --git a/static/icons/default-128.png b/workspace/extension/static/icons/default-128.png similarity index 100% rename from static/icons/default-128.png rename to workspace/extension/static/icons/default-128.png diff --git a/static/icons/default-16.png b/workspace/extension/static/icons/default-16.png similarity index 100% rename from static/icons/default-16.png rename to workspace/extension/static/icons/default-16.png diff --git a/static/icons/default-24.png b/workspace/extension/static/icons/default-24.png similarity index 100% rename from static/icons/default-24.png rename to workspace/extension/static/icons/default-24.png diff --git a/static/icons/default-48.png b/workspace/extension/static/icons/default-48.png similarity index 100% rename from static/icons/default-48.png rename to workspace/extension/static/icons/default-48.png diff --git a/static/icons/default-96.png b/workspace/extension/static/icons/default-96.png similarity index 100% rename from static/icons/default-96.png rename to workspace/extension/static/icons/default-96.png diff --git a/static/icons/disabled-128.png b/workspace/extension/static/icons/disabled-128.png similarity index 100% rename from static/icons/disabled-128.png rename to workspace/extension/static/icons/disabled-128.png diff --git a/static/icons/disabled-16.png b/workspace/extension/static/icons/disabled-16.png similarity index 100% rename from static/icons/disabled-16.png rename to workspace/extension/static/icons/disabled-16.png diff --git a/static/icons/disabled-24.png b/workspace/extension/static/icons/disabled-24.png similarity index 100% rename from static/icons/disabled-24.png rename to workspace/extension/static/icons/disabled-24.png diff --git a/static/icons/disabled-48.png b/workspace/extension/static/icons/disabled-48.png similarity index 100% rename from static/icons/disabled-48.png rename to workspace/extension/static/icons/disabled-48.png diff --git a/static/icons/disabled-96.png b/workspace/extension/static/icons/disabled-96.png similarity index 100% rename from static/icons/disabled-96.png rename to workspace/extension/static/icons/disabled-96.png diff --git a/static/icons/svelte-dark.svg b/workspace/extension/static/icons/svelte-dark.svg similarity index 100% rename from static/icons/svelte-dark.svg rename to workspace/extension/static/icons/svelte-dark.svg diff --git a/static/icons/svelte-default.svg b/workspace/extension/static/icons/svelte-default.svg similarity index 100% rename from static/icons/svelte-default.svg rename to workspace/extension/static/icons/svelte-default.svg diff --git a/static/icons/svelte-disabled.svg b/workspace/extension/static/icons/svelte-disabled.svg similarity index 100% rename from static/icons/svelte-disabled.svg rename to workspace/extension/static/icons/svelte-disabled.svg diff --git a/static/icons/svelte.svg b/workspace/extension/static/icons/svelte.svg similarity index 100% rename from static/icons/svelte.svg rename to workspace/extension/static/icons/svelte.svg diff --git a/static/manifest.json b/workspace/extension/static/manifest.json similarity index 100% rename from static/manifest.json rename to workspace/extension/static/manifest.json diff --git a/static/register.html b/workspace/extension/static/register.html similarity index 100% rename from static/register.html rename to workspace/extension/static/register.html diff --git a/static/register.js b/workspace/extension/static/register.js similarity index 100% rename from static/register.js rename to workspace/extension/static/register.js diff --git a/svelte.config.js b/workspace/extension/svelte.config.js similarity index 100% rename from svelte.config.js rename to workspace/extension/svelte.config.js diff --git a/tsconfig.json b/workspace/extension/tsconfig.json similarity index 100% rename from tsconfig.json rename to workspace/extension/tsconfig.json diff --git a/vite.config.ts b/workspace/extension/vite.config.ts similarity index 100% rename from vite.config.ts rename to workspace/extension/vite.config.ts diff --git a/workspace/website/.gitignore b/workspace/website/.gitignore new file mode 100644 index 0000000..eeecf46 --- /dev/null +++ b/workspace/website/.gitignore @@ -0,0 +1,2 @@ +.svelte-kit/ +build/ diff --git a/workspace/website/package.json b/workspace/website/package.json new file mode 100644 index 0000000..2fae8f5 --- /dev/null +++ b/workspace/website/package.json @@ -0,0 +1,16 @@ +{ + "private": true, + "type": "module", + "scripts": { + "dev": "vite dev", + "build": "svelte-kit sync && vite build", + "format": "prettier --write .", + "check": "pnpm run \"/^check:.*/\"", + "check:style": "prettier --check .", + "check:svelte": "svelte-kit sync && svelte-check src --tsconfig ./tsconfig.json" + }, + "devDependencies": { + "@sveltejs/adapter-vercel": "^5.3.0", + "@sveltejs/kit": "^2.5.6" + } +} diff --git a/workspace/website/svelte.config.js b/workspace/website/svelte.config.js new file mode 100644 index 0000000..6126173 --- /dev/null +++ b/workspace/website/svelte.config.js @@ -0,0 +1,13 @@ +import adapter from '@sveltejs/adapter-vercel'; +import { vitePreprocess } from '@sveltejs/vite-plugin-svelte'; + +/** @type {import('@sveltejs/kit').Config} */ +const config = { + preprocess: [vitePreprocess()], + + kit: { + adapter: adapter(), + }, +}; + +export default config; diff --git a/workspace/website/tsconfig.json b/workspace/website/tsconfig.json new file mode 100644 index 0000000..e4eb1af --- /dev/null +++ b/workspace/website/tsconfig.json @@ -0,0 +1,6 @@ +{ + "extends": "./.svelte-kit/tsconfig.json", + "compilerOptions": { + "resolveJsonModule": true + } +} diff --git a/workspace/website/vite.config.ts b/workspace/website/vite.config.ts new file mode 100644 index 0000000..8a1a925 --- /dev/null +++ b/workspace/website/vite.config.ts @@ -0,0 +1,8 @@ +import { sveltekit } from '@sveltejs/kit/vite'; +import { defineConfig } from 'vite'; + +export default defineConfig(() => { + return { + plugins: [sveltekit()], + }; +}); From c44e4934e6e4da71510e70d8c25d596602733fff Mon Sep 17 00:00:00 2001 From: Ignatius Bagus Date: Wed, 24 Apr 2024 16:38:46 +0700 Subject: [PATCH 29/54] fix: pass current keys to update objects (#210) --- workspace/extension/src/lib/panel/PropertyList.svelte | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/workspace/extension/src/lib/panel/PropertyList.svelte b/workspace/extension/src/lib/panel/PropertyList.svelte index e05f678..d346d77 100644 --- a/workspace/extension/src/lib/panel/PropertyList.svelte +++ b/workspace/extension/src/lib/panel/PropertyList.svelte @@ -74,7 +74,7 @@ {#if value.length && expanded} {@const entries = value.map((v, i) => ({ key: `${i}`, value: v, readonly }))} - + {/if} {:else if type === 'object'} {#if value.__is === 'function'} @@ -90,7 +90,7 @@ return { key, value: v, readonly }; })} - + {/if} {:else} Object { } From 4041a4bd9072f1c58bb3cfd904dfd6f1acbf34f7 Mon Sep 17 00:00:00 2001 From: Ignatius Bagus Date: Thu, 25 Apr 2024 20:39:30 +0700 Subject: [PATCH 30/54] chore: clarify officially supported version (#212) --- README.md | 2 +- workspace/extension/src/routes/ConnectMessage.svelte | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 932bb07..5edb425 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ After installing you will see a new tab in Developer Tools. This tab displays a The `svelte-devtools` extension requires your Svelte application to be compiled with the `dev` option set to `true`. If you're using [SvelteKit](https://kit.svelte.dev/), this is done automatically, outside of that you will need to set it manually. -This extension officially supports Svelte 4.0 and above. +This extension officially supports Svelte version `^4.0.0`. ## Development diff --git a/workspace/extension/src/routes/ConnectMessage.svelte b/workspace/extension/src/routes/ConnectMessage.svelte index 817868f..d7f9553 100644 --- a/workspace/extension/src/routes/ConnectMessage.svelte +++ b/workspace/extension/src/routes/ConnectMessage.svelte @@ -14,7 +14,7 @@

Not working? Did you...

  • Build with dev mode enabled?
  • -
  • Use Svelte version 4.0.0 or above?
  • +
  • Use Svelte version ^4.0.0?
From 2fa5cae7a414087150fb7093c224da4f3f715a6a Mon Sep 17 00:00:00 2001 From: Ignatius Bagus Date: Thu, 25 Apr 2024 20:40:38 +0700 Subject: [PATCH 31/54] fix: individual expanded state (#211) --- workspace/extension/src/App.svelte | 4 +-- .../src/lib/panel/PropertyList.svelte | 28 +++++++++---------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/workspace/extension/src/App.svelte b/workspace/extension/src/App.svelte index 9c3a900..21a0af1 100644 --- a/workspace/extension/src/App.svelte +++ b/workspace/extension/src/App.svelte @@ -144,7 +144,7 @@ {#if app.selected?.type === 'component'}

Props

- + @@ -154,7 +154,7 @@

State

- + {:else if app.selected?.type === 'block' || app.selected?.type === 'iteration'}

State

diff --git a/workspace/extension/src/lib/panel/PropertyList.svelte b/workspace/extension/src/lib/panel/PropertyList.svelte index d346d77..f665867 100644 --- a/workspace/extension/src/lib/panel/PropertyList.svelte +++ b/workspace/extension/src/lib/panel/PropertyList.svelte @@ -14,24 +14,24 @@ keys?: string[]; } - const { entries = [], keys = [] }: Props = $props(); + const { entries = [], keys: parents = [] }: Props = $props(); - let expanded = $state(false); + const expanded = $state<{ [k: string]: boolean }>({}); {#if entries.length}
    {#each entries as { key, value, readonly = false } (key)} - {@const id = `${app.selected?.id}+${keys.join('.')}.${key}`} + {@const keys = [...parents, key]} {@const type = typeof value}
  • { event.stopPropagation(); - expanded = !expanded; + expanded[key] = !expanded[key]; }} > {key}: @@ -52,45 +52,45 @@ {readonly} type="string" {value} - onchange={(updated) => inject([...keys, key], updated)} + onchange={(updated) => inject(keys, updated)} /> {:else if value == null || value !== value} inject([...keys, key], updated)} + onchange={(updated) => inject(keys, updated)} /> {:else if type === 'number' || type === 'boolean'} inject([...keys, key], updated)} + onchange={(updated) => inject(keys, updated)} /> {:else if Array.isArray(value)} Array [{value.length || ''}] - {#if value.length && expanded} + {#if value.length && expanded[key]} {@const entries = value.map((v, i) => ({ key: `${i}`, value: v, readonly }))} - + {/if} {:else if type === 'object'} {#if value.__is === 'function'} function {value.name || ''}() - {#if expanded}
    {value.source}
    {/if} + {#if expanded[key]}
    {value.source}
    {/if} {:else if value.__is === 'symbol'} {value.name || 'Symbol()'} {:else if Object.keys(value).length} Object {…} - {#if expanded} + {#if expanded[key]} {@const entries = Object.entries(value).map(([key, v]) => { return { key, value: v, readonly }; })} - + {/if} {:else} Object { } From be27fe725bb987ae80d27a83b9003ea6ad3899af Mon Sep 17 00:00:00 2001 From: David Buhler <13938111+davidjayb@users.noreply.github.com> Date: Thu, 25 Apr 2024 07:54:37 -0600 Subject: [PATCH 32/54] feat: fine-grained readonly markers (#195) Co-authored-by: Ignatius Bagus --- workspace/extension/src/client/utils.js | 14 +++++++++----- .../extension/src/lib/panel/PropertyList.svelte | 6 +----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/workspace/extension/src/client/utils.js b/workspace/extension/src/client/utils.js index 67a3428..6137ab2 100644 --- a/workspace/extension/src/client/utils.js +++ b/workspace/extension/src/client/utils.js @@ -16,8 +16,12 @@ function clone(value, seen = new Map()) { /** @type {Record} */ const o = {}; seen.set(value, o); + + const descriptors = Object.getOwnPropertyDescriptors(value); for (const [key, v] of Object.entries(value)) { - o[key] = clone(v, seen); + const { get, writable } = descriptors[key]; + const readonly = !writable || get !== undefined; + o[key] = { key, value: clone(v, seen), readonly }; } return o; } @@ -37,13 +41,13 @@ export function serialize(node) { switch (node.type) { case 'component': { const { $$: internal = {} } = node.detail; - const ctx = clone(node.detail.$capture_state?.() || {}); + const captured = node.detail.$capture_state?.() || {}; const bindings = Object.values(internal.bound || {}).map( /** @param {Function} f */ (f) => f.name, ); const props = Object.keys(internal.props || {}).flatMap((key) => { - const value = ctx[key]; - delete ctx[key]; // deduplicate for ctx + const value = clone(captured[key]); + delete captured[key]; // deduplicate for ctx if (value === undefined) return []; const bounded = bindings.some((f) => f.includes(key)); @@ -55,7 +59,7 @@ export function serialize(node) { listeners: Object.entries(internal.callbacks || {}).flatMap(([event, value]) => value.map(/** @param {Function} f */ (f) => ({ event, handler: f.toString() })), ), - ctx: Object.entries(ctx).map(([key, value]) => ({ key, value })), + ctx: Object.entries(captured).map(([key, v]) => ({ key, value: clone(v) })), }; break; } diff --git a/workspace/extension/src/lib/panel/PropertyList.svelte b/workspace/extension/src/lib/panel/PropertyList.svelte index f665867..64ed8f1 100644 --- a/workspace/extension/src/lib/panel/PropertyList.svelte +++ b/workspace/extension/src/lib/panel/PropertyList.svelte @@ -86,11 +86,7 @@ Object {…} {#if expanded[key]} - {@const entries = Object.entries(value).map(([key, v]) => { - return { key, value: v, readonly }; - })} - - + {/if} {:else} Object { } From 11f576f0c3f84b28f0cad65c613fef3d6bdeac7e Mon Sep 17 00:00:00 2001 From: Ignatius Bagus Date: Thu, 25 Apr 2024 20:55:22 +0700 Subject: [PATCH 33/54] feat: improve editable props UX (#206) --- workspace/extension/src/lib/panel/Editable.svelte | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/workspace/extension/src/lib/panel/Editable.svelte b/workspace/extension/src/lib/panel/Editable.svelte index 8a4c8c8..14d1515 100644 --- a/workspace/extension/src/lib/panel/Editable.svelte +++ b/workspace/extension/src/lib/panel/Editable.svelte @@ -45,12 +45,19 @@ {#if editing} { // @ts-expect-error - target and value exists update(target.value); }} - onkeydown={({ key, target }) => { + onkeydown={(event) => { + const { key, target } = event; + if (key === 'Escape') { + event.preventDefault(); + editing = false; + return; + } if (key !== 'Enter') return; // @ts-expect-error - target and value exists update(target.value); From 852ce053531212e452039a6e99a80d5a2e791230 Mon Sep 17 00:00:00 2001 From: Ignatius Bagus Date: Wed, 1 May 2024 22:41:41 +0700 Subject: [PATCH 34/54] chore: update upload action to v4 (#209) --- .github/workflows/release.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 81b15c8..8813480 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -21,7 +21,7 @@ jobs: - run: cd workspace/extension && pnpm build - run: cd workspace/extension/build && zip -r svelte-devtools * - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 with: name: extension-${{ github.sha }} path: workspace/extension/build/svelte-devtools.zip From 7cb11aee9051333995a553a65acb321b79eb5f58 Mon Sep 17 00:00:00 2001 From: Ignatius Bagus Date: Fri, 3 May 2024 16:43:26 +0700 Subject: [PATCH 35/54] ~ v2.2.1 --- workspace/extension/static/manifest.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workspace/extension/static/manifest.json b/workspace/extension/static/manifest.json index 306f132..3e14571 100644 --- a/workspace/extension/static/manifest.json +++ b/workspace/extension/static/manifest.json @@ -1,7 +1,7 @@ { "manifest_version": 3, "name": "Svelte DevTools", - "version": "2.2.0", + "version": "2.2.1", "description": "Browser DevTools extension for debugging Svelte applications.", "icons": { "16": "icons/default-16.png", From c929777ab1d2e219943f1fc89b09f9965049fcac Mon Sep 17 00:00:00 2001 From: Ignatius Bagus Date: Mon, 27 May 2024 20:32:14 +0700 Subject: [PATCH 36/54] chore: update to v5-rc (#218) --- package.json | 8 +- pnpm-lock.yaml | 397 +++++++++++------- workspace/extension/package.json | 2 +- workspace/extension/src/App.svelte | 7 +- .../src/lib/components/Resizable.svelte | 4 +- .../extension/src/lib/nodes/Block.svelte | 4 +- .../extension/src/lib/nodes/Iteration.svelte | 4 +- workspace/extension/src/lib/nodes/Node.svelte | 3 +- workspace/extension/src/lib/nodes/Slot.svelte | 4 +- .../extension/src/lib/panel/Editable.svelte | 4 +- .../src/lib/panel/PropertyList.svelte | 3 +- .../extension/src/routes/SearchBox.svelte | 4 +- workspace/website/package.json | 2 +- 13 files changed, 271 insertions(+), 175 deletions(-) diff --git a/package.json b/package.json index c42e1ce..4664576 100644 --- a/package.json +++ b/package.json @@ -9,13 +9,13 @@ "packageManager": "pnpm@8.15.6", "devDependencies": { "@sveltejs/vite-plugin-svelte": "^3.1.0", - "@types/node": "^20.12.7", + "@types/node": "^20.12.12", "prettier": "^3.2.5", "prettier-plugin-sort-package-json": "^0.2.0", "prettier-plugin-svelte": "^3.2.3", - "svelte": "5.0.0-next.90", - "svelte-check": "^3.6.9", + "svelte": "5.0.0-next.141", + "svelte-check": "^3.7.1", "typescript": "^5.4.5", - "vite": "^5.2.9" + "vite": "^5.2.11" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0c13cae..7bbb552 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,10 +10,10 @@ importers: devDependencies: '@sveltejs/vite-plugin-svelte': specifier: ^3.1.0 - version: 3.1.0(svelte@5.0.0-next.90)(vite@5.2.9) + version: 3.1.0(svelte@5.0.0-next.141)(vite@5.2.11) '@types/node': - specifier: ^20.12.7 - version: 20.12.7 + specifier: ^20.12.12 + version: 20.12.12 prettier: specifier: ^3.2.5 version: 3.2.5 @@ -22,19 +22,19 @@ importers: version: 0.2.0(prettier@3.2.5) prettier-plugin-svelte: specifier: ^3.2.3 - version: 3.2.3(prettier@3.2.5)(svelte@5.0.0-next.90) + version: 3.2.3(prettier@3.2.5)(svelte@5.0.0-next.141) svelte: - specifier: 5.0.0-next.90 - version: 5.0.0-next.90 + specifier: 5.0.0-next.141 + version: 5.0.0-next.141 svelte-check: - specifier: ^3.6.9 - version: 3.6.9(svelte@5.0.0-next.90) + specifier: ^3.7.1 + version: 3.7.1(svelte@5.0.0-next.141) typescript: specifier: ^5.4.5 version: 5.4.5 vite: - specifier: ^5.2.9 - version: 5.2.9(@types/node@20.12.7) + specifier: ^5.2.11 + version: 5.2.11(@types/node@20.12.12) workspace/extension: devDependencies: @@ -42,17 +42,17 @@ importers: specifier: ^0.0.266 version: 0.0.266 rollup: - specifier: ^4.14.3 - version: 4.14.3 + specifier: ^4.18.0 + version: 4.18.0 workspace/website: devDependencies: '@sveltejs/adapter-vercel': specifier: ^5.3.0 - version: 5.3.0(@sveltejs/kit@2.5.6) + version: 5.3.0(@sveltejs/kit@2.5.10) '@sveltejs/kit': - specifier: ^2.5.6 - version: 2.5.6(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@5.0.0-next.90)(vite@5.2.9) + specifier: ^2.5.10 + version: 2.5.10(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@4.2.17)(vite@5.2.11) packages: @@ -312,7 +312,7 @@ packages: nopt: 5.0.0 npmlog: 5.0.1 rimraf: 3.0.2 - semver: 7.6.0 + semver: 7.6.2 tar: 6.2.1 transitivePeerDependencies: - encoding @@ -352,149 +352,149 @@ packages: picomatch: 2.3.1 dev: true - /@rollup/rollup-android-arm-eabi@4.14.3: - resolution: {integrity: sha512-X9alQ3XM6I9IlSlmC8ddAvMSyG1WuHk5oUnXGw+yUBs3BFoTizmG1La/Gr8fVJvDWAq+zlYTZ9DBgrlKRVY06g==} + /@rollup/rollup-android-arm-eabi@4.18.0: + resolution: {integrity: sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==} cpu: [arm] os: [android] requiresBuild: true dev: true optional: true - /@rollup/rollup-android-arm64@4.14.3: - resolution: {integrity: sha512-eQK5JIi+POhFpzk+LnjKIy4Ks+pwJ+NXmPxOCSvOKSNRPONzKuUvWE+P9JxGZVxrtzm6BAYMaL50FFuPe0oWMQ==} + /@rollup/rollup-android-arm64@4.18.0: + resolution: {integrity: sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==} cpu: [arm64] os: [android] requiresBuild: true dev: true optional: true - /@rollup/rollup-darwin-arm64@4.14.3: - resolution: {integrity: sha512-Od4vE6f6CTT53yM1jgcLqNfItTsLt5zE46fdPaEmeFHvPs5SjZYlLpHrSiHEKR1+HdRfxuzXHjDOIxQyC3ptBA==} + /@rollup/rollup-darwin-arm64@4.18.0: + resolution: {integrity: sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==} cpu: [arm64] os: [darwin] requiresBuild: true dev: true optional: true - /@rollup/rollup-darwin-x64@4.14.3: - resolution: {integrity: sha512-0IMAO21axJeNIrvS9lSe/PGthc8ZUS+zC53O0VhF5gMxfmcKAP4ESkKOCwEi6u2asUrt4mQv2rjY8QseIEb1aw==} + /@rollup/rollup-darwin-x64@4.18.0: + resolution: {integrity: sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==} cpu: [x64] os: [darwin] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm-gnueabihf@4.14.3: - resolution: {integrity: sha512-ge2DC7tHRHa3caVEoSbPRJpq7azhG+xYsd6u2MEnJ6XzPSzQsTKyXvh6iWjXRf7Rt9ykIUWHtl0Uz3T6yXPpKw==} + /@rollup/rollup-linux-arm-gnueabihf@4.18.0: + resolution: {integrity: sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==} cpu: [arm] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm-musleabihf@4.14.3: - resolution: {integrity: sha512-ljcuiDI4V3ySuc7eSk4lQ9wU8J8r8KrOUvB2U+TtK0TiW6OFDmJ+DdIjjwZHIw9CNxzbmXY39wwpzYuFDwNXuw==} + /@rollup/rollup-linux-arm-musleabihf@4.18.0: + resolution: {integrity: sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==} cpu: [arm] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm64-gnu@4.14.3: - resolution: {integrity: sha512-Eci2us9VTHm1eSyn5/eEpaC7eP/mp5n46gTRB3Aar3BgSvDQGJZuicyq6TsH4HngNBgVqC5sDYxOzTExSU+NjA==} + /@rollup/rollup-linux-arm64-gnu@4.18.0: + resolution: {integrity: sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm64-musl@4.14.3: - resolution: {integrity: sha512-UrBoMLCq4E92/LCqlh+blpqMz5h1tJttPIniwUgOFJyjWI1qrtrDhhpHPuFxULlUmjFHfloWdixtDhSxJt5iKw==} + /@rollup/rollup-linux-arm64-musl@4.18.0: + resolution: {integrity: sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-powerpc64le-gnu@4.14.3: - resolution: {integrity: sha512-5aRjvsS8q1nWN8AoRfrq5+9IflC3P1leMoy4r2WjXyFqf3qcqsxRCfxtZIV58tCxd+Yv7WELPcO9mY9aeQyAmw==} + /@rollup/rollup-linux-powerpc64le-gnu@4.18.0: + resolution: {integrity: sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==} cpu: [ppc64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-riscv64-gnu@4.14.3: - resolution: {integrity: sha512-sk/Qh1j2/RJSX7FhEpJn8n0ndxy/uf0kI/9Zc4b1ELhqULVdTfN6HL31CDaTChiBAOgLcsJ1sgVZjWv8XNEsAQ==} + /@rollup/rollup-linux-riscv64-gnu@4.18.0: + resolution: {integrity: sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==} cpu: [riscv64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-s390x-gnu@4.14.3: - resolution: {integrity: sha512-jOO/PEaDitOmY9TgkxF/TQIjXySQe5KVYB57H/8LRP/ux0ZoO8cSHCX17asMSv3ruwslXW/TLBcxyaUzGRHcqg==} + /@rollup/rollup-linux-s390x-gnu@4.18.0: + resolution: {integrity: sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==} cpu: [s390x] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-x64-gnu@4.14.3: - resolution: {integrity: sha512-8ybV4Xjy59xLMyWo3GCfEGqtKV5M5gCSrZlxkPGvEPCGDLNla7v48S662HSGwRd6/2cSneMQWiv+QzcttLrrOA==} + /@rollup/rollup-linux-x64-gnu@4.18.0: + resolution: {integrity: sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-x64-musl@4.14.3: - resolution: {integrity: sha512-s+xf1I46trOY10OqAtZ5Rm6lzHre/UiLA1J2uOhCFXWkbZrJRkYBPO6FhvGfHmdtQ3Bx793MNa7LvoWFAm93bg==} + /@rollup/rollup-linux-x64-musl@4.18.0: + resolution: {integrity: sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-arm64-msvc@4.14.3: - resolution: {integrity: sha512-+4h2WrGOYsOumDQ5S2sYNyhVfrue+9tc9XcLWLh+Kw3UOxAvrfOrSMFon60KspcDdytkNDh7K2Vs6eMaYImAZg==} + /@rollup/rollup-win32-arm64-msvc@4.18.0: + resolution: {integrity: sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==} cpu: [arm64] os: [win32] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-ia32-msvc@4.14.3: - resolution: {integrity: sha512-T1l7y/bCeL/kUwh9OD4PQT4aM7Bq43vX05htPJJ46RTI4r5KNt6qJRzAfNfM+OYMNEVBWQzR2Gyk+FXLZfogGw==} + /@rollup/rollup-win32-ia32-msvc@4.18.0: + resolution: {integrity: sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==} cpu: [ia32] os: [win32] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-x64-msvc@4.14.3: - resolution: {integrity: sha512-/BypzV0H1y1HzgYpxqRaXGBRqfodgoBBCcsrujT6QRcakDQdfU+Lq9PENPh5jB4I44YWq+0C2eHsHya+nZY1sA==} + /@rollup/rollup-win32-x64-msvc@4.18.0: + resolution: {integrity: sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==} cpu: [x64] os: [win32] requiresBuild: true dev: true optional: true - /@sveltejs/adapter-vercel@5.3.0(@sveltejs/kit@2.5.6): + /@sveltejs/adapter-vercel@5.3.0(@sveltejs/kit@2.5.10): resolution: {integrity: sha512-JzTJVmAWmbyNe3pQU2l0M1ggt4FjIVnKHEQOrqW4XVxYtNGdq3znuMqFSdzsR+5LaIEFqZaLIpm82XZsZroBoQ==} peerDependencies: '@sveltejs/kit': ^2.4.0 dependencies: - '@sveltejs/kit': 2.5.6(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@5.0.0-next.90)(vite@5.2.9) - '@vercel/nft': 0.26.4 + '@sveltejs/kit': 2.5.10(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@4.2.17)(vite@5.2.11) + '@vercel/nft': 0.26.5 esbuild: 0.20.2 transitivePeerDependencies: - encoding - supports-color dev: true - /@sveltejs/kit@2.5.6(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@5.0.0-next.90)(vite@5.2.9): - resolution: {integrity: sha512-AYb02Jm5MfNqJHc8zrj7ScQAFAKmTUCkpkfoi8EVaZZDdnjkvI7L2GtnTDhpiXSAZRVitZX4qm59sMS1FgL+lQ==} + /@sveltejs/kit@2.5.10(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@4.2.17)(vite@5.2.11): + resolution: {integrity: sha512-OqoyTmFG2cYmCFAdBfW+Qxbg8m23H4dv6KqwEt7ofr/ROcfcIl3Z/VT56L22H9f0uNZyr+9Bs1eh2gedOCK9kA==} engines: {node: '>=18.13'} hasBin: true requiresBuild: true @@ -503,24 +503,24 @@ packages: svelte: ^4.0.0 || ^5.0.0-next.0 vite: ^5.0.3 dependencies: - '@sveltejs/vite-plugin-svelte': 3.1.0(svelte@5.0.0-next.90)(vite@5.2.9) + '@sveltejs/vite-plugin-svelte': 3.1.0(svelte@4.2.17)(vite@5.2.11) '@types/cookie': 0.6.0 cookie: 0.6.0 - devalue: 4.3.2 + devalue: 5.0.0 esm-env: 1.0.0 - import-meta-resolve: 4.0.0 + import-meta-resolve: 4.1.0 kleur: 4.1.5 - magic-string: 0.30.9 + magic-string: 0.30.10 mrmime: 2.0.0 sade: 1.8.1 set-cookie-parser: 2.6.0 sirv: 2.0.4 - svelte: 5.0.0-next.90 + svelte: 4.2.17 tiny-glob: 0.2.9 - vite: 5.2.9(@types/node@20.12.7) + vite: 5.2.11(@types/node@20.12.12) dev: true - /@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@5.0.0-next.90)(vite@5.2.9): + /@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@4.2.17)(vite@5.2.11): resolution: {integrity: sha512-9QX28IymvBlSCqsCll5t0kQVxipsfhFFL+L2t3nTWfXnddYwxBuAEtTtlaVQpRz9c37BhJjltSeY4AJSC03SSg==} engines: {node: ^18.0.0 || >=20} peerDependencies: @@ -528,30 +528,66 @@ packages: svelte: ^4.0.0 || ^5.0.0-next.0 vite: ^5.0.0 dependencies: - '@sveltejs/vite-plugin-svelte': 3.1.0(svelte@5.0.0-next.90)(vite@5.2.9) + '@sveltejs/vite-plugin-svelte': 3.1.0(svelte@4.2.17)(vite@5.2.11) debug: 4.3.4 - svelte: 5.0.0-next.90 - vite: 5.2.9(@types/node@20.12.7) + svelte: 4.2.17 + vite: 5.2.11(@types/node@20.12.12) transitivePeerDependencies: - supports-color dev: true - /@sveltejs/vite-plugin-svelte@3.1.0(svelte@5.0.0-next.90)(vite@5.2.9): + /@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@5.0.0-next.141)(vite@5.2.11): + resolution: {integrity: sha512-9QX28IymvBlSCqsCll5t0kQVxipsfhFFL+L2t3nTWfXnddYwxBuAEtTtlaVQpRz9c37BhJjltSeY4AJSC03SSg==} + engines: {node: ^18.0.0 || >=20} + peerDependencies: + '@sveltejs/vite-plugin-svelte': ^3.0.0 + svelte: ^4.0.0 || ^5.0.0-next.0 + vite: ^5.0.0 + dependencies: + '@sveltejs/vite-plugin-svelte': 3.1.0(svelte@5.0.0-next.141)(vite@5.2.11) + debug: 4.3.4 + svelte: 5.0.0-next.141 + vite: 5.2.11(@types/node@20.12.12) + transitivePeerDependencies: + - supports-color + dev: true + + /@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.17)(vite@5.2.11): resolution: {integrity: sha512-sY6ncCvg+O3njnzbZexcVtUqOBE3iYmQPJ9y+yXSkOwG576QI/xJrBnQSRXFLGwJNBa0T78JEKg5cIR0WOAuUw==} engines: {node: ^18.0.0 || >=20} peerDependencies: svelte: ^4.0.0 || ^5.0.0-next.0 vite: ^5.0.0 dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@5.0.0-next.90)(vite@5.2.9) + '@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@4.2.17)(vite@5.2.11) debug: 4.3.4 deepmerge: 4.3.1 kleur: 4.1.5 - magic-string: 0.30.9 - svelte: 5.0.0-next.90 - svelte-hmr: 0.16.0(svelte@5.0.0-next.90) - vite: 5.2.9(@types/node@20.12.7) - vitefu: 0.2.5(vite@5.2.9) + magic-string: 0.30.10 + svelte: 4.2.17 + svelte-hmr: 0.16.0(svelte@4.2.17) + vite: 5.2.11(@types/node@20.12.12) + vitefu: 0.2.5(vite@5.2.11) + transitivePeerDependencies: + - supports-color + dev: true + + /@sveltejs/vite-plugin-svelte@3.1.0(svelte@5.0.0-next.141)(vite@5.2.11): + resolution: {integrity: sha512-sY6ncCvg+O3njnzbZexcVtUqOBE3iYmQPJ9y+yXSkOwG576QI/xJrBnQSRXFLGwJNBa0T78JEKg5cIR0WOAuUw==} + engines: {node: ^18.0.0 || >=20} + peerDependencies: + svelte: ^4.0.0 || ^5.0.0-next.0 + vite: ^5.0.0 + dependencies: + '@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@5.0.0-next.141)(vite@5.2.11) + debug: 4.3.4 + deepmerge: 4.3.1 + kleur: 4.1.5 + magic-string: 0.30.10 + svelte: 5.0.0-next.141 + svelte-hmr: 0.16.0(svelte@5.0.0-next.141) + vite: 5.2.11(@types/node@20.12.12) + vitefu: 0.2.5(vite@5.2.11) transitivePeerDependencies: - supports-color dev: true @@ -585,8 +621,8 @@ packages: resolution: {integrity: sha512-RpQH4rXLuvTXKR0zqHq3go0RVXYv/YVqv4TnPH95VbwUxZdQlK1EtcMvQvMpDngHbt13Csh9Z4qT9AbkiQH5BA==} dev: true - /@types/node@20.12.7: - resolution: {integrity: sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==} + /@types/node@20.12.12: + resolution: {integrity: sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==} dependencies: undici-types: 5.26.5 dev: true @@ -595,8 +631,8 @@ packages: resolution: {integrity: sha512-Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA==} dev: true - /@vercel/nft@0.26.4: - resolution: {integrity: sha512-j4jCOOXke2t8cHZCIxu1dzKLHLcFmYzC3yqAK6MfZznOL1QIJKd0xcFsXK3zcqzU7ScsE2zWkiMMNHGMHgp+FA==} + /@vercel/nft@0.26.5: + resolution: {integrity: sha512-NHxohEqad6Ra/r4lGknO52uc/GrWILXAMs1BB4401GTqww0fw1bAqzpG1XHuDO+dprg4GvsD9ZLLSsdo78p9hQ==} engines: {node: '>=16'} hasBin: true dependencies: @@ -609,8 +645,8 @@ packages: estree-walker: 2.0.2 glob: 7.2.3 graceful-fs: 4.2.11 - micromatch: 4.0.5 - node-gyp-build: 4.8.0 + micromatch: 4.0.7 + node-gyp-build: 4.8.1 resolve-from: 5.0.0 transitivePeerDependencies: - encoding @@ -672,6 +708,7 @@ packages: /are-we-there-yet@2.0.0: resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==} engines: {node: '>=10'} + deprecated: This package is no longer supported. dependencies: delegates: 1.0.0 readable-stream: 3.6.2 @@ -715,11 +752,11 @@ packages: concat-map: 0.0.1 dev: true - /braces@3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + /braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} dependencies: - fill-range: 7.0.1 + fill-range: 7.1.1 dev: true /buffer-crc32@0.2.13: @@ -736,7 +773,7 @@ packages: engines: {node: '>= 8.10.0'} dependencies: anymatch: 3.1.3 - braces: 3.0.2 + braces: 3.0.3 glob-parent: 5.1.2 is-binary-path: 2.1.0 is-glob: 4.0.3 @@ -751,6 +788,16 @@ packages: engines: {node: '>=10'} dev: true + /code-red@1.0.4: + resolution: {integrity: sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + '@types/estree': 1.0.5 + acorn: 8.11.3 + estree-walker: 3.0.3 + periscopic: 3.1.0 + dev: true + /color-support@1.1.3: resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} hasBin: true @@ -769,6 +816,14 @@ packages: engines: {node: '>= 0.6'} dev: true + /css-tree@2.3.1: + resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + dependencies: + mdn-data: 2.0.30 + source-map-js: 1.2.0 + dev: true + /debug@4.3.4: resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} engines: {node: '>=6.0'} @@ -805,8 +860,8 @@ packages: engines: {node: '>=8'} dev: true - /devalue@4.3.2: - resolution: {integrity: sha512-KqFl6pOgOW+Y6wJgu80rHpo2/3H07vr8ntR9rkkFIRETewbf5GaYYcakYfiKz89K+sLsuPkQIZaXDMjUObZwWg==} + /devalue@5.0.0: + resolution: {integrity: sha512-gO+/OMXF7488D+u3ue+G7Y4AA3ZmUnB3eHJXmBTgNHvr4ZNzl36A0ZtG+XCRNYCkYx/bFmw4qtkoFLa+wSrwAA==} dev: true /emoji-regex@8.0.0: @@ -852,8 +907,8 @@ packages: resolution: {integrity: sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==} dev: true - /esrap@1.2.1: - resolution: {integrity: sha512-dhkcOLfN/aDdMFI1iwPEcy/XqAZzGNfgfEJjZozy2tia6u0dQoZyXzkRshHTckuNsM+c0CYQndY+uRFe3N+AIQ==} + /esrap@1.2.2: + resolution: {integrity: sha512-F2pSJklxx1BlQIQgooczXCPHmcWpn6EsP5oo73LQfonG9fIlIENQ8vMmfGXeojP9MrkzUNAfyU5vdFlR9shHAw==} dependencies: '@jridgewell/sourcemap-codec': 1.4.15 '@types/estree': 1.0.5 @@ -863,6 +918,12 @@ packages: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} dev: true + /estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + dependencies: + '@types/estree': 1.0.5 + dev: true + /fast-glob@3.3.2: resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} engines: {node: '>=8.6.0'} @@ -871,7 +932,7 @@ packages: '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 - micromatch: 4.0.5 + micromatch: 4.0.7 dev: true /fastq@1.17.1: @@ -884,8 +945,8 @@ packages: resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} dev: true - /fill-range@7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + /fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} dependencies: to-regex-range: 5.0.1 @@ -913,6 +974,7 @@ packages: /gauge@3.0.2: resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==} engines: {node: '>=10'} + deprecated: This package is no longer supported. dependencies: aproba: 2.0.0 color-support: 1.1.3 @@ -977,12 +1039,13 @@ packages: resolve-from: 4.0.0 dev: true - /import-meta-resolve@4.0.0: - resolution: {integrity: sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==} + /import-meta-resolve@4.1.0: + resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==} dev: true /inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. dependencies: once: 1.4.0 wrappy: 1.0.2 @@ -1036,16 +1099,8 @@ packages: resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} dev: true - /lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} - dependencies: - yallist: 4.0.0 - dev: true - - /magic-string@0.30.9: - resolution: {integrity: sha512-S1+hd+dIrC8EZqKyT9DstTH/0Z+f76kmmvZnkfQVmOpDEF9iVgdYif3Q/pIWHmCoo59bQVGW0kVL3e2nl+9+Sw==} - engines: {node: '>=12'} + /magic-string@0.30.10: + resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} dependencies: '@jridgewell/sourcemap-codec': 1.4.15 dev: true @@ -1057,16 +1112,20 @@ packages: semver: 6.3.1 dev: true + /mdn-data@2.0.30: + resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} + dev: true + /merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} dev: true - /micromatch@4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + /micromatch@4.0.7: + resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} engines: {node: '>=8.6'} dependencies: - braces: 3.0.2 + braces: 3.0.3 picomatch: 2.3.1 dev: true @@ -1150,8 +1209,8 @@ packages: whatwg-url: 5.0.0 dev: true - /node-gyp-build@4.8.0: - resolution: {integrity: sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==} + /node-gyp-build@4.8.1: + resolution: {integrity: sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw==} hasBin: true dev: true @@ -1170,6 +1229,7 @@ packages: /npmlog@5.0.1: resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} + deprecated: This package is no longer supported. dependencies: are-we-there-yet: 2.0.0 console-control-strings: 1.1.0 @@ -1200,8 +1260,16 @@ packages: engines: {node: '>=0.10.0'} dev: true - /picocolors@1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + /periscopic@3.1.0: + resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} + dependencies: + '@types/estree': 1.0.5 + estree-walker: 3.0.3 + is-reference: 3.0.2 + dev: true + + /picocolors@1.0.1: + resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} dev: true /picomatch@2.3.1: @@ -1214,7 +1282,7 @@ packages: engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.7 - picocolors: 1.0.0 + picocolors: 1.0.1 source-map-js: 1.2.0 dev: true @@ -1226,14 +1294,14 @@ packages: prettier: 3.2.5 dev: true - /prettier-plugin-svelte@3.2.3(prettier@3.2.5)(svelte@5.0.0-next.90): + /prettier-plugin-svelte@3.2.3(prettier@3.2.5)(svelte@5.0.0-next.141): resolution: {integrity: sha512-wJq8RunyFlWco6U0WJV5wNCM7zpBFakS76UBSbmzMGpncpK98NZABaE+s7n8/APDCEVNHXC5Mpq+MLebQtsRlg==} peerDependencies: prettier: ^3.0.0 svelte: ^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0 dependencies: prettier: 3.2.5 - svelte: 5.0.0-next.90 + svelte: 5.0.0-next.141 dev: true /prettier@3.2.5: @@ -1291,29 +1359,29 @@ packages: glob: 7.2.3 dev: true - /rollup@4.14.3: - resolution: {integrity: sha512-ag5tTQKYsj1bhrFC9+OEWqb5O6VYgtQDO9hPDBMmIbePwhfSr+ExlcU741t8Dhw5DkPCQf6noz0jb36D6W9/hw==} + /rollup@4.18.0: + resolution: {integrity: sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true dependencies: '@types/estree': 1.0.5 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.14.3 - '@rollup/rollup-android-arm64': 4.14.3 - '@rollup/rollup-darwin-arm64': 4.14.3 - '@rollup/rollup-darwin-x64': 4.14.3 - '@rollup/rollup-linux-arm-gnueabihf': 4.14.3 - '@rollup/rollup-linux-arm-musleabihf': 4.14.3 - '@rollup/rollup-linux-arm64-gnu': 4.14.3 - '@rollup/rollup-linux-arm64-musl': 4.14.3 - '@rollup/rollup-linux-powerpc64le-gnu': 4.14.3 - '@rollup/rollup-linux-riscv64-gnu': 4.14.3 - '@rollup/rollup-linux-s390x-gnu': 4.14.3 - '@rollup/rollup-linux-x64-gnu': 4.14.3 - '@rollup/rollup-linux-x64-musl': 4.14.3 - '@rollup/rollup-win32-arm64-msvc': 4.14.3 - '@rollup/rollup-win32-ia32-msvc': 4.14.3 - '@rollup/rollup-win32-x64-msvc': 4.14.3 + '@rollup/rollup-android-arm-eabi': 4.18.0 + '@rollup/rollup-android-arm64': 4.18.0 + '@rollup/rollup-darwin-arm64': 4.18.0 + '@rollup/rollup-darwin-x64': 4.18.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.18.0 + '@rollup/rollup-linux-arm-musleabihf': 4.18.0 + '@rollup/rollup-linux-arm64-gnu': 4.18.0 + '@rollup/rollup-linux-arm64-musl': 4.18.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.18.0 + '@rollup/rollup-linux-riscv64-gnu': 4.18.0 + '@rollup/rollup-linux-s390x-gnu': 4.18.0 + '@rollup/rollup-linux-x64-gnu': 4.18.0 + '@rollup/rollup-linux-x64-musl': 4.18.0 + '@rollup/rollup-win32-arm64-msvc': 4.18.0 + '@rollup/rollup-win32-ia32-msvc': 4.18.0 + '@rollup/rollup-win32-x64-msvc': 4.18.0 fsevents: 2.3.3 dev: true @@ -1348,12 +1416,10 @@ packages: hasBin: true dev: true - /semver@7.6.0: - resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} + /semver@7.6.2: + resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} engines: {node: '>=10'} hasBin: true - dependencies: - lru-cache: 6.0.0 dev: true /set-blocking@2.0.0: @@ -1421,8 +1487,8 @@ packages: min-indent: 1.0.1 dev: true - /svelte-check@3.6.9(svelte@5.0.0-next.90): - resolution: {integrity: sha512-hDQrk3L0osX07djQyMiXocKysTLfusqi8AriNcCiQxhQR49/LonYolcUGMtZ0fbUR8HTR198Prrgf52WWU9wEg==} + /svelte-check@3.7.1(svelte@5.0.0-next.141): + resolution: {integrity: sha512-U4uJoLCzmz2o2U33c7mPDJNhRYX/DNFV11XTUDlFxaKLsO7P+40gvJHMPpoRfa24jqZfST4/G9fGNcUGMO8NAQ==} hasBin: true peerDependencies: svelte: ^3.55.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0 @@ -1431,10 +1497,10 @@ packages: chokidar: 3.6.0 fast-glob: 3.3.2 import-fresh: 3.3.0 - picocolors: 1.0.0 + picocolors: 1.0.1 sade: 1.8.1 - svelte: 5.0.0-next.90 - svelte-preprocess: 5.1.4(svelte@5.0.0-next.90)(typescript@5.4.5) + svelte: 5.0.0-next.141 + svelte-preprocess: 5.1.4(svelte@5.0.0-next.141)(typescript@5.4.5) typescript: 5.4.5 transitivePeerDependencies: - '@babel/core' @@ -1448,16 +1514,25 @@ packages: - sugarss dev: true - /svelte-hmr@0.16.0(svelte@5.0.0-next.90): + /svelte-hmr@0.16.0(svelte@4.2.17): + resolution: {integrity: sha512-Gyc7cOS3VJzLlfj7wKS0ZnzDVdv3Pn2IuVeJPk9m2skfhcu5bq3wtIZyQGggr7/Iim5rH5cncyQft/kRLupcnA==} + engines: {node: ^12.20 || ^14.13.1 || >= 16} + peerDependencies: + svelte: ^3.19.0 || ^4.0.0 + dependencies: + svelte: 4.2.17 + dev: true + + /svelte-hmr@0.16.0(svelte@5.0.0-next.141): resolution: {integrity: sha512-Gyc7cOS3VJzLlfj7wKS0ZnzDVdv3Pn2IuVeJPk9m2skfhcu5bq3wtIZyQGggr7/Iim5rH5cncyQft/kRLupcnA==} engines: {node: ^12.20 || ^14.13.1 || >= 16} peerDependencies: svelte: ^3.19.0 || ^4.0.0 dependencies: - svelte: 5.0.0-next.90 + svelte: 5.0.0-next.141 dev: true - /svelte-preprocess@5.1.4(svelte@5.0.0-next.90)(typescript@5.4.5): + /svelte-preprocess@5.1.4(svelte@5.0.0-next.141)(typescript@5.4.5): resolution: {integrity: sha512-IvnbQ6D6Ao3Gg6ftiM5tdbR6aAETwjhHV+UKGf5bHGYR69RQvF1ho0JKPcbUON4vy4R7zom13jPjgdOWCQ5hDA==} engines: {node: '>= 16.0.0'} requiresBuild: true @@ -1497,15 +1572,35 @@ packages: dependencies: '@types/pug': 2.0.10 detect-indent: 6.1.0 - magic-string: 0.30.9 + magic-string: 0.30.10 sorcery: 0.11.0 strip-indent: 3.0.0 - svelte: 5.0.0-next.90 + svelte: 5.0.0-next.141 typescript: 5.4.5 dev: true - /svelte@5.0.0-next.90: - resolution: {integrity: sha512-qx5shVIRQ9b3VPgj/rim16dWi3md8B8HjHSO5p6RCSg/GP00f9CVUoUtnuCpT4f7ZnBJa/IG3v2rgW9Zn9zEqg==} + /svelte@4.2.17: + resolution: {integrity: sha512-N7m1YnoXtRf5wya5Gyx3TWuTddI4nAyayyIWFojiWV5IayDYNV5i2mRp/7qNGol4DtxEYxljmrbgp1HM6hUbmQ==} + engines: {node: '>=16'} + dependencies: + '@ampproject/remapping': 2.3.0 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.25 + '@types/estree': 1.0.5 + acorn: 8.11.3 + aria-query: 5.3.0 + axobject-query: 4.0.0 + code-red: 1.0.4 + css-tree: 2.3.1 + estree-walker: 3.0.3 + is-reference: 3.0.2 + locate-character: 3.0.0 + magic-string: 0.30.10 + periscopic: 3.1.0 + dev: true + + /svelte@5.0.0-next.141: + resolution: {integrity: sha512-zT74TUo0vOOrbxRfdlWXu+ac4O9lqPFG0YoZB3uOfrOewT1GKxKm0qwG/jo9bGvgZ++TSHjR7AtV091LY2FhBA==} engines: {node: '>=18'} dependencies: '@ampproject/remapping': 2.3.0 @@ -1516,10 +1611,10 @@ packages: aria-query: 5.3.0 axobject-query: 4.0.0 esm-env: 1.0.0 - esrap: 1.2.1 + esrap: 1.2.2 is-reference: 3.0.2 locate-character: 3.0.0 - magic-string: 0.30.9 + magic-string: 0.30.10 zimmerframe: 1.1.2 dev: true @@ -1572,8 +1667,8 @@ packages: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} dev: true - /vite@5.2.9(@types/node@20.12.7): - resolution: {integrity: sha512-uOQWfuZBlc6Y3W/DTuQ1Sr+oIXWvqljLvS881SVmAj00d5RdgShLcuXWxseWPd4HXwiYBFW/vXHfKFeqj9uQnw==} + /vite@5.2.11(@types/node@20.12.12): + resolution: {integrity: sha512-HndV31LWW05i1BLPMUCE1B9E9GFbOu1MbenhS58FuK6owSO5qHm7GiCotrNY1YE5rMeQSFBGmT5ZaLEjFizgiQ==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -1600,15 +1695,15 @@ packages: terser: optional: true dependencies: - '@types/node': 20.12.7 + '@types/node': 20.12.12 esbuild: 0.20.2 postcss: 8.4.38 - rollup: 4.14.3 + rollup: 4.18.0 optionalDependencies: fsevents: 2.3.3 dev: true - /vitefu@0.2.5(vite@5.2.9): + /vitefu@0.2.5(vite@5.2.11): resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==} peerDependencies: vite: ^3.0.0 || ^4.0.0 || ^5.0.0 @@ -1616,7 +1711,7 @@ packages: vite: optional: true dependencies: - vite: 5.2.9(@types/node@20.12.7) + vite: 5.2.11(@types/node@20.12.12) dev: true /webidl-conversions@3.0.1: diff --git a/workspace/extension/package.json b/workspace/extension/package.json index 575e296..2c642d6 100644 --- a/workspace/extension/package.json +++ b/workspace/extension/package.json @@ -15,6 +15,6 @@ }, "devDependencies": { "@types/chrome": "^0.0.266", - "rollup": "^4.14.3" + "rollup": "^4.18.0" } } diff --git a/workspace/extension/src/App.svelte b/workspace/extension/src/App.svelte index 21a0af1..eb9d75f 100644 --- a/workspace/extension/src/App.svelte +++ b/workspace/extension/src/App.svelte @@ -112,7 +112,6 @@ - -
      +
        event.currentTarget === event.target && reset()} + onmouseleave={reset} + > {#each app.root as node (node.id)} {/each} diff --git a/workspace/extension/src/lib/components/Resizable.svelte b/workspace/extension/src/lib/components/Resizable.svelte index 64a2e14..6a0cf5a 100644 --- a/workspace/extension/src/lib/components/Resizable.svelte +++ b/workspace/extension/src/lib/components/Resizable.svelte @@ -19,8 +19,8 @@ /> diff --git a/workspace/extension/src/lib/nodes/Block.svelte b/workspace/extension/src/lib/nodes/Block.svelte index 0c51b92..564f8f6 100644 --- a/workspace/extension/src/lib/nodes/Block.svelte +++ b/workspace/extension/src/lib/nodes/Block.svelte @@ -9,10 +9,10 @@ children: import('svelte').Snippet; } - let { tagName, source, expanded, children }: Props = $props(); + let { tagName, source, expanded = $bindable(), children }: Props = $props(); - +