diff --git a/.github/workflows/ios.publish.yml b/.github/workflows/ios.publish.yml index c6a0da860e..6a75773e22 100644 --- a/.github/workflows/ios.publish.yml +++ b/.github/workflows/ios.publish.yml @@ -4,7 +4,7 @@ on: workflow_dispatch jobs: build: - runs-on: macos-latest + runs-on: macos-14 timeout-minutes: 60 steps: @@ -14,6 +14,11 @@ jobs: - name: Setup Node uses: ./.github/actions/setup-node-with-cache + - name: Setup Xcode + uses: maxim-lobanov/setup-xcode@v1 + with: + xcode-version: "16.1" + - name: Install node modules run: | npm ci --ignore-scripts --prefer-offline --no-audit diff --git a/apps/desktop/electron-builder.config.js b/apps/desktop/electron-builder.config.js index 5db7f5c490..a498567782 100644 --- a/apps/desktop/electron-builder.config.js +++ b/apps/desktop/electron-builder.config.js @@ -57,6 +57,7 @@ module.exports = { "node_modules/bindings", "node_modules/node-gyp-build", "node_modules/sqlite-better-trigram", + "node_modules/sqlite3-fts5-html", "node_modules/sodium-native/prebuilds/${platform}-${arch}", { from: "node_modules/sqlite-better-trigram-linux-${arch}", @@ -70,6 +71,20 @@ module.exports = { from: "node_modules/sqlite-better-trigram-windows-${arch}", to: "node_modules/sqlite-better-trigram-windows-${arch}" }, + + { + from: "node_modules/sqlite3-fts5-html-linux-${arch}", + to: "node_modules/sqlite3-fts5-html-linux-${arch}" + }, + { + from: "node_modules/sqlite3-fts5-html-darwin-${arch}", + to: "node_modules/sqlite3-fts5-html-darwin-${arch}" + }, + { + from: "node_modules/sqlite3-fts5-html-windows-${arch}", + to: "node_modules/sqlite3-fts5-html-windows-${arch}" + }, + "node_modules/sodium-native/index.js", "node_modules/sodium-native/package.json" ], @@ -160,23 +175,20 @@ module.exports = { description: "Your private note taking space", executableName: linuxExecutableName, desktop: { - actions: [ - { - id: "new-note", - name: "New note", - args: "new note" + desktopActions: { + "new-note": { + Name: "New note", + Exec: `${linuxExecutableName} new note` }, - { - id: "new-notebook", - name: "New notebook", - args: "new notebook" + "new-notebook": { + Name: "New notebook", + Exec: `${linuxExecutableName} new notebook` }, - { - id: "new-reminder", - name: "New reminder", - args: "new reminder" + "new-reminder": { + Name: "New reminder", + Exec: `${linuxExecutableName} new reminder` } - ] + } } }, snap: { diff --git a/apps/desktop/package-lock.json b/apps/desktop/package-lock.json index df0f7a7126..39a73dd196 100644 --- a/apps/desktop/package-lock.json +++ b/apps/desktop/package-lock.json @@ -1,44 +1,46 @@ { "name": "@notesnook/desktop", - "version": "3.1.0", + "version": "3.2.0-beta.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@notesnook/desktop", - "version": "3.1.0", + "version": "3.2.0-beta.2", "hasInstallScript": true, "license": "GPL-3.0-or-later", "dependencies": { "@lingui/core": "5.1.2", "@notesnook/intl": "file:../../packages/intl", + "@notesnook/ui": "file:../../packages/ui", "@trpc/client": "10.45.2", "@trpc/server": "10.45.2", - "better-sqlite3-multiple-ciphers": "11.5.0", + "better-sqlite3-multiple-ciphers": "11.3.0", "electron-trpc": "0.7.1", - "electron-updater": "^6.3.4", - "icojs": "^0.19.4", - "sqlite-better-trigram": "0.0.2", + "electron-updater": "^6.6.2", + "icojs": "^0.19.5", + "sqlite-better-trigram": "0.0.3", + "sqlite3-fts5-html": "^0.0.2", "typed-emitter": "^2.1.0", "yargs": "^17.7.2", - "zod": "3.23.8" + "zod": "3.24.3" }, "devDependencies": { "@streetwriters/kysely": "^0.27.4", - "@types/node": "22.7.0", + "@types/node": "22.15.3", "@types/yargs": "^17.0.33", - "chokidar": "^4.0.1", - "electron": "^31.7.4", - "electron-builder": "^25.1.8", + "chokidar": "^4.0.3", + "electron": "^34.0.0", + "electron-builder": "^26.0.12", "esbuild": "0.21.5", - "node-abi": "^3.68.0", - "node-gyp-build": "^4.8.2", - "playwright": "^1.48.2", + "node-abi": "^4.5.0", + "node-gyp-build": "^4.8.4", + "playwright": "1.48.2", "prebuildify": "^6.0.1", "slugify": "1.6.6", "tree-kill": "^1.2.2", - "undici": "^6.19.8", - "vitest": "^2.1.8" + "undici": "^7.8.0", + "vitest": "2.1.8" }, "optionalDependencies": { "dmg-license": "^1.0.11" @@ -68,14 +70,42 @@ "react": ">=18" } }, - "node_modules/@babel/runtime": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.7.tgz", - "integrity": "sha512-FjoyLe754PMiYsFaN5C94ttGiOmBNYTf6pLr4xXHAT5uctHb092PBszndLDR5XA/jghQvn4n7JMHl7dmTgbm9w==", - "license": "MIT", + "../../packages/ui": { + "name": "@notesnook/ui", + "version": "2.1.3", + "license": "GPL-3.0-or-later", "dependencies": { - "regenerator-runtime": "^0.14.0" + "@notesnook/theme": "file:../theme" }, + "devDependencies": { + "@emotion/react": "11.11.1", + "@mdi/js": "7.4.47", + "@theme-ui/components": "0.16.1", + "@theme-ui/core": "0.16.1", + "@types/react": "18.3.5", + "@types/react-dom": "18.3.0", + "@types/react-modal": "3.16.3", + "mac-scrollbar": "0.13.6", + "react": "18.3.1", + "react-dom": "18.3.1", + "react-modal": "3.16.3" + }, + "peerDependencies": { + "@emotion/react": ">=11", + "@mdi/js": ">=7", + "@theme-ui/components": ">=0.16", + "@theme-ui/core": ">=0.16", + "mac-scrollbar": ">=0.10", + "react": ">=18", + "react-dom": ">=18", + "react-modal": ">=3" + } + }, + "node_modules/@babel/runtime": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.1.tgz", + "integrity": "sha512-1x3D2xEk2fRo3PAhwQwu5UubzgiVWSXTBfWpVd2Mx2AzRqJuDJCsgaDVZ7HB5iGzDW1Hl1sWN2mFyKjmR9uAog==", + "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -105,9 +135,9 @@ } }, "node_modules/@electron/asar": { - "version": "3.2.17", - "resolved": "https://registry.npmjs.org/@electron/asar/-/asar-3.2.17.tgz", - "integrity": "sha512-OcWImUI686w8LkghQj9R2ynZ2ME693Ek6L1SiaAgqGKzBaTIZw3fHDqN82Rcl+EU1Gm9EgkJ5KLIY/q5DCRbbA==", + "version": "3.2.18", + "resolved": "https://registry.npmjs.org/@electron/asar/-/asar-3.2.18.tgz", + "integrity": "sha512-2XyvMe3N3Nrs8cV39IKELRHTYUWFKrmqqSY1U+GMlc0jvqjIVnoxhNd2H4JolWQncbJi1DCvb5TNxZuI2fEjWg==", "dev": true, "license": "MIT", "dependencies": { @@ -146,11 +176,64 @@ "node": "*" } }, + "node_modules/@electron/fuses": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@electron/fuses/-/fuses-1.8.0.tgz", + "integrity": "sha512-zx0EIq78WlY/lBb1uXlziZmDZI4ubcCXIMJ4uGjXzZW0nS19TjSPeXPAjzzTmKQlJUZm0SbmZhPKP7tuQ1SsEw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.1", + "fs-extra": "^9.0.1", + "minimist": "^1.2.5" + }, + "bin": { + "electron-fuses": "dist/bin.js" + } + }, + "node_modules/@electron/fuses/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@electron/fuses/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@electron/fuses/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, "node_modules/@electron/get": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@electron/get/-/get-2.0.3.tgz", "integrity": "sha512-Qkzpg2s9GnVV2I2BjRksUi43U5e6+zaQMcjoJy0C+C5oxaKl+fmckGDQFtRpZpZV0NQekuZZ+tGz7EA9TVnQtQ==", - "dev": true, "license": "MIT", "dependencies": { "debug": "^4.1.1", @@ -168,6 +251,78 @@ "global-agent": "^3.0.0" } }, + "node_modules/@electron/node-gyp": { + "version": "10.2.0-electron.2", + "resolved": "https://registry.npmjs.org/@electron/node-gyp/-/node-gyp-10.2.0-electron.2.tgz", + "integrity": "sha512-OhO6fwqpetMO1vWI3+J8mb3a4s4A405tgKoUCJsgd4nyQDdFh0VvZm+gj/Cc70iRLQoIYUfSaAgYSVwmLsQHig==", + "dev": true, + "license": "MIT", + "dependencies": { + "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", + "glob": "^8.1.0", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^10.2.1", + "nopt": "^6.0.0", + "proc-log": "^2.0.1", + "semver": "^7.3.5", + "tar": "^6.2.1", + "which": "^2.0.2" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": ">=12.13.0" + } + }, + "node_modules/@electron/node-gyp/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@electron/node-gyp/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@electron/node-gyp/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@electron/notarize": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/@electron/notarize/-/notarize-2.5.0.tgz", @@ -296,12 +451,13 @@ } }, "node_modules/@electron/rebuild": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/@electron/rebuild/-/rebuild-3.6.1.tgz", - "integrity": "sha512-f6596ZHpEq/YskUd8emYvOUne89ij8mQgjYFA5ru25QwbrRO+t1SImofdDv7kKOuWCmVOuU5tvfkbgGxIl3E/w==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@electron/rebuild/-/rebuild-3.7.0.tgz", + "integrity": "sha512-VW++CNSlZwMYP7MyXEbrKjpzEwhB5kDNbzGtiPEjwYysqyTCF+YbNJ210Dj3AjWsGSV4iEEwNkmJN9yGZmVvmw==", "dev": true, "license": "MIT", "dependencies": { + "@electron/node-gyp": "git+https://github.com/electron/node-gyp.git#06b29aafb7708acef8b3669835c8a7857ebc92d2", "@malept/cross-spawn-promise": "^2.0.0", "chalk": "^4.0.0", "debug": "^4.1.1", @@ -310,7 +466,6 @@ "got": "^11.7.0", "node-abi": "^3.45.0", "node-api-version": "^0.2.0", - "node-gyp": "^9.0.0", "ora": "^5.1.0", "read-binary-file-arch": "^1.0.6", "semver": "^7.3.5", @@ -352,10 +507,23 @@ "graceful-fs": "^4.1.6" } }, + "node_modules/@electron/rebuild/node_modules/node-abi": { + "version": "3.75.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.75.0.tgz", + "integrity": "sha512-OhYaY5sDsIka7H7AtijtI9jwGYLyl29eQn/W623DiN/MIv5sUqc4g7BIDThX+gb7di9f6xK02nkp8sdfFWZLTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@electron/rebuild/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "dev": true, "license": "ISC", "bin": { @@ -395,9 +563,9 @@ } }, "node_modules/@electron/universal/node_modules/fs-extra": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz", + "integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==", "dev": true, "license": "MIT", "dependencies": { @@ -448,6 +616,72 @@ "node": ">= 10.0.0" } }, + "node_modules/@electron/windows-sign": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@electron/windows-sign/-/windows-sign-1.2.2.tgz", + "integrity": "sha512-dfZeox66AvdPtb2lD8OsIIQh12Tp0GNCRUDfBHIKGpbmopZto2/A8nSpYYLoedPIHpqkeblZ/k8OV0Gy7PYuyQ==", + "dev": true, + "license": "BSD-2-Clause", + "optional": true, + "peer": true, + "dependencies": { + "cross-dirname": "^0.1.0", + "debug": "^4.3.4", + "fs-extra": "^11.1.1", + "minimist": "^1.2.8", + "postject": "^1.0.0-alpha.6" + }, + "bin": { + "electron-windows-sign": "bin/electron-windows-sign.js" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/@electron/windows-sign/node_modules/fs-extra": { + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz", + "integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/@electron/windows-sign/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@electron/windows-sign/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">= 10.0.0" + } + }, "node_modules/@esbuild/aix-ppc64": { "version": "0.21.5", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", @@ -456,6 +690,7 @@ "ppc64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "aix" @@ -472,6 +707,7 @@ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" @@ -488,6 +724,7 @@ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" @@ -504,6 +741,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" @@ -520,6 +758,7 @@ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -536,6 +775,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -552,6 +792,7 @@ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" @@ -568,6 +809,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" @@ -584,6 +826,7 @@ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -600,6 +843,7 @@ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -616,6 +860,7 @@ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -632,6 +877,7 @@ "loong64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -648,6 +894,7 @@ "mips64el" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -664,6 +911,7 @@ "ppc64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -680,6 +928,7 @@ "riscv64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -696,6 +945,7 @@ "s390x" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -712,6 +962,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -728,6 +979,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "netbsd" @@ -744,6 +996,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "openbsd" @@ -760,6 +1013,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "sunos" @@ -776,6 +1030,7 @@ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" @@ -792,6 +1047,7 @@ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" @@ -808,6 +1064,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" @@ -939,6 +1196,101 @@ "@jimp/custom": ">=0.3.5" } }, + "node_modules/@jimp/core": { + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/core/-/core-0.22.12.tgz", + "integrity": "sha512-l0RR0dOPyzMKfjUW1uebzueFEDtCOj9fN6pyTYWWOM/VS4BciXQ1VVrJs8pO3kycGYZxncRKhCoygbNr8eEZQA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@jimp/utils": "^0.22.12", + "any-base": "^1.1.0", + "buffer": "^5.2.0", + "exif-parser": "^0.1.12", + "file-type": "^16.5.4", + "isomorphic-fetch": "^3.0.0", + "pixelmatch": "^4.0.2", + "tinycolor2": "^1.6.0" + } + }, + "node_modules/@jimp/core/node_modules/file-type": { + "version": "16.5.4", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.4.tgz", + "integrity": "sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw==", + "license": "MIT", + "peer": true, + "dependencies": { + "readable-web-to-node-stream": "^3.0.0", + "strtok3": "^6.2.4", + "token-types": "^4.1.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/file-type?sponsor=1" + } + }, + "node_modules/@jimp/core/node_modules/peek-readable": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.1.0.tgz", + "integrity": "sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/@jimp/core/node_modules/strtok3": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-6.3.0.tgz", + "integrity": "sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@tokenizer/token": "^0.3.0", + "peek-readable": "^4.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/@jimp/core/node_modules/token-types": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/token-types/-/token-types-4.2.1.tgz", + "integrity": "sha512-6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@tokenizer/token": "^0.3.0", + "ieee754": "^1.2.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/@jimp/custom": { + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/custom/-/custom-0.22.12.tgz", + "integrity": "sha512-xcmww1O/JFP2MrlGUMd3Q78S3Qu6W3mYTXYuIqFq33EorgYHV/HqymHfXy9GjiCJ7OI+7lWx6nYFOzU7M4rd1Q==", + "license": "MIT", + "peer": true, + "dependencies": { + "@jimp/core": "^0.22.12" + } + }, "node_modules/@jimp/utils": { "version": "0.22.12", "resolved": "https://registry.npmjs.org/@jimp/utils/-/utils-0.22.12.tgz", @@ -948,22 +1300,18 @@ "regenerator-runtime": "^0.13.3" } }, - "node_modules/@jimp/utils/node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", - "license": "MIT" - }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@lingui/core": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/@lingui/core/-/core-5.1.2.tgz", "integrity": "sha512-biqmMCWuBBj7ERSpgGSV91hTShnSrR/RIFUcNKjWuZYgDd3HpBdEmXKCo9NTanQYbkBUpmyw/bgwsSBex6vkDA==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.20.13", "@lingui/message-utils": "^5.1.2", @@ -986,9 +1334,13 @@ } }, "node_modules/@lingui/message-utils": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@lingui/message-utils/-/message-utils-5.1.2.tgz", - "integrity": "sha512-P/N0yBy2MuC726EaGPGiOafc/0RafHiwkvZJdFKjm1/XOMWrFZDPFXTuxguVQ3HQsRi5eUIPaboU4uRX4GepPg==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@lingui/message-utils/-/message-utils-5.3.1.tgz", + "integrity": "sha512-/nwO/uXHYNO4pT+gor7iFdvNHSIjhGhJnqGeWMndSAAqmx0LstrFp9yWhcUU3XaTceyy7AtgVZh0ter7ghOw/Q==", + "bundleDependencies": [ + "@messageformat/date-skeleton" + ], + "license": "MIT", "dependencies": { "@messageformat/parser": "^5.0.0", "js-sha256": "^0.10.1" @@ -1079,6 +1431,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/@messageformat/parser/-/parser-5.1.1.tgz", "integrity": "sha512-3p0YRGCcTUCYvBKLIxtDDyrJ0YijGIwrTRu1DT8gIviIDZru8H23+FkY6MJBzM1n9n20CiM4VeDYuBsrrwnLjg==", + "license": "MIT", "dependencies": { "moo": "^0.5.1" } @@ -1087,6 +1440,10 @@ "resolved": "../../packages/intl", "link": true }, + "node_modules/@notesnook/ui": { + "resolved": "../../packages/ui", + "link": true + }, "node_modules/@npmcli/fs": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", @@ -1102,9 +1459,9 @@ } }, "node_modules/@npmcli/fs/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "dev": true, "license": "ISC", "bin": { @@ -1141,247 +1498,280 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.31.0.tgz", - "integrity": "sha512-9NrR4033uCbUBRgvLcBrJofa2KY9DzxL2UKZ1/4xA/mnTNyhZCWBuD8X3tPm1n4KxcgaraOYgrFKSgwjASfmlA==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.40.2.tgz", + "integrity": "sha512-JkdNEq+DFxZfUwxvB58tHMHBHVgX23ew41g1OQinthJ+ryhdRk67O31S7sYw8u2lTjHUPFxwar07BBt1KHp/hg==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.31.0.tgz", - "integrity": "sha512-iBbODqT86YBFHajxxF8ebj2hwKm1k8PTBQSojSt3d1FFt1gN+xf4CowE47iN0vOSdnd+5ierMHBbu/rHc7nq5g==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.40.2.tgz", + "integrity": "sha512-13unNoZ8NzUmnndhPTkWPWbX3vtHodYmy+I9kuLxN+F+l+x3LdVF7UCu8TWVMt1POHLh6oDHhnOA04n8oJZhBw==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.31.0.tgz", - "integrity": "sha512-WHIZfXgVBX30SWuTMhlHPXTyN20AXrLH4TEeH/D0Bolvx9PjgZnn4H677PlSGvU6MKNsjCQJYczkpvBbrBnG6g==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.40.2.tgz", + "integrity": "sha512-Gzf1Hn2Aoe8VZzevHostPX23U7N5+4D36WJNHK88NZHCJr7aVMG4fadqkIf72eqVPGjGc0HJHNuUaUcxiR+N/w==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.31.0.tgz", - "integrity": "sha512-hrWL7uQacTEF8gdrQAqcDy9xllQ0w0zuL1wk1HV8wKGSGbKPVjVUv/DEwT2+Asabf8Dh/As+IvfdU+H8hhzrQQ==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.40.2.tgz", + "integrity": "sha512-47N4hxa01a4x6XnJoskMKTS8XZ0CZMd8YTbINbi+w03A2w4j1RTlnGHOz/P0+Bg1LaVL6ufZyNprSg+fW5nYQQ==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.31.0.tgz", - "integrity": "sha512-S2oCsZ4hJviG1QjPY1h6sVJLBI6ekBeAEssYKad1soRFv3SocsQCzX6cwnk6fID6UQQACTjeIMB+hyYrFacRew==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.40.2.tgz", + "integrity": "sha512-8t6aL4MD+rXSHHZUR1z19+9OFJ2rl1wGKvckN47XFRVO+QL/dUSpKA2SLRo4vMg7ELA8pzGpC+W9OEd1Z/ZqoQ==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.31.0.tgz", - "integrity": "sha512-pCANqpynRS4Jirn4IKZH4tnm2+2CqCNLKD7gAdEjzdLGbH1iO0zouHz4mxqg0uEMpO030ejJ0aA6e1PJo2xrPA==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.40.2.tgz", + "integrity": "sha512-C+AyHBzfpsOEYRFjztcYUFsH4S7UsE9cDtHCtma5BK8+ydOZYgMmWg1d/4KBytQspJCld8ZIujFMAdKG1xyr4Q==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.31.0.tgz", - "integrity": "sha512-0O8ViX+QcBd3ZmGlcFTnYXZKGbFu09EhgD27tgTdGnkcYXLat4KIsBBQeKLR2xZDCXdIBAlWLkiXE1+rJpCxFw==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.40.2.tgz", + "integrity": "sha512-de6TFZYIvJwRNjmW3+gaXiZ2DaWL5D5yGmSYzkdzjBDS3W+B9JQ48oZEsmMvemqjtAFzE16DIBLqd6IQQRuG9Q==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.31.0.tgz", - "integrity": "sha512-w5IzG0wTVv7B0/SwDnMYmbr2uERQp999q8FMkKG1I+j8hpPX2BYFjWe69xbhbP6J9h2gId/7ogesl9hwblFwwg==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.40.2.tgz", + "integrity": "sha512-urjaEZubdIkacKc930hUDOfQPysezKla/O9qV+O89enqsqUmQm8Xj8O/vh0gHg4LYfv7Y7UsE3QjzLQzDYN1qg==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.31.0.tgz", - "integrity": "sha512-JyFFshbN5xwy6fulZ8B/8qOqENRmDdEkcIMF0Zz+RsfamEW+Zabl5jAb0IozP/8UKnJ7g2FtZZPEUIAlUSX8cA==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.40.2.tgz", + "integrity": "sha512-KlE8IC0HFOC33taNt1zR8qNlBYHj31qGT1UqWqtvR/+NuCVhfufAq9fxO8BMFC22Wu0rxOwGVWxtCMvZVLmhQg==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.31.0.tgz", - "integrity": "sha512-kpQXQ0UPFeMPmPYksiBL9WS/BDiQEjRGMfklVIsA0Sng347H8W2iexch+IEwaR7OVSKtr2ZFxggt11zVIlZ25g==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.40.2.tgz", + "integrity": "sha512-j8CgxvfM0kbnhu4XgjnCWJQyyBOeBI1Zq91Z850aUddUmPeQvuAy6OiMdPS46gNFgy8gN1xkYyLgwLYZG3rBOg==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.31.0.tgz", - "integrity": "sha512-pMlxLjt60iQTzt9iBb3jZphFIl55a70wexvo8p+vVFK+7ifTRookdoXX3bOsRdmfD+OKnMozKO6XM4zR0sHRrQ==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.40.2.tgz", + "integrity": "sha512-Ybc/1qUampKuRF4tQXc7G7QY9YRyeVSykfK36Y5Qc5dmrIxwFhrOzqaVTNoZygqZ1ZieSWTibfFhQ5qK8jpWxw==", "cpu": [ "loong64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.31.0.tgz", - "integrity": "sha512-D7TXT7I/uKEuWiRkEFbed1UUYZwcJDU4vZQdPTcepK7ecPhzKOYk4Er2YR4uHKme4qDeIh6N3XrLfpuM7vzRWQ==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.40.2.tgz", + "integrity": "sha512-3FCIrnrt03CCsZqSYAOW/k9n625pjpuMzVfeI+ZBUSDT3MVIFDSPfSUgIl9FqUftxcUXInvFah79hE1c9abD+Q==", "cpu": [ "ppc64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.31.0.tgz", - "integrity": "sha512-wal2Tc8O5lMBtoePLBYRKj2CImUCJ4UNGJlLwspx7QApYny7K1cUYlzQ/4IGQBLmm+y0RS7dwc3TDO/pmcneTw==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.40.2.tgz", + "integrity": "sha512-QNU7BFHEvHMp2ESSY3SozIkBPaPBDTsfVNGx3Xhv+TdvWXFGOSH2NJvhD1zKAT6AyuuErJgbdvaJhYVhVqrWTg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.40.2.tgz", + "integrity": "sha512-5W6vNYkhgfh7URiXTO1E9a0cy4fSgfE4+Hl5agb/U1sa0kjOLMLC1wObxwKxecE17j0URxuTrYZZME4/VH57Hg==", "cpu": [ "riscv64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.31.0.tgz", - "integrity": "sha512-O1o5EUI0+RRMkK9wiTVpk2tyzXdXefHtRTIjBbmFREmNMy7pFeYXCFGbhKFwISA3UOExlo5GGUuuj3oMKdK6JQ==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.40.2.tgz", + "integrity": "sha512-B7LKIz+0+p348JoAL4X/YxGx9zOx3sR+o6Hj15Y3aaApNfAshK8+mWZEf759DXfRLeL2vg5LYJBB7DdcleYCoQ==", "cpu": [ "s390x" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.31.0.tgz", - "integrity": "sha512-zSoHl356vKnNxwOWnLd60ixHNPRBglxpv2g7q0Cd3Pmr561gf0HiAcUBRL3S1vPqRC17Zo2CX/9cPkqTIiai1g==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.40.2.tgz", + "integrity": "sha512-lG7Xa+BmBNwpjmVUbmyKxdQJ3Q6whHjMjzQplOs5Z+Gj7mxPtWakGHqzMqNER68G67kmCX9qX57aRsW5V0VOng==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.31.0.tgz", - "integrity": "sha512-ypB/HMtcSGhKUQNiFwqgdclWNRrAYDH8iMYH4etw/ZlGwiTVxBz2tDrGRrPlfZu6QjXwtd+C3Zib5pFqID97ZA==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.40.2.tgz", + "integrity": "sha512-tD46wKHd+KJvsmije4bUskNuvWKFcTOIM9tZ/RrmIvcXnbi0YK/cKS9FzFtAm7Oxi2EhV5N2OpfFB348vSQRXA==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.31.0.tgz", - "integrity": "sha512-JuhN2xdI/m8Hr+aVO3vspO7OQfUFO6bKLIRTAy0U15vmWjnZDLrEgCZ2s6+scAYaQVpYSh9tZtRijApw9IXyMw==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.40.2.tgz", + "integrity": "sha512-Bjv/HG8RRWLNkXwQQemdsWw4Mg+IJ29LK+bJPW2SCzPKOUaMmPEppQlu/Fqk1d7+DX3V7JbFdbkh/NMmurT6Pg==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.31.0.tgz", - "integrity": "sha512-U1xZZXYkvdf5MIWmftU8wrM5PPXzyaY1nGCI4KI4BFfoZxHamsIe+BtnPLIvvPykvQWlVbqUXdLa4aJUuilwLQ==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.40.2.tgz", + "integrity": "sha512-dt1llVSGEsGKvzeIO76HToiYPNPYPkmjhMHhP00T9S4rDern8P2ZWvWAQUEJ+R1UdMWJ/42i/QqJ2WV765GZcA==", "cpu": [ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.31.0.tgz", - "integrity": "sha512-ul8rnCsUumNln5YWwz0ted2ZHFhzhRRnkpBZ+YRuHoRAlUji9KChpOUOndY7uykrPEPXVbHLlsdo6v5yXo/TXw==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.40.2.tgz", + "integrity": "sha512-bwspbWB04XJpeElvsp+DCylKfF4trJDa2Y9Go8O6A7YLX2LIKGcNK/CYImJN6ZP4DcuOHB4Utl3iCbnR62DudA==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" @@ -1397,7 +1787,6 @@ "version": "4.6.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", - "dev": true, "license": "MIT", "engines": { "node": ">=10" @@ -1420,7 +1809,6 @@ "version": "4.0.6", "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", - "dev": true, "license": "MIT", "dependencies": { "defer-to-connect": "^2.0.0" @@ -1470,7 +1858,6 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", - "dev": true, "license": "MIT", "dependencies": { "@types/http-cache-semantics": "*", @@ -1490,10 +1877,11 @@ } }, "node_modules/@types/estree": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", - "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", - "dev": true + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", + "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", + "dev": true, + "license": "MIT" }, "node_modules/@types/fs-extra": { "version": "9.0.13", @@ -1509,34 +1897,31 @@ "version": "4.0.4", "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==", - "dev": true, "license": "MIT" }, "node_modules/@types/keyv": { "version": "3.1.4", "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", - "dev": true, "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/ms": { - "version": "0.7.34", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz", - "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", + "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", "dev": true, "license": "MIT" }, "node_modules/@types/node": { - "version": "22.7.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.0.tgz", - "integrity": "sha512-MOdOibwBs6KW1vfqz2uKMlxq5xAfAZ98SZjO8e3XnAbFnTJtAspqhWk7hrdSAs9/Y14ZWMiy7/MxMUzAOadYEw==", - "devOptional": true, + "version": "22.15.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.3.tgz", + "integrity": "sha512-lX7HFZeHf4QG/J7tBZqrCAXwz9J5RD56Y6MpP0eJkka8p+K0RY/yBTW7CYFJ4VGCclxqOLKmiGP5juQc6MKgcw==", "license": "MIT", "dependencies": { - "undici-types": "~6.19.2" + "undici-types": "~6.21.0" } }, "node_modules/@types/plist": { @@ -1554,16 +1939,15 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz", "integrity": "sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==", - "dev": true, "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/verror": { - "version": "1.10.10", - "resolved": "https://registry.npmjs.org/@types/verror/-/verror-1.10.10.tgz", - "integrity": "sha512-l4MM0Jppn18hb9xmM6wwD1uTdShpf9Pn80aXTStnK1C94gtPvJcV2FrDmbOQUAQfJ1cKZHktkQUDwEqaAKXMMg==", + "version": "1.10.11", + "resolved": "https://registry.npmjs.org/@types/verror/-/verror-1.10.11.tgz", + "integrity": "sha512-RlDm9K7+o5stv0Co8i8ZRGxDbrTxhJtgjqjFyVh/tXQyl/rYtTKlnTvZ88oSTeYREWurwx20Js4kTuKCsFkUtg==", "license": "MIT", "optional": true }, @@ -1588,7 +1972,6 @@ "version": "2.10.3", "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", - "dev": true, "license": "MIT", "optional": true, "dependencies": { @@ -1600,6 +1983,7 @@ "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-2.1.8.tgz", "integrity": "sha512-8ytZ/fFHq2g4PJVAtDX57mayemKgDR6X3Oa2Foro+EygiOJHUXhCqBAAKQYYajZpFoIfvBCF1j6R6IYRSIUFuw==", "dev": true, + "license": "MIT", "dependencies": { "@vitest/spy": "2.1.8", "@vitest/utils": "2.1.8", @@ -1615,6 +1999,7 @@ "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-2.1.8.tgz", "integrity": "sha512-7guJ/47I6uqfttp33mgo6ga5Gr1VnL58rcqYKyShoRK9ebu8T5Rs6HN3s1NABiBeVTdWNrwUMcHH54uXZBN4zA==", "dev": true, + "license": "MIT", "dependencies": { "@vitest/spy": "2.1.8", "estree-walker": "^3.0.3", @@ -1637,10 +2022,11 @@ } }, "node_modules/@vitest/pretty-format": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.8.tgz", - "integrity": "sha512-9HiSZ9zpqNLKlbIDRWOnAWqgcA7xu+8YxXSekhr0Ykab7PAYFkhkwoqVArPOtJhPmYeE2YHgKZlj3CP36z2AJQ==", + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.9.tgz", + "integrity": "sha512-KhRIdGV2U9HOUzxfiHmY8IFHTdqtOhIzCpd8WRdJiE7D/HUcZVD0EgQCVjm+Q9gkUXWgBvMmTtZgIG48wq7sOQ==", "dev": true, + "license": "MIT", "dependencies": { "tinyrainbow": "^1.2.0" }, @@ -1653,6 +2039,7 @@ "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-2.1.8.tgz", "integrity": "sha512-17ub8vQstRnRlIU5k50bG+QOMLHRhYPAna5tw8tYbj+jzjcspnwnwtPtiOlkuKC4+ixDPTuLZiqiWWQ2PSXHVg==", "dev": true, + "license": "MIT", "dependencies": { "@vitest/utils": "2.1.8", "pathe": "^1.1.2" @@ -1666,6 +2053,7 @@ "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-2.1.8.tgz", "integrity": "sha512-20T7xRFbmnkfcmgVEz+z3AU/3b0cEzZOt/zmnvZEctg64/QZbSDJEVm9fLnnlSi74KibmRsO9/Qabi+t0vCRPg==", "dev": true, + "license": "MIT", "dependencies": { "@vitest/pretty-format": "2.1.8", "magic-string": "^0.30.12", @@ -1675,11 +2063,25 @@ "url": "https://opencollective.com/vitest" } }, + "node_modules/@vitest/snapshot/node_modules/@vitest/pretty-format": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.8.tgz", + "integrity": "sha512-9HiSZ9zpqNLKlbIDRWOnAWqgcA7xu+8YxXSekhr0Ykab7PAYFkhkwoqVArPOtJhPmYeE2YHgKZlj3CP36z2AJQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, "node_modules/@vitest/spy": { "version": "2.1.8", "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-2.1.8.tgz", "integrity": "sha512-5swjf2q95gXeYPevtW0BLk6H8+bPlMb4Vw/9Em4hFxDcaOxS+e0LOX4yqNxoHzMR2akEB2xfpnWUzkZokmgWDg==", "dev": true, + "license": "MIT", "dependencies": { "tinyspy": "^3.0.2" }, @@ -1692,6 +2094,7 @@ "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.1.8.tgz", "integrity": "sha512-dwSoui6djdwbfFmIgbIjX2ZhIoG7Ex/+xpxyiEgIGzjliY8xGkcpITKTlp6B4MgtGkF2ilvm97cPM96XZaAgcA==", "dev": true, + "license": "MIT", "dependencies": { "@vitest/pretty-format": "2.1.8", "loupe": "^3.1.2", @@ -1701,6 +2104,19 @@ "url": "https://opencollective.com/vitest" } }, + "node_modules/@vitest/utils/node_modules/@vitest/pretty-format": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.8.tgz", + "integrity": "sha512-9HiSZ9zpqNLKlbIDRWOnAWqgcA7xu+8YxXSekhr0Ykab7PAYFkhkwoqVArPOtJhPmYeE2YHgKZlj3CP36z2AJQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, "node_modules/@xmldom/xmldom": { "version": "0.8.10", "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz", @@ -1725,23 +2141,33 @@ "dev": true, "license": "ISC" }, - "node_modules/agent-base": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", - "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", - "dev": true, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", "license": "MIT", + "peer": true, "dependencies": { - "debug": "^4.3.4" + "event-target-shim": "^5.0.0" }, + "engines": { + "node": ">=6.5" + } + }, + "node_modules/agent-base": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", + "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", + "dev": true, + "license": "MIT", "engines": { "node": ">= 14" } }, "node_modules/agentkeepalive": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz", - "integrity": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.6.0.tgz", + "integrity": "sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1816,39 +2242,46 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/any-base": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/any-base/-/any-base-1.1.0.tgz", + "integrity": "sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==", + "license": "MIT", + "peer": true + }, "node_modules/app-builder-bin": { - "version": "5.0.0-alpha.10", - "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-5.0.0-alpha.10.tgz", - "integrity": "sha512-Ev4jj3D7Bo+O0GPD2NMvJl+PGiBAfS7pUGawntBNpCbxtpncfUixqFj9z9Jme7V7s3LBGqsWZZP54fxBX3JKJw==", + "version": "5.0.0-alpha.12", + "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-5.0.0-alpha.12.tgz", + "integrity": "sha512-j87o0j6LqPL3QRr8yid6c+Tt5gC7xNfYo6uQIQkorAC6MpeayVMZrEDzKmJJ/Hlv7EnOQpaRm53k6ktDYZyB6w==", "dev": true, "license": "MIT" }, "node_modules/app-builder-lib": { - "version": "25.1.8", - "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-25.1.8.tgz", - "integrity": "sha512-pCqe7dfsQFBABC1jeKZXQWhGcCPF3rPCXDdfqVKjIeWBcXzyC1iOWZdfFhGl+S9MyE/k//DFmC6FzuGAUudNDg==", + "version": "26.0.12", + "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-26.0.12.tgz", + "integrity": "sha512-+/CEPH1fVKf6HowBUs6LcAIoRcjeqgvAeoSE+cl7Y7LndyQ9ViGPYibNk7wmhMHzNgHIuIbw4nWADPO+4mjgWw==", "dev": true, "license": "MIT", "dependencies": { "@develar/schema-utils": "~2.6.5", + "@electron/asar": "3.2.18", + "@electron/fuses": "^1.8.0", "@electron/notarize": "2.5.0", "@electron/osx-sign": "1.3.1", - "@electron/rebuild": "3.6.1", + "@electron/rebuild": "3.7.0", "@electron/universal": "2.0.1", "@malept/flatpak-bundler": "^0.4.0", "@types/fs-extra": "9.0.13", "async-exit-hook": "^2.0.1", - "bluebird-lst": "^1.0.9", - "builder-util": "25.1.7", - "builder-util-runtime": "9.2.10", + "builder-util": "26.0.11", + "builder-util-runtime": "9.3.1", "chromium-pickle-js": "^0.2.0", "config-file-ts": "0.2.8-rc1", "debug": "^4.3.4", "dotenv": "^16.4.5", "dotenv-expand": "^11.0.6", "ejs": "^3.1.8", - "electron-publish": "25.1.7", - "form-data": "^4.0.0", + "electron-publish": "26.0.11", "fs-extra": "^10.1.0", "hosted-git-info": "^4.1.0", "is-ci": "^3.0.0", @@ -1857,18 +2290,19 @@ "json5": "^2.2.3", "lazy-val": "^1.0.5", "minimatch": "^10.0.0", + "plist": "3.1.0", "resedit": "^1.7.0", - "sanitize-filename": "^1.6.3", "semver": "^7.3.8", "tar": "^6.1.12", - "temp-file": "^3.4.0" + "temp-file": "^3.4.0", + "tiny-async-pool": "1.3.0" }, "engines": { "node": ">=14.0.0" }, "peerDependencies": { - "dmg-builder": "25.1.8", - "electron-builder-squirrel-windows": "25.1.8" + "dmg-builder": "26.0.12", + "electron-builder-squirrel-windows": "26.0.12" } }, "node_modules/app-builder-lib/node_modules/fs-extra": { @@ -1900,9 +2334,9 @@ } }, "node_modules/app-builder-lib/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "dev": true, "license": "ISC", "bin": { @@ -1922,28 +2356,6 @@ "node": ">= 10.0.0" } }, - "node_modules/aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "deprecated": "This package is no longer supported.", - "dev": true, - "license": "ISC", - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -1965,6 +2377,7 @@ "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" } @@ -2041,9 +2454,9 @@ "license": "MIT" }, "node_modules/better-sqlite3-multiple-ciphers": { - "version": "11.5.0", - "resolved": "https://registry.npmjs.org/better-sqlite3-multiple-ciphers/-/better-sqlite3-multiple-ciphers-11.5.0.tgz", - "integrity": "sha512-t2RpIBaw6DYk8RNZjrqCLRoznBcIqownpd90spHpHVrJa+YYN/NOLoTlj1iLBS754yiYWL6uXgx4x+0E1Z5q8Q==", + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/better-sqlite3-multiple-ciphers/-/better-sqlite3-multiple-ciphers-11.3.0.tgz", + "integrity": "sha512-F0+gYaT8drCyHpujgMjS4RRAElVdAtif0uH/v4rA5cLTR5v25zDXTkj2/ie8A26Www+vT60pCF0MD+MGzIcUzw==", "hasInstallScript": true, "license": "MIT", "dependencies": { @@ -2071,23 +2484,6 @@ "readable-stream": "^3.4.0" } }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true, - "license": "MIT" - }, - "node_modules/bluebird-lst": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/bluebird-lst/-/bluebird-lst-1.0.9.tgz", - "integrity": "sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw==", - "dev": true, - "license": "MIT", - "dependencies": { - "bluebird": "^3.5.5" - } - }, "node_modules/bmp-js": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/bmp-js/-/bmp-js-0.1.0.tgz", @@ -2098,7 +2494,7 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz", "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==", - "dev": true, + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", "license": "MIT", "optional": true }, @@ -2140,7 +2536,6 @@ "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "dev": true, "license": "MIT", "engines": { "node": "*" @@ -2154,34 +2549,35 @@ "license": "MIT" }, "node_modules/builder-util": { - "version": "25.1.7", - "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-25.1.7.tgz", - "integrity": "sha512-7jPjzBwEGRbwNcep0gGNpLXG9P94VA3CPAZQCzxkFXiV2GMQKlziMbY//rXPI7WKfhsvGgFXjTcXdBEwgXw9ww==", + "version": "26.0.11", + "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-26.0.11.tgz", + "integrity": "sha512-xNjXfsldUEe153h1DraD0XvDOpqGR0L5eKFkdReB7eFW5HqysDZFfly4rckda6y9dF39N3pkPlOblcfHKGw+uA==", "dev": true, "license": "MIT", "dependencies": { "@types/debug": "^4.1.6", "7zip-bin": "~5.2.0", - "app-builder-bin": "5.0.0-alpha.10", - "bluebird-lst": "^1.0.9", - "builder-util-runtime": "9.2.10", + "app-builder-bin": "5.0.0-alpha.12", + "builder-util-runtime": "9.3.1", "chalk": "^4.1.2", - "cross-spawn": "^7.0.3", + "cross-spawn": "^7.0.6", "debug": "^4.3.4", "fs-extra": "^10.1.0", "http-proxy-agent": "^7.0.0", "https-proxy-agent": "^7.0.0", "is-ci": "^3.0.0", "js-yaml": "^4.1.0", + "sanitize-filename": "^1.6.3", "source-map-support": "^0.5.19", "stat-mode": "^1.0.0", - "temp-file": "^3.4.0" + "temp-file": "^3.4.0", + "tiny-async-pool": "1.3.0" } }, "node_modules/builder-util-runtime": { - "version": "9.2.10", - "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.2.10.tgz", - "integrity": "sha512-6p/gfG1RJSQeIbz8TK5aPNkoztgY1q5TgmGFMAXcY8itsGW6Y2ld1ALsZ5UJn8rog7hKF3zHx5iQbNQ8uLcRlw==", + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.3.1.tgz", + "integrity": "sha512-2/egrNDDnRaxVwK3A+cJq6UOlqOdedGA7JPqCeJjN2Zjk1/QB/6QUi3b714ScIGS7HafFXTyzJEOr5b44I3kvQ==", "license": "MIT", "dependencies": { "debug": "^4.3.4", @@ -2234,6 +2630,7 @@ "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -2316,7 +2713,6 @@ "version": "5.0.4", "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", - "dev": true, "license": "MIT", "engines": { "node": ">=10.6.0" @@ -2326,7 +2722,6 @@ "version": "7.0.4", "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz", "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==", - "dev": true, "license": "MIT", "dependencies": { "clone-response": "^1.0.2", @@ -2341,11 +2736,26 @@ "node": ">=8" } }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/chai": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/chai/-/chai-5.1.2.tgz", - "integrity": "sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.2.0.tgz", + "integrity": "sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==", "dev": true, + "license": "MIT", "dependencies": { "assertion-error": "^2.0.1", "check-error": "^2.1.1", @@ -2379,14 +2789,15 @@ "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 16" } }, "node_modules/chokidar": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz", - "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", "dev": true, "license": "MIT", "dependencies": { @@ -2513,7 +2924,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", - "dev": true, "license": "MIT", "dependencies": { "mimic-response": "^1.0.0" @@ -2540,16 +2950,6 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "license": "MIT" }, - "node_modules/color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "dev": true, - "license": "ISC", - "bin": { - "color-support": "bin.js" - } - }, "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -2648,13 +3048,6 @@ "node": ">=16 || 14 >=14.17" } }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", - "dev": true, - "license": "ISC" - }, "node_modules/core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", @@ -2672,10 +3065,19 @@ "buffer": "^5.1.0" } }, + "node_modules/cross-dirname": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/cross-dirname/-/cross-dirname-0.1.0.tgz", + "integrity": "sha512-+R08/oI0nl3vfPcqftZRpytksBXDzOUveBq/NBVx0sUp1axwzPQrKinNx5yd5sxPu8j1wIy8AfnVQ+5eFdha6Q==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true + }, "node_modules/cross-spawn": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.5.tgz", - "integrity": "sha512-ZVJrKKYunU38/76t0RMOulHOnUcbU9GbpWKAOZ0mhjr7CX6FVrH+4FrAapSOekrgFQ3f/8gwMEuIft0aKq6Hug==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, "license": "MIT", "dependencies": { @@ -2688,9 +3090,9 @@ } }, "node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -2775,6 +3177,7 @@ "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -2805,7 +3208,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", - "dev": true, "license": "MIT", "engines": { "node": ">=10" @@ -2815,7 +3217,6 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "dev": true, "license": "MIT", "optional": true, "dependencies": { @@ -2834,7 +3235,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dev": true, "license": "MIT", "optional": true, "dependencies": { @@ -2859,17 +3259,10 @@ "node": ">=0.4.0" } }, - "node_modules/delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", - "dev": true, - "license": "MIT" - }, "node_modules/detect-libc": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", - "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz", + "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==", "license": "Apache-2.0", "engines": { "node": ">=8" @@ -2879,7 +3272,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", - "dev": true, "license": "MIT", "optional": true }, @@ -2919,15 +3311,15 @@ } }, "node_modules/dmg-builder": { - "version": "25.1.8", - "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-25.1.8.tgz", - "integrity": "sha512-NoXo6Liy2heSklTI5OIZbCgXC1RzrDQsZkeEwXhdOro3FT1VBOvbubvscdPnjVuQ4AMwwv61oaH96AbiYg9EnQ==", + "version": "26.0.12", + "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-26.0.12.tgz", + "integrity": "sha512-59CAAjAhTaIMCN8y9kD573vDkxbs1uhDcrFLHSgutYdPcGOU35Rf95725snvzEOy4BFB7+eLJ8djCNPmGwG67w==", "dev": true, "license": "MIT", "dependencies": { - "app-builder-lib": "25.1.8", - "builder-util": "25.1.7", - "builder-util-runtime": "9.2.10", + "app-builder-lib": "26.0.12", + "builder-util": "26.0.11", + "builder-util-runtime": "9.3.1", "fs-extra": "^10.1.0", "iconv-lite": "^0.6.2", "js-yaml": "^4.1.0" @@ -3001,9 +3393,9 @@ } }, "node_modules/dotenv": { - "version": "16.4.5", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", - "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", + "version": "16.5.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.5.0.tgz", + "integrity": "sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==", "dev": true, "license": "BSD-2-Clause", "engines": { @@ -3029,6 +3421,21 @@ "url": "https://dotenvx.com" } }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", @@ -3053,10 +3460,9 @@ } }, "node_modules/electron": { - "version": "31.7.4", - "resolved": "https://registry.npmjs.org/electron/-/electron-31.7.4.tgz", - "integrity": "sha512-uvSxcYq349bbCp60vmsTJGviI0pBfrvZK+YQHs3L0nzhZeBin0+o7bC1j3vmK+CeTxAZlWWjtgtc3z7XYrHm5w==", - "dev": true, + "version": "34.5.6", + "resolved": "https://registry.npmjs.org/electron/-/electron-34.5.6.tgz", + "integrity": "sha512-cmP0CDnWFwyZrzn72AXS9oJiOjNIRPgKpGO2ykz3Syo+9B2RJ9WQzxOKkpntcWE5/nRsyFkRUCMTgGo3uNvCxQ==", "hasInstallScript": true, "license": "MIT", "dependencies": { @@ -3072,17 +3478,17 @@ } }, "node_modules/electron-builder": { - "version": "25.1.8", - "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-25.1.8.tgz", - "integrity": "sha512-poRgAtUHHOnlzZnc9PK4nzG53xh74wj2Jy7jkTrqZ0MWPoHGh1M2+C//hGeYdA+4K8w4yiVCNYoLXF7ySj2Wig==", + "version": "26.0.12", + "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-26.0.12.tgz", + "integrity": "sha512-cD1kz5g2sgPTMFHjLxfMjUK5JABq3//J4jPswi93tOPFz6btzXYtK5NrDt717NRbukCUDOrrvmYVOWERlqoiXA==", "dev": true, "license": "MIT", "dependencies": { - "app-builder-lib": "25.1.8", - "builder-util": "25.1.7", - "builder-util-runtime": "9.2.10", + "app-builder-lib": "26.0.12", + "builder-util": "26.0.11", + "builder-util-runtime": "9.3.1", "chalk": "^4.1.2", - "dmg-builder": "25.1.8", + "dmg-builder": "26.0.12", "fs-extra": "^10.1.0", "is-ci": "^3.0.0", "lazy-val": "^1.0.5", @@ -3097,6 +3503,19 @@ "node": ">=14.0.0" } }, + "node_modules/electron-builder-squirrel-windows": { + "version": "26.0.12", + "resolved": "https://registry.npmjs.org/electron-builder-squirrel-windows/-/electron-builder-squirrel-windows-26.0.12.tgz", + "integrity": "sha512-kpwXM7c/ayRUbYVErQbsZ0nQZX4aLHQrPEG9C4h9vuJCXylwFH8a7Jgi2VpKIObzCXO7LKHiCw4KdioFLFOgqA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "app-builder-lib": "26.0.12", + "builder-util": "26.0.11", + "electron-winstaller": "5.4.0" + } + }, "node_modules/electron-builder/node_modules/fs-extra": { "version": "10.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", @@ -3136,16 +3555,17 @@ } }, "node_modules/electron-publish": { - "version": "25.1.7", - "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-25.1.7.tgz", - "integrity": "sha512-+jbTkR9m39eDBMP4gfbqglDd6UvBC7RLh5Y0MhFSsc6UkGHj9Vj9TWobxevHYMMqmoujL11ZLjfPpMX+Pt6YEg==", + "version": "26.0.11", + "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-26.0.11.tgz", + "integrity": "sha512-a8QRH0rAPIWH9WyyS5LbNvW9Ark6qe63/LqDB7vu2JXYpi0Gma5Q60Dh4tmTqhOBQt0xsrzD8qE7C+D7j+B24A==", "dev": true, "license": "MIT", "dependencies": { "@types/fs-extra": "^9.0.11", - "builder-util": "25.1.7", - "builder-util-runtime": "9.2.10", + "builder-util": "26.0.11", + "builder-util-runtime": "9.3.1", "chalk": "^4.1.2", + "form-data": "^4.0.0", "fs-extra": "^10.1.0", "lazy-val": "^1.0.5", "mime": "^2.5.2" @@ -3204,12 +3624,12 @@ } }, "node_modules/electron-updater": { - "version": "6.3.9", - "resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-6.3.9.tgz", - "integrity": "sha512-2PJNONi+iBidkoC5D1nzT9XqsE8Q1X28Fn6xRQhO3YX8qRRyJ3mkV4F1aQsuRnYPqq6Hw+E51y27W75WgDoofw==", + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-6.6.2.tgz", + "integrity": "sha512-Cr4GDOkbAUqRHP5/oeOmH/L2Bn6+FQPxVLZtPbcmKZC63a1F3uu5EefYOssgZXG3u/zBlubbJ5PJdITdMVggbw==", "license": "MIT", "dependencies": { - "builder-util-runtime": "9.2.10", + "builder-util-runtime": "9.3.1", "fs-extra": "^10.1.0", "js-yaml": "^4.1.0", "lazy-val": "^1.0.5", @@ -3246,36 +3666,79 @@ } }, "node_modules/electron-updater/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "license": "ISC", "bin": { "semver": "bin/semver.js" }, "engines": { - "node": ">=10" + "node": ">=10" + } + }, + "node_modules/electron-updater/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/electron-winstaller": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/electron-winstaller/-/electron-winstaller-5.4.0.tgz", + "integrity": "sha512-bO3y10YikuUwUuDUQRM4KfwNkKhnpVO7IPdbsrejwN9/AABJzzTQ4GeHwyzNSrVO+tEH3/Np255a3sVZpZDjvg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@electron/asar": "^3.2.1", + "debug": "^4.1.1", + "fs-extra": "^7.0.1", + "lodash": "^4.17.21", + "temp": "^0.9.0" + }, + "engines": { + "node": ">=8.0.0" + }, + "optionalDependencies": { + "@electron/windows-sign": "^1.1.2" } }, - "node_modules/electron-updater/node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "node_modules/electron-winstaller/node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, "license": "MIT", + "peer": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, "engines": { - "node": ">= 10.0.0" + "node": ">=6 <7 || >=8" } }, "node_modules/electron/node_modules/@types/node": { - "version": "20.16.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.16.11.tgz", - "integrity": "sha512-y+cTCACu92FyA5fgQSAI8A1H429g7aSK2HsO7K4XYUWc4dY5IUz55JSDIYT6/VsOLfGy8vmvQYC2hfb0iF16Uw==", - "dev": true, + "version": "20.17.47", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.47.tgz", + "integrity": "sha512-3dLX0Upo1v7RvUimvxLeXqwrfyKxUINk0EAM83swP2mlSUcwV73sZy8XhNz8bcZ3VbsfQyC/y6jRdL5tgCNpDQ==", "license": "MIT", "dependencies": { "undici-types": "~6.19.2" } }, + "node_modules/electron/node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "license": "MIT" + }, "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -3286,7 +3749,6 @@ "version": "0.1.13", "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "dev": true, "license": "MIT", "optional": true, "dependencies": { @@ -3306,7 +3768,6 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -3320,15 +3781,11 @@ "license": "MIT" }, "node_modules/es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", - "dev": true, + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "devOptional": true, "license": "MIT", - "optional": true, - "dependencies": { - "get-intrinsic": "^1.2.4" - }, "engines": { "node": ">= 0.4" } @@ -3337,24 +3794,52 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "dev": true, + "devOptional": true, "license": "MIT", - "optional": true, "engines": { "node": ">= 0.4" } }, "node_modules/es-module-lexer": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz", - "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==", - "dev": true + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", + "dev": true, + "license": "MIT" + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } }, "node_modules/es6-error": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", - "dev": true, "license": "MIT", "optional": true }, @@ -3364,6 +3849,7 @@ "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", "dev": true, "hasInstallScript": true, + "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, @@ -3409,7 +3895,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, "license": "MIT", "optional": true, "engines": { @@ -3424,10 +3909,37 @@ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", "dev": true, + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0" } }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/exif-parser": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/exif-parser/-/exif-parser-0.1.12.tgz", + "integrity": "sha512-c2bQfLNbMzLPmzQuOr8fy0csy84WmwnER81W88DzTp9CYNPJ6yzOj2EZAh9pywYpqHnshVLHQJ8WzldAyfY+Iw==", + "peer": true + }, "node_modules/expand-template": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", @@ -3438,9 +3950,9 @@ } }, "node_modules/expect-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.1.0.tgz", - "integrity": "sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.2.1.tgz", + "integrity": "sha512-/kP8CAwxzLVEeFrMm4kMmy4CCDlpipyA7MYLVrdJIkV0fYF0UaigQHRsxHiuY/GEea+bh4KSv3TIlgr+2UL6bw==", "dev": true, "license": "Apache-2.0", "engines": { @@ -3448,9 +3960,9 @@ } }, "node_modules/exponential-backoff": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", - "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.2.tgz", + "integrity": "sha512-8QxYTVXUkuy7fIIoitQkPwGonB8F3Zj8eEO8Sqg9Zv/bkI7RJAzowee4gr81Hak/dUTpA2Z7VfQgoijjPNlUZA==", "dev": true, "license": "Apache-2.0" }, @@ -3458,7 +3970,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", - "dev": true, "license": "BSD-2-Clause", "dependencies": { "debug": "^4.1.1", @@ -3503,20 +4014,19 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", - "dev": true, "license": "MIT", "dependencies": { "pend": "~1.2.0" } }, "node_modules/file-type": { - "version": "19.5.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-19.5.0.tgz", - "integrity": "sha512-dMuq6WWnP6BpQY0zYJNpTtQWgeCImSMG0BTIzUBXvxbwc1HWP/E7AE4UWU9XSCOPGJuOHda0HpDnwM2FW+d90A==", + "version": "19.6.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-19.6.0.tgz", + "integrity": "sha512-VZR5I7k5wkD0HgFnMsq5hOsSc710MJMu5Nc5QYsbe38NN5iPV/XTObYLc/cpttRTf6lX538+5uO1ZQRhYibiZQ==", "license": "MIT", "dependencies": { "get-stream": "^9.0.1", - "strtok3": "^8.1.0", + "strtok3": "^9.0.1", "token-types": "^6.0.0", "uint8array-extras": "^1.3.0" }, @@ -3573,13 +4083,13 @@ } }, "node_modules/foreground-child": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", - "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", "dev": true, "license": "ISC", "dependencies": { - "cross-spawn": "^7.0.0", + "cross-spawn": "^7.0.6", "signal-exit": "^4.0.1" }, "engines": { @@ -3603,14 +4113,15 @@ } }, "node_modules/form-data": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", - "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz", + "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==", "dev": true, "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", "mime-types": "^2.1.12" }, "engines": { @@ -3627,7 +4138,6 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", @@ -3679,32 +4189,10 @@ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", "dev": true, "license": "MIT", - "optional": true, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "deprecated": "This package is no longer supported.", - "dev": true, - "license": "ISC", - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, "node_modules/get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -3715,18 +4203,22 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", "dev": true, "license": "MIT", - "optional": true, "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -3735,11 +4227,24 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/get-stream": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, "license": "MIT", "dependencies": { "pump": "^3.0.0" @@ -3807,7 +4312,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-3.0.0.tgz", "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", - "dev": true, "license": "BSD-3-Clause", "optional": true, "dependencies": { @@ -3823,10 +4327,9 @@ } }, "node_modules/global-agent/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true, + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "license": "ISC", "optional": true, "bin": { @@ -3840,7 +4343,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", - "dev": true, "license": "MIT", "optional": true, "dependencies": { @@ -3855,14 +4357,13 @@ } }, "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dev": true, + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "devOptional": true, "license": "MIT", - "optional": true, - "dependencies": { - "get-intrinsic": "^1.1.3" + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -3872,7 +4373,6 @@ "version": "11.8.6", "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", - "dev": true, "license": "MIT", "dependencies": { "@sindresorhus/is": "^4.0.0", @@ -3914,7 +4414,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "dev": true, "license": "MIT", "optional": true, "dependencies": { @@ -3924,13 +4423,12 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", "dev": true, "license": "MIT", - "optional": true, "engines": { "node": ">= 0.4" }, @@ -3938,13 +4436,15 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dev": true, "license": "MIT", - "optional": true, + "dependencies": { + "has-symbols": "^1.0.3" + }, "engines": { "node": ">= 0.4" }, @@ -3952,20 +4452,12 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", - "dev": true, - "license": "ISC" - }, "node_modules/hasown": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dev": true, "license": "MIT", - "optional": true, "dependencies": { "function-bind": "^1.1.2" }, @@ -3987,10 +4479,9 @@ } }, "node_modules/http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "dev": true, + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", + "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==", "license": "BSD-2-Clause" }, "node_modules/http-proxy-agent": { @@ -4011,7 +4502,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", - "dev": true, "license": "MIT", "dependencies": { "quick-lru": "^5.1.1", @@ -4022,13 +4512,13 @@ } }, "node_modules/https-proxy-agent": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", - "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", "dev": true, "license": "MIT", "dependencies": { - "agent-base": "^7.0.2", + "agent-base": "^7.1.2", "debug": "4" }, "engines": { @@ -4046,14 +4536,14 @@ } }, "node_modules/icojs": { - "version": "0.19.4", - "resolved": "https://registry.npmjs.org/icojs/-/icojs-0.19.4.tgz", - "integrity": "sha512-86oNepPk2jAmbb96BPeucZI7HoSBobFlXDhhjIbwRb3wkQpvdBO5HO9KtMUNzMFT3qqQZsjLsfW+L0/9Rl9VqA==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/icojs/-/icojs-0.19.5.tgz", + "integrity": "sha512-4RnOvFpl7HNgUYLmmLKzhCk/DCNS81sXSC8ENp+mUonMHn3m9dsE+oQLnmoznjwr2bV9n1IapfSpdxopDzYBXA==", "license": "MIT", "dependencies": { "@jimp/bmp": "^0.22.12", "decode-ico": "^0.4.1", - "file-type": "^19.0.0", + "file-type": "^19.6.0", "jpeg-js": "^0.4.4", "pngjs": "^7.0.0", "to-data-view": "^2.0.0" @@ -4083,7 +4573,7 @@ "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" @@ -4261,6 +4751,17 @@ "dev": true, "license": "ISC" }, + "node_modules/isomorphic-fetch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz", + "integrity": "sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==", + "license": "MIT", + "peer": true, + "dependencies": { + "node-fetch": "^2.6.1", + "whatwg-fetch": "^3.4.1" + } + }, "node_modules/jackspeak": { "version": "3.4.3", "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", @@ -4329,7 +4830,8 @@ "node_modules/js-sha256": { "version": "0.10.1", "resolved": "https://registry.npmjs.org/js-sha256/-/js-sha256-0.10.1.tgz", - "integrity": "sha512-5obBtsz9301ULlsgggLg542s/jqtddfOpV5KJc4hajc9JV8GeY2gZHSVpYBn4nWqAUTJ9v+xwtbJ1mIBgIH5Vw==" + "integrity": "sha512-5obBtsz9301ULlsgggLg542s/jqtddfOpV5KJc4hajc9JV8GeY2gZHSVpYBn4nWqAUTJ9v+xwtbJ1mIBgIH5Vw==", + "license": "MIT" }, "node_modules/js-yaml": { "version": "4.1.0", @@ -4354,7 +4856,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true, "license": "MIT" }, "node_modules/json-schema-traverse": { @@ -4368,7 +4869,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "dev": true, "license": "ISC", "optional": true }, @@ -4389,7 +4889,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "dev": true, "license": "MIT", "optionalDependencies": { "graceful-fs": "^4.1.6" @@ -4399,7 +4898,6 @@ "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dev": true, "license": "MIT", "dependencies": { "json-buffer": "3.0.1" @@ -4428,6 +4926,7 @@ "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", + "deprecated": "This package is deprecated. Use require('node:util').isDeepStrictEqual instead.", "license": "MIT" }, "node_modules/log-symbols": { @@ -4448,16 +4947,16 @@ } }, "node_modules/loupe": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.2.tgz", - "integrity": "sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==", - "dev": true + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.3.tgz", + "integrity": "sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==", + "dev": true, + "license": "MIT" }, "node_modules/lowercase-keys": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -4481,6 +4980,7 @@ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0" } @@ -4569,7 +5069,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", - "dev": true, "license": "MIT", "optional": true, "dependencies": { @@ -4579,6 +5078,16 @@ "node": ">=10" } }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/mime": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", @@ -4629,7 +5138,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true, "license": "MIT", "engines": { "node": ">=4" @@ -4779,7 +5287,8 @@ "node_modules/moo": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.2.tgz", - "integrity": "sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==" + "integrity": "sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==", + "license": "BSD-3-Clause" }, "node_modules/ms": { "version": "2.1.3", @@ -4788,9 +5297,9 @@ "license": "MIT" }, "node_modules/nanoid": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", - "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", "dev": true, "funding": [ { @@ -4798,6 +5307,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -4806,9 +5316,9 @@ } }, "node_modules/napi-build-utils": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", - "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-2.0.0.tgz", + "integrity": "sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==", "license": "MIT" }, "node_modules/negotiator": { @@ -4822,21 +5332,23 @@ } }, "node_modules/node-abi": { - "version": "3.68.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.68.0.tgz", - "integrity": "sha512-7vbj10trelExNjFSBm5kTvZXXa7pZyKWx9RCKIyqe6I9Ev3IzGpQoqBP3a+cOdxY+pWj6VkP28n/2wWysBHD/A==", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-4.8.0.tgz", + "integrity": "sha512-+P1Mf1XNURT+wN9UK8cjtHSwmmG02iAsX0JaYDDdXgMUe5eybde3AKpGGxOrkDmPkuonYJ6WjIRrNVQe0kjmFg==", + "dev": true, "license": "MIT", "dependencies": { - "semver": "^7.3.5" + "semver": "^7.6.3" }, "engines": { - "node": ">=10" + "node": ">=22.12.0" } }, "node_modules/node-abi/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "dev": true, "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -4853,9 +5365,9 @@ "optional": true }, "node_modules/node-api-version": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/node-api-version/-/node-api-version-0.2.0.tgz", - "integrity": "sha512-fthTTsi8CxaBXMaBAD7ST2uylwvsnYxh2PfaScwpMhos6KlSFajXQPcM4ogNE1q2s3Lbz9GCGqeIHC+C6OZnKg==", + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/node-api-version/-/node-api-version-0.2.1.tgz", + "integrity": "sha512-2xP/IGGMmmSQpI1+O/k72jF/ykvZ89JeuKX3TLJAYPDVLUalrshrLHkeVcCCZqG/eEa635cr8IBYzgnDvM2O8Q==", "dev": true, "license": "MIT", "dependencies": { @@ -4863,9 +5375,9 @@ } }, "node_modules/node-api-version/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "dev": true, "license": "ISC", "bin": { @@ -4875,36 +5387,31 @@ "node": ">=10" } }, - "node_modules/node-gyp": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.4.1.tgz", - "integrity": "sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ==", - "dev": true, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", "license": "MIT", + "peer": true, "dependencies": { - "env-paths": "^2.2.0", - "exponential-backoff": "^3.1.1", - "glob": "^7.1.4", - "graceful-fs": "^4.2.6", - "make-fetch-happen": "^10.0.3", - "nopt": "^6.0.0", - "npmlog": "^6.0.0", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.2", - "which": "^2.0.2" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" + "whatwg-url": "^5.0.0" }, "engines": { - "node": "^12.13 || ^14.13 || >=16" + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, "node_modules/node-gyp-build": { - "version": "4.8.2", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.2.tgz", - "integrity": "sha512-IRUxE4BVsHWXkV/SFOut4qTlagw2aM8T5/vnTsmrHJvVoKueJHRc/JaFND7QDDc61kLYUJ6qlZM3sqTSyx2dTw==", + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz", + "integrity": "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==", "dev": true, "license": "MIT", "bin": { @@ -4913,19 +5420,6 @@ "node-gyp-build-test": "build-test.js" } }, - "node_modules/node-gyp/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/nopt": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/nopt/-/nopt-6.0.0.tgz", @@ -4946,7 +5440,6 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "dev": true, "license": "MIT", "engines": { "node": ">=10" @@ -4968,28 +5461,10 @@ "node": ">=8" } }, - "node_modules/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "deprecated": "This package is no longer supported.", - "dev": true, - "license": "ISC", - "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, "node_modules/object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, "license": "MIT", "optional": true, "engines": { @@ -5049,7 +5524,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -5152,13 +5626,15 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/pathval": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz", "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 14.16" } @@ -5179,9 +5655,9 @@ } }, "node_modules/peek-readable": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-5.2.0.tgz", - "integrity": "sha512-U94a+eXHzct7vAd19GH3UQ2dH4Satbng0MyYTMaQatL0pvYYL5CTPR25HBhKtecl+4bfu1/i3vC6k0hydO5Vcw==", + "version": "5.4.2", + "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-5.4.2.tgz", + "integrity": "sha512-peBp3qZyuS6cNIJ2akRNG1uo1WJ1d0wTxg/fxMdZ0BqCVhx242bSFHM9eNqflfJVS9SsgkzgT/1UgnsurBOTMg==", "license": "MIT", "engines": { "node": ">=14.16" @@ -5195,14 +5671,37 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", - "dev": true, "license": "MIT" }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "dev": true + "dev": true, + "license": "ISC" + }, + "node_modules/pixelmatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-4.0.2.tgz", + "integrity": "sha512-J8B6xqiO37sU/gkcMglv6h5Jbd9xNER7aHzpfRdNmV4IbQBzBpe4l9XmbG+xPF/znacgu2jfEw+wHffaq/YkXA==", + "license": "ISC", + "peer": true, + "dependencies": { + "pngjs": "^3.0.0" + }, + "bin": { + "pixelmatch": "bin/pixelmatch" + } + }, + "node_modules/pixelmatch/node_modules/pngjs": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", + "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=4.0.0" + } }, "node_modules/playwright": { "version": "1.48.2", @@ -5261,9 +5760,9 @@ } }, "node_modules/postcss": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.1.tgz", - "integrity": "sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==", + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", + "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", "dev": true, "funding": [ { @@ -5279,19 +5778,50 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "nanoid": "^3.3.8", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, "engines": { - "node": "^10 || ^12 || >=14" + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postject": { + "version": "1.0.0-alpha.6", + "resolved": "https://registry.npmjs.org/postject/-/postject-1.0.0-alpha.6.tgz", + "integrity": "sha512-b9Eb8h2eVqNE8edvKdwqkrY6O7kAwmI8kcnBv1NScolYJbo59XUF0noFq+lxbC1yN20bmC0WBEbDC5H/7ASb0A==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "commander": "^9.4.0" + }, + "bin": { + "postject": "dist/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/postject/node_modules/commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": "^12.20.0 || >=14" } }, "node_modules/prebuild-install": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.2.tgz", - "integrity": "sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.3.tgz", + "integrity": "sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==", "license": "MIT", "dependencies": { "detect-libc": "^2.0.0", @@ -5299,7 +5829,7 @@ "github-from-package": "0.0.0", "minimist": "^1.2.3", "mkdirp-classic": "^0.5.3", - "napi-build-utils": "^1.0.1", + "napi-build-utils": "^2.0.0", "node-abi": "^3.3.0", "pump": "^3.0.0", "rc": "^1.2.7", @@ -5314,6 +5844,30 @@ "node": ">=10" } }, + "node_modules/prebuild-install/node_modules/node-abi": { + "version": "3.75.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.75.0.tgz", + "integrity": "sha512-OhYaY5sDsIka7H7AtijtI9jwGYLyl29eQn/W623DiN/MIv5sUqc4g7BIDThX+gb7di9f6xK02nkp8sdfFWZLTg==", + "license": "MIT", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/prebuild-install/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/prebuildify": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/prebuildify/-/prebuildify-6.0.1.tgz", @@ -5332,11 +5886,56 @@ "prebuildify": "bin.js" } }, + "node_modules/prebuildify/node_modules/node-abi": { + "version": "3.75.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.75.0.tgz", + "integrity": "sha512-OhYaY5sDsIka7H7AtijtI9jwGYLyl29eQn/W623DiN/MIv5sUqc4g7BIDThX+gb7di9f6xK02nkp8sdfFWZLTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/prebuildify/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/proc-log": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-2.0.1.tgz", + "integrity": "sha512-Kcmo2FhfDTXdcbfDH76N7uBYHINxc/8GW7UAVuVP9I+Va3uHSerrnKV6dLooga/gh7GlgzuCCr/eoldnL1muGw==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 0.6.0" + } + }, "node_modules/progress": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true, "license": "MIT", "engines": { "node": ">=0.4.0" @@ -5387,7 +5986,6 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "dev": true, "license": "MIT", "engines": { "node": ">=10" @@ -5438,14 +6036,73 @@ "node": ">= 6" } }, + "node_modules/readable-web-to-node-stream": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.4.tgz", + "integrity": "sha512-9nX56alTf5bwXQ3ZDipHJhusu9NTQJ/CVPtb/XHAJCXihZeitfJvIRS4GqQ/mfIoOE3IelHMrpayVrosdHBuLw==", + "license": "MIT", + "peer": true, + "dependencies": { + "readable-stream": "^4.7.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/readable-web-to-node-stream/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/readable-web-to-node-stream/node_modules/readable-stream": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.7.0.tgz", + "integrity": "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==", + "license": "MIT", + "peer": true, + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, "node_modules/readdirp": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", - "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", "dev": true, "license": "MIT", "engines": { - "node": ">= 14.16.0" + "node": ">= 14.18.0" }, "funding": { "type": "individual", @@ -5453,9 +6110,9 @@ } }, "node_modules/regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", "license": "MIT" }, "node_modules/require-directory": { @@ -5489,14 +6146,12 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", - "dev": true, "license": "MIT" }, "node_modules/responselike": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", - "dev": true, "license": "MIT", "dependencies": { "lowercase-keys": "^2.0.0" @@ -5550,7 +6205,6 @@ "version": "2.15.4", "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz", "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", - "dev": true, "license": "BSD-3-Clause", "optional": true, "dependencies": { @@ -5566,12 +6220,13 @@ } }, "node_modules/rollup": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.31.0.tgz", - "integrity": "sha512-9cCE8P4rZLx9+PjoyqHLs31V9a9Vpvfo4qNcs6JCiGWYhw2gijSetFbH6SSy1whnkgcefnUwr8sad7tgqsGvnw==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.40.2.tgz", + "integrity": "sha512-tfUOg6DTP4rhQ3VjOO6B4wyrJnGOX85requAXvqYTHsOgb2TFJdZ3aWpT8W2kPoypSGP7dZUyzxJ9ee4buM5Fg==", "dev": true, + "license": "MIT", "dependencies": { - "@types/estree": "1.0.6" + "@types/estree": "1.0.7" }, "bin": { "rollup": "dist/bin/rollup" @@ -5581,32 +6236,33 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.31.0", - "@rollup/rollup-android-arm64": "4.31.0", - "@rollup/rollup-darwin-arm64": "4.31.0", - "@rollup/rollup-darwin-x64": "4.31.0", - "@rollup/rollup-freebsd-arm64": "4.31.0", - "@rollup/rollup-freebsd-x64": "4.31.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.31.0", - "@rollup/rollup-linux-arm-musleabihf": "4.31.0", - "@rollup/rollup-linux-arm64-gnu": "4.31.0", - "@rollup/rollup-linux-arm64-musl": "4.31.0", - "@rollup/rollup-linux-loongarch64-gnu": "4.31.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.31.0", - "@rollup/rollup-linux-riscv64-gnu": "4.31.0", - "@rollup/rollup-linux-s390x-gnu": "4.31.0", - "@rollup/rollup-linux-x64-gnu": "4.31.0", - "@rollup/rollup-linux-x64-musl": "4.31.0", - "@rollup/rollup-win32-arm64-msvc": "4.31.0", - "@rollup/rollup-win32-ia32-msvc": "4.31.0", - "@rollup/rollup-win32-x64-msvc": "4.31.0", + "@rollup/rollup-android-arm-eabi": "4.40.2", + "@rollup/rollup-android-arm64": "4.40.2", + "@rollup/rollup-darwin-arm64": "4.40.2", + "@rollup/rollup-darwin-x64": "4.40.2", + "@rollup/rollup-freebsd-arm64": "4.40.2", + "@rollup/rollup-freebsd-x64": "4.40.2", + "@rollup/rollup-linux-arm-gnueabihf": "4.40.2", + "@rollup/rollup-linux-arm-musleabihf": "4.40.2", + "@rollup/rollup-linux-arm64-gnu": "4.40.2", + "@rollup/rollup-linux-arm64-musl": "4.40.2", + "@rollup/rollup-linux-loongarch64-gnu": "4.40.2", + "@rollup/rollup-linux-powerpc64le-gnu": "4.40.2", + "@rollup/rollup-linux-riscv64-gnu": "4.40.2", + "@rollup/rollup-linux-riscv64-musl": "4.40.2", + "@rollup/rollup-linux-s390x-gnu": "4.40.2", + "@rollup/rollup-linux-x64-gnu": "4.40.2", + "@rollup/rollup-linux-x64-musl": "4.40.2", + "@rollup/rollup-win32-arm64-msvc": "4.40.2", + "@rollup/rollup-win32-ia32-msvc": "4.40.2", + "@rollup/rollup-win32-x64-msvc": "4.40.2", "fsevents": "~2.3.2" } }, "node_modules/rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "version": "7.8.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", + "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", "license": "Apache-2.0", "optional": true, "dependencies": { @@ -5637,7 +6293,7 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true, + "devOptional": true, "license": "MIT" }, "node_modules/sanitize-filename": { @@ -5660,7 +6316,6 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -5670,7 +6325,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", - "dev": true, "license": "MIT", "optional": true }, @@ -5678,7 +6332,6 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", - "dev": true, "license": "MIT", "optional": true, "dependencies": { @@ -5691,13 +6344,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "dev": true, - "license": "ISC" - }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -5794,9 +6440,9 @@ } }, "node_modules/simple-update-notifier/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "dev": true, "license": "ISC", "bin": { @@ -5843,9 +6489,9 @@ } }, "node_modules/socks": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", - "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", + "version": "2.8.4", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.4.tgz", + "integrity": "sha512-D3YaD0aRxR3mEcqnidIs7ReYJFVzWdd6fXJYUM8ixcQcJRGTka/b3saV0KflYhyVJXKhb947GndU35SxYNResQ==", "dev": true, "license": "MIT", "dependencies": { @@ -5900,6 +6546,7 @@ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -5919,27 +6566,27 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", - "dev": true, + "devOptional": true, "license": "BSD-3-Clause" }, "node_modules/sqlite-better-trigram": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/sqlite-better-trigram/-/sqlite-better-trigram-0.0.2.tgz", - "integrity": "sha512-MA1PZVcTlIyeg5RJQPP7PgpEXcgTdgASmbYj3I9NjL5lzBr+m/Ik4edeERIbmGSuYSavE2oIiTwDFWcCIB9PyQ==", + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/sqlite-better-trigram/-/sqlite-better-trigram-0.0.3.tgz", + "integrity": "sha512-r+SDeNk+K1VotrUx/w0TMu4FdjoDDPCqxhtfU50dSeTzfCFtkMBq1/E3gvsaiHi3UYtOa6siA8CK/gYlj75eCA==", "license": "Public Domain", "optionalDependencies": { - "sqlite-better-trigram-darwin-arm64": "0.0.2", - "sqlite-better-trigram-darwin-x64": "0.0.2", - "sqlite-better-trigram-linux-arm64": "0.0.2", - "sqlite-better-trigram-linux-x64": "0.0.2", - "sqlite-better-trigram-windows-arm64": "0.0.2", - "sqlite-better-trigram-windows-x64": "0.0.2" + "sqlite-better-trigram-darwin-arm64": "0.0.3", + "sqlite-better-trigram-darwin-x64": "0.0.3", + "sqlite-better-trigram-linux-arm64": "0.0.3", + "sqlite-better-trigram-linux-x64": "0.0.3", + "sqlite-better-trigram-windows-arm64": "0.0.3", + "sqlite-better-trigram-windows-x64": "0.0.3" } }, "node_modules/sqlite-better-trigram-darwin-arm64": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/sqlite-better-trigram-darwin-arm64/-/sqlite-better-trigram-darwin-arm64-0.0.2.tgz", - "integrity": "sha512-7QaBoOsk0Jc5CtRQOGkeT8LAmvMylNaIwuqWDpANK+/MYNxYNEIxlgerPlwytM9//P6gm0RqlcPjoSQ0cV3plQ==", + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/sqlite-better-trigram-darwin-arm64/-/sqlite-better-trigram-darwin-arm64-0.0.3.tgz", + "integrity": "sha512-ddL0K3v10bvqjuUgPSRfP1qFZAhO/43ruaWtWS5wu4DgikldGz1tBY+nQtdc+Xt0arrEMUyiEvOz7MuKHQNA0Q==", "cpu": [ "arm64" ], @@ -5950,9 +6597,9 @@ ] }, "node_modules/sqlite-better-trigram-darwin-x64": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/sqlite-better-trigram-darwin-x64/-/sqlite-better-trigram-darwin-x64-0.0.2.tgz", - "integrity": "sha512-aiVUq06o7z+JI9Y59wCoUUX+Xnvis/jU2az1aoeZCNk8JH7qxyZzgP73s/QFPGq3ZczGhyLcmpLayldtB26NSw==", + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/sqlite-better-trigram-darwin-x64/-/sqlite-better-trigram-darwin-x64-0.0.3.tgz", + "integrity": "sha512-IQzFzXt0ib1MZ/UQm71X7RKv8G0vwepNqcmncWbK1R7LAWwpS/qaJ1NyrMOhL2AnfeQ33x1IkQE0GlamxFVC9A==", "cpu": [ "x64" ], @@ -5963,9 +6610,9 @@ ] }, "node_modules/sqlite-better-trigram-linux-arm64": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/sqlite-better-trigram-linux-arm64/-/sqlite-better-trigram-linux-arm64-0.0.2.tgz", - "integrity": "sha512-+I/V4LZkw1xgJhRZIYMJfsdwS+CJ/hmR+Mq8N2eHZ/J1n0qmnKNcquC1R1d7Per9MLtPLcDnxEqGjUUcoQyS9A==", + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/sqlite-better-trigram-linux-arm64/-/sqlite-better-trigram-linux-arm64-0.0.3.tgz", + "integrity": "sha512-NTykERCSxAutAtJ9ITwOQBitC9zDg61tTDoLOGdMoDO2iAQNLuGApNS8qFvnCNl1wZy8yowI24rHYMCWLDIEIA==", "cpu": [ "arm64" ], @@ -5976,9 +6623,9 @@ ] }, "node_modules/sqlite-better-trigram-linux-x64": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/sqlite-better-trigram-linux-x64/-/sqlite-better-trigram-linux-x64-0.0.2.tgz", - "integrity": "sha512-anok/KvZV7jHLMtBtgw4k4A76Q5Phk+CzriUUyOYxwIY3ru5Z/ZbzW2VfwMMbekD8bQ1MPRx2bh/lZpCNqK8Ig==", + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/sqlite-better-trigram-linux-x64/-/sqlite-better-trigram-linux-x64-0.0.3.tgz", + "integrity": "sha512-WoB2qMeFX6XGOWdTYCrF4imEBL5/a/UKqZpzWvPhtV92Ys47z4AIuwiWvekO8/5FRLYCyT9rJLXLSY2eUwOqLg==", "cpu": [ "x64" ], @@ -5989,9 +6636,9 @@ ] }, "node_modules/sqlite-better-trigram-windows-arm64": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/sqlite-better-trigram-windows-arm64/-/sqlite-better-trigram-windows-arm64-0.0.2.tgz", - "integrity": "sha512-rupFON6/1MEZdMoUBPLl3xQa7BQiUxVnVtsOsywzV0C62JeF5lMYBNAd6FUD7YQRjuufMZuW9kCygB7siZZsfw==", + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/sqlite-better-trigram-windows-arm64/-/sqlite-better-trigram-windows-arm64-0.0.3.tgz", + "integrity": "sha512-hXIT+PkkJQ3vJ0+E8Zh2/BoOCQ2dRj6LmchjP7T5afpbKXI/lcI77Cgk3tPwe8s/Ywci6OyeJwcaFuBtf1CLhw==", "cpu": [ "arm64" ], @@ -6002,9 +6649,101 @@ ] }, "node_modules/sqlite-better-trigram-windows-x64": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/sqlite-better-trigram-windows-x64/-/sqlite-better-trigram-windows-x64-0.0.3.tgz", + "integrity": "sha512-dli7MaDld9k02Vx74Mrovxxy+SQ72GwaObvIOcbI7ATiKUvhRvjHZgmuIvgxF2DM8aRejFHgPIC4/GUJcjauEg==", + "cpu": [ + "x64" + ], + "license": "Public Domain", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/sqlite3-fts5-html": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/sqlite3-fts5-html/-/sqlite3-fts5-html-0.0.2.tgz", + "integrity": "sha512-ZAEkKJFQo5SvjTkRKQ7H/cFyClIdBX/lRV00twMHS30dbb+yYWkPPAGwNYzf9fIxwaGByE9hBLyF849Ttyoagw==", + "license": "Public Domain", + "optionalDependencies": { + "sqlite3-fts5-html-darwin-arm64": "0.0.2", + "sqlite3-fts5-html-darwin-x64": "0.0.2", + "sqlite3-fts5-html-linux-arm64": "0.0.2", + "sqlite3-fts5-html-linux-x64": "0.0.2", + "sqlite3-fts5-html-windows-arm64": "0.0.2", + "sqlite3-fts5-html-windows-x64": "0.0.2" + } + }, + "node_modules/sqlite3-fts5-html-darwin-arm64": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/sqlite3-fts5-html-darwin-arm64/-/sqlite3-fts5-html-darwin-arm64-0.0.2.tgz", + "integrity": "sha512-FvXbdhtO3Nd0xO8rdUjhmjvunfn0PmVnOqrAEXMIzq4Kme25Cx3myRQ5ros5T9cUY85bLrGU7kqXTwC7A2oDvQ==", + "cpu": [ + "arm64" + ], + "license": "Public Domain", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/sqlite3-fts5-html-darwin-x64": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/sqlite3-fts5-html-darwin-x64/-/sqlite3-fts5-html-darwin-x64-0.0.2.tgz", + "integrity": "sha512-INCUEeuqYnJAVZ/gKAPFBIL//bZdi424CxKZE627jlO4Gv8xIXfX1883Bc/7JRXl6oI8xkSh4ztolQ+Ern4Kfw==", + "cpu": [ + "x64" + ], + "license": "Public Domain", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/sqlite3-fts5-html-linux-arm64": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/sqlite3-fts5-html-linux-arm64/-/sqlite3-fts5-html-linux-arm64-0.0.2.tgz", + "integrity": "sha512-J/nndVy12Bj0j9Ml9VuRWj63rUJtzzOKE5Fbu16Vo+fMzOpuj8Nheqgc5Fu2NI0n3BTIuCvb1qOfil9JdCypMQ==", + "cpu": [ + "arm64" + ], + "license": "Public Domain", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/sqlite3-fts5-html-linux-x64": { "version": "0.0.2", - "resolved": "https://registry.npmjs.org/sqlite-better-trigram-windows-x64/-/sqlite-better-trigram-windows-x64-0.0.2.tgz", - "integrity": "sha512-V2XCfgyrO7Zyk3P9pKNDLpk1hJBsPvxZL+KMNy0L6PumVdZo06YqW/TjbF1ZKIzDNTL3GoAkQ8AnNha+rD8wOA==", + "resolved": "https://registry.npmjs.org/sqlite3-fts5-html-linux-x64/-/sqlite3-fts5-html-linux-x64-0.0.2.tgz", + "integrity": "sha512-vQQ8iLBSPvBv4tuDapSLxp65BUVRQC3MjxeHFu5x+xcMVZhrfQFCuJbsdh/R708vQzF88hM+zpVgXiZ/5GB2yw==", + "cpu": [ + "x64" + ], + "license": "Public Domain", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/sqlite3-fts5-html-windows-arm64": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/sqlite3-fts5-html-windows-arm64/-/sqlite3-fts5-html-windows-arm64-0.0.2.tgz", + "integrity": "sha512-P4aM3EyMn1RiN0vga9Cd2xSPrz6Tb61bgbrKNGyu9JPKR1hr7t7uz09EzkrQmXe8olKT2BmrlpP7qJr/HzJ+MQ==", + "cpu": [ + "arm64" + ], + "license": "Public Domain", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/sqlite3-fts5-html-windows-x64": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/sqlite3-fts5-html-windows-x64/-/sqlite3-fts5-html-windows-x64-0.0.2.tgz", + "integrity": "sha512-hgJ1xAmSUgwO6CO+Oiuwh0KjCm1O/YQWvYApin5JooLlv1j3WhVDgKIhupfiLZ0rNaLsUwWGPTq1S6FL7w0//g==", "cpu": [ "x64" ], @@ -6045,9 +6784,9 @@ } }, "node_modules/std-env": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.8.0.tgz", - "integrity": "sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==", + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.9.0.tgz", + "integrity": "sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==", "dev": true, "license": "MIT" }, @@ -6126,13 +6865,13 @@ } }, "node_modules/strtok3": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-8.1.0.tgz", - "integrity": "sha512-ExzDvHYPj6F6QkSNe/JxSlBxTh3OrI6wrAIz53ulxo1c4hBJ1bT9C/JrAthEKHWG9riVH3Xzg7B03Oxty6S2Lw==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-9.1.1.tgz", + "integrity": "sha512-FhwotcEqjr241ZbjFzjlIYg6c5/L/s4yBGWSMvJ9UoExiSqL+FnFA/CaeZx17WGaZMS/4SOZp8wH18jSS4R4lw==", "license": "MIT", "dependencies": { "@tokenizer/token": "^0.3.0", - "peek-readable": "^5.1.4" + "peek-readable": "^5.3.1" }, "engines": { "node": ">=16" @@ -6146,7 +6885,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz", "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", - "dev": true, "license": "Apache-2.0", "dependencies": { "debug": "^4.1.0" @@ -6187,9 +6925,9 @@ } }, "node_modules/tar-fs": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", - "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.2.tgz", + "integrity": "sha512-EsaAXwxmx8UB7FRKqeozqEPop69DXcmYwTQwXvyAPF352HJsPdkVhvTaDPYqfNgruveJIJy3TA2l+2zj8LJIJA==", "license": "MIT", "dependencies": { "chownr": "^1.1.1", @@ -6230,6 +6968,21 @@ "node": ">=8" } }, + "node_modules/temp": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/temp/-/temp-0.9.4.tgz", + "integrity": "sha512-yYrrsWnrXMcdsnu/7YMYAofM1ktpL5By7vZhf15CrXijWWrEYZks5AXBudalfSWJLlnen/QUJUB5aoB0kqZUGA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "mkdirp": "^0.5.1", + "rimraf": "~2.6.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/temp-file": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/temp-file/-/temp-file-3.4.0.tgz", @@ -6279,6 +7032,55 @@ "node": ">= 10.0.0" } }, + "node_modules/temp/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/temp/node_modules/rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "license": "ISC", + "peer": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/tiny-async-pool": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/tiny-async-pool/-/tiny-async-pool-1.3.0.tgz", + "integrity": "sha512-01EAw5EDrcVrdgyCLgoSPvqznC0sVxDSVeiOz09FUpjh71G79VCqneOr+xvt7T1r76CF6ZZfPjHorN2+d+3mqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^5.5.0" + } + }, + "node_modules/tiny-async-pool/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, "node_modules/tiny-typed-emitter": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/tiny-typed-emitter/-/tiny-typed-emitter-2.1.0.tgz", @@ -6292,10 +7094,17 @@ "dev": true, "license": "MIT" }, + "node_modules/tinycolor2": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz", + "integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==", + "license": "MIT", + "peer": true + }, "node_modules/tinyexec": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.1.tgz", - "integrity": "sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", + "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", "dev": true, "license": "MIT" }, @@ -6314,6 +7123,7 @@ "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-1.2.0.tgz", "integrity": "sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.0.0" } @@ -6323,6 +7133,7 @@ "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-3.0.2.tgz", "integrity": "sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.0.0" } @@ -6373,6 +7184,13 @@ "url": "https://github.com/sponsors/Borewit" } }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT", + "peer": true + }, "node_modules/tree-kill": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", @@ -6394,9 +7212,9 @@ } }, "node_modules/tslib": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", - "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD", "optional": true }, @@ -6416,7 +7234,6 @@ "version": "0.13.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", - "dev": true, "license": "(MIT OR CC0-1.0)", "optional": true, "engines": { @@ -6436,9 +7253,9 @@ } }, "node_modules/typescript": { - "version": "5.6.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", - "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", + "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", "dev": true, "license": "Apache-2.0", "bin": { @@ -6462,20 +7279,19 @@ } }, "node_modules/undici": { - "version": "6.19.8", - "resolved": "https://registry.npmjs.org/undici/-/undici-6.19.8.tgz", - "integrity": "sha512-U8uCCl2x9TK3WANvmBavymRzxbfFYG+tAu+fgx3zxQy3qdagQqBLwJVrdyO1TBfUXvfKveMKJZhpvUYoOjM+4g==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-7.9.0.tgz", + "integrity": "sha512-e696y354tf5cFZPXsF26Yg+5M63+5H3oE6Vtkh2oqbvsE2Oe7s2nIbcQh5lmG7Lp/eS29vJtTpw9+p6PX0qNSg==", "dev": true, "license": "MIT", "engines": { - "node": ">=18.17" + "node": ">=20.18.1" } }, "node_modules/undici-types": { - "version": "6.19.8", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", - "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", - "devOptional": true, + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", "license": "MIT" }, "node_modules/unique-filename": { @@ -6508,7 +7324,6 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, "license": "MIT", "engines": { "node": ">= 4.0.0" @@ -6559,10 +7374,11 @@ } }, "node_modules/vite": { - "version": "5.4.12", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.12.tgz", - "integrity": "sha512-KwUaKB27TvWwDJr1GjjWthLMATbGEbeWYZIbGZ5qFIsgPP3vWzLu4cVooqhm5/Z2SPDUMjyPVjTztm5tYKwQxA==", + "version": "5.4.19", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.19.tgz", + "integrity": "sha512-qO3aKv3HoQC8QKiNSTuUM1l9o/XX3+c+VTgLHbJWHZGeTPVAg2XwazI9UWzoxjIJCGCV2zU60uqMzjeLZuULqA==", "dev": true, + "license": "MIT", "dependencies": { "esbuild": "^0.21.3", "postcss": "^8.4.43", @@ -6622,6 +7438,7 @@ "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-2.1.8.tgz", "integrity": "sha512-uPAwSr57kYjAUux+8E2j0q0Fxpn8M9VoyfGiRI8Kfktz9NcYMCenwY5RnZxnF1WTu3TGiYipirIzacLL3VVGFg==", "dev": true, + "license": "MIT", "dependencies": { "cac": "^6.7.14", "debug": "^4.3.7", @@ -6645,6 +7462,7 @@ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, "hasInstallScript": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -6729,6 +7547,31 @@ "defaults": "^1.0.3" } }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "license": "BSD-2-Clause", + "peer": true + }, + "node_modules/whatwg-fetch": { + "version": "3.6.20", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz", + "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==", + "license": "MIT", + "peer": true + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", + "peer": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -6762,16 +7605,6 @@ "node": ">=8" } }, - "node_modules/wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, "node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -6871,7 +7704,6 @@ "version": "2.10.0", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", - "dev": true, "license": "MIT", "dependencies": { "buffer-crc32": "~0.2.3", @@ -6892,9 +7724,9 @@ } }, "node_modules/zod": { - "version": "3.23.8", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz", - "integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==", + "version": "3.24.3", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.3.tgz", + "integrity": "sha512-HhY1oqzWCQWuUqvBFnsyrtZRhyPeR7SUGv+C4+MsisMuVfSPx8HpwWqH8tRahSlt6M3PiFAcoeFhZAqIXTxoSg==", "license": "MIT", "funding": { "url": "https://github.com/sponsors/colinhacks" diff --git a/apps/desktop/package.json b/apps/desktop/package.json index 7452399534..c0c50bcdad 100644 --- a/apps/desktop/package.json +++ b/apps/desktop/package.json @@ -2,7 +2,7 @@ "name": "@notesnook/desktop", "productName": "Notesnook", "description": "Your private note taking space", - "version": "3.1.0", + "version": "3.2.0-beta.2", "appAppleId": "1544027013", "private": true, "main": "./dist/cjs/index.js", @@ -27,37 +27,42 @@ "dependencies": { "@lingui/core": "5.1.2", "@notesnook/intl": "file:../../packages/intl", + "@notesnook/ui": "file:../../packages/ui", "@trpc/client": "10.45.2", "@trpc/server": "10.45.2", - "better-sqlite3-multiple-ciphers": "11.5.0", + "better-sqlite3-multiple-ciphers": "11.3.0", "electron-trpc": "0.7.1", - "electron-updater": "^6.3.4", - "icojs": "^0.19.4", - "sqlite-better-trigram": "0.0.2", + "electron-updater": "^6.6.2", + "icojs": "^0.19.5", + "sqlite-better-trigram": "0.0.3", + "sqlite3-fts5-html": "^0.0.2", "typed-emitter": "^2.1.0", "yargs": "^17.7.2", - "zod": "3.23.8" + "zod": "3.24.3" }, "devDependencies": { "@streetwriters/kysely": "^0.27.4", - "@types/node": "22.7.0", + "@types/node": "22.15.3", "@types/yargs": "^17.0.33", - "chokidar": "^4.0.1", - "electron": "^31.7.4", - "electron-builder": "^25.1.8", + "chokidar": "^4.0.3", + "electron": "^34.0.0", + "electron-builder": "^26.0.12", "esbuild": "0.21.5", - "node-abi": "^3.68.0", - "node-gyp-build": "^4.8.2", - "playwright": "^1.48.2", + "node-abi": "^4.5.0", + "node-gyp-build": "^4.8.4", + "playwright": "1.48.2", "prebuildify": "^6.0.1", "slugify": "1.6.6", "tree-kill": "^1.2.2", - "undici": "^6.19.8", - "vitest": "^2.1.8" + "undici": "^7.8.0", + "vitest": "2.1.8" }, "optionalDependencies": { "dmg-license": "^1.0.11" }, + "overrides": { + "@electron/node-gyp": "^10.2.0-electron.2" + }, "scripts": { "start": "node scripts/dev.mjs", "staging": "node scripts/build.mjs --run", diff --git a/apps/desktop/patches/app-builder-lib+25.0.5.patch b/apps/desktop/patches/app-builder-lib+25.0.5.patch deleted file mode 100644 index 080f5e629e..0000000000 --- a/apps/desktop/patches/app-builder-lib+25.0.5.patch +++ /dev/null @@ -1,36 +0,0 @@ -diff --git a/node_modules/app-builder-lib/out/targets/LinuxTargetHelper.js b/node_modules/app-builder-lib/out/targets/LinuxTargetHelper.js -index 739a48c..7a7b4af 100644 ---- a/node_modules/app-builder-lib/out/targets/LinuxTargetHelper.js -+++ b/node_modules/app-builder-lib/out/targets/LinuxTargetHelper.js -@@ -117,6 +117,7 @@ class LinuxTargetHelper { - StartupWMClass: appInfo.productName, - ...extra, - ...targetSpecificOptions.desktop, -+ actions: undefined - }; - const description = this.getDescription(targetSpecificOptions); - if (!(0, builder_util_1.isEmptyOrSpaces)(description)) { -@@ -160,6 +161,23 @@ class LinuxTargetHelper { - data += `\n${name}=${desktopMeta[name]}`; - } - data += "\n"; -+ -+ if (targetSpecificOptions.desktop.actions) { -+ let actionsData = ""; -+ const validActions = []; -+ for (const action of targetSpecificOptions.desktop.actions) { -+ if (!action.id || !action.name || !action.args) continue; -+ actionsData += "\n"; -+ actionsData += `[Desktop Action ${action.id}] -+Name=${action.name} -+Exec=${desktopMeta.Exec} ${action.args}`; -+ actionsData += "\n"; -+ -+ validActions.push(action.id); -+ } -+ -+ data += `Actions=${validActions.join(";")};\n${actionsData}` -+ } - return Promise.resolve(data); - } - } diff --git a/apps/desktop/patches/electron-trpc+0.6.1.patch b/apps/desktop/patches/electron-trpc+0.6.1.patch deleted file mode 100644 index 32c240809f..0000000000 --- a/apps/desktop/patches/electron-trpc+0.6.1.patch +++ /dev/null @@ -1,39 +0,0 @@ -diff --git a/node_modules/electron-trpc/dist/main.mjs b/node_modules/electron-trpc/dist/main.mjs -index 07971db..b67a3cf 100644 ---- a/node_modules/electron-trpc/dist/main.mjs -+++ b/node_modules/electron-trpc/dist/main.mjs -@@ -537,8 +537,15 @@ class be { - attachWindow(r) { - F(this, w).includes(r) || (y("Attaching window", r.id), F(this, w).push(r), v(this, N, Z).call(this, r)); - } -- detachWindow(r) { -- y("Detaching window", r.id), L(this, w, F(this, w).filter((e) => e !== r)), v(this, R, M).call(this, { webContentsId: r.webContents.id }); -+ detachWindow(r, webContentsId) { -+ y("Detaching window", r.id); -+ -+ if (r.isDestroyed() && webContentsId === undefined) { -+ throw new Error('webContentsId is required when calling detachWindow on a destroyed window'); -+ } -+ -+ L(this, w, F(this, w).filter((e) => e !== r)); -+ v(this, R, M).call(this, { webContentsId: webContentsId ?? r.webContents.id }); - } - } - w = new WeakMap(), E = new WeakMap(), R = new WeakSet(), M = function({ -@@ -548,6 +555,7 @@ w = new WeakMap(), E = new WeakMap(), R = new WeakSet(), M = function({ - for (const [i, a] of F(this, E).entries()) - i.startsWith(`${r}-${e ?? ""}`) && (y("Closing subscription", i), a.unsubscribe(), F(this, E).delete(i)); - }, N = new WeakSet(), Z = function(r) { -+ const webContentsId = r.webContents.id; - r.webContents.on("did-start-navigation", ({ frame: e }) => { - y( - "Handling webContents `did-start-navigation` event", -@@ -558,7 +566,7 @@ w = new WeakMap(), E = new WeakMap(), R = new WeakSet(), M = function({ - frameRoutingId: e.routingId - }); - }), r.webContents.on("destroyed", () => { -- y("Handling webContents `destroyed` event"), this.detachWindow(r); -+ y("Handling webContents `destroyed` event"), this.detachWindow(r, webContentsId); - }); - }; - const me = ({ diff --git a/apps/desktop/scripts/patch-better-sqlite3.mjs b/apps/desktop/scripts/patch-better-sqlite3.mjs index 8aea134c8b..95a5c62d0f 100644 --- a/apps/desktop/scripts/patch-better-sqlite3.mjs +++ b/apps/desktop/scripts/patch-better-sqlite3.mjs @@ -34,7 +34,7 @@ export async function patchBetterSQLite3() { ); const json = JSON.parse(await readFile(jsonPath, "utf-8")); - json.version = "11.5.1"; + json.version = "11.6.1"; json.homepage = "https://github.com/thecodrr/better-sqlite3-multiple-ciphers"; json.repository.url = "git://github.com/thecodrr/better-sqlite3-multiple-ciphers.git"; diff --git a/apps/desktop/src/api/os-integration.ts b/apps/desktop/src/api/os-integration.ts index 6d77da0407..6742d09afe 100644 --- a/apps/desktop/src/api/os-integration.ts +++ b/apps/desktop/src/api/os-integration.ts @@ -19,7 +19,16 @@ along with this program. If not, see . import { initTRPC } from "@trpc/server"; import { z } from "zod"; -import { app, dialog, nativeTheme, Notification, shell } from "electron"; +import { + app, + dialog, + Menu, + MenuItem, + nativeImage, + nativeTheme, + Notification, + shell +} from "electron"; import { AutoLaunch } from "../utils/autolaunch"; import { config, DesktopIntegration } from "../utils/config"; import { bringToFront } from "../utils/bring-to-front"; @@ -33,6 +42,7 @@ import { isFlatpak, isSnap } from "../utils"; import { setupDesktopIntegration } from "../utils/desktop-integration"; import { rm } from "fs/promises"; import { disableCustomDns, enableCustomDns } from "../utils/custom-dns"; +import type { MenuItem as NNMenuItem } from "@notesnook/ui"; const t = initTRPC.create(); @@ -225,5 +235,63 @@ export const osIntegrationRouter = t.router({ nativeTheme.off("updated", updated); }; }) - ) + ), + + showMenu: t.procedure + .input( + z.object({ + menuItems: z.array(z.any()) + }) + ) + .subscription(({ input: { menuItems } }) => + observable((emit) => { + const items = menuItems as NNMenuItem[]; + const menu = new Menu(); + for (const item of items) { + const menuItem = toMenuItem(item, (id) => emit.next(id)); + if (menuItem) menu.append(menuItem); + } + if (menu.items.length > 0) menu.popup(); + return () => { + menu.removeAllListeners(); + menu.closePopup(); + }; + }) + ) }); + +function toMenuItem( + item: NNMenuItem, + onClick: (id: string[]) => void, + parentKey?: string +): MenuItem | undefined { + switch (item.type) { + case "lazy-loader": + return undefined; + case "separator": + return new MenuItem({ type: "separator" }); + case "button": { + const submenu = item.menu ? new Menu() : undefined; + if (submenu && item.menu) { + for (const subitem of item.menu.items) { + const subMenuItem = toMenuItem(subitem, onClick, item.key); + if (subMenuItem) submenu.append(subMenuItem); + } + } + + return new MenuItem({ + label: item.title, + enabled: !item.isDisabled, + visible: !item.isHidden, + toolTip: item.tooltip, + sublabel: item.tooltip, + checked: item.isChecked, + type: submenu ? "submenu" : item.isChecked ? "checkbox" : "normal", + id: item.key, + submenu, + click: () => onClick(parentKey ? [parentKey, item.key] : [item.key]), + accelerator: item.modifier?.replace("Mod", "CommandOrControl") + }); + } + } +} diff --git a/apps/desktop/src/api/sqlite-kysely.ts b/apps/desktop/src/api/sqlite-kysely.ts index f96d9c76b7..3f5ce83269 100644 --- a/apps/desktop/src/api/sqlite-kysely.ts +++ b/apps/desktop/src/api/sqlite-kysely.ts @@ -47,7 +47,9 @@ export class SQLite { filePath ).unsafeMode(true); const betterTrigram = require("sqlite-better-trigram"); + const fts5Html = require("sqlite3-fts5-html"); betterTrigram.load(this.sqlite); + fts5Html.load(this.sqlite); } /** diff --git a/apps/desktop/src/utils/menu.ts b/apps/desktop/src/utils/menu.ts index e98c74181f..5aeb3a1cd9 100644 --- a/apps/desktop/src/utils/menu.ts +++ b/apps/desktop/src/utils/menu.ts @@ -143,16 +143,44 @@ function setupMenu() { }) ); - if (params.isEditable) + if (params.isEditable) { menu.append( new MenuItem({ label: strings.paste(), - role: "pasteAndMatchStyle", + role: "paste", enabled: clipboard.readText("clipboard").length > 0, accelerator: "CommandOrControl+V" }) ); + menu.append( + new MenuItem({ + label: + process.platform === "darwin" + ? strings.pasteAndMatchStyle() + : strings.pasteWithoutFormatting(), + role: "pasteAndMatchStyle", + enabled: clipboard.readText("clipboard").length > 0, + accelerator: + process.platform === "darwin" + ? "Option+Shift+Command+V" + : "Shift+CommandOrControl+V" + }) + ); + + menu.append( + new MenuItem({ + type: "separator" + }) + ); + menu.append( + new MenuItem({ + label: strings.spellCheck(), + role: "toggleSpellChecker" + }) + ); + } + if (menu.items.length > 0) menu.popup(); }); } diff --git a/apps/mobile/app/components/list/index.tsx b/apps/mobile/app/components/list/index.tsx index 19fd1c570b..3933a4b386 100644 --- a/apps/mobile/app/components/list/index.tsx +++ b/apps/mobile/app/components/list/index.tsx @@ -73,7 +73,7 @@ export default function List(props: ListProps) { ? "home" : props.renderedInRoute === "Favorites" ? "favorites" - : props.renderedInRoute === "Trash" + : props.renderedInRoute === "Trash" || props.dataType === "trash" ? "trash" : `${props.dataType}s`; diff --git a/apps/mobile/app/components/properties/index.js b/apps/mobile/app/components/properties/index.js index 9d8fd4e09e..56acc0325d 100644 --- a/apps/mobile/app/components/properties/index.js +++ b/apps/mobile/app/components/properties/index.js @@ -58,7 +58,6 @@ const Line = ({ top = 6, bottom = 6 }) => { export const Properties = ({ close = () => {}, item, buttons = [] }) => { const { colors } = useThemeColors(); - const isColor = !!ColorValues[item.title]; if (!item || !item.id) { return ( diff --git a/apps/mobile/app/components/properties/items.tsx b/apps/mobile/app/components/properties/items.tsx index 58dc106fa2..5e4b398dd0 100644 --- a/apps/mobile/app/components/properties/items.tsx +++ b/apps/mobile/app/components/properties/items.tsx @@ -36,6 +36,7 @@ import Paragraph from "../ui/typography/paragraph"; const TOP_BAR_ITEMS: ActionId[] = [ "pin", "favorite", + "archive", "lock-unlock", "publish", "local-only", diff --git a/apps/mobile/app/components/sheets/reminder/index.tsx b/apps/mobile/app/components/sheets/reminder/index.tsx index c6f93fdb21..85e4dc56e9 100644 --- a/apps/mobile/app/components/sheets/reminder/index.tsx +++ b/apps/mobile/app/components/sheets/reminder/index.tsx @@ -48,7 +48,7 @@ import { Dialog } from "../../dialog"; import { ReminderTime } from "../../ui/reminder-time"; import Heading from "../../ui/typography/heading"; import Paragraph from "../../ui/typography/paragraph"; -import { ItemReference, Note, Reminder } from "@notesnook/core"; +import { Note, Reminder } from "@notesnook/core"; import { strings } from "@notesnook/intl"; import { DefaultAppStyles } from "../../../utils/styles"; @@ -57,7 +57,7 @@ type ReminderSheetProps = { close?: (ctx?: string) => void; update?: (options: PresentSheetOptions) => void; reminder?: Reminder; - reference?: ItemReference; + reference?: Note; }; const ReminderModes = @@ -612,7 +612,7 @@ export default function ReminderSheet({ ReminderSheet.present = ( reminder?: Reminder, - reference?: ItemReference, + reference?: Note, isSheet?: boolean ) => { presentSheet({ diff --git a/apps/mobile/app/components/sheets/sort/index.tsx b/apps/mobile/app/components/sheets/sort/index.tsx index 08200d49e3..b959be06a4 100644 --- a/apps/mobile/app/components/sheets/sort/index.tsx +++ b/apps/mobile/app/components/sheets/sort/index.tsx @@ -56,7 +56,7 @@ const Sort = ({ db.settings.getGroupOptions( screen === "Notes" ? "home" - : screen === "Trash" + : screen === "Trash" || type === "trash" ? "trash" : ((type + "s") as GroupingKey) ) @@ -65,10 +65,11 @@ const Sort = ({ const groupType = screen === "Notes" ? "home" - : screen === "Trash" + : screen === "Trash" || type === "trash" ? "trash" + : screen === "Favorites" + ? "favorites" : ((type + "s") as GroupingKey); - console.log("updateGroupOptions for group", groupType, "in", screen); await db.settings.setGroupOptions(groupType, _groupOptions); setGroupOptions(_groupOptions); setTimeout(() => { diff --git a/apps/mobile/app/features.ts b/apps/mobile/app/features.ts index f8efa1feb8..91c0880b9b 100644 --- a/apps/mobile/app/features.ts +++ b/apps/mobile/app/features.ts @@ -19,13 +19,4 @@ along with this program. If not, see . import { FeatureType } from "./components/sheets/new-feature"; -export const features: FeatureType[] = [ - { - title: "Notebook Tree View", - body: "Notebooks are now displayed in a tree view for better organization and user experience." - }, - { - title: "New SideBar", - body: "Sidebar now contains tabs for Notebooks and Tags for easy navigation." - } -]; +export const features: FeatureType[] = []; diff --git a/apps/mobile/app/hooks/use-actions.tsx b/apps/mobile/app/hooks/use-actions.tsx index 2c30d7a10e..7bda11e0d5 100644 --- a/apps/mobile/app/hooks/use-actions.tsx +++ b/apps/mobile/app/hooks/use-actions.tsx @@ -66,9 +66,11 @@ import { convertNoteToText } from "../utils/note-to-text"; import { sleep } from "../utils/time"; import SettingsService from "../services/settings"; import { useSettingStore } from "../stores/use-setting-store"; +import { useArchivedStore } from "../stores/use-archived-store"; export type ActionId = | "select" + | "archive" | "restore" | "delete" | "reorder" @@ -926,7 +928,7 @@ export const useActions = ({ title: strings.remindMe(), icon: "clock-plus-outline", onPress: () => { - ReminderSheet.present(undefined, { id: item.id, type: "note" }); + ReminderSheet.present(undefined, item); } }, { @@ -972,6 +974,19 @@ export const useActions = ({ reference: item as ItemReference }); } + }, + { + id: "archive", + title: !item.archived ? strings.archive() : strings.unarchive(), + icon: "archive", + onPress: async () => { + db.notes.archive(!item.archived, item.id); + setItem((await db.notes.note(item.id)) as Item); + Navigation.queueRoutesForUpdate(); + useArchivedStore.getState().refresh(); + }, + checked: item.archived, + isToggle: true } ); diff --git a/apps/mobile/app/hooks/use-app-events.tsx b/apps/mobile/app/hooks/use-app-events.tsx index e1760a074f..1b01a074e7 100644 --- a/apps/mobile/app/hooks/use-app-events.tsx +++ b/apps/mobile/app/hooks/use-app-events.tsx @@ -341,8 +341,15 @@ const doAppLoadActions = async () => { }; const checkAppUpdateAvailable = async () => { - if (__DEV__ || Config.isTesting === "true" || Config.FDROID_BUILD || BETA) + if ( + __DEV__ || + Config.isTesting === "true" || + Config.FDROID_BUILD || + BETA || + !SettingsService.getProperty("checkForUpdates") + ) return; + try { const version = Config.GITHUB_RELEASE === "true" diff --git a/apps/mobile/app/hooks/use-group-options.ts b/apps/mobile/app/hooks/use-group-options.ts index e6ad2f8f21..1032bfb310 100644 --- a/apps/mobile/app/hooks/use-group-options.ts +++ b/apps/mobile/app/hooks/use-group-options.ts @@ -32,7 +32,7 @@ export function useGroupOptions(type: any) { const onUpdate = (groupType: string) => { if (groupType !== type) return; const options = db.settings?.getGroupOptions(type) as any; - + if (!options) return; if ( groupOptions?.groupBy !== options.groupBy || groupOptions?.sortBy !== options.sortBy || diff --git a/apps/mobile/app/navigation/navigation-stack.tsx b/apps/mobile/app/navigation/navigation-stack.tsx index a784fa7f99..4f7f8f1bca 100644 --- a/apps/mobile/app/navigation/navigation-stack.tsx +++ b/apps/mobile/app/navigation/navigation-stack.tsx @@ -43,7 +43,7 @@ let Reminders: any = null; let Monographs: any = null; let TaggedNotes: any = null; let ColoredNotes: any = null; - +let Archive: any = null; const AppNavigation = React.memo( () => { const { colors } = useThemeColors(); @@ -192,6 +192,14 @@ const AppNavigation = React.memo( initialParams={home.name === "ColoredNotes" ? home.params : undefined} /> + { + Archive = Archive || require("../screens/archive").default; + return Archive; + }} + /> + { diff --git a/apps/mobile/app/screens/archive/index.tsx b/apps/mobile/app/screens/archive/index.tsx new file mode 100644 index 0000000000..60c3f6ca46 --- /dev/null +++ b/apps/mobile/app/screens/archive/index.tsx @@ -0,0 +1,88 @@ +/* +This file is part of the Notesnook project (https://notesnook.com/) + +Copyright (C) 2023 Streetwriters (Private) Limited + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +import React from "react"; +import DelayLayout from "../../components/delay-layout"; +import { Header } from "../../components/header"; +import List from "../../components/list"; +import SelectionHeader from "../../components/selection-header"; +import { useNavigationFocus } from "../../hooks/use-navigation-focus"; +import Navigation, { NavigationProps } from "../../services/navigation"; +import SettingsService from "../../services/settings"; +import useNavigationStore from "../../stores/use-navigation-store"; +import { db } from "../../common/database"; +import { strings } from "@notesnook/intl"; +import { useArchived } from "../../stores/use-archived-store"; + +export const Archive = ({ navigation, route }: NavigationProps<"Archive">) => { + const [archive, loading, refresh] = useArchived(); + const isFocused = useNavigationFocus(navigation, { + onFocus: (prev) => { + Navigation.routeNeedsUpdate( + route.name, + Navigation.routeUpdateFunctions[route.name] + ); + useNavigationStore.getState().setFocusedRouteId(route?.name); + return false; + }, + onBlur: () => false, + delay: SettingsService.get().homepage === route.name ? 1 : -1 + }); + + return ( + <> + +
{ + Navigation.push("Search", { + placeholder: strings.searchInRoute(route.name), + type: "note", + title: route.name, + route: route.name, + items: db.notes.archived + }); + }} + /> + + { + refresh(); + }} + renderedInRoute="Archive" + loading={loading} + placeholder={{ + title: strings.yourArchive(), + paragraph: strings.yourArchiveIsEmpty(), + loading: strings.loadingArchive() + }} + headerTitle={strings.routes.Archive()} + /> + + + ); +}; + +export default Archive; diff --git a/apps/mobile/app/screens/editor/tiptap/use-editor-events.tsx b/apps/mobile/app/screens/editor/tiptap/use-editor-events.tsx index 5ebc74a058..640270fea3 100644 --- a/apps/mobile/app/screens/editor/tiptap/use-editor-events.tsx +++ b/apps/mobile/app/screens/editor/tiptap/use-editor-events.tsx @@ -177,7 +177,7 @@ export const useEditorEvents = ( useEffect(() => { const handleKeyboardDidShow: KeyboardEventListener = () => { editor.commands.keyboardShown(true); - //editor.postMessage(NativeEvents.keyboardShown, undefined); + editor.postMessage(NativeEvents.keyboardShown, undefined); }; const handleKeyboardDidHide: KeyboardEventListener = () => { editor.commands.keyboardShown(false); diff --git a/apps/mobile/app/screens/editor/tiptap/use-editor.ts b/apps/mobile/app/screens/editor/tiptap/use-editor.ts index 56b67067fe..0c475e7da6 100644 --- a/apps/mobile/app/screens/editor/tiptap/use-editor.ts +++ b/apps/mobile/app/screens/editor/tiptap/use-editor.ts @@ -352,7 +352,7 @@ export const useEditor = ( DatabaseLogger.log(`Note saved: ${id}...`); clearTimeout(saveTimer); - + const oldNote = currentNotes.current[id]; if (id) { currentNotes.current[id] = await db.notes?.note(id); } @@ -376,11 +376,16 @@ export const useEditor = ( } } - postMessage( - NativeEvents.title, - currentNotes.current[id]?.title, - tabId - ); + if ( + oldNote?.title !== currentNotes.current[id]?.title && + !noteData.title + ) { + postMessage( + NativeEvents.title, + currentNotes.current[id]?.title, + tabId + ); + } if (Notifications.isNotePinned(id as string)) { Notifications.pinNote(id as string); diff --git a/apps/mobile/app/screens/settings/settings-data.tsx b/apps/mobile/app/screens/settings/settings-data.tsx index 42b81709cc..99e7a576b6 100644 --- a/apps/mobile/app/screens/settings/settings-data.tsx +++ b/apps/mobile/app/screens/settings/settings-data.tsx @@ -82,7 +82,8 @@ export const settingsGroups: SettingSection[] = [ useHook: () => useUserStore((state) => state.user), hidden: (current) => !current, name: (current) => { - const user = current as User; + const user = (current as User) || useUserStore.getState().user; + if (!user) return strings.subscribeToPro(); const isBasic = user.subscription?.type === SUBSCRIPTION_STATUS.BASIC; const isTrial = user.subscription?.type === SUBSCRIPTION_STATUS.TRIAL; return isBasic || !user.subscription?.type @@ -96,6 +97,7 @@ export const settingsGroups: SettingSection[] = [ icon: "crown", description: (current) => { const user = current as User; + if (!user) return strings.neverHesitate(); const subscriptionDaysLeft = user && getTimeLeft( @@ -670,6 +672,13 @@ export const settingsGroups: SettingSection[] = [ }); }, disabled: () => !db.settings.getDefaultNotebook() + }, + { + id: "disable-update-check", + type: "switch", + name: strings.autoUpdateCheck(), + description: strings.autoUpdateCheckDesc(), + property: "checkForUpdates" } ] }, diff --git a/apps/mobile/app/services/navigation.ts b/apps/mobile/app/services/navigation.ts index 3981d2cd70..f26035f38f 100755 --- a/apps/mobile/app/services/navigation.ts +++ b/apps/mobile/app/services/navigation.ts @@ -37,6 +37,7 @@ import { rootNavigatorRef } from "../utils/global-refs"; import { eSendEvent } from "./event-manager"; +import { useArchivedStore } from "../stores/use-archived-store"; /** * Routes that should be updated on focus @@ -66,7 +67,8 @@ const routeNames = { Reminders: "Reminders", MoveNotebook: "MoveNotebook", LinkNotebooks: "LinkNotebooks", - MoveNotes: "MoveNotes" + MoveNotes: "MoveNotes", + Archive: "Archive" }; export type NavigationProps = NativeStackScreenProps< @@ -92,7 +94,8 @@ const routeUpdateFunctions: { TopicNotes: (params) => eSendEvent("TopicNotes", params), Monographs: (params) => eSendEvent("Monographs", params), Reminders: () => useReminderStore.getState().refresh(), - Search: () => eSendEvent(eOnRefreshSearch) + Search: () => eSendEvent(eOnRefreshSearch), + Archive: () => useArchivedStore.getState().refresh() }; function clearRouteFromQueue(routeName: RouteName) { diff --git a/apps/mobile/app/stores/use-archived-store.ts b/apps/mobile/app/stores/use-archived-store.ts new file mode 100644 index 0000000000..07037b45c2 --- /dev/null +++ b/apps/mobile/app/stores/use-archived-store.ts @@ -0,0 +1,30 @@ +/* +This file is part of the Notesnook project (https://notesnook.com/) + +Copyright (C) 2023 Streetwriters (Private) Limited + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +import { db } from "../common/database"; +import createDBCollectionStore from "./create-db-collection-store"; + +const { useStore: useArchivedStore, useCollection: useArchived } = + createDBCollectionStore({ + getCollection: () => + db.notes.archived.grouped(db.settings.getGroupOptions("archive")), + eagerlyFetchFirstBatch: true + }); + +export { useArchivedStore, useArchived }; diff --git a/apps/mobile/app/stores/use-navigation-store.ts b/apps/mobile/app/stores/use-navigation-store.ts index b388e1615d..2b4c37cf0b 100644 --- a/apps/mobile/app/stores/use-navigation-store.ts +++ b/apps/mobile/app/stores/use-navigation-store.ts @@ -74,6 +74,7 @@ export interface RouteParams extends ParamListBase { TaggedNotes: NotesScreenParams; ColoredNotes: NotesScreenParams; TopicNotes: NotesScreenParams; + Archive: GenericRouteParam; Monographs: NotesScreenParams; Reminders: GenericRouteParam; SettingsGroup: GenericRouteParam; diff --git a/apps/mobile/app/stores/use-setting-store.ts b/apps/mobile/app/stores/use-setting-store.ts index 30b16a8a98..79f7b2d2a0 100644 --- a/apps/mobile/app/stores/use-setting-store.ts +++ b/apps/mobile/app/stores/use-setting-store.ts @@ -98,6 +98,7 @@ export type Settings = { lastFullBackupDate?: number; serverUrls?: Record; defaultSidebarTab: number; + checkForUpdates?: boolean; }; type DimensionsType = { @@ -196,7 +197,8 @@ export const defaultSettings: SettingStore["settings"] = { settingsVersion: 0, backupType: "partial", fullBackupReminder: "never", - lastFullBackupDate: 0 + lastFullBackupDate: 0, + checkForUpdates: true }; export const useSettingStore = create((set, get) => ({ diff --git a/apps/mobile/app/utils/menu-items.ts b/apps/mobile/app/utils/menu-items.ts index 3d19259037..4fde4d932b 100644 --- a/apps/mobile/app/utils/menu-items.ts +++ b/apps/mobile/app/utils/menu-items.ts @@ -77,12 +77,13 @@ export const MenuItemsList: SideMenuItem[] = [ }, type: "side-menu-item" }, - // { - // dataType: "note", - // id: "Archive", - // title: "Archive", - // icon: "archive" - // }, + { + dataType: "note", + id: "Archive", + title: "Archive", + icon: "archive", + type: "side-menu-item" + }, { dataType: "note", id: "Trash", diff --git a/apps/mobile/native/android/app/build.gradle b/apps/mobile/native/android/app/build.gradle index 8677cde59c..f5cfadd62d 100644 --- a/apps/mobile/native/android/app/build.gradle +++ b/apps/mobile/native/android/app/build.gradle @@ -121,7 +121,7 @@ android { minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion multiDexEnabled true - versionCode 3049 + versionCode 3050 versionName getNpmVersion() testBuildType System.getProperty('testBuildType', 'debug') testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner' diff --git a/apps/mobile/native/android/app/src/main/AndroidManifest.xml b/apps/mobile/native/android/app/src/main/AndroidManifest.xml index 595aefdd9a..d5e5c882b4 100644 --- a/apps/mobile/native/android/app/src/main/AndroidManifest.xml +++ b/apps/mobile/native/android/app/src/main/AndroidManifest.xml @@ -15,7 +15,6 @@ - diff --git a/apps/mobile/native/android/releasenotes/whatsnew-en-US b/apps/mobile/native/android/releasenotes/whatsnew-en-US index bafd99baa3..c41a5dc8c0 100644 --- a/apps/mobile/native/android/releasenotes/whatsnew-en-US +++ b/apps/mobile/native/android/releasenotes/whatsnew-en-US @@ -1,8 +1,3 @@ -- v3.1.0 brings new features and improvements to enhance your Notesnook experience. -- Notebooks and Tags are not located in the Sidebar -- Tree view for notebooks -- Improved list view UI for better user experience -- Improved notebook related actions by integrating tree view in most places -- You can set any notebook, tag or colors as home screen +- Bug fixes Thank you for using Notesnook! \ No newline at end of file diff --git a/apps/mobile/native/ios/Notesnook.xcodeproj/project.pbxproj b/apps/mobile/native/ios/Notesnook.xcodeproj/project.pbxproj index dbc269508e..cf916dfd35 100644 --- a/apps/mobile/native/ios/Notesnook.xcodeproj/project.pbxproj +++ b/apps/mobile/native/ios/Notesnook.xcodeproj/project.pbxproj @@ -1063,7 +1063,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 2132; + CURRENT_PROJECT_VERSION = 2133; DEVELOPMENT_TEAM = 53CWBG3QUC; ENABLE_BITCODE = NO; "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; @@ -1137,7 +1137,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 3.1.0; + MARKETING_VERSION = 3.1.1; OTHER_LDFLAGS = ( "$(inherited)", "-ObjC", @@ -1168,7 +1168,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 2132; + CURRENT_PROJECT_VERSION = 2133; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = 53CWBG3QUC; "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; @@ -1242,7 +1242,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 3.1.0; + MARKETING_VERSION = 3.1.1; ONLY_ACTIVE_ARCH = NO; OTHER_LDFLAGS = ( "$(inherited)", @@ -1401,7 +1401,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 2132; + CURRENT_PROJECT_VERSION = 2133; DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = 53CWBG3QUC; "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; @@ -1413,7 +1413,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 3.1.0; + MARKETING_VERSION = 3.1.1; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = org.streetwriters.notesnook.notewidget; @@ -1444,7 +1444,7 @@ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 2132; + CURRENT_PROJECT_VERSION = 2133; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = 53CWBG3QUC; @@ -1457,7 +1457,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 3.1.0; + MARKETING_VERSION = 3.1.1; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = org.streetwriters.notesnook.notewidget; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -1487,7 +1487,7 @@ CODE_SIGN_ENTITLEMENTS = "Make Note/Make Note.entitlements"; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 2132; + CURRENT_PROJECT_VERSION = 2133; DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = 53CWBG3QUC; "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; @@ -1561,7 +1561,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 3.1.0; + MARKETING_VERSION = 3.1.1; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = org.streetwriters.notesnook.share; @@ -1592,7 +1592,7 @@ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 2132; + CURRENT_PROJECT_VERSION = 2133; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = 53CWBG3QUC; @@ -1667,7 +1667,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 3.1.0; + MARKETING_VERSION = 3.1.1; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = org.streetwriters.notesnook.share; PRODUCT_NAME = "$(TARGET_NAME)"; diff --git a/apps/mobile/native/ios/Podfile.lock b/apps/mobile/native/ios/Podfile.lock index a7396fc0be..133634ae1a 100644 --- a/apps/mobile/native/ios/Podfile.lock +++ b/apps/mobile/native/ios/Podfile.lock @@ -1899,7 +1899,7 @@ SPEC CHECKSUMS: react-native-orientation-locker: cc6f357b289a2e0dd2210fea0c52cb8e0727fdaa react-native-pager-view: f530c9533319e0355da3551ade81d471b5a04c44 react-native-pdf: da10473ae54555c373c62af671da8fe0eef846e2 - react-native-quick-sqlite: 80b5b3405bfc92e97b6041d2c2a446800bea6ad7 + react-native-quick-sqlite: ae74515f7a941f3e7f9e5ea7aff603da1b1c3010 react-native-safe-area-context: b72c4611af2e86d80a59ac76279043d8f75f454c react-native-screenguard: 82437eeb0086a90b5e5d7e54130bb04fb406373e react-native-share-extension: bcb7e466390a9e50c742f4b1019d6f181aedd7ad diff --git a/apps/mobile/native/rspack.config.js b/apps/mobile/native/rspack.config.js index f6e74f4f91..763af4f961 100644 --- a/apps/mobile/native/rspack.config.js +++ b/apps/mobile/native/rspack.config.js @@ -228,16 +228,6 @@ module.exports = (env) => { * from `Repack.plugins`. */ new Repack.RepackPlugin({ - logger: { - console: false, - listener: (e => { - if (e.message[0].includes("Bundle built with warnings")) { - console.warn(`ℹ ` + e.message[0] + " time: " + e.message[1].time); - return; - } - }) - - }, extraChunks: [ { type: "local", diff --git a/apps/mobile/package.json b/apps/mobile/package.json index 43b978d9be..cafeaad866 100644 --- a/apps/mobile/package.json +++ b/apps/mobile/package.json @@ -1,6 +1,6 @@ { "name": "@notesnook/mobile", - "version": "3.1.0", + "version": "3.1.1", "private": true, "license": "GPL-3.0-or-later", "workspaces": [ @@ -56,4 +56,4 @@ "react": "18.2.0", "react-native": "0.74.5" } -} +} \ No newline at end of file diff --git a/apps/mobile/patches/react-native-quick-sqlite+8.0.6.patch b/apps/mobile/patches/react-native-quick-sqlite+8.0.6.patch index a4b951e0f5..4e3b2752ac 100644 --- a/apps/mobile/patches/react-native-quick-sqlite+8.0.6.patch +++ b/apps/mobile/patches/react-native-quick-sqlite+8.0.6.patch @@ -1,7 +1,6 @@ diff --git a/node_modules/react-native-quick-sqlite/.DS_Store b/node_modules/react-native-quick-sqlite/.DS_Store new file mode 100644 -index 0000000..027f75e -Binary files /dev/null and b/node_modules/react-native-quick-sqlite/.DS_Store differ +index 0000000..e69de29 diff --git a/node_modules/react-native-quick-sqlite/android/.settings/org.eclipse.buildship.core.prefs b/node_modules/react-native-quick-sqlite/android/.settings/org.eclipse.buildship.core.prefs deleted file mode 100644 index 8c253d6..0000000 @@ -22,7 +21,7 @@ index 8c253d6..0000000 -show.console.view=true -show.executions.view=true diff --git a/node_modules/react-native-quick-sqlite/android/CMakeLists.txt b/node_modules/react-native-quick-sqlite/android/CMakeLists.txt -index 6013234..e902969 100644 +index 6013234..7b89486 100644 --- a/node_modules/react-native-quick-sqlite/android/CMakeLists.txt +++ b/node_modules/react-native-quick-sqlite/android/CMakeLists.txt @@ -1,17 +1,17 @@ @@ -48,15 +47,16 @@ index 6013234..e902969 100644 ) add_library( -@@ -32,6 +32,7 @@ add_library( +@@ -32,6 +32,8 @@ add_library( ../cpp/sqlbatchexecutor.h ../cpp/sqlbatchexecutor.cpp ../cpp/macros.h + ../better-trigram/better-trigram.c ++ ../sqlite3-fts5-html/fts5-html.c cpp-adapter.cpp ) -@@ -46,7 +47,6 @@ find_package(ReactAndroid REQUIRED CONFIG) +@@ -46,7 +48,6 @@ find_package(ReactAndroid REQUIRED CONFIG) find_package(fbjni REQUIRED CONFIG) find_library(LOG_LIB log) @@ -77,6 +77,9 @@ index 96d2a74..c26e678 100644 targetSdkVersion safeExtGet('targetSdkVersion', 28) versionCode 1 versionName "1.0" +diff --git a/node_modules/react-native-quick-sqlite/better-trigram/.DS_Store b/node_modules/react-native-quick-sqlite/better-trigram/.DS_Store +new file mode 100644 +index 0000000..e69de29 diff --git a/node_modules/react-native-quick-sqlite/better-trigram/.github/workflows/release.yml b/node_modules/react-native-quick-sqlite/better-trigram/.github/workflows/release.yml new file mode 100644 index 0000000..e070b8f @@ -427,7 +430,7 @@ index 0000000..0029ea5 +dist/ \ No newline at end of file diff --git a/node_modules/react-native-quick-sqlite/better-trigram/Makefile b/node_modules/react-native-quick-sqlite/better-trigram/Makefile -new file mode 100644 +new file mode 100755 index 0000000..9999050 --- /dev/null +++ b/node_modules/react-native-quick-sqlite/better-trigram/Makefile @@ -490,7 +493,7 @@ index 0000000..9999050 +test: $(TARGET_FTS5) $(TARGET_LOADABLE) + bun test diff --git a/node_modules/react-native-quick-sqlite/better-trigram/Makefile.vc b/node_modules/react-native-quick-sqlite/better-trigram/Makefile.vc -new file mode 100644 +new file mode 100755 index 0000000..7e54140 --- /dev/null +++ b/node_modules/react-native-quick-sqlite/better-trigram/Makefile.vc @@ -558,11 +561,11 @@ index 0000000..7e54140 +test: $(TARGET_FTS5) $(TARGET_LOADABLE) + bun test diff --git a/node_modules/react-native-quick-sqlite/better-trigram/README.md b/node_modules/react-native-quick-sqlite/better-trigram/README.md -new file mode 100644 -index 0000000..dec011f +new file mode 100755 +index 0000000..e32c316 --- /dev/null +++ b/node_modules/react-native-quick-sqlite/better-trigram/README.md -@@ -0,0 +1,78 @@ +@@ -0,0 +1,80 @@ +

better-trigram

+ +

A (better) trigram tokenizer for SQLite3 FTS5

@@ -571,6 +574,8 @@ index 0000000..dec011f + +This tokenizer fixes this by treating spaces as a word boundary. The result is that `i am a bird` gets tokenized as `['i', 'am', 'a', 'bir', 'ird']` and `SELECT * FROM fts_table WHERE title MATCH 'a bird'` correctly returns the expected results. You get all the benefits for substring matching just with a wider range of queries. + ++Furthermore, the built-in `trigram` tokenizer treats CJK as normal characters and creates trigrams out of them. The problem is, in CJK a single Unicode character can be a whole word. `better-trigram` fixes this by treating each CJK character as its own token. For example: `李红:那是钢笔` gets tokenized as `['李','红',':','那','是','钢','笔']` and if there are any non-CJK words mixed in the input, they also get properly tokenized automatically. ++ +## Compatibility with `trigram` + +`better-trigram` is 99% compatible with `trigram`. This means it has full UTF-8 support, handles all the same edge cases etc. To ensure `better-trigram` remains compatible, it passes all the `trigram` tokenizer tests. Yay! @@ -642,16 +647,16 @@ index 0000000..dec011f + May you share freely, never taking more than you give. +``` diff --git a/node_modules/react-native-quick-sqlite/better-trigram/VERSION b/node_modules/react-native-quick-sqlite/better-trigram/VERSION -new file mode 100644 -index 0000000..7bcd0e3 +new file mode 100755 +index 0000000..6812f81 --- /dev/null +++ b/node_modules/react-native-quick-sqlite/better-trigram/VERSION @@ -0,0 +1 @@ -+0.0.2 ++0.0.3 \ No newline at end of file diff --git a/node_modules/react-native-quick-sqlite/better-trigram/bench.ts b/node_modules/react-native-quick-sqlite/better-trigram/bench.ts -new file mode 100644 -index 0000000..e050a3e +new file mode 100755 +index 0000000..bd9fe70 --- /dev/null +++ b/node_modules/react-native-quick-sqlite/better-trigram/bench.ts @@ -0,0 +1,44 @@ @@ -673,7 +678,7 @@ index 0000000..e050a3e +const text = lorem.generateParagraphs(100); +function initDatabase() { + const db = new Database(":memory:"); -+ db.loadExtension("./better-trigram.so"); ++ db.loadExtension("./dist/better-trigram.so"); + return db; +} +const db = initDatabase(); @@ -700,7 +705,7 @@ index 0000000..e050a3e + +await run(); diff --git a/node_modules/react-native-quick-sqlite/better-trigram/better-trigram.c b/node_modules/react-native-quick-sqlite/better-trigram/better-trigram.c -new file mode 100644 +new file mode 100755 index 0000000..010fce1 --- /dev/null +++ b/node_modules/react-native-quick-sqlite/better-trigram/better-trigram.c @@ -857,20 +862,18 @@ index 0000000..010fce1 +} +#endif diff --git a/node_modules/react-native-quick-sqlite/better-trigram/better-trigram.h b/node_modules/react-native-quick-sqlite/better-trigram/better-trigram.h -new file mode 100644 -index 0000000..ac602bc +new file mode 100755 +index 0000000..ed2be79 --- /dev/null +++ b/node_modules/react-native-quick-sqlite/better-trigram/better-trigram.h -@@ -0,0 +1,44 @@ +@@ -0,0 +1,41 @@ +#ifndef SQLITE_BETTER_TRIGRAM_H +#define SQLITE_BETTER_TRIGRAM_H + +#ifndef SQLITE_CORE +#include "sqlite3ext.h" +#else -+ +#include "sqlite3.h" -+ +#endif + +#ifndef SQLITE_PRIVATE @@ -893,7 +896,6 @@ index 0000000..ac602bc + +#ifdef SQLITE_CORE +SQLITE_PRIVATE int sqlite3Fts5BetterTrigramInit(sqlite3 *db); -+ +#else +SQLITE_BETTER_TRIGRAM_API int +sqlite3_bettertrigram_init(sqlite3 *db, char **pzErrMsg, @@ -908,11 +910,11 @@ index 0000000..ac602bc +#endif /* ifndef SQLITE_BETTER_TRIGRAM_H */ \ No newline at end of file diff --git a/node_modules/react-native-quick-sqlite/better-trigram/better-trigram.test.ts b/node_modules/react-native-quick-sqlite/better-trigram/better-trigram.test.ts -new file mode 100644 -index 0000000..daa9364 +new file mode 100755 +index 0000000..190a003 --- /dev/null +++ b/node_modules/react-native-quick-sqlite/better-trigram/better-trigram.test.ts -@@ -0,0 +1,796 @@ +@@ -0,0 +1,860 @@ +/* + ** 2024-10-21 + ** @@ -1674,6 +1676,70 @@ index 0000000..daa9364 + }); +}); + ++describe("cjk", () => { ++ const db = initDatabase(); ++ afterAll(() => db.close()); ++ ++ test("1.0", () => { ++ [ ++ `CREATE VIRTUAL TABLE t1 USING fts5(y, tokenize='better_trigram remove_diacritics 1');`, ++ `INSERT INTO t1 VALUES('王明:这是什么?');`, ++ `INSERT INTO t1 VALUES('李红:这是书。');`, ++ `INSERT INTO t1 VALUES('王明:那是什么?');`, ++ `INSERT INTO t1 VALUES('李红:那是钢笔。');`, ++ `INSERT INTO t1 VALUES('王明:那是杂志吗?');`, ++ `INSERT INTO t1 VALUES('李红:不,那不是杂志。那是字典。');`, ++ `INSERT INTO t1 VALUES('some 李红:不,那不 text 是杂志。in 那是 chinese 字典。');`, ++ ].forEach((stmt) => db.query(stmt).run()); ++ }); ++ ++ sqlTest( ++ db, ++ `1.1`, ++ `SELECT highlight(t1, 0, '(', ')') as res FROM t1('王明');`, ++ [], ++ ["(王明):这是什么?", "(王明):那是什么?", "(王明):那是杂志吗?"] ++ ); ++ ++ sqlTest( ++ db, ++ `1.2`, ++ `SELECT highlight(t1, 0, '(', ')') as res FROM t1('那是');`, ++ [], ++ [ ++ "王明:(那是)什么?", ++ "李红:(那是)钢笔。", ++ "王明:(那是)杂志吗?", ++ "李红:不,那不是杂志。(那是)字典。", ++ "some 李红:不,那不 text 是杂志。in (那是) chinese 字典。", ++ ] ++ ); ++ ++ sqlTest( ++ db, ++ `1.3`, ++ `SELECT highlight(t1, 0, '(', ')') as res FROM t1('钢');`, ++ [], ++ ["李红:那是(钢)笔。"] ++ ); ++ ++ sqlTest( ++ db, ++ `1.4`, ++ `SELECT highlight(t1, 0, '(', ')') as res FROM t1('王明:');`, ++ [], ++ ["(王明:)这是什么?", "(王明:)那是什么?", "(王明:)那是杂志吗?"] ++ ); ++ ++ sqlTest( ++ db, ++ `1.4`, ++ `SELECT highlight(t1, 0, '(', ')') as res FROM t1('some 李红');`, ++ [], ++ ["(some) (李红):不,那不 text 是杂志。in 那是 chinese 字典。"] ++ ); ++}); ++ +function sqlTest( + db: Database, + version: string, @@ -2496,7 +2562,7 @@ index 0000000..2133d5d + aAscii[0] = 0; /* 0x00 is never a token character */ +} diff --git a/node_modules/react-native-quick-sqlite/better-trigram/sqlite-dist.toml b/node_modules/react-native-quick-sqlite/better-trigram/sqlite-dist.toml -new file mode 100644 +new file mode 100755 index 0000000..423e573 --- /dev/null +++ b/node_modules/react-native-quick-sqlite/better-trigram/sqlite-dist.toml @@ -2516,11 +2582,11 @@ index 0000000..423e573 + +npm = {} diff --git a/node_modules/react-native-quick-sqlite/better-trigram/tokenizer.c b/node_modules/react-native-quick-sqlite/better-trigram/tokenizer.c -new file mode 100644 -index 0000000..6a22dc1 +new file mode 100755 +index 0000000..059015a --- /dev/null +++ b/node_modules/react-native-quick-sqlite/better-trigram/tokenizer.c -@@ -0,0 +1,160 @@ +@@ -0,0 +1,195 @@ +/* +** 2024-10-21 +** @@ -2547,7 +2613,6 @@ index 0000000..6a22dc1 +** from the sqlite3 source file: +*https://github.com/sqlite/sqlite/blob/88282af521692b398b0d0cc58a8bdb220a8ff58c/ext/fts5/fts5_tokenize.c. +*/ -+//#ifndef SQLITE_CORE +static const unsigned char sqlite3Utf8Trans1[] = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, + 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, @@ -2597,7 +2662,31 @@ index 0000000..6a22dc1 + } \ + } \ + } -+//#endif ++ ++static const int CJK[6][2] = {{0x3400, 0x4DBF}, {0x4E00, 0x9FFF}, ++ {0xF900, 0xFAFF}, {0x20000, 0x2EBEF}, ++ {0x2F800, 0x2FA1F}, {0x30000, 0x3134F}}; ++// https://jrgraphix.net/research/unicode_blocks.php ++// https://en.wikipedia.org/wiki/CJK_Unified_Ideographs ++// 3400 — 4DBF CJK Unified Ideographs Extension A ++// 4E00 — 9FFF CJK Unified Ideographs ++// F900 — FAFF CJK Compatibility Ideographs ++// 20000 — 2A6DF 2A700-2B73F 2B740–2B81F. 2B820–2CEAF. 2CEB0–2EBEF. CJK ++// Unified Ideographs Extension B/C/D/E/F 2F800 — 2FA1F CJK ++// Compatibility Ideographs Supplement ++// 30000–3134F. CJK Unified Ideographs Extension G ++static inline int isCJK(int iCode) { ++ for (int i = 0; i < 6; i++) { ++ if (iCode < CJK[i][0]) { // smaller ++ break; ++ } ++ if (iCode <= CJK[i][1]) { // in range ++ return 1; ++ } ++ // bigger than range ++ } ++ return 0; ++} + +/* Function to optionally fold case and remove diacritics */ +static inline int customFold(int iCode, int foldCase, int removeDiacritics) { @@ -2655,7 +2744,9 @@ index 0000000..6a22dc1 + isPartial = 1; + } + -+ if (iCode == 32) { ++ int cjk = isCJK(iCode); ++ int isSpace = iCode == 32; ++ if (isSpace || cjk) { + // write words smaller than 3 characters directly to output + // but make sure we aren't at the end of a word + if (!isPartial && i && i < 3) { @@ -2664,6 +2755,16 @@ index 0000000..6a22dc1 + break; + } + ++ if (cjk) { ++ zOut = aBuf; ++ WRITE_UTF8(zOut, iCode); ++ ++ int result = ++ xToken(pCtx, 0, aBuf, zOut - aBuf, start, start + (zOut - aBuf)); ++ if (result != 0) ++ break; ++ } ++ + // reset for next word + isPartial = 0; + i = 0; @@ -109616,25 +109717,27 @@ index 9b284d2..bda794a 100644 + +#endif diff --git a/node_modules/react-native-quick-sqlite/cpp/sqliteBridge.cpp b/node_modules/react-native-quick-sqlite/cpp/sqliteBridge.cpp -index 9ffe010..748a1f6 100644 +index 9ffe010..bdbd44e 100644 --- a/node_modules/react-native-quick-sqlite/cpp/sqliteBridge.cpp +++ b/node_modules/react-native-quick-sqlite/cpp/sqliteBridge.cpp -@@ -20,6 +20,8 @@ +@@ -20,6 +20,9 @@ using namespace std; using namespace facebook; +extern "C" int sqlite3Fts5BetterTrigramInit(sqlite3 *db); ++extern "C" int sqlite3Fts5HtmlInit(sqlite3 *db); + map dbMap = map(); bool folder_exists(const std::string &foldername) -@@ -90,12 +92,16 @@ SQLiteOPResult sqliteOpenDb(string const dbName, string const docPath) +@@ -90,12 +93,17 @@ SQLiteOPResult sqliteOpenDb(string const dbName, string const docPath) int exit = 0; exit = sqlite3_open_v2(dbPath.c_str(), &db, sqlOpenFlags, nullptr); + if (exit == SQLITE_OK) + { + sqlite3Fts5BetterTrigramInit(db); ++ sqlite3Fts5HtmlInit(db); + } + if (exit != SQLITE_OK) @@ -109648,7 +109751,7 @@ index 9ffe010..748a1f6 100644 } else { -@@ -103,9 +109,8 @@ SQLiteOPResult sqliteOpenDb(string const dbName, string const docPath) +@@ -103,9 +111,8 @@ SQLiteOPResult sqliteOpenDb(string const dbName, string const docPath) } return SQLiteOPResult{ @@ -109660,7 +109763,7 @@ index 9ffe010..748a1f6 100644 } SQLiteOPResult sqliteCloseDb(string const dbName) -@@ -114,8 +119,8 @@ SQLiteOPResult sqliteCloseDb(string const dbName) +@@ -114,8 +121,8 @@ SQLiteOPResult sqliteCloseDb(string const dbName) if (dbMap.count(dbName) == 0) { return SQLiteOPResult{ @@ -109671,7 +109774,7 @@ index 9ffe010..748a1f6 100644 }; } -@@ -126,12 +131,14 @@ SQLiteOPResult sqliteCloseDb(string const dbName) +@@ -126,12 +133,14 @@ SQLiteOPResult sqliteCloseDb(string const dbName) dbMap.erase(dbName); return SQLiteOPResult{ @@ -109689,7 +109792,7 @@ index 9ffe010..748a1f6 100644 // In certain cases, this will return SQLITE_OK, mark the database connection as an unusable "zombie", // and deallocate the connection later. sqlite3_close_v2(x.second); -@@ -150,12 +157,12 @@ SQLiteOPResult sqliteAttachDb(string const mainDBName, string const docPath, str +@@ -150,12 +159,12 @@ SQLiteOPResult sqliteAttachDb(string const mainDBName, string const docPath, str if (result.type == SQLiteError) { return SQLiteOPResult{ @@ -109705,7 +109808,7 @@ index 9ffe010..748a1f6 100644 }; } -@@ -169,12 +176,12 @@ SQLiteOPResult sqliteDetachDb(string const mainDBName, string const alias) +@@ -169,12 +178,12 @@ SQLiteOPResult sqliteDetachDb(string const mainDBName, string const alias) if (result.type == SQLiteError) { return SQLiteOPResult{ @@ -109721,7 +109824,7 @@ index 9ffe010..748a1f6 100644 }; } -@@ -194,15 +201,14 @@ SQLiteOPResult sqliteRemoveDb(string const dbName, string const docPath) +@@ -194,15 +203,14 @@ SQLiteOPResult sqliteRemoveDb(string const dbName, string const docPath) if (!file_exists(dbPath)) { return SQLiteOPResult{ @@ -109740,7 +109843,7 @@ index 9ffe010..748a1f6 100644 }; } -@@ -256,10 +262,9 @@ SQLiteOPResult sqliteExecute(string const dbName, string const &query, vector> $GITHUB_ENV ++ - run: | ++ ls $ANDROID_NDK_HOME/toolchains/llvm/prebuilt/ ++ ls $ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin ++ - run: | ++ export PATH=$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin:$PATH ++ make CC=${{ matrix.platforms.cc }} \ ++ AR=llvm-ar \ ++ RANLIB=llvm-ranlib \ ++ STRIP=llvm-strip loadable ++ - uses: actions/upload-artifact@v4 ++ with: ++ name: sqlite3-fts5-html-${{ matrix.platforms.name }}-extension ++ path: dist/*.so ++ build-ios-extensions: ++ runs-on: ${{ matrix.platforms.runner }} ++ strategy: ++ fail-fast: false ++ matrix: ++ platforms: [ ++ { ++ name: ios-aarch64, ++ target: arm64-apple-ios, ++ sdk: iphoneos, ++ runner: macos-14, ++ }, ++ #{ ++ # name: ios-x86_64, ++ # target: x86_64-apple-ios, ++ # sdk: iphoneos, ++ # runner: macos-12, ++ #}, ++ { ++ name: iossimulator-aarch64, ++ target: arm64-apple-ios-simulator, ++ sdk: iphonesimulator, ++ runner: macos-14, ++ }, ++ { ++ name: iossimulator-x86_64, ++ target: x86_64-apple-ios-simulator, ++ sdk: iphonesimulator, ++ runner: macos-14, ++ }, ++ ] ++ steps: ++ - uses: actions/checkout@v4 ++ - uses: maxim-lobanov/setup-xcode@v1 ++ with: ++ xcode-version: latest-stable ++ ++ - run: make CFLAGS="-target ${{ matrix.platforms.target }} -isysroot $(xcrun -sdk ${{ matrix.platforms.sdk }} --show-sdk-path) -fembed-bitcode -DNDEBUG=1" loadable ++ - uses: actions/upload-artifact@v4 ++ with: ++ name: sqlite3-fts5-html-${{ matrix.platforms.name }}-extension ++ path: dist/* ++ ++ dist: ++ runs-on: ubuntu-latest ++ needs: ++ [ ++ build-linux-x86_64-extension, ++ build-linux-aarch64-extension, ++ build-macos-x86_64-extension, ++ build-macos-aarch64-extension, ++ build-windows-x86_64-extension, ++ build-windows-aarch64-extension, ++ build-android-extensions, ++ build-ios-extensions, ++ ] ++ permissions: ++ contents: write ++ steps: ++ - uses: actions/checkout@v4 ++ ++ - uses: actions/download-artifact@v4 ++ with: ++ name: sqlite3-fts5-html-linux-x86_64-extension ++ path: dist/linux-x86_64 ++ - uses: actions/download-artifact@v4 ++ with: ++ name: sqlite3-fts5-html-linux-aarch64-extension ++ path: dist/linux-aarch64 ++ - uses: actions/download-artifact@v4 ++ with: ++ name: sqlite3-fts5-html-macos-x86_64-extension ++ path: dist/macos-x86_64 ++ - uses: actions/download-artifact@v4 ++ with: ++ name: sqlite3-fts5-html-macos-aarch64-extension ++ path: dist/macos-aarch64 ++ - uses: actions/download-artifact@v4 ++ with: ++ name: sqlite3-fts5-html-windows-x86_64-extension ++ path: dist/windows-x86_64 ++ - uses: actions/download-artifact@v4 ++ with: ++ name: sqlite3-fts5-html-windows-aarch64-extension ++ path: dist/windows-aarch64 ++ - uses: actions/download-artifact@v4 ++ with: ++ name: sqlite3-fts5-html-android-aarch64-extension ++ path: dist/android-aarch64 ++ - uses: actions/download-artifact@v4 ++ with: ++ name: sqlite3-fts5-html-android-i686-extension ++ path: dist/android-i686 ++ - uses: actions/download-artifact@v4 ++ with: ++ name: sqlite3-fts5-html-android-x86_64-extension ++ path: dist/android-x86_64 ++ - uses: actions/download-artifact@v4 ++ with: ++ name: sqlite3-fts5-html-android-armv7a-extension ++ path: dist/android-armv7a ++ - uses: actions/download-artifact@v4 ++ with: ++ name: sqlite3-fts5-html-android-armv7a-extension ++ path: dist/android-armv7a ++ - uses: actions/download-artifact@v4 ++ with: ++ name: sqlite3-fts5-html-ios-aarch64-extension ++ path: dist/ios-aarch64 ++ - uses: actions/download-artifact@v4 ++ with: ++ name: sqlite3-fts5-html-iossimulator-aarch64-extension ++ path: dist/iossimulator-aarch64 ++ - uses: actions/download-artifact@v4 ++ with: ++ name: sqlite3-fts5-html-iossimulator-x86_64-extension ++ path: dist/iossimulator-x86_64 ++ - run: | ++ curl -L https://github.com/asg017/sqlite-dist/releases/download/v0.0.1-alpha.19/sqlite-dist-x86_64-unknown-linux-gnu.tar.xz \ ++ | tar xfJ - --strip-components 1 ++ - run: ./sqlite-dist ./sqlite-dist.toml --input dist/ --output distx/ --version $(cat VERSION) ++ - run: | ++ gh release upload --clobber ${{ github.ref_name }} \ ++ distx/amalgamation/* \ ++ distx/github_releases/* \ ++ distx/checksums.txt \ ++ distx/sqlite-dist-manifest.json \ ++ distx/install.sh ++ env: ++ GH_TOKEN: ${{ github.token }} ++ - name: Install node ++ uses: actions/setup-node@v3 ++ with: ++ node-version: "16" ++ registry-url: "https://registry.npmjs.org" ++ - run: | ++ npm publish --access public distx/npm/sqlite3-fts5-html-darwin-arm64.tar.gz ++ npm publish --access public distx/npm/sqlite3-fts5-html-darwin-x64.tar.gz ++ npm publish --access public distx/npm/sqlite3-fts5-html-linux-x64.tar.gz ++ npm publish --access public distx/npm/sqlite3-fts5-html-linux-arm64.tar.gz ++ npm publish --access public distx/npm/sqlite3-fts5-html-windows-x64.tar.gz ++ npm publish --access public distx/npm/sqlite3-fts5-html-windows-arm64.tar.gz ++ npm publish --access public distx/npm/sqlite3-fts5-html.tar.gz ++ env: ++ NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} +diff --git a/node_modules/react-native-quick-sqlite/sqlite3-fts5-html/.github/workflows/test.yml b/node_modules/react-native-quick-sqlite/sqlite3-fts5-html/.github/workflows/test.yml +new file mode 100755 +index 0000000..21f5288 +--- /dev/null ++++ b/node_modules/react-native-quick-sqlite/sqlite3-fts5-html/.github/workflows/test.yml +@@ -0,0 +1,63 @@ ++name: Test ++ ++on: ++ workflow_dispatch: ++ push: ++ branch: "master" ++ pull_request: ++ types: ++ - "ready_for_review" ++ - "opened" ++ - "synchronize" ++ - "reopened" ++ ++jobs: ++ test-linux: ++ name: Test Linux ++ runs-on: ubuntu-latest ++ steps: ++ - name: Checkout ++ uses: actions/checkout@v3 ++ ++ - name: Install dependencies ++ run: | ++ sudo apt install lemon tcl ++ ++ - name: Install bun ++ uses: oven-sh/setup-bun@v2 ++ ++ - name: Run tests ++ run: make test ++ ++ test-windows: ++ name: Test Windows ++ runs-on: windows-latest ++ steps: ++ - name: Checkout ++ uses: actions/checkout@v3 ++ ++ - name: Install bun ++ uses: oven-sh/setup-bun@v2 ++ ++ - uses: ilammy/msvc-dev-cmd@v1 ++ ++ - name: Run tests ++ run: nmake /f Makefile.vc test ++ ++ test-macos: ++ name: Test macOS ++ runs-on: macos-latest ++ steps: ++ - name: Checkout ++ uses: actions/checkout@v3 ++ ++ - name: Install dependencies ++ run: | ++ brew install lemon ++ brew install tcl-tk ++ ++ - name: Install bun ++ uses: oven-sh/setup-bun@v2 ++ ++ - name: Run tests ++ run: make test +diff --git a/node_modules/react-native-quick-sqlite/sqlite3-fts5-html/.gitignore b/node_modules/react-native-quick-sqlite/sqlite3-fts5-html/.gitignore +new file mode 100755 +index 0000000..e5d9e76 +--- /dev/null ++++ b/node_modules/react-native-quick-sqlite/sqlite3-fts5-html/.gitignore +@@ -0,0 +1,6 @@ ++*.dylib ++*.dSYM ++.vscode ++test.sql.* ++deps ++dist +diff --git a/node_modules/react-native-quick-sqlite/sqlite3-fts5-html/Makefile b/node_modules/react-native-quick-sqlite/sqlite3-fts5-html/Makefile +new file mode 100755 +index 0000000..9fa632d +--- /dev/null ++++ b/node_modules/react-native-quick-sqlite/sqlite3-fts5-html/Makefile +@@ -0,0 +1,60 @@ ++EXT = .so ++SQLITE_VERSION ?= version-3.49.1 ++ ++SQLITE_TARBALL_URL = https://www.sqlite.org/src/tarball/sqlite.tar.gz?r=${SQLITE_VERSION} ++SQLITE_SRC = deps/$(SQLITE_VERSION)/src ++SQLITE_AMALGAMATION_URL = https://sqlite.org/2025/sqlite-amalgamation-3490100.zip ++SQLITE_AMALGAMATION_PATH = deps/sqlite-amalgamation-3490100 ++ ++override CFLAGS += -Ideps/$(SQLITE_VERSION)/ext/fts5 -I$(SQLITE_AMALGAMATION_PATH) -Os -Wall -Wextra ++CONDITIONAL_CFLAGS = -lm ++ ++UNAME_S := $(shell uname -s) ++ifeq ($(UNAME_S),Darwin) ++ EXT = .dylib ++endif ++ ++.PHONY: all clean test ++ ++prefix=dist ++$(prefix): ++ mkdir -p $(prefix) ++ ++TARGET_LOADABLE=$(prefix)/fts5-html$(EXT) ++TARGET_FTS5=$(prefix)/fts5$(EXT) ++TARGET_LIBSQLITE=$(prefix)/libsqlite3$(EXT) ++ ++loadable: $(TARGET_LOADABLE) ++ ++clean: ++ rm -rf deps ++ rm -rf $(prefix) ++ ++$(SQLITE_SRC): ++ mkdir -p deps/$(SQLITE_VERSION) ++ curl -LsS $(SQLITE_TARBALL_URL) | tar -xzf - -C deps/$(SQLITE_VERSION)/ --strip-components=1 ++ ++$(SQLITE_AMALGAMATION_PATH): ++ @echo Downloading SQLite amalgamation... ++ wget -q $(SQLITE_AMALGAMATION_URL) -O sqlite.zip ++ @echo Extracting SQLite amalgamation... ++ unzip sqlite.zip -d deps/ ++ rm -f sqlite.zip ++ ++$(TARGET_LOADABLE): $(SQLITE_SRC) $(SQLITE_AMALGAMATION_PATH) $(prefix) ++ $(CC) $(CFLAGS) $(CONDITIONAL_CFLAGS) -shared -fPIC -o $@ fts5-html.c ++ ++$(TARGET_FTS5): $(SQLITE_SRC) $(SQLITE_AMALGAMATION_PATH) $(prefix) ++ dir=deps/$(SQLITE_VERSION) \ ++ cwd=$$(pwd); \ ++ lemon $$dir/ext/fts5/fts5parse.y; \ ++ cd $$dir/ext/fts5; \ ++ tclsh $$cwd/$$dir/ext/fts5/tool/mkfts5c.tcl; \ ++ cd $$cwd; \ ++ $(CC) $(CFLAGS) $(CONDITIONAL_CFLAGS) -DSQLITE_TEST -shared -fPIC -o $@ $$dir/ext/fts5/fts5.c; \ ++ ++$(TARGET_LIBSQLITE): $(SQLITE_AMALGAMATION_PATH) $(prefix) ++ $(CC) $(CFLAGS) $(CONDITIONAL_CFLAGS) -shared -fPIC -o $@ $(SQLITE_AMALGAMATION_PATH)/sqlite3.c ++ ++test: $(TARGET_LIBSQLITE) $(TARGET_FTS5) $(TARGET_LOADABLE) ++ SQLITE_LIB_PATH=$(TARGET_LIBSQLITE) bun test +diff --git a/node_modules/react-native-quick-sqlite/sqlite3-fts5-html/Makefile.vc b/node_modules/react-native-quick-sqlite/sqlite3-fts5-html/Makefile.vc +new file mode 100755 +index 0000000..63ef942 +--- /dev/null ++++ b/node_modules/react-native-quick-sqlite/sqlite3-fts5-html/Makefile.vc +@@ -0,0 +1,62 @@ ++EXT = .dll ++SQLITE_VERSION = version-3.49.1 ++ ++SQLITE_TARBALL_URL = https://www.sqlite.org/src/tarball/sqlite.tar.gz?r=$(SQLITE_VERSION) ++SQLITE_SRC = deps\$(SQLITE_VERSION)\src ++SQLITE_AMALGAMATION_URL = https://sqlite.org/2025/sqlite-amalgamation-3490100.zip ++SQLITE_AMALGAMATION_PATH = deps/sqlite-amalgamation-3490100 ++ ++TCL_DOWNLOAD_URL = https://www.irontcl.com/downloads/irontcl-amd64-8.6.7.zip ++TCLSH_PATH = deps\IronTcl\bin\tclsh86t.exe ++ ++CFLAGS = -I$(SQLITE_AMALGAMATION_PATH) -Ideps\$(SQLITE_VERSION)\src -Ideps\$(SQLITE_VERSION)\ext\fts5 -Os -Wall ++ ++prefix=dist ++$(prefix): ++ if not exist $(prefix) mkdir $(prefix) ++ ++TARGET_LOADABLE=$(prefix)\fts5-html$(EXT) ++TARGET_FTS5=$(prefix)\fts5$(EXT) ++TARGET_LEMON=$(prefix)\lemon.exe ++ ++all: test loadable ++loadable: $(TARGET_LOADABLE) ++ ++clean: ++ if exist deps rmdir /S /Q deps ++ if exist $(prefix) rmdir /S /Q $(prefix) ++ if exist *.obj del *.obj ++ ++$(SQLITE_SRC): ++ if not exist deps\$(SQLITE_VERSION) git clone --depth=1 --branch=$(SQLITE_VERSION) https://github.com/sqlite/sqlite.git deps\$(SQLITE_VERSION) ++ REM curl -LsS $(SQLITE_TARBALL_URL) | tar -xzf - -C deps\$(SQLITE_VERSION)\ --strip-components=1 ++ ++$(SQLITE_AMALGAMATION_PATH): ++ @echo Downloading SQLite amalgamation... ++ powershell -Command "iwr -Uri $(SQLITE_AMALGAMATION_URL) -OutFile sqlite.zip" ++ @echo Extracting SQLite amalgamation... ++ powershell -Command "Expand-Archive -Path sqlite.zip -DestinationPath deps/" ++ del sqlite.zip ++ ++$(TCLSH_PATH): ++ @echo Downloading Tcl/Tk... ++ powershell -Command "iwr -Uri $(TCL_DOWNLOAD_URL) -OutFile tcl.zip" ++ @echo Extracting Tcl/Tk... ++ powershell -Command "Expand-Archive -Path tcl.zip -DestinationPath deps/" ++ del tcl.zip ++ ++$(TARGET_LOADABLE): $(SQLITE_AMALGAMATION_PATH) $(SQLITE_SRC) $(prefix) ++ cl $(CFLAGS) /LD /Fe$@ fts5-html.c ++ ++$(TARGET_LEMON): $(SQLITE_SRC) $(prefix) ++ cl deps\$(SQLITE_VERSION)\tool\lemon.c /Fe$@ ++ copy deps\$(SQLITE_VERSION)\tool\lempar.c $(prefix)\lempar.c ++ ++$(TARGET_FTS5): $(TARGET_LEMON) $(TCLSH_PATH) $(SQLITE_SRC) $(SQLITE_AMALGAMATION_PATH) $(prefix) ++ $(TARGET_LEMON) deps\$(SQLITE_VERSION)\ext\fts5\fts5parse.y ++ ++ powershell -Command "$$CWD = pwd; cd deps\$(SQLITE_VERSION)\ext\fts5; & $$CWD\$(TCLSH_PATH) $$CWD\deps\$(SQLITE_VERSION)\ext\fts5\tool\mkfts5c.tcl" ++ cl /DSQLITE_TEST -I$(SQLITE_AMALGAMATION_PATH) /LD /Fe$(TARGET_FTS5) deps\$(SQLITE_VERSION)\ext\fts5\fts5.c ++ ++test: $(TARGET_FTS5) $(TARGET_LOADABLE) ++ bun test +diff --git a/node_modules/react-native-quick-sqlite/sqlite3-fts5-html/README.md b/node_modules/react-native-quick-sqlite/sqlite3-fts5-html/README.md +new file mode 100755 +index 0000000..4881922 +--- /dev/null ++++ b/node_modules/react-native-quick-sqlite/sqlite3-fts5-html/README.md +@@ -0,0 +1,67 @@ ++# HTML Tokenizer for SQLite3 FTS5 ++ ++This is a pseudo tokenizer that can be used with SQLite3's FTS5 ++extension to index HTML documents. It understands just enough HTML to ++extract the text from the document and ignore the markup. ++ ++This is a direct fork of https://github.com/gyf304/sqlite3-fts5-html without almost no modifications. All credit goes to the original author. ++ ++## Getting started ++ ++### Prerequisites ++ ++- Lemon ++- Tcl ++ ++### Build ++ ++First install the prerequisites: ++ ++```sh ++# on macOS ++brew install lemon tcl-tk ++# on Ubuntu Linux ++sudo apt install lemon tcl ++``` ++ ++Then build the tokenizer: ++ ++```sh ++make loadable ++``` ++ ++### Usage ++ ++Load the `fts5-html.so` or `fts5-html.dylib` file as a loadable SQLite extension (e.g. `.load fts5-html.so`). ++ ++Then specify it when creating your FTS5 virtual table: ++ ++```sql ++CREATE VIRTUAL TABLE t1 USING fts5( ++ content, ++ -- html itself is not a tokenizer ++ -- it must be must be used with another tokenizer ++ tokenize = 'html unicode61 remove_diacritics 1' ++) ++``` ++ ++## Contributing ++ ++All kinds of PRs are welcome, of course. Just make sure all the tests pass. You can run the tests like this: ++ ++```sh ++make test ++``` ++ ++## License ++ ++``` ++2024-10-21 ++ ++The author disclaims copyright to this source code. In place of ++a legal notice, here is a blessing: ++ ++ May you do good and not evil. ++ May you find forgiveness for yourself and forgive others. ++ May you share freely, never taking more than you give. ++``` +diff --git a/node_modules/react-native-quick-sqlite/sqlite3-fts5-html/VERSION b/node_modules/react-native-quick-sqlite/sqlite3-fts5-html/VERSION +new file mode 100755 +index 0000000..4e379d2 +--- /dev/null ++++ b/node_modules/react-native-quick-sqlite/sqlite3-fts5-html/VERSION +@@ -0,0 +1 @@ ++0.0.2 +diff --git a/node_modules/react-native-quick-sqlite/sqlite3-fts5-html/fts5-html.c b/node_modules/react-native-quick-sqlite/sqlite3-fts5-html/fts5-html.c +new file mode 100755 +index 0000000..a426025 +--- /dev/null ++++ b/node_modules/react-native-quick-sqlite/sqlite3-fts5-html/fts5-html.c +@@ -0,0 +1,2677 @@ ++/* ++** 2023-12-25 ++** ++** The author disclaims copyright to this source code. In place of ++** a legal notice, here is a blessing: ++** ++** May you do good and not evil. ++** May you find forgiveness for yourself and forgive others. ++** May you share freely, never taking more than you give. ++** ++*/ ++#include "fts5-html.h" ++#include ++#include ++ ++#ifndef SQLITE_CORE ++#include "sqlite3ext.h" ++SQLITE_EXTENSION_INIT1 ++#else ++#include "sqlite3.h" ++#endif ++ ++#define UNUSED_PARAM(x) (void)(x) ++ ++#ifndef SQLITE_PRIVATE ++#define SQLITE_PRIVATE static ++#endif ++ ++/* START OF HTML ENTITIES */ ++struct htmlEntity { ++ const char *pzName; ++ const char *pzUtf8; ++}; ++typedef struct htmlEntity htmlEntity; ++ ++static const htmlEntity htmlEntities[] = { ++ {"AElig", "\xc3\x86"}, ++ {"AMP", "\x26"}, ++ {"Aacute", "\xc3\x81"}, ++ {"Abreve", "\xc4\x82"}, ++ {"Acirc", "\xc3\x82"}, ++ {"Acy", "\xd0\x90"}, ++ {"Afr", "\xf0\x9d\x94\x84"}, ++ {"Agrave", "\xc3\x80"}, ++ {"Alpha", "\xce\x91"}, ++ {"Amacr", "\xc4\x80"}, ++ {"And", "\xe2\xa9\x93"}, ++ {"Aogon", "\xc4\x84"}, ++ {"Aopf", "\xf0\x9d\x94\xb8"}, ++ {"ApplyFunction", "\xe2\x81\xa1"}, ++ {"Aring", "\xc3\x85"}, ++ {"Ascr", "\xf0\x9d\x92\x9c"}, ++ {"Assign", "\xe2\x89\x94"}, ++ {"Atilde", "\xc3\x83"}, ++ {"Auml", "\xc3\x84"}, ++ {"Backslash", "\xe2\x88\x96"}, ++ {"Barv", "\xe2\xab\xa7"}, ++ {"Barwed", "\xe2\x8c\x86"}, ++ {"Bcy", "\xd0\x91"}, ++ {"Because", "\xe2\x88\xb5"}, ++ {"Bernoullis", "\xe2\x84\xac"}, ++ {"Beta", "\xce\x92"}, ++ {"Bfr", "\xf0\x9d\x94\x85"}, ++ {"Bopf", "\xf0\x9d\x94\xb9"}, ++ {"Breve", "\xcb\x98"}, ++ {"Bscr", "\xe2\x84\xac"}, ++ {"Bumpeq", "\xe2\x89\x8e"}, ++ {"CHcy", "\xd0\xa7"}, ++ {"COPY", "\xc2\xa9"}, ++ {"Cacute", "\xc4\x86"}, ++ {"Cap", "\xe2\x8b\x92"}, ++ {"CapitalDifferentialD", "\xe2\x85\x85"}, ++ {"Cayleys", "\xe2\x84\xad"}, ++ {"Ccaron", "\xc4\x8c"}, ++ {"Ccedil", "\xc3\x87"}, ++ {"Ccirc", "\xc4\x88"}, ++ {"Cconint", "\xe2\x88\xb0"}, ++ {"Cdot", "\xc4\x8a"}, ++ {"Cedilla", "\xc2\xb8"}, ++ {"CenterDot", "\xc2\xb7"}, ++ {"Cfr", "\xe2\x84\xad"}, ++ {"Chi", "\xce\xa7"}, ++ {"CircleDot", "\xe2\x8a\x99"}, ++ {"CircleMinus", "\xe2\x8a\x96"}, ++ {"CirclePlus", "\xe2\x8a\x95"}, ++ {"CircleTimes", "\xe2\x8a\x97"}, ++ {"ClockwiseContourIntegral", "\xe2\x88\xb2"}, ++ {"CloseCurlyDoubleQuote", "\xe2\x80\x9d"}, ++ {"CloseCurlyQuote", "\xe2\x80\x99"}, ++ {"Colon", "\xe2\x88\xb7"}, ++ {"Colone", "\xe2\xa9\xb4"}, ++ {"Congruent", "\xe2\x89\xa1"}, ++ {"Conint", "\xe2\x88\xaf"}, ++ {"ContourIntegral", "\xe2\x88\xae"}, ++ {"Copf", "\xe2\x84\x82"}, ++ {"Coproduct", "\xe2\x88\x90"}, ++ {"CounterClockwiseContourIntegral", "\xe2\x88\xb3"}, ++ {"Cross", "\xe2\xa8\xaf"}, ++ {"Cscr", "\xf0\x9d\x92\x9e"}, ++ {"Cup", "\xe2\x8b\x93"}, ++ {"CupCap", "\xe2\x89\x8d"}, ++ {"DD", "\xe2\x85\x85"}, ++ {"DDotrahd", "\xe2\xa4\x91"}, ++ {"DJcy", "\xd0\x82"}, ++ {"DScy", "\xd0\x85"}, ++ {"DZcy", "\xd0\x8f"}, ++ {"Dagger", "\xe2\x80\xa1"}, ++ {"Darr", "\xe2\x86\xa1"}, ++ {"Dashv", "\xe2\xab\xa4"}, ++ {"Dcaron", "\xc4\x8e"}, ++ {"Dcy", "\xd0\x94"}, ++ {"Del", "\xe2\x88\x87"}, ++ {"Delta", "\xce\x94"}, ++ {"Dfr", "\xf0\x9d\x94\x87"}, ++ {"DiacriticalAcute", "\xc2\xb4"}, ++ {"DiacriticalDot", "\xcb\x99"}, ++ {"DiacriticalDoubleAcute", "\xcb\x9d"}, ++ {"DiacriticalGrave", "\x60"}, ++ {"DiacriticalTilde", "\xcb\x9c"}, ++ {"Diamond", "\xe2\x8b\x84"}, ++ {"DifferentialD", "\xe2\x85\x86"}, ++ {"Dopf", "\xf0\x9d\x94\xbb"}, ++ {"Dot", "\xc2\xa8"}, ++ {"DotDot", "\xe2\x83\x9c"}, ++ {"DotEqual", "\xe2\x89\x90"}, ++ {"DoubleContourIntegral", "\xe2\x88\xaf"}, ++ {"DoubleDot", "\xc2\xa8"}, ++ {"DoubleDownArrow", "\xe2\x87\x93"}, ++ {"DoubleLeftArrow", "\xe2\x87\x90"}, ++ {"DoubleLeftRightArrow", "\xe2\x87\x94"}, ++ {"DoubleLeftTee", "\xe2\xab\xa4"}, ++ {"DoubleLongLeftArrow", "\xe2\x9f\xb8"}, ++ {"DoubleLongLeftRightArrow", "\xe2\x9f\xba"}, ++ {"DoubleLongRightArrow", "\xe2\x9f\xb9"}, ++ {"DoubleRightArrow", "\xe2\x87\x92"}, ++ {"DoubleRightTee", "\xe2\x8a\xa8"}, ++ {"DoubleUpArrow", "\xe2\x87\x91"}, ++ {"DoubleUpDownArrow", "\xe2\x87\x95"}, ++ {"DoubleVerticalBar", "\xe2\x88\xa5"}, ++ {"DownArrow", "\xe2\x86\x93"}, ++ {"DownArrowBar", "\xe2\xa4\x93"}, ++ {"DownArrowUpArrow", "\xe2\x87\xb5"}, ++ {"DownBreve", "\xcc\x91"}, ++ {"DownLeftRightVector", "\xe2\xa5\x90"}, ++ {"DownLeftTeeVector", "\xe2\xa5\x9e"}, ++ {"DownLeftVector", "\xe2\x86\xbd"}, ++ {"DownLeftVectorBar", "\xe2\xa5\x96"}, ++ {"DownRightTeeVector", "\xe2\xa5\x9f"}, ++ {"DownRightVector", "\xe2\x87\x81"}, ++ {"DownRightVectorBar", "\xe2\xa5\x97"}, ++ {"DownTee", "\xe2\x8a\xa4"}, ++ {"DownTeeArrow", "\xe2\x86\xa7"}, ++ {"Downarrow", "\xe2\x87\x93"}, ++ {"Dscr", "\xf0\x9d\x92\x9f"}, ++ {"Dstrok", "\xc4\x90"}, ++ {"ENG", "\xc5\x8a"}, ++ {"ETH", "\xc3\x90"}, ++ {"Eacute", "\xc3\x89"}, ++ {"Ecaron", "\xc4\x9a"}, ++ {"Ecirc", "\xc3\x8a"}, ++ {"Ecy", "\xd0\xad"}, ++ {"Edot", "\xc4\x96"}, ++ {"Efr", "\xf0\x9d\x94\x88"}, ++ {"Egrave", "\xc3\x88"}, ++ {"Element", "\xe2\x88\x88"}, ++ {"Emacr", "\xc4\x92"}, ++ {"EmptySmallSquare", "\xe2\x97\xbb"}, ++ {"EmptyVerySmallSquare", "\xe2\x96\xab"}, ++ {"Eogon", "\xc4\x98"}, ++ {"Eopf", "\xf0\x9d\x94\xbc"}, ++ {"Epsilon", "\xce\x95"}, ++ {"Equal", "\xe2\xa9\xb5"}, ++ {"EqualTilde", "\xe2\x89\x82"}, ++ {"Equilibrium", "\xe2\x87\x8c"}, ++ {"Escr", "\xe2\x84\xb0"}, ++ {"Esim", "\xe2\xa9\xb3"}, ++ {"Eta", "\xce\x97"}, ++ {"Euml", "\xc3\x8b"}, ++ {"Exists", "\xe2\x88\x83"}, ++ {"ExponentialE", "\xe2\x85\x87"}, ++ {"Fcy", "\xd0\xa4"}, ++ {"Ffr", "\xf0\x9d\x94\x89"}, ++ {"FilledSmallSquare", "\xe2\x97\xbc"}, ++ {"FilledVerySmallSquare", "\xe2\x96\xaa"}, ++ {"Fopf", "\xf0\x9d\x94\xbd"}, ++ {"ForAll", "\xe2\x88\x80"}, ++ {"Fouriertrf", "\xe2\x84\xb1"}, ++ {"Fscr", "\xe2\x84\xb1"}, ++ {"GJcy", "\xd0\x83"}, ++ {"GT", "\x3e"}, ++ {"Gamma", "\xce\x93"}, ++ {"Gammad", "\xcf\x9c"}, ++ {"Gbreve", "\xc4\x9e"}, ++ {"Gcedil", "\xc4\xa2"}, ++ {"Gcirc", "\xc4\x9c"}, ++ {"Gcy", "\xd0\x93"}, ++ {"Gdot", "\xc4\xa0"}, ++ {"Gfr", "\xf0\x9d\x94\x8a"}, ++ {"Gg", "\xe2\x8b\x99"}, ++ {"Gopf", "\xf0\x9d\x94\xbe"}, ++ {"GreaterEqual", "\xe2\x89\xa5"}, ++ {"GreaterEqualLess", "\xe2\x8b\x9b"}, ++ {"GreaterFullEqual", "\xe2\x89\xa7"}, ++ {"GreaterGreater", "\xe2\xaa\xa2"}, ++ {"GreaterLess", "\xe2\x89\xb7"}, ++ {"GreaterSlantEqual", "\xe2\xa9\xbe"}, ++ {"GreaterTilde", "\xe2\x89\xb3"}, ++ {"Gscr", "\xf0\x9d\x92\xa2"}, ++ {"Gt", "\xe2\x89\xab"}, ++ {"HARDcy", "\xd0\xaa"}, ++ {"Hacek", "\xcb\x87"}, ++ {"Hat", "\x5e"}, ++ {"Hcirc", "\xc4\xa4"}, ++ {"Hfr", "\xe2\x84\x8c"}, ++ {"HilbertSpace", "\xe2\x84\x8b"}, ++ {"Hopf", "\xe2\x84\x8d"}, ++ {"HorizontalLine", "\xe2\x94\x80"}, ++ {"Hscr", "\xe2\x84\x8b"}, ++ {"Hstrok", "\xc4\xa6"}, ++ {"HumpDownHump", "\xe2\x89\x8e"}, ++ {"HumpEqual", "\xe2\x89\x8f"}, ++ {"IEcy", "\xd0\x95"}, ++ {"IJlig", "\xc4\xb2"}, ++ {"IOcy", "\xd0\x81"}, ++ {"Iacute", "\xc3\x8d"}, ++ {"Icirc", "\xc3\x8e"}, ++ {"Icy", "\xd0\x98"}, ++ {"Idot", "\xc4\xb0"}, ++ {"Ifr", "\xe2\x84\x91"}, ++ {"Igrave", "\xc3\x8c"}, ++ {"Im", "\xe2\x84\x91"}, ++ {"Imacr", "\xc4\xaa"}, ++ {"ImaginaryI", "\xe2\x85\x88"}, ++ {"Implies", "\xe2\x87\x92"}, ++ {"Int", "\xe2\x88\xac"}, ++ {"Integral", "\xe2\x88\xab"}, ++ {"Intersection", "\xe2\x8b\x82"}, ++ {"InvisibleComma", "\xe2\x81\xa3"}, ++ {"InvisibleTimes", "\xe2\x81\xa2"}, ++ {"Iogon", "\xc4\xae"}, ++ {"Iopf", "\xf0\x9d\x95\x80"}, ++ {"Iota", "\xce\x99"}, ++ {"Iscr", "\xe2\x84\x90"}, ++ {"Itilde", "\xc4\xa8"}, ++ {"Iukcy", "\xd0\x86"}, ++ {"Iuml", "\xc3\x8f"}, ++ {"Jcirc", "\xc4\xb4"}, ++ {"Jcy", "\xd0\x99"}, ++ {"Jfr", "\xf0\x9d\x94\x8d"}, ++ {"Jopf", "\xf0\x9d\x95\x81"}, ++ {"Jscr", "\xf0\x9d\x92\xa5"}, ++ {"Jsercy", "\xd0\x88"}, ++ {"Jukcy", "\xd0\x84"}, ++ {"KHcy", "\xd0\xa5"}, ++ {"KJcy", "\xd0\x8c"}, ++ {"Kappa", "\xce\x9a"}, ++ {"Kcedil", "\xc4\xb6"}, ++ {"Kcy", "\xd0\x9a"}, ++ {"Kfr", "\xf0\x9d\x94\x8e"}, ++ {"Kopf", "\xf0\x9d\x95\x82"}, ++ {"Kscr", "\xf0\x9d\x92\xa6"}, ++ {"LJcy", "\xd0\x89"}, ++ {"LT", "\x3c"}, ++ {"Lacute", "\xc4\xb9"}, ++ {"Lambda", "\xce\x9b"}, ++ {"Lang", "\xe2\x9f\xaa"}, ++ {"Laplacetrf", "\xe2\x84\x92"}, ++ {"Larr", "\xe2\x86\x9e"}, ++ {"Lcaron", "\xc4\xbd"}, ++ {"Lcedil", "\xc4\xbb"}, ++ {"Lcy", "\xd0\x9b"}, ++ {"LeftAngleBracket", "\xe2\x9f\xa8"}, ++ {"LeftArrow", "\xe2\x86\x90"}, ++ {"LeftArrowBar", "\xe2\x87\xa4"}, ++ {"LeftArrowRightArrow", "\xe2\x87\x86"}, ++ {"LeftCeiling", "\xe2\x8c\x88"}, ++ {"LeftDoubleBracket", "\xe2\x9f\xa6"}, ++ {"LeftDownTeeVector", "\xe2\xa5\xa1"}, ++ {"LeftDownVector", "\xe2\x87\x83"}, ++ {"LeftDownVectorBar", "\xe2\xa5\x99"}, ++ {"LeftFloor", "\xe2\x8c\x8a"}, ++ {"LeftRightArrow", "\xe2\x86\x94"}, ++ {"LeftRightVector", "\xe2\xa5\x8e"}, ++ {"LeftTee", "\xe2\x8a\xa3"}, ++ {"LeftTeeArrow", "\xe2\x86\xa4"}, ++ {"LeftTeeVector", "\xe2\xa5\x9a"}, ++ {"LeftTriangle", "\xe2\x8a\xb2"}, ++ {"LeftTriangleBar", "\xe2\xa7\x8f"}, ++ {"LeftTriangleEqual", "\xe2\x8a\xb4"}, ++ {"LeftUpDownVector", "\xe2\xa5\x91"}, ++ {"LeftUpTeeVector", "\xe2\xa5\xa0"}, ++ {"LeftUpVector", "\xe2\x86\xbf"}, ++ {"LeftUpVectorBar", "\xe2\xa5\x98"}, ++ {"LeftVector", "\xe2\x86\xbc"}, ++ {"LeftVectorBar", "\xe2\xa5\x92"}, ++ {"Leftarrow", "\xe2\x87\x90"}, ++ {"Leftrightarrow", "\xe2\x87\x94"}, ++ {"LessEqualGreater", "\xe2\x8b\x9a"}, ++ {"LessFullEqual", "\xe2\x89\xa6"}, ++ {"LessGreater", "\xe2\x89\xb6"}, ++ {"LessLess", "\xe2\xaa\xa1"}, ++ {"LessSlantEqual", "\xe2\xa9\xbd"}, ++ {"LessTilde", "\xe2\x89\xb2"}, ++ {"Lfr", "\xf0\x9d\x94\x8f"}, ++ {"Ll", "\xe2\x8b\x98"}, ++ {"Lleftarrow", "\xe2\x87\x9a"}, ++ {"Lmidot", "\xc4\xbf"}, ++ {"LongLeftArrow", "\xe2\x9f\xb5"}, ++ {"LongLeftRightArrow", "\xe2\x9f\xb7"}, ++ {"LongRightArrow", "\xe2\x9f\xb6"}, ++ {"Longleftarrow", "\xe2\x9f\xb8"}, ++ {"Longleftrightarrow", "\xe2\x9f\xba"}, ++ {"Longrightarrow", "\xe2\x9f\xb9"}, ++ {"Lopf", "\xf0\x9d\x95\x83"}, ++ {"LowerLeftArrow", "\xe2\x86\x99"}, ++ {"LowerRightArrow", "\xe2\x86\x98"}, ++ {"Lscr", "\xe2\x84\x92"}, ++ {"Lsh", "\xe2\x86\xb0"}, ++ {"Lstrok", "\xc5\x81"}, ++ {"Lt", "\xe2\x89\xaa"}, ++ {"Map", "\xe2\xa4\x85"}, ++ {"Mcy", "\xd0\x9c"}, ++ {"MediumSpace", "\xe2\x81\x9f"}, ++ {"Mellintrf", "\xe2\x84\xb3"}, ++ {"Mfr", "\xf0\x9d\x94\x90"}, ++ {"MinusPlus", "\xe2\x88\x93"}, ++ {"Mopf", "\xf0\x9d\x95\x84"}, ++ {"Mscr", "\xe2\x84\xb3"}, ++ {"Mu", "\xce\x9c"}, ++ {"NJcy", "\xd0\x8a"}, ++ {"Nacute", "\xc5\x83"}, ++ {"Ncaron", "\xc5\x87"}, ++ {"Ncedil", "\xc5\x85"}, ++ {"Ncy", "\xd0\x9d"}, ++ {"NegativeMediumSpace", "\xe2\x80\x8b"}, ++ {"NegativeThickSpace", "\xe2\x80\x8b"}, ++ {"NegativeThinSpace", "\xe2\x80\x8b"}, ++ {"NegativeVeryThinSpace", "\xe2\x80\x8b"}, ++ {"NestedGreaterGreater", "\xe2\x89\xab"}, ++ {"NestedLessLess", "\xe2\x89\xaa"}, ++ {"NewLine", "\x0a"}, ++ {"Nfr", "\xf0\x9d\x94\x91"}, ++ {"NoBreak", "\xe2\x81\xa0"}, ++ {"NonBreakingSpace", "\xc2\xa0"}, ++ {"Nopf", "\xe2\x84\x95"}, ++ {"Not", "\xe2\xab\xac"}, ++ {"NotCongruent", "\xe2\x89\xa2"}, ++ {"NotCupCap", "\xe2\x89\xad"}, ++ {"NotDoubleVerticalBar", "\xe2\x88\xa6"}, ++ {"NotElement", "\xe2\x88\x89"}, ++ {"NotEqual", "\xe2\x89\xa0"}, ++ {"NotEqualTilde", "\xe2\x89\x82\xcc\xb8"}, ++ {"NotExists", "\xe2\x88\x84"}, ++ {"NotGreater", "\xe2\x89\xaf"}, ++ {"NotGreaterEqual", "\xe2\x89\xb1"}, ++ {"NotGreaterFullEqual", "\xe2\x89\xa7\xcc\xb8"}, ++ {"NotGreaterGreater", "\xe2\x89\xab\xcc\xb8"}, ++ {"NotGreaterLess", "\xe2\x89\xb9"}, ++ {"NotGreaterSlantEqual", "\xe2\xa9\xbe\xcc\xb8"}, ++ {"NotGreaterTilde", "\xe2\x89\xb5"}, ++ {"NotHumpDownHump", "\xe2\x89\x8e\xcc\xb8"}, ++ {"NotHumpEqual", "\xe2\x89\x8f\xcc\xb8"}, ++ {"NotLeftTriangle", "\xe2\x8b\xaa"}, ++ {"NotLeftTriangleBar", "\xe2\xa7\x8f\xcc\xb8"}, ++ {"NotLeftTriangleEqual", "\xe2\x8b\xac"}, ++ {"NotLess", "\xe2\x89\xae"}, ++ {"NotLessEqual", "\xe2\x89\xb0"}, ++ {"NotLessGreater", "\xe2\x89\xb8"}, ++ {"NotLessLess", "\xe2\x89\xaa\xcc\xb8"}, ++ {"NotLessSlantEqual", "\xe2\xa9\xbd\xcc\xb8"}, ++ {"NotLessTilde", "\xe2\x89\xb4"}, ++ {"NotNestedGreaterGreater", "\xe2\xaa\xa2\xcc\xb8"}, ++ {"NotNestedLessLess", "\xe2\xaa\xa1\xcc\xb8"}, ++ {"NotPrecedes", "\xe2\x8a\x80"}, ++ {"NotPrecedesEqual", "\xe2\xaa\xaf\xcc\xb8"}, ++ {"NotPrecedesSlantEqual", "\xe2\x8b\xa0"}, ++ {"NotReverseElement", "\xe2\x88\x8c"}, ++ {"NotRightTriangle", "\xe2\x8b\xab"}, ++ {"NotRightTriangleBar", "\xe2\xa7\x90\xcc\xb8"}, ++ {"NotRightTriangleEqual", "\xe2\x8b\xad"}, ++ {"NotSquareSubset", "\xe2\x8a\x8f\xcc\xb8"}, ++ {"NotSquareSubsetEqual", "\xe2\x8b\xa2"}, ++ {"NotSquareSuperset", "\xe2\x8a\x90\xcc\xb8"}, ++ {"NotSquareSupersetEqual", "\xe2\x8b\xa3"}, ++ {"NotSubset", "\xe2\x8a\x82\xe2\x83\x92"}, ++ {"NotSubsetEqual", "\xe2\x8a\x88"}, ++ {"NotSucceeds", "\xe2\x8a\x81"}, ++ {"NotSucceedsEqual", "\xe2\xaa\xb0\xcc\xb8"}, ++ {"NotSucceedsSlantEqual", "\xe2\x8b\xa1"}, ++ {"NotSucceedsTilde", "\xe2\x89\xbf\xcc\xb8"}, ++ {"NotSuperset", "\xe2\x8a\x83\xe2\x83\x92"}, ++ {"NotSupersetEqual", "\xe2\x8a\x89"}, ++ {"NotTilde", "\xe2\x89\x81"}, ++ {"NotTildeEqual", "\xe2\x89\x84"}, ++ {"NotTildeFullEqual", "\xe2\x89\x87"}, ++ {"NotTildeTilde", "\xe2\x89\x89"}, ++ {"NotVerticalBar", "\xe2\x88\xa4"}, ++ {"Nscr", "\xf0\x9d\x92\xa9"}, ++ {"Ntilde", "\xc3\x91"}, ++ {"Nu", "\xce\x9d"}, ++ {"OElig", "\xc5\x92"}, ++ {"Oacute", "\xc3\x93"}, ++ {"Ocirc", "\xc3\x94"}, ++ {"Ocy", "\xd0\x9e"}, ++ {"Odblac", "\xc5\x90"}, ++ {"Ofr", "\xf0\x9d\x94\x92"}, ++ {"Ograve", "\xc3\x92"}, ++ {"Omacr", "\xc5\x8c"}, ++ {"Omega", "\xce\xa9"}, ++ {"Omicron", "\xce\x9f"}, ++ {"Oopf", "\xf0\x9d\x95\x86"}, ++ {"OpenCurlyDoubleQuote", "\xe2\x80\x9c"}, ++ {"OpenCurlyQuote", "\xe2\x80\x98"}, ++ {"Or", "\xe2\xa9\x94"}, ++ {"Oscr", "\xf0\x9d\x92\xaa"}, ++ {"Oslash", "\xc3\x98"}, ++ {"Otilde", "\xc3\x95"}, ++ {"Otimes", "\xe2\xa8\xb7"}, ++ {"Ouml", "\xc3\x96"}, ++ {"OverBar", "\xe2\x80\xbe"}, ++ {"OverBrace", "\xe2\x8f\x9e"}, ++ {"OverBracket", "\xe2\x8e\xb4"}, ++ {"OverParenthesis", "\xe2\x8f\x9c"}, ++ {"PartialD", "\xe2\x88\x82"}, ++ {"Pcy", "\xd0\x9f"}, ++ {"Pfr", "\xf0\x9d\x94\x93"}, ++ {"Phi", "\xce\xa6"}, ++ {"Pi", "\xce\xa0"}, ++ {"PlusMinus", "\xc2\xb1"}, ++ {"Poincareplane", "\xe2\x84\x8c"}, ++ {"Popf", "\xe2\x84\x99"}, ++ {"Pr", "\xe2\xaa\xbb"}, ++ {"Precedes", "\xe2\x89\xba"}, ++ {"PrecedesEqual", "\xe2\xaa\xaf"}, ++ {"PrecedesSlantEqual", "\xe2\x89\xbc"}, ++ {"PrecedesTilde", "\xe2\x89\xbe"}, ++ {"Prime", "\xe2\x80\xb3"}, ++ {"Product", "\xe2\x88\x8f"}, ++ {"Proportion", "\xe2\x88\xb7"}, ++ {"Proportional", "\xe2\x88\x9d"}, ++ {"Pscr", "\xf0\x9d\x92\xab"}, ++ {"Psi", "\xce\xa8"}, ++ {"QUOT", "\x22"}, ++ {"Qfr", "\xf0\x9d\x94\x94"}, ++ {"Qopf", "\xe2\x84\x9a"}, ++ {"Qscr", "\xf0\x9d\x92\xac"}, ++ {"RBarr", "\xe2\xa4\x90"}, ++ {"REG", "\xc2\xae"}, ++ {"Racute", "\xc5\x94"}, ++ {"Rang", "\xe2\x9f\xab"}, ++ {"Rarr", "\xe2\x86\xa0"}, ++ {"Rarrtl", "\xe2\xa4\x96"}, ++ {"Rcaron", "\xc5\x98"}, ++ {"Rcedil", "\xc5\x96"}, ++ {"Rcy", "\xd0\xa0"}, ++ {"Re", "\xe2\x84\x9c"}, ++ {"ReverseElement", "\xe2\x88\x8b"}, ++ {"ReverseEquilibrium", "\xe2\x87\x8b"}, ++ {"ReverseUpEquilibrium", "\xe2\xa5\xaf"}, ++ {"Rfr", "\xe2\x84\x9c"}, ++ {"Rho", "\xce\xa1"}, ++ {"RightAngleBracket", "\xe2\x9f\xa9"}, ++ {"RightArrow", "\xe2\x86\x92"}, ++ {"RightArrowBar", "\xe2\x87\xa5"}, ++ {"RightArrowLeftArrow", "\xe2\x87\x84"}, ++ {"RightCeiling", "\xe2\x8c\x89"}, ++ {"RightDoubleBracket", "\xe2\x9f\xa7"}, ++ {"RightDownTeeVector", "\xe2\xa5\x9d"}, ++ {"RightDownVector", "\xe2\x87\x82"}, ++ {"RightDownVectorBar", "\xe2\xa5\x95"}, ++ {"RightFloor", "\xe2\x8c\x8b"}, ++ {"RightTee", "\xe2\x8a\xa2"}, ++ {"RightTeeArrow", "\xe2\x86\xa6"}, ++ {"RightTeeVector", "\xe2\xa5\x9b"}, ++ {"RightTriangle", "\xe2\x8a\xb3"}, ++ {"RightTriangleBar", "\xe2\xa7\x90"}, ++ {"RightTriangleEqual", "\xe2\x8a\xb5"}, ++ {"RightUpDownVector", "\xe2\xa5\x8f"}, ++ {"RightUpTeeVector", "\xe2\xa5\x9c"}, ++ {"RightUpVector", "\xe2\x86\xbe"}, ++ {"RightUpVectorBar", "\xe2\xa5\x94"}, ++ {"RightVector", "\xe2\x87\x80"}, ++ {"RightVectorBar", "\xe2\xa5\x93"}, ++ {"Rightarrow", "\xe2\x87\x92"}, ++ {"Ropf", "\xe2\x84\x9d"}, ++ {"RoundImplies", "\xe2\xa5\xb0"}, ++ {"Rrightarrow", "\xe2\x87\x9b"}, ++ {"Rscr", "\xe2\x84\x9b"}, ++ {"Rsh", "\xe2\x86\xb1"}, ++ {"RuleDelayed", "\xe2\xa7\xb4"}, ++ {"SHCHcy", "\xd0\xa9"}, ++ {"SHcy", "\xd0\xa8"}, ++ {"SOFTcy", "\xd0\xac"}, ++ {"Sacute", "\xc5\x9a"}, ++ {"Sc", "\xe2\xaa\xbc"}, ++ {"Scaron", "\xc5\xa0"}, ++ {"Scedil", "\xc5\x9e"}, ++ {"Scirc", "\xc5\x9c"}, ++ {"Scy", "\xd0\xa1"}, ++ {"Sfr", "\xf0\x9d\x94\x96"}, ++ {"ShortDownArrow", "\xe2\x86\x93"}, ++ {"ShortLeftArrow", "\xe2\x86\x90"}, ++ {"ShortRightArrow", "\xe2\x86\x92"}, ++ {"ShortUpArrow", "\xe2\x86\x91"}, ++ {"Sigma", "\xce\xa3"}, ++ {"SmallCircle", "\xe2\x88\x98"}, ++ {"Sopf", "\xf0\x9d\x95\x8a"}, ++ {"Sqrt", "\xe2\x88\x9a"}, ++ {"Square", "\xe2\x96\xa1"}, ++ {"SquareIntersection", "\xe2\x8a\x93"}, ++ {"SquareSubset", "\xe2\x8a\x8f"}, ++ {"SquareSubsetEqual", "\xe2\x8a\x91"}, ++ {"SquareSuperset", "\xe2\x8a\x90"}, ++ {"SquareSupersetEqual", "\xe2\x8a\x92"}, ++ {"SquareUnion", "\xe2\x8a\x94"}, ++ {"Sscr", "\xf0\x9d\x92\xae"}, ++ {"Star", "\xe2\x8b\x86"}, ++ {"Sub", "\xe2\x8b\x90"}, ++ {"Subset", "\xe2\x8b\x90"}, ++ {"SubsetEqual", "\xe2\x8a\x86"}, ++ {"Succeeds", "\xe2\x89\xbb"}, ++ {"SucceedsEqual", "\xe2\xaa\xb0"}, ++ {"SucceedsSlantEqual", "\xe2\x89\xbd"}, ++ {"SucceedsTilde", "\xe2\x89\xbf"}, ++ {"SuchThat", "\xe2\x88\x8b"}, ++ {"Sum", "\xe2\x88\x91"}, ++ {"Sup", "\xe2\x8b\x91"}, ++ {"Superset", "\xe2\x8a\x83"}, ++ {"SupersetEqual", "\xe2\x8a\x87"}, ++ {"Supset", "\xe2\x8b\x91"}, ++ {"THORN", "\xc3\x9e"}, ++ {"TRADE", "\xe2\x84\xa2"}, ++ {"TSHcy", "\xd0\x8b"}, ++ {"TScy", "\xd0\xa6"}, ++ {"Tab", "\x09"}, ++ {"Tau", "\xce\xa4"}, ++ {"Tcaron", "\xc5\xa4"}, ++ {"Tcedil", "\xc5\xa2"}, ++ {"Tcy", "\xd0\xa2"}, ++ {"Tfr", "\xf0\x9d\x94\x97"}, ++ {"Therefore", "\xe2\x88\xb4"}, ++ {"Theta", "\xce\x98"}, ++ {"ThickSpace", "\xe2\x81\x9f\xe2\x80\x8a"}, ++ {"ThinSpace", "\xe2\x80\x89"}, ++ {"Tilde", "\xe2\x88\xbc"}, ++ {"TildeEqual", "\xe2\x89\x83"}, ++ {"TildeFullEqual", "\xe2\x89\x85"}, ++ {"TildeTilde", "\xe2\x89\x88"}, ++ {"Topf", "\xf0\x9d\x95\x8b"}, ++ {"TripleDot", "\xe2\x83\x9b"}, ++ {"Tscr", "\xf0\x9d\x92\xaf"}, ++ {"Tstrok", "\xc5\xa6"}, ++ {"Uacute", "\xc3\x9a"}, ++ {"Uarr", "\xe2\x86\x9f"}, ++ {"Uarrocir", "\xe2\xa5\x89"}, ++ {"Ubrcy", "\xd0\x8e"}, ++ {"Ubreve", "\xc5\xac"}, ++ {"Ucirc", "\xc3\x9b"}, ++ {"Ucy", "\xd0\xa3"}, ++ {"Udblac", "\xc5\xb0"}, ++ {"Ufr", "\xf0\x9d\x94\x98"}, ++ {"Ugrave", "\xc3\x99"}, ++ {"Umacr", "\xc5\xaa"}, ++ {"UnderBar", "\x5f"}, ++ {"UnderBrace", "\xe2\x8f\x9f"}, ++ {"UnderBracket", "\xe2\x8e\xb5"}, ++ {"UnderParenthesis", "\xe2\x8f\x9d"}, ++ {"Union", "\xe2\x8b\x83"}, ++ {"UnionPlus", "\xe2\x8a\x8e"}, ++ {"Uogon", "\xc5\xb2"}, ++ {"Uopf", "\xf0\x9d\x95\x8c"}, ++ {"UpArrow", "\xe2\x86\x91"}, ++ {"UpArrowBar", "\xe2\xa4\x92"}, ++ {"UpArrowDownArrow", "\xe2\x87\x85"}, ++ {"UpDownArrow", "\xe2\x86\x95"}, ++ {"UpEquilibrium", "\xe2\xa5\xae"}, ++ {"UpTee", "\xe2\x8a\xa5"}, ++ {"UpTeeArrow", "\xe2\x86\xa5"}, ++ {"Uparrow", "\xe2\x87\x91"}, ++ {"Updownarrow", "\xe2\x87\x95"}, ++ {"UpperLeftArrow", "\xe2\x86\x96"}, ++ {"UpperRightArrow", "\xe2\x86\x97"}, ++ {"Upsi", "\xcf\x92"}, ++ {"Upsilon", "\xce\xa5"}, ++ {"Uring", "\xc5\xae"}, ++ {"Uscr", "\xf0\x9d\x92\xb0"}, ++ {"Utilde", "\xc5\xa8"}, ++ {"Uuml", "\xc3\x9c"}, ++ {"VDash", "\xe2\x8a\xab"}, ++ {"Vbar", "\xe2\xab\xab"}, ++ {"Vcy", "\xd0\x92"}, ++ {"Vdash", "\xe2\x8a\xa9"}, ++ {"Vdashl", "\xe2\xab\xa6"}, ++ {"Vee", "\xe2\x8b\x81"}, ++ {"Verbar", "\xe2\x80\x96"}, ++ {"Vert", "\xe2\x80\x96"}, ++ {"VerticalBar", "\xe2\x88\xa3"}, ++ {"VerticalLine", "\x7c"}, ++ {"VerticalSeparator", "\xe2\x9d\x98"}, ++ {"VerticalTilde", "\xe2\x89\x80"}, ++ {"VeryThinSpace", "\xe2\x80\x8a"}, ++ {"Vfr", "\xf0\x9d\x94\x99"}, ++ {"Vopf", "\xf0\x9d\x95\x8d"}, ++ {"Vscr", "\xf0\x9d\x92\xb1"}, ++ {"Vvdash", "\xe2\x8a\xaa"}, ++ {"Wcirc", "\xc5\xb4"}, ++ {"Wedge", "\xe2\x8b\x80"}, ++ {"Wfr", "\xf0\x9d\x94\x9a"}, ++ {"Wopf", "\xf0\x9d\x95\x8e"}, ++ {"Wscr", "\xf0\x9d\x92\xb2"}, ++ {"Xfr", "\xf0\x9d\x94\x9b"}, ++ {"Xi", "\xce\x9e"}, ++ {"Xopf", "\xf0\x9d\x95\x8f"}, ++ {"Xscr", "\xf0\x9d\x92\xb3"}, ++ {"YAcy", "\xd0\xaf"}, ++ {"YIcy", "\xd0\x87"}, ++ {"YUcy", "\xd0\xae"}, ++ {"Yacute", "\xc3\x9d"}, ++ {"Ycirc", "\xc5\xb6"}, ++ {"Ycy", "\xd0\xab"}, ++ {"Yfr", "\xf0\x9d\x94\x9c"}, ++ {"Yopf", "\xf0\x9d\x95\x90"}, ++ {"Yscr", "\xf0\x9d\x92\xb4"}, ++ {"Yuml", "\xc5\xb8"}, ++ {"ZHcy", "\xd0\x96"}, ++ {"Zacute", "\xc5\xb9"}, ++ {"Zcaron", "\xc5\xbd"}, ++ {"Zcy", "\xd0\x97"}, ++ {"Zdot", "\xc5\xbb"}, ++ {"ZeroWidthSpace", "\xe2\x80\x8b"}, ++ {"Zeta", "\xce\x96"}, ++ {"Zfr", "\xe2\x84\xa8"}, ++ {"Zopf", "\xe2\x84\xa4"}, ++ {"Zscr", "\xf0\x9d\x92\xb5"}, ++ {"aacute", "\xc3\xa1"}, ++ {"abreve", "\xc4\x83"}, ++ {"ac", "\xe2\x88\xbe"}, ++ {"acE", "\xe2\x88\xbe\xcc\xb3"}, ++ {"acd", "\xe2\x88\xbf"}, ++ {"acirc", "\xc3\xa2"}, ++ {"acute", "\xc2\xb4"}, ++ {"acy", "\xd0\xb0"}, ++ {"aelig", "\xc3\xa6"}, ++ {"af", "\xe2\x81\xa1"}, ++ {"afr", "\xf0\x9d\x94\x9e"}, ++ {"agrave", "\xc3\xa0"}, ++ {"alefsym", "\xe2\x84\xb5"}, ++ {"aleph", "\xe2\x84\xb5"}, ++ {"alpha", "\xce\xb1"}, ++ {"amacr", "\xc4\x81"}, ++ {"amalg", "\xe2\xa8\xbf"}, ++ {"amp", "\x26"}, ++ {"and", "\xe2\x88\xa7"}, ++ {"andand", "\xe2\xa9\x95"}, ++ {"andd", "\xe2\xa9\x9c"}, ++ {"andslope", "\xe2\xa9\x98"}, ++ {"andv", "\xe2\xa9\x9a"}, ++ {"ang", "\xe2\x88\xa0"}, ++ {"ange", "\xe2\xa6\xa4"}, ++ {"angle", "\xe2\x88\xa0"}, ++ {"angmsd", "\xe2\x88\xa1"}, ++ {"angmsdaa", "\xe2\xa6\xa8"}, ++ {"angmsdab", "\xe2\xa6\xa9"}, ++ {"angmsdac", "\xe2\xa6\xaa"}, ++ {"angmsdad", "\xe2\xa6\xab"}, ++ {"angmsdae", "\xe2\xa6\xac"}, ++ {"angmsdaf", "\xe2\xa6\xad"}, ++ {"angmsdag", "\xe2\xa6\xae"}, ++ {"angmsdah", "\xe2\xa6\xaf"}, ++ {"angrt", "\xe2\x88\x9f"}, ++ {"angrtvb", "\xe2\x8a\xbe"}, ++ {"angrtvbd", "\xe2\xa6\x9d"}, ++ {"angsph", "\xe2\x88\xa2"}, ++ {"angst", "\xc3\x85"}, ++ {"angzarr", "\xe2\x8d\xbc"}, ++ {"aogon", "\xc4\x85"}, ++ {"aopf", "\xf0\x9d\x95\x92"}, ++ {"ap", "\xe2\x89\x88"}, ++ {"apE", "\xe2\xa9\xb0"}, ++ {"apacir", "\xe2\xa9\xaf"}, ++ {"ape", "\xe2\x89\x8a"}, ++ {"apid", "\xe2\x89\x8b"}, ++ {"apos", "\x27"}, ++ {"approx", "\xe2\x89\x88"}, ++ {"approxeq", "\xe2\x89\x8a"}, ++ {"aring", "\xc3\xa5"}, ++ {"ascr", "\xf0\x9d\x92\xb6"}, ++ {"ast", "\x2a"}, ++ {"asymp", "\xe2\x89\x88"}, ++ {"asympeq", "\xe2\x89\x8d"}, ++ {"atilde", "\xc3\xa3"}, ++ {"auml", "\xc3\xa4"}, ++ {"awconint", "\xe2\x88\xb3"}, ++ {"awint", "\xe2\xa8\x91"}, ++ {"bNot", "\xe2\xab\xad"}, ++ {"backcong", "\xe2\x89\x8c"}, ++ {"backepsilon", "\xcf\xb6"}, ++ {"backprime", "\xe2\x80\xb5"}, ++ {"backsim", "\xe2\x88\xbd"}, ++ {"backsimeq", "\xe2\x8b\x8d"}, ++ {"barvee", "\xe2\x8a\xbd"}, ++ {"barwed", "\xe2\x8c\x85"}, ++ {"barwedge", "\xe2\x8c\x85"}, ++ {"bbrk", "\xe2\x8e\xb5"}, ++ {"bbrktbrk", "\xe2\x8e\xb6"}, ++ {"bcong", "\xe2\x89\x8c"}, ++ {"bcy", "\xd0\xb1"}, ++ {"bdquo", "\xe2\x80\x9e"}, ++ {"becaus", "\xe2\x88\xb5"}, ++ {"because", "\xe2\x88\xb5"}, ++ {"bemptyv", "\xe2\xa6\xb0"}, ++ {"bepsi", "\xcf\xb6"}, ++ {"bernou", "\xe2\x84\xac"}, ++ {"beta", "\xce\xb2"}, ++ {"beth", "\xe2\x84\xb6"}, ++ {"between", "\xe2\x89\xac"}, ++ {"bfr", "\xf0\x9d\x94\x9f"}, ++ {"bigcap", "\xe2\x8b\x82"}, ++ {"bigcirc", "\xe2\x97\xaf"}, ++ {"bigcup", "\xe2\x8b\x83"}, ++ {"bigodot", "\xe2\xa8\x80"}, ++ {"bigoplus", "\xe2\xa8\x81"}, ++ {"bigotimes", "\xe2\xa8\x82"}, ++ {"bigsqcup", "\xe2\xa8\x86"}, ++ {"bigstar", "\xe2\x98\x85"}, ++ {"bigtriangledown", "\xe2\x96\xbd"}, ++ {"bigtriangleup", "\xe2\x96\xb3"}, ++ {"biguplus", "\xe2\xa8\x84"}, ++ {"bigvee", "\xe2\x8b\x81"}, ++ {"bigwedge", "\xe2\x8b\x80"}, ++ {"bkarow", "\xe2\xa4\x8d"}, ++ {"blacklozenge", "\xe2\xa7\xab"}, ++ {"blacksquare", "\xe2\x96\xaa"}, ++ {"blacktriangle", "\xe2\x96\xb4"}, ++ {"blacktriangledown", "\xe2\x96\xbe"}, ++ {"blacktriangleleft", "\xe2\x97\x82"}, ++ {"blacktriangleright", "\xe2\x96\xb8"}, ++ {"blank", "\xe2\x90\xa3"}, ++ {"blk12", "\xe2\x96\x92"}, ++ {"blk14", "\xe2\x96\x91"}, ++ {"blk34", "\xe2\x96\x93"}, ++ {"block", "\xe2\x96\x88"}, ++ {"bne", "\x3d\xe2\x83\xa5"}, ++ {"bnequiv", "\xe2\x89\xa1\xe2\x83\xa5"}, ++ {"bnot", "\xe2\x8c\x90"}, ++ {"bopf", "\xf0\x9d\x95\x93"}, ++ {"bot", "\xe2\x8a\xa5"}, ++ {"bottom", "\xe2\x8a\xa5"}, ++ {"bowtie", "\xe2\x8b\x88"}, ++ {"boxDL", "\xe2\x95\x97"}, ++ {"boxDR", "\xe2\x95\x94"}, ++ {"boxDl", "\xe2\x95\x96"}, ++ {"boxDr", "\xe2\x95\x93"}, ++ {"boxH", "\xe2\x95\x90"}, ++ {"boxHD", "\xe2\x95\xa6"}, ++ {"boxHU", "\xe2\x95\xa9"}, ++ {"boxHd", "\xe2\x95\xa4"}, ++ {"boxHu", "\xe2\x95\xa7"}, ++ {"boxUL", "\xe2\x95\x9d"}, ++ {"boxUR", "\xe2\x95\x9a"}, ++ {"boxUl", "\xe2\x95\x9c"}, ++ {"boxUr", "\xe2\x95\x99"}, ++ {"boxV", "\xe2\x95\x91"}, ++ {"boxVH", "\xe2\x95\xac"}, ++ {"boxVL", "\xe2\x95\xa3"}, ++ {"boxVR", "\xe2\x95\xa0"}, ++ {"boxVh", "\xe2\x95\xab"}, ++ {"boxVl", "\xe2\x95\xa2"}, ++ {"boxVr", "\xe2\x95\x9f"}, ++ {"boxbox", "\xe2\xa7\x89"}, ++ {"boxdL", "\xe2\x95\x95"}, ++ {"boxdR", "\xe2\x95\x92"}, ++ {"boxdl", "\xe2\x94\x90"}, ++ {"boxdr", "\xe2\x94\x8c"}, ++ {"boxh", "\xe2\x94\x80"}, ++ {"boxhD", "\xe2\x95\xa5"}, ++ {"boxhU", "\xe2\x95\xa8"}, ++ {"boxhd", "\xe2\x94\xac"}, ++ {"boxhu", "\xe2\x94\xb4"}, ++ {"boxminus", "\xe2\x8a\x9f"}, ++ {"boxplus", "\xe2\x8a\x9e"}, ++ {"boxtimes", "\xe2\x8a\xa0"}, ++ {"boxuL", "\xe2\x95\x9b"}, ++ {"boxuR", "\xe2\x95\x98"}, ++ {"boxul", "\xe2\x94\x98"}, ++ {"boxur", "\xe2\x94\x94"}, ++ {"boxv", "\xe2\x94\x82"}, ++ {"boxvH", "\xe2\x95\xaa"}, ++ {"boxvL", "\xe2\x95\xa1"}, ++ {"boxvR", "\xe2\x95\x9e"}, ++ {"boxvh", "\xe2\x94\xbc"}, ++ {"boxvl", "\xe2\x94\xa4"}, ++ {"boxvr", "\xe2\x94\x9c"}, ++ {"bprime", "\xe2\x80\xb5"}, ++ {"breve", "\xcb\x98"}, ++ {"brvbar", "\xc2\xa6"}, ++ {"bscr", "\xf0\x9d\x92\xb7"}, ++ {"bsemi", "\xe2\x81\x8f"}, ++ {"bsim", "\xe2\x88\xbd"}, ++ {"bsime", "\xe2\x8b\x8d"}, ++ {"bsol", "\x5c"}, ++ {"bsolb", "\xe2\xa7\x85"}, ++ {"bsolhsub", "\xe2\x9f\x88"}, ++ {"bull", "\xe2\x80\xa2"}, ++ {"bullet", "\xe2\x80\xa2"}, ++ {"bump", "\xe2\x89\x8e"}, ++ {"bumpE", "\xe2\xaa\xae"}, ++ {"bumpe", "\xe2\x89\x8f"}, ++ {"bumpeq", "\xe2\x89\x8f"}, ++ {"cacute", "\xc4\x87"}, ++ {"cap", "\xe2\x88\xa9"}, ++ {"capand", "\xe2\xa9\x84"}, ++ {"capbrcup", "\xe2\xa9\x89"}, ++ {"capcap", "\xe2\xa9\x8b"}, ++ {"capcup", "\xe2\xa9\x87"}, ++ {"capdot", "\xe2\xa9\x80"}, ++ {"caps", "\xe2\x88\xa9\xef\xb8\x80"}, ++ {"caret", "\xe2\x81\x81"}, ++ {"caron", "\xcb\x87"}, ++ {"ccaps", "\xe2\xa9\x8d"}, ++ {"ccaron", "\xc4\x8d"}, ++ {"ccedil", "\xc3\xa7"}, ++ {"ccirc", "\xc4\x89"}, ++ {"ccups", "\xe2\xa9\x8c"}, ++ {"ccupssm", "\xe2\xa9\x90"}, ++ {"cdot", "\xc4\x8b"}, ++ {"cedil", "\xc2\xb8"}, ++ {"cemptyv", "\xe2\xa6\xb2"}, ++ {"cent", "\xc2\xa2"}, ++ {"centerdot", "\xc2\xb7"}, ++ {"cfr", "\xf0\x9d\x94\xa0"}, ++ {"chcy", "\xd1\x87"}, ++ {"check", "\xe2\x9c\x93"}, ++ {"checkmark", "\xe2\x9c\x93"}, ++ {"chi", "\xcf\x87"}, ++ {"cir", "\xe2\x97\x8b"}, ++ {"cirE", "\xe2\xa7\x83"}, ++ {"circ", "\xcb\x86"}, ++ {"circeq", "\xe2\x89\x97"}, ++ {"circlearrowleft", "\xe2\x86\xba"}, ++ {"circlearrowright", "\xe2\x86\xbb"}, ++ {"circledR", "\xc2\xae"}, ++ {"circledS", "\xe2\x93\x88"}, ++ {"circledast", "\xe2\x8a\x9b"}, ++ {"circledcirc", "\xe2\x8a\x9a"}, ++ {"circleddash", "\xe2\x8a\x9d"}, ++ {"cire", "\xe2\x89\x97"}, ++ {"cirfnint", "\xe2\xa8\x90"}, ++ {"cirmid", "\xe2\xab\xaf"}, ++ {"cirscir", "\xe2\xa7\x82"}, ++ {"clubs", "\xe2\x99\xa3"}, ++ {"clubsuit", "\xe2\x99\xa3"}, ++ {"colon", "\x3a"}, ++ {"colone", "\xe2\x89\x94"}, ++ {"coloneq", "\xe2\x89\x94"}, ++ {"comma", "\x2c"}, ++ {"commat", "\x40"}, ++ {"comp", "\xe2\x88\x81"}, ++ {"compfn", "\xe2\x88\x98"}, ++ {"complement", "\xe2\x88\x81"}, ++ {"complexes", "\xe2\x84\x82"}, ++ {"cong", "\xe2\x89\x85"}, ++ {"congdot", "\xe2\xa9\xad"}, ++ {"conint", "\xe2\x88\xae"}, ++ {"copf", "\xf0\x9d\x95\x94"}, ++ {"coprod", "\xe2\x88\x90"}, ++ {"copy", "\xc2\xa9"}, ++ {"copysr", "\xe2\x84\x97"}, ++ {"crarr", "\xe2\x86\xb5"}, ++ {"cross", "\xe2\x9c\x97"}, ++ {"cscr", "\xf0\x9d\x92\xb8"}, ++ {"csub", "\xe2\xab\x8f"}, ++ {"csube", "\xe2\xab\x91"}, ++ {"csup", "\xe2\xab\x90"}, ++ {"csupe", "\xe2\xab\x92"}, ++ {"ctdot", "\xe2\x8b\xaf"}, ++ {"cudarrl", "\xe2\xa4\xb8"}, ++ {"cudarrr", "\xe2\xa4\xb5"}, ++ {"cuepr", "\xe2\x8b\x9e"}, ++ {"cuesc", "\xe2\x8b\x9f"}, ++ {"cularr", "\xe2\x86\xb6"}, ++ {"cularrp", "\xe2\xa4\xbd"}, ++ {"cup", "\xe2\x88\xaa"}, ++ {"cupbrcap", "\xe2\xa9\x88"}, ++ {"cupcap", "\xe2\xa9\x86"}, ++ {"cupcup", "\xe2\xa9\x8a"}, ++ {"cupdot", "\xe2\x8a\x8d"}, ++ {"cupor", "\xe2\xa9\x85"}, ++ {"cups", "\xe2\x88\xaa\xef\xb8\x80"}, ++ {"curarr", "\xe2\x86\xb7"}, ++ {"curarrm", "\xe2\xa4\xbc"}, ++ {"curlyeqprec", "\xe2\x8b\x9e"}, ++ {"curlyeqsucc", "\xe2\x8b\x9f"}, ++ {"curlyvee", "\xe2\x8b\x8e"}, ++ {"curlywedge", "\xe2\x8b\x8f"}, ++ {"curren", "\xc2\xa4"}, ++ {"curvearrowleft", "\xe2\x86\xb6"}, ++ {"curvearrowright", "\xe2\x86\xb7"}, ++ {"cuvee", "\xe2\x8b\x8e"}, ++ {"cuwed", "\xe2\x8b\x8f"}, ++ {"cwconint", "\xe2\x88\xb2"}, ++ {"cwint", "\xe2\x88\xb1"}, ++ {"cylcty", "\xe2\x8c\xad"}, ++ {"dArr", "\xe2\x87\x93"}, ++ {"dHar", "\xe2\xa5\xa5"}, ++ {"dagger", "\xe2\x80\xa0"}, ++ {"daleth", "\xe2\x84\xb8"}, ++ {"darr", "\xe2\x86\x93"}, ++ {"dash", "\xe2\x80\x90"}, ++ {"dashv", "\xe2\x8a\xa3"}, ++ {"dbkarow", "\xe2\xa4\x8f"}, ++ {"dblac", "\xcb\x9d"}, ++ {"dcaron", "\xc4\x8f"}, ++ {"dcy", "\xd0\xb4"}, ++ {"dd", "\xe2\x85\x86"}, ++ {"ddagger", "\xe2\x80\xa1"}, ++ {"ddarr", "\xe2\x87\x8a"}, ++ {"ddotseq", "\xe2\xa9\xb7"}, ++ {"deg", "\xc2\xb0"}, ++ {"delta", "\xce\xb4"}, ++ {"demptyv", "\xe2\xa6\xb1"}, ++ {"dfisht", "\xe2\xa5\xbf"}, ++ {"dfr", "\xf0\x9d\x94\xa1"}, ++ {"dharl", "\xe2\x87\x83"}, ++ {"dharr", "\xe2\x87\x82"}, ++ {"diam", "\xe2\x8b\x84"}, ++ {"diamond", "\xe2\x8b\x84"}, ++ {"diamondsuit", "\xe2\x99\xa6"}, ++ {"diams", "\xe2\x99\xa6"}, ++ {"die", "\xc2\xa8"}, ++ {"digamma", "\xcf\x9d"}, ++ {"disin", "\xe2\x8b\xb2"}, ++ {"div", "\xc3\xb7"}, ++ {"divide", "\xc3\xb7"}, ++ {"divideontimes", "\xe2\x8b\x87"}, ++ {"divonx", "\xe2\x8b\x87"}, ++ {"djcy", "\xd1\x92"}, ++ {"dlcorn", "\xe2\x8c\x9e"}, ++ {"dlcrop", "\xe2\x8c\x8d"}, ++ {"dollar", "\x24"}, ++ {"dopf", "\xf0\x9d\x95\x95"}, ++ {"dot", "\xcb\x99"}, ++ {"doteq", "\xe2\x89\x90"}, ++ {"doteqdot", "\xe2\x89\x91"}, ++ {"dotminus", "\xe2\x88\xb8"}, ++ {"dotplus", "\xe2\x88\x94"}, ++ {"dotsquare", "\xe2\x8a\xa1"}, ++ {"doublebarwedge", "\xe2\x8c\x86"}, ++ {"downarrow", "\xe2\x86\x93"}, ++ {"downdownarrows", "\xe2\x87\x8a"}, ++ {"downharpoonleft", "\xe2\x87\x83"}, ++ {"downharpoonright", "\xe2\x87\x82"}, ++ {"drbkarow", "\xe2\xa4\x90"}, ++ {"drcorn", "\xe2\x8c\x9f"}, ++ {"drcrop", "\xe2\x8c\x8c"}, ++ {"dscr", "\xf0\x9d\x92\xb9"}, ++ {"dscy", "\xd1\x95"}, ++ {"dsol", "\xe2\xa7\xb6"}, ++ {"dstrok", "\xc4\x91"}, ++ {"dtdot", "\xe2\x8b\xb1"}, ++ {"dtri", "\xe2\x96\xbf"}, ++ {"dtrif", "\xe2\x96\xbe"}, ++ {"duarr", "\xe2\x87\xb5"}, ++ {"duhar", "\xe2\xa5\xaf"}, ++ {"dwangle", "\xe2\xa6\xa6"}, ++ {"dzcy", "\xd1\x9f"}, ++ {"dzigrarr", "\xe2\x9f\xbf"}, ++ {"eDDot", "\xe2\xa9\xb7"}, ++ {"eDot", "\xe2\x89\x91"}, ++ {"eacute", "\xc3\xa9"}, ++ {"easter", "\xe2\xa9\xae"}, ++ {"ecaron", "\xc4\x9b"}, ++ {"ecir", "\xe2\x89\x96"}, ++ {"ecirc", "\xc3\xaa"}, ++ {"ecolon", "\xe2\x89\x95"}, ++ {"ecy", "\xd1\x8d"}, ++ {"edot", "\xc4\x97"}, ++ {"ee", "\xe2\x85\x87"}, ++ {"efDot", "\xe2\x89\x92"}, ++ {"efr", "\xf0\x9d\x94\xa2"}, ++ {"eg", "\xe2\xaa\x9a"}, ++ {"egrave", "\xc3\xa8"}, ++ {"egs", "\xe2\xaa\x96"}, ++ {"egsdot", "\xe2\xaa\x98"}, ++ {"el", "\xe2\xaa\x99"}, ++ {"elinters", "\xe2\x8f\xa7"}, ++ {"ell", "\xe2\x84\x93"}, ++ {"els", "\xe2\xaa\x95"}, ++ {"elsdot", "\xe2\xaa\x97"}, ++ {"emacr", "\xc4\x93"}, ++ {"empty", "\xe2\x88\x85"}, ++ {"emptyset", "\xe2\x88\x85"}, ++ {"emptyv", "\xe2\x88\x85"}, ++ {"emsp", "\xe2\x80\x83"}, ++ {"emsp13", "\xe2\x80\x84"}, ++ {"emsp14", "\xe2\x80\x85"}, ++ {"eng", "\xc5\x8b"}, ++ {"ensp", "\xe2\x80\x82"}, ++ {"eogon", "\xc4\x99"}, ++ {"eopf", "\xf0\x9d\x95\x96"}, ++ {"epar", "\xe2\x8b\x95"}, ++ {"eparsl", "\xe2\xa7\xa3"}, ++ {"eplus", "\xe2\xa9\xb1"}, ++ {"epsi", "\xce\xb5"}, ++ {"epsilon", "\xce\xb5"}, ++ {"epsiv", "\xcf\xb5"}, ++ {"eqcirc", "\xe2\x89\x96"}, ++ {"eqcolon", "\xe2\x89\x95"}, ++ {"eqsim", "\xe2\x89\x82"}, ++ {"eqslantgtr", "\xe2\xaa\x96"}, ++ {"eqslantless", "\xe2\xaa\x95"}, ++ {"equals", "\x3d"}, ++ {"equest", "\xe2\x89\x9f"}, ++ {"equiv", "\xe2\x89\xa1"}, ++ {"equivDD", "\xe2\xa9\xb8"}, ++ {"eqvparsl", "\xe2\xa7\xa5"}, ++ {"erDot", "\xe2\x89\x93"}, ++ {"erarr", "\xe2\xa5\xb1"}, ++ {"escr", "\xe2\x84\xaf"}, ++ {"esdot", "\xe2\x89\x90"}, ++ {"esim", "\xe2\x89\x82"}, ++ {"eta", "\xce\xb7"}, ++ {"eth", "\xc3\xb0"}, ++ {"euml", "\xc3\xab"}, ++ {"euro", "\xe2\x82\xac"}, ++ {"excl", "\x21"}, ++ {"exist", "\xe2\x88\x83"}, ++ {"expectation", "\xe2\x84\xb0"}, ++ {"exponentiale", "\xe2\x85\x87"}, ++ {"fallingdotseq", "\xe2\x89\x92"}, ++ {"fcy", "\xd1\x84"}, ++ {"female", "\xe2\x99\x80"}, ++ {"ffilig", "\xef\xac\x83"}, ++ {"fflig", "\xef\xac\x80"}, ++ {"ffllig", "\xef\xac\x84"}, ++ {"ffr", "\xf0\x9d\x94\xa3"}, ++ {"filig", "\xef\xac\x81"}, ++ {"fjlig", "\x66\x6a"}, ++ {"flat", "\xe2\x99\xad"}, ++ {"fllig", "\xef\xac\x82"}, ++ {"fltns", "\xe2\x96\xb1"}, ++ {"fnof", "\xc6\x92"}, ++ {"fopf", "\xf0\x9d\x95\x97"}, ++ {"forall", "\xe2\x88\x80"}, ++ {"fork", "\xe2\x8b\x94"}, ++ {"forkv", "\xe2\xab\x99"}, ++ {"fpartint", "\xe2\xa8\x8d"}, ++ {"frac12", "\xc2\xbd"}, ++ {"frac13", "\xe2\x85\x93"}, ++ {"frac14", "\xc2\xbc"}, ++ {"frac15", "\xe2\x85\x95"}, ++ {"frac16", "\xe2\x85\x99"}, ++ {"frac18", "\xe2\x85\x9b"}, ++ {"frac23", "\xe2\x85\x94"}, ++ {"frac25", "\xe2\x85\x96"}, ++ {"frac34", "\xc2\xbe"}, ++ {"frac35", "\xe2\x85\x97"}, ++ {"frac38", "\xe2\x85\x9c"}, ++ {"frac45", "\xe2\x85\x98"}, ++ {"frac56", "\xe2\x85\x9a"}, ++ {"frac58", "\xe2\x85\x9d"}, ++ {"frac78", "\xe2\x85\x9e"}, ++ {"frasl", "\xe2\x81\x84"}, ++ {"frown", "\xe2\x8c\xa2"}, ++ {"fscr", "\xf0\x9d\x92\xbb"}, ++ {"gE", "\xe2\x89\xa7"}, ++ {"gEl", "\xe2\xaa\x8c"}, ++ {"gacute", "\xc7\xb5"}, ++ {"gamma", "\xce\xb3"}, ++ {"gammad", "\xcf\x9d"}, ++ {"gap", "\xe2\xaa\x86"}, ++ {"gbreve", "\xc4\x9f"}, ++ {"gcirc", "\xc4\x9d"}, ++ {"gcy", "\xd0\xb3"}, ++ {"gdot", "\xc4\xa1"}, ++ {"ge", "\xe2\x89\xa5"}, ++ {"gel", "\xe2\x8b\x9b"}, ++ {"geq", "\xe2\x89\xa5"}, ++ {"geqq", "\xe2\x89\xa7"}, ++ {"geqslant", "\xe2\xa9\xbe"}, ++ {"ges", "\xe2\xa9\xbe"}, ++ {"gescc", "\xe2\xaa\xa9"}, ++ {"gesdot", "\xe2\xaa\x80"}, ++ {"gesdoto", "\xe2\xaa\x82"}, ++ {"gesdotol", "\xe2\xaa\x84"}, ++ {"gesl", "\xe2\x8b\x9b\xef\xb8\x80"}, ++ {"gesles", "\xe2\xaa\x94"}, ++ {"gfr", "\xf0\x9d\x94\xa4"}, ++ {"gg", "\xe2\x89\xab"}, ++ {"ggg", "\xe2\x8b\x99"}, ++ {"gimel", "\xe2\x84\xb7"}, ++ {"gjcy", "\xd1\x93"}, ++ {"gl", "\xe2\x89\xb7"}, ++ {"glE", "\xe2\xaa\x92"}, ++ {"gla", "\xe2\xaa\xa5"}, ++ {"glj", "\xe2\xaa\xa4"}, ++ {"gnE", "\xe2\x89\xa9"}, ++ {"gnap", "\xe2\xaa\x8a"}, ++ {"gnapprox", "\xe2\xaa\x8a"}, ++ {"gne", "\xe2\xaa\x88"}, ++ {"gneq", "\xe2\xaa\x88"}, ++ {"gneqq", "\xe2\x89\xa9"}, ++ {"gnsim", "\xe2\x8b\xa7"}, ++ {"gopf", "\xf0\x9d\x95\x98"}, ++ {"grave", "\x60"}, ++ {"gscr", "\xe2\x84\x8a"}, ++ {"gsim", "\xe2\x89\xb3"}, ++ {"gsime", "\xe2\xaa\x8e"}, ++ {"gsiml", "\xe2\xaa\x90"}, ++ {"gt", "\x3e"}, ++ {"gtcc", "\xe2\xaa\xa7"}, ++ {"gtcir", "\xe2\xa9\xba"}, ++ {"gtdot", "\xe2\x8b\x97"}, ++ {"gtlPar", "\xe2\xa6\x95"}, ++ {"gtquest", "\xe2\xa9\xbc"}, ++ {"gtrapprox", "\xe2\xaa\x86"}, ++ {"gtrarr", "\xe2\xa5\xb8"}, ++ {"gtrdot", "\xe2\x8b\x97"}, ++ {"gtreqless", "\xe2\x8b\x9b"}, ++ {"gtreqqless", "\xe2\xaa\x8c"}, ++ {"gtrless", "\xe2\x89\xb7"}, ++ {"gtrsim", "\xe2\x89\xb3"}, ++ {"gvertneqq", "\xe2\x89\xa9\xef\xb8\x80"}, ++ {"gvnE", "\xe2\x89\xa9\xef\xb8\x80"}, ++ {"hArr", "\xe2\x87\x94"}, ++ {"hairsp", "\xe2\x80\x8a"}, ++ {"half", "\xc2\xbd"}, ++ {"hamilt", "\xe2\x84\x8b"}, ++ {"hardcy", "\xd1\x8a"}, ++ {"harr", "\xe2\x86\x94"}, ++ {"harrcir", "\xe2\xa5\x88"}, ++ {"harrw", "\xe2\x86\xad"}, ++ {"hbar", "\xe2\x84\x8f"}, ++ {"hcirc", "\xc4\xa5"}, ++ {"hearts", "\xe2\x99\xa5"}, ++ {"heartsuit", "\xe2\x99\xa5"}, ++ {"hellip", "\xe2\x80\xa6"}, ++ {"hercon", "\xe2\x8a\xb9"}, ++ {"hfr", "\xf0\x9d\x94\xa5"}, ++ {"hksearow", "\xe2\xa4\xa5"}, ++ {"hkswarow", "\xe2\xa4\xa6"}, ++ {"hoarr", "\xe2\x87\xbf"}, ++ {"homtht", "\xe2\x88\xbb"}, ++ {"hookleftarrow", "\xe2\x86\xa9"}, ++ {"hookrightarrow", "\xe2\x86\xaa"}, ++ {"hopf", "\xf0\x9d\x95\x99"}, ++ {"horbar", "\xe2\x80\x95"}, ++ {"hscr", "\xf0\x9d\x92\xbd"}, ++ {"hslash", "\xe2\x84\x8f"}, ++ {"hstrok", "\xc4\xa7"}, ++ {"hybull", "\xe2\x81\x83"}, ++ {"hyphen", "\xe2\x80\x90"}, ++ {"iacute", "\xc3\xad"}, ++ {"ic", "\xe2\x81\xa3"}, ++ {"icirc", "\xc3\xae"}, ++ {"icy", "\xd0\xb8"}, ++ {"iecy", "\xd0\xb5"}, ++ {"iexcl", "\xc2\xa1"}, ++ {"iff", "\xe2\x87\x94"}, ++ {"ifr", "\xf0\x9d\x94\xa6"}, ++ {"igrave", "\xc3\xac"}, ++ {"ii", "\xe2\x85\x88"}, ++ {"iiiint", "\xe2\xa8\x8c"}, ++ {"iiint", "\xe2\x88\xad"}, ++ {"iinfin", "\xe2\xa7\x9c"}, ++ {"iiota", "\xe2\x84\xa9"}, ++ {"ijlig", "\xc4\xb3"}, ++ {"imacr", "\xc4\xab"}, ++ {"image", "\xe2\x84\x91"}, ++ {"imagline", "\xe2\x84\x90"}, ++ {"imagpart", "\xe2\x84\x91"}, ++ {"imath", "\xc4\xb1"}, ++ {"imof", "\xe2\x8a\xb7"}, ++ {"imped", "\xc6\xb5"}, ++ {"in", "\xe2\x88\x88"}, ++ {"incare", "\xe2\x84\x85"}, ++ {"infin", "\xe2\x88\x9e"}, ++ {"infintie", "\xe2\xa7\x9d"}, ++ {"inodot", "\xc4\xb1"}, ++ {"int", "\xe2\x88\xab"}, ++ {"intcal", "\xe2\x8a\xba"}, ++ {"integers", "\xe2\x84\xa4"}, ++ {"intercal", "\xe2\x8a\xba"}, ++ {"intlarhk", "\xe2\xa8\x97"}, ++ {"intprod", "\xe2\xa8\xbc"}, ++ {"iocy", "\xd1\x91"}, ++ {"iogon", "\xc4\xaf"}, ++ {"iopf", "\xf0\x9d\x95\x9a"}, ++ {"iota", "\xce\xb9"}, ++ {"iprod", "\xe2\xa8\xbc"}, ++ {"iquest", "\xc2\xbf"}, ++ {"iscr", "\xf0\x9d\x92\xbe"}, ++ {"isin", "\xe2\x88\x88"}, ++ {"isinE", "\xe2\x8b\xb9"}, ++ {"isindot", "\xe2\x8b\xb5"}, ++ {"isins", "\xe2\x8b\xb4"}, ++ {"isinsv", "\xe2\x8b\xb3"}, ++ {"isinv", "\xe2\x88\x88"}, ++ {"it", "\xe2\x81\xa2"}, ++ {"itilde", "\xc4\xa9"}, ++ {"iukcy", "\xd1\x96"}, ++ {"iuml", "\xc3\xaf"}, ++ {"jcirc", "\xc4\xb5"}, ++ {"jcy", "\xd0\xb9"}, ++ {"jfr", "\xf0\x9d\x94\xa7"}, ++ {"jmath", "\xc8\xb7"}, ++ {"jopf", "\xf0\x9d\x95\x9b"}, ++ {"jscr", "\xf0\x9d\x92\xbf"}, ++ {"jsercy", "\xd1\x98"}, ++ {"jukcy", "\xd1\x94"}, ++ {"kappa", "\xce\xba"}, ++ {"kappav", "\xcf\xb0"}, ++ {"kcedil", "\xc4\xb7"}, ++ {"kcy", "\xd0\xba"}, ++ {"kfr", "\xf0\x9d\x94\xa8"}, ++ {"kgreen", "\xc4\xb8"}, ++ {"khcy", "\xd1\x85"}, ++ {"kjcy", "\xd1\x9c"}, ++ {"kopf", "\xf0\x9d\x95\x9c"}, ++ {"kscr", "\xf0\x9d\x93\x80"}, ++ {"lAarr", "\xe2\x87\x9a"}, ++ {"lArr", "\xe2\x87\x90"}, ++ {"lAtail", "\xe2\xa4\x9b"}, ++ {"lBarr", "\xe2\xa4\x8e"}, ++ {"lE", "\xe2\x89\xa6"}, ++ {"lEg", "\xe2\xaa\x8b"}, ++ {"lHar", "\xe2\xa5\xa2"}, ++ {"lacute", "\xc4\xba"}, ++ {"laemptyv", "\xe2\xa6\xb4"}, ++ {"lagran", "\xe2\x84\x92"}, ++ {"lambda", "\xce\xbb"}, ++ {"lang", "\xe2\x9f\xa8"}, ++ {"langd", "\xe2\xa6\x91"}, ++ {"langle", "\xe2\x9f\xa8"}, ++ {"lap", "\xe2\xaa\x85"}, ++ {"laquo", "\xc2\xab"}, ++ {"larr", "\xe2\x86\x90"}, ++ {"larrb", "\xe2\x87\xa4"}, ++ {"larrbfs", "\xe2\xa4\x9f"}, ++ {"larrfs", "\xe2\xa4\x9d"}, ++ {"larrhk", "\xe2\x86\xa9"}, ++ {"larrlp", "\xe2\x86\xab"}, ++ {"larrpl", "\xe2\xa4\xb9"}, ++ {"larrsim", "\xe2\xa5\xb3"}, ++ {"larrtl", "\xe2\x86\xa2"}, ++ {"lat", "\xe2\xaa\xab"}, ++ {"latail", "\xe2\xa4\x99"}, ++ {"late", "\xe2\xaa\xad"}, ++ {"lates", "\xe2\xaa\xad\xef\xb8\x80"}, ++ {"lbarr", "\xe2\xa4\x8c"}, ++ {"lbbrk", "\xe2\x9d\xb2"}, ++ {"lbrace", "\x7b"}, ++ {"lbrack", "\x5b"}, ++ {"lbrke", "\xe2\xa6\x8b"}, ++ {"lbrksld", "\xe2\xa6\x8f"}, ++ {"lbrkslu", "\xe2\xa6\x8d"}, ++ {"lcaron", "\xc4\xbe"}, ++ {"lcedil", "\xc4\xbc"}, ++ {"lceil", "\xe2\x8c\x88"}, ++ {"lcub", "\x7b"}, ++ {"lcy", "\xd0\xbb"}, ++ {"ldca", "\xe2\xa4\xb6"}, ++ {"ldquo", "\xe2\x80\x9c"}, ++ {"ldquor", "\xe2\x80\x9e"}, ++ {"ldrdhar", "\xe2\xa5\xa7"}, ++ {"ldrushar", "\xe2\xa5\x8b"}, ++ {"ldsh", "\xe2\x86\xb2"}, ++ {"le", "\xe2\x89\xa4"}, ++ {"leftarrow", "\xe2\x86\x90"}, ++ {"leftarrowtail", "\xe2\x86\xa2"}, ++ {"leftharpoondown", "\xe2\x86\xbd"}, ++ {"leftharpoonup", "\xe2\x86\xbc"}, ++ {"leftleftarrows", "\xe2\x87\x87"}, ++ {"leftrightarrow", "\xe2\x86\x94"}, ++ {"leftrightarrows", "\xe2\x87\x86"}, ++ {"leftrightharpoons", "\xe2\x87\x8b"}, ++ {"leftrightsquigarrow", "\xe2\x86\xad"}, ++ {"leftthreetimes", "\xe2\x8b\x8b"}, ++ {"leg", "\xe2\x8b\x9a"}, ++ {"leq", "\xe2\x89\xa4"}, ++ {"leqq", "\xe2\x89\xa6"}, ++ {"leqslant", "\xe2\xa9\xbd"}, ++ {"les", "\xe2\xa9\xbd"}, ++ {"lescc", "\xe2\xaa\xa8"}, ++ {"lesdot", "\xe2\xa9\xbf"}, ++ {"lesdoto", "\xe2\xaa\x81"}, ++ {"lesdotor", "\xe2\xaa\x83"}, ++ {"lesg", "\xe2\x8b\x9a\xef\xb8\x80"}, ++ {"lesges", "\xe2\xaa\x93"}, ++ {"lessapprox", "\xe2\xaa\x85"}, ++ {"lessdot", "\xe2\x8b\x96"}, ++ {"lesseqgtr", "\xe2\x8b\x9a"}, ++ {"lesseqqgtr", "\xe2\xaa\x8b"}, ++ {"lessgtr", "\xe2\x89\xb6"}, ++ {"lesssim", "\xe2\x89\xb2"}, ++ {"lfisht", "\xe2\xa5\xbc"}, ++ {"lfloor", "\xe2\x8c\x8a"}, ++ {"lfr", "\xf0\x9d\x94\xa9"}, ++ {"lg", "\xe2\x89\xb6"}, ++ {"lgE", "\xe2\xaa\x91"}, ++ {"lhard", "\xe2\x86\xbd"}, ++ {"lharu", "\xe2\x86\xbc"}, ++ {"lharul", "\xe2\xa5\xaa"}, ++ {"lhblk", "\xe2\x96\x84"}, ++ {"ljcy", "\xd1\x99"}, ++ {"ll", "\xe2\x89\xaa"}, ++ {"llarr", "\xe2\x87\x87"}, ++ {"llcorner", "\xe2\x8c\x9e"}, ++ {"llhard", "\xe2\xa5\xab"}, ++ {"lltri", "\xe2\x97\xba"}, ++ {"lmidot", "\xc5\x80"}, ++ {"lmoust", "\xe2\x8e\xb0"}, ++ {"lmoustache", "\xe2\x8e\xb0"}, ++ {"lnE", "\xe2\x89\xa8"}, ++ {"lnap", "\xe2\xaa\x89"}, ++ {"lnapprox", "\xe2\xaa\x89"}, ++ {"lne", "\xe2\xaa\x87"}, ++ {"lneq", "\xe2\xaa\x87"}, ++ {"lneqq", "\xe2\x89\xa8"}, ++ {"lnsim", "\xe2\x8b\xa6"}, ++ {"loang", "\xe2\x9f\xac"}, ++ {"loarr", "\xe2\x87\xbd"}, ++ {"lobrk", "\xe2\x9f\xa6"}, ++ {"longleftarrow", "\xe2\x9f\xb5"}, ++ {"longleftrightarrow", "\xe2\x9f\xb7"}, ++ {"longmapsto", "\xe2\x9f\xbc"}, ++ {"longrightarrow", "\xe2\x9f\xb6"}, ++ {"looparrowleft", "\xe2\x86\xab"}, ++ {"looparrowright", "\xe2\x86\xac"}, ++ {"lopar", "\xe2\xa6\x85"}, ++ {"lopf", "\xf0\x9d\x95\x9d"}, ++ {"loplus", "\xe2\xa8\xad"}, ++ {"lotimes", "\xe2\xa8\xb4"}, ++ {"lowast", "\xe2\x88\x97"}, ++ {"lowbar", "\x5f"}, ++ {"loz", "\xe2\x97\x8a"}, ++ {"lozenge", "\xe2\x97\x8a"}, ++ {"lozf", "\xe2\xa7\xab"}, ++ {"lpar", "\x28"}, ++ {"lparlt", "\xe2\xa6\x93"}, ++ {"lrarr", "\xe2\x87\x86"}, ++ {"lrcorner", "\xe2\x8c\x9f"}, ++ {"lrhar", "\xe2\x87\x8b"}, ++ {"lrhard", "\xe2\xa5\xad"}, ++ {"lrm", "\xe2\x80\x8e"}, ++ {"lrtri", "\xe2\x8a\xbf"}, ++ {"lsaquo", "\xe2\x80\xb9"}, ++ {"lscr", "\xf0\x9d\x93\x81"}, ++ {"lsh", "\xe2\x86\xb0"}, ++ {"lsim", "\xe2\x89\xb2"}, ++ {"lsime", "\xe2\xaa\x8d"}, ++ {"lsimg", "\xe2\xaa\x8f"}, ++ {"lsqb", "\x5b"}, ++ {"lsquo", "\xe2\x80\x98"}, ++ {"lsquor", "\xe2\x80\x9a"}, ++ {"lstrok", "\xc5\x82"}, ++ {"lt", "\x3c"}, ++ {"ltcc", "\xe2\xaa\xa6"}, ++ {"ltcir", "\xe2\xa9\xb9"}, ++ {"ltdot", "\xe2\x8b\x96"}, ++ {"lthree", "\xe2\x8b\x8b"}, ++ {"ltimes", "\xe2\x8b\x89"}, ++ {"ltlarr", "\xe2\xa5\xb6"}, ++ {"ltquest", "\xe2\xa9\xbb"}, ++ {"ltrPar", "\xe2\xa6\x96"}, ++ {"ltri", "\xe2\x97\x83"}, ++ {"ltrie", "\xe2\x8a\xb4"}, ++ {"ltrif", "\xe2\x97\x82"}, ++ {"lurdshar", "\xe2\xa5\x8a"}, ++ {"luruhar", "\xe2\xa5\xa6"}, ++ {"lvertneqq", "\xe2\x89\xa8\xef\xb8\x80"}, ++ {"lvnE", "\xe2\x89\xa8\xef\xb8\x80"}, ++ {"mDDot", "\xe2\x88\xba"}, ++ {"macr", "\xc2\xaf"}, ++ {"male", "\xe2\x99\x82"}, ++ {"malt", "\xe2\x9c\xa0"}, ++ {"maltese", "\xe2\x9c\xa0"}, ++ {"map", "\xe2\x86\xa6"}, ++ {"mapsto", "\xe2\x86\xa6"}, ++ {"mapstodown", "\xe2\x86\xa7"}, ++ {"mapstoleft", "\xe2\x86\xa4"}, ++ {"mapstoup", "\xe2\x86\xa5"}, ++ {"marker", "\xe2\x96\xae"}, ++ {"mcomma", "\xe2\xa8\xa9"}, ++ {"mcy", "\xd0\xbc"}, ++ {"mdash", "\xe2\x80\x94"}, ++ {"measuredangle", "\xe2\x88\xa1"}, ++ {"mfr", "\xf0\x9d\x94\xaa"}, ++ {"mho", "\xe2\x84\xa7"}, ++ {"micro", "\xc2\xb5"}, ++ {"mid", "\xe2\x88\xa3"}, ++ {"midast", "\x2a"}, ++ {"midcir", "\xe2\xab\xb0"}, ++ {"middot", "\xc2\xb7"}, ++ {"minus", "\xe2\x88\x92"}, ++ {"minusb", "\xe2\x8a\x9f"}, ++ {"minusd", "\xe2\x88\xb8"}, ++ {"minusdu", "\xe2\xa8\xaa"}, ++ {"mlcp", "\xe2\xab\x9b"}, ++ {"mldr", "\xe2\x80\xa6"}, ++ {"mnplus", "\xe2\x88\x93"}, ++ {"models", "\xe2\x8a\xa7"}, ++ {"mopf", "\xf0\x9d\x95\x9e"}, ++ {"mp", "\xe2\x88\x93"}, ++ {"mscr", "\xf0\x9d\x93\x82"}, ++ {"mstpos", "\xe2\x88\xbe"}, ++ {"mu", "\xce\xbc"}, ++ {"multimap", "\xe2\x8a\xb8"}, ++ {"mumap", "\xe2\x8a\xb8"}, ++ {"nGg", "\xe2\x8b\x99\xcc\xb8"}, ++ {"nGt", "\xe2\x89\xab\xe2\x83\x92"}, ++ {"nGtv", "\xe2\x89\xab\xcc\xb8"}, ++ {"nLeftarrow", "\xe2\x87\x8d"}, ++ {"nLeftrightarrow", "\xe2\x87\x8e"}, ++ {"nLl", "\xe2\x8b\x98\xcc\xb8"}, ++ {"nLt", "\xe2\x89\xaa\xe2\x83\x92"}, ++ {"nLtv", "\xe2\x89\xaa\xcc\xb8"}, ++ {"nRightarrow", "\xe2\x87\x8f"}, ++ {"nVDash", "\xe2\x8a\xaf"}, ++ {"nVdash", "\xe2\x8a\xae"}, ++ {"nabla", "\xe2\x88\x87"}, ++ {"nacute", "\xc5\x84"}, ++ {"nang", "\xe2\x88\xa0\xe2\x83\x92"}, ++ {"nap", "\xe2\x89\x89"}, ++ {"napE", "\xe2\xa9\xb0\xcc\xb8"}, ++ {"napid", "\xe2\x89\x8b\xcc\xb8"}, ++ {"napos", "\xc5\x89"}, ++ {"napprox", "\xe2\x89\x89"}, ++ {"natur", "\xe2\x99\xae"}, ++ {"natural", "\xe2\x99\xae"}, ++ {"naturals", "\xe2\x84\x95"}, ++ {"nbsp", "\xc2\xa0"}, ++ {"nbump", "\xe2\x89\x8e\xcc\xb8"}, ++ {"nbumpe", "\xe2\x89\x8f\xcc\xb8"}, ++ {"ncap", "\xe2\xa9\x83"}, ++ {"ncaron", "\xc5\x88"}, ++ {"ncedil", "\xc5\x86"}, ++ {"ncong", "\xe2\x89\x87"}, ++ {"ncongdot", "\xe2\xa9\xad\xcc\xb8"}, ++ {"ncup", "\xe2\xa9\x82"}, ++ {"ncy", "\xd0\xbd"}, ++ {"ndash", "\xe2\x80\x93"}, ++ {"ne", "\xe2\x89\xa0"}, ++ {"neArr", "\xe2\x87\x97"}, ++ {"nearhk", "\xe2\xa4\xa4"}, ++ {"nearr", "\xe2\x86\x97"}, ++ {"nearrow", "\xe2\x86\x97"}, ++ {"nedot", "\xe2\x89\x90\xcc\xb8"}, ++ {"nequiv", "\xe2\x89\xa2"}, ++ {"nesear", "\xe2\xa4\xa8"}, ++ {"nesim", "\xe2\x89\x82\xcc\xb8"}, ++ {"nexist", "\xe2\x88\x84"}, ++ {"nexists", "\xe2\x88\x84"}, ++ {"nfr", "\xf0\x9d\x94\xab"}, ++ {"ngE", "\xe2\x89\xa7\xcc\xb8"}, ++ {"nge", "\xe2\x89\xb1"}, ++ {"ngeq", "\xe2\x89\xb1"}, ++ {"ngeqq", "\xe2\x89\xa7\xcc\xb8"}, ++ {"ngeqslant", "\xe2\xa9\xbe\xcc\xb8"}, ++ {"nges", "\xe2\xa9\xbe\xcc\xb8"}, ++ {"ngsim", "\xe2\x89\xb5"}, ++ {"ngt", "\xe2\x89\xaf"}, ++ {"ngtr", "\xe2\x89\xaf"}, ++ {"nhArr", "\xe2\x87\x8e"}, ++ {"nharr", "\xe2\x86\xae"}, ++ {"nhpar", "\xe2\xab\xb2"}, ++ {"ni", "\xe2\x88\x8b"}, ++ {"nis", "\xe2\x8b\xbc"}, ++ {"nisd", "\xe2\x8b\xba"}, ++ {"niv", "\xe2\x88\x8b"}, ++ {"njcy", "\xd1\x9a"}, ++ {"nlArr", "\xe2\x87\x8d"}, ++ {"nlE", "\xe2\x89\xa6\xcc\xb8"}, ++ {"nlarr", "\xe2\x86\x9a"}, ++ {"nldr", "\xe2\x80\xa5"}, ++ {"nle", "\xe2\x89\xb0"}, ++ {"nleftarrow", "\xe2\x86\x9a"}, ++ {"nleftrightarrow", "\xe2\x86\xae"}, ++ {"nleq", "\xe2\x89\xb0"}, ++ {"nleqq", "\xe2\x89\xa6\xcc\xb8"}, ++ {"nleqslant", "\xe2\xa9\xbd\xcc\xb8"}, ++ {"nles", "\xe2\xa9\xbd\xcc\xb8"}, ++ {"nless", "\xe2\x89\xae"}, ++ {"nlsim", "\xe2\x89\xb4"}, ++ {"nlt", "\xe2\x89\xae"}, ++ {"nltri", "\xe2\x8b\xaa"}, ++ {"nltrie", "\xe2\x8b\xac"}, ++ {"nmid", "\xe2\x88\xa4"}, ++ {"nopf", "\xf0\x9d\x95\x9f"}, ++ {"not", "\xc2\xac"}, ++ {"notin", "\xe2\x88\x89"}, ++ {"notinE", "\xe2\x8b\xb9\xcc\xb8"}, ++ {"notindot", "\xe2\x8b\xb5\xcc\xb8"}, ++ {"notinva", "\xe2\x88\x89"}, ++ {"notinvb", "\xe2\x8b\xb7"}, ++ {"notinvc", "\xe2\x8b\xb6"}, ++ {"notni", "\xe2\x88\x8c"}, ++ {"notniva", "\xe2\x88\x8c"}, ++ {"notnivb", "\xe2\x8b\xbe"}, ++ {"notnivc", "\xe2\x8b\xbd"}, ++ {"npar", "\xe2\x88\xa6"}, ++ {"nparallel", "\xe2\x88\xa6"}, ++ {"nparsl", "\xe2\xab\xbd\xe2\x83\xa5"}, ++ {"npart", "\xe2\x88\x82\xcc\xb8"}, ++ {"npolint", "\xe2\xa8\x94"}, ++ {"npr", "\xe2\x8a\x80"}, ++ {"nprcue", "\xe2\x8b\xa0"}, ++ {"npre", "\xe2\xaa\xaf\xcc\xb8"}, ++ {"nprec", "\xe2\x8a\x80"}, ++ {"npreceq", "\xe2\xaa\xaf\xcc\xb8"}, ++ {"nrArr", "\xe2\x87\x8f"}, ++ {"nrarr", "\xe2\x86\x9b"}, ++ {"nrarrc", "\xe2\xa4\xb3\xcc\xb8"}, ++ {"nrarrw", "\xe2\x86\x9d\xcc\xb8"}, ++ {"nrightarrow", "\xe2\x86\x9b"}, ++ {"nrtri", "\xe2\x8b\xab"}, ++ {"nrtrie", "\xe2\x8b\xad"}, ++ {"nsc", "\xe2\x8a\x81"}, ++ {"nsccue", "\xe2\x8b\xa1"}, ++ {"nsce", "\xe2\xaa\xb0\xcc\xb8"}, ++ {"nscr", "\xf0\x9d\x93\x83"}, ++ {"nshortmid", "\xe2\x88\xa4"}, ++ {"nshortparallel", "\xe2\x88\xa6"}, ++ {"nsim", "\xe2\x89\x81"}, ++ {"nsime", "\xe2\x89\x84"}, ++ {"nsimeq", "\xe2\x89\x84"}, ++ {"nsmid", "\xe2\x88\xa4"}, ++ {"nspar", "\xe2\x88\xa6"}, ++ {"nsqsube", "\xe2\x8b\xa2"}, ++ {"nsqsupe", "\xe2\x8b\xa3"}, ++ {"nsub", "\xe2\x8a\x84"}, ++ {"nsubE", "\xe2\xab\x85\xcc\xb8"}, ++ {"nsube", "\xe2\x8a\x88"}, ++ {"nsubset", "\xe2\x8a\x82\xe2\x83\x92"}, ++ {"nsubseteq", "\xe2\x8a\x88"}, ++ {"nsubseteqq", "\xe2\xab\x85\xcc\xb8"}, ++ {"nsucc", "\xe2\x8a\x81"}, ++ {"nsucceq", "\xe2\xaa\xb0\xcc\xb8"}, ++ {"nsup", "\xe2\x8a\x85"}, ++ {"nsupE", "\xe2\xab\x86\xcc\xb8"}, ++ {"nsupe", "\xe2\x8a\x89"}, ++ {"nsupset", "\xe2\x8a\x83\xe2\x83\x92"}, ++ {"nsupseteq", "\xe2\x8a\x89"}, ++ {"nsupseteqq", "\xe2\xab\x86\xcc\xb8"}, ++ {"ntgl", "\xe2\x89\xb9"}, ++ {"ntilde", "\xc3\xb1"}, ++ {"ntlg", "\xe2\x89\xb8"}, ++ {"ntriangleleft", "\xe2\x8b\xaa"}, ++ {"ntrianglelefteq", "\xe2\x8b\xac"}, ++ {"ntriangleright", "\xe2\x8b\xab"}, ++ {"ntrianglerighteq", "\xe2\x8b\xad"}, ++ {"nu", "\xce\xbd"}, ++ {"num", "\x23"}, ++ {"numero", "\xe2\x84\x96"}, ++ {"numsp", "\xe2\x80\x87"}, ++ {"nvDash", "\xe2\x8a\xad"}, ++ {"nvHarr", "\xe2\xa4\x84"}, ++ {"nvap", "\xe2\x89\x8d\xe2\x83\x92"}, ++ {"nvdash", "\xe2\x8a\xac"}, ++ {"nvge", "\xe2\x89\xa5\xe2\x83\x92"}, ++ {"nvgt", "\x3e\xe2\x83\x92"}, ++ {"nvinfin", "\xe2\xa7\x9e"}, ++ {"nvlArr", "\xe2\xa4\x82"}, ++ {"nvle", "\xe2\x89\xa4\xe2\x83\x92"}, ++ {"nvlt", "\x3c\xe2\x83\x92"}, ++ {"nvltrie", "\xe2\x8a\xb4\xe2\x83\x92"}, ++ {"nvrArr", "\xe2\xa4\x83"}, ++ {"nvrtrie", "\xe2\x8a\xb5\xe2\x83\x92"}, ++ {"nvsim", "\xe2\x88\xbc\xe2\x83\x92"}, ++ {"nwArr", "\xe2\x87\x96"}, ++ {"nwarhk", "\xe2\xa4\xa3"}, ++ {"nwarr", "\xe2\x86\x96"}, ++ {"nwarrow", "\xe2\x86\x96"}, ++ {"nwnear", "\xe2\xa4\xa7"}, ++ {"oS", "\xe2\x93\x88"}, ++ {"oacute", "\xc3\xb3"}, ++ {"oast", "\xe2\x8a\x9b"}, ++ {"ocir", "\xe2\x8a\x9a"}, ++ {"ocirc", "\xc3\xb4"}, ++ {"ocy", "\xd0\xbe"}, ++ {"odash", "\xe2\x8a\x9d"}, ++ {"odblac", "\xc5\x91"}, ++ {"odiv", "\xe2\xa8\xb8"}, ++ {"odot", "\xe2\x8a\x99"}, ++ {"odsold", "\xe2\xa6\xbc"}, ++ {"oelig", "\xc5\x93"}, ++ {"ofcir", "\xe2\xa6\xbf"}, ++ {"ofr", "\xf0\x9d\x94\xac"}, ++ {"ogon", "\xcb\x9b"}, ++ {"ograve", "\xc3\xb2"}, ++ {"ogt", "\xe2\xa7\x81"}, ++ {"ohbar", "\xe2\xa6\xb5"}, ++ {"ohm", "\xce\xa9"}, ++ {"oint", "\xe2\x88\xae"}, ++ {"olarr", "\xe2\x86\xba"}, ++ {"olcir", "\xe2\xa6\xbe"}, ++ {"olcross", "\xe2\xa6\xbb"}, ++ {"oline", "\xe2\x80\xbe"}, ++ {"olt", "\xe2\xa7\x80"}, ++ {"omacr", "\xc5\x8d"}, ++ {"omega", "\xcf\x89"}, ++ {"omicron", "\xce\xbf"}, ++ {"omid", "\xe2\xa6\xb6"}, ++ {"ominus", "\xe2\x8a\x96"}, ++ {"oopf", "\xf0\x9d\x95\xa0"}, ++ {"opar", "\xe2\xa6\xb7"}, ++ {"operp", "\xe2\xa6\xb9"}, ++ {"oplus", "\xe2\x8a\x95"}, ++ {"or", "\xe2\x88\xa8"}, ++ {"orarr", "\xe2\x86\xbb"}, ++ {"ord", "\xe2\xa9\x9d"}, ++ {"order", "\xe2\x84\xb4"}, ++ {"orderof", "\xe2\x84\xb4"}, ++ {"ordf", "\xc2\xaa"}, ++ {"ordm", "\xc2\xba"}, ++ {"origof", "\xe2\x8a\xb6"}, ++ {"oror", "\xe2\xa9\x96"}, ++ {"orslope", "\xe2\xa9\x97"}, ++ {"orv", "\xe2\xa9\x9b"}, ++ {"oscr", "\xe2\x84\xb4"}, ++ {"oslash", "\xc3\xb8"}, ++ {"osol", "\xe2\x8a\x98"}, ++ {"otilde", "\xc3\xb5"}, ++ {"otimes", "\xe2\x8a\x97"}, ++ {"otimesas", "\xe2\xa8\xb6"}, ++ {"ouml", "\xc3\xb6"}, ++ {"ovbar", "\xe2\x8c\xbd"}, ++ {"par", "\xe2\x88\xa5"}, ++ {"para", "\xc2\xb6"}, ++ {"parallel", "\xe2\x88\xa5"}, ++ {"parsim", "\xe2\xab\xb3"}, ++ {"parsl", "\xe2\xab\xbd"}, ++ {"part", "\xe2\x88\x82"}, ++ {"pcy", "\xd0\xbf"}, ++ {"percnt", "\x25"}, ++ {"period", "\x2e"}, ++ {"permil", "\xe2\x80\xb0"}, ++ {"perp", "\xe2\x8a\xa5"}, ++ {"pertenk", "\xe2\x80\xb1"}, ++ {"pfr", "\xf0\x9d\x94\xad"}, ++ {"phi", "\xcf\x86"}, ++ {"phiv", "\xcf\x95"}, ++ {"phmmat", "\xe2\x84\xb3"}, ++ {"phone", "\xe2\x98\x8e"}, ++ {"pi", "\xcf\x80"}, ++ {"pitchfork", "\xe2\x8b\x94"}, ++ {"piv", "\xcf\x96"}, ++ {"planck", "\xe2\x84\x8f"}, ++ {"planckh", "\xe2\x84\x8e"}, ++ {"plankv", "\xe2\x84\x8f"}, ++ {"plus", "\x2b"}, ++ {"plusacir", "\xe2\xa8\xa3"}, ++ {"plusb", "\xe2\x8a\x9e"}, ++ {"pluscir", "\xe2\xa8\xa2"}, ++ {"plusdo", "\xe2\x88\x94"}, ++ {"plusdu", "\xe2\xa8\xa5"}, ++ {"pluse", "\xe2\xa9\xb2"}, ++ {"plusmn", "\xc2\xb1"}, ++ {"plussim", "\xe2\xa8\xa6"}, ++ {"plustwo", "\xe2\xa8\xa7"}, ++ {"pm", "\xc2\xb1"}, ++ {"pointint", "\xe2\xa8\x95"}, ++ {"popf", "\xf0\x9d\x95\xa1"}, ++ {"pound", "\xc2\xa3"}, ++ {"pr", "\xe2\x89\xba"}, ++ {"prE", "\xe2\xaa\xb3"}, ++ {"prap", "\xe2\xaa\xb7"}, ++ {"prcue", "\xe2\x89\xbc"}, ++ {"pre", "\xe2\xaa\xaf"}, ++ {"prec", "\xe2\x89\xba"}, ++ {"precapprox", "\xe2\xaa\xb7"}, ++ {"preccurlyeq", "\xe2\x89\xbc"}, ++ {"preceq", "\xe2\xaa\xaf"}, ++ {"precnapprox", "\xe2\xaa\xb9"}, ++ {"precneqq", "\xe2\xaa\xb5"}, ++ {"precnsim", "\xe2\x8b\xa8"}, ++ {"precsim", "\xe2\x89\xbe"}, ++ {"prime", "\xe2\x80\xb2"}, ++ {"primes", "\xe2\x84\x99"}, ++ {"prnE", "\xe2\xaa\xb5"}, ++ {"prnap", "\xe2\xaa\xb9"}, ++ {"prnsim", "\xe2\x8b\xa8"}, ++ {"prod", "\xe2\x88\x8f"}, ++ {"profalar", "\xe2\x8c\xae"}, ++ {"profline", "\xe2\x8c\x92"}, ++ {"profsurf", "\xe2\x8c\x93"}, ++ {"prop", "\xe2\x88\x9d"}, ++ {"propto", "\xe2\x88\x9d"}, ++ {"prsim", "\xe2\x89\xbe"}, ++ {"prurel", "\xe2\x8a\xb0"}, ++ {"pscr", "\xf0\x9d\x93\x85"}, ++ {"psi", "\xcf\x88"}, ++ {"puncsp", "\xe2\x80\x88"}, ++ {"qfr", "\xf0\x9d\x94\xae"}, ++ {"qint", "\xe2\xa8\x8c"}, ++ {"qopf", "\xf0\x9d\x95\xa2"}, ++ {"qprime", "\xe2\x81\x97"}, ++ {"qscr", "\xf0\x9d\x93\x86"}, ++ {"quaternions", "\xe2\x84\x8d"}, ++ {"quatint", "\xe2\xa8\x96"}, ++ {"quest", "\x3f"}, ++ {"questeq", "\xe2\x89\x9f"}, ++ {"quot", "\x22"}, ++ {"rAarr", "\xe2\x87\x9b"}, ++ {"rArr", "\xe2\x87\x92"}, ++ {"rAtail", "\xe2\xa4\x9c"}, ++ {"rBarr", "\xe2\xa4\x8f"}, ++ {"rHar", "\xe2\xa5\xa4"}, ++ {"race", "\xe2\x88\xbd\xcc\xb1"}, ++ {"racute", "\xc5\x95"}, ++ {"radic", "\xe2\x88\x9a"}, ++ {"raemptyv", "\xe2\xa6\xb3"}, ++ {"rang", "\xe2\x9f\xa9"}, ++ {"rangd", "\xe2\xa6\x92"}, ++ {"range", "\xe2\xa6\xa5"}, ++ {"rangle", "\xe2\x9f\xa9"}, ++ {"raquo", "\xc2\xbb"}, ++ {"rarr", "\xe2\x86\x92"}, ++ {"rarrap", "\xe2\xa5\xb5"}, ++ {"rarrb", "\xe2\x87\xa5"}, ++ {"rarrbfs", "\xe2\xa4\xa0"}, ++ {"rarrc", "\xe2\xa4\xb3"}, ++ {"rarrfs", "\xe2\xa4\x9e"}, ++ {"rarrhk", "\xe2\x86\xaa"}, ++ {"rarrlp", "\xe2\x86\xac"}, ++ {"rarrpl", "\xe2\xa5\x85"}, ++ {"rarrsim", "\xe2\xa5\xb4"}, ++ {"rarrtl", "\xe2\x86\xa3"}, ++ {"rarrw", "\xe2\x86\x9d"}, ++ {"ratail", "\xe2\xa4\x9a"}, ++ {"ratio", "\xe2\x88\xb6"}, ++ {"rationals", "\xe2\x84\x9a"}, ++ {"rbarr", "\xe2\xa4\x8d"}, ++ {"rbbrk", "\xe2\x9d\xb3"}, ++ {"rbrace", "\x7d"}, ++ {"rbrack", "\x5d"}, ++ {"rbrke", "\xe2\xa6\x8c"}, ++ {"rbrksld", "\xe2\xa6\x8e"}, ++ {"rbrkslu", "\xe2\xa6\x90"}, ++ {"rcaron", "\xc5\x99"}, ++ {"rcedil", "\xc5\x97"}, ++ {"rceil", "\xe2\x8c\x89"}, ++ {"rcub", "\x7d"}, ++ {"rcy", "\xd1\x80"}, ++ {"rdca", "\xe2\xa4\xb7"}, ++ {"rdldhar", "\xe2\xa5\xa9"}, ++ {"rdquo", "\xe2\x80\x9d"}, ++ {"rdquor", "\xe2\x80\x9d"}, ++ {"rdsh", "\xe2\x86\xb3"}, ++ {"real", "\xe2\x84\x9c"}, ++ {"realine", "\xe2\x84\x9b"}, ++ {"realpart", "\xe2\x84\x9c"}, ++ {"reals", "\xe2\x84\x9d"}, ++ {"rect", "\xe2\x96\xad"}, ++ {"reg", "\xc2\xae"}, ++ {"rfisht", "\xe2\xa5\xbd"}, ++ {"rfloor", "\xe2\x8c\x8b"}, ++ {"rfr", "\xf0\x9d\x94\xaf"}, ++ {"rhard", "\xe2\x87\x81"}, ++ {"rharu", "\xe2\x87\x80"}, ++ {"rharul", "\xe2\xa5\xac"}, ++ {"rho", "\xcf\x81"}, ++ {"rhov", "\xcf\xb1"}, ++ {"rightarrow", "\xe2\x86\x92"}, ++ {"rightarrowtail", "\xe2\x86\xa3"}, ++ {"rightharpoondown", "\xe2\x87\x81"}, ++ {"rightharpoonup", "\xe2\x87\x80"}, ++ {"rightleftarrows", "\xe2\x87\x84"}, ++ {"rightleftharpoons", "\xe2\x87\x8c"}, ++ {"rightrightarrows", "\xe2\x87\x89"}, ++ {"rightsquigarrow", "\xe2\x86\x9d"}, ++ {"rightthreetimes", "\xe2\x8b\x8c"}, ++ {"ring", "\xcb\x9a"}, ++ {"risingdotseq", "\xe2\x89\x93"}, ++ {"rlarr", "\xe2\x87\x84"}, ++ {"rlhar", "\xe2\x87\x8c"}, ++ {"rlm", "\xe2\x80\x8f"}, ++ {"rmoust", "\xe2\x8e\xb1"}, ++ {"rmoustache", "\xe2\x8e\xb1"}, ++ {"rnmid", "\xe2\xab\xae"}, ++ {"roang", "\xe2\x9f\xad"}, ++ {"roarr", "\xe2\x87\xbe"}, ++ {"robrk", "\xe2\x9f\xa7"}, ++ {"ropar", "\xe2\xa6\x86"}, ++ {"ropf", "\xf0\x9d\x95\xa3"}, ++ {"roplus", "\xe2\xa8\xae"}, ++ {"rotimes", "\xe2\xa8\xb5"}, ++ {"rpar", "\x29"}, ++ {"rpargt", "\xe2\xa6\x94"}, ++ {"rppolint", "\xe2\xa8\x92"}, ++ {"rrarr", "\xe2\x87\x89"}, ++ {"rsaquo", "\xe2\x80\xba"}, ++ {"rscr", "\xf0\x9d\x93\x87"}, ++ {"rsh", "\xe2\x86\xb1"}, ++ {"rsqb", "\x5d"}, ++ {"rsquo", "\xe2\x80\x99"}, ++ {"rsquor", "\xe2\x80\x99"}, ++ {"rthree", "\xe2\x8b\x8c"}, ++ {"rtimes", "\xe2\x8b\x8a"}, ++ {"rtri", "\xe2\x96\xb9"}, ++ {"rtrie", "\xe2\x8a\xb5"}, ++ {"rtrif", "\xe2\x96\xb8"}, ++ {"rtriltri", "\xe2\xa7\x8e"}, ++ {"ruluhar", "\xe2\xa5\xa8"}, ++ {"rx", "\xe2\x84\x9e"}, ++ {"sacute", "\xc5\x9b"}, ++ {"sbquo", "\xe2\x80\x9a"}, ++ {"sc", "\xe2\x89\xbb"}, ++ {"scE", "\xe2\xaa\xb4"}, ++ {"scap", "\xe2\xaa\xb8"}, ++ {"scaron", "\xc5\xa1"}, ++ {"sccue", "\xe2\x89\xbd"}, ++ {"sce", "\xe2\xaa\xb0"}, ++ {"scedil", "\xc5\x9f"}, ++ {"scirc", "\xc5\x9d"}, ++ {"scnE", "\xe2\xaa\xb6"}, ++ {"scnap", "\xe2\xaa\xba"}, ++ {"scnsim", "\xe2\x8b\xa9"}, ++ {"scpolint", "\xe2\xa8\x93"}, ++ {"scsim", "\xe2\x89\xbf"}, ++ {"scy", "\xd1\x81"}, ++ {"sdot", "\xe2\x8b\x85"}, ++ {"sdotb", "\xe2\x8a\xa1"}, ++ {"sdote", "\xe2\xa9\xa6"}, ++ {"seArr", "\xe2\x87\x98"}, ++ {"searhk", "\xe2\xa4\xa5"}, ++ {"searr", "\xe2\x86\x98"}, ++ {"searrow", "\xe2\x86\x98"}, ++ {"sect", "\xc2\xa7"}, ++ {"semi", "\x3b"}, ++ {"seswar", "\xe2\xa4\xa9"}, ++ {"setminus", "\xe2\x88\x96"}, ++ {"setmn", "\xe2\x88\x96"}, ++ {"sext", "\xe2\x9c\xb6"}, ++ {"sfr", "\xf0\x9d\x94\xb0"}, ++ {"sfrown", "\xe2\x8c\xa2"}, ++ {"sharp", "\xe2\x99\xaf"}, ++ {"shchcy", "\xd1\x89"}, ++ {"shcy", "\xd1\x88"}, ++ {"shortmid", "\xe2\x88\xa3"}, ++ {"shortparallel", "\xe2\x88\xa5"}, ++ {"shy", "\xc2\xad"}, ++ {"sigma", "\xcf\x83"}, ++ {"sigmaf", "\xcf\x82"}, ++ {"sigmav", "\xcf\x82"}, ++ {"sim", "\xe2\x88\xbc"}, ++ {"simdot", "\xe2\xa9\xaa"}, ++ {"sime", "\xe2\x89\x83"}, ++ {"simeq", "\xe2\x89\x83"}, ++ {"simg", "\xe2\xaa\x9e"}, ++ {"simgE", "\xe2\xaa\xa0"}, ++ {"siml", "\xe2\xaa\x9d"}, ++ {"simlE", "\xe2\xaa\x9f"}, ++ {"simne", "\xe2\x89\x86"}, ++ {"simplus", "\xe2\xa8\xa4"}, ++ {"simrarr", "\xe2\xa5\xb2"}, ++ {"slarr", "\xe2\x86\x90"}, ++ {"smallsetminus", "\xe2\x88\x96"}, ++ {"smashp", "\xe2\xa8\xb3"}, ++ {"smeparsl", "\xe2\xa7\xa4"}, ++ {"smid", "\xe2\x88\xa3"}, ++ {"smile", "\xe2\x8c\xa3"}, ++ {"smt", "\xe2\xaa\xaa"}, ++ {"smte", "\xe2\xaa\xac"}, ++ {"smtes", "\xe2\xaa\xac\xef\xb8\x80"}, ++ {"softcy", "\xd1\x8c"}, ++ {"sol", "\x2f"}, ++ {"solb", "\xe2\xa7\x84"}, ++ {"solbar", "\xe2\x8c\xbf"}, ++ {"sopf", "\xf0\x9d\x95\xa4"}, ++ {"spades", "\xe2\x99\xa0"}, ++ {"spadesuit", "\xe2\x99\xa0"}, ++ {"spar", "\xe2\x88\xa5"}, ++ {"sqcap", "\xe2\x8a\x93"}, ++ {"sqcaps", "\xe2\x8a\x93\xef\xb8\x80"}, ++ {"sqcup", "\xe2\x8a\x94"}, ++ {"sqcups", "\xe2\x8a\x94\xef\xb8\x80"}, ++ {"sqsub", "\xe2\x8a\x8f"}, ++ {"sqsube", "\xe2\x8a\x91"}, ++ {"sqsubset", "\xe2\x8a\x8f"}, ++ {"sqsubseteq", "\xe2\x8a\x91"}, ++ {"sqsup", "\xe2\x8a\x90"}, ++ {"sqsupe", "\xe2\x8a\x92"}, ++ {"sqsupset", "\xe2\x8a\x90"}, ++ {"sqsupseteq", "\xe2\x8a\x92"}, ++ {"squ", "\xe2\x96\xa1"}, ++ {"square", "\xe2\x96\xa1"}, ++ {"squarf", "\xe2\x96\xaa"}, ++ {"squf", "\xe2\x96\xaa"}, ++ {"srarr", "\xe2\x86\x92"}, ++ {"sscr", "\xf0\x9d\x93\x88"}, ++ {"ssetmn", "\xe2\x88\x96"}, ++ {"ssmile", "\xe2\x8c\xa3"}, ++ {"sstarf", "\xe2\x8b\x86"}, ++ {"star", "\xe2\x98\x86"}, ++ {"starf", "\xe2\x98\x85"}, ++ {"straightepsilon", "\xcf\xb5"}, ++ {"straightphi", "\xcf\x95"}, ++ {"strns", "\xc2\xaf"}, ++ {"sub", "\xe2\x8a\x82"}, ++ {"subE", "\xe2\xab\x85"}, ++ {"subdot", "\xe2\xaa\xbd"}, ++ {"sube", "\xe2\x8a\x86"}, ++ {"subedot", "\xe2\xab\x83"}, ++ {"submult", "\xe2\xab\x81"}, ++ {"subnE", "\xe2\xab\x8b"}, ++ {"subne", "\xe2\x8a\x8a"}, ++ {"subplus", "\xe2\xaa\xbf"}, ++ {"subrarr", "\xe2\xa5\xb9"}, ++ {"subset", "\xe2\x8a\x82"}, ++ {"subseteq", "\xe2\x8a\x86"}, ++ {"subseteqq", "\xe2\xab\x85"}, ++ {"subsetneq", "\xe2\x8a\x8a"}, ++ {"subsetneqq", "\xe2\xab\x8b"}, ++ {"subsim", "\xe2\xab\x87"}, ++ {"subsub", "\xe2\xab\x95"}, ++ {"subsup", "\xe2\xab\x93"}, ++ {"succ", "\xe2\x89\xbb"}, ++ {"succapprox", "\xe2\xaa\xb8"}, ++ {"succcurlyeq", "\xe2\x89\xbd"}, ++ {"succeq", "\xe2\xaa\xb0"}, ++ {"succnapprox", "\xe2\xaa\xba"}, ++ {"succneqq", "\xe2\xaa\xb6"}, ++ {"succnsim", "\xe2\x8b\xa9"}, ++ {"succsim", "\xe2\x89\xbf"}, ++ {"sum", "\xe2\x88\x91"}, ++ {"sung", "\xe2\x99\xaa"}, ++ {"sup", "\xe2\x8a\x83"}, ++ {"sup1", "\xc2\xb9"}, ++ {"sup2", "\xc2\xb2"}, ++ {"sup3", "\xc2\xb3"}, ++ {"supE", "\xe2\xab\x86"}, ++ {"supdot", "\xe2\xaa\xbe"}, ++ {"supdsub", "\xe2\xab\x98"}, ++ {"supe", "\xe2\x8a\x87"}, ++ {"supedot", "\xe2\xab\x84"}, ++ {"suphsol", "\xe2\x9f\x89"}, ++ {"suphsub", "\xe2\xab\x97"}, ++ {"suplarr", "\xe2\xa5\xbb"}, ++ {"supmult", "\xe2\xab\x82"}, ++ {"supnE", "\xe2\xab\x8c"}, ++ {"supne", "\xe2\x8a\x8b"}, ++ {"supplus", "\xe2\xab\x80"}, ++ {"supset", "\xe2\x8a\x83"}, ++ {"supseteq", "\xe2\x8a\x87"}, ++ {"supseteqq", "\xe2\xab\x86"}, ++ {"supsetneq", "\xe2\x8a\x8b"}, ++ {"supsetneqq", "\xe2\xab\x8c"}, ++ {"supsim", "\xe2\xab\x88"}, ++ {"supsub", "\xe2\xab\x94"}, ++ {"supsup", "\xe2\xab\x96"}, ++ {"swArr", "\xe2\x87\x99"}, ++ {"swarhk", "\xe2\xa4\xa6"}, ++ {"swarr", "\xe2\x86\x99"}, ++ {"swarrow", "\xe2\x86\x99"}, ++ {"swnwar", "\xe2\xa4\xaa"}, ++ {"szlig", "\xc3\x9f"}, ++ {"target", "\xe2\x8c\x96"}, ++ {"tau", "\xcf\x84"}, ++ {"tbrk", "\xe2\x8e\xb4"}, ++ {"tcaron", "\xc5\xa5"}, ++ {"tcedil", "\xc5\xa3"}, ++ {"tcy", "\xd1\x82"}, ++ {"tdot", "\xe2\x83\x9b"}, ++ {"telrec", "\xe2\x8c\x95"}, ++ {"tfr", "\xf0\x9d\x94\xb1"}, ++ {"there4", "\xe2\x88\xb4"}, ++ {"therefore", "\xe2\x88\xb4"}, ++ {"theta", "\xce\xb8"}, ++ {"thetasym", "\xcf\x91"}, ++ {"thetav", "\xcf\x91"}, ++ {"thickapprox", "\xe2\x89\x88"}, ++ {"thicksim", "\xe2\x88\xbc"}, ++ {"thinsp", "\xe2\x80\x89"}, ++ {"thkap", "\xe2\x89\x88"}, ++ {"thksim", "\xe2\x88\xbc"}, ++ {"thorn", "\xc3\xbe"}, ++ {"tilde", "\xcb\x9c"}, ++ {"times", "\xc3\x97"}, ++ {"timesb", "\xe2\x8a\xa0"}, ++ {"timesbar", "\xe2\xa8\xb1"}, ++ {"timesd", "\xe2\xa8\xb0"}, ++ {"tint", "\xe2\x88\xad"}, ++ {"toea", "\xe2\xa4\xa8"}, ++ {"top", "\xe2\x8a\xa4"}, ++ {"topbot", "\xe2\x8c\xb6"}, ++ {"topcir", "\xe2\xab\xb1"}, ++ {"topf", "\xf0\x9d\x95\xa5"}, ++ {"topfork", "\xe2\xab\x9a"}, ++ {"tosa", "\xe2\xa4\xa9"}, ++ {"tprime", "\xe2\x80\xb4"}, ++ {"trade", "\xe2\x84\xa2"}, ++ {"triangle", "\xe2\x96\xb5"}, ++ {"triangledown", "\xe2\x96\xbf"}, ++ {"triangleleft", "\xe2\x97\x83"}, ++ {"trianglelefteq", "\xe2\x8a\xb4"}, ++ {"triangleq", "\xe2\x89\x9c"}, ++ {"triangleright", "\xe2\x96\xb9"}, ++ {"trianglerighteq", "\xe2\x8a\xb5"}, ++ {"tridot", "\xe2\x97\xac"}, ++ {"trie", "\xe2\x89\x9c"}, ++ {"triminus", "\xe2\xa8\xba"}, ++ {"triplus", "\xe2\xa8\xb9"}, ++ {"trisb", "\xe2\xa7\x8d"}, ++ {"tritime", "\xe2\xa8\xbb"}, ++ {"trpezium", "\xe2\x8f\xa2"}, ++ {"tscr", "\xf0\x9d\x93\x89"}, ++ {"tscy", "\xd1\x86"}, ++ {"tshcy", "\xd1\x9b"}, ++ {"tstrok", "\xc5\xa7"}, ++ {"twixt", "\xe2\x89\xac"}, ++ {"twoheadleftarrow", "\xe2\x86\x9e"}, ++ {"twoheadrightarrow", "\xe2\x86\xa0"}, ++ {"uArr", "\xe2\x87\x91"}, ++ {"uHar", "\xe2\xa5\xa3"}, ++ {"uacute", "\xc3\xba"}, ++ {"uarr", "\xe2\x86\x91"}, ++ {"ubrcy", "\xd1\x9e"}, ++ {"ubreve", "\xc5\xad"}, ++ {"ucirc", "\xc3\xbb"}, ++ {"ucy", "\xd1\x83"}, ++ {"udarr", "\xe2\x87\x85"}, ++ {"udblac", "\xc5\xb1"}, ++ {"udhar", "\xe2\xa5\xae"}, ++ {"ufisht", "\xe2\xa5\xbe"}, ++ {"ufr", "\xf0\x9d\x94\xb2"}, ++ {"ugrave", "\xc3\xb9"}, ++ {"uharl", "\xe2\x86\xbf"}, ++ {"uharr", "\xe2\x86\xbe"}, ++ {"uhblk", "\xe2\x96\x80"}, ++ {"ulcorn", "\xe2\x8c\x9c"}, ++ {"ulcorner", "\xe2\x8c\x9c"}, ++ {"ulcrop", "\xe2\x8c\x8f"}, ++ {"ultri", "\xe2\x97\xb8"}, ++ {"umacr", "\xc5\xab"}, ++ {"uml", "\xc2\xa8"}, ++ {"uogon", "\xc5\xb3"}, ++ {"uopf", "\xf0\x9d\x95\xa6"}, ++ {"uparrow", "\xe2\x86\x91"}, ++ {"updownarrow", "\xe2\x86\x95"}, ++ {"upharpoonleft", "\xe2\x86\xbf"}, ++ {"upharpoonright", "\xe2\x86\xbe"}, ++ {"uplus", "\xe2\x8a\x8e"}, ++ {"upsi", "\xcf\x85"}, ++ {"upsih", "\xcf\x92"}, ++ {"upsilon", "\xcf\x85"}, ++ {"upuparrows", "\xe2\x87\x88"}, ++ {"urcorn", "\xe2\x8c\x9d"}, ++ {"urcorner", "\xe2\x8c\x9d"}, ++ {"urcrop", "\xe2\x8c\x8e"}, ++ {"uring", "\xc5\xaf"}, ++ {"urtri", "\xe2\x97\xb9"}, ++ {"uscr", "\xf0\x9d\x93\x8a"}, ++ {"utdot", "\xe2\x8b\xb0"}, ++ {"utilde", "\xc5\xa9"}, ++ {"utri", "\xe2\x96\xb5"}, ++ {"utrif", "\xe2\x96\xb4"}, ++ {"uuarr", "\xe2\x87\x88"}, ++ {"uuml", "\xc3\xbc"}, ++ {"uwangle", "\xe2\xa6\xa7"}, ++ {"vArr", "\xe2\x87\x95"}, ++ {"vBar", "\xe2\xab\xa8"}, ++ {"vBarv", "\xe2\xab\xa9"}, ++ {"vDash", "\xe2\x8a\xa8"}, ++ {"vangrt", "\xe2\xa6\x9c"}, ++ {"varepsilon", "\xcf\xb5"}, ++ {"varkappa", "\xcf\xb0"}, ++ {"varnothing", "\xe2\x88\x85"}, ++ {"varphi", "\xcf\x95"}, ++ {"varpi", "\xcf\x96"}, ++ {"varpropto", "\xe2\x88\x9d"}, ++ {"varr", "\xe2\x86\x95"}, ++ {"varrho", "\xcf\xb1"}, ++ {"varsigma", "\xcf\x82"}, ++ {"varsubsetneq", "\xe2\x8a\x8a\xef\xb8\x80"}, ++ {"varsubsetneqq", "\xe2\xab\x8b\xef\xb8\x80"}, ++ {"varsupsetneq", "\xe2\x8a\x8b\xef\xb8\x80"}, ++ {"varsupsetneqq", "\xe2\xab\x8c\xef\xb8\x80"}, ++ {"vartheta", "\xcf\x91"}, ++ {"vartriangleleft", "\xe2\x8a\xb2"}, ++ {"vartriangleright", "\xe2\x8a\xb3"}, ++ {"vcy", "\xd0\xb2"}, ++ {"vdash", "\xe2\x8a\xa2"}, ++ {"vee", "\xe2\x88\xa8"}, ++ {"veebar", "\xe2\x8a\xbb"}, ++ {"veeeq", "\xe2\x89\x9a"}, ++ {"vellip", "\xe2\x8b\xae"}, ++ {"verbar", "\x7c"}, ++ {"vert", "\x7c"}, ++ {"vfr", "\xf0\x9d\x94\xb3"}, ++ {"vltri", "\xe2\x8a\xb2"}, ++ {"vnsub", "\xe2\x8a\x82\xe2\x83\x92"}, ++ {"vnsup", "\xe2\x8a\x83\xe2\x83\x92"}, ++ {"vopf", "\xf0\x9d\x95\xa7"}, ++ {"vprop", "\xe2\x88\x9d"}, ++ {"vrtri", "\xe2\x8a\xb3"}, ++ {"vscr", "\xf0\x9d\x93\x8b"}, ++ {"vsubnE", "\xe2\xab\x8b\xef\xb8\x80"}, ++ {"vsubne", "\xe2\x8a\x8a\xef\xb8\x80"}, ++ {"vsupnE", "\xe2\xab\x8c\xef\xb8\x80"}, ++ {"vsupne", "\xe2\x8a\x8b\xef\xb8\x80"}, ++ {"vzigzag", "\xe2\xa6\x9a"}, ++ {"wcirc", "\xc5\xb5"}, ++ {"wedbar", "\xe2\xa9\x9f"}, ++ {"wedge", "\xe2\x88\xa7"}, ++ {"wedgeq", "\xe2\x89\x99"}, ++ {"weierp", "\xe2\x84\x98"}, ++ {"wfr", "\xf0\x9d\x94\xb4"}, ++ {"wopf", "\xf0\x9d\x95\xa8"}, ++ {"wp", "\xe2\x84\x98"}, ++ {"wr", "\xe2\x89\x80"}, ++ {"wreath", "\xe2\x89\x80"}, ++ {"wscr", "\xf0\x9d\x93\x8c"}, ++ {"xcap", "\xe2\x8b\x82"}, ++ {"xcirc", "\xe2\x97\xaf"}, ++ {"xcup", "\xe2\x8b\x83"}, ++ {"xdtri", "\xe2\x96\xbd"}, ++ {"xfr", "\xf0\x9d\x94\xb5"}, ++ {"xhArr", "\xe2\x9f\xba"}, ++ {"xharr", "\xe2\x9f\xb7"}, ++ {"xi", "\xce\xbe"}, ++ {"xlArr", "\xe2\x9f\xb8"}, ++ {"xlarr", "\xe2\x9f\xb5"}, ++ {"xmap", "\xe2\x9f\xbc"}, ++ {"xnis", "\xe2\x8b\xbb"}, ++ {"xodot", "\xe2\xa8\x80"}, ++ {"xopf", "\xf0\x9d\x95\xa9"}, ++ {"xoplus", "\xe2\xa8\x81"}, ++ {"xotime", "\xe2\xa8\x82"}, ++ {"xrArr", "\xe2\x9f\xb9"}, ++ {"xrarr", "\xe2\x9f\xb6"}, ++ {"xscr", "\xf0\x9d\x93\x8d"}, ++ {"xsqcup", "\xe2\xa8\x86"}, ++ {"xuplus", "\xe2\xa8\x84"}, ++ {"xutri", "\xe2\x96\xb3"}, ++ {"xvee", "\xe2\x8b\x81"}, ++ {"xwedge", "\xe2\x8b\x80"}, ++ {"yacute", "\xc3\xbd"}, ++ {"yacy", "\xd1\x8f"}, ++ {"ycirc", "\xc5\xb7"}, ++ {"ycy", "\xd1\x8b"}, ++ {"yen", "\xc2\xa5"}, ++ {"yfr", "\xf0\x9d\x94\xb6"}, ++ {"yicy", "\xd1\x97"}, ++ {"yopf", "\xf0\x9d\x95\xaa"}, ++ {"yscr", "\xf0\x9d\x93\x8e"}, ++ {"yucy", "\xd1\x8e"}, ++ {"yuml", "\xc3\xbf"}, ++ {"zacute", "\xc5\xba"}, ++ {"zcaron", "\xc5\xbe"}, ++ {"zcy", "\xd0\xb7"}, ++ {"zdot", "\xc5\xbc"}, ++ {"zeetrf", "\xe2\x84\xa8"}, ++ {"zeta", "\xce\xb6"}, ++ {"zfr", "\xf0\x9d\x94\xb7"}, ++ {"zhcy", "\xd0\xb6"}, ++ {"zigrarr", "\xe2\x87\x9d"}, ++ {"zopf", "\xf0\x9d\x95\xab"}, ++ {"zscr", "\xf0\x9d\x93\x8f"}, ++ {"zwj", "\xe2\x80\x8d"}, ++ {"zwnj", "\xe2\x80\x8c"}, ++ ++ {0, 0} ++}; ++ ++#define MAX_ENTITY_NAME_LENGTH 31 ++#define NUM_ENTITIES 2125 ++ ++/* END OF HTML ENTITIES */ ++ ++static const htmlEntity *findEntity(const char *s, int len) { ++ int l = 0; ++ int r = NUM_ENTITIES - 1; ++ while (l <= r) { ++ int m = (l + r) / 2; ++ int cmp = strncmp(s, htmlEntities[m].pzName, len); ++ if (cmp == 0) { ++ return &htmlEntities[m]; ++ } else if (cmp < 0) { ++ r = m - 1; ++ } else { ++ l = m + 1; ++ } ++ } ++ ++ return NULL; ++} ++ ++/* do not include void element here */ ++static const char *azIgnoreTags[] = { ++ "canvas", ++ "math", ++ "noscript", ++ "object", ++ "script", ++ "style", ++ "svg", ++ "template", ++ NULL, ++}; ++ ++struct Fts5HtmlTokenizer { ++ fts5_tokenizer nextTok; ++ Fts5Tokenizer *pNextTokInst; ++}; ++typedef struct Fts5HtmlTokenizer Fts5HtmlTokenizer; ++ ++struct htmlEscape { ++ char *pLengths; ++ char *pPlain; ++ int n; ++}; ++typedef struct htmlEscape htmlEscape; ++ ++struct Fts5HtmlTokenizerContext { ++ int (*xToken)( ++ void *pCtx, ++ int tflags, ++ const char *pToken, ++ int nToken, ++ int iStart, ++ int iEnd ++ ); ++ void *pCtx; ++ htmlEscape *pEscape; ++ ++ /* current position in the plain (unescaped) text, relative to the what is ++ * passed to the xTokenize call to the next tokenizer ++ */ ++ int iPlainCur; ++ ++ /* current position in the original (html) text ++ * this is relative to the original text passed to the xTokenize call to ++ * this tokenizer ++ */ ++ int iOriginalCur; ++}; ++typedef struct Fts5HtmlTokenizerContext Fts5HtmlTokenizerContext; ++ ++static inline int caseInsensitiveCompare(const char *a, const char *b, int n) { ++ for (int i = 0; i < n; i++) { ++ char ca = (char)tolower(a[i]); ++ char cb = (char)tolower(b[i]); ++ int diff = ca - cb; ++ if (diff != 0 || ca == '\0' || cb == '\0') { ++ return diff; ++ } ++ } ++ return 0; ++} ++ ++static inline int hasPrefix(const char *p, int n, const char *prefix) { ++ int len = strlen(prefix); ++ if (n < len) { ++ return 0; ++ } ++ return strncmp(p, prefix, len) == 0; ++} ++ ++static int fts5HtmlTokenizerCreate(void *pCtx, const char **azArg, int nArg, Fts5Tokenizer **ppOut) { ++ int rc = SQLITE_OK; ++ fts5_api *pApi = (fts5_api*)pCtx; ++ Fts5HtmlTokenizer *pRet = NULL; ++ void *pTokCtx = NULL; ++ ++ if (nArg == 0) { ++ return SQLITE_MISUSE; ++ } ++ ++ pRet = sqlite3_malloc(sizeof(*pRet)); ++ if (pRet == NULL) { ++ rc = SQLITE_NOMEM; ++ goto error; ++ } ++ memset(pRet, 0, sizeof(*pRet)); ++ ++ const char *nextTokName = azArg[0]; ++ rc = pApi->xFindTokenizer(pApi, nextTokName, &pTokCtx, &pRet->nextTok); ++ if (rc != SQLITE_OK) { ++ goto error; ++ } ++ ++ rc = pRet->nextTok.xCreate(pTokCtx, azArg + 1, nArg - 1, &pRet->pNextTokInst); ++ if (rc != SQLITE_OK) { ++ goto error; ++ } ++ ++ *ppOut = (Fts5Tokenizer*)pRet; ++ return SQLITE_OK; ++ ++error: ++ if (pRet != NULL) { ++ sqlite3_free(pRet); ++ } ++ return rc; ++} ++ ++static int fts5TokenizeCallback( ++ void *pCtx, ++ int tflags, ++ const char *pToken, ++ int nToken, ++ int iStart, ++ int iEnd ++) { ++ Fts5HtmlTokenizerContext *p = (Fts5HtmlTokenizerContext*)pCtx; ++ htmlEscape *e = p->pEscape; ++ ++ int iActualStart = p->iOriginalCur; ++ // This breaks the trigram tokenizer ++ // if (p->iPlainCur > iStart) { ++ // return SQLITE_ERROR; ++ // } ++ ++ for (int i = p->iPlainCur; i < iStart; i++) { ++ iActualStart += e->pLengths[i]; ++ } ++ int iActualEnd = iActualStart; ++ for (int i = iStart; i < iEnd; i++) { ++ iActualEnd += e->pLengths[i]; ++ } ++ p->iOriginalCur = iActualEnd; ++ p->iPlainCur = iEnd; ++ ++ return p->xToken(p->pCtx, tflags, pToken, nToken, iActualStart, iActualEnd); ++} ++ ++static int parseCodepoint(const char *s, int len) { ++ int code = 0; ++ if (len < 1) { ++ return -1; ++ } ++ if (s[0] == 'x' || s[0] == 'X') { ++ /* hex, e.g. ģ */ ++ for (int i = 1; i < len; i++) { ++ char d = s[i]; ++ code *= 16; ++ if (d >= '0' && d <= '9') { ++ code += d - '0'; ++ } else if (d >= 'a' && d <= 'f') { ++ code += d - 'a' + 10; ++ } else if (d >= 'A' && d <= 'F') { ++ code += d - 'A' + 10; ++ } else { ++ return -1; ++ } ++ } ++ } else { ++ /* decimal, e.g. { */ ++ for (int i = 0; i < len; i++) { ++ char d = s[i]; ++ code *= 10; ++ if (d >= '0' && d <= '9') { ++ code += d - '0'; ++ } else { ++ return -1; ++ } ++ } ++ } ++ return code; ++} ++ ++static void htmlEscapeFree(htmlEscape *p) { ++ if (p != NULL) { ++ if (p->pLengths != NULL) { ++ sqlite3_free(p->pLengths); ++ } ++ if (p->pPlain != NULL) { ++ sqlite3_free(p->pPlain); ++ } ++ sqlite3_free(p); ++ } ++} ++ ++static int htmlUnescape(const char *s, int len, htmlEscape **pOutEscape) { ++ if (len <= 0) { ++ *pOutEscape = NULL; ++ return SQLITE_OK; ++ } ++ int bufLen = len + 16; ++ ++ int rc = SQLITE_OK; ++ htmlEscape *e = sqlite3_malloc(sizeof(*e)); ++ if (e == NULL) { ++ rc = SQLITE_NOMEM; ++ goto end; ++ } ++ memset(e, 0, sizeof(*e)); ++ ++ e->pLengths = sqlite3_malloc(bufLen); ++ if (e->pLengths == NULL) { ++ rc = SQLITE_NOMEM; ++ goto end; ++ } ++ memset(e->pLengths, 0, bufLen); ++ ++ e->pPlain = sqlite3_malloc(bufLen); ++ if (e->pPlain == NULL) { ++ rc = SQLITE_NOMEM; ++ goto end; ++ } ++ memset(e->pPlain, 0, bufLen); ++ ++ const char *p = s; ++ const char *pEmit = s; ++ ++ char *ep = e->pPlain; ++ char *el = e->pLengths; ++ ++#define EMIT(c) do {\ ++ if (ep >= e->pPlain + bufLen) {\ ++ rc = SQLITE_ERROR;\ ++ goto end;\ ++ }\ ++ *ep++ = c;\ ++ *el++ = (p + 1) - pEmit;\ ++ pEmit = p + 1;\ ++} while (0) ++ ++ unsigned long escaped = 0; ++ char buf[MAX_ENTITY_NAME_LENGTH + 4] = {0}; ++ ++ for (; p - s < len; p++) { ++ char c = *p; ++ if (escaped > 0) { ++ if (!isalnum(c) && c != '#') { ++ if (buf[1] == '#') { ++ /* numeric escape, buf: � or � */ ++ int code = parseCodepoint(buf + 2, escaped - 2); ++ /* assume code is a Unicode code point, encode into UTF-8 */ ++ if (code < 0) { ++ /* invalid escape, */ ++ } else if (code < 0x80) { ++ EMIT(code); ++ } else if (code < 0x800) { ++ EMIT(0xC0 | (code >> 6)); ++ EMIT(0x80 | (code & 0x3F)); ++ } else if (code < 0x10000) { ++ EMIT(0xE0 | (code >> 12)); ++ EMIT(0x80 | ((code >> 6) & 0x3F)); ++ EMIT(0x80 | (code & 0x3F)); ++ } else if (code < 0x110000) { ++ EMIT(0xF0 | (code >> 18)); ++ EMIT(0x80 | ((code >> 12) & 0x3F)); ++ EMIT(0x80 | ((code >> 6) & 0x3F)); ++ EMIT(0x80 | (code & 0x3F)); ++ } else { ++ /* invalid escape, ignore */ ++ } ++ } else { ++ /* named escape, buf: & */ ++ const htmlEntity *entity = findEntity(buf + 1, escaped - 1); ++ if (entity != NULL) { ++ const char *pEntity = entity->pzUtf8; ++ while (*pEntity != '\0') { ++ EMIT(*pEntity); ++ pEntity++; ++ } ++ } else { ++ /* invalid escape, ignore */ ++ } ++ } ++ if (c != ';') { ++ /* unclosed entity */ ++ EMIT(c); ++ } ++ escaped = 0; ++ } else { ++ if (escaped < sizeof(buf)) { ++ buf[escaped++] = c; ++ } ++ } ++ } else { ++ /* not escaped */ ++ if (c == '&') { ++ escaped = 0; ++ memset(buf, 0, sizeof(buf)); ++ buf[escaped++] = c; ++ } else { ++ EMIT(c); ++ } ++ } ++ } ++ ++ e->n = ep - e->pPlain; ++ ++ *pOutEscape = e; ++ return rc; ++ ++#undef EMIT ++end: ++ htmlEscapeFree(e); ++ ++ *pOutEscape = e; ++ return rc; ++} ++ ++static int fts5HtmlTokenizerTokenize( ++ Fts5Tokenizer *pTokenizer, ++ void *pCtx, ++ int flags, ++ const char *pText, ++ int nText, ++ int (*xToken)( ++ void *pCtx, ++ int tflags, ++ const char *pToken, ++ int nToken, ++ int iStart, ++ int iEnd ++ ) ++) { ++ int rc; ++ Fts5HtmlTokenizer *p = (Fts5HtmlTokenizer*)pTokenizer; ++ ++ // states ++ const char *pzCurIgnoreTag = NULL; ++ ++ // iterate over the tokens ++ const char *pPrev = pText; ++ const char *pCur = pText; ++ const char *pEnd = pText + nText; ++ ++ while (1) { ++ ++#define STEP(n) do {\ ++ if (pCur + n >= pEnd) { \ ++ return SQLITE_OK; \ ++ } \ ++ pCur += n; \ ++} while (0) ++ ++ /* find the next tag */ ++ while (*pCur != '<' && pCur < pEnd) { ++ pCur++; ++ } ++ ++ /* current is '<' or end of text */ ++ if (pzCurIgnoreTag == NULL && pCur > pPrev) { ++ htmlEscape *pEscape = NULL; ++ rc = htmlUnescape(pPrev, pCur - pPrev, &pEscape); ++ if (rc != SQLITE_OK) { ++ return rc; ++ } ++ Fts5HtmlTokenizerContext ctx = { ++ .xToken = xToken, ++ .pCtx = pCtx, ++ .pEscape = pEscape, ++ .iPlainCur = 0, ++ .iOriginalCur = pPrev - pText, ++ }; ++ /* emit the text token */ ++ rc = p->nextTok.xTokenize(p->pNextTokInst, &ctx, flags, pEscape->pPlain, pEscape->n, fts5TokenizeCallback); ++ htmlEscapeFree(pEscape); ++ if (rc != SQLITE_OK) { ++ return rc; ++ } ++ } ++ STEP(1); ++ ++ /* check for comment */ ++ if (hasPrefix(pCur, pEnd - pCur, "!--")) { ++ STEP(3); ++ while (!hasPrefix(pCur, pEnd - pCur, "-->")) { ++ STEP(1); ++ } ++ STEP(3); ++ continue; ++ } ++ ++ /* parse the tag */ ++ int iTagType = 0; /* 0: self-closing, 1: start tag, 2: end tag */ ++ const char *pTagName; ++ int nTagName; ++ if (*pCur == '/') { /* ') { ++ STEP(1); ++ } ++ nTagName = pCur - pTagName; ++ while (*pCur != '>') { ++ STEP(1); ++ } ++ if (*(pCur - 1) == '/') { ++ iTagType = 0; ++ } ++ ++ /* check if tag is ignored */ ++ if (pzCurIgnoreTag == NULL && iTagType == 1) { ++ for (int i = 0; azIgnoreTags[i] != NULL; i++) { ++ if (caseInsensitiveCompare(pTagName, azIgnoreTags[i], nTagName) == 0) { ++ pzCurIgnoreTag = azIgnoreTags[i]; ++ break; ++ } ++ } ++ } else if (pzCurIgnoreTag != NULL && iTagType == 2) { ++ if (caseInsensitiveCompare(pTagName, pzCurIgnoreTag, nTagName) == 0) { ++ pzCurIgnoreTag = NULL; ++ } ++ } ++ ++ /* tag ended */ ++ STEP(1); ++ pPrev = pCur; ++ ++#undef STEP ++ ++ } ++ ++ return SQLITE_OK; ++} ++ ++static void fts5HtmlTokenizerDelete(Fts5Tokenizer *pTokenizer) { ++ Fts5HtmlTokenizer *p = (Fts5HtmlTokenizer*)pTokenizer; ++ p->nextTok.xDelete(p->pNextTokInst); ++ sqlite3_free(p); ++} ++ ++static fts5_api *fts5_api_from_db(sqlite3 *db) { ++ fts5_api *pRet = 0; ++ sqlite3_stmt *pStmt = 0; ++ ++ int version = sqlite3_libversion_number(); ++ if (version >= 3020000) { // current api ++ if (SQLITE_OK == sqlite3_prepare(db, "SELECT fts5(?1)", -1, &pStmt, 0)) { ++ sqlite3_bind_pointer(pStmt, 1, (void *)&pRet, "fts5_api_ptr", NULL); ++ sqlite3_step(pStmt); ++ } ++ sqlite3_finalize(pStmt); ++ } else { // before 3.20 ++ int rc = sqlite3_prepare(db, "SELECT fts5()", -1, &pStmt, 0); ++ if (rc == SQLITE_OK) { ++ if (SQLITE_ROW == sqlite3_step(pStmt) && ++ sizeof(fts5_api *) == sqlite3_column_bytes(pStmt, 0)) { ++ memcpy(&pRet, sqlite3_column_blob(pStmt, 0), sizeof(fts5_api *)); ++ } ++ sqlite3_finalize(pStmt); ++ } ++ } ++ return pRet; ++} ++ ++static int fts5HtmlInit(sqlite3 *db) { ++ fts5_api *pApi; ++ pApi = fts5_api_from_db(db); ++ if (!pApi) { ++ return SQLITE_ERROR; ++ } ++ ++ fts5_tokenizer tok = { ++ .xCreate = fts5HtmlTokenizerCreate, ++ .xTokenize = fts5HtmlTokenizerTokenize, ++ .xDelete = fts5HtmlTokenizerDelete, ++ }; ++ ++ return pApi->xCreateTokenizer(pApi, "html", (void *)pApi, &tok, NULL); ++} ++ ++#ifdef SQLITE_CORE ++SQLITE_PRIVATE int sqlite3Fts5HtmlInit(sqlite3 *db) { ++ return fts5HtmlInit(db); ++} ++#else ++SQLITE_FTS5_HTML_API int ++sqlite3_ftshtml_init(sqlite3 *db, char **error, ++ const sqlite3_api_routines *api) { ++ SQLITE_EXTENSION_INIT2(api); ++ UNUSED_PARAM(error); ++ ++ return fts5HtmlInit(db); ++} ++#endif +diff --git a/node_modules/react-native-quick-sqlite/sqlite3-fts5-html/fts5-html.h b/node_modules/react-native-quick-sqlite/sqlite3-fts5-html/fts5-html.h +new file mode 100755 +index 0000000..ab224e9 +--- /dev/null ++++ b/node_modules/react-native-quick-sqlite/sqlite3-fts5-html/fts5-html.h +@@ -0,0 +1,41 @@ ++#ifndef SQLITE_FTS5_HTML_H ++#define SQLITE_FTS5_HTML_H ++ ++#ifndef SQLITE_CORE ++#include "sqlite3ext.h" ++#else ++#include "sqlite3.h" ++#endif ++ ++#ifndef SQLITE_PRIVATE ++#define SQLITE_PRIVATE static ++#endif ++ ++#ifdef SQLITE_FTS5_HTML_STATIC ++#define SQLITE_FTS5_HTML_API ++#else ++#ifdef _WIN32 ++#define SQLITE_FTS5_HTML_API __declspec(dllexport) ++#else ++#define SQLITE_FTS5_HTML_API ++#endif ++#endif ++ ++#ifdef __cplusplus ++extern "C" { ++#endif ++ ++#ifdef SQLITE_CORE ++SQLITE_PRIVATE int sqlite3Fts5HtmlInit(sqlite3 *db); ++#else ++SQLITE_FTS5_HTML_API int ++sqlite3_ftshtml_init(sqlite3 *db, char **pzErrMsg, ++ const sqlite3_api_routines *pApi); ++ ++#endif ++ ++#ifdef __cplusplus ++} /* end of the 'extern "C"' block */ ++#endif ++ ++#endif /* ifndef SQLITE_FTS5_HTML_H */ +diff --git a/node_modules/react-native-quick-sqlite/sqlite3-fts5-html/fts5-html.test.ts b/node_modules/react-native-quick-sqlite/sqlite3-fts5-html/fts5-html.test.ts +new file mode 100755 +index 0000000..afcf64e +--- /dev/null ++++ b/node_modules/react-native-quick-sqlite/sqlite3-fts5-html/fts5-html.test.ts +@@ -0,0 +1,193 @@ ++/* ++ ** 2024-10-21 ++ ** ++ ** The author disclaims copyright to this source code. In place of ++ ** a legal notice, here is a blessing: ++ ** ++ ** May you do good and not evil. ++ ** May you find forgiveness for yourself and forgive others. ++ ** May you share freely, never taking more than you give. ++ ** ++ */ ++// to run: bun test ++ ++import { Database } from "bun:sqlite"; ++import { test, describe, expect, afterAll, beforeAll } from "bun:test"; ++ ++const EXT = ++ process.platform === "win32" ++ ? ".dll" ++ : process.platform === "darwin" ++ ? ".dylib" ++ : ".so"; ++ ++if (process.platform === "darwin" && process.env.SQLITE_LIB_PATH) ++ Database.setCustomSQLite(process.env.SQLITE_LIB_PATH); ++ ++function initDatabase() { ++ const db = new Database(":memory:"); ++ db.loadExtension(`./dist/fts5${EXT}`); ++ db.loadExtension(`./dist/fts5-html${EXT}`); ++ return db; ++} ++ ++describe("unicode61", () => { ++ const db = initDatabase(); ++ afterAll(() => db.close()); ++ ++ test("1.0", () => { ++ [ ++ `CREATE VIRTUAL TABLE test USING fts5(x, y, tokenize = 'html unicode61 remove_diacritics 1');`, ++ `INSERT INTO test VALUES('a', ' ++ ++ ++ ++ ++ hello world  "asdf" ++ abcd ++ 中文 ++ ++ ++ ');`, ++ `INSERT INTO test VALUES('b', ' ++ ++ ++ ++ Example Domain ++ ++ ++ ++ ++ ++ ++ ++ ++
++

Example Domain

++

This domain is for use in illustrative examples in documents. You may use this ++ domain in literature without prior coordination or asking for permission.

++

More information...

++
++ ++ ++ ');`, ++ ].forEach((stmt) => db.query(stmt).run()); ++ }); ++ ++ const queries = { ++ ignored: 0, ++ hello: 1, ++ "hello world": 1, ++ abcd: 1, ++ 中文: 1, ++ example: 1, ++ domain: 1, ++ information: 1, ++ quot: 0, ++ nbsp: 0, ++ meta: 0, ++ margin: 0, ++ viewport: 0, ++ Helvetica: 0, ++ }; ++ let i = 1; ++ for (const query in queries) { ++ sqlTest( ++ db, ++ `1.${i++}.${query}`, ++ `SELECT count(*) as res FROM test WHERE test MATCH '${query}'`, ++ [], ++ [queries[query]], ++ ); ++ } ++}); ++ ++describe("trigram", () => { ++ const db = initDatabase(); ++ afterAll(() => db.close()); ++ ++ test("1.0", () => { ++ [ ++ `CREATE VIRTUAL TABLE test USING fts5(x, y, tokenize = 'html trigram remove_diacritics 1');`, ++ `INSERT INTO test VALUES('a', '

This domain is for use in illustrative examples in documents. You may use this

');`, ++ ].forEach((stmt) => db.query(stmt).run()); ++ }); ++ ++ const queries = { ++ hello: 0, ++ domain: 1, ++ use: 1, ++ }; ++ let i = 1; ++ for (const query in queries) { ++ sqlTest( ++ db, ++ `1.${i++}.${query}`, ++ `SELECT count(*) as res FROM test WHERE test MATCH '${query}'`, ++ [], ++ [queries[query]], ++ ); ++ } ++}); ++ ++function sqlTest( ++ db: Database, ++ version: string, ++ query: string, ++ params: string[], ++ expected: string | number | undefined | (string | number | undefined)[], ++) { ++ test(version, () => { ++ const result = db.query(query).all(...params) as { ++ res: string | number; ++ }[]; ++ if (Array.isArray(expected)) { ++ expect(Array.isArray(expected)).toBeTrue(); ++ expect(result.length).toBe(expected.length); ++ result.forEach((result, i) => expect(result.res).toBe(expected[i]!)); ++ } else { ++ expect(result[0]?.res).toBe(expected!); ++ } ++ }); ++} ++ ++function explainQueryPlanTest( ++ db: Database, ++ version: string, ++ query: string, ++ params: string[], ++ expected: string, ++) { ++ test(version, () => { ++ const result = db.query(`EXPLAIN QUERY PLAN ${query}`).get(...params) as { ++ detail?: string; ++ }; ++ expect(result?.detail).toInclude(expected); ++ }); ++} +diff --git a/node_modules/react-native-quick-sqlite/sqlite3-fts5-html/genhtmlentity.ts b/node_modules/react-native-quick-sqlite/sqlite3-fts5-html/genhtmlentity.ts +new file mode 100755 +index 0000000..8878773 +--- /dev/null ++++ b/node_modules/react-native-quick-sqlite/sqlite3-fts5-html/genhtmlentity.ts +@@ -0,0 +1,80 @@ ++// @ts-ignore ++import * as fs from "node:fs/promises"; ++ ++interface EntityDefinition { ++ characters: string; ++} ++ ++const FILENAME = "fts5-html.c"; ++const entities: Record = await fetch( ++ "https://html.spec.whatwg.org/entities.json", ++).then((r) => r.json()); ++ ++const cleaned = Object.fromEntries( ++ Object.entries(entities).map(([k, v]) => [k.replace(/^&(.*?);?$/g, "$1"), v]), ++); ++ ++function strcmp(a: string, b: string): number { ++ if (a < b) { ++ return -1; ++ } else if (a > b) { ++ return 1; ++ } else { ++ return 0; ++ } ++} ++ ++const encoder = new TextEncoder(); ++ ++const parts: string[] = []; ++ ++parts.push( ++ ` ++struct htmlEntity { ++ const char *pzName; ++ const char *pzUtf8; ++}; ++typedef struct htmlEntity htmlEntity; ++ ++static const htmlEntity htmlEntities[] = { ++`.trim(), ++); ++ ++for (const [name, { characters }] of Object.entries(cleaned).sort((a, b) => ++ strcmp(a[0], b[0]), ++)) { ++ const hex = encoder.encode(characters); ++ const escaped = Array.from(hex) ++ .map((h) => "\\x" + h.toString(16).padStart(2, "0")) ++ .join(""); ++ parts.push(`\t{"${name}", "${escaped}"},`); ++} ++ ++parts.push(` ++ {0, 0} ++}; ++ ++#define MAX_ENTITY_NAME_LENGTH ${Math.max(...Object.keys(cleaned).map((k) => k.length))} ++#define NUM_ENTITIES ${Object.keys(cleaned).length} ++`); ++ ++const input = await fs.readFile(FILENAME, "utf-8"); ++let emit = true; ++const outputParts: string[] = []; ++ ++for (let line of input.split("\n")) { ++ if (line.includes("/* START OF HTML ENTITIES */")) { ++ outputParts.push(line); ++ emit = false; ++ } ++ if (emit) { ++ outputParts.push(line); ++ } ++ if (line.includes("/* END OF HTML ENTITIES */")) { ++ emit = true; ++ outputParts.push(parts.join("\n")); ++ outputParts.push(line); ++ } ++} ++ ++await fs.writeFile(FILENAME, outputParts.join("\n")); +diff --git a/node_modules/react-native-quick-sqlite/sqlite3-fts5-html/sqlite-dist.toml b/node_modules/react-native-quick-sqlite/sqlite3-fts5-html/sqlite-dist.toml +new file mode 100755 +index 0000000..eb5cbd7 +--- /dev/null ++++ b/node_modules/react-native-quick-sqlite/sqlite3-fts5-html/sqlite-dist.toml +@@ -0,0 +1,14 @@ ++[package] ++name = "sqlite3-fts5-html" ++license = "Public Domain" ++homepage = "https://github.com/streetwriters/sqlite3-fts5-html" ++repo = "https://github.com/streetwriters/sqlite3-fts5-html" ++description = "A pseudo tokenizer for SQLite3 FTS5 to strip HTML tags" ++authors = ["Abdullah Atta"] ++git_tag_format = "v$VERSION" ++ ++[targets] ++github_releases = {} ++amalgamation = {include=["fts5-html.c", "fts5-html.h"]} ++ ++npm = {} diff --git a/apps/mobile/share/share.js b/apps/mobile/share/share.js index fbb95197fd..b63640af5e 100644 --- a/apps/mobile/share/share.js +++ b/apps/mobile/share/share.js @@ -307,7 +307,7 @@ const ShareView = () => { noteData = { content: { - data: (rawContent?.data || "") + noteContent.current, + data: (rawContent?.data || "") + "
" + noteContent.current, type: "tiptap" }, id: note.id, diff --git a/apps/web/__e2e__/models/app.model.ts b/apps/web/__e2e__/models/app.model.ts index ff2a0796ec..af61ccf770 100644 --- a/apps/web/__e2e__/models/app.model.ts +++ b/apps/web/__e2e__/models/app.model.ts @@ -108,6 +108,12 @@ export class AppModel { return new TrashViewModel(this.page); } + async goToArchive() { + await this.page.locator(getTestId("tab-home")).click(); + await this.navigateTo("Archive"); + return new NotesViewModel(this.page, "notes", "archive"); + } + async goToSettings() { await this.profileDropdown.open( this.page.locator(getTestId("profile-dropdown")), @@ -153,12 +159,8 @@ export class AppModel { async search(query: string, type: string) { const searchinput = this.page.locator(getTestId("search-input")); - const searchButton = this.page.locator(getTestId("search-button")); - const openSearch = this.page.locator(getTestId("open-search")); - await openSearch.click(); await searchinput.fill(query); - await searchButton.click(); return new SearchViewModel(this.page, type); } } diff --git a/apps/web/__e2e__/models/note-item.model.ts b/apps/web/__e2e__/models/note-item.model.ts index 7840a69a85..79c5808520 100644 --- a/apps/web/__e2e__/models/note-item.model.ts +++ b/apps/web/__e2e__/models/note-item.model.ts @@ -77,4 +77,11 @@ export class NoteItemModel extends BaseItemModel { } return tags; } + + async isLockedNotePasswordFieldVisible() { + return this.page + .locator(".active") + .locator(getTestId("unlock-note-password")) + .isVisible(); + } } diff --git a/apps/web/__e2e__/models/note-properties.model.ts b/apps/web/__e2e__/models/note-properties.model.ts index d2d1835555..21623126fa 100644 --- a/apps/web/__e2e__/models/note-properties.model.ts +++ b/apps/web/__e2e__/models/note-properties.model.ts @@ -37,6 +37,7 @@ abstract class BaseProperties { private readonly pinToggle: ToggleModel; private readonly favoriteToggle: ToggleModel; private readonly lockToggle: ToggleModel; + private readonly archiveToggle: ToggleModel; constructor( page: Page, @@ -47,6 +48,7 @@ abstract class BaseProperties { this.pinToggle = new ToggleModel(page, `${itemPrefix}-pin`); this.lockToggle = new ToggleModel(page, `${itemPrefix}-lock`); this.favoriteToggle = new ToggleModel(page, `${itemPrefix}-favorite`); + this.archiveToggle = new ToggleModel(page, `${itemPrefix}-archive`); } async isPinned() { @@ -126,6 +128,25 @@ abstract class BaseProperties { await this.close(); } + async isArchived() { + await this.open(); + const state = await this.archiveToggle.isToggled(); + await this.close(); + return state; + } + + async archive() { + await this.open(); + await this.archiveToggle.on(); + await this.close(); + } + + async unarchive() { + await this.open(); + await this.archiveToggle.off(); + await this.close(); + } + abstract isColored(color: string): Promise; abstract color(color: string): Promise; abstract open(): Promise; diff --git a/apps/web/__e2e__/models/settings-view.model.ts b/apps/web/__e2e__/models/settings-view.model.ts index 86567e5dac..e3197b6107 100644 --- a/apps/web/__e2e__/models/settings-view.model.ts +++ b/apps/web/__e2e__/models/settings-view.model.ts @@ -189,4 +189,16 @@ export class SettingsViewModel { .locator("input"); await titleFormatInput.fill(format); } + + async deleteVault(password: string) { + const item = await this.navigation.findItem("Vault"); + await item?.click(); + + const deleteVaultButton = this.page + .locator(getTestId("setting-delete-vault")) + .locator("button"); + + await deleteVaultButton.click(); + await fillPasswordDialog(this.page, password); + } } diff --git a/apps/web/__e2e__/notes.test.ts b/apps/web/__e2e__/notes.test.ts index 8506375e68..f33d796758 100644 --- a/apps/web/__e2e__/notes.test.ts +++ b/apps/web/__e2e__/notes.test.ts @@ -201,6 +201,37 @@ for (const actor of actors) { expect(await note?.getDescription()).toContain(NOTE.content); expect(await note?.contextMenu.isLocked()).toBe(false); }); + + test(`archive a note using ${actor}`, async ({ page }) => { + const app = new AppModel(page); + await app.goto(); + const notes = await app.goToNotes(); + const note = await notes.createNote(NOTE); + + await note?.[actor].archive(); + + const archive = await app.goToArchive(); + const archivedNote = await archive.findNote(NOTE); + expect(await archivedNote?.contextMenu.isArchived()).toBe(true); + expect(await archivedNote?.properties.isArchived()).toBe(true); + }); + + test(`unarchive a note using ${actor}`, async ({ page }) => { + const app = new AppModel(page); + await app.goto(); + let notes = await app.goToNotes(); + let note = await notes.createNote(NOTE); + await note?.contextMenu.archive(); + + const archive = await app.goToArchive(); + const archivedNote = await archive.findNote(NOTE); + await archivedNote?.[actor].unarchive(); + + notes = await app.goToNotes(); + note = await notes.findNote(NOTE); + expect(await note?.contextMenu.isArchived()).toBe(false); + expect(await note?.properties.isArchived()).toBe(false); + }); } test("open a locked note", async ({ page }) => { @@ -339,3 +370,80 @@ test(`sort notes`, async ({ page }, info) => { } } }); + +test("archived favorite note shouldn't be in favorites note list", async ({ + page +}) => { + const app = new AppModel(page); + await app.goto(); + const notes = await app.goToNotes(); + const note = await notes.createNote(NOTE); + + await note?.contextMenu.favorite(); + await note?.contextMenu.archive(); + + const favorites = await app.goToFavorites(); + expect(await favorites.findNote(NOTE)).toBeUndefined(); +}); + +test("archived tag note shouldn't be in tags note list", async ({ page }) => { + const app = new AppModel(page); + await app.goto(); + const tags = await app.goToTags(); + const tag = await tags.createItem({ title: "my-tag" }); + const notes = await tag?.open(); + + const note = await notes?.createNote(NOTE); + expect(await notes?.findNote(NOTE)).toBeDefined(); + await note?.contextMenu.archive(); + + expect(await notes?.findNote(NOTE)).toBeUndefined(); +}); + +test("archived notebook note shouldn't be in notebooks note list", async ({ + page +}) => { + const app = new AppModel(page); + await app.goto(); + const notebooks = await app.goToNotebooks(); + const notebook = await notebooks.createNotebook({ title: "my-notebook" }); + const notes = await notebook?.openNotebook(); + + const note = await notes?.createNote(NOTE); + expect(await notes?.findNote(NOTE)).toBeDefined(); + await note?.contextMenu.archive(); + + expect(await notes?.findNote(NOTE)).toBeUndefined(); +}); + +test("archived colored note shouldn't be in colors note list", async ({ + page +}) => { + const app = new AppModel(page); + await app.goto(); + const notes = await app.goToNotes(); + let note = await notes.createNote(NOTE); + await note?.contextMenu.newColor({ title: "red", color: "#ff0000" }); + const color = await app.goToColor("red"); + + note = await color.findNote(NOTE); + expect(note).toBeDefined(); + await note?.contextMenu.archive(); + + expect(await color.findNote(NOTE)).toBeUndefined(); +}); + +test("archived note shouldn't appear in search results", async ({ page }) => { + const app = new AppModel(page); + await app.goto(); + const notes = await app.goToNotes(); + const note = await notes.createNote(NOTE); + + await app.search(NOTE.title, "notes"); + expect(await notes.findNote(NOTE)).toBeDefined(); + await note?.contextMenu.archive(); + + await app.search(NOTE.title, "notes"); + const searchedNote = await notes.findNote(NOTE); + expect(searchedNote).toBeUndefined(); +}); diff --git a/apps/web/__e2e__/vault.test.ts b/apps/web/__e2e__/vault.test.ts index c113b406d6..af78d212d2 100644 --- a/apps/web/__e2e__/vault.test.ts +++ b/apps/web/__e2e__/vault.test.ts @@ -19,7 +19,7 @@ along with this program. If not, see . import { test, expect } from "@playwright/test"; import { AppModel } from "./models/app.model"; -import { getTestId, NOTE, PASSWORD } from "./utils"; +import { getTestId, NOTE, PASSWORD, USER } from "./utils"; test("locking a note should show vault unlocked status", async ({ page }) => { const app = new AppModel(page); @@ -86,3 +86,66 @@ test("unlocking a note permanently should not show vault unlocked status", async await expect(vaultUnlockedStatus).toBeHidden(); }); + +test("clicking on vault unlocked status should lock the note", async ({ + page +}) => { + const app = new AppModel(page); + await app.goto(); + const notes = await app.goToNotes(); + const note = await notes.createNote(NOTE); + await note?.contextMenu.lock(PASSWORD); + await note?.openLockedNote(PASSWORD); + + expect(await note?.isLockedNotePasswordFieldVisible()).toBe(false); + + const vaultUnlockedStatus = page.locator(getTestId("vault-unlocked")); + await vaultUnlockedStatus.waitFor({ state: "visible" }); + await vaultUnlockedStatus.click(); + + expect(await note?.isLockedNotePasswordFieldVisible()).toBe(true); +}); + +test("clicking on vault unlocked status should lock the readonly note", async ({ + page +}) => { + const app = new AppModel(page); + await app.goto(); + const notes = await app.goToNotes(); + const note = await notes.createNote(NOTE); + await note?.properties.readonly(); + await note?.contextMenu.lock(PASSWORD); + await note?.openLockedNote(PASSWORD); + + expect(await note?.isLockedNotePasswordFieldVisible()).toBe(false); + + const vaultUnlockedStatus = page.locator(getTestId("vault-unlocked")); + await vaultUnlockedStatus.waitFor({ state: "visible" }); + await vaultUnlockedStatus.click(); + + expect(await note?.isLockedNotePasswordFieldVisible()).toBe(true); +}); + +test("deleting the vault should permanently delete locked notes", async ({ + page +}) => { + const app = new AppModel(page); + await app.auth.goto(); + await app.auth.login(USER.CURRENT); + + let notes = await app.goToNotes(); + let note = await notes.createNote(NOTE); + await note?.contextMenu.lock(PASSWORD); + + const settings = await app.goToSettings(); + await settings.deleteVault(USER.CURRENT.password!); + await settings.close(); + + notes = await app.goToNotes(); + note = await notes.findNote(NOTE); + expect(note).toBeUndefined(); + + const trash = await app.goToTrash(); + const trashNote = await trash.findItem(NOTE.title); + expect(trashNote).toBeUndefined(); +}); diff --git a/apps/web/package-lock.json b/apps/web/package-lock.json index 7284bcabaa..e8d0023be6 100644 --- a/apps/web/package-lock.json +++ b/apps/web/package-lock.json @@ -1,12 +1,12 @@ { "name": "@notesnook/web", - "version": "3.1.0", + "version": "3.2.0-beta.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@notesnook/web", - "version": "3.1.0", + "version": "3.2.0-beta.2", "hasInstallScript": true, "license": "GPL-3.0-or-later", "dependencies": { @@ -21,7 +21,7 @@ "@lingui/react": "5.1.2", "@mdi/js": "7.4.47", "@mdi/react": "1.6.1", - "@notesnook-importer/core": "^2.1.1", + "@notesnook-importer/core": "^2.2.2", "@notesnook/common": "file:../../packages/common", "@notesnook/core": "file:../../packages/core", "@notesnook/crypto": "file:../../packages/crypto", @@ -53,7 +53,7 @@ "cronosjs": "^1.7.1", "dayjs": "1.11.13", "diffblazer": "^1.0.1", - "electron-trpc": "0.6.1", + "electron-trpc": "0.7.1", "event-source-polyfill": "1.0.31", "fflate": "^0.8.0", "file-saver": "^2.0.5", @@ -249,8 +249,7 @@ "prismjs": "^1.29.0", "qclone": "^1.2.0", "rfdc": "^1.3.0", - "spark-md5": "^3.0.2", - "sqlite-better-trigram": "0.0.2" + "spark-md5": "^3.0.2" }, "devDependencies": { "@notesnook/crypto": "file:../crypto", @@ -276,6 +275,8 @@ "nanoid": "5.0.7", "otplib": "^12.0.1", "refractor": "^4.8.1", + "sqlite-better-trigram": "^0.0.3", + "sqlite3-fts5-html": "^0.0.2", "vitest": "2.1.8", "vitest-fetch-mock": "^0.2.2", "ws": "^8.13.0" @@ -296,7 +297,7 @@ "hasInstallScript": true, "license": "GPL-3.0-or-later", "dependencies": { - "@notesnook-importer/core": "^2.1.1", + "@notesnook-importer/core": "^2.2.2", "@notesnook/common": "file:../common", "@notesnook/intl": "file:../intl", "@notesnook/theme": "file:../theme", @@ -499,39 +500,41 @@ }, "../desktop": { "name": "@notesnook/desktop", - "version": "3.1.0-beta.3", + "version": "3.2.0-beta.1", "hasInstallScript": true, "license": "GPL-3.0-or-later", "dependencies": { "@lingui/core": "5.1.2", "@notesnook/intl": "file:../../packages/intl", + "@notesnook/ui": "file:../../packages/ui", "@trpc/client": "10.45.2", "@trpc/server": "10.45.2", - "better-sqlite3-multiple-ciphers": "11.5.0", + "better-sqlite3-multiple-ciphers": "11.3.0", "electron-trpc": "0.7.1", - "electron-updater": "^6.3.4", - "icojs": "^0.19.4", - "sqlite-better-trigram": "0.0.2", + "electron-updater": "^6.6.2", + "icojs": "^0.19.5", + "sqlite-better-trigram": "0.0.3", + "sqlite3-fts5-html": "^0.0.2", "typed-emitter": "^2.1.0", "yargs": "^17.7.2", - "zod": "3.23.8" + "zod": "3.24.3" }, "devDependencies": { "@streetwriters/kysely": "^0.27.4", - "@types/node": "22.7.0", + "@types/node": "22.15.3", "@types/yargs": "^17.0.33", - "chokidar": "^4.0.1", - "electron": "^31.7.4", - "electron-builder": "^25.1.8", + "chokidar": "^4.0.3", + "electron": "^34.0.0", + "electron-builder": "^26.0.12", "esbuild": "0.21.5", - "node-abi": "^3.68.0", - "node-gyp-build": "^4.8.2", - "playwright": "^1.48.2", + "node-abi": "^4.5.0", + "node-gyp-build": "^4.8.4", + "playwright": "^1.52.0", "prebuildify": "^6.0.1", "slugify": "1.6.6", "tree-kill": "^1.2.2", - "undici": "^6.19.8", - "vitest": "^2.1.8" + "undici": "^7.8.0", + "vitest": "2.1.8" }, "optionalDependencies": { "dmg-license": "^1.0.11" @@ -541,7 +544,6 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", - "dev": true, "license": "Apache-2.0", "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", @@ -590,15 +592,15 @@ } }, "node_modules/@azure/msal-node-extensions": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/@azure/msal-node-extensions/-/msal-node-extensions-1.5.1.tgz", - "integrity": "sha512-6MM5UU9BY5A4+SQ8xVI6/PwgnWlwXDM8Oj9hebuwWr9+CQOp4RqgULpwhipemxCyNaiFvZL5WwVBDdGgz9FlOg==", + "version": "1.5.13", + "resolved": "https://registry.npmjs.org/@azure/msal-node-extensions/-/msal-node-extensions-1.5.13.tgz", + "integrity": "sha512-5JQaPS/hGN5iL1rNBr+t17eVrpIjp8oXnCIrkj8WX4a8YbhlHaw+GhQthetdkMMvJE5RwbdzEN4Vm6zKX9ArGQ==", "hasInstallScript": true, "license": "MIT", "optional": true, "dependencies": { - "@azure/msal-common": "15.0.1", - "@azure/msal-node-runtime": "^0.17.1", + "@azure/msal-common": "15.6.0", + "@azure/msal-node-runtime": "^0.18.1", "keytar": "^7.8.0" }, "engines": { @@ -606,9 +608,9 @@ } }, "node_modules/@azure/msal-node-extensions/node_modules/@azure/msal-common": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-15.0.1.tgz", - "integrity": "sha512-JELxEK3Pnc4Rq8u+mI9u6o37auSpSOPCB7jaq7QziOAKi9WliWEmZZORCFHPbwf2xKitpHBXTz/0uerj17NsSQ==", + "version": "15.6.0", + "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-15.6.0.tgz", + "integrity": "sha512-EotmBz42apYGjqiIV9rDUdptaMptpTn4TdGf3JfjLvFvinSe9BJ6ywU92K9ky+t/b0ghbeTSe9RfqlgLh8f2jA==", "license": "MIT", "optional": true, "engines": { @@ -616,31 +618,31 @@ } }, "node_modules/@azure/msal-node-runtime": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/@azure/msal-node-runtime/-/msal-node-runtime-0.17.1.tgz", - "integrity": "sha512-qAfTg+iGJsg+XvD9nmknI63+XuoX32oT+SX4wJdFz7CS6ETVpSHoroHVaUmsTU1H7H0+q1/ZkP988gzPRMYRsg==", + "version": "0.18.2", + "resolved": "https://registry.npmjs.org/@azure/msal-node-runtime/-/msal-node-runtime-0.18.2.tgz", + "integrity": "sha512-v45fyBQp80BrjZAeGJXl+qggHcbylQiFBihr0ijO2eniDCW9tz5TZBKYsqzH06VuiRaVG/Sa0Hcn4pjhJqFSTw==", "hasInstallScript": true, "license": "MIT", "optional": true }, "node_modules/@babel/code-frame": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", - "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.25.9", + "@babel/helper-validator-identifier": "^7.27.1", "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" + "picocolors": "^1.1.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.5.tgz", - "integrity": "sha512-XvcZi1KWf88RVbF9wn8MN6tYFloU5qX8KjuF3E1PVBmJ9eypXfs4GRiJwLuTZL0iSnJUKn1BFPa5BPZZJyFzPg==", + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.27.2.tgz", + "integrity": "sha512-TUtMJYRPyUb/9aU8f3K0mjmjf6M9N5Woshn2CS6nqJSeJtTtQcpLUXjGt9vbF8ZGff0El99sWkLgzwW3VXnxZQ==", "license": "MIT", "engines": { "node": ">=6.9.0" @@ -650,7 +652,6 @@ "version": "7.22.5", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.5.tgz", "integrity": "sha512-SBuTAjg91A3eKOvD+bPEz3LlhHZRNu1nFOVts9lzDJTXshHTjII0BAtDS3Y2DAkdZdDKWVZGVwkDfc4Clxn1dg==", - "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", @@ -678,13 +679,13 @@ } }, "node_modules/@babel/generator": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.5.tgz", - "integrity": "sha512-2caSP6fN9I7HOe6nqhtft7V4g7/V/gfDsC3Ag4W7kEzzvRGKqiv0pu0HogPiZ3KaVSoNDhUws6IJjDjpfmYIXw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.1.tgz", + "integrity": "sha512-UnJfnIpc/+JO0/+KRVQNGU+y5taA5vCbwN8+azkX6beii/ZF+enZJSOKo11ZSzGJjlNfJHfQtmQT8H+9TXPG2w==", "license": "MIT", "dependencies": { - "@babel/parser": "^7.26.5", - "@babel/types": "^7.26.5", + "@babel/parser": "^7.27.1", + "@babel/types": "^7.27.1", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^3.0.2" @@ -694,26 +695,26 @@ } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", - "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.1.tgz", + "integrity": "sha512-WnuuDILl9oOBbKnb4L+DyODx7iC47XfzmNCpTttFsSp6hTG7XZxu60+4IO+2/hPfcGOoKbFiwoI/+zwARbNQow==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.25.9" + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz", - "integrity": "sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==", + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.26.5", - "@babel/helper-validator-option": "^7.25.9", + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" @@ -723,18 +724,18 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.9.tgz", - "integrity": "sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.27.1.tgz", + "integrity": "sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-member-expression-to-functions": "^7.25.9", - "@babel/helper-optimise-call-expression": "^7.25.9", - "@babel/helper-replace-supers": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", - "@babel/traverse": "^7.25.9", + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/traverse": "^7.27.1", "semver": "^6.3.1" }, "engines": { @@ -745,13 +746,13 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.26.3.tgz", - "integrity": "sha512-G7ZRb40uUgdKOQqPLjfD12ZmGA54PzqDFUv2BKImnC9QIfGhIHKvVML0oN8IUiDq4iRqpq74ABpvOaerfWdong==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.27.1.tgz", + "integrity": "sha512-uVDC72XVf8UbrH5qQTc18Agb8emwjTiZrQE11Nv3CuBEZmVvTwwE9CBUEvHku06gQCAyYf8Nv6ja1IN+6LMbxQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-annotate-as-pure": "^7.27.1", "regexpu-core": "^6.2.0", "semver": "^6.3.1" }, @@ -763,9 +764,9 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.3.tgz", - "integrity": "sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg==", + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.4.tgz", + "integrity": "sha512-jljfR1rGnXXNWnmQg2K3+bvhkxB51Rl32QRaOTuwwjviGrHzIbSc8+x9CpraDtbT7mfyjXObULP4w/adunNwAw==", "license": "MIT", "dependencies": { "@babel/helper-compilation-targets": "^7.22.6", @@ -779,42 +780,41 @@ } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz", - "integrity": "sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.27.1.tgz", + "integrity": "sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", - "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", "license": "MIT", "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", - "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", - "dev": true, + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.1.tgz", + "integrity": "sha512-9yHn519/8KvTU5BjTVEEeIM3w9/2yXNKoD82JifINImhpKkARMJKPP59kLo+BafpdN5zgNeIcS4jsGDmd3l58g==", "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -824,37 +824,37 @@ } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz", - "integrity": "sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz", + "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.25.9" + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz", - "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz", - "integrity": "sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz", + "integrity": "sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-wrap-function": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-wrap-function": "^7.27.1", + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -864,15 +864,15 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.26.5.tgz", - "integrity": "sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.27.1.tgz", + "integrity": "sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.25.9", - "@babel/helper-optimise-call-expression": "^7.25.9", - "@babel/traverse": "^7.26.5" + "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -882,82 +882,81 @@ } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz", - "integrity": "sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz", + "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", - "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", - "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", + "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", - "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz", - "integrity": "sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.27.1.tgz", + "integrity": "sha512-NFJK2sHUvrjo8wAU/nQTWU890/zB2jj0qBcCbZbbf+005cAsv6tMjXz31fBign6M5ov1o0Bllu+9nbqkfsjjJQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/template": "^7.25.9", - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" + "@babel/template": "^7.27.1", + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz", - "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", - "dev": true, + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.1.tgz", + "integrity": "sha512-FCvFTm0sWV8Fxhpp2McP5/W53GPllQ9QeQ7SiqGWjMf/LVG07lFa5+pgK05IRhVwtvafT22KF+ZSnM9I545CvQ==", "license": "MIT", "dependencies": { - "@babel/template": "^7.25.9", - "@babel/types": "^7.26.0" + "@babel/template": "^7.27.1", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.5.tgz", - "integrity": "sha512-SRJ4jYmXRqV1/Xc+TIVG84WjHBXKlxO9sHQnA2Pf12QQEAp1LOh6kDzNHXcUnbH1QI0FDoPPVOt+vyUDucxpaw==", + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.2.tgz", + "integrity": "sha512-QYLs8299NA7WM/bZAdp+CviYYkVoYXlDW2rzliy3chxd1PQjej7JORuMJDJXJUb9g0TT+B99EwaVLKmX+sPXWw==", "license": "MIT", "dependencies": { - "@babel/types": "^7.26.5" + "@babel/types": "^7.27.1" }, "bin": { "parser": "bin/babel-parser.js" @@ -967,14 +966,14 @@ } }, "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.9.tgz", - "integrity": "sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.27.1.tgz", + "integrity": "sha512-QPG3C9cCVRQLxAVwmefEmwdTanECuUBMQZ/ym5kiw3XKCGA7qkuQLcjWWHcrD/GKbn/WmJwaezfuuAOcyKlRPA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -984,13 +983,13 @@ } }, "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.9.tgz", - "integrity": "sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.27.1.tgz", + "integrity": "sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1000,13 +999,13 @@ } }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.9.tgz", - "integrity": "sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.27.1.tgz", + "integrity": "sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1016,15 +1015,15 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.9.tgz", - "integrity": "sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.27.1.tgz", + "integrity": "sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", - "@babel/plugin-transform-optional-chaining": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/plugin-transform-optional-chaining": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1034,14 +1033,14 @@ } }, "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.9.tgz", - "integrity": "sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.27.1.tgz", + "integrity": "sha512-6BpaYGDavZqkI6yT+KSPdpZFfpnd68UKXbcjI9pJ13pvHhPrCKWOOLp+ysvMeA+DxnhuPpgIaRpxRxo5A9t5jw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1064,13 +1063,13 @@ } }, "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.26.0.tgz", - "integrity": "sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.27.1.tgz", + "integrity": "sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1080,13 +1079,13 @@ } }, "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz", - "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz", + "integrity": "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1113,13 +1112,13 @@ } }, "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz", - "integrity": "sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz", + "integrity": "sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1129,15 +1128,15 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.9.tgz", - "integrity": "sha512-RXV6QAzTBbhDMO9fWwOmwwTuYaiPbggWQ9INdZqAYeSHyG7FzQ+nOZaUUjNwKv9pV3aE4WFqFm1Hnbci5tBCAw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.27.1.tgz", + "integrity": "sha512-eST9RrwlpaoJBDHShc+DS2SG4ATTi2MYNb4OxYkf3n+7eb49LWpnS+HSpVfW4x927qQwgk8A2hGNVaajAEw0EA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-remap-async-to-generator": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-remap-async-to-generator": "^7.27.1", + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1147,15 +1146,15 @@ } }, "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.9.tgz", - "integrity": "sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.27.1.tgz", + "integrity": "sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-remap-async-to-generator": "^7.25.9" + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-remap-async-to-generator": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1165,13 +1164,13 @@ } }, "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.26.5.tgz", - "integrity": "sha512-chuTSY+hq09+/f5lMj8ZSYgCFpppV2CbYrhNFJ1BFoXpiWPnnAb7R0MqrafCpN8E1+YRrtM1MXZHJdIx8B6rMQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.27.1.tgz", + "integrity": "sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.26.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1181,13 +1180,13 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.9.tgz", - "integrity": "sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.27.1.tgz", + "integrity": "sha512-QEcFlMl9nGTgh1rn2nIeU5bkfb9BAjaQcWbiP4LvKxUot52ABcTkpcyJ7f2Q2U2RuQ84BNLgts3jRme2dTx6Fw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1197,14 +1196,14 @@ } }, "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz", - "integrity": "sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.27.1.tgz", + "integrity": "sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1214,14 +1213,14 @@ } }, "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.26.0.tgz", - "integrity": "sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.27.1.tgz", + "integrity": "sha512-s734HmYU78MVzZ++joYM+NkJusItbdRcbm+AGRgJCt3iA+yux0QpD9cBVdz3tKyrjVYWRl7j0mHSmv4lhV0aoA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1231,17 +1230,17 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz", - "integrity": "sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.27.1.tgz", + "integrity": "sha512-7iLhfFAubmpeJe/Wo2TVuDrykh/zlWXLzPNdL0Jqn/Xu8R3QQ8h9ff8FQoISZOsw74/HFqFI7NX63HN7QFIHKA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-replace-supers": "^7.25.9", - "@babel/traverse": "^7.25.9", + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-compilation-targets": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1", + "@babel/traverse": "^7.27.1", "globals": "^11.1.0" }, "engines": { @@ -1252,14 +1251,14 @@ } }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz", - "integrity": "sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.27.1.tgz", + "integrity": "sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/template": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/template": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1269,13 +1268,13 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz", - "integrity": "sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.27.1.tgz", + "integrity": "sha512-ttDCqhfvpE9emVkXbPD8vyxxh4TWYACVybGkDj+oReOGwnp066ITEivDlLwe0b1R0+evJ13IXQuLNB5w1fhC5Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1285,14 +1284,14 @@ } }, "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.9.tgz", - "integrity": "sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.27.1.tgz", + "integrity": "sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1302,13 +1301,13 @@ } }, "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.9.tgz", - "integrity": "sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.27.1.tgz", + "integrity": "sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1318,14 +1317,14 @@ } }, "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.9.tgz", - "integrity": "sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.27.1.tgz", + "integrity": "sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1335,13 +1334,13 @@ } }, "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.9.tgz", - "integrity": "sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.27.1.tgz", + "integrity": "sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1351,13 +1350,13 @@ } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.26.3.tgz", - "integrity": "sha512-7CAHcQ58z2chuXPWblnn1K6rLDnDWieghSOEmqQsrBenH0P9InCUtOJYD89pvngljmZlJcz3fcmgYsXFNGa1ZQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.27.1.tgz", + "integrity": "sha512-uspvXnhHvGKf2r4VVtBpeFnuDWsJLQ6MF6lGJLC89jBR1uoVeqM416AZtTuhTezOfgHicpJQmoD5YUakO/YmXQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1367,13 +1366,13 @@ } }, "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.9.tgz", - "integrity": "sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz", + "integrity": "sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1383,14 +1382,14 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.9.tgz", - "integrity": "sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz", + "integrity": "sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1400,15 +1399,15 @@ } }, "node_modules/@babel/plugin-transform-function-name": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz", - "integrity": "sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz", + "integrity": "sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-compilation-targets": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1418,13 +1417,13 @@ } }, "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.9.tgz", - "integrity": "sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.27.1.tgz", + "integrity": "sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1434,13 +1433,13 @@ } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz", - "integrity": "sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz", + "integrity": "sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1450,13 +1449,13 @@ } }, "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.9.tgz", - "integrity": "sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.27.1.tgz", + "integrity": "sha512-SJvDs5dXxiae4FbSL1aBJlG4wvl594N6YEVVn9e3JGulwioy6z3oPjx/sQBO3Y4NwUu5HNix6KJ3wBZoewcdbw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1466,13 +1465,13 @@ } }, "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.9.tgz", - "integrity": "sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.27.1.tgz", + "integrity": "sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1482,14 +1481,14 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.9.tgz", - "integrity": "sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.27.1.tgz", + "integrity": "sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1499,14 +1498,14 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.26.3.tgz", - "integrity": "sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.27.1.tgz", + "integrity": "sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.26.0", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1516,16 +1515,16 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.9.tgz", - "integrity": "sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.27.1.tgz", + "integrity": "sha512-w5N1XzsRbc0PQStASMksmUeqECuzKuTJer7kFagK8AXgpCMkeDMO5S+aaFb7A51ZYDF7XI34qsTX+fkHiIm5yA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1535,14 +1534,14 @@ } }, "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.9.tgz", - "integrity": "sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.27.1.tgz", + "integrity": "sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1552,14 +1551,14 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz", - "integrity": "sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.27.1.tgz", + "integrity": "sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1569,13 +1568,13 @@ } }, "node_modules/@babel/plugin-transform-new-target": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.9.tgz", - "integrity": "sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.27.1.tgz", + "integrity": "sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1585,13 +1584,13 @@ } }, "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.26.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.26.6.tgz", - "integrity": "sha512-CKW8Vu+uUZneQCPtXmSBUC6NCAUdya26hWCElAWh5mVSlSRsmiCPUUDKb3Z0szng1hiAJa098Hkhg9o4SE35Qw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.27.1.tgz", + "integrity": "sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.26.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1601,13 +1600,13 @@ } }, "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz", - "integrity": "sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.27.1.tgz", + "integrity": "sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1617,15 +1616,16 @@ } }, "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.9.tgz", - "integrity": "sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==", + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.27.2.tgz", + "integrity": "sha512-AIUHD7xJ1mCrj3uPozvtngY3s0xpv7Nu7DoUSnzNY6Xam1Cy4rUznR//pvMHOhQ4AvbCexhbqXCtpxGHOGOO6g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/plugin-transform-parameters": "^7.25.9" + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.27.1", + "@babel/plugin-transform-parameters": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1635,14 +1635,14 @@ } }, "node_modules/@babel/plugin-transform-object-super": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.9.tgz", - "integrity": "sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.27.1.tgz", + "integrity": "sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-replace-supers": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1652,13 +1652,13 @@ } }, "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.9.tgz", - "integrity": "sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.27.1.tgz", + "integrity": "sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1668,14 +1668,14 @@ } }, "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz", - "integrity": "sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.27.1.tgz", + "integrity": "sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1685,13 +1685,13 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz", - "integrity": "sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.1.tgz", + "integrity": "sha512-018KRk76HWKeZ5l4oTj2zPpSh+NbGdt0st5S6x0pga6HgrjBOJb24mMDHorFopOOd6YHkLgOZ+zaCjZGPO4aKg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1701,14 +1701,14 @@ } }, "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.9.tgz", - "integrity": "sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.27.1.tgz", + "integrity": "sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1718,15 +1718,15 @@ } }, "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.9.tgz", - "integrity": "sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.27.1.tgz", + "integrity": "sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1736,13 +1736,13 @@ } }, "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.9.tgz", - "integrity": "sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.27.1.tgz", + "integrity": "sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1752,14 +1752,13 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.9.tgz", - "integrity": "sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.27.1.tgz", + "integrity": "sha512-B19lbbL7PMrKr52BNPjCqg1IyNUIjTcxKj8uX9zHO+PmWN93s19NDr/f69mIkEp2x9nmDJ08a7lgHaTTzvW7mw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "regenerator-transform": "^0.15.2" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1769,14 +1768,14 @@ } }, "node_modules/@babel/plugin-transform-regexp-modifiers": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.26.0.tgz", - "integrity": "sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.27.1.tgz", + "integrity": "sha512-TtEciroaiODtXvLZv4rmfMhkCv8jx3wgKpL68PuiPh2M4fvz5jhsA7697N1gMvkvr/JTF13DrFYyEbY9U7cVPA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1786,13 +1785,13 @@ } }, "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.9.tgz", - "integrity": "sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.27.1.tgz", + "integrity": "sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1802,15 +1801,15 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.25.9.tgz", - "integrity": "sha512-nZp7GlEl+yULJrClz0SwHPqir3lc0zsPrDHQUcxGspSL7AKrexNSEfTbfqnDNJUO13bgKyfuOLMF8Xqtu8j3YQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.27.1.tgz", + "integrity": "sha512-TqGF3desVsTcp3WrJGj4HfKokfCXCLcHpt4PJF0D8/iT6LPd9RS82Upw3KPeyr6B22Lfd3DO8MVrmp0oRkUDdw==", "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", "babel-plugin-polyfill-corejs2": "^0.4.10", - "babel-plugin-polyfill-corejs3": "^0.10.6", + "babel-plugin-polyfill-corejs3": "^0.11.0", "babel-plugin-polyfill-regenerator": "^0.6.1", "semver": "^6.3.1" }, @@ -1822,13 +1821,13 @@ } }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz", - "integrity": "sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz", + "integrity": "sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1838,14 +1837,14 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz", - "integrity": "sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.27.1.tgz", + "integrity": "sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1855,13 +1854,13 @@ } }, "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz", - "integrity": "sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz", + "integrity": "sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1871,13 +1870,13 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.25.9.tgz", - "integrity": "sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz", + "integrity": "sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1887,13 +1886,13 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.25.9.tgz", - "integrity": "sha512-v61XqUMiueJROUv66BVIOi0Fv/CUuZuZMl5NkRoCVxLAnMexZ0A3kMe7vvZ0nulxMuMp0Mk6S5hNh48yki08ZA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.1.tgz", + "integrity": "sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1903,13 +1902,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.9.tgz", - "integrity": "sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.27.1.tgz", + "integrity": "sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1919,14 +1918,14 @@ } }, "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.9.tgz", - "integrity": "sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.27.1.tgz", + "integrity": "sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1936,14 +1935,14 @@ } }, "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz", - "integrity": "sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz", + "integrity": "sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1953,14 +1952,14 @@ } }, "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.9.tgz", - "integrity": "sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.27.1.tgz", + "integrity": "sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1970,80 +1969,80 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.26.0.tgz", - "integrity": "sha512-H84Fxq0CQJNdPFT2DrfnylZ3cf5K43rGfWK4LJGPpjKHiZlk0/RzwEus3PDDZZg+/Er7lCA03MVacueUuXdzfw==", + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.27.2.tgz", + "integrity": "sha512-Ma4zSuYSlGNRlCLO+EAzLnCmJK2vdstgv+n7aUP+/IKZrOfWHOJVdSJtuub8RzHTj3ahD37k5OKJWvzf16TQyQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.26.0", - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-validator-option": "^7.25.9", - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.9", - "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.9", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.9", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.25.9", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.9", + "@babel/compat-data": "^7.27.2", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.27.1", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.27.1", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.27.1", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.27.1", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.27.1", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-syntax-import-assertions": "^7.26.0", - "@babel/plugin-syntax-import-attributes": "^7.26.0", + "@babel/plugin-syntax-import-assertions": "^7.27.1", + "@babel/plugin-syntax-import-attributes": "^7.27.1", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.25.9", - "@babel/plugin-transform-async-generator-functions": "^7.25.9", - "@babel/plugin-transform-async-to-generator": "^7.25.9", - "@babel/plugin-transform-block-scoped-functions": "^7.25.9", - "@babel/plugin-transform-block-scoping": "^7.25.9", - "@babel/plugin-transform-class-properties": "^7.25.9", - "@babel/plugin-transform-class-static-block": "^7.26.0", - "@babel/plugin-transform-classes": "^7.25.9", - "@babel/plugin-transform-computed-properties": "^7.25.9", - "@babel/plugin-transform-destructuring": "^7.25.9", - "@babel/plugin-transform-dotall-regex": "^7.25.9", - "@babel/plugin-transform-duplicate-keys": "^7.25.9", - "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.9", - "@babel/plugin-transform-dynamic-import": "^7.25.9", - "@babel/plugin-transform-exponentiation-operator": "^7.25.9", - "@babel/plugin-transform-export-namespace-from": "^7.25.9", - "@babel/plugin-transform-for-of": "^7.25.9", - "@babel/plugin-transform-function-name": "^7.25.9", - "@babel/plugin-transform-json-strings": "^7.25.9", - "@babel/plugin-transform-literals": "^7.25.9", - "@babel/plugin-transform-logical-assignment-operators": "^7.25.9", - "@babel/plugin-transform-member-expression-literals": "^7.25.9", - "@babel/plugin-transform-modules-amd": "^7.25.9", - "@babel/plugin-transform-modules-commonjs": "^7.25.9", - "@babel/plugin-transform-modules-systemjs": "^7.25.9", - "@babel/plugin-transform-modules-umd": "^7.25.9", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.25.9", - "@babel/plugin-transform-new-target": "^7.25.9", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.25.9", - "@babel/plugin-transform-numeric-separator": "^7.25.9", - "@babel/plugin-transform-object-rest-spread": "^7.25.9", - "@babel/plugin-transform-object-super": "^7.25.9", - "@babel/plugin-transform-optional-catch-binding": "^7.25.9", - "@babel/plugin-transform-optional-chaining": "^7.25.9", - "@babel/plugin-transform-parameters": "^7.25.9", - "@babel/plugin-transform-private-methods": "^7.25.9", - "@babel/plugin-transform-private-property-in-object": "^7.25.9", - "@babel/plugin-transform-property-literals": "^7.25.9", - "@babel/plugin-transform-regenerator": "^7.25.9", - "@babel/plugin-transform-regexp-modifiers": "^7.26.0", - "@babel/plugin-transform-reserved-words": "^7.25.9", - "@babel/plugin-transform-shorthand-properties": "^7.25.9", - "@babel/plugin-transform-spread": "^7.25.9", - "@babel/plugin-transform-sticky-regex": "^7.25.9", - "@babel/plugin-transform-template-literals": "^7.25.9", - "@babel/plugin-transform-typeof-symbol": "^7.25.9", - "@babel/plugin-transform-unicode-escapes": "^7.25.9", - "@babel/plugin-transform-unicode-property-regex": "^7.25.9", - "@babel/plugin-transform-unicode-regex": "^7.25.9", - "@babel/plugin-transform-unicode-sets-regex": "^7.25.9", + "@babel/plugin-transform-arrow-functions": "^7.27.1", + "@babel/plugin-transform-async-generator-functions": "^7.27.1", + "@babel/plugin-transform-async-to-generator": "^7.27.1", + "@babel/plugin-transform-block-scoped-functions": "^7.27.1", + "@babel/plugin-transform-block-scoping": "^7.27.1", + "@babel/plugin-transform-class-properties": "^7.27.1", + "@babel/plugin-transform-class-static-block": "^7.27.1", + "@babel/plugin-transform-classes": "^7.27.1", + "@babel/plugin-transform-computed-properties": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.27.1", + "@babel/plugin-transform-dotall-regex": "^7.27.1", + "@babel/plugin-transform-duplicate-keys": "^7.27.1", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.27.1", + "@babel/plugin-transform-dynamic-import": "^7.27.1", + "@babel/plugin-transform-exponentiation-operator": "^7.27.1", + "@babel/plugin-transform-export-namespace-from": "^7.27.1", + "@babel/plugin-transform-for-of": "^7.27.1", + "@babel/plugin-transform-function-name": "^7.27.1", + "@babel/plugin-transform-json-strings": "^7.27.1", + "@babel/plugin-transform-literals": "^7.27.1", + "@babel/plugin-transform-logical-assignment-operators": "^7.27.1", + "@babel/plugin-transform-member-expression-literals": "^7.27.1", + "@babel/plugin-transform-modules-amd": "^7.27.1", + "@babel/plugin-transform-modules-commonjs": "^7.27.1", + "@babel/plugin-transform-modules-systemjs": "^7.27.1", + "@babel/plugin-transform-modules-umd": "^7.27.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.27.1", + "@babel/plugin-transform-new-target": "^7.27.1", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.27.1", + "@babel/plugin-transform-numeric-separator": "^7.27.1", + "@babel/plugin-transform-object-rest-spread": "^7.27.2", + "@babel/plugin-transform-object-super": "^7.27.1", + "@babel/plugin-transform-optional-catch-binding": "^7.27.1", + "@babel/plugin-transform-optional-chaining": "^7.27.1", + "@babel/plugin-transform-parameters": "^7.27.1", + "@babel/plugin-transform-private-methods": "^7.27.1", + "@babel/plugin-transform-private-property-in-object": "^7.27.1", + "@babel/plugin-transform-property-literals": "^7.27.1", + "@babel/plugin-transform-regenerator": "^7.27.1", + "@babel/plugin-transform-regexp-modifiers": "^7.27.1", + "@babel/plugin-transform-reserved-words": "^7.27.1", + "@babel/plugin-transform-shorthand-properties": "^7.27.1", + "@babel/plugin-transform-spread": "^7.27.1", + "@babel/plugin-transform-sticky-regex": "^7.27.1", + "@babel/plugin-transform-template-literals": "^7.27.1", + "@babel/plugin-transform-typeof-symbol": "^7.27.1", + "@babel/plugin-transform-unicode-escapes": "^7.27.1", + "@babel/plugin-transform-unicode-property-regex": "^7.27.1", + "@babel/plugin-transform-unicode-regex": "^7.27.1", + "@babel/plugin-transform-unicode-sets-regex": "^7.27.1", "@babel/preset-modules": "0.1.6-no-external-plugins", "babel-plugin-polyfill-corejs2": "^0.4.10", - "babel-plugin-polyfill-corejs3": "^0.10.6", + "babel-plugin-polyfill-corejs3": "^0.11.0", "babel-plugin-polyfill-regenerator": "^0.6.1", - "core-js-compat": "^3.38.1", + "core-js-compat": "^3.40.0", "semver": "^6.3.1" }, "engines": { @@ -2069,42 +2068,39 @@ } }, "node_modules/@babel/runtime": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz", - "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.1.tgz", + "integrity": "sha512-1x3D2xEk2fRo3PAhwQwu5UubzgiVWSXTBfWpVd2Mx2AzRqJuDJCsgaDVZ7HB5iGzDW1Hl1sWN2mFyKjmR9uAog==", "license": "MIT", - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/template": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", - "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.25.9", - "@babel/parser": "^7.25.9", - "@babel/types": "^7.25.9" + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.5.tgz", - "integrity": "sha512-rkOSPOw+AXbgtwUga3U4u8RpoK9FEFWBNAlTpcnkLFjL5CT+oyHNuUUC/xx6XefEJ16r38r8Bc/lfp6rYuHeJQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.1.tgz", + "integrity": "sha512-ZCYtZciz1IWJB4U61UPu4KEaqyfj+r5T1Q5mqPo+IBpcG9kHv30Z0aD8LXPgC1trYa6rK0orRyAhqUgk4MjmEg==", "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.26.2", - "@babel/generator": "^7.26.5", - "@babel/parser": "^7.26.5", - "@babel/template": "^7.25.9", - "@babel/types": "^7.26.5", + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.27.1", + "@babel/parser": "^7.27.1", + "@babel/template": "^7.27.1", + "@babel/types": "^7.27.1", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -2113,13 +2109,13 @@ } }, "node_modules/@babel/types": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.5.tgz", - "integrity": "sha512-L6mZmwFDK6Cjh1nRCLXpa6no13ZIioJDz7mdkzHv399pThrTa/k0nUlNaenOeh2kWu/iaOQYElEpKPUswUa9Vg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.1.tgz", + "integrity": "sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q==", "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9" + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2135,9 +2131,9 @@ } }, "node_modules/@cloudflare/workers-types": { - "version": "4.20250224.0", - "resolved": "https://registry.npmjs.org/@cloudflare/workers-types/-/workers-types-4.20250224.0.tgz", - "integrity": "sha512-j6ZwQ5G2moQRaEtGI2u5TBQhVXv/XwOS5jfBAheZHcpCM07zm8j0i8jZHHLq/6VA8e6VRjKohOyj5j6tZ1KHLQ==", + "version": "4.20250515.0", + "resolved": "https://registry.npmjs.org/@cloudflare/workers-types/-/workers-types-4.20250515.0.tgz", + "integrity": "sha512-KoHFMH04gOXp3KEI+wrFIU+3ZfoSXnwqZTpybNQjalHoN3pWjtWBb/030cCRAZ639YX+DAHAxNF7AvEYGz1oaA==", "dev": true, "license": "MIT OR Apache-2.0" }, @@ -2208,6 +2204,28 @@ "react": ">=16.8.0" } }, + "node_modules/@electron/get": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@electron/get/-/get-2.0.3.tgz", + "integrity": "sha512-Qkzpg2s9GnVV2I2BjRksUi43U5e6+zaQMcjoJy0C+C5oxaKl+fmckGDQFtRpZpZV0NQekuZZ+tGz7EA9TVnQtQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "debug": "^4.1.1", + "env-paths": "^2.2.0", + "fs-extra": "^8.1.0", + "got": "^11.8.5", + "progress": "^2.0.3", + "semver": "^6.2.0", + "sumchecker": "^3.0.1" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "global-agent": "^3.0.0" + } + }, "node_modules/@emotion/babel-plugin": { "version": "11.13.5", "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.13.5.tgz", @@ -2832,9 +2850,12 @@ } }, "node_modules/@lingui/message-utils": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@lingui/message-utils/-/message-utils-5.1.2.tgz", - "integrity": "sha512-P/N0yBy2MuC726EaGPGiOafc/0RafHiwkvZJdFKjm1/XOMWrFZDPFXTuxguVQ3HQsRi5eUIPaboU4uRX4GepPg==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@lingui/message-utils/-/message-utils-5.3.1.tgz", + "integrity": "sha512-/nwO/uXHYNO4pT+gor7iFdvNHSIjhGhJnqGeWMndSAAqmx0LstrFp9yWhcUU3XaTceyy7AtgVZh0ter7ghOw/Q==", + "bundleDependencies": [ + "@messageformat/date-skeleton" + ], "license": "MIT", "dependencies": { "@messageformat/parser": "^5.0.0", @@ -2892,9 +2913,9 @@ } }, "node_modules/@mapbox/node-pre-gyp/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "license": "ISC", "optional": true, "bin": { @@ -2956,17 +2977,16 @@ } }, "node_modules/@notesnook-importer/core": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@notesnook-importer/core/-/core-2.1.1.tgz", - "integrity": "sha512-aVCvRPLQCwCzhqJ9/MZ4HtT8xtRGPS+JY5/pJD27ggEhzyF9OOd+AT9ugf7w2lpbTIP8f/3Nsn/CXiCJgDO98w==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@notesnook-importer/core/-/core-2.2.2.tgz", + "integrity": "sha512-ouPirC378m/fJNDOWS1BPN3tS6hj2cyxP13z9dXt45XyyNyK0g9j1u6O212LJEKSqb1JvCelHuimAOzsuXVWtw==", "hasInstallScript": true, "license": "GPL-3.0-or-later", "dependencies": { - "@notesnook-importer/enex": "^1.8.1", - "@notesnook-importer/onenote": "^1.8.1", - "@notesnook-importer/storage": "^1.8.1", - "@notesnook-importer/znel": "^1.8.1", - "@skiff-org/skiff-crypto": "^1.0.3", + "@notesnook-importer/enex": "^2.2.2", + "@notesnook-importer/onenote": "^2.2.2", + "@notesnook-importer/storage": "^2.2.2", + "@notesnook-importer/znel": "^2.2.2", "@stablelib/chacha20poly1305": "^1.0.1", "@standardnotes/features": "1.58.0", "@standardnotes/models": "1.42.0", @@ -2992,6 +3012,7 @@ "spark-md5": "^3.0.2", "unified": "^10.1.2", "unist-util-visit": "^5.0.0", + "varint": "^6.0.0", "zod": "^3.22.4" } }, @@ -3002,9 +3023,9 @@ "license": "MIT" }, "node_modules/@notesnook-importer/enex": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@notesnook-importer/enex/-/enex-1.8.1.tgz", - "integrity": "sha512-k+DzJQPr/79rKg0hnml/ZHS9PX/4vm/ndOfF6PLdTBJsoAVgYhEOkroSwm8oA6V1j9Bn1Ew/7jpssKoUGqebsg==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@notesnook-importer/enex/-/enex-2.2.2.tgz", + "integrity": "sha512-SA0X0UqRwNGdGagXGqLu279WRRBkGIDrjjduqY18QNA1WHMULgZa+lbipJDCT/0Omcqs0sI8DXlTEJhZbtJtug==", "license": "GPL-3.0-or-later", "dependencies": { "base64-js": "^1.5.1", @@ -3017,9 +3038,9 @@ } }, "node_modules/@notesnook-importer/onenote": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@notesnook-importer/onenote/-/onenote-1.8.1.tgz", - "integrity": "sha512-4xTPNHn9E/Fb5BnpqLghNLporgyHNOJTitzdJwBvNWAfomfS/limFPYNyfwYRFbX/Uq1drSKzdv0uAvq8/dhiQ==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@notesnook-importer/onenote/-/onenote-2.2.2.tgz", + "integrity": "sha512-T8UzDIGhjysEZAeA0uux4ZjkyYuMJDTiyRgwxjI4rio2SZzJjIzhhhGSHBWP0VYTKVBFPhwxy7V6J8dL6Z8x6Q==", "license": "GPL-3.0-or-later", "dependencies": { "@microsoft/microsoft-graph-client": "^3.0.7", @@ -3028,8 +3049,7 @@ "domhandler": "^5.0.3", "domutils": "^3.0.1", "dotenv": "^16.0.0", - "htmlparser2": "^8.0.1", - "isomorphic-fetch": "^3.0.0" + "htmlparser2": "^8.0.1" }, "optionalDependencies": { "@azure/msal-browser": "^3.6.0", @@ -3038,15 +3058,15 @@ } }, "node_modules/@notesnook-importer/storage": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@notesnook-importer/storage/-/storage-1.8.1.tgz", - "integrity": "sha512-/IFBI+yZHQOvD+vPLcKvixhbS9TJ4pfQcCkl3WvWZWDwHDYhkSL2Yf2bIgayPxjXWL/U8089tJt8hzWGmsecfw==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@notesnook-importer/storage/-/storage-2.2.2.tgz", + "integrity": "sha512-snEkk6Rb3eKQTkjOUncBPVe8D3Q6sIuxRfK8Y/EBSAzGcLcD3uatS/KQhbZLELN0Xjahhy6l7z87Q1qy9OaJWg==", "license": "GPL-3.0-or-later" }, "node_modules/@notesnook-importer/znel": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@notesnook-importer/znel/-/znel-1.8.1.tgz", - "integrity": "sha512-YkbDfzWREN/HW/Cg6cnZk4eajVEyMdMpxbF3qn2R5YaLWl8Rffa5bm1d/QlGf8u2XL6dyT9Q1tQ5MJ4umKfJvQ==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@notesnook-importer/znel/-/znel-2.2.2.tgz", + "integrity": "sha512-lqaKtM0UofkQ9iojUe8MGbClbTrK5HkG/+iB9BbUzAmq0fyk0AaI7go34QJ0CL3zu7p4gFjjc6lllJqdQzV0jA==", "license": "GPL-3.0-or-later", "dependencies": { "base64-js": "^1.5.1", @@ -3450,9 +3470,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.31.0.tgz", - "integrity": "sha512-9NrR4033uCbUBRgvLcBrJofa2KY9DzxL2UKZ1/4xA/mnTNyhZCWBuD8X3tPm1n4KxcgaraOYgrFKSgwjASfmlA==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.40.2.tgz", + "integrity": "sha512-JkdNEq+DFxZfUwxvB58tHMHBHVgX23ew41g1OQinthJ+ryhdRk67O31S7sYw8u2lTjHUPFxwar07BBt1KHp/hg==", "cpu": [ "arm" ], @@ -3464,9 +3484,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.31.0.tgz", - "integrity": "sha512-iBbODqT86YBFHajxxF8ebj2hwKm1k8PTBQSojSt3d1FFt1gN+xf4CowE47iN0vOSdnd+5ierMHBbu/rHc7nq5g==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.40.2.tgz", + "integrity": "sha512-13unNoZ8NzUmnndhPTkWPWbX3vtHodYmy+I9kuLxN+F+l+x3LdVF7UCu8TWVMt1POHLh6oDHhnOA04n8oJZhBw==", "cpu": [ "arm64" ], @@ -3478,9 +3498,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.31.0.tgz", - "integrity": "sha512-WHIZfXgVBX30SWuTMhlHPXTyN20AXrLH4TEeH/D0Bolvx9PjgZnn4H677PlSGvU6MKNsjCQJYczkpvBbrBnG6g==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.40.2.tgz", + "integrity": "sha512-Gzf1Hn2Aoe8VZzevHostPX23U7N5+4D36WJNHK88NZHCJr7aVMG4fadqkIf72eqVPGjGc0HJHNuUaUcxiR+N/w==", "cpu": [ "arm64" ], @@ -3492,9 +3512,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.31.0.tgz", - "integrity": "sha512-hrWL7uQacTEF8gdrQAqcDy9xllQ0w0zuL1wk1HV8wKGSGbKPVjVUv/DEwT2+Asabf8Dh/As+IvfdU+H8hhzrQQ==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.40.2.tgz", + "integrity": "sha512-47N4hxa01a4x6XnJoskMKTS8XZ0CZMd8YTbINbi+w03A2w4j1RTlnGHOz/P0+Bg1LaVL6ufZyNprSg+fW5nYQQ==", "cpu": [ "x64" ], @@ -3506,9 +3526,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.31.0.tgz", - "integrity": "sha512-S2oCsZ4hJviG1QjPY1h6sVJLBI6ekBeAEssYKad1soRFv3SocsQCzX6cwnk6fID6UQQACTjeIMB+hyYrFacRew==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.40.2.tgz", + "integrity": "sha512-8t6aL4MD+rXSHHZUR1z19+9OFJ2rl1wGKvckN47XFRVO+QL/dUSpKA2SLRo4vMg7ELA8pzGpC+W9OEd1Z/ZqoQ==", "cpu": [ "arm64" ], @@ -3520,9 +3540,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.31.0.tgz", - "integrity": "sha512-pCANqpynRS4Jirn4IKZH4tnm2+2CqCNLKD7gAdEjzdLGbH1iO0zouHz4mxqg0uEMpO030ejJ0aA6e1PJo2xrPA==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.40.2.tgz", + "integrity": "sha512-C+AyHBzfpsOEYRFjztcYUFsH4S7UsE9cDtHCtma5BK8+ydOZYgMmWg1d/4KBytQspJCld8ZIujFMAdKG1xyr4Q==", "cpu": [ "x64" ], @@ -3534,9 +3554,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.31.0.tgz", - "integrity": "sha512-0O8ViX+QcBd3ZmGlcFTnYXZKGbFu09EhgD27tgTdGnkcYXLat4KIsBBQeKLR2xZDCXdIBAlWLkiXE1+rJpCxFw==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.40.2.tgz", + "integrity": "sha512-de6TFZYIvJwRNjmW3+gaXiZ2DaWL5D5yGmSYzkdzjBDS3W+B9JQ48oZEsmMvemqjtAFzE16DIBLqd6IQQRuG9Q==", "cpu": [ "arm" ], @@ -3548,9 +3568,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.31.0.tgz", - "integrity": "sha512-w5IzG0wTVv7B0/SwDnMYmbr2uERQp999q8FMkKG1I+j8hpPX2BYFjWe69xbhbP6J9h2gId/7ogesl9hwblFwwg==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.40.2.tgz", + "integrity": "sha512-urjaEZubdIkacKc930hUDOfQPysezKla/O9qV+O89enqsqUmQm8Xj8O/vh0gHg4LYfv7Y7UsE3QjzLQzDYN1qg==", "cpu": [ "arm" ], @@ -3562,9 +3582,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.31.0.tgz", - "integrity": "sha512-JyFFshbN5xwy6fulZ8B/8qOqENRmDdEkcIMF0Zz+RsfamEW+Zabl5jAb0IozP/8UKnJ7g2FtZZPEUIAlUSX8cA==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.40.2.tgz", + "integrity": "sha512-KlE8IC0HFOC33taNt1zR8qNlBYHj31qGT1UqWqtvR/+NuCVhfufAq9fxO8BMFC22Wu0rxOwGVWxtCMvZVLmhQg==", "cpu": [ "arm64" ], @@ -3576,9 +3596,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.31.0.tgz", - "integrity": "sha512-kpQXQ0UPFeMPmPYksiBL9WS/BDiQEjRGMfklVIsA0Sng347H8W2iexch+IEwaR7OVSKtr2ZFxggt11zVIlZ25g==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.40.2.tgz", + "integrity": "sha512-j8CgxvfM0kbnhu4XgjnCWJQyyBOeBI1Zq91Z850aUddUmPeQvuAy6OiMdPS46gNFgy8gN1xkYyLgwLYZG3rBOg==", "cpu": [ "arm64" ], @@ -3590,9 +3610,9 @@ ] }, "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.31.0.tgz", - "integrity": "sha512-pMlxLjt60iQTzt9iBb3jZphFIl55a70wexvo8p+vVFK+7ifTRookdoXX3bOsRdmfD+OKnMozKO6XM4zR0sHRrQ==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.40.2.tgz", + "integrity": "sha512-Ybc/1qUampKuRF4tQXc7G7QY9YRyeVSykfK36Y5Qc5dmrIxwFhrOzqaVTNoZygqZ1ZieSWTibfFhQ5qK8jpWxw==", "cpu": [ "loong64" ], @@ -3604,9 +3624,9 @@ ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.31.0.tgz", - "integrity": "sha512-D7TXT7I/uKEuWiRkEFbed1UUYZwcJDU4vZQdPTcepK7ecPhzKOYk4Er2YR4uHKme4qDeIh6N3XrLfpuM7vzRWQ==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.40.2.tgz", + "integrity": "sha512-3FCIrnrt03CCsZqSYAOW/k9n625pjpuMzVfeI+ZBUSDT3MVIFDSPfSUgIl9FqUftxcUXInvFah79hE1c9abD+Q==", "cpu": [ "ppc64" ], @@ -3618,9 +3638,23 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.31.0.tgz", - "integrity": "sha512-wal2Tc8O5lMBtoePLBYRKj2CImUCJ4UNGJlLwspx7QApYny7K1cUYlzQ/4IGQBLmm+y0RS7dwc3TDO/pmcneTw==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.40.2.tgz", + "integrity": "sha512-QNU7BFHEvHMp2ESSY3SozIkBPaPBDTsfVNGx3Xhv+TdvWXFGOSH2NJvhD1zKAT6AyuuErJgbdvaJhYVhVqrWTg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.40.2.tgz", + "integrity": "sha512-5W6vNYkhgfh7URiXTO1E9a0cy4fSgfE4+Hl5agb/U1sa0kjOLMLC1wObxwKxecE17j0URxuTrYZZME4/VH57Hg==", "cpu": [ "riscv64" ], @@ -3632,9 +3666,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.31.0.tgz", - "integrity": "sha512-O1o5EUI0+RRMkK9wiTVpk2tyzXdXefHtRTIjBbmFREmNMy7pFeYXCFGbhKFwISA3UOExlo5GGUuuj3oMKdK6JQ==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.40.2.tgz", + "integrity": "sha512-B7LKIz+0+p348JoAL4X/YxGx9zOx3sR+o6Hj15Y3aaApNfAshK8+mWZEf759DXfRLeL2vg5LYJBB7DdcleYCoQ==", "cpu": [ "s390x" ], @@ -3646,9 +3680,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.31.0.tgz", - "integrity": "sha512-zSoHl356vKnNxwOWnLd60ixHNPRBglxpv2g7q0Cd3Pmr561gf0HiAcUBRL3S1vPqRC17Zo2CX/9cPkqTIiai1g==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.40.2.tgz", + "integrity": "sha512-lG7Xa+BmBNwpjmVUbmyKxdQJ3Q6whHjMjzQplOs5Z+Gj7mxPtWakGHqzMqNER68G67kmCX9qX57aRsW5V0VOng==", "cpu": [ "x64" ], @@ -3660,9 +3694,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.31.0.tgz", - "integrity": "sha512-ypB/HMtcSGhKUQNiFwqgdclWNRrAYDH8iMYH4etw/ZlGwiTVxBz2tDrGRrPlfZu6QjXwtd+C3Zib5pFqID97ZA==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.40.2.tgz", + "integrity": "sha512-tD46wKHd+KJvsmije4bUskNuvWKFcTOIM9tZ/RrmIvcXnbi0YK/cKS9FzFtAm7Oxi2EhV5N2OpfFB348vSQRXA==", "cpu": [ "x64" ], @@ -3674,9 +3708,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.31.0.tgz", - "integrity": "sha512-JuhN2xdI/m8Hr+aVO3vspO7OQfUFO6bKLIRTAy0U15vmWjnZDLrEgCZ2s6+scAYaQVpYSh9tZtRijApw9IXyMw==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.40.2.tgz", + "integrity": "sha512-Bjv/HG8RRWLNkXwQQemdsWw4Mg+IJ29LK+bJPW2SCzPKOUaMmPEppQlu/Fqk1d7+DX3V7JbFdbkh/NMmurT6Pg==", "cpu": [ "arm64" ], @@ -3688,9 +3722,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.31.0.tgz", - "integrity": "sha512-U1xZZXYkvdf5MIWmftU8wrM5PPXzyaY1nGCI4KI4BFfoZxHamsIe+BtnPLIvvPykvQWlVbqUXdLa4aJUuilwLQ==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.40.2.tgz", + "integrity": "sha512-dt1llVSGEsGKvzeIO76HToiYPNPYPkmjhMHhP00T9S4rDern8P2ZWvWAQUEJ+R1UdMWJ/42i/QqJ2WV765GZcA==", "cpu": [ "ia32" ], @@ -3702,9 +3736,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.31.0.tgz", - "integrity": "sha512-ul8rnCsUumNln5YWwz0ted2ZHFhzhRRnkpBZ+YRuHoRAlUji9KChpOUOndY7uykrPEPXVbHLlsdo6v5yXo/TXw==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.40.2.tgz", + "integrity": "sha512-bwspbWB04XJpeElvsp+DCylKfF4trJDa2Y9Go8O6A7YLX2LIKGcNK/CYImJN6ZP4DcuOHB4Utl3iCbnR62DudA==", "cpu": [ "x64" ], @@ -3715,42 +3749,17 @@ "win32" ] }, - "node_modules/@skiff-org/skiff-crypto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@skiff-org/skiff-crypto/-/skiff-crypto-1.0.3.tgz", - "integrity": "sha512-SGHUUo+hLqkyjirX1/ucJIZBVPloV3BYIntIIIKpIe8gfyAVi7rfQ3X6NDer/rf3yUA8YPHPxvedhh8/SWUHzg==", + "node_modules/@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", "license": "MIT", - "dependencies": { - "@stablelib/chacha20poly1305": "^1.0.1", - "argon2-browser": "^1.18.0", - "base64-js": "^1.5.1", - "buffer": "^6.0.3", - "fflate": "^0.7.3", - "futoin-hkdf": "^1.5.0", - "lodash": "^4.17.21", - "randombytes": "^2.1.0", - "semver": "^7.3.4", - "tslib": "^2.4.0", - "tweetnacl": "^1.0.3", - "varint": "^6.0.0" - } - }, - "node_modules/@skiff-org/skiff-crypto/node_modules/fflate": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.7.4.tgz", - "integrity": "sha512-5u2V/CDW15QM1XbbgS+0DfPxVB+jUKhWEKuuFuHncbk3tEEqzmoXL+2KyOFuKGqOnmdIy0/davWF1CkuwtibCw==", - "license": "MIT" - }, - "node_modules/@skiff-org/skiff-crypto/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, + "peer": true, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" } }, "node_modules/@stablelib/aead": { @@ -3865,9 +3874,9 @@ } }, "node_modules/@standardnotes/common": { - "version": "1.52.3", - "resolved": "https://registry.npmjs.org/@standardnotes/common/-/common-1.52.3.tgz", - "integrity": "sha512-Zen2vj33klRbVAhjZYiAMtdkEfq7b/fUpVyUxXXnhIIcuzlYYwAWPzMqEp+qOkzBPtSfssrNH/qADhQnsUJUCw==", + "version": "1.52.4", + "resolved": "https://registry.npmjs.org/@standardnotes/common/-/common-1.52.4.tgz", + "integrity": "sha512-+Iu8D+FIYMXW0kngJLuD5H6xZ1MzzzDViYkM3bRbnWLUwpzmjQybG+MX55PgzxYrwErOShE/pdy498Qxu1qWbw==", "license": "AGPL-3.0-or-later", "dependencies": { "reflect-metadata": "^0.2.1" @@ -4368,15 +4377,15 @@ } }, "node_modules/@swc/core": { - "version": "1.10.8", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.10.8.tgz", - "integrity": "sha512-I3G+n9qbHNu6KNraaAG1+Z1S1x5S7MGRA6OEppT8Pt3Z9uD5a/kYAGU33eXy7zY+BoKuKA2X1H0r4vSimAgU8w==", + "version": "1.11.24", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.11.24.tgz", + "integrity": "sha512-MaQEIpfcEMzx3VWWopbofKJvaraqmL6HbLlw2bFZ7qYqYw3rkhM0cQVEgyzbHtTWwCwPMFZSC2DUbhlZgrMfLg==", "dev": true, "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { "@swc/counter": "^0.1.3", - "@swc/types": "^0.1.17" + "@swc/types": "^0.1.21" }, "engines": { "node": ">=10" @@ -4386,19 +4395,19 @@ "url": "https://opencollective.com/swc" }, "optionalDependencies": { - "@swc/core-darwin-arm64": "1.10.8", - "@swc/core-darwin-x64": "1.10.8", - "@swc/core-linux-arm-gnueabihf": "1.10.8", - "@swc/core-linux-arm64-gnu": "1.10.8", - "@swc/core-linux-arm64-musl": "1.10.8", - "@swc/core-linux-x64-gnu": "1.10.8", - "@swc/core-linux-x64-musl": "1.10.8", - "@swc/core-win32-arm64-msvc": "1.10.8", - "@swc/core-win32-ia32-msvc": "1.10.8", - "@swc/core-win32-x64-msvc": "1.10.8" + "@swc/core-darwin-arm64": "1.11.24", + "@swc/core-darwin-x64": "1.11.24", + "@swc/core-linux-arm-gnueabihf": "1.11.24", + "@swc/core-linux-arm64-gnu": "1.11.24", + "@swc/core-linux-arm64-musl": "1.11.24", + "@swc/core-linux-x64-gnu": "1.11.24", + "@swc/core-linux-x64-musl": "1.11.24", + "@swc/core-win32-arm64-msvc": "1.11.24", + "@swc/core-win32-ia32-msvc": "1.11.24", + "@swc/core-win32-x64-msvc": "1.11.24" }, "peerDependencies": { - "@swc/helpers": "*" + "@swc/helpers": ">=0.5.17" }, "peerDependenciesMeta": { "@swc/helpers": { @@ -4407,9 +4416,9 @@ } }, "node_modules/@swc/core-darwin-arm64": { - "version": "1.10.8", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.10.8.tgz", - "integrity": "sha512-FtacTu9zS5YuepujQqujveNw8BQ8ESJ+pN1Z7C+WrKCHlCl+5dh0n6gMAlEj+3iRvY6UAYqkzTVeiX/bOMoJKA==", + "version": "1.11.24", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.11.24.tgz", + "integrity": "sha512-dhtVj0PC1APOF4fl5qT2neGjRLgHAAYfiVP8poJelhzhB/318bO+QCFWAiimcDoyMgpCXOhTp757gnoJJrheWA==", "cpu": [ "arm64" ], @@ -4424,9 +4433,9 @@ } }, "node_modules/@swc/core-darwin-x64": { - "version": "1.10.8", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.10.8.tgz", - "integrity": "sha512-nfk+iq7EKQwADaCERzZLSi9ovzjJcqDWaO4e2ztyCNaLFi6fP1m6+ij21aki5KAd8AXoY4fue4Mo2fuYbesX9Q==", + "version": "1.11.24", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.11.24.tgz", + "integrity": "sha512-H/3cPs8uxcj2Fe3SoLlofN5JG6Ny5bl8DuZ6Yc2wr7gQFBmyBkbZEz+sPVgsID7IXuz7vTP95kMm1VL74SO5AQ==", "cpu": [ "x64" ], @@ -4441,9 +4450,9 @@ } }, "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.10.8", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.10.8.tgz", - "integrity": "sha512-CL2zfbnrEc6nIiWbgshOz0mjn/zY8JcYqO12vGcTxmZOrh0n+mmHN2ejX91pYWQnQDtbhCmFTaEndExFpA7Gww==", + "version": "1.11.24", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.11.24.tgz", + "integrity": "sha512-PHJgWEpCsLo/NGj+A2lXZ2mgGjsr96ULNW3+T3Bj2KTc8XtMUkE8tmY2Da20ItZOvPNC/69KroU7edyo1Flfbw==", "cpu": [ "arm" ], @@ -4458,9 +4467,9 @@ } }, "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.10.8", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.10.8.tgz", - "integrity": "sha512-quS8F18DDScW3B7qnbWkz95abZ5p0xp/W8N498NAAls/YQj4jQIlf8WlAWoxVVjY/SmSus5kN5tuwhHD8t0NPw==", + "version": "1.11.24", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.11.24.tgz", + "integrity": "sha512-C2FJb08+n5SD4CYWCTZx1uR88BN41ZieoHvI8A55hfVf2woT8+6ZiBzt74qW2g+ntZ535Jts5VwXAKdu41HpBg==", "cpu": [ "arm64" ], @@ -4475,9 +4484,9 @@ } }, "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.10.8", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.10.8.tgz", - "integrity": "sha512-wI0Hny8fHbBK/OjJ7eFYP0uDKiCMMMr5OBWGKMRRUvWs2zlGeJQZbwUeCnWuLLXzDfL+feMfh5TieYlqKTTtRw==", + "version": "1.11.24", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.11.24.tgz", + "integrity": "sha512-ypXLIdszRo0re7PNNaXN0+2lD454G8l9LPK/rbfRXnhLWDBPURxzKlLlU/YGd2zP98wPcVooMmegRSNOKfvErw==", "cpu": [ "arm64" ], @@ -4492,9 +4501,9 @@ } }, "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.10.8", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.10.8.tgz", - "integrity": "sha512-24FCRUFO8gzPP2eu3soHTm3lk+ktcsIhdM2DTOlXGA+2TBYFWgAZX/yZV+eeRrtIZYSr4OcOWsNWnQ5Ma4budA==", + "version": "1.11.24", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.11.24.tgz", + "integrity": "sha512-IM7d+STVZD48zxcgo69L0yYptfhaaE9cMZ+9OoMxirNafhKKXwoZuufol1+alEFKc+Wbwp+aUPe/DeWC/Lh3dg==", "cpu": [ "x64" ], @@ -4509,9 +4518,9 @@ } }, "node_modules/@swc/core-linux-x64-musl": { - "version": "1.10.8", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.10.8.tgz", - "integrity": "sha512-mBo7M/FmUhoWpUG17MLbS98iRA7t6ThxQBWDJZd322whkN1GqrvumYm2wvvjmoMTeDOPwAL3hIIa5H+Q4vb1zA==", + "version": "1.11.24", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.11.24.tgz", + "integrity": "sha512-DZByJaMVzSfjQKKQn3cqSeqwy6lpMaQDQQ4HPlch9FWtDx/dLcpdIhxssqZXcR2rhaQVIaRQsCqwV6orSDGAGw==", "cpu": [ "x64" ], @@ -4526,9 +4535,9 @@ } }, "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.10.8", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.10.8.tgz", - "integrity": "sha512-rXJ9y77JZZXoZkgFR0mObKa3TethRBJ6Exs/pwhScl9pz4qsfxhj/bQbEu1g1i/ihmd0l+IKZwGSC7Ibh3HA2Q==", + "version": "1.11.24", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.11.24.tgz", + "integrity": "sha512-Q64Ytn23y9aVDKN5iryFi8mRgyHw3/kyjTjT4qFCa8AEb5sGUuSj//AUZ6c0J7hQKMHlg9do5Etvoe61V98/JQ==", "cpu": [ "arm64" ], @@ -4543,9 +4552,9 @@ } }, "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.10.8", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.10.8.tgz", - "integrity": "sha512-n6ekYFJEBPvTpRIqJiu6EHXVzVnuCtDTpFnn/0KVGJI1yQHriGVEovnb/+qyLh8Rwx2AZM9qgZVgMhVtfcFQJg==", + "version": "1.11.24", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.11.24.tgz", + "integrity": "sha512-9pKLIisE/Hh2vJhGIPvSoTK4uBSPxNVyXHmOrtdDot4E1FUUI74Vi8tFdlwNbaj8/vusVnb8xPXsxF1uB0VgiQ==", "cpu": [ "ia32" ], @@ -4560,9 +4569,9 @@ } }, "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.10.8", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.10.8.tgz", - "integrity": "sha512-vplXxtH/lFc/epELnAyvdCvqlDJrM+OKtkphYcbPqq50g/dEZYZ8FYHU5Df9Uo19UooWSo1LaxPk4R7n6i1Axw==", + "version": "1.11.24", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.11.24.tgz", + "integrity": "sha512-sybnXtOsdB+XvzVFlBVGgRHLqp3yRpHK7CrmpuDKszhj/QhmsaZzY/GHSeALlMtLup13M0gqbcQvsTNlAHTg3w==", "cpu": [ "x64" ], @@ -4584,9 +4593,9 @@ "license": "Apache-2.0" }, "node_modules/@swc/plugin-react-remove-properties": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/@swc/plugin-react-remove-properties/-/plugin-react-remove-properties-6.0.4.tgz", - "integrity": "sha512-f5ngaBKNSDofH+YlQ654OdKiMGvkKmodwk/HcQ15DuyortrdQ6rWrvpmG+is292dNrWk4jxARzr47kYYDXfc8w==", + "version": "6.3.2", + "resolved": "https://registry.npmjs.org/@swc/plugin-react-remove-properties/-/plugin-react-remove-properties-6.3.2.tgz", + "integrity": "sha512-q/e5wh1kpm5DcxUrhsfA/YBCs7ZMO92wNlF0nyGu6R0Pqhu5mlcby9gQPU0Zwvn6GjYDX57T3KJncwIyVaGOYw==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -4594,15 +4603,28 @@ } }, "node_modules/@swc/types": { - "version": "0.1.17", - "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.17.tgz", - "integrity": "sha512-V5gRru+aD8YVyCOMAjMpWR1Ui577DD5KSJsHP8RAxopAH22jFz6GZd/qxqjO6MJHQhcsjvjOFXyDhyLQUnMveQ==", + "version": "0.1.21", + "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.21.tgz", + "integrity": "sha512-2YEtj5HJVbKivud9N4bpPBAyZhj4S2Ipe5LkUG94alTpr7in/GU/EARgPAd3BwU+YOmFVJC2+kjqhGRi3r0ZpQ==", "dev": true, "license": "Apache-2.0", "dependencies": { "@swc/counter": "^0.1.3" } }, + "node_modules/@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "license": "MIT", + "peer": true, + "dependencies": { + "defer-to-connect": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@tanstack/query-core": { "version": "4.36.1", "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-4.36.1.tgz", @@ -4641,12 +4663,12 @@ } }, "node_modules/@tanstack/react-virtual": { - "version": "3.11.2", - "resolved": "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.11.2.tgz", - "integrity": "sha512-OuFzMXPF4+xZgx8UzJha0AieuMihhhaWG0tCqpp6tDzlFwOmNBPYMuLOtMJ1Tr4pXLHmgjcWhG6RlknY2oNTdQ==", + "version": "3.13.8", + "resolved": "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.13.8.tgz", + "integrity": "sha512-meS2AanUg50f3FBSNoAdBSRAh8uS0ue01qm7zrw65KGJtiXB9QXfybqZwkh4uFpRv2iX/eu5tjcH5wqUpwYLPg==", "license": "MIT", "dependencies": { - "@tanstack/virtual-core": "3.11.2" + "@tanstack/virtual-core": "3.13.8" }, "funding": { "type": "github", @@ -4658,9 +4680,9 @@ } }, "node_modules/@tanstack/virtual-core": { - "version": "3.11.2", - "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.11.2.tgz", - "integrity": "sha512-vTtpNt7mKCiZ1pwU9hfKPhpdVO2sVzFQsxoVBGtOSHxlrRRzYr8iQ2TlwbAcRYCcEiZ9ECAM8kBzH0v2+VzfKw==", + "version": "3.13.8", + "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.13.8.tgz", + "integrity": "sha512-BT6w89Hqy7YKaWewYzmecXQzcJh6HTBbKYJIIkMaNU49DZ06LoTV3z32DWWEdUsgW6n1xTmwTLs4GtWrZC261w==", "license": "MIT", "funding": { "type": "github", @@ -4677,6 +4699,37 @@ "polished": "^4.0.5" } }, + "node_modules/@theme-ui/color-modes": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@theme-ui/color-modes/-/color-modes-0.16.2.tgz", + "integrity": "sha512-jWEWx53lxNgWCT38i/kwLV2rsvJz8lVZgi5oImnVwYba9VejXD23q1ckbNFJHosQ8KKXY87ht0KPC6BQFIiHtQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@theme-ui/core": "^0.16.2", + "@theme-ui/css": "^0.16.2", + "deepmerge": "^4.2.2" + }, + "peerDependencies": { + "@emotion/react": "^11.11.1", + "react": ">=18" + } + }, + "node_modules/@theme-ui/color-modes/node_modules/@theme-ui/core": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@theme-ui/core/-/core-0.16.2.tgz", + "integrity": "sha512-bBd/ltbwO9vIUjF1jtlOX6XN0IIOdf1vzBp2JCKsSOqdfn84m+XL8OogIe/zOhQ+aM94Nrq4+32tFJc8sFav4Q==", + "license": "MIT", + "peer": true, + "dependencies": { + "@theme-ui/css": "^0.16.2", + "deepmerge": "^4.2.2" + }, + "peerDependencies": { + "@emotion/react": "^11.11.1", + "react": ">=18" + } + }, "node_modules/@theme-ui/components": { "version": "0.16.1", "resolved": "https://registry.npmjs.org/@theme-ui/components/-/components-0.16.1.tgz", @@ -4722,6 +4775,37 @@ "@emotion/react": "^11.11.1" } }, + "node_modules/@theme-ui/theme-provider": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@theme-ui/theme-provider/-/theme-provider-0.16.2.tgz", + "integrity": "sha512-LRnVevODcGqO0JyLJ3wht+PV3ZoZcJ7XXLJAJWDoGeII4vZcPQKwVy4Lpz/juHsZppQxKcB3U+sQDGBnP25irQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@theme-ui/color-modes": "^0.16.2", + "@theme-ui/core": "^0.16.2", + "@theme-ui/css": "^0.16.2" + }, + "peerDependencies": { + "@emotion/react": "^11.11.1", + "react": ">=18" + } + }, + "node_modules/@theme-ui/theme-provider/node_modules/@theme-ui/core": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@theme-ui/core/-/core-0.16.2.tgz", + "integrity": "sha512-bBd/ltbwO9vIUjF1jtlOX6XN0IIOdf1vzBp2JCKsSOqdfn84m+XL8OogIe/zOhQ+aM94Nrq4+32tFJc8sFav4Q==", + "license": "MIT", + "peer": true, + "dependencies": { + "@theme-ui/css": "^0.16.2", + "deepmerge": "^4.2.2" + }, + "peerDependencies": { + "@emotion/react": "^11.11.1", + "react": ">=18" + } + }, "node_modules/@trpc/client": { "version": "10.45.2", "resolved": "https://registry.npmjs.org/@trpc/client/-/client-10.45.2.tgz", @@ -4754,7 +4838,6 @@ "version": "10.45.2", "resolved": "https://registry.npmjs.org/@trpc/server/-/server-10.45.2.tgz", "integrity": "sha512-wOrSThNNE4HUnuhJG6PfDRp4L2009KDVxsd+2VYH8ro6o/7/jwYZ8Uu5j+VaW+mOmc8EHerHzGcdbGNQSAUPgg==", - "dev": true, "funding": [ "https://trpc.io/sponsor" ], @@ -4775,9 +4858,9 @@ } }, "node_modules/@types/babel__generator": { - "version": "7.6.8", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", - "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", "dev": true, "license": "MIT", "dependencies": { @@ -4796,15 +4879,28 @@ } }, "node_modules/@types/babel__traverse": { - "version": "7.20.6", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", - "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz", + "integrity": "sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==", "dev": true, "license": "MIT", "dependencies": { "@babel/types": "^7.20.7" } }, + "node_modules/@types/cacheable-request": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", + "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/http-cache-semantics": "*", + "@types/keyv": "^3.1.4", + "@types/node": "*", + "@types/responselike": "^1.0.0" + } + }, "node_modules/@types/debug": { "version": "4.1.12", "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", @@ -4814,10 +4910,34 @@ "@types/ms": "*" } }, + "node_modules/@types/eslint": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", + "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, "node_modules/@types/estree": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", - "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", + "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", "dev": true, "license": "MIT" }, @@ -4844,6 +4964,13 @@ "@types/unist": "^2" } }, + "node_modules/@types/http-cache-semantics": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", + "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==", + "license": "MIT", + "peer": true + }, "node_modules/@types/json-schema": { "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", @@ -4857,6 +4984,16 @@ "integrity": "sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ==", "license": "MIT" }, + "node_modules/@types/keyv": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", + "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/marked": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/@types/marked/-/marked-6.0.0.tgz", @@ -4884,13 +5021,12 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "22.10.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.7.tgz", - "integrity": "sha512-V09KvXxFiutGp6B7XkpaDXlNadZxrzajcY50EuoLIpQ6WWYCSvf19lVIazzfIzQvhUN2HjX12spLojTnhuKlGg==", - "dev": true, + "version": "22.15.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.18.tgz", + "integrity": "sha512-v1DKRfUdyW+jJhZNEI1PYy29S2YRxMV5AOO/x/SjKmW0acCIOqmbj6Haf9eHAhsPmrhlHSxEhv/1WszcLWV4cg==", "license": "MIT", "dependencies": { - "undici-types": "~6.20.0" + "undici-types": "~6.21.0" } }, "node_modules/@types/node-fetch": { @@ -4927,14 +5063,12 @@ "version": "15.7.14", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz", "integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==", - "dev": true, "license": "MIT" }, "node_modules/@types/react": { "version": "18.3.5", "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.5.tgz", "integrity": "sha512-WeqMfGJLGuLCqHGYRGHxnKrXcTitc6L/nBUWfWPcTarG3t9PsquqUMuVeXZeca+mglY4Vo5GZjCi0A3Or2lnxA==", - "dev": true, "license": "MIT", "dependencies": { "@types/prop-types": "*", @@ -4942,9 +5076,9 @@ } }, "node_modules/@types/react-avatar-editor": { - "version": "13.0.3", - "resolved": "https://registry.npmjs.org/@types/react-avatar-editor/-/react-avatar-editor-13.0.3.tgz", - "integrity": "sha512-icRAOKLKjkIsExFAiFSquztByJwpyTKEgnBRYSuLG2V81bM3LtQZi7hRS+Hr+4AXreq0yNRjVZiMOVeEeh6DLg==", + "version": "13.0.4", + "resolved": "https://registry.npmjs.org/@types/react-avatar-editor/-/react-avatar-editor-13.0.4.tgz", + "integrity": "sha512-WQjmacEOoEYQb6CkAXYspmtruCPXFzLjEI92zV27yqveGBRkh7Quo5oYMvAgaEeqpXsGEr/wzXcdSTaH982Wtg==", "dev": true, "license": "MIT", "dependencies": { @@ -4988,6 +5122,16 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/responselike": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz", + "integrity": "sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/styled-system": { "version": "5.1.23", "resolved": "https://registry.npmjs.org/@types/styled-system/-/styled-system-5.1.23.tgz", @@ -5011,20 +5155,31 @@ "license": "MIT" }, "node_modules/@types/wicg-file-system-access": { - "version": "2023.10.5", - "resolved": "https://registry.npmjs.org/@types/wicg-file-system-access/-/wicg-file-system-access-2023.10.5.tgz", - "integrity": "sha512-e9kZO9kCdLqT2h9Tw38oGv9UNzBBWaR1MzuAavxPcsV/7FJ3tWbU6RI3uB+yKIDPGLkGVbplS52ub0AcRLvrhA==", + "version": "2023.10.6", + "resolved": "https://registry.npmjs.org/@types/wicg-file-system-access/-/wicg-file-system-access-2023.10.6.tgz", + "integrity": "sha512-YO/183gNRzZFSdKu+ikkD7ambAj4PhgjFAF2A/Mw/7wroSF6ne8r804RkpZzqrJ/F6DO2/IYlQF/ULOZ/bhKyA==", "dev": true, "license": "MIT" }, + "node_modules/@types/yauzl": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@vitejs/plugin-react-swc": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-3.7.2.tgz", - "integrity": "sha512-y0byko2b2tSVVf5Gpng1eEhX1OvPC7x8yns1Fx8jDzlJp4LS6CMkCPfLw47cjyoMrshQDoQw4qcgjsU9VvlCew==", + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-3.9.0.tgz", + "integrity": "sha512-jYFUSXhwMCYsh/aQTgSGLIN3Foz5wMbH9ahb0Zva//UzwZYbMiZd7oT3AU9jHT9DLswYDswsRwPU9jVF3yA48Q==", "dev": true, "license": "MIT", "dependencies": { - "@swc/core": "^1.7.26" + "@swc/core": "^1.11.21" }, "peerDependencies": { "vite": "^4 || ^5 || ^6" @@ -5084,9 +5239,9 @@ } }, "node_modules/@vitest/pretty-format": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.8.tgz", - "integrity": "sha512-9HiSZ9zpqNLKlbIDRWOnAWqgcA7xu+8YxXSekhr0Ykab7PAYFkhkwoqVArPOtJhPmYeE2YHgKZlj3CP36z2AJQ==", + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.9.tgz", + "integrity": "sha512-KhRIdGV2U9HOUzxfiHmY8IFHTdqtOhIzCpd8WRdJiE7D/HUcZVD0EgQCVjm+Q9gkUXWgBvMmTtZgIG48wq7sOQ==", "dev": true, "license": "MIT", "dependencies": { @@ -5125,6 +5280,19 @@ "url": "https://opencollective.com/vitest" } }, + "node_modules/@vitest/snapshot/node_modules/@vitest/pretty-format": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.8.tgz", + "integrity": "sha512-9HiSZ9zpqNLKlbIDRWOnAWqgcA7xu+8YxXSekhr0Ykab7PAYFkhkwoqVArPOtJhPmYeE2YHgKZlj3CP36z2AJQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, "node_modules/@vitest/spy": { "version": "2.1.8", "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-2.1.8.tgz", @@ -5153,84 +5321,334 @@ "url": "https://opencollective.com/vitest" } }, - "node_modules/@zip.js/zip.js": { - "version": "2.7.54", - "resolved": "https://registry.npmjs.org/@zip.js/zip.js/-/zip.js-2.7.54.tgz", - "integrity": "sha512-qMrJVg2hoEsZJjMJez9yI2+nZlBUxgYzGV3mqcb2B/6T1ihXp0fWBDYlVHlHquuorgNUQP5a8qSmX6HF5rFJNg==", - "license": "BSD-3-Clause", - "engines": { - "bun": ">=0.7.0", - "deno": ">=1.0.0", - "node": ">=16.5.0" - } - }, - "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "license": "ISC", - "optional": true - }, - "node_modules/acorn": { - "version": "8.14.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", - "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "node_modules/@vitest/utils/node_modules/@vitest/pretty-format": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.8.tgz", + "integrity": "sha512-9HiSZ9zpqNLKlbIDRWOnAWqgcA7xu+8YxXSekhr0Ykab7PAYFkhkwoqVArPOtJhPmYeE2YHgKZlj3CP36z2AJQ==", "dev": true, "license": "MIT", - "bin": { - "acorn": "bin/acorn" + "dependencies": { + "tinyrainbow": "^1.2.0" }, - "engines": { - "node": ">=0.4.0" + "funding": { + "url": "https://opencollective.com/vitest" } }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "node_modules/@webassemblyjs/ast": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", + "dev": true, "license": "MIT", - "optional": true, + "peer": true, "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" } }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", "dev": true, "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } + "peer": true }, - "node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", "dev": true, "license": "MIT", - "peerDependencies": { - "ajv": "^6.9.1" - } + "peer": true }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "devOptional": true, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", + "dev": true, "license": "MIT", - "engines": { + "peer": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true, + "license": "Apache-2.0", + "peer": true + }, + "node_modules/@zip.js/zip.js": { + "version": "2.7.61", + "resolved": "https://registry.npmjs.org/@zip.js/zip.js/-/zip.js-2.7.61.tgz", + "integrity": "sha512-+tZvY10nkW0pJoU88XFWLBd2O9PJPvEnDhSY/jQHfIroN5W5qGfPgFHKC4lkx0+9Vw/0IAkNHf1XBVInBkM9Vw==", + "license": "BSD-3-Clause", + "engines": { + "bun": ">=0.7.0", + "deno": ">=1.0.0", + "node": ">=16.5.0" + } + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "license": "ISC", + "optional": true + }, + "node_modules/acorn": { + "version": "8.14.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", + "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "devOptional": true, + "license": "MIT", + "engines": { "node": ">=8" } }, @@ -5272,12 +5690,6 @@ "node": ">=10" } }, - "node_modules/argon2-browser": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/argon2-browser/-/argon2-browser-1.18.0.tgz", - "integrity": "sha512-ImVAGIItnFnvET1exhsQB7apRztcoC5TnlSqernMJDUjbc/DLq3UEYeXFrLPrlaIl8cVfwnXb6wX2KpFf2zxHw==", - "license": "MIT" - }, "node_modules/argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -5343,6 +5755,16 @@ "dev": true, "license": "MIT" }, + "node_modules/async-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/async-mutex": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.5.0.tgz", @@ -5378,9 +5800,9 @@ } }, "node_modules/autoprefixer": { - "version": "10.4.20", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", - "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", + "version": "10.4.21", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.21.tgz", + "integrity": "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==", "dev": true, "funding": [ { @@ -5398,11 +5820,11 @@ ], "license": "MIT", "dependencies": { - "browserslist": "^4.23.3", - "caniuse-lite": "^1.0.30001646", + "browserslist": "^4.24.4", + "caniuse-lite": "^1.0.30001702", "fraction.js": "^4.3.7", "normalize-range": "^0.1.2", - "picocolors": "^1.0.1", + "picocolors": "^1.1.1", "postcss-value-parser": "^4.2.0" }, "bin": { @@ -5432,9 +5854,9 @@ } }, "node_modules/axios": { - "version": "1.7.9", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.9.tgz", - "integrity": "sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.9.0.tgz", + "integrity": "sha512-re4CqKTJaURpzbLHtIi6XpDv20/CnpXOtjRY5/CU32L8gU8ek9UIivcfvSWvmKEngmVbrUtPpdDwWDWL7DNHvg==", "license": "MIT", "dependencies": { "follow-redirects": "^1.15.6", @@ -5458,13 +5880,13 @@ } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.12", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.12.tgz", - "integrity": "sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og==", + "version": "0.4.13", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.13.tgz", + "integrity": "sha512-3sX/eOms8kd3q2KZ6DAhKPc0dgm525Gqq5NtWKZ7QYYZEv57OQ54KtblzJzH1lQF/eQxO8KjWGIK9IPUJNus5g==", "license": "MIT", "dependencies": { "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.6.3", + "@babel/helper-define-polyfill-provider": "^0.6.4", "semver": "^6.3.1" }, "peerDependencies": { @@ -5472,25 +5894,25 @@ } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.10.6", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz", - "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==", + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.11.1.tgz", + "integrity": "sha512-yGCqvBT4rwMczo28xkH/noxJ6MZ4nJfkVYdoDaC/utLtWrXxv27HVrzAeSbqR8SxDsp46n0YF47EbHoixy6rXQ==", "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.2", - "core-js-compat": "^3.38.0" + "@babel/helper-define-polyfill-provider": "^0.6.3", + "core-js-compat": "^3.40.0" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.3.tgz", - "integrity": "sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q==", + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.4.tgz", + "integrity": "sha512-7gD3pRadPrbjhjLyxebmx/WrFYcuSjZ0XbdUujQMZ/fcE9oeewk2U/7PCvez84UeuK3oSjmPZ0Ch0dlupQvGzw==", "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.3" + "@babel/helper-define-polyfill-provider": "^0.6.4" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" @@ -5608,6 +6030,15 @@ "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", "license": "ISC" }, + "node_modules/boolean": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz", + "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "license": "MIT", + "optional": true, + "peer": true + }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -5620,9 +6051,9 @@ } }, "node_modules/browserslist": { - "version": "4.24.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", - "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", + "version": "4.24.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.5.tgz", + "integrity": "sha512-FDToo4Wo82hIdgc1CQ+NQD0hEhmpPjrZ3hiUgwgOG6IuTdlpr8jdjyG24P6cNP1yJpTLzS5OcGgSw0xmDU1/Tw==", "funding": [ { "type": "opencollective", @@ -5639,10 +6070,10 @@ ], "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001688", - "electron-to-chromium": "^1.5.73", + "caniuse-lite": "^1.0.30001716", + "electron-to-chromium": "^1.5.149", "node-releases": "^2.0.19", - "update-browserslist-db": "^1.1.1" + "update-browserslist-db": "^1.1.3" }, "bin": { "browserslist": "cli.js" @@ -5655,6 +6086,7 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "dev": true, "funding": [ { "type": "github", @@ -5675,6 +6107,16 @@ "ieee754": "^1.2.1" } }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "license": "MIT", + "peer": true, + "engines": { + "node": "*" + } + }, "node_modules/buffer-equal-constant-time": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", @@ -5698,6 +6140,35 @@ "node": ">=8" } }, + "node_modules/cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=10.6.0" + } + }, + "node_modules/cacheable-request": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz", + "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==", + "license": "MIT", + "peer": true, + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/call-bind": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", @@ -5718,10 +6189,9 @@ } }, "node_modules/call-bind-apply-helpers": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz", - "integrity": "sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==", - "dev": true, + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", "license": "MIT", "dependencies": { "es-errors": "^1.3.0", @@ -5732,14 +6202,14 @@ } }, "node_modules/call-bound": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz", - "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", "dev": true, "license": "MIT", "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "get-intrinsic": "^1.2.6" + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" }, "engines": { "node": ">= 0.4" @@ -5771,9 +6241,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001695", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001695.tgz", - "integrity": "sha512-vHyLade6wTgI2u1ec3WQBxv+2BrTERV28UXQu9LO6lZ9pYeMk34vjXFLOxo1A4UBA8XTL4njRQZdno/yYaSmWw==", + "version": "1.0.30001718", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001718.tgz", + "integrity": "sha512-AflseV1ahcSunK53NfEs9gFWgOEmzr0f+kaMFA4xiLZlr9Hzt7HxcSpIFcnNCUkz6R6dWKa54rUz3HUmI3nVcw==", "funding": [ { "type": "opencollective", @@ -5817,9 +6287,9 @@ } }, "node_modules/chai": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/chai/-/chai-5.1.2.tgz", - "integrity": "sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.2.0.tgz", + "integrity": "sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==", "dev": true, "license": "MIT", "dependencies": { @@ -5900,6 +6370,17 @@ "node": ">=10" } }, + "node_modules/chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6.0" + } + }, "node_modules/clipboard-polyfill": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/clipboard-polyfill/-/clipboard-polyfill-4.1.0.tgz", @@ -5921,6 +6402,19 @@ "node": ">=12" } }, + "node_modules/clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "license": "MIT", + "peer": true, + "dependencies": { + "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -6020,12 +6514,12 @@ "license": "MIT" }, "node_modules/core-js-compat": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.40.0.tgz", - "integrity": "sha512-0XEDpr5y5mijvw8Lbc6E5AkjrHfp7eEoPlu36SWeAbcL8fn1G1ANe8DBlo2XoNN89oVpxWwOjYIPVzR4ZvsKCQ==", + "version": "3.42.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.42.0.tgz", + "integrity": "sha512-bQasjMfyDGyaeWKBIu33lHh9qlSR0MFE/Nmc6nMjf/iU9b3rSMdAYz1Baxrv4lPdGUsTqZudHA4jIGSJy0SWZQ==", "license": "MIT", "dependencies": { - "browserslist": "^4.24.3" + "browserslist": "^4.24.4" }, "funding": { "type": "opencollective", @@ -6162,9 +6656,9 @@ "license": "MIT" }, "node_modules/debug": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -6179,9 +6673,9 @@ } }, "node_modules/decode-named-character-reference": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", - "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.1.0.tgz", + "integrity": "sha512-Wy+JTSbFThEOXQIR2L6mxJvEs+veIzpmqD7ynWxMXGpnk3smkHQOp6forLdHsKpAMW9iJpaBBIxz285t1n1C3w==", "license": "MIT", "dependencies": { "character-entities": "^2.0.0" @@ -6195,7 +6689,6 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "devOptional": true, "license": "MIT", "dependencies": { "mimic-response": "^3.1.0" @@ -6211,7 +6704,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "devOptional": true, "license": "MIT", "engines": { "node": ">=10" @@ -6249,11 +6741,21 @@ "node": ">=0.10.0" } }, + "node_modules/defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=10" + } + }, "node_modules/define-data-property": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "es-define-property": "^1.0.0", @@ -6281,7 +6783,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "define-data-property": "^1.0.1", @@ -6321,15 +6823,23 @@ } }, "node_modules/detect-libc": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", - "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz", + "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==", "devOptional": true, "license": "Apache-2.0", "engines": { "node": ">=8" } }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "license": "MIT", + "optional": true, + "peer": true + }, "node_modules/diff": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", @@ -6456,7 +6966,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", - "dev": true, "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.1", @@ -6493,9 +7002,9 @@ } }, "node_modules/electron": { - "version": "35.0.3", - "resolved": "https://registry.npmjs.org/electron/-/electron-35.0.3.tgz", - "integrity": "sha512-kjQAYEWXSr2TyK19IZoF85dzFIBaYuX7Yp/C+34b5Y/jmI2z270CGie+RjmEGMMitsy0G8YJKftukhYMuWlK6g==", + "version": "36.2.0", + "resolved": "https://registry.npmjs.org/electron/-/electron-36.2.0.tgz", + "integrity": "sha512-5yldoRjBKxPQfI0QMX+qq750o3Nl8N1SZnJqOPMq0gZ6rIJ+7y4ZLp808GrFwjfTm05TYgq3GSD8FGuKQZqwEw==", "hasInstallScript": true, "license": "MIT", "peer": true, @@ -6512,15 +7021,15 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.84", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.84.tgz", - "integrity": "sha512-I+DQ8xgafao9Ha6y0qjHHvpZ9OfyA1qKlkHkjywxzniORU2awxyz7f/iVJcULmrF2yrM3nHQf+iDjJtbbexd/g==", + "version": "1.5.154", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.154.tgz", + "integrity": "sha512-G4VCFAyKbp1QJ+sWdXYIRYsPGvlV5sDACfCmoMFog3rjm1syLhI41WXm/swZypwCIWIm4IFLWzHY14joWMQ5Fw==", "license": "ISC" }, "node_modules/electron-trpc": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/electron-trpc/-/electron-trpc-0.6.1.tgz", - "integrity": "sha512-Yj13UrjjjOW4+TD06YunAML2tgmtSYJMiFw6E6r1D4in/0EZ2MRwMoQc7AtMPAA6In23e+Kmq71e8h0ir+c3Jg==", + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/electron-trpc/-/electron-trpc-0.7.1.tgz", + "integrity": "sha512-aWjZ5pLeVhrX9A9d8O8YgR8N+q4IXXzc76CJT1PwtDijIw+y5I+c75IAAtZ4JayYLeR3ll95PNGl5RTBu2qePw==", "license": "MIT", "dependencies": { "debug": "^4.3.4" @@ -6552,12 +7061,26 @@ "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "devOptional": true, "license": "MIT", "dependencies": { "once": "^1.4.0" } }, + "node_modules/enhanced-resolve": { + "version": "5.18.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz", + "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/entities": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", @@ -6570,6 +7093,16 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6" + } + }, "node_modules/error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", @@ -6649,7 +7182,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -6659,16 +7191,15 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" } }, "node_modules/es-module-lexer": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz", - "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", "dev": true, "license": "MIT" }, @@ -6676,7 +7207,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", - "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0" @@ -6689,7 +7219,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", - "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0", @@ -6719,6 +7248,14 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "license": "MIT", + "optional": true, + "peer": true + }, "node_modules/esbuild": { "version": "0.21.5", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", @@ -6779,6 +7316,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "license": "BSD-2-Clause", + "peer": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, "node_modules/esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", @@ -6792,6 +7344,42 @@ "node": ">=4" } }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "peer": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "peer": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "license": "BSD-2-Clause", + "peer": true, + "engines": { + "node": ">=4.0" + } + }, "node_modules/estree-walker": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", @@ -6815,6 +7403,17 @@ "integrity": "sha512-4IJSItgS/41IxN5UVAVuAyczwZF7ZIEsM1XAoUzIHA6A+xzusEZUutdXz2Nr+MQPLxfTiCvqE79/C8HT8fKFvA==", "license": "MIT" }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.8.x" + } + }, "node_modules/exenv": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/exenv/-/exenv-1.2.2.tgz", @@ -6832,9 +7431,9 @@ } }, "node_modules/expect-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.1.0.tgz", - "integrity": "sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.2.1.tgz", + "integrity": "sha512-/kP8CAwxzLVEeFrMm4kMmy4CCDlpipyA7MYLVrdJIkV0fYF0UaigQHRsxHiuY/GEea+bh4KSv3TIlgr+2UL6bw==", "dev": true, "license": "Apache-2.0", "engines": { @@ -6859,6 +7458,27 @@ "node": ">=0.10.0" } }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "license": "BSD-2-Clause", + "peer": true, + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -6890,10 +7510,20 @@ ], "license": "BSD-3-Clause" }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "license": "MIT", + "peer": true, + "dependencies": { + "pend": "~1.2.0" + } + }, "node_modules/fdir": { - "version": "6.4.3", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.3.tgz", - "integrity": "sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==", + "version": "6.4.4", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz", + "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==", "dev": true, "license": "MIT", "peerDependencies": { @@ -7032,23 +7662,30 @@ } }, "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", "dev": true, "license": "MIT", "dependencies": { - "is-callable": "^1.1.3" + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/form-data": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", - "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz", + "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==", "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", "mime-types": "^2.1.12" }, "engines": { @@ -7076,6 +7713,21 @@ "devOptional": true, "license": "MIT" }, + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "license": "MIT", + "peer": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, "node_modules/fs-minipass": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", @@ -7171,15 +7823,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/futoin-hkdf": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/futoin-hkdf/-/futoin-hkdf-1.5.3.tgz", - "integrity": "sha512-SewY5KdMpaoCeh7jachEWFsh1nNlaDjNHZXWqL5IGwtpEYHTgkr2+AMCgNwKWkcc0wpSYrZfR7he4WdmHFtDxQ==", - "license": "Apache-2.0", - "engines": { - "node": ">=8" - } - }, "node_modules/gauge": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", @@ -7206,7 +7849,6 @@ "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" @@ -7223,18 +7865,17 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.7.tgz", - "integrity": "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==", - "dev": true, + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", "license": "MIT", "dependencies": { - "call-bind-apply-helpers": "^1.0.1", + "call-bind-apply-helpers": "^1.0.2", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", + "es-object-atoms": "^1.1.1", "function-bind": "^1.1.2", - "get-proto": "^1.0.0", + "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", @@ -7258,7 +7899,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", - "dev": true, "license": "MIT", "dependencies": { "dunder-proto": "^1.0.1", @@ -7268,6 +7908,22 @@ "node": ">= 0.4" } }, + "node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "license": "MIT", + "peer": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/get-symbol-description": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", @@ -7315,6 +7971,47 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true, + "license": "BSD-2-Clause", + "peer": true + }, + "node_modules/global-agent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-3.0.0.tgz", + "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", + "license": "BSD-3-Clause", + "optional": true, + "peer": true, + "dependencies": { + "boolean": "^3.0.1", + "es6-error": "^4.1.1", + "matcher": "^3.0.0", + "roarr": "^2.15.3", + "semver": "^7.3.2", + "serialize-error": "^7.0.1" + }, + "engines": { + "node": ">=10.0" + } + }, + "node_modules/global-agent/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "license": "ISC", + "optional": true, + "peer": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", @@ -7328,7 +8025,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "define-properties": "^1.2.1", @@ -7354,7 +8051,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -7363,11 +8059,36 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/got": { + "version": "11.8.6", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", + "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", + "license": "MIT", + "peer": true, + "dependencies": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=10.19.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true, "license": "ISC" }, "node_modules/gray-matter": { @@ -7426,7 +8147,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "es-define-property": "^1.0.0" @@ -7455,7 +8176,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -7468,7 +8188,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "dev": true, "license": "MIT", "dependencies": { "has-symbols": "^1.0.3" @@ -7667,9 +8386,9 @@ } }, "node_modules/hotkeys-js": { - "version": "3.13.9", - "resolved": "https://registry.npmjs.org/hotkeys-js/-/hotkeys-js-3.13.9.tgz", - "integrity": "sha512-3TRCj9u9KUH6cKo25w4KIdBfdBfNRjfUwrljCLDC2XhmPDG0SjAZFcFZekpUZFmXzfYoGhFDcdx2gX/vUVtztQ==", + "version": "3.13.10", + "resolved": "https://registry.npmjs.org/hotkeys-js/-/hotkeys-js-3.13.10.tgz", + "integrity": "sha512-O3ktQfRV5eMDCIxj60enw5FBLQfTiRnX6evXn3UFeWylIcHAXwRkRTeiGX8dg3MKaM7y3SNj6PmcCxrwuoIBtA==", "license": "MIT", "funding": { "url": "https://jaywcjlove.github.io/#/sponsor" @@ -7704,6 +8423,27 @@ "entities": "^4.4.0" } }, + "node_modules/http-cache-semantics": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", + "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==", + "license": "BSD-2-Clause", + "peer": true + }, + "node_modules/http2-wrapper": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "license": "MIT", + "peer": true, + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" + }, + "engines": { + "node": ">=10.19.0" + } + }, "node_modules/https-proxy-agent": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", @@ -7729,6 +8469,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "devOptional": true, "funding": [ { "type": "github", @@ -7746,9 +8487,9 @@ "license": "BSD-3-Clause" }, "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", "license": "MIT", "dependencies": { "parent-module": "^1.0.0", @@ -7834,12 +8575,13 @@ "license": "MIT" }, "node_modules/is-async-function": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.0.tgz", - "integrity": "sha512-GExz9MtyhlZyXYLxzlJRj5WUCE661zhDa1Yna52CN57AJsymh+DvXXjyveSioqSRdxvUrdKdvqB1b5cVKsNpWQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", "dev": true, "license": "MIT", "dependencies": { + "async-function": "^1.0.0", "call-bound": "^1.0.3", "get-proto": "^1.0.1", "has-tostringtag": "^1.0.2", @@ -7869,13 +8611,13 @@ } }, "node_modules/is-boolean-object": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.1.tgz", - "integrity": "sha512-l9qO6eFlUETHtuihLcYOaLKByJ1f+N4kthcU9YjHy3N+B3hWv0y/2Nd0mu/7lTFnRQHTrSdXF50HQ3bl5fEnng==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", + "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", "dev": true, "license": "MIT", "dependencies": { - "call-bound": "^1.0.2", + "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" }, "engines": { @@ -8236,13 +8978,13 @@ } }, "node_modules/is-weakref": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.0.tgz", - "integrity": "sha512-SXM8Nwyys6nT5WP6pltOwKytLV7FqQ4UiibxVmW+EIosHcmCqkkjViTb5SNssDlkCiEYRP1/pdWUKVvZBmsR2Q==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", + "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", "dev": true, "license": "MIT", "dependencies": { - "call-bound": "^1.0.2" + "call-bound": "^1.0.3" }, "engines": { "node": ">= 0.4" @@ -8288,16 +9030,6 @@ "dev": true, "license": "MIT" }, - "node_modules/isomorphic-fetch": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz", - "integrity": "sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==", - "license": "MIT", - "dependencies": { - "node-fetch": "^2.6.1", - "whatwg-fetch": "^3.4.1" - } - }, "node_modules/jake": { "version": "10.9.2", "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz", @@ -8317,6 +9049,39 @@ "node": ">=10" } }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, "node_modules/js-sha256": { "version": "0.10.1", "resolved": "https://registry.npmjs.org/js-sha256/-/js-sha256-0.10.1.tgz", @@ -8354,6 +9119,13 @@ "node": ">=6" } }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "license": "MIT", + "peer": true + }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", @@ -8374,11 +9146,18 @@ "dev": true, "license": "MIT" }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "license": "ISC", + "optional": true, + "peer": true + }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, "license": "MIT", "bin": { "json5": "lib/cli.js" @@ -8387,6 +9166,16 @@ "node": ">=6" } }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "license": "MIT", + "peer": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, "node_modules/jsonpointer": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", @@ -8420,9 +9209,9 @@ } }, "node_modules/jsonwebtoken/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -8432,12 +9221,12 @@ } }, "node_modules/jwa": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", - "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.2.tgz", + "integrity": "sha512-eeH5JO+21J78qMvTIDdBXidBd6nG2kZjg5Ohz/1fpa28Z4CcsWUzJ1ZZyFq/3z3N17aZy+ZuBoHljASbL1WfOw==", "license": "MIT", "dependencies": { - "buffer-equal-constant-time": "1.0.1", + "buffer-equal-constant-time": "^1.0.1", "ecdsa-sig-formatter": "1.0.11", "safe-buffer": "^5.0.1" } @@ -8489,6 +9278,16 @@ "prebuild-install": "^7.0.1" } }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "license": "MIT", + "peer": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, "node_modules/kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", @@ -8523,6 +9322,17 @@ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "license": "MIT" }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6.11.5" + } + }, "node_modules/loader-utils": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", @@ -8542,6 +9352,7 @@ "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, "license": "MIT" }, "node_modules/lodash.debounce": { @@ -8566,6 +9377,7 @@ "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", + "deprecated": "This package is deprecated. Use require('node:util').isDeepStrictEqual instead.", "license": "MIT" }, "node_modules/lodash.isinteger": { @@ -8669,9 +9481,9 @@ } }, "node_modules/loupe": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.2.tgz", - "integrity": "sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.3.tgz", + "integrity": "sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==", "dev": true, "license": "MIT" }, @@ -8685,6 +9497,16 @@ "tslib": "^2.0.3" } }, + "node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, "node_modules/lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", @@ -8701,9 +9523,9 @@ "license": "MIT" }, "node_modules/magic-bytes.js": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/magic-bytes.js/-/magic-bytes.js-1.10.0.tgz", - "integrity": "sha512-/k20Lg2q8LE5xiaaSkMXk4sfvI+9EGEykFS4b0CHHGWqDYU0bGUFSwchNOMA56D7TCs9GwVTkqe9als1/ns8UQ==", + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/magic-bytes.js/-/magic-bytes.js-1.12.1.tgz", + "integrity": "sha512-ThQLOhN86ZkJ7qemtVRGYM+gRgR8GEXNli9H/PMvpnZsE44Xfh3wx9kGJaldg314v85m+bFW6WBMaVHJc/c3zA==", "license": "MIT" }, "node_modules/magic-string": { @@ -8743,9 +9565,9 @@ } }, "node_modules/marked": { - "version": "15.0.6", - "resolved": "https://registry.npmjs.org/marked/-/marked-15.0.6.tgz", - "integrity": "sha512-Y07CUOE+HQXbVDCGl3LXggqJDbXDP2pArc2C1N1RRMN0ONiShoSsIInMd5Gsxupe7fKLpgimTV+HOJ9r7bA+pg==", + "version": "15.0.11", + "resolved": "https://registry.npmjs.org/marked/-/marked-15.0.11.tgz", + "integrity": "sha512-1BEXAU2euRCG3xwgLVT1y0xbJEld1XOrmRJpUwRCcy7rxhSCwMrmEu9LXoPhHSCJG41V7YcQ2mjKRr5BA3ITIA==", "dev": true, "license": "MIT", "bin": { @@ -8755,11 +9577,24 @@ "node": ">= 18" } }, + "node_modules/matcher": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", + "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "escape-string-regexp": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/math-intrinsics": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -9053,6 +9888,14 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true, + "license": "MIT", + "peer": true + }, "node_modules/micromark": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.2.0.tgz", @@ -9656,6 +10499,16 @@ "node": ">= 0.6" } }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=4" + } + }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -9774,16 +10627,16 @@ } }, "node_modules/nan": { - "version": "2.22.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.22.0.tgz", - "integrity": "sha512-nbajikzWTMwsW+eSsNm3QwlOs7het9gGJU5dDZzRTQGk03vyBOauxgI4VakDzE0PtsGTmXPsXTbbjVhRwR5mpw==", + "version": "2.22.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.22.2.tgz", + "integrity": "sha512-DANghxFkS1plDdRsX0X9pm0Z6SJNN6gBdtXfanwoZ8hooC5gosGFSBGRYHUVPz1asKA/kMRqDRdHrluZ61SpBQ==", "license": "MIT", "optional": true }, "node_modules/nanoid": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", - "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", "dev": true, "funding": [ { @@ -9800,12 +10653,20 @@ } }, "node_modules/napi-build-utils": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", - "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-2.0.0.tgz", + "integrity": "sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==", "devOptional": true, "license": "MIT" }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true, + "license": "MIT", + "peer": true + }, "node_modules/no-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", @@ -9818,9 +10679,9 @@ } }, "node_modules/node-abi": { - "version": "3.73.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.73.0.tgz", - "integrity": "sha512-z8iYzQGBu35ZkTQ9mtR8RqugJZ9RCLn8fv3d7LsgDBzOijGQP3RdKTX4LA7LXw03ZhU5z0l4xfhIMgSES31+cg==", + "version": "3.75.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.75.0.tgz", + "integrity": "sha512-OhYaY5sDsIka7H7AtijtI9jwGYLyl29eQn/W623DiN/MIv5sUqc4g7BIDThX+gb7di9f6xK02nkp8sdfFWZLTg==", "devOptional": true, "license": "MIT", "dependencies": { @@ -9831,9 +10692,9 @@ } }, "node_modules/node-abi/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "devOptional": true, "license": "ISC", "bin": { @@ -9855,6 +10716,7 @@ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", "license": "MIT", + "optional": true, "dependencies": { "whatwg-url": "^5.0.0" }, @@ -9902,6 +10764,19 @@ "node": ">=0.10.0" } }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/npmlog": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", @@ -9938,9 +10813,9 @@ } }, "node_modules/object-inspect": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", - "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", "dev": true, "license": "MIT", "engines": { @@ -9954,7 +10829,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -9985,7 +10860,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "devOptional": true, "license": "ISC", "dependencies": { "wrappy": "1" @@ -10039,6 +10913,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -10142,10 +11026,17 @@ "canvas": "^2.11.2" } }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "license": "MIT", + "peer": true + }, "node_modules/phone": { - "version": "3.1.57", - "resolved": "https://registry.npmjs.org/phone/-/phone-3.1.57.tgz", - "integrity": "sha512-BAhllXI7Fv0V9yFZlQK/6YD42KYYfx5D5kwDGXsnVjMb1J9mu6evlP47wjqajw2/tFWykYW8KDjjxqSrP1I6qQ==", + "version": "3.1.59", + "resolved": "https://registry.npmjs.org/phone/-/phone-3.1.59.tgz", + "integrity": "sha512-CUv22jw0Zgrb/h7v3sEd262zJXS/66h7zyCCRIynx+2FswAJuuFsXsJkIxMUT4UcosKxDx1bJwdZeGnDELLsCw==", "license": "MIT", "engines": { "node": ">=12" @@ -10221,9 +11112,9 @@ } }, "node_modules/possible-typed-array-names": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", - "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", "dev": true, "license": "MIT", "engines": { @@ -10231,9 +11122,9 @@ } }, "node_modules/postcss": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.1.tgz", - "integrity": "sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==", + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", + "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", "dev": true, "funding": [ { @@ -10267,9 +11158,9 @@ "license": "MIT" }, "node_modules/prebuild-install": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.2.tgz", - "integrity": "sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.3.tgz", + "integrity": "sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==", "devOptional": true, "license": "MIT", "dependencies": { @@ -10278,7 +11169,7 @@ "github-from-package": "0.0.0", "minimist": "^1.2.3", "mkdirp-classic": "^0.5.3", - "napi-build-utils": "^1.0.1", + "napi-build-utils": "^2.0.0", "node-abi": "^3.3.0", "pump": "^3.0.0", "rc": "^1.2.7", @@ -10332,6 +11223,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/prop-types": { "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", @@ -10363,7 +11264,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", - "devOptional": true, "license": "MIT", "dependencies": { "end-of-stream": "^1.1.0", @@ -10392,10 +11292,24 @@ "integrity": "sha512-HM7yY8O2ilqhmULxGMpcHSF1EhJJ9yBj8gvDEuZ6M+KGJ0YY2hKpnXvRD+hZPLrDVck3ExIGhmPtSdcjC+guuw==", "license": "MIT" }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, "license": "MIT", "dependencies": { "safe-buffer": "^5.1.0" @@ -10458,9 +11372,9 @@ } }, "node_modules/react-dropzone": { - "version": "14.3.5", - "resolved": "https://registry.npmjs.org/react-dropzone/-/react-dropzone-14.3.5.tgz", - "integrity": "sha512-9nDUaEEpqZLOz5v5SUcFA0CjM4vq8YbqO0WRls+EYT7+DvxUdzDPKNCPLqGfj3YL9MsniCLCD4RFA6M95V6KMQ==", + "version": "14.3.8", + "resolved": "https://registry.npmjs.org/react-dropzone/-/react-dropzone-14.3.8.tgz", + "integrity": "sha512-sBgODnq+lcA4P296DY4wacOZz3JFpD99fp+hb//iBO2HHnyeZU3FwWyXJ6salNpqQdsZrgMrotuko/BdJMV8Ug==", "license": "MIT", "dependencies": { "attr-accept": "^2.2.4", @@ -10499,9 +11413,9 @@ } }, "node_modules/react-hot-toast": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/react-hot-toast/-/react-hot-toast-2.5.1.tgz", - "integrity": "sha512-54Gq1ZD1JbmAb4psp9bvFHjS7lje+8ubboUmvKZkCsQBLH6AOpZ9JemfRvIdHcfb9AZXRaFLrb3qUobGYDJhFQ==", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/react-hot-toast/-/react-hot-toast-2.5.2.tgz", + "integrity": "sha512-Tun3BbCxzmXXM7C+NI4qiv6lT0uwGh4oAfeJyNOjYUejTsm35mK9iCaYLGv8cBz9L5YxZLx/2ii7zsIwPtPUdw==", "license": "MIT", "dependencies": { "csstype": "^3.1.3", @@ -10567,9 +11481,9 @@ } }, "node_modules/react-scroll-sync": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/react-scroll-sync/-/react-scroll-sync-0.11.2.tgz", - "integrity": "sha512-n7m+bbRTSWuczhKQf6Evvl7PFGkTt4RfP4bhyUtUyv6znovpybhAScQDdrFr9Jh280nG39x9AWMY8j477PHL1A==", + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/react-scroll-sync/-/react-scroll-sync-0.11.3.tgz", + "integrity": "sha512-jKu5mqOaTSfryXbGn14+Rw1+tyc7gNTCHtkCUPBkwSvIp8IQ8AwYrts1BpZszyGVXj4LyBdz8GgPxqVv+uV+CA==", "license": "MIT", "dependencies": { "prop-types": "^15.5.7" @@ -10580,16 +11494,13 @@ } }, "node_modules/react-virtuoso": { - "version": "4.12.3", - "resolved": "https://registry.npmjs.org/react-virtuoso/-/react-virtuoso-4.12.3.tgz", - "integrity": "sha512-6X1p/sU7hecmjDZMAwN+r3go9EVjofKhwkUbVlL8lXhBZecPv9XVCkZ/kBPYOr0Mv0Vl5+Ziwgexg9Kh7+NNXQ==", + "version": "4.12.7", + "resolved": "https://registry.npmjs.org/react-virtuoso/-/react-virtuoso-4.12.7.tgz", + "integrity": "sha512-njJp764he6Fi1p89PUW0k2kbyWu9w/y+MwdxmwK2kvdwwzVDbz2c2wMj5xdSruBFVgFTsI7Z85hxZR7aSHBrbQ==", "license": "MIT", - "engines": { - "node": ">=10" - }, "peerDependencies": { - "react": ">=16 || >=17 || >= 18", - "react-dom": ">=16 || >=17 || >= 18" + "react": ">=16 || >=17 || >= 18 || >= 19", + "react-dom": ">=16 || >=17 || >= 18 || >=19" } }, "node_modules/readable-stream": { @@ -10656,22 +11567,6 @@ "node": ">=4" } }, - "node_modules/regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", - "license": "MIT" - }, - "node_modules/regenerator-transform": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", - "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, "node_modules/regexp.prototype.flags": { "version": "1.5.4", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", @@ -10923,6 +11818,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", + "license": "MIT", + "peer": true + }, "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -10932,6 +11834,19 @@ "node": ">=4" } }, + "node_modules/responselike": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", + "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", + "license": "MIT", + "peer": true, + "dependencies": { + "lowercase-keys": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -10949,14 +11864,41 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/roarr": { + "version": "2.15.4", + "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz", + "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", + "license": "BSD-3-Clause", + "optional": true, + "peer": true, + "dependencies": { + "boolean": "^3.0.1", + "detect-node": "^2.0.4", + "globalthis": "^1.0.1", + "json-stringify-safe": "^5.0.1", + "semver-compare": "^1.0.0", + "sprintf-js": "^1.1.2" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/roarr/node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "license": "BSD-3-Clause", + "optional": true, + "peer": true + }, "node_modules/rollup": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.31.0.tgz", - "integrity": "sha512-9cCE8P4rZLx9+PjoyqHLs31V9a9Vpvfo4qNcs6JCiGWYhw2gijSetFbH6SSy1whnkgcefnUwr8sad7tgqsGvnw==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.40.2.tgz", + "integrity": "sha512-tfUOg6DTP4rhQ3VjOO6B4wyrJnGOX85requAXvqYTHsOgb2TFJdZ3aWpT8W2kPoypSGP7dZUyzxJ9ee4buM5Fg==", "dev": true, "license": "MIT", "dependencies": { - "@types/estree": "1.0.6" + "@types/estree": "1.0.7" }, "bin": { "rollup": "dist/bin/rollup" @@ -10966,25 +11908,26 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.31.0", - "@rollup/rollup-android-arm64": "4.31.0", - "@rollup/rollup-darwin-arm64": "4.31.0", - "@rollup/rollup-darwin-x64": "4.31.0", - "@rollup/rollup-freebsd-arm64": "4.31.0", - "@rollup/rollup-freebsd-x64": "4.31.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.31.0", - "@rollup/rollup-linux-arm-musleabihf": "4.31.0", - "@rollup/rollup-linux-arm64-gnu": "4.31.0", - "@rollup/rollup-linux-arm64-musl": "4.31.0", - "@rollup/rollup-linux-loongarch64-gnu": "4.31.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.31.0", - "@rollup/rollup-linux-riscv64-gnu": "4.31.0", - "@rollup/rollup-linux-s390x-gnu": "4.31.0", - "@rollup/rollup-linux-x64-gnu": "4.31.0", - "@rollup/rollup-linux-x64-musl": "4.31.0", - "@rollup/rollup-win32-arm64-msvc": "4.31.0", - "@rollup/rollup-win32-ia32-msvc": "4.31.0", - "@rollup/rollup-win32-x64-msvc": "4.31.0", + "@rollup/rollup-android-arm-eabi": "4.40.2", + "@rollup/rollup-android-arm64": "4.40.2", + "@rollup/rollup-darwin-arm64": "4.40.2", + "@rollup/rollup-darwin-x64": "4.40.2", + "@rollup/rollup-freebsd-arm64": "4.40.2", + "@rollup/rollup-freebsd-x64": "4.40.2", + "@rollup/rollup-linux-arm-gnueabihf": "4.40.2", + "@rollup/rollup-linux-arm-musleabihf": "4.40.2", + "@rollup/rollup-linux-arm64-gnu": "4.40.2", + "@rollup/rollup-linux-arm64-musl": "4.40.2", + "@rollup/rollup-linux-loongarch64-gnu": "4.40.2", + "@rollup/rollup-linux-powerpc64le-gnu": "4.40.2", + "@rollup/rollup-linux-riscv64-gnu": "4.40.2", + "@rollup/rollup-linux-riscv64-musl": "4.40.2", + "@rollup/rollup-linux-s390x-gnu": "4.40.2", + "@rollup/rollup-linux-x64-gnu": "4.40.2", + "@rollup/rollup-linux-x64-musl": "4.40.2", + "@rollup/rollup-win32-arm64-msvc": "4.40.2", + "@rollup/rollup-win32-ia32-msvc": "4.40.2", + "@rollup/rollup-win32-x64-msvc": "4.40.2", "fsevents": "~2.3.2" } }, @@ -11166,6 +12109,31 @@ "semver": "bin/semver.js" } }, + "node_modules/semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", + "license": "MIT", + "optional": true, + "peer": true + }, + "node_modules/serialize-error": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "type-fest": "^0.13.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/serialize-javascript": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", @@ -11483,9 +12451,9 @@ "license": "MIT" }, "node_modules/std-env": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.8.0.tgz", - "integrity": "sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==", + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.9.0.tgz", + "integrity": "sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==", "dev": true, "license": "MIT" }, @@ -11699,6 +12667,19 @@ "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==", "license": "MIT" }, + "node_modules/sumchecker": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz", + "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "debug": "^4.1.0" + }, + "engines": { + "node": ">= 8.0" + } + }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -11731,6 +12712,17 @@ "dev": true, "license": "MIT" }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6" + } + }, "node_modules/tar": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", @@ -11836,9 +12828,9 @@ } }, "node_modules/terser": { - "version": "5.37.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.37.0.tgz", - "integrity": "sha512-B8wRRkmre4ERucLM/uXx4MOV5cbnOlVAqUst+1+iLKPI0dOgFO28f84ptoQt9HEI537PMzfYa/d+GEPKTRXmYA==", + "version": "5.39.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.39.1.tgz", + "integrity": "sha512-Mm6+uad0ZuDtcV8/4uOZQDQ8RuiC5Pu+iZRedJtF7yA/27sPL7d++In/AJKpWZlU3SYMPPkVfwetn6sgZ66pUA==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -11931,9 +12923,9 @@ "peer": true }, "node_modules/terser-webpack-plugin/node_modules/schema-utils": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.0.tgz", - "integrity": "sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.2.tgz", + "integrity": "sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==", "dev": true, "license": "MIT", "peer": true, @@ -11988,17 +12980,20 @@ "license": "MIT" }, "node_modules/tinyglobby": { - "version": "0.2.10", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.10.tgz", - "integrity": "sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==", + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.13.tgz", + "integrity": "sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==", "dev": true, "license": "MIT", "dependencies": { - "fdir": "^6.4.2", + "fdir": "^6.4.4", "picomatch": "^4.0.2" }, "engines": { "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" } }, "node_modules/tinypool": { @@ -12035,7 +13030,8 @@ "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/trim-lines": { "version": "3.0.1", @@ -12076,11 +13072,19 @@ "node": "*" } }, - "node_modules/tweetnacl": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", - "license": "Unlicense" + "node_modules/type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "license": "(MIT OR CC0-1.0)", + "optional": true, + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/typed-array-buffer": { "version": "1.0.3", @@ -12180,10 +13184,9 @@ } }, "node_modules/undici-types": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", - "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", - "dev": true, + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", "license": "MIT" }, "node_modules/unicode-canonical-property-names-ecmascript": { @@ -12373,6 +13376,16 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 4.0.0" + } + }, "node_modules/unraw": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/unraw/-/unraw-3.0.0.tgz", @@ -12391,9 +13404,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz", - "integrity": "sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", "funding": [ { "type": "opencollective", @@ -12431,9 +13444,9 @@ } }, "node_modules/use-sync-external-store": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.4.0.tgz", - "integrity": "sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.5.0.tgz", + "integrity": "sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==", "license": "MIT", "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" @@ -12629,9 +13642,9 @@ } }, "node_modules/vite-plugin-pwa": { - "version": "0.21.1", - "resolved": "https://registry.npmjs.org/vite-plugin-pwa/-/vite-plugin-pwa-0.21.1.tgz", - "integrity": "sha512-rkTbKFbd232WdiRJ9R3u+hZmf5SfQljX1b45NF6oLA6DSktEKpYllgTo1l2lkiZWMWV78pABJtFjNXfBef3/3Q==", + "version": "0.21.2", + "resolved": "https://registry.npmjs.org/vite-plugin-pwa/-/vite-plugin-pwa-0.21.2.tgz", + "integrity": "sha512-vFhH6Waw8itNu37hWUJxL50q+CBbNcMVzsKaYHQVrfxTt3ihk3PeLO22SbiP1UNWzcEPaTQv+YVxe4G0KOjAkg==", "dev": true, "license": "MIT", "dependencies": { @@ -12770,6 +13783,21 @@ "loose-envify": "^1.0.0" } }, + "node_modules/watchpack": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", + "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/web-namespaces": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz", @@ -12799,11 +13827,126 @@ "node": ">=12" } }, - "node_modules/whatwg-fetch": { - "version": "3.6.20", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz", - "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==", - "license": "MIT" + "node_modules/webpack": { + "version": "5.99.8", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.99.8.tgz", + "integrity": "sha512-lQ3CPiSTpfOnrEGeXDwoq5hIGzSjmwD72GdfVzF7CQAI7t47rJG9eDWvcEkEn3CUQymAElVvDg3YNTlCYj+qUQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/eslint-scope": "^3.7.7", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "@webassemblyjs/ast": "^1.14.1", + "@webassemblyjs/wasm-edit": "^1.14.1", + "@webassemblyjs/wasm-parser": "^1.14.1", + "acorn": "^8.14.0", + "browserslist": "^4.24.0", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.17.1", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.11", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^4.3.2", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.11", + "watchpack": "^2.4.1", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/webpack/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.2.tgz", + "integrity": "sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } }, "node_modules/whatwg-mimetype": { "version": "3.0.0", @@ -12820,6 +13963,7 @@ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "license": "MIT", + "optional": true, "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -12829,7 +13973,8 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "license": "BSD-2-Clause" + "license": "BSD-2-Clause", + "optional": true }, "node_modules/which-boxed-primitive": { "version": "1.1.1", @@ -12899,16 +14044,17 @@ } }, "node_modules/which-typed-array": { - "version": "1.1.18", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.18.tgz", - "integrity": "sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==", + "version": "1.1.19", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", + "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", "dev": true, "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "for-each": "^0.3.3", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-tostringtag": "^1.0.2" }, @@ -13035,22 +14181,22 @@ } }, "node_modules/workbox-build/node_modules/@babel/core": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", - "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.27.1.tgz", + "integrity": "sha512-IaaGWsQqfsQWVLqMn9OB92MNN7zukfVA4s7KKAI0KfrrDsZ0yhi5uV4baBuLuN7n3vsZpwP8asPPcVwApxvjBQ==", "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.26.0", - "@babel/generator": "^7.26.0", - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-module-transforms": "^7.26.0", - "@babel/helpers": "^7.26.0", - "@babel/parser": "^7.26.0", - "@babel/template": "^7.25.9", - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.26.0", + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.27.1", + "@babel/helper-compilation-targets": "^7.27.1", + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helpers": "^7.27.1", + "@babel/parser": "^7.27.1", + "@babel/template": "^7.27.1", + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -13470,7 +14616,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "devOptional": true, "license": "ISC" }, "node_modules/y18n": { @@ -13527,10 +14672,21 @@ "node": ">=12" } }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "license": "MIT", + "peer": true, + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, "node_modules/zod": { - "version": "3.24.1", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.1.tgz", - "integrity": "sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==", + "version": "3.24.4", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.4.tgz", + "integrity": "sha512-OdqJE9UDRPwWsrHjLN2F8bPxvwJBK22EHLWtanu0LSYr5YqzsaaW3RMgmjwr8Rypg5k+meEJdSPXJZXE/yqOMg==", "license": "MIT", "funding": { "url": "https://github.com/sponsors/colinhacks" @@ -13565,9 +14721,9 @@ } }, "node_modules/zustand-mutative": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/zustand-mutative/-/zustand-mutative-1.2.0.tgz", - "integrity": "sha512-6TIfG4iXlrftnrmfpuxpPyqoybyTIuZRG9aKO+h+mTiNiZ55rxIoHoQe7v4eDe+lAd0enFNWer9ZvKQhOb25HQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/zustand-mutative/-/zustand-mutative-1.2.1.tgz", + "integrity": "sha512-Fvf99hUbYIrfuzz9+F+Ol03xAYQlKTckwMBDtxZv1t6N1/svNeIMJg45y9qEV2Co5SNevfdyAvEunKKVRtXyAA==", "license": "MIT", "peerDependencies": { "@types/react": "^18.0 || ^17.0 || ^19.0", diff --git a/apps/web/package.json b/apps/web/package.json index 5cc44afe4a..53001ae904 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -1,7 +1,7 @@ { "name": "@notesnook/web", "description": "Your private note taking space", - "version": "3.1.0", + "version": "3.2.0-beta.2", "private": true, "main": "./src/app.js", "homepage": "https://notesnook.com/", @@ -19,7 +19,7 @@ "@lingui/react": "5.1.2", "@mdi/js": "7.4.47", "@mdi/react": "1.6.1", - "@notesnook-importer/core": "^2.1.1", + "@notesnook-importer/core": "^2.2.2", "@notesnook/common": "file:../../packages/common", "@notesnook/core": "file:../../packages/core", "@notesnook/crypto": "file:../../packages/crypto", @@ -51,7 +51,7 @@ "cronosjs": "^1.7.1", "dayjs": "1.11.13", "diffblazer": "^1.0.1", - "electron-trpc": "0.6.1", + "electron-trpc": "0.7.1", "event-source-polyfill": "1.0.31", "fflate": "^0.8.0", "file-saver": "^2.0.5", diff --git a/apps/web/src/app.css b/apps/web/src/app.css index 719f9ac154..007e7a3d97 100644 --- a/apps/web/src/app.css +++ b/apps/web/src/app.css @@ -1,6 +1,7 @@ .tabsScroll, .titlebarLogo, .theme-scope-titleBar, +.navigation-menu-header, .route-container-header { -webkit-app-region: drag; } @@ -205,6 +206,10 @@ textarea, display: none; } +a { + color: var(--accent); +} + .flash { animation: flash 1s; } diff --git a/apps/web/src/app.tsx b/apps/web/src/app.tsx index 6906033c2a..49ca2f653c 100644 --- a/apps/web/src/app.tsx +++ b/apps/web/src/app.tsx @@ -164,8 +164,11 @@ function DesktopAppContents() { useEffect(() => { if (isListPaneVisible) { - navPane.current?.expand(1); - navPane.current?.reset(1); + if (navPane.current?.hasExpandedSize(1)) { + navPane.current?.expand(1); + } else { + navPane.current?.reset(1); + } } else { navPane.current?.collapse(1); } diff --git a/apps/web/src/common/notices.ts b/apps/web/src/common/notices.ts index c4434deb7a..ee0fcf63b9 100644 --- a/apps/web/src/common/notices.ts +++ b/apps/web/src/common/notices.ts @@ -86,9 +86,12 @@ export async function scheduleFullBackups() { ); } -export function shouldAddAutoBackupsDisabledNotice() { +export async function shouldAddAutoBackupsDisabledNotice() { + const user = await db.user.getUser(); + if (!user) return false; + const backupInterval = Config.get("backupReminderOffset", 0); - if (!isUserPremium() && backupInterval) { + if (!isUserPremium(user) && backupInterval) { Config.set("backupReminderOffset", 0); return true; } @@ -177,7 +180,7 @@ export const NoticesData: Record = { export async function resetNotices() { const notices: Notice[] = []; - if (shouldAddAutoBackupsDisabledNotice()) { + if (await shouldAddAutoBackupsDisabledNotice()) { notices.push({ type: "autoBackupsOff", priority: 3 }); } if (await shouldAddBackupNotice()) { diff --git a/apps/web/src/common/sqlite/sqlite-api.js b/apps/web/src/common/sqlite/sqlite-api.js index f6cd3bd7fe..4387c99cc2 100644 --- a/apps/web/src/common/sqlite/sqlite-api.js +++ b/apps/web/src/common/sqlite/sqlite-api.js @@ -563,6 +563,7 @@ export function Factory(Module) { Module.ccall("RegisterExtensionFunctions", "void", ["number"], [db]); Module.ccall("sqlite3Fts5BetterTrigramInit", "void", ["number"], [db]); + Module.ccall("sqlite3Fts5HtmlInit", "void", ["number"], [db]); check(fname, result); return db; }; diff --git a/apps/web/src/common/sqlite/wa-sqlite-async.js b/apps/web/src/common/sqlite/wa-sqlite-async.js index 55651462f1..46e73fb955 100644 --- a/apps/web/src/common/sqlite/wa-sqlite-async.js +++ b/apps/web/src/common/sqlite/wa-sqlite-async.js @@ -1,148 +1,168 @@ var Module = (() => { - var _scriptName = import.meta.url; + var _scriptDir = import.meta.url; return ( -function(moduleArg = {}) { - var moduleRtn; +function(config) { + var Module = config || {}; -var d=moduleArg,aa,ba,ca=new Promise((a,b)=>{aa=a;ba=b}),da="object"==typeof window,ea="undefined"!=typeof WorkerGlobalScope,fa=Object.assign({},d),ha="./this.program",g="",ia,ja; -if(da||ea)ea?g=self.location.href:"undefined"!=typeof document&&document.currentScript&&(g=document.currentScript.src),_scriptName&&(g=_scriptName),g.startsWith("blob:")?g="":g=g.substr(0,g.replace(/[?#].*/,"").lastIndexOf("/")+1),ea&&(ja=a=>{var b=new XMLHttpRequest;b.open("GET",a,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)}),ia=a=>fetch(a,{credentials:"same-origin"}).then(b=>b.ok?b.arrayBuffer():Promise.reject(Error(b.status+" : "+b.url))); -var la=d.print||console.log.bind(console),r=d.printErr||console.error.bind(console);Object.assign(d,fa);fa=null;d.thisProgram&&(ha=d.thisProgram);var ma=d.wasmBinary,na,oa=!1,pa,u,v,w,qa,x,z,ra,sa;function ta(){var a=na.buffer;d.HEAP8=u=new Int8Array(a);d.HEAP16=w=new Int16Array(a);d.HEAPU8=v=new Uint8Array(a);d.HEAPU16=qa=new Uint16Array(a);d.HEAP32=x=new Int32Array(a);d.HEAPU32=z=new Uint32Array(a);d.HEAPF32=ra=new Float32Array(a);d.HEAPF64=sa=new Float64Array(a)}var ua=[],va=[],wa=[],xa=[]; -function ya(){var a=d.preRun.shift();ua.unshift(a)}var za=0,Aa=null,Ba=null;function B(a){d.onAbort?.(a);a="Aborted("+a+")";r(a);oa=!0;a=new WebAssembly.RuntimeError(a+". Build with -sASSERTIONS for more info.");ba(a);throw a;}var Ca=a=>a.startsWith("data:application/octet-stream;base64,"),Da;function Ea(a){if(a==Da&&ma)return new Uint8Array(ma);if(ja)return ja(a);throw"both async and sync fetching of the wasm failed";} -function Fa(a){return ma?Promise.resolve().then(()=>Ea(a)):ia(a).then(b=>new Uint8Array(b),()=>Ea(a))}function Ga(a,b,c){return Fa(a).then(e=>WebAssembly.instantiate(e,b)).then(c,e=>{r(`failed to asynchronously prepare wasm: ${e}`);B(e)})} -function Ha(a,b){var c=Da;return ma||"function"!=typeof WebAssembly.instantiateStreaming||Ca(c)||"function"!=typeof fetch?Ga(c,a,b):fetch(c,{credentials:"same-origin"}).then(e=>WebAssembly.instantiateStreaming(e,a).then(b,function(f){r(`wasm streaming compile failed: ${f}`);r("falling back to ArrayBuffer instantiation");return Ga(c,a,b)}))}var C,D;class Ia{name="ExitStatus";constructor(a){this.message=`Program terminated with exit(${a})`;this.status=a}}var Ja=a=>{for(;0>1];case "i32":return x[a>>2];case "i64":B("to do getValue(i64) use WASM_BIGINT");case "float":return ra[a>>2];case "double":return sa[a>>3];case "*":return z[a>>2];default:B(`invalid type for getValue: ${b}`)}}var Ka=d.noExitRuntime||!0; -function H(a,b,c="i8"){c.endsWith("*")&&(c="*");switch(c){case "i1":u[a]=b;break;case "i8":u[a]=b;break;case "i16":w[a>>1]=b;break;case "i32":x[a>>2]=b;break;case "i64":B("to do setValue(i64) use WASM_BIGINT");case "float":ra[a>>2]=b;break;case "double":sa[a>>3]=b;break;case "*":z[a>>2]=b;break;default:B(`invalid type for setValue: ${c}`)}} -var La="undefined"!=typeof TextDecoder?new TextDecoder:void 0,I=(a,b=0,c=NaN)=>{var e=b+c;for(c=b;a[c]&&!(c>=e);)++c;if(16f?e+=String.fromCharCode(f):(f-=65536,e+=String.fromCharCode(55296|f>>10,56320|f&1023))}}else e+=String.fromCharCode(f)}return e}, -Ma=(a,b)=>{for(var c=0,e=a.length-1;0<=e;e--){var f=a[e];"."===f?a.splice(e,1):".."===f?(a.splice(e,1),c++):c&&(a.splice(e,1),c--)}if(b)for(;c;c--)a.unshift("..");return a},Na=a=>{var b="/"===a.charAt(0),c="/"===a.substr(-1);(a=Ma(a.split("/").filter(e=>!!e),!b).join("/"))||b||(a=".");a&&c&&(a+="/");return(b?"/":"")+a},Oa=a=>{var b=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(a).slice(1);a=b[0];b=b[1];if(!a&&!b)return".";b&&=b.substr(0,b.length-1);return a+b},Pa=a=>{if("/"=== -a)return"/";a=Na(a);a=a.replace(/\/$/,"");var b=a.lastIndexOf("/");return-1===b?a:a.substr(b+1)},Qa=()=>{if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues)return a=>crypto.getRandomValues(a);B("initRandomDevice")},Ra=a=>(Ra=Qa())(a),Sa=(...a)=>{for(var b="",c=!1,e=a.length-1;-1<=e&&!c;e--){c=0<=e?a[e]:"/";if("string"!=typeof c)throw new TypeError("Arguments to path.resolve must be strings");if(!c)return"";b=c+"/"+b;c="/"===c.charAt(0)}b=Ma(b.split("/").filter(f=>!!f),!c).join("/"); -return(c?"/":"")+b||"."},Ta=[],Ua=a=>{for(var b=0,c=0;c=e?b++:2047>=e?b+=2:55296<=e&&57343>=e?(b+=4,++c):b+=3}return b},J=(a,b,c,e)=>{if(!(0=k){var n=a.charCodeAt(++h);k=65536+((k&1023)<<10)|n&1023}if(127>=k){if(c>=e)break;b[c++]=k}else{if(2047>=k){if(c+1>=e)break;b[c++]=192|k>>6}else{if(65535>=k){if(c+2>=e)break;b[c++]=224|k>>12}else{if(c+3>=e)break;b[c++]=240| -k>>18;b[c++]=128|k>>12&63}b[c++]=128|k>>6&63}b[c++]=128|k&63}}b[c]=0;return c-f};function Va(a,b,c){c=Array(0=b||(b=Math.max(b,c*(1048576>c?2:1.125)>>>0),0!=c&&(b=Math.max(b,256)),c=a.Pf,a.Pf=new Uint8Array(b),0=a.node.Rf)return 0;a=Math.min(a.node.Rf-f,e);if(8b)throw new K(28);return b},ug(a,b,c){bb(a.node,b+c);a.node.Rf=Math.max(a.node.Rf,b+c)},lg(a,b,c,e,f){if(32768!==(a.node.mode&61440))throw new K(43);a=a.node.Pf;if(f&2||!a||a.buffer!==u.buffer){f=!0;e= -65536*Math.ceil(b/65536);var h=gb(65536,e);h&&v.fill(0,h,h+e);e=h;if(!e)throw new K(48);if(a){if(0{var c=0;a&&(c|=365);b&&(c|=146);return c},ib=null,jb={},kb=[],lb=1,P=null,mb=!1,nb=!0,K=class{name="ErrnoError";constructor(a){this.Qf=a}},eb={},ob={},pb=class{ig={};node=null;get flags(){return this.ig.flags}set flags(a){this.ig.flags= -a}get position(){return this.ig.position}set position(a){this.ig.position=a}},qb=class{Nf={};Of={};bg=null;constructor(a,b,c,e){a||=this;this.parent=a;this.Wf=a.Wf;this.id=lb++;this.name=b;this.mode=c;this.gg=e}get read(){return 365===(this.mode&365)}set read(a){a?this.mode|=365:this.mode&=-366}get write(){return 146===(this.mode&146)}set write(a){a?this.mode|=146:this.mode&=-147}}; -function Q(a,b={}){a=Sa(a);if(!a)return{path:"",node:null};b=Object.assign({wg:!0,sg:0},b);if(8!!k);for(var c=ib,e="/",f=0;f>>0)%P.length}function ub(a){var b=tb(a.parent.id,a.name);if(P[b]===a)P[b]=a.cg;else for(b=P[b];b;){if(b.cg===a){b.cg=a.cg;break}b=b.cg}} -function fb(a,b){var c=O(a.mode)?(c=vb(a,"x"))?c:a.Nf.eg?0:2:54;if(c)throw new K(c);for(c=P[tb(a.id,b)];c;c=c.cg){var e=c.name;if(c.parent.id===a.id&&e===b)return c}return a.Nf.eg(a,b)}function db(a,b,c,e){a=new qb(a,b,c,e);b=tb(a.parent.id,a.name);a.cg=P[b];return P[b]=a}function O(a){return 16384===(a&61440)}function wb(a){var b=["r","w","rw"][a&3];a&512&&(b+="w");return b} -function vb(a,b){if(nb)return 0;if(!b.includes("r")||a.mode&292){if(b.includes("w")&&!(a.mode&146)||b.includes("x")&&!(a.mode&73))return 2}else return 2;return 0}function xb(a,b){try{return fb(a,b),20}catch(c){}return vb(a,"wx")}function yb(a,b,c){try{var e=fb(a,b)}catch(f){return f.Qf}if(a=vb(a,"wx"))return a;if(c){if(!O(e.mode))return 54;if(e===e.parent||"/"===sb(e))return 10}else if(O(e.mode))return 31;return 0}function R(a){a=kb[a];if(!a)throw new K(8);return a} -function zb(a,b=-1){a=Object.assign(new pb,a);if(-1==b)a:{for(b=0;4096>=b;b++)if(!kb[b])break a;throw new K(33);}a.Yf=b;return kb[b]=a}function Ab(a,b=-1){a=zb(a,b);a.Of?.Xg?.(a);return a}var cb={open(a){a.Of=jb[a.node.gg].Of;a.Of.open?.(a)},ag(){throw new K(70);}};function Ya(a,b){jb[a]={Of:b}} -function Bb(a,b){var c="/"===b;if(c&&ib)throw new K(10);if(!c&&b){var e=Q(b,{wg:!1});b=e.path;e=e.node;if(e.bg)throw new K(10);if(!O(e.mode))throw new K(54);}b={type:a,bh:{},Ag:b,Mg:[]};a=a.Wf(b);a.Wf=b;b.root=a;c?ib=a:e&&(e.bg=b,e.Wf&&e.Wf.Mg.push(b))}function Cb(a,b,c){var e=Q(a,{parent:!0}).node;a=Pa(a);if(!a||"."===a||".."===a)throw new K(28);var f=xb(e,a);if(f)throw new K(f);if(!e.Nf.kg)throw new K(63);return e.Nf.kg(e,a,b,c)}function S(a,b){return Cb(a,(void 0!==b?b:511)&1023|16384,0)} -function Db(a,b,c){"undefined"==typeof c&&(c=b,b=438);Cb(a,b|8192,c)}function Eb(a,b){if(!Sa(a))throw new K(44);var c=Q(b,{parent:!0}).node;if(!c)throw new K(44);b=Pa(b);var e=xb(c,b);if(e)throw new K(e);if(!c.Nf.og)throw new K(63);c.Nf.og(c,b,a)}function Fb(a){var b=Q(a,{parent:!0}).node;a=Pa(a);var c=fb(b,a),e=yb(b,a,!0);if(e)throw new K(e);if(!b.Nf.ng)throw new K(63);if(c.bg)throw new K(10);b.Nf.ng(b,a);ub(c)} -function rb(a){a=Q(a).node;if(!a)throw new K(44);if(!a.Nf.hg)throw new K(28);return Sa(sb(a.parent),a.Nf.hg(a))}function Gb(a,b){a=Q(a,{$f:!b}).node;if(!a)throw new K(44);if(!a.Nf.Vf)throw new K(63);return a.Nf.Vf(a)}function Hb(a){return Gb(a,!0)}function Ib(a,b){a="string"==typeof a?Q(a,{$f:!0}).node:a;if(!a.Nf.Sf)throw new K(63);a.Nf.Sf(a,{mode:b&4095|a.mode&-4096,timestamp:Date.now()})} -function Jb(a,b){if(0>b)throw new K(28);a="string"==typeof a?Q(a,{$f:!0}).node:a;if(!a.Nf.Sf)throw new K(63);if(O(a.mode))throw new K(31);if(32768!==(a.mode&61440))throw new K(28);var c=vb(a,"w");if(c)throw new K(c);a.Nf.Sf(a,{size:b,timestamp:Date.now()})} -function Kb(a,b,c){if(""===a)throw new K(44);if("string"==typeof b){var e={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090}[b];if("undefined"==typeof e)throw Error(`Unknown file open mode: ${b}`);b=e}c=b&64?("undefined"==typeof c?438:c)&4095|32768:0;if("object"==typeof a)var f=a;else{a=Na(a);try{f=Q(a,{$f:!(b&131072)}).node}catch(h){}}e=!1;if(b&64)if(f){if(b&128)throw new K(20);}else f=Cb(a,c,0),e=!0;if(!f)throw new K(44);8192===(f.mode&61440)&&(b&=-513);if(b&65536&&!O(f.mode))throw new K(54);if(!e&&(c= -f?40960===(f.mode&61440)?32:O(f.mode)&&("r"!==wb(b)||b&512)?31:vb(f,wb(b)):44))throw new K(c);b&512&&!e&&Jb(f,0);b&=-131713;f=zb({node:f,path:sb(f),flags:b,seekable:!0,position:0,Of:f.Of,Rg:[],error:!1});f.Of.open&&f.Of.open(f);!d.logReadFiles||b&1||a in ob||(ob[a]=1);return f}function Lb(a,b,c){if(null===a.Yf)throw new K(8);if(!a.seekable||!a.Of.ag)throw new K(70);if(0!=c&&1!=c&&2!=c)throw new K(28);a.position=a.Of.ag(a,b,c);a.Rg=[]} -function T(a,b,c){a=Na("/dev/"+a);var e=hb(!!b,!!c);T.zg??(T.zg=64);var f=T.zg++<<8|0;Ya(f,{open(h){h.seekable=!1},close(){c?.buffer?.length&&c(10)},read(h,k,n,l){for(var m=0,p=0;p>2]=a.Ig;x[c+4>>2]=a.mode;z[c+8>>2]=a.Og;x[c+12>>2]=a.uid;x[c+16>>2]=a.Lg;x[c+20>>2]=a.gg;D=[a.size>>>0,(C=a.size,1<=+Math.abs(C)?0>>0:~~+Math.ceil((C-+(~~C>>>0))/4294967296)>>>0:0)];x[c+24>>2]=D[0];x[c+28>>2]=D[1];x[c+32>>2]=4096;x[c+36>>2]=a.Gg;b=a.Eg.getTime();var e=a.Ng.getTime(),f=a.Hg.getTime();D=[Math.floor(b/1E3)>>>0,(C=Math.floor(b/1E3),1<=+Math.abs(C)?0>>0:~~+Math.ceil((C-+(~~C>>>0))/4294967296)>>>0: -0)];x[c+40>>2]=D[0];x[c+44>>2]=D[1];z[c+48>>2]=b%1E3*1E6;D=[Math.floor(e/1E3)>>>0,(C=Math.floor(e/1E3),1<=+Math.abs(C)?0>>0:~~+Math.ceil((C-+(~~C>>>0))/4294967296)>>>0:0)];x[c+56>>2]=D[0];x[c+60>>2]=D[1];z[c+64>>2]=e%1E3*1E6;D=[Math.floor(f/1E3)>>>0,(C=Math.floor(f/1E3),1<=+Math.abs(C)?0>>0:~~+Math.ceil((C-+(~~C>>>0))/4294967296)>>>0:0)];x[c+72>>2]=D[0];x[c+76>>2]=D[1];z[c+80>>2]=f%1E3*1E6;D=[a.yg>>>0,(C=a.yg,1<=+Math.abs(C)?0>>0:~~+Math.ceil((C-+(~~C>>>0))/4294967296)>>>0:0)];x[c+88>>2]=D[0];x[c+92>>2]=D[1];return 0} -var Ob=void 0,Pb=()=>{var a=x[+Ob>>2];Ob+=4;return a},Qb=(a,b)=>b+2097152>>>0<4194305-!!a?(a>>>0)+4294967296*b:NaN,Rb=0,Sb=[0,31,60,91,121,152,182,213,244,274,305,335],Tb=[0,31,59,90,120,151,181,212,243,273,304,334],Ub={},Vb=a=>{if(!(a instanceof Ia||"unwind"==a))throw a;},Wb=a=>{pa=a;Ka||0{if(!oa)try{if(a(),!(Ka||0{if(!Zb){var a={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/", -HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:ha||"./this.program"},b;for(b in Yb)void 0===Yb[b]?delete a[b]:a[b]=Yb[b];var c=[];for(b in a)c.push(`${b}=${a[b]}`);Zb=c}return Zb},Zb;function ac(){}function bc(){}function cc(){}function dc(){}function ec(){}function fc(){}function gc(){}function hc(){}function ic(){}function jc(){}function kc(){}function lc(){}function mc(){}function nc(){}function oc(){} -function pc(){}function qc(){}function rc(){}function sc(){}function tc(){}function uc(){}function vc(){}function wc(){}function xc(){}function yc(){}function zc(){}function Ac(){}function Bc(){}function Cc(){}function Dc(){}function Ec(){}function Fc(){}function Gc(){}function Hc(){}function Ic(){}function Jc(){}function Kc(){}function Lc(){}function Mc(){}var Nc=a=>{try{a()}catch(b){B(b)}}; -function Oc(){var a=V,b={};for(let [c,e]of Object.entries(a))b[c]="function"==typeof e?(...f)=>{Pc.push(c);try{return e(...f)}finally{oa||(Pc.pop(),W&&1===X&&0===Pc.length&&(X=0,Nc(Qc),"undefined"!=typeof Fibers&&Fibers.eh()))}}:e;return b}var X=0,W=null,Rc=0,Pc=[],Sc={},Tc={},Uc=0,Vc=null,Wc=[];function Xc(){return new Promise((a,b)=>{Vc={resolve:a,reject:b}})} -function Yc(){var a=Zc(16396),b=a+12;z[a>>2]=b;z[a+4>>2]=b+16384;b=Pc[0];var c=Sc[b];void 0===c&&(c=Uc++,Sc[b]=c,Tc[c]=b);x[a+8>>2]=c;return a} -function $c(a){if(!oa){if(0===X){var b=!1,c=!1;a((e=0)=>{if(!oa&&(Rc=e,b=!0,c)){X=2;Nc(()=>ad(W));"undefined"!=typeof MainLoop&&MainLoop.Kg&&MainLoop.resume();e=!1;try{var f=(0,V[Tc[x[W+8>>2]]])()}catch(n){f=n,e=!0}var h=!1;if(!W){var k=Vc;k&&(Vc=null,(e?k.reject:k.resolve)(f),h=!0)}if(e&&!h)throw f;}});c=!0;b||(X=1,W=Yc(),"undefined"!=typeof MainLoop&&MainLoop.Kg&&MainLoop.pause(),Nc(()=>bd(W)))}else 2===X?(X=0,Nc(cd),dd(W),W=null,Wc.forEach(Xb)):B(`invalid state: ${X}`);return Rc}} -function ed(a){return $c(b=>{a().then(b)})} -var fd={},gd,hd,jd=[],Z=(a,b,c,e,f)=>{function h(q){--Rb;0!==l&&kd(l);return"string"===b?q?I(v,q):"":"boolean"===b?!!q:q}var k={string:q=>{var t=0;if(null!==q&&void 0!==q&&0!==q){t=Ua(q)+1;var y=ld(t);J(q,v,y,t);t=y}return t},array:q=>{var t=ld(q.length);u.set(q,t);return t}};a=d["_"+a];var n=[],l=0;if(e)for(var m=0;m{eb[a]=new K(a);eb[a].stack=""});P=Array(4096);Bb(M,"/");S("/tmp");S("/home");S("/home/web_user");(function(){S("/dev");Ya(259,{read:()=>0,write:(e,f,h,k)=>k});Db("/dev/null",259);Xa(1280,$a);Xa(1536,ab);Db("/dev/tty",1280);Db("/dev/tty1",1536);var a=new Uint8Array(1024),b=0,c=()=>{0===b&&(b=Ra(a).byteLength);return a[--b]};T("random",c);T("urandom",c);S("/dev/shm");S("/dev/shm/tmp")})(); -(function(){S("/proc");var a=S("/proc/self");S("/proc/self/fd");Bb({Wf(){var b=db(a,"fd",16895,73);b.Nf={eg(c,e){var f=R(+e);c={parent:null,Wf:{Ag:"fake"},Nf:{hg:()=>f.path}};return c.parent=c}};return b}},"/proc/self/fd")})(); -(function(){const a=new Map;d.setAuthorizer=function(b,c,e){c?a.set(b,{f:c,tg:e}):a.delete(b);return Z("set_authorizer","number",["number"],[b])};ac=function(b,c,e,f,h,k){if(a.has(b)){const {f:n,tg:l}=a.get(b);return n(l,c,e?e?I(v,e):"":null,f?f?I(v,f):"":null,h?h?I(v,h):"":null,k?k?I(v,k):"":null)}return 0}})(); -(function(){const a=new Map,b=new Map;d.createFunction=function(c,e,f,h,k,n){const l=a.size;a.set(l,{f:n,Zf:k});return Z("create_function","number","number string number number number number".split(" "),[c,e,f,h,l,0])};d.createAggregate=function(c,e,f,h,k,n,l){const m=a.size;a.set(m,{step:n,Jg:l,Zf:k});return Z("create_function","number","number string number number number number".split(" "),[c,e,f,h,m,1])};d.getFunctionUserData=function(c){return b.get(c)};cc=function(c,e,f,h){c=a.get(c);b.set(e, -c.Zf);c.f(e,new Uint32Array(v.buffer,h,f));b.delete(e)};ec=function(c,e,f,h){c=a.get(c);b.set(e,c.Zf);c.step(e,new Uint32Array(v.buffer,h,f));b.delete(e)};bc=function(c,e){c=a.get(c);b.set(e,c.Zf);c.Jg(e);b.delete(e)}})();(function(){const a=new Map;d.progressHandler=function(b,c,e,f){e?a.set(b,{f:e,tg:f}):a.delete(b);return Z("progress_handler",null,["number","number"],[b,c])};dc=function(b){if(a.has(b)){const {f:c,tg:e}=a.get(b);return c(e)}return 0}})(); -(function(){function a(l,m){const p=`get${l}`,q=`set${l}`;return new Proxy(new DataView(v.buffer,m,"Int32"===l?4:8),{get(t,y){if(y===p)return function(A,G){if(!G)throw Error("must be little endian");return t[y](A,G)};if(y===q)return function(A,G,E){if(!E)throw Error("must be little endian");return t[y](A,G,E)};if("string"===typeof y&&y.match(/^(get)|(set)/))throw Error("invalid type");return t[y]}})}const b="object"===typeof fd,c=new Map,e=new Map,f=new Map,h=b?new Set:null,k=b?new Set:null,n=new Map; -vc=function(l,m,p,q){n.set(l?I(v,l):"",{size:m,fg:Array.from(new Uint32Array(v.buffer,q,p))})};d.createModule=function(l,m,p,q){b&&(p.handleAsync=ed);const t=c.size;c.set(t,{module:p,Zf:q});q=0;p.xCreate&&(q|=1);p.xConnect&&(q|=2);p.xBestIndex&&(q|=4);p.xDisconnect&&(q|=8);p.xDestroy&&(q|=16);p.xOpen&&(q|=32);p.xClose&&(q|=64);p.xFilter&&(q|=128);p.xNext&&(q|=256);p.xEof&&(q|=512);p.xColumn&&(q|=1024);p.xRowid&&(q|=2048);p.xUpdate&&(q|=4096);p.xBegin&&(q|=8192);p.xSync&&(q|=16384);p.xCommit&&(q|= -32768);p.xRollback&&(q|=65536);p.xFindFunction&&(q|=131072);p.xRename&&(q|=262144);return Z("create_module","number",["number","string","number","number"],[l,m,t,q])};lc=function(l,m,p,q,t,y){m=c.get(m);e.set(t,m);if(b){h.delete(t);for(const A of h)e.delete(A)}q=Array.from(new Uint32Array(v.buffer,q,p)).map(A=>A?I(v,A):"");return m.module.xCreate(l,m.Zf,q,t,a("Int32",y))};kc=function(l,m,p,q,t,y){m=c.get(m);e.set(t,m);if(b){h.delete(t);for(const A of h)e.delete(A)}q=Array.from(new Uint32Array(v.buffer, -q,p)).map(A=>A?I(v,A):"");return m.module.xConnect(l,m.Zf,q,t,a("Int32",y))};gc=function(l,m){var p=e.get(l),q=n.get("sqlite3_index_info").fg;const t={};t.nConstraint=F(m+q[0],"i32");t.aConstraint=[];var y=F(m+q[1],"*"),A=n.get("sqlite3_index_constraint").size;for(var G=0;Gl?2**32:0))}; -Mc=function(h,k,n,l,m){return e.get(h).xWrite(h,v.subarray(k,k+n),4294967296*m+l+(0>l?2**32:0))};Kc=function(h,k,n){return e.get(h).xTruncate(h,4294967296*n+k+(0>k?2**32:0))};Jc=function(h,k){return e.get(h).xSync(h,k)};Ec=function(h,k){const n=e.get(h);k=a("BigInt64",k);return n.xFileSize(h,k)};Fc=function(h,k){return e.get(h).xLock(h,k)};Lc=function(h,k){return e.get(h).xUnlock(h,k)};zc=function(h,k){const n=e.get(h);k=a("Int32",k);return n.xCheckReservedLock(h,k)};Dc=function(h,k,n){const l=e.get(h); -n=new DataView(v.buffer,n);return l.xFileControl(h,k,n)};Ic=function(h){return e.get(h).xSectorSize(h)};Cc=function(h){return e.get(h).xDeviceCharacteristics(h)};Gc=function(h,k,n,l,m){h=c.get(h);e.set(n,h);if(b){f.delete(n);for(var p of f)e.delete(p)}p=null;if(l&64){p=1;const q=[];for(;p;){const t=v[k++];if(t)q.push(t);else switch(v[k]||(p=null),p){case 1:q.push(63);p=2;break;case 2:q.push(61);p=3;break;case 3:q.push(38),p=2}}p=(new TextDecoder).decode(new Uint8Array(q))}else k&&(p=k?I(v,k):""); -m=a("Int32",m);return h.xOpen(p,n,l,m)};Bc=function(h,k,n){return c.get(h).xDelete(k?I(v,k):"",n)};yc=function(h,k,n,l){h=c.get(h);l=a("Int32",l);return h.xAccess(k?I(v,k):"",n,l)}})(); -var pd={a:(a,b,c,e)=>{B(`Assertion failed: ${a?I(v,a):""}, at: `+[b?b?I(v,b):"":"unknown filename",c,e?e?I(v,e):"":"unknown function"])},R:function(a,b){try{return a=a?I(v,a):"",Ib(a,b),0}catch(c){if("undefined"==typeof U||"ErrnoError"!==c.name)throw c;return-c.Qf}},U:function(a,b,c){try{b=b?I(v,b):"";b=Mb(a,b);if(c&-8)return-28;var e=Q(b,{$f:!0}).node;if(!e)return-44;a="";c&4&&(a+="r");c&2&&(a+="w");c&1&&(a+="x");return a&&vb(e,a)?-2:0}catch(f){if("undefined"==typeof U||"ErrnoError"!==f.name)throw f; -return-f.Qf}},S:function(a,b){try{var c=R(a);Ib(c.node,b);return 0}catch(e){if("undefined"==typeof U||"ErrnoError"!==e.name)throw e;return-e.Qf}},Q:function(a){try{var b=R(a).node;var c="string"==typeof b?Q(b,{$f:!0}).node:b;if(!c.Nf.Sf)throw new K(63);c.Nf.Sf(c,{timestamp:Date.now()});return 0}catch(e){if("undefined"==typeof U||"ErrnoError"!==e.name)throw e;return-e.Qf}},b:function(a,b,c){Ob=c;try{var e=R(a);switch(b){case 0:var f=Pb();if(0>f)break;for(;kb[f];)f++;return Ab(e,f).Yf;case 1:case 2:return 0; -case 3:return e.flags;case 4:return f=Pb(),e.flags|=f,0;case 12:return f=Pb(),w[f+0>>1]=2,0;case 13:case 14:return 0}return-28}catch(h){if("undefined"==typeof U||"ErrnoError"!==h.name)throw h;return-h.Qf}},P:function(a,b){try{var c=R(a);return Nb(Gb,c.path,b)}catch(e){if("undefined"==typeof U||"ErrnoError"!==e.name)throw e;return-e.Qf}},m:function(a,b,c){b=Qb(b,c);try{if(isNaN(b))return 61;var e=R(a);if(0===(e.flags&2097155))throw new K(28);Jb(e.node,b);return 0}catch(f){if("undefined"==typeof U|| -"ErrnoError"!==f.name)throw f;return-f.Qf}},J:function(a,b){try{if(0===b)return-28;var c=Ua("/")+1;if(b=e)return-28;var f=rb(b),h=Math.min(e,Ua(f)),k=u[c+h];J(f,v,c,e+1);u[c+ -h]=k;return h}catch(n){if("undefined"==typeof U||"ErrnoError"!==n.name)throw n;return-n.Qf}},z:function(a){try{return a=a?I(v,a):"",Fb(a),0}catch(b){if("undefined"==typeof U||"ErrnoError"!==b.name)throw b;return-b.Qf}},O:function(a,b){try{return a=a?I(v,a):"",Nb(Gb,a,b)}catch(c){if("undefined"==typeof U||"ErrnoError"!==c.name)throw c;return-c.Qf}},x:function(a,b,c){try{b=b?I(v,b):"";b=Mb(a,b);if(0===c){a=b;var e=Q(a,{parent:!0}).node;if(!e)throw new K(44);var f=Pa(a),h=fb(e,f),k=yb(e,f,!1);if(k)throw new K(k); -if(!e.Nf.pg)throw new K(63);if(h.bg)throw new K(10);e.Nf.pg(e,f);ub(h)}else 512===c?Fb(b):B("Invalid flags passed to unlinkat");return 0}catch(n){if("undefined"==typeof U||"ErrnoError"!==n.name)throw n;return-n.Qf}},w:function(a,b,c){try{b=b?I(v,b):"";b=Mb(a,b,!0);var e=Date.now();if(c){var f=z[c>>2]+4294967296*x[c+4>>2],h=x[c+8>>2];var k=1073741823==h?e:1073741822==h?-1:1E3*f+h/1E6;c+=16;f=z[c>>2]+4294967296*x[c+4>>2];h=x[c+8>>2];var n=1073741823==h?e:1073741822==h?-1:1E3*f+h/1E6}else n=k=e;if(-1!= -n||-1!=k){a=k;var l=Q(b,{$f:!0}).node;l.Nf.Sf(l,{timestamp:Math.max(a,n)})}return 0}catch(m){if("undefined"==typeof U||"ErrnoError"!==m.name)throw m;return-m.Qf}},V:()=>{B("")},s:()=>{Ka=!1;Rb=0},k:function(a,b,c){a=new Date(1E3*Qb(a,b));x[c>>2]=a.getSeconds();x[c+4>>2]=a.getMinutes();x[c+8>>2]=a.getHours();x[c+12>>2]=a.getDate();x[c+16>>2]=a.getMonth();x[c+20>>2]=a.getFullYear()-1900;x[c+24>>2]=a.getDay();b=a.getFullYear();x[c+28>>2]=(0!==b%4||0===b%100&&0!==b%400?Tb:Sb)[a.getMonth()]+a.getDate()- -1|0;x[c+36>>2]=-(60*a.getTimezoneOffset());b=(new Date(a.getFullYear(),6,1)).getTimezoneOffset();var e=(new Date(a.getFullYear(),0,1)).getTimezoneOffset();x[c+32>>2]=(b!=e&&a.getTimezoneOffset()==Math.min(e,b))|0},i:function(a,b,c,e,f,h,k,n){f=Qb(f,h);try{if(isNaN(f))return 61;var l=R(e);if(0!==(b&2)&&0===(c&2)&&2!==(l.flags&2097155))throw new K(2);if(1===(l.flags&2097155))throw new K(2);if(!l.Of.lg)throw new K(43);if(!a)throw new K(28);var m=l.Of.lg(l,a,f,b,c);var p=m.Pg;x[k>>2]=m.Dg;z[n>>2]=p;return 0}catch(q){if("undefined"== -typeof U||"ErrnoError"!==q.name)throw q;return-q.Qf}},j:function(a,b,c,e,f,h,k){h=Qb(h,k);try{var n=R(f);if(c&2){if(32768!==(n.node.mode&61440))throw new K(43);e&2||n.Of.mg&&n.Of.mg(n,v.slice(a,a+b),h,b,e)}}catch(l){if("undefined"==typeof U||"ErrnoError"!==l.name)throw l;return-l.Qf}},t:(a,b)=>{Ub[a]&&(clearTimeout(Ub[a].id),delete Ub[a]);if(!b)return 0;var c=setTimeout(()=>{delete Ub[a];Xb(()=>od(a,performance.now()))},b);Ub[a]={id:c,dh:b};return 0},E:(a,b,c,e)=>{var f=(new Date).getFullYear(),h= -(new Date(f,0,1)).getTimezoneOffset();f=(new Date(f,6,1)).getTimezoneOffset();z[a>>2]=60*Math.max(h,f);x[b>>2]=Number(h!=f);b=k=>{var n=Math.abs(k);return`UTC${0<=k?"-":"+"}${String(Math.floor(n/60)).padStart(2,"0")}${String(n%60).padStart(2,"0")}`};a=b(h);b=b(f);fDate.now(),d:()=>performance.now(),u:a=>{var b=v.length;a>>>=0;if(2147483648=c;c*=2){var e=b*(1+.2/c);e=Math.min(e,a+100663296);a:{e=(Math.min(2147483648, -65536*Math.ceil(Math.max(a,e)/65536))-na.buffer.byteLength+65535)/65536|0;try{na.grow(e);ta();var f=1;break a}catch(h){}f=void 0}if(f)return!0}return!1},G:(a,b)=>{var c=0;$b().forEach((e,f)=>{var h=b+c;f=z[a+4*f>>2]=h;for(h=0;h{var c=$b();z[a>>2]=c.length;var e=0;c.forEach(f=>e+=f.length+1);z[b>>2]=e;return 0},f:function(a){try{var b=R(a);if(null===b.Yf)throw new K(8);b.qg&&(b.qg=null);try{b.Of.close&&b.Of.close(b)}catch(c){throw c; -}finally{kb[b.Yf]=null}b.Yf=null;return 0}catch(c){if("undefined"==typeof U||"ErrnoError"!==c.name)throw c;return c.Qf}},v:function(a,b){try{var c=R(a);u[b]=c.Uf?2:O(c.mode)?3:40960===(c.mode&61440)?7:4;w[b+2>>1]=0;D=[0,(C=0,1<=+Math.abs(C)?0>>0:~~+Math.ceil((C-+(~~C>>>0))/4294967296)>>>0:0)];x[b+8>>2]=D[0];x[b+12>>2]=D[1];D=[0,(C=0,1<=+Math.abs(C)?0>>0:~~+Math.ceil((C-+(~~C>>>0))/4294967296)>>>0:0)];x[b+16>>2]=D[0];x[b+20>>2]=D[1];return 0}catch(e){if("undefined"== -typeof U||"ErrnoError"!==e.name)throw e;return e.Qf}},C:function(a,b,c,e){try{a:{var f=R(a);a=b;for(var h,k=b=0;k>2],l=z[a+4>>2];a+=8;var m=f,p=h,q=u;if(0>l||0>p)throw new K(28);if(null===m.Yf)throw new K(8);if(1===(m.flags&2097155))throw new K(8);if(O(m.node.mode))throw new K(31);if(!m.Of.read)throw new K(28);var t="undefined"!=typeof p;if(!t)p=m.position;else if(!m.seekable)throw new K(70);var y=m.Of.read(m,q,n,l,p);t||(m.position+=y);var A=y;if(0>A){var G=-1;break a}b+=A;if(A< -l)break;"undefined"!=typeof h&&(h+=A)}G=b}z[e>>2]=G;return 0}catch(E){if("undefined"==typeof U||"ErrnoError"!==E.name)throw E;return E.Qf}},l:function(a,b,c,e,f){b=Qb(b,c);try{if(isNaN(b))return 61;var h=R(a);Lb(h,b,e);D=[h.position>>>0,(C=h.position,1<=+Math.abs(C)?0>>0:~~+Math.ceil((C-+(~~C>>>0))/4294967296)>>>0:0)];x[f>>2]=D[0];x[f+4>>2]=D[1];h.qg&&0===b&&0===e&&(h.qg=null);return 0}catch(k){if("undefined"==typeof U||"ErrnoError"!==k.name)throw k;return k.Qf}},K:function(a){try{var b= -R(a);return $c(c=>{var e=b.node.Wf;e.type.Qg?e.type.Qg(e,!1,f=>{f?c(29):c(0)}):c(0)})}catch(c){if("undefined"==typeof U||"ErrnoError"!==c.name)throw c;return c.Qf}},y:function(a,b,c,e){try{a:{var f=R(a);a=b;for(var h,k=b=0;k>2],l=z[a+4>>2];a+=8;var m=f,p=n,q=l,t=h,y=u;if(0>q||0>t)throw new K(28);if(null===m.Yf)throw new K(8);if(0===(m.flags&2097155))throw new K(8);if(O(m.node.mode))throw new K(31);if(!m.Of.write)throw new K(28);m.seekable&&m.flags&1024&&Lb(m,0,2);var A="undefined"!= -typeof t;if(!A)t=m.position;else if(!m.seekable)throw new K(70);var G=m.Of.write(m,y,p,q,t,void 0);A||(m.position+=G);var E=G;if(0>E){var N=-1;break a}b+=E;if(E>2]=N;return 0}catch(L){if("undefined"==typeof U||"ErrnoError"!==L.name)throw L;return L.Qf}},wa:ac,T:bc,la:cc,ha:dc,ba:ec,qa:fc,L:gc,h:hc,ta:ic,oa:jc,ja:kc,ka:lc,p:mc,A:nc,ua:oc,g:pc,va:qc,ia:rc,ma:sc,na:tc,sa:uc,c:vc,pa:wc,ra:xc,r:Wb,I:function(a,b){try{return Ra(v.subarray(a,a+b)),0}catch(c){if("undefined"== -typeof U||"ErrnoError"!==c.name)throw c;return c.Qf}},fa:yc,_:zc,ea:Ac,ga:Bc,X:Cc,Z:Dc,ca:Ec,aa:Fc,W:Gc,q:Hc,Y:Ic,da:Jc,n:Kc,$:Lc,o:Mc},V=function(){function a(c){V=c.exports;V=Oc();na=V.xa;ta();gd=V.Cf;va.unshift(V.ya);za--;d.monitorRunDependencies?.(za);0==za&&(null!==Aa&&(clearInterval(Aa),Aa=null),Ba&&(c=Ba,Ba=null,c()));return V}var b={a:pd};za++;d.monitorRunDependencies?.(za);if(d.instantiateWasm)try{return d.instantiateWasm(b,a)}catch(c){r(`Module.instantiateWasm callback failed with error: ${c}`), -ba(c)}Da??=d.locateFile?Ca("wa-sqlite-async.wasm")?"wa-sqlite-async.wasm":d.locateFile?d.locateFile("wa-sqlite-async.wasm",g):g+"wa-sqlite-async.wasm":(new URL("wa-sqlite-async.wasm",import.meta.url)).href;Ha(b,function(c){a(c.instance)}).catch(ba);return{}}();d._sqlite3_status64=(a,b,c,e)=>(d._sqlite3_status64=V.za)(a,b,c,e);d._sqlite3_status=(a,b,c,e)=>(d._sqlite3_status=V.Aa)(a,b,c,e);d._sqlite3_db_status=(a,b,c,e,f)=>(d._sqlite3_db_status=V.Ba)(a,b,c,e,f); -d._sqlite3_msize=a=>(d._sqlite3_msize=V.Ca)(a);d._sqlite3_vfs_find=a=>(d._sqlite3_vfs_find=V.Da)(a);d._sqlite3_vfs_register=(a,b)=>(d._sqlite3_vfs_register=V.Ea)(a,b);d._sqlite3_vfs_unregister=a=>(d._sqlite3_vfs_unregister=V.Fa)(a);d._sqlite3_release_memory=a=>(d._sqlite3_release_memory=V.Ga)(a);d._sqlite3_soft_heap_limit64=(a,b)=>(d._sqlite3_soft_heap_limit64=V.Ha)(a,b);d._sqlite3_memory_used=()=>(d._sqlite3_memory_used=V.Ia)(); -d._sqlite3_hard_heap_limit64=(a,b)=>(d._sqlite3_hard_heap_limit64=V.Ja)(a,b);d._sqlite3_memory_highwater=a=>(d._sqlite3_memory_highwater=V.Ka)(a);d._sqlite3_malloc=a=>(d._sqlite3_malloc=V.La)(a);d._sqlite3_malloc64=(a,b)=>(d._sqlite3_malloc64=V.Ma)(a,b);d._sqlite3_free=a=>(d._sqlite3_free=V.Na)(a);d._sqlite3_realloc=(a,b)=>(d._sqlite3_realloc=V.Oa)(a,b);d._sqlite3_realloc64=(a,b,c)=>(d._sqlite3_realloc64=V.Pa)(a,b,c);d._sqlite3_str_vappendf=(a,b,c)=>(d._sqlite3_str_vappendf=V.Qa)(a,b,c); -d._sqlite3_str_append=(a,b,c)=>(d._sqlite3_str_append=V.Ra)(a,b,c);d._sqlite3_str_appendchar=(a,b,c)=>(d._sqlite3_str_appendchar=V.Sa)(a,b,c);d._sqlite3_str_appendall=(a,b)=>(d._sqlite3_str_appendall=V.Ta)(a,b);d._sqlite3_str_appendf=(a,b,c)=>(d._sqlite3_str_appendf=V.Ua)(a,b,c);d._sqlite3_str_finish=a=>(d._sqlite3_str_finish=V.Va)(a);d._sqlite3_str_errcode=a=>(d._sqlite3_str_errcode=V.Wa)(a);d._sqlite3_str_length=a=>(d._sqlite3_str_length=V.Xa)(a);d._sqlite3_str_value=a=>(d._sqlite3_str_value=V.Ya)(a); -d._sqlite3_str_reset=a=>(d._sqlite3_str_reset=V.Za)(a);d._sqlite3_str_new=a=>(d._sqlite3_str_new=V._a)(a);d._sqlite3_vmprintf=(a,b)=>(d._sqlite3_vmprintf=V.$a)(a,b);d._sqlite3_mprintf=(a,b)=>(d._sqlite3_mprintf=V.ab)(a,b);d._sqlite3_vsnprintf=(a,b,c,e)=>(d._sqlite3_vsnprintf=V.bb)(a,b,c,e);d._sqlite3_snprintf=(a,b,c,e)=>(d._sqlite3_snprintf=V.cb)(a,b,c,e);d._sqlite3_log=(a,b,c)=>(d._sqlite3_log=V.db)(a,b,c);d._sqlite3_randomness=(a,b)=>(d._sqlite3_randomness=V.eb)(a,b); -d._sqlite3_stricmp=(a,b)=>(d._sqlite3_stricmp=V.fb)(a,b);d._sqlite3_strnicmp=(a,b,c)=>(d._sqlite3_strnicmp=V.gb)(a,b,c);d._sqlite3_os_init=()=>(d._sqlite3_os_init=V.hb)();d._sqlite3_os_end=()=>(d._sqlite3_os_end=V.ib)();d._sqlite3_serialize=(a,b,c,e)=>(d._sqlite3_serialize=V.jb)(a,b,c,e);d._sqlite3_prepare_v2=(a,b,c,e,f)=>(d._sqlite3_prepare_v2=V.kb)(a,b,c,e,f);d._sqlite3_step=a=>(d._sqlite3_step=V.lb)(a);d._sqlite3_column_int64=(a,b)=>(d._sqlite3_column_int64=V.mb)(a,b); -d._sqlite3_reset=a=>(d._sqlite3_reset=V.nb)(a);d._sqlite3_exec=(a,b,c,e,f)=>(d._sqlite3_exec=V.ob)(a,b,c,e,f);d._sqlite3_column_int=(a,b)=>(d._sqlite3_column_int=V.pb)(a,b);d._sqlite3_finalize=a=>(d._sqlite3_finalize=V.qb)(a);d._sqlite3_deserialize=(a,b,c,e,f,h,k,n)=>(d._sqlite3_deserialize=V.rb)(a,b,c,e,f,h,k,n);d._sqlite3_database_file_object=a=>(d._sqlite3_database_file_object=V.sb)(a);d._sqlite3_backup_init=(a,b,c,e)=>(d._sqlite3_backup_init=V.tb)(a,b,c,e); -d._sqlite3_backup_step=(a,b)=>(d._sqlite3_backup_step=V.ub)(a,b);d._sqlite3_backup_finish=a=>(d._sqlite3_backup_finish=V.vb)(a);d._sqlite3_backup_remaining=a=>(d._sqlite3_backup_remaining=V.wb)(a);d._sqlite3_backup_pagecount=a=>(d._sqlite3_backup_pagecount=V.xb)(a);d._sqlite3_clear_bindings=a=>(d._sqlite3_clear_bindings=V.yb)(a);d._sqlite3_value_blob=a=>(d._sqlite3_value_blob=V.zb)(a);d._sqlite3_value_text=a=>(d._sqlite3_value_text=V.Ab)(a);d._sqlite3_value_bytes=a=>(d._sqlite3_value_bytes=V.Bb)(a); -d._sqlite3_value_bytes16=a=>(d._sqlite3_value_bytes16=V.Cb)(a);d._sqlite3_value_double=a=>(d._sqlite3_value_double=V.Db)(a);d._sqlite3_value_int=a=>(d._sqlite3_value_int=V.Eb)(a);d._sqlite3_value_int64=a=>(d._sqlite3_value_int64=V.Fb)(a);d._sqlite3_value_subtype=a=>(d._sqlite3_value_subtype=V.Gb)(a);d._sqlite3_value_pointer=(a,b)=>(d._sqlite3_value_pointer=V.Hb)(a,b);d._sqlite3_value_text16=a=>(d._sqlite3_value_text16=V.Ib)(a);d._sqlite3_value_text16be=a=>(d._sqlite3_value_text16be=V.Jb)(a); -d._sqlite3_value_text16le=a=>(d._sqlite3_value_text16le=V.Kb)(a);d._sqlite3_value_type=a=>(d._sqlite3_value_type=V.Lb)(a);d._sqlite3_value_encoding=a=>(d._sqlite3_value_encoding=V.Mb)(a);d._sqlite3_value_nochange=a=>(d._sqlite3_value_nochange=V.Nb)(a);d._sqlite3_value_frombind=a=>(d._sqlite3_value_frombind=V.Ob)(a);d._sqlite3_value_dup=a=>(d._sqlite3_value_dup=V.Pb)(a);d._sqlite3_value_free=a=>(d._sqlite3_value_free=V.Qb)(a);d._sqlite3_result_blob=(a,b,c,e)=>(d._sqlite3_result_blob=V.Rb)(a,b,c,e); -d._sqlite3_result_blob64=(a,b,c,e,f)=>(d._sqlite3_result_blob64=V.Sb)(a,b,c,e,f);d._sqlite3_result_double=(a,b)=>(d._sqlite3_result_double=V.Tb)(a,b);d._sqlite3_result_error=(a,b,c)=>(d._sqlite3_result_error=V.Ub)(a,b,c);d._sqlite3_result_error16=(a,b,c)=>(d._sqlite3_result_error16=V.Vb)(a,b,c);d._sqlite3_result_int=(a,b)=>(d._sqlite3_result_int=V.Wb)(a,b);d._sqlite3_result_int64=(a,b,c)=>(d._sqlite3_result_int64=V.Xb)(a,b,c);d._sqlite3_result_null=a=>(d._sqlite3_result_null=V.Yb)(a); -d._sqlite3_result_pointer=(a,b,c,e)=>(d._sqlite3_result_pointer=V.Zb)(a,b,c,e);d._sqlite3_result_subtype=(a,b)=>(d._sqlite3_result_subtype=V._b)(a,b);d._sqlite3_result_text=(a,b,c,e)=>(d._sqlite3_result_text=V.$b)(a,b,c,e);d._sqlite3_result_text64=(a,b,c,e,f,h)=>(d._sqlite3_result_text64=V.ac)(a,b,c,e,f,h);d._sqlite3_result_text16=(a,b,c,e)=>(d._sqlite3_result_text16=V.bc)(a,b,c,e);d._sqlite3_result_text16be=(a,b,c,e)=>(d._sqlite3_result_text16be=V.cc)(a,b,c,e); -d._sqlite3_result_text16le=(a,b,c,e)=>(d._sqlite3_result_text16le=V.dc)(a,b,c,e);d._sqlite3_result_value=(a,b)=>(d._sqlite3_result_value=V.ec)(a,b);d._sqlite3_result_error_toobig=a=>(d._sqlite3_result_error_toobig=V.fc)(a);d._sqlite3_result_zeroblob=(a,b)=>(d._sqlite3_result_zeroblob=V.gc)(a,b);d._sqlite3_result_zeroblob64=(a,b,c)=>(d._sqlite3_result_zeroblob64=V.hc)(a,b,c);d._sqlite3_result_error_code=(a,b)=>(d._sqlite3_result_error_code=V.ic)(a,b); -d._sqlite3_result_error_nomem=a=>(d._sqlite3_result_error_nomem=V.jc)(a);d._sqlite3_user_data=a=>(d._sqlite3_user_data=V.kc)(a);d._sqlite3_context_db_handle=a=>(d._sqlite3_context_db_handle=V.lc)(a);d._sqlite3_vtab_nochange=a=>(d._sqlite3_vtab_nochange=V.mc)(a);d._sqlite3_vtab_in_first=(a,b)=>(d._sqlite3_vtab_in_first=V.nc)(a,b);d._sqlite3_vtab_in_next=(a,b)=>(d._sqlite3_vtab_in_next=V.oc)(a,b);d._sqlite3_aggregate_context=(a,b)=>(d._sqlite3_aggregate_context=V.pc)(a,b); -d._sqlite3_get_auxdata=(a,b)=>(d._sqlite3_get_auxdata=V.qc)(a,b);d._sqlite3_set_auxdata=(a,b,c,e)=>(d._sqlite3_set_auxdata=V.rc)(a,b,c,e);d._sqlite3_column_count=a=>(d._sqlite3_column_count=V.sc)(a);d._sqlite3_data_count=a=>(d._sqlite3_data_count=V.tc)(a);d._sqlite3_column_blob=(a,b)=>(d._sqlite3_column_blob=V.uc)(a,b);d._sqlite3_column_bytes=(a,b)=>(d._sqlite3_column_bytes=V.vc)(a,b);d._sqlite3_column_bytes16=(a,b)=>(d._sqlite3_column_bytes16=V.wc)(a,b); -d._sqlite3_column_double=(a,b)=>(d._sqlite3_column_double=V.xc)(a,b);d._sqlite3_column_text=(a,b)=>(d._sqlite3_column_text=V.yc)(a,b);d._sqlite3_column_value=(a,b)=>(d._sqlite3_column_value=V.zc)(a,b);d._sqlite3_column_text16=(a,b)=>(d._sqlite3_column_text16=V.Ac)(a,b);d._sqlite3_column_type=(a,b)=>(d._sqlite3_column_type=V.Bc)(a,b);d._sqlite3_column_name=(a,b)=>(d._sqlite3_column_name=V.Cc)(a,b);d._sqlite3_column_name16=(a,b)=>(d._sqlite3_column_name16=V.Dc)(a,b); -d._sqlite3_bind_blob=(a,b,c,e,f)=>(d._sqlite3_bind_blob=V.Ec)(a,b,c,e,f);d._sqlite3_bind_blob64=(a,b,c,e,f,h)=>(d._sqlite3_bind_blob64=V.Fc)(a,b,c,e,f,h);d._sqlite3_bind_double=(a,b,c)=>(d._sqlite3_bind_double=V.Gc)(a,b,c);d._sqlite3_bind_int=(a,b,c)=>(d._sqlite3_bind_int=V.Hc)(a,b,c);d._sqlite3_bind_int64=(a,b,c,e)=>(d._sqlite3_bind_int64=V.Ic)(a,b,c,e);d._sqlite3_bind_null=(a,b)=>(d._sqlite3_bind_null=V.Jc)(a,b);d._sqlite3_bind_pointer=(a,b,c,e,f)=>(d._sqlite3_bind_pointer=V.Kc)(a,b,c,e,f); -d._sqlite3_bind_text=(a,b,c,e,f)=>(d._sqlite3_bind_text=V.Lc)(a,b,c,e,f);d._sqlite3_bind_text64=(a,b,c,e,f,h,k)=>(d._sqlite3_bind_text64=V.Mc)(a,b,c,e,f,h,k);d._sqlite3_bind_text16=(a,b,c,e,f)=>(d._sqlite3_bind_text16=V.Nc)(a,b,c,e,f);d._sqlite3_bind_value=(a,b,c)=>(d._sqlite3_bind_value=V.Oc)(a,b,c);d._sqlite3_bind_zeroblob=(a,b,c)=>(d._sqlite3_bind_zeroblob=V.Pc)(a,b,c);d._sqlite3_bind_zeroblob64=(a,b,c,e)=>(d._sqlite3_bind_zeroblob64=V.Qc)(a,b,c,e); -d._sqlite3_bind_parameter_count=a=>(d._sqlite3_bind_parameter_count=V.Rc)(a);d._sqlite3_bind_parameter_name=(a,b)=>(d._sqlite3_bind_parameter_name=V.Sc)(a,b);d._sqlite3_bind_parameter_index=(a,b)=>(d._sqlite3_bind_parameter_index=V.Tc)(a,b);d._sqlite3_db_handle=a=>(d._sqlite3_db_handle=V.Uc)(a);d._sqlite3_stmt_readonly=a=>(d._sqlite3_stmt_readonly=V.Vc)(a);d._sqlite3_stmt_isexplain=a=>(d._sqlite3_stmt_isexplain=V.Wc)(a);d._sqlite3_stmt_explain=(a,b)=>(d._sqlite3_stmt_explain=V.Xc)(a,b); -d._sqlite3_stmt_busy=a=>(d._sqlite3_stmt_busy=V.Yc)(a);d._sqlite3_next_stmt=(a,b)=>(d._sqlite3_next_stmt=V.Zc)(a,b);d._sqlite3_stmt_status=(a,b,c)=>(d._sqlite3_stmt_status=V._c)(a,b,c);d._sqlite3_sql=a=>(d._sqlite3_sql=V.$c)(a);d._sqlite3_expanded_sql=a=>(d._sqlite3_expanded_sql=V.ad)(a);d._sqlite3_value_numeric_type=a=>(d._sqlite3_value_numeric_type=V.bd)(a);d._sqlite3_blob_open=(a,b,c,e,f,h,k,n)=>(d._sqlite3_blob_open=V.cd)(a,b,c,e,f,h,k,n);d._sqlite3_blob_close=a=>(d._sqlite3_blob_close=V.dd)(a); -d._sqlite3_blob_read=(a,b,c,e)=>(d._sqlite3_blob_read=V.ed)(a,b,c,e);d._sqlite3_blob_write=(a,b,c,e)=>(d._sqlite3_blob_write=V.fd)(a,b,c,e);d._sqlite3_blob_bytes=a=>(d._sqlite3_blob_bytes=V.gd)(a);d._sqlite3_blob_reopen=(a,b,c)=>(d._sqlite3_blob_reopen=V.hd)(a,b,c);d._sqlite3_set_authorizer=(a,b,c)=>(d._sqlite3_set_authorizer=V.id)(a,b,c);d._sqlite3_strglob=(a,b)=>(d._sqlite3_strglob=V.jd)(a,b);d._sqlite3_strlike=(a,b,c)=>(d._sqlite3_strlike=V.kd)(a,b,c);d._sqlite3_errmsg=a=>(d._sqlite3_errmsg=V.ld)(a); -d._sqlite3_auto_extension=a=>(d._sqlite3_auto_extension=V.md)(a);d._sqlite3_cancel_auto_extension=a=>(d._sqlite3_cancel_auto_extension=V.nd)(a);d._sqlite3_reset_auto_extension=()=>(d._sqlite3_reset_auto_extension=V.od)();d._sqlite3_prepare=(a,b,c,e,f)=>(d._sqlite3_prepare=V.pd)(a,b,c,e,f);d._sqlite3_prepare_v3=(a,b,c,e,f,h)=>(d._sqlite3_prepare_v3=V.qd)(a,b,c,e,f,h);d._sqlite3_prepare16=(a,b,c,e,f)=>(d._sqlite3_prepare16=V.rd)(a,b,c,e,f); -d._sqlite3_prepare16_v2=(a,b,c,e,f)=>(d._sqlite3_prepare16_v2=V.sd)(a,b,c,e,f);d._sqlite3_prepare16_v3=(a,b,c,e,f,h)=>(d._sqlite3_prepare16_v3=V.td)(a,b,c,e,f,h);d._sqlite3_get_table=(a,b,c,e,f,h)=>(d._sqlite3_get_table=V.ud)(a,b,c,e,f,h);d._sqlite3_free_table=a=>(d._sqlite3_free_table=V.vd)(a);d._sqlite3_create_module=(a,b,c,e)=>(d._sqlite3_create_module=V.wd)(a,b,c,e);d._sqlite3_create_module_v2=(a,b,c,e,f)=>(d._sqlite3_create_module_v2=V.xd)(a,b,c,e,f); -d._sqlite3_drop_modules=(a,b)=>(d._sqlite3_drop_modules=V.yd)(a,b);d._sqlite3_declare_vtab=(a,b)=>(d._sqlite3_declare_vtab=V.zd)(a,b);d._sqlite3_vtab_on_conflict=a=>(d._sqlite3_vtab_on_conflict=V.Ad)(a);d._sqlite3_vtab_config=(a,b,c)=>(d._sqlite3_vtab_config=V.Bd)(a,b,c);d._sqlite3_vtab_collation=(a,b)=>(d._sqlite3_vtab_collation=V.Cd)(a,b);d._sqlite3_vtab_in=(a,b,c)=>(d._sqlite3_vtab_in=V.Dd)(a,b,c);d._sqlite3_vtab_rhs_value=(a,b,c)=>(d._sqlite3_vtab_rhs_value=V.Ed)(a,b,c); -d._sqlite3_vtab_distinct=a=>(d._sqlite3_vtab_distinct=V.Fd)(a);d._sqlite3_keyword_name=(a,b,c)=>(d._sqlite3_keyword_name=V.Gd)(a,b,c);d._sqlite3_keyword_count=()=>(d._sqlite3_keyword_count=V.Hd)();d._sqlite3_keyword_check=(a,b)=>(d._sqlite3_keyword_check=V.Id)(a,b);d._sqlite3_complete=a=>(d._sqlite3_complete=V.Jd)(a);d._sqlite3_complete16=a=>(d._sqlite3_complete16=V.Kd)(a);d._sqlite3_libversion=()=>(d._sqlite3_libversion=V.Ld)();d._sqlite3_libversion_number=()=>(d._sqlite3_libversion_number=V.Md)(); -d._sqlite3_threadsafe=()=>(d._sqlite3_threadsafe=V.Nd)();d._sqlite3_initialize=()=>(d._sqlite3_initialize=V.Od)();d._sqlite3_shutdown=()=>(d._sqlite3_shutdown=V.Pd)();d._sqlite3_config=(a,b)=>(d._sqlite3_config=V.Qd)(a,b);d._sqlite3_db_mutex=a=>(d._sqlite3_db_mutex=V.Rd)(a);d._sqlite3_db_release_memory=a=>(d._sqlite3_db_release_memory=V.Sd)(a);d._sqlite3_db_cacheflush=a=>(d._sqlite3_db_cacheflush=V.Td)(a);d._sqlite3_db_config=(a,b,c)=>(d._sqlite3_db_config=V.Ud)(a,b,c); -d._sqlite3_last_insert_rowid=a=>(d._sqlite3_last_insert_rowid=V.Vd)(a);d._sqlite3_set_last_insert_rowid=(a,b,c)=>(d._sqlite3_set_last_insert_rowid=V.Wd)(a,b,c);d._sqlite3_changes64=a=>(d._sqlite3_changes64=V.Xd)(a);d._sqlite3_changes=a=>(d._sqlite3_changes=V.Yd)(a);d._sqlite3_total_changes64=a=>(d._sqlite3_total_changes64=V.Zd)(a);d._sqlite3_total_changes=a=>(d._sqlite3_total_changes=V._d)(a);d._sqlite3_txn_state=(a,b)=>(d._sqlite3_txn_state=V.$d)(a,b);d._sqlite3_close=a=>(d._sqlite3_close=V.ae)(a); -d._sqlite3_close_v2=a=>(d._sqlite3_close_v2=V.be)(a);d._sqlite3_busy_handler=(a,b,c)=>(d._sqlite3_busy_handler=V.ce)(a,b,c);d._sqlite3_progress_handler=(a,b,c,e)=>(d._sqlite3_progress_handler=V.de)(a,b,c,e);d._sqlite3_busy_timeout=(a,b)=>(d._sqlite3_busy_timeout=V.ee)(a,b);d._sqlite3_interrupt=a=>(d._sqlite3_interrupt=V.fe)(a);d._sqlite3_is_interrupted=a=>(d._sqlite3_is_interrupted=V.ge)(a);d._sqlite3_create_function=(a,b,c,e,f,h,k,n)=>(d._sqlite3_create_function=V.he)(a,b,c,e,f,h,k,n); -d._sqlite3_create_function_v2=(a,b,c,e,f,h,k,n,l)=>(d._sqlite3_create_function_v2=V.ie)(a,b,c,e,f,h,k,n,l);d._sqlite3_create_window_function=(a,b,c,e,f,h,k,n,l,m)=>(d._sqlite3_create_window_function=V.je)(a,b,c,e,f,h,k,n,l,m);d._sqlite3_create_function16=(a,b,c,e,f,h,k,n)=>(d._sqlite3_create_function16=V.ke)(a,b,c,e,f,h,k,n);d._sqlite3_overload_function=(a,b,c)=>(d._sqlite3_overload_function=V.le)(a,b,c);d._sqlite3_trace_v2=(a,b,c,e)=>(d._sqlite3_trace_v2=V.me)(a,b,c,e); -d._sqlite3_commit_hook=(a,b,c)=>(d._sqlite3_commit_hook=V.ne)(a,b,c);d._sqlite3_update_hook=(a,b,c)=>(d._sqlite3_update_hook=V.oe)(a,b,c);d._sqlite3_rollback_hook=(a,b,c)=>(d._sqlite3_rollback_hook=V.pe)(a,b,c);d._sqlite3_autovacuum_pages=(a,b,c,e)=>(d._sqlite3_autovacuum_pages=V.qe)(a,b,c,e);d._sqlite3_wal_autocheckpoint=(a,b)=>(d._sqlite3_wal_autocheckpoint=V.re)(a,b);d._sqlite3_wal_hook=(a,b,c)=>(d._sqlite3_wal_hook=V.se)(a,b,c); -d._sqlite3_wal_checkpoint_v2=(a,b,c,e,f)=>(d._sqlite3_wal_checkpoint_v2=V.te)(a,b,c,e,f);d._sqlite3_wal_checkpoint=(a,b)=>(d._sqlite3_wal_checkpoint=V.ue)(a,b);d._sqlite3_error_offset=a=>(d._sqlite3_error_offset=V.ve)(a);d._sqlite3_errmsg16=a=>(d._sqlite3_errmsg16=V.we)(a);d._sqlite3_errcode=a=>(d._sqlite3_errcode=V.xe)(a);d._sqlite3_extended_errcode=a=>(d._sqlite3_extended_errcode=V.ye)(a);d._sqlite3_system_errno=a=>(d._sqlite3_system_errno=V.ze)(a);d._sqlite3_errstr=a=>(d._sqlite3_errstr=V.Ae)(a); -d._sqlite3_limit=(a,b,c)=>(d._sqlite3_limit=V.Be)(a,b,c);d._sqlite3_open=(a,b)=>(d._sqlite3_open=V.Ce)(a,b);d._sqlite3_open_v2=(a,b,c,e)=>(d._sqlite3_open_v2=V.De)(a,b,c,e);d._sqlite3_open16=(a,b)=>(d._sqlite3_open16=V.Ee)(a,b);d._sqlite3_create_collation=(a,b,c,e,f)=>(d._sqlite3_create_collation=V.Fe)(a,b,c,e,f);d._sqlite3_create_collation_v2=(a,b,c,e,f,h)=>(d._sqlite3_create_collation_v2=V.Ge)(a,b,c,e,f,h);d._sqlite3_create_collation16=(a,b,c,e,f)=>(d._sqlite3_create_collation16=V.He)(a,b,c,e,f); -d._sqlite3_collation_needed=(a,b,c)=>(d._sqlite3_collation_needed=V.Ie)(a,b,c);d._sqlite3_collation_needed16=(a,b,c)=>(d._sqlite3_collation_needed16=V.Je)(a,b,c);d._sqlite3_get_clientdata=(a,b)=>(d._sqlite3_get_clientdata=V.Ke)(a,b);d._sqlite3_set_clientdata=(a,b,c,e)=>(d._sqlite3_set_clientdata=V.Le)(a,b,c,e);d._sqlite3_get_autocommit=a=>(d._sqlite3_get_autocommit=V.Me)(a);d._sqlite3_table_column_metadata=(a,b,c,e,f,h,k,n,l)=>(d._sqlite3_table_column_metadata=V.Ne)(a,b,c,e,f,h,k,n,l); -d._sqlite3_sleep=a=>(d._sqlite3_sleep=V.Oe)(a);d._sqlite3_extended_result_codes=(a,b)=>(d._sqlite3_extended_result_codes=V.Pe)(a,b);d._sqlite3_file_control=(a,b,c,e)=>(d._sqlite3_file_control=V.Qe)(a,b,c,e);d._sqlite3_test_control=(a,b)=>(d._sqlite3_test_control=V.Re)(a,b);d._sqlite3_create_filename=(a,b,c,e,f)=>(d._sqlite3_create_filename=V.Se)(a,b,c,e,f);d._sqlite3_free_filename=a=>(d._sqlite3_free_filename=V.Te)(a);d._sqlite3_uri_parameter=(a,b)=>(d._sqlite3_uri_parameter=V.Ue)(a,b); -d._sqlite3_uri_key=(a,b)=>(d._sqlite3_uri_key=V.Ve)(a,b);d._sqlite3_uri_boolean=(a,b,c)=>(d._sqlite3_uri_boolean=V.We)(a,b,c);d._sqlite3_uri_int64=(a,b,c,e)=>(d._sqlite3_uri_int64=V.Xe)(a,b,c,e);d._sqlite3_filename_database=a=>(d._sqlite3_filename_database=V.Ye)(a);d._sqlite3_filename_journal=a=>(d._sqlite3_filename_journal=V.Ze)(a);d._sqlite3_filename_wal=a=>(d._sqlite3_filename_wal=V._e)(a);d._sqlite3_db_name=(a,b)=>(d._sqlite3_db_name=V.$e)(a,b); -d._sqlite3_db_filename=(a,b)=>(d._sqlite3_db_filename=V.af)(a,b);d._sqlite3_db_readonly=(a,b)=>(d._sqlite3_db_readonly=V.bf)(a,b);d._sqlite3_compileoption_used=a=>(d._sqlite3_compileoption_used=V.cf)(a);d._sqlite3_compileoption_get=a=>(d._sqlite3_compileoption_get=V.df)(a);d._sqlite3_sourceid=()=>(d._sqlite3_sourceid=V.ef)();d._sqlite3mc_config=(a,b,c)=>(d._sqlite3mc_config=V.ff)(a,b,c);d._sqlite3mc_cipher_count=()=>(d._sqlite3mc_cipher_count=V.gf)(); -d._sqlite3mc_cipher_index=a=>(d._sqlite3mc_cipher_index=V.hf)(a);d._sqlite3mc_cipher_name=a=>(d._sqlite3mc_cipher_name=V.jf)(a);d._sqlite3mc_config_cipher=(a,b,c,e)=>(d._sqlite3mc_config_cipher=V.kf)(a,b,c,e);d._sqlite3mc_codec_data=(a,b,c)=>(d._sqlite3mc_codec_data=V.lf)(a,b,c);d._sqlite3_key=(a,b,c)=>(d._sqlite3_key=V.mf)(a,b,c);d._sqlite3_key_v2=(a,b,c,e)=>(d._sqlite3_key_v2=V.nf)(a,b,c,e);d._sqlite3_rekey_v2=(a,b,c,e)=>(d._sqlite3_rekey_v2=V.of)(a,b,c,e); -d._sqlite3_rekey=(a,b,c)=>(d._sqlite3_rekey=V.pf)(a,b,c);d._sqlite3mc_register_cipher=(a,b,c)=>(d._sqlite3mc_register_cipher=V.qf)(a,b,c);var Zc=d._malloc=a=>(Zc=d._malloc=V.rf)(a),dd=d._free=a=>(dd=d._free=V.sf)(a);d._RegisterExtensionFunctions=a=>(d._RegisterExtensionFunctions=V.tf)(a);d._sqlite3Fts5BetterTrigramInit=a=>(d._sqlite3Fts5BetterTrigramInit=V.uf)(a);d._set_authorizer=a=>(d._set_authorizer=V.vf)(a);d._create_function=(a,b,c,e,f,h)=>(d._create_function=V.wf)(a,b,c,e,f,h); -d._create_module=(a,b,c,e)=>(d._create_module=V.xf)(a,b,c,e);d._progress_handler=(a,b)=>(d._progress_handler=V.yf)(a,b);d._register_vfs=(a,b,c,e)=>(d._register_vfs=V.zf)(a,b,c,e);d._getSqliteFree=()=>(d._getSqliteFree=V.Af)();var qd=d._main=(a,b)=>(qd=d._main=V.Bf)(a,b),gb=(a,b)=>(gb=V.Df)(a,b),od=(a,b)=>(od=V.Ef)(a,b),rd=()=>(rd=V.Ff)(),kd=a=>(kd=V.Gf)(a),ld=a=>(ld=V.Hf)(a),md=()=>(md=V.If)(),bd=a=>(bd=V.Jf)(a),Qc=()=>(Qc=V.Kf)(),ad=a=>(ad=V.Lf)(a),cd=()=>(cd=V.Mf)();d._sqlite3_version=5472; -d.getTempRet0=()=>rd();d.ccall=Z;d.cwrap=(a,b,c,e)=>{var f=!c||c.every(h=>"number"===h||"boolean"===h);return"string"!==b&&f&&!e?d["_"+a]:(...h)=>Z(a,b,c,h,e)}; -d.addFunction=(a,b)=>{if(!hd){hd=new WeakMap;var c=gd.length;if(hd)for(var e=0;e<0+c;e++){var f=gd.get(e);f&&hd.set(f,e)}}if(c=hd.get(a)||0)return c;if(jd.length)c=jd.pop();else{try{gd.grow(1)}catch(n){if(!(n instanceof RangeError))throw n;throw"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH.";}c=gd.length-1}try{gd.set(c,a)}catch(n){if(!(n instanceof TypeError))throw n;if("function"==typeof WebAssembly.Function){e=WebAssembly.Function;f={i:"i32",j:"i64",f:"f32",d:"f64",e:"externref",p:"i32"};for(var h= -{parameters:[],results:"v"==b[0]?[]:[f[b[0]]]},k=1;kk?e.push(k):e.push(k%128|128,k>>7);for(k=0;kf?b.push(f):b.push(f%128|128,f>>7);b.push(...e);b.push(2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0);b=new WebAssembly.Module(new Uint8Array(b));b=(new WebAssembly.Instance(b, -{e:{f:a}})).exports.f}gd.set(c,b)}hd.set(a,c);return c};d.setValue=H;d.getValue=F;d.UTF8ToString=(a,b)=>a?I(v,a,b):"";d.stringToUTF8=(a,b,c)=>J(a,v,b,c);d.lengthBytesUTF8=Ua;d.intArrayFromString=Va;d.intArrayToString=function(a){for(var b=[],c=0;c{for(var b="";;){var c=v[a++];if(!c)return b;b+=String.fromCharCode(c)}}; -d.UTF16ToString=(a,b)=>{var c=a>>1;for(var e=c+b/2;!(c>=e)&&qa[c];)++c;c<<=1;if(32=b/2);++e){var f=w[a+2*e>>1];if(0==f)break;c+=String.fromCharCode(f)}return c};d.stringToUTF16=(a,b,c)=>{c??=2147483647;if(2>c)return 0;c-=2;var e=b;c=c<2*a.length?c/2:a.length;for(var f=0;f>1]=a.charCodeAt(f),b+=2;w[b>>1]=0;return b-e}; -d.UTF32ToString=(a,b)=>{for(var c=0,e="";!(c>=b/4);){var f=x[a+4*c>>2];if(0==f)break;++c;65536<=f?(f-=65536,e+=String.fromCharCode(55296|f>>10,56320|f&1023)):e+=String.fromCharCode(f)}return e};d.stringToUTF32=(a,b,c)=>{c??=2147483647;if(4>c)return 0;var e=b;c=e+c-4;for(var f=0;f=h){var k=a.charCodeAt(++f);h=65536+((h&1023)<<10)|k&1023}x[b>>2]=h;b+=4;if(b+4>c)break}x[b>>2]=0;return b-e};d.writeArrayToMemory=(a,b)=>{u.set(a,b)};var sd; -Ba=function td(){sd||ud();sd||(Ba=td)}; -function ud(){function a(){if(!sd&&(sd=!0,d.calledRun=!0,!oa)){if(!d.noFSInit&&!mb){var b,c;mb=!0;e??=d.stdin;b??=d.stdout;c??=d.stderr;e?T("stdin",e):Eb("/dev/tty","/dev/stdin");b?T("stdout",null,b):Eb("/dev/tty","/dev/stdout");c?T("stderr",null,c):Eb("/dev/tty1","/dev/stderr");Kb("/dev/stdin",0);Kb("/dev/stdout",1);Kb("/dev/stderr",1)}nb=!1;Ja(va);Ja(wa);aa(d);d.onRuntimeInitialized?.();if(vd){var e=qd;try{var f=e(0,0);pa=f;Wb(f)}catch(h){Vb(h)}}if(d.postRun)for("function"==typeof d.postRun&&(d.postRun= -[d.postRun]);d.postRun.length;)f=d.postRun.shift(),xa.unshift(f);Ja(xa)}}if(!(0{setTimeout(()=>d.setStatus(""),1);a()},1)):a())}}if(d.preInit)for("function"==typeof d.preInit&&(d.preInit=[d.preInit]);0{throw c;},fa="object"==typeof window,ha="function"==typeof importScripts,m="",ia; +if(fa||ha)ha?m=self.location.href:"undefined"!=typeof document&&document.currentScript&&(m=document.currentScript.src),_scriptDir&&(m=_scriptDir),0!==m.indexOf("blob:")?m=m.substr(0,m.replace(/[?#].*/,"").lastIndexOf("/")+1):m="",ha&&(ia=b=>{var c=new XMLHttpRequest;c.open("GET",b,!1);c.responseType="arraybuffer";c.send(null);return new Uint8Array(c.response)});var ka=a.print||console.log.bind(console),t=a.printErr||console.warn.bind(console);Object.assign(a,ca);ca=null;a.thisProgram&&(da=a.thisProgram); +a.quit&&(ea=a.quit);var la;a.wasmBinary&&(la=a.wasmBinary);var noExitRuntime=a.noExitRuntime||!0;"object"!=typeof WebAssembly&&u("no native wasm support detected");var ma,v=!1,na="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0; +function oa(b,c,d){var e=c+d;for(d=c;b[d]&&!(d>=e);)++d;if(16f?e+=String.fromCharCode(f):(f-=65536,e+=String.fromCharCode(55296|f>>10,56320|f&1023))}}else e+=String.fromCharCode(f)}return e}function x(b,c){return b?oa(y,b,c):""} +function pa(b,c,d,e){if(!(0=h){var n=b.charCodeAt(++g);h=65536+((h&1023)<<10)|n&1023}if(127>=h){if(d>=e)break;c[d++]=h}else{if(2047>=h){if(d+1>=e)break;c[d++]=192|h>>6}else{if(65535>=h){if(d+2>=e)break;c[d++]=224|h>>12}else{if(d+3>=e)break;c[d++]=240|h>>18;c[d++]=128|h>>12&63}c[d++]=128|h>>6&63}c[d++]=128|h&63}}c[d]=0;return d-f}function qa(b,c,d){return pa(b,y,c,d)} +function ra(b){for(var c=0,d=0;d=e?c++:2047>=e?c+=2:55296<=e&&57343>=e?(c+=4,++d):c+=3}return c}var A,y,B,sa,C,E,ta,ua;function va(){var b=ma.buffer;a.HEAP8=A=new Int8Array(b);a.HEAP16=B=new Int16Array(b);a.HEAP32=C=new Int32Array(b);a.HEAPU8=y=new Uint8Array(b);a.HEAPU16=sa=new Uint16Array(b);a.HEAPU32=E=new Uint32Array(b);a.HEAPF32=ta=new Float32Array(b);a.HEAPF64=ua=new Float64Array(b)}var wa,xa=[],ya=[],za=[],Aa=[]; +function Ba(){var b=a.preRun.shift();xa.unshift(b)}var Ca=0,Da=null,Ea=null;function u(b){if(a.onAbort)a.onAbort(b);b="Aborted("+b+")";t(b);v=!0;b=new WebAssembly.RuntimeError(b+". Build with -sASSERTIONS for more info.");ba(b);throw b;}function Fa(){return F.startsWith("data:application/octet-stream;base64,")}var F;if(a.locateFile){if(F="wa-sqlite-async.wasm",!Fa()){var Ga=F;F=a.locateFile?a.locateFile(Ga,m):m+Ga}}else F=(new URL("wa-sqlite-async.wasm",import.meta.url)).href; +function Ha(){var b=F;try{if(b==F&&la)return new Uint8Array(la);if(ia)return ia(b);throw"both async and sync fetching of the wasm failed";}catch(c){u(c)}}function Ia(){return la||!fa&&!ha||"function"!=typeof fetch?Promise.resolve().then(function(){return Ha()}):fetch(F,{credentials:"same-origin"}).then(function(b){if(!b.ok)throw"failed to load wasm binary file at '"+F+"'";return b.arrayBuffer()}).catch(function(){return Ha()})}var I,K; +function Ja(b){this.name="ExitStatus";this.message="Program terminated with exit("+b+")";this.status=b}function Ka(b){for(;0>0];case "i8":return A[b>>0];case "i16":return B[b>>1];case "i32":return C[b>>2];case "i64":return C[b>>2];case "float":return ta[b>>2];case "double":return ua[b>>3];case "*":return E[b>>2];default:u("invalid type for getValue: "+c)}return null} +function M(b,c,d="i8"){d.endsWith("*")&&(d="*");switch(d){case "i1":A[b>>0]=c;break;case "i8":A[b>>0]=c;break;case "i16":B[b>>1]=c;break;case "i32":C[b>>2]=c;break;case "i64":K=[c>>>0,(I=c,1<=+Math.abs(I)?0>>0:~~+Math.ceil((I-+(~~I>>>0))/4294967296)>>>0:0)];C[b>>2]=K[0];C[b+4>>2]=K[1];break;case "float":ta[b>>2]=c;break;case "double":ua[b>>3]=c;break;case "*":E[b>>2]=c;break;default:u("invalid type for setValue: "+d)}} +var La=(b,c)=>{for(var d=0,e=b.length-1;0<=e;e--){var f=b[e];"."===f?b.splice(e,1):".."===f?(b.splice(e,1),d++):d&&(b.splice(e,1),d--)}if(c)for(;d;d--)b.unshift("..");return b},N=b=>{var c="/"===b.charAt(0),d="/"===b.substr(-1);(b=La(b.split("/").filter(e=>!!e),!c).join("/"))||c||(b=".");b&&d&&(b+="/");return(c?"/":"")+b},Ma=b=>{var c=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(b).slice(1);b=c[0];c=c[1];if(!b&&!c)return".";c&&(c=c.substr(0,c.length-1));return b+c},Na=b=>{if("/"=== +b)return"/";b=N(b);b=b.replace(/\/$/,"");var c=b.lastIndexOf("/");return-1===c?b:b.substr(c+1)};function Oa(){if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues){var b=new Uint8Array(1);return()=>{crypto.getRandomValues(b);return b[0]}}return()=>u("randomDevice")} +function Pa(){for(var b="",c=!1,d=arguments.length-1;-1<=d&&!c;d--){c=0<=d?arguments[d]:"/";if("string"!=typeof c)throw new TypeError("Arguments to path.resolve must be strings");if(!c)return"";b=c+"/"+b;c="/"===c.charAt(0)}b=La(b.split("/").filter(e=>!!e),!c).join("/");return(c?"/":"")+b||"."}function Qa(b,c,d){d=Array(0=c||(c=Math.max(c,d*(1048576>d?2:1.125)>>>0),0!=d&&(c=Math.max(c,256)),d=b.Nf,b.Nf=new Uint8Array(c),0=b.node.Pf)return 0;b=Math.min(b.node.Pf-f,e);if(8c)throw new O(28);return c},ug:function(b,c,d){P.wg(b.node,c+d);b.node.Pf=Math.max(b.node.Pf,c+d)},jg:function(b,c,d,e,f){if(32768!==(b.node.mode&61440))throw new O(43); +b=b.node.Nf;if(f&2||b.buffer!==A.buffer){if(0{b=Pa(b);if(!b)return{path:"",node:null};c=Object.assign({xg:!0,sg:0},c);if(8!!h);for(var d=bb,e="/",f=0;f{for(var c;;){if(b===b.parent)return b=b.Uf.zg,c?"/"!==b[b.length-1]?b+"/"+c:b+c:b;c=c?b.name+"/"+c:b.name;b=b.parent}},hb=(b,c)=>{for(var d=0,e=0;e>>0)%R.length},ib=b=>{var c=hb(b.parent.id,b.name);if(R[c]===b)R[c]=b.ag;else for(c=R[c];c;){if(c.ag===b){c.ag=b.ag;break}c=c.ag}},$a=(b,c)=>{var d;if(d=(d=jb(b,"x"))?d:b.Lf.cg?0:2)throw new O(d,b);for(d=R[hb(b.id,c)];d;d=d.ag){var e=d.name;if(d.parent.id===b.id&&e===c)return d}return b.Lf.cg(b,c)},Ya=(b,c,d,e)=>{b=new kb(b,c,d,e);c=hb(b.parent.id,b.name);b.ag=R[c];return R[c]=b},lb={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},mb=b=>{var c=["r","w","rw"][b&3];b&512&&(c+="w");return c}, +jb=(b,c)=>{if(eb)return 0;if(!c.includes("r")||b.mode&292){if(c.includes("w")&&!(b.mode&146)||c.includes("x")&&!(b.mode&73))return 2}else return 2;return 0},nb=(b,c)=>{try{return $a(b,c),20}catch(d){}return jb(b,"wx")},ob=(b,c,d)=>{try{var e=$a(b,c)}catch(f){return f.Of}if(b=jb(b,"wx"))return b;if(d){if(16384!==(e.mode&61440))return 54;if(e===e.parent||"/"===gb(e))return 10}else if(16384===(e.mode&61440))return 31;return 0},pb=(b=0)=>{for(;4096>=b;b++)if(!Q[b])return b;throw new O(33);},rb=(b,c)=> +{qb||(qb=function(){this.gg={}},qb.prototype={},Object.defineProperties(qb.prototype,{object:{get:function(){return this.node},set:function(d){this.node=d}},flags:{get:function(){return this.gg.flags},set:function(d){this.gg.flags=d}},position:{get:function(){return this.gg.position},set:function(d){this.gg.position=d}}}));b=Object.assign(new qb,b);c=pb(c);b.Wf=c;return Q[c]=b},Xa={open:b=>{b.Mf=cb[b.node.eg].Mf;b.Mf.open&&b.Mf.open(b)},Zf:()=>{throw new O(70);}},Ta=(b,c)=>{cb[b]={Mf:c}},sb=(b,c)=> +{var d="/"===c,e=!c;if(d&&bb)throw new O(10);if(!d&&!e){var f=S(c,{xg:!1});c=f.path;f=f.node;if(f.$f)throw new O(10);if(16384!==(f.mode&61440))throw new O(54);}c={type:b,Vg:{},zg:c,Mg:[]};b=b.Uf(c);b.Uf=c;c.root=b;d?bb=b:f&&(f.$f=c,f.Uf&&f.Uf.Mg.push(c))},tb=(b,c,d)=>{var e=S(b,{parent:!0}).node;b=Na(b);if(!b||"."===b||".."===b)throw new O(28);var f=nb(e,b);if(f)throw new O(f);if(!e.Lf.ig)throw new O(63);return e.Lf.ig(e,b,c,d)},T=(b,c)=>tb(b,(void 0!==c?c:511)&1023|16384,0),ub=(b,c,d)=>{"undefined"== +typeof d&&(d=c,c=438);tb(b,c|8192,d)},vb=(b,c)=>{if(!Pa(b))throw new O(44);var d=S(c,{parent:!0}).node;if(!d)throw new O(44);c=Na(c);var e=nb(d,c);if(e)throw new O(e);if(!d.Lf.mg)throw new O(63);d.Lf.mg(d,c,b)},wb=b=>{var c=S(b,{parent:!0}).node;b=Na(b);var d=$a(c,b),e=ob(c,b,!0);if(e)throw new O(e);if(!c.Lf.lg)throw new O(63);if(d.$f)throw new O(10);c.Lf.lg(c,b);ib(d)},fb=b=>{b=S(b).node;if(!b)throw new O(44);if(!b.Lf.fg)throw new O(28);return Pa(gb(b.parent),b.Lf.fg(b))},xb=(b,c)=>{b=S(b,{Yf:!c}).node; +if(!b)throw new O(44);if(!b.Lf.Tf)throw new O(63);return b.Lf.Tf(b)},yb=b=>xb(b,!0),zb=(b,c)=>{b="string"==typeof b?S(b,{Yf:!0}).node:b;if(!b.Lf.Qf)throw new O(63);b.Lf.Qf(b,{mode:c&4095|b.mode&-4096,timestamp:Date.now()})},Ab=(b,c)=>{if(0>c)throw new O(28);b="string"==typeof b?S(b,{Yf:!0}).node:b;if(!b.Lf.Qf)throw new O(63);if(16384===(b.mode&61440))throw new O(31);if(32768!==(b.mode&61440))throw new O(28);var d=jb(b,"w");if(d)throw new O(d);b.Lf.Qf(b,{size:c,timestamp:Date.now()})},Cb=(b,c,d)=> +{if(""===b)throw new O(44);if("string"==typeof c){var e=lb[c];if("undefined"==typeof e)throw Error("Unknown file open mode: "+c);c=e}d=c&64?("undefined"==typeof d?438:d)&4095|32768:0;if("object"==typeof b)var f=b;else{b=N(b);try{f=S(b,{Yf:!(c&131072)}).node}catch(g){}}e=!1;if(c&64)if(f){if(c&128)throw new O(20);}else f=tb(b,d,0),e=!0;if(!f)throw new O(44);8192===(f.mode&61440)&&(c&=-513);if(c&65536&&16384!==(f.mode&61440))throw new O(54);if(!e&&(d=f?40960===(f.mode&61440)?32:16384===(f.mode&61440)&& +("r"!==mb(c)||c&512)?31:jb(f,mb(c)):44))throw new O(d);c&512&&!e&&Ab(f,0);c&=-131713;f=rb({node:f,path:gb(f),flags:c,seekable:!0,position:0,Mf:f.Mf,Tg:[],error:!1});f.Mf.open&&f.Mf.open(f);!a.logReadFiles||c&1||(Bb||(Bb={}),b in Bb||(Bb[b]=1));return f},Db=(b,c,d)=>{if(null===b.Wf)throw new O(8);if(!b.seekable||!b.Mf.Zf)throw new O(70);if(0!=d&&1!=d&&2!=d)throw new O(28);b.position=b.Mf.Zf(b,c,d);b.Tg=[]},Eb=()=>{O||(O=function(b,c){this.node=c;this.Rg=function(d){this.Of=d};this.Rg(b);this.message= +"FS error"},O.prototype=Error(),O.prototype.constructor=O,[44].forEach(b=>{Za[b]=new O(b);Za[b].stack=""}))},Fb,Gb=(b,c)=>{var d=0;b&&(d|=365);c&&(d|=146);return d},Ib=(b,c,d)=>{b=N("/dev/"+b);var e=Gb(!!c,!!d);Hb||(Hb=64);var f=Hb++<<8|0;Ta(f,{open:g=>{g.seekable=!1},close:()=>{d&&d.buffer&&d.buffer.length&&d(10)},read:(g,h,n,k)=>{for(var l=0,p=0;p{for(var l=0;l>2]=e.Ig;C[d+8>>2]=e.pg;C[d+12>>2]=e.mode;E[d+16>>2]=e.Og;C[d+20>>2]=e.uid;C[d+24>>2]=e.Lg;C[d+28>>2]=e.eg;K=[e.size>>>0,(I=e.size,1<=+Math.abs(I)?0>>0:~~+Math.ceil((I-+(~~I>>>0))/4294967296)>>>0:0)];C[d+40>>2]=K[0];C[d+44>>2]=K[1];C[d+48>>2]=4096;C[d+52>>2]=e.Gg;b=e.Eg.getTime();c=e.Ng.getTime();var f=e.Hg.getTime();K=[Math.floor(b/1E3)>>>0,(I= +Math.floor(b/1E3),1<=+Math.abs(I)?0>>0:~~+Math.ceil((I-+(~~I>>>0))/4294967296)>>>0:0)];C[d+56>>2]=K[0];C[d+60>>2]=K[1];E[d+64>>2]=b%1E3*1E3;K=[Math.floor(c/1E3)>>>0,(I=Math.floor(c/1E3),1<=+Math.abs(I)?0>>0:~~+Math.ceil((I-+(~~I>>>0))/4294967296)>>>0:0)];C[d+72>>2]=K[0];C[d+76>>2]=K[1];E[d+80>>2]=c%1E3*1E3;K=[Math.floor(f/1E3)>>>0,(I=Math.floor(f/1E3),1<=+Math.abs(I)?0>>0:~~+Math.ceil((I-+(~~I>>>0))/4294967296)>>>0:0)];C[d+88>>2]=K[0];C[d+92>>2]=K[1];E[d+96>>2]=f%1E3*1E3;K=[e.pg>>>0,(I=e.pg,1<=+Math.abs(I)?0>>0:~~+Math.ceil((I-+(~~I>>>0))/4294967296)>>>0:0)];C[d+104>>2]=K[0];C[d+108>>2]=K[1];return 0}var Lb=void 0;function Mb(){Lb+=4;return C[Lb-4>>2]}function V(b){b=Q[b];if(!b)throw new O(8);return b}function Nb(b){return E[b>>2]+4294967296*C[b+4>>2]} +var Ob=[0,31,60,91,121,152,182,213,244,274,305,335],Pb=[0,31,59,90,120,151,181,212,243,273,304,334];function Qb(b){var c=ra(b)+1,d=Rb(c);d&&pa(b,A,d,c);return d}var Sb={}; +function Tb(){if(!Ub){var b={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:da||"./this.program"},c;for(c in Sb)void 0===Sb[c]?delete b[c]:b[c]=Sb[c];var d=[];for(c in b)d.push(c+"="+b[c]);Ub=d}return Ub}var Ub;function Vb(b,c){Vb.Ag||(Vb.Ag=Oa());for(var d=0;d>0]=Vb.Ag();return 0}function Wb(){}function Xb(){}function Yb(){}function Zb(){} +function $b(){}function ac(){}function bc(){}function cc(){}function dc(){}function ec(){}function fc(){}function gc(){}function hc(){}function ic(){}function jc(){}function kc(){}function lc(){}function mc(){}function nc(){}function oc(){}function pc(){}function qc(){}function rc(){}function sc(){}function tc(){}function uc(){}function vc(){}function wc(){}function xc(){}function yc(){}function zc(){}function Ac(){}function Bc(){}function Cc(){}function Dc(){}function Ec(){}function Fc(){} +function Gc(){}function Hc(){}function Ic(b){b instanceof Ja||"unwind"==b||ea(1,b)}function Jc(b){try{b()}catch(c){u(c)}}function Kc(b){var c={},d;for(d in b)(function(e){var f=b[e];c[e]="function"==typeof f?function(){Lc.push(e);try{return f.apply(null,arguments)}finally{v||(Lc.pop()===e||u(),X&&1===Y&&0===Lc.length&&(Y=0,Jc(Mc),"undefined"!=typeof Fibers&&Fibers.Wg()))}}:f})(d);return c}var Y=0,X=null,Nc=0,Lc=[],Oc={},Pc={},Qc=0,Rc=null,Sc=[]; +function Tc(){return new Promise((b,c)=>{Rc={resolve:b,reject:c}})}function Uc(){var b=Rb(16396),c=b+12;C[b>>2]=c;C[b+4>>2]=c+16384;c=Lc[0];var d=Oc[c];void 0===d&&(d=Qc++,Oc[c]=d,Pc[d]=c);C[b+8>>2]=d;return b} +function Vc(b){if(!v){if(0===Y){var c=!1,d=!1;b(e=>{if(!v&&(Nc=e||0,c=!0,d)){Y=2;Jc(()=>Wc(X));"undefined"!=typeof Xc&&Xc.qg.Kg&&Xc.qg.resume();e=!1;try{var f=(0,a.asm[Pc[C[X+8>>2]]])()}catch(n){f=n,e=!0}var g=!1;if(!X){var h=Rc;h&&(Rc=null,(e?h.reject:h.resolve)(f),g=!0)}if(e&&!g)throw f;}});d=!0;c||(Y=1,X=Uc(),"undefined"!=typeof Xc&&Xc.qg.Kg&&Xc.qg.pause(),Jc(()=>Yc(X)))}else 2===Y?(Y=0,Jc(Zc),$c(X),X=null,Sc.forEach(e=>{if(!v)try{e()}catch(f){Ic(f)}})):u("invalid state: "+Y);return Nc}} +function ad(b){return Vc(c=>{b().then(c)})}var bd={},cd=void 0,dd=[];function ed(b,c){A.set(b,c)} +function Z(b,c,d,e,f){function g(q){0!==k&&fd(k);return"string"===c?x(q):"boolean"===c?!!q:q}var h={string:q=>{var r=0;if(null!==q&&void 0!==q&&0!==q){var w=(q.length<<2)+1;r=gd(w);qa(q,r,w)}return r},array:q=>{var r=gd(q.length);ed(q,r);return r}};b=a["_"+b];var n=[],k=0;if(e)for(var l=0;l{T("/dev");Ta(259,{read:()=>0,write:(c,d,e,f)=>f});ub("/dev/null",259);Sa(1280,Va);Sa(1536,Wa);ub("/dev/tty",1280);ub("/dev/tty1",1536);var b=Oa();Ib("random",b);Ib("urandom",b);T("/dev/shm");T("/dev/shm/tmp")})();(()=>{T("/proc");var b=T("/proc/self");T("/proc/self/fd");sb({Uf:()=>{var c=Ya(b,"fd",16895,73);c.Lf={cg:(d,e)=>{var f=Q[+e];if(!f)throw new O(8);d={parent:null,Uf:{zg:"fake"},Lf:{fg:()=>f.path}};return d.parent=d}};return c}},"/proc/self/fd")})();var Xc; +(function(){const b=new Map;a.setAuthorizer=function(c,d,e){d?b.set(c,{f:d,tg:e}):b.delete(c);return Z("set_authorizer","number",["number"],[c])};Wb=function(c,d,e,f,g,h){if(b.has(c)){const {f:n,tg:k}=b.get(c);return n(k,d,e?x(e):null,f?x(f):null,g?x(g):null,h?x(h):null)}return 0}})(); +(function(){const b=new Map,c=new Map;a.createFunction=function(d,e,f,g,h,n){const k=b.size;b.set(k,{f:n,Xf:h});return Z("create_function","number","number string number number number number".split(" "),[d,e,f,g,k,0])};a.createAggregate=function(d,e,f,g,h,n,k){const l=b.size;b.set(l,{step:n,Jg:k,Xf:h});return Z("create_function","number","number string number number number number".split(" "),[d,e,f,g,l,1])};a.getFunctionUserData=function(d){return c.get(d)};Yb=function(d,e,f,g){d=b.get(d);c.set(e, +d.Xf);d.f(e,new Uint32Array(y.buffer,g,f));c.delete(e)};$b=function(d,e,f,g){d=b.get(d);c.set(e,d.Xf);d.step(e,new Uint32Array(y.buffer,g,f));c.delete(e)};Xb=function(d,e){d=b.get(d);c.set(e,d.Xf);d.Jg(e);c.delete(e)}})();(function(){const b=new Map;a.progressHandler=function(c,d,e,f){e?b.set(c,{f:e,tg:f}):b.delete(c);return Z("progress_handler",null,["number","number"],[c,d])};Zb=function(c){if(b.has(c)){const {f:d,tg:e}=b.get(c);return d(e)}return 0}})(); +(function(){function b(k,l){const p=`get${k}`,q=`set${k}`;return new Proxy(new DataView(y.buffer,l,"Int32"===k?4:8),{get(r,w){if(w===p)return function(z,G){if(!G)throw Error("must be little endian");return r[w](z,G)};if(w===q)return function(z,G,D){if(!D)throw Error("must be little endian");return r[w](z,G,D)};if("string"===typeof w&&w.match(/^(get)|(set)/))throw Error("invalid type");return r[w]}})}const c="object"===typeof bd,d=new Map,e=new Map,f=new Map,g=c?new Set:null,h=c?new Set:null,n=new Map; +qc=function(k,l,p,q){n.set(x(k),{size:l,dg:Array.from(new Uint32Array(y.buffer,q,p))})};a.createModule=function(k,l,p,q){c&&(p.handleAsync=ad);const r=d.size;d.set(r,{module:p,Xf:q});q=0;p.xCreate&&(q|=1);p.xConnect&&(q|=2);p.xBestIndex&&(q|=4);p.xDisconnect&&(q|=8);p.xDestroy&&(q|=16);p.xOpen&&(q|=32);p.xClose&&(q|=64);p.xFilter&&(q|=128);p.xNext&&(q|=256);p.xEof&&(q|=512);p.xColumn&&(q|=1024);p.xRowid&&(q|=2048);p.xUpdate&&(q|=4096);p.xBegin&&(q|=8192);p.xSync&&(q|=16384);p.xCommit&&(q|=32768); +p.xRollback&&(q|=65536);p.xFindFunction&&(q|=131072);p.xRename&&(q|=262144);return Z("create_module","number",["number","string","number","number"],[k,l,r,q])};gc=function(k,l,p,q,r,w){l=d.get(l);e.set(r,l);if(c){g.delete(r);for(const z of g)e.delete(z)}q=Array.from(new Uint32Array(y.buffer,q,p)).map(z=>x(z));return l.module.xCreate(k,l.Xf,q,r,b("Int32",w))};fc=function(k,l,p,q,r,w){l=d.get(l);e.set(r,l);if(c){g.delete(r);for(const z of g)e.delete(z)}q=Array.from(new Uint32Array(y.buffer,q,p)).map(z=> +x(z));return l.module.xConnect(k,l.Xf,q,r,b("Int32",w))};bc=function(k,l){var p=e.get(k),q=n.get("sqlite3_index_info").dg;const r={};r.nConstraint=L(l+q[0],"i32");r.aConstraint=[];var w=L(l+q[1],"*"),z=n.get("sqlite3_index_constraint").size;for(var G=0;Gk?2**32:0))}; +Hc=function(g,h,n,k,l){return e.get(g).xWrite(g,y.subarray(h,h+n),4294967296*l+k+(0>k?2**32:0))};Fc=function(g,h,n){return e.get(g).xTruncate(g,4294967296*n+h+(0>h?2**32:0))};Ec=function(g,h){return e.get(g).xSync(g,h)};zc=function(g,h){const n=e.get(g);h=b("BigInt64",h);return n.xFileSize(g,h)};Ac=function(g,h){return e.get(g).xLock(g,h)};Gc=function(g,h){return e.get(g).xUnlock(g,h)};uc=function(g,h){const n=e.get(g);h=b("Int32",h);return n.xCheckReservedLock(g,h)};yc=function(g,h,n){const k=e.get(g); +n=new DataView(y.buffer,n);return k.xFileControl(g,h,n)};Dc=function(g){return e.get(g).xSectorSize(g)};xc=function(g){return e.get(g).xDeviceCharacteristics(g)};Bc=function(g,h,n,k,l){g=d.get(g);e.set(n,g);if(c){f.delete(n);for(var p of f)e.delete(p)}p=null;if(k&64){p=1;const q=[];for(;p;){const r=y[h++];if(r)q.push(r);else switch(y[h]||(p=null),p){case 1:q.push(63);p=2;break;case 2:q.push(61);p=3;break;case 3:q.push(38),p=2}}p=(new TextDecoder).decode(new Uint8Array(q))}else h&&(p=x(h));l=b("Int32", +l);return g.xOpen(p,n,k,l)};wc=function(g,h,n){return d.get(g).xDelete(x(h),n)};tc=function(g,h,n,k){g=d.get(g);k=b("Int32",k);return g.xAccess(x(h),n,k)}})(); +var ld={a:function(b,c,d,e){u("Assertion failed: "+x(b)+", at: "+[c?x(c):"unknown filename",d,e?x(e):"unknown function"])},L:function(b,c){try{return b=x(b),zb(b,c),0}catch(d){if("undefined"==typeof U||!(d instanceof O))throw d;return-d.Of}},Q:function(b,c,d){try{c=x(c);c=Jb(b,c);if(d&-8)return-28;var e=S(c,{Yf:!0}).node;if(!e)return-44;b="";d&4&&(b+="r");d&2&&(b+="w");d&1&&(b+="x");return b&&jb(e,b)?-2:0}catch(f){if("undefined"==typeof U||!(f instanceof O))throw f;return-f.Of}},M:function(b,c){try{var d= +Q[b];if(!d)throw new O(8);zb(d.node,c);return 0}catch(e){if("undefined"==typeof U||!(e instanceof O))throw e;return-e.Of}},K:function(b){try{var c=Q[b];if(!c)throw new O(8);var d=c.node;var e="string"==typeof d?S(d,{Yf:!0}).node:d;if(!e.Lf.Qf)throw new O(63);e.Lf.Qf(e,{timestamp:Date.now()});return 0}catch(f){if("undefined"==typeof U||!(f instanceof O))throw f;return-f.Of}},b:function(b,c,d){Lb=d;try{var e=V(b);switch(c){case 0:var f=Mb();return 0>f?-28:rb(e,f).Wf;case 1:case 2:return 0;case 3:return e.flags; +case 4:return f=Mb(),e.flags|=f,0;case 5:return f=Mb(),B[f+0>>1]=2,0;case 6:case 7:return 0;case 16:case 8:return-28;case 9:return C[kd()>>2]=28,-1;default:return-28}}catch(g){if("undefined"==typeof U||!(g instanceof O))throw g;return-g.Of}},J:function(b,c){try{var d=V(b);return Kb(xb,d.path,c)}catch(e){if("undefined"==typeof U||!(e instanceof O))throw e;return-e.Of}},j:function(b,c,d){try{c=d+2097152>>>0<4194305-!!c?(c>>>0)+4294967296*d:NaN;if(isNaN(c))return-61;var e=Q[b];if(!e)throw new O(8);if(0=== +(e.flags&2097155))throw new O(28);Ab(e.node,c);return 0}catch(f){if("undefined"==typeof U||!(f instanceof O))throw f;return-f.Of}},D:function(b,c){try{if(0===c)return-28;var d=ra("/")+1;if(c=e)return-28;var f=fb(c),g=Math.min(e,ra(f)), +h=A[d+g];qa(f,d,e+1);A[d+g]=h;return g}catch(n){if("undefined"==typeof U||!(n instanceof O))throw n;return-n.Of}},t:function(b){try{return b=x(b),wb(b),0}catch(c){if("undefined"==typeof U||!(c instanceof O))throw c;return-c.Of}},H:function(b,c){try{return b=x(b),Kb(xb,b,c)}catch(d){if("undefined"==typeof U||!(d instanceof O))throw d;return-d.Of}},r:function(b,c,d){try{c=x(c);c=Jb(b,c);if(0===d){b=c;var e=S(b,{parent:!0}).node;if(!e)throw new O(44);var f=Na(b),g=$a(e,f),h=ob(e,f,!1);if(h)throw new O(h); +if(!e.Lf.ng)throw new O(63);if(g.$f)throw new O(10);e.Lf.ng(e,f);ib(g)}else 512===d?wb(c):u("Invalid flags passed to unlinkat");return 0}catch(n){if("undefined"==typeof U||!(n instanceof O))throw n;return-n.Of}},q:function(b,c,d){try{c=x(c);c=Jb(b,c,!0);if(d){var e=Nb(d),f=C[d+8>>2];g=1E3*e+f/1E6;d+=16;e=Nb(d);f=C[d+8>>2];h=1E3*e+f/1E6}else var g=Date.now(),h=g;b=g;var n=S(c,{Yf:!0}).node;n.Lf.Qf(n,{timestamp:Math.max(b,h)});return 0}catch(k){if("undefined"==typeof U||!(k instanceof O))throw k;return-k.Of}}, +N:function(b,c){b=new Date(1E3*Nb(b));C[c>>2]=b.getSeconds();C[c+4>>2]=b.getMinutes();C[c+8>>2]=b.getHours();C[c+12>>2]=b.getDate();C[c+16>>2]=b.getMonth();C[c+20>>2]=b.getFullYear()-1900;C[c+24>>2]=b.getDay();var d=b.getFullYear();C[c+28>>2]=(0!==d%4||0===d%100&&0!==d%400?Pb:Ob)[b.getMonth()]+b.getDate()-1|0;C[c+36>>2]=-(60*b.getTimezoneOffset());d=(new Date(b.getFullYear(),6,1)).getTimezoneOffset();var e=(new Date(b.getFullYear(),0,1)).getTimezoneOffset();C[c+32>>2]=(d!=e&&b.getTimezoneOffset()== +Math.min(e,d))|0},y:function(b,c,d,e,f,g,h){try{var n=V(e);if(0!==(c&2)&&0===(d&2)&&2!==(n.flags&2097155))throw new O(2);if(1===(n.flags&2097155))throw new O(2);if(!n.Mf.jg)throw new O(43);var k=n.Mf.jg(n,b,f,c,d);var l=k.Pg;C[g>>2]=k.Dg;E[h>>2]=l;return 0}catch(p){if("undefined"==typeof U||!(p instanceof O))throw p;return-p.Of}},z:function(b,c,d,e,f,g){try{var h=V(f);if(d&2){if(32768!==(h.node.mode&61440))throw new O(43);e&2||h.Mf.kg&&h.Mf.kg(h,y.slice(b,b+c),g,c,e)}}catch(n){if("undefined"==typeof U|| +!(n instanceof O))throw n;return-n.Of}},O:function(b,c,d){function e(k){return(k=k.toTimeString().match(/\(([A-Za-z ]+)\)$/))?k[1]:"GMT"}var f=(new Date).getFullYear(),g=new Date(f,0,1),h=new Date(f,6,1);f=g.getTimezoneOffset();var n=h.getTimezoneOffset();E[b>>2]=60*Math.max(f,n);C[c>>2]=Number(f!=n);b=e(g);c=e(h);b=Qb(b);c=Qb(c);n>2]=b,E[d+4>>2]=c):(E[d>>2]=c,E[d+4>>2]=b)},ta:function(){u("")},e:function(){return Date.now()},d:()=>performance.now(),o:function(b){var c=y.length;b>>>=0;if(2147483648< +b)return!1;for(var d=1;4>=d;d*=2){var e=c*(1+.2/d);e=Math.min(e,b+100663296);var f=Math,g=f.min;e=Math.max(b,e);e+=(65536-e%65536)%65536;a:{var h=ma.buffer;try{ma.grow(g.call(f,2147483648,e)-h.byteLength+65535>>>16);va();var n=1;break a}catch(k){}n=void 0}if(n)return!0}return!1},B:function(b,c){var d=0;Tb().forEach(function(e,f){var g=c+d;f=E[b+4*f>>2]=g;for(g=0;g>0]=e.charCodeAt(g);A[f>>0]=0;d+=e.length+1});return 0},C:function(b,c){var d=Tb();E[b>>2]=d.length;var e=0;d.forEach(function(f){e+= +f.length+1});E[c>>2]=e;return 0},f:function(b){try{var c=V(b);if(null===c.Wf)throw new O(8);c.og&&(c.og=null);try{c.Mf.close&&c.Mf.close(c)}catch(d){throw d;}finally{Q[c.Wf]=null}c.Wf=null;return 0}catch(d){if("undefined"==typeof U||!(d instanceof O))throw d;return d.Of}},p:function(b,c){try{var d=V(b);A[c>>0]=d.Sf?2:16384===(d.mode&61440)?3:40960===(d.mode&61440)?7:4;return 0}catch(e){if("undefined"==typeof U||!(e instanceof O))throw e;return e.Of}},v:function(b,c,d,e){try{a:{var f=V(b);b=c;for(var g, +h=c=0;h>2],k=E[b+4>>2];b+=8;var l=f,p=n,q=k,r=g,w=A;if(0>q||0>r)throw new O(28);if(null===l.Wf)throw new O(8);if(1===(l.flags&2097155))throw new O(8);if(16384===(l.node.mode&61440))throw new O(31);if(!l.Mf.read)throw new O(28);var z="undefined"!=typeof r;if(!z)r=l.position;else if(!l.seekable)throw new O(70);var G=l.Mf.read(l,w,p,q,r);z||(l.position+=G);var D=G;if(0>D){var J=-1;break a}c+=D;if(D>2]=J;return 0}catch(H){if("undefined"== +typeof U||!(H instanceof O))throw H;return H.Of}},i:function(b,c,d,e,f){try{c=d+2097152>>>0<4194305-!!c?(c>>>0)+4294967296*d:NaN;if(isNaN(c))return 61;var g=V(b);Db(g,c,e);K=[g.position>>>0,(I=g.position,1<=+Math.abs(I)?0>>0:~~+Math.ceil((I-+(~~I>>>0))/4294967296)>>>0:0)];C[f>>2]=K[0];C[f+4>>2]=K[1];g.og&&0===c&&0===e&&(g.og=null);return 0}catch(h){if("undefined"==typeof U||!(h instanceof O))throw h;return h.Of}},E:function(b){try{var c=V(b);return Vc(function(d){var e= +c.node.Uf;e.type.Sg?e.type.Sg(e,!1,function(f){f?d(function(){return 29}):d(0)}):d(0)})}catch(d){if("undefined"==typeof U||!(d instanceof O))throw d;return d.Of}},s:function(b,c,d,e){try{a:{var f=V(b);b=c;for(var g,h=c=0;h>2],k=E[b+4>>2];b+=8;var l=f,p=n,q=k,r=g,w=A;if(0>q||0>r)throw new O(28);if(null===l.Wf)throw new O(8);if(0===(l.flags&2097155))throw new O(8);if(16384===(l.node.mode&61440))throw new O(31);if(!l.Mf.write)throw new O(28);l.seekable&&l.flags&1024&&Db(l,0,2);var z= +"undefined"!=typeof r;if(!z)r=l.position;else if(!l.seekable)throw new O(70);var G=l.Mf.write(l,w,p,q,r,void 0);z||(l.position+=G);var D=G;if(0>D){var J=-1;break a}c+=D;"undefined"!==typeof g&&(g+=D)}J=c}E[e>>2]=J;return 0}catch(H){if("undefined"==typeof U||!(H instanceof O))throw H;return H.Of}},sa:Vb,_:Wb,x:Xb,P:Yb,ca:Zb,I:$b,ka:ac,m:bc,ra:cc,na:dc,ia:ec,ea:fc,fa:gc,g:hc,h:ic,oa:jc,qa:kc,pa:lc,da:mc,ga:nc,ha:oc,ma:pc,c:qc,ja:rc,la:sc,aa:tc,V:uc,$:vc,ba:wc,S:xc,U:yc,Y:zc,X:Ac,R:Bc,n:Cc,T:Dc,Z:Ec, +k:Fc,W:Gc,l:Hc}; +(function(){function b(g){g=g.exports;g=Kc(g);a.asm=g;ma=a.asm.ua;va();wa=a.asm.Cf;ya.unshift(a.asm.va);Ca--;a.monitorRunDependencies&&a.monitorRunDependencies(Ca);0==Ca&&(null!==Da&&(clearInterval(Da),Da=null),Ea&&(g=Ea,Ea=null,g()))}function c(g){b(g.instance)}function d(g){return Ia().then(function(h){return WebAssembly.instantiate(h,e)}).then(function(h){return h}).then(g,function(h){t("failed to asynchronously prepare wasm: "+h);u(h)})}var e={a:ld};Ca++;a.monitorRunDependencies&&a.monitorRunDependencies(Ca); +if(a.instantiateWasm)try{var f=a.instantiateWasm(e,b);return f=Kc(f)}catch(g){t("Module.instantiateWasm callback failed with error: "+g),ba(g)}(function(){return la||"function"!=typeof WebAssembly.instantiateStreaming||Fa()||"function"!=typeof fetch?d(c):fetch(F,{credentials:"same-origin"}).then(function(g){return WebAssembly.instantiateStreaming(g,e).then(c,function(h){t("wasm streaming compile failed: "+h);t("falling back to ArrayBuffer instantiation");return d(c)})})})().catch(ba);return{}})(); +a.___wasm_call_ctors=function(){return(a.___wasm_call_ctors=a.asm.va).apply(null,arguments)};a._sqlite3_status64=function(){return(a._sqlite3_status64=a.asm.wa).apply(null,arguments)};a._sqlite3_status=function(){return(a._sqlite3_status=a.asm.xa).apply(null,arguments)};a._sqlite3_db_status=function(){return(a._sqlite3_db_status=a.asm.ya).apply(null,arguments)};a._sqlite3_msize=function(){return(a._sqlite3_msize=a.asm.za).apply(null,arguments)}; +a._sqlite3_vfs_find=function(){return(a._sqlite3_vfs_find=a.asm.Aa).apply(null,arguments)};a._sqlite3_vfs_register=function(){return(a._sqlite3_vfs_register=a.asm.Ba).apply(null,arguments)};a._sqlite3_vfs_unregister=function(){return(a._sqlite3_vfs_unregister=a.asm.Ca).apply(null,arguments)};a._sqlite3_release_memory=function(){return(a._sqlite3_release_memory=a.asm.Da).apply(null,arguments)};a._sqlite3_soft_heap_limit64=function(){return(a._sqlite3_soft_heap_limit64=a.asm.Ea).apply(null,arguments)}; +a._sqlite3_memory_used=function(){return(a._sqlite3_memory_used=a.asm.Fa).apply(null,arguments)};a._sqlite3_hard_heap_limit64=function(){return(a._sqlite3_hard_heap_limit64=a.asm.Ga).apply(null,arguments)};a._sqlite3_memory_highwater=function(){return(a._sqlite3_memory_highwater=a.asm.Ha).apply(null,arguments)};a._sqlite3_malloc=function(){return(a._sqlite3_malloc=a.asm.Ia).apply(null,arguments)};a._sqlite3_malloc64=function(){return(a._sqlite3_malloc64=a.asm.Ja).apply(null,arguments)}; +a._sqlite3_free=function(){return(a._sqlite3_free=a.asm.Ka).apply(null,arguments)};a._sqlite3_realloc=function(){return(a._sqlite3_realloc=a.asm.La).apply(null,arguments)};a._sqlite3_realloc64=function(){return(a._sqlite3_realloc64=a.asm.Ma).apply(null,arguments)};a._sqlite3_str_vappendf=function(){return(a._sqlite3_str_vappendf=a.asm.Na).apply(null,arguments)};a._sqlite3_str_append=function(){return(a._sqlite3_str_append=a.asm.Oa).apply(null,arguments)}; +a._sqlite3_str_appendchar=function(){return(a._sqlite3_str_appendchar=a.asm.Pa).apply(null,arguments)};a._sqlite3_str_appendall=function(){return(a._sqlite3_str_appendall=a.asm.Qa).apply(null,arguments)};a._sqlite3_str_appendf=function(){return(a._sqlite3_str_appendf=a.asm.Ra).apply(null,arguments)};a._sqlite3_str_finish=function(){return(a._sqlite3_str_finish=a.asm.Sa).apply(null,arguments)};a._sqlite3_str_errcode=function(){return(a._sqlite3_str_errcode=a.asm.Ta).apply(null,arguments)}; +a._sqlite3_str_length=function(){return(a._sqlite3_str_length=a.asm.Ua).apply(null,arguments)};a._sqlite3_str_value=function(){return(a._sqlite3_str_value=a.asm.Va).apply(null,arguments)};a._sqlite3_str_reset=function(){return(a._sqlite3_str_reset=a.asm.Wa).apply(null,arguments)};a._sqlite3_str_new=function(){return(a._sqlite3_str_new=a.asm.Xa).apply(null,arguments)};a._sqlite3_vmprintf=function(){return(a._sqlite3_vmprintf=a.asm.Ya).apply(null,arguments)}; +a._sqlite3_mprintf=function(){return(a._sqlite3_mprintf=a.asm.Za).apply(null,arguments)};a._sqlite3_vsnprintf=function(){return(a._sqlite3_vsnprintf=a.asm._a).apply(null,arguments)};a._sqlite3_snprintf=function(){return(a._sqlite3_snprintf=a.asm.$a).apply(null,arguments)};a._sqlite3_log=function(){return(a._sqlite3_log=a.asm.ab).apply(null,arguments)};a._sqlite3_randomness=function(){return(a._sqlite3_randomness=a.asm.bb).apply(null,arguments)}; +a._sqlite3_stricmp=function(){return(a._sqlite3_stricmp=a.asm.cb).apply(null,arguments)};a._sqlite3_strnicmp=function(){return(a._sqlite3_strnicmp=a.asm.db).apply(null,arguments)};a._sqlite3_os_init=function(){return(a._sqlite3_os_init=a.asm.eb).apply(null,arguments)};a._sqlite3_os_end=function(){return(a._sqlite3_os_end=a.asm.fb).apply(null,arguments)};a._sqlite3_serialize=function(){return(a._sqlite3_serialize=a.asm.gb).apply(null,arguments)}; +a._sqlite3_prepare_v2=function(){return(a._sqlite3_prepare_v2=a.asm.hb).apply(null,arguments)};a._sqlite3_step=function(){return(a._sqlite3_step=a.asm.ib).apply(null,arguments)};a._sqlite3_column_int64=function(){return(a._sqlite3_column_int64=a.asm.jb).apply(null,arguments)};a._sqlite3_reset=function(){return(a._sqlite3_reset=a.asm.kb).apply(null,arguments)};a._sqlite3_exec=function(){return(a._sqlite3_exec=a.asm.lb).apply(null,arguments)}; +a._sqlite3_column_int=function(){return(a._sqlite3_column_int=a.asm.mb).apply(null,arguments)};a._sqlite3_finalize=function(){return(a._sqlite3_finalize=a.asm.nb).apply(null,arguments)};a._sqlite3_deserialize=function(){return(a._sqlite3_deserialize=a.asm.ob).apply(null,arguments)};a._sqlite3_database_file_object=function(){return(a._sqlite3_database_file_object=a.asm.pb).apply(null,arguments)};a._sqlite3_backup_init=function(){return(a._sqlite3_backup_init=a.asm.qb).apply(null,arguments)}; +a._sqlite3_backup_step=function(){return(a._sqlite3_backup_step=a.asm.rb).apply(null,arguments)};a._sqlite3_backup_finish=function(){return(a._sqlite3_backup_finish=a.asm.sb).apply(null,arguments)};a._sqlite3_backup_remaining=function(){return(a._sqlite3_backup_remaining=a.asm.tb).apply(null,arguments)};a._sqlite3_backup_pagecount=function(){return(a._sqlite3_backup_pagecount=a.asm.ub).apply(null,arguments)}; +a._sqlite3_clear_bindings=function(){return(a._sqlite3_clear_bindings=a.asm.vb).apply(null,arguments)};a._sqlite3_value_blob=function(){return(a._sqlite3_value_blob=a.asm.wb).apply(null,arguments)};a._sqlite3_value_text=function(){return(a._sqlite3_value_text=a.asm.xb).apply(null,arguments)};a._sqlite3_value_bytes=function(){return(a._sqlite3_value_bytes=a.asm.yb).apply(null,arguments)};a._sqlite3_value_bytes16=function(){return(a._sqlite3_value_bytes16=a.asm.zb).apply(null,arguments)}; +a._sqlite3_value_double=function(){return(a._sqlite3_value_double=a.asm.Ab).apply(null,arguments)};a._sqlite3_value_int=function(){return(a._sqlite3_value_int=a.asm.Bb).apply(null,arguments)};a._sqlite3_value_int64=function(){return(a._sqlite3_value_int64=a.asm.Cb).apply(null,arguments)};a._sqlite3_value_subtype=function(){return(a._sqlite3_value_subtype=a.asm.Db).apply(null,arguments)};a._sqlite3_value_pointer=function(){return(a._sqlite3_value_pointer=a.asm.Eb).apply(null,arguments)}; +a._sqlite3_value_text16=function(){return(a._sqlite3_value_text16=a.asm.Fb).apply(null,arguments)};a._sqlite3_value_text16be=function(){return(a._sqlite3_value_text16be=a.asm.Gb).apply(null,arguments)};a._sqlite3_value_text16le=function(){return(a._sqlite3_value_text16le=a.asm.Hb).apply(null,arguments)};a._sqlite3_value_type=function(){return(a._sqlite3_value_type=a.asm.Ib).apply(null,arguments)};a._sqlite3_value_encoding=function(){return(a._sqlite3_value_encoding=a.asm.Jb).apply(null,arguments)}; +a._sqlite3_value_nochange=function(){return(a._sqlite3_value_nochange=a.asm.Kb).apply(null,arguments)};a._sqlite3_value_frombind=function(){return(a._sqlite3_value_frombind=a.asm.Lb).apply(null,arguments)};a._sqlite3_value_dup=function(){return(a._sqlite3_value_dup=a.asm.Mb).apply(null,arguments)};a._sqlite3_value_free=function(){return(a._sqlite3_value_free=a.asm.Nb).apply(null,arguments)};a._sqlite3_result_blob=function(){return(a._sqlite3_result_blob=a.asm.Ob).apply(null,arguments)}; +a._sqlite3_result_blob64=function(){return(a._sqlite3_result_blob64=a.asm.Pb).apply(null,arguments)};a._sqlite3_result_double=function(){return(a._sqlite3_result_double=a.asm.Qb).apply(null,arguments)};a._sqlite3_result_error=function(){return(a._sqlite3_result_error=a.asm.Rb).apply(null,arguments)};a._sqlite3_result_error16=function(){return(a._sqlite3_result_error16=a.asm.Sb).apply(null,arguments)};a._sqlite3_result_int=function(){return(a._sqlite3_result_int=a.asm.Tb).apply(null,arguments)}; +a._sqlite3_result_int64=function(){return(a._sqlite3_result_int64=a.asm.Ub).apply(null,arguments)};a._sqlite3_result_null=function(){return(a._sqlite3_result_null=a.asm.Vb).apply(null,arguments)};a._sqlite3_result_pointer=function(){return(a._sqlite3_result_pointer=a.asm.Wb).apply(null,arguments)};a._sqlite3_result_subtype=function(){return(a._sqlite3_result_subtype=a.asm.Xb).apply(null,arguments)};a._sqlite3_result_text=function(){return(a._sqlite3_result_text=a.asm.Yb).apply(null,arguments)}; +a._sqlite3_result_text64=function(){return(a._sqlite3_result_text64=a.asm.Zb).apply(null,arguments)};a._sqlite3_result_text16=function(){return(a._sqlite3_result_text16=a.asm._b).apply(null,arguments)};a._sqlite3_result_text16be=function(){return(a._sqlite3_result_text16be=a.asm.$b).apply(null,arguments)};a._sqlite3_result_text16le=function(){return(a._sqlite3_result_text16le=a.asm.ac).apply(null,arguments)};a._sqlite3_result_value=function(){return(a._sqlite3_result_value=a.asm.bc).apply(null,arguments)}; +a._sqlite3_result_error_toobig=function(){return(a._sqlite3_result_error_toobig=a.asm.cc).apply(null,arguments)};a._sqlite3_result_zeroblob=function(){return(a._sqlite3_result_zeroblob=a.asm.dc).apply(null,arguments)};a._sqlite3_result_zeroblob64=function(){return(a._sqlite3_result_zeroblob64=a.asm.ec).apply(null,arguments)};a._sqlite3_result_error_code=function(){return(a._sqlite3_result_error_code=a.asm.fc).apply(null,arguments)}; +a._sqlite3_result_error_nomem=function(){return(a._sqlite3_result_error_nomem=a.asm.gc).apply(null,arguments)};a._sqlite3_user_data=function(){return(a._sqlite3_user_data=a.asm.hc).apply(null,arguments)};a._sqlite3_context_db_handle=function(){return(a._sqlite3_context_db_handle=a.asm.ic).apply(null,arguments)};a._sqlite3_vtab_nochange=function(){return(a._sqlite3_vtab_nochange=a.asm.jc).apply(null,arguments)}; +a._sqlite3_vtab_in_first=function(){return(a._sqlite3_vtab_in_first=a.asm.kc).apply(null,arguments)};a._sqlite3_vtab_in_next=function(){return(a._sqlite3_vtab_in_next=a.asm.lc).apply(null,arguments)};a._sqlite3_aggregate_context=function(){return(a._sqlite3_aggregate_context=a.asm.mc).apply(null,arguments)};a._sqlite3_get_auxdata=function(){return(a._sqlite3_get_auxdata=a.asm.nc).apply(null,arguments)};a._sqlite3_set_auxdata=function(){return(a._sqlite3_set_auxdata=a.asm.oc).apply(null,arguments)}; +a._sqlite3_column_count=function(){return(a._sqlite3_column_count=a.asm.pc).apply(null,arguments)};a._sqlite3_data_count=function(){return(a._sqlite3_data_count=a.asm.qc).apply(null,arguments)};a._sqlite3_column_blob=function(){return(a._sqlite3_column_blob=a.asm.rc).apply(null,arguments)};a._sqlite3_column_bytes=function(){return(a._sqlite3_column_bytes=a.asm.sc).apply(null,arguments)};a._sqlite3_column_bytes16=function(){return(a._sqlite3_column_bytes16=a.asm.tc).apply(null,arguments)}; +a._sqlite3_column_double=function(){return(a._sqlite3_column_double=a.asm.uc).apply(null,arguments)};a._sqlite3_column_text=function(){return(a._sqlite3_column_text=a.asm.vc).apply(null,arguments)};a._sqlite3_column_value=function(){return(a._sqlite3_column_value=a.asm.wc).apply(null,arguments)};a._sqlite3_column_text16=function(){return(a._sqlite3_column_text16=a.asm.xc).apply(null,arguments)};a._sqlite3_column_type=function(){return(a._sqlite3_column_type=a.asm.yc).apply(null,arguments)}; +a._sqlite3_column_name=function(){return(a._sqlite3_column_name=a.asm.zc).apply(null,arguments)};a._sqlite3_column_name16=function(){return(a._sqlite3_column_name16=a.asm.Ac).apply(null,arguments)};a._sqlite3_bind_blob=function(){return(a._sqlite3_bind_blob=a.asm.Bc).apply(null,arguments)};a._sqlite3_bind_blob64=function(){return(a._sqlite3_bind_blob64=a.asm.Cc).apply(null,arguments)};a._sqlite3_bind_double=function(){return(a._sqlite3_bind_double=a.asm.Dc).apply(null,arguments)}; +a._sqlite3_bind_int=function(){return(a._sqlite3_bind_int=a.asm.Ec).apply(null,arguments)};a._sqlite3_bind_int64=function(){return(a._sqlite3_bind_int64=a.asm.Fc).apply(null,arguments)};a._sqlite3_bind_null=function(){return(a._sqlite3_bind_null=a.asm.Gc).apply(null,arguments)};a._sqlite3_bind_pointer=function(){return(a._sqlite3_bind_pointer=a.asm.Hc).apply(null,arguments)};a._sqlite3_bind_text=function(){return(a._sqlite3_bind_text=a.asm.Ic).apply(null,arguments)}; +a._sqlite3_bind_text64=function(){return(a._sqlite3_bind_text64=a.asm.Jc).apply(null,arguments)};a._sqlite3_bind_text16=function(){return(a._sqlite3_bind_text16=a.asm.Kc).apply(null,arguments)};a._sqlite3_bind_value=function(){return(a._sqlite3_bind_value=a.asm.Lc).apply(null,arguments)};a._sqlite3_bind_zeroblob=function(){return(a._sqlite3_bind_zeroblob=a.asm.Mc).apply(null,arguments)};a._sqlite3_bind_zeroblob64=function(){return(a._sqlite3_bind_zeroblob64=a.asm.Nc).apply(null,arguments)}; +a._sqlite3_bind_parameter_count=function(){return(a._sqlite3_bind_parameter_count=a.asm.Oc).apply(null,arguments)};a._sqlite3_bind_parameter_name=function(){return(a._sqlite3_bind_parameter_name=a.asm.Pc).apply(null,arguments)};a._sqlite3_bind_parameter_index=function(){return(a._sqlite3_bind_parameter_index=a.asm.Qc).apply(null,arguments)};a._sqlite3_db_handle=function(){return(a._sqlite3_db_handle=a.asm.Rc).apply(null,arguments)}; +a._sqlite3_stmt_readonly=function(){return(a._sqlite3_stmt_readonly=a.asm.Sc).apply(null,arguments)};a._sqlite3_stmt_isexplain=function(){return(a._sqlite3_stmt_isexplain=a.asm.Tc).apply(null,arguments)};a._sqlite3_stmt_explain=function(){return(a._sqlite3_stmt_explain=a.asm.Uc).apply(null,arguments)};a._sqlite3_stmt_busy=function(){return(a._sqlite3_stmt_busy=a.asm.Vc).apply(null,arguments)};a._sqlite3_next_stmt=function(){return(a._sqlite3_next_stmt=a.asm.Wc).apply(null,arguments)}; +a._sqlite3_stmt_status=function(){return(a._sqlite3_stmt_status=a.asm.Xc).apply(null,arguments)};a._sqlite3_sql=function(){return(a._sqlite3_sql=a.asm.Yc).apply(null,arguments)};a._sqlite3_expanded_sql=function(){return(a._sqlite3_expanded_sql=a.asm.Zc).apply(null,arguments)};a._sqlite3_value_numeric_type=function(){return(a._sqlite3_value_numeric_type=a.asm._c).apply(null,arguments)};a._sqlite3_blob_open=function(){return(a._sqlite3_blob_open=a.asm.$c).apply(null,arguments)}; +a._sqlite3_blob_close=function(){return(a._sqlite3_blob_close=a.asm.ad).apply(null,arguments)};a._sqlite3_blob_read=function(){return(a._sqlite3_blob_read=a.asm.bd).apply(null,arguments)};a._sqlite3_blob_write=function(){return(a._sqlite3_blob_write=a.asm.cd).apply(null,arguments)};a._sqlite3_blob_bytes=function(){return(a._sqlite3_blob_bytes=a.asm.dd).apply(null,arguments)};a._sqlite3_blob_reopen=function(){return(a._sqlite3_blob_reopen=a.asm.ed).apply(null,arguments)}; +a._sqlite3_set_authorizer=function(){return(a._sqlite3_set_authorizer=a.asm.fd).apply(null,arguments)};a._sqlite3_strglob=function(){return(a._sqlite3_strglob=a.asm.gd).apply(null,arguments)};a._sqlite3_strlike=function(){return(a._sqlite3_strlike=a.asm.hd).apply(null,arguments)};a._sqlite3_errmsg=function(){return(a._sqlite3_errmsg=a.asm.id).apply(null,arguments)};a._sqlite3_auto_extension=function(){return(a._sqlite3_auto_extension=a.asm.jd).apply(null,arguments)}; +a._sqlite3_cancel_auto_extension=function(){return(a._sqlite3_cancel_auto_extension=a.asm.kd).apply(null,arguments)};a._sqlite3_reset_auto_extension=function(){return(a._sqlite3_reset_auto_extension=a.asm.ld).apply(null,arguments)};a._sqlite3_prepare=function(){return(a._sqlite3_prepare=a.asm.md).apply(null,arguments)};a._sqlite3_prepare_v3=function(){return(a._sqlite3_prepare_v3=a.asm.nd).apply(null,arguments)};a._sqlite3_prepare16=function(){return(a._sqlite3_prepare16=a.asm.od).apply(null,arguments)}; +a._sqlite3_prepare16_v2=function(){return(a._sqlite3_prepare16_v2=a.asm.pd).apply(null,arguments)};a._sqlite3_prepare16_v3=function(){return(a._sqlite3_prepare16_v3=a.asm.qd).apply(null,arguments)};a._sqlite3_get_table=function(){return(a._sqlite3_get_table=a.asm.rd).apply(null,arguments)};a._sqlite3_free_table=function(){return(a._sqlite3_free_table=a.asm.sd).apply(null,arguments)};a._sqlite3_create_module=function(){return(a._sqlite3_create_module=a.asm.td).apply(null,arguments)}; +a._sqlite3_create_module_v2=function(){return(a._sqlite3_create_module_v2=a.asm.ud).apply(null,arguments)};a._sqlite3_drop_modules=function(){return(a._sqlite3_drop_modules=a.asm.vd).apply(null,arguments)};a._sqlite3_declare_vtab=function(){return(a._sqlite3_declare_vtab=a.asm.wd).apply(null,arguments)};a._sqlite3_vtab_on_conflict=function(){return(a._sqlite3_vtab_on_conflict=a.asm.xd).apply(null,arguments)};a._sqlite3_vtab_config=function(){return(a._sqlite3_vtab_config=a.asm.yd).apply(null,arguments)}; +a._sqlite3_vtab_collation=function(){return(a._sqlite3_vtab_collation=a.asm.zd).apply(null,arguments)};a._sqlite3_vtab_in=function(){return(a._sqlite3_vtab_in=a.asm.Ad).apply(null,arguments)};a._sqlite3_vtab_rhs_value=function(){return(a._sqlite3_vtab_rhs_value=a.asm.Bd).apply(null,arguments)};a._sqlite3_vtab_distinct=function(){return(a._sqlite3_vtab_distinct=a.asm.Cd).apply(null,arguments)};a._sqlite3_keyword_name=function(){return(a._sqlite3_keyword_name=a.asm.Dd).apply(null,arguments)}; +a._sqlite3_keyword_count=function(){return(a._sqlite3_keyword_count=a.asm.Ed).apply(null,arguments)};a._sqlite3_keyword_check=function(){return(a._sqlite3_keyword_check=a.asm.Fd).apply(null,arguments)};a._sqlite3_complete=function(){return(a._sqlite3_complete=a.asm.Gd).apply(null,arguments)};a._sqlite3_complete16=function(){return(a._sqlite3_complete16=a.asm.Hd).apply(null,arguments)};a._sqlite3_libversion=function(){return(a._sqlite3_libversion=a.asm.Id).apply(null,arguments)}; +a._sqlite3_libversion_number=function(){return(a._sqlite3_libversion_number=a.asm.Jd).apply(null,arguments)};a._sqlite3_threadsafe=function(){return(a._sqlite3_threadsafe=a.asm.Kd).apply(null,arguments)};a._sqlite3_initialize=function(){return(a._sqlite3_initialize=a.asm.Ld).apply(null,arguments)};a._sqlite3_shutdown=function(){return(a._sqlite3_shutdown=a.asm.Md).apply(null,arguments)};a._sqlite3_config=function(){return(a._sqlite3_config=a.asm.Nd).apply(null,arguments)}; +a._sqlite3_db_mutex=function(){return(a._sqlite3_db_mutex=a.asm.Od).apply(null,arguments)};a._sqlite3_db_release_memory=function(){return(a._sqlite3_db_release_memory=a.asm.Pd).apply(null,arguments)};a._sqlite3_db_cacheflush=function(){return(a._sqlite3_db_cacheflush=a.asm.Qd).apply(null,arguments)};a._sqlite3_db_config=function(){return(a._sqlite3_db_config=a.asm.Rd).apply(null,arguments)};a._sqlite3_last_insert_rowid=function(){return(a._sqlite3_last_insert_rowid=a.asm.Sd).apply(null,arguments)}; +a._sqlite3_set_last_insert_rowid=function(){return(a._sqlite3_set_last_insert_rowid=a.asm.Td).apply(null,arguments)};a._sqlite3_changes64=function(){return(a._sqlite3_changes64=a.asm.Ud).apply(null,arguments)};a._sqlite3_changes=function(){return(a._sqlite3_changes=a.asm.Vd).apply(null,arguments)};a._sqlite3_total_changes64=function(){return(a._sqlite3_total_changes64=a.asm.Wd).apply(null,arguments)};a._sqlite3_total_changes=function(){return(a._sqlite3_total_changes=a.asm.Xd).apply(null,arguments)}; +a._sqlite3_txn_state=function(){return(a._sqlite3_txn_state=a.asm.Yd).apply(null,arguments)};a._sqlite3_close=function(){return(a._sqlite3_close=a.asm.Zd).apply(null,arguments)};a._sqlite3_close_v2=function(){return(a._sqlite3_close_v2=a.asm._d).apply(null,arguments)};a._sqlite3_busy_handler=function(){return(a._sqlite3_busy_handler=a.asm.$d).apply(null,arguments)};a._sqlite3_progress_handler=function(){return(a._sqlite3_progress_handler=a.asm.ae).apply(null,arguments)}; +a._sqlite3_busy_timeout=function(){return(a._sqlite3_busy_timeout=a.asm.be).apply(null,arguments)};a._sqlite3_interrupt=function(){return(a._sqlite3_interrupt=a.asm.ce).apply(null,arguments)};a._sqlite3_is_interrupted=function(){return(a._sqlite3_is_interrupted=a.asm.de).apply(null,arguments)};a._sqlite3_create_function=function(){return(a._sqlite3_create_function=a.asm.ee).apply(null,arguments)};a._sqlite3_create_function_v2=function(){return(a._sqlite3_create_function_v2=a.asm.fe).apply(null,arguments)}; +a._sqlite3_create_window_function=function(){return(a._sqlite3_create_window_function=a.asm.ge).apply(null,arguments)};a._sqlite3_create_function16=function(){return(a._sqlite3_create_function16=a.asm.he).apply(null,arguments)};a._sqlite3_overload_function=function(){return(a._sqlite3_overload_function=a.asm.ie).apply(null,arguments)};a._sqlite3_trace_v2=function(){return(a._sqlite3_trace_v2=a.asm.je).apply(null,arguments)}; +a._sqlite3_commit_hook=function(){return(a._sqlite3_commit_hook=a.asm.ke).apply(null,arguments)};a._sqlite3_update_hook=function(){return(a._sqlite3_update_hook=a.asm.le).apply(null,arguments)};a._sqlite3_rollback_hook=function(){return(a._sqlite3_rollback_hook=a.asm.me).apply(null,arguments)};a._sqlite3_autovacuum_pages=function(){return(a._sqlite3_autovacuum_pages=a.asm.ne).apply(null,arguments)}; +a._sqlite3_wal_autocheckpoint=function(){return(a._sqlite3_wal_autocheckpoint=a.asm.oe).apply(null,arguments)};a._sqlite3_wal_hook=function(){return(a._sqlite3_wal_hook=a.asm.pe).apply(null,arguments)};a._sqlite3_wal_checkpoint_v2=function(){return(a._sqlite3_wal_checkpoint_v2=a.asm.qe).apply(null,arguments)};a._sqlite3_wal_checkpoint=function(){return(a._sqlite3_wal_checkpoint=a.asm.re).apply(null,arguments)}; +a._sqlite3_error_offset=function(){return(a._sqlite3_error_offset=a.asm.se).apply(null,arguments)};a._sqlite3_errmsg16=function(){return(a._sqlite3_errmsg16=a.asm.te).apply(null,arguments)};a._sqlite3_errcode=function(){return(a._sqlite3_errcode=a.asm.ue).apply(null,arguments)};a._sqlite3_extended_errcode=function(){return(a._sqlite3_extended_errcode=a.asm.ve).apply(null,arguments)};a._sqlite3_system_errno=function(){return(a._sqlite3_system_errno=a.asm.we).apply(null,arguments)}; +a._sqlite3_errstr=function(){return(a._sqlite3_errstr=a.asm.xe).apply(null,arguments)};a._sqlite3_limit=function(){return(a._sqlite3_limit=a.asm.ye).apply(null,arguments)};a._sqlite3_open=function(){return(a._sqlite3_open=a.asm.ze).apply(null,arguments)};a._sqlite3_open_v2=function(){return(a._sqlite3_open_v2=a.asm.Ae).apply(null,arguments)};a._sqlite3_open16=function(){return(a._sqlite3_open16=a.asm.Be).apply(null,arguments)}; +a._sqlite3_create_collation=function(){return(a._sqlite3_create_collation=a.asm.Ce).apply(null,arguments)};a._sqlite3_create_collation_v2=function(){return(a._sqlite3_create_collation_v2=a.asm.De).apply(null,arguments)};a._sqlite3_create_collation16=function(){return(a._sqlite3_create_collation16=a.asm.Ee).apply(null,arguments)};a._sqlite3_collation_needed=function(){return(a._sqlite3_collation_needed=a.asm.Fe).apply(null,arguments)}; +a._sqlite3_collation_needed16=function(){return(a._sqlite3_collation_needed16=a.asm.Ge).apply(null,arguments)};a._sqlite3_get_clientdata=function(){return(a._sqlite3_get_clientdata=a.asm.He).apply(null,arguments)};a._sqlite3_set_clientdata=function(){return(a._sqlite3_set_clientdata=a.asm.Ie).apply(null,arguments)};a._sqlite3_get_autocommit=function(){return(a._sqlite3_get_autocommit=a.asm.Je).apply(null,arguments)}; +a._sqlite3_table_column_metadata=function(){return(a._sqlite3_table_column_metadata=a.asm.Ke).apply(null,arguments)};a._sqlite3_sleep=function(){return(a._sqlite3_sleep=a.asm.Le).apply(null,arguments)};a._sqlite3_extended_result_codes=function(){return(a._sqlite3_extended_result_codes=a.asm.Me).apply(null,arguments)};a._sqlite3_file_control=function(){return(a._sqlite3_file_control=a.asm.Ne).apply(null,arguments)}; +a._sqlite3_test_control=function(){return(a._sqlite3_test_control=a.asm.Oe).apply(null,arguments)};a._sqlite3_create_filename=function(){return(a._sqlite3_create_filename=a.asm.Pe).apply(null,arguments)};a._sqlite3_free_filename=function(){return(a._sqlite3_free_filename=a.asm.Qe).apply(null,arguments)};a._sqlite3_uri_parameter=function(){return(a._sqlite3_uri_parameter=a.asm.Re).apply(null,arguments)};a._sqlite3_uri_key=function(){return(a._sqlite3_uri_key=a.asm.Se).apply(null,arguments)}; +a._sqlite3_uri_boolean=function(){return(a._sqlite3_uri_boolean=a.asm.Te).apply(null,arguments)};a._sqlite3_uri_int64=function(){return(a._sqlite3_uri_int64=a.asm.Ue).apply(null,arguments)};a._sqlite3_filename_database=function(){return(a._sqlite3_filename_database=a.asm.Ve).apply(null,arguments)};a._sqlite3_filename_journal=function(){return(a._sqlite3_filename_journal=a.asm.We).apply(null,arguments)};a._sqlite3_filename_wal=function(){return(a._sqlite3_filename_wal=a.asm.Xe).apply(null,arguments)}; +a._sqlite3_db_name=function(){return(a._sqlite3_db_name=a.asm.Ye).apply(null,arguments)};a._sqlite3_db_filename=function(){return(a._sqlite3_db_filename=a.asm.Ze).apply(null,arguments)};a._sqlite3_db_readonly=function(){return(a._sqlite3_db_readonly=a.asm._e).apply(null,arguments)};a._sqlite3_compileoption_used=function(){return(a._sqlite3_compileoption_used=a.asm.$e).apply(null,arguments)};a._sqlite3_compileoption_get=function(){return(a._sqlite3_compileoption_get=a.asm.af).apply(null,arguments)}; +a._sqlite3_sourceid=function(){return(a._sqlite3_sourceid=a.asm.bf).apply(null,arguments)};a._sqlite3mc_config=function(){return(a._sqlite3mc_config=a.asm.cf).apply(null,arguments)};a._sqlite3mc_cipher_count=function(){return(a._sqlite3mc_cipher_count=a.asm.df).apply(null,arguments)};a._sqlite3mc_cipher_index=function(){return(a._sqlite3mc_cipher_index=a.asm.ef).apply(null,arguments)};a._sqlite3mc_cipher_name=function(){return(a._sqlite3mc_cipher_name=a.asm.ff).apply(null,arguments)}; +a._sqlite3mc_config_cipher=function(){return(a._sqlite3mc_config_cipher=a.asm.gf).apply(null,arguments)};a._sqlite3mc_codec_data=function(){return(a._sqlite3mc_codec_data=a.asm.hf).apply(null,arguments)};a._sqlite3_key=function(){return(a._sqlite3_key=a.asm.jf).apply(null,arguments)};a._sqlite3_key_v2=function(){return(a._sqlite3_key_v2=a.asm.kf).apply(null,arguments)};a._sqlite3_rekey_v2=function(){return(a._sqlite3_rekey_v2=a.asm.lf).apply(null,arguments)}; +a._sqlite3_rekey=function(){return(a._sqlite3_rekey=a.asm.mf).apply(null,arguments)};a._sqlite3mc_register_cipher=function(){return(a._sqlite3mc_register_cipher=a.asm.nf).apply(null,arguments)};var kd=a.___errno_location=function(){return(kd=a.___errno_location=a.asm.of).apply(null,arguments)},Rb=a._malloc=function(){return(Rb=a._malloc=a.asm.pf).apply(null,arguments)},$c=a._free=function(){return($c=a._free=a.asm.qf).apply(null,arguments)}; +a._RegisterExtensionFunctions=function(){return(a._RegisterExtensionFunctions=a.asm.rf).apply(null,arguments)};a._sqlite3Fts5BetterTrigramInit=function(){return(a._sqlite3Fts5BetterTrigramInit=a.asm.sf).apply(null,arguments)};a._sqlite3Fts5HtmlInit=function(){return(a._sqlite3Fts5HtmlInit=a.asm.tf).apply(null,arguments)};a._set_authorizer=function(){return(a._set_authorizer=a.asm.uf).apply(null,arguments)};a._create_function=function(){return(a._create_function=a.asm.vf).apply(null,arguments)}; +a._create_module=function(){return(a._create_module=a.asm.wf).apply(null,arguments)};a._progress_handler=function(){return(a._progress_handler=a.asm.xf).apply(null,arguments)};a._register_vfs=function(){return(a._register_vfs=a.asm.yf).apply(null,arguments)};a._getSqliteFree=function(){return(a._getSqliteFree=a.asm.zf).apply(null,arguments)};a._main=function(){return(a._main=a.asm.Af).apply(null,arguments)}; +var ab=a._emscripten_builtin_memalign=function(){return(ab=a._emscripten_builtin_memalign=a.asm.Bf).apply(null,arguments)},md=a.getTempRet0=function(){return(md=a.getTempRet0=a.asm.Df).apply(null,arguments)},hd=a.stackSave=function(){return(hd=a.stackSave=a.asm.Ef).apply(null,arguments)},fd=a.stackRestore=function(){return(fd=a.stackRestore=a.asm.Ff).apply(null,arguments)},gd=a.stackAlloc=function(){return(gd=a.stackAlloc=a.asm.Gf).apply(null,arguments)},Yc=a._asyncify_start_unwind=function(){return(Yc= +a._asyncify_start_unwind=a.asm.Hf).apply(null,arguments)},Mc=a._asyncify_stop_unwind=function(){return(Mc=a._asyncify_stop_unwind=a.asm.If).apply(null,arguments)},Wc=a._asyncify_start_rewind=function(){return(Wc=a._asyncify_start_rewind=a.asm.Jf).apply(null,arguments)},Zc=a._asyncify_stop_rewind=function(){return(Zc=a._asyncify_stop_rewind=a.asm.Kf).apply(null,arguments)};a._sqlite3_version=3232;a.UTF8ToString=x;a.stringToUTF8=qa;a.lengthBytesUTF8=ra;a.getTempRet0=md;a.ccall=Z; +a.cwrap=function(b,c,d,e){d=d||[];var f=d.every(g=>"number"===g||"boolean"===g);return"string"!==c&&f&&!e?a["_"+b]:function(){return Z(b,c,d,arguments,e)}}; +a.addFunction=function(b,c){if(!cd){cd=new WeakMap;var d=wa.length;if(cd)for(var e=0;e<0+d;e++){var f=wa.get(e);f&&cd.set(f,e)}}if(cd.has(b))return cd.get(b);if(dd.length)d=dd.pop();else{try{wa.grow(1)}catch(n){if(!(n instanceof RangeError))throw n;throw"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH.";}d=wa.length-1}try{wa.set(d,b)}catch(n){if(!(n instanceof TypeError))throw n;if("function"==typeof WebAssembly.Function){e=WebAssembly.Function;f={i:"i32",j:"i32",f:"f32",d:"f64",p:"i32"};for(var g= +{parameters:[],results:"v"==c[0]?[]:[f[c[0]]]},h=1;hh?e.push(h):e.push(h%128|128,h>>7);for(h=0;hf?c.push(f):c.push(f%128|128,f>>7);c.push.apply(c,e);c.push(2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0);c=new WebAssembly.Module(new Uint8Array(c)); +c=(new WebAssembly.Instance(c,{e:{f:b}})).exports.f}wa.set(d,c)}cd.set(b,d);return d};a.setValue=M;a.getValue=L;a.intArrayFromString=Qa;a.intArrayToString=function(b){for(var c=[],d=0;d>0];if(!d)return c;c+=String.fromCharCode(d)}}; +a.UTF16ToString=function(b,c){var d=b>>1;for(var e=d+c/2;!(d>=e)&&sa[d];)++d;d<<=1;if(32=c/2);++e){var f=B[b+2*e>>1];if(0==f)break;d+=String.fromCharCode(f)}return d};a.stringToUTF16=function(b,c,d){void 0===d&&(d=2147483647);if(2>d)return 0;d-=2;var e=c;d=d<2*b.length?d/2:b.length;for(var f=0;f>1]=b.charCodeAt(f),c+=2;B[c>>1]=0;return c-e}; +a.UTF32ToString=function(b,c){for(var d=0,e="";!(d>=c/4);){var f=C[b+4*d>>2];if(0==f)break;++d;65536<=f?(f-=65536,e+=String.fromCharCode(55296|f>>10,56320|f&1023)):e+=String.fromCharCode(f)}return e};a.stringToUTF32=function(b,c,d){void 0===d&&(d=2147483647);if(4>d)return 0;var e=c;d=e+d-4;for(var f=0;f=g){var h=b.charCodeAt(++f);g=65536+((g&1023)<<10)|h&1023}C[c>>2]=g;c+=4;if(c+4>d)break}C[c>>2]=0;return c-e};a.writeArrayToMemory=ed;var nd; +Ea=function od(){nd||pd();nd||(Ea=od)}; +function pd(){function b(){if(!nd&&(nd=!0,a.calledRun=!0,!v)){a.noFSInit||Fb||(Fb=!0,Eb(),a.stdin=a.stdin,a.stdout=a.stdout,a.stderr=a.stderr,a.stdin?Ib("stdin",a.stdin):vb("/dev/tty","/dev/stdin"),a.stdout?Ib("stdout",null,a.stdout):vb("/dev/tty","/dev/stdout"),a.stderr?Ib("stderr",null,a.stderr):vb("/dev/tty1","/dev/stderr"),Cb("/dev/stdin",0),Cb("/dev/stdout",1),Cb("/dev/stderr",1));eb=!1;Ka(ya);Ka(za);aa(a);if(a.onRuntimeInitialized)a.onRuntimeInitialized();if(qd){var c=a._main;try{var d=c(0, +0);if(!noExitRuntime){if(a.onExit)a.onExit(d);v=!0}ea(d,new Ja(d))}catch(e){Ic(e)}}if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)c=a.postRun.shift(),Aa.unshift(c);Ka(Aa)}}if(!(0 { - var _scriptName = import.meta.url; + var _scriptDir = import.meta.url; return ( -function(moduleArg = {}) { - var moduleRtn; +function(config) { + var Module = config || {}; -var d=moduleArg,aa,ba,ca=new Promise((a,b)=>{aa=a;ba=b}),da="object"==typeof window,ea="undefined"!=typeof WorkerGlobalScope,fa=Object.assign({},d),ia="./this.program",g="",ja,ka; -if(da||ea)ea?g=self.location.href:"undefined"!=typeof document&&document.currentScript&&(g=document.currentScript.src),_scriptName&&(g=_scriptName),g.startsWith("blob:")?g="":g=g.substr(0,g.replace(/[?#].*/,"").lastIndexOf("/")+1),ea&&(ka=a=>{var b=new XMLHttpRequest;b.open("GET",a,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)}),ja=a=>fetch(a,{credentials:"same-origin"}).then(b=>b.ok?b.arrayBuffer():Promise.reject(Error(b.status+" : "+b.url))); -var la=d.print||console.log.bind(console),r=d.printErr||console.error.bind(console);Object.assign(d,fa);fa=null;d.thisProgram&&(ia=d.thisProgram);var ma=d.wasmBinary,na,oa=!1,pa,u,v,w,qa,x,z,ra,sa;function ta(){var a=na.buffer;d.HEAP8=u=new Int8Array(a);d.HEAP16=w=new Int16Array(a);d.HEAPU8=v=new Uint8Array(a);d.HEAPU16=qa=new Uint16Array(a);d.HEAP32=x=new Int32Array(a);d.HEAPU32=z=new Uint32Array(a);d.HEAPF32=ra=new Float32Array(a);d.HEAPF64=sa=new Float64Array(a)}var ua=[],va=[],wa=[],xa=[]; -function ya(){var a=d.preRun.shift();ua.unshift(a)}var B=0,za=null,Aa=null;function C(a){d.onAbort?.(a);a="Aborted("+a+")";r(a);oa=!0;a=new WebAssembly.RuntimeError(a+". Build with -sASSERTIONS for more info.");ba(a);throw a;}var Ba=a=>a.startsWith("data:application/octet-stream;base64,"),Ca;function Da(a){if(a==Ca&&ma)return new Uint8Array(ma);if(ka)return ka(a);throw"both async and sync fetching of the wasm failed";} -function Ea(a){return ma?Promise.resolve().then(()=>Da(a)):ja(a).then(b=>new Uint8Array(b),()=>Da(a))}function Fa(a,b,c){return Ea(a).then(e=>WebAssembly.instantiate(e,b)).then(c,e=>{r(`failed to asynchronously prepare wasm: ${e}`);C(e)})} -function Ga(a,b){var c=Ca;return ma||"function"!=typeof WebAssembly.instantiateStreaming||Ba(c)||"function"!=typeof fetch?Fa(c,a,b):fetch(c,{credentials:"same-origin"}).then(e=>WebAssembly.instantiateStreaming(e,a).then(b,function(f){r(`wasm streaming compile failed: ${f}`);r("falling back to ArrayBuffer instantiation");return Fa(c,a,b)}))}var D,F;class Ha{name="ExitStatus";constructor(a){this.message=`Program terminated with exit(${a})`;this.status=a}}var Ia=a=>{for(;0>1];case "i32":return x[a>>2];case "i64":C("to do getValue(i64) use WASM_BIGINT");case "float":return ra[a>>2];case "double":return sa[a>>3];case "*":return z[a>>2];default:C(`invalid type for getValue: ${b}`)}}var Ja=d.noExitRuntime||!0; -function I(a,b,c="i8"){c.endsWith("*")&&(c="*");switch(c){case "i1":u[a]=b;break;case "i8":u[a]=b;break;case "i16":w[a>>1]=b;break;case "i32":x[a>>2]=b;break;case "i64":C("to do setValue(i64) use WASM_BIGINT");case "float":ra[a>>2]=b;break;case "double":sa[a>>3]=b;break;case "*":z[a>>2]=b;break;default:C(`invalid type for setValue: ${c}`)}} -var Ka="undefined"!=typeof TextDecoder?new TextDecoder:void 0,J=(a,b=0,c=NaN)=>{var e=b+c;for(c=b;a[c]&&!(c>=e);)++c;if(16f?e+=String.fromCharCode(f):(f-=65536,e+=String.fromCharCode(55296|f>>10,56320|f&1023))}}else e+=String.fromCharCode(f)}return e}, -La=(a,b)=>{for(var c=0,e=a.length-1;0<=e;e--){var f=a[e];"."===f?a.splice(e,1):".."===f?(a.splice(e,1),c++):c&&(a.splice(e,1),c--)}if(b)for(;c;c--)a.unshift("..");return a},Ma=a=>{var b="/"===a.charAt(0),c="/"===a.substr(-1);(a=La(a.split("/").filter(e=>!!e),!b).join("/"))||b||(a=".");a&&c&&(a+="/");return(b?"/":"")+a},Na=a=>{var b=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(a).slice(1);a=b[0];b=b[1];if(!a&&!b)return".";b&&=b.substr(0,b.length-1);return a+b},Oa=a=>{if("/"=== -a)return"/";a=Ma(a);a=a.replace(/\/$/,"");var b=a.lastIndexOf("/");return-1===b?a:a.substr(b+1)},Pa=()=>{if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues)return a=>crypto.getRandomValues(a);C("initRandomDevice")},Qa=a=>(Qa=Pa())(a),Ra=(...a)=>{for(var b="",c=!1,e=a.length-1;-1<=e&&!c;e--){c=0<=e?a[e]:"/";if("string"!=typeof c)throw new TypeError("Arguments to path.resolve must be strings");if(!c)return"";b=c+"/"+b;c="/"===c.charAt(0)}b=La(b.split("/").filter(f=>!!f),!c).join("/"); -return(c?"/":"")+b||"."},Sa=[],Ta=a=>{for(var b=0,c=0;c=e?b++:2047>=e?b+=2:55296<=e&&57343>=e?(b+=4,++c):b+=3}return b},K=(a,b,c,e)=>{if(!(0=k){var n=a.charCodeAt(++h);k=65536+((k&1023)<<10)|n&1023}if(127>=k){if(c>=e)break;b[c++]=k}else{if(2047>=k){if(c+1>=e)break;b[c++]=192|k>>6}else{if(65535>=k){if(c+2>=e)break;b[c++]=224|k>>12}else{if(c+3>=e)break;b[c++]=240| -k>>18;b[c++]=128|k>>12&63}b[c++]=128|k>>6&63}b[c++]=128|k&63}}b[c]=0;return c-f};function Ua(a,b,c){c=Array(0=b||(b=Math.max(b,c*(1048576>c?2:1.125)>>>0),0!=c&&(b=Math.max(b,256)),c=a.Lf,a.Lf=new Uint8Array(b),0=a.node.Nf)return 0;a=Math.min(a.node.Nf-f,e);if(8b)throw new N(28);return b},qg(a,b,c){ab(a.node,b+c);a.node.Nf=Math.max(a.node.Nf,b+c)},hg(a,b,c,e,f){if(32768!==(a.node.mode&61440))throw new N(43);a=a.node.Lf;if(f&2||!a||a.buffer!==u.buffer){f=!0;e=65536*Math.ceil(b/ -65536);var h=eb(65536,e);h&&v.fill(0,h,h+e);e=h;if(!e)throw new N(48);if(a){if(0{var c=0;a&&(c|=365);b&&(c|=146);return c},gb=null,hb={},ib=[],jb=1,R=null,kb=!1,lb=!0,N=class{name="ErrnoError";constructor(a){this.Mf=a}},db={},mb={},nb=class{fg={};node=null;get flags(){return this.fg.flags}set flags(a){this.fg.flags= -a}get position(){return this.fg.position}set position(a){this.fg.position=a}},ob=class{Jf={};Kf={};Zf=null;constructor(a,b,c,e){a||=this;this.parent=a;this.Tf=a.Tf;this.id=jb++;this.name=b;this.mode=c;this.dg=e}get read(){return 365===(this.mode&365)}set read(a){a?this.mode|=365:this.mode&=-366}get write(){return 146===(this.mode&146)}set write(a){a?this.mode|=146:this.mode&=-147}}; -function S(a,b={}){a=Ra(a);if(!a)return{path:"",node:null};b=Object.assign({sg:!0,og:0},b);if(8!!k);for(var c=gb,e="/",f=0;f>>0)%R.length}function sb(a){var b=rb(a.parent.id,a.name);if(R[b]===a)R[b]=a.$f;else for(b=R[b];b;){if(b.$f===a){b.$f=a.$f;break}b=b.$f}} -function Q(a,b){var c=P(a.mode)?(c=tb(a,"x"))?c:a.Jf.bg?0:2:54;if(c)throw new N(c);for(c=R[rb(a.id,b)];c;c=c.$f){var e=c.name;if(c.parent.id===a.id&&e===b)return c}return a.Jf.bg(a,b)}function cb(a,b,c,e){a=new ob(a,b,c,e);b=rb(a.parent.id,a.name);a.$f=R[b];return R[b]=a}function P(a){return 16384===(a&61440)}function ub(a){var b=["r","w","rw"][a&3];a&512&&(b+="w");return b} -function tb(a,b){if(lb)return 0;if(!b.includes("r")||a.mode&292){if(b.includes("w")&&!(a.mode&146)||b.includes("x")&&!(a.mode&73))return 2}else return 2;return 0}function vb(a,b){try{return Q(a,b),20}catch(c){}return tb(a,"wx")}function wb(a,b,c){try{var e=Q(a,b)}catch(f){return f.Mf}if(a=tb(a,"wx"))return a;if(c){if(!P(e.mode))return 54;if(e===e.parent||"/"===qb(e))return 10}else if(P(e.mode))return 31;return 0}function T(a){a=ib[a];if(!a)throw new N(8);return a} -function xb(a,b=-1){a=Object.assign(new nb,a);if(-1==b)a:{for(b=0;4096>=b;b++)if(!ib[b])break a;throw new N(33);}a.Uf=b;return ib[b]=a}function yb(a,b=-1){a=xb(a,b);a.Kf?.Sg?.(a);return a}var bb={open(a){a.Kf=hb[a.node.dg].Kf;a.Kf.open?.(a)},Xf(){throw new N(70);}};function Xa(a,b){hb[a]={Kf:b}} -function zb(a,b){var c="/"===b;if(c&&gb)throw new N(10);if(!c&&b){var e=S(b,{sg:!1});b=e.path;e=e.node;if(e.Zf)throw new N(10);if(!P(e.mode))throw new N(54);}b={type:a,Xg:{},xg:b,Ig:[]};a=a.Tf(b);a.Tf=b;b.root=a;c?gb=a:e&&(e.Zf=b,e.Tf&&e.Tf.Ig.push(b))}function Ab(a,b,c){var e=S(a,{parent:!0}).node;a=Oa(a);if(!a||"."===a||".."===a)throw new N(28);var f=vb(e,a);if(f)throw new N(f);if(!e.Jf.gg)throw new N(63);return e.Jf.gg(e,a,b,c)}function U(a,b){return Ab(a,(void 0!==b?b:511)&1023|16384,0)} -function Bb(a,b,c){"undefined"==typeof c&&(c=b,b=438);Ab(a,b|8192,c)}function Cb(a,b){if(!Ra(a))throw new N(44);var c=S(b,{parent:!0}).node;if(!c)throw new N(44);b=Oa(b);var e=vb(c,b);if(e)throw new N(e);if(!c.Jf.kg)throw new N(63);c.Jf.kg(c,b,a)}function Db(a){var b=S(a,{parent:!0}).node;a=Oa(a);var c=Q(b,a),e=wb(b,a,!0);if(e)throw new N(e);if(!b.Jf.jg)throw new N(63);if(c.Zf)throw new N(10);b.Jf.jg(b,a);sb(c)} -function pb(a){a=S(a).node;if(!a)throw new N(44);if(!a.Jf.eg)throw new N(28);return Ra(qb(a.parent),a.Jf.eg(a))}function Eb(a,b){a=S(a,{Wf:!b}).node;if(!a)throw new N(44);if(!a.Jf.Rf)throw new N(63);return a.Jf.Rf(a)}function Fb(a){return Eb(a,!0)}function Gb(a,b){a="string"==typeof a?S(a,{Wf:!0}).node:a;if(!a.Jf.Of)throw new N(63);a.Jf.Of(a,{mode:b&4095|a.mode&-4096,timestamp:Date.now()})} -function Hb(a,b){if(0>b)throw new N(28);a="string"==typeof a?S(a,{Wf:!0}).node:a;if(!a.Jf.Of)throw new N(63);if(P(a.mode))throw new N(31);if(32768!==(a.mode&61440))throw new N(28);var c=tb(a,"w");if(c)throw new N(c);a.Jf.Of(a,{size:b,timestamp:Date.now()})} -function Ib(a,b,c){if(""===a)throw new N(44);if("string"==typeof b){var e={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090}[b];if("undefined"==typeof e)throw Error(`Unknown file open mode: ${b}`);b=e}c=b&64?("undefined"==typeof c?438:c)&4095|32768:0;if("object"==typeof a)var f=a;else{a=Ma(a);try{f=S(a,{Wf:!(b&131072)}).node}catch(h){}}e=!1;if(b&64)if(f){if(b&128)throw new N(20);}else f=Ab(a,c,0),e=!0;if(!f)throw new N(44);8192===(f.mode&61440)&&(b&=-513);if(b&65536&&!P(f.mode))throw new N(54);if(!e&&(c= -f?40960===(f.mode&61440)?32:P(f.mode)&&("r"!==ub(b)||b&512)?31:tb(f,ub(b)):44))throw new N(c);b&512&&!e&&Hb(f,0);b&=-131713;f=xb({node:f,path:qb(f),flags:b,seekable:!0,position:0,Kf:f.Kf,Mg:[],error:!1});f.Kf.open&&f.Kf.open(f);!d.logReadFiles||b&1||a in mb||(mb[a]=1);return f}function Jb(a,b,c){if(null===a.Uf)throw new N(8);if(!a.seekable||!a.Kf.Xf)throw new N(70);if(0!=c&&1!=c&&2!=c)throw new N(28);a.position=a.Kf.Xf(a,b,c);a.Mg=[]} -function V(a,b,c){a=Ma("/dev/"+a);var e=fb(!!b,!!c);V.wg??(V.wg=64);var f=V.wg++<<8|0;Xa(f,{open(h){h.seekable=!1},close(){c?.buffer?.length&&c(10)},read(h,k,n,m){for(var l=0,p=0;p>2]=a.Fg;x[c+4>>2]=a.mode;z[c+8>>2]=a.Kg;x[c+12>>2]=a.uid;x[c+16>>2]=a.Hg;x[c+20>>2]=a.dg;F=[a.size>>>0,(D=a.size,1<=+Math.abs(D)?0>>0:~~+Math.ceil((D-+(~~D>>>0))/4294967296)>>>0:0)];x[c+24>>2]=F[0];x[c+28>>2]=F[1];x[c+32>>2]=4096;x[c+36>>2]=a.Dg;b=a.Bg.getTime();var e=a.Jg.getTime(),f=a.Eg.getTime();F=[Math.floor(b/1E3)>>>0,(D=Math.floor(b/1E3),1<=+Math.abs(D)?0>>0:~~+Math.ceil((D-+(~~D>>>0))/4294967296)>>>0: -0)];x[c+40>>2]=F[0];x[c+44>>2]=F[1];z[c+48>>2]=b%1E3*1E6;F=[Math.floor(e/1E3)>>>0,(D=Math.floor(e/1E3),1<=+Math.abs(D)?0>>0:~~+Math.ceil((D-+(~~D>>>0))/4294967296)>>>0:0)];x[c+56>>2]=F[0];x[c+60>>2]=F[1];z[c+64>>2]=e%1E3*1E6;F=[Math.floor(f/1E3)>>>0,(D=Math.floor(f/1E3),1<=+Math.abs(D)?0>>0:~~+Math.ceil((D-+(~~D>>>0))/4294967296)>>>0:0)];x[c+72>>2]=F[0];x[c+76>>2]=F[1];z[c+80>>2]=f%1E3*1E6;F=[a.vg>>>0,(D=a.vg,1<=+Math.abs(D)?0>>0:~~+Math.ceil((D-+(~~D>>>0))/4294967296)>>>0:0)];x[c+88>>2]=F[0];x[c+92>>2]=F[1];return 0} -var Mb=void 0,Nb=()=>{var a=x[+Mb>>2];Mb+=4;return a},Ob=(a,b)=>b+2097152>>>0<4194305-!!a?(a>>>0)+4294967296*b:NaN,Pb=0,Qb=[0,31,60,91,121,152,182,213,244,274,305,335],Rb=[0,31,59,90,120,151,181,212,243,273,304,334],Sb={},Tb=a=>{if(!(a instanceof Ha||"unwind"==a))throw a;},Ub=a=>{pa=a;Ja||0{if(!oa)try{if(a(),!(Ja||0{if(!Xb){var a={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/", -HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:ia||"./this.program"},b;for(b in Wb)void 0===Wb[b]?delete a[b]:a[b]=Wb[b];var c=[];for(b in a)c.push(`${b}=${a[b]}`);Xb=c}return Xb},Xb;function Zb(){}function $b(){}function ac(){}function bc(){}function cc(){}function dc(){}function ec(){}function fc(){}function gc(){}function hc(){}function ic(){}function jc(){}function kc(){}function lc(){}function mc(){} -function nc(){}function oc(){}function pc(){}function qc(){}function rc(){}function sc(){}function tc(){}function uc(){}function vc(){}function wc(){}function xc(){}function yc(){}function zc(){}function Ac(){}function Bc(){}function Cc(){}function Dc(){}function Ec(){}function Fc(){}function Gc(){}function Hc(){}function Ic(){}function Jc(){}function Kc(){} -var Lc,Mc,Nc=[],Y=(a,b,c,e)=>{var f={string:l=>{var p=0;if(null!==l&&void 0!==l&&0!==l){p=Ta(l)+1;var q=Oc(p);K(l,v,q,p);p=q}return p},array:l=>{var p=Oc(l.length);u.set(l,p);return p}};a=d["_"+a];var h=[],k=0;if(e)for(var n=0;n{db[a]=new N(a);db[a].stack=""});R=Array(4096);zb(O,"/");U("/tmp");U("/home");U("/home/web_user");(function(){U("/dev");Xa(259,{read:()=>0,write:(e,f,h,k)=>k});Bb("/dev/null",259);Wa(1280,Za);Wa(1536,$a);Bb("/dev/tty",1280);Bb("/dev/tty1",1536);var a=new Uint8Array(1024),b=0,c=()=>{0===b&&(b=Qa(a).byteLength);return a[--b]};V("random",c);V("urandom",c);U("/dev/shm");U("/dev/shm/tmp")})(); -(function(){U("/proc");var a=U("/proc/self");U("/proc/self/fd");zb({Tf(){var b=cb(a,"fd",16895,73);b.Jf={bg(c,e){var f=T(+e);c={parent:null,Tf:{xg:"fake"},Jf:{eg:()=>f.path}};return c.parent=c}};return b}},"/proc/self/fd")})(); -(function(){const a=new Map;d.setAuthorizer=function(b,c,e){c?a.set(b,{f:c,pg:e}):a.delete(b);return Y("set_authorizer","number",["number"],[b])};Zb=function(b,c,e,f,h,k){if(a.has(b)){const {f:n,pg:m}=a.get(b);return n(m,c,e?e?J(v,e):"":null,f?f?J(v,f):"":null,h?h?J(v,h):"":null,k?k?J(v,k):"":null)}return 0}})(); -(function(){const a=new Map,b=new Map;d.createFunction=function(c,e,f,h,k,n){const m=a.size;a.set(m,{f:n,Vf:k});return Y("create_function","number","number string number number number number".split(" "),[c,e,f,h,m,0])};d.createAggregate=function(c,e,f,h,k,n,m){const l=a.size;a.set(l,{step:n,Gg:m,Vf:k});return Y("create_function","number","number string number number number number".split(" "),[c,e,f,h,l,1])};d.getFunctionUserData=function(c){return b.get(c)};ac=function(c,e,f,h){c=a.get(c);b.set(e, -c.Vf);c.f(e,new Uint32Array(v.buffer,h,f));b.delete(e)};cc=function(c,e,f,h){c=a.get(c);b.set(e,c.Vf);c.step(e,new Uint32Array(v.buffer,h,f));b.delete(e)};$b=function(c,e){c=a.get(c);b.set(e,c.Vf);c.Gg(e);b.delete(e)}})();(function(){const a=new Map;d.progressHandler=function(b,c,e,f){e?a.set(b,{f:e,pg:f}):a.delete(b);return Y("progress_handler",null,["number","number"],[b,c])};bc=function(b){if(a.has(b)){const {f:c,pg:e}=a.get(b);return c(e)}return 0}})(); -(function(){function a(m,l){const p=`get${m}`,q=`set${m}`;return new Proxy(new DataView(v.buffer,l,"Int32"===m?4:8),{get(t,y){if(y===p)return function(A,G){if(!G)throw Error("must be little endian");return t[y](A,G)};if(y===q)return function(A,G,E){if(!E)throw Error("must be little endian");return t[y](A,G,E)};if("string"===typeof y&&y.match(/^(get)|(set)/))throw Error("invalid type");return t[y]}})}const b="object"===typeof Asyncify,c=new Map,e=new Map,f=new Map,h=b?new Set:null,k=b?new Set:null, -n=new Map;tc=function(m,l,p,q){n.set(m?J(v,m):"",{size:l,cg:Array.from(new Uint32Array(v.buffer,q,p))})};d.createModule=function(m,l,p,q){b&&(p.handleAsync=Asyncify.ug);const t=c.size;c.set(t,{module:p,Vf:q});q=0;p.xCreate&&(q|=1);p.xConnect&&(q|=2);p.xBestIndex&&(q|=4);p.xDisconnect&&(q|=8);p.xDestroy&&(q|=16);p.xOpen&&(q|=32);p.xClose&&(q|=64);p.xFilter&&(q|=128);p.xNext&&(q|=256);p.xEof&&(q|=512);p.xColumn&&(q|=1024);p.xRowid&&(q|=2048);p.xUpdate&&(q|=4096);p.xBegin&&(q|=8192);p.xSync&&(q|=16384); -p.xCommit&&(q|=32768);p.xRollback&&(q|=65536);p.xFindFunction&&(q|=131072);p.xRename&&(q|=262144);return Y("create_module","number",["number","string","number","number"],[m,l,t,q])};jc=function(m,l,p,q,t,y){l=c.get(l);e.set(t,l);if(b){h.delete(t);for(const A of h)e.delete(A)}q=Array.from(new Uint32Array(v.buffer,q,p)).map(A=>A?J(v,A):"");return l.module.xCreate(m,l.Vf,q,t,a("Int32",y))};ic=function(m,l,p,q,t,y){l=c.get(l);e.set(t,l);if(b){h.delete(t);for(const A of h)e.delete(A)}q=Array.from(new Uint32Array(v.buffer, -q,p)).map(A=>A?J(v,A):"");return l.module.xConnect(m,l.Vf,q,t,a("Int32",y))};ec=function(m,l){var p=e.get(m),q=n.get("sqlite3_index_info").cg;const t={};t.nConstraint=H(l+q[0],"i32");t.aConstraint=[];var y=H(l+q[1],"*"),A=n.get("sqlite3_index_constraint").size;for(var G=0;Gm?2**32:0))};Kc=function(h,k,n,m,l){return e.get(h).xWrite(h,v.subarray(k,k+n),4294967296*l+m+(0>m?2**32:0))};Ic=function(h,k,n){return e.get(h).xTruncate(h,4294967296*n+k+(0>k?2**32:0))};Hc=function(h,k){return e.get(h).xSync(h,k)};Cc=function(h,k){const n=e.get(h);k=a("BigInt64",k);return n.xFileSize(h,k)};Dc=function(h,k){return e.get(h).xLock(h,k)};Jc=function(h,k){return e.get(h).xUnlock(h,k)};xc=function(h,k){const n=e.get(h);k=a("Int32",k);return n.xCheckReservedLock(h,k)};Bc=function(h, -k,n){const m=e.get(h);n=new DataView(v.buffer,n);return m.xFileControl(h,k,n)};Gc=function(h){return e.get(h).xSectorSize(h)};Ac=function(h){return e.get(h).xDeviceCharacteristics(h)};Ec=function(h,k,n,m,l){h=c.get(h);e.set(n,h);if(b){f.delete(n);for(var p of f)e.delete(p)}p=null;if(m&64){p=1;const q=[];for(;p;){const t=v[k++];if(t)q.push(t);else switch(v[k]||(p=null),p){case 1:q.push(63);p=2;break;case 2:q.push(61);p=3;break;case 3:q.push(38),p=2}}p=(new TextDecoder).decode(new Uint8Array(q))}else k&& -(p=k?J(v,k):"");l=a("Int32",l);return h.xOpen(p,n,m,l)};zc=function(h,k,n){return c.get(h).xDelete(k?J(v,k):"",n)};wc=function(h,k,n,m){h=c.get(h);m=a("Int32",m);return h.xAccess(k?J(v,k):"",n,m)}})(); -var Tc={a:(a,b,c,e)=>{C(`Assertion failed: ${a?J(v,a):""}, at: `+[b?b?J(v,b):"":"unknown filename",c,e?e?J(v,e):"":"unknown function"])},R:function(a,b){try{return a=a?J(v,a):"",Gb(a,b),0}catch(c){if("undefined"==typeof X||"ErrnoError"!==c.name)throw c;return-c.Mf}},U:function(a,b,c){try{b=b?J(v,b):"";b=Kb(a,b);if(c&-8)return-28;var e=S(b,{Wf:!0}).node;if(!e)return-44;a="";c&4&&(a+="r");c&2&&(a+="w");c&1&&(a+="x");return a&&tb(e,a)?-2:0}catch(f){if("undefined"==typeof X||"ErrnoError"!==f.name)throw f; -return-f.Mf}},S:function(a,b){try{var c=T(a);Gb(c.node,b);return 0}catch(e){if("undefined"==typeof X||"ErrnoError"!==e.name)throw e;return-e.Mf}},Q:function(a){try{var b=T(a).node;var c="string"==typeof b?S(b,{Wf:!0}).node:b;if(!c.Jf.Of)throw new N(63);c.Jf.Of(c,{timestamp:Date.now()});return 0}catch(e){if("undefined"==typeof X||"ErrnoError"!==e.name)throw e;return-e.Mf}},b:function(a,b,c){Mb=c;try{var e=T(a);switch(b){case 0:var f=Nb();if(0>f)break;for(;ib[f];)f++;return yb(e,f).Uf;case 1:case 2:return 0; -case 3:return e.flags;case 4:return f=Nb(),e.flags|=f,0;case 12:return f=Nb(),w[f+0>>1]=2,0;case 13:case 14:return 0}return-28}catch(h){if("undefined"==typeof X||"ErrnoError"!==h.name)throw h;return-h.Mf}},P:function(a,b){try{var c=T(a);return Lb(Eb,c.path,b)}catch(e){if("undefined"==typeof X||"ErrnoError"!==e.name)throw e;return-e.Mf}},m:function(a,b,c){b=Ob(b,c);try{if(isNaN(b))return 61;var e=T(a);if(0===(e.flags&2097155))throw new N(28);Hb(e.node,b);return 0}catch(f){if("undefined"==typeof X|| -"ErrnoError"!==f.name)throw f;return-f.Mf}},J:function(a,b){try{if(0===b)return-28;var c=Ta("/")+1;if(b=e)return-28;var f=pb(b),h=Math.min(e,Ta(f)),k=u[c+h];K(f,v,c,e+1);u[c+ -h]=k;return h}catch(n){if("undefined"==typeof X||"ErrnoError"!==n.name)throw n;return-n.Mf}},z:function(a){try{return a=a?J(v,a):"",Db(a),0}catch(b){if("undefined"==typeof X||"ErrnoError"!==b.name)throw b;return-b.Mf}},O:function(a,b){try{return a=a?J(v,a):"",Lb(Eb,a,b)}catch(c){if("undefined"==typeof X||"ErrnoError"!==c.name)throw c;return-c.Mf}},x:function(a,b,c){try{b=b?J(v,b):"";b=Kb(a,b);if(0===c){a=b;var e=S(a,{parent:!0}).node;if(!e)throw new N(44);var f=Oa(a),h=Q(e,f),k=wb(e,f,!1);if(k)throw new N(k); -if(!e.Jf.lg)throw new N(63);if(h.Zf)throw new N(10);e.Jf.lg(e,f);sb(h)}else 512===c?Db(b):C("Invalid flags passed to unlinkat");return 0}catch(n){if("undefined"==typeof X||"ErrnoError"!==n.name)throw n;return-n.Mf}},w:function(a,b,c){try{b=b?J(v,b):"";b=Kb(a,b,!0);var e=Date.now();if(c){var f=z[c>>2]+4294967296*x[c+4>>2],h=x[c+8>>2];var k=1073741823==h?e:1073741822==h?-1:1E3*f+h/1E6;c+=16;f=z[c>>2]+4294967296*x[c+4>>2];h=x[c+8>>2];var n=1073741823==h?e:1073741822==h?-1:1E3*f+h/1E6}else n=k=e;if(-1!= -n||-1!=k){a=k;var m=S(b,{Wf:!0}).node;m.Jf.Of(m,{timestamp:Math.max(a,n)})}return 0}catch(l){if("undefined"==typeof X||"ErrnoError"!==l.name)throw l;return-l.Mf}},V:()=>{C("")},s:()=>{Ja=!1;Pb=0},k:function(a,b,c){a=new Date(1E3*Ob(a,b));x[c>>2]=a.getSeconds();x[c+4>>2]=a.getMinutes();x[c+8>>2]=a.getHours();x[c+12>>2]=a.getDate();x[c+16>>2]=a.getMonth();x[c+20>>2]=a.getFullYear()-1900;x[c+24>>2]=a.getDay();b=a.getFullYear();x[c+28>>2]=(0!==b%4||0===b%100&&0!==b%400?Rb:Qb)[a.getMonth()]+a.getDate()- -1|0;x[c+36>>2]=-(60*a.getTimezoneOffset());b=(new Date(a.getFullYear(),6,1)).getTimezoneOffset();var e=(new Date(a.getFullYear(),0,1)).getTimezoneOffset();x[c+32>>2]=(b!=e&&a.getTimezoneOffset()==Math.min(e,b))|0},i:function(a,b,c,e,f,h,k,n){f=Ob(f,h);try{if(isNaN(f))return 61;var m=T(e);if(0!==(b&2)&&0===(c&2)&&2!==(m.flags&2097155))throw new N(2);if(1===(m.flags&2097155))throw new N(2);if(!m.Kf.hg)throw new N(43);if(!a)throw new N(28);var l=m.Kf.hg(m,a,f,b,c);var p=l.Lg;x[k>>2]=l.Ag;z[n>>2]=p;return 0}catch(q){if("undefined"== -typeof X||"ErrnoError"!==q.name)throw q;return-q.Mf}},j:function(a,b,c,e,f,h,k){h=Ob(h,k);try{var n=T(f);if(c&2){if(32768!==(n.node.mode&61440))throw new N(43);e&2||n.Kf.ig&&n.Kf.ig(n,v.slice(a,a+b),h,b,e)}}catch(m){if("undefined"==typeof X||"ErrnoError"!==m.name)throw m;return-m.Mf}},t:(a,b)=>{Sb[a]&&(clearTimeout(Sb[a].id),delete Sb[a]);if(!b)return 0;var c=setTimeout(()=>{delete Sb[a];Vb(()=>Sc(a,performance.now()))},b);Sb[a]={id:c,Yg:b};return 0},E:(a,b,c,e)=>{var f=(new Date).getFullYear(),h= -(new Date(f,0,1)).getTimezoneOffset();f=(new Date(f,6,1)).getTimezoneOffset();z[a>>2]=60*Math.max(h,f);x[b>>2]=Number(h!=f);b=k=>{var n=Math.abs(k);return`UTC${0<=k?"-":"+"}${String(Math.floor(n/60)).padStart(2,"0")}${String(n%60).padStart(2,"0")}`};a=b(h);b=b(f);fDate.now(),d:()=>performance.now(),u:a=>{var b=v.length;a>>>=0;if(2147483648=c;c*=2){var e=b*(1+.2/c);e=Math.min(e,a+100663296);a:{e=(Math.min(2147483648, -65536*Math.ceil(Math.max(a,e)/65536))-na.buffer.byteLength+65535)/65536|0;try{na.grow(e);ta();var f=1;break a}catch(h){}f=void 0}if(f)return!0}return!1},G:(a,b)=>{var c=0;Yb().forEach((e,f)=>{var h=b+c;f=z[a+4*f>>2]=h;for(h=0;h{var c=Yb();z[a>>2]=c.length;var e=0;c.forEach(f=>e+=f.length+1);z[b>>2]=e;return 0},f:function(a){try{var b=T(a);if(null===b.Uf)throw new N(8);b.mg&&(b.mg=null);try{b.Kf.close&&b.Kf.close(b)}catch(c){throw c; -}finally{ib[b.Uf]=null}b.Uf=null;return 0}catch(c){if("undefined"==typeof X||"ErrnoError"!==c.name)throw c;return c.Mf}},v:function(a,b){try{var c=T(a);u[b]=c.Qf?2:P(c.mode)?3:40960===(c.mode&61440)?7:4;w[b+2>>1]=0;F=[0,(D=0,1<=+Math.abs(D)?0>>0:~~+Math.ceil((D-+(~~D>>>0))/4294967296)>>>0:0)];x[b+8>>2]=F[0];x[b+12>>2]=F[1];F=[0,(D=0,1<=+Math.abs(D)?0>>0:~~+Math.ceil((D-+(~~D>>>0))/4294967296)>>>0:0)];x[b+16>>2]=F[0];x[b+20>>2]=F[1];return 0}catch(e){if("undefined"== -typeof X||"ErrnoError"!==e.name)throw e;return e.Mf}},C:function(a,b,c,e){try{a:{var f=T(a);a=b;for(var h,k=b=0;k>2],m=z[a+4>>2];a+=8;var l=f,p=h,q=u;if(0>m||0>p)throw new N(28);if(null===l.Uf)throw new N(8);if(1===(l.flags&2097155))throw new N(8);if(P(l.node.mode))throw new N(31);if(!l.Kf.read)throw new N(28);var t="undefined"!=typeof p;if(!t)p=l.position;else if(!l.seekable)throw new N(70);var y=l.Kf.read(l,q,n,m,p);t||(l.position+=y);var A=y;if(0>A){var G=-1;break a}b+=A;if(A< -m)break;"undefined"!=typeof h&&(h+=A)}G=b}z[e>>2]=G;return 0}catch(E){if("undefined"==typeof X||"ErrnoError"!==E.name)throw E;return E.Mf}},l:function(a,b,c,e,f){b=Ob(b,c);try{if(isNaN(b))return 61;var h=T(a);Jb(h,b,e);F=[h.position>>>0,(D=h.position,1<=+Math.abs(D)?0>>0:~~+Math.ceil((D-+(~~D>>>0))/4294967296)>>>0:0)];x[f>>2]=F[0];x[f+4>>2]=F[1];h.mg&&0===b&&0===e&&(h.mg=null);return 0}catch(k){if("undefined"==typeof X||"ErrnoError"!==k.name)throw k;return k.Mf}},K:function(a){try{var b= -T(a);return b.Kf?.Yf?b.Kf.Yf(b):0}catch(c){if("undefined"==typeof X||"ErrnoError"!==c.name)throw c;return c.Mf}},y:function(a,b,c,e){try{a:{var f=T(a);a=b;for(var h,k=b=0;k>2],m=z[a+4>>2];a+=8;var l=f,p=n,q=m,t=h,y=u;if(0>q||0>t)throw new N(28);if(null===l.Uf)throw new N(8);if(0===(l.flags&2097155))throw new N(8);if(P(l.node.mode))throw new N(31);if(!l.Kf.write)throw new N(28);l.seekable&&l.flags&1024&&Jb(l,0,2);var A="undefined"!=typeof t;if(!A)t=l.position;else if(!l.seekable)throw new N(70); -var G=l.Kf.write(l,y,p,q,t,void 0);A||(l.position+=G);var E=G;if(0>E){var M=-1;break a}b+=E;if(E>2]=M;return 0}catch(L){if("undefined"==typeof X||"ErrnoError"!==L.name)throw L;return L.Mf}},wa:Zb,T:$b,la:ac,ha:bc,ba:cc,qa:dc,L:ec,h:fc,ta:gc,oa:hc,ja:ic,ka:jc,p:kc,A:lc,ua:mc,g:nc,va:oc,ia:pc,ma:qc,na:rc,sa:sc,c:tc,pa:uc,ra:vc,r:Ub,I:function(a,b){try{return Qa(v.subarray(a,a+b)),0}catch(c){if("undefined"==typeof X||"ErrnoError"!==c.name)throw c;return c.Mf}}, -fa:wc,_:xc,ea:yc,ga:zc,X:Ac,Z:Bc,ca:Cc,aa:Dc,W:Ec,q:Fc,Y:Gc,da:Hc,n:Ic,$:Jc,o:Kc},Z=function(){function a(c){Z=c.exports;na=Z.xa;ta();Lc=Z.Cf;va.unshift(Z.ya);B--;d.monitorRunDependencies?.(B);0==B&&(null!==za&&(clearInterval(za),za=null),Aa&&(c=Aa,Aa=null,c()));return Z}var b={a:Tc};B++;d.monitorRunDependencies?.(B);if(d.instantiateWasm)try{return d.instantiateWasm(b,a)}catch(c){r(`Module.instantiateWasm callback failed with error: ${c}`),ba(c)}Ca??=d.locateFile?Ba("wa-sqlite.wasm")?"wa-sqlite.wasm": -d.locateFile?d.locateFile("wa-sqlite.wasm",g):g+"wa-sqlite.wasm":(new URL("wa-sqlite.wasm",import.meta.url)).href;Ga(b,function(c){a(c.instance)}).catch(ba);return{}}();d._sqlite3_status64=(a,b,c,e)=>(d._sqlite3_status64=Z.za)(a,b,c,e);d._sqlite3_status=(a,b,c,e)=>(d._sqlite3_status=Z.Aa)(a,b,c,e);d._sqlite3_db_status=(a,b,c,e,f)=>(d._sqlite3_db_status=Z.Ba)(a,b,c,e,f);d._sqlite3_msize=a=>(d._sqlite3_msize=Z.Ca)(a);d._sqlite3_vfs_find=a=>(d._sqlite3_vfs_find=Z.Da)(a); -d._sqlite3_vfs_register=(a,b)=>(d._sqlite3_vfs_register=Z.Ea)(a,b);d._sqlite3_vfs_unregister=a=>(d._sqlite3_vfs_unregister=Z.Fa)(a);d._sqlite3_release_memory=a=>(d._sqlite3_release_memory=Z.Ga)(a);d._sqlite3_soft_heap_limit64=(a,b)=>(d._sqlite3_soft_heap_limit64=Z.Ha)(a,b);d._sqlite3_memory_used=()=>(d._sqlite3_memory_used=Z.Ia)();d._sqlite3_hard_heap_limit64=(a,b)=>(d._sqlite3_hard_heap_limit64=Z.Ja)(a,b);d._sqlite3_memory_highwater=a=>(d._sqlite3_memory_highwater=Z.Ka)(a); -d._sqlite3_malloc=a=>(d._sqlite3_malloc=Z.La)(a);d._sqlite3_malloc64=(a,b)=>(d._sqlite3_malloc64=Z.Ma)(a,b);d._sqlite3_free=a=>(d._sqlite3_free=Z.Na)(a);d._sqlite3_realloc=(a,b)=>(d._sqlite3_realloc=Z.Oa)(a,b);d._sqlite3_realloc64=(a,b,c)=>(d._sqlite3_realloc64=Z.Pa)(a,b,c);d._sqlite3_str_vappendf=(a,b,c)=>(d._sqlite3_str_vappendf=Z.Qa)(a,b,c);d._sqlite3_str_append=(a,b,c)=>(d._sqlite3_str_append=Z.Ra)(a,b,c);d._sqlite3_str_appendchar=(a,b,c)=>(d._sqlite3_str_appendchar=Z.Sa)(a,b,c); -d._sqlite3_str_appendall=(a,b)=>(d._sqlite3_str_appendall=Z.Ta)(a,b);d._sqlite3_str_appendf=(a,b,c)=>(d._sqlite3_str_appendf=Z.Ua)(a,b,c);d._sqlite3_str_finish=a=>(d._sqlite3_str_finish=Z.Va)(a);d._sqlite3_str_errcode=a=>(d._sqlite3_str_errcode=Z.Wa)(a);d._sqlite3_str_length=a=>(d._sqlite3_str_length=Z.Xa)(a);d._sqlite3_str_value=a=>(d._sqlite3_str_value=Z.Ya)(a);d._sqlite3_str_reset=a=>(d._sqlite3_str_reset=Z.Za)(a);d._sqlite3_str_new=a=>(d._sqlite3_str_new=Z._a)(a); -d._sqlite3_vmprintf=(a,b)=>(d._sqlite3_vmprintf=Z.$a)(a,b);d._sqlite3_mprintf=(a,b)=>(d._sqlite3_mprintf=Z.ab)(a,b);d._sqlite3_vsnprintf=(a,b,c,e)=>(d._sqlite3_vsnprintf=Z.bb)(a,b,c,e);d._sqlite3_snprintf=(a,b,c,e)=>(d._sqlite3_snprintf=Z.cb)(a,b,c,e);d._sqlite3_log=(a,b,c)=>(d._sqlite3_log=Z.db)(a,b,c);d._sqlite3_randomness=(a,b)=>(d._sqlite3_randomness=Z.eb)(a,b);d._sqlite3_stricmp=(a,b)=>(d._sqlite3_stricmp=Z.fb)(a,b);d._sqlite3_strnicmp=(a,b,c)=>(d._sqlite3_strnicmp=Z.gb)(a,b,c); -d._sqlite3_os_init=()=>(d._sqlite3_os_init=Z.hb)();d._sqlite3_os_end=()=>(d._sqlite3_os_end=Z.ib)();d._sqlite3_serialize=(a,b,c,e)=>(d._sqlite3_serialize=Z.jb)(a,b,c,e);d._sqlite3_prepare_v2=(a,b,c,e,f)=>(d._sqlite3_prepare_v2=Z.kb)(a,b,c,e,f);d._sqlite3_step=a=>(d._sqlite3_step=Z.lb)(a);d._sqlite3_column_int64=(a,b)=>(d._sqlite3_column_int64=Z.mb)(a,b);d._sqlite3_reset=a=>(d._sqlite3_reset=Z.nb)(a);d._sqlite3_exec=(a,b,c,e,f)=>(d._sqlite3_exec=Z.ob)(a,b,c,e,f); -d._sqlite3_column_int=(a,b)=>(d._sqlite3_column_int=Z.pb)(a,b);d._sqlite3_finalize=a=>(d._sqlite3_finalize=Z.qb)(a);d._sqlite3_deserialize=(a,b,c,e,f,h,k,n)=>(d._sqlite3_deserialize=Z.rb)(a,b,c,e,f,h,k,n);d._sqlite3_database_file_object=a=>(d._sqlite3_database_file_object=Z.sb)(a);d._sqlite3_backup_init=(a,b,c,e)=>(d._sqlite3_backup_init=Z.tb)(a,b,c,e);d._sqlite3_backup_step=(a,b)=>(d._sqlite3_backup_step=Z.ub)(a,b);d._sqlite3_backup_finish=a=>(d._sqlite3_backup_finish=Z.vb)(a); -d._sqlite3_backup_remaining=a=>(d._sqlite3_backup_remaining=Z.wb)(a);d._sqlite3_backup_pagecount=a=>(d._sqlite3_backup_pagecount=Z.xb)(a);d._sqlite3_clear_bindings=a=>(d._sqlite3_clear_bindings=Z.yb)(a);d._sqlite3_value_blob=a=>(d._sqlite3_value_blob=Z.zb)(a);d._sqlite3_value_text=a=>(d._sqlite3_value_text=Z.Ab)(a);d._sqlite3_value_bytes=a=>(d._sqlite3_value_bytes=Z.Bb)(a);d._sqlite3_value_bytes16=a=>(d._sqlite3_value_bytes16=Z.Cb)(a);d._sqlite3_value_double=a=>(d._sqlite3_value_double=Z.Db)(a); -d._sqlite3_value_int=a=>(d._sqlite3_value_int=Z.Eb)(a);d._sqlite3_value_int64=a=>(d._sqlite3_value_int64=Z.Fb)(a);d._sqlite3_value_subtype=a=>(d._sqlite3_value_subtype=Z.Gb)(a);d._sqlite3_value_pointer=(a,b)=>(d._sqlite3_value_pointer=Z.Hb)(a,b);d._sqlite3_value_text16=a=>(d._sqlite3_value_text16=Z.Ib)(a);d._sqlite3_value_text16be=a=>(d._sqlite3_value_text16be=Z.Jb)(a);d._sqlite3_value_text16le=a=>(d._sqlite3_value_text16le=Z.Kb)(a);d._sqlite3_value_type=a=>(d._sqlite3_value_type=Z.Lb)(a); -d._sqlite3_value_encoding=a=>(d._sqlite3_value_encoding=Z.Mb)(a);d._sqlite3_value_nochange=a=>(d._sqlite3_value_nochange=Z.Nb)(a);d._sqlite3_value_frombind=a=>(d._sqlite3_value_frombind=Z.Ob)(a);d._sqlite3_value_dup=a=>(d._sqlite3_value_dup=Z.Pb)(a);d._sqlite3_value_free=a=>(d._sqlite3_value_free=Z.Qb)(a);d._sqlite3_result_blob=(a,b,c,e)=>(d._sqlite3_result_blob=Z.Rb)(a,b,c,e);d._sqlite3_result_blob64=(a,b,c,e,f)=>(d._sqlite3_result_blob64=Z.Sb)(a,b,c,e,f); -d._sqlite3_result_double=(a,b)=>(d._sqlite3_result_double=Z.Tb)(a,b);d._sqlite3_result_error=(a,b,c)=>(d._sqlite3_result_error=Z.Ub)(a,b,c);d._sqlite3_result_error16=(a,b,c)=>(d._sqlite3_result_error16=Z.Vb)(a,b,c);d._sqlite3_result_int=(a,b)=>(d._sqlite3_result_int=Z.Wb)(a,b);d._sqlite3_result_int64=(a,b,c)=>(d._sqlite3_result_int64=Z.Xb)(a,b,c);d._sqlite3_result_null=a=>(d._sqlite3_result_null=Z.Yb)(a);d._sqlite3_result_pointer=(a,b,c,e)=>(d._sqlite3_result_pointer=Z.Zb)(a,b,c,e); -d._sqlite3_result_subtype=(a,b)=>(d._sqlite3_result_subtype=Z._b)(a,b);d._sqlite3_result_text=(a,b,c,e)=>(d._sqlite3_result_text=Z.$b)(a,b,c,e);d._sqlite3_result_text64=(a,b,c,e,f,h)=>(d._sqlite3_result_text64=Z.ac)(a,b,c,e,f,h);d._sqlite3_result_text16=(a,b,c,e)=>(d._sqlite3_result_text16=Z.bc)(a,b,c,e);d._sqlite3_result_text16be=(a,b,c,e)=>(d._sqlite3_result_text16be=Z.cc)(a,b,c,e);d._sqlite3_result_text16le=(a,b,c,e)=>(d._sqlite3_result_text16le=Z.dc)(a,b,c,e); -d._sqlite3_result_value=(a,b)=>(d._sqlite3_result_value=Z.ec)(a,b);d._sqlite3_result_error_toobig=a=>(d._sqlite3_result_error_toobig=Z.fc)(a);d._sqlite3_result_zeroblob=(a,b)=>(d._sqlite3_result_zeroblob=Z.gc)(a,b);d._sqlite3_result_zeroblob64=(a,b,c)=>(d._sqlite3_result_zeroblob64=Z.hc)(a,b,c);d._sqlite3_result_error_code=(a,b)=>(d._sqlite3_result_error_code=Z.ic)(a,b);d._sqlite3_result_error_nomem=a=>(d._sqlite3_result_error_nomem=Z.jc)(a);d._sqlite3_user_data=a=>(d._sqlite3_user_data=Z.kc)(a); -d._sqlite3_context_db_handle=a=>(d._sqlite3_context_db_handle=Z.lc)(a);d._sqlite3_vtab_nochange=a=>(d._sqlite3_vtab_nochange=Z.mc)(a);d._sqlite3_vtab_in_first=(a,b)=>(d._sqlite3_vtab_in_first=Z.nc)(a,b);d._sqlite3_vtab_in_next=(a,b)=>(d._sqlite3_vtab_in_next=Z.oc)(a,b);d._sqlite3_aggregate_context=(a,b)=>(d._sqlite3_aggregate_context=Z.pc)(a,b);d._sqlite3_get_auxdata=(a,b)=>(d._sqlite3_get_auxdata=Z.qc)(a,b);d._sqlite3_set_auxdata=(a,b,c,e)=>(d._sqlite3_set_auxdata=Z.rc)(a,b,c,e); -d._sqlite3_column_count=a=>(d._sqlite3_column_count=Z.sc)(a);d._sqlite3_data_count=a=>(d._sqlite3_data_count=Z.tc)(a);d._sqlite3_column_blob=(a,b)=>(d._sqlite3_column_blob=Z.uc)(a,b);d._sqlite3_column_bytes=(a,b)=>(d._sqlite3_column_bytes=Z.vc)(a,b);d._sqlite3_column_bytes16=(a,b)=>(d._sqlite3_column_bytes16=Z.wc)(a,b);d._sqlite3_column_double=(a,b)=>(d._sqlite3_column_double=Z.xc)(a,b);d._sqlite3_column_text=(a,b)=>(d._sqlite3_column_text=Z.yc)(a,b); -d._sqlite3_column_value=(a,b)=>(d._sqlite3_column_value=Z.zc)(a,b);d._sqlite3_column_text16=(a,b)=>(d._sqlite3_column_text16=Z.Ac)(a,b);d._sqlite3_column_type=(a,b)=>(d._sqlite3_column_type=Z.Bc)(a,b);d._sqlite3_column_name=(a,b)=>(d._sqlite3_column_name=Z.Cc)(a,b);d._sqlite3_column_name16=(a,b)=>(d._sqlite3_column_name16=Z.Dc)(a,b);d._sqlite3_bind_blob=(a,b,c,e,f)=>(d._sqlite3_bind_blob=Z.Ec)(a,b,c,e,f);d._sqlite3_bind_blob64=(a,b,c,e,f,h)=>(d._sqlite3_bind_blob64=Z.Fc)(a,b,c,e,f,h); -d._sqlite3_bind_double=(a,b,c)=>(d._sqlite3_bind_double=Z.Gc)(a,b,c);d._sqlite3_bind_int=(a,b,c)=>(d._sqlite3_bind_int=Z.Hc)(a,b,c);d._sqlite3_bind_int64=(a,b,c,e)=>(d._sqlite3_bind_int64=Z.Ic)(a,b,c,e);d._sqlite3_bind_null=(a,b)=>(d._sqlite3_bind_null=Z.Jc)(a,b);d._sqlite3_bind_pointer=(a,b,c,e,f)=>(d._sqlite3_bind_pointer=Z.Kc)(a,b,c,e,f);d._sqlite3_bind_text=(a,b,c,e,f)=>(d._sqlite3_bind_text=Z.Lc)(a,b,c,e,f);d._sqlite3_bind_text64=(a,b,c,e,f,h,k)=>(d._sqlite3_bind_text64=Z.Mc)(a,b,c,e,f,h,k); -d._sqlite3_bind_text16=(a,b,c,e,f)=>(d._sqlite3_bind_text16=Z.Nc)(a,b,c,e,f);d._sqlite3_bind_value=(a,b,c)=>(d._sqlite3_bind_value=Z.Oc)(a,b,c);d._sqlite3_bind_zeroblob=(a,b,c)=>(d._sqlite3_bind_zeroblob=Z.Pc)(a,b,c);d._sqlite3_bind_zeroblob64=(a,b,c,e)=>(d._sqlite3_bind_zeroblob64=Z.Qc)(a,b,c,e);d._sqlite3_bind_parameter_count=a=>(d._sqlite3_bind_parameter_count=Z.Rc)(a);d._sqlite3_bind_parameter_name=(a,b)=>(d._sqlite3_bind_parameter_name=Z.Sc)(a,b); -d._sqlite3_bind_parameter_index=(a,b)=>(d._sqlite3_bind_parameter_index=Z.Tc)(a,b);d._sqlite3_db_handle=a=>(d._sqlite3_db_handle=Z.Uc)(a);d._sqlite3_stmt_readonly=a=>(d._sqlite3_stmt_readonly=Z.Vc)(a);d._sqlite3_stmt_isexplain=a=>(d._sqlite3_stmt_isexplain=Z.Wc)(a);d._sqlite3_stmt_explain=(a,b)=>(d._sqlite3_stmt_explain=Z.Xc)(a,b);d._sqlite3_stmt_busy=a=>(d._sqlite3_stmt_busy=Z.Yc)(a);d._sqlite3_next_stmt=(a,b)=>(d._sqlite3_next_stmt=Z.Zc)(a,b); -d._sqlite3_stmt_status=(a,b,c)=>(d._sqlite3_stmt_status=Z._c)(a,b,c);d._sqlite3_sql=a=>(d._sqlite3_sql=Z.$c)(a);d._sqlite3_expanded_sql=a=>(d._sqlite3_expanded_sql=Z.ad)(a);d._sqlite3_value_numeric_type=a=>(d._sqlite3_value_numeric_type=Z.bd)(a);d._sqlite3_blob_open=(a,b,c,e,f,h,k,n)=>(d._sqlite3_blob_open=Z.cd)(a,b,c,e,f,h,k,n);d._sqlite3_blob_close=a=>(d._sqlite3_blob_close=Z.dd)(a);d._sqlite3_blob_read=(a,b,c,e)=>(d._sqlite3_blob_read=Z.ed)(a,b,c,e); -d._sqlite3_blob_write=(a,b,c,e)=>(d._sqlite3_blob_write=Z.fd)(a,b,c,e);d._sqlite3_blob_bytes=a=>(d._sqlite3_blob_bytes=Z.gd)(a);d._sqlite3_blob_reopen=(a,b,c)=>(d._sqlite3_blob_reopen=Z.hd)(a,b,c);d._sqlite3_set_authorizer=(a,b,c)=>(d._sqlite3_set_authorizer=Z.id)(a,b,c);d._sqlite3_strglob=(a,b)=>(d._sqlite3_strglob=Z.jd)(a,b);d._sqlite3_strlike=(a,b,c)=>(d._sqlite3_strlike=Z.kd)(a,b,c);d._sqlite3_errmsg=a=>(d._sqlite3_errmsg=Z.ld)(a);d._sqlite3_auto_extension=a=>(d._sqlite3_auto_extension=Z.md)(a); -d._sqlite3_cancel_auto_extension=a=>(d._sqlite3_cancel_auto_extension=Z.nd)(a);d._sqlite3_reset_auto_extension=()=>(d._sqlite3_reset_auto_extension=Z.od)();d._sqlite3_prepare=(a,b,c,e,f)=>(d._sqlite3_prepare=Z.pd)(a,b,c,e,f);d._sqlite3_prepare_v3=(a,b,c,e,f,h)=>(d._sqlite3_prepare_v3=Z.qd)(a,b,c,e,f,h);d._sqlite3_prepare16=(a,b,c,e,f)=>(d._sqlite3_prepare16=Z.rd)(a,b,c,e,f);d._sqlite3_prepare16_v2=(a,b,c,e,f)=>(d._sqlite3_prepare16_v2=Z.sd)(a,b,c,e,f); -d._sqlite3_prepare16_v3=(a,b,c,e,f,h)=>(d._sqlite3_prepare16_v3=Z.td)(a,b,c,e,f,h);d._sqlite3_get_table=(a,b,c,e,f,h)=>(d._sqlite3_get_table=Z.ud)(a,b,c,e,f,h);d._sqlite3_free_table=a=>(d._sqlite3_free_table=Z.vd)(a);d._sqlite3_create_module=(a,b,c,e)=>(d._sqlite3_create_module=Z.wd)(a,b,c,e);d._sqlite3_create_module_v2=(a,b,c,e,f)=>(d._sqlite3_create_module_v2=Z.xd)(a,b,c,e,f);d._sqlite3_drop_modules=(a,b)=>(d._sqlite3_drop_modules=Z.yd)(a,b); -d._sqlite3_declare_vtab=(a,b)=>(d._sqlite3_declare_vtab=Z.zd)(a,b);d._sqlite3_vtab_on_conflict=a=>(d._sqlite3_vtab_on_conflict=Z.Ad)(a);d._sqlite3_vtab_config=(a,b,c)=>(d._sqlite3_vtab_config=Z.Bd)(a,b,c);d._sqlite3_vtab_collation=(a,b)=>(d._sqlite3_vtab_collation=Z.Cd)(a,b);d._sqlite3_vtab_in=(a,b,c)=>(d._sqlite3_vtab_in=Z.Dd)(a,b,c);d._sqlite3_vtab_rhs_value=(a,b,c)=>(d._sqlite3_vtab_rhs_value=Z.Ed)(a,b,c);d._sqlite3_vtab_distinct=a=>(d._sqlite3_vtab_distinct=Z.Fd)(a); -d._sqlite3_keyword_name=(a,b,c)=>(d._sqlite3_keyword_name=Z.Gd)(a,b,c);d._sqlite3_keyword_count=()=>(d._sqlite3_keyword_count=Z.Hd)();d._sqlite3_keyword_check=(a,b)=>(d._sqlite3_keyword_check=Z.Id)(a,b);d._sqlite3_complete=a=>(d._sqlite3_complete=Z.Jd)(a);d._sqlite3_complete16=a=>(d._sqlite3_complete16=Z.Kd)(a);d._sqlite3_libversion=()=>(d._sqlite3_libversion=Z.Ld)();d._sqlite3_libversion_number=()=>(d._sqlite3_libversion_number=Z.Md)();d._sqlite3_threadsafe=()=>(d._sqlite3_threadsafe=Z.Nd)(); -d._sqlite3_initialize=()=>(d._sqlite3_initialize=Z.Od)();d._sqlite3_shutdown=()=>(d._sqlite3_shutdown=Z.Pd)();d._sqlite3_config=(a,b)=>(d._sqlite3_config=Z.Qd)(a,b);d._sqlite3_db_mutex=a=>(d._sqlite3_db_mutex=Z.Rd)(a);d._sqlite3_db_release_memory=a=>(d._sqlite3_db_release_memory=Z.Sd)(a);d._sqlite3_db_cacheflush=a=>(d._sqlite3_db_cacheflush=Z.Td)(a);d._sqlite3_db_config=(a,b,c)=>(d._sqlite3_db_config=Z.Ud)(a,b,c);d._sqlite3_last_insert_rowid=a=>(d._sqlite3_last_insert_rowid=Z.Vd)(a); -d._sqlite3_set_last_insert_rowid=(a,b,c)=>(d._sqlite3_set_last_insert_rowid=Z.Wd)(a,b,c);d._sqlite3_changes64=a=>(d._sqlite3_changes64=Z.Xd)(a);d._sqlite3_changes=a=>(d._sqlite3_changes=Z.Yd)(a);d._sqlite3_total_changes64=a=>(d._sqlite3_total_changes64=Z.Zd)(a);d._sqlite3_total_changes=a=>(d._sqlite3_total_changes=Z._d)(a);d._sqlite3_txn_state=(a,b)=>(d._sqlite3_txn_state=Z.$d)(a,b);d._sqlite3_close=a=>(d._sqlite3_close=Z.ae)(a);d._sqlite3_close_v2=a=>(d._sqlite3_close_v2=Z.be)(a); -d._sqlite3_busy_handler=(a,b,c)=>(d._sqlite3_busy_handler=Z.ce)(a,b,c);d._sqlite3_progress_handler=(a,b,c,e)=>(d._sqlite3_progress_handler=Z.de)(a,b,c,e);d._sqlite3_busy_timeout=(a,b)=>(d._sqlite3_busy_timeout=Z.ee)(a,b);d._sqlite3_interrupt=a=>(d._sqlite3_interrupt=Z.fe)(a);d._sqlite3_is_interrupted=a=>(d._sqlite3_is_interrupted=Z.ge)(a);d._sqlite3_create_function=(a,b,c,e,f,h,k,n)=>(d._sqlite3_create_function=Z.he)(a,b,c,e,f,h,k,n); -d._sqlite3_create_function_v2=(a,b,c,e,f,h,k,n,m)=>(d._sqlite3_create_function_v2=Z.ie)(a,b,c,e,f,h,k,n,m);d._sqlite3_create_window_function=(a,b,c,e,f,h,k,n,m,l)=>(d._sqlite3_create_window_function=Z.je)(a,b,c,e,f,h,k,n,m,l);d._sqlite3_create_function16=(a,b,c,e,f,h,k,n)=>(d._sqlite3_create_function16=Z.ke)(a,b,c,e,f,h,k,n);d._sqlite3_overload_function=(a,b,c)=>(d._sqlite3_overload_function=Z.le)(a,b,c);d._sqlite3_trace_v2=(a,b,c,e)=>(d._sqlite3_trace_v2=Z.me)(a,b,c,e); -d._sqlite3_commit_hook=(a,b,c)=>(d._sqlite3_commit_hook=Z.ne)(a,b,c);d._sqlite3_update_hook=(a,b,c)=>(d._sqlite3_update_hook=Z.oe)(a,b,c);d._sqlite3_rollback_hook=(a,b,c)=>(d._sqlite3_rollback_hook=Z.pe)(a,b,c);d._sqlite3_autovacuum_pages=(a,b,c,e)=>(d._sqlite3_autovacuum_pages=Z.qe)(a,b,c,e);d._sqlite3_wal_autocheckpoint=(a,b)=>(d._sqlite3_wal_autocheckpoint=Z.re)(a,b);d._sqlite3_wal_hook=(a,b,c)=>(d._sqlite3_wal_hook=Z.se)(a,b,c); -d._sqlite3_wal_checkpoint_v2=(a,b,c,e,f)=>(d._sqlite3_wal_checkpoint_v2=Z.te)(a,b,c,e,f);d._sqlite3_wal_checkpoint=(a,b)=>(d._sqlite3_wal_checkpoint=Z.ue)(a,b);d._sqlite3_error_offset=a=>(d._sqlite3_error_offset=Z.ve)(a);d._sqlite3_errmsg16=a=>(d._sqlite3_errmsg16=Z.we)(a);d._sqlite3_errcode=a=>(d._sqlite3_errcode=Z.xe)(a);d._sqlite3_extended_errcode=a=>(d._sqlite3_extended_errcode=Z.ye)(a);d._sqlite3_system_errno=a=>(d._sqlite3_system_errno=Z.ze)(a);d._sqlite3_errstr=a=>(d._sqlite3_errstr=Z.Ae)(a); -d._sqlite3_limit=(a,b,c)=>(d._sqlite3_limit=Z.Be)(a,b,c);d._sqlite3_open=(a,b)=>(d._sqlite3_open=Z.Ce)(a,b);d._sqlite3_open_v2=(a,b,c,e)=>(d._sqlite3_open_v2=Z.De)(a,b,c,e);d._sqlite3_open16=(a,b)=>(d._sqlite3_open16=Z.Ee)(a,b);d._sqlite3_create_collation=(a,b,c,e,f)=>(d._sqlite3_create_collation=Z.Fe)(a,b,c,e,f);d._sqlite3_create_collation_v2=(a,b,c,e,f,h)=>(d._sqlite3_create_collation_v2=Z.Ge)(a,b,c,e,f,h);d._sqlite3_create_collation16=(a,b,c,e,f)=>(d._sqlite3_create_collation16=Z.He)(a,b,c,e,f); -d._sqlite3_collation_needed=(a,b,c)=>(d._sqlite3_collation_needed=Z.Ie)(a,b,c);d._sqlite3_collation_needed16=(a,b,c)=>(d._sqlite3_collation_needed16=Z.Je)(a,b,c);d._sqlite3_get_clientdata=(a,b)=>(d._sqlite3_get_clientdata=Z.Ke)(a,b);d._sqlite3_set_clientdata=(a,b,c,e)=>(d._sqlite3_set_clientdata=Z.Le)(a,b,c,e);d._sqlite3_get_autocommit=a=>(d._sqlite3_get_autocommit=Z.Me)(a);d._sqlite3_table_column_metadata=(a,b,c,e,f,h,k,n,m)=>(d._sqlite3_table_column_metadata=Z.Ne)(a,b,c,e,f,h,k,n,m); -d._sqlite3_sleep=a=>(d._sqlite3_sleep=Z.Oe)(a);d._sqlite3_extended_result_codes=(a,b)=>(d._sqlite3_extended_result_codes=Z.Pe)(a,b);d._sqlite3_file_control=(a,b,c,e)=>(d._sqlite3_file_control=Z.Qe)(a,b,c,e);d._sqlite3_test_control=(a,b)=>(d._sqlite3_test_control=Z.Re)(a,b);d._sqlite3_create_filename=(a,b,c,e,f)=>(d._sqlite3_create_filename=Z.Se)(a,b,c,e,f);d._sqlite3_free_filename=a=>(d._sqlite3_free_filename=Z.Te)(a);d._sqlite3_uri_parameter=(a,b)=>(d._sqlite3_uri_parameter=Z.Ue)(a,b); -d._sqlite3_uri_key=(a,b)=>(d._sqlite3_uri_key=Z.Ve)(a,b);d._sqlite3_uri_boolean=(a,b,c)=>(d._sqlite3_uri_boolean=Z.We)(a,b,c);d._sqlite3_uri_int64=(a,b,c,e)=>(d._sqlite3_uri_int64=Z.Xe)(a,b,c,e);d._sqlite3_filename_database=a=>(d._sqlite3_filename_database=Z.Ye)(a);d._sqlite3_filename_journal=a=>(d._sqlite3_filename_journal=Z.Ze)(a);d._sqlite3_filename_wal=a=>(d._sqlite3_filename_wal=Z._e)(a);d._sqlite3_db_name=(a,b)=>(d._sqlite3_db_name=Z.$e)(a,b); -d._sqlite3_db_filename=(a,b)=>(d._sqlite3_db_filename=Z.af)(a,b);d._sqlite3_db_readonly=(a,b)=>(d._sqlite3_db_readonly=Z.bf)(a,b);d._sqlite3_compileoption_used=a=>(d._sqlite3_compileoption_used=Z.cf)(a);d._sqlite3_compileoption_get=a=>(d._sqlite3_compileoption_get=Z.df)(a);d._sqlite3_sourceid=()=>(d._sqlite3_sourceid=Z.ef)();d._sqlite3mc_config=(a,b,c)=>(d._sqlite3mc_config=Z.ff)(a,b,c);d._sqlite3mc_cipher_count=()=>(d._sqlite3mc_cipher_count=Z.gf)(); -d._sqlite3mc_cipher_index=a=>(d._sqlite3mc_cipher_index=Z.hf)(a);d._sqlite3mc_cipher_name=a=>(d._sqlite3mc_cipher_name=Z.jf)(a);d._sqlite3mc_config_cipher=(a,b,c,e)=>(d._sqlite3mc_config_cipher=Z.kf)(a,b,c,e);d._sqlite3mc_codec_data=(a,b,c)=>(d._sqlite3mc_codec_data=Z.lf)(a,b,c);d._sqlite3_key=(a,b,c)=>(d._sqlite3_key=Z.mf)(a,b,c);d._sqlite3_key_v2=(a,b,c,e)=>(d._sqlite3_key_v2=Z.nf)(a,b,c,e);d._sqlite3_rekey_v2=(a,b,c,e)=>(d._sqlite3_rekey_v2=Z.of)(a,b,c,e); -d._sqlite3_rekey=(a,b,c)=>(d._sqlite3_rekey=Z.pf)(a,b,c);d._sqlite3mc_register_cipher=(a,b,c)=>(d._sqlite3mc_register_cipher=Z.qf)(a,b,c);d._malloc=a=>(d._malloc=Z.rf)(a);d._free=a=>(d._free=Z.sf)(a);d._RegisterExtensionFunctions=a=>(d._RegisterExtensionFunctions=Z.tf)(a);d._sqlite3Fts5BetterTrigramInit=a=>(d._sqlite3Fts5BetterTrigramInit=Z.uf)(a);d._set_authorizer=a=>(d._set_authorizer=Z.vf)(a);d._create_function=(a,b,c,e,f,h)=>(d._create_function=Z.wf)(a,b,c,e,f,h); -d._create_module=(a,b,c,e)=>(d._create_module=Z.xf)(a,b,c,e);d._progress_handler=(a,b)=>(d._progress_handler=Z.yf)(a,b);d._register_vfs=(a,b,c,e)=>(d._register_vfs=Z.zf)(a,b,c,e);d._getSqliteFree=()=>(d._getSqliteFree=Z.Af)();var Uc=d._main=(a,b)=>(Uc=d._main=Z.Bf)(a,b),eb=(a,b)=>(eb=Z.Df)(a,b),Sc=(a,b)=>(Sc=Z.Ef)(a,b),Vc=()=>(Vc=Z.Ff)(),Qc=a=>(Qc=Z.Gf)(a),Oc=a=>(Oc=Z.Hf)(a),Pc=()=>(Pc=Z.If)();d._sqlite3_version=5472;d.getTempRet0=()=>Vc();d.ccall=Y; -d.cwrap=(a,b,c,e)=>{var f=!c||c.every(h=>"number"===h||"boolean"===h);return"string"!==b&&f&&!e?d["_"+a]:(...h)=>Y(a,b,c,h,e)}; -d.addFunction=(a,b)=>{if(!Mc){Mc=new WeakMap;var c=Lc.length;if(Mc)for(var e=0;e<0+c;e++){var f=Lc.get(e);f&&Mc.set(f,e)}}if(c=Mc.get(a)||0)return c;if(Nc.length)c=Nc.pop();else{try{Lc.grow(1)}catch(n){if(!(n instanceof RangeError))throw n;throw"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH.";}c=Lc.length-1}try{Lc.set(c,a)}catch(n){if(!(n instanceof TypeError))throw n;if("function"==typeof WebAssembly.Function){e=WebAssembly.Function;f={i:"i32",j:"i64",f:"f32",d:"f64",e:"externref",p:"i32"};for(var h= -{parameters:[],results:"v"==b[0]?[]:[f[b[0]]]},k=1;kk?e.push(k):e.push(k%128|128,k>>7);for(k=0;kf?b.push(f):b.push(f%128|128,f>>7);b.push(...e);b.push(2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0);b=new WebAssembly.Module(new Uint8Array(b));b=(new WebAssembly.Instance(b, -{e:{f:a}})).exports.f}Lc.set(c,b)}Mc.set(a,c);return c};d.setValue=I;d.getValue=H;d.UTF8ToString=(a,b)=>a?J(v,a,b):"";d.stringToUTF8=(a,b,c)=>K(a,v,b,c);d.lengthBytesUTF8=Ta;d.intArrayFromString=Ua;d.intArrayToString=function(a){for(var b=[],c=0;c{for(var b="";;){var c=v[a++];if(!c)return b;b+=String.fromCharCode(c)}}; -d.UTF16ToString=(a,b)=>{var c=a>>1;for(var e=c+b/2;!(c>=e)&&qa[c];)++c;c<<=1;if(32=b/2);++e){var f=w[a+2*e>>1];if(0==f)break;c+=String.fromCharCode(f)}return c};d.stringToUTF16=(a,b,c)=>{c??=2147483647;if(2>c)return 0;c-=2;var e=b;c=c<2*a.length?c/2:a.length;for(var f=0;f>1]=a.charCodeAt(f),b+=2;w[b>>1]=0;return b-e}; -d.UTF32ToString=(a,b)=>{for(var c=0,e="";!(c>=b/4);){var f=x[a+4*c>>2];if(0==f)break;++c;65536<=f?(f-=65536,e+=String.fromCharCode(55296|f>>10,56320|f&1023)):e+=String.fromCharCode(f)}return e};d.stringToUTF32=(a,b,c)=>{c??=2147483647;if(4>c)return 0;var e=b;c=e+c-4;for(var f=0;f=h){var k=a.charCodeAt(++f);h=65536+((h&1023)<<10)|k&1023}x[b>>2]=h;b+=4;if(b+4>c)break}x[b>>2]=0;return b-e};d.writeArrayToMemory=(a,b)=>{u.set(a,b)};var Wc; -Aa=function Xc(){Wc||Yc();Wc||(Aa=Xc)}; -function Yc(){function a(){if(!Wc&&(Wc=!0,d.calledRun=!0,!oa)){if(!d.noFSInit&&!kb){var b,c;kb=!0;e??=d.stdin;b??=d.stdout;c??=d.stderr;e?V("stdin",e):Cb("/dev/tty","/dev/stdin");b?V("stdout",null,b):Cb("/dev/tty","/dev/stdout");c?V("stderr",null,c):Cb("/dev/tty1","/dev/stderr");Ib("/dev/stdin",0);Ib("/dev/stdout",1);Ib("/dev/stderr",1)}lb=!1;Ia(va);Ia(wa);aa(d);d.onRuntimeInitialized?.();if(Zc){var e=Uc;try{var f=e(0,0);pa=f;Ub(f)}catch(h){Tb(h)}}if(d.postRun)for("function"==typeof d.postRun&&(d.postRun= -[d.postRun]);d.postRun.length;)f=d.postRun.shift(),xa.unshift(f);Ia(xa)}}if(!(0{setTimeout(()=>d.setStatus(""),1);a()},1)):a())}}if(d.preInit)for("function"==typeof d.preInit&&(d.preInit=[d.preInit]);0{throw c;},ha="object"==typeof window,ia="function"==typeof importScripts,m="",ja; +if(ha||ia)ia?m=self.location.href:"undefined"!=typeof document&&document.currentScript&&(m=document.currentScript.src),_scriptDir&&(m=_scriptDir),0!==m.indexOf("blob:")?m=m.substr(0,m.replace(/[?#].*/,"").lastIndexOf("/")+1):m="",ia&&(ja=b=>{var c=new XMLHttpRequest;c.open("GET",b,!1);c.responseType="arraybuffer";c.send(null);return new Uint8Array(c.response)});var ka=a.print||console.log.bind(console),t=a.printErr||console.warn.bind(console);Object.assign(a,ca);ca=null;a.thisProgram&&(da=a.thisProgram); +a.quit&&(fa=a.quit);var la;a.wasmBinary&&(la=a.wasmBinary);var noExitRuntime=a.noExitRuntime||!0;"object"!=typeof WebAssembly&&u("no native wasm support detected");var ma,na=!1,oa="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0; +function pa(b,c,d){var e=c+d;for(d=c;b[d]&&!(d>=e);)++d;if(16f?e+=String.fromCharCode(f):(f-=65536,e+=String.fromCharCode(55296|f>>10,56320|f&1023))}}else e+=String.fromCharCode(f)}return e}function v(b,c){return b?pa(x,b,c):""} +function qa(b,c,d,e){if(!(0=h){var p=b.charCodeAt(++g);h=65536+((h&1023)<<10)|p&1023}if(127>=h){if(d>=e)break;c[d++]=h}else{if(2047>=h){if(d+1>=e)break;c[d++]=192|h>>6}else{if(65535>=h){if(d+2>=e)break;c[d++]=224|h>>12}else{if(d+3>=e)break;c[d++]=240|h>>18;c[d++]=128|h>>12&63}c[d++]=128|h>>6&63}c[d++]=128|h&63}}c[d]=0;return d-f}function ra(b,c,d){return qa(b,x,c,d)} +function sa(b){for(var c=0,d=0;d=e?c++:2047>=e?c+=2:55296<=e&&57343>=e?(c+=4,++d):c+=3}return c}var y,x,A,ta,B,C,ua,va;function wa(){var b=ma.buffer;a.HEAP8=y=new Int8Array(b);a.HEAP16=A=new Int16Array(b);a.HEAP32=B=new Int32Array(b);a.HEAPU8=x=new Uint8Array(b);a.HEAPU16=ta=new Uint16Array(b);a.HEAPU32=C=new Uint32Array(b);a.HEAPF32=ua=new Float32Array(b);a.HEAPF64=va=new Float64Array(b)}var E,xa=[],ya=[],za=[],Aa=[]; +function Ba(){var b=a.preRun.shift();xa.unshift(b)}var F=0,Ca=null,Da=null;function u(b){if(a.onAbort)a.onAbort(b);b="Aborted("+b+")";t(b);na=!0;b=new WebAssembly.RuntimeError(b+". Build with -sASSERTIONS for more info.");ba(b);throw b;}function Ea(){return I.startsWith("data:application/octet-stream;base64,")}var I;if(a.locateFile){if(I="wa-sqlite.wasm",!Ea()){var Fa=I;I=a.locateFile?a.locateFile(Fa,m):m+Fa}}else I=(new URL("wa-sqlite.wasm",import.meta.url)).href; +function Ga(){var b=I;try{if(b==I&&la)return new Uint8Array(la);if(ja)return ja(b);throw"both async and sync fetching of the wasm failed";}catch(c){u(c)}}function Ha(){return la||!ha&&!ia||"function"!=typeof fetch?Promise.resolve().then(function(){return Ga()}):fetch(I,{credentials:"same-origin"}).then(function(b){if(!b.ok)throw"failed to load wasm binary file at '"+I+"'";return b.arrayBuffer()}).catch(function(){return Ga()})}var K,L; +function Ia(b){this.name="ExitStatus";this.message="Program terminated with exit("+b+")";this.status=b}function Ja(b){for(;0>0];case "i8":return y[b>>0];case "i16":return A[b>>1];case "i32":return B[b>>2];case "i64":return B[b>>2];case "float":return ua[b>>2];case "double":return va[b>>3];case "*":return C[b>>2];default:u("invalid type for getValue: "+c)}return null} +function N(b,c,d="i8"){d.endsWith("*")&&(d="*");switch(d){case "i1":y[b>>0]=c;break;case "i8":y[b>>0]=c;break;case "i16":A[b>>1]=c;break;case "i32":B[b>>2]=c;break;case "i64":L=[c>>>0,(K=c,1<=+Math.abs(K)?0>>0:~~+Math.ceil((K-+(~~K>>>0))/4294967296)>>>0:0)];B[b>>2]=L[0];B[b+4>>2]=L[1];break;case "float":ua[b>>2]=c;break;case "double":va[b>>3]=c;break;case "*":C[b>>2]=c;break;default:u("invalid type for setValue: "+d)}} +var Ka=(b,c)=>{for(var d=0,e=b.length-1;0<=e;e--){var f=b[e];"."===f?b.splice(e,1):".."===f?(b.splice(e,1),d++):d&&(b.splice(e,1),d--)}if(c)for(;d;d--)b.unshift("..");return b},O=b=>{var c="/"===b.charAt(0),d="/"===b.substr(-1);(b=Ka(b.split("/").filter(e=>!!e),!c).join("/"))||c||(b=".");b&&d&&(b+="/");return(c?"/":"")+b},La=b=>{var c=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(b).slice(1);b=c[0];c=c[1];if(!b&&!c)return".";c&&(c=c.substr(0,c.length-1));return b+c},Ma=b=>{if("/"=== +b)return"/";b=O(b);b=b.replace(/\/$/,"");var c=b.lastIndexOf("/");return-1===c?b:b.substr(c+1)};function Na(){if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues){var b=new Uint8Array(1);return()=>{crypto.getRandomValues(b);return b[0]}}return()=>u("randomDevice")} +function Oa(){for(var b="",c=!1,d=arguments.length-1;-1<=d&&!c;d--){c=0<=d?arguments[d]:"/";if("string"!=typeof c)throw new TypeError("Arguments to path.resolve must be strings");if(!c)return"";b=c+"/"+b;c="/"===c.charAt(0)}b=Ka(b.split("/").filter(e=>!!e),!c).join("/");return(c?"/":"")+b||"."}function Pa(b,c,d){d=Array(0=c||(c=Math.max(c,d*(1048576>d?2:1.125)>>>0),0!=d&&(c=Math.max(c,256)),d=b.Jf,b.Jf=new Uint8Array(c),0=b.node.Lf)return 0;b=Math.min(b.node.Lf-f,e);if(8c)throw new P(28);return c},pg:function(b,c,d){Q.rg(b.node,c+d);b.node.Lf=Math.max(b.node.Lf,c+d)},fg:function(b,c,d,e,f){if(32768!==(b.node.mode&61440))throw new P(43); +b=b.node.Jf;if(f&2||b.buffer!==y.buffer){if(0{b=Oa(b);if(!b)return{path:"",node:null};c=Object.assign({sg:!0,ng:0},c);if(8!!h);for(var d=$a,e="/",f=0;f{for(var c;;){if(b===b.parent)return b=b.Rf.vg,c?"/"!==b[b.length-1]?b+"/"+c:b+c:b;c=c?b.name+"/"+c:b.name;b=b.parent}},fb=(b,c)=>{for(var d=0,e=0;e>>0)%T.length},gb=b=>{var c=fb(b.parent.id,b.name);if(T[c]===b)T[c]=b.Yf;else for(c=T[c];c;){if(c.Yf===b){c.Yf=b.Yf;break}c=c.Yf}},R=(b,c)=>{var d;if(d=(d=hb(b,"x"))?d:b.Hf.$f?0:2)throw new P(d,b);for(d=T[fb(b.id,c)];d;d=d.Yf){var e=d.name;if(d.parent.id===b.id&&e===c)return d}return b.Hf.$f(b,c)},Xa=(b,c,d,e)=>{b=new ib(b,c,d,e);c=fb(b.parent.id,b.name);b.Yf=T[c];return T[c]=b},jb={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},kb=b=>{var c=["r","w","rw"][b&3];b&512&&(c+="w");return c}, +hb=(b,c)=>{if(cb)return 0;if(!c.includes("r")||b.mode&292){if(c.includes("w")&&!(b.mode&146)||c.includes("x")&&!(b.mode&73))return 2}else return 2;return 0},lb=(b,c)=>{try{return R(b,c),20}catch(d){}return hb(b,"wx")},mb=(b,c,d)=>{try{var e=R(b,c)}catch(f){return f.Kf}if(b=hb(b,"wx"))return b;if(d){if(16384!==(e.mode&61440))return 54;if(e===e.parent||"/"===eb(e))return 10}else if(16384===(e.mode&61440))return 31;return 0},nb=(b=0)=>{for(;4096>=b;b++)if(!S[b])return b;throw new P(33);},pb=(b,c)=>{ob|| +(ob=function(){this.dg={}},ob.prototype={},Object.defineProperties(ob.prototype,{object:{get:function(){return this.node},set:function(d){this.node=d}},flags:{get:function(){return this.dg.flags},set:function(d){this.dg.flags=d}},position:{get:function(){return this.dg.position},set:function(d){this.dg.position=d}}}));b=Object.assign(new ob,b);c=nb(c);b.Sf=c;return S[c]=b},Wa={open:b=>{b.If=ab[b.node.bg].If;b.If.open&&b.If.open(b)},Vf:()=>{throw new P(70);}},Sa=(b,c)=>{ab[b]={If:c}},qb=(b,c)=>{var d= +"/"===c,e=!c;if(d&&$a)throw new P(10);if(!d&&!e){var f=V(c,{sg:!1});c=f.path;f=f.node;if(f.Xf)throw new P(10);if(16384!==(f.mode&61440))throw new P(54);}c={type:b,Pg:{},vg:c,Hg:[]};b=b.Rf(c);b.Rf=c;c.root=b;d?$a=b:f&&(f.Xf=c,f.Rf&&f.Rf.Hg.push(c))},rb=(b,c,d)=>{var e=V(b,{parent:!0}).node;b=Ma(b);if(!b||"."===b||".."===b)throw new P(28);var f=lb(e,b);if(f)throw new P(f);if(!e.Hf.eg)throw new P(63);return e.Hf.eg(e,b,c,d)},W=(b,c)=>rb(b,(void 0!==c?c:511)&1023|16384,0),sb=(b,c,d)=>{"undefined"==typeof d&& +(d=c,c=438);rb(b,c|8192,d)},tb=(b,c)=>{if(!Oa(b))throw new P(44);var d=V(c,{parent:!0}).node;if(!d)throw new P(44);c=Ma(c);var e=lb(d,c);if(e)throw new P(e);if(!d.Hf.ig)throw new P(63);d.Hf.ig(d,c,b)},ub=b=>{var c=V(b,{parent:!0}).node;b=Ma(b);var d=R(c,b),e=mb(c,b,!0);if(e)throw new P(e);if(!c.Hf.hg)throw new P(63);if(d.Xf)throw new P(10);c.Hf.hg(c,b);gb(d)},db=b=>{b=V(b).node;if(!b)throw new P(44);if(!b.Hf.cg)throw new P(28);return Oa(eb(b.parent),b.Hf.cg(b))},vb=(b,c)=>{b=V(b,{Uf:!c}).node;if(!b)throw new P(44); +if(!b.Hf.Pf)throw new P(63);return b.Hf.Pf(b)},wb=b=>vb(b,!0),xb=(b,c)=>{b="string"==typeof b?V(b,{Uf:!0}).node:b;if(!b.Hf.Mf)throw new P(63);b.Hf.Mf(b,{mode:c&4095|b.mode&-4096,timestamp:Date.now()})},yb=(b,c)=>{if(0>c)throw new P(28);b="string"==typeof b?V(b,{Uf:!0}).node:b;if(!b.Hf.Mf)throw new P(63);if(16384===(b.mode&61440))throw new P(31);if(32768!==(b.mode&61440))throw new P(28);var d=hb(b,"w");if(d)throw new P(d);b.Hf.Mf(b,{size:c,timestamp:Date.now()})},Ab=(b,c,d)=>{if(""===b)throw new P(44); +if("string"==typeof c){var e=jb[c];if("undefined"==typeof e)throw Error("Unknown file open mode: "+c);c=e}d=c&64?("undefined"==typeof d?438:d)&4095|32768:0;if("object"==typeof b)var f=b;else{b=O(b);try{f=V(b,{Uf:!(c&131072)}).node}catch(g){}}e=!1;if(c&64)if(f){if(c&128)throw new P(20);}else f=rb(b,d,0),e=!0;if(!f)throw new P(44);8192===(f.mode&61440)&&(c&=-513);if(c&65536&&16384!==(f.mode&61440))throw new P(54);if(!e&&(d=f?40960===(f.mode&61440)?32:16384===(f.mode&61440)&&("r"!==kb(c)||c&512)?31: +hb(f,kb(c)):44))throw new P(d);c&512&&!e&&yb(f,0);c&=-131713;f=pb({node:f,path:eb(f),flags:c,seekable:!0,position:0,If:f.If,Ng:[],error:!1});f.If.open&&f.If.open(f);!a.logReadFiles||c&1||(zb||(zb={}),b in zb||(zb[b]=1));return f},Bb=(b,c,d)=>{if(null===b.Sf)throw new P(8);if(!b.seekable||!b.If.Vf)throw new P(70);if(0!=d&&1!=d&&2!=d)throw new P(28);b.position=b.If.Vf(b,c,d);b.Ng=[]},Cb=()=>{P||(P=function(b,c){this.node=c;this.Mg=function(d){this.Kf=d};this.Mg(b);this.message="FS error"},P.prototype= +Error(),P.prototype.constructor=P,[44].forEach(b=>{Ya[b]=new P(b);Ya[b].stack=""}))},Db,Eb=(b,c)=>{var d=0;b&&(d|=365);c&&(d|=146);return d},Gb=(b,c,d)=>{b=O("/dev/"+b);var e=Eb(!!c,!!d);Fb||(Fb=64);var f=Fb++<<8|0;Sa(f,{open:g=>{g.seekable=!1},close:()=>{d&&d.buffer&&d.buffer.length&&d(10)},read:(g,h,p,l)=>{for(var k=0,n=0;n{for(var k=0;k>2]=e.Eg;B[d+8>>2]=e.lg;B[d+12>>2]=e.mode;C[d+16>>2]=e.Jg;B[d+20>>2]=e.uid;B[d+24>>2]=e.Gg;B[d+28>>2]=e.bg;L=[e.size>>>0,(K=e.size,1<=+Math.abs(K)?0>>0:~~+Math.ceil((K-+(~~K>>>0))/4294967296)>>>0:0)];B[d+40>>2]=L[0];B[d+44>>2]=L[1];B[d+48>>2]=4096;B[d+52>>2]=e.Cg;b=e.Ag.getTime();c=e.Ig.getTime();var f=e.Dg.getTime();L=[Math.floor(b/1E3)>>>0,(K= +Math.floor(b/1E3),1<=+Math.abs(K)?0>>0:~~+Math.ceil((K-+(~~K>>>0))/4294967296)>>>0:0)];B[d+56>>2]=L[0];B[d+60>>2]=L[1];C[d+64>>2]=b%1E3*1E3;L=[Math.floor(c/1E3)>>>0,(K=Math.floor(c/1E3),1<=+Math.abs(K)?0>>0:~~+Math.ceil((K-+(~~K>>>0))/4294967296)>>>0:0)];B[d+72>>2]=L[0];B[d+76>>2]=L[1];C[d+80>>2]=c%1E3*1E3;L=[Math.floor(f/1E3)>>>0,(K=Math.floor(f/1E3),1<=+Math.abs(K)?0>>0:~~+Math.ceil((K-+(~~K>>>0))/4294967296)>>>0:0)];B[d+88>>2]=L[0];B[d+92>>2]=L[1];C[d+96>>2]=f%1E3*1E3;L=[e.lg>>>0,(K=e.lg,1<=+Math.abs(K)?0>>0:~~+Math.ceil((K-+(~~K>>>0))/4294967296)>>>0:0)];B[d+104>>2]=L[0];B[d+108>>2]=L[1];return 0}var Jb=void 0;function Kb(){Jb+=4;return B[Jb-4>>2]}function Y(b){b=S[b];if(!b)throw new P(8);return b}function Lb(b){return C[b>>2]+4294967296*B[b+4>>2]} +var Mb=[0,31,60,91,121,152,182,213,244,274,305,335],Nb=[0,31,59,90,120,151,181,212,243,273,304,334];function Ob(b){var c=sa(b)+1,d=Pb(c);d&&qa(b,y,d,c);return d}var Qb={}; +function Rb(){if(!Sb){var b={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:da||"./this.program"},c;for(c in Qb)void 0===Qb[c]?delete b[c]:b[c]=Qb[c];var d=[];for(c in b)d.push(c+"="+b[c]);Sb=d}return Sb}var Sb;function Tb(b,c){Tb.wg||(Tb.wg=Na());for(var d=0;d>0]=Tb.wg();return 0}function Ub(){}function Vb(){}function Wb(){}function Xb(){} +function Yb(){}function Zb(){}function $b(){}function ac(){}function bc(){}function cc(){}function dc(){}function ec(){}function fc(){}function gc(){}function hc(){}function ic(){}function jc(){}function kc(){}function lc(){}function mc(){}function nc(){}function oc(){}function pc(){}function qc(){}function rc(){}function sc(){}function tc(){}function uc(){}function vc(){}function wc(){}function xc(){}function yc(){}function zc(){}function Ac(){}function Bc(){}function Cc(){}function Dc(){} +function Ec(){}function Fc(){}var Gc=void 0,Hc=[];function Ic(b,c){y.set(b,c)}function Z(b,c,d,e){var f={string:k=>{var n=0;if(null!==k&&void 0!==k&&0!==k){var q=(k.length<<2)+1;n=Jc(q);ra(k,n,q)}return n},array:k=>{var n=Jc(k.length);Ic(k,n);return n}};b=a["_"+b];var g=[],h=0;if(e)for(var p=0;p{W("/dev");Sa(259,{read:()=>0,write:(c,d,e,f)=>f});sb("/dev/null",259);Ra(1280,Ua);Ra(1536,Va);sb("/dev/tty",1280);sb("/dev/tty1",1536);var b=Na();Gb("random",b);Gb("urandom",b);W("/dev/shm");W("/dev/shm/tmp")})();(()=>{W("/proc");var b=W("/proc/self");W("/proc/self/fd");qb({Rf:()=>{var c=Xa(b,"fd",16895,73);c.Hf={$f:(d,e)=>{var f=S[+e];if(!f)throw new P(8);d={parent:null,Rf:{vg:"fake"},Hf:{cg:()=>f.path}};return d.parent=d}};return c}},"/proc/self/fd")})(); +(function(){const b=new Map;a.setAuthorizer=function(c,d,e){d?b.set(c,{f:d,og:e}):b.delete(c);return Z("set_authorizer","number",["number"],[c])};Ub=function(c,d,e,f,g,h){if(b.has(c)){const {f:p,og:l}=b.get(c);return p(l,d,e?v(e):null,f?v(f):null,g?v(g):null,h?v(h):null)}return 0}})(); +(function(){const b=new Map,c=new Map;a.createFunction=function(d,e,f,g,h,p){const l=b.size;b.set(l,{f:p,Tf:h});return Z("create_function","number","number string number number number number".split(" "),[d,e,f,g,l,0])};a.createAggregate=function(d,e,f,g,h,p,l){const k=b.size;b.set(k,{step:p,Fg:l,Tf:h});return Z("create_function","number","number string number number number number".split(" "),[d,e,f,g,k,1])};a.getFunctionUserData=function(d){return c.get(d)};Wb=function(d,e,f,g){d=b.get(d);c.set(e, +d.Tf);d.f(e,new Uint32Array(x.buffer,g,f));c.delete(e)};Yb=function(d,e,f,g){d=b.get(d);c.set(e,d.Tf);d.step(e,new Uint32Array(x.buffer,g,f));c.delete(e)};Vb=function(d,e){d=b.get(d);c.set(e,d.Tf);d.Fg(e);c.delete(e)}})();(function(){const b=new Map;a.progressHandler=function(c,d,e,f){e?b.set(c,{f:e,og:f}):b.delete(c);return Z("progress_handler",null,["number","number"],[c,d])};Xb=function(c){if(b.has(c)){const {f:d,og:e}=b.get(c);return d(e)}return 0}})(); +(function(){function b(l,k){const n=`get${l}`,q=`set${l}`;return new Proxy(new DataView(x.buffer,k,"Int32"===l?4:8),{get(r,w){if(w===n)return function(z,G){if(!G)throw Error("must be little endian");return r[w](z,G)};if(w===q)return function(z,G,D){if(!D)throw Error("must be little endian");return r[w](z,G,D)};if("string"===typeof w&&w.match(/^(get)|(set)/))throw Error("invalid type");return r[w]}})}const c="object"===typeof Asyncify,d=new Map,e=new Map,f=new Map,g=c?new Set:null,h=c?new Set:null, +p=new Map;oc=function(l,k,n,q){p.set(v(l),{size:k,ag:Array.from(new Uint32Array(x.buffer,q,n))})};a.createModule=function(l,k,n,q){c&&(n.handleAsync=Asyncify.ug);const r=d.size;d.set(r,{module:n,Tf:q});q=0;n.xCreate&&(q|=1);n.xConnect&&(q|=2);n.xBestIndex&&(q|=4);n.xDisconnect&&(q|=8);n.xDestroy&&(q|=16);n.xOpen&&(q|=32);n.xClose&&(q|=64);n.xFilter&&(q|=128);n.xNext&&(q|=256);n.xEof&&(q|=512);n.xColumn&&(q|=1024);n.xRowid&&(q|=2048);n.xUpdate&&(q|=4096);n.xBegin&&(q|=8192);n.xSync&&(q|=16384);n.xCommit&& +(q|=32768);n.xRollback&&(q|=65536);n.xFindFunction&&(q|=131072);n.xRename&&(q|=262144);return Z("create_module","number",["number","string","number","number"],[l,k,r,q])};ec=function(l,k,n,q,r,w){k=d.get(k);e.set(r,k);if(c){g.delete(r);for(const z of g)e.delete(z)}q=Array.from(new Uint32Array(x.buffer,q,n)).map(z=>v(z));return k.module.xCreate(l,k.Tf,q,r,b("Int32",w))};dc=function(l,k,n,q,r,w){k=d.get(k);e.set(r,k);if(c){g.delete(r);for(const z of g)e.delete(z)}q=Array.from(new Uint32Array(x.buffer, +q,n)).map(z=>v(z));return k.module.xConnect(l,k.Tf,q,r,b("Int32",w))};$b=function(l,k){var n=e.get(l),q=p.get("sqlite3_index_info").ag;const r={};r.nConstraint=M(k+q[0],"i32");r.aConstraint=[];var w=M(k+q[1],"*"),z=p.get("sqlite3_index_constraint").size;for(var G=0;Gl?2**32:0))};Fc=function(g,h,p,l,k){return e.get(g).xWrite(g,x.subarray(h,h+p),4294967296*k+l+(0>l?2**32:0))};Dc=function(g,h,p){return e.get(g).xTruncate(g,4294967296*p+h+(0>h?2**32:0))};Cc=function(g,h){return e.get(g).xSync(g,h)};xc=function(g,h){const p=e.get(g);h=b("BigInt64",h);return p.xFileSize(g,h)};yc=function(g,h){return e.get(g).xLock(g,h)};Ec=function(g,h){return e.get(g).xUnlock(g,h)};sc=function(g,h){const p=e.get(g);h=b("Int32",h);return p.xCheckReservedLock(g,h)};wc=function(g, +h,p){const l=e.get(g);p=new DataView(x.buffer,p);return l.xFileControl(g,h,p)};Bc=function(g){return e.get(g).xSectorSize(g)};vc=function(g){return e.get(g).xDeviceCharacteristics(g)};zc=function(g,h,p,l,k){g=d.get(g);e.set(p,g);if(c){f.delete(p);for(var n of f)e.delete(n)}n=null;if(l&64){n=1;const q=[];for(;n;){const r=x[h++];if(r)q.push(r);else switch(x[h]||(n=null),n){case 1:q.push(63);n=2;break;case 2:q.push(61);n=3;break;case 3:q.push(38),n=2}}n=(new TextDecoder).decode(new Uint8Array(q))}else h&& +(n=v(h));k=b("Int32",k);return g.xOpen(n,p,l,k)};uc=function(g,h,p){return d.get(g).xDelete(v(h),p)};rc=function(g,h,p,l){g=d.get(g);l=b("Int32",l);return g.xAccess(v(h),p,l)}})(); +var Oc={a:function(b,c,d,e){u("Assertion failed: "+v(b)+", at: "+[c?v(c):"unknown filename",d,e?v(e):"unknown function"])},L:function(b,c){try{return b=v(b),xb(b,c),0}catch(d){if("undefined"==typeof X||!(d instanceof P))throw d;return-d.Kf}},Q:function(b,c,d){try{c=v(c);c=Hb(b,c);if(d&-8)return-28;var e=V(c,{Uf:!0}).node;if(!e)return-44;b="";d&4&&(b+="r");d&2&&(b+="w");d&1&&(b+="x");return b&&hb(e,b)?-2:0}catch(f){if("undefined"==typeof X||!(f instanceof P))throw f;return-f.Kf}},M:function(b,c){try{var d= +S[b];if(!d)throw new P(8);xb(d.node,c);return 0}catch(e){if("undefined"==typeof X||!(e instanceof P))throw e;return-e.Kf}},K:function(b){try{var c=S[b];if(!c)throw new P(8);var d=c.node;var e="string"==typeof d?V(d,{Uf:!0}).node:d;if(!e.Hf.Mf)throw new P(63);e.Hf.Mf(e,{timestamp:Date.now()});return 0}catch(f){if("undefined"==typeof X||!(f instanceof P))throw f;return-f.Kf}},b:function(b,c,d){Jb=d;try{var e=Y(b);switch(c){case 0:var f=Kb();return 0>f?-28:pb(e,f).Sf;case 1:case 2:return 0;case 3:return e.flags; +case 4:return f=Kb(),e.flags|=f,0;case 5:return f=Kb(),A[f+0>>1]=2,0;case 6:case 7:return 0;case 16:case 8:return-28;case 9:return B[Nc()>>2]=28,-1;default:return-28}}catch(g){if("undefined"==typeof X||!(g instanceof P))throw g;return-g.Kf}},J:function(b,c){try{var d=Y(b);return Ib(vb,d.path,c)}catch(e){if("undefined"==typeof X||!(e instanceof P))throw e;return-e.Kf}},j:function(b,c,d){try{c=d+2097152>>>0<4194305-!!c?(c>>>0)+4294967296*d:NaN;if(isNaN(c))return-61;var e=S[b];if(!e)throw new P(8);if(0=== +(e.flags&2097155))throw new P(28);yb(e.node,c);return 0}catch(f){if("undefined"==typeof X||!(f instanceof P))throw f;return-f.Kf}},D:function(b,c){try{if(0===c)return-28;var d=sa("/")+1;if(c=e)return-28;var f=db(c),g=Math.min(e,sa(f)), +h=y[d+g];ra(f,d,e+1);y[d+g]=h;return g}catch(p){if("undefined"==typeof X||!(p instanceof P))throw p;return-p.Kf}},t:function(b){try{return b=v(b),ub(b),0}catch(c){if("undefined"==typeof X||!(c instanceof P))throw c;return-c.Kf}},H:function(b,c){try{return b=v(b),Ib(vb,b,c)}catch(d){if("undefined"==typeof X||!(d instanceof P))throw d;return-d.Kf}},r:function(b,c,d){try{c=v(c);c=Hb(b,c);if(0===d){b=c;var e=V(b,{parent:!0}).node;if(!e)throw new P(44);var f=Ma(b),g=R(e,f),h=mb(e,f,!1);if(h)throw new P(h); +if(!e.Hf.jg)throw new P(63);if(g.Xf)throw new P(10);e.Hf.jg(e,f);gb(g)}else 512===d?ub(c):u("Invalid flags passed to unlinkat");return 0}catch(p){if("undefined"==typeof X||!(p instanceof P))throw p;return-p.Kf}},q:function(b,c,d){try{c=v(c);c=Hb(b,c,!0);if(d){var e=Lb(d),f=B[d+8>>2];g=1E3*e+f/1E6;d+=16;e=Lb(d);f=B[d+8>>2];h=1E3*e+f/1E6}else var g=Date.now(),h=g;b=g;var p=V(c,{Uf:!0}).node;p.Hf.Mf(p,{timestamp:Math.max(b,h)});return 0}catch(l){if("undefined"==typeof X||!(l instanceof P))throw l;return-l.Kf}}, +N:function(b,c){b=new Date(1E3*Lb(b));B[c>>2]=b.getSeconds();B[c+4>>2]=b.getMinutes();B[c+8>>2]=b.getHours();B[c+12>>2]=b.getDate();B[c+16>>2]=b.getMonth();B[c+20>>2]=b.getFullYear()-1900;B[c+24>>2]=b.getDay();var d=b.getFullYear();B[c+28>>2]=(0!==d%4||0===d%100&&0!==d%400?Nb:Mb)[b.getMonth()]+b.getDate()-1|0;B[c+36>>2]=-(60*b.getTimezoneOffset());d=(new Date(b.getFullYear(),6,1)).getTimezoneOffset();var e=(new Date(b.getFullYear(),0,1)).getTimezoneOffset();B[c+32>>2]=(d!=e&&b.getTimezoneOffset()== +Math.min(e,d))|0},y:function(b,c,d,e,f,g,h){try{var p=Y(e);if(0!==(c&2)&&0===(d&2)&&2!==(p.flags&2097155))throw new P(2);if(1===(p.flags&2097155))throw new P(2);if(!p.If.fg)throw new P(43);var l=p.If.fg(p,b,f,c,d);var k=l.Kg;B[g>>2]=l.zg;C[h>>2]=k;return 0}catch(n){if("undefined"==typeof X||!(n instanceof P))throw n;return-n.Kf}},z:function(b,c,d,e,f,g){try{var h=Y(f);if(d&2){if(32768!==(h.node.mode&61440))throw new P(43);e&2||h.If.gg&&h.If.gg(h,x.slice(b,b+c),g,c,e)}}catch(p){if("undefined"==typeof X|| +!(p instanceof P))throw p;return-p.Kf}},O:function(b,c,d){function e(l){return(l=l.toTimeString().match(/\(([A-Za-z ]+)\)$/))?l[1]:"GMT"}var f=(new Date).getFullYear(),g=new Date(f,0,1),h=new Date(f,6,1);f=g.getTimezoneOffset();var p=h.getTimezoneOffset();C[b>>2]=60*Math.max(f,p);B[c>>2]=Number(f!=p);b=e(g);c=e(h);b=Ob(b);c=Ob(c);p>2]=b,C[d+4>>2]=c):(C[d>>2]=c,C[d+4>>2]=b)},ta:function(){u("")},e:function(){return Date.now()},d:()=>performance.now(),o:function(b){var c=x.length;b>>>=0;if(2147483648< +b)return!1;for(var d=1;4>=d;d*=2){var e=c*(1+.2/d);e=Math.min(e,b+100663296);var f=Math,g=f.min;e=Math.max(b,e);e+=(65536-e%65536)%65536;a:{var h=ma.buffer;try{ma.grow(g.call(f,2147483648,e)-h.byteLength+65535>>>16);wa();var p=1;break a}catch(l){}p=void 0}if(p)return!0}return!1},B:function(b,c){var d=0;Rb().forEach(function(e,f){var g=c+d;f=C[b+4*f>>2]=g;for(g=0;g>0]=e.charCodeAt(g);y[f>>0]=0;d+=e.length+1});return 0},C:function(b,c){var d=Rb();C[b>>2]=d.length;var e=0;d.forEach(function(f){e+= +f.length+1});C[c>>2]=e;return 0},f:function(b){try{var c=Y(b);if(null===c.Sf)throw new P(8);c.kg&&(c.kg=null);try{c.If.close&&c.If.close(c)}catch(d){throw d;}finally{S[c.Sf]=null}c.Sf=null;return 0}catch(d){if("undefined"==typeof X||!(d instanceof P))throw d;return d.Kf}},p:function(b,c){try{var d=Y(b);y[c>>0]=d.Of?2:16384===(d.mode&61440)?3:40960===(d.mode&61440)?7:4;return 0}catch(e){if("undefined"==typeof X||!(e instanceof P))throw e;return e.Kf}},v:function(b,c,d,e){try{a:{var f=Y(b);b=c;for(var g, +h=c=0;h>2],l=C[b+4>>2];b+=8;var k=f,n=p,q=l,r=g,w=y;if(0>q||0>r)throw new P(28);if(null===k.Sf)throw new P(8);if(1===(k.flags&2097155))throw new P(8);if(16384===(k.node.mode&61440))throw new P(31);if(!k.If.read)throw new P(28);var z="undefined"!=typeof r;if(!z)r=k.position;else if(!k.seekable)throw new P(70);var G=k.If.read(k,w,n,q,r);z||(k.position+=G);var D=G;if(0>D){var J=-1;break a}c+=D;if(D>2]=J;return 0}catch(H){if("undefined"== +typeof X||!(H instanceof P))throw H;return H.Kf}},i:function(b,c,d,e,f){try{c=d+2097152>>>0<4194305-!!c?(c>>>0)+4294967296*d:NaN;if(isNaN(c))return 61;var g=Y(b);Bb(g,c,e);L=[g.position>>>0,(K=g.position,1<=+Math.abs(K)?0>>0:~~+Math.ceil((K-+(~~K>>>0))/4294967296)>>>0:0)];B[f>>2]=L[0];B[f+4>>2]=L[1];g.kg&&0===c&&0===e&&(g.kg=null);return 0}catch(h){if("undefined"==typeof X||!(h instanceof P))throw h;return h.Kf}},E:function(b){try{var c=Y(b);return c.If&& +c.If.Wf?c.If.Wf(c):0}catch(d){if("undefined"==typeof X||!(d instanceof P))throw d;return d.Kf}},s:function(b,c,d,e){try{a:{var f=Y(b);b=c;for(var g,h=c=0;h>2],l=C[b+4>>2];b+=8;var k=f,n=p,q=l,r=g,w=y;if(0>q||0>r)throw new P(28);if(null===k.Sf)throw new P(8);if(0===(k.flags&2097155))throw new P(8);if(16384===(k.node.mode&61440))throw new P(31);if(!k.If.write)throw new P(28);k.seekable&&k.flags&1024&&Bb(k,0,2);var z="undefined"!=typeof r;if(!z)r=k.position;else if(!k.seekable)throw new P(70); +var G=k.If.write(k,w,n,q,r,void 0);z||(k.position+=G);var D=G;if(0>D){var J=-1;break a}c+=D;"undefined"!==typeof g&&(g+=D)}J=c}C[e>>2]=J;return 0}catch(H){if("undefined"==typeof X||!(H instanceof P))throw H;return H.Kf}},sa:Tb,_:Ub,x:Vb,P:Wb,ca:Xb,I:Yb,ka:Zb,m:$b,ra:ac,na:bc,ia:cc,ea:dc,fa:ec,g:fc,h:gc,oa:hc,qa:ic,pa:jc,da:kc,ga:lc,ha:mc,ma:nc,c:oc,ja:pc,la:qc,aa:rc,V:sc,$:tc,ba:uc,S:vc,U:wc,Y:xc,X:yc,R:zc,n:Ac,T:Bc,Z:Cc,k:Dc,W:Ec,l:Fc}; +(function(){function b(f){a.asm=f.exports;ma=a.asm.ua;wa();E=a.asm.Cf;ya.unshift(a.asm.va);F--;a.monitorRunDependencies&&a.monitorRunDependencies(F);0==F&&(null!==Ca&&(clearInterval(Ca),Ca=null),Da&&(f=Da,Da=null,f()))}function c(f){b(f.instance)}function d(f){return Ha().then(function(g){return WebAssembly.instantiate(g,e)}).then(function(g){return g}).then(f,function(g){t("failed to asynchronously prepare wasm: "+g);u(g)})}var e={a:Oc};F++;a.monitorRunDependencies&&a.monitorRunDependencies(F);if(a.instantiateWasm)try{return a.instantiateWasm(e, +b)}catch(f){t("Module.instantiateWasm callback failed with error: "+f),ba(f)}(function(){return la||"function"!=typeof WebAssembly.instantiateStreaming||Ea()||"function"!=typeof fetch?d(c):fetch(I,{credentials:"same-origin"}).then(function(f){return WebAssembly.instantiateStreaming(f,e).then(c,function(g){t("wasm streaming compile failed: "+g);t("falling back to ArrayBuffer instantiation");return d(c)})})})().catch(ba);return{}})(); +a.___wasm_call_ctors=function(){return(a.___wasm_call_ctors=a.asm.va).apply(null,arguments)};a._sqlite3_status64=function(){return(a._sqlite3_status64=a.asm.wa).apply(null,arguments)};a._sqlite3_status=function(){return(a._sqlite3_status=a.asm.xa).apply(null,arguments)};a._sqlite3_db_status=function(){return(a._sqlite3_db_status=a.asm.ya).apply(null,arguments)};a._sqlite3_msize=function(){return(a._sqlite3_msize=a.asm.za).apply(null,arguments)}; +a._sqlite3_vfs_find=function(){return(a._sqlite3_vfs_find=a.asm.Aa).apply(null,arguments)};a._sqlite3_vfs_register=function(){return(a._sqlite3_vfs_register=a.asm.Ba).apply(null,arguments)};a._sqlite3_vfs_unregister=function(){return(a._sqlite3_vfs_unregister=a.asm.Ca).apply(null,arguments)};a._sqlite3_release_memory=function(){return(a._sqlite3_release_memory=a.asm.Da).apply(null,arguments)};a._sqlite3_soft_heap_limit64=function(){return(a._sqlite3_soft_heap_limit64=a.asm.Ea).apply(null,arguments)}; +a._sqlite3_memory_used=function(){return(a._sqlite3_memory_used=a.asm.Fa).apply(null,arguments)};a._sqlite3_hard_heap_limit64=function(){return(a._sqlite3_hard_heap_limit64=a.asm.Ga).apply(null,arguments)};a._sqlite3_memory_highwater=function(){return(a._sqlite3_memory_highwater=a.asm.Ha).apply(null,arguments)};a._sqlite3_malloc=function(){return(a._sqlite3_malloc=a.asm.Ia).apply(null,arguments)};a._sqlite3_malloc64=function(){return(a._sqlite3_malloc64=a.asm.Ja).apply(null,arguments)}; +a._sqlite3_free=function(){return(a._sqlite3_free=a.asm.Ka).apply(null,arguments)};a._sqlite3_realloc=function(){return(a._sqlite3_realloc=a.asm.La).apply(null,arguments)};a._sqlite3_realloc64=function(){return(a._sqlite3_realloc64=a.asm.Ma).apply(null,arguments)};a._sqlite3_str_vappendf=function(){return(a._sqlite3_str_vappendf=a.asm.Na).apply(null,arguments)};a._sqlite3_str_append=function(){return(a._sqlite3_str_append=a.asm.Oa).apply(null,arguments)}; +a._sqlite3_str_appendchar=function(){return(a._sqlite3_str_appendchar=a.asm.Pa).apply(null,arguments)};a._sqlite3_str_appendall=function(){return(a._sqlite3_str_appendall=a.asm.Qa).apply(null,arguments)};a._sqlite3_str_appendf=function(){return(a._sqlite3_str_appendf=a.asm.Ra).apply(null,arguments)};a._sqlite3_str_finish=function(){return(a._sqlite3_str_finish=a.asm.Sa).apply(null,arguments)};a._sqlite3_str_errcode=function(){return(a._sqlite3_str_errcode=a.asm.Ta).apply(null,arguments)}; +a._sqlite3_str_length=function(){return(a._sqlite3_str_length=a.asm.Ua).apply(null,arguments)};a._sqlite3_str_value=function(){return(a._sqlite3_str_value=a.asm.Va).apply(null,arguments)};a._sqlite3_str_reset=function(){return(a._sqlite3_str_reset=a.asm.Wa).apply(null,arguments)};a._sqlite3_str_new=function(){return(a._sqlite3_str_new=a.asm.Xa).apply(null,arguments)};a._sqlite3_vmprintf=function(){return(a._sqlite3_vmprintf=a.asm.Ya).apply(null,arguments)}; +a._sqlite3_mprintf=function(){return(a._sqlite3_mprintf=a.asm.Za).apply(null,arguments)};a._sqlite3_vsnprintf=function(){return(a._sqlite3_vsnprintf=a.asm._a).apply(null,arguments)};a._sqlite3_snprintf=function(){return(a._sqlite3_snprintf=a.asm.$a).apply(null,arguments)};a._sqlite3_log=function(){return(a._sqlite3_log=a.asm.ab).apply(null,arguments)};a._sqlite3_randomness=function(){return(a._sqlite3_randomness=a.asm.bb).apply(null,arguments)}; +a._sqlite3_stricmp=function(){return(a._sqlite3_stricmp=a.asm.cb).apply(null,arguments)};a._sqlite3_strnicmp=function(){return(a._sqlite3_strnicmp=a.asm.db).apply(null,arguments)};a._sqlite3_os_init=function(){return(a._sqlite3_os_init=a.asm.eb).apply(null,arguments)};a._sqlite3_os_end=function(){return(a._sqlite3_os_end=a.asm.fb).apply(null,arguments)};a._sqlite3_serialize=function(){return(a._sqlite3_serialize=a.asm.gb).apply(null,arguments)}; +a._sqlite3_prepare_v2=function(){return(a._sqlite3_prepare_v2=a.asm.hb).apply(null,arguments)};a._sqlite3_step=function(){return(a._sqlite3_step=a.asm.ib).apply(null,arguments)};a._sqlite3_column_int64=function(){return(a._sqlite3_column_int64=a.asm.jb).apply(null,arguments)};a._sqlite3_reset=function(){return(a._sqlite3_reset=a.asm.kb).apply(null,arguments)};a._sqlite3_exec=function(){return(a._sqlite3_exec=a.asm.lb).apply(null,arguments)}; +a._sqlite3_column_int=function(){return(a._sqlite3_column_int=a.asm.mb).apply(null,arguments)};a._sqlite3_finalize=function(){return(a._sqlite3_finalize=a.asm.nb).apply(null,arguments)};a._sqlite3_deserialize=function(){return(a._sqlite3_deserialize=a.asm.ob).apply(null,arguments)};a._sqlite3_database_file_object=function(){return(a._sqlite3_database_file_object=a.asm.pb).apply(null,arguments)};a._sqlite3_backup_init=function(){return(a._sqlite3_backup_init=a.asm.qb).apply(null,arguments)}; +a._sqlite3_backup_step=function(){return(a._sqlite3_backup_step=a.asm.rb).apply(null,arguments)};a._sqlite3_backup_finish=function(){return(a._sqlite3_backup_finish=a.asm.sb).apply(null,arguments)};a._sqlite3_backup_remaining=function(){return(a._sqlite3_backup_remaining=a.asm.tb).apply(null,arguments)};a._sqlite3_backup_pagecount=function(){return(a._sqlite3_backup_pagecount=a.asm.ub).apply(null,arguments)}; +a._sqlite3_clear_bindings=function(){return(a._sqlite3_clear_bindings=a.asm.vb).apply(null,arguments)};a._sqlite3_value_blob=function(){return(a._sqlite3_value_blob=a.asm.wb).apply(null,arguments)};a._sqlite3_value_text=function(){return(a._sqlite3_value_text=a.asm.xb).apply(null,arguments)};a._sqlite3_value_bytes=function(){return(a._sqlite3_value_bytes=a.asm.yb).apply(null,arguments)};a._sqlite3_value_bytes16=function(){return(a._sqlite3_value_bytes16=a.asm.zb).apply(null,arguments)}; +a._sqlite3_value_double=function(){return(a._sqlite3_value_double=a.asm.Ab).apply(null,arguments)};a._sqlite3_value_int=function(){return(a._sqlite3_value_int=a.asm.Bb).apply(null,arguments)};a._sqlite3_value_int64=function(){return(a._sqlite3_value_int64=a.asm.Cb).apply(null,arguments)};a._sqlite3_value_subtype=function(){return(a._sqlite3_value_subtype=a.asm.Db).apply(null,arguments)};a._sqlite3_value_pointer=function(){return(a._sqlite3_value_pointer=a.asm.Eb).apply(null,arguments)}; +a._sqlite3_value_text16=function(){return(a._sqlite3_value_text16=a.asm.Fb).apply(null,arguments)};a._sqlite3_value_text16be=function(){return(a._sqlite3_value_text16be=a.asm.Gb).apply(null,arguments)};a._sqlite3_value_text16le=function(){return(a._sqlite3_value_text16le=a.asm.Hb).apply(null,arguments)};a._sqlite3_value_type=function(){return(a._sqlite3_value_type=a.asm.Ib).apply(null,arguments)};a._sqlite3_value_encoding=function(){return(a._sqlite3_value_encoding=a.asm.Jb).apply(null,arguments)}; +a._sqlite3_value_nochange=function(){return(a._sqlite3_value_nochange=a.asm.Kb).apply(null,arguments)};a._sqlite3_value_frombind=function(){return(a._sqlite3_value_frombind=a.asm.Lb).apply(null,arguments)};a._sqlite3_value_dup=function(){return(a._sqlite3_value_dup=a.asm.Mb).apply(null,arguments)};a._sqlite3_value_free=function(){return(a._sqlite3_value_free=a.asm.Nb).apply(null,arguments)};a._sqlite3_result_blob=function(){return(a._sqlite3_result_blob=a.asm.Ob).apply(null,arguments)}; +a._sqlite3_result_blob64=function(){return(a._sqlite3_result_blob64=a.asm.Pb).apply(null,arguments)};a._sqlite3_result_double=function(){return(a._sqlite3_result_double=a.asm.Qb).apply(null,arguments)};a._sqlite3_result_error=function(){return(a._sqlite3_result_error=a.asm.Rb).apply(null,arguments)};a._sqlite3_result_error16=function(){return(a._sqlite3_result_error16=a.asm.Sb).apply(null,arguments)};a._sqlite3_result_int=function(){return(a._sqlite3_result_int=a.asm.Tb).apply(null,arguments)}; +a._sqlite3_result_int64=function(){return(a._sqlite3_result_int64=a.asm.Ub).apply(null,arguments)};a._sqlite3_result_null=function(){return(a._sqlite3_result_null=a.asm.Vb).apply(null,arguments)};a._sqlite3_result_pointer=function(){return(a._sqlite3_result_pointer=a.asm.Wb).apply(null,arguments)};a._sqlite3_result_subtype=function(){return(a._sqlite3_result_subtype=a.asm.Xb).apply(null,arguments)};a._sqlite3_result_text=function(){return(a._sqlite3_result_text=a.asm.Yb).apply(null,arguments)}; +a._sqlite3_result_text64=function(){return(a._sqlite3_result_text64=a.asm.Zb).apply(null,arguments)};a._sqlite3_result_text16=function(){return(a._sqlite3_result_text16=a.asm._b).apply(null,arguments)};a._sqlite3_result_text16be=function(){return(a._sqlite3_result_text16be=a.asm.$b).apply(null,arguments)};a._sqlite3_result_text16le=function(){return(a._sqlite3_result_text16le=a.asm.ac).apply(null,arguments)};a._sqlite3_result_value=function(){return(a._sqlite3_result_value=a.asm.bc).apply(null,arguments)}; +a._sqlite3_result_error_toobig=function(){return(a._sqlite3_result_error_toobig=a.asm.cc).apply(null,arguments)};a._sqlite3_result_zeroblob=function(){return(a._sqlite3_result_zeroblob=a.asm.dc).apply(null,arguments)};a._sqlite3_result_zeroblob64=function(){return(a._sqlite3_result_zeroblob64=a.asm.ec).apply(null,arguments)};a._sqlite3_result_error_code=function(){return(a._sqlite3_result_error_code=a.asm.fc).apply(null,arguments)}; +a._sqlite3_result_error_nomem=function(){return(a._sqlite3_result_error_nomem=a.asm.gc).apply(null,arguments)};a._sqlite3_user_data=function(){return(a._sqlite3_user_data=a.asm.hc).apply(null,arguments)};a._sqlite3_context_db_handle=function(){return(a._sqlite3_context_db_handle=a.asm.ic).apply(null,arguments)};a._sqlite3_vtab_nochange=function(){return(a._sqlite3_vtab_nochange=a.asm.jc).apply(null,arguments)}; +a._sqlite3_vtab_in_first=function(){return(a._sqlite3_vtab_in_first=a.asm.kc).apply(null,arguments)};a._sqlite3_vtab_in_next=function(){return(a._sqlite3_vtab_in_next=a.asm.lc).apply(null,arguments)};a._sqlite3_aggregate_context=function(){return(a._sqlite3_aggregate_context=a.asm.mc).apply(null,arguments)};a._sqlite3_get_auxdata=function(){return(a._sqlite3_get_auxdata=a.asm.nc).apply(null,arguments)};a._sqlite3_set_auxdata=function(){return(a._sqlite3_set_auxdata=a.asm.oc).apply(null,arguments)}; +a._sqlite3_column_count=function(){return(a._sqlite3_column_count=a.asm.pc).apply(null,arguments)};a._sqlite3_data_count=function(){return(a._sqlite3_data_count=a.asm.qc).apply(null,arguments)};a._sqlite3_column_blob=function(){return(a._sqlite3_column_blob=a.asm.rc).apply(null,arguments)};a._sqlite3_column_bytes=function(){return(a._sqlite3_column_bytes=a.asm.sc).apply(null,arguments)};a._sqlite3_column_bytes16=function(){return(a._sqlite3_column_bytes16=a.asm.tc).apply(null,arguments)}; +a._sqlite3_column_double=function(){return(a._sqlite3_column_double=a.asm.uc).apply(null,arguments)};a._sqlite3_column_text=function(){return(a._sqlite3_column_text=a.asm.vc).apply(null,arguments)};a._sqlite3_column_value=function(){return(a._sqlite3_column_value=a.asm.wc).apply(null,arguments)};a._sqlite3_column_text16=function(){return(a._sqlite3_column_text16=a.asm.xc).apply(null,arguments)};a._sqlite3_column_type=function(){return(a._sqlite3_column_type=a.asm.yc).apply(null,arguments)}; +a._sqlite3_column_name=function(){return(a._sqlite3_column_name=a.asm.zc).apply(null,arguments)};a._sqlite3_column_name16=function(){return(a._sqlite3_column_name16=a.asm.Ac).apply(null,arguments)};a._sqlite3_bind_blob=function(){return(a._sqlite3_bind_blob=a.asm.Bc).apply(null,arguments)};a._sqlite3_bind_blob64=function(){return(a._sqlite3_bind_blob64=a.asm.Cc).apply(null,arguments)};a._sqlite3_bind_double=function(){return(a._sqlite3_bind_double=a.asm.Dc).apply(null,arguments)}; +a._sqlite3_bind_int=function(){return(a._sqlite3_bind_int=a.asm.Ec).apply(null,arguments)};a._sqlite3_bind_int64=function(){return(a._sqlite3_bind_int64=a.asm.Fc).apply(null,arguments)};a._sqlite3_bind_null=function(){return(a._sqlite3_bind_null=a.asm.Gc).apply(null,arguments)};a._sqlite3_bind_pointer=function(){return(a._sqlite3_bind_pointer=a.asm.Hc).apply(null,arguments)};a._sqlite3_bind_text=function(){return(a._sqlite3_bind_text=a.asm.Ic).apply(null,arguments)}; +a._sqlite3_bind_text64=function(){return(a._sqlite3_bind_text64=a.asm.Jc).apply(null,arguments)};a._sqlite3_bind_text16=function(){return(a._sqlite3_bind_text16=a.asm.Kc).apply(null,arguments)};a._sqlite3_bind_value=function(){return(a._sqlite3_bind_value=a.asm.Lc).apply(null,arguments)};a._sqlite3_bind_zeroblob=function(){return(a._sqlite3_bind_zeroblob=a.asm.Mc).apply(null,arguments)};a._sqlite3_bind_zeroblob64=function(){return(a._sqlite3_bind_zeroblob64=a.asm.Nc).apply(null,arguments)}; +a._sqlite3_bind_parameter_count=function(){return(a._sqlite3_bind_parameter_count=a.asm.Oc).apply(null,arguments)};a._sqlite3_bind_parameter_name=function(){return(a._sqlite3_bind_parameter_name=a.asm.Pc).apply(null,arguments)};a._sqlite3_bind_parameter_index=function(){return(a._sqlite3_bind_parameter_index=a.asm.Qc).apply(null,arguments)};a._sqlite3_db_handle=function(){return(a._sqlite3_db_handle=a.asm.Rc).apply(null,arguments)}; +a._sqlite3_stmt_readonly=function(){return(a._sqlite3_stmt_readonly=a.asm.Sc).apply(null,arguments)};a._sqlite3_stmt_isexplain=function(){return(a._sqlite3_stmt_isexplain=a.asm.Tc).apply(null,arguments)};a._sqlite3_stmt_explain=function(){return(a._sqlite3_stmt_explain=a.asm.Uc).apply(null,arguments)};a._sqlite3_stmt_busy=function(){return(a._sqlite3_stmt_busy=a.asm.Vc).apply(null,arguments)};a._sqlite3_next_stmt=function(){return(a._sqlite3_next_stmt=a.asm.Wc).apply(null,arguments)}; +a._sqlite3_stmt_status=function(){return(a._sqlite3_stmt_status=a.asm.Xc).apply(null,arguments)};a._sqlite3_sql=function(){return(a._sqlite3_sql=a.asm.Yc).apply(null,arguments)};a._sqlite3_expanded_sql=function(){return(a._sqlite3_expanded_sql=a.asm.Zc).apply(null,arguments)};a._sqlite3_value_numeric_type=function(){return(a._sqlite3_value_numeric_type=a.asm._c).apply(null,arguments)};a._sqlite3_blob_open=function(){return(a._sqlite3_blob_open=a.asm.$c).apply(null,arguments)}; +a._sqlite3_blob_close=function(){return(a._sqlite3_blob_close=a.asm.ad).apply(null,arguments)};a._sqlite3_blob_read=function(){return(a._sqlite3_blob_read=a.asm.bd).apply(null,arguments)};a._sqlite3_blob_write=function(){return(a._sqlite3_blob_write=a.asm.cd).apply(null,arguments)};a._sqlite3_blob_bytes=function(){return(a._sqlite3_blob_bytes=a.asm.dd).apply(null,arguments)};a._sqlite3_blob_reopen=function(){return(a._sqlite3_blob_reopen=a.asm.ed).apply(null,arguments)}; +a._sqlite3_set_authorizer=function(){return(a._sqlite3_set_authorizer=a.asm.fd).apply(null,arguments)};a._sqlite3_strglob=function(){return(a._sqlite3_strglob=a.asm.gd).apply(null,arguments)};a._sqlite3_strlike=function(){return(a._sqlite3_strlike=a.asm.hd).apply(null,arguments)};a._sqlite3_errmsg=function(){return(a._sqlite3_errmsg=a.asm.id).apply(null,arguments)};a._sqlite3_auto_extension=function(){return(a._sqlite3_auto_extension=a.asm.jd).apply(null,arguments)}; +a._sqlite3_cancel_auto_extension=function(){return(a._sqlite3_cancel_auto_extension=a.asm.kd).apply(null,arguments)};a._sqlite3_reset_auto_extension=function(){return(a._sqlite3_reset_auto_extension=a.asm.ld).apply(null,arguments)};a._sqlite3_prepare=function(){return(a._sqlite3_prepare=a.asm.md).apply(null,arguments)};a._sqlite3_prepare_v3=function(){return(a._sqlite3_prepare_v3=a.asm.nd).apply(null,arguments)};a._sqlite3_prepare16=function(){return(a._sqlite3_prepare16=a.asm.od).apply(null,arguments)}; +a._sqlite3_prepare16_v2=function(){return(a._sqlite3_prepare16_v2=a.asm.pd).apply(null,arguments)};a._sqlite3_prepare16_v3=function(){return(a._sqlite3_prepare16_v3=a.asm.qd).apply(null,arguments)};a._sqlite3_get_table=function(){return(a._sqlite3_get_table=a.asm.rd).apply(null,arguments)};a._sqlite3_free_table=function(){return(a._sqlite3_free_table=a.asm.sd).apply(null,arguments)};a._sqlite3_create_module=function(){return(a._sqlite3_create_module=a.asm.td).apply(null,arguments)}; +a._sqlite3_create_module_v2=function(){return(a._sqlite3_create_module_v2=a.asm.ud).apply(null,arguments)};a._sqlite3_drop_modules=function(){return(a._sqlite3_drop_modules=a.asm.vd).apply(null,arguments)};a._sqlite3_declare_vtab=function(){return(a._sqlite3_declare_vtab=a.asm.wd).apply(null,arguments)};a._sqlite3_vtab_on_conflict=function(){return(a._sqlite3_vtab_on_conflict=a.asm.xd).apply(null,arguments)};a._sqlite3_vtab_config=function(){return(a._sqlite3_vtab_config=a.asm.yd).apply(null,arguments)}; +a._sqlite3_vtab_collation=function(){return(a._sqlite3_vtab_collation=a.asm.zd).apply(null,arguments)};a._sqlite3_vtab_in=function(){return(a._sqlite3_vtab_in=a.asm.Ad).apply(null,arguments)};a._sqlite3_vtab_rhs_value=function(){return(a._sqlite3_vtab_rhs_value=a.asm.Bd).apply(null,arguments)};a._sqlite3_vtab_distinct=function(){return(a._sqlite3_vtab_distinct=a.asm.Cd).apply(null,arguments)};a._sqlite3_keyword_name=function(){return(a._sqlite3_keyword_name=a.asm.Dd).apply(null,arguments)}; +a._sqlite3_keyword_count=function(){return(a._sqlite3_keyword_count=a.asm.Ed).apply(null,arguments)};a._sqlite3_keyword_check=function(){return(a._sqlite3_keyword_check=a.asm.Fd).apply(null,arguments)};a._sqlite3_complete=function(){return(a._sqlite3_complete=a.asm.Gd).apply(null,arguments)};a._sqlite3_complete16=function(){return(a._sqlite3_complete16=a.asm.Hd).apply(null,arguments)};a._sqlite3_libversion=function(){return(a._sqlite3_libversion=a.asm.Id).apply(null,arguments)}; +a._sqlite3_libversion_number=function(){return(a._sqlite3_libversion_number=a.asm.Jd).apply(null,arguments)};a._sqlite3_threadsafe=function(){return(a._sqlite3_threadsafe=a.asm.Kd).apply(null,arguments)};a._sqlite3_initialize=function(){return(a._sqlite3_initialize=a.asm.Ld).apply(null,arguments)};a._sqlite3_shutdown=function(){return(a._sqlite3_shutdown=a.asm.Md).apply(null,arguments)};a._sqlite3_config=function(){return(a._sqlite3_config=a.asm.Nd).apply(null,arguments)}; +a._sqlite3_db_mutex=function(){return(a._sqlite3_db_mutex=a.asm.Od).apply(null,arguments)};a._sqlite3_db_release_memory=function(){return(a._sqlite3_db_release_memory=a.asm.Pd).apply(null,arguments)};a._sqlite3_db_cacheflush=function(){return(a._sqlite3_db_cacheflush=a.asm.Qd).apply(null,arguments)};a._sqlite3_db_config=function(){return(a._sqlite3_db_config=a.asm.Rd).apply(null,arguments)};a._sqlite3_last_insert_rowid=function(){return(a._sqlite3_last_insert_rowid=a.asm.Sd).apply(null,arguments)}; +a._sqlite3_set_last_insert_rowid=function(){return(a._sqlite3_set_last_insert_rowid=a.asm.Td).apply(null,arguments)};a._sqlite3_changes64=function(){return(a._sqlite3_changes64=a.asm.Ud).apply(null,arguments)};a._sqlite3_changes=function(){return(a._sqlite3_changes=a.asm.Vd).apply(null,arguments)};a._sqlite3_total_changes64=function(){return(a._sqlite3_total_changes64=a.asm.Wd).apply(null,arguments)};a._sqlite3_total_changes=function(){return(a._sqlite3_total_changes=a.asm.Xd).apply(null,arguments)}; +a._sqlite3_txn_state=function(){return(a._sqlite3_txn_state=a.asm.Yd).apply(null,arguments)};a._sqlite3_close=function(){return(a._sqlite3_close=a.asm.Zd).apply(null,arguments)};a._sqlite3_close_v2=function(){return(a._sqlite3_close_v2=a.asm._d).apply(null,arguments)};a._sqlite3_busy_handler=function(){return(a._sqlite3_busy_handler=a.asm.$d).apply(null,arguments)};a._sqlite3_progress_handler=function(){return(a._sqlite3_progress_handler=a.asm.ae).apply(null,arguments)}; +a._sqlite3_busy_timeout=function(){return(a._sqlite3_busy_timeout=a.asm.be).apply(null,arguments)};a._sqlite3_interrupt=function(){return(a._sqlite3_interrupt=a.asm.ce).apply(null,arguments)};a._sqlite3_is_interrupted=function(){return(a._sqlite3_is_interrupted=a.asm.de).apply(null,arguments)};a._sqlite3_create_function=function(){return(a._sqlite3_create_function=a.asm.ee).apply(null,arguments)};a._sqlite3_create_function_v2=function(){return(a._sqlite3_create_function_v2=a.asm.fe).apply(null,arguments)}; +a._sqlite3_create_window_function=function(){return(a._sqlite3_create_window_function=a.asm.ge).apply(null,arguments)};a._sqlite3_create_function16=function(){return(a._sqlite3_create_function16=a.asm.he).apply(null,arguments)};a._sqlite3_overload_function=function(){return(a._sqlite3_overload_function=a.asm.ie).apply(null,arguments)};a._sqlite3_trace_v2=function(){return(a._sqlite3_trace_v2=a.asm.je).apply(null,arguments)}; +a._sqlite3_commit_hook=function(){return(a._sqlite3_commit_hook=a.asm.ke).apply(null,arguments)};a._sqlite3_update_hook=function(){return(a._sqlite3_update_hook=a.asm.le).apply(null,arguments)};a._sqlite3_rollback_hook=function(){return(a._sqlite3_rollback_hook=a.asm.me).apply(null,arguments)};a._sqlite3_autovacuum_pages=function(){return(a._sqlite3_autovacuum_pages=a.asm.ne).apply(null,arguments)}; +a._sqlite3_wal_autocheckpoint=function(){return(a._sqlite3_wal_autocheckpoint=a.asm.oe).apply(null,arguments)};a._sqlite3_wal_hook=function(){return(a._sqlite3_wal_hook=a.asm.pe).apply(null,arguments)};a._sqlite3_wal_checkpoint_v2=function(){return(a._sqlite3_wal_checkpoint_v2=a.asm.qe).apply(null,arguments)};a._sqlite3_wal_checkpoint=function(){return(a._sqlite3_wal_checkpoint=a.asm.re).apply(null,arguments)}; +a._sqlite3_error_offset=function(){return(a._sqlite3_error_offset=a.asm.se).apply(null,arguments)};a._sqlite3_errmsg16=function(){return(a._sqlite3_errmsg16=a.asm.te).apply(null,arguments)};a._sqlite3_errcode=function(){return(a._sqlite3_errcode=a.asm.ue).apply(null,arguments)};a._sqlite3_extended_errcode=function(){return(a._sqlite3_extended_errcode=a.asm.ve).apply(null,arguments)};a._sqlite3_system_errno=function(){return(a._sqlite3_system_errno=a.asm.we).apply(null,arguments)}; +a._sqlite3_errstr=function(){return(a._sqlite3_errstr=a.asm.xe).apply(null,arguments)};a._sqlite3_limit=function(){return(a._sqlite3_limit=a.asm.ye).apply(null,arguments)};a._sqlite3_open=function(){return(a._sqlite3_open=a.asm.ze).apply(null,arguments)};a._sqlite3_open_v2=function(){return(a._sqlite3_open_v2=a.asm.Ae).apply(null,arguments)};a._sqlite3_open16=function(){return(a._sqlite3_open16=a.asm.Be).apply(null,arguments)}; +a._sqlite3_create_collation=function(){return(a._sqlite3_create_collation=a.asm.Ce).apply(null,arguments)};a._sqlite3_create_collation_v2=function(){return(a._sqlite3_create_collation_v2=a.asm.De).apply(null,arguments)};a._sqlite3_create_collation16=function(){return(a._sqlite3_create_collation16=a.asm.Ee).apply(null,arguments)};a._sqlite3_collation_needed=function(){return(a._sqlite3_collation_needed=a.asm.Fe).apply(null,arguments)}; +a._sqlite3_collation_needed16=function(){return(a._sqlite3_collation_needed16=a.asm.Ge).apply(null,arguments)};a._sqlite3_get_clientdata=function(){return(a._sqlite3_get_clientdata=a.asm.He).apply(null,arguments)};a._sqlite3_set_clientdata=function(){return(a._sqlite3_set_clientdata=a.asm.Ie).apply(null,arguments)};a._sqlite3_get_autocommit=function(){return(a._sqlite3_get_autocommit=a.asm.Je).apply(null,arguments)}; +a._sqlite3_table_column_metadata=function(){return(a._sqlite3_table_column_metadata=a.asm.Ke).apply(null,arguments)};a._sqlite3_sleep=function(){return(a._sqlite3_sleep=a.asm.Le).apply(null,arguments)};a._sqlite3_extended_result_codes=function(){return(a._sqlite3_extended_result_codes=a.asm.Me).apply(null,arguments)};a._sqlite3_file_control=function(){return(a._sqlite3_file_control=a.asm.Ne).apply(null,arguments)}; +a._sqlite3_test_control=function(){return(a._sqlite3_test_control=a.asm.Oe).apply(null,arguments)};a._sqlite3_create_filename=function(){return(a._sqlite3_create_filename=a.asm.Pe).apply(null,arguments)};a._sqlite3_free_filename=function(){return(a._sqlite3_free_filename=a.asm.Qe).apply(null,arguments)};a._sqlite3_uri_parameter=function(){return(a._sqlite3_uri_parameter=a.asm.Re).apply(null,arguments)};a._sqlite3_uri_key=function(){return(a._sqlite3_uri_key=a.asm.Se).apply(null,arguments)}; +a._sqlite3_uri_boolean=function(){return(a._sqlite3_uri_boolean=a.asm.Te).apply(null,arguments)};a._sqlite3_uri_int64=function(){return(a._sqlite3_uri_int64=a.asm.Ue).apply(null,arguments)};a._sqlite3_filename_database=function(){return(a._sqlite3_filename_database=a.asm.Ve).apply(null,arguments)};a._sqlite3_filename_journal=function(){return(a._sqlite3_filename_journal=a.asm.We).apply(null,arguments)};a._sqlite3_filename_wal=function(){return(a._sqlite3_filename_wal=a.asm.Xe).apply(null,arguments)}; +a._sqlite3_db_name=function(){return(a._sqlite3_db_name=a.asm.Ye).apply(null,arguments)};a._sqlite3_db_filename=function(){return(a._sqlite3_db_filename=a.asm.Ze).apply(null,arguments)};a._sqlite3_db_readonly=function(){return(a._sqlite3_db_readonly=a.asm._e).apply(null,arguments)};a._sqlite3_compileoption_used=function(){return(a._sqlite3_compileoption_used=a.asm.$e).apply(null,arguments)};a._sqlite3_compileoption_get=function(){return(a._sqlite3_compileoption_get=a.asm.af).apply(null,arguments)}; +a._sqlite3_sourceid=function(){return(a._sqlite3_sourceid=a.asm.bf).apply(null,arguments)};a._sqlite3mc_config=function(){return(a._sqlite3mc_config=a.asm.cf).apply(null,arguments)};a._sqlite3mc_cipher_count=function(){return(a._sqlite3mc_cipher_count=a.asm.df).apply(null,arguments)};a._sqlite3mc_cipher_index=function(){return(a._sqlite3mc_cipher_index=a.asm.ef).apply(null,arguments)};a._sqlite3mc_cipher_name=function(){return(a._sqlite3mc_cipher_name=a.asm.ff).apply(null,arguments)}; +a._sqlite3mc_config_cipher=function(){return(a._sqlite3mc_config_cipher=a.asm.gf).apply(null,arguments)};a._sqlite3mc_codec_data=function(){return(a._sqlite3mc_codec_data=a.asm.hf).apply(null,arguments)};a._sqlite3_key=function(){return(a._sqlite3_key=a.asm.jf).apply(null,arguments)};a._sqlite3_key_v2=function(){return(a._sqlite3_key_v2=a.asm.kf).apply(null,arguments)};a._sqlite3_rekey_v2=function(){return(a._sqlite3_rekey_v2=a.asm.lf).apply(null,arguments)}; +a._sqlite3_rekey=function(){return(a._sqlite3_rekey=a.asm.mf).apply(null,arguments)};a._sqlite3mc_register_cipher=function(){return(a._sqlite3mc_register_cipher=a.asm.nf).apply(null,arguments)};var Nc=a.___errno_location=function(){return(Nc=a.___errno_location=a.asm.of).apply(null,arguments)},Pb=a._malloc=function(){return(Pb=a._malloc=a.asm.pf).apply(null,arguments)};a._free=function(){return(a._free=a.asm.qf).apply(null,arguments)}; +a._RegisterExtensionFunctions=function(){return(a._RegisterExtensionFunctions=a.asm.rf).apply(null,arguments)};a._sqlite3Fts5BetterTrigramInit=function(){return(a._sqlite3Fts5BetterTrigramInit=a.asm.sf).apply(null,arguments)};a._sqlite3Fts5HtmlInit=function(){return(a._sqlite3Fts5HtmlInit=a.asm.tf).apply(null,arguments)};a._set_authorizer=function(){return(a._set_authorizer=a.asm.uf).apply(null,arguments)};a._create_function=function(){return(a._create_function=a.asm.vf).apply(null,arguments)}; +a._create_module=function(){return(a._create_module=a.asm.wf).apply(null,arguments)};a._progress_handler=function(){return(a._progress_handler=a.asm.xf).apply(null,arguments)};a._register_vfs=function(){return(a._register_vfs=a.asm.yf).apply(null,arguments)};a._getSqliteFree=function(){return(a._getSqliteFree=a.asm.zf).apply(null,arguments)};a._main=function(){return(a._main=a.asm.Af).apply(null,arguments)}; +var Za=a._emscripten_builtin_memalign=function(){return(Za=a._emscripten_builtin_memalign=a.asm.Bf).apply(null,arguments)},Pc=a.getTempRet0=function(){return(Pc=a.getTempRet0=a.asm.Df).apply(null,arguments)},Kc=a.stackSave=function(){return(Kc=a.stackSave=a.asm.Ef).apply(null,arguments)},Lc=a.stackRestore=function(){return(Lc=a.stackRestore=a.asm.Ff).apply(null,arguments)},Jc=a.stackAlloc=function(){return(Jc=a.stackAlloc=a.asm.Gf).apply(null,arguments)};a._sqlite3_version=3232;a.UTF8ToString=v; +a.stringToUTF8=ra;a.lengthBytesUTF8=sa;a.getTempRet0=Pc;a.ccall=Z;a.cwrap=function(b,c,d,e){d=d||[];var f=d.every(g=>"number"===g||"boolean"===g);return"string"!==c&&f&&!e?a["_"+b]:function(){return Z(b,c,d,arguments,e)}}; +a.addFunction=function(b,c){if(!Gc){Gc=new WeakMap;var d=E.length;if(Gc)for(var e=0;e<0+d;e++){var f=E.get(e);f&&Gc.set(f,e)}}if(Gc.has(b))return Gc.get(b);if(Hc.length)d=Hc.pop();else{try{E.grow(1)}catch(p){if(!(p instanceof RangeError))throw p;throw"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH.";}d=E.length-1}try{E.set(d,b)}catch(p){if(!(p instanceof TypeError))throw p;if("function"==typeof WebAssembly.Function){e=WebAssembly.Function;f={i:"i32",j:"i32",f:"f32",d:"f64",p:"i32"};for(var g={parameters:[], +results:"v"==c[0]?[]:[f[c[0]]]},h=1;hh?e.push(h):e.push(h%128|128,h>>7);for(h=0;hf?c.push(f):c.push(f%128|128,f>>7);c.push.apply(c,e);c.push(2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0);c=new WebAssembly.Module(new Uint8Array(c)); +c=(new WebAssembly.Instance(c,{e:{f:b}})).exports.f}E.set(d,c)}Gc.set(b,d);return d};a.setValue=N;a.getValue=M;a.intArrayFromString=Pa;a.intArrayToString=function(b){for(var c=[],d=0;d>0];if(!d)return c;c+=String.fromCharCode(d)}}; +a.UTF16ToString=function(b,c){var d=b>>1;for(var e=d+c/2;!(d>=e)&&ta[d];)++d;d<<=1;if(32=c/2);++e){var f=A[b+2*e>>1];if(0==f)break;d+=String.fromCharCode(f)}return d};a.stringToUTF16=function(b,c,d){void 0===d&&(d=2147483647);if(2>d)return 0;d-=2;var e=c;d=d<2*b.length?d/2:b.length;for(var f=0;f>1]=b.charCodeAt(f),c+=2;A[c>>1]=0;return c-e}; +a.UTF32ToString=function(b,c){for(var d=0,e="";!(d>=c/4);){var f=B[b+4*d>>2];if(0==f)break;++d;65536<=f?(f-=65536,e+=String.fromCharCode(55296|f>>10,56320|f&1023)):e+=String.fromCharCode(f)}return e};a.stringToUTF32=function(b,c,d){void 0===d&&(d=2147483647);if(4>d)return 0;var e=c;d=e+d-4;for(var f=0;f=g){var h=b.charCodeAt(++f);g=65536+((g&1023)<<10)|h&1023}B[c>>2]=g;c+=4;if(c+4>d)break}B[c>>2]=0;return c-e};a.writeArrayToMemory=Ic;var Qc; +Da=function Rc(){Qc||Sc();Qc||(Da=Rc)}; +function Sc(){function b(){if(!Qc&&(Qc=!0,a.calledRun=!0,!na)){a.noFSInit||Db||(Db=!0,Cb(),a.stdin=a.stdin,a.stdout=a.stdout,a.stderr=a.stderr,a.stdin?Gb("stdin",a.stdin):tb("/dev/tty","/dev/stdin"),a.stdout?Gb("stdout",null,a.stdout):tb("/dev/tty","/dev/stdout"),a.stderr?Gb("stderr",null,a.stderr):tb("/dev/tty1","/dev/stderr"),Ab("/dev/stdin",0),Ab("/dev/stdout",1),Ab("/dev/stderr",1));cb=!1;Ja(ya);Ja(za);aa(a);if(a.onRuntimeInitialized)a.onRuntimeInitialized();if(Tc){var c=a._main;try{var d=c(0, +0);if(!noExitRuntime){if(a.onExit)a.onExit(d);na=!0}fa(d,new Ia(d))}catch(e){e instanceof Ia||"unwind"==e||fa(1,e)}}if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)c=a.postRun.shift(),Aa.unshift(c);Ja(Aa)}}if(!(0 { return db.user.verifyPassword(password); } }); if (result) { - await db.vault.delete(result.deleteAllLockedNotes); + await db.vault.delete(); return true; } return false; diff --git a/apps/web/src/components/accordion/index.tsx b/apps/web/src/components/accordion/index.tsx index 0b9dfb0eb3..bc376a4b98 100644 --- a/apps/web/src/components/accordion/index.tsx +++ b/apps/web/src/components/accordion/index.tsx @@ -45,11 +45,7 @@ export default function Accordion( containerSx, ...restProps } = props; - const [isContentHidden, setIsContentHidden] = useState(false); - - useEffect(() => { - setIsContentHidden(isClosed); - }, [isClosed]); + const [isContentHidden, setIsContentHidden] = useState(isClosed); return ( diff --git a/apps/web/src/components/editor/action-bar.tsx b/apps/web/src/components/editor/action-bar.tsx index 505d723986..3786f80ac4 100644 --- a/apps/web/src/components/editor/action-bar.tsx +++ b/apps/web/src/components/editor/action-bar.tsx @@ -82,6 +82,7 @@ import { getWindowControls } from "../title-bar"; import useTablet from "../../hooks/use-tablet"; import { isMac } from "../../utils/platform"; import { CREATE_BUTTON_MAP } from "../../common"; +import { getDragData } from "../../utils/data-transfer"; type ToolButton = { title: string; @@ -340,6 +341,19 @@ const TabStrip = React.memo(function TabStrip() { e.stopPropagation(); useEditorStore.getState().addTab(); }} + onDragOver={(e) => { + e.preventDefault(); + }} + onDrop={(e) => { + e.stopPropagation(); + + const noteId = getDragData(e.dataTransfer, "note")?.[0]; + if (!noteId) return; + + useEditorStore + .getState() + .openSession(noteId, { openInNewTab: true }); + }} data-test-id="tabs" > { + e.preventDefault(); + }} + onDrop={(e) => { + e.stopPropagation(); + + const noteId = getDragData(e.dataTransfer, "note")?.[0]; + if (!noteId) return; + + useEditorStore.getState().openSessionInTab(noteId, id); + }} sx={{ height: "100%", cursor: "pointer", diff --git a/apps/web/src/components/icons/index.tsx b/apps/web/src/components/icons/index.tsx index 7825eedeb8..36487e67af 100644 --- a/apps/web/src/components/icons/index.tsx +++ b/apps/web/src/components/icons/index.tsx @@ -40,6 +40,7 @@ import { mdiClose, mdiDotsVertical, mdiTrashCanOutline, + mdiArchiveOutline, mdiBookRemoveOutline, mdiMagnify, mdiMenu, @@ -351,6 +352,7 @@ export const Cross = createIcon(mdiClose); export const MoreVertical = createIcon(mdiDotsVertical); export const MoreHorizontal = createIcon(mdiDotsHorizontal); export const Trash = createIcon(mdiTrashCanOutline); +export const Archive = createIcon(mdiArchiveOutline); export const TopicRemove = createIcon(mdiBookmarkRemoveOutline); export const NotebookRemove = createIcon(mdiBookRemoveOutline); export const Search = createIcon(mdiMagnify); diff --git a/apps/web/src/components/importer/components/file-provider-handler.tsx b/apps/web/src/components/importer/components/file-provider-handler.tsx new file mode 100644 index 0000000000..ec2aabbfb1 --- /dev/null +++ b/apps/web/src/components/importer/components/file-provider-handler.tsx @@ -0,0 +1,315 @@ +/* +This file is part of the Notesnook project (https://notesnook.com/) + +Copyright (C) 2023 Streetwriters (Private) Limited + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +import { + IFile, + IFileProvider, + ProviderSettings, + transform +} from "@notesnook-importer/core"; +import { formatBytes } from "@notesnook/common"; +import { ScrollContainer } from "@notesnook/ui"; +import { Button, Flex, Input, Text } from "@theme-ui/components"; +import { xxhash64 } from "hash-wasm"; +import { useCallback, useEffect, useRef, useState } from "react"; +import { useDropzone } from "react-dropzone"; +import { importNote } from "../../../utils/importer"; +import Accordion from "../../accordion"; +import { TransformResult } from "../types"; +import { useStore as useAppStore } from "../../../stores/app-store"; + +type FileProviderHandlerProps = { + provider: IFileProvider; + onTransformFinished: (result: TransformResult) => void; +}; + +type Progress = { + total: number; + done: number; +}; + +export function FileProviderHandler(props: FileProviderHandlerProps) { + const { provider, onTransformFinished } = props; + const [files, setFiles] = useState([]); + const [filesProgress, setFilesProgress] = useState({ + done: 0, + total: 0 + }); + const [totalNoteCount, setTotalNoteCount] = useState(0); + const [_, setCounter] = useState(0); + const logs = useRef([]); + + const onDrop = useCallback((acceptedFiles: File[]) => { + setFiles((files) => { + const newFiles = [...acceptedFiles, ...files]; + return newFiles; + }); + }, []); + + const { getRootProps, getInputProps, isDragActive } = useDropzone({ + onDrop, + accept: { + file: provider?.supportedExtensions?.concat([".zip"]) + } + }); + + useEffect(() => { + setFiles([]); + }, [provider]); + + async function onStartImport() { + let totalNotes = 0; + const errors: Error[] = []; + const settings: ProviderSettings = { + clientType: "browser", + hasher: { type: "xxh64", hash: xxhash64 }, + storage: { + clear: async () => undefined, + get: async () => [], + write: async (data) => { + logs.current.push( + `[${new Date().toLocaleString()}] Pushing ${ + data.title + } into database` + ); + + await importNote(data); + }, + iterate: async function* () { + return null; + } + }, + log: (message) => { + logs.current.push( + `[${new Date(message.date).toLocaleString()}] ${message.text}` + ); + setCounter((s) => ++s); + }, + reporter: () => { + setTotalNoteCount(++totalNotes); + } + }; + + setTotalNoteCount(0); + setFilesProgress({ + total: files.length, + done: 0 + }); + + for (const file of files) { + setFilesProgress((p) => ({ + ...p, + done: p.done + 1 + })); + + const providerFile: IFile = { + name: file.name, + modifiedAt: file.lastModified, + size: file.size, + data: file + }; + errors.push(...(await transform(provider, [providerFile], settings))); + } + await useAppStore.getState().refresh(); + onTransformFinished({ + totalNotes, + errors + }); + } + + if (filesProgress.done) { + return ( + + + Processing {filesProgress.done} of {filesProgress.total} file(s) + + + Found {totalNoteCount} notes + + {logs.current.length > 0 && ( + + + + {logs.current.map((c, index) => ( + <> + {c} +
+ + ))} +
+
+
+ )} +
+ ); + } + + return ( + + Select {provider.name} files + + Check out our step-by-step guide on{" "} + + how to import from {provider?.name}. + + + + + + {isDragActive + ? "Drop the files here" + : "Drag & drop files here, or click to select files"} +
+ + Only {provider?.supportedExtensions.join(", ")} files are supported.{" "} + {provider?.supportedExtensions.includes(".zip") ? null : ( + <> + You can also select .zip files containing{" "} + {provider?.supportedExtensions.join(", ")} files. + + )} +
+ {provider.examples ? ( + <>For example, {provider.examples.join(", ")} + ) : null} +
+
+
+ {files.length > 0 ? ( + 1 ? "files" : "file" + } selected`} + sx={{ + border: "1px solid var(--border)", + mt: 2, + borderRadius: "default" + }} + > + + {files.map((file, index) => ( + { + setFiles((files) => { + const _files = files.slice(); + _files.splice(index, 1); + return _files; + }); + }} + title="Click to remove" + > + {file.name} + {formatBytes(file.size)} + + ))} + + + ) : null} + + {!!files.length && ( + <> + + Please make sure you have at least{" "} + {formatBytes(files.reduce((prev, file) => prev + file.size, 0))} of + free space before proceeding. + + {provider.requiresNetwork ? ( + + Please make sure you have good Internet access before proceeding. + The importer may send network requests in order to download media + resources such as images, files, and other attachments. + + ) : null} + + + )} +
+ ); +} diff --git a/apps/web/src/components/importer/components/import-errors.tsx b/apps/web/src/components/importer/components/import-errors.tsx new file mode 100644 index 0000000000..111f656d87 --- /dev/null +++ b/apps/web/src/components/importer/components/import-errors.tsx @@ -0,0 +1,60 @@ +/* +This file is part of the Notesnook project (https://notesnook.com/) + +Copyright (C) 2023 Streetwriters (Private) Limited + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +import { Button, Flex, Text } from "@theme-ui/components"; +import Accordion from "../../accordion"; + +type ImportErrorsProps = { + errors: Error[]; +}; + +export function ImportErrors(props: ImportErrorsProps) { + return ( + + + {props.errors.map((error, index) => ( + + {index + 1}. {error.message} +
+
+ ))} + +
+
+ ); +} diff --git a/apps/web/src/components/importer/components/import-result.tsx b/apps/web/src/components/importer/components/import-result.tsx new file mode 100644 index 0000000000..2b9b1882ea --- /dev/null +++ b/apps/web/src/components/importer/components/import-result.tsx @@ -0,0 +1,94 @@ +/* +This file is part of the Notesnook project (https://notesnook.com/) + +Copyright (C) 2023 Streetwriters (Private) Limited + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +import { IProvider } from "@notesnook-importer/core"; +import { strings } from "@notesnook/intl"; +import { Button, Flex, Text } from "@theme-ui/components"; +import { CheckCircleOutline } from "../../icons"; +import { TransformResult } from "../types"; +import { ImportErrors } from "./import-errors"; + +type ImportResultProps = { + result: TransformResult; + provider: IProvider; + onReset: () => void; +}; + +export function ImportResult(props: ImportResultProps) { + const { result, onReset } = props; + + if (result.totalNotes <= 0) { + return ( + + Import unsuccessful + + We failed to import the selected files. Please try again. + + {result.errors.length > 0 && } + + + ); + } + + return ( + <> + + + {strings.importCompleted()}. {props.result.totalNotes} notes + successfully imported. + {strings.errorsOccured(result.errors.length)} + + + {result.errors.length > 0 && ( + + {result.errors.map((error) => ( + + {error.message} + + ))} + + )} + + ); +} diff --git a/apps/web/src/components/importer/components/network-provider-handler.tsx b/apps/web/src/components/importer/components/network-provider-handler.tsx new file mode 100644 index 0000000000..94230c3322 --- /dev/null +++ b/apps/web/src/components/importer/components/network-provider-handler.tsx @@ -0,0 +1,174 @@ +/* +This file is part of the Notesnook project (https://notesnook.com/) + +Copyright (C) 2023 Streetwriters (Private) Limited + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +import { + INetworkProvider, + OneNote, + OneNoteSettings, + ProviderSettings, + transform +} from "@notesnook-importer/core"; +import { ScrollContainer } from "@notesnook/ui"; +import { Button, Flex, Text } from "@theme-ui/components"; +import { xxhash64 } from "hash-wasm"; +import { useRef, useState } from "react"; +import { importNote } from "../../../utils/importer"; +import Accordion from "../../accordion"; +import { TransformResult } from "../types"; + +type NetworkProviderHandlerProps = { + provider: INetworkProvider; + onTransformFinished: (result: TransformResult) => void; +}; + +type Progress = { + total: number; + done: number; +}; + +function getProviderSettings( + provider: INetworkProvider, + settings: ProviderSettings +) { + if (provider instanceof OneNote) { + return { + ...settings, + cache: false, + clientId: "6c32bdbd-c6c6-4cda-bcf0-0c8ec17e5804", + redirectUri: + process.env.NODE_ENV === "development" + ? "http://localhost:3000" + : "https://app.notesnook.com" + } as OneNoteSettings; + } +} + +export function NetworkProviderHandler(props: NetworkProviderHandlerProps) { + const { provider, onTransformFinished } = props; + const [totalNoteCount, setTotalNoteCount] = useState(0); + const [_, setCounter] = useState(0); + const logs = useRef([]); + + async function onStartImport() { + let totalNotes = 0; + const settings = getProviderSettings(provider, { + clientType: "browser", + hasher: { type: "xxh64", hash: xxhash64 }, + storage: { + clear: async () => undefined, + get: async () => [], + write: async (data) => { + logs.current.push( + `[${new Date().toLocaleString()}] Pushing ${ + data.title + } into database` + ); + + await importNote(data); + }, + iterate: async function* () { + return null; + } + }, + log: (message) => { + logs.current.push( + `[${new Date(message.date).toLocaleString()}] ${message.text}` + ); + setCounter((s) => ++s); + }, + reporter: () => { + setTotalNoteCount(++totalNotes); + } + }); + if (!settings) return; + + setTotalNoteCount(0); + + const errors = await transform(provider, settings); + console.log(errors); + onTransformFinished({ + totalNotes, + errors + }); + } + + return ( + + {totalNoteCount ? ( + <> + Importing your notes from {provider.name} + + Found {totalNoteCount} notes + + {logs.current.length > 0 && ( + + + + {logs.current.map((c, index) => ( + <> + {c} +
+ + ))} +
+
+
+ )} + + ) : ( + <> + Connect your {provider.name} account + + Check out our step-by-step guide on{" "} + + how to import from {provider.name}. + + + + + )} +
+ ); +} diff --git a/apps/web/src/components/importer/components/provider-selector.tsx b/apps/web/src/components/importer/components/provider-selector.tsx new file mode 100644 index 0000000000..c466301468 --- /dev/null +++ b/apps/web/src/components/importer/components/provider-selector.tsx @@ -0,0 +1,79 @@ +/* +This file is part of the Notesnook project (https://notesnook.com/) + +Copyright (C) 2023 Streetwriters (Private) Limited + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +import { + IProvider, + ProviderFactory, + Providers +} from "@notesnook-importer/core"; +import { Flex, Text } from "@theme-ui/components"; + +type ProviderSelectorProps = { + onProviderChanged: (provider: IProvider) => void; +}; + +export function ProviderSelector(props: ProviderSelectorProps) { + return ( + + + Select a notes app to import from + + Can't find your notes app in the list?{" "} + + Send us a request. + + + + + + ); +} diff --git a/apps/web/src/components/importer/importer.tsx b/apps/web/src/components/importer/importer.tsx new file mode 100644 index 0000000000..8e63a5e351 --- /dev/null +++ b/apps/web/src/components/importer/importer.tsx @@ -0,0 +1,82 @@ +/* +This file is part of the Notesnook project (https://notesnook.com/) + +Copyright (C) 2023 Streetwriters (Private) Limited + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +import { Flex } from "@theme-ui/components"; +import { useState } from "react"; +import { ProviderSelector } from "./components/provider-selector"; +import { FileProviderHandler } from "./components/file-provider-handler"; +import { ImportResult } from "./components/import-result"; +import { IProvider } from "@notesnook-importer/core"; +import { NetworkProviderHandler } from "./components/network-provider-handler"; +import { TransformResult } from "./types"; + +export function Importer() { + const [selectedProvider, setSelectedProvider] = useState(); + const [transformResult, setTransformResult] = useState(); + const [instanceKey, setInstanceKey] = useState(`${Math.random()}`); + + return ( + + + { + setInstanceKey(`${Math.random()}`); + setSelectedProvider(provider); + setTransformResult(undefined); + }} + /> + {selectedProvider ? ( + <> + {selectedProvider.type === "file" ? ( + + ) : selectedProvider.type === "network" ? ( + + ) : null} + + ) : null} + {transformResult && selectedProvider ? ( + <> + { + setTransformResult(undefined); + setInstanceKey(`${Math.random()}`); + }} + /> + + ) : null} + + + ); +} diff --git a/apps/web/src/components/importer/index.ts b/apps/web/src/components/importer/index.ts new file mode 100644 index 0000000000..ea10c03172 --- /dev/null +++ b/apps/web/src/components/importer/index.ts @@ -0,0 +1,20 @@ +/* +This file is part of the Notesnook project (https://notesnook.com/) + +Copyright (C) 2023 Streetwriters (Private) Limited + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +export * from "./importer"; diff --git a/apps/web/src/components/importer/types.ts b/apps/web/src/components/importer/types.ts new file mode 100644 index 0000000000..5c69332e31 --- /dev/null +++ b/apps/web/src/components/importer/types.ts @@ -0,0 +1,23 @@ +/* +This file is part of the Notesnook project (https://notesnook.com/) + +Copyright (C) 2023 Streetwriters (Private) Limited + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +export type TransformResult = { + totalNotes: number; + errors: Error[]; +}; diff --git a/apps/web/src/components/list-container/types.ts b/apps/web/src/components/list-container/types.ts index 312ccef37f..9e99d34f53 100644 --- a/apps/web/src/components/list-container/types.ts +++ b/apps/web/src/components/list-container/types.ts @@ -36,7 +36,7 @@ export type Context = } | NotebookContext | { - type: "favorite" | "monographs"; + type: "favorite" | "monographs" | "archive"; }; export type WithDateEdited = { items: T[]; dateEdited: number }; diff --git a/apps/web/src/components/navigation-menu/index.tsx b/apps/web/src/components/navigation-menu/index.tsx index 1056d733e0..01a3bfec4f 100644 --- a/apps/web/src/components/navigation-menu/index.tsx +++ b/apps/web/src/components/navigation-menu/index.tsx @@ -46,7 +46,8 @@ import { Reset, Rename, ExpandSidebar, - HamburgerMenu + HamburgerMenu, + Archive } from "../icons"; import { SortableNavigationItem } from "./navigation-item"; import { @@ -111,7 +112,7 @@ import { showSortMenu } from "../group-header"; import { Freeze } from "react-freeze"; type Route = { - id: "notes" | "favorites" | "reminders" | "monographs" | "trash"; + id: "notes" | "favorites" | "reminders" | "monographs" | "trash" | "archive"; title: string; path: string; icon: Icon; @@ -138,7 +139,13 @@ const routes: Route[] = [ path: "/monographs", icon: Monographs }, - { id: "trash", title: strings.routes.Trash(), path: "/trash", icon: Trash } + { id: "trash", title: strings.routes.Trash(), path: "/trash", icon: Trash }, + { + id: "archive", + title: strings.archive(), + path: "/archive", + icon: Archive + } ]; const tabs = [ @@ -272,7 +279,9 @@ function NavigationMenu({ onExpand }: { onExpand?: () => void }) { }} > store.archive(!note.archived, ...ids), + multiSelect: true + }, { key: "sep1", type: "separator" }, { type: "button", diff --git a/apps/web/src/components/properties/index.tsx b/apps/web/src/components/properties/index.tsx index 32a09ccc72..902dddd03a 100644 --- a/apps/web/src/components/properties/index.tsx +++ b/apps/web/src/components/properties/index.tsx @@ -31,7 +31,8 @@ import { ChevronRight, LinkedTo, ReferencedIn as ReferencedInIcon, - Note as NoteIcon + Note as NoteIcon, + Archive } from "../icons"; import { Box, Button, Flex, Text, FlexProps } from "@theme-ui/components"; import { @@ -83,6 +84,12 @@ const tools = [ label: strings.readOnly(), property: "readonly" }, + { + key: "archive", + icon: Archive, + label: strings.archive(), + property: "archived" + }, { key: "local-only", icon: SyncOff, @@ -837,10 +844,17 @@ export function Section({ } function changeToggleState( - prop: "lock" | "readonly" | "local-only" | "pin" | "favorite", + prop: "lock" | "readonly" | "local-only" | "pin" | "favorite" | "archive", session: ReadonlyEditorSession | DefaultEditorSession ) { - const { id: sessionId, readonly, localOnly, pinned, favorite } = session.note; + const { + id: sessionId, + readonly, + localOnly, + pinned, + favorite, + archived + } = session.note; if (!sessionId) return; switch (prop) { case "lock": @@ -855,6 +869,8 @@ function changeToggleState( return noteStore.pin(!pinned, sessionId); case "favorite": return noteStore.favorite(!favorite, sessionId); + case "archive": + return noteStore.archive(!archived, sessionId); default: return; } diff --git a/apps/web/src/components/split-pane/index.tsx b/apps/web/src/components/split-pane/index.tsx index 469ee73c26..5c43714ba0 100644 --- a/apps/web/src/components/split-pane/index.tsx +++ b/apps/web/src/components/split-pane/index.tsx @@ -62,6 +62,7 @@ export type SplitPaneImperativeHandle = { expand: (index: number) => void; reset: (index: number) => void; isCollapsed: (index: number) => boolean; + hasExpandedSize: (index: number) => boolean; }; export const SplitPane = React.forwardRef< SplitPaneImperativeHandle, @@ -281,8 +282,9 @@ export const SplitPane = React.forwardRef< const currentPane = paneSizes.current[index]; if (!currentPane || !currentPane.collapsed) return; currentPane.collapsed = false; - currentPane.size = - currentPane.expandedSize ?? currentPane.initialSize; + currentPane.size = !!currentPane.expandedSize + ? currentPane.expandedSize + : currentPane.initialSize; currentPane.expandedSize = undefined; setSizes(paneSizes.current, wrapSize.current); }, @@ -296,6 +298,9 @@ export const SplitPane = React.forwardRef< }, isCollapsed: (index: number) => { return paneSizes.current[index].collapsed; + }, + hasExpandedSize: (index: number) => { + return paneSizes.current[index].expandedSize !== undefined; } }; }, @@ -375,6 +380,19 @@ export const SplitPane = React.forwardRef< nextPane.nextSize = undefined; currentPane.nextSize = undefined; + [currentPane, nextPane].forEach((pane) => { + if (pane.size === 0) { + // if pane size is 0, collapsed should be true + pane.collapsed = true; + } + if (pane.min === 0 && pane.size < pane.snap) { + // if pane min is 0, and size is less than snap, collapsed should be true + pane.collapsed = true; + // and size should be set to 0 + pane.size = 0; + } + }); + setSizes(paneSizes.current, wrapSize.current); }, [paneSizes, setSizes, splitAxis] diff --git a/apps/web/src/dialogs/command-palette/command-palette-dialog.tsx b/apps/web/src/dialogs/command-palette/command-palette-dialog.tsx index ecb712dfd8..8688570fb4 100644 --- a/apps/web/src/dialogs/command-palette/command-palette-dialog.tsx +++ b/apps/web/src/dialogs/command-palette/command-palette-dialog.tsx @@ -32,6 +32,7 @@ import Dialog from "../../components/dialog"; import { Cross } from "../../components/icons"; import { CustomScrollbarsVirtualList } from "../../components/list-container"; import { useEditorStore } from "../../stores/editor-store"; +import { useStore as useNoteStore } from "../../stores/note-store"; import { strings } from "@notesnook/intl"; import { isMac } from "../../utils/platform"; import { @@ -117,8 +118,30 @@ export const CommandPaletteDialog = DialogManager.register( }} onKeyDown={(e) => { if (commands.status !== "fulfilled") return; + if (e.key === "Delete") { + e.preventDefault(); + const command = commands.value.commands[selected]; + if (!command) return; + if (command.group !== "recent") return; + removeRecentCommand(command.id); + getDefaultCommands().then((resolved) => { + defaultCommands.current = resolved; + commands.refresh(); + }); + return; + } if (e.key == "Enter") { e.preventDefault(); + + if (e.shiftKey && !props.isCommandMode) { + db.notes.add({ title: query }).then((note) => { + useEditorStore.getState().openSession(note); + useNoteStore.getState().refresh(); + }); + props.onClose(false); + return; + } + const command = commands.value.commands[selected]; if (!command) return; command.action?.(command, { @@ -525,6 +548,10 @@ function getCommandPaletteHelp(isCommandMode: boolean) { key: isMac() ? "⌘⏎" : "Ctrl+⏎", description: strings.openInNewTab() }, + { + key: "Shift+⏎", + description: strings.createNewNote() + }, { key: isMac() ? "⌘K" : "Ctrl+K", description: strings.commandPalette() diff --git a/apps/web/src/dialogs/feature-dialog.tsx b/apps/web/src/dialogs/feature-dialog.tsx index 2cc67a8043..de84e7256e 100644 --- a/apps/web/src/dialogs/feature-dialog.tsx +++ b/apps/web/src/dialogs/feature-dialog.tsx @@ -93,28 +93,26 @@ const features: Record = { ] : [ { - title: "New sidebar UI/UX", + title: "Archive", subtitle: ( <> - Your notebooks & tags are now displayed directly in the - sidebar making organization & navigation much easier. + You can now archive your notes to hide them from the main list. ) }, { - title: "Hierarchical tree view for notebooks", + title: "Integrated Notesnook Importer", subtitle: ( <> - Notebooks are now displayed in a hierarchical tree view so you - can jump back and forth between them easily. + Notesnook Importer is now integrated directly into the app + allowing for faster and more seamless import of your notes. Just + drag and drop your notes from other note-taking apps and viola! ) }, { - title: "Set any tag, color or notebook as homepage", - subtitle: ( - <>You can now set any tag, color or notebook as your homepage. - ) + title: "Improved search", + subtitle: "Search should now be much more accurate and predictable." } ], cta: { diff --git a/apps/web/src/dialogs/onboarding-dialog.tsx b/apps/web/src/dialogs/onboarding-dialog.tsx index f1a5b7c676..74ee9e646e 100644 --- a/apps/web/src/dialogs/onboarding-dialog.tsx +++ b/apps/web/src/dialogs/onboarding-dialog.tsx @@ -48,6 +48,7 @@ import { ErrorText } from "../components/error-text"; import { BuyDialog } from "./buy-dialog"; import { BaseDialogProps, DialogManager } from "../common/dialog-manager"; import { strings } from "@notesnook/intl"; +import { SettingsDialog } from "./settings"; type Step = { title: string; @@ -297,7 +298,9 @@ function Importer({ onClose }: { onClose: () => void }) { variant="accent" sx={{ borderRadius: 50, alignSelf: "center", px: 30 }} onClick={() => { - window.open("https://importer.notesnook.com/", "_blank"); + SettingsDialog.show({ + activeSection: "importer" + }); onClose(); }} > diff --git a/apps/web/src/dialogs/settings/components/importer.tsx b/apps/web/src/dialogs/settings/components/importer.tsx deleted file mode 100644 index 5f81a28f62..0000000000 --- a/apps/web/src/dialogs/settings/components/importer.tsx +++ /dev/null @@ -1,318 +0,0 @@ -/* -This file is part of the Notesnook project (https://notesnook.com/) - -Copyright (C) 2023 Streetwriters (Private) Limited - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -import { strings } from "@notesnook/intl"; -import { Button, Flex, Input, Link, Text, Box } from "@theme-ui/components"; -import { useCallback, useRef, useState } from "react"; -import { useDropzone } from "react-dropzone"; -import { db } from "../../../common/db"; -import { CheckCircleOutline } from "../../../components/icons"; -import Accordion from "../../../components/accordion"; -import { importFiles } from "../../../utils/importer"; -import { useStore as useAppStore } from "../../../stores/app-store"; - -type Provider = { title: string; link: string }; -const POPULAR_PROVIDERS: Provider[] = [ - { - title: "Evernote", - link: "https://help.notesnook.com/importing-notes/import-notes-from-evernote" - }, - { - title: "Simplenote", - link: "https://help.notesnook.com/importing-notes/import-notes-from-simplenote" - }, - { - title: "Google Keep", - link: "https://help.notesnook.com/importing-notes/import-notes-from-googlekeep" - }, - { - title: "Obsidian", - link: "https://help.notesnook.com/importing-notes/import-notes-from-obsidian" - }, - { - title: "Joplin", - link: "https://help.notesnook.com/importing-notes/import-notes-from-joplin" - }, - { - title: "Markdown files", - link: "https://help.notesnook.com/importing-notes/import-notes-from-markdown-files" - }, - { - title: "other apps", - link: "https://help.notesnook.com/importing-notes/" - } -]; - -export function Importer() { - const [isDone, setIsDone] = useState(false); - const [isImporting, setIsImporting] = useState(false); - const [files, setFiles] = useState([]); - const [errors, setErrors] = useState([]); - const notesCounter = useRef(null); - const importProgress = useRef(null); - - const onDrop = useCallback((acceptedFiles: File[]) => { - setFiles((files) => { - const newFiles = [...acceptedFiles, ...files]; - return newFiles; - }); - }, []); - - const { getRootProps, getInputProps, isDragActive } = useDropzone({ - onDrop, - accept: { - "application/zip": [".zip"] - } - }); - - return ( - - {isImporting ? ( - <> - - 0 {strings.notesImported()}. - - - - - ) : isDone ? ( - <> - - - {strings.importCompleted()}. {strings.errorsOccured(errors.length)} - - - {errors.length > 0 && ( - - {errors.map((error) => ( - - {error.message} - - ))} - - )} - - ) : ( - <> - - - Quick start guide: - - - - Go to{" "} - - https://importer.notesnook.com/ - - - - Select the app you want to import from. - - - Drag drop or select the files you exported from the other app. - - - Start the importer and wait for it to complete processing. - - - Download the .zip file from the Importer. - - - Drop the .zip file below to complete your import. - - - - - For detailed steps with screenshots, refer to the help article for - each app: - - - {POPULAR_PROVIDERS.map((provider) => ( - - ))} - - - - - - {isDragActive - ? strings.dropFilesHere() - : strings.dragAndDropFiles()} -
- {strings.onlyZipSupported()} -
- - {files.map((file, i) => ( - { - setFiles((files) => { - const cloned = files.slice(); - cloned.splice(i, 1); - return cloned; - }); - }} - variant="body" - title="Click to remove" - > - {file.name} - - ))} - -
- {/* - - */} - - - )} -
- ); -} diff --git a/apps/web/src/dialogs/settings/importer-settings.ts b/apps/web/src/dialogs/settings/importer-settings.ts index 44c2d74f60..46ed2bc3c1 100644 --- a/apps/web/src/dialogs/settings/importer-settings.ts +++ b/apps/web/src/dialogs/settings/importer-settings.ts @@ -18,7 +18,7 @@ along with this program. If not, see . */ import { SettingsGroup } from "./types"; -import { Importer } from "./components/importer"; +import { Importer } from "../../components/importer"; export const ImporterSettings: SettingsGroup[] = [ { diff --git a/apps/web/src/hooks/use-menu.ts b/apps/web/src/hooks/use-menu.ts index f303f479dc..e48f56041a 100644 --- a/apps/web/src/hooks/use-menu.ts +++ b/apps/web/src/hooks/use-menu.ts @@ -20,7 +20,8 @@ along with this program. If not, see . import { create } from "zustand"; import { shallow } from "zustand/shallow"; import { MenuItem, PositionOptions } from "@notesnook/ui"; -// import { isUserPremium } from "./use-is-user-premium"; +import { desktop } from "../common/desktop-bridge"; +import { isMac } from "../utils/platform"; type MenuOptions = { position?: PositionOptions; @@ -43,7 +44,24 @@ const useMenuStore = create((set) => ({ options: { blocking: false }, - open: (items, options) => set(() => ({ isOpen: true, items, options })), + open: async (items, options) => { + if (IS_DESKTOP_APP && canShowNativeMenu(items) && isMac()) { + const resolvedItems = await resolveMenuItems(items); + desktop?.integration.showMenu.subscribe( + { + menuItems: JSON.parse(JSON.stringify(resolvedItems)) + }, + { + onData(ids) { + findAndCallAction(resolvedItems, ids); + } + } + ); + set(() => ({ options })); + } else { + set(() => ({ isOpen: true, items, options })); + } + }, close: () => set(() => ({ isOpen: false, @@ -84,3 +102,35 @@ export function useMenu() { ]); return { items, options }; } + +async function resolveMenuItems(items: MenuItem[]): Promise { + const serialized = []; + for (const item of items) { + if (item.type === "lazy-loader") + serialized.push(...(await resolveMenuItems(await item.items()))); + else if (item.type === "button") { + if (item.menu) item.menu.items = await resolveMenuItems(item.menu.items); + serialized.push(item); + } else serialized.push(item); + } + return serialized; +} + +function findAndCallAction(items: MenuItem[], ids: string[]) { + let _items: MenuItem[] = items; + const actionId = ids.at(-1); + for (const id of ids) { + const item = _items.find((item) => item.key === id); + if (!item || item?.type !== "button") continue; + console.log(item); + if (id === actionId) { + item?.onClick?.(); + } else { + _items = item.menu?.items || []; + } + } +} + +function canShowNativeMenu(items: MenuItem[]) { + return items.every((item) => item.type !== "popup"); +} diff --git a/apps/web/src/hooks/use-tip.ts b/apps/web/src/hooks/use-tip.ts index 052f254998..c18235f625 100644 --- a/apps/web/src/hooks/use-tip.ts +++ b/apps/web/src/hooks/use-tip.ts @@ -48,6 +48,7 @@ export type TipContext = | "reminders" | "monographs" | "trash" + | "archive" | "attachments"; export type Tip = { @@ -207,5 +208,8 @@ const DEFAULT_TIPS: Record> = { trash: { text: "" }, + archive: { + text: strings.yourArchiveIsEmpty() + }, search: { text: "" } }; diff --git a/apps/web/src/navigation/routes.tsx b/apps/web/src/navigation/routes.tsx index 28a279de69..4cdf7d4d81 100644 --- a/apps/web/src/navigation/routes.tsx +++ b/apps/web/src/navigation/routes.tsx @@ -105,6 +105,15 @@ const routes = defineRoutes({ component: Trash }); }, + "/archive": () => { + useNoteStore.getState().setContext({ type: "archive" }); + return defineRoute({ + key: "notes", + title: strings.archive(), + type: "notes", + component: Notes + }); + }, "/tags/:tagId": async ({ tagId }) => { const tag = await db.tags.tag(tagId); if (!tag) return NOT_FOUND_ROUTE; diff --git a/apps/web/src/stores/editor-store.ts b/apps/web/src/stores/editor-store.ts index 9ef75de49f..cb2e120bd8 100644 --- a/apps/web/src/stores/editor-store.ts +++ b/apps/web/src/stores/editor-store.ts @@ -164,7 +164,8 @@ export type DocumentPreview = { export function isLockedSession(session: EditorSession): boolean { return ( session.type === "locked" || - (session.type === "default" && !!session.locked) || + ((session.type === "default" || session.type === "readonly") && + !!session.locked) || ("content" in session && !!session.content && "locked" in session.content && @@ -382,6 +383,8 @@ class EditorStore extends BaseStore { event.item.localOnly ?? session.note.localOnly; session.note.favorite = event.item.favorite ?? session.note.favorite; + session.note.archived = + event.item.archived ?? session.note.archived; session.note.dateEdited = event.item.dateEdited ?? session.note.dateEdited; }); @@ -830,6 +833,18 @@ class EditorStore extends BaseStore { } }; + openSessionInTab = async (noteId: string, tabId: string) => { + const { tabs } = this.get(); + const tab = tabs.find((t) => t.id === tabId); + if (!tab) { + this.openSession(noteId, { openInNewTab: true }); + return; + } + + this.focusTab(tabId); + this.openSession(noteId, { force: true }); + }; + focusNextTab = () => { const { tabs, activeTabId } = this.get(); if (tabs.length <= 1) return; @@ -849,13 +864,13 @@ class EditorStore extends BaseStore { }; focusLastActiveTab = () => { - const history = useEditorStore.getState().history; - if (history.length < 2) return; + const { tabs, history, focusTab } = this.get(); + if (tabs.length < 2 || history.length < 2) return; const previousTab = history.at(-2); if (!previousTab) return; - useEditorStore.getState().focusTab(previousTab); + focusTab(previousTab); }; goBack = async () => { diff --git a/apps/web/src/stores/note-store.ts b/apps/web/src/stores/note-store.ts index 9a1ce6621a..fb57118aac 100644 --- a/apps/web/src/stores/note-store.ts +++ b/apps/web/src/stores/note-store.ts @@ -62,7 +62,11 @@ class NoteStore extends BaseStore { contextNotes: context ? await notesFromContext(context).grouped( db.settings.getGroupOptions( - context.type === "favorite" ? "favorites" : "notes" + context.type === "favorite" + ? "favorites" + : context.type === "archive" + ? "archive" + : "notes" ) ) : undefined @@ -85,6 +89,11 @@ class NoteStore extends BaseStore { await this.refresh(); }; + archive = async (state: boolean, ...ids: string[]) => { + await db.notes.archive(state, ...ids); + await this.refresh(); + }; + unlock = async (id: string) => { return await Vault.unlockNote(id).then(async (res) => { await this.refresh(); @@ -141,6 +150,8 @@ export function notesFromContext(context: Context) { .selector; case "favorite": return db.notes.favorites; + case "archive": + return db.notes.archived; case "monographs": return db.monographs.all; } diff --git a/apps/web/src/utils/config.ts b/apps/web/src/utils/config.ts index 9c2eb893e4..46907a3f27 100644 --- a/apps/web/src/utils/config.ts +++ b/apps/web/src/utils/config.ts @@ -66,7 +66,8 @@ function logout() { "theme:light", "theme:dark", "colorScheme", - "followSystemTheme" + "followSystemTheme", + "doubleSpacedLines" ]; const vals = {} as Record; diff --git a/apps/web/src/utils/importer.ts b/apps/web/src/utils/importer.ts index 0263eb0eed..1b01c482f0 100644 --- a/apps/web/src/utils/importer.ts +++ b/apps/web/src/utils/importer.ts @@ -17,80 +17,21 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -import { db } from "../common/db"; import { - Note, - Notebook, ContentType, - LegacyNotebook + Note, + Notebook } from "@notesnook-importer/core/dist/src/models"; -import { - ATTACHMENTS_DIRECTORY_NAME, - NOTE_DATA_FILENAME -} from "@notesnook-importer/core/dist/src/utils/note-stream"; -import { path } from "@notesnook-importer/core/dist/src/utils/path"; -import { type ZipEntry } from "./streams/unzip-stream"; -import { hashBuffer, writeEncryptedFile } from "../interfaces/fs"; import { Notebook as NotebookType } from "@notesnook/core"; +import { SerializedKey } from "@notesnook/crypto"; +import { db } from "../common/db"; +import { writeEncryptedFile } from "../interfaces/fs"; -export async function* importFiles(zipFiles: File[]) { - const { createUnzipIterator } = await import("./streams/unzip-stream"); - - for (const zip of zipFiles) { - let count = 0; - let filesRead = 0; - - const attachments: Record = {}; - - for await (const entry of createUnzipIterator(zip)) { - ++filesRead; - - const isAttachment = entry.name.includes( - `/${ATTACHMENTS_DIRECTORY_NAME}/` - ); - const isNote = !isAttachment && entry.name.endsWith(NOTE_DATA_FILENAME); - - try { - if (isAttachment) { - await processAttachment(entry, attachments); - } else if (isNote) { - await processNote(entry, attachments); - ++count; - } - } catch (e) { - if (e instanceof Error) yield { type: "error" as const, error: e }; - } - - yield { - type: "progress" as const, - count, - filesRead - }; - } - } -} - -async function processAttachment( - entry: ZipEntry, - attachments: Record -) { - const name = path.basename(entry.name); - if (!name || attachments[name] || (await db.attachments?.exists(name))) - return; - - const data = await entry.arrayBuffer(); - const { hash } = await hashBuffer(new Uint8Array(data)); - if (hash !== name) { - throw new Error(`integrity check failed: ${name} !== ${hash}`); - } - - const file = new File([data], name, { - type: "application/octet-stream" - }); - const key = await db.attachments?.generateKey(); - const cipherData = await writeEncryptedFile(file, key, name); - attachments[name] = { ...cipherData, key }; -} +type EncryptedAttachmentFields = Awaited< + ReturnType +> & { + key: SerializedKey; +}; const colorMap: Record = { default: undefined, @@ -107,19 +48,50 @@ const colorMap: Record = { yellow: "#FFC107" }; -async function processNote(entry: ZipEntry, attachments: Record) { - const note = await fileToJson(entry); +export async function importNote(note: Note) { + const encryptedAttachmentFieldsMap = await processAttachments( + note.attachments + ); + await processNote(note, encryptedAttachmentFieldsMap); +} + +async function processAttachments(attachments: Note["attachments"]) { + if (!attachments) return {}; + + const map: Record = {}; + for (const { hash, filename, data } of attachments) { + if (!data || !hash || map[hash]) { + continue; + } + const exists = await db.attachments?.exists(hash); + if (exists) continue; + + const file = new File([data], filename, { + type: "application/octet-stream" + }); + const key = await db.attachments?.generateKey(); + const cipherData = await writeEncryptedFile(file, key, hash); + map[hash] = { ...cipherData, key }; + } + return map; +} + +async function processNote( + note: Note, + map: Record +) { for (const attachment of note.attachments || []) { - const cipherData = attachments[attachment.hash]; - if (!cipherData || (await db.attachments?.exists(attachment.hash))) + const cipherData = map[attachment.hash]; + if (!cipherData || (await db.attachments?.exists(attachment.hash))) { continue; + } await db.attachments?.add({ ...cipherData, hash: attachment.hash, hashType: attachment.hashType, filename: attachment.filename, - type: attachment.mime + mimeType: attachment.mime }); } @@ -185,39 +157,13 @@ async function processNote(entry: ZipEntry, attachments: Record) { } for (const nb of notebooks) { - if ("notebook" in nb) { - const notebookId = await importLegacyNotebook(nb).catch(() => undefined); - if (!notebookId) continue; + const notebookIds = await importNotebook(nb).catch(() => undefined); + if (!notebookIds) continue; + for (const notebookId of notebookIds) await db.notes.addToNotebook(notebookId, noteId); - } else { - const notebookIds = await importNotebook(nb).catch(() => undefined); - if (!notebookIds) continue; - for (const notebookId of notebookIds) - await db.notes.addToNotebook(notebookId, noteId); - } } } -async function fileToJson(file: ZipEntry) { - const text = await file.text(); - return JSON.parse(text) as T; -} - -/** - * @deprecated - */ -async function importLegacyNotebook( - notebook: LegacyNotebook | undefined -): Promise { - if (!notebook) return; - const nb = await db.notebooks.find(notebook.notebook); - return nb - ? nb.id - : await db.notebooks.add({ - title: notebook.notebook - }); -} - async function importNotebook( notebook: Notebook, parent?: NotebookType diff --git a/apps/web/src/views/notes.tsx b/apps/web/src/views/notes.tsx index c6f9bcbea4..351bbb4144 100644 --- a/apps/web/src/views/notes.tsx +++ b/apps/web/src/views/notes.tsx @@ -35,7 +35,12 @@ function Notes(props: NotesProps) { const context = useNotesStore((store) => store.context); const contextNotes = useNotesStore((store) => store.contextNotes); const refreshContext = useNotesStore((store) => store.refreshContext); - const type = context?.type === "favorite" ? "favorites" : "notes"; + const type = + context?.type === "favorite" + ? "favorites" + : context?.type === "archive" + ? "archive" + : "notes"; const isCompact = useNotesStore((store) => store.viewMode === "compact"); const filteredItems = useSearch( context?.type === "notebook" ? "notebook" : "notes", @@ -62,6 +67,8 @@ function Notes(props: NotesProps) { context={ context.type === "favorite" ? "favorites" + : context.type === "archive" + ? "archive" : context.type === "monographs" ? "monographs" : "notes" diff --git a/fastlane/metadata/android/en-US/changelogs/15254.txt b/fastlane/metadata/android/en-US/changelogs/15254.txt new file mode 100644 index 0000000000..c41a5dc8c0 --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/15254.txt @@ -0,0 +1,3 @@ +- Bug fixes + +Thank you for using Notesnook! \ No newline at end of file diff --git a/packages/common/package-lock.json b/packages/common/package-lock.json index 94bb2d2bf0..6a0daf84b9 100644 --- a/packages/common/package-lock.json +++ b/packages/common/package-lock.json @@ -1,7 +1,7 @@ { "name": "@notesnook/common", "version": "2.1.3", - "lockfileVersion": 2, + "lockfileVersion": 3, "requires": true, "packages": { "": { @@ -56,8 +56,7 @@ "prismjs": "^1.29.0", "qclone": "^1.2.0", "rfdc": "^1.3.0", - "spark-md5": "^3.0.2", - "sqlite-better-trigram": "0.0.2" + "spark-md5": "^3.0.2" }, "devDependencies": { "@notesnook/crypto": "file:../crypto", @@ -83,671 +82,417 @@ "nanoid": "5.0.7", "otplib": "^12.0.1", "refractor": "^4.8.1", + "sqlite-better-trigram": "^0.0.3", + "sqlite3-fts5-html": "^0.0.2", "vitest": "2.1.8", "vitest-fetch-mock": "^0.2.2", "ws": "^8.13.0" } }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", - "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", - "cpu": [ - "ppc64" - ], + "../core/node_modules/@ampproject/remapping": { + "version": "2.3.0", "dev": true, - "optional": true, - "os": [ - "aix" - ], + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, "engines": { - "node": ">=12" + "node": ">=6.0.0" } }, - "node_modules/@esbuild/android-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", - "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", - "cpu": [ - "arm" - ], + "../core/node_modules/@babel/helper-string-parser": { + "version": "7.25.9", "dev": true, - "optional": true, - "os": [ - "android" - ], + "license": "MIT", "engines": { - "node": ">=12" + "node": ">=6.9.0" } }, - "node_modules/@esbuild/android-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", - "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", - "cpu": [ - "arm64" - ], + "../core/node_modules/@babel/helper-validator-identifier": { + "version": "7.25.9", "dev": true, - "optional": true, - "os": [ - "android" - ], + "license": "MIT", "engines": { - "node": ">=12" + "node": ">=6.9.0" } }, - "node_modules/@esbuild/android-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", - "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", - "cpu": [ - "x64" - ], + "../core/node_modules/@babel/parser": { + "version": "7.26.5", "dev": true, - "optional": true, - "os": [ - "android" - ], + "license": "MIT", + "dependencies": { + "@babel/types": "^7.26.5" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, "engines": { - "node": ">=12" + "node": ">=6.0.0" } }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", - "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", - "cpu": [ - "arm64" - ], + "../core/node_modules/@babel/types": { + "version": "7.26.5", "dev": true, - "optional": true, - "os": [ - "darwin" - ], + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" } }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", - "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", - "cpu": [ - "x64" - ], + "../core/node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } + "license": "MIT" }, - "node_modules/@esbuild/freebsd-arm64": { + "../core/node_modules/@esbuild/darwin-arm64": { "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", - "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ - "freebsd" + "darwin" ], "engines": { "node": ">=12" } }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", - "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", - "cpu": [ - "x64" - ], + "../core/node_modules/@isaacs/cliui": { + "version": "8.0.2", "dev": true, - "optional": true, - "os": [ - "freebsd" - ], + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, "engines": { "node": ">=12" } }, - "node_modules/@esbuild/linux-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", - "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", - "cpu": [ - "arm" - ], + "../core/node_modules/@istanbuljs/schema": { + "version": "0.1.3", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "license": "MIT", "engines": { - "node": ">=12" + "node": ">=8" } }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", - "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", - "cpu": [ - "arm64" - ], + "../core/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.8", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, "engines": { - "node": ">=12" + "node": ">=6.0.0" } }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", - "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", - "cpu": [ - "ia32" - ], + "../core/node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "license": "MIT", "engines": { - "node": ">=12" + "node": ">=6.0.0" } }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", - "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", - "cpu": [ - "loong64" - ], + "../core/node_modules/@jridgewell/set-array": { + "version": "1.2.1", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "license": "MIT", "engines": { - "node": ">=12" + "node": ">=6.0.0" } }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", - "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", - "cpu": [ - "mips64el" - ], + "../core/node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } + "license": "MIT" }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", - "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", - "cpu": [ - "ppc64" - ], + "../core/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", - "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", - "cpu": [ - "riscv64" - ], + "../core/node_modules/@leeoniya/ufuzzy": { + "version": "1.0.14", "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } + "license": "MIT" }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", - "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", - "cpu": [ - "s390x" - ], + "../core/node_modules/@microsoft/signalr": { + "version": "8.0.0", "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "eventsource": "^2.0.2", + "fetch-cookie": "^2.0.3", + "node-fetch": "^2.6.7", + "ws": "^7.4.5" } }, - "node_modules/@esbuild/linux-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", - "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", - "cpu": [ - "x64" - ], + "../core/node_modules/@microsoft/signalr/node_modules/ws": { + "version": "7.5.9", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "license": "MIT", "engines": { - "node": ">=12" + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } } }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", - "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", - "cpu": [ - "x64" - ], + "../core/node_modules/@notesnook/crypto": { + "resolved": "../crypto", + "link": true + }, + "../core/node_modules/@notesnook/logger": { + "resolved": "../logger", + "link": true + }, + "../core/node_modules/@otplib/core": { + "version": "12.0.1", "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } + "license": "MIT" }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", - "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", - "cpu": [ - "x64" - ], + "../core/node_modules/@otplib/plugin-crypto": { + "version": "12.0.1", "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" + "license": "MIT", + "dependencies": { + "@otplib/core": "^12.0.1" } }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", - "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", - "cpu": [ - "x64" - ], + "../core/node_modules/@otplib/plugin-thirty-two": { + "version": "12.0.1", "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" + "license": "MIT", + "dependencies": { + "@otplib/core": "^12.0.1", + "thirty-two": "^1.0.2" } }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", - "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", - "cpu": [ - "arm64" - ], + "../core/node_modules/@otplib/preset-default": { + "version": "12.0.1", "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" + "license": "MIT", + "dependencies": { + "@otplib/core": "^12.0.1", + "@otplib/plugin-crypto": "^12.0.1", + "@otplib/plugin-thirty-two": "^12.0.1" } }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", - "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", - "cpu": [ - "ia32" - ], + "../core/node_modules/@otplib/preset-v11": { + "version": "12.0.1", "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" + "license": "MIT", + "dependencies": { + "@otplib/core": "^12.0.1", + "@otplib/plugin-crypto": "^12.0.1", + "@otplib/plugin-thirty-two": "^12.0.1" } }, - "node_modules/@esbuild/win32-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", - "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", - "cpu": [ - "x64" - ], + "../core/node_modules/@pkgjs/parseargs": { + "version": "0.11.0", "dev": true, + "license": "MIT", "optional": true, - "os": [ - "win32" - ], "engines": { - "node": ">=12" + "node": ">=14" } }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", - "dev": true - }, - "node_modules/@notesnook/core": { - "resolved": "../core", - "link": true - }, - "node_modules/@readme/data-urls": { + "../core/node_modules/@readme/data-urls": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@readme/data-urls/-/data-urls-3.0.0.tgz", - "integrity": "sha512-b0L7VWqbLZqOSSAFUrxS5ZwUfec35WDsAwwCH481vYnhk0dWO3nvmNVNCbP8CY4cXqwL1W4uCAnhDz+CUmXM3g==", + "dev": true, + "license": "ISC", "engines": { "node": ">=18" } }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.31.0.tgz", - "integrity": "sha512-9NrR4033uCbUBRgvLcBrJofa2KY9DzxL2UKZ1/4xA/mnTNyhZCWBuD8X3tPm1n4KxcgaraOYgrFKSgwjASfmlA==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { + "../core/node_modules/@rollup/rollup-darwin-arm64": { "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.31.0.tgz", - "integrity": "sha512-iBbODqT86YBFHajxxF8ebj2hwKm1k8PTBQSojSt3d1FFt1gN+xf4CowE47iN0vOSdnd+5ierMHBbu/rHc7nq5g==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ - "android" + "darwin" ] }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.31.0.tgz", - "integrity": "sha512-WHIZfXgVBX30SWuTMhlHPXTyN20AXrLH4TEeH/D0Bolvx9PjgZnn4H677PlSGvU6MKNsjCQJYczkpvBbrBnG6g==", - "cpu": [ - "arm64" - ], + "../core/node_modules/@selderee/plugin-htmlparser2": { + "version": "0.11.0", "dev": true, - "optional": true, - "os": [ - "darwin" - ] + "license": "MIT", + "dependencies": { + "domhandler": "^5.0.3", + "selderee": "^0.11.0" + }, + "funding": { + "url": "https://ko-fi.com/killymxi" + } }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.31.0.tgz", - "integrity": "sha512-hrWL7uQacTEF8gdrQAqcDy9xllQ0w0zuL1wk1HV8wKGSGbKPVjVUv/DEwT2+Asabf8Dh/As+IvfdU+H8hhzrQQ==", - "cpu": [ - "x64" - ], + "../core/node_modules/@streetwriters/kysely": { + "version": "0.27.4", "dev": true, - "optional": true, - "os": [ - "darwin" - ] + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } }, - "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.31.0.tgz", - "integrity": "sha512-S2oCsZ4hJviG1QjPY1h6sVJLBI6ekBeAEssYKad1soRFv3SocsQCzX6cwnk6fID6UQQACTjeIMB+hyYrFacRew==", - "cpu": [ - "arm64" - ], + "../core/node_modules/@streetwriters/showdown": { + "version": "3.0.9-alpha", "dev": true, - "optional": true, - "os": [ - "freebsd" - ] + "license": "MIT", + "bin": { + "showdown": "bin/showdown.js" + }, + "funding": { + "type": "individual", + "url": "https://www.paypal.me/tiviesantos" + } }, - "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.31.0.tgz", - "integrity": "sha512-pCANqpynRS4Jirn4IKZH4tnm2+2CqCNLKD7gAdEjzdLGbH1iO0zouHz4mxqg0uEMpO030ejJ0aA6e1PJo2xrPA==", - "cpu": [ - "x64" - ], + "../core/node_modules/@types/better-sqlite3": { + "version": "7.6.9", "dev": true, - "optional": true, - "os": [ - "freebsd" - ] + "license": "MIT", + "dependencies": { + "@types/node": "*" + } }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.31.0.tgz", - "integrity": "sha512-0O8ViX+QcBd3ZmGlcFTnYXZKGbFu09EhgD27tgTdGnkcYXLat4KIsBBQeKLR2xZDCXdIBAlWLkiXE1+rJpCxFw==", - "cpu": [ - "arm" - ], + "../core/node_modules/@types/estree": { + "version": "1.0.6", "dev": true, - "optional": true, - "os": [ - "linux" - ] + "license": "MIT" }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.31.0.tgz", - "integrity": "sha512-w5IzG0wTVv7B0/SwDnMYmbr2uERQp999q8FMkKG1I+j8hpPX2BYFjWe69xbhbP6J9h2gId/7ogesl9hwblFwwg==", - "cpu": [ - "arm" - ], + "../core/node_modules/@types/event-source-polyfill": { + "version": "1.0.5", "dev": true, - "optional": true, - "os": [ - "linux" - ] + "license": "MIT" }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.31.0.tgz", - "integrity": "sha512-JyFFshbN5xwy6fulZ8B/8qOqENRmDdEkcIMF0Zz+RsfamEW+Zabl5jAb0IozP/8UKnJ7g2FtZZPEUIAlUSX8cA==", - "cpu": [ - "arm64" - ], + "../core/node_modules/@types/hast": { + "version": "2.3.5", "dev": true, - "optional": true, - "os": [ - "linux" - ] + "license": "MIT", + "dependencies": { + "@types/unist": "^2" + } }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.31.0.tgz", - "integrity": "sha512-kpQXQ0UPFeMPmPYksiBL9WS/BDiQEjRGMfklVIsA0Sng347H8W2iexch+IEwaR7OVSKtr2ZFxggt11zVIlZ25g==", - "cpu": [ - "arm64" - ], + "../core/node_modules/@types/hast/node_modules/@types/unist": { + "version": "2.0.11", "dev": true, - "optional": true, - "os": [ - "linux" - ] + "license": "MIT" }, - "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.31.0.tgz", - "integrity": "sha512-pMlxLjt60iQTzt9iBb3jZphFIl55a70wexvo8p+vVFK+7ifTRookdoXX3bOsRdmfD+OKnMozKO6XM4zR0sHRrQ==", - "cpu": [ - "loong64" - ], + "../core/node_modules/@types/html-to-text": { + "version": "9.0.0", "dev": true, - "optional": true, - "os": [ - "linux" - ] + "license": "MIT" }, - "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.31.0.tgz", - "integrity": "sha512-D7TXT7I/uKEuWiRkEFbed1UUYZwcJDU4vZQdPTcepK7ecPhzKOYk4Er2YR4uHKme4qDeIh6N3XrLfpuM7vzRWQ==", - "cpu": [ - "ppc64" - ], + "../core/node_modules/@types/katex": { + "version": "0.16.7", "dev": true, - "optional": true, - "os": [ - "linux" - ] + "license": "MIT" }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.31.0.tgz", - "integrity": "sha512-wal2Tc8O5lMBtoePLBYRKj2CImUCJ4UNGJlLwspx7QApYny7K1cUYlzQ/4IGQBLmm+y0RS7dwc3TDO/pmcneTw==", - "cpu": [ - "riscv64" - ], + "../core/node_modules/@types/mime-db": { + "version": "1.43.5", "dev": true, - "optional": true, - "os": [ - "linux" - ] + "license": "MIT" }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.31.0.tgz", - "integrity": "sha512-O1o5EUI0+RRMkK9wiTVpk2tyzXdXefHtRTIjBbmFREmNMy7pFeYXCFGbhKFwISA3UOExlo5GGUuuj3oMKdK6JQ==", - "cpu": [ - "s390x" - ], + "../core/node_modules/@types/node": { + "version": "18.11.9", "dev": true, - "optional": true, - "os": [ - "linux" - ] + "license": "MIT" }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.31.0.tgz", - "integrity": "sha512-zSoHl356vKnNxwOWnLd60ixHNPRBglxpv2g7q0Cd3Pmr561gf0HiAcUBRL3S1vPqRC17Zo2CX/9cPkqTIiai1g==", - "cpu": [ - "x64" - ], + "../core/node_modules/@types/prismjs": { + "version": "1.26.4", "dev": true, - "optional": true, - "os": [ - "linux" - ] + "license": "MIT" }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.31.0.tgz", - "integrity": "sha512-ypB/HMtcSGhKUQNiFwqgdclWNRrAYDH8iMYH4etw/ZlGwiTVxBz2tDrGRrPlfZu6QjXwtd+C3Zib5pFqID97ZA==", - "cpu": [ - "x64" - ], + "../core/node_modules/@types/spark-md5": { + "version": "3.0.4", "dev": true, - "optional": true, - "os": [ - "linux" - ] + "license": "MIT" }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.31.0.tgz", - "integrity": "sha512-JuhN2xdI/m8Hr+aVO3vspO7OQfUFO6bKLIRTAy0U15vmWjnZDLrEgCZ2s6+scAYaQVpYSh9tZtRijApw9IXyMw==", - "cpu": [ - "arm64" - ], + "../core/node_modules/@types/streetwriters__showdown": { + "name": "@types/showdown", + "version": "2.0.6", "dev": true, - "optional": true, - "os": [ - "win32" - ] + "license": "MIT" }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.31.0.tgz", - "integrity": "sha512-U1xZZXYkvdf5MIWmftU8wrM5PPXzyaY1nGCI4KI4BFfoZxHamsIe+BtnPLIvvPykvQWlVbqUXdLa4aJUuilwLQ==", - "cpu": [ - "ia32" - ], + "../core/node_modules/@types/unist": { + "version": "3.0.3", "dev": true, - "optional": true, - "os": [ - "win32" - ] + "license": "MIT" }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.31.0.tgz", - "integrity": "sha512-ul8rnCsUumNln5YWwz0ted2ZHFhzhRRnkpBZ+YRuHoRAlUji9KChpOUOndY7uykrPEPXVbHLlsdo6v5yXo/TXw==", - "cpu": [ - "x64" - ], + "../core/node_modules/@types/ws": { + "version": "8.5.10", "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@types/estree": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", - "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", - "dev": true - }, - "node_modules/@types/prop-types": { - "version": "15.7.5", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", - "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==", - "dev": true + "license": "MIT", + "dependencies": { + "@types/node": "*" + } }, - "node_modules/@types/react": { - "version": "18.3.5", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.5.tgz", - "integrity": "sha512-WeqMfGJLGuLCqHGYRGHxnKrXcTitc6L/nBUWfWPcTarG3t9PsquqUMuVeXZeca+mglY4Vo5GZjCi0A3Or2lnxA==", + "../core/node_modules/@vitest/coverage-v8": { + "version": "2.1.8", "dev": true, + "license": "MIT", "dependencies": { - "@types/prop-types": "*", - "csstype": "^3.0.2" + "@ampproject/remapping": "^2.3.0", + "@bcoe/v8-coverage": "^0.2.3", + "debug": "^4.3.7", + "istanbul-lib-coverage": "^3.2.2", + "istanbul-lib-report": "^3.0.1", + "istanbul-lib-source-maps": "^5.0.6", + "istanbul-reports": "^3.1.7", + "magic-string": "^0.30.12", + "magicast": "^0.3.5", + "std-env": "^3.8.0", + "test-exclude": "^7.0.1", + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@vitest/browser": "2.1.8", + "vitest": "2.1.8" + }, + "peerDependenciesMeta": { + "@vitest/browser": { + "optional": true + } } }, - "node_modules/@vitest/expect": { + "../core/node_modules/@vitest/expect": { "version": "2.1.8", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-2.1.8.tgz", - "integrity": "sha512-8ytZ/fFHq2g4PJVAtDX57mayemKgDR6X3Oa2Foro+EygiOJHUXhCqBAAKQYYajZpFoIfvBCF1j6R6IYRSIUFuw==", "dev": true, + "license": "MIT", "dependencies": { "@vitest/spy": "2.1.8", "@vitest/utils": "2.1.8", @@ -758,11 +503,10 @@ "url": "https://opencollective.com/vitest" } }, - "node_modules/@vitest/mocker": { + "../core/node_modules/@vitest/mocker": { "version": "2.1.8", - "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-2.1.8.tgz", - "integrity": "sha512-7guJ/47I6uqfttp33mgo6ga5Gr1VnL58rcqYKyShoRK9ebu8T5Rs6HN3s1NABiBeVTdWNrwUMcHH54uXZBN4zA==", "dev": true, + "license": "MIT", "dependencies": { "@vitest/spy": "2.1.8", "estree-walker": "^3.0.3", @@ -784,11 +528,10 @@ } } }, - "node_modules/@vitest/pretty-format": { + "../core/node_modules/@vitest/pretty-format": { "version": "2.1.8", - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.8.tgz", - "integrity": "sha512-9HiSZ9zpqNLKlbIDRWOnAWqgcA7xu+8YxXSekhr0Ykab7PAYFkhkwoqVArPOtJhPmYeE2YHgKZlj3CP36z2AJQ==", "dev": true, + "license": "MIT", "dependencies": { "tinyrainbow": "^1.2.0" }, @@ -796,11 +539,10 @@ "url": "https://opencollective.com/vitest" } }, - "node_modules/@vitest/runner": { + "../core/node_modules/@vitest/runner": { "version": "2.1.8", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-2.1.8.tgz", - "integrity": "sha512-17ub8vQstRnRlIU5k50bG+QOMLHRhYPAna5tw8tYbj+jzjcspnwnwtPtiOlkuKC4+ixDPTuLZiqiWWQ2PSXHVg==", "dev": true, + "license": "MIT", "dependencies": { "@vitest/utils": "2.1.8", "pathe": "^1.1.2" @@ -809,11 +551,10 @@ "url": "https://opencollective.com/vitest" } }, - "node_modules/@vitest/snapshot": { + "../core/node_modules/@vitest/snapshot": { "version": "2.1.8", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-2.1.8.tgz", - "integrity": "sha512-20T7xRFbmnkfcmgVEz+z3AU/3b0cEzZOt/zmnvZEctg64/QZbSDJEVm9fLnnlSi74KibmRsO9/Qabi+t0vCRPg==", "dev": true, + "license": "MIT", "dependencies": { "@vitest/pretty-format": "2.1.8", "magic-string": "^0.30.12", @@ -823,11 +564,10 @@ "url": "https://opencollective.com/vitest" } }, - "node_modules/@vitest/spy": { + "../core/node_modules/@vitest/spy": { "version": "2.1.8", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-2.1.8.tgz", - "integrity": "sha512-5swjf2q95gXeYPevtW0BLk6H8+bPlMb4Vw/9Em4hFxDcaOxS+e0LOX4yqNxoHzMR2akEB2xfpnWUzkZokmgWDg==", "dev": true, + "license": "MIT", "dependencies": { "tinyspy": "^3.0.2" }, @@ -835,11 +575,10 @@ "url": "https://opencollective.com/vitest" } }, - "node_modules/@vitest/utils": { + "../core/node_modules/@vitest/utils": { "version": "2.1.8", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.1.8.tgz", - "integrity": "sha512-dwSoui6djdwbfFmIgbIjX2ZhIoG7Ex/+xpxyiEgIGzjliY8xGkcpITKTlp6B4MgtGkF2ilvm97cPM96XZaAgcA==", "dev": true, + "license": "MIT", "dependencies": { "@vitest/pretty-format": "2.1.8", "loupe": "^3.1.2", @@ -849,29 +588,165 @@ "url": "https://opencollective.com/vitest" } }, - "node_modules/assertion-error": { + "../core/node_modules/abort-controller": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, + "../core/node_modules/abortcontroller-polyfill": { + "version": "1.7.5", + "dev": true, + "license": "MIT" + }, + "../core/node_modules/ansi-regex": { + "version": "6.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "../core/node_modules/ansi-styles": { + "version": "6.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "../core/node_modules/assertion-error": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", - "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" } }, - "node_modules/cac": { + "../core/node_modules/async-mutex": { + "version": "0.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "../core/node_modules/balanced-match": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "../core/node_modules/base64-js": { + "version": "1.5.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "../core/node_modules/better-sqlite3-multiple-ciphers": { + "version": "11.5.0", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "bindings": "^1.5.0", + "prebuild-install": "^7.1.1" + } + }, + "../core/node_modules/bindings": { + "version": "1.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "../core/node_modules/bl": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "../core/node_modules/boolbase": { + "version": "1.0.0", + "dev": true, + "license": "ISC" + }, + "../core/node_modules/brace-expansion": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "../core/node_modules/bson-objectid": { + "version": "2.0.4", + "dev": true, + "license": "Apache-2.0" + }, + "../core/node_modules/buffer": { + "version": "5.7.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "../core/node_modules/cac": { "version": "6.7.14", - "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", - "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/chai": { + "../core/node_modules/chai": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/chai/-/chai-5.1.2.tgz", - "integrity": "sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==", "dev": true, + "license": "MIT", "dependencies": { "assertion-error": "^2.0.1", "check-error": "^2.1.1", @@ -883,64 +758,319 @@ "node": ">=12" } }, - "node_modules/check-error": { + "../core/node_modules/character-entities": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "../core/node_modules/character-entities-legacy": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "../core/node_modules/character-reference-invalid": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "../core/node_modules/check-error": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", - "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 16" } }, - "node_modules/csstype": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", - "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==", - "dev": true - }, - "node_modules/dayjs": { - "version": "1.11.13", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", - "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==" + "../core/node_modules/chownr": { + "version": "1.1.4", + "dev": true, + "license": "ISC" }, - "node_modules/debug": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "../core/node_modules/color-convert": { + "version": "2.0.1", "dev": true, + "license": "MIT", "dependencies": { - "ms": "^2.1.3" + "color-name": "~1.1.4" }, "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "node": ">=7.0.0" } }, - "node_modules/deep-eql": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", - "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", + "../core/node_modules/color-name": { + "version": "1.1.4", "dev": true, - "engines": { - "node": ">=6" + "license": "MIT" + }, + "../core/node_modules/comma-separated-tokens": { + "version": "2.0.3", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/es-module-lexer": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz", - "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==", - "dev": true + "../core/node_modules/cross-fetch": { + "version": "3.1.5", + "dev": true, + "license": "MIT", + "dependencies": { + "node-fetch": "2.6.7" + } }, - "node_modules/esbuild": { + "../core/node_modules/cross-spawn": { + "version": "7.0.6", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "../core/node_modules/css-select": { + "version": "5.1.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "../core/node_modules/css-what": { + "version": "6.1.0", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "../core/node_modules/cssom": { + "version": "0.5.0", + "dev": true, + "license": "MIT" + }, + "../core/node_modules/dayjs": { + "version": "1.11.13", + "dev": true, + "license": "MIT" + }, + "../core/node_modules/debug": { + "version": "4.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "../core/node_modules/decode-named-character-reference": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "character-entities": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "../core/node_modules/decompress-response": { + "version": "6.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../core/node_modules/deep-eql": { + "version": "5.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "../core/node_modules/deep-extend": { + "version": "0.6.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "../core/node_modules/deepmerge": { + "version": "4.3.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "../core/node_modules/detect-libc": { + "version": "2.0.2", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "../core/node_modules/discontinuous-range": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "../core/node_modules/dom-serializer": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "../core/node_modules/dom-serializer/node_modules/entities": { + "version": "4.5.0", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "../core/node_modules/domelementtype": { + "version": "2.3.0", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "../core/node_modules/domhandler": { + "version": "5.0.3", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "../core/node_modules/domutils": { + "version": "3.1.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "../core/node_modules/dotenv": { + "version": "16.4.7", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "../core/node_modules/eastasianwidth": { + "version": "0.2.0", + "dev": true, + "license": "MIT" + }, + "../core/node_modules/emoji-regex": { + "version": "9.2.2", + "dev": true, + "license": "MIT" + }, + "../core/node_modules/end-of-stream": { + "version": "1.4.4", + "dev": true, + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "../core/node_modules/entities": { + "version": "5.0.0", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "../core/node_modules/es-module-lexer": { + "version": "1.6.0", + "dev": true, + "license": "MIT" + }, + "../core/node_modules/esbuild": { "version": "0.21.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", - "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", "dev": true, "hasInstallScript": true, + "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, @@ -973,30 +1103,89 @@ "@esbuild/win32-x64": "0.21.5" } }, - "node_modules/estree-walker": { + "../core/node_modules/estree-walker": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", - "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", "dev": true, + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0" } }, - "node_modules/expect-type": { + "../core/node_modules/event-source-polyfill": { + "version": "1.0.31", + "dev": true, + "license": "MIT" + }, + "../core/node_modules/event-target-shim": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "../core/node_modules/eventsource": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + } + }, + "../core/node_modules/expand-template": { + "version": "2.0.3", + "dev": true, + "license": "(MIT OR WTFPL)", + "engines": { + "node": ">=6" + } + }, + "../core/node_modules/expect-type": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.1.0.tgz", - "integrity": "sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=12.0.0" } }, - "node_modules/fsevents": { + "../core/node_modules/fetch-cookie": { + "version": "2.1.0", + "dev": true, + "license": "Unlicense", + "dependencies": { + "set-cookie-parser": "^2.4.8", + "tough-cookie": "^4.0.0" + } + }, + "../core/node_modules/file-uri-to-path": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "../core/node_modules/foreground-child": { + "version": "3.3.0", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "../core/node_modules/fs-constants": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "../core/node_modules/fsevents": { "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, - "hasInstallScript": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -1005,921 +1194,3134 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true + "../core/node_modules/fuzzyjs": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "../core/node_modules/github-from-package": { + "version": "0.0.0", + "dev": true, + "license": "MIT" + }, + "../core/node_modules/glob": { + "version": "10.4.5", "dev": true, + "license": "ISC", "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, "bin": { - "loose-envify": "cli.js" + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/loupe": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.2.tgz", - "integrity": "sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==", - "dev": true + "../core/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "node_modules/magic-string": { - "version": "0.30.17", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", - "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", + "../core/node_modules/hash-wasm": { + "version": "4.12.0", + "dev": true, + "license": "MIT" + }, + "../core/node_modules/hast-util-parse-selector": { + "version": "3.1.1", "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0" + "@types/hast": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true + "../core/node_modules/hastscript": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^2.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-parse-selector": "^3.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } }, - "node_modules/nanoid": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", - "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", + "../core/node_modules/html-escaper": { + "version": "2.0.2", + "dev": true, + "license": "MIT" + }, + "../core/node_modules/html-to-text": { + "version": "9.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@selderee/plugin-htmlparser2": "^0.11.0", + "deepmerge": "^4.3.1", + "dom-serializer": "^2.0.0", + "htmlparser2": "^8.0.2", + "selderee": "^0.11.0" + }, + "engines": { + "node": ">=14" + } + }, + "../core/node_modules/htmlparser2": { + "version": "8.0.1", "dev": true, "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", { "type": "github", - "url": "https://github.com/sponsors/ai" + "url": "https://github.com/sponsors/fb55" } ], - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "entities": "^4.3.0" } }, - "node_modules/pathe": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", - "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==" - }, - "node_modules/pathval": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz", - "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==", + "../core/node_modules/htmlparser2/node_modules/entities": { + "version": "4.5.0", "dev": true, + "license": "BSD-2-Clause", "engines": { - "node": ">= 14.16" + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "dev": true - }, - "node_modules/postcss": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.1.tgz", - "integrity": "sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==", + "../core/node_modules/ieee754": { + "version": "1.2.1", "dev": true, "funding": [ { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" + "type": "github", + "url": "https://github.com/sponsors/feross" }, { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" + "type": "patreon", + "url": "https://www.patreon.com/feross" }, { - "type": "github", - "url": "https://github.com/sponsors/ai" + "type": "consulting", + "url": "https://feross.org/support" } ], - "dependencies": { - "nanoid": "^3.3.8", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } + "license": "BSD-3-Clause" }, - "node_modules/react": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", - "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "../core/node_modules/inherits": { + "version": "2.0.4", "dev": true, - "dependencies": { - "loose-envify": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" + "license": "ISC" + }, + "../core/node_modules/ini": { + "version": "1.3.8", + "dev": true, + "license": "ISC" + }, + "../core/node_modules/is-alphabetical": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/rollup": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.31.0.tgz", - "integrity": "sha512-9cCE8P4rZLx9+PjoyqHLs31V9a9Vpvfo4qNcs6JCiGWYhw2gijSetFbH6SSy1whnkgcefnUwr8sad7tgqsGvnw==", + "../core/node_modules/is-alphanumerical": { + "version": "2.0.1", "dev": true, + "license": "MIT", "dependencies": { - "@types/estree": "1.0.6" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" + "is-alphabetical": "^2.0.0", + "is-decimal": "^2.0.0" }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.31.0", - "@rollup/rollup-android-arm64": "4.31.0", - "@rollup/rollup-darwin-arm64": "4.31.0", - "@rollup/rollup-darwin-x64": "4.31.0", - "@rollup/rollup-freebsd-arm64": "4.31.0", - "@rollup/rollup-freebsd-x64": "4.31.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.31.0", - "@rollup/rollup-linux-arm-musleabihf": "4.31.0", - "@rollup/rollup-linux-arm64-gnu": "4.31.0", - "@rollup/rollup-linux-arm64-musl": "4.31.0", - "@rollup/rollup-linux-loongarch64-gnu": "4.31.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.31.0", - "@rollup/rollup-linux-riscv64-gnu": "4.31.0", - "@rollup/rollup-linux-s390x-gnu": "4.31.0", - "@rollup/rollup-linux-x64-gnu": "4.31.0", - "@rollup/rollup-linux-x64-musl": "4.31.0", - "@rollup/rollup-win32-arm64-msvc": "4.31.0", - "@rollup/rollup-win32-ia32-msvc": "4.31.0", - "@rollup/rollup-win32-x64-msvc": "4.31.0", - "fsevents": "~2.3.2" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/siginfo": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", - "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", - "dev": true + "../core/node_modules/is-decimal": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } }, - "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "../core/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", "dev": true, + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/stackback": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", - "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", - "dev": true - }, - "node_modules/std-env": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.8.0.tgz", - "integrity": "sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==", - "dev": true - }, - "node_modules/timeago.js": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/timeago.js/-/timeago.js-4.0.2.tgz", - "integrity": "sha512-a7wPxPdVlQL7lqvitHGGRsofhdwtkoSXPGATFuSOA2i1ZNQEPLrGnj68vOp2sOJTCFAQVXPeNMX/GctBaO9L2w==" - }, - "node_modules/tinybench": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", - "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", - "dev": true + "../core/node_modules/is-hexadecimal": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } }, - "node_modules/tinyexec": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", - "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", - "dev": true + "../core/node_modules/isexe": { + "version": "2.0.0", + "dev": true, + "license": "ISC" }, - "node_modules/tinypool": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.0.2.tgz", - "integrity": "sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==", + "../core/node_modules/isomorphic-fetch": { + "version": "3.0.0", "dev": true, - "engines": { - "node": "^18.0.0 || >=20.0.0" + "license": "MIT", + "dependencies": { + "node-fetch": "^2.6.1", + "whatwg-fetch": "^3.4.1" } }, - "node_modules/tinyrainbow": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-1.2.0.tgz", - "integrity": "sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==", + "../core/node_modules/istanbul-lib-coverage": { + "version": "3.2.2", "dev": true, + "license": "BSD-3-Clause", "engines": { - "node": ">=14.0.0" + "node": ">=8" } }, - "node_modules/tinyspy": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-3.0.2.tgz", - "integrity": "sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==", + "../core/node_modules/istanbul-lib-report": { + "version": "3.0.1", "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, "engines": { - "node": ">=14.0.0" + "node": ">=10" } }, - "node_modules/vite": { - "version": "5.4.12", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.12.tgz", - "integrity": "sha512-KwUaKB27TvWwDJr1GjjWthLMATbGEbeWYZIbGZ5qFIsgPP3vWzLu4cVooqhm5/Z2SPDUMjyPVjTztm5tYKwQxA==", + "../core/node_modules/istanbul-lib-source-maps": { + "version": "5.0.6", "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "esbuild": "^0.21.3", - "postcss": "^8.4.43", - "rollup": "^4.20.0" - }, - "bin": { - "vite": "bin/vite.js" + "@jridgewell/trace-mapping": "^0.3.23", + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0" }, "engines": { - "node": "^18.0.0 || >=20.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^18.0.0 || >=20.0.0", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "sass-embedded": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - } + "node": ">=10" } }, - "node_modules/vite-node": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-2.1.8.tgz", - "integrity": "sha512-uPAwSr57kYjAUux+8E2j0q0Fxpn8M9VoyfGiRI8Kfktz9NcYMCenwY5RnZxnF1WTu3TGiYipirIzacLL3VVGFg==", + "../core/node_modules/istanbul-reports": { + "version": "3.1.7", "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "cac": "^6.7.14", - "debug": "^4.3.7", - "es-module-lexer": "^1.5.4", - "pathe": "^1.1.2", - "vite": "^5.0.0" - }, - "bin": { - "vite-node": "vite-node.mjs" + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" }, "engines": { - "node": "^18.0.0 || >=20.0.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" + "node": ">=8" } }, - "node_modules/vitest": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-2.1.8.tgz", - "integrity": "sha512-1vBKTZskHw/aosXqQUlVWWlGUxSJR8YtiyZDJAFeW2kPAeX6S3Sool0mjspO+kXLuxVWlEDDowBAeqeAQefqLQ==", + "../core/node_modules/jackspeak": { + "version": "3.4.3", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { - "@vitest/expect": "2.1.8", - "@vitest/mocker": "2.1.8", - "@vitest/pretty-format": "^2.1.8", - "@vitest/runner": "2.1.8", - "@vitest/snapshot": "2.1.8", - "@vitest/spy": "2.1.8", - "@vitest/utils": "2.1.8", - "chai": "^5.1.2", - "debug": "^4.3.7", - "expect-type": "^1.1.0", - "magic-string": "^0.30.12", - "pathe": "^1.1.2", - "std-env": "^3.8.0", - "tinybench": "^2.9.0", - "tinyexec": "^0.3.1", - "tinypool": "^1.0.1", - "tinyrainbow": "^1.2.0", - "vite": "^5.0.0", - "vite-node": "2.1.8", - "why-is-node-running": "^2.3.0" - }, - "bin": { - "vitest": "vitest.mjs" - }, - "engines": { - "node": "^18.0.0 || >=20.0.0" + "@isaacs/cliui": "^8.0.2" }, "funding": { - "url": "https://opencollective.com/vitest" - }, - "peerDependencies": { - "@edge-runtime/vm": "*", - "@types/node": "^18.0.0 || >=20.0.0", - "@vitest/browser": "2.1.8", - "@vitest/ui": "2.1.8", - "happy-dom": "*", - "jsdom": "*" + "url": "https://github.com/sponsors/isaacs" }, - "peerDependenciesMeta": { - "@edge-runtime/vm": { - "optional": true - }, - "@types/node": { - "optional": true - }, - "@vitest/browser": { - "optional": true - }, - "@vitest/ui": { - "optional": true - }, - "happy-dom": { - "optional": true - }, - "jsdom": { - "optional": true - } + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" } }, - "node_modules/why-is-node-running": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", - "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", + "../core/node_modules/katex": { + "version": "0.16.11", "dev": true, + "funding": [ + "https://opencollective.com/katex", + "https://github.com/sponsors/katex" + ], + "license": "MIT", "dependencies": { - "siginfo": "^2.0.0", - "stackback": "0.0.2" + "commander": "^8.3.0" }, "bin": { - "why-is-node-running": "cli.js" - }, - "engines": { - "node": ">=8" + "katex": "cli.js" } - } - }, - "dependencies": { - "@esbuild/aix-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", - "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", - "dev": true, - "optional": true }, - "@esbuild/android-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", - "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "../core/node_modules/katex/node_modules/commander": { + "version": "8.3.0", "dev": true, - "optional": true + "license": "MIT", + "engines": { + "node": ">= 12" + } }, - "@esbuild/android-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", - "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "../core/node_modules/leac": { + "version": "0.6.0", "dev": true, - "optional": true + "license": "MIT", + "funding": { + "url": "https://ko-fi.com/killymxi" + } }, - "@esbuild/android-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", - "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "../core/node_modules/linkedom": { + "version": "0.14.20", "dev": true, - "optional": true + "license": "ISC", + "dependencies": { + "css-select": "^5.1.0", + "cssom": "^0.5.0", + "html-escaper": "^3.0.3", + "htmlparser2": "^8.0.1", + "uhyphen": "^0.1.0" + } }, - "@esbuild/darwin-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", - "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "../core/node_modules/linkedom/node_modules/html-escaper": { + "version": "3.0.3", "dev": true, - "optional": true + "license": "MIT" }, - "@esbuild/darwin-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", - "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "../core/node_modules/liqe": { + "version": "1.13.0", "dev": true, - "optional": true + "license": "BSD-3-Clause", + "dependencies": { + "nearley": "^2.20.1", + "ts-error": "^1.0.6" + }, + "engines": { + "node": ">=12.0" + } }, - "@esbuild/freebsd-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", - "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "../core/node_modules/loupe": { + "version": "3.1.2", "dev": true, - "optional": true + "license": "MIT" }, - "@esbuild/freebsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", - "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "../core/node_modules/lru-cache": { + "version": "6.0.0", "dev": true, - "optional": true + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } }, - "@esbuild/linux-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", - "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "../core/node_modules/magic-string": { + "version": "0.30.17", "dev": true, - "optional": true + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } }, - "@esbuild/linux-arm64": { + "../core/node_modules/magicast": { + "version": "0.3.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.25.4", + "@babel/types": "^7.25.4", + "source-map-js": "^1.2.0" + } + }, + "../core/node_modules/make-dir": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../core/node_modules/mime-db": { + "version": "1.53.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "../core/node_modules/mimic-response": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../core/node_modules/minimatch": { + "version": "9.0.5", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "../core/node_modules/minimist": { + "version": "1.2.8", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../core/node_modules/minipass": { + "version": "7.1.2", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "../core/node_modules/mkdirp-classic": { + "version": "0.5.3", + "dev": true, + "license": "MIT" + }, + "../core/node_modules/mockdate": { + "version": "3.0.5", + "dev": true, + "license": "MIT" + }, + "../core/node_modules/moo": { + "version": "0.5.2", + "dev": true, + "license": "BSD-3-Clause" + }, + "../core/node_modules/ms": { + "version": "2.1.3", + "dev": true, + "license": "MIT" + }, + "../core/node_modules/nanoid": { + "version": "5.0.7", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.js" + }, + "engines": { + "node": "^18 || >=20" + } + }, + "../core/node_modules/napi-build-utils": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "../core/node_modules/nearley": { + "version": "2.20.1", + "dev": true, + "license": "MIT", + "dependencies": { + "commander": "^2.19.0", + "moo": "^0.5.0", + "railroad-diagrams": "^1.0.0", + "randexp": "0.4.6" + }, + "bin": { + "nearley-railroad": "bin/nearley-railroad.js", + "nearley-test": "bin/nearley-test.js", + "nearley-unparse": "bin/nearley-unparse.js", + "nearleyc": "bin/nearleyc.js" + }, + "funding": { + "type": "individual", + "url": "https://nearley.js.org/#give-to-nearley" + } + }, + "../core/node_modules/nearley/node_modules/commander": { + "version": "2.20.3", + "dev": true, + "license": "MIT" + }, + "../core/node_modules/node-abi": { + "version": "3.56.0", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": ">=10" + } + }, + "../core/node_modules/node-fetch": { + "version": "2.6.7", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "../core/node_modules/node-fetch/node_modules/tr46": { + "version": "0.0.3", + "dev": true, + "license": "MIT" + }, + "../core/node_modules/node-fetch/node_modules/webidl-conversions": { + "version": "3.0.1", + "dev": true, + "license": "BSD-2-Clause" + }, + "../core/node_modules/node-fetch/node_modules/whatwg-url": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "../core/node_modules/nth-check": { + "version": "2.1.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "../core/node_modules/once": { + "version": "1.4.0", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "../core/node_modules/otplib": { + "version": "12.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@otplib/core": "^12.0.1", + "@otplib/preset-default": "^12.0.1", + "@otplib/preset-v11": "^12.0.1" + } + }, + "../core/node_modules/package-json-from-dist": { + "version": "1.0.1", + "dev": true, + "license": "BlueOak-1.0.0" + }, + "../core/node_modules/parse-entities": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "character-entities": "^2.0.0", + "character-entities-legacy": "^3.0.0", + "character-reference-invalid": "^2.0.0", + "decode-named-character-reference": "^1.0.0", + "is-alphanumerical": "^2.0.0", + "is-decimal": "^2.0.0", + "is-hexadecimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "../core/node_modules/parse-entities/node_modules/@types/unist": { + "version": "2.0.11", + "dev": true, + "license": "MIT" + }, + "../core/node_modules/parseley": { + "version": "0.12.0", + "dev": true, + "license": "MIT", + "dependencies": { + "leac": "^0.6.0", + "peberminta": "^0.9.0" + }, + "funding": { + "url": "https://ko-fi.com/killymxi" + } + }, + "../core/node_modules/path-key": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../core/node_modules/path-scurry": { + "version": "1.11.1", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "../core/node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.4.3", + "dev": true, + "license": "ISC" + }, + "../core/node_modules/pathe": { + "version": "1.1.2", + "dev": true, + "license": "MIT" + }, + "../core/node_modules/pathval": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.16" + } + }, + "../core/node_modules/peberminta": { + "version": "0.9.0", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://ko-fi.com/killymxi" + } + }, + "../core/node_modules/picocolors": { + "version": "1.1.1", + "dev": true, + "license": "ISC" + }, + "../core/node_modules/postcss": { + "version": "8.5.1", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.8", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "../core/node_modules/postcss/node_modules/nanoid": { + "version": "3.3.8", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "../core/node_modules/prebuild-install": { + "version": "7.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-libc": "^2.0.0", + "expand-template": "^2.0.3", + "github-from-package": "0.0.0", + "minimist": "^1.2.3", + "mkdirp-classic": "^0.5.3", + "napi-build-utils": "^1.0.1", + "node-abi": "^3.3.0", + "pump": "^3.0.0", + "rc": "^1.2.7", + "simple-get": "^4.0.0", + "tar-fs": "^2.0.0", + "tunnel-agent": "^0.6.0" + }, + "bin": { + "prebuild-install": "bin.js" + }, + "engines": { + "node": ">=10" + } + }, + "../core/node_modules/prismjs": { + "version": "1.29.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "../core/node_modules/property-information": { + "version": "6.2.0", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "../core/node_modules/psl": { + "version": "1.9.0", + "dev": true, + "license": "MIT" + }, + "../core/node_modules/pump": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "../core/node_modules/punycode": { + "version": "2.3.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "../core/node_modules/qclone": { + "version": "1.2.0", + "dev": true, + "license": "MIT" + }, + "../core/node_modules/querystringify": { + "version": "2.2.0", + "dev": true, + "license": "MIT" + }, + "../core/node_modules/railroad-diagrams": { + "version": "1.0.0", + "dev": true, + "license": "CC0-1.0" + }, + "../core/node_modules/randexp": { + "version": "0.4.6", + "dev": true, + "license": "MIT", + "dependencies": { + "discontinuous-range": "1.0.0", + "ret": "~0.1.10" + }, + "engines": { + "node": ">=0.12" + } + }, + "../core/node_modules/rc": { + "version": "1.2.8", + "dev": true, + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "../core/node_modules/readable-stream": { + "version": "3.6.2", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "../core/node_modules/refractor": { + "version": "4.8.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^2.0.0", + "@types/prismjs": "^1.0.0", + "hastscript": "^7.0.0", + "parse-entities": "^4.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "../core/node_modules/requires-port": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "../core/node_modules/ret": { + "version": "0.1.15", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12" + } + }, + "../core/node_modules/rfdc": { + "version": "1.3.1", + "dev": true, + "license": "MIT" + }, + "../core/node_modules/rollup": { + "version": "4.31.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.6" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.31.0", + "@rollup/rollup-android-arm64": "4.31.0", + "@rollup/rollup-darwin-arm64": "4.31.0", + "@rollup/rollup-darwin-x64": "4.31.0", + "@rollup/rollup-freebsd-arm64": "4.31.0", + "@rollup/rollup-freebsd-x64": "4.31.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.31.0", + "@rollup/rollup-linux-arm-musleabihf": "4.31.0", + "@rollup/rollup-linux-arm64-gnu": "4.31.0", + "@rollup/rollup-linux-arm64-musl": "4.31.0", + "@rollup/rollup-linux-loongarch64-gnu": "4.31.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.31.0", + "@rollup/rollup-linux-riscv64-gnu": "4.31.0", + "@rollup/rollup-linux-s390x-gnu": "4.31.0", + "@rollup/rollup-linux-x64-gnu": "4.31.0", + "@rollup/rollup-linux-x64-musl": "4.31.0", + "@rollup/rollup-win32-arm64-msvc": "4.31.0", + "@rollup/rollup-win32-ia32-msvc": "4.31.0", + "@rollup/rollup-win32-x64-msvc": "4.31.0", + "fsevents": "~2.3.2" + } + }, + "../core/node_modules/safe-buffer": { + "version": "5.2.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "../core/node_modules/selderee": { + "version": "0.11.0", + "dev": true, + "license": "MIT", + "dependencies": { + "parseley": "^0.12.0" + }, + "funding": { + "url": "https://ko-fi.com/killymxi" + } + }, + "../core/node_modules/semver": { + "version": "7.5.4", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "../core/node_modules/set-cookie-parser": { + "version": "2.6.0", + "dev": true, + "license": "MIT" + }, + "../core/node_modules/shebang-command": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "../core/node_modules/shebang-regex": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../core/node_modules/siginfo": { + "version": "2.0.0", + "dev": true, + "license": "ISC" + }, + "../core/node_modules/signal-exit": { + "version": "4.1.0", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "../core/node_modules/simple-concat": { + "version": "1.0.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "../core/node_modules/simple-get": { + "version": "4.0.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "decompress-response": "^6.0.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, + "../core/node_modules/source-map-js": { + "version": "1.2.1", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "../core/node_modules/space-separated-tokens": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "../core/node_modules/spark-md5": { + "version": "3.0.2", + "dev": true, + "license": "(WTFPL OR MIT)" + }, + "../core/node_modules/sqlite-better-trigram": { + "version": "0.0.2", + "dev": true, + "license": "Public Domain", + "optionalDependencies": { + "sqlite-better-trigram-darwin-arm64": "0.0.2", + "sqlite-better-trigram-darwin-x64": "0.0.2", + "sqlite-better-trigram-linux-arm64": "0.0.2", + "sqlite-better-trigram-linux-x64": "0.0.2", + "sqlite-better-trigram-windows-arm64": "0.0.2", + "sqlite-better-trigram-windows-x64": "0.0.2" + } + }, + "../core/node_modules/sqlite-better-trigram-darwin-arm64": { + "version": "0.0.2", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Public Domain", + "optional": true, + "os": [ + "darwin" + ] + }, + "../core/node_modules/stackback": { + "version": "0.0.2", + "dev": true, + "license": "MIT" + }, + "../core/node_modules/std-env": { + "version": "3.8.0", + "dev": true, + "license": "MIT" + }, + "../core/node_modules/string_decoder": { + "version": "1.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "../core/node_modules/string-width": { + "version": "5.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../core/node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "../core/node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../core/node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "dev": true, + "license": "MIT" + }, + "../core/node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "../core/node_modules/strip-ansi": { + "version": "7.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "../core/node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "../core/node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../core/node_modules/strip-json-comments": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "../core/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "../core/node_modules/tar-fs": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + }, + "../core/node_modules/tar-stream": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "../core/node_modules/test-exclude": { + "version": "7.0.1", + "dev": true, + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^10.4.1", + "minimatch": "^9.0.4" + }, + "engines": { + "node": ">=18" + } + }, + "../core/node_modules/thirty-two": { + "version": "1.0.2", + "dev": true, + "engines": { + "node": ">=0.2.6" + } + }, + "../core/node_modules/tinybench": { + "version": "2.9.0", + "dev": true, + "license": "MIT" + }, + "../core/node_modules/tinyexec": { + "version": "0.3.2", + "dev": true, + "license": "MIT" + }, + "../core/node_modules/tinypool": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.0.0 || >=20.0.0" + } + }, + "../core/node_modules/tinyrainbow": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "../core/node_modules/tinyspy": { + "version": "3.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "../core/node_modules/tough-cookie": { + "version": "4.1.3", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "../core/node_modules/ts-error": { + "version": "1.0.6", + "dev": true, + "license": "MIT" + }, + "../core/node_modules/tslib": { + "version": "2.4.1", + "dev": true, + "license": "0BSD" + }, + "../core/node_modules/tunnel-agent": { + "version": "0.6.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "../core/node_modules/uhyphen": { + "version": "0.1.0", + "dev": true, + "license": "ISC" + }, + "../core/node_modules/universalify": { + "version": "0.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "../core/node_modules/url-parse": { + "version": "1.5.10", + "dev": true, + "license": "MIT", + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "../core/node_modules/util-deprecate": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "../core/node_modules/vite": { + "version": "5.4.12", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "../core/node_modules/vite-node": { + "version": "2.1.8", + "dev": true, + "license": "MIT", + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.3.7", + "es-module-lexer": "^1.5.4", + "pathe": "^1.1.2", + "vite": "^5.0.0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../core/node_modules/vitest": { + "version": "2.1.8", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/expect": "2.1.8", + "@vitest/mocker": "2.1.8", + "@vitest/pretty-format": "^2.1.8", + "@vitest/runner": "2.1.8", + "@vitest/snapshot": "2.1.8", + "@vitest/spy": "2.1.8", + "@vitest/utils": "2.1.8", + "chai": "^5.1.2", + "debug": "^4.3.7", + "expect-type": "^1.1.0", + "magic-string": "^0.30.12", + "pathe": "^1.1.2", + "std-env": "^3.8.0", + "tinybench": "^2.9.0", + "tinyexec": "^0.3.1", + "tinypool": "^1.0.1", + "tinyrainbow": "^1.2.0", + "vite": "^5.0.0", + "vite-node": "2.1.8", + "why-is-node-running": "^2.3.0" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@types/node": "^18.0.0 || >=20.0.0", + "@vitest/browser": "2.1.8", + "@vitest/ui": "2.1.8", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, + "../core/node_modules/vitest-fetch-mock": { + "version": "0.2.2", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-fetch": "^3.0.6" + }, + "engines": { + "node": ">=14.14.0" + }, + "peerDependencies": { + "vitest": ">=0.16.0" + } + }, + "../core/node_modules/whatwg-fetch": { + "version": "3.6.17", + "dev": true, + "license": "MIT" + }, + "../core/node_modules/which": { + "version": "2.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "../core/node_modules/why-is-node-running": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "../core/node_modules/wrap-ansi": { + "version": "8.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "../core/node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "../core/node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../core/node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "../core/node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "dev": true, + "license": "MIT" + }, + "../core/node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "../core/node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "../core/node_modules/wrappy": { + "version": "1.0.2", + "dev": true, + "license": "ISC" + }, + "../core/node_modules/ws": { + "version": "8.16.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "../core/node_modules/yallist": { + "version": "4.0.0", + "dev": true, + "license": "ISC" + }, + "../crypto": { + "name": "@notesnook/crypto", + "version": "2.1.3", + "dev": true, + "license": "GPL-3.0-or-later", + "dependencies": { + "@notesnook/sodium": "file:../sodium" + }, + "devDependencies": {} + }, + "../crypto/node_modules/@notesnook/sodium": { + "resolved": "../sodium", + "link": true + }, + "../logger": { + "name": "@notesnook/logger", + "version": "2.1.3", + "dev": true, + "license": "GPL-3.0-or-later", + "devDependencies": {} + }, + "../sodium": { + "name": "@notesnook/sodium", + "version": "2.1.3", + "dev": true, + "hasInstallScript": true, + "license": "GPL-3.0-or-later", + "dependencies": { + "libsodium-wrappers-sumo": "^0.7.15" + }, + "devDependencies": { + "@types/libsodium-wrappers-sumo": "0.7.8", + "benny": "^3.7.1", + "sodium-native": "^4.1.1", + "ts-node": "^10.9.1", + "vitest": "2.1.8" + }, + "peerDependencies": { + "sodium-native": ">=4" + } + }, + "../sodium/node_modules/@arrows/array": { + "version": "1.4.1", + "dev": true, + "license": "ISC", + "dependencies": { + "@arrows/composition": "^1.2.2" + } + }, + "../sodium/node_modules/@arrows/composition": { + "version": "1.2.2", + "dev": true, + "license": "ISC" + }, + "../sodium/node_modules/@arrows/dispatch": { + "version": "1.0.3", + "dev": true, + "license": "ISC", + "dependencies": { + "@arrows/composition": "^1.2.2" + } + }, + "../sodium/node_modules/@arrows/error": { + "version": "1.0.2", + "dev": true, + "license": "ISC" + }, + "../sodium/node_modules/@arrows/multimethod": { + "version": "1.4.1", + "dev": true, + "license": "ISC", + "dependencies": { + "@arrows/array": "^1.4.1", + "@arrows/composition": "^1.2.2", + "@arrows/error": "^1.0.2", + "fast-deep-equal": "^3.1.3" + } + }, + "../sodium/node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "../sodium/node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "../sodium/node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "../sodium/node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "dev": true, + "license": "MIT" + }, + "../sodium/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "../sodium/node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.31.0", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "../sodium/node_modules/@tsconfig/node10": { + "version": "1.0.9", + "dev": true, + "license": "MIT" + }, + "../sodium/node_modules/@tsconfig/node12": { + "version": "1.0.11", + "dev": true, + "license": "MIT" + }, + "../sodium/node_modules/@tsconfig/node14": { + "version": "1.0.3", + "dev": true, + "license": "MIT" + }, + "../sodium/node_modules/@tsconfig/node16": { + "version": "1.0.3", + "dev": true, + "license": "MIT" + }, + "../sodium/node_modules/@types/estree": { + "version": "1.0.6", + "dev": true, + "license": "MIT" + }, + "../sodium/node_modules/@types/libsodium-wrappers": { + "version": "0.7.10", + "dev": true, + "license": "MIT" + }, + "../sodium/node_modules/@types/libsodium-wrappers-sumo": { + "version": "0.7.8", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/libsodium-wrappers": "*" + } + }, + "../sodium/node_modules/@vitest/expect": { + "version": "2.1.8", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "2.1.8", + "@vitest/utils": "2.1.8", + "chai": "^5.1.2", + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../sodium/node_modules/@vitest/mocker": { + "version": "2.1.8", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "2.1.8", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.12" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "msw": "^2.4.9", + "vite": "^5.0.0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "../sodium/node_modules/@vitest/pretty-format": { + "version": "2.1.8", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../sodium/node_modules/@vitest/runner": { + "version": "2.1.8", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/utils": "2.1.8", + "pathe": "^1.1.2" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../sodium/node_modules/@vitest/snapshot": { + "version": "2.1.8", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "2.1.8", + "magic-string": "^0.30.12", + "pathe": "^1.1.2" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../sodium/node_modules/@vitest/spy": { + "version": "2.1.8", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyspy": "^3.0.2" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../sodium/node_modules/@vitest/utils": { + "version": "2.1.8", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "2.1.8", + "loupe": "^3.1.2", + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../sodium/node_modules/acorn": { + "version": "8.9.0", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "../sodium/node_modules/acorn-walk": { + "version": "8.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "../sodium/node_modules/ansi-escapes": { + "version": "4.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../sodium/node_modules/ansi-regex": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../sodium/node_modules/arg": { + "version": "4.1.3", + "dev": true, + "license": "MIT" + }, + "../sodium/node_modules/assertion-error": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "../sodium/node_modules/astral-regex": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../sodium/node_modules/benchmark": { + "version": "2.1.4", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash": "^4.17.4", + "platform": "^1.3.3" + } + }, + "../sodium/node_modules/benny": { + "version": "3.7.1", + "dev": true, + "license": "ISC", + "dependencies": { + "@arrows/composition": "^1.0.0", + "@arrows/dispatch": "^1.0.2", + "@arrows/multimethod": "^1.1.6", + "benchmark": "^2.1.4", + "common-tags": "^1.8.0", + "fs-extra": "^10.0.0", + "json2csv": "^5.0.6", + "kleur": "^4.1.4", + "log-update": "^4.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "../sodium/node_modules/cac": { + "version": "6.7.14", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../sodium/node_modules/chai": { + "version": "5.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "../sodium/node_modules/check-error": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 16" + } + }, + "../sodium/node_modules/cli-cursor": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "../sodium/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "../sodium/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "../sodium/node_modules/commander": { + "version": "6.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "../sodium/node_modules/common-tags": { + "version": "1.8.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "../sodium/node_modules/create-require": { + "version": "1.1.1", + "dev": true, + "license": "MIT" + }, + "../sodium/node_modules/debug": { + "version": "4.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "../sodium/node_modules/deep-eql": { + "version": "5.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "../sodium/node_modules/es-module-lexer": { + "version": "1.6.0", + "dev": true, + "license": "MIT" + }, + "../sodium/node_modules/esbuild": { "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", - "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", "dev": true, - "optional": true + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "../sodium/node_modules/estree-walker": { + "version": "3.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "../sodium/node_modules/expect-type": { + "version": "1.1.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.0.0" + } + }, + "../sodium/node_modules/fast-deep-equal": { + "version": "3.1.3", + "dev": true, + "license": "MIT" + }, + "../sodium/node_modules/fs-extra": { + "version": "10.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "../sodium/node_modules/fsevents": { + "version": "2.3.3", + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "../sodium/node_modules/graceful-fs": { + "version": "4.2.11", + "dev": true, + "license": "ISC" + }, + "../sodium/node_modules/json2csv": { + "version": "5.0.7", + "dev": true, + "license": "MIT", + "dependencies": { + "commander": "^6.1.0", + "jsonparse": "^1.3.1", + "lodash.get": "^4.4.2" + }, + "bin": { + "json2csv": "bin/json2csv.js" + }, + "engines": { + "node": ">= 10", + "npm": ">= 6.13.0" + } + }, + "../sodium/node_modules/jsonfile": { + "version": "6.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "../sodium/node_modules/jsonparse": { + "version": "1.3.1", + "dev": true, + "engines": [ + "node >= 0.2.0" + ], + "license": "MIT" + }, + "../sodium/node_modules/kleur": { + "version": "4.1.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "../sodium/node_modules/libsodium-sumo": { + "version": "0.7.15", + "dev": true, + "license": "ISC" + }, + "../sodium/node_modules/libsodium-wrappers-sumo": { + "version": "0.7.15", + "dev": true, + "license": "ISC", + "dependencies": { + "libsodium-sumo": "^0.7.15" + } + }, + "../sodium/node_modules/lodash": { + "version": "4.17.21", + "dev": true, + "license": "MIT" + }, + "../sodium/node_modules/lodash.get": { + "version": "4.4.2", + "dev": true, + "license": "MIT" + }, + "../sodium/node_modules/log-update": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../sodium/node_modules/log-update/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "../sodium/node_modules/log-update/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../sodium/node_modules/log-update/node_modules/slice-ansi": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "../sodium/node_modules/loupe": { + "version": "3.1.2", + "dev": true, + "license": "MIT" + }, + "../sodium/node_modules/magic-string": { + "version": "0.30.17", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, + "../sodium/node_modules/make-error": { + "version": "1.3.6", + "dev": true, + "license": "ISC" + }, + "../sodium/node_modules/mimic-fn": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "../sodium/node_modules/ms": { + "version": "2.1.3", + "dev": true, + "license": "MIT" + }, + "../sodium/node_modules/nanoid": { + "version": "3.3.8", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "../sodium/node_modules/node-gyp-build": { + "version": "4.8.2", + "dev": true, + "license": "MIT", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "../sodium/node_modules/onetime": { + "version": "5.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "@esbuild/linux-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", - "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "../sodium/node_modules/pathe": { + "version": "1.1.2", "dev": true, - "optional": true + "license": "MIT" }, - "@esbuild/linux-loong64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", - "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "../sodium/node_modules/pathval": { + "version": "2.0.0", "dev": true, - "optional": true + "license": "MIT", + "engines": { + "node": ">= 14.16" + } }, - "@esbuild/linux-mips64el": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", - "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "../sodium/node_modules/picocolors": { + "version": "1.1.1", "dev": true, - "optional": true + "license": "ISC" }, - "@esbuild/linux-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", - "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "../sodium/node_modules/platform": { + "version": "1.3.6", "dev": true, - "optional": true + "license": "MIT" }, - "@esbuild/linux-riscv64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", - "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "../sodium/node_modules/postcss": { + "version": "8.5.1", "dev": true, - "optional": true + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.8", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } }, - "@esbuild/linux-s390x": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", - "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "../sodium/node_modules/restore-cursor": { + "version": "3.1.0", "dev": true, - "optional": true + "license": "MIT", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } }, - "@esbuild/linux-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", - "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "../sodium/node_modules/rollup": { + "version": "4.31.0", "dev": true, - "optional": true + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.6" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.31.0", + "@rollup/rollup-android-arm64": "4.31.0", + "@rollup/rollup-darwin-arm64": "4.31.0", + "@rollup/rollup-darwin-x64": "4.31.0", + "@rollup/rollup-freebsd-arm64": "4.31.0", + "@rollup/rollup-freebsd-x64": "4.31.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.31.0", + "@rollup/rollup-linux-arm-musleabihf": "4.31.0", + "@rollup/rollup-linux-arm64-gnu": "4.31.0", + "@rollup/rollup-linux-arm64-musl": "4.31.0", + "@rollup/rollup-linux-loongarch64-gnu": "4.31.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.31.0", + "@rollup/rollup-linux-riscv64-gnu": "4.31.0", + "@rollup/rollup-linux-s390x-gnu": "4.31.0", + "@rollup/rollup-linux-x64-gnu": "4.31.0", + "@rollup/rollup-linux-x64-musl": "4.31.0", + "@rollup/rollup-win32-arm64-msvc": "4.31.0", + "@rollup/rollup-win32-ia32-msvc": "4.31.0", + "@rollup/rollup-win32-x64-msvc": "4.31.0", + "fsevents": "~2.3.2" + } }, - "@esbuild/netbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", - "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "../sodium/node_modules/siginfo": { + "version": "2.0.0", "dev": true, - "optional": true + "license": "ISC" }, - "@esbuild/openbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", - "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "../sodium/node_modules/signal-exit": { + "version": "3.0.7", "dev": true, - "optional": true + "license": "ISC" }, - "@esbuild/sunos-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", - "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "../sodium/node_modules/sodium-native": { + "version": "4.2.0", "dev": true, - "optional": true + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "node-gyp-build": "^4.8.0" + } }, - "@esbuild/win32-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", - "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "../sodium/node_modules/source-map-js": { + "version": "1.2.1", "dev": true, - "optional": true + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } }, - "@esbuild/win32-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", - "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "../sodium/node_modules/stackback": { + "version": "0.0.2", "dev": true, - "optional": true + "license": "MIT" }, - "@esbuild/win32-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", - "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "../sodium/node_modules/std-env": { + "version": "3.8.0", "dev": true, - "optional": true + "license": "MIT" }, - "@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", - "dev": true + "../sodium/node_modules/tinybench": { + "version": "2.9.0", + "dev": true, + "license": "MIT" }, - "@notesnook/core": { - "version": "file:../core", - "requires": { - "@leeoniya/ufuzzy": "^1.0.10", - "@microsoft/signalr": "^8.0.0", - "@notesnook/crypto": "file:../crypto", - "@notesnook/logger": "file:../logger", - "@readme/data-urls": "^3.0.0", - "@streetwriters/kysely": "^0.27.4", - "@streetwriters/showdown": "^3.0.9-alpha", - "@types/better-sqlite3": "^7.6.5", - "@types/event-source-polyfill": "1.0.5", - "@types/html-to-text": "^9.0.0", - "@types/katex": "0.16.7", - "@types/mime-db": "^1.43.5", - "@types/prismjs": "1.26.4", - "@types/spark-md5": "^3.0.2", - "@types/streetwriters__showdown": "npm:@types/showdown@^2.0.6", - "@types/unist": "^3.0.3", - "@types/ws": "^8.5.5", - "@vitest/coverage-v8": "2.1.8", - "abortcontroller-polyfill": "^1.7.3", - "async-mutex": "0.5.0", - "better-sqlite3-multiple-ciphers": "11.5.0", - "bson-objectid": "^2.0.4", - "dayjs": "1.11.13", - "dom-serializer": "^2.0.0", - "domhandler": "^5.0.3", - "domutils": "^3.1.0", - "dotenv": "16.4.7", - "entities": "5.0.0", - "event-source-polyfill": "1.0.31", - "eventsource": "^2.0.2", - "fuzzyjs": "^5.0.1", - "hash-wasm": "4.12.0", - "html-to-text": "^9.0.5", - "htmlparser2": "^8.0.1", - "isomorphic-fetch": "^3.0.0", - "katex": "0.16.11", - "linkedom": "^0.14.17", - "liqe": "^1.13.0", - "mime-db": "^1.53.0", - "mockdate": "^3.0.5", - "nanoid": "5.0.7", - "otplib": "^12.0.1", - "prismjs": "^1.29.0", - "qclone": "^1.2.0", - "refractor": "^4.8.1", - "rfdc": "^1.3.0", - "spark-md5": "^3.0.2", - "sqlite-better-trigram": "0.0.2", - "vitest": "2.1.8", - "vitest-fetch-mock": "^0.2.2", - "ws": "^8.13.0" + "../sodium/node_modules/tinyexec": { + "version": "0.3.2", + "dev": true, + "license": "MIT" + }, + "../sodium/node_modules/tinypool": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.0.0 || >=20.0.0" + } + }, + "../sodium/node_modules/tinyrainbow": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "../sodium/node_modules/tinyspy": { + "version": "3.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "../sodium/node_modules/ts-node": { + "version": "10.9.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "../sodium/node_modules/ts-node/node_modules/diff": { + "version": "4.0.2", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "../sodium/node_modules/type-fest": { + "version": "0.21.3", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../sodium/node_modules/universalify": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "../sodium/node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "dev": true, + "license": "MIT" + }, + "../sodium/node_modules/vite": { + "version": "5.4.12", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } } }, - "@readme/data-urls": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@readme/data-urls/-/data-urls-3.0.0.tgz", - "integrity": "sha512-b0L7VWqbLZqOSSAFUrxS5ZwUfec35WDsAwwCH481vYnhk0dWO3nvmNVNCbP8CY4cXqwL1W4uCAnhDz+CUmXM3g==" - }, - "@rollup/rollup-android-arm-eabi": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.31.0.tgz", - "integrity": "sha512-9NrR4033uCbUBRgvLcBrJofa2KY9DzxL2UKZ1/4xA/mnTNyhZCWBuD8X3tPm1n4KxcgaraOYgrFKSgwjASfmlA==", - "dev": true, - "optional": true - }, - "@rollup/rollup-android-arm64": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.31.0.tgz", - "integrity": "sha512-iBbODqT86YBFHajxxF8ebj2hwKm1k8PTBQSojSt3d1FFt1gN+xf4CowE47iN0vOSdnd+5ierMHBbu/rHc7nq5g==", - "dev": true, - "optional": true - }, - "@rollup/rollup-darwin-arm64": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.31.0.tgz", - "integrity": "sha512-WHIZfXgVBX30SWuTMhlHPXTyN20AXrLH4TEeH/D0Bolvx9PjgZnn4H677PlSGvU6MKNsjCQJYczkpvBbrBnG6g==", - "dev": true, - "optional": true - }, - "@rollup/rollup-darwin-x64": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.31.0.tgz", - "integrity": "sha512-hrWL7uQacTEF8gdrQAqcDy9xllQ0w0zuL1wk1HV8wKGSGbKPVjVUv/DEwT2+Asabf8Dh/As+IvfdU+H8hhzrQQ==", - "dev": true, - "optional": true - }, - "@rollup/rollup-freebsd-arm64": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.31.0.tgz", - "integrity": "sha512-S2oCsZ4hJviG1QjPY1h6sVJLBI6ekBeAEssYKad1soRFv3SocsQCzX6cwnk6fID6UQQACTjeIMB+hyYrFacRew==", + "../sodium/node_modules/vite-node": { + "version": "2.1.8", "dev": true, - "optional": true + "license": "MIT", + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.3.7", + "es-module-lexer": "^1.5.4", + "pathe": "^1.1.2", + "vite": "^5.0.0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } }, - "@rollup/rollup-freebsd-x64": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.31.0.tgz", - "integrity": "sha512-pCANqpynRS4Jirn4IKZH4tnm2+2CqCNLKD7gAdEjzdLGbH1iO0zouHz4mxqg0uEMpO030ejJ0aA6e1PJo2xrPA==", + "../sodium/node_modules/vitest": { + "version": "2.1.8", "dev": true, - "optional": true + "license": "MIT", + "dependencies": { + "@vitest/expect": "2.1.8", + "@vitest/mocker": "2.1.8", + "@vitest/pretty-format": "^2.1.8", + "@vitest/runner": "2.1.8", + "@vitest/snapshot": "2.1.8", + "@vitest/spy": "2.1.8", + "@vitest/utils": "2.1.8", + "chai": "^5.1.2", + "debug": "^4.3.7", + "expect-type": "^1.1.0", + "magic-string": "^0.30.12", + "pathe": "^1.1.2", + "std-env": "^3.8.0", + "tinybench": "^2.9.0", + "tinyexec": "^0.3.1", + "tinypool": "^1.0.1", + "tinyrainbow": "^1.2.0", + "vite": "^5.0.0", + "vite-node": "2.1.8", + "why-is-node-running": "^2.3.0" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@types/node": "^18.0.0 || >=20.0.0", + "@vitest/browser": "2.1.8", + "@vitest/ui": "2.1.8", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } }, - "@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.31.0.tgz", - "integrity": "sha512-0O8ViX+QcBd3ZmGlcFTnYXZKGbFu09EhgD27tgTdGnkcYXLat4KIsBBQeKLR2xZDCXdIBAlWLkiXE1+rJpCxFw==", + "../sodium/node_modules/why-is-node-running": { + "version": "2.3.0", "dev": true, - "optional": true + "license": "MIT", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } }, - "@rollup/rollup-linux-arm-musleabihf": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.31.0.tgz", - "integrity": "sha512-w5IzG0wTVv7B0/SwDnMYmbr2uERQp999q8FMkKG1I+j8hpPX2BYFjWe69xbhbP6J9h2gId/7ogesl9hwblFwwg==", + "../sodium/node_modules/wrap-ansi": { + "version": "6.2.0", "dev": true, - "optional": true + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } }, - "@rollup/rollup-linux-arm64-gnu": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.31.0.tgz", - "integrity": "sha512-JyFFshbN5xwy6fulZ8B/8qOqENRmDdEkcIMF0Zz+RsfamEW+Zabl5jAb0IozP/8UKnJ7g2FtZZPEUIAlUSX8cA==", + "../sodium/node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", "dev": true, - "optional": true + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } }, - "@rollup/rollup-linux-arm64-musl": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.31.0.tgz", - "integrity": "sha512-kpQXQ0UPFeMPmPYksiBL9WS/BDiQEjRGMfklVIsA0Sng347H8W2iexch+IEwaR7OVSKtr2ZFxggt11zVIlZ25g==", + "../sodium/node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "8.0.0", "dev": true, - "optional": true + "license": "MIT" }, - "@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.31.0.tgz", - "integrity": "sha512-pMlxLjt60iQTzt9iBb3jZphFIl55a70wexvo8p+vVFK+7ifTRookdoXX3bOsRdmfD+OKnMozKO6XM4zR0sHRrQ==", + "../sodium/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", "dev": true, - "optional": true + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.31.0.tgz", - "integrity": "sha512-D7TXT7I/uKEuWiRkEFbed1UUYZwcJDU4vZQdPTcepK7ecPhzKOYk4Er2YR4uHKme4qDeIh6N3XrLfpuM7vzRWQ==", + "../sodium/node_modules/wrap-ansi/node_modules/string-width": { + "version": "4.2.3", "dev": true, - "optional": true + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } }, - "@rollup/rollup-linux-riscv64-gnu": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.31.0.tgz", - "integrity": "sha512-wal2Tc8O5lMBtoePLBYRKj2CImUCJ4UNGJlLwspx7QApYny7K1cUYlzQ/4IGQBLmm+y0RS7dwc3TDO/pmcneTw==", + "../sodium/node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "6.0.1", "dev": true, - "optional": true + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } }, - "@rollup/rollup-linux-s390x-gnu": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.31.0.tgz", - "integrity": "sha512-O1o5EUI0+RRMkK9wiTVpk2tyzXdXefHtRTIjBbmFREmNMy7pFeYXCFGbhKFwISA3UOExlo5GGUuuj3oMKdK6JQ==", + "../sodium/node_modules/yn": { + "version": "3.1.1", "dev": true, - "optional": true + "license": "MIT", + "engines": { + "node": ">=6" + } }, - "@rollup/rollup-linux-x64-gnu": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.31.0.tgz", - "integrity": "sha512-zSoHl356vKnNxwOWnLd60ixHNPRBglxpv2g7q0Cd3Pmr561gf0HiAcUBRL3S1vPqRC17Zo2CX/9cPkqTIiai1g==", + "node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "cpu": [ + "arm64" + ], "dev": true, - "optional": true + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } }, - "@rollup/rollup-linux-x64-musl": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.31.0.tgz", - "integrity": "sha512-ypB/HMtcSGhKUQNiFwqgdclWNRrAYDH8iMYH4etw/ZlGwiTVxBz2tDrGRrPlfZu6QjXwtd+C3Zib5pFqID97ZA==", + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", "dev": true, - "optional": true + "license": "MIT" }, - "@rollup/rollup-win32-arm64-msvc": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.31.0.tgz", - "integrity": "sha512-JuhN2xdI/m8Hr+aVO3vspO7OQfUFO6bKLIRTAy0U15vmWjnZDLrEgCZ2s6+scAYaQVpYSh9tZtRijApw9IXyMw==", - "dev": true, - "optional": true + "node_modules/@notesnook/core": { + "resolved": "../core", + "link": true }, - "@rollup/rollup-win32-ia32-msvc": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.31.0.tgz", - "integrity": "sha512-U1xZZXYkvdf5MIWmftU8wrM5PPXzyaY1nGCI4KI4BFfoZxHamsIe+BtnPLIvvPykvQWlVbqUXdLa4aJUuilwLQ==", - "dev": true, - "optional": true + "node_modules/@readme/data-urls": { + "version": "3.0.0", + "license": "ISC", + "engines": { + "node": ">=18" + } }, - "@rollup/rollup-win32-x64-msvc": { + "node_modules/@rollup/rollup-darwin-arm64": { "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.31.0.tgz", - "integrity": "sha512-ul8rnCsUumNln5YWwz0ted2ZHFhzhRRnkpBZ+YRuHoRAlUji9KChpOUOndY7uykrPEPXVbHLlsdo6v5yXo/TXw==", + "cpu": [ + "arm64" + ], "dev": true, - "optional": true + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] }, - "@types/estree": { + "node_modules/@types/estree": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", - "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", - "dev": true + "dev": true, + "license": "MIT" }, - "@types/prop-types": { + "node_modules/@types/prop-types": { "version": "15.7.5", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", - "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==", - "dev": true + "dev": true, + "license": "MIT" }, - "@types/react": { + "node_modules/@types/react": { "version": "18.3.5", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.5.tgz", - "integrity": "sha512-WeqMfGJLGuLCqHGYRGHxnKrXcTitc6L/nBUWfWPcTarG3t9PsquqUMuVeXZeca+mglY4Vo5GZjCi0A3Or2lnxA==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@types/prop-types": "*", "csstype": "^3.0.2" } }, - "@vitest/expect": { + "node_modules/@vitest/expect": { "version": "2.1.8", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-2.1.8.tgz", - "integrity": "sha512-8ytZ/fFHq2g4PJVAtDX57mayemKgDR6X3Oa2Foro+EygiOJHUXhCqBAAKQYYajZpFoIfvBCF1j6R6IYRSIUFuw==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@vitest/spy": "2.1.8", "@vitest/utils": "2.1.8", "chai": "^5.1.2", "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" } }, - "@vitest/mocker": { + "node_modules/@vitest/mocker": { "version": "2.1.8", - "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-2.1.8.tgz", - "integrity": "sha512-7guJ/47I6uqfttp33mgo6ga5Gr1VnL58rcqYKyShoRK9ebu8T5Rs6HN3s1NABiBeVTdWNrwUMcHH54uXZBN4zA==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@vitest/spy": "2.1.8", "estree-walker": "^3.0.3", "magic-string": "^0.30.12" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "msw": "^2.4.9", + "vite": "^5.0.0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } } }, - "@vitest/pretty-format": { + "node_modules/@vitest/pretty-format": { "version": "2.1.8", - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.8.tgz", - "integrity": "sha512-9HiSZ9zpqNLKlbIDRWOnAWqgcA7xu+8YxXSekhr0Ykab7PAYFkhkwoqVArPOtJhPmYeE2YHgKZlj3CP36z2AJQ==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" } }, - "@vitest/runner": { + "node_modules/@vitest/runner": { "version": "2.1.8", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-2.1.8.tgz", - "integrity": "sha512-17ub8vQstRnRlIU5k50bG+QOMLHRhYPAna5tw8tYbj+jzjcspnwnwtPtiOlkuKC4+ixDPTuLZiqiWWQ2PSXHVg==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@vitest/utils": "2.1.8", "pathe": "^1.1.2" + }, + "funding": { + "url": "https://opencollective.com/vitest" } }, - "@vitest/snapshot": { + "node_modules/@vitest/snapshot": { "version": "2.1.8", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-2.1.8.tgz", - "integrity": "sha512-20T7xRFbmnkfcmgVEz+z3AU/3b0cEzZOt/zmnvZEctg64/QZbSDJEVm9fLnnlSi74KibmRsO9/Qabi+t0vCRPg==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@vitest/pretty-format": "2.1.8", "magic-string": "^0.30.12", "pathe": "^1.1.2" + }, + "funding": { + "url": "https://opencollective.com/vitest" } }, - "@vitest/spy": { + "node_modules/@vitest/spy": { "version": "2.1.8", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-2.1.8.tgz", - "integrity": "sha512-5swjf2q95gXeYPevtW0BLk6H8+bPlMb4Vw/9Em4hFxDcaOxS+e0LOX4yqNxoHzMR2akEB2xfpnWUzkZokmgWDg==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "tinyspy": "^3.0.2" + }, + "funding": { + "url": "https://opencollective.com/vitest" } }, - "@vitest/utils": { + "node_modules/@vitest/utils": { "version": "2.1.8", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.1.8.tgz", - "integrity": "sha512-dwSoui6djdwbfFmIgbIjX2ZhIoG7Ex/+xpxyiEgIGzjliY8xGkcpITKTlp6B4MgtGkF2ilvm97cPM96XZaAgcA==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@vitest/pretty-format": "2.1.8", "loupe": "^3.1.2", "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" } }, - "assertion-error": { + "node_modules/assertion-error": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", - "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } }, - "cac": { + "node_modules/cac": { "version": "6.7.14", - "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", - "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "chai": { + "node_modules/chai": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/chai/-/chai-5.1.2.tgz", - "integrity": "sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "assertion-error": "^2.0.1", "check-error": "^2.1.1", "deep-eql": "^5.0.1", "loupe": "^3.1.0", "pathval": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/check-error": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 16" } }, - "check-error": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", - "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", - "dev": true - }, - "csstype": { + "node_modules/csstype": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", - "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==", - "dev": true + "dev": true, + "license": "MIT" }, - "dayjs": { + "node_modules/dayjs": { "version": "1.11.13", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", - "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==" + "license": "MIT" }, - "debug": { + "node_modules/debug": { "version": "4.4.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "deep-eql": { + "node_modules/deep-eql": { "version": "5.0.2", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", - "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } }, - "es-module-lexer": { + "node_modules/es-module-lexer": { "version": "1.6.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz", - "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==", - "dev": true + "dev": true, + "license": "MIT" }, - "esbuild": { + "node_modules/esbuild": { "version": "0.21.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", - "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", "dev": true, - "requires": { + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { "@esbuild/aix-ppc64": "0.21.5", "@esbuild/android-arm": "0.21.5", "@esbuild/android-arm64": "0.21.5", @@ -1945,113 +4347,155 @@ "@esbuild/win32-x64": "0.21.5" } }, - "estree-walker": { + "node_modules/estree-walker": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", - "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@types/estree": "^1.0.0" } }, - "expect-type": { + "node_modules/expect-type": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.1.0.tgz", - "integrity": "sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==", - "dev": true + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.0.0" + } }, - "fsevents": { + "node_modules/fsevents": { "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, - "optional": true + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } }, - "js-tokens": { + "node_modules/js-tokens": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true + "dev": true, + "license": "MIT" }, - "loose-envify": { + "node_modules/loose-envify": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" } }, - "loupe": { + "node_modules/loupe": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.2.tgz", - "integrity": "sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==", - "dev": true + "dev": true, + "license": "MIT" }, - "magic-string": { + "node_modules/magic-string": { "version": "0.30.17", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", - "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0" } }, - "ms": { + "node_modules/ms": { "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true + "dev": true, + "license": "MIT" }, - "nanoid": { + "node_modules/nanoid": { "version": "3.3.8", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", - "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", - "dev": true + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } }, - "pathe": { + "node_modules/pathe": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", - "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==" + "license": "MIT" }, - "pathval": { + "node_modules/pathval": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz", - "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.16" + } }, - "picocolors": { + "node_modules/picocolors": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "dev": true + "dev": true, + "license": "ISC" }, - "postcss": { + "node_modules/postcss": { "version": "8.5.1", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.1.tgz", - "integrity": "sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==", "dev": true, - "requires": { + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { "nanoid": "^3.3.8", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" } }, - "react": { + "node_modules/react": { "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", - "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "rollup": { + "node_modules/rollup": { "version": "4.31.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.31.0.tgz", - "integrity": "sha512-9cCE8P4rZLx9+PjoyqHLs31V9a9Vpvfo4qNcs6JCiGWYhw2gijSetFbH6SSy1whnkgcefnUwr8sad7tgqsGvnw==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.6" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.31.0", "@rollup/rollup-android-arm64": "4.31.0", "@rollup/rollup-darwin-arm64": "4.31.0", @@ -2071,100 +4515,154 @@ "@rollup/rollup-win32-arm64-msvc": "4.31.0", "@rollup/rollup-win32-ia32-msvc": "4.31.0", "@rollup/rollup-win32-x64-msvc": "4.31.0", - "@types/estree": "1.0.6", "fsevents": "~2.3.2" } }, - "siginfo": { + "node_modules/siginfo": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", - "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", - "dev": true + "dev": true, + "license": "ISC" }, - "source-map-js": { + "node_modules/source-map-js": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - "dev": true + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } }, - "stackback": { + "node_modules/stackback": { "version": "0.0.2", - "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", - "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", - "dev": true + "dev": true, + "license": "MIT" }, - "std-env": { + "node_modules/std-env": { "version": "3.8.0", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.8.0.tgz", - "integrity": "sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==", - "dev": true + "dev": true, + "license": "MIT" }, - "timeago.js": { + "node_modules/timeago.js": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/timeago.js/-/timeago.js-4.0.2.tgz", - "integrity": "sha512-a7wPxPdVlQL7lqvitHGGRsofhdwtkoSXPGATFuSOA2i1ZNQEPLrGnj68vOp2sOJTCFAQVXPeNMX/GctBaO9L2w==" + "license": "MIT" }, - "tinybench": { + "node_modules/tinybench": { "version": "2.9.0", - "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", - "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", - "dev": true + "dev": true, + "license": "MIT" }, - "tinyexec": { + "node_modules/tinyexec": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", - "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", - "dev": true + "dev": true, + "license": "MIT" }, - "tinypool": { + "node_modules/tinypool": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.0.2.tgz", - "integrity": "sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.0.0 || >=20.0.0" + } }, - "tinyrainbow": { + "node_modules/tinyrainbow": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-1.2.0.tgz", - "integrity": "sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } }, - "tinyspy": { + "node_modules/tinyspy": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-3.0.2.tgz", - "integrity": "sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } }, - "vite": { + "node_modules/vite": { "version": "5.4.12", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.12.tgz", - "integrity": "sha512-KwUaKB27TvWwDJr1GjjWthLMATbGEbeWYZIbGZ5qFIsgPP3vWzLu4cVooqhm5/Z2SPDUMjyPVjTztm5tYKwQxA==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "esbuild": "^0.21.3", - "fsevents": "~2.3.3", "postcss": "^8.4.43", "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } } }, - "vite-node": { + "node_modules/vite-node": { "version": "2.1.8", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-2.1.8.tgz", - "integrity": "sha512-uPAwSr57kYjAUux+8E2j0q0Fxpn8M9VoyfGiRI8Kfktz9NcYMCenwY5RnZxnF1WTu3TGiYipirIzacLL3VVGFg==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "cac": "^6.7.14", "debug": "^4.3.7", "es-module-lexer": "^1.5.4", "pathe": "^1.1.2", "vite": "^5.0.0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" } }, - "vitest": { + "node_modules/vitest": { "version": "2.1.8", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-2.1.8.tgz", - "integrity": "sha512-1vBKTZskHw/aosXqQUlVWWlGUxSJR8YtiyZDJAFeW2kPAeX6S3Sool0mjspO+kXLuxVWlEDDowBAeqeAQefqLQ==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@vitest/expect": "2.1.8", "@vitest/mocker": "2.1.8", "@vitest/pretty-format": "^2.1.8", @@ -2185,16 +4683,58 @@ "vite": "^5.0.0", "vite-node": "2.1.8", "why-is-node-running": "^2.3.0" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@types/node": "^18.0.0 || >=20.0.0", + "@vitest/browser": "2.1.8", + "@vitest/ui": "2.1.8", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } } }, - "why-is-node-running": { + "node_modules/why-is-node-running": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", - "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "siginfo": "^2.0.0", "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" } } } diff --git a/packages/core/__tests__/lookup.test.js b/packages/core/__tests__/lookup.test.js index 14a5a6587c..018c6f088e 100644 --- a/packages/core/__tests__/lookup.test.js +++ b/packages/core/__tests__/lookup.test.js @@ -58,6 +58,19 @@ test("search notes (remove diacritics)", () => expect(filtered).toHaveLength(1); })); +test("search notes (remove html tags)", () => + noteTest({ + content: { + type: "tiptap", + data: "

hello this is a word

" + } + }).then(async ({ db }) => { + await db.notes.add(TEST_NOTE); + expect(await db.lookup.notes("block").ids()).toHaveLength(0); + expect(await db.lookup.notes("hello").ids()).toHaveLength(2); + expect(await db.lookup.notes("word").ids()).toHaveLength(1); + })); + test("search notes with a locked note", () => noteTest({ content: content diff --git a/packages/core/__tests__/notes.test.ts b/packages/core/__tests__/notes.test.ts index c2fe7a2784..011d77fd48 100644 --- a/packages/core/__tests__/notes.test.ts +++ b/packages/core/__tests__/notes.test.ts @@ -60,13 +60,13 @@ test("add invalid note", () => databaseTest().then(async (db) => { // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore - expect(db.notes.add()).rejects.toThrow(); + await expect(db.notes.add()).rejects.toThrow(); - expect(db.notes.add({})).rejects.toThrow(); + await expect(db.notes.add({})).rejects.toThrow(); // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore - expect(db.notes.add({ hello: "world" })).rejects.toThrow(); + await expect(db.notes.add({ hello: "world" })).rejects.toThrow(); })); test("add note", () => @@ -134,7 +134,7 @@ test("changing content shouldn't reset the note title ", () => expect(note?.title).toBe("I am a note"); })); -test("note title with headline format should keep generating headline until title is edited", () => +test("note title with headline format should keep generating headline title until title is edited", () => noteTest().then(async ({ db }) => { await db.settings.setTitleFormat("$headline$"); const id = await db.notes.add({ @@ -191,19 +191,44 @@ test("note title with headline format should keep generating headline until titl "headlineLorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam rutrum ex ac eros egestas, ut rhoncus felis faucibus. Mauris tempor orci nisl," ] ].forEach(([testCase, content, expectedHeadline]) => { - test(`note should generate headline up to HEADLINE_CHARACTER_LIMIT characters - ${testCase}`, () => - noteTest({ - ...TEST_NOTE, - content: { - type: TEST_NOTE.content.type, - data: content - } - }).then(async ({ db, id }) => { + test(`note title with headline format should generate headline title up to 150 characters - ${testCase}`, () => + noteTest().then(async ({ db }) => { + await db.settings.setTitleFormat("$headline$"); + const id = await db.notes.add({ + content: { + type: TEST_NOTE.content.type, + data: content + } + }); const note = await db.notes.note(id); - expect(note?.headline).toBe(expectedHeadline); + expect(note?.title).toBe(expectedHeadline); })); }); +test("note should get headline from first paragraph in content", () => + noteTest({ + ...TEST_NOTE, + content: { + type: TEST_NOTE.content.type, + data: "

This is a very colorful existence.

" + } + }).then(async ({ db, id }) => { + const note = await db.notes.note(id); + expect(note?.headline).toBe("This is a very colorful existence."); + })); + +test("note should not get headline if there is no p tag", () => + noteTest({ + ...TEST_NOTE, + content: { + type: TEST_NOTE.content.type, + data: `
  1. Hello I won't be a headline :(
  2. Me too.
  3. Gold.
` + } + }).then(async ({ db, id }) => { + const note = await db.notes.note(id); + expect(note?.headline).toBe(""); + })); + test("note title should allow trailing space", () => noteTest({ title: "Hello ", content: TEST_NOTE.content }).then( async ({ db, id }) => { @@ -682,3 +707,54 @@ for (const group of groups) { })); } } + +test("get archived notes", () => + noteTest().then(async ({ db, id }) => { + await db.notes.archive(true, id); + expect(await db.notes.archived.count()).toBeGreaterThan(0); + })); + +test("archive note", () => + noteTest().then(async ({ db, id }) => { + await db.notes.archive(true, id); + const note = await db.notes.note(id); + expect(note?.archived).toBe(true); + })); + +test("unarchive note", () => + noteTest().then(async ({ db, id }) => { + await db.notes.archive(true, id); + await db.notes.archive(false, id); + const note = await db.notes.note(id); + expect(note?.archived).toBe(false); + })); + +test("archiving note should update cache.archived", () => + noteTest().then(async ({ db, id }) => { + await db.notes.archive(true, id); + const note = await db.notes.note(id); + expect(db.notes.cache.archived).toEqual([note?.id]); + })); + +test("un-archiving note should update cache.archived", () => + noteTest().then(async ({ db, id }) => { + await db.notes.archive(true, id); + const note = await db.notes.note(id); + expect(db.notes.cache.archived).toEqual([note?.id]); + + await db.notes.archive(false, id); + expect(db.notes.cache.archived).toEqual([]); + })); + +test("archived note shouldn't be in all notes", () => + noteTest().then(async ({ db, id }) => { + await db.notes.archive(true, id); + expect(await db.notes.all.count()).toBe(0); + })); + +test("archived note shouldn't be in favorites", () => + noteTest().then(async ({ db, id }) => { + await db.notes.favorite(true, id); + await db.notes.archive(true, id); + expect(await db.notes.favorites.count()).toBe(0); + })); diff --git a/packages/core/__tests__/settings.test.js b/packages/core/__tests__/settings.test.js index 4293028b21..e1095b99f9 100644 --- a/packages/core/__tests__/settings.test.js +++ b/packages/core/__tests__/settings.test.js @@ -40,3 +40,10 @@ test("save toolbar config", () => await db.settings.setToolbarConfig("mobile", toolbarConfig); expect(db.settings.getToolbarConfig("mobile")).toMatchObject(toolbarConfig); })); + +test("save trash cleanup interval", () => + databaseTest().then(async (db) => { + const interval = 7; + await db.settings.setTrashCleanupInterval(interval); + expect(db.settings.getTrashCleanupInterval()).toBe(interval); + })); diff --git a/packages/core/__tests__/utils/index.ts b/packages/core/__tests__/utils/index.ts index dc7c4d84e2..e718640ee1 100644 --- a/packages/core/__tests__/utils/index.ts +++ b/packages/core/__tests__/utils/index.ts @@ -31,6 +31,7 @@ import { tmpdir } from "os"; import { getId } from "../../src/utils/id.js"; import { existsSync, mkdirSync } from "fs"; import * as betterTrigram from "sqlite-better-trigram"; +import * as fts5Html from "sqlite3-fts5-html"; const TEST_NOTEBOOK: Partial = { title: "Test Notebook", @@ -65,6 +66,7 @@ function databaseTest(type: "memory" | "persistent" = "memory") { batchSize: 500 }); betterTrigram.load(betterSqliteDb); + fts5Html.load(betterSqliteDb); return db.init().then(() => db); } diff --git a/packages/core/__tests__/vault.test.js b/packages/core/__tests__/vault.test.js index ee92021d1c..2cd4bacf88 100644 --- a/packages/core/__tests__/vault.test.js +++ b/packages/core/__tests__/vault.test.js @@ -34,12 +34,12 @@ test("create vault", () => test("lock vault", () => databaseTest().then(async (db) => { await expect(db.vault.create("password")).resolves.toBe(true); - expect(db.vault.lock()).resolves.toBe(true); + await expect(db.vault.lock()).resolves.toBe(true); })); test("lock non-existent vault", () => databaseTest().then(async (db) => { - expect(db.vault.lock()).resolves.toBe(true); + await expect(db.vault.lock()).resolves.toBe(true); })); test("unlock vault", () => @@ -206,7 +206,7 @@ test("clear vault", () => expect(await db.relations.from(vault, "note").has(id)).toBe(false); })); -test("delete vault without deleting all locked notes", () => +test("delete vault", () => noteTest().then(async ({ db, id }) => { await db.vault.create("password"); await db.vault.add(id); @@ -214,18 +214,6 @@ test("delete vault without deleting all locked notes", () => await db.vault.delete(); - expect(await db.relations.from(vault, "note").has(id)).toBe(false); - expect(await db.vaults.default()).toBeUndefined(); - })); - -test("delete vault and delete all locked notes", () => - noteTest().then(async ({ db, id }) => { - await db.vault.create("password"); - await db.vault.add(id); - const vault = await db.vaults.default(); - - await db.vault.delete(true); - expect(await db.relations.from(vault, "note").has(id)).toBe(false); expect(await db.notes.exists(id)).toBe(false); expect(await db.vaults.default()).toBeUndefined(); diff --git a/packages/core/package-lock.json b/packages/core/package-lock.json index 5c94fa9baf..143039b13e 100644 --- a/packages/core/package-lock.json +++ b/packages/core/package-lock.json @@ -33,8 +33,7 @@ "prismjs": "^1.29.0", "qclone": "^1.2.0", "rfdc": "^1.3.0", - "spark-md5": "^3.0.2", - "sqlite-better-trigram": "0.0.2" + "spark-md5": "^3.0.2" }, "devDependencies": { "@notesnook/crypto": "file:../crypto", @@ -60,6 +59,8 @@ "nanoid": "5.0.7", "otplib": "^12.0.1", "refractor": "^4.8.1", + "sqlite-better-trigram": "^0.0.3", + "sqlite3-fts5-html": "^0.0.2", "vitest": "2.1.8", "vitest-fetch-mock": "^0.2.2", "ws": "^8.13.0" @@ -153,16 +154,16 @@ "node": ">=12" } }, - "../sodium/node_modules/@esbuild/win32-x64": { - "version": "0.17.19", + "../sodium/node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", "cpu": [ - "x64" + "arm64" ], "dev": true, "license": "MIT", "optional": true, "os": [ - "win32" + "darwin" ], "engines": { "node": ">=12" @@ -177,7 +178,7 @@ } }, "../sodium/node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", + "version": "1.5.0", "dev": true, "license": "MIT" }, @@ -190,6 +191,18 @@ "@jridgewell/sourcemap-codec": "^1.4.10" } }, + "../sodium/node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.31.0", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, "../sodium/node_modules/@tsconfig/node10": { "version": "1.0.9", "dev": true, @@ -210,96 +223,118 @@ "dev": true, "license": "MIT" }, - "../sodium/node_modules/@types/chai": { - "version": "4.3.5", + "../sodium/node_modules/@types/estree": { + "version": "1.0.6", "dev": true, "license": "MIT" }, - "../sodium/node_modules/@types/chai-subset": { - "version": "1.3.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/chai": "*" - } - }, "../sodium/node_modules/@types/libsodium-wrappers": { "version": "0.7.10", "dev": true, "license": "MIT" }, "../sodium/node_modules/@types/libsodium-wrappers-sumo": { - "version": "0.7.5", + "version": "0.7.8", "dev": true, "license": "MIT", "dependencies": { "@types/libsodium-wrappers": "*" } }, - "../sodium/node_modules/@types/node": { - "version": "18.15.9", + "../sodium/node_modules/@vitest/expect": { + "version": "2.1.8", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "@vitest/spy": "2.1.8", + "@vitest/utils": "2.1.8", + "chai": "^5.1.2", + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } }, - "../sodium/node_modules/@vitest/expect": { - "version": "0.32.2", + "../sodium/node_modules/@vitest/mocker": { + "version": "2.1.8", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "2.1.8", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.12" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "msw": "^2.4.9", + "vite": "^5.0.0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "../sodium/node_modules/@vitest/pretty-format": { + "version": "2.1.8", "dev": true, "license": "MIT", "dependencies": { - "@vitest/spy": "0.32.2", - "@vitest/utils": "0.32.2", - "chai": "^4.3.7" + "tinyrainbow": "^1.2.0" }, "funding": { "url": "https://opencollective.com/vitest" } }, "../sodium/node_modules/@vitest/runner": { - "version": "0.32.2", + "version": "2.1.8", "dev": true, "license": "MIT", "dependencies": { - "@vitest/utils": "0.32.2", - "concordance": "^5.0.4", - "p-limit": "^4.0.0", - "pathe": "^1.1.0" + "@vitest/utils": "2.1.8", + "pathe": "^1.1.2" }, "funding": { "url": "https://opencollective.com/vitest" } }, "../sodium/node_modules/@vitest/snapshot": { - "version": "0.32.2", + "version": "2.1.8", "dev": true, "license": "MIT", "dependencies": { - "magic-string": "^0.30.0", - "pathe": "^1.1.0", - "pretty-format": "^27.5.1" + "@vitest/pretty-format": "2.1.8", + "magic-string": "^0.30.12", + "pathe": "^1.1.2" }, "funding": { "url": "https://opencollective.com/vitest" } }, "../sodium/node_modules/@vitest/spy": { - "version": "0.32.2", + "version": "2.1.8", "dev": true, "license": "MIT", "dependencies": { - "tinyspy": "^2.1.0" + "tinyspy": "^3.0.2" }, "funding": { "url": "https://opencollective.com/vitest" } }, "../sodium/node_modules/@vitest/utils": { - "version": "0.32.2", + "version": "2.1.8", "dev": true, "license": "MIT", "dependencies": { - "diff-sequences": "^29.4.3", - "loupe": "^2.3.6", - "pretty-format": "^27.5.1" + "@vitest/pretty-format": "2.1.8", + "loupe": "^3.1.2", + "tinyrainbow": "^1.2.0" }, "funding": { "url": "https://opencollective.com/vitest" @@ -346,28 +381,17 @@ "node": ">=8" } }, - "../sodium/node_modules/ansi-styles": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "../sodium/node_modules/arg": { "version": "4.1.3", "dev": true, "license": "MIT" }, "../sodium/node_modules/assertion-error": { - "version": "1.1.0", + "version": "2.0.1", "dev": true, "license": "MIT", "engines": { - "node": "*" + "node": ">=12" } }, "../sodium/node_modules/astral-regex": { @@ -406,11 +430,6 @@ "node": ">=12" } }, - "../sodium/node_modules/blueimp-md5": { - "version": "2.19.0", - "dev": true, - "license": "MIT" - }, "../sodium/node_modules/cac": { "version": "6.7.14", "dev": true, @@ -420,28 +439,26 @@ } }, "../sodium/node_modules/chai": { - "version": "4.3.7", + "version": "5.1.2", "dev": true, "license": "MIT", "dependencies": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^4.1.2", - "get-func-name": "^2.0.0", - "loupe": "^2.3.1", - "pathval": "^1.1.1", - "type-detect": "^4.0.5" + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" }, "engines": { - "node": ">=4" + "node": ">=12" } }, "../sodium/node_modules/check-error": { - "version": "1.0.2", + "version": "2.1.1", "dev": true, "license": "MIT", "engines": { - "node": "*" + "node": ">= 16" } }, "../sodium/node_modules/cli-cursor": { @@ -487,46 +504,17 @@ "node": ">=4.0.0" } }, - "../sodium/node_modules/concordance": { - "version": "5.0.4", - "dev": true, - "license": "ISC", - "dependencies": { - "date-time": "^3.1.0", - "esutils": "^2.0.3", - "fast-diff": "^1.2.0", - "js-string-escape": "^1.0.1", - "lodash": "^4.17.15", - "md5-hex": "^3.0.1", - "semver": "^7.3.2", - "well-known-symbols": "^2.0.0" - }, - "engines": { - "node": ">=10.18.0 <11 || >=12.14.0 <13 || >=14" - } - }, "../sodium/node_modules/create-require": { "version": "1.1.1", "dev": true, "license": "MIT" }, - "../sodium/node_modules/date-time": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "time-zone": "^1.0.0" - }, - "engines": { - "node": ">=6" - } - }, "../sodium/node_modules/debug": { - "version": "4.3.4", + "version": "4.4.0", "dev": true, "license": "MIT", "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -538,26 +526,20 @@ } }, "../sodium/node_modules/deep-eql": { - "version": "4.1.3", + "version": "5.0.2", "dev": true, "license": "MIT", - "dependencies": { - "type-detect": "^4.0.0" - }, "engines": { "node": ">=6" } }, - "../sodium/node_modules/diff-sequences": { - "version": "29.4.3", + "../sodium/node_modules/es-module-lexer": { + "version": "1.6.0", "dev": true, - "license": "MIT", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } + "license": "MIT" }, "../sodium/node_modules/esbuild": { - "version": "0.17.19", + "version": "0.21.5", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -568,36 +550,45 @@ "node": ">=12" }, "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" - } - }, - "../sodium/node_modules/esutils": { - "version": "2.0.3", + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "../sodium/node_modules/estree-walker": { + "version": "3.0.3", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "../sodium/node_modules/expect-type": { + "version": "1.1.0", + "dev": true, + "license": "Apache-2.0", "engines": { - "node": ">=0.10.0" + "node": ">=12.0.0" } }, "../sodium/node_modules/fast-deep-equal": { @@ -605,11 +596,6 @@ "dev": true, "license": "MIT" }, - "../sodium/node_modules/fast-diff": { - "version": "1.3.0", - "dev": true, - "license": "Apache-2.0" - }, "../sodium/node_modules/fs-extra": { "version": "10.1.0", "dev": true, @@ -623,12 +609,16 @@ "node": ">=12" } }, - "../sodium/node_modules/get-func-name": { - "version": "2.0.0", + "../sodium/node_modules/fsevents": { + "version": "2.3.3", "dev": true, "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": "*" + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, "../sodium/node_modules/graceful-fs": { @@ -636,14 +626,6 @@ "dev": true, "license": "ISC" }, - "../sodium/node_modules/js-string-escape": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "../sodium/node_modules/json2csv": { "version": "5.0.7", "dev": true, @@ -661,11 +643,6 @@ "npm": ">= 6.13.0" } }, - "../sodium/node_modules/jsonc-parser": { - "version": "3.2.0", - "dev": true, - "license": "MIT" - }, "../sodium/node_modules/jsonfile": { "version": "6.1.0", "dev": true, @@ -694,27 +671,16 @@ } }, "../sodium/node_modules/libsodium-sumo": { - "version": "0.7.11", + "version": "0.7.15", "dev": true, "license": "ISC" }, "../sodium/node_modules/libsodium-wrappers-sumo": { - "version": "0.7.11", + "version": "0.7.15", "dev": true, "license": "ISC", "dependencies": { - "libsodium-sumo": "^0.7.11" - } - }, - "../sodium/node_modules/local-pkg": { - "version": "0.4.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" + "libsodium-sumo": "^0.7.15" } }, "../sodium/node_modules/lodash": { @@ -783,33 +749,16 @@ } }, "../sodium/node_modules/loupe": { - "version": "2.3.6", - "dev": true, - "license": "MIT", - "dependencies": { - "get-func-name": "^2.0.0" - } - }, - "../sodium/node_modules/lru-cache": { - "version": "6.0.0", + "version": "3.1.2", "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } + "license": "MIT" }, "../sodium/node_modules/magic-string": { - "version": "0.30.0", + "version": "0.30.17", "dev": true, "license": "MIT", "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.13" - }, - "engines": { - "node": ">=12" + "@jridgewell/sourcemap-codec": "^1.5.0" } }, "../sodium/node_modules/make-error": { @@ -817,17 +766,6 @@ "dev": true, "license": "ISC" }, - "../sodium/node_modules/md5-hex": { - "version": "3.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "blueimp-md5": "^2.10.0" - }, - "engines": { - "node": ">=8" - } - }, "../sodium/node_modules/mimic-fn": { "version": "2.1.0", "dev": true, @@ -836,24 +774,13 @@ "node": ">=6" } }, - "../sodium/node_modules/mlly": { - "version": "1.4.0", - "dev": true, - "license": "MIT", - "dependencies": { - "acorn": "^8.9.0", - "pathe": "^1.1.1", - "pkg-types": "^1.0.3", - "ufo": "^1.1.2" - } - }, "../sodium/node_modules/ms": { - "version": "2.1.2", + "version": "2.1.3", "dev": true, "license": "MIT" }, "../sodium/node_modules/nanoid": { - "version": "3.3.6", + "version": "3.3.8", "dev": true, "funding": [ { @@ -869,69 +796,55 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "../sodium/node_modules/onetime": { - "version": "5.1.2", + "../sodium/node_modules/node-gyp-build": { + "version": "4.8.2", "dev": true, "license": "MIT", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" } }, - "../sodium/node_modules/p-limit": { - "version": "4.0.0", + "../sodium/node_modules/onetime": { + "version": "5.1.2", "dev": true, "license": "MIT", "dependencies": { - "yocto-queue": "^1.0.0" + "mimic-fn": "^2.1.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "../sodium/node_modules/pathe": { - "version": "1.1.1", + "version": "1.1.2", "dev": true, "license": "MIT" }, "../sodium/node_modules/pathval": { - "version": "1.1.1", + "version": "2.0.0", "dev": true, "license": "MIT", "engines": { - "node": "*" + "node": ">= 14.16" } }, "../sodium/node_modules/picocolors": { - "version": "1.0.0", + "version": "1.1.1", "dev": true, "license": "ISC" }, - "../sodium/node_modules/pkg-types": { - "version": "1.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "jsonc-parser": "^3.2.0", - "mlly": "^1.2.0", - "pathe": "^1.1.0" - } - }, "../sodium/node_modules/platform": { "version": "1.3.6", "dev": true, "license": "MIT" }, "../sodium/node_modules/postcss": { - "version": "8.4.24", + "version": "8.5.1", "dev": true, "funding": [ { @@ -949,32 +862,14 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" + "nanoid": "^3.3.8", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" }, "engines": { "node": "^10 || ^12 || >=14" } }, - "../sodium/node_modules/pretty-format": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../sodium/node_modules/react-is": { - "version": "17.0.2", - "dev": true, - "license": "MIT" - }, "../sodium/node_modules/restore-cursor": { "version": "3.1.0", "dev": true, @@ -988,34 +883,42 @@ } }, "../sodium/node_modules/rollup": { - "version": "3.25.2", + "version": "4.31.0", "dev": true, "license": "MIT", + "dependencies": { + "@types/estree": "1.0.6" + }, "bin": { "rollup": "dist/bin/rollup" }, "engines": { - "node": ">=14.18.0", + "node": ">=18.0.0", "npm": ">=8.0.0" }, "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.31.0", + "@rollup/rollup-android-arm64": "4.31.0", + "@rollup/rollup-darwin-arm64": "4.31.0", + "@rollup/rollup-darwin-x64": "4.31.0", + "@rollup/rollup-freebsd-arm64": "4.31.0", + "@rollup/rollup-freebsd-x64": "4.31.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.31.0", + "@rollup/rollup-linux-arm-musleabihf": "4.31.0", + "@rollup/rollup-linux-arm64-gnu": "4.31.0", + "@rollup/rollup-linux-arm64-musl": "4.31.0", + "@rollup/rollup-linux-loongarch64-gnu": "4.31.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.31.0", + "@rollup/rollup-linux-riscv64-gnu": "4.31.0", + "@rollup/rollup-linux-s390x-gnu": "4.31.0", + "@rollup/rollup-linux-x64-gnu": "4.31.0", + "@rollup/rollup-linux-x64-musl": "4.31.0", + "@rollup/rollup-win32-arm64-msvc": "4.31.0", + "@rollup/rollup-win32-ia32-msvc": "4.31.0", + "@rollup/rollup-win32-x64-msvc": "4.31.0", "fsevents": "~2.3.2" } }, - "../sodium/node_modules/semver": { - "version": "7.5.3", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "../sodium/node_modules/siginfo": { "version": "2.0.0", "dev": true, @@ -1026,8 +929,17 @@ "dev": true, "license": "ISC" }, + "../sodium/node_modules/sodium-native": { + "version": "4.2.0", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "node-gyp-build": "^4.8.0" + } + }, "../sodium/node_modules/source-map-js": { - "version": "1.0.2", + "version": "1.2.1", "dev": true, "license": "BSD-3-Clause", "engines": { @@ -1040,36 +952,30 @@ "license": "MIT" }, "../sodium/node_modules/std-env": { - "version": "3.3.2", + "version": "3.8.0", "dev": true, "license": "MIT" }, - "../sodium/node_modules/strip-literal": { - "version": "1.0.1", + "../sodium/node_modules/tinybench": { + "version": "2.9.0", "dev": true, - "license": "MIT", - "dependencies": { - "acorn": "^8.8.2" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - } + "license": "MIT" }, - "../sodium/node_modules/time-zone": { - "version": "1.0.0", + "../sodium/node_modules/tinyexec": { + "version": "0.3.2", + "dev": true, + "license": "MIT" + }, + "../sodium/node_modules/tinypool": { + "version": "1.0.2", "dev": true, "license": "MIT", "engines": { - "node": ">=4" + "node": "^18.0.0 || >=20.0.0" } }, - "../sodium/node_modules/tinybench": { - "version": "2.5.0", - "dev": true, - "license": "MIT" - }, - "../sodium/node_modules/tinypool": { - "version": "0.5.0", + "../sodium/node_modules/tinyrainbow": { + "version": "1.2.0", "dev": true, "license": "MIT", "engines": { @@ -1077,7 +983,7 @@ } }, "../sodium/node_modules/tinyspy": { - "version": "2.1.1", + "version": "3.0.2", "dev": true, "license": "MIT", "engines": { @@ -1134,14 +1040,6 @@ "node": ">=0.3.1" } }, - "../sodium/node_modules/type-detect": { - "version": "4.0.8", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "../sodium/node_modules/type-fest": { "version": "0.21.3", "dev": true, @@ -1153,11 +1051,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "../sodium/node_modules/ufo": { - "version": "1.1.2", - "dev": true, - "license": "MIT" - }, "../sodium/node_modules/universalify": { "version": "2.0.0", "dev": true, @@ -1172,27 +1065,32 @@ "license": "MIT" }, "../sodium/node_modules/vite": { - "version": "4.3.9", + "version": "5.4.12", "dev": true, "license": "MIT", "dependencies": { - "esbuild": "^0.17.5", - "postcss": "^8.4.23", - "rollup": "^3.21.0" + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" }, "bin": { "vite": "bin/vite.js" }, "engines": { - "node": "^14.18.0 || >=16.0.0" + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" }, "optionalDependencies": { - "fsevents": "~2.3.2" + "fsevents": "~2.3.3" }, "peerDependencies": { - "@types/node": ">= 14", + "@types/node": "^18.0.0 || >=20.0.0", "less": "*", + "lightningcss": "^1.21.0", "sass": "*", + "sass-embedded": "*", "stylus": "*", "sugarss": "*", "terser": "^5.4.0" @@ -1204,9 +1102,15 @@ "less": { "optional": true }, + "lightningcss": { + "optional": true + }, "sass": { "optional": true }, + "sass-embedded": { + "optional": true + }, "stylus": { "optional": true }, @@ -1219,81 +1123,76 @@ } }, "../sodium/node_modules/vite-node": { - "version": "0.32.2", + "version": "2.1.8", "dev": true, "license": "MIT", "dependencies": { "cac": "^6.7.14", - "debug": "^4.3.4", - "mlly": "^1.2.0", - "pathe": "^1.1.0", - "picocolors": "^1.0.0", - "vite": "^3.0.0 || ^4.0.0" + "debug": "^4.3.7", + "es-module-lexer": "^1.5.4", + "pathe": "^1.1.2", + "vite": "^5.0.0" }, "bin": { "vite-node": "vite-node.mjs" }, "engines": { - "node": ">=v14.18.0" + "node": "^18.0.0 || >=20.0.0" }, "funding": { "url": "https://opencollective.com/vitest" } }, "../sodium/node_modules/vitest": { - "version": "0.32.2", + "version": "2.1.8", "dev": true, "license": "MIT", "dependencies": { - "@types/chai": "^4.3.5", - "@types/chai-subset": "^1.3.3", - "@types/node": "*", - "@vitest/expect": "0.32.2", - "@vitest/runner": "0.32.2", - "@vitest/snapshot": "0.32.2", - "@vitest/spy": "0.32.2", - "@vitest/utils": "0.32.2", - "acorn": "^8.8.2", - "acorn-walk": "^8.2.0", - "cac": "^6.7.14", - "chai": "^4.3.7", - "concordance": "^5.0.4", - "debug": "^4.3.4", - "local-pkg": "^0.4.3", - "magic-string": "^0.30.0", - "pathe": "^1.1.0", - "picocolors": "^1.0.0", - "std-env": "^3.3.2", - "strip-literal": "^1.0.1", - "tinybench": "^2.5.0", - "tinypool": "^0.5.0", - "vite": "^3.0.0 || ^4.0.0", - "vite-node": "0.32.2", - "why-is-node-running": "^2.2.2" + "@vitest/expect": "2.1.8", + "@vitest/mocker": "2.1.8", + "@vitest/pretty-format": "^2.1.8", + "@vitest/runner": "2.1.8", + "@vitest/snapshot": "2.1.8", + "@vitest/spy": "2.1.8", + "@vitest/utils": "2.1.8", + "chai": "^5.1.2", + "debug": "^4.3.7", + "expect-type": "^1.1.0", + "magic-string": "^0.30.12", + "pathe": "^1.1.2", + "std-env": "^3.8.0", + "tinybench": "^2.9.0", + "tinyexec": "^0.3.1", + "tinypool": "^1.0.1", + "tinyrainbow": "^1.2.0", + "vite": "^5.0.0", + "vite-node": "2.1.8", + "why-is-node-running": "^2.3.0" }, "bin": { "vitest": "vitest.mjs" }, "engines": { - "node": ">=v14.18.0" + "node": "^18.0.0 || >=20.0.0" }, "funding": { "url": "https://opencollective.com/vitest" }, "peerDependencies": { "@edge-runtime/vm": "*", - "@vitest/browser": "*", - "@vitest/ui": "*", + "@types/node": "^18.0.0 || >=20.0.0", + "@vitest/browser": "2.1.8", + "@vitest/ui": "2.1.8", "happy-dom": "*", - "jsdom": "*", - "playwright": "*", - "safaridriver": "*", - "webdriverio": "*" + "jsdom": "*" }, "peerDependenciesMeta": { "@edge-runtime/vm": { "optional": true }, + "@types/node": { + "optional": true + }, "@vitest/browser": { "optional": true }, @@ -1305,28 +1204,11 @@ }, "jsdom": { "optional": true - }, - "playwright": { - "optional": true - }, - "safaridriver": { - "optional": true - }, - "webdriverio": { - "optional": true } } }, - "../sodium/node_modules/well-known-symbols": { - "version": "2.0.0", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=6" - } - }, "../sodium/node_modules/why-is-node-running": { - "version": "2.2.2", + "version": "2.3.0", "dev": true, "license": "MIT", "dependencies": { @@ -1404,11 +1286,6 @@ "node": ">=8" } }, - "../sodium/node_modules/yallist": { - "version": "4.0.0", - "dev": true, - "license": "ISC" - }, "../sodium/node_modules/yn": { "version": "3.1.1", "dev": true, @@ -1417,22 +1294,10 @@ "node": ">=6" } }, - "../sodium/node_modules/yocto-queue": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@ampproject/remapping": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" @@ -1443,27 +1308,24 @@ }, "node_modules/@babel/helper-string-parser": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", - "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", - "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.5.tgz", - "integrity": "sha512-SRJ4jYmXRqV1/Xc+TIVG84WjHBXKlxO9sHQnA2Pf12QQEAp1LOh6kDzNHXcUnbH1QI0FDoPPVOt+vyUDucxpaw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.26.5" }, @@ -1476,9 +1338,8 @@ }, "node_modules/@babel/types": { "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.5.tgz", - "integrity": "sha512-L6mZmwFDK6Cjh1nRCLXpa6no13ZIioJDz7mdkzHv399pThrTa/k0nUlNaenOeh2kWu/iaOQYElEpKPUswUa9Vg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.25.9", "@babel/helper-validator-identifier": "^7.25.9" @@ -1492,443 +1353,83 @@ "dev": true, "license": "MIT" }, - "node_modules/@esbuild/aix-ppc64": { + "node_modules/@esbuild/darwin-arm64": { "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", - "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", "cpu": [ - "ppc64" + "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ - "aix" + "darwin" ], "engines": { "node": ">=12" } }, - "node_modules/@esbuild/android-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", - "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", - "cpu": [ - "arm" - ], + "node_modules/@isaacs/cliui": { + "version": "8.0.2", "dev": true, - "optional": true, - "os": [ - "android" - ], + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, "engines": { "node": ">=12" } }, - "node_modules/@esbuild/android-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", - "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", - "cpu": [ - "arm64" - ], + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", "dev": true, - "optional": true, - "os": [ - "android" - ], + "license": "MIT", "engines": { - "node": ">=12" + "node": ">=8" } }, - "node_modules/@esbuild/android-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", - "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", - "cpu": [ - "x64" - ], + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.8", "dev": true, - "optional": true, - "os": [ - "android" - ], + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, "engines": { - "node": ">=12" + "node": ">=6.0.0" } }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", - "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", - "cpu": [ - "arm64" - ], + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", "dev": true, - "optional": true, - "os": [ - "darwin" - ], + "license": "MIT", "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", - "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", - "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", - "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", - "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", - "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", - "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", - "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", - "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", - "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", - "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", - "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", - "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", - "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", - "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", - "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", - "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", - "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", - "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dev": true, - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", - "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, - "engines": { - "node": ">=6.0.0" + "node": ">=6.0.0" } }, "node_modules/@jridgewell/set-array": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" @@ -1936,8 +1437,7 @@ }, "node_modules/@leeoniya/ufuzzy": { "version": "1.0.14", - "resolved": "https://registry.npmjs.org/@leeoniya/ufuzzy/-/ufuzzy-1.0.14.tgz", - "integrity": "sha512-/xF4baYuCQMo+L/fMSUrZnibcu0BquEGnbxfVPiZhs/NbJeKj4c/UmFpQzW9Us0w45ui/yYW3vyaqawhNYsTzA==" + "license": "MIT" }, "node_modules/@microsoft/signalr": { "version": "8.0.0", @@ -2021,9 +1521,8 @@ }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", "dev": true, + "license": "MIT", "optional": true, "engines": { "node": ">=14" @@ -2036,253 +1535,18 @@ "node": ">=18" } }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.31.0.tgz", - "integrity": "sha512-9NrR4033uCbUBRgvLcBrJofa2KY9DzxL2UKZ1/4xA/mnTNyhZCWBuD8X3tPm1n4KxcgaraOYgrFKSgwjASfmlA==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.31.0.tgz", - "integrity": "sha512-iBbODqT86YBFHajxxF8ebj2hwKm1k8PTBQSojSt3d1FFt1gN+xf4CowE47iN0vOSdnd+5ierMHBbu/rHc7nq5g==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ] - }, "node_modules/@rollup/rollup-darwin-arm64": { "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.31.0.tgz", - "integrity": "sha512-WHIZfXgVBX30SWuTMhlHPXTyN20AXrLH4TEeH/D0Bolvx9PjgZnn4H677PlSGvU6MKNsjCQJYczkpvBbrBnG6g==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ] }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.31.0.tgz", - "integrity": "sha512-hrWL7uQacTEF8gdrQAqcDy9xllQ0w0zuL1wk1HV8wKGSGbKPVjVUv/DEwT2+Asabf8Dh/As+IvfdU+H8hhzrQQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.31.0.tgz", - "integrity": "sha512-S2oCsZ4hJviG1QjPY1h6sVJLBI6ekBeAEssYKad1soRFv3SocsQCzX6cwnk6fID6UQQACTjeIMB+hyYrFacRew==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.31.0.tgz", - "integrity": "sha512-pCANqpynRS4Jirn4IKZH4tnm2+2CqCNLKD7gAdEjzdLGbH1iO0zouHz4mxqg0uEMpO030ejJ0aA6e1PJo2xrPA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.31.0.tgz", - "integrity": "sha512-0O8ViX+QcBd3ZmGlcFTnYXZKGbFu09EhgD27tgTdGnkcYXLat4KIsBBQeKLR2xZDCXdIBAlWLkiXE1+rJpCxFw==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.31.0.tgz", - "integrity": "sha512-w5IzG0wTVv7B0/SwDnMYmbr2uERQp999q8FMkKG1I+j8hpPX2BYFjWe69xbhbP6J9h2gId/7ogesl9hwblFwwg==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.31.0.tgz", - "integrity": "sha512-JyFFshbN5xwy6fulZ8B/8qOqENRmDdEkcIMF0Zz+RsfamEW+Zabl5jAb0IozP/8UKnJ7g2FtZZPEUIAlUSX8cA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.31.0.tgz", - "integrity": "sha512-kpQXQ0UPFeMPmPYksiBL9WS/BDiQEjRGMfklVIsA0Sng347H8W2iexch+IEwaR7OVSKtr2ZFxggt11zVIlZ25g==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.31.0.tgz", - "integrity": "sha512-pMlxLjt60iQTzt9iBb3jZphFIl55a70wexvo8p+vVFK+7ifTRookdoXX3bOsRdmfD+OKnMozKO6XM4zR0sHRrQ==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.31.0.tgz", - "integrity": "sha512-D7TXT7I/uKEuWiRkEFbed1UUYZwcJDU4vZQdPTcepK7ecPhzKOYk4Er2YR4uHKme4qDeIh6N3XrLfpuM7vzRWQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.31.0.tgz", - "integrity": "sha512-wal2Tc8O5lMBtoePLBYRKj2CImUCJ4UNGJlLwspx7QApYny7K1cUYlzQ/4IGQBLmm+y0RS7dwc3TDO/pmcneTw==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.31.0.tgz", - "integrity": "sha512-O1o5EUI0+RRMkK9wiTVpk2tyzXdXefHtRTIjBbmFREmNMy7pFeYXCFGbhKFwISA3UOExlo5GGUuuj3oMKdK6JQ==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.31.0.tgz", - "integrity": "sha512-zSoHl356vKnNxwOWnLd60ixHNPRBglxpv2g7q0Cd3Pmr561gf0HiAcUBRL3S1vPqRC17Zo2CX/9cPkqTIiai1g==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.31.0.tgz", - "integrity": "sha512-ypB/HMtcSGhKUQNiFwqgdclWNRrAYDH8iMYH4etw/ZlGwiTVxBz2tDrGRrPlfZu6QjXwtd+C3Zib5pFqID97ZA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.31.0.tgz", - "integrity": "sha512-JuhN2xdI/m8Hr+aVO3vspO7OQfUFO6bKLIRTAy0U15vmWjnZDLrEgCZ2s6+scAYaQVpYSh9tZtRijApw9IXyMw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.31.0.tgz", - "integrity": "sha512-U1xZZXYkvdf5MIWmftU8wrM5PPXzyaY1nGCI4KI4BFfoZxHamsIe+BtnPLIvvPykvQWlVbqUXdLa4aJUuilwLQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.31.0.tgz", - "integrity": "sha512-ul8rnCsUumNln5YWwz0ted2ZHFhzhRRnkpBZ+YRuHoRAlUji9KChpOUOndY7uykrPEPXVbHLlsdo6v5yXo/TXw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, "node_modules/@selderee/plugin-htmlparser2": { "version": "0.11.0", "license": "MIT", @@ -2296,16 +1560,14 @@ }, "node_modules/@streetwriters/kysely": { "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@streetwriters/kysely/-/kysely-0.27.4.tgz", - "integrity": "sha512-c2p+wtX8WESSVjJAc16j4lT44w/g1DvJFEIeKj/CFy36vmi0uq9FOAzxc50VtRc7rp0UlECCfl3Sxd+BTZOHFg==", + "license": "MIT", "engines": { "node": ">=14.0.0" } }, "node_modules/@streetwriters/showdown": { "version": "3.0.9-alpha", - "resolved": "https://registry.npmjs.org/@streetwriters/showdown/-/showdown-3.0.9-alpha.tgz", - "integrity": "sha512-ZpRFpDBhhPsshl76mttp3NcpLkJ3Bew6nFH/y4IvTrDw41uaquExo9EpmDemrcjSqymzFpmyWnOeDtJvG6noYQ==", + "license": "MIT", "bin": { "showdown": "bin/showdown.js" }, @@ -2316,18 +1578,16 @@ }, "node_modules/@types/better-sqlite3": { "version": "7.6.9", - "resolved": "https://registry.npmjs.org/@types/better-sqlite3/-/better-sqlite3-7.6.9.tgz", - "integrity": "sha512-FvktcujPDj9XKMJQWFcl2vVl7OdRIqsSRX9b0acWwTmwLK9CF2eqo/FRcmMLNpugKoX/avA6pb7TorDLmpgTnQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/estree": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", - "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/event-source-polyfill": { "version": "1.0.5", @@ -2344,9 +1604,8 @@ }, "node_modules/@types/hast/node_modules/@types/unist": { "version": "2.0.11", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", - "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/html-to-text": { "version": "9.0.0", @@ -2360,8 +1619,7 @@ }, "node_modules/@types/mime-db": { "version": "1.43.5", - "resolved": "https://registry.npmjs.org/@types/mime-db/-/mime-db-1.43.5.tgz", - "integrity": "sha512-/bfTiIUTNPUBnwnYvUxXAre5MhD88jgagLEQiQtIASjU+bwxd8kS/ASDA4a8ufd8m0Lheu6eeMJHEUpLHoJ28A==" + "license": "MIT" }, "node_modules/@types/node": { "version": "18.11.9", @@ -2370,9 +1628,8 @@ }, "node_modules/@types/prismjs": { "version": "1.26.4", - "resolved": "https://registry.npmjs.org/@types/prismjs/-/prismjs-1.26.4.tgz", - "integrity": "sha512-rlAnzkW2sZOjbqZ743IHUhFcvzaGbqijwOu8QZnZCjfQzBqFE3s4lOTJEsxikImav9uzz/42I+O7YUs1mWgMlg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/spark-md5": { "version": "3.0.4", @@ -2387,9 +1644,8 @@ }, "node_modules/@types/unist": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", - "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/ws": { "version": "8.5.10", @@ -2401,9 +1657,8 @@ }, "node_modules/@vitest/coverage-v8": { "version": "2.1.8", - "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-2.1.8.tgz", - "integrity": "sha512-2Y7BPlKH18mAZYAW1tYByudlCYrQyl5RGvnnDYJKW5tCiO5qg3KSAy3XAxcxKz900a0ZXxWtKrMuZLe3lKBpJw==", "dev": true, + "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.3.0", "@bcoe/v8-coverage": "^0.2.3", @@ -2433,9 +1688,8 @@ }, "node_modules/@vitest/expect": { "version": "2.1.8", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-2.1.8.tgz", - "integrity": "sha512-8ytZ/fFHq2g4PJVAtDX57mayemKgDR6X3Oa2Foro+EygiOJHUXhCqBAAKQYYajZpFoIfvBCF1j6R6IYRSIUFuw==", "dev": true, + "license": "MIT", "dependencies": { "@vitest/spy": "2.1.8", "@vitest/utils": "2.1.8", @@ -2448,9 +1702,8 @@ }, "node_modules/@vitest/mocker": { "version": "2.1.8", - "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-2.1.8.tgz", - "integrity": "sha512-7guJ/47I6uqfttp33mgo6ga5Gr1VnL58rcqYKyShoRK9ebu8T5Rs6HN3s1NABiBeVTdWNrwUMcHH54uXZBN4zA==", "dev": true, + "license": "MIT", "dependencies": { "@vitest/spy": "2.1.8", "estree-walker": "^3.0.3", @@ -2474,9 +1727,8 @@ }, "node_modules/@vitest/pretty-format": { "version": "2.1.8", - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.8.tgz", - "integrity": "sha512-9HiSZ9zpqNLKlbIDRWOnAWqgcA7xu+8YxXSekhr0Ykab7PAYFkhkwoqVArPOtJhPmYeE2YHgKZlj3CP36z2AJQ==", "dev": true, + "license": "MIT", "dependencies": { "tinyrainbow": "^1.2.0" }, @@ -2486,9 +1738,8 @@ }, "node_modules/@vitest/runner": { "version": "2.1.8", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-2.1.8.tgz", - "integrity": "sha512-17ub8vQstRnRlIU5k50bG+QOMLHRhYPAna5tw8tYbj+jzjcspnwnwtPtiOlkuKC4+ixDPTuLZiqiWWQ2PSXHVg==", "dev": true, + "license": "MIT", "dependencies": { "@vitest/utils": "2.1.8", "pathe": "^1.1.2" @@ -2499,9 +1750,8 @@ }, "node_modules/@vitest/snapshot": { "version": "2.1.8", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-2.1.8.tgz", - "integrity": "sha512-20T7xRFbmnkfcmgVEz+z3AU/3b0cEzZOt/zmnvZEctg64/QZbSDJEVm9fLnnlSi74KibmRsO9/Qabi+t0vCRPg==", "dev": true, + "license": "MIT", "dependencies": { "@vitest/pretty-format": "2.1.8", "magic-string": "^0.30.12", @@ -2513,9 +1763,8 @@ }, "node_modules/@vitest/spy": { "version": "2.1.8", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-2.1.8.tgz", - "integrity": "sha512-5swjf2q95gXeYPevtW0BLk6H8+bPlMb4Vw/9Em4hFxDcaOxS+e0LOX4yqNxoHzMR2akEB2xfpnWUzkZokmgWDg==", "dev": true, + "license": "MIT", "dependencies": { "tinyspy": "^3.0.2" }, @@ -2525,9 +1774,8 @@ }, "node_modules/@vitest/utils": { "version": "2.1.8", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.1.8.tgz", - "integrity": "sha512-dwSoui6djdwbfFmIgbIjX2ZhIoG7Ex/+xpxyiEgIGzjliY8xGkcpITKTlp6B4MgtGkF2ilvm97cPM96XZaAgcA==", "dev": true, + "license": "MIT", "dependencies": { "@vitest/pretty-format": "2.1.8", "loupe": "^3.1.2", @@ -2554,9 +1802,8 @@ }, "node_modules/ansi-regex": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -2566,9 +1813,8 @@ }, "node_modules/ansi-styles": { "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -2578,31 +1824,26 @@ }, "node_modules/assertion-error": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", - "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" } }, "node_modules/async-mutex": { "version": "0.5.0", - "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.5.0.tgz", - "integrity": "sha512-1A94B18jkJ3DYq284ohPxoXbfTA5HsQ7/Mf4DEhcyLx3Bz27Rh59iScbB6EPiP+B+joue6YCxcMXSbFC1tZKwA==", + "license": "MIT", "dependencies": { "tslib": "^2.4.0" } }, "node_modules/balanced-match": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/base64-js": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", "dev": true, "funding": [ { @@ -2617,12 +1858,11 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/better-sqlite3-multiple-ciphers": { "version": "11.5.0", - "resolved": "https://registry.npmjs.org/better-sqlite3-multiple-ciphers/-/better-sqlite3-multiple-ciphers-11.5.0.tgz", - "integrity": "sha512-t2RpIBaw6DYk8RNZjrqCLRoznBcIqownpd90spHpHVrJa+YYN/NOLoTlj1iLBS754yiYWL6uXgx4x+0E1Z5q8Q==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -2633,18 +1873,16 @@ }, "node_modules/bindings": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", "dev": true, + "license": "MIT", "dependencies": { "file-uri-to-path": "1.0.0" } }, "node_modules/bl": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", "dev": true, + "license": "MIT", "dependencies": { "buffer": "^5.5.0", "inherits": "^2.0.4", @@ -2657,23 +1895,19 @@ }, "node_modules/brace-expansion": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/bson-objectid": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/bson-objectid/-/bson-objectid-2.0.4.tgz", - "integrity": "sha512-vgnKAUzcDoa+AeyYwXCoHyF2q6u/8H46dxu5JN+4/TZeq/Dlinn0K6GvxsCLb3LHUJl0m/TLiEK31kUwtgocMQ==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/buffer": { "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "dev": true, "funding": [ { @@ -2689,6 +1923,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" @@ -2696,18 +1931,16 @@ }, "node_modules/cac": { "version": "6.7.14", - "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", - "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/chai": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/chai/-/chai-5.1.2.tgz", - "integrity": "sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==", "dev": true, + "license": "MIT", "dependencies": { "assertion-error": "^2.0.1", "check-error": "^2.1.1", @@ -2748,24 +1981,21 @@ }, "node_modules/check-error": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", - "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 16" } }, "node_modules/chownr": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -2775,9 +2005,8 @@ }, "node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/comma-separated-tokens": { "version": "2.0.3", @@ -2798,9 +2027,8 @@ }, "node_modules/cross-spawn": { "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -2840,14 +2068,12 @@ }, "node_modules/dayjs": { "version": "1.11.13", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", - "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==" + "license": "MIT" }, "node_modules/debug": { "version": "4.4.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.3" }, @@ -2874,9 +2100,8 @@ }, "node_modules/decompress-response": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", "dev": true, + "license": "MIT", "dependencies": { "mimic-response": "^3.1.0" }, @@ -2889,18 +2114,16 @@ }, "node_modules/deep-eql": { "version": "5.0.2", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", - "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/deep-extend": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4.0.0" } @@ -2914,9 +2137,8 @@ }, "node_modules/detect-libc": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", - "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=8" } @@ -2927,8 +2149,7 @@ }, "node_modules/dom-serializer": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "license": "MIT", "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.2", @@ -2940,8 +2161,7 @@ }, "node_modules/dom-serializer/node_modules/entities": { "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", "engines": { "node": ">=0.12" }, @@ -2974,8 +2194,6 @@ }, "node_modules/domutils": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", - "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", "license": "BSD-2-Clause", "dependencies": { "dom-serializer": "^2.0.0", @@ -2988,9 +2206,8 @@ }, "node_modules/dotenv": { "version": "16.4.7", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz", - "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=12" }, @@ -3000,29 +2217,25 @@ }, "node_modules/eastasianwidth": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/emoji-regex": { "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/end-of-stream": { "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "dev": true, + "license": "MIT", "dependencies": { "once": "^1.4.0" } }, "node_modules/entities": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-5.0.0.tgz", - "integrity": "sha512-BeJFvFRJddxobhvEdm5GqHzRV/X+ACeuw0/BuuxsCh1EUZcAIz8+kYmBp/LrQuloy6K1f3a0M7+IhmZ7QnkISA==", + "license": "BSD-2-Clause", "engines": { "node": ">=0.12" }, @@ -3032,16 +2245,14 @@ }, "node_modules/es-module-lexer": { "version": "1.6.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz", - "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/esbuild": { "version": "0.21.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", - "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", "dev": true, "hasInstallScript": true, + "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, @@ -3076,9 +2287,8 @@ }, "node_modules/estree-walker": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", - "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", "dev": true, + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0" } @@ -3104,18 +2314,16 @@ }, "node_modules/expand-template": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", - "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", "dev": true, + "license": "(MIT OR WTFPL)", "engines": { "node": ">=6" } }, "node_modules/expect-type": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.1.0.tgz", - "integrity": "sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=12.0.0" } @@ -3130,15 +2338,13 @@ }, "node_modules/file-uri-to-path": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/foreground-child": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", - "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", "dev": true, + "license": "ISC", "dependencies": { "cross-spawn": "^7.0.0", "signal-exit": "^4.0.1" @@ -3152,16 +2358,13 @@ }, "node_modules/fs-constants": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fsevents": { "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, - "hasInstallScript": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -3172,23 +2375,20 @@ }, "node_modules/fuzzyjs": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/fuzzyjs/-/fuzzyjs-5.0.1.tgz", - "integrity": "sha512-/BixxKEZ0sIQkIogNBhuwX7EC1gznFoR9jhrEU0cb89HUTH+tb2u9s86Rj//xGzpQg04A1aD9KDyGE+ldxgLFQ==", + "license": "MIT", "engines": { "node": ">=8.0.0" } }, "node_modules/github-from-package": { "version": "0.0.0", - "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", - "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/glob": { "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dev": true, + "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", @@ -3206,18 +2406,16 @@ }, "node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/hash-wasm": { "version": "4.12.0", - "resolved": "https://registry.npmjs.org/hash-wasm/-/hash-wasm-4.12.0.tgz", - "integrity": "sha512-+/2B2rYLb48I/evdOIhP+K/DD2ca2fgBjp6O+GBEnCDk2e4rpeXIK8GvIyRPjTezgmWn9gmKwkQjjx6BtqDHVQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/hast-util-parse-selector": { "version": "3.1.1", @@ -3249,9 +2447,8 @@ }, "node_modules/html-escaper": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/html-to-text": { "version": "9.0.5", @@ -3286,8 +2483,7 @@ }, "node_modules/htmlparser2/node_modules/entities": { "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", "engines": { "node": ">=0.12" }, @@ -3297,8 +2493,6 @@ }, "node_modules/ieee754": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", "dev": true, "funding": [ { @@ -3313,7 +2507,8 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "BSD-3-Clause" }, "node_modules/inherits": { "version": "2.0.4", @@ -3322,9 +2517,8 @@ }, "node_modules/ini": { "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/is-alphabetical": { "version": "2.0.1", @@ -3359,9 +2553,8 @@ }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -3377,9 +2570,8 @@ }, "node_modules/isexe": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/isomorphic-fetch": { "version": "3.0.0", @@ -3392,18 +2584,16 @@ }, "node_modules/istanbul-lib-coverage": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", - "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=8" } }, "node_modules/istanbul-lib-report": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "istanbul-lib-coverage": "^3.0.0", "make-dir": "^4.0.0", @@ -3415,9 +2605,8 @@ }, "node_modules/istanbul-lib-source-maps": { "version": "5.0.6", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-5.0.6.tgz", - "integrity": "sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@jridgewell/trace-mapping": "^0.3.23", "debug": "^4.1.1", @@ -3429,9 +2618,8 @@ }, "node_modules/istanbul-reports": { "version": "3.1.7", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", - "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" @@ -3442,9 +2630,8 @@ }, "node_modules/jackspeak": { "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" }, @@ -3457,12 +2644,11 @@ }, "node_modules/katex": { "version": "0.16.11", - "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.11.tgz", - "integrity": "sha512-RQrI8rlHY92OLf3rho/Ts8i/XvjgguEjOkO1BEXcU3N8BqPpSzBNwV/G0Ukr+P/l3ivvJUE/Fa/CwbS6HesGNQ==", "funding": [ "https://opencollective.com/katex", "https://github.com/sponsors/katex" ], + "license": "MIT", "dependencies": { "commander": "^8.3.0" }, @@ -3512,9 +2698,8 @@ }, "node_modules/loupe": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.2.tgz", - "integrity": "sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lru-cache": { "version": "6.0.0", @@ -3529,18 +2714,16 @@ }, "node_modules/magic-string": { "version": "0.30.17", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", - "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0" } }, "node_modules/magicast": { "version": "0.3.5", - "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.3.5.tgz", - "integrity": "sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/parser": "^7.25.4", "@babel/types": "^7.25.4", @@ -3549,9 +2732,8 @@ }, "node_modules/make-dir": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "dev": true, + "license": "MIT", "dependencies": { "semver": "^7.5.3" }, @@ -3564,17 +2746,15 @@ }, "node_modules/mime-db": { "version": "1.53.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.53.0.tgz", - "integrity": "sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/mimic-response": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -3584,9 +2764,8 @@ }, "node_modules/minimatch": { "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -3599,27 +2778,24 @@ }, "node_modules/minimist": { "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/minipass": { "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, + "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" } }, "node_modules/mkdirp-classic": { "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/mockdate": { "version": "3.0.5", @@ -3632,14 +2808,11 @@ }, "node_modules/ms": { "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/nanoid": { "version": "5.0.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.0.7.tgz", - "integrity": "sha512-oLxFY2gd2IqnjcYyOXD8XGCftpGtZP2AbHbOkthDkvRywH5ayNtPVy9YlOPcHckXzbLTCHpkb7FB+yuxKV13pQ==", "dev": true, "funding": [ { @@ -3647,6 +2820,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "bin": { "nanoid": "bin/nanoid.js" }, @@ -3656,9 +2830,8 @@ }, "node_modules/napi-build-utils": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", - "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/nearley": { "version": "2.20.1", @@ -3686,9 +2859,8 @@ }, "node_modules/node-abi": { "version": "3.56.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.56.0.tgz", - "integrity": "sha512-fZjdhDOeRcaS+rcpve7XuwHBmktS1nS1gzgghwKUQQ8nTy2FdSDr6ZT8k6YhvlJeHmmQMYiT/IH9hfco5zeW2Q==", "dev": true, + "license": "MIT", "dependencies": { "semver": "^7.3.5" }, @@ -3760,9 +2932,8 @@ }, "node_modules/package-json-from-dist": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", - "dev": true + "dev": true, + "license": "BlueOak-1.0.0" }, "node_modules/parse-entities": { "version": "4.0.1", @@ -3785,9 +2956,8 @@ }, "node_modules/parse-entities/node_modules/@types/unist": { "version": "2.0.11", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", - "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/parseley": { "version": "0.12.0", @@ -3802,18 +2972,16 @@ }, "node_modules/path-key": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/path-scurry": { "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" @@ -3827,21 +2995,18 @@ }, "node_modules/path-scurry/node_modules/lru-cache": { "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/pathe": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", - "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/pathval": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz", - "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 14.16" } @@ -3855,14 +3020,11 @@ }, "node_modules/picocolors": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/postcss": { "version": "8.5.1", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.1.tgz", - "integrity": "sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==", "dev": true, "funding": [ { @@ -3878,6 +3040,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "nanoid": "^3.3.8", "picocolors": "^1.1.1", @@ -3889,8 +3052,6 @@ }, "node_modules/postcss/node_modules/nanoid": { "version": "3.3.8", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", - "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", "dev": true, "funding": [ { @@ -3898,6 +3059,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -3907,9 +3069,8 @@ }, "node_modules/prebuild-install": { "version": "7.1.2", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.2.tgz", - "integrity": "sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==", "dev": true, + "license": "MIT", "dependencies": { "detect-libc": "^2.0.0", "expand-template": "^2.0.3", @@ -3953,9 +3114,8 @@ }, "node_modules/pump": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "dev": true, + "license": "MIT", "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -3993,9 +3153,8 @@ }, "node_modules/rc": { "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "dev": true, + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", "dependencies": { "deep-extend": "^0.6.0", "ini": "~1.3.0", @@ -4008,9 +3167,8 @@ }, "node_modules/readable-stream": { "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -4052,9 +3210,8 @@ }, "node_modules/rollup": { "version": "4.31.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.31.0.tgz", - "integrity": "sha512-9cCE8P4rZLx9+PjoyqHLs31V9a9Vpvfo4qNcs6JCiGWYhw2gijSetFbH6SSy1whnkgcefnUwr8sad7tgqsGvnw==", "dev": true, + "license": "MIT", "dependencies": { "@types/estree": "1.0.6" }, @@ -4090,8 +3247,6 @@ }, "node_modules/safe-buffer": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true, "funding": [ { @@ -4106,7 +3261,8 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/selderee": { "version": "0.11.0", @@ -4138,9 +3294,8 @@ }, "node_modules/shebang-command": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, + "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -4150,24 +3305,21 @@ }, "node_modules/shebang-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/siginfo": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", - "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/signal-exit": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, + "license": "ISC", "engines": { "node": ">=14" }, @@ -4177,8 +3329,6 @@ }, "node_modules/simple-concat": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", "dev": true, "funding": [ { @@ -4193,12 +3343,11 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/simple-get": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", - "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", "dev": true, "funding": [ { @@ -4214,6 +3363,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "decompress-response": "^6.0.0", "once": "^1.3.1", @@ -4222,9 +3372,8 @@ }, "node_modules/source-map-js": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -4243,85 +3392,192 @@ "license": "(WTFPL OR MIT)" }, "node_modules/sqlite-better-trigram": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/sqlite-better-trigram/-/sqlite-better-trigram-0.0.2.tgz", - "integrity": "sha512-MA1PZVcTlIyeg5RJQPP7PgpEXcgTdgASmbYj3I9NjL5lzBr+m/Ik4edeERIbmGSuYSavE2oIiTwDFWcCIB9PyQ==", + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/sqlite-better-trigram/-/sqlite-better-trigram-0.0.3.tgz", + "integrity": "sha512-r+SDeNk+K1VotrUx/w0TMu4FdjoDDPCqxhtfU50dSeTzfCFtkMBq1/E3gvsaiHi3UYtOa6siA8CK/gYlj75eCA==", + "dev": true, + "license": "Public Domain", "optionalDependencies": { - "sqlite-better-trigram-darwin-arm64": "0.0.2", - "sqlite-better-trigram-darwin-x64": "0.0.2", - "sqlite-better-trigram-linux-arm64": "0.0.2", - "sqlite-better-trigram-linux-x64": "0.0.2", - "sqlite-better-trigram-windows-arm64": "0.0.2", - "sqlite-better-trigram-windows-x64": "0.0.2" + "sqlite-better-trigram-darwin-arm64": "0.0.3", + "sqlite-better-trigram-darwin-x64": "0.0.3", + "sqlite-better-trigram-linux-arm64": "0.0.3", + "sqlite-better-trigram-linux-x64": "0.0.3", + "sqlite-better-trigram-windows-arm64": "0.0.3", + "sqlite-better-trigram-windows-x64": "0.0.3" } }, "node_modules/sqlite-better-trigram-darwin-arm64": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/sqlite-better-trigram-darwin-arm64/-/sqlite-better-trigram-darwin-arm64-0.0.2.tgz", - "integrity": "sha512-7QaBoOsk0Jc5CtRQOGkeT8LAmvMylNaIwuqWDpANK+/MYNxYNEIxlgerPlwytM9//P6gm0RqlcPjoSQ0cV3plQ==", + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/sqlite-better-trigram-darwin-arm64/-/sqlite-better-trigram-darwin-arm64-0.0.3.tgz", + "integrity": "sha512-ddL0K3v10bvqjuUgPSRfP1qFZAhO/43ruaWtWS5wu4DgikldGz1tBY+nQtdc+Xt0arrEMUyiEvOz7MuKHQNA0Q==", "cpu": [ "arm64" ], + "dev": true, "optional": true, "os": [ "darwin" ] }, "node_modules/sqlite-better-trigram-darwin-x64": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/sqlite-better-trigram-darwin-x64/-/sqlite-better-trigram-darwin-x64-0.0.2.tgz", - "integrity": "sha512-aiVUq06o7z+JI9Y59wCoUUX+Xnvis/jU2az1aoeZCNk8JH7qxyZzgP73s/QFPGq3ZczGhyLcmpLayldtB26NSw==", + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/sqlite-better-trigram-darwin-x64/-/sqlite-better-trigram-darwin-x64-0.0.3.tgz", + "integrity": "sha512-IQzFzXt0ib1MZ/UQm71X7RKv8G0vwepNqcmncWbK1R7LAWwpS/qaJ1NyrMOhL2AnfeQ33x1IkQE0GlamxFVC9A==", "cpu": [ "x64" ], + "dev": true, "optional": true, "os": [ "darwin" ] }, "node_modules/sqlite-better-trigram-linux-arm64": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/sqlite-better-trigram-linux-arm64/-/sqlite-better-trigram-linux-arm64-0.0.2.tgz", - "integrity": "sha512-+I/V4LZkw1xgJhRZIYMJfsdwS+CJ/hmR+Mq8N2eHZ/J1n0qmnKNcquC1R1d7Per9MLtPLcDnxEqGjUUcoQyS9A==", + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/sqlite-better-trigram-linux-arm64/-/sqlite-better-trigram-linux-arm64-0.0.3.tgz", + "integrity": "sha512-NTykERCSxAutAtJ9ITwOQBitC9zDg61tTDoLOGdMoDO2iAQNLuGApNS8qFvnCNl1wZy8yowI24rHYMCWLDIEIA==", "cpu": [ "arm64" ], + "dev": true, "optional": true, "os": [ "linux" ] }, "node_modules/sqlite-better-trigram-linux-x64": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/sqlite-better-trigram-linux-x64/-/sqlite-better-trigram-linux-x64-0.0.2.tgz", - "integrity": "sha512-anok/KvZV7jHLMtBtgw4k4A76Q5Phk+CzriUUyOYxwIY3ru5Z/ZbzW2VfwMMbekD8bQ1MPRx2bh/lZpCNqK8Ig==", + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/sqlite-better-trigram-linux-x64/-/sqlite-better-trigram-linux-x64-0.0.3.tgz", + "integrity": "sha512-WoB2qMeFX6XGOWdTYCrF4imEBL5/a/UKqZpzWvPhtV92Ys47z4AIuwiWvekO8/5FRLYCyT9rJLXLSY2eUwOqLg==", "cpu": [ "x64" ], + "dev": true, "optional": true, "os": [ "linux" ] }, "node_modules/sqlite-better-trigram-windows-arm64": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/sqlite-better-trigram-windows-arm64/-/sqlite-better-trigram-windows-arm64-0.0.2.tgz", - "integrity": "sha512-rupFON6/1MEZdMoUBPLl3xQa7BQiUxVnVtsOsywzV0C62JeF5lMYBNAd6FUD7YQRjuufMZuW9kCygB7siZZsfw==", + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/sqlite-better-trigram-windows-arm64/-/sqlite-better-trigram-windows-arm64-0.0.3.tgz", + "integrity": "sha512-hXIT+PkkJQ3vJ0+E8Zh2/BoOCQ2dRj6LmchjP7T5afpbKXI/lcI77Cgk3tPwe8s/Ywci6OyeJwcaFuBtf1CLhw==", "cpu": [ "arm64" ], + "dev": true, "optional": true, "os": [ "win32" ] }, "node_modules/sqlite-better-trigram-windows-x64": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/sqlite-better-trigram-windows-x64/-/sqlite-better-trigram-windows-x64-0.0.3.tgz", + "integrity": "sha512-dli7MaDld9k02Vx74Mrovxxy+SQ72GwaObvIOcbI7ATiKUvhRvjHZgmuIvgxF2DM8aRejFHgPIC4/GUJcjauEg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/sqlite3-fts5-html": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/sqlite3-fts5-html/-/sqlite3-fts5-html-0.0.2.tgz", + "integrity": "sha512-ZAEkKJFQo5SvjTkRKQ7H/cFyClIdBX/lRV00twMHS30dbb+yYWkPPAGwNYzf9fIxwaGByE9hBLyF849Ttyoagw==", + "dev": true, + "license": "Public Domain", + "optionalDependencies": { + "sqlite3-fts5-html-darwin-arm64": "0.0.2", + "sqlite3-fts5-html-darwin-x64": "0.0.2", + "sqlite3-fts5-html-linux-arm64": "0.0.2", + "sqlite3-fts5-html-linux-x64": "0.0.2", + "sqlite3-fts5-html-windows-arm64": "0.0.2", + "sqlite3-fts5-html-windows-x64": "0.0.2" + } + }, + "node_modules/sqlite3-fts5-html-darwin-arm64": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/sqlite3-fts5-html-darwin-arm64/-/sqlite3-fts5-html-darwin-arm64-0.0.2.tgz", + "integrity": "sha512-FvXbdhtO3Nd0xO8rdUjhmjvunfn0PmVnOqrAEXMIzq4Kme25Cx3myRQ5ros5T9cUY85bLrGU7kqXTwC7A2oDvQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Public Domain", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/sqlite3-fts5-html-darwin-x64": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/sqlite3-fts5-html-darwin-x64/-/sqlite3-fts5-html-darwin-x64-0.0.2.tgz", + "integrity": "sha512-INCUEeuqYnJAVZ/gKAPFBIL//bZdi424CxKZE627jlO4Gv8xIXfX1883Bc/7JRXl6oI8xkSh4ztolQ+Ern4Kfw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Public Domain", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/sqlite3-fts5-html-linux-arm64": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/sqlite3-fts5-html-linux-arm64/-/sqlite3-fts5-html-linux-arm64-0.0.2.tgz", + "integrity": "sha512-J/nndVy12Bj0j9Ml9VuRWj63rUJtzzOKE5Fbu16Vo+fMzOpuj8Nheqgc5Fu2NI0n3BTIuCvb1qOfil9JdCypMQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Public Domain", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/sqlite3-fts5-html-linux-x64": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/sqlite3-fts5-html-linux-x64/-/sqlite3-fts5-html-linux-x64-0.0.2.tgz", + "integrity": "sha512-vQQ8iLBSPvBv4tuDapSLxp65BUVRQC3MjxeHFu5x+xcMVZhrfQFCuJbsdh/R708vQzF88hM+zpVgXiZ/5GB2yw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Public Domain", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/sqlite3-fts5-html-windows-arm64": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/sqlite3-fts5-html-windows-arm64/-/sqlite3-fts5-html-windows-arm64-0.0.2.tgz", + "integrity": "sha512-P4aM3EyMn1RiN0vga9Cd2xSPrz6Tb61bgbrKNGyu9JPKR1hr7t7uz09EzkrQmXe8olKT2BmrlpP7qJr/HzJ+MQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Public Domain", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/sqlite3-fts5-html-windows-x64": { "version": "0.0.2", - "resolved": "https://registry.npmjs.org/sqlite-better-trigram-windows-x64/-/sqlite-better-trigram-windows-x64-0.0.2.tgz", - "integrity": "sha512-V2XCfgyrO7Zyk3P9pKNDLpk1hJBsPvxZL+KMNy0L6PumVdZo06YqW/TjbF1ZKIzDNTL3GoAkQ8AnNha+rD8wOA==", + "resolved": "https://registry.npmjs.org/sqlite3-fts5-html-windows-x64/-/sqlite3-fts5-html-windows-x64-0.0.2.tgz", + "integrity": "sha512-hgJ1xAmSUgwO6CO+Oiuwh0KjCm1O/YQWvYApin5JooLlv1j3WhVDgKIhupfiLZ0rNaLsUwWGPTq1S6FL7w0//g==", "cpu": [ "x64" ], + "dev": true, + "license": "Public Domain", "optional": true, "os": [ "win32" @@ -4329,30 +3585,26 @@ }, "node_modules/stackback": { "version": "0.0.2", - "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", - "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/std-env": { "version": "3.8.0", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.8.0.tgz", - "integrity": "sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/string_decoder": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "~5.2.0" } }, "node_modules/string-width": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, + "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -4368,9 +3620,8 @@ "node_modules/string-width-cjs": { "name": "string-width", "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -4382,24 +3633,21 @@ }, "node_modules/string-width-cjs/node_modules/ansi-regex": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/string-width-cjs/node_modules/emoji-regex": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/string-width-cjs/node_modules/strip-ansi": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -4409,9 +3657,8 @@ }, "node_modules/strip-ansi": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -4425,9 +3672,8 @@ "node_modules/strip-ansi-cjs": { "name": "strip-ansi", "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -4437,27 +3683,24 @@ }, "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/strip-json-comments": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -4467,9 +3710,8 @@ }, "node_modules/tar-fs": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", - "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", "dev": true, + "license": "MIT", "dependencies": { "chownr": "^1.1.1", "mkdirp-classic": "^0.5.2", @@ -4479,9 +3721,8 @@ }, "node_modules/tar-stream": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", "dev": true, + "license": "MIT", "dependencies": { "bl": "^4.0.3", "end-of-stream": "^1.4.1", @@ -4495,9 +3736,8 @@ }, "node_modules/test-exclude": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-7.0.1.tgz", - "integrity": "sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==", "dev": true, + "license": "ISC", "dependencies": { "@istanbuljs/schema": "^0.1.2", "glob": "^10.4.1", @@ -4516,39 +3756,34 @@ }, "node_modules/tinybench": { "version": "2.9.0", - "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", - "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/tinyexec": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", - "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/tinypool": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.0.2.tgz", - "integrity": "sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==", "dev": true, + "license": "MIT", "engines": { "node": "^18.0.0 || >=20.0.0" } }, "node_modules/tinyrainbow": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-1.2.0.tgz", - "integrity": "sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.0.0" } }, "node_modules/tinyspy": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-3.0.2.tgz", - "integrity": "sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.0.0" } @@ -4576,9 +3811,8 @@ }, "node_modules/tunnel-agent": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", "dev": true, + "license": "Apache-2.0", "dependencies": { "safe-buffer": "^5.0.1" }, @@ -4607,15 +3841,13 @@ }, "node_modules/util-deprecate": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/vite": { "version": "5.4.12", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.12.tgz", - "integrity": "sha512-KwUaKB27TvWwDJr1GjjWthLMATbGEbeWYZIbGZ5qFIsgPP3vWzLu4cVooqhm5/Z2SPDUMjyPVjTztm5tYKwQxA==", "dev": true, + "license": "MIT", "dependencies": { "esbuild": "^0.21.3", "postcss": "^8.4.43", @@ -4672,9 +3904,8 @@ }, "node_modules/vite-node": { "version": "2.1.8", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-2.1.8.tgz", - "integrity": "sha512-uPAwSr57kYjAUux+8E2j0q0Fxpn8M9VoyfGiRI8Kfktz9NcYMCenwY5RnZxnF1WTu3TGiYipirIzacLL3VVGFg==", "dev": true, + "license": "MIT", "dependencies": { "cac": "^6.7.14", "debug": "^4.3.7", @@ -4694,9 +3925,8 @@ }, "node_modules/vitest": { "version": "2.1.8", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-2.1.8.tgz", - "integrity": "sha512-1vBKTZskHw/aosXqQUlVWWlGUxSJR8YtiyZDJAFeW2kPAeX6S3Sool0mjspO+kXLuxVWlEDDowBAeqeAQefqLQ==", "dev": true, + "license": "MIT", "dependencies": { "@vitest/expect": "2.1.8", "@vitest/mocker": "2.1.8", @@ -4778,9 +4008,8 @@ }, "node_modules/which": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -4793,9 +4022,8 @@ }, "node_modules/why-is-node-running": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", - "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", "dev": true, + "license": "MIT", "dependencies": { "siginfo": "^2.0.0", "stackback": "0.0.2" @@ -4809,9 +4037,8 @@ }, "node_modules/wrap-ansi": { "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", @@ -4827,9 +4054,8 @@ "node_modules/wrap-ansi-cjs": { "name": "wrap-ansi", "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -4844,18 +4070,16 @@ }, "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -4868,15 +4092,13 @@ }, "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/wrap-ansi-cjs/node_modules/string-width": { "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -4888,9 +4110,8 @@ }, "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, diff --git a/packages/core/package.json b/packages/core/package.json index e05557c3ad..11b179eac2 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -46,6 +46,8 @@ "nanoid": "5.0.7", "otplib": "^12.0.1", "refractor": "^4.8.1", + "sqlite-better-trigram": "^0.0.3", + "sqlite3-fts5-html": "^0.0.2", "vitest": "2.1.8", "vitest-fetch-mock": "^0.2.2", "ws": "^8.13.0" @@ -85,10 +87,9 @@ "prismjs": "^1.29.0", "qclone": "^1.2.0", "rfdc": "^1.3.0", - "spark-md5": "^3.0.2", - "sqlite-better-trigram": "0.0.2" + "spark-md5": "^3.0.2" }, "overrides": { "htmlparser2": "^8.0.1" } -} \ No newline at end of file +} diff --git a/packages/core/src/api/lookup.ts b/packages/core/src/api/lookup.ts index 7fe32d12a3..dc002ec4ac 100644 --- a/packages/core/src/api/lookup.ts +++ b/packages/core/src/api/lookup.ts @@ -17,7 +17,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -import { match, surround } from "fuzzyjs"; +import { match } from "fuzzyjs"; import Database from "./index.js"; import { Item, @@ -36,6 +36,7 @@ import { rebuildSearchIndex } from "../database/fts.js"; import { transformQuery } from "../utils/query-transformer.js"; import { getSortSelectors } from "../utils/grouping.js"; import { fuzzy } from "../utils/fuzzy.js"; +import { extractText } from "../utils/html-parser.js"; type SearchResults = { sorted: (limit?: number) => Promise>; @@ -52,65 +53,99 @@ type FuzzySearchField = { export default class Lookup { constructor(private readonly db: Database) {} - notes( - query: string, - notes?: FilteredSelector, - opts?: { titleOnly?: boolean } - ): SearchResults { + notes(query: string, notes?: FilteredSelector): SearchResults { return this.toSearchResults(async (limit, sortOptions) => { const db = this.db.sql() as unknown as Kysely; const excludedIds = this.db.trash.cache.notes; - query = transformQuery(query); - const results = await db - .selectFrom((eb) => - eb - .selectFrom("notes_fts") - .$if(!!notes, (eb) => - eb.where("id", "in", notes!.filter.select("id")) - ) - .$if(excludedIds.length > 0, (eb) => - eb.where("id", "not in", excludedIds) - ) - .where("title", "match", query) - .select(["id", sql`rank * 10`.as("rank")]) - .$if(!opts?.titleOnly, (eb) => - eb.unionAll((eb) => + const { query: transformedQuery, tokens } = transformQuery(query); + + const resultsA: string[] = + transformedQuery.length === 0 + ? [] + : await db + .selectFrom((eb) => eb - .selectFrom("content_fts") + .selectFrom("notes_fts") .$if(!!notes, (eb) => - eb.where("noteId", "in", notes!.filter.select("id")) + eb.where("id", "in", notes!.filter.select("id")) ) .$if(excludedIds.length > 0, (eb) => eb.where("id", "not in", excludedIds) ) - .where("data", "match", query) - .select(["noteId as id", "rank"]) - .$castTo<{ - id: string; - rank: number; - }>() + .where("title", "match", transformedQuery) + .select(["id", sql`rank * 10`.as("rank")]) + .unionAll((eb) => + eb + .selectFrom("content_fts") + .$if(!!notes, (eb) => + eb.where("noteId", "in", notes!.filter.select("id")) + ) + .$if(excludedIds.length > 0, (eb) => + eb.where("noteId", "not in", excludedIds) + ) + .where("data", "match", transformedQuery) + .select(["noteId as id", "rank"]) + .$castTo<{ + id: string; + rank: number; + }>() + ) + .as("results") + ) + .select(["results.id"]) + .groupBy("results.id") + .orderBy( + sql`SUM(results.rank)`, + sortOptions?.sortDirection || "desc" ) - ) - .as("results") + .execute() + .catch((e) => { + logger.error(e, `Error while searching`, { query }); + return []; + }) + .then((r) => r.map((r) => r.id)); + + const smallTokens = Array.from( + new Set( + tokens.filter((token) => token.length < 3 && token !== "OR") + ).values() + ); + if (smallTokens.length === 0) return resultsA; + + const results = []; + + const titles = await db + .selectFrom("notes") + .$if(!!transformedQuery && resultsA.length > 0, (eb) => + eb.where("id", "in", resultsA) ) - .select(["results.id"]) - .groupBy("results.id") - .orderBy(sql`SUM(results.rank)`, sortOptions?.sortDirection || "desc") - .$if(!!limit, (eb) => eb.limit(limit!)) - - // filter out ids that have no note against them - .where( - "results.id", - "in", - (notes || this.db.notes.all).filter.select("id") + .select(["id", "title"]) + .execute(); + + const htmls = await db + .selectFrom("content") + .$if(!!transformedQuery && resultsA.length > 0, (eb) => + eb.where("noteId", "in", resultsA) ) - .execute() - .catch((e) => { - logger.error(e, `Error while searching`, { query }); - return []; - }); - return results.map((r) => r.id); + .select(["data", "noteId as id"]) + .$castTo<{ data: string; id: string }>() + .execute(); + + for (let i = 0; i < titles.length; i++) { + const title = titles[i]; + const html = htmls.find((h) => h.id === title.id); + const text = html ? extractText(html.data) : ""; + + if ( + smallTokens.every((token) => !!title.title?.includes(token)) || + smallTokens.every((token) => !!text?.includes(token)) + ) { + results.push(title.id); + } + } + + return results; }, notes || this.db.notes.all); } diff --git a/packages/core/src/api/vault.ts b/packages/core/src/api/vault.ts index 7cb4c84dfe..88f2afdd97 100644 --- a/packages/core/src/api/vault.ts +++ b/packages/core/src/api/vault.ts @@ -156,15 +156,13 @@ export default class Vault { } } - async delete(deleteAllLockedNotes = false) { + async delete() { const vault = await this.db.vaults.default(); if (!vault) return; - if (deleteAllLockedNotes) { - const relations = await this.db.relations.from(vault, "note").get(); - const lockedIds = relations.map((r) => r.toId); - await this.db.notes.remove(...lockedIds); - } + const relations = await this.db.relations.from(vault, "note").get(); + const lockedIds = relations.map((r) => r.toId); + await this.db.notes.remove(...lockedIds); await this.db.vaults.remove(vault.id); this.password = undefined; diff --git a/packages/core/src/collections/notes.ts b/packages/core/src/collections/notes.ts index ff1833fca5..97d8c76b30 100644 --- a/packages/core/src/collections/notes.ts +++ b/packages/core/src/collections/notes.ts @@ -40,6 +40,7 @@ import { ICollection } from "./collection.js"; import { SQLCollection } from "../database/sql-collection.js"; import { isFalse } from "../database/index.js"; import { logger } from "../logger.js"; +import { addItems, deleteItems } from "../utils/array.js"; export type ExportOptions = { format: "html" | "md" | "txt" | "md-frontmatter"; @@ -51,6 +52,7 @@ export type ExportOptions = { export class Notes implements ICollection { name = "notes"; + cache: { archived: string[] } = { archived: [] }; /** * @internal */ @@ -69,6 +71,13 @@ export class Notes implements ICollection { async init() { await this.collection.init(); this.totalNotes = await this.collection.count(); + await this.buildCache(); + } + + async buildCache() { + this.cache.archived = []; + const archived = await this.archived.ids(); + this.cache.archived = archived; } async add( @@ -87,6 +96,7 @@ export class Notes implements ICollection { let contentId = item.contentId; let dateEdited = item.dateEdited; let headline = item.headline; + let headlineTitle = ""; if (item.content && item.content.data && item.content.type) { logger.debug("saving content", { id }); @@ -95,7 +105,8 @@ export class Notes implements ICollection { const content = await getContentFromData(type, data); if (!content) throw new Error("Invalid content type."); - headline = getNoteHeadline(content); + headline = content.toHeadline(); + headlineTitle = content.toTitle(); dateEdited = Date.now(); contentId = await this.db.content.add({ noteId: id, @@ -125,7 +136,7 @@ export class Notes implements ICollection { this.db.settings.getTitleFormat(), this.db.settings.getDateFormat(), this.db.settings.getTimeFormat(), - headline ? headlineToTitle(headline) : "", + headlineTitle, this.totalNotes ); item.isGeneratedTitle = true; @@ -147,13 +158,10 @@ export class Notes implements ICollection { if ( item.isGeneratedTitle && HEADLINE_REGEX.test(titleFormat) && - headline && - currentNoteTitleFields?.title !== headlineToTitle(headline) + headlineTitle && + currentNoteTitleFields?.title !== headlineTitle ) { - item.title = titleFormat.replace( - HEADLINE_REGEX, - headlineToTitle(headline) - ); + item.title = titleFormat.replace(HEADLINE_REGEX, headlineTitle); } } @@ -234,7 +242,11 @@ export class Notes implements ICollection { get all() { return this.collection.createFilter( - (qb) => qb.where(isFalse("dateDeleted")).where(isFalse("deleted")), + (qb) => + qb + .where(isFalse("dateDeleted")) + .where(isFalse("deleted")) + .where(isFalse("archived")), this.db.options?.batchSize ); } @@ -277,11 +289,23 @@ export class Notes implements ICollection { qb .where(isFalse("dateDeleted")) .where(isFalse("deleted")) + .where(isFalse("archived")) .where("favorite", "==", true), this.db.options?.batchSize ); } + get archived() { + return this.collection.createFilter( + (qb) => + qb + .where(isFalse("dateDeleted")) + .where(isFalse("deleted")) + .where("archived", "==", true), + this.db.options?.batchSize + ); + } + exists(id: string) { return this.collection.exists(id); } @@ -300,6 +324,14 @@ export class Notes implements ICollection { favorite(state: boolean, ...ids: string[]) { return this.collection.update(ids, { favorite: state }); } + async archive(state: boolean, ...ids: string[]) { + await this.collection.update(ids, { archived: state }); + if (state) { + addItems(this.cache.archived, ...ids); + } else { + deleteItems(this.cache.archived, ...ids); + } + } readonly(state: boolean, ...ids: string[]) { return this.collection.update(ids, { readonly: state }); } @@ -488,11 +520,3 @@ export class Notes implements ICollection { ).internalLinks; } } - -function getNoteHeadline(content: Tiptap) { - return content.toHeadline(); -} - -function headlineToTitle(headline: string) { - return headline.split(" ").splice(0, 10).join(" "); -} diff --git a/packages/core/src/collections/relations.ts b/packages/core/src/collections/relations.ts index 69c00bbb3d..cd9acf7c2c 100644 --- a/packages/core/src/collections/relations.ts +++ b/packages/core/src/collections/relations.ts @@ -395,6 +395,11 @@ class RelationsArray { this.db.trash.cache.notes.length > 0, (b) => b.where("fromId", "not in", this.db.trash.cache.notes) ) + .$if( + !!this.types?.includes("note" as TType) && + this.db.notes.cache.archived.length > 0, + (b) => b.where("fromId", "not in", this.db.notes.cache.archived) + ) .$if( !!this.types?.includes("notebook" as TType) && this.db.trash.cache.notebooks.length > 0, @@ -424,6 +429,11 @@ class RelationsArray { this.db.trash.cache.notes.length > 0, (b) => b.where("toId", "not in", this.db.trash.cache.notes) ) + .$if( + !!this.types?.includes("note" as TType) && + this.db.notes.cache.archived.length > 0, + (b) => b.where("toId", "not in", this.db.notes.cache.archived) + ) .$if( !!this.types?.includes("notebook" as TType) && this.db.trash.cache.notebooks.length > 0, diff --git a/packages/core/src/collections/settings.ts b/packages/core/src/collections/settings.ts index e6f7cb2828..cb8c850ef9 100644 --- a/packages/core/src/collections/settings.ts +++ b/packages/core/src/collections/settings.ts @@ -62,6 +62,7 @@ const defaultSettings: SettingItemMap = { "groupOptions:notes": DEFAULT_GROUP_OPTIONS("notes"), "groupOptions:notebooks": DEFAULT_GROUP_OPTIONS("notebooks"), "groupOptions:favorites": DEFAULT_GROUP_OPTIONS("favorites"), + "groupOptions:archive": DEFAULT_GROUP_OPTIONS("archive"), "groupOptions:home": DEFAULT_GROUP_OPTIONS("home"), "groupOptions:reminders": DEFAULT_GROUP_OPTIONS("reminders"), @@ -154,7 +155,9 @@ export class Settings implements ICollection { } getTrashCleanupInterval() { - return this.get("trashCleanupInterval"); + const t = this.get("trashCleanupInterval"); + // stored as a string in db, need conversion before use + return Number(t) as TrashCleanupInterval; } setDefaultNotebook(item: string | undefined) { diff --git a/packages/core/src/content-types/tiptap.ts b/packages/core/src/content-types/tiptap.ts index 33fef04d7f..a276973a8b 100644 --- a/packages/core/src/content-types/tiptap.ts +++ b/packages/core/src/content-types/tiptap.ts @@ -31,6 +31,7 @@ import dataurl from "../utils/dataurl.js"; import { HTMLParser, extractHeadline, + extractTitle, getDummyDocument } from "../utils/html-parser.js"; import { HTMLRewriter } from "../utils/html-rewriter.js"; @@ -89,7 +90,11 @@ export class Tiptap { } toHeadline() { - return extractHeadline(this.data, 150); + return extractHeadline(this.data); + } + + toTitle() { + return extractTitle(this.data, 150); } // isEmpty() { diff --git a/packages/core/src/database/index.ts b/packages/core/src/database/index.ts index 2032cffd5e..03e198ec1c 100644 --- a/packages/core/src/database/index.ts +++ b/packages/core/src/database/index.ts @@ -232,7 +232,8 @@ const BooleanProperties: Set = new Set([ "readonly", "remote", "synced", - "isGeneratedTitle" + "isGeneratedTitle", + "archived" ]); const DataMappers: Partial void>> = { diff --git a/packages/core/src/database/migrations.ts b/packages/core/src/database/migrations.ts index 6fbdf1bd3d..3ce6793ae0 100644 --- a/packages/core/src/database/migrations.ts +++ b/packages/core/src/database/migrations.ts @@ -21,6 +21,7 @@ import { ColumnBuilderCallback, CreateTableBuilder, ExpressionBuilder, + Kysely, Migration, MigrationProvider, sql @@ -358,31 +359,7 @@ export class NNMigrationProvider implements MigrationProvider { } }, "7": { - async up(db) { - await db.transaction().execute(async (tx) => { - await tx.schema.dropTable("content_fts").execute(); - await tx.schema.dropTable("notes_fts").execute(); - - await createFTS5Table( - "notes_fts", - [{ name: "id" }, { name: "title" }], - { - contentTable: "notes", - tokenizer: ["porter", "better_trigram", "remove_diacritics 1"] - } - ).execute(tx); - - await createFTS5Table( - "content_fts", - [{ name: "id" }, { name: "noteId" }, { name: "data" }], - { - contentTable: "content", - tokenizer: ["porter", "better_trigram", "remove_diacritics 1"] - } - ).execute(tx); - }); - await rebuildSearchIndex(db); - } + async up() {} }, "8": { async up(db) { @@ -391,6 +368,24 @@ export class NNMigrationProvider implements MigrationProvider { .addColumn("isGeneratedTitle", "boolean") .execute(); } + }, + "9": { + async up(db) { + await db.schema + .alterTable("notes") + .addColumn("archived", "boolean") + .execute(); + } + }, + // changing the migrations name scheme from here because + // apparently, Kysley runs migrations in alphanumeric order. + // To ensure things keep running smoothly, we are now moving + // to a date-based migration name but since any number is smaller + // than 9, we have to use "a" in the beginning. + "a-2025-05-16": { + async up(db) { + await runFTSTablesMigrations(db); + } } }; } @@ -453,3 +448,25 @@ function createFTS5Table( return sql`CREATE VIRTUAL TABLE ${sql.raw(name)} USING fts5(${args})`; } + +async function runFTSTablesMigrations(db: Kysely) { + await db.transaction().execute(async (tx) => { + await tx.schema.dropTable("content_fts").execute(); + await tx.schema.dropTable("notes_fts").execute(); + + await createFTS5Table("notes_fts", [{ name: "id" }, { name: "title" }], { + contentTable: "notes", + tokenizer: ["porter", "better_trigram", "remove_diacritics 1"] + }).execute(tx); + + await createFTS5Table( + "content_fts", + [{ name: "id" }, { name: "noteId" }, { name: "data" }], + { + contentTable: "content", + tokenizer: ["html", "porter", "better_trigram", "remove_diacritics 1"] + } + ).execute(tx); + }); + await rebuildSearchIndex(db); +} diff --git a/packages/core/src/types.ts b/packages/core/src/types.ts index f96cd04c0c..75a736cb3d 100644 --- a/packages/core/src/types.ts +++ b/packages/core/src/types.ts @@ -49,7 +49,8 @@ export const GroupingKey = [ "tags", "trash", "favorites", - "reminders" + "reminders", + "archive" ] as const; export type GroupingKey = (typeof GroupingKey)[number]; @@ -200,6 +201,7 @@ export interface Note extends BaseItem<"note"> { deletedBy: null; isGeneratedTitle?: boolean; + archived?: boolean; } export interface Notebook extends BaseItem<"notebook"> { diff --git a/packages/core/src/utils/__tests__/query-transformer.test.ts b/packages/core/src/utils/__tests__/query-transformer.test.ts index 6c02f37027..492170d236 100644 --- a/packages/core/src/utils/__tests__/query-transformer.test.ts +++ b/packages/core/src/utils/__tests__/query-transformer.test.ts @@ -20,11 +20,7 @@ along with this program. If not, see . import { expect, test } from "vitest"; import { transformQuery } from "../query-transformer.js"; -function lt2(str: string) { - return `(">${str}" OR "${str}" OR "${str}<")`; -} - -const TRANSFORM_QUERY_TESTS = [ +const TRANSFORM_QUERY_TESTS: [string, string][] = [ ["hello world", `hello AND world`], ["hello world OR bar", `hello AND world OR bar`], ["hello world OR bar NOT baz", `hello AND world OR bar NOT baz`], @@ -33,45 +29,34 @@ const TRANSFORM_QUERY_TESTS = [ ["hello world -foo", `hello AND world AND "-foo"`], ["hello world phrase-with-dash", `hello AND world AND "phrase-with-dash"`], ["hello world phrase-with-dash*", 'hello AND world AND "phrase-with-dash*"'], - [ - "example + foo + bar", - `example AND ${lt2("+")} AND foo AND ${lt2("+")} AND bar` - ], + ["example + foo + bar", `example AND foo AND bar`], ["example OR foo NOT bar", `example OR foo NOT bar`], [ 'example "quoted phrase" "another quoted phrase"', `example AND "quoted phrase" AND "another quoted phrase"` ], ['"phrase-with-dash*"', `"phrase-with-dash*"`], - [ - '-foo + bar OR "quoted-phrase"', - `"-foo" AND ${lt2("+")} AND bar OR "quoted-phrase"` - ], + ['-foo + bar OR "quoted-phrase"', `"-foo" AND bar OR "quoted-phrase"`], [ 'phrase-with-dash* + "quoted-phrase"', - `"phrase-with-dash*" AND ${lt2("+")} AND "quoted-phrase"` + `"phrase-with-dash*" AND "quoted-phrase"` ], [ 'example -foo + bar + "quoted-dash-phrase*" OR "another-quoted-phrase"', - `example AND "-foo" AND ${lt2("+")} AND bar AND ${lt2( - "+" - )} AND "quoted-dash-phrase*" OR "another-quoted-phrase"` + `example AND "-foo" AND bar AND "quoted-dash-phrase*" OR "another-quoted-phrase"` ], ["", ""], ["foo", `foo`], ['"quoted"', '"quoted"'], ["-foo -bar", `"-foo" AND "-bar"`], - ["foo + + bar", `foo AND ${lt2("+")} AND ${lt2("+")} AND bar`], - ["foo + OR", `foo AND ${lt2("+")}`], + ["foo + + bar", `foo AND bar`], + ["foo + OR", `foo`], ['"special -phrase*"', '"special -phrase*"'], - ["foo* + bar*", `"foo*" AND ${lt2("+")} AND "bar*"`], - ["(foo + bar) -baz", `"(foo" AND ${lt2("+")} AND "bar)" AND "-baz"`], + ["foo* + bar*", `"foo*" AND "bar*"`], + ["(foo + bar) -baz", `"(foo" AND "bar)" AND "-baz"`], ['"phrase with "quotes""', '"phrase with ""quotes"""'], - [ - 'foo + "bar -baz" OR "qux*"', - `foo AND ${lt2("+")} AND "bar -baz" OR "qux*"` - ], - ["foo + bar + ", `foo AND ${lt2("+")} AND bar AND ${lt2("+")}`], + ['foo + "bar -baz" OR "qux*"', `foo AND "bar -baz" OR "qux*"`], + ["foo + bar + ", `foo AND bar`], ["+foo bar", `"+foo" AND bar`], ["foo*bar*", `"foo*bar*"`], ['"escaped "quotes""', '"escaped ""quotes"""'], @@ -80,12 +65,12 @@ const TRANSFORM_QUERY_TESTS = [ ["*helo*", `"*helo*"`], [">he", `">he"`], ["something", `">"`] + ["<", ``], + [">", ``] ]; for (const [input, expectedOutput] of TRANSFORM_QUERY_TESTS) { test(`should transform "${input}" into a valid SQL query`, () => { - expect(transformQuery(input)).toBe(expectedOutput); + expect(transformQuery(input).query).toBe(expectedOutput); }); } diff --git a/packages/core/src/utils/array.ts b/packages/core/src/utils/array.ts index 7a96081937..d274322d0e 100644 --- a/packages/core/src/utils/array.ts +++ b/packages/core/src/utils/array.ts @@ -31,6 +31,13 @@ export function addItem(array: T[], item: T) { return true; } +export function addItems(array: T[], ...items: T[]) { + for (const item of items) { + addItem(array, item); + } + return array; +} + export function deleteItem(array: T[], item: T) { return deleteAtIndex(array, array.indexOf(item)); } diff --git a/packages/core/src/utils/html-parser.ts b/packages/core/src/utils/html-parser.ts index fc53c1bbf3..09d955bb65 100644 --- a/packages/core/src/utils/html-parser.ts +++ b/packages/core/src/utils/html-parser.ts @@ -44,14 +44,42 @@ function wrapIntoHTMLDocument(input: string) { return `Document Fragment${input}`; } -export function extractHeadline(html: string, headlineCharacterLimit: number) { +export function extractHeadline(html: string) { + let text = ""; + let start = false; + const parser = new Parser( + { + onopentag: (name) => { + if (name === "p") start = true; + }, + onclosetag: (name) => { + if (name === "p") { + start = false; + parser.pause(); + parser.end(); + } + }, + ontext: (data) => { + if (start) text += data; + } + }, + { + lowerCaseTags: false, + decodeEntities: true + } + ); + parser.end(html); + return text; +} + +export function extractTitle(html: string, characterLimit: number) { let text = ""; const parser = new Parser( { ontext: (data) => { text += data; - if (text.length > headlineCharacterLimit) { - text = text.slice(0, headlineCharacterLimit); + if (text.length > characterLimit) { + text = text.slice(0, characterLimit); parser.pause(); parser.end(); } @@ -102,3 +130,17 @@ export class HTMLParser { this.parser.reset(); } } + +export function extractText(html: string) { + let text = ""; + const parser = new Parser( + { + ontext: (data) => (text += data) + }, + { + lowerCaseTags: false + } + ); + parser.end(html); + return text; +} diff --git a/packages/core/src/utils/query-transformer.ts b/packages/core/src/utils/query-transformer.ts index 82a28ce30e..81fb4c34c5 100644 --- a/packages/core/src/utils/query-transformer.ts +++ b/packages/core/src/utils/query-transformer.ts @@ -33,20 +33,20 @@ type OperatorNode = { type: "AND" | "OR" | "NOT"; }; -const INVALID_CHARS = /[:<>./\\()$&=#!\-+~§@^?,;'"[\]{}|]/; +const INVALID_QUERY_REGEX = /[!"#$%&'()*+,\-./:;<>=?@[\\\]^_`{|}~§]/; function escapeSQLString(str: string): string { if (str.startsWith('"') && str.endsWith('"')) { const innerStr = str.slice(1, -1).replace(/"/g, '""'); return `"${innerStr}"`; } - const isInvalidChar = INVALID_CHARS.test(str); + const hasInvalidSymbol = INVALID_QUERY_REGEX.test(str); const isWildcard = str.startsWith("*") || str.endsWith("*") || str.startsWith("%") || str.endsWith("%"); - if (isInvalidChar || isWildcard) { + if (hasInvalidSymbol || isWildcard) { return `"${str}"`; } @@ -150,35 +150,7 @@ function generateSQL(ast: QueryNode): string { return ast.children .map((child) => { if (child.type === "phrase") { - const result: string[] = []; - for (const value of child.value) { - if (value.length === 1 || value.length === 2) { - result.push(`(">${value}"`, "OR", value, "OR", `"${value}<")`); - result.push("AND"); - continue; - } else if ( - value.length === 3 && - value[0] === '"' && - value[2] === '"' && - !["<", ">"].includes(value[1]) - ) { - result.push( - `(">${value[1]}"`, - "OR", - value, - "OR", - `"${value[1]}<")` - ); - result.push("AND"); - continue; - } - - result.push(value); - result.push("AND"); - } - result.pop(); - return result.join(" "); - // return child.value.join(" AND "); + return child.value.join(" AND "); } if (child.type === "AND" || child.type === "OR" || child.type === "NOT") { return child.type; @@ -188,6 +160,13 @@ function generateSQL(ast: QueryNode): string { .join(" "); } -export function transformQuery(query: string): string { - return generateSQL(transformAST(parseTokens(tokenize(query)))); +export function transformQuery(query: string) { + const tokens = tokenize(query); + const largeTokens = tokens.filter( + (token) => token.length >= 3 || token === "OR" + ); + return { + query: generateSQL(transformAST(parseTokens(largeTokens))), + tokens + }; } diff --git a/packages/editor-mobile/public/index.html b/packages/editor-mobile/public/index.html index 5d27c4ac4c..bf28491b83 100644 --- a/packages/editor-mobile/public/index.html +++ b/packages/editor-mobile/public/index.html @@ -15,10 +15,10 @@ font-family: "Inter"; } - p { - font-family: "Inter"; + /* p { */ + /* font-family: "Inter"; */ /* color: var(--nn_primary_paragraph) ## TODO: use fixed color */ - } + /* } */ ::selection { color: white; @@ -37,6 +37,10 @@ height: 100%; display: flex; } + + #statusbar p { + font-family: "Inter"; + }