diff --git a/.prettierrc.js b/.prettierrc.js index 043abc9..29c2482 100644 --- a/.prettierrc.js +++ b/.prettierrc.js @@ -7,7 +7,6 @@ module.exports = { singleQuote: true, arrowParens: 'avoid', bracketSameLine: true, - svelteStrictMode: true, svelteBracketNewLine: false, svelteAllowShorthand: true, svelteIndentScriptAndStyle: true, diff --git a/esbuild.config.mjs b/esbuild.config.mjs index 6d7cfe1..be53cee 100644 --- a/esbuild.config.mjs +++ b/esbuild.config.mjs @@ -1,10 +1,10 @@ -import { build } from 'esbuild' -import sveltePlugin from 'esbuild-svelte' -import sveltePreprocess from 'svelte-preprocess' -import { copy } from 'esbuild-plugin-copy' +import esbuild from 'esbuild' import process from 'process' import builtins from 'builtin-modules' +import esbuildSvelte from 'esbuild-svelte' +import { sveltePreprocess } from 'svelte-preprocess' import path from 'path' +import { copy } from 'esbuild-plugin-copy' const banner = `/* THIS IS A GENERATED/BUNDLED FILE BY ESBUILD @@ -14,7 +14,7 @@ if you want to view the source, please visit the github repository of this plugi const prod = process.argv[2] === 'production' -build({ +const context = await esbuild.context({ banner: { js: banner, }, @@ -24,54 +24,42 @@ build({ 'obsidian', 'electron', '@codemirror/autocomplete', - '@codemirror/closebrackets', '@codemirror/collab', '@codemirror/commands', - '@codemirror/comment', - '@codemirror/fold', - '@codemirror/gutter', - '@codemirror/highlight', - '@codemirror/history', '@codemirror/language', '@codemirror/lint', - '@codemirror/matchbrackets', - '@codemirror/panel', - '@codemirror/rangeset', - '@codemirror/rectangular-selection', '@codemirror/search', '@codemirror/state', - '@codemirror/stream-parser', - '@codemirror/text', - '@codemirror/tooltip', '@codemirror/view', + '@lezer/common', + '@lezer/highlight', + '@lezer/lr', ...builtins, ], outfile: path.join('./dist', 'main.js'), plugins: [ - sveltePlugin({ + esbuildSvelte({ + compilerOptions: { css: 'injected' }, preprocess: sveltePreprocess(), }), copy({ - assets: { - from: ['./assets/styles.css', 'manifest.json'], - to: ['./'], - }, - }), - { - name: 'resolve-minisearch', - setup(build) { - build.onResolve({ filter: /^minisearch$/ }, () => { - return { path: path.resolve('node_modules/minisearch/src/MiniSearch.ts') }; - }); - }, - }, + assets:{ + from: ['manifest.json','./assets/styles.css'], + to: ['./'] + } + }) ], format: 'cjs', - watch: !prod, target: 'chrome98', logLevel: 'info', sourcemap: prod ? false : 'inline', treeShaking: true, minify: prod, - legalComments: 'none', -}).catch(() => process.exit(1)) +}) + +if (prod) { + await context.rebuild() + process.exit(0) +} else { + await context.watch() +} diff --git a/package.json b/package.json index c6ce55e..edeb36d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "scambier.obsidian-search", - "version": "1.26.1", + "version": "1.27.0-beta.1", "description": "A search engine for Obsidian", "main": "dist/main.js", "scripts": { @@ -24,19 +24,19 @@ "@types/pako": "^2.0.3", "babel-jest": "^27.5.1", "builtin-modules": "^3.3.0", - "esbuild": "0.14.0", + "esbuild": "0.17.19", "esbuild-plugin-copy": "1.3.0", - "esbuild-svelte": "0.7.1", + "esbuild-svelte": "^0.9.2", "jest": "^27.5.1", "obsidian": "1.7.2", "prettier": "^2.8.8", "prettier-plugin-svelte": "^2.10.1", - "svelte": "^3.59.2", - "svelte-check": "^2.10.3", + "svelte": "^5.23.2", + "svelte-check": "^4.1.5", "svelte-jester": "^2.3.2", - "svelte-preprocess": "^4.10.7", + "svelte-preprocess": "^6.0.3", "tslib": "2.3.1", - "typescript": "^4.9.5", + "typescript": "^5.8.2", "vite": "^3.2.11" }, "dependencies": { @@ -46,7 +46,8 @@ "markdown-link-extractor": "^4.0.2", "minisearch": "7.1.0", "pure-md5": "^0.1.14", - "search-query-parser": "^1.6.0" + "search-query-parser": "^1.6.0", + "svelte-multiselect": "github:janosh/svelte-multiselect" }, "pnpm": { "overrides": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a3737d2..c11e71c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -32,6 +32,9 @@ importers: search-query-parser: specifier: ^1.6.0 version: 1.6.0 + svelte-multiselect: + specifier: github:janosh/svelte-multiselect + version: https://codeload.github.com/janosh/svelte-multiselect/tar.gz/91f22d0cafdf931607288d18c5268badd358d83b devDependencies: '@babel/preset-env': specifier: ^7.26.9 @@ -64,14 +67,14 @@ importers: specifier: ^3.3.0 version: 3.3.0 esbuild: - specifier: 0.14.0 - version: 0.14.0 + specifier: 0.17.19 + version: 0.17.19 esbuild-plugin-copy: specifier: 1.3.0 - version: 1.3.0(esbuild@0.14.0) + version: 1.3.0(esbuild@0.17.19) esbuild-svelte: - specifier: 0.7.1 - version: 0.7.1(esbuild@0.14.0)(svelte@3.59.2) + specifier: ^0.9.2 + version: 0.9.2(esbuild@0.17.19)(svelte@5.23.2) jest: specifier: ^27.5.1 version: 27.5.1 @@ -83,25 +86,25 @@ importers: version: 2.8.8 prettier-plugin-svelte: specifier: ^2.10.1 - version: 2.10.1(prettier@2.8.8)(svelte@3.59.2) + version: 2.10.1(prettier@2.8.8)(svelte@5.23.2) svelte: - specifier: ^3.59.2 - version: 3.59.2 + specifier: ^5.23.2 + version: 5.23.2 svelte-check: - specifier: ^2.10.3 - version: 2.10.3(@babel/core@7.26.10)(postcss@8.5.3)(sass@1.86.0)(svelte@3.59.2) + specifier: ^4.1.5 + version: 4.1.5(svelte@5.23.2)(typescript@5.8.2) svelte-jester: specifier: ^2.3.2 - version: 2.3.2(jest@27.5.1)(svelte@3.59.2) + version: 2.3.2(jest@27.5.1)(svelte@5.23.2) svelte-preprocess: - specifier: ^4.10.7 - version: 4.10.7(@babel/core@7.26.10)(postcss@8.5.3)(sass@1.86.0)(svelte@3.59.2)(typescript@4.9.5) + specifier: ^6.0.3 + version: 6.0.3(@babel/core@7.26.10)(postcss@8.5.3)(sass@1.86.0)(svelte@5.23.2)(typescript@5.8.2) tslib: specifier: 2.3.1 version: 2.3.1 typescript: - specifier: ^4.9.5 - version: 4.9.5 + specifier: ^5.8.2 + version: 5.8.2 vite: specifier: ^3.2.11 version: 3.2.11(@types/node@16.18.126)(sass@1.86.0) @@ -706,18 +709,150 @@ packages: '@codemirror/view@6.26.3': resolution: {integrity: sha512-gmqxkPALZjkgSxIeeweY/wGQXBfwTUaLs8h7OKtSwfbj9Ct3L11lD+u1sS7XHppxFQoMDiMDp07P9f3I2jWOHw==} + '@esbuild/android-arm64@0.17.19': + resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + '@esbuild/android-arm@0.15.18': resolution: {integrity: sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==} engines: {node: '>=12'} cpu: [arm] os: [android] + '@esbuild/android-arm@0.17.19': + resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.17.19': + resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.17.19': + resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.17.19': + resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.17.19': + resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.17.19': + resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.17.19': + resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.17.19': + resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.17.19': + resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + '@esbuild/linux-loong64@0.15.18': resolution: {integrity: sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==} engines: {node: '>=12'} cpu: [loong64] os: [linux] + '@esbuild/linux-loong64@0.17.19': + resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.17.19': + resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.17.19': + resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.17.19': + resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.17.19': + resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.17.19': + resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-x64@0.17.19': + resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-x64@0.17.19': + resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + + '@esbuild/sunos-x64@0.17.19': + resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.17.19': + resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.17.19': + resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.17.19': + resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + '@istanbuljs/load-nyc-config@1.1.0': resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} engines: {node: '>=8'} @@ -898,6 +1033,11 @@ packages: '@sinonjs/fake-timers@8.1.0': resolution: {integrity: sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==} + '@sveltejs/acorn-typescript@1.0.5': + resolution: {integrity: sha512-IwQk4yfwLdibDlrXVE04jTZYlLnwsTT2PIOQQGNLWfjavGifnk1JD1LcZjZaBTRcxZu2FfPfNLOE04DSu9lqtQ==} + peerDependencies: + acorn: ^8.9.0 + '@testing-library/jest-dom@5.17.0': resolution: {integrity: sha512-ynmNeT7asXyH3aSVv4vvX4Rb+0qjOhdNHnO/3vuZNqPmhDpV/+rCSGwQ7bLcmU2cJ4dvoheIO85LQj0IbJHEtg==} engines: {node: '>=8', npm: '>=6', yarn: '>=1'} @@ -957,13 +1097,6 @@ packages: '@types/prettier@2.7.3': resolution: {integrity: sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==} - '@types/pug@2.0.10': - resolution: {integrity: sha512-Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA==} - - '@types/sass@1.45.0': - resolution: {integrity: sha512-jn7qwGFmJHwUSphV8zZneO3GmtlgLsmhs/LQyVvQbIIa+fzGMUiHI4HXJZL3FT8MJmgXWbLGiVVY7ElvHq6vDA==} - deprecated: This is a stub types definition. sass provides its own type definitions, so you do not need this installed. - '@types/stack-utils@2.0.3': resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} @@ -1038,6 +1171,10 @@ packages: asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + axobject-query@4.1.0: + resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} + engines: {node: '>= 0.4'} + babel-jest@27.5.1: resolution: {integrity: sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -1081,10 +1218,6 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - binary-extensions@2.3.0: - resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} - engines: {node: '>=8'} - boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} @@ -1106,9 +1239,6 @@ packages: bser@2.1.1: resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} - buffer-crc32@0.2.13: - resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} - buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} @@ -1157,10 +1287,6 @@ packages: resolution: {integrity: sha512-quS9HgjQpdaXOvsZz82Oz7uxtXiy6UIsIQcpBj7HRw2M63Skasm9qlDocAM7jNuaxdhpPU7c4kJN+gA5MCu4ww==} engines: {node: '>=18.17'} - chokidar@3.6.0: - resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} - engines: {node: '>= 8.10.0'} - chokidar@4.0.3: resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} engines: {node: '>= 14.16.0'} @@ -1175,10 +1301,17 @@ packages: cliui@7.0.4: resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} + clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} + co@4.6.0: resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + code-red@1.0.4: + resolution: {integrity: sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==} + collect-v8-coverage@1.0.2: resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==} @@ -1212,6 +1345,10 @@ packages: css-select@5.1.0: resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} + 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} + css-what@6.1.0: resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} engines: {node: '>= 6'} @@ -1256,10 +1393,6 @@ packages: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} - detect-indent@6.1.0: - resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} - engines: {node: '>=8'} - detect-libc@1.0.3: resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} engines: {node: '>=0.10'} @@ -1341,130 +1474,72 @@ packages: resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} engines: {node: '>= 0.4'} - es6-promise@3.3.1: - resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==} - esbuild-android-64@0.15.18: resolution: {integrity: sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA==} engines: {node: '>=12'} cpu: [x64] os: [android] - esbuild-android-arm64@0.14.0: - resolution: {integrity: sha512-X7BjFiRRNfxPNg1aT5zw4xK1vbvX2IvDPcEp4bv0CEXgR39UzuOMUsQoG92aZgj8JGs8jxQAZc8k9dVJ1WL2BA==} - cpu: [arm64] - os: [android] - esbuild-android-arm64@0.15.18: resolution: {integrity: sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ==} engines: {node: '>=12'} cpu: [arm64] os: [android] - esbuild-darwin-64@0.14.0: - resolution: {integrity: sha512-43vtt407jMp1kEXiaY0dEIGjOREax9F1+qMI0+F9tJyr06EHAofnbLL6cTmLgdPy/pMhltSvOJ8EddJrrOBgpQ==} - cpu: [x64] - os: [darwin] - esbuild-darwin-64@0.15.18: resolution: {integrity: sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg==} engines: {node: '>=12'} cpu: [x64] os: [darwin] - esbuild-darwin-arm64@0.14.0: - resolution: {integrity: sha512-hMbT5YiBrFL763mnwR9BqNtq9XtJgJRxYs7Ad++KUd+ZhMoVE0Rs/YLe1oor9uBGhHLqQsZuJ2dUHjCsfT/iDg==} - cpu: [arm64] - os: [darwin] - esbuild-darwin-arm64@0.15.18: resolution: {integrity: sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] - esbuild-freebsd-64@0.14.0: - resolution: {integrity: sha512-mx68HRYIZo6ZiHbWk5Md+mDJoDw779yWkJQAaBnXwOkGbDeA3JmPZjp6IPfy2P+n3emK9z6g4pKiebp1tQGVoQ==} - cpu: [x64] - os: [freebsd] - esbuild-freebsd-64@0.15.18: resolution: {integrity: sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] - esbuild-freebsd-arm64@0.14.0: - resolution: {integrity: sha512-iM8u+zTagh0WGn2FTTxi7DII/ycVzYyuf2Df6eP2ZX+vlx2FjaduhagRkpyhjfmEyhfJOrYSAR5R1biNPcA+VA==} - cpu: [arm64] - os: [freebsd] - esbuild-freebsd-arm64@0.15.18: resolution: {integrity: sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] - esbuild-linux-32@0.14.0: - resolution: {integrity: sha512-dWHotI2qlXWZyza7n85UubBj0asjpM7FTtQYDaRQKxoCJpCnSzq3aD55IJthiggZHXj2tAML9Bc5xjVLsBJR0w==} - cpu: [ia32] - os: [linux] - esbuild-linux-32@0.15.18: resolution: {integrity: sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg==} engines: {node: '>=12'} cpu: [ia32] os: [linux] - esbuild-linux-64@0.14.0: - resolution: {integrity: sha512-7buo31kp1/yKWPm9vU44FEUwkeIROrIgnCDV9KLMLSbOjGEHBZXYJ2L0p4ZnB7Z+m5YiW7F/AfJu0/1E87nOeQ==} - cpu: [x64] - os: [linux] - esbuild-linux-64@0.15.18: resolution: {integrity: sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw==} engines: {node: '>=12'} cpu: [x64] os: [linux] - esbuild-linux-arm64@0.14.0: - resolution: {integrity: sha512-9LBtCH2RkhDBwoAYksTtXljN6hlxxoL6a3ymNfXJG9JxFUQddOfhajXZdObFn/hgGkAFwx8dXqw+FnPm0FCzSg==} - cpu: [arm64] - os: [linux] - esbuild-linux-arm64@0.15.18: resolution: {integrity: sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug==} engines: {node: '>=12'} cpu: [arm64] os: [linux] - esbuild-linux-arm@0.14.0: - resolution: {integrity: sha512-fgybXQwPRT4Io01+aD+yphcLOLRVGqbSdhvaDK3qBwqUvspFsq4QkI7PeeYpuQdBZWiRKLoi9v5r90l7JO/s+g==} - cpu: [arm] - os: [linux] - esbuild-linux-arm@0.15.18: resolution: {integrity: sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA==} engines: {node: '>=12'} cpu: [arm] os: [linux] - esbuild-linux-mips64le@0.14.0: - resolution: {integrity: sha512-Xz7soOqWeCWcLp15biPM08To+s0k1E/2q0pQZNQ+SY9S5H2vU4ujDXqKjxFc24G9CrOeUNEOXTkh+JldBGbTCA==} - cpu: [mips64el] - os: [linux] - esbuild-linux-mips64le@0.15.18: resolution: {integrity: sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] - esbuild-linux-ppc64le@0.14.0: - resolution: {integrity: sha512-fuBXTyUaZKxpmp43Nf0M1uI1OmZv/COcME9PG7NQ/EniwC680Xj5xQFhEBDVnvQQ+6xOnXdfPSojJq7gQxrORQ==} - cpu: [ppc64] - os: [linux] - esbuild-linux-ppc64le@0.15.18: resolution: {integrity: sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w==} engines: {node: '>=12'} @@ -1483,22 +1558,12 @@ packages: cpu: [s390x] os: [linux] - esbuild-netbsd-64@0.14.0: - resolution: {integrity: sha512-pQaECTKr/iCXtn1qjwih+cvoZzbZ+P3NwLQo4uo/IesklbPTR5eF4d85L1vPFVgff+itBMxbbB7aoRznSglN3A==} - cpu: [x64] - os: [netbsd] - esbuild-netbsd-64@0.15.18: resolution: {integrity: sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] - esbuild-openbsd-64@0.14.0: - resolution: {integrity: sha512-HiaqQX9HMb9u3eYvKZ86+m/paQwASJSIjXiRTFpFusypjtU2NJqWb/LiRvhfmwC6rb7YHwCSPx+juSM7M+20bA==} - cpu: [x64] - os: [openbsd] - esbuild-openbsd-64@0.15.18: resolution: {integrity: sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ==} engines: {node: '>=12'} @@ -1510,28 +1575,18 @@ packages: peerDependencies: esbuild: ^0.14.0 - esbuild-sunos-64@0.14.0: - resolution: {integrity: sha512-TkMQOSiSU3fHLV3M+OKUgLZt5L7TpcBcMRvtFw1cTxAnX8eT+1qkWVLiDM8ow1C3P7PW3bkGY3LW8vOs8o/jBA==} - cpu: [x64] - os: [sunos] - esbuild-sunos-64@0.15.18: resolution: {integrity: sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw==} engines: {node: '>=12'} cpu: [x64] os: [sunos] - esbuild-svelte@0.7.1: - resolution: {integrity: sha512-83vRAJ2OmoKxmK+rLFZVmyv5bJ8ahsYQwJ2RGmNAlHBIHq4ENUwA/hiwA2+AohrWD1BgZnGPMj8DL3l0I0xkug==} - engines: {node: '>=14'} + esbuild-svelte@0.9.2: + resolution: {integrity: sha512-8Jq6+rh+g1E2mkBOZKdYZ8JtlbtDq2Fydwvn+/cBvUX9S0cdKv6AISZcEbErKQ0TpLC/Cv04l1vKaqXOBO8+VQ==} + engines: {node: '>=18'} peerDependencies: - esbuild: '>=0.9.6' - svelte: '>=3.43.0' - - esbuild-windows-32@0.14.0: - resolution: {integrity: sha512-0h7E50JHgyLd7TkqSIH0VzBhngWspxPHuq/crDAMnh4s4tW8zWCMLIz2c1HVwHfZsh7d5+C4/yBaQeJTHXGvIA==} - cpu: [ia32] - os: [win32] + esbuild: '>=0.17.0' + svelte: '>=4.2.1 <6' esbuild-windows-32@0.15.18: resolution: {integrity: sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ==} @@ -1539,37 +1594,28 @@ packages: cpu: [ia32] os: [win32] - esbuild-windows-64@0.14.0: - resolution: {integrity: sha512-RxnovPOoQS5Id4mbdIUm96L0GIg+ZME4FthbErw1kZZabLi9eLp1gR3vSwkZXKbK8Z76uDkSW0EN74i1XWVpiQ==} - cpu: [x64] - os: [win32] - esbuild-windows-64@0.15.18: resolution: {integrity: sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw==} engines: {node: '>=12'} cpu: [x64] os: [win32] - esbuild-windows-arm64@0.14.0: - resolution: {integrity: sha512-66KsVlT6lGDWgDKQsAlojxgUhZkkjVeosMVRdb913OwtcOjszceg6zFD748jzp9CUgAseHCNJqFmYOyBzneSEQ==} - cpu: [arm64] - os: [win32] - esbuild-windows-arm64@0.15.18: resolution: {integrity: sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ==} engines: {node: '>=12'} cpu: [arm64] os: [win32] - esbuild@0.14.0: - resolution: {integrity: sha512-UOnSKRAyZondxdLrOXnI/mesUmU/GvDTcajCvxoIaObzMeQcn0HyoGtvbfATnazlx799ZqFSyIZGLXFszkjy3A==} - hasBin: true - esbuild@0.15.18: resolution: {integrity: sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==} engines: {node: '>=12'} hasBin: true + esbuild@0.17.19: + resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==} + engines: {node: '>=12'} + hasBin: true + escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} @@ -1583,15 +1629,24 @@ packages: engines: {node: '>=6.0'} hasBin: true + esm-env@1.2.2: + resolution: {integrity: sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==} + esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} engines: {node: '>=4'} hasBin: true + esrap@1.4.5: + resolution: {integrity: sha512-CjNMjkBWWZeHn+VX+gS8YvFwJ5+NDhg8aWZBSFJPR8qQduDNjbJodA2WcwCm7uQa5Rjqj+nZvVmceg1RbHFB9g==} + estraverse@5.3.0: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} + estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} @@ -1621,6 +1676,14 @@ packages: fb-watchman@2.0.2: resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} + fdir@6.4.3: + resolution: {integrity: sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} @@ -1751,10 +1814,6 @@ packages: immutable@5.0.3: resolution: {integrity: sha512-P8IdPQHq3lA1xVeBRi5VPqUm5HDgKnx0Ru51wZz5mjxHr5n3RWhjIpOFU7ybkUxfB+5IToy+OLaHYDBIWsv+uw==} - import-fresh@3.3.1: - resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} - engines: {node: '>=6'} - import-local@3.2.0: resolution: {integrity: sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==} engines: {node: '>=8'} @@ -1778,10 +1837,6 @@ packages: is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} - is-core-module@2.16.1: resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} engines: {node: '>= 0.4'} @@ -1809,6 +1864,9 @@ packages: is-potential-custom-element-name@1.0.1: resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} + is-reference@3.0.3: + resolution: {integrity: sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==} + is-stream@2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} @@ -2025,6 +2083,9 @@ packages: lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + locate-character@3.0.0: + resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} + locate-path@5.0.0: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} engines: {node: '>=8'} @@ -2041,8 +2102,8 @@ packages: lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - magic-string@0.25.9: - resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} + magic-string@0.30.17: + resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} make-dir@4.0.0: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} @@ -2063,6 +2124,9 @@ packages: resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} engines: {node: '>= 0.4'} + mdn-data@2.0.30: + resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} + merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} @@ -2093,16 +2157,9 @@ packages: minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - minisearch@7.1.0: resolution: {integrity: sha512-tv7c/uefWdEhcu6hvrfTihflgeEi2tN6VV7HJnCjK6VxM75QQJh4t9FwJCsA2EsRS8LCnu3W87CuGPWMocOLCA==} - mkdirp@0.5.6: - resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} - hasBin: true - moment@2.29.4: resolution: {integrity: sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==} @@ -2169,10 +2226,6 @@ packages: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} - parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} - parse-json@5.2.0: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} @@ -2208,6 +2261,9 @@ packages: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} + periscopic@3.1.0: + resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} + picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} @@ -2265,10 +2321,6 @@ packages: react-is@17.0.2: resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} - readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} - readdirp@4.1.2: resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} engines: {node: '>= 14.18.0'} @@ -2312,10 +2364,6 @@ packages: resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} engines: {node: '>=8'} - resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} - resolve-from@5.0.0: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} engines: {node: '>=8'} @@ -2333,11 +2381,6 @@ packages: resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - rimraf@2.7.1: - resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} - deprecated: Rimraf versions prior to v4 are no longer supported - hasBin: true - rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} deprecated: Rimraf versions prior to v4 are no longer supported @@ -2358,9 +2401,6 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - sander@0.5.1: - resolution: {integrity: sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==} - sass@1.86.0: resolution: {integrity: sha512-zV8vGUld/+mP4KbMLJMX7TyGCuUp7hnkOScgCMsWuHtns8CWBoz+vmEhoGMXsaJrbUP8gj+F1dLvVe79sK8UdA==} engines: {node: '>=14.0.0'} @@ -2400,10 +2440,6 @@ packages: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} - sorcery@0.10.0: - resolution: {integrity: sha512-R5ocFmKZQFfSTstfOtHjJuAwbpGyf9qjQa1egyhvXSbM7emjrtLXtGdZsDJDABC85YBfVvrOiGWKSYXPKdvP1g==} - hasBin: true - source-map-js@1.2.1: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} @@ -2419,10 +2455,6 @@ packages: resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} engines: {node: '>= 8'} - sourcemap-codec@1.4.8: - resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} - deprecated: Please use @jridgewell/sourcemap-codec instead - sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} @@ -2477,11 +2509,13 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - svelte-check@2.10.3: - resolution: {integrity: sha512-Nt1aWHTOKFReBpmJ1vPug0aGysqPwJh2seM1OvICfM2oeyaA62mOiy5EvkXhltGfhCcIQcq2LoE0l1CwcWPjlw==} + svelte-check@4.1.5: + resolution: {integrity: sha512-Gb0T2IqBNe1tLB9EB1Qh+LOe+JB8wt2/rNBDGvkxQVvk8vNeAoG+vZgFB/3P5+zC7RWlyBlzm9dVjZFph/maIg==} + engines: {node: '>= 18.0.0'} hasBin: true peerDependencies: - svelte: ^3.24.0 + svelte: ^4.0.0 || ^5.0.0-next.0 + typescript: '>=5.0.0' svelte-jester@2.3.2: resolution: {integrity: sha512-JtxSz4FWAaCRBXbPsh4LcDs4Ua7zdXgLC0TZvT1R56hRV0dymmNP+abw67DTPF7sQPyNxWsOKd0Sl7Q8SnP8kg==} @@ -2490,22 +2524,25 @@ packages: jest: '>= 27' svelte: '>= 3' - svelte-preprocess@4.10.7: - resolution: {integrity: sha512-sNPBnqYD6FnmdBrUmBCaqS00RyCsCpj2BG58A1JBswNF7b0OKviwxqVrOL/CKyJrLSClrSeqQv5BXNg2RUbPOw==} - engines: {node: '>= 9.11.2'} + svelte-multiselect@https://codeload.github.com/janosh/svelte-multiselect/tar.gz/91f22d0cafdf931607288d18c5268badd358d83b: + resolution: {tarball: https://codeload.github.com/janosh/svelte-multiselect/tar.gz/91f22d0cafdf931607288d18c5268badd358d83b} + version: 11.0.0-rc.1 + + svelte-preprocess@6.0.3: + resolution: {integrity: sha512-PLG2k05qHdhmRG7zR/dyo5qKvakhm8IJ+hD2eFRQmMLHp7X3eJnjeupUtvuRpbNiF31RjVw45W+abDwHEmP5OA==} + engines: {node: '>= 18.0.0'} peerDependencies: '@babel/core': ^7.10.2 coffeescript: ^2.5.1 less: ^3.11.3 || ^4.0.0 - node-sass: '*' postcss: ^7 || ^8 - postcss-load-config: ^2.1.0 || ^3.0.0 || ^4.0.0 + postcss-load-config: '>=3' pug: ^3.0.0 sass: ^1.26.8 - stylus: ^0.55.0 - sugarss: ^2.0.0 - svelte: ^3.23.0 - typescript: ^3.9.5 || ^4.0.0 + stylus: '>=0.55' + sugarss: ^2.0.0 || ^3.0.0 || ^4.0.0 + svelte: ^4.0.0 || ^5.0.0-next.100 || ^5.0.0 + typescript: ^5.0.0 peerDependenciesMeta: '@babel/core': optional: true @@ -2513,8 +2550,6 @@ packages: optional: true less: optional: true - node-sass: - optional: true postcss: optional: true postcss-load-config: @@ -2530,9 +2565,13 @@ packages: typescript: optional: true - svelte@3.59.2: - resolution: {integrity: sha512-vzSyuGr3eEoAtT/A6bmajosJZIUWySzY2CzB3w2pgPvnkUjGqlDnsNnA0PMO+mMAhuyMul6C2uuZzY6ELSkzyA==} - engines: {node: '>= 8'} + svelte@4.2.12: + resolution: {integrity: sha512-d8+wsh5TfPwqVzbm4/HCXC783/KPHV60NvwitJnyTA5lWn1elhXMNWhXGCJ7PwPa8qFUnyJNIyuIRt2mT0WMug==} + engines: {node: '>=16'} + + svelte@5.23.2: + resolution: {integrity: sha512-PHP1o0aYJNMatiZ+0nq1W/Z1W1/l5Z94B9nhMIo7gsuTBbxC454g4O5SQMjQpZBUZi5ANYUrXJOE4gPzcN/VQw==} + engines: {node: '>=18'} symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} @@ -2577,9 +2616,9 @@ packages: typedarray-to-buffer@3.1.5: resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} - typescript@4.9.5: - resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} - engines: {node: '>=4.2.0'} + typescript@5.8.2: + resolution: {integrity: sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==} + engines: {node: '>=14.17'} hasBin: true undici@6.21.2: @@ -2736,6 +2775,9 @@ packages: resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} engines: {node: '>=10'} + zimmerframe@1.1.2: + resolution: {integrity: sha512-rAbqEGa8ovJy4pyBxZM70hg4pE6gDgaQ0Sl9M3enG3I0d6H4XSAM3GeNGLKnsBpuijUow064sf7ww1nutC5/3w==} + snapshots: '@adobe/css-tools@4.4.2': {} @@ -3496,12 +3538,78 @@ snapshots: style-mod: 4.1.2 w3c-keyname: 2.2.8 + '@esbuild/android-arm64@0.17.19': + optional: true + '@esbuild/android-arm@0.15.18': optional: true + '@esbuild/android-arm@0.17.19': + optional: true + + '@esbuild/android-x64@0.17.19': + optional: true + + '@esbuild/darwin-arm64@0.17.19': + optional: true + + '@esbuild/darwin-x64@0.17.19': + optional: true + + '@esbuild/freebsd-arm64@0.17.19': + optional: true + + '@esbuild/freebsd-x64@0.17.19': + optional: true + + '@esbuild/linux-arm64@0.17.19': + optional: true + + '@esbuild/linux-arm@0.17.19': + optional: true + + '@esbuild/linux-ia32@0.17.19': + optional: true + '@esbuild/linux-loong64@0.15.18': optional: true + '@esbuild/linux-loong64@0.17.19': + optional: true + + '@esbuild/linux-mips64el@0.17.19': + optional: true + + '@esbuild/linux-ppc64@0.17.19': + optional: true + + '@esbuild/linux-riscv64@0.17.19': + optional: true + + '@esbuild/linux-s390x@0.17.19': + optional: true + + '@esbuild/linux-x64@0.17.19': + optional: true + + '@esbuild/netbsd-x64@0.17.19': + optional: true + + '@esbuild/openbsd-x64@0.17.19': + optional: true + + '@esbuild/sunos-x64@0.17.19': + optional: true + + '@esbuild/win32-arm64@0.17.19': + optional: true + + '@esbuild/win32-ia32@0.17.19': + optional: true + + '@esbuild/win32-x64@0.17.19': + optional: true + '@istanbuljs/load-nyc-config@1.1.0': dependencies: camelcase: 5.3.1 @@ -3758,6 +3866,10 @@ snapshots: dependencies: '@sinonjs/commons': 1.8.6 + '@sveltejs/acorn-typescript@1.0.5(acorn@8.14.1)': + dependencies: + acorn: 8.14.1 + '@testing-library/jest-dom@5.17.0': dependencies: '@adobe/css-tools': 4.4.2 @@ -3832,12 +3944,6 @@ snapshots: '@types/prettier@2.7.3': {} - '@types/pug@2.0.10': {} - - '@types/sass@1.45.0': - dependencies: - sass: 1.86.0 - '@types/stack-utils@2.0.3': {} '@types/tern@0.23.9': @@ -3900,6 +4006,8 @@ snapshots: asynckit@0.4.0: {} + axobject-query@4.1.0: {} + babel-jest@27.5.1(@babel/core@7.26.10): dependencies: '@babel/core': 7.26.10 @@ -3982,8 +4090,6 @@ snapshots: balanced-match@1.0.2: {} - binary-extensions@2.3.0: {} - boolbase@1.0.0: {} brace-expansion@1.1.11: @@ -4008,8 +4114,6 @@ snapshots: dependencies: node-int64: 0.4.0 - buffer-crc32@0.2.13: {} - buffer-from@1.1.2: {} builtin-modules@3.3.0: {} @@ -4064,18 +4168,6 @@ snapshots: undici: 6.21.2 whatwg-mimetype: 4.0.0 - chokidar@3.6.0: - dependencies: - anymatch: 3.1.3 - braces: 3.0.3 - glob-parent: 5.1.2 - is-binary-path: 2.1.0 - is-glob: 4.0.3 - normalize-path: 3.0.0 - readdirp: 3.6.0 - optionalDependencies: - fsevents: 2.3.3 - chokidar@4.0.3: dependencies: readdirp: 4.1.2 @@ -4090,8 +4182,18 @@ snapshots: strip-ansi: 6.0.1 wrap-ansi: 7.0.0 + clsx@2.1.1: {} + co@4.6.0: {} + code-red@1.0.4: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + '@types/estree': 1.0.6 + acorn: 8.14.1 + estree-walker: 3.0.3 + periscopic: 3.1.0 + collect-v8-coverage@1.0.2: {} color-convert@2.0.1: @@ -4128,6 +4230,11 @@ snapshots: domutils: 3.2.2 nth-check: 2.1.1 + css-tree@2.3.1: + dependencies: + mdn-data: 2.0.30 + source-map-js: 1.2.1 + css-what@6.1.0: {} css.escape@1.5.1: {} @@ -4158,8 +4265,6 @@ snapshots: delayed-stream@1.0.0: {} - detect-indent@6.1.0: {} - detect-libc@1.0.3: optional: true @@ -4235,74 +4340,39 @@ snapshots: has-tostringtag: 1.0.2 hasown: 2.0.2 - es6-promise@3.3.1: {} - esbuild-android-64@0.15.18: optional: true - esbuild-android-arm64@0.14.0: - optional: true - esbuild-android-arm64@0.15.18: optional: true - esbuild-darwin-64@0.14.0: - optional: true - esbuild-darwin-64@0.15.18: optional: true - esbuild-darwin-arm64@0.14.0: - optional: true - esbuild-darwin-arm64@0.15.18: optional: true - esbuild-freebsd-64@0.14.0: - optional: true - esbuild-freebsd-64@0.15.18: optional: true - esbuild-freebsd-arm64@0.14.0: - optional: true - esbuild-freebsd-arm64@0.15.18: optional: true - esbuild-linux-32@0.14.0: - optional: true - esbuild-linux-32@0.15.18: optional: true - esbuild-linux-64@0.14.0: - optional: true - esbuild-linux-64@0.15.18: optional: true - esbuild-linux-arm64@0.14.0: - optional: true - esbuild-linux-arm64@0.15.18: optional: true - esbuild-linux-arm@0.14.0: - optional: true - esbuild-linux-arm@0.15.18: optional: true - esbuild-linux-mips64le@0.14.0: - optional: true - esbuild-linux-mips64le@0.15.18: optional: true - esbuild-linux-ppc64le@0.14.0: - optional: true - esbuild-linux-ppc64le@0.15.18: optional: true @@ -4312,74 +4382,37 @@ snapshots: esbuild-linux-s390x@0.15.18: optional: true - esbuild-netbsd-64@0.14.0: - optional: true - esbuild-netbsd-64@0.15.18: optional: true - esbuild-openbsd-64@0.14.0: - optional: true - esbuild-openbsd-64@0.15.18: optional: true - esbuild-plugin-copy@1.3.0(esbuild@0.14.0): + esbuild-plugin-copy@1.3.0(esbuild@0.17.19): dependencies: chalk: 4.1.2 - esbuild: 0.14.0 + esbuild: 0.17.19 fs-extra: 10.1.0 globby: 11.1.0 - esbuild-sunos-64@0.14.0: - optional: true - esbuild-sunos-64@0.15.18: optional: true - esbuild-svelte@0.7.1(esbuild@0.14.0)(svelte@3.59.2): + esbuild-svelte@0.9.2(esbuild@0.17.19)(svelte@5.23.2): dependencies: - esbuild: 0.14.0 - svelte: 3.59.2 - - esbuild-windows-32@0.14.0: - optional: true + '@jridgewell/trace-mapping': 0.3.25 + esbuild: 0.17.19 + svelte: 5.23.2 esbuild-windows-32@0.15.18: optional: true - esbuild-windows-64@0.14.0: - optional: true - esbuild-windows-64@0.15.18: optional: true - esbuild-windows-arm64@0.14.0: - optional: true - esbuild-windows-arm64@0.15.18: optional: true - esbuild@0.14.0: - optionalDependencies: - esbuild-android-arm64: 0.14.0 - esbuild-darwin-64: 0.14.0 - esbuild-darwin-arm64: 0.14.0 - esbuild-freebsd-64: 0.14.0 - esbuild-freebsd-arm64: 0.14.0 - esbuild-linux-32: 0.14.0 - esbuild-linux-64: 0.14.0 - esbuild-linux-arm: 0.14.0 - esbuild-linux-arm64: 0.14.0 - esbuild-linux-mips64le: 0.14.0 - esbuild-linux-ppc64le: 0.14.0 - esbuild-netbsd-64: 0.14.0 - esbuild-openbsd-64: 0.14.0 - esbuild-sunos-64: 0.14.0 - esbuild-windows-32: 0.14.0 - esbuild-windows-64: 0.14.0 - esbuild-windows-arm64: 0.14.0 - esbuild@0.15.18: optionalDependencies: '@esbuild/android-arm': 0.15.18 @@ -4405,6 +4438,31 @@ snapshots: esbuild-windows-64: 0.15.18 esbuild-windows-arm64: 0.15.18 + esbuild@0.17.19: + optionalDependencies: + '@esbuild/android-arm': 0.17.19 + '@esbuild/android-arm64': 0.17.19 + '@esbuild/android-x64': 0.17.19 + '@esbuild/darwin-arm64': 0.17.19 + '@esbuild/darwin-x64': 0.17.19 + '@esbuild/freebsd-arm64': 0.17.19 + '@esbuild/freebsd-x64': 0.17.19 + '@esbuild/linux-arm': 0.17.19 + '@esbuild/linux-arm64': 0.17.19 + '@esbuild/linux-ia32': 0.17.19 + '@esbuild/linux-loong64': 0.17.19 + '@esbuild/linux-mips64el': 0.17.19 + '@esbuild/linux-ppc64': 0.17.19 + '@esbuild/linux-riscv64': 0.17.19 + '@esbuild/linux-s390x': 0.17.19 + '@esbuild/linux-x64': 0.17.19 + '@esbuild/netbsd-x64': 0.17.19 + '@esbuild/openbsd-x64': 0.17.19 + '@esbuild/sunos-x64': 0.17.19 + '@esbuild/win32-arm64': 0.17.19 + '@esbuild/win32-ia32': 0.17.19 + '@esbuild/win32-x64': 0.17.19 + escalade@3.2.0: {} escape-string-regexp@2.0.0: {} @@ -4417,10 +4475,20 @@ snapshots: optionalDependencies: source-map: 0.6.1 + esm-env@1.2.2: {} + esprima@4.0.1: {} + esrap@1.4.5: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + estraverse@5.3.0: {} + estree-walker@3.0.3: + dependencies: + '@types/estree': 1.0.6 + esutils@2.0.3: {} execa@5.1.1: @@ -4462,6 +4530,8 @@ snapshots: dependencies: bser: 2.1.1 + fdir@6.4.3: {} + fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 @@ -4601,12 +4671,8 @@ snapshots: ignore@5.3.2: {} - immutable@5.0.3: {} - - import-fresh@3.3.1: - dependencies: - parent-module: 1.0.1 - resolve-from: 4.0.0 + immutable@5.0.3: + optional: true import-local@3.2.0: dependencies: @@ -4626,10 +4692,6 @@ snapshots: is-arrayish@0.2.1: {} - is-binary-path@2.1.0: - dependencies: - binary-extensions: 2.3.0 - is-core-module@2.16.1: dependencies: hasown: 2.0.2 @@ -4648,6 +4710,10 @@ snapshots: is-potential-custom-element-name@1.0.1: {} + is-reference@3.0.3: + dependencies: + '@types/estree': 1.0.6 + is-stream@2.0.1: {} is-typedarray@1.0.0: {} @@ -5103,6 +5169,8 @@ snapshots: lines-and-columns@1.2.4: {} + locate-character@3.0.0: {} + locate-path@5.0.0: dependencies: p-locate: 4.1.0 @@ -5117,9 +5185,9 @@ snapshots: dependencies: yallist: 3.1.1 - magic-string@0.25.9: + magic-string@0.30.17: dependencies: - sourcemap-codec: 1.4.8 + '@jridgewell/sourcemap-codec': 1.5.0 make-dir@4.0.0: dependencies: @@ -5138,6 +5206,8 @@ snapshots: math-intrinsics@1.1.0: {} + mdn-data@2.0.30: {} + merge-stream@2.0.0: {} merge2@1.4.1: {} @@ -5161,14 +5231,8 @@ snapshots: dependencies: brace-expansion: 1.1.11 - minimist@1.2.8: {} - minisearch@7.1.0: {} - mkdirp@0.5.6: - dependencies: - minimist: 1.2.8 - moment@2.29.4: {} mri@1.2.0: {} @@ -5223,10 +5287,6 @@ snapshots: p-try@2.2.0: {} - parent-module@1.0.1: - dependencies: - callsites: 3.1.0 - parse-json@5.2.0: dependencies: '@babel/code-frame': 7.26.2 @@ -5259,6 +5319,12 @@ snapshots: path-type@4.0.0: {} + periscopic@3.1.0: + dependencies: + '@types/estree': 1.0.6 + estree-walker: 3.0.3 + is-reference: 3.0.3 + picocolors@1.1.1: {} picomatch@2.3.1: {} @@ -5275,10 +5341,10 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 - prettier-plugin-svelte@2.10.1(prettier@2.8.8)(svelte@3.59.2): + prettier-plugin-svelte@2.10.1(prettier@2.8.8)(svelte@5.23.2): dependencies: prettier: 2.8.8 - svelte: 3.59.2 + svelte: 5.23.2 prettier@2.8.8: {} @@ -5307,10 +5373,6 @@ snapshots: react-is@17.0.2: {} - readdirp@3.6.0: - dependencies: - picomatch: 2.3.1 - readdirp@4.1.2: {} redent@3.0.0: @@ -5353,8 +5415,6 @@ snapshots: dependencies: resolve-from: 5.0.0 - resolve-from@4.0.0: {} - resolve-from@5.0.0: {} resolve.exports@1.1.1: {} @@ -5367,10 +5427,6 @@ snapshots: reusify@1.1.0: {} - rimraf@2.7.1: - dependencies: - glob: 7.2.3 - rimraf@3.0.2: dependencies: glob: 7.2.3 @@ -5389,13 +5445,6 @@ snapshots: safer-buffer@2.1.2: {} - sander@0.5.1: - dependencies: - es6-promise: 3.3.1 - graceful-fs: 4.2.11 - mkdirp: 0.5.6 - rimraf: 2.7.1 - sass@1.86.0: dependencies: chokidar: 4.0.3 @@ -5403,6 +5452,7 @@ snapshots: source-map-js: 1.2.1 optionalDependencies: '@parcel/watcher': 2.5.1 + optional: true saxes@5.0.1: dependencies: @@ -5426,13 +5476,6 @@ snapshots: slash@3.0.0: {} - sorcery@0.10.0: - dependencies: - buffer-crc32: 0.2.13 - minimist: 1.2.8 - sander: 0.5.1 - sourcemap-codec: 1.4.8 - source-map-js@1.2.1: {} source-map-support@0.5.21: @@ -5444,8 +5487,6 @@ snapshots: source-map@0.7.4: {} - sourcemap-codec@1.4.8: {} - sprintf-js@1.0.3: {} stack-utils@2.0.6: @@ -5494,50 +5535,69 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - svelte-check@2.10.3(@babel/core@7.26.10)(postcss@8.5.3)(sass@1.86.0)(svelte@3.59.2): + svelte-check@4.1.5(svelte@5.23.2)(typescript@5.8.2): dependencies: '@jridgewell/trace-mapping': 0.3.25 - chokidar: 3.6.0 - fast-glob: 3.3.3 - import-fresh: 3.3.1 + chokidar: 4.0.3 + fdir: 6.4.3 picocolors: 1.1.1 sade: 1.8.1 - svelte: 3.59.2 - svelte-preprocess: 4.10.7(@babel/core@7.26.10)(postcss@8.5.3)(sass@1.86.0)(svelte@3.59.2)(typescript@4.9.5) - typescript: 4.9.5 + svelte: 5.23.2 + typescript: 5.8.2 transitivePeerDependencies: - - '@babel/core' - - coffeescript - - less - - node-sass - - postcss - - postcss-load-config - - pug - - sass - - stylus - - sugarss + - picomatch - svelte-jester@2.3.2(jest@27.5.1)(svelte@3.59.2): + svelte-jester@2.3.2(jest@27.5.1)(svelte@5.23.2): dependencies: jest: 27.5.1 - svelte: 3.59.2 + svelte: 5.23.2 - svelte-preprocess@4.10.7(@babel/core@7.26.10)(postcss@8.5.3)(sass@1.86.0)(svelte@3.59.2)(typescript@4.9.5): + svelte-multiselect@https://codeload.github.com/janosh/svelte-multiselect/tar.gz/91f22d0cafdf931607288d18c5268badd358d83b: dependencies: - '@types/pug': 2.0.10 - '@types/sass': 1.45.0 - detect-indent: 6.1.0 - magic-string: 0.25.9 - sorcery: 0.10.0 - strip-indent: 3.0.0 - svelte: 3.59.2 + svelte: 4.2.12 + + svelte-preprocess@6.0.3(@babel/core@7.26.10)(postcss@8.5.3)(sass@1.86.0)(svelte@5.23.2)(typescript@5.8.2): + dependencies: + svelte: 5.23.2 optionalDependencies: '@babel/core': 7.26.10 postcss: 8.5.3 sass: 1.86.0 - typescript: 4.9.5 + typescript: 5.8.2 - svelte@3.59.2: {} + svelte@4.2.12: + dependencies: + '@ampproject/remapping': 2.3.0 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.25 + '@types/estree': 1.0.6 + acorn: 8.14.1 + aria-query: 5.3.2 + axobject-query: 4.1.0 + code-red: 1.0.4 + css-tree: 2.3.1 + estree-walker: 3.0.3 + is-reference: 3.0.3 + locate-character: 3.0.0 + magic-string: 0.30.17 + periscopic: 3.1.0 + + svelte@5.23.2: + dependencies: + '@ampproject/remapping': 2.3.0 + '@jridgewell/sourcemap-codec': 1.5.0 + '@sveltejs/acorn-typescript': 1.0.5(acorn@8.14.1) + '@types/estree': 1.0.6 + acorn: 8.14.1 + aria-query: 5.3.2 + axobject-query: 4.1.0 + clsx: 2.1.1 + esm-env: 1.2.2 + esrap: 1.4.5 + is-reference: 3.0.3 + locate-character: 3.0.0 + magic-string: 0.30.17 + zimmerframe: 1.1.2 symbol-tree@3.2.4: {} @@ -5581,7 +5641,7 @@ snapshots: dependencies: is-typedarray: 1.0.0 - typescript@4.9.5: {} + typescript@5.8.2: {} undici@6.21.2: {} @@ -5704,3 +5764,5 @@ snapshots: string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 20.2.9 + + zimmerframe@1.1.2: {} diff --git a/src/components/ModalInFile.svelte b/src/components/ModalInFile.svelte index 161de14..593921c 100644 --- a/src/components/ModalInFile.svelte +++ b/src/components/ModalInFile.svelte @@ -191,7 +191,7 @@ {/each} {:else}
- We found 0 result for your search here. + We found 0 results for your search here.
{/if} diff --git a/src/components/ModalVault.svelte b/src/components/ModalVault.svelte index e4e8f64..598e00c 100644 --- a/src/components/ModalVault.svelte +++ b/src/components/ModalVault.svelte @@ -30,44 +30,55 @@ import type OmnisearchPlugin from '../main' import LazyLoader from './lazy-loader/LazyLoader.svelte' - export let modal: OmnisearchVaultModal - export let previousQuery: string | undefined - export let plugin: OmnisearchPlugin + let { + modal, + previousQuery, + plugin, + }: { + modal: OmnisearchVaultModal + previousQuery?: string | undefined + plugin: OmnisearchPlugin + } = $props() - let selectedIndex = 0 + let selectedIndex = $state(0) let historySearchIndex = 0 - let searchQuery: string | undefined - let resultNotes: ResultNote[] = [] + let searchQuery = $state(previousQuery ?? '') + let resultNotes: ResultNote[] = $state([]) let query: Query - let indexingStepDesc = '' - let searching = true + let indexingStepDesc = $state('') + let searching = $state(true) let refInput: InputSearch | undefined - let openInNewPaneKey: string - let openInCurrentPaneKey: string - let createInNewPaneKey: string - let createInCurrentPaneKey: string - let openInNewLeafKey: string = getCtrlKeyLabel() + getAltKeyLabel() + ' ↵' + let openInNewPaneKey: string = $state('') + let openInCurrentPaneKey: string = $state('') + let createInNewPaneKey: string = $state('') + let createInCurrentPaneKey: string = $state('') + let openInNewLeafKey: string = `${getCtrlKeyLabel()} ${getAltKeyLabel()} ↵` - $: selectedNote = resultNotes[selectedIndex] - $: searchQuery = searchQuery ?? previousQuery - $: if (plugin.settings.openInNewPane) { - openInNewPaneKey = '↵' - openInCurrentPaneKey = getCtrlKeyLabel() + ' ↵' - createInNewPaneKey = 'Shift ↵' - createInCurrentPaneKey = getCtrlKeyLabel() + ' Shift ↵' - } else { - openInNewPaneKey = getCtrlKeyLabel() + ' ↵' - openInCurrentPaneKey = '↵' - createInNewPaneKey = getCtrlKeyLabel() + ' Shift ↵' - createInCurrentPaneKey = 'Shift ↵' - } - $: if (searchQuery) { - updateResultsDebounced() - } else { - searching = false - resultNotes = [] - } - $: { + const selectedNote = $derived(resultNotes[selectedIndex]) + + $effect(() => { + if (plugin.settings.openInNewPane) { + openInNewPaneKey = '↵' + openInCurrentPaneKey = getCtrlKeyLabel() + ' ↵' + createInNewPaneKey = 'Shift ↵' + createInCurrentPaneKey = getCtrlKeyLabel() + ' Shift ↵' + } else { + openInNewPaneKey = getCtrlKeyLabel() + ' ↵' + openInCurrentPaneKey = '↵' + createInNewPaneKey = getCtrlKeyLabel() + ' Shift ↵' + createInCurrentPaneKey = 'Shift ↵' + } + }) + + $effect(() => { + if (searchQuery) { + updateResultsDebounced() + } else { + searching = false + resultNotes = [] + } + }) + $effect(() => { switch ($indexingStep) { case IndexingStepType.LoadingCache: indexingStepDesc = 'Loading cache...' @@ -87,7 +98,7 @@ indexingStepDesc = '' break } - } + }) onMount(async () => { eventBus.enable('vault') @@ -305,17 +316,17 @@ (searchQuery = e.detail)} placeholder="Omnisearch - Vault">
{#if plugin.settings.showCreateButton} - + {/if} {#if Platform.isMobile} - + {/if}
@@ -329,24 +340,24 @@ {#each resultNotes as result, i} + height={100} + offset={500} + keep={true} + fadeOption={{ delay: 0, duration: 0 }}> + }} /> {/each}
{#if !resultNotes.length && searchQuery && !searching} - We found 0 result for your search here. + We found 0 results for your search here. {#if plugin.settings.simpleSearch && searchQuery .split(SPACE_OR_PUNCTUATION) .some(w => w.length < 3)} @@ -408,7 +419,7 @@ to insert a link
- Ctrl g + {getCtrlKeyLabel()} g to toggle excerpts
diff --git a/src/components/modals.ts b/src/components/modals.ts index 3ffd6f2..edd003c 100644 --- a/src/components/modals.ts +++ b/src/components/modals.ts @@ -4,6 +4,7 @@ import ModalVault from './ModalVault.svelte' import ModalInFile from './ModalInFile.svelte' import { Action, eventBus, EventNames, isInputComposition } from '../globals' import type OmnisearchPlugin from '../main' +import { mount, unmount } from 'svelte' abstract class OmnisearchModal extends Modal { protected constructor(plugin: OmnisearchPlugin) { @@ -119,7 +120,7 @@ abstract class OmnisearchModal extends Modal { }) // Open in background - this.scope.register(['Ctrl'], 'O', e => { + this.scope.register(['Mod'], 'O', e => { if (!isInputComposition()) { // Check if the user is still typing e.preventDefault() @@ -143,7 +144,7 @@ abstract class OmnisearchModal extends Modal { }) // Context - this.scope.register(['Ctrl'], 'G', _e => { + this.scope.register(['Mod'], 'G', _e => { eventBus.emit(EventNames.ToggleExcerpts) }) } @@ -170,7 +171,7 @@ export class OmnisearchVaultModal extends OmnisearchModal { : null // Instantiate and display the Svelte component - const cmp = new ModalVault({ + const cmp = mount(ModalVault, { target: this.modalEl, props: { plugin, @@ -178,10 +179,11 @@ export class OmnisearchVaultModal extends OmnisearchModal { previousQuery: query || selectedText || previous || '', }, }) + this.onClose = () => { // Since the component is manually created, // we also need to manually destroy it - cmp.$destroy() + unmount(cmp) } }) } @@ -196,7 +198,7 @@ export class OmnisearchInFileModal extends OmnisearchModal { ) { super(plugin) - const cmp = new ModalInFile({ + const cmp = mount(ModalInFile, { target: this.modalEl, props: { plugin, @@ -215,7 +217,7 @@ export class OmnisearchInFileModal extends OmnisearchModal { if (parent) { parent.containerEl.toggleVisibility(true) } - cmp.$destroy() + unmount(cmp) } } } diff --git a/src/main.ts b/src/main.ts index 46e31e4..b6c940a 100644 --- a/src/main.ts +++ b/src/main.ts @@ -53,7 +53,7 @@ export default class OmnisearchPlugin extends Plugin { public readonly searchHistory = new SearchHistory(this) private ribbonButton?: HTMLElement - private refreshIndexCallback?: () => void + private refreshIndexCallback?: (ev: FocusEvent) => any constructor(app: App, manifest: PluginManifest) { super(app, manifest) @@ -116,10 +116,8 @@ export default class OmnisearchPlugin extends Plugin { // Listeners to keep the search index up-to-date this.registerEvent( this.app.vault.on('create', file => { - if ( - file instanceof TFile && - this.notesIndexer.isFileIndexable(file.path) - ) { + if (!(file instanceof TFile)) return + if (this.notesIndexer.isFileIndexable(file.path)) { logVerbose('Indexing new file', file.path) searchEngine.addFromPaths([file.path]) this.embedsRepository.refreshEmbedsForNote(file.path) @@ -128,6 +126,7 @@ export default class OmnisearchPlugin extends Plugin { ) this.registerEvent( this.app.vault.on('delete', file => { + if (!(file instanceof TFile)) return logVerbose('Removing file', file.path) this.documentsRepository.removeDocument(file.path) searchEngine.removeFromPaths([file.path]) @@ -136,6 +135,7 @@ export default class OmnisearchPlugin extends Plugin { ) this.registerEvent( this.app.vault.on('modify', async file => { + if (!(file instanceof TFile)) return if (this.notesIndexer.isFileIndexable(file.path)) { this.notesIndexer.flagNoteForReindex(file) } @@ -144,6 +144,7 @@ export default class OmnisearchPlugin extends Plugin { ) this.registerEvent( this.app.vault.on('rename', async (file, oldPath) => { + if (!(file instanceof TFile)) return if (this.notesIndexer.isFileIndexable(file.path)) { logVerbose('Renaming file', file.path) this.documentsRepository.removeDocument(oldPath) @@ -160,7 +161,7 @@ export default class OmnisearchPlugin extends Plugin { this.refreshIndexCallback = this.notesIndexer.refreshIndex.bind( this.notesIndexer ) - addEventListener('blur', this.refreshIndexCallback) + addEventListener('blur', this.refreshIndexCallback!) removeEventListener await this.executeFirstLaunchTasks() diff --git a/src/repositories/documents-repository.ts b/src/repositories/documents-repository.ts index 9d0dbf4..49859d6 100644 --- a/src/repositories/documents-repository.ts +++ b/src/repositories/documents-repository.ts @@ -67,7 +67,16 @@ export class DocumentsRepository { } logVerbose('Generating IndexedDocument from', path) await this.addDocument(path) - return this.documents.get(path)! + const document = this.documents.get(path) + + // Only happens if the cache is corrupted + if (!document) { + console.error('Omnisearch', path, 'cannot be read') + this.countError() + } + + // The document might be undefined, but this shouldn't stop the search from mostly working + return document! } /** @@ -219,7 +228,8 @@ export class DocumentsRepository { if (this.plugin.settings.displayTitle === '#heading') { displayTitle = metadata?.headings?.find(h => h.level === 1)?.heading ?? '' } else { - displayTitle = metadata?.frontmatter?.[this.plugin.settings.displayTitle] ?? '' + displayTitle = + metadata?.frontmatter?.[this.plugin.settings.displayTitle] ?? '' } const tags = getTagsFromMetadata(metadata) return { @@ -247,10 +257,11 @@ export class DocumentsRepository { } private countError(): void { - if (++this.errorsCount > 5 && !this.errorsWarned) { + if (++this.errorsCount >= 3 && !this.errorsWarned) { this.errorsWarned = true new Notice( - 'Omnisearch ⚠️ There might be an issue with your cache. You should clean it in Omnisearch settings and restart Obsidian.' + 'Omnisearch ⚠️ There might be an issue with your cache. You should clean it in Omnisearch settings and restart Obsidian.', + 0 ) } } diff --git a/src/settings/index.ts b/src/settings/index.ts index 67d2109..7020765 100644 --- a/src/settings/index.ts +++ b/src/settings/index.ts @@ -76,7 +76,7 @@ export class SettingsTab extends PluginSettingTab { new Setting(containerEl) .setName('Enable verbose logging') .setDesc( - "Adds a LOT of logs for debugging purposes. Don't forget to disable it." + 'Adds a LOT of logs for debugging purposes. You also need to enable "Verbose" logging in the console to see these logs.' ) .addToggle(toggle => toggle.setValue(settings.verboseLogging).onChange(async v => { diff --git a/src/tools/text-processing.ts b/src/tools/text-processing.ts index 5a72c41..955e4b4 100644 --- a/src/tools/text-processing.ts +++ b/src/tools/text-processing.ts @@ -23,55 +23,13 @@ export class TextProcessor { return text } try { - // Text to highlight - const smartMatches = new RegExp( - matches - .map( - // This regex will match the word (with \b word boundary) - // \b doesn't detect non-alphabetical character's word boundary, so we need to escape it - matchItem => { - const escaped = escapeRegExp(matchItem.match) - return `\\b${escaped}\\b${ - !/[a-zA-Z]/.test(matchItem.match) ? `|${escaped}` : '' - }` - } - ) - .join('|'), - 'giu' - ) - - // Replacer function that will highlight the matches - const replacer = (match: string) => { - const matchInfo = matches.find(info => - match.match( - new RegExp( - `\\b${escapeRegExp(info.match)}\\b${ - !/[a-zA-Z]/.test(info.match) - ? `|${escapeRegExp(info.match)}` - : '' - }`, - 'giu' - ) - ) - ) - if (matchInfo) { - return `${match}` - } - return match - } - - // Effectively highlight the text - let newText = text.replace(smartMatches, replacer) - - // If the text didn't change (= nothing to highlight), re-run the regex but just replace the matches without the word boundary - if (newText === text) { - const dumbMatches = new RegExp( - matches.map(matchItem => escapeRegExp(matchItem.match)).join('|'), + return text.replace( + new RegExp( + `(${matches.map(item => escapeRegExp(item.match)).join('|')})`, 'giu' - ) - newText = text.replace(dumbMatches, replacer) - } - return newText + ), + `$1` + ) } catch (e) { console.error('Omnisearch - Error in highlightText()', e) return text @@ -101,7 +59,12 @@ export class TextProcessor { * @param reg * @param query */ - public getMatches(text: string, words: string[], query?: Query): SearchMatch[] { + public getMatches( + text: string, + words: string[], + query?: Query + ): SearchMatch[] { + words = words.map(escapeHTML) const reg = this.stringsToRegex(words) const originalText = text // text = text.toLowerCase().replace(new RegExp(SEPARATORS, 'gu'), ' ') @@ -199,4 +162,3 @@ export function escapeHTML(html: string): string { .replaceAll('"', '"') .replaceAll("'", ''') } - diff --git a/tsconfig.json b/tsconfig.json index e1731f6..9fee550 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,31 +1,27 @@ { - "extends": "@tsconfig/svelte/tsconfig.json", "compilerOptions": { - "types": [ - "svelte", - "node", - "jest" - ], - "strict": true, - "noUncheckedIndexedAccess": false, + "verbatimModuleSyntax": true, + "skipLibCheck": true, "baseUrl": ".", + "inlineSourceMap": true, + "inlineSources": true, "module": "ESNext", "target": "ES2021", "allowJs": true, "noImplicitAny": true, "moduleResolution": "node", "importHelpers": true, + "resolveJsonModule": true, + "allowSyntheticDefaultImports": true, "isolatedModules": true, + "strictNullChecks": true, "lib": [ "DOM", "ES2021" - ], - "paths": { - "minisearch": ["node_modules/minisearch/src/MiniSearch.ts"] - } + ] }, "include": [ "**/*.ts", - "src/__tests__/event-bus-tests.mts" + "**/*.svelte" ] } \ No newline at end of file