diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3eef183e05..831ab89d1f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16,7 +16,7 @@ importers: version: 2.27.1 '@sveltejs/eslint-config': specifier: ^7.0.1 - version: 7.0.1(@stylistic/eslint-plugin-js@1.8.0)(eslint-config-prettier@9.1.0)(eslint-plugin-svelte@2.38.0)(eslint-plugin-unicorn@52.0.0)(eslint@9.0.0)(typescript-eslint@7.6.0)(typescript@5.3.3) + version: 7.0.1(@stylistic/eslint-plugin-js@2.1.0)(eslint-config-prettier@9.1.0)(eslint-plugin-svelte@2.39.0)(eslint-plugin-unicorn@53.0.0)(eslint@9.0.0)(typescript-eslint@7.6.0)(typescript@5.3.3) '@svitejs/changesets-changelog-github-compact': specifier: ^1.1.0 version: 1.1.0 @@ -131,7 +131,7 @@ importers: version: 0.19.11 knip: specifier: ^4.2.1 - version: 4.2.1(@types/node@20.12.7)(typescript@5.4.5) + version: 4.2.1(@types/node@20.12.12)(typescript@5.4.5) rollup: specifier: ^4.9.5 version: 4.9.5 @@ -221,7 +221,7 @@ importers: version: 0.0.15(@codemirror/autocomplete@6.12.0)(@codemirror/commands@6.3.3)(@codemirror/language@6.10.1)(@codemirror/lint@6.5.0)(@codemirror/search@6.5.6)(@codemirror/state@6.4.0)(@codemirror/view@6.24.0) '@replit/codemirror-lang-svelte': specifier: ^6.0.0 - version: 6.0.0(@codemirror/autocomplete@6.12.0)(@codemirror/lang-css@6.2.1)(@codemirror/lang-html@6.4.9)(@codemirror/lang-javascript@6.2.1)(@codemirror/language@6.10.1)(@codemirror/state@6.4.0)(@codemirror/view@6.24.0)(@lezer/common@1.2.1)(@lezer/highlight@1.2.0)(@lezer/javascript@1.4.15)(@lezer/lr@1.4.0) + version: 6.0.0(@codemirror/autocomplete@6.12.0)(@codemirror/lang-css@6.2.1)(@codemirror/lang-html@6.4.9)(@codemirror/lang-javascript@6.2.1)(@codemirror/language@6.10.1)(@codemirror/state@6.4.0)(@codemirror/view@6.24.0)(@lezer/common@1.2.1)(@lezer/highlight@1.2.0)(@lezer/javascript@1.4.16)(@lezer/lr@1.4.0) '@rich_harris/svelte-split-pane': specifier: ^1.1.3 version: 1.1.3(svelte@packages+svelte) @@ -244,7 +244,7 @@ importers: specifier: ^2.0.2 version: 2.0.2 svelte-json-tree: - specifier: ^2.1.0 + specifier: ^2.2.0 version: 2.2.0(svelte@packages+svelte) zimmerframe: specifier: ^1.1.1 @@ -312,7 +312,7 @@ importers: version: 2.39.3 '@sveltejs/repl': specifier: 0.6.0 - version: 0.6.0(@codemirror/lang-html@6.4.9)(@codemirror/search@6.5.6)(@lezer/common@1.2.1)(@lezer/javascript@1.4.15)(@lezer/lr@1.4.0)(@sveltejs/kit@2.4.3)(svelte@4.2.9) + version: 0.6.0(@codemirror/lang-html@6.4.9)(@codemirror/search@6.5.6)(@lezer/common@1.2.1)(@lezer/javascript@1.4.16)(@lezer/lr@1.4.0)(@sveltejs/kit@2.4.3)(svelte@4.2.9) cookie: specifier: ^0.6.0 version: 0.6.0 @@ -807,11 +807,11 @@ packages: dependencies: '@codemirror/autocomplete': 6.16.0(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.26.3)(@lezer/common@1.2.1) '@codemirror/language': 6.10.1 - '@codemirror/lint': 6.7.0 + '@codemirror/lint': 6.7.1 '@codemirror/state': 6.4.1 '@codemirror/view': 6.26.3 '@lezer/common': 1.2.1 - '@lezer/javascript': 1.4.15 + '@lezer/javascript': 1.4.16 dev: false /@codemirror/lang-json@6.0.1: @@ -852,8 +852,8 @@ packages: crelt: 1.0.6 dev: false - /@codemirror/lint@6.7.0: - resolution: {integrity: sha512-LTLOL2nT41ADNSCCCCw8Q/UmdAFzB23OUYSjsHTdsVaH0XEo+orhuqbDNWzrzodm14w6FOxqxpmy4LF8Lixqjw==} + /@codemirror/lint@6.7.1: + resolution: {integrity: sha512-rELba6QJD20/bNXWP/cKTGLrwVEcpa2ViwULCV03ONcY1Je85++7sczVRUlnE4TJMjatx3IJTz6HX4NXi+moXw==} dependencies: '@codemirror/state': 6.4.1 '@codemirror/view': 6.26.3 @@ -1124,15 +1124,15 @@ packages: engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true - /@eslint/eslintrc@2.1.4: - resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@eslint/eslintrc@3.0.2: + resolution: {integrity: sha512-wV19ZEGEMAC1eHgrS7UQPqsdEiCIbTKTasEfcXAigzoXICcqZSjBZEHlZwNVvKg6UBCjSlos84XiLqsRJnIcIg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dependencies: ajv: 6.12.6 debug: 4.3.4(supports-color@5.5.0) - espree: 9.6.1 - globals: 13.24.0 - ignore: 5.3.1 + espree: 10.0.1 + globals: 14.0.0 + ignore: 5.3.0 import-fresh: 3.3.0 js-yaml: 4.1.0 minimatch: 3.1.2 @@ -1141,15 +1141,15 @@ packages: - supports-color dev: true - /@eslint/eslintrc@3.0.2: - resolution: {integrity: sha512-wV19ZEGEMAC1eHgrS7UQPqsdEiCIbTKTasEfcXAigzoXICcqZSjBZEHlZwNVvKg6UBCjSlos84XiLqsRJnIcIg==} + /@eslint/eslintrc@3.1.0: + resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dependencies: ajv: 6.12.6 debug: 4.3.4(supports-color@5.5.0) espree: 10.0.1 globals: 14.0.0 - ignore: 5.3.0 + ignore: 5.3.1 import-fresh: 3.3.0 js-yaml: 4.1.0 minimatch: 3.1.2 @@ -1826,8 +1826,8 @@ packages: '@lezer/lr': 1.4.0 dev: false - /@lezer/javascript@1.4.15: - resolution: {integrity: sha512-B082ZdjI0vo2AgLqD834GlRTE9gwRX8NzHzKq5uDwEnQ9Dq+A/CEhd3nf68tiNA2f9O+8jS1NeSTUYT9IAqcTw==} + /@lezer/javascript@1.4.16: + resolution: {integrity: sha512-84UXR3N7s11MPQHWgMnjb9571fr19MmXnr5zTv2XX0gHXXUvW3uPJ8GCjKrfTXmSdfktjRK0ayKklw+A13rk4g==} dependencies: '@lezer/common': 1.2.1 '@lezer/highlight': 1.2.0 @@ -2150,7 +2150,7 @@ packages: /@polka/url@1.0.0-next.24: resolution: {integrity: sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ==} - /@replit/codemirror-lang-svelte@6.0.0(@codemirror/autocomplete@6.12.0)(@codemirror/lang-css@6.2.1)(@codemirror/lang-html@6.4.9)(@codemirror/lang-javascript@6.2.1)(@codemirror/language@6.10.1)(@codemirror/state@6.4.0)(@codemirror/view@6.24.0)(@lezer/common@1.2.1)(@lezer/highlight@1.2.0)(@lezer/javascript@1.4.15)(@lezer/lr@1.4.0): + /@replit/codemirror-lang-svelte@6.0.0(@codemirror/autocomplete@6.12.0)(@codemirror/lang-css@6.2.1)(@codemirror/lang-html@6.4.9)(@codemirror/lang-javascript@6.2.1)(@codemirror/language@6.10.1)(@codemirror/state@6.4.0)(@codemirror/view@6.24.0)(@lezer/common@1.2.1)(@lezer/highlight@1.2.0)(@lezer/javascript@1.4.16)(@lezer/lr@1.4.0): resolution: {integrity: sha512-U2OqqgMM6jKelL0GNWbAmqlu1S078zZNoBqlJBW+retTc5M4Mha6/Y2cf4SVg6ddgloJvmcSpt4hHrVoM4ePRA==} peerDependencies: '@codemirror/autocomplete': ^6.0.0 @@ -2174,7 +2174,7 @@ packages: '@codemirror/view': 6.24.0 '@lezer/common': 1.2.1 '@lezer/highlight': 1.2.0 - '@lezer/javascript': 1.4.15 + '@lezer/javascript': 1.4.16 '@lezer/lr': 1.4.0 dev: false @@ -2540,18 +2540,17 @@ packages: p-map: 4.0.0 dev: true - /@stylistic/eslint-plugin-js@1.8.0(eslint@9.0.0): - resolution: {integrity: sha512-jdvnzt+pZPg8TfclZlTZPiUbbima93ylvQ+wNgHLNmup3obY6heQvgewSu9i2CfS61BnRByv+F9fxQLPoNeHag==} - engines: {node: ^16.0.0 || >=18.0.0} + /@stylistic/eslint-plugin-js@2.1.0(eslint@9.0.0): + resolution: {integrity: sha512-gdXUjGNSsnY6nPyqxu6lmDTtVrwCOjun4x8PUn0x04d5ucLI74N3MT1Q0UhdcOR9No3bo5PGDyBgXK+KmD787A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: '>=8.40.0' dependencies: '@types/eslint': 8.56.10 acorn: 8.11.3 - escape-string-regexp: 4.0.0 eslint: 9.0.0 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 + eslint-visitor-keys: 4.0.0 + espree: 10.0.1 dev: true /@supabase/functions-js@2.1.5: @@ -2645,7 +2644,7 @@ packages: - supports-color dev: true - /@sveltejs/eslint-config@7.0.1(@stylistic/eslint-plugin-js@1.8.0)(eslint-config-prettier@9.1.0)(eslint-plugin-svelte@2.38.0)(eslint-plugin-unicorn@52.0.0)(eslint@9.0.0)(typescript-eslint@7.6.0)(typescript@5.3.3): + /@sveltejs/eslint-config@7.0.1(@stylistic/eslint-plugin-js@2.1.0)(eslint-config-prettier@9.1.0)(eslint-plugin-svelte@2.39.0)(eslint-plugin-unicorn@53.0.0)(eslint@9.0.0)(typescript-eslint@7.6.0)(typescript@5.3.3): resolution: {integrity: sha512-0c65gMzIRkfSNxVtUmMB/0I0A+ypyIS7aJhXXU7dEdoOEmdN5K+GpGB4ybYBmqODJdZlNRmwNFaKxzzUGBkXQA==} peerDependencies: '@stylistic/eslint-plugin-js': '>= 1' @@ -2656,11 +2655,11 @@ packages: typescript: '>= 5' typescript-eslint: '>= 7.5' dependencies: - '@stylistic/eslint-plugin-js': 1.8.0(eslint@9.0.0) + '@stylistic/eslint-plugin-js': 2.1.0(eslint@9.0.0) eslint: 9.0.0 eslint-config-prettier: 9.1.0(eslint@9.0.0) - eslint-plugin-svelte: 2.38.0(eslint@9.0.0)(svelte@packages+svelte) - eslint-plugin-unicorn: 52.0.0(eslint@9.0.0) + eslint-plugin-svelte: 2.39.0(eslint@9.0.0)(svelte@packages+svelte) + eslint-plugin-unicorn: 53.0.0(eslint@9.0.0) globals: 15.0.0 typescript: 5.3.3 typescript-eslint: 7.6.0(eslint@9.0.0)(typescript@5.3.3) @@ -2719,7 +2718,7 @@ packages: vite: 5.0.13(@types/node@20.11.5)(lightningcss@1.23.0)(sass@1.70.0) dev: true - /@sveltejs/repl@0.6.0(@codemirror/lang-html@6.4.9)(@codemirror/search@6.5.6)(@lezer/common@1.2.1)(@lezer/javascript@1.4.15)(@lezer/lr@1.4.0)(@sveltejs/kit@2.4.3)(svelte@4.2.9): + /@sveltejs/repl@0.6.0(@codemirror/lang-html@6.4.9)(@codemirror/search@6.5.6)(@lezer/common@1.2.1)(@lezer/javascript@1.4.16)(@lezer/lr@1.4.0)(@sveltejs/kit@2.4.3)(svelte@4.2.9): resolution: {integrity: sha512-NADKN0NZhLlSatTSh5CCsdzgf2KHJFRef/8krA/TVWAWos5kSwmZ5fF0UImuqs61Pu/SiMXksaWNTGTiOtr4fQ==} peerDependencies: svelte: ^3.54.0 || ^4.0.0-next.0 || ^4.0.0 @@ -2737,7 +2736,7 @@ packages: '@jridgewell/sourcemap-codec': 1.4.15 '@lezer/highlight': 1.2.0 '@neocodemirror/svelte': 0.0.15(@codemirror/autocomplete@6.12.0)(@codemirror/commands@6.3.3)(@codemirror/language@6.10.1)(@codemirror/lint@6.5.0)(@codemirror/search@6.5.6)(@codemirror/state@6.4.0)(@codemirror/view@6.24.0) - '@replit/codemirror-lang-svelte': 6.0.0(@codemirror/autocomplete@6.12.0)(@codemirror/lang-css@6.2.1)(@codemirror/lang-html@6.4.9)(@codemirror/lang-javascript@6.2.1)(@codemirror/language@6.10.1)(@codemirror/state@6.4.0)(@codemirror/view@6.24.0)(@lezer/common@1.2.1)(@lezer/highlight@1.2.0)(@lezer/javascript@1.4.15)(@lezer/lr@1.4.0) + '@replit/codemirror-lang-svelte': 6.0.0(@codemirror/autocomplete@6.12.0)(@codemirror/lang-css@6.2.1)(@codemirror/lang-html@6.4.9)(@codemirror/lang-javascript@6.2.1)(@codemirror/language@6.10.1)(@codemirror/state@6.4.0)(@codemirror/view@6.24.0)(@lezer/common@1.2.1)(@lezer/highlight@1.2.0)(@lezer/javascript@1.4.16)(@lezer/lr@1.4.0) '@replit/codemirror-vim': 6.1.0(@codemirror/commands@6.3.3)(@codemirror/language@6.10.1)(@codemirror/search@6.5.6)(@codemirror/state@6.4.0)(@codemirror/view@6.24.0) '@rich_harris/svelte-split-pane': 1.1.2(svelte@4.2.9) '@rollup/browser': 3.29.4 @@ -2932,8 +2931,8 @@ packages: dependencies: undici-types: 5.26.5 - /@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 @@ -3568,10 +3567,10 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001614 - electron-to-chromium: 1.4.751 + caniuse-lite: 1.0.30001621 + electron-to-chromium: 1.4.777 node-releases: 2.0.14 - update-browserslist-db: 1.0.13(browserslist@4.23.0) + update-browserslist-db: 1.0.16(browserslist@4.23.0) dev: true /buffer-crc32@0.2.13: @@ -3657,8 +3656,8 @@ packages: resolution: {integrity: sha512-HMFNotUmLXn71BQxg8cijvqxnIAofforZOwGsxyXJ0qugTdspUF4sPSJ2vhgprHCB996tIDzEq1ubumPDV8ULA==} dev: true - /caniuse-lite@1.0.30001614: - resolution: {integrity: sha512-jmZQ1VpmlRwHgdP1/uiKzgiAuGOfLEJsYFP4+GBou/QQ4U6IOJCB4NP1c+1p9RGLpwObcT94jA5/uO+F1vBbog==} + /caniuse-lite@1.0.30001621: + resolution: {integrity: sha512-+NLXZiviFFKX0fk8Piwv3PfLPGtRqJeq2TiNoUff/qB5KJgwecJTvCXDpmlyP/eCI/GUEmp/h/y5j0yckiiZrA==} dev: true /chai@4.4.1: @@ -3903,8 +3902,8 @@ packages: resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} engines: {node: '>= 0.6'} - /core-js-compat@3.37.0: - resolution: {integrity: sha512-vYq4L+T8aS5UuFg4UwDhc7YNRWVeVZwltad9C/jV3R2LgVOpS9BDr7l/WL6BN0dbV3k1XejPTHqqEzJgsa0frA==} + /core-js-compat@3.37.1: + resolution: {integrity: sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==} dependencies: browserslist: 4.23.0 dev: true @@ -4255,8 +4254,8 @@ packages: resolution: {integrity: sha512-q4lkcbQrUdlzWCUOxk6fwEza6bNCfV12oi4AJph5UibguD1aTfL4uD0nuzFv9hbPANXQMuUS0MxPSHQ1gqq5dg==} dev: true - /electron-to-chromium@1.4.751: - resolution: {integrity: sha512-2DEPi++qa89SMGRhufWTiLmzqyuGmNF3SK4+PQetW1JKiZdEpF4XQonJXJCzyuYSA6mauiMhbyVhqYAP45Hvfw==} + /electron-to-chromium@1.4.777: + resolution: {integrity: sha512-n02NCwLJ3wexLfK/yQeqfywCblZqLcXphzmid5e8yVPdtEcida7li0A5WQKghHNG0FeOMCzeFOzEbtAh5riXFw==} dev: true /emoji-regex@10.3.0: @@ -4418,6 +4417,11 @@ packages: engines: {node: '>=6'} dev: true + /escalade@3.1.2: + resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + engines: {node: '>=6'} + dev: true + /escape-html@1.0.3: resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} dev: true @@ -4439,7 +4443,7 @@ packages: eslint: '>=6.0.0' dependencies: eslint: 9.0.0 - semver: 7.6.0 + semver: 7.6.2 dev: true /eslint-config-prettier@9.1.0(eslint@9.0.0): @@ -4455,8 +4459,8 @@ packages: resolution: {integrity: sha512-BVO83tRo090d6a04cl45Gb761SD79cOT6wKxxWrpsH7Rv8I0SJvc79ijE11vvyxxCMiGUVq/w4NqqPJAHyYfSQ==} dev: true - /eslint-plugin-svelte@2.38.0(eslint@9.0.0)(svelte@packages+svelte): - resolution: {integrity: sha512-IwwxhHzitx3dr0/xo0z4jjDlb2AAHBPKt+juMyKKGTLlKi1rZfA4qixMwnveU20/JTHyipM6keX4Vr7LZFYc9g==} + /eslint-plugin-svelte@2.39.0(eslint@9.0.0)(svelte@packages+svelte): + resolution: {integrity: sha512-FXktBLXsrxbA+6ZvJK2z/sQOrUKyzSg3fNWK5h0reSCjr2fjAsc9ai/s/JvSl4Hgvz3nYVtTIMwarZH5RcB7BA==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0-0 || ^9.0.0-0 @@ -4471,31 +4475,31 @@ packages: eslint: 9.0.0 eslint-compat-utils: 0.5.0(eslint@9.0.0) esutils: 2.0.3 - known-css-properties: 0.30.0 + known-css-properties: 0.31.0 postcss: 8.4.38 postcss-load-config: 3.1.4(postcss@8.4.38) postcss-safe-parser: 6.0.0(postcss@8.4.38) - postcss-selector-parser: 6.0.16 - semver: 7.6.0 + postcss-selector-parser: 6.1.0 + semver: 7.6.2 svelte: link:packages/svelte - svelte-eslint-parser: 0.35.0(svelte@packages+svelte) + svelte-eslint-parser: 0.36.0(svelte@packages+svelte) transitivePeerDependencies: - supports-color - ts-node dev: true - /eslint-plugin-unicorn@52.0.0(eslint@9.0.0): - resolution: {integrity: sha512-1Yzm7/m+0R4djH0tjDjfVei/ju2w3AzUGjG6q8JnuNIL5xIwsflyCooW5sfBvQp2pMYQFSWWCFONsjCax1EHng==} - engines: {node: '>=16'} + /eslint-plugin-unicorn@53.0.0(eslint@9.0.0): + resolution: {integrity: sha512-kuTcNo9IwwUCfyHGwQFOK/HjJAYzbODHN3wP0PgqbW+jbXqpNWxNVpVhj2tO9SixBwuAdmal8rVcWKBxwFnGuw==} + engines: {node: '>=18.18'} peerDependencies: eslint: '>=8.56.0' dependencies: '@babel/helper-validator-identifier': 7.24.5 '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0) - '@eslint/eslintrc': 2.1.4 + '@eslint/eslintrc': 3.1.0 ci-info: 4.0.0 clean-regexp: 1.0.0 - core-js-compat: 3.37.0 + core-js-compat: 3.37.1 eslint: 9.0.0 esquery: 1.5.0 indent-string: 4.0.0 @@ -4505,7 +4509,7 @@ packages: read-pkg-up: 7.0.1 regexp-tree: 0.1.27 regjsparser: 0.10.0 - semver: 7.6.0 + semver: 7.6.2 strip-indent: 3.0.0 transitivePeerDependencies: - supports-color @@ -5088,13 +5092,6 @@ packages: process: 0.11.10 dev: true - /globals@13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} - engines: {node: '>=8'} - dependencies: - type-fest: 0.20.2 - dev: true - /globals@14.0.0: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} @@ -5822,7 +5819,7 @@ packages: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} engines: {node: '>=6'} - /knip@4.2.1(@types/node@20.12.7)(typescript@5.4.5): + /knip@4.2.1(@types/node@20.12.12)(typescript@5.4.5): resolution: {integrity: sha512-KG++YCus11YyQQeiBxhXxv6NCJzol4AYER9q1kwZGFw+gwDzG/0Q6MN87McYFN74nGRX4O2xM5CA3TTPcbpn5A==} engines: {node: '>=18.6.0'} hasBin: true @@ -5838,7 +5835,7 @@ packages: '@pnpm/logger': 5.0.0 '@pnpm/workspace.pkgs-graph': 2.0.13(@pnpm/logger@5.0.0) '@snyk/github-codeowners': 1.1.0 - '@types/node': 20.12.7 + '@types/node': 20.12.12 '@types/picomatch': 2.3.3 easy-table: 1.2.0 fast-glob: 3.3.2 @@ -5860,8 +5857,8 @@ packages: - domexception dev: true - /known-css-properties@0.30.0: - resolution: {integrity: sha512-VSWXYUnsPu9+WYKkfmJyLKtIvaRJi1kXUqVmBACORXZQxT5oZDsoZ2vQP+bQFDnWtpI/4eq3MLoRMjI2fnLzTQ==} + /known-css-properties@0.31.0: + resolution: {integrity: sha512-sBPIUGTNF0czz0mwGGUoKKJC8Q7On1GPbCSFPfyEsfHb2DyBG0Y4QtV+EVWpINSaiGKZblDNuF5AezxSgOhesQ==} dev: true /levn@0.4.1: @@ -6880,6 +6877,10 @@ packages: /picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + /picocolors@1.0.1: + resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + dev: true + /picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} @@ -6982,8 +6983,8 @@ packages: postcss: 8.4.38 dev: true - /postcss-selector-parser@6.0.16: - resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==} + /postcss-selector-parser@6.1.0: + resolution: {integrity: sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==} engines: {node: '>=4'} dependencies: cssesc: 3.0.0 @@ -7007,7 +7008,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 @@ -7510,6 +7511,12 @@ packages: lru-cache: 6.0.0 dev: true + /semver@7.6.2: + resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} + engines: {node: '>=10'} + hasBin: true + dev: true + /send@0.18.0: resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} engines: {node: '>= 0.8.0'} @@ -8065,11 +8072,11 @@ packages: - sugarss dev: true - /svelte-eslint-parser@0.35.0(svelte@packages+svelte): - resolution: {integrity: sha512-CtbPseajW0gjwEvHiuzYJkPDjAcHz2FaHt540j6RVYrZgnE6xWkzUBodQ4I3nV+G5AS0Svt8K6aIA/CIU9xT2Q==} + /svelte-eslint-parser@0.36.0(svelte@packages+svelte): + resolution: {integrity: sha512-/6YmUSr0FAVxW8dXNdIMydBnddPMHzaHirAZ7RrT21XYdgGGZMh0LQG6CZsvAFS4r2Y4ItUuCQc8TQ3urB30mQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - svelte: ^3.37.0 || ^4.0.0 || ^5.0.0-next.112 + svelte: ^3.37.0 || ^4.0.0 || ^5.0.0-next.115 peerDependenciesMeta: svelte: optional: true @@ -8482,11 +8489,6 @@ packages: engines: {node: '>=10'} dev: true - /type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} - dev: true - /type-fest@0.6.0: resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} engines: {node: '>=8'} @@ -8649,15 +8651,15 @@ packages: picocolors: 1.0.0 dev: true - /update-browserslist-db@1.0.13(browserslist@4.23.0): - resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + /update-browserslist-db@1.0.16(browserslist@4.23.0): + resolution: {integrity: sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' dependencies: browserslist: 4.23.0 - escalade: 3.1.1 - picocolors: 1.0.0 + escalade: 3.1.2 + picocolors: 1.0.1 dev: true /uri-js@4.4.1: diff --git a/sites/svelte-5-preview/package.json b/sites/svelte-5-preview/package.json index 8325e66a87..e4c4cc3009 100644 --- a/sites/svelte-5-preview/package.json +++ b/sites/svelte-5-preview/package.json @@ -53,7 +53,7 @@ "esm-env": "^1.0.0", "marked": "^7.0.2", "resolve.exports": "^2.0.2", - "svelte-json-tree": "^2.1.0", + "svelte-json-tree": "^2.2.0", "zimmerframe": "^1.1.1" } } diff --git a/sites/svelte-5-preview/src/lib/Output/ReplProxy.js b/sites/svelte-5-preview/src/lib/Output/ReplProxy.js index a7a57bcb3f..0e45887bd7 100644 --- a/sites/svelte-5-preview/src/lib/Output/ReplProxy.js +++ b/sites/svelte-5-preview/src/lib/Output/ReplProxy.js @@ -1,27 +1,35 @@ let uid = 1; -const noop = () => {}; - export default class ReplProxy { /** @type {HTMLIFrameElement} */ iframe; /** @type {import("./proxy").Handlers} */ - handlers = { - on_fetch_progress: noop, - on_console: noop, - on_error: noop, - on_console_group: noop, - on_console_group_collapsed: noop, - on_console_group_end: noop, - on_unhandled_rejection: noop - }; + handlers; /** @type {Map void, reject: (value: any) => void }>} */ pending_cmds = new Map(); - /** @param {MessageEvent} e */ - handle_event = (e) => this.handle_repl_message(e); + /** @param {MessageEvent} event */ + handle_event = (event) => { + if (event.source !== this.iframe.contentWindow) return; + + const { action, args } = event.data; + + switch (action) { + case 'cmd_error': + case 'cmd_ok': + return this.handle_command_message(event.data); + case 'fetch_progress': + return this.handlers.on_fetch_progress(args.remaining); + case 'error': + return this.handlers.on_error(event.data); + case 'unhandledrejection': + return this.handlers.on_unhandled_rejection(event.data); + case 'console': + return this.handlers.on_console(event.data); + } + }; /** * @param {HTMLIFrameElement} iframe @@ -77,35 +85,6 @@ export default class ReplProxy { } } - /** - * @param {MessageEvent} event - */ - handle_repl_message(event) { - if (event.source !== this.iframe.contentWindow) return; - - const { action, args } = event.data; - - switch (action) { - case 'cmd_error': - case 'cmd_ok': - return this.handle_command_message(event.data); - case 'fetch_progress': - return this.handlers.on_fetch_progress(args.remaining); - case 'error': - return this.handlers.on_error(event.data); - case 'unhandledrejection': - return this.handlers.on_unhandled_rejection(event.data); - case 'console': - return this.handlers.on_console(event.data); - case 'console_group': - return this.handlers.on_console_group(event.data); - case 'console_group_collapsed': - return this.handlers.on_console_group_collapsed(event.data); - case 'console_group_end': - return this.handlers.on_console_group_end(event.data); - } - } - /** @param {string} script */ eval(script) { return this.iframe_command('eval', { script }); diff --git a/sites/svelte-5-preview/src/lib/Output/Viewer.svelte b/sites/svelte-5-preview/src/lib/Output/Viewer.svelte index 2944578830..db506ada3b 100644 --- a/sites/svelte-5-preview/src/lib/Output/Viewer.svelte +++ b/sites/svelte-5-preview/src/lib/Output/Viewer.svelte @@ -55,32 +55,36 @@ pending_imports = progress; }, on_error: (event) => { - push_logs({ level: 'error', args: [event.value] }); + push_logs({ command: 'error', args: [event.value] }); }, on_unhandled_rejection: (event) => { let error = event.value; if (typeof error === 'string') error = { message: error }; error.message = 'Uncaught (in promise): ' + error.message; - push_logs({ level: 'error', args: [error] }); + push_logs({ command: 'error', args: [error] }); }, on_console: (log) => { - if (log.level === 'clear') { - clear_logs(); - push_logs(log); - } else if (log.duplicate) { - increment_duplicate_log(); - } else { - push_logs(log); + switch (log.command) { + case 'clear': + clear_logs(); + push_logs(log); + break; + + case 'group': + group_logs(log); + break; + + case 'groupEnd': + ungroup_logs(); + break; + + case 'duplicate': + increment_duplicate_log(); + break; + + default: + push_logs(log); } - }, - on_console_group: (action) => { - group_logs(action.label, false); - }, - on_console_group_end: () => { - ungroup_logs(); - }, - on_console_group_collapsed: (action) => { - group_logs(action.label, true); } }); @@ -202,17 +206,13 @@ logs = logs; } - /** - * @param {string} label - * @param {boolean} collapsed - */ - function group_logs(label, collapsed) { - /** @type {import('./console/console').Log} */ - const group_log = { level: 'group', label, collapsed, logs: [] }; - current_log_group.push({ level: 'group', label, collapsed, logs: [] }); + /** @param {import('./console/console').Log} log */ + function group_logs(log) { + log.logs = []; + current_log_group.push(log); // TODO: Investigate log_group_stack.push(current_log_group); - current_log_group = group_log.logs ?? []; + current_log_group = log.logs; logs = logs; } @@ -284,7 +284,7 @@
- +
diff --git a/sites/svelte-5-preview/src/lib/Output/console/Console.svelte b/sites/svelte-5-preview/src/lib/Output/console/Console.svelte index c1adaff32f..e2a880aff8 100644 --- a/sites/svelte-5-preview/src/lib/Output/console/Console.svelte +++ b/sites/svelte-5-preview/src/lib/Output/console/Console.svelte @@ -3,12 +3,9 @@ /** @type {import('./console').Log[]} */ export let logs; - - /** @type {'light' | 'dark'} */ - export let theme; -
+
{#each logs as log} {/each} @@ -16,21 +13,34 @@ diff --git a/sites/svelte-5-preview/src/lib/Output/console/ConsoleLine.svelte b/sites/svelte-5-preview/src/lib/Output/console/ConsoleLine.svelte index 4c2be9ef83..f990cdc1be 100644 --- a/sites/svelte-5-preview/src/lib/Output/console/ConsoleLine.svelte +++ b/sites/svelte-5-preview/src/lib/Output/console/ConsoleLine.svelte @@ -4,137 +4,164 @@ /** @type {import('./console').Log} */ export let log; - export let level = 1; + export let depth = 1; function toggle_group_collapse() { log.collapsed = !log.collapsed; } -{#if log.args && log.level === 'table'} - +{#if log.command === 'table'} + {/if} - - {#if log.count && log.count > 1} - {log.count}x - {/if} - - {#if log.level === 'trace' || log.level === 'assert' || log.level === 'group'} - - {/if} +
+ +
+ {#if log.count && log.count > 1} + {log.count} + {/if} + + {#if log.stack || log.command === 'group'} + {'\u25B6'} + {/if} + + {#if log.command === 'clear'} + Console was cleared + {:else if log.command === 'unclonable'} + Message could not be cloned. Open devtools to see it + {:else if log.command === 'table'} + + {:else} + {#each log.args ?? [] as arg} + + {/each} + {/if} +
- {#if log.level === 'assert'} - Assertion failed: + {#if log.stack && !log.collapsed} +
+ {#each log.stack as line} + {line.label} + {line.location} + {/each} +
{/if} - {#if log.level === 'clear'} - Console was cleared - {:else if log.level === 'unclonable'} - Message could not be cloned. Open devtools to see it - {:else if log.level.startsWith('system')} - {#each log.args ?? [] as arg} - {arg} - {/each} - {:else if log.args && log.level === 'table'} - - {:else} - {#each log.args ?? [] as arg} - - {/each} - {/if} - {#each new Array(level - 1) as _, idx} + {#each new Array(depth - 1) as _, idx}
{/each} - +
-{#if log.level === 'group' && !log.collapsed} +{#if log.command === 'group' && !log.collapsed} {#each log.logs ?? [] as childLog} - + {/each} {/if} -{#if (log.level === 'trace' || log.level === 'assert') && !log.collapsed} -
- {#each log.stack?.split('\n').slice(2) ?? '' as stack} -
{stack.replace(/^\s*at\s+/, '')}
- {/each} -
-{/if} - diff --git a/sites/svelte-5-preview/src/lib/Output/console/ConsoleTable.svelte b/sites/svelte-5-preview/src/lib/Output/console/ConsoleTable.svelte index ce36a41608..cba9721807 100644 --- a/sites/svelte-5-preview/src/lib/Output/console/ConsoleTable.svelte +++ b/sites/svelte-5-preview/src/lib/Output/console/ConsoleTable.svelte @@ -7,28 +7,54 @@ /** @type {any} */ export let columns; - const INDEX_KEY = '(index)'; - const VALUE_KEY = 'Value'; - - $: keys = Object.keys(data); - $: columns_to_render = columns || get_columns_to_render(data, keys); + $: table = create_table(data, columns); /** * @param {any} data - * @param {string[]} keys + * @param {string[]} [custom_columns] */ - function get_columns_to_render(data, keys) { - const columns = new Set([INDEX_KEY]); - for (const key of keys) { + function create_table(data, custom_columns) { + let has_non_object = false; + const columns = new Set(); + + if (custom_columns) { + custom_columns.forEach((column) => columns.add(column)); + } else { + for (const key in data) { + const value = data[key]; + if (typeof value === 'object') { + Object.keys(value).forEach((key) => columns.add(key)); + } else { + has_non_object = true; + } + } + } + + const is_array = Array.isArray(data); + + const rows = Object.keys(data).map((key) => { const value = data[key]; - if (typeof value === 'object') { - Object.keys(value).forEach((key) => columns.add(key)); - } else { - columns.add(VALUE_KEY); + const values = []; + + for (const column of columns) { + values.push(typeof value === 'object' && column in value ? value[column] : ''); + } + + if (has_non_object) { + values.push(typeof value !== 'object' ? value : ''); } + + return { + key: is_array ? parseInt(key) : key, + values + }; + }); + + if (has_non_object) { + columns.add('Value'); } - return [...columns]; + return { columns, rows }; } @@ -36,24 +62,33 @@ - {#each columns_to_render as column} + + + {#each table.columns as column} {/each} + - {#each keys as key} + {#each table.rows as row} - {#each columns_to_render as column} - {#if column === INDEX_KEY} - - {:else if column === VALUE_KEY} - - {:else if column in data[key]} - + + {/if} + + + {#each row.values as value} + {/each} {/each} @@ -63,32 +98,48 @@ diff --git a/sites/svelte-5-preview/src/lib/Output/console/console.d.ts b/sites/svelte-5-preview/src/lib/Output/console/console.d.ts index 5c45fbade6..b69cbc98b2 100644 --- a/sites/svelte-5-preview/src/lib/Output/console/console.d.ts +++ b/sites/svelte-5-preview/src/lib/Output/console/console.d.ts @@ -1,19 +1,12 @@ export type Log = { - level: - | 'info' - | 'warn' - | 'error' - | 'table' - | 'group' - | 'trace' - | 'assert' - | 'clear' - | 'unclonable'; + command: 'info' | 'warn' | 'error' | 'table' | 'group' | 'clear' | 'unclonable'; action?: 'console'; args?: any[]; collapsed?: boolean; + expanded?: boolean; count?: number; logs?: Log[]; stack?: string; - label?: string; + data?: any; + columns?: string[]; }; diff --git a/sites/svelte-5-preview/src/lib/Output/proxy.d.ts b/sites/svelte-5-preview/src/lib/Output/proxy.d.ts index aad35e726e..b3f9fa8d1a 100644 --- a/sites/svelte-5-preview/src/lib/Output/proxy.d.ts +++ b/sites/svelte-5-preview/src/lib/Output/proxy.d.ts @@ -1,10 +1,4 @@ export type Handlers = Record< - | 'on_fetch_progress' - | 'on_error' - | 'on_unhandled_rejection' - | 'on_console' - | 'on_console_group' - | 'on_console_group_collapsed' - | 'on_console_group_end', + 'on_fetch_progress' | 'on_error' | 'on_unhandled_rejection' | 'on_console', (data: any) => void >; diff --git a/sites/svelte-5-preview/src/lib/Output/srcdoc/index.html b/sites/svelte-5-preview/src/lib/Output/srcdoc/index.html index e00819120b..bd9fdb2110 100644 --- a/sites/svelte-5-preview/src/lib/Output/srcdoc/index.html +++ b/sites/svelte-5-preview/src/lib/Output/srcdoc/index.html @@ -67,34 +67,25 @@
(index){column}
{key} + {#if typeof row.key === 'string'} + {row.key} {:else} - + {#if typeof value === 'string'} + {value} + {:else} + + {/if} +