From 24ceaea9d57e9b04e3fdffcfb8c4ff11d586c2c5 Mon Sep 17 00:00:00 2001 From: Zef Hemel Date: Fri, 4 Mar 2022 10:26:41 +0100 Subject: [PATCH] Migrated to pacel and removed deno --- .gitignore | 3 + .vscode/noot.code-workspace | 22 - nugget.code-workspace | 16 - {plugins => plugbox}/core/core.plugin.json | 0 {plugins => plugbox}/core/dates.ts | 0 {plugins => plugbox}/core/lib/db.ts | 0 {plugins => plugbox}/core/lib/syscall.ts | 0 {plugins => plugbox}/core/markup.ts | 0 {plugins => plugbox}/core/navigate.ts | 0 {plugins => plugbox}/core/page.ts | 7 +- {plugins => plugbox}/core/task.ts | 0 {plugins => plugbox}/core/welcome.ts | 0 .../core/word_count_command.ts | 0 plugbox/package.json | 22 + plugbox/src/bundle.ts | 63 + plugbox/yarn.lock | 1768 +++++++++++ plugins/.gitignore | 0 plugins/.vscode/settings.json | 4 - plugins/Makefile | 7 - plugins/bundle.ts | 73 - server/.vscode/settings.json | 2 +- server/package.json | 24 + server/run.sh | 3 - server/server.ts | 133 - server/src/server.ts | 136 + server/test.ts | 2 - server/yarn.lock | 2650 +++++++++++++++++ webapp/.gitignore | 3 - webapp/src/boot.ts | 2 +- webapp/src/editor.tsx | 2 + webapp/src/generated/core.plugin.json | 24 +- 31 files changed, 4685 insertions(+), 281 deletions(-) delete mode 100644 .vscode/noot.code-workspace delete mode 100644 nugget.code-workspace rename {plugins => plugbox}/core/core.plugin.json (100%) rename {plugins => plugbox}/core/dates.ts (100%) rename {plugins => plugbox}/core/lib/db.ts (100%) rename {plugins => plugbox}/core/lib/syscall.ts (100%) rename {plugins => plugbox}/core/markup.ts (100%) rename {plugins => plugbox}/core/navigate.ts (100%) rename {plugins => plugbox}/core/page.ts (93%) rename {plugins => plugbox}/core/task.ts (100%) rename {plugins => plugbox}/core/welcome.ts (100%) rename {plugins => plugbox}/core/word_count_command.ts (100%) create mode 100644 plugbox/package.json create mode 100644 plugbox/src/bundle.ts create mode 100644 plugbox/yarn.lock delete mode 100644 plugins/.gitignore delete mode 100644 plugins/.vscode/settings.json delete mode 100644 plugins/Makefile delete mode 100644 plugins/bundle.ts create mode 100644 server/package.json delete mode 100755 server/run.sh delete mode 100644 server/server.ts create mode 100644 server/src/server.ts delete mode 100644 server/test.ts create mode 100644 server/yarn.lock delete mode 100644 webapp/.gitignore diff --git a/.gitignore b/.gitignore index 7a78dd64..7d4a4497 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ pages logo.pxd .DS_Store +node_modules +.parcel-cache +dist \ No newline at end of file diff --git a/.vscode/noot.code-workspace b/.vscode/noot.code-workspace deleted file mode 100644 index dc9b9d5b..00000000 --- a/.vscode/noot.code-workspace +++ /dev/null @@ -1,22 +0,0 @@ -{ - "folders": [ - { - "path": ".." - }, - { - "path": "../server" - }, - { - "path": "../plugin-bundler" - } - ], - "settings": { - "editor.formatOnSave": true, - "editor.defaultFormatter": "esbenp.prettier-vscode", - "javascript.format.enable": false, - "typescript.format.enable": false, - "[typescript]": { - "editor.defaultFormatter": "esbenp.prettier-vscode" - } - } -} diff --git a/nugget.code-workspace b/nugget.code-workspace deleted file mode 100644 index e58cdaa0..00000000 --- a/nugget.code-workspace +++ /dev/null @@ -1,16 +0,0 @@ -{ - "folders": [ - { - "path": "webapp" - }, - { - "path": "plugins" - }, - { - "path": "server" - } - ], - "settings": { - "editor.formatOnSave": true - } -} diff --git a/plugins/core/core.plugin.json b/plugbox/core/core.plugin.json similarity index 100% rename from plugins/core/core.plugin.json rename to plugbox/core/core.plugin.json diff --git a/plugins/core/dates.ts b/plugbox/core/dates.ts similarity index 100% rename from plugins/core/dates.ts rename to plugbox/core/dates.ts diff --git a/plugins/core/lib/db.ts b/plugbox/core/lib/db.ts similarity index 100% rename from plugins/core/lib/db.ts rename to plugbox/core/lib/db.ts diff --git a/plugins/core/lib/syscall.ts b/plugbox/core/lib/syscall.ts similarity index 100% rename from plugins/core/lib/syscall.ts rename to plugbox/core/lib/syscall.ts diff --git a/plugins/core/markup.ts b/plugbox/core/markup.ts similarity index 100% rename from plugins/core/markup.ts rename to plugbox/core/markup.ts diff --git a/plugins/core/navigate.ts b/plugbox/core/navigate.ts similarity index 100% rename from plugins/core/navigate.ts rename to plugbox/core/navigate.ts diff --git a/plugins/core/page.ts b/plugbox/core/page.ts similarity index 93% rename from plugins/core/page.ts rename to plugbox/core/page.ts index a9d53631..969262f8 100644 --- a/plugins/core/page.ts +++ b/plugbox/core/page.ts @@ -1,6 +1,6 @@ -import { IndexEvent } from "../../webapp/src/app_event.ts"; -import { pageLinkRegex } from "../../webapp/src/constant.ts"; -import { syscall } from "./lib/syscall.ts"; +import { IndexEvent } from "../../webapp/src/app_event"; +import { pageLinkRegex } from "../../webapp/src/constant"; +import { syscall } from "./lib/syscall"; const wikilinkRegex = new RegExp(pageLinkRegex, "g"); @@ -29,7 +29,6 @@ export async function deletePage() { } export async function renamePage() { - // console.log("HELLO WORLD"); const pageMeta = await syscall("editor.getCurrentPage"); const oldName = pageMeta.name; console.log("Old name is", oldName); diff --git a/plugins/core/task.ts b/plugbox/core/task.ts similarity index 100% rename from plugins/core/task.ts rename to plugbox/core/task.ts diff --git a/plugins/core/welcome.ts b/plugbox/core/welcome.ts similarity index 100% rename from plugins/core/welcome.ts rename to plugbox/core/welcome.ts diff --git a/plugins/core/word_count_command.ts b/plugbox/core/word_count_command.ts similarity index 100% rename from plugins/core/word_count_command.ts rename to plugbox/core/word_count_command.ts diff --git a/plugbox/package.json b/plugbox/package.json new file mode 100644 index 00000000..e4cea06a --- /dev/null +++ b/plugbox/package.json @@ -0,0 +1,22 @@ +{ + "name": "plugbox", + "version": "1.0.0", + "type": "module", + "source": "src/bundle.ts", + "main": "dist/bundle.js", + "scripts": { + "build": "parcel build", + "core": "node dist/bundle.js --debug core/core.plugin.json ../webapp/src/generated/core.plugin.json" + }, + "dependencies": { + "esbuild": "^0.14.24", + "typescript": ">=3.0.0", + "vm2": "^3.9.9", + "yargs": "^17.3.1" + }, + "devDependencies": { + "@types/node": "^17.0.21", + "@types/yargs": "^17.0.9", + "parcel": "^2.3.2" + } +} diff --git a/plugbox/src/bundle.ts b/plugbox/src/bundle.ts new file mode 100644 index 00000000..ef4f1d6a --- /dev/null +++ b/plugbox/src/bundle.ts @@ -0,0 +1,63 @@ +import esbuild from "esbuild"; +import { readFile, unlink, writeFile } from "fs/promises"; +import path from "path"; + +import yargs from "yargs"; +import { hideBin } from "yargs/helpers"; +import { Manifest } from "../../webapp/src/plugins/types"; + +async function compile(filePath: string, sourceMap: string) { + let tempFile = "out.js"; + let js = await esbuild.build({ + entryPoints: [filePath], + bundle: true, + format: "iife", + globalName: "mod", + platform: "neutral", + sourcemap: sourceMap ? "inline" : false, + minify: true, + outfile: tempFile, + }); + + let jsCode = (await readFile(tempFile)).toString(); + jsCode = jsCode.replace(/^var mod ?= ?/, ""); + await unlink(tempFile); + return jsCode; +} + +async function bundle(manifestPath, sourceMaps) { + const rootPath = path.dirname(manifestPath); + const manifest = JSON.parse( + (await readFile(manifestPath)).toString() + ) as Manifest; + + for (let [name, def] of Object.entries(manifest.functions)) { + let jsFunctionName = def.functionName, + filePath = path.join(rootPath, def.path); + if (filePath.indexOf(":") !== -1) { + [filePath, jsFunctionName] = filePath.split(":"); + } else if (!jsFunctionName) { + jsFunctionName = "default"; + } + + def.code = await compile(filePath, sourceMaps); + def.path = filePath; + def.functionName = jsFunctionName; + } + return manifest; +} +async function run() { + let args = await yargs(hideBin(process.argv)) + .option("debug", { + type: "boolean", + }) + .parse(); + + let generatedManifest = await bundle(args._[0], !!args.debug); + writeFile(args._[1] as string, JSON.stringify(generatedManifest, null, 2)); +} + +run().catch((e) => { + console.error(e); + process.exit(1); +}); diff --git a/plugbox/yarn.lock b/plugbox/yarn.lock new file mode 100644 index 00000000..42abaf6e --- /dev/null +++ b/plugbox/yarn.lock @@ -0,0 +1,1768 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@babel/code-frame@^7.0.0": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789" + integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg== + dependencies: + "@babel/highlight" "^7.16.7" + +"@babel/helper-validator-identifier@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad" + integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== + +"@babel/highlight@^7.16.7": + version "7.16.10" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.10.tgz#744f2eb81579d6eea753c227b0f570ad785aba88" + integrity sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw== + dependencies: + "@babel/helper-validator-identifier" "^7.16.7" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@parcel/bundler-default@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/bundler-default/-/bundler-default-2.3.2.tgz#329f171e210dfb22beaa52ae706ccde1dae384c1" + integrity sha512-JUrto4mjSD0ic9dEqRp0loL5o3HVYHja1ZIYSq+rBl2UWRV6/9cGTb07lXOCqqm0BWE+hQ4krUxB76qWaF0Lqw== + dependencies: + "@parcel/diagnostic" "2.3.2" + "@parcel/hash" "2.3.2" + "@parcel/plugin" "2.3.2" + "@parcel/utils" "2.3.2" + nullthrows "^1.1.1" + +"@parcel/cache@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/cache/-/cache-2.3.2.tgz#ba8c2af02fd45b90c7bc6f829bfc566d1ded0a13" + integrity sha512-Xxq+ekgcFEme6Fn1v7rEOBkyMOUOUu7eNqQw0l6HQS+INZ2Q7YzzfdW7pI8rEOAAICVg5BWKpmBQZpgJlT+HxQ== + dependencies: + "@parcel/fs" "2.3.2" + "@parcel/logger" "2.3.2" + "@parcel/utils" "2.3.2" + lmdb "^2.0.2" + +"@parcel/codeframe@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/codeframe/-/codeframe-2.3.2.tgz#73fb5a89910b977342808ca8f6ece61fa01b7690" + integrity sha512-ireQALcxxrTdIEpzTOoMo/GpfbFm1qlyezeGl3Hce3PMvHLg3a5S6u/Vcy7SAjdld5GfhHEqVY+blME6Z4CyXQ== + dependencies: + chalk "^4.1.0" + +"@parcel/compressor-raw@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/compressor-raw/-/compressor-raw-2.3.2.tgz#1a808ae9e61ed86f655935e1d2a984383b3c00a7" + integrity sha512-8dIoFwinYK6bOTpnZOAwwIv0v73y0ezsctPmfMnIqVQPn7wJwfhw/gbKVcmK5AkgQMkyid98hlLZoaZtGF1Mdg== + dependencies: + "@parcel/plugin" "2.3.2" + +"@parcel/config-default@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/config-default/-/config-default-2.3.2.tgz#3f21a37fa07b22de9cd6b1aea19bc310a02d4abb" + integrity sha512-E7/iA7fGCYvXU3u6zF9nxjeDVsgjCN6MVvDjymjaxYMoDWTIsPV245SBEXqzgtmzbMAV+VAl4rVWLMB4pzMt9g== + dependencies: + "@parcel/bundler-default" "2.3.2" + "@parcel/compressor-raw" "2.3.2" + "@parcel/namer-default" "2.3.2" + "@parcel/optimizer-cssnano" "2.3.2" + "@parcel/optimizer-htmlnano" "2.3.2" + "@parcel/optimizer-image" "2.3.2" + "@parcel/optimizer-svgo" "2.3.2" + "@parcel/optimizer-terser" "2.3.2" + "@parcel/packager-css" "2.3.2" + "@parcel/packager-html" "2.3.2" + "@parcel/packager-js" "2.3.2" + "@parcel/packager-raw" "2.3.2" + "@parcel/packager-svg" "2.3.2" + "@parcel/reporter-dev-server" "2.3.2" + "@parcel/resolver-default" "2.3.2" + "@parcel/runtime-browser-hmr" "2.3.2" + "@parcel/runtime-js" "2.3.2" + "@parcel/runtime-react-refresh" "2.3.2" + "@parcel/runtime-service-worker" "2.3.2" + "@parcel/transformer-babel" "2.3.2" + "@parcel/transformer-css" "2.3.2" + "@parcel/transformer-html" "2.3.2" + "@parcel/transformer-image" "2.3.2" + "@parcel/transformer-js" "2.3.2" + "@parcel/transformer-json" "2.3.2" + "@parcel/transformer-postcss" "2.3.2" + "@parcel/transformer-posthtml" "2.3.2" + "@parcel/transformer-raw" "2.3.2" + "@parcel/transformer-react-refresh-wrap" "2.3.2" + "@parcel/transformer-svg" "2.3.2" + +"@parcel/core@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/core/-/core-2.3.2.tgz#1b9a79c1ff96dba5e0f53d4277bed4e7ab4590d0" + integrity sha512-gdJzpsgeUhv9H8T0UKVmyuptiXdduEfKIUx0ci+/PGhq8cCoiFnlnuhW6H7oLr79OUc+YJStabDJuG4U2A6ysw== + dependencies: + "@parcel/cache" "2.3.2" + "@parcel/diagnostic" "2.3.2" + "@parcel/events" "2.3.2" + "@parcel/fs" "2.3.2" + "@parcel/graph" "2.3.2" + "@parcel/hash" "2.3.2" + "@parcel/logger" "2.3.2" + "@parcel/package-manager" "2.3.2" + "@parcel/plugin" "2.3.2" + "@parcel/source-map" "^2.0.0" + "@parcel/types" "2.3.2" + "@parcel/utils" "2.3.2" + "@parcel/workers" "2.3.2" + abortcontroller-polyfill "^1.1.9" + base-x "^3.0.8" + browserslist "^4.6.6" + clone "^2.1.1" + dotenv "^7.0.0" + dotenv-expand "^5.1.0" + json-source-map "^0.6.1" + json5 "^2.2.0" + msgpackr "^1.5.1" + nullthrows "^1.1.1" + semver "^5.7.1" + +"@parcel/diagnostic@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/diagnostic/-/diagnostic-2.3.2.tgz#1d3f0b55bfd9839c6f41d704ebbc89a96cca88dc" + integrity sha512-/xW93Az4AOiifuYW/c4CDbUcu3lx5FcUDAj9AGiR9NSTsF/ROC/RqnxvQ3AGtqa14R7vido4MXEpY3JEp6FsqA== + dependencies: + json-source-map "^0.6.1" + nullthrows "^1.1.1" + +"@parcel/events@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/events/-/events-2.3.2.tgz#b6bcfbbc96d883716ee9d0e6ab232acdee862790" + integrity sha512-WiYIwXMo4Vd+pi58vRoHkul8TPE5VEfMY+3FYwVCKPl/LYqSD+vz6wMx9uG18mEbB1d/ofefv5ZFQNtPGKO4tQ== + +"@parcel/fs-search@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/fs-search/-/fs-search-2.3.2.tgz#18611877ac1b370932c71987c2ec0e93a4a7e53d" + integrity sha512-u3DTEFnPtKuZvEtgGzfVjQUytegSSn3POi7WfwMwPIaeDPfYcyyhfl+c96z7VL9Gk/pqQ99/cGyAwFdFsnxxXA== + dependencies: + detect-libc "^1.0.3" + +"@parcel/fs@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/fs/-/fs-2.3.2.tgz#9628441a84c2582e1f6e69549feb0da0cc143e40" + integrity sha512-XV+OsnRpN01QKU37lBN0TFKvv7uPKfQGbqFqYOrMbXH++Ae8rBU0Ykz+Yu4tv2h7shMlde+AMKgRnRTAJZpWEQ== + dependencies: + "@parcel/fs-search" "2.3.2" + "@parcel/types" "2.3.2" + "@parcel/utils" "2.3.2" + "@parcel/watcher" "^2.0.0" + "@parcel/workers" "2.3.2" + +"@parcel/graph@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/graph/-/graph-2.3.2.tgz#4194816952ab322ab22a17f7d9ea17befbade64d" + integrity sha512-ltTBM3IEqumgmy4ABBFETT8NtAwSsjD9mY3WCyJ5P8rUshfVCg093rvBPbpuJYMaH/TV1AHVaWfZqaZ4JQDIQQ== + dependencies: + "@parcel/utils" "2.3.2" + nullthrows "^1.1.1" + +"@parcel/hash@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/hash/-/hash-2.3.2.tgz#33b8ff04bb44f6661bdc1054b302ef1b6bd3acb3" + integrity sha512-SMtYTsHihws/wqdVnOr0QAGyGYsW9rJSJkkoRujUxo8l2ctnBN1ztv89eOUrdtgHsmcnj/oz1yw6sN38X+BUng== + dependencies: + detect-libc "^1.0.3" + xxhash-wasm "^0.4.2" + +"@parcel/logger@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/logger/-/logger-2.3.2.tgz#b5fc7a9c1664ee0286d0f67641c7c81c8fec1561" + integrity sha512-jIWd8TXDQf+EnNWSa7Q10lSQ6C1LSH8OZkTlaINrfVIw7s+3tVxO3I4pjp7/ARw7RX2gdNPlw6fH4Gn/HvvYbw== + dependencies: + "@parcel/diagnostic" "2.3.2" + "@parcel/events" "2.3.2" + +"@parcel/markdown-ansi@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/markdown-ansi/-/markdown-ansi-2.3.2.tgz#2a5be7ce76a506a9d238ea2257cb28e43abe4902" + integrity sha512-l01ggmag5QScCk9mYA0xHh5TWSffR84uPFP2KvaAMQQ9NLNufcFiU0mn/Mtr3pCb5L5dSzmJ+Oo9s7P1Kh/Fmg== + dependencies: + chalk "^4.1.0" + +"@parcel/namer-default@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/namer-default/-/namer-default-2.3.2.tgz#84e17abfc84fd293b23b3f405280ed2e279c75d8" + integrity sha512-3QUMC0+5+3KMKfoAxYAbpZtuRqTgyZKsGDWzOpuqwemqp6P8ahAvNPwSCi6QSkGcTmvtYwBu9/NHPSONxIFOfg== + dependencies: + "@parcel/diagnostic" "2.3.2" + "@parcel/plugin" "2.3.2" + nullthrows "^1.1.1" + +"@parcel/node-resolver-core@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/node-resolver-core/-/node-resolver-core-2.3.2.tgz#dd360f405949fdcd62980cd44825052ab28f6135" + integrity sha512-wmrnMNzJN4GuHw2Ftho+BWgSWR6UCkW3XoMdphqcxpw/ieAdS2a+xYSosYkZgQZ6lGutSvLyJ1CkVvP6RLIdQQ== + dependencies: + "@parcel/diagnostic" "2.3.2" + "@parcel/utils" "2.3.2" + nullthrows "^1.1.1" + +"@parcel/optimizer-cssnano@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/optimizer-cssnano/-/optimizer-cssnano-2.3.2.tgz#70758f6646fd4debc26a90ae7dddf398928c0ce1" + integrity sha512-wTBOxMiBI38NAB9XIlQZRCjS59+EWjWR9M04D3TWyxl+dL5gYMc1cl4GNynUnmcPdz+3s1UbOdo5/8V90wjiiw== + dependencies: + "@parcel/plugin" "2.3.2" + "@parcel/source-map" "^2.0.0" + cssnano "^5.0.15" + postcss "^8.4.5" + +"@parcel/optimizer-htmlnano@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/optimizer-htmlnano/-/optimizer-htmlnano-2.3.2.tgz#4086736866621182f5dd1a8abe78e9f5764e1a28" + integrity sha512-U8C0TDSxsx8HmHaLW0Zc7ha1fXQynzhvBjCRMGYnOiLiw0MOfLQxzQ2WKVSeCotmdlF63ayCwxWsd6BuqStiKQ== + dependencies: + "@parcel/plugin" "2.3.2" + htmlnano "^2.0.0" + nullthrows "^1.1.1" + posthtml "^0.16.5" + svgo "^2.4.0" + +"@parcel/optimizer-image@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/optimizer-image/-/optimizer-image-2.3.2.tgz#0549cc1abc99fdd6f46bd44ce8551eb135e44d4f" + integrity sha512-HOk3r5qdvY/PmI7Q3i2qEgFH3kP2QWG4Wq3wmC4suaF1+c2gpiQc+HKHWp4QvfbH3jhT00c5NxQyqPhbXeNI9Q== + dependencies: + "@parcel/diagnostic" "2.3.2" + "@parcel/plugin" "2.3.2" + "@parcel/utils" "2.3.2" + "@parcel/workers" "2.3.2" + detect-libc "^1.0.3" + +"@parcel/optimizer-svgo@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/optimizer-svgo/-/optimizer-svgo-2.3.2.tgz#ebf2f48f356ad557d2bbfae361520d3d29bc1c37" + integrity sha512-l7WvZ5+e7D1mVmLUxMVaSb29cviXzuvSY2OpQs0ukdPACDqag+C65hWMzwTiOSSRGPMIu96kQKpeVru2YjibhA== + dependencies: + "@parcel/diagnostic" "2.3.2" + "@parcel/plugin" "2.3.2" + "@parcel/utils" "2.3.2" + svgo "^2.4.0" + +"@parcel/optimizer-terser@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/optimizer-terser/-/optimizer-terser-2.3.2.tgz#790b69e6ecc6ef0d8f25b57e9a13806e1f1c2943" + integrity sha512-dOapHhfy0xiNZa2IoEyHGkhhla07xsja79NPem14e5jCqY6Oi40jKNV4ab5uu5u1elWUjJuw69tiYbkDZWbKQw== + dependencies: + "@parcel/diagnostic" "2.3.2" + "@parcel/plugin" "2.3.2" + "@parcel/source-map" "^2.0.0" + "@parcel/utils" "2.3.2" + nullthrows "^1.1.1" + terser "^5.2.0" + +"@parcel/package-manager@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/package-manager/-/package-manager-2.3.2.tgz#380f0741c9d0c79c170c437efae02506484df315" + integrity sha512-pAQfywKVORY8Ee+NHAyKzzQrKbnz8otWRejps7urwhDaTVLfAd5C/1ZV64ATZ9ALYP9jyoQ8bTaxVd4opcSuwg== + dependencies: + "@parcel/diagnostic" "2.3.2" + "@parcel/fs" "2.3.2" + "@parcel/logger" "2.3.2" + "@parcel/types" "2.3.2" + "@parcel/utils" "2.3.2" + "@parcel/workers" "2.3.2" + semver "^5.7.1" + +"@parcel/packager-css@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/packager-css/-/packager-css-2.3.2.tgz#4994d872449843c1c0cda524b6df3327e2f0a121" + integrity sha512-ByuF9xDnQnpVL1Hdu9aY6SpxOuZowd3TH7joh1qdRPLeMHTEvUywHBXoiAyNdrhnLGum8uPEdY8Ra5Xuo1U7kg== + dependencies: + "@parcel/plugin" "2.3.2" + "@parcel/source-map" "^2.0.0" + "@parcel/utils" "2.3.2" + nullthrows "^1.1.1" + +"@parcel/packager-html@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/packager-html/-/packager-html-2.3.2.tgz#e54085fbaa49bed4258ffef80bc36b421895965f" + integrity sha512-YqAptdU+uqfgwSii76mRGcA/3TpuC6yHr8xG+11brqj/tEFLsurmX0naombzd7FgmrTE9w+kb0HUIMl2vRBn0A== + dependencies: + "@parcel/plugin" "2.3.2" + "@parcel/types" "2.3.2" + "@parcel/utils" "2.3.2" + nullthrows "^1.1.1" + posthtml "^0.16.5" + +"@parcel/packager-js@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/packager-js/-/packager-js-2.3.2.tgz#2d2566bde0da921042b79aa827c71109665d795c" + integrity sha512-3OP0Ro9M1J+PIKZK4Ec2N5hjIPiqk++B2kMFeiUqvaNZjJgKrPPEICBhjS52rma4IE/NgmIMB3aI5pWqE/KwNA== + dependencies: + "@parcel/diagnostic" "2.3.2" + "@parcel/hash" "2.3.2" + "@parcel/plugin" "2.3.2" + "@parcel/source-map" "^2.0.0" + "@parcel/utils" "2.3.2" + globals "^13.2.0" + nullthrows "^1.1.1" + +"@parcel/packager-raw@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/packager-raw/-/packager-raw-2.3.2.tgz#869cc3e7bee8ff3655891a0af400cf4e7dd4f144" + integrity sha512-RnoZ7WgNAFWkEPrEefvyDqus7xfv9XGprHyTbfLittPaVAZpl+4eAv43nXyMfzk77Cgds6KcNpkosj3acEpNIQ== + dependencies: + "@parcel/plugin" "2.3.2" + +"@parcel/packager-svg@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/packager-svg/-/packager-svg-2.3.2.tgz#a7a02e22642ae93f42b8bfd7d122b4a159988743" + integrity sha512-iIC0VeczOXynS7M5jCi3naMBRyAznBVJ3iMg92/GaI9duxPlUMGAlHzLAKNtoXkc00HMXDH7rrmMb04VX6FYSg== + dependencies: + "@parcel/plugin" "2.3.2" + "@parcel/types" "2.3.2" + "@parcel/utils" "2.3.2" + posthtml "^0.16.4" + +"@parcel/plugin@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/plugin/-/plugin-2.3.2.tgz#7701c40567d2eddd5d5b2b6298949cd03a2a22fa" + integrity sha512-SaLZAJX4KH+mrAmqmcy9KJN+V7L+6YNTlgyqYmfKlNiHu7aIjLL+3prX8QRcgGtjAYziCxvPj0cl1CCJssaiGg== + dependencies: + "@parcel/types" "2.3.2" + +"@parcel/reporter-cli@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/reporter-cli/-/reporter-cli-2.3.2.tgz#0617e088aac5ef7fa255d088e7016bb4f9d66a53" + integrity sha512-VYetmTXqW83npsvVvqlQZTbF3yVL3k/FCCl3kSWvOr9LZA0lmyqJWPjMHq37yIIOszQN/p5guLtgCjsP0UQw1Q== + dependencies: + "@parcel/plugin" "2.3.2" + "@parcel/types" "2.3.2" + "@parcel/utils" "2.3.2" + chalk "^4.1.0" + +"@parcel/reporter-dev-server@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/reporter-dev-server/-/reporter-dev-server-2.3.2.tgz#46ee4c53ad08c8b8afd2c79fb37381b6ba55cfb5" + integrity sha512-E7LtnjAX4iiWMw2qKUyFBi3+bDz0UGjqgHoPQylUYYLi6opXjJz/oC+cCcCy4e3RZlkrl187XonvagS59YjDxA== + dependencies: + "@parcel/plugin" "2.3.2" + "@parcel/utils" "2.3.2" + +"@parcel/resolver-default@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/resolver-default/-/resolver-default-2.3.2.tgz#286070412ad7fe506f7c88409f39b362d2041798" + integrity sha512-y3r+xOwWsATrNGUWuZ6soA7q24f8E5tY1AZ9lHCufnkK2cdKZJ5O1cyd7ohkAiKZx2/pMd+FgmVZ/J3oxetXkA== + dependencies: + "@parcel/node-resolver-core" "2.3.2" + "@parcel/plugin" "2.3.2" + +"@parcel/runtime-browser-hmr@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/runtime-browser-hmr/-/runtime-browser-hmr-2.3.2.tgz#cb23a850324ea792168438a9be6a345ebb66eb6d" + integrity sha512-nRD6uOyF1+HGylP9GASbYmvUDOsDaNwvaxuGTSh8+5M0mmCgib+hVBiPEKbwdmKjGbUPt9wRFPyMa/JpeQZsIQ== + dependencies: + "@parcel/plugin" "2.3.2" + "@parcel/utils" "2.3.2" + +"@parcel/runtime-js@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/runtime-js/-/runtime-js-2.3.2.tgz#c0e14251ce43f95977577e23bb9ac5c2487f3bb1" + integrity sha512-SJepcHvYO/7CEe/Q85sngk+smcJ6TypuPh4D2R8kN+cAJPi5WvbQEe7+x5BEgbN+5Jumi/Uo3FfOOE5mYh+F6g== + dependencies: + "@parcel/plugin" "2.3.2" + "@parcel/utils" "2.3.2" + nullthrows "^1.1.1" + +"@parcel/runtime-react-refresh@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/runtime-react-refresh/-/runtime-react-refresh-2.3.2.tgz#11961d7429ae3333b7efe14c4f57515df57eb5f2" + integrity sha512-P+GRPO2XVDSBQ4HmRSj2xfbHSQvL9+ahTE/AB74IJExLTITv5l4SHAV3VsiKohuHYUAYHW3A/Oe7tEFCAb6Cug== + dependencies: + "@parcel/plugin" "2.3.2" + "@parcel/utils" "2.3.2" + react-refresh "^0.9.0" + +"@parcel/runtime-service-worker@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/runtime-service-worker/-/runtime-service-worker-2.3.2.tgz#aa91797e57d1bb5b2aac04ac62c5410709ae0a27" + integrity sha512-iREHj/eapphC4uS/zGUkiTJvG57q+CVbTrfE42kB8ECtf/RYNo5YC9htdvPZjRSXDPrEPc5NCoKp4X09ENNikw== + dependencies: + "@parcel/plugin" "2.3.2" + "@parcel/utils" "2.3.2" + nullthrows "^1.1.1" + +"@parcel/source-map@^2.0.0": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@parcel/source-map/-/source-map-2.0.2.tgz#9aa0b00518cee31d5634de6e9c924a5539b142c1" + integrity sha512-NnUrPYLpYB6qyx2v6bcRPn/gVigmGG6M6xL8wIg/i0dP1GLkuY1nf+Hqdf63FzPTqqT7K3k6eE5yHPQVMO5jcA== + dependencies: + detect-libc "^1.0.3" + +"@parcel/transformer-babel@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/transformer-babel/-/transformer-babel-2.3.2.tgz#2d8c0d1f95d9747936d132dc4c34edb0b6b80d39" + integrity sha512-QpWfH2V6jJ+kcUBIMM/uBBG8dGFvNaOGS+8jD6b+eTP+1owzm83RoWgqhRV2D/hhv2qMXEQzIljoc/wg2y+X4g== + dependencies: + "@parcel/diagnostic" "2.3.2" + "@parcel/plugin" "2.3.2" + "@parcel/source-map" "^2.0.0" + "@parcel/utils" "2.3.2" + browserslist "^4.6.6" + json5 "^2.2.0" + nullthrows "^1.1.1" + semver "^5.7.0" + +"@parcel/transformer-css@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/transformer-css/-/transformer-css-2.3.2.tgz#968826e42d7cac9963dc0a67a30d393ef996e48c" + integrity sha512-8lzvDny+78DIAqhcXam2Bf9FyaUoqzHdUQdNFn+PuXTHroG/QGPvln1kvqngJjn4/cpJS9vYmAPVXe+nai3P8g== + dependencies: + "@parcel/hash" "2.3.2" + "@parcel/plugin" "2.3.2" + "@parcel/source-map" "^2.0.0" + "@parcel/utils" "2.3.2" + nullthrows "^1.1.1" + postcss "^8.4.5" + postcss-value-parser "^4.2.0" + semver "^5.7.1" + +"@parcel/transformer-html@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/transformer-html/-/transformer-html-2.3.2.tgz#c240f09369445d287d16beba207407c925532d90" + integrity sha512-idT1I/8WM65IFYBqzRwpwT7sf0xGur4EDQDHhuPX1w+pIVZnh0lkLMAnEqs6ar1SPRMys4chzkuDNnqh0d76hg== + dependencies: + "@parcel/diagnostic" "2.3.2" + "@parcel/hash" "2.3.2" + "@parcel/plugin" "2.3.2" + nullthrows "^1.1.1" + posthtml "^0.16.5" + posthtml-parser "^0.10.1" + posthtml-render "^3.0.0" + semver "^5.7.1" + +"@parcel/transformer-image@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/transformer-image/-/transformer-image-2.3.2.tgz#24b6eda51a6b07c195886bbb67fb2ade14c325f3" + integrity sha512-0K7cJHXysli6hZsUz/zVGO7WCoaaIeVdzAxKpLA1Yl3LKw/ODiMyXKt08LiV/ljQ2xT5qb9EsXUWDRvcZ0b96A== + dependencies: + "@parcel/plugin" "2.3.2" + "@parcel/workers" "2.3.2" + nullthrows "^1.1.1" + +"@parcel/transformer-js@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/transformer-js/-/transformer-js-2.3.2.tgz#24bcb488d5f82678343a5630fe4bbe822789ac33" + integrity sha512-U1fbIoAoqR5P49S+DMhH8BUd9IHRPwrTTv6ARYGsYnhuNsjTFhNYE0kkfRYboe/e0z7vEbeJICZXjnZ7eQDw5A== + dependencies: + "@parcel/diagnostic" "2.3.2" + "@parcel/plugin" "2.3.2" + "@parcel/source-map" "^2.0.0" + "@parcel/utils" "2.3.2" + "@parcel/workers" "2.3.2" + "@swc/helpers" "^0.2.11" + browserslist "^4.6.6" + detect-libc "^1.0.3" + nullthrows "^1.1.1" + regenerator-runtime "^0.13.7" + semver "^5.7.1" + +"@parcel/transformer-json@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/transformer-json/-/transformer-json-2.3.2.tgz#4c470e86659e87ee13b1f31e75a3621d3615b6bd" + integrity sha512-Pv2iPaxKINtFwOk5fDbHjQlSm2Vza/NLimQY896FLxiXPNAJxWGvMwdutgOPEBKksxRx9LZPyIOHiRVZ0KcA3w== + dependencies: + "@parcel/plugin" "2.3.2" + json5 "^2.2.0" + +"@parcel/transformer-postcss@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/transformer-postcss/-/transformer-postcss-2.3.2.tgz#a428c81569dd66758c5fab866dca69b4c6e59743" + integrity sha512-Rpdxc1rt2aJFCh/y/ccaBc9J1crDjNY5o44xYoOemBoUNDMREsmg5sR5iO81qKKO5GxfoosGb2zh59aeTmywcg== + dependencies: + "@parcel/hash" "2.3.2" + "@parcel/plugin" "2.3.2" + "@parcel/utils" "2.3.2" + clone "^2.1.1" + nullthrows "^1.1.1" + postcss-value-parser "^4.2.0" + semver "^5.7.1" + +"@parcel/transformer-posthtml@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/transformer-posthtml/-/transformer-posthtml-2.3.2.tgz#5da3f24bf240c3c49b2fdb17dcda5988d3057a30" + integrity sha512-tMdVExfdM+1G8A9KSHDsjg+S9xEGbhH5mApF2NslPnNZ4ciLKRNuHU2sSV/v8i0a6kacKvDTrwQXYBQJGOodBw== + dependencies: + "@parcel/plugin" "2.3.2" + "@parcel/utils" "2.3.2" + nullthrows "^1.1.1" + posthtml "^0.16.5" + posthtml-parser "^0.10.1" + posthtml-render "^3.0.0" + semver "^5.7.1" + +"@parcel/transformer-raw@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/transformer-raw/-/transformer-raw-2.3.2.tgz#40d21773e295bae3b16bfe7a89e414ccf534b9c5" + integrity sha512-lY7eOCaALZ90+GH+4PZRmAPGQRXoZ66NakSdhEtH6JSSAYOmZKDvNLGTMRo/vK1oELzWMuAHGdqvbcPDtNLLVw== + dependencies: + "@parcel/plugin" "2.3.2" + +"@parcel/transformer-react-refresh-wrap@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/transformer-react-refresh-wrap/-/transformer-react-refresh-wrap-2.3.2.tgz#43ecfe6f4567b88abb81db9fe56b8d860d6a69f7" + integrity sha512-FZaderyCExn0SBZ6D+zHPWc8JSn9YDcbfibv0wkCl+D7sYfeWZ22i7MRp5NwCe/TZ21WuxDWySCggEp/Waz2xg== + dependencies: + "@parcel/plugin" "2.3.2" + "@parcel/utils" "2.3.2" + react-refresh "^0.9.0" + +"@parcel/transformer-svg@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/transformer-svg/-/transformer-svg-2.3.2.tgz#9a66aef5011c7bbb1fa3ce9bb52ca56d8f0f964d" + integrity sha512-k9My6bePsaGgUh+tidDjFbbVgKPTzwCAQfoloZRMt7y396KgUbvCfqDruk04k6k+cJn7Jl1o/5lUpTEruBze7g== + dependencies: + "@parcel/diagnostic" "2.3.2" + "@parcel/hash" "2.3.2" + "@parcel/plugin" "2.3.2" + nullthrows "^1.1.1" + posthtml "^0.16.5" + posthtml-parser "^0.10.1" + posthtml-render "^3.0.0" + semver "^5.7.1" + +"@parcel/types@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/types/-/types-2.3.2.tgz#7eb6925bc852a518dd75b742419e51292418769f" + integrity sha512-C77Ct1xNM7LWjPTfe/dQ/9rq1efdsX5VJu2o8/TVi6qoFh64Wp/c5/vCHwKInOTBZUTchVO6z4PGJNIZoUVJuA== + dependencies: + "@parcel/cache" "2.3.2" + "@parcel/diagnostic" "2.3.2" + "@parcel/fs" "2.3.2" + "@parcel/package-manager" "2.3.2" + "@parcel/source-map" "^2.0.0" + "@parcel/workers" "2.3.2" + utility-types "^3.10.0" + +"@parcel/utils@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/utils/-/utils-2.3.2.tgz#4aab052fc9f3227811a504da7b9663ca75004f55" + integrity sha512-xzZ+0vWhrXlLzGoz7WlANaO5IPtyWGeCZruGtepUL3yheRWb1UU4zFN9xz7Z+j++Dmf1Fgkc3qdk/t4O8u9HLQ== + dependencies: + "@parcel/codeframe" "2.3.2" + "@parcel/diagnostic" "2.3.2" + "@parcel/hash" "2.3.2" + "@parcel/logger" "2.3.2" + "@parcel/markdown-ansi" "2.3.2" + "@parcel/source-map" "^2.0.0" + chalk "^4.1.0" + +"@parcel/watcher@^2.0.0": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@parcel/watcher/-/watcher-2.0.5.tgz#f913a54e1601b0aac972803829b0eece48de215b" + integrity sha512-x0hUbjv891omnkcHD7ZOhiyyUqUUR6MNjq89JhEI3BxppeKWAm6NPQsqqRrAkCJBogdT/o/My21sXtTI9rJIsw== + dependencies: + node-addon-api "^3.2.1" + node-gyp-build "^4.3.0" + +"@parcel/workers@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/workers/-/workers-2.3.2.tgz#05ffa2da9169bfb83335892c2b8abce55686ceb1" + integrity sha512-JbOm+Ceuyymd1SuKGgodC2EXAiPuFRpaNUSJpz3NAsS3lVIt2TDAPMOWBivS7sML/KltspUfl/Q9YwO0TPUFNw== + dependencies: + "@parcel/diagnostic" "2.3.2" + "@parcel/logger" "2.3.2" + "@parcel/types" "2.3.2" + "@parcel/utils" "2.3.2" + chrome-trace-event "^1.0.2" + nullthrows "^1.1.1" + +"@swc/helpers@^0.2.11": + version "0.2.14" + resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.2.14.tgz#20288c3627442339dd3d743c944f7043ee3590f0" + integrity sha512-wpCQMhf5p5GhNg2MmGKXzUNwxe7zRiCsmqYsamez2beP7mKPCSiu+BjZcdN95yYSzO857kr0VfQewmGpS77nqA== + +"@trysound/sax@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" + integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== + +"@types/node@^17.0.21": + version "17.0.21" + resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.21.tgz#864b987c0c68d07b4345845c3e63b75edd143644" + integrity sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ== + +"@types/parse-json@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" + integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== + +"@types/yargs-parser@*": + version "21.0.0" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" + integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== + +"@types/yargs@^17.0.9": + version "17.0.9" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.9.tgz#f1f931a4e5ae2c0134dea10f501088636a50b46a" + integrity sha512-Ci8+4/DOtkHRylcisKmVMtmVO5g7weUVCKcsu1sJvF1bn0wExTmbHmhFKj7AnEm0de800iovGhdSKzYnzbaHpg== + dependencies: + "@types/yargs-parser" "*" + +abortcontroller-polyfill@^1.1.9: + version "1.7.3" + resolved "https://registry.yarnpkg.com/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.3.tgz#1b5b487bd6436b5b764fd52a612509702c3144b5" + integrity sha512-zetDJxd89y3X99Kvo4qFx8GKlt6GsvN3UcRZHwU6iFA/0KiOmhkTVhe8oRoTBiTVPZu09x3vCra47+w8Yz1+2Q== + +acorn-walk@^8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" + integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== + +acorn@^8.5.0, acorn@^8.7.0: + version "8.7.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.0.tgz#90951fde0f8f09df93549481e5fc141445b791cf" + integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ== + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +base-x@^3.0.8: + version "3.0.9" + resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.9.tgz#6349aaabb58526332de9f60995e548a53fe21320" + integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ== + dependencies: + safe-buffer "^5.0.1" + +boolbase@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= + +browserslist@^4.0.0, browserslist@^4.16.6, browserslist@^4.6.6: + version "4.19.3" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.19.3.tgz#29b7caad327ecf2859485f696f9604214bedd383" + integrity sha512-XK3X4xtKJ+Txj8G5c30B4gsm71s69lqXlkYui4s6EkKxuv49qjYlY6oVd+IFJ73d4YymtM3+djvvt/R/iJwwDg== + dependencies: + caniuse-lite "^1.0.30001312" + electron-to-chromium "^1.4.71" + escalade "^3.1.1" + node-releases "^2.0.2" + picocolors "^1.0.0" + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +caniuse-api@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" + integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== + dependencies: + browserslist "^4.0.0" + caniuse-lite "^1.0.0" + lodash.memoize "^4.1.2" + lodash.uniq "^4.5.0" + +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001312: + version "1.0.30001313" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001313.tgz#a380b079db91621e1b7120895874e2fd62ed2e2f" + integrity sha512-rI1UN0koZUiKINjysQDuRi2VeSCce3bYJNmDcj3PIKREiAmjakugBul1QSkg/fPrlULYl6oWfGg3PbgOSY9X4Q== + +chalk@^2.0.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.1.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chrome-trace-event@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" + integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== + +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + +clone@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" + integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +colord@^2.9.1: + version "2.9.2" + resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.2.tgz#25e2bacbbaa65991422c07ea209e2089428effb1" + integrity sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ== + +commander@^2.20.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@^7.0.0, commander@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + +cosmiconfig@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d" + integrity sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.2.1" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.10.0" + +css-declaration-sorter@^6.0.3: + version "6.1.4" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.1.4.tgz#b9bfb4ed9a41f8dcca9bf7184d849ea94a8294b4" + integrity sha512-lpfkqS0fctcmZotJGhnxkIyJWvBXgpyi2wsFd4J8VB7wzyrT6Ch/3Q+FMNJpjK4gu1+GN5khOnpU2ZVKrLbhCw== + dependencies: + timsort "^0.3.0" + +css-select@^4.1.3: + version "4.2.1" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.2.1.tgz#9e665d6ae4c7f9d65dbe69d0316e3221fb274cdd" + integrity sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ== + dependencies: + boolbase "^1.0.0" + css-what "^5.1.0" + domhandler "^4.3.0" + domutils "^2.8.0" + nth-check "^2.0.1" + +css-tree@^1.1.2, css-tree@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" + integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== + dependencies: + mdn-data "2.0.14" + source-map "^0.6.1" + +css-what@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-5.1.0.tgz#3f7b707aadf633baf62c2ceb8579b545bb40f7fe" + integrity sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw== + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +cssnano-preset-default@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.2.0.tgz#2579d38b9217746f2cf9f938954a91e00418ded6" + integrity sha512-3N5Vcptj2pqVKpHVqH6ezOJvqikR2PdLTbTrsrhF61FbLRQuujAqZ2sKN5rvcMsb7hFjrNnjZT8CGEkxoN/Pwg== + dependencies: + css-declaration-sorter "^6.0.3" + cssnano-utils "^3.1.0" + postcss-calc "^8.2.3" + postcss-colormin "^5.3.0" + postcss-convert-values "^5.1.0" + postcss-discard-comments "^5.1.0" + postcss-discard-duplicates "^5.1.0" + postcss-discard-empty "^5.1.0" + postcss-discard-overridden "^5.1.0" + postcss-merge-longhand "^5.1.0" + postcss-merge-rules "^5.1.0" + postcss-minify-font-values "^5.1.0" + postcss-minify-gradients "^5.1.0" + postcss-minify-params "^5.1.0" + postcss-minify-selectors "^5.2.0" + postcss-normalize-charset "^5.1.0" + postcss-normalize-display-values "^5.1.0" + postcss-normalize-positions "^5.1.0" + postcss-normalize-repeat-style "^5.1.0" + postcss-normalize-string "^5.1.0" + postcss-normalize-timing-functions "^5.1.0" + postcss-normalize-unicode "^5.1.0" + postcss-normalize-url "^5.1.0" + postcss-normalize-whitespace "^5.1.0" + postcss-ordered-values "^5.1.0" + postcss-reduce-initial "^5.1.0" + postcss-reduce-transforms "^5.1.0" + postcss-svgo "^5.1.0" + postcss-unique-selectors "^5.1.0" + +cssnano-utils@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-3.1.0.tgz#95684d08c91511edfc70d2636338ca37ef3a6861" + integrity sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA== + +cssnano@^5.0.15: + version "5.1.0" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.1.0.tgz#cf977d660a5824d0d5542639ed1d4045afd84cbe" + integrity sha512-wWxave1wMlThGg4ueK98jFKaNqXnQd1nVZpSkQ9XvR+YymlzP1ofWqES1JkHtI250LksP9z5JH+oDcrKDJezAg== + dependencies: + cssnano-preset-default "^5.2.0" + lilconfig "^2.0.3" + yaml "^1.10.2" + +csso@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" + integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== + dependencies: + css-tree "^1.1.2" + +detect-libc@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= + +dom-serializer@^1.0.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.3.2.tgz#6206437d32ceefaec7161803230c7a20bc1b4d91" + integrity sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.2.0" + entities "^2.0.0" + +domelementtype@^2.0.1, domelementtype@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57" + integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A== + +domhandler@^4.2.0, domhandler@^4.2.2, domhandler@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.0.tgz#16c658c626cf966967e306f966b431f77d4a5626" + integrity sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g== + dependencies: + domelementtype "^2.2.0" + +domutils@^2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" + integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== + dependencies: + dom-serializer "^1.0.1" + domelementtype "^2.2.0" + domhandler "^4.2.0" + +dotenv-expand@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0" + integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA== + +dotenv@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-7.0.0.tgz#a2be3cd52736673206e8a85fb5210eea29628e7c" + integrity sha512-M3NhsLbV1i6HuGzBUH8vXrtxOk+tWmzWKDMbAVSUp3Zsjm7ywFeuwrUXhmhQyRK1q5B5GGy7hcXPbj3bnfZg2g== + +electron-to-chromium@^1.4.71: + version "1.4.75" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.75.tgz#d1ad9bb46f2f1bf432118c2be21d27ffeae82fdd" + integrity sha512-LxgUNeu3BVU7sXaKjUDD9xivocQLxFtq6wgERrutdY/yIOps3ODOZExK1jg8DTEg4U8TUCb5MLGeWFOYuxjF3Q== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +entities@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" + integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== + +entities@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/entities/-/entities-3.0.1.tgz#2b887ca62585e96db3903482d336c1006c3001d4" + integrity sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q== + +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +esbuild-android-64@0.14.24: + version "0.14.24" + resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.14.24.tgz#d826ac29a9b983dc200a0ca407c34c64d2480b38" + integrity sha512-mbhO8NepmUZ84cP/axGR8IzH1Trth+uknEJzz36cZl8FfMA3ooaiBsMyzJ35s70QEAreiEt1XzltZ4pcfOsVUA== + +esbuild-android-arm64@0.14.24: + version "0.14.24" + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.24.tgz#f8aaf28dbd4d7b80d30b0323c7a645e3a12b5de9" + integrity sha512-wM3iuLZjaA9BhlMOH6mWvTGXwPJsLOuAbMkGiczSY+NLeG2WF1ouCcuhFz2jZCbnw9lnI30QWgzebNBQi9K8SA== + +esbuild-darwin-64@0.14.24: + version "0.14.24" + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.24.tgz#9f6e4b94066e9c5e521b19176a85edd7f94ac074" + integrity sha512-GDaCV5e9mdrJkrGT91W8WCqQ/+fvB/nsULIu4l7Ik7dlQd5uB4qeKRcFFl5Vz5ODK/C/UWZmKmMQWokZsLNWLQ== + +esbuild-darwin-arm64@0.14.24: + version "0.14.24" + resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.24.tgz#6b8ce7f2a3e1210cc672c73d658669e5f88b8efb" + integrity sha512-reU7/vEdXsg+zZWxKL/gaHsJkGMCC49Y4pqbsaBmx0YAF00K0+V7w5BHBF+iY5jvtJ1ZCYRHTN/iAbYVOnoV0w== + +esbuild-freebsd-64@0.14.24: + version "0.14.24" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.24.tgz#b586d8aa290bfcdf0aa73fdfcf64c092d49795f2" + integrity sha512-Mp35Rz/XoixG7Uka6l54hU/XUxAEwQozgKoHPusJzX+Fu1vANil0Ypos0RJkidu7skSkd0xisNIT+gtD36BxpA== + +esbuild-freebsd-arm64@0.14.24: + version "0.14.24" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.24.tgz#4e7098de07791089b6ef6b4f17a8ce6124da7bec" + integrity sha512-+tf4a4zYaHP1XXPt286mxOc2bmj13K57GZYjqYz/G3c3sgNXa0JBkcPlUATIj96WfXhWM115n3nHe9wF88+ZGQ== + +esbuild-linux-32@0.14.24: + version "0.14.24" + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.24.tgz#afe7345f3e8ee58eede36c0254e128924680b305" + integrity sha512-8jMZErn5aLnlSQqzK365yoWRr67ZkGNcoTmk1CK5Bk1EB9g7uwCfdZsmWcclLWPGkIhMbdk4OvzQ+Wp0popwWA== + +esbuild-linux-64@0.14.24: + version "0.14.24" + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.24.tgz#ce7b95e8ed96076dcb329d1d34e4b9ef084e02cf" + integrity sha512-D/JCsk9OY2IZj+fkU74pKD4rD2pjeiYUbze1cS5D6+U0pz8j71GjZY5UkfwHhBBbNyPe6DPCyex97txQUlHwWw== + +esbuild-linux-arm64@0.14.24: + version "0.14.24" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.24.tgz#f8aee4eb78309fd3c064e86393a698e33908e8ec" + integrity sha512-DypWEDQLE+PoHGMa4FLcmKvS+yQLsYlsN03R496rTpDOiVQGrRdo0LbYtf+uHpDxa1KRrHZsQim6n8m3VBHP6g== + +esbuild-linux-arm@0.14.24: + version "0.14.24" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.24.tgz#eaccc0a4d7d17e7290e5b20c383e6969c6769bf7" + integrity sha512-N+vvGpJAUWv3j+YZGOMEtrHwrrSG582TuAThBwoRE7d2N4zFE2WQBCiSYaAVckMQhvMOPqnCdqeTDUse5nlKTw== + +esbuild-linux-mips64le@0.14.24: + version "0.14.24" + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.24.tgz#9db94b62bbcbaad6229087ea27a6d7dc3fc878d6" + integrity sha512-eMk9pEHba1yd5bOuPZUJfFucigvysdcE2d/wV4M0eUdb/VjyH9fcGqz8byvSjmYSOt3WCn/V4jLVI+pwDSHWYw== + +esbuild-linux-ppc64le@0.14.24: + version "0.14.24" + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.24.tgz#194d59a5ebfcdbfc7e710d13893e6c62216baa77" + integrity sha512-4vQ/Y6EV5Z2BjO7RdpEyTCv702WmOPc95d2CbUcFvg78FpGQAmrbIrHXu/yX4+rdUU6vMNBn3M+7M7/lxmxjjg== + +esbuild-linux-riscv64@0.14.24: + version "0.14.24" + resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.24.tgz#0d8cbbcd2f3b7cc4365ebc8fac8d00fdc95691d2" + integrity sha512-pAN9/+NZ487Wo9PmlOM6Ra95SrhG8JQw7fCgi3z7dUufwTApTNTPGs5UOMD4Bmorju+DeGb0f0GddLaeabvqDg== + +esbuild-linux-s390x@0.14.24: + version "0.14.24" + resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.24.tgz#460e726f5d827f1171f9eac8c9bbcad8e6574ec5" + integrity sha512-ZR+VMHP2WS3022x2sK/85cBfKGgPalIZzpquDWjra9nUb+WdEzuK9i9bRsstLmjIPs3uIkGfe6xXUh/7PNLllw== + +esbuild-netbsd-64@0.14.24: + version "0.14.24" + resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.24.tgz#8f6f4c68b8e84e1e011330096f118013cc275601" + integrity sha512-1PzXU++e0PEaSuGpkhrVb+fDUw9mSp4laY9KRsjJkAuXPDj0rHz7KxK7CAbzY/ucufeIR9Ca8/oMpdVyWdaOGw== + +esbuild-openbsd-64@0.14.24: + version "0.14.24" + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.24.tgz#6fbfc089103d154d74d4ea5a3aefc2844189094a" + integrity sha512-PvXh7JJAFM1kR87XDWbRrUkaOGVMS6Dq/IRXE2E02maio21JELk/jNRijTe81ztr8v+8K9osB3rG9zKqIdTxhQ== + +esbuild-sunos-64@0.14.24: + version "0.14.24" + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.24.tgz#09931dbbc610f88feda1c071f2844e7d8867f46e" + integrity sha512-5iYi76kGQdyCqvSUknqjTZ0T19KvQD6hiklPAY6kVoQ1YoDUGCGILRI9eM/3zLNLG1bUFgcdJ2ktaBxwyXuHyA== + +esbuild-windows-32@0.14.24: + version "0.14.24" + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.24.tgz#3c8dddffaec6dce9a3ac8ef2bec939ec5af17e68" + integrity sha512-oDxcNu4P1FWTk2ompKB0uKHfxYw1QuubH189+PlfrrWT9tVu+mxT9dSwJu2erfUDz5dnr6h8rgkg95NGboeJxg== + +esbuild-windows-64@0.14.24: + version "0.14.24" + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.24.tgz#e97081ee16d51c5a210cd1de15454689ac09fc8b" + integrity sha512-0uxXF1yLcGEM2es0OMDgQYQGZXQEEIdq8cG3IWhY2GGfFRLXpMgic1iUE+SKCh+b82t1ftUVoyG0zIFRn5NOIA== + +esbuild-windows-arm64@0.14.24: + version "0.14.24" + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.24.tgz#0fcff2b58c772874f8dc52638557f817609ed699" + integrity sha512-unwaYRaIK/4OaZm0jnM3pLKMPEjaQqmT5teTciSZ86VYaiYZF27Ki7BW7R5ngk27gIw0ovIfUcn9DhJgp7qAlw== + +esbuild@^0.14.24: + version "0.14.24" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.24.tgz#543899cf9ff0ebe206dc3de2ac18b9122d9f5697" + integrity sha512-NjfmycVQqY0+iKXoHXsvMAKx4XF/bD/dDm8pK6C/3aJO/i/uby+7AR4z8vu0qkiihkB5Y43+9BjdY2MGnswC/A== + optionalDependencies: + esbuild-android-64 "0.14.24" + esbuild-android-arm64 "0.14.24" + esbuild-darwin-64 "0.14.24" + esbuild-darwin-arm64 "0.14.24" + esbuild-freebsd-64 "0.14.24" + esbuild-freebsd-arm64 "0.14.24" + esbuild-linux-32 "0.14.24" + esbuild-linux-64 "0.14.24" + esbuild-linux-arm "0.14.24" + esbuild-linux-arm64 "0.14.24" + esbuild-linux-mips64le "0.14.24" + esbuild-linux-ppc64le "0.14.24" + esbuild-linux-riscv64 "0.14.24" + esbuild-linux-s390x "0.14.24" + esbuild-netbsd-64 "0.14.24" + esbuild-openbsd-64 "0.14.24" + esbuild-sunos-64 "0.14.24" + esbuild-windows-32 "0.14.24" + esbuild-windows-64 "0.14.24" + esbuild-windows-arm64 "0.14.24" + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-port@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/get-port/-/get-port-4.2.0.tgz#e37368b1e863b7629c43c5a323625f95cf24b119" + integrity sha512-/b3jarXkH8KJoOMQc3uVGHASwGLPq3gSFJ7tgJm2diza+bydJPTGOibin2steecKeOylE8oY2JERlVWkAJO6yw== + +globals@^13.2.0: + version "13.12.1" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.12.1.tgz#ec206be932e6c77236677127577aa8e50bf1c5cb" + integrity sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw== + dependencies: + type-fest "^0.20.2" + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +htmlnano@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/htmlnano/-/htmlnano-2.0.0.tgz#07376faa064f7e1e832dfd91e1a9f606b0bc9b78" + integrity sha512-thKQfhcp2xgtsWNE27A2bliEeqVL5xjAgGn0wajyttvFFsvFWWah1ntV9aEX61gz0T6MBQ5xK/1lXuEumhJTcg== + dependencies: + cosmiconfig "^7.0.1" + posthtml "^0.16.5" + timsort "^0.3.0" + +htmlparser2@^7.1.1: + version "7.2.0" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-7.2.0.tgz#8817cdea38bbc324392a90b1990908e81a65f5a5" + integrity sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.2.2" + domutils "^2.8.0" + entities "^3.0.1" + +import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-json@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-json/-/is-json-2.0.1.tgz#6be166d144828a131d686891b983df62c39491ff" + integrity sha1-a+Fm0USCihMdaGiRuYPfYsOUkf8= + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +json-parse-even-better-errors@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json-source-map@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/json-source-map/-/json-source-map-0.6.1.tgz#e0b1f6f4ce13a9ad57e2ae165a24d06e62c79a0f" + integrity sha512-1QoztHPsMQqhDq0hlXY5ZqcEdUzxQEIxgFkKl4WUp2pgShObl+9ovi4kRh2TfvAfxAoHOJ9vIMEqk3k4iex7tg== + +json5@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" + integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== + dependencies: + minimist "^1.2.5" + +lilconfig@^2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.4.tgz#f4507d043d7058b380b6a8f5cb7bcd4b34cee082" + integrity sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA== + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +lmdb@^2.0.2: + version "2.2.4" + resolved "https://registry.yarnpkg.com/lmdb/-/lmdb-2.2.4.tgz#6494d5a1d1db152e0be759edcfa06893e4cbdb53" + integrity sha512-gto+BB2uEob8qRiTlOq+R3uX0YNHsX9mjxj9Sbdue/LIKqu6IlZjrsjKeGyOMquc/474GEqFyX2pdytpydp0rQ== + dependencies: + msgpackr "^1.5.4" + nan "^2.14.2" + node-gyp-build "^4.2.3" + ordered-binary "^1.2.4" + weak-lru-cache "^1.2.2" + +lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= + +mdn-data@2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" + integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== + +minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + +msgpackr-extract@^1.0.14: + version "1.0.16" + resolved "https://registry.yarnpkg.com/msgpackr-extract/-/msgpackr-extract-1.0.16.tgz#701c4f6e6f25c100ae84557092274e8fffeefe45" + integrity sha512-fxdRfQUxPrL/TizyfYfMn09dK58e+d65bRD/fcaVH4052vj30QOzzqxcQIS7B0NsqlypEQ/6Du3QmP2DhWFfCA== + dependencies: + nan "^2.14.2" + node-gyp-build "^4.2.3" + +msgpackr@^1.5.1, msgpackr@^1.5.4: + version "1.5.4" + resolved "https://registry.yarnpkg.com/msgpackr/-/msgpackr-1.5.4.tgz#2b6ea6cb7d79c0ad98fc76c68163c48eda50cf0d" + integrity sha512-Z7w5Jg+2Q9z9gJxeM68d7tSuWZZGnFIRhZnyqcZCa/1dKkhOCNvR1TUV3zzJ3+vj78vlwKRzUgVDlW4jiSOeDA== + optionalDependencies: + msgpackr-extract "^1.0.14" + +nan@^2.14.2: + version "2.15.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee" + integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== + +nanoid@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.1.tgz#6347a18cac88af88f58af0b3594b723d5e99bb35" + integrity sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw== + +node-addon-api@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161" + integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A== + +node-gyp-build@^4.2.3, node-gyp-build@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.3.0.tgz#9f256b03e5826150be39c764bf51e993946d71a3" + integrity sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q== + +node-releases@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.2.tgz#7139fe71e2f4f11b47d4d2986aaf8c48699e0c01" + integrity sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg== + +normalize-url@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" + integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== + +nth-check@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.1.tgz#2efe162f5c3da06a28959fbd3db75dbeea9f0fc2" + integrity sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w== + dependencies: + boolbase "^1.0.0" + +nullthrows@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/nullthrows/-/nullthrows-1.1.1.tgz#7818258843856ae971eae4208ad7d7eb19a431b1" + integrity sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw== + +ordered-binary@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/ordered-binary/-/ordered-binary-1.2.4.tgz#51d3a03af078a0bdba6c7bc8f4fedd1f5d45d83e" + integrity sha512-A/csN0d3n+igxBPfUrjbV5GC69LWj2pjZzAAeeHXLukQ4+fytfP4T1Lg0ju7MSPSwq7KtHkGaiwO8URZN5IpLg== + +parcel@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/parcel/-/parcel-2.3.2.tgz#d1cb475f27edae981edea7a7104e04d3a35a87ca" + integrity sha512-4jhgoBcQaiGKmnmBvNyKyOvZrxCgzgUzdEoVup/fRCOP99hNmvYIN5IErIIJxsU9ObcG/RGCFF8wa4kVRsWfIg== + dependencies: + "@parcel/config-default" "2.3.2" + "@parcel/core" "2.3.2" + "@parcel/diagnostic" "2.3.2" + "@parcel/events" "2.3.2" + "@parcel/fs" "2.3.2" + "@parcel/logger" "2.3.2" + "@parcel/package-manager" "2.3.2" + "@parcel/reporter-cli" "2.3.2" + "@parcel/reporter-dev-server" "2.3.2" + "@parcel/utils" "2.3.2" + chalk "^4.1.0" + commander "^7.0.0" + get-port "^4.2.0" + v8-compile-cache "^2.0.0" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-json@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + +postcss-calc@^8.2.3: + version "8.2.4" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-8.2.4.tgz#77b9c29bfcbe8a07ff6693dc87050828889739a5" + integrity sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q== + dependencies: + postcss-selector-parser "^6.0.9" + postcss-value-parser "^4.2.0" + +postcss-colormin@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-5.3.0.tgz#3cee9e5ca62b2c27e84fce63affc0cfb5901956a" + integrity sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg== + dependencies: + browserslist "^4.16.6" + caniuse-api "^3.0.0" + colord "^2.9.1" + postcss-value-parser "^4.2.0" + +postcss-convert-values@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-5.1.0.tgz#f8d3abe40b4ce4b1470702a0706343eac17e7c10" + integrity sha512-GkyPbZEYJiWtQB0KZ0X6qusqFHUepguBCNFi9t5JJc7I2OTXG7C0twbTLvCfaKOLl3rSXmpAwV7W5txd91V84g== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-discard-comments@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-5.1.0.tgz#87be4e0953bf599935837b940c701f8d4eca7d0b" + integrity sha512-L0IKF4jAshRyn03SkEO6ar/Ipz2oLywVbg2THf2EqqdNkBwmVMxuTR/RoAltOw4piiaLt3gCAdrbAqmTBInmhg== + +postcss-discard-duplicates@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz#9eb4fe8456706a4eebd6d3b7b777d07bad03e848" + integrity sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw== + +postcss-discard-empty@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-5.1.0.tgz#7f51b16cd1b89f8180bbc7cee34d6cbabf2ef810" + integrity sha512-782T/buGgb3HOuHOJAHpdyKzAAKsv/BxWqsutnZ+QsiHEcDkY7v+6WWdturuBiSal6XMOO1p1aJvwXdqLD5vhA== + +postcss-discard-overridden@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz#7e8c5b53325747e9d90131bb88635282fb4a276e" + integrity sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw== + +postcss-merge-longhand@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.1.0.tgz#f716bffbf0bdfbde6ea78c36088e21559f8a0a95" + integrity sha512-Gr46srN2tsLD8fudKYoHO56RG0BLQ2nsBRnSZGY04eNBPwTeWa9KeHrbL3tOLAHyB2aliikycPH2TMJG1U+W6g== + dependencies: + postcss-value-parser "^4.2.0" + stylehacks "^5.1.0" + +postcss-merge-rules@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-5.1.0.tgz#a2d5117eba09c8686a5471d97bd9afcf30d1b41f" + integrity sha512-NecukEJovQ0mG7h7xV8wbYAkXGTO3MPKnXvuiXzOKcxoOodfTTKYjeo8TMhAswlSkjcPIBlnKbSFcTuVSDaPyQ== + dependencies: + browserslist "^4.16.6" + caniuse-api "^3.0.0" + cssnano-utils "^3.1.0" + postcss-selector-parser "^6.0.5" + +postcss-minify-font-values@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz#f1df0014a726083d260d3bd85d7385fb89d1f01b" + integrity sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-minify-gradients@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-5.1.0.tgz#de0260a67a13b7b321a8adc3150725f2c6612377" + integrity sha512-J/TMLklkONn3LuL8wCwfwU8zKC1hpS6VcxFkNUNjmVt53uKqrrykR3ov11mdUYyqVMEx67slMce0tE14cE4DTg== + dependencies: + colord "^2.9.1" + cssnano-utils "^3.1.0" + postcss-value-parser "^4.2.0" + +postcss-minify-params@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-5.1.0.tgz#e0b1f4e05cfd396682f612856485907e4064f25e" + integrity sha512-q67dcts4Hct6x8+JmhBgctHkbvUsqGIg2IItenjE63iZXMbhjr7AlVZkNnKtIGt/1Wsv7p/7YzeSII6Q+KPXRg== + dependencies: + browserslist "^4.16.6" + cssnano-utils "^3.1.0" + postcss-value-parser "^4.2.0" + +postcss-minify-selectors@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-5.2.0.tgz#17c2be233e12b28ffa8a421a02fc8b839825536c" + integrity sha512-vYxvHkW+iULstA+ctVNx0VoRAR4THQQRkG77o0oa4/mBS0OzGvvzLIvHDv/nNEM0crzN2WIyFU5X7wZhaUK3RA== + dependencies: + postcss-selector-parser "^6.0.5" + +postcss-normalize-charset@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz#9302de0b29094b52c259e9b2cf8dc0879879f0ed" + integrity sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg== + +postcss-normalize-display-values@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz#72abbae58081960e9edd7200fcf21ab8325c3da8" + integrity sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-positions@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-5.1.0.tgz#902a7cb97cf0b9e8b1b654d4a43d451e48966458" + integrity sha512-8gmItgA4H5xiUxgN/3TVvXRoJxkAWLW6f/KKhdsH03atg0cB8ilXnrB5PpSshwVu/dD2ZsRFQcR1OEmSBDAgcQ== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-repeat-style@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.0.tgz#f6d6fd5a54f51a741cc84a37f7459e60ef7a6398" + integrity sha512-IR3uBjc+7mcWGL6CtniKNQ4Rr5fTxwkaDHwMBDGGs1x9IVRkYIT/M4NelZWkAOBdV6v3Z9S46zqaKGlyzHSchw== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-string@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz#411961169e07308c82c1f8c55f3e8a337757e228" + integrity sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-timing-functions@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz#d5614410f8f0b2388e9f240aa6011ba6f52dafbb" + integrity sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-unicode@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.0.tgz#3d23aede35e160089a285e27bf715de11dc9db75" + integrity sha512-J6M3MizAAZ2dOdSjy2caayJLQT8E8K9XjLce8AUQMwOrCvjCHv24aLC/Lps1R1ylOfol5VIDMaM/Lo9NGlk1SQ== + dependencies: + browserslist "^4.16.6" + postcss-value-parser "^4.2.0" + +postcss-normalize-url@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz#ed9d88ca82e21abef99f743457d3729a042adcdc" + integrity sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew== + dependencies: + normalize-url "^6.0.1" + postcss-value-parser "^4.2.0" + +postcss-normalize-whitespace@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.0.tgz#aed8b4580c9ad6e8eac034177291187ea16a059c" + integrity sha512-7O1FanKaJkpWFyCghFzIkLhehujV/frGkdofGLwhg5upbLyGsSfiTcZAdSzoPsSUgyPCkBkNMeWR8yVgPdQybg== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-ordered-values@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-5.1.0.tgz#04ef429e0991b0292bc918b135cd4c038f7b889f" + integrity sha512-wU4Z4D4uOIH+BUKkYid36gGDJNQtkVJT7Twv8qH6UyfttbbJWyw4/xIPuVEkkCtQLAJ0EdsNSh8dlvqkXb49TA== + dependencies: + cssnano-utils "^3.1.0" + postcss-value-parser "^4.2.0" + +postcss-reduce-initial@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-5.1.0.tgz#fc31659ea6e85c492fb2a7b545370c215822c5d6" + integrity sha512-5OgTUviz0aeH6MtBjHfbr57tml13PuedK/Ecg8szzd4XRMbYxH4572JFG067z+FqBIf6Zp/d+0581glkvvWMFw== + dependencies: + browserslist "^4.16.6" + caniuse-api "^3.0.0" + +postcss-reduce-transforms@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz#333b70e7758b802f3dd0ddfe98bb1ccfef96b6e9" + integrity sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5, postcss-selector-parser@^6.0.9: + version "6.0.9" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.9.tgz#ee71c3b9ff63d9cd130838876c13a2ec1a992b2f" + integrity sha512-UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-svgo@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-5.1.0.tgz#0a317400ced789f233a28826e77523f15857d80d" + integrity sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA== + dependencies: + postcss-value-parser "^4.2.0" + svgo "^2.7.0" + +postcss-unique-selectors@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-5.1.0.tgz#70a945da1b0599d00f617222a44ba1d82a676694" + integrity sha512-LmUhgGobtpeVJJHuogzjLRwJlN7VH+BL5c9GKMVJSS/ejoyePZkXvNsYUtk//F6vKOGK86gfRS0xH7fXQSDtvA== + dependencies: + postcss-selector-parser "^6.0.5" + +postcss-value-parser@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" + integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== + +postcss@^8.4.5: + version "8.4.7" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.7.tgz#f99862069ec4541de386bf57f5660a6c7a0875a8" + integrity sha512-L9Ye3r6hkkCeOETQX6iOaWZgjp3LL6Lpqm6EtgbKrgqGGteRMNb9vzBfRL96YOSu8o7x3MfIH9Mo5cPJFGrW6A== + dependencies: + nanoid "^3.3.1" + picocolors "^1.0.0" + source-map-js "^1.0.2" + +posthtml-parser@^0.10.1: + version "0.10.2" + resolved "https://registry.yarnpkg.com/posthtml-parser/-/posthtml-parser-0.10.2.tgz#df364d7b179f2a6bf0466b56be7b98fd4e97c573" + integrity sha512-PId6zZ/2lyJi9LiKfe+i2xv57oEjJgWbsHGGANwos5AvdQp98i6AtamAl8gzSVFGfQ43Glb5D614cvZf012VKg== + dependencies: + htmlparser2 "^7.1.1" + +posthtml-parser@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/posthtml-parser/-/posthtml-parser-0.11.0.tgz#25d1c7bf811ea83559bc4c21c189a29747a24b7a" + integrity sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw== + dependencies: + htmlparser2 "^7.1.1" + +posthtml-render@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/posthtml-render/-/posthtml-render-3.0.0.tgz#97be44931496f495b4f07b99e903cc70ad6a3205" + integrity sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA== + dependencies: + is-json "^2.0.1" + +posthtml@^0.16.4, posthtml@^0.16.5: + version "0.16.6" + resolved "https://registry.yarnpkg.com/posthtml/-/posthtml-0.16.6.tgz#e2fc407f67a64d2fa3567afe770409ffdadafe59" + integrity sha512-JcEmHlyLK/o0uGAlj65vgg+7LIms0xKXe60lcDOTU7oVX/3LuEuLwrQpW3VJ7de5TaFKiW4kWkaIpJL42FEgxQ== + dependencies: + posthtml-parser "^0.11.0" + posthtml-render "^3.0.0" + +react-refresh@^0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.9.0.tgz#71863337adc3e5c2f8a6bfddd12ae3bfe32aafbf" + integrity sha512-Gvzk7OZpiqKSkxsQvO/mbTN1poglhmAV7gR/DdIrRrSMXraRQQlfikRJOr3Nb9GTMPC5kof948Zy6jJZIFtDvQ== + +regenerator-runtime@^0.13.7: + version "0.13.9" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" + integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +safe-buffer@^5.0.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +semver@^5.7.0, semver@^5.7.1: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +source-map-js@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" + integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== + +source-map-support@~0.5.20: + version "0.5.21" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.6.0, source-map@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@~0.7.2: + version "0.7.3" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" + integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== + +stable@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" + integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== + +string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +stylehacks@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-5.1.0.tgz#a40066490ca0caca04e96c6b02153ddc39913520" + integrity sha512-SzLmvHQTrIWfSgljkQCw2++C9+Ne91d/6Sp92I8c5uHTcy/PgeHamwITIbBW9wnFTY/3ZfSXR9HIL6Ikqmcu6Q== + dependencies: + browserslist "^4.16.6" + postcss-selector-parser "^6.0.4" + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +svgo@^2.4.0, svgo@^2.7.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.8.0.tgz#4ff80cce6710dc2795f0c7c74101e6764cfccd24" + integrity sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg== + dependencies: + "@trysound/sax" "0.2.0" + commander "^7.2.0" + css-select "^4.1.3" + css-tree "^1.1.3" + csso "^4.2.0" + picocolors "^1.0.0" + stable "^0.1.8" + +terser@^5.2.0: + version "5.12.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.12.0.tgz#728c6bff05f7d1dcb687d8eace0644802a9dae8a" + integrity sha512-R3AUhNBGWiFc77HXag+1fXpAxTAFRQTJemlJKjAgD9r8xXTpjNKqIXwHM/o7Rh+O0kUJtS3WQVdBeMKFk5sw9A== + dependencies: + acorn "^8.5.0" + commander "^2.20.0" + source-map "~0.7.2" + source-map-support "~0.5.20" + +timsort@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" + integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= + +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + +typescript@>=3.0.0: + version "4.6.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.6.2.tgz#fe12d2727b708f4eef40f51598b3398baa9611d4" + integrity sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg== + +util-deprecate@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +utility-types@^3.10.0: + version "3.10.0" + resolved "https://registry.yarnpkg.com/utility-types/-/utility-types-3.10.0.tgz#ea4148f9a741015f05ed74fd615e1d20e6bed82b" + integrity sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg== + +v8-compile-cache@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" + integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== + +vm2@^3.9.9: + version "3.9.9" + resolved "https://registry.yarnpkg.com/vm2/-/vm2-3.9.9.tgz#c0507bc5fbb99388fad837d228badaaeb499ddc5" + integrity sha512-xwTm7NLh/uOjARRBs8/95H0e8fT3Ukw5D/JJWhxMbhKzNh1Nu981jQKvkep9iKYNxzlVrdzD0mlBGkDKZWprlw== + dependencies: + acorn "^8.7.0" + acorn-walk "^8.2.0" + +weak-lru-cache@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/weak-lru-cache/-/weak-lru-cache-1.2.2.tgz#fdbb6741f36bae9540d12f480ce8254060dccd19" + integrity sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw== + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +xxhash-wasm@^0.4.2: + version "0.4.2" + resolved "https://registry.yarnpkg.com/xxhash-wasm/-/xxhash-wasm-0.4.2.tgz#752398c131a4dd407b5132ba62ad372029be6f79" + integrity sha512-/eyHVRJQCirEkSZ1agRSCwriMhwlyUcFkXD5TPVSLP+IPzjsqMVzZwdoczLp1SoQU0R3dxz1RpIK+4YNQbCVOA== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yaml@^1.10.0, yaml@^1.10.2: + version "1.10.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" + integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== + +yargs-parser@^21.0.0: + version "21.0.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.0.1.tgz#0267f286c877a4f0f728fceb6f8a3e4cb95c6e35" + integrity sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg== + +yargs@^17.3.1: + version "17.3.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.3.1.tgz#da56b28f32e2fd45aefb402ed9c26f42be4c07b9" + integrity sha512-WUANQeVgjLbNsEmGk20f+nlHgOqzRFpiGWVaBrYGYIGANIIu3lWjoyi0fNlFmJkvfhCZ6BXINe7/W2O2bV4iaA== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.0.0" diff --git a/plugins/.gitignore b/plugins/.gitignore deleted file mode 100644 index e69de29b..00000000 diff --git a/plugins/.vscode/settings.json b/plugins/.vscode/settings.json deleted file mode 100644 index 8675ad57..00000000 --- a/plugins/.vscode/settings.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "deno.enable": true, - "deno.unstable": true -} \ No newline at end of file diff --git a/plugins/Makefile b/plugins/Makefile deleted file mode 100644 index c1524c8a..00000000 --- a/plugins/Makefile +++ /dev/null @@ -1,7 +0,0 @@ -DENO_BUNDLE=deno run --allow-read --allow-write --unstable bundle.ts --debug -build: * - mkdir -p dist - $(DENO_BUNDLE) core/core.plugin.json ../webapp/src/generated/core.plugin.json - -entr: - ls core/* | entr make \ No newline at end of file diff --git a/plugins/bundle.ts b/plugins/bundle.ts deleted file mode 100644 index 68b9ca44..00000000 --- a/plugins/bundle.ts +++ /dev/null @@ -1,73 +0,0 @@ -import { parse } from "https://deno.land/std@0.121.0/flags/mod.ts"; - -import * as path from "https://deno.land/std@0.121.0/path/mod.ts"; -import { Manifest, FunctionDef } from "../webapp/src/plugins/types.ts"; - -async function compile(filePath: string, sourceMaps: boolean): Promise { - // @ts-ignore for Deno.emit (unstable API) - let { files, diagnostics } = await Deno.emit(filePath, { - bundle: "classic", - check: true, - compilerOptions: { - lib: ["WebWorker", "ES2020"], - inlineSourceMap: sourceMaps, - sourceMap: false, - }, - }); - let bundleSource = files["deno:///bundle.js"]; - - if (diagnostics.length > 0) { - for (let diagnostic of diagnostics) { - if (diagnostic.start) { - console.error( - `In ${diagnostic.fileName}:${diagnostic.start!.line + 1}: ${ - diagnostic.messageText - }` - ); - } else { - console.error(diagnostic); - } - } - throw new Error("Diagnostics"); - } - return bundleSource; -} - -async function bundle( - manifestPath: string, - sourceMaps: boolean -): Promise { - const rootPath = path.dirname(manifestPath); - const manifest = JSON.parse( - new TextDecoder().decode(await Deno.readFile(manifestPath)) - ) as Manifest; - - for (let [name, def] of Object.entries(manifest.functions) as Array< - [string, FunctionDef] - >) { - let jsFunctionName = def.functionName, - filePath = path.join(rootPath, def.path); - if (filePath.indexOf(":") !== -1) { - [filePath, jsFunctionName] = filePath.split(":"); - } else if (!jsFunctionName) { - jsFunctionName = "default"; - } - - def.code = await compile(filePath, sourceMaps); - def.path = filePath; - def.functionName = jsFunctionName; - } - return manifest; -} - -let commandLineArguments = parse(Deno.args, { - boolean: true, -}); - -let [manifestPath, outputPath] = commandLineArguments._ as string[]; -console.log(`Generating bundle for ${manifestPath} to ${outputPath}`); -let b = await bundle(manifestPath, !!commandLineArguments.debug); -await Deno.writeFile( - outputPath, - new TextEncoder().encode(JSON.stringify(b, null, 2)) -); diff --git a/server/.vscode/settings.json b/server/.vscode/settings.json index 8675ad57..d812810e 100644 --- a/server/.vscode/settings.json +++ b/server/.vscode/settings.json @@ -1,4 +1,4 @@ { - "deno.enable": true, + "deno.enable": false, "deno.unstable": true } \ No newline at end of file diff --git a/server/package.json b/server/package.json new file mode 100644 index 00000000..d8bf2141 --- /dev/null +++ b/server/package.json @@ -0,0 +1,24 @@ +{ + "name": "server", + "version": "1.0.0", + "license": "MIT", + "source": "src/server.ts", + "main": "dist/server.js", + "scripts": { + "build": "parcel build", + "watch": "parcel watch", + "start": "node dist/server.js", + "nodemon": "nodemon dist/server.js" + }, + "dependencies": { + "cors": "^2.8.5", + "express": "^4.17.3", + "typescript": "^4.6.2" + }, + "devDependencies": { + "@types/cors": "^2.8.12", + "@types/express": "^4.17.13", + "nodemon": "^2.0.15", + "parcel": "^2.3.2" + } +} diff --git a/server/run.sh b/server/run.sh deleted file mode 100755 index 2bb7dcc0..00000000 --- a/server/run.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -ls | entr -s 'deno run --allow-net --allow-read --allow-write server.ts' \ No newline at end of file diff --git a/server/server.ts b/server/server.ts deleted file mode 100644 index 9c77a89e..00000000 --- a/server/server.ts +++ /dev/null @@ -1,133 +0,0 @@ -import * as path from "https://deno.land/std@0.125.0/path/mod.ts"; -import FileInfo = Deno.FileInfo; - -import { Application, Router } from "https://deno.land/x/oak/mod.ts"; -import { oakCors } from "https://deno.land/x/cors@v1.2.0/mod.ts"; -import { readAll } from "https://deno.land/std@0.126.0/streams/mod.ts"; -import { exists } from "https://deno.land/std@0.126.0/fs/mod.ts"; - -import { recursiveReaddir } from "https://deno.land/x/recursive_readdir@v2.0.0/mod.ts"; - -type PageMeta = { - name: string; - lastModified: number; -}; - -const fsPrefix = "/fs"; -const pagesPath = "../pages"; - -const fsRouter = new Router(); - -fsRouter.use(oakCors({ methods: ["OPTIONS", "GET", "PUT", "POST", "DELETE"] })); - -fsRouter.get("/", async (context) => { - const localPath = pagesPath; - let fileNames: PageMeta[] = []; - const markdownFiles = (await recursiveReaddir(localPath)).filter( - (file: string) => path.extname(file) === ".md" - ); - for (const p of markdownFiles) { - const stat = await Deno.stat(p); - fileNames.push({ - name: p.substring( - localPath.length + 1, - p.length - path.extname(p).length - ), - lastModified: stat.mtime?.getTime()!, - }); - } - context.response.body = JSON.stringify(fileNames); -}); - -fsRouter.get("/:page(.*)", async (context) => { - const pageName = context.params.page; - const localPath = `${pagesPath}/${pageName}.md`; - try { - const stat = await Deno.stat(localPath); - const text = await Deno.readTextFile(localPath); - context.response.headers.set("Last-Modified", "" + stat.mtime?.getTime()); - context.response.body = text; - } catch (e) { - context.response.status = 404; - context.response.body = ""; - } -}); - -fsRouter.options("/:page(.*)", async (context) => { - const localPath = `${pagesPath}/${context.params.page}.md`; - try { - const stat = await Deno.stat(localPath); - context.response.headers.set("Content-length", `${stat.size}`); - context.response.headers.set("Last-Modified", "" + stat.mtime?.getTime()); - } catch (e) { - // For CORS - context.response.status = 200; - context.response.body = ""; - } -}); - -fsRouter.put("/:page(.*)", async (context) => { - const pageName = context.params.page; - const localPath = `${pagesPath}/${pageName}.md`; - const existingPage = await exists(localPath); - let dirName = path.dirname(localPath); - if (!(await exists(dirName))) { - await Deno.mkdir(dirName, { - recursive: true, - }); - } - let file; - try { - file = await Deno.create(localPath); - } catch (e) { - console.error("Error opening file for writing", localPath, e); - context.response.status = 500; - context.response.body = e.message; - return; - } - const result = context.request.body({ type: "reader" }); - const text = await readAll(result.value); - file.write(text); - file.close(); - console.log("Wrote to", localPath); - const stat = await Deno.stat(localPath); - context.response.status = existingPage ? 200 : 201; - context.response.headers.set("Last-Modified", "" + stat.mtime?.getTime()); - context.response.body = "OK"; -}); - -fsRouter.delete("/:page(.*)", async (context) => { - const pageName = context.params.page; - const localPath = `${pagesPath}/${pageName}.md`; - try { - await Deno.remove(localPath); - } catch (e) { - console.error("Error deleting file", localPath, e); - context.response.status = 500; - context.response.body = e.message; - return; - } - console.log("Deleted", localPath); - - context.response.body = "OK"; -}); - -const app = new Application(); -app.use( - new Router() - .use(fsPrefix, fsRouter.routes(), fsRouter.allowedMethods()) - .routes() -); -app.use(async (context, next) => { - try { - await context.send({ - root: "../webapp/dist", - index: "index.html", - }); - } catch { - await context.send({ root: "../webapp/dist", path: "index.html" }); - // next(); - } -}); - -await app.listen({ port: 2222 }); diff --git a/server/src/server.ts b/server/src/server.ts new file mode 100644 index 00000000..85b579c4 --- /dev/null +++ b/server/src/server.ts @@ -0,0 +1,136 @@ +import cors from "cors"; +import express from "express"; +import fs from "fs"; +import { readdir, readFile, stat, unlink } from "fs/promises"; +import path from "path"; +import stream from "stream"; +import {} from "stream/promises"; +import { promisify } from "util"; + +const app = express(); +const port = 3000; +const pipeline = promisify(stream.pipeline); +const pagesPath = "../pages"; +const distDir = `${__dirname}/../../webapp/dist`; + +type PageMeta = { + name: string; + lastModified: number; +}; + +app.use("/", express.static(distDir)); + +let fsRouter = express.Router(); + +// Page list +fsRouter.route("/").get(async (req, res) => { + const localPath = pagesPath; + let fileNames: PageMeta[] = []; + + async function walkPath(dir: string) { + let files = await readdir(dir); + for (let file of files) { + const fullPath = path.join(dir, file); + let s = await stat(fullPath); + if (s.isDirectory()) { + await walkPath(fullPath); + } else { + if (path.extname(file) === ".md") { + fileNames.push({ + name: fullPath.substring(pagesPath.length + 1, fullPath.length - 3), + lastModified: s.mtime.getTime(), + }); + } + } + } + } + await walkPath(pagesPath); + res.json(fileNames); +}); + +fsRouter + .route(/\/(.+)/) + .get(async (req, res) => { + let reqPath = req.params[0]; + console.log("Getting", reqPath); + try { + const localPath = path.join(pagesPath, reqPath + ".md"); + const s = await stat(localPath); + let content = await readFile(localPath, "utf8"); + res.status(200); + res.header("Last-Modified", "" + s.mtime.getTime()); + res.header("Content-Type", "text/markdown"); + res.send(content); + } catch (e) { + res.status(200); + res.send(""); + } + }) + .put(async (req, res) => { + let reqPath = req.params[0]; + + let localPath = path.join(pagesPath, reqPath + ".md"); + + try { + await pipeline(req, fs.createWriteStream(localPath)); + console.log(`Wrote to ${localPath}`); + const s = await stat(localPath); + res.status(200); + res.header("Last-Modified", "" + s.mtime.getTime()); + res.send("OK"); + } catch (err) { + res.status(500); + res.send("Write failed"); + console.error("Pipeline failed", err); + } + }) + .options(async (req, res) => { + let reqPath = req.params[0]; + try { + const localPath = path.join(pagesPath, reqPath + ".md"); + const s = await stat(localPath); + res.status(200); + res.header("Last-Modified", "" + s.mtime.getTime()); + res.header("Content-length", "" + s.size); + res.header("Content-Type", "text/markdown"); + res.send(""); + } catch (e) { + res.status(200); + res.send(""); + } + }) + .delete(async (req, res) => { + let reqPath = req.params[0]; + const localPath = path.join(pagesPath, reqPath + ".md"); + try { + await unlink(localPath); + res.status(200); + res.send("OK"); + } catch (e) { + console.error("Error deleting file", localPath, e); + res.status(500); + res.send("OK"); + } + }); + +app.use( + "/fs", + cors({ + methods: "GET,HEAD,PUT,OPTIONS,POST,DELETE", + preflightContinue: true, + }), + fsRouter +); + +// Fallback, serve index.html +let cachedIndex: string | undefined = undefined; +app.get("/*", async (req, res) => { + if (!cachedIndex) { + cachedIndex = await readFile(`${distDir}/index.html`, "utf8"); + } + res.status(200).header("Content-Type", "text/html").send(cachedIndex); +}); + +app.listen(port, () => { + console.log(`Server istening on port ${port}`); +}); diff --git a/server/test.ts b/server/test.ts deleted file mode 100644 index 1314dac6..00000000 --- a/server/test.ts +++ /dev/null @@ -1,2 +0,0 @@ -import { parser } from "https://unpkg.com/@lezer/markdown?module"; -console.log(parser); diff --git a/server/yarn.lock b/server/yarn.lock new file mode 100644 index 00000000..acee30f4 --- /dev/null +++ b/server/yarn.lock @@ -0,0 +1,2650 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@babel/code-frame@^7.0.0": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789" + integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg== + dependencies: + "@babel/highlight" "^7.16.7" + +"@babel/helper-validator-identifier@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad" + integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== + +"@babel/highlight@^7.16.7": + version "7.16.10" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.10.tgz#744f2eb81579d6eea753c227b0f570ad785aba88" + integrity sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw== + dependencies: + "@babel/helper-validator-identifier" "^7.16.7" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@parcel/bundler-default@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/bundler-default/-/bundler-default-2.3.2.tgz#329f171e210dfb22beaa52ae706ccde1dae384c1" + integrity sha512-JUrto4mjSD0ic9dEqRp0loL5o3HVYHja1ZIYSq+rBl2UWRV6/9cGTb07lXOCqqm0BWE+hQ4krUxB76qWaF0Lqw== + dependencies: + "@parcel/diagnostic" "2.3.2" + "@parcel/hash" "2.3.2" + "@parcel/plugin" "2.3.2" + "@parcel/utils" "2.3.2" + nullthrows "^1.1.1" + +"@parcel/cache@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/cache/-/cache-2.3.2.tgz#ba8c2af02fd45b90c7bc6f829bfc566d1ded0a13" + integrity sha512-Xxq+ekgcFEme6Fn1v7rEOBkyMOUOUu7eNqQw0l6HQS+INZ2Q7YzzfdW7pI8rEOAAICVg5BWKpmBQZpgJlT+HxQ== + dependencies: + "@parcel/fs" "2.3.2" + "@parcel/logger" "2.3.2" + "@parcel/utils" "2.3.2" + lmdb "^2.0.2" + +"@parcel/codeframe@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/codeframe/-/codeframe-2.3.2.tgz#73fb5a89910b977342808ca8f6ece61fa01b7690" + integrity sha512-ireQALcxxrTdIEpzTOoMo/GpfbFm1qlyezeGl3Hce3PMvHLg3a5S6u/Vcy7SAjdld5GfhHEqVY+blME6Z4CyXQ== + dependencies: + chalk "^4.1.0" + +"@parcel/compressor-raw@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/compressor-raw/-/compressor-raw-2.3.2.tgz#1a808ae9e61ed86f655935e1d2a984383b3c00a7" + integrity sha512-8dIoFwinYK6bOTpnZOAwwIv0v73y0ezsctPmfMnIqVQPn7wJwfhw/gbKVcmK5AkgQMkyid98hlLZoaZtGF1Mdg== + dependencies: + "@parcel/plugin" "2.3.2" + +"@parcel/config-default@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/config-default/-/config-default-2.3.2.tgz#3f21a37fa07b22de9cd6b1aea19bc310a02d4abb" + integrity sha512-E7/iA7fGCYvXU3u6zF9nxjeDVsgjCN6MVvDjymjaxYMoDWTIsPV245SBEXqzgtmzbMAV+VAl4rVWLMB4pzMt9g== + dependencies: + "@parcel/bundler-default" "2.3.2" + "@parcel/compressor-raw" "2.3.2" + "@parcel/namer-default" "2.3.2" + "@parcel/optimizer-cssnano" "2.3.2" + "@parcel/optimizer-htmlnano" "2.3.2" + "@parcel/optimizer-image" "2.3.2" + "@parcel/optimizer-svgo" "2.3.2" + "@parcel/optimizer-terser" "2.3.2" + "@parcel/packager-css" "2.3.2" + "@parcel/packager-html" "2.3.2" + "@parcel/packager-js" "2.3.2" + "@parcel/packager-raw" "2.3.2" + "@parcel/packager-svg" "2.3.2" + "@parcel/reporter-dev-server" "2.3.2" + "@parcel/resolver-default" "2.3.2" + "@parcel/runtime-browser-hmr" "2.3.2" + "@parcel/runtime-js" "2.3.2" + "@parcel/runtime-react-refresh" "2.3.2" + "@parcel/runtime-service-worker" "2.3.2" + "@parcel/transformer-babel" "2.3.2" + "@parcel/transformer-css" "2.3.2" + "@parcel/transformer-html" "2.3.2" + "@parcel/transformer-image" "2.3.2" + "@parcel/transformer-js" "2.3.2" + "@parcel/transformer-json" "2.3.2" + "@parcel/transformer-postcss" "2.3.2" + "@parcel/transformer-posthtml" "2.3.2" + "@parcel/transformer-raw" "2.3.2" + "@parcel/transformer-react-refresh-wrap" "2.3.2" + "@parcel/transformer-svg" "2.3.2" + +"@parcel/core@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/core/-/core-2.3.2.tgz#1b9a79c1ff96dba5e0f53d4277bed4e7ab4590d0" + integrity sha512-gdJzpsgeUhv9H8T0UKVmyuptiXdduEfKIUx0ci+/PGhq8cCoiFnlnuhW6H7oLr79OUc+YJStabDJuG4U2A6ysw== + dependencies: + "@parcel/cache" "2.3.2" + "@parcel/diagnostic" "2.3.2" + "@parcel/events" "2.3.2" + "@parcel/fs" "2.3.2" + "@parcel/graph" "2.3.2" + "@parcel/hash" "2.3.2" + "@parcel/logger" "2.3.2" + "@parcel/package-manager" "2.3.2" + "@parcel/plugin" "2.3.2" + "@parcel/source-map" "^2.0.0" + "@parcel/types" "2.3.2" + "@parcel/utils" "2.3.2" + "@parcel/workers" "2.3.2" + abortcontroller-polyfill "^1.1.9" + base-x "^3.0.8" + browserslist "^4.6.6" + clone "^2.1.1" + dotenv "^7.0.0" + dotenv-expand "^5.1.0" + json-source-map "^0.6.1" + json5 "^2.2.0" + msgpackr "^1.5.1" + nullthrows "^1.1.1" + semver "^5.7.1" + +"@parcel/diagnostic@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/diagnostic/-/diagnostic-2.3.2.tgz#1d3f0b55bfd9839c6f41d704ebbc89a96cca88dc" + integrity sha512-/xW93Az4AOiifuYW/c4CDbUcu3lx5FcUDAj9AGiR9NSTsF/ROC/RqnxvQ3AGtqa14R7vido4MXEpY3JEp6FsqA== + dependencies: + json-source-map "^0.6.1" + nullthrows "^1.1.1" + +"@parcel/events@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/events/-/events-2.3.2.tgz#b6bcfbbc96d883716ee9d0e6ab232acdee862790" + integrity sha512-WiYIwXMo4Vd+pi58vRoHkul8TPE5VEfMY+3FYwVCKPl/LYqSD+vz6wMx9uG18mEbB1d/ofefv5ZFQNtPGKO4tQ== + +"@parcel/fs-search@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/fs-search/-/fs-search-2.3.2.tgz#18611877ac1b370932c71987c2ec0e93a4a7e53d" + integrity sha512-u3DTEFnPtKuZvEtgGzfVjQUytegSSn3POi7WfwMwPIaeDPfYcyyhfl+c96z7VL9Gk/pqQ99/cGyAwFdFsnxxXA== + dependencies: + detect-libc "^1.0.3" + +"@parcel/fs@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/fs/-/fs-2.3.2.tgz#9628441a84c2582e1f6e69549feb0da0cc143e40" + integrity sha512-XV+OsnRpN01QKU37lBN0TFKvv7uPKfQGbqFqYOrMbXH++Ae8rBU0Ykz+Yu4tv2h7shMlde+AMKgRnRTAJZpWEQ== + dependencies: + "@parcel/fs-search" "2.3.2" + "@parcel/types" "2.3.2" + "@parcel/utils" "2.3.2" + "@parcel/watcher" "^2.0.0" + "@parcel/workers" "2.3.2" + +"@parcel/graph@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/graph/-/graph-2.3.2.tgz#4194816952ab322ab22a17f7d9ea17befbade64d" + integrity sha512-ltTBM3IEqumgmy4ABBFETT8NtAwSsjD9mY3WCyJ5P8rUshfVCg093rvBPbpuJYMaH/TV1AHVaWfZqaZ4JQDIQQ== + dependencies: + "@parcel/utils" "2.3.2" + nullthrows "^1.1.1" + +"@parcel/hash@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/hash/-/hash-2.3.2.tgz#33b8ff04bb44f6661bdc1054b302ef1b6bd3acb3" + integrity sha512-SMtYTsHihws/wqdVnOr0QAGyGYsW9rJSJkkoRujUxo8l2ctnBN1ztv89eOUrdtgHsmcnj/oz1yw6sN38X+BUng== + dependencies: + detect-libc "^1.0.3" + xxhash-wasm "^0.4.2" + +"@parcel/logger@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/logger/-/logger-2.3.2.tgz#b5fc7a9c1664ee0286d0f67641c7c81c8fec1561" + integrity sha512-jIWd8TXDQf+EnNWSa7Q10lSQ6C1LSH8OZkTlaINrfVIw7s+3tVxO3I4pjp7/ARw7RX2gdNPlw6fH4Gn/HvvYbw== + dependencies: + "@parcel/diagnostic" "2.3.2" + "@parcel/events" "2.3.2" + +"@parcel/markdown-ansi@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/markdown-ansi/-/markdown-ansi-2.3.2.tgz#2a5be7ce76a506a9d238ea2257cb28e43abe4902" + integrity sha512-l01ggmag5QScCk9mYA0xHh5TWSffR84uPFP2KvaAMQQ9NLNufcFiU0mn/Mtr3pCb5L5dSzmJ+Oo9s7P1Kh/Fmg== + dependencies: + chalk "^4.1.0" + +"@parcel/namer-default@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/namer-default/-/namer-default-2.3.2.tgz#84e17abfc84fd293b23b3f405280ed2e279c75d8" + integrity sha512-3QUMC0+5+3KMKfoAxYAbpZtuRqTgyZKsGDWzOpuqwemqp6P8ahAvNPwSCi6QSkGcTmvtYwBu9/NHPSONxIFOfg== + dependencies: + "@parcel/diagnostic" "2.3.2" + "@parcel/plugin" "2.3.2" + nullthrows "^1.1.1" + +"@parcel/node-resolver-core@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/node-resolver-core/-/node-resolver-core-2.3.2.tgz#dd360f405949fdcd62980cd44825052ab28f6135" + integrity sha512-wmrnMNzJN4GuHw2Ftho+BWgSWR6UCkW3XoMdphqcxpw/ieAdS2a+xYSosYkZgQZ6lGutSvLyJ1CkVvP6RLIdQQ== + dependencies: + "@parcel/diagnostic" "2.3.2" + "@parcel/utils" "2.3.2" + nullthrows "^1.1.1" + +"@parcel/optimizer-cssnano@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/optimizer-cssnano/-/optimizer-cssnano-2.3.2.tgz#70758f6646fd4debc26a90ae7dddf398928c0ce1" + integrity sha512-wTBOxMiBI38NAB9XIlQZRCjS59+EWjWR9M04D3TWyxl+dL5gYMc1cl4GNynUnmcPdz+3s1UbOdo5/8V90wjiiw== + dependencies: + "@parcel/plugin" "2.3.2" + "@parcel/source-map" "^2.0.0" + cssnano "^5.0.15" + postcss "^8.4.5" + +"@parcel/optimizer-htmlnano@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/optimizer-htmlnano/-/optimizer-htmlnano-2.3.2.tgz#4086736866621182f5dd1a8abe78e9f5764e1a28" + integrity sha512-U8C0TDSxsx8HmHaLW0Zc7ha1fXQynzhvBjCRMGYnOiLiw0MOfLQxzQ2WKVSeCotmdlF63ayCwxWsd6BuqStiKQ== + dependencies: + "@parcel/plugin" "2.3.2" + htmlnano "^2.0.0" + nullthrows "^1.1.1" + posthtml "^0.16.5" + svgo "^2.4.0" + +"@parcel/optimizer-image@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/optimizer-image/-/optimizer-image-2.3.2.tgz#0549cc1abc99fdd6f46bd44ce8551eb135e44d4f" + integrity sha512-HOk3r5qdvY/PmI7Q3i2qEgFH3kP2QWG4Wq3wmC4suaF1+c2gpiQc+HKHWp4QvfbH3jhT00c5NxQyqPhbXeNI9Q== + dependencies: + "@parcel/diagnostic" "2.3.2" + "@parcel/plugin" "2.3.2" + "@parcel/utils" "2.3.2" + "@parcel/workers" "2.3.2" + detect-libc "^1.0.3" + +"@parcel/optimizer-svgo@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/optimizer-svgo/-/optimizer-svgo-2.3.2.tgz#ebf2f48f356ad557d2bbfae361520d3d29bc1c37" + integrity sha512-l7WvZ5+e7D1mVmLUxMVaSb29cviXzuvSY2OpQs0ukdPACDqag+C65hWMzwTiOSSRGPMIu96kQKpeVru2YjibhA== + dependencies: + "@parcel/diagnostic" "2.3.2" + "@parcel/plugin" "2.3.2" + "@parcel/utils" "2.3.2" + svgo "^2.4.0" + +"@parcel/optimizer-terser@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/optimizer-terser/-/optimizer-terser-2.3.2.tgz#790b69e6ecc6ef0d8f25b57e9a13806e1f1c2943" + integrity sha512-dOapHhfy0xiNZa2IoEyHGkhhla07xsja79NPem14e5jCqY6Oi40jKNV4ab5uu5u1elWUjJuw69tiYbkDZWbKQw== + dependencies: + "@parcel/diagnostic" "2.3.2" + "@parcel/plugin" "2.3.2" + "@parcel/source-map" "^2.0.0" + "@parcel/utils" "2.3.2" + nullthrows "^1.1.1" + terser "^5.2.0" + +"@parcel/package-manager@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/package-manager/-/package-manager-2.3.2.tgz#380f0741c9d0c79c170c437efae02506484df315" + integrity sha512-pAQfywKVORY8Ee+NHAyKzzQrKbnz8otWRejps7urwhDaTVLfAd5C/1ZV64ATZ9ALYP9jyoQ8bTaxVd4opcSuwg== + dependencies: + "@parcel/diagnostic" "2.3.2" + "@parcel/fs" "2.3.2" + "@parcel/logger" "2.3.2" + "@parcel/types" "2.3.2" + "@parcel/utils" "2.3.2" + "@parcel/workers" "2.3.2" + semver "^5.7.1" + +"@parcel/packager-css@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/packager-css/-/packager-css-2.3.2.tgz#4994d872449843c1c0cda524b6df3327e2f0a121" + integrity sha512-ByuF9xDnQnpVL1Hdu9aY6SpxOuZowd3TH7joh1qdRPLeMHTEvUywHBXoiAyNdrhnLGum8uPEdY8Ra5Xuo1U7kg== + dependencies: + "@parcel/plugin" "2.3.2" + "@parcel/source-map" "^2.0.0" + "@parcel/utils" "2.3.2" + nullthrows "^1.1.1" + +"@parcel/packager-html@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/packager-html/-/packager-html-2.3.2.tgz#e54085fbaa49bed4258ffef80bc36b421895965f" + integrity sha512-YqAptdU+uqfgwSii76mRGcA/3TpuC6yHr8xG+11brqj/tEFLsurmX0naombzd7FgmrTE9w+kb0HUIMl2vRBn0A== + dependencies: + "@parcel/plugin" "2.3.2" + "@parcel/types" "2.3.2" + "@parcel/utils" "2.3.2" + nullthrows "^1.1.1" + posthtml "^0.16.5" + +"@parcel/packager-js@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/packager-js/-/packager-js-2.3.2.tgz#2d2566bde0da921042b79aa827c71109665d795c" + integrity sha512-3OP0Ro9M1J+PIKZK4Ec2N5hjIPiqk++B2kMFeiUqvaNZjJgKrPPEICBhjS52rma4IE/NgmIMB3aI5pWqE/KwNA== + dependencies: + "@parcel/diagnostic" "2.3.2" + "@parcel/hash" "2.3.2" + "@parcel/plugin" "2.3.2" + "@parcel/source-map" "^2.0.0" + "@parcel/utils" "2.3.2" + globals "^13.2.0" + nullthrows "^1.1.1" + +"@parcel/packager-raw@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/packager-raw/-/packager-raw-2.3.2.tgz#869cc3e7bee8ff3655891a0af400cf4e7dd4f144" + integrity sha512-RnoZ7WgNAFWkEPrEefvyDqus7xfv9XGprHyTbfLittPaVAZpl+4eAv43nXyMfzk77Cgds6KcNpkosj3acEpNIQ== + dependencies: + "@parcel/plugin" "2.3.2" + +"@parcel/packager-svg@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/packager-svg/-/packager-svg-2.3.2.tgz#a7a02e22642ae93f42b8bfd7d122b4a159988743" + integrity sha512-iIC0VeczOXynS7M5jCi3naMBRyAznBVJ3iMg92/GaI9duxPlUMGAlHzLAKNtoXkc00HMXDH7rrmMb04VX6FYSg== + dependencies: + "@parcel/plugin" "2.3.2" + "@parcel/types" "2.3.2" + "@parcel/utils" "2.3.2" + posthtml "^0.16.4" + +"@parcel/plugin@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/plugin/-/plugin-2.3.2.tgz#7701c40567d2eddd5d5b2b6298949cd03a2a22fa" + integrity sha512-SaLZAJX4KH+mrAmqmcy9KJN+V7L+6YNTlgyqYmfKlNiHu7aIjLL+3prX8QRcgGtjAYziCxvPj0cl1CCJssaiGg== + dependencies: + "@parcel/types" "2.3.2" + +"@parcel/reporter-cli@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/reporter-cli/-/reporter-cli-2.3.2.tgz#0617e088aac5ef7fa255d088e7016bb4f9d66a53" + integrity sha512-VYetmTXqW83npsvVvqlQZTbF3yVL3k/FCCl3kSWvOr9LZA0lmyqJWPjMHq37yIIOszQN/p5guLtgCjsP0UQw1Q== + dependencies: + "@parcel/plugin" "2.3.2" + "@parcel/types" "2.3.2" + "@parcel/utils" "2.3.2" + chalk "^4.1.0" + +"@parcel/reporter-dev-server@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/reporter-dev-server/-/reporter-dev-server-2.3.2.tgz#46ee4c53ad08c8b8afd2c79fb37381b6ba55cfb5" + integrity sha512-E7LtnjAX4iiWMw2qKUyFBi3+bDz0UGjqgHoPQylUYYLi6opXjJz/oC+cCcCy4e3RZlkrl187XonvagS59YjDxA== + dependencies: + "@parcel/plugin" "2.3.2" + "@parcel/utils" "2.3.2" + +"@parcel/resolver-default@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/resolver-default/-/resolver-default-2.3.2.tgz#286070412ad7fe506f7c88409f39b362d2041798" + integrity sha512-y3r+xOwWsATrNGUWuZ6soA7q24f8E5tY1AZ9lHCufnkK2cdKZJ5O1cyd7ohkAiKZx2/pMd+FgmVZ/J3oxetXkA== + dependencies: + "@parcel/node-resolver-core" "2.3.2" + "@parcel/plugin" "2.3.2" + +"@parcel/runtime-browser-hmr@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/runtime-browser-hmr/-/runtime-browser-hmr-2.3.2.tgz#cb23a850324ea792168438a9be6a345ebb66eb6d" + integrity sha512-nRD6uOyF1+HGylP9GASbYmvUDOsDaNwvaxuGTSh8+5M0mmCgib+hVBiPEKbwdmKjGbUPt9wRFPyMa/JpeQZsIQ== + dependencies: + "@parcel/plugin" "2.3.2" + "@parcel/utils" "2.3.2" + +"@parcel/runtime-js@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/runtime-js/-/runtime-js-2.3.2.tgz#c0e14251ce43f95977577e23bb9ac5c2487f3bb1" + integrity sha512-SJepcHvYO/7CEe/Q85sngk+smcJ6TypuPh4D2R8kN+cAJPi5WvbQEe7+x5BEgbN+5Jumi/Uo3FfOOE5mYh+F6g== + dependencies: + "@parcel/plugin" "2.3.2" + "@parcel/utils" "2.3.2" + nullthrows "^1.1.1" + +"@parcel/runtime-react-refresh@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/runtime-react-refresh/-/runtime-react-refresh-2.3.2.tgz#11961d7429ae3333b7efe14c4f57515df57eb5f2" + integrity sha512-P+GRPO2XVDSBQ4HmRSj2xfbHSQvL9+ahTE/AB74IJExLTITv5l4SHAV3VsiKohuHYUAYHW3A/Oe7tEFCAb6Cug== + dependencies: + "@parcel/plugin" "2.3.2" + "@parcel/utils" "2.3.2" + react-refresh "^0.9.0" + +"@parcel/runtime-service-worker@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/runtime-service-worker/-/runtime-service-worker-2.3.2.tgz#aa91797e57d1bb5b2aac04ac62c5410709ae0a27" + integrity sha512-iREHj/eapphC4uS/zGUkiTJvG57q+CVbTrfE42kB8ECtf/RYNo5YC9htdvPZjRSXDPrEPc5NCoKp4X09ENNikw== + dependencies: + "@parcel/plugin" "2.3.2" + "@parcel/utils" "2.3.2" + nullthrows "^1.1.1" + +"@parcel/source-map@^2.0.0": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@parcel/source-map/-/source-map-2.0.2.tgz#9aa0b00518cee31d5634de6e9c924a5539b142c1" + integrity sha512-NnUrPYLpYB6qyx2v6bcRPn/gVigmGG6M6xL8wIg/i0dP1GLkuY1nf+Hqdf63FzPTqqT7K3k6eE5yHPQVMO5jcA== + dependencies: + detect-libc "^1.0.3" + +"@parcel/transformer-babel@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/transformer-babel/-/transformer-babel-2.3.2.tgz#2d8c0d1f95d9747936d132dc4c34edb0b6b80d39" + integrity sha512-QpWfH2V6jJ+kcUBIMM/uBBG8dGFvNaOGS+8jD6b+eTP+1owzm83RoWgqhRV2D/hhv2qMXEQzIljoc/wg2y+X4g== + dependencies: + "@parcel/diagnostic" "2.3.2" + "@parcel/plugin" "2.3.2" + "@parcel/source-map" "^2.0.0" + "@parcel/utils" "2.3.2" + browserslist "^4.6.6" + json5 "^2.2.0" + nullthrows "^1.1.1" + semver "^5.7.0" + +"@parcel/transformer-css@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/transformer-css/-/transformer-css-2.3.2.tgz#968826e42d7cac9963dc0a67a30d393ef996e48c" + integrity sha512-8lzvDny+78DIAqhcXam2Bf9FyaUoqzHdUQdNFn+PuXTHroG/QGPvln1kvqngJjn4/cpJS9vYmAPVXe+nai3P8g== + dependencies: + "@parcel/hash" "2.3.2" + "@parcel/plugin" "2.3.2" + "@parcel/source-map" "^2.0.0" + "@parcel/utils" "2.3.2" + nullthrows "^1.1.1" + postcss "^8.4.5" + postcss-value-parser "^4.2.0" + semver "^5.7.1" + +"@parcel/transformer-html@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/transformer-html/-/transformer-html-2.3.2.tgz#c240f09369445d287d16beba207407c925532d90" + integrity sha512-idT1I/8WM65IFYBqzRwpwT7sf0xGur4EDQDHhuPX1w+pIVZnh0lkLMAnEqs6ar1SPRMys4chzkuDNnqh0d76hg== + dependencies: + "@parcel/diagnostic" "2.3.2" + "@parcel/hash" "2.3.2" + "@parcel/plugin" "2.3.2" + nullthrows "^1.1.1" + posthtml "^0.16.5" + posthtml-parser "^0.10.1" + posthtml-render "^3.0.0" + semver "^5.7.1" + +"@parcel/transformer-image@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/transformer-image/-/transformer-image-2.3.2.tgz#24b6eda51a6b07c195886bbb67fb2ade14c325f3" + integrity sha512-0K7cJHXysli6hZsUz/zVGO7WCoaaIeVdzAxKpLA1Yl3LKw/ODiMyXKt08LiV/ljQ2xT5qb9EsXUWDRvcZ0b96A== + dependencies: + "@parcel/plugin" "2.3.2" + "@parcel/workers" "2.3.2" + nullthrows "^1.1.1" + +"@parcel/transformer-js@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/transformer-js/-/transformer-js-2.3.2.tgz#24bcb488d5f82678343a5630fe4bbe822789ac33" + integrity sha512-U1fbIoAoqR5P49S+DMhH8BUd9IHRPwrTTv6ARYGsYnhuNsjTFhNYE0kkfRYboe/e0z7vEbeJICZXjnZ7eQDw5A== + dependencies: + "@parcel/diagnostic" "2.3.2" + "@parcel/plugin" "2.3.2" + "@parcel/source-map" "^2.0.0" + "@parcel/utils" "2.3.2" + "@parcel/workers" "2.3.2" + "@swc/helpers" "^0.2.11" + browserslist "^4.6.6" + detect-libc "^1.0.3" + nullthrows "^1.1.1" + regenerator-runtime "^0.13.7" + semver "^5.7.1" + +"@parcel/transformer-json@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/transformer-json/-/transformer-json-2.3.2.tgz#4c470e86659e87ee13b1f31e75a3621d3615b6bd" + integrity sha512-Pv2iPaxKINtFwOk5fDbHjQlSm2Vza/NLimQY896FLxiXPNAJxWGvMwdutgOPEBKksxRx9LZPyIOHiRVZ0KcA3w== + dependencies: + "@parcel/plugin" "2.3.2" + json5 "^2.2.0" + +"@parcel/transformer-postcss@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/transformer-postcss/-/transformer-postcss-2.3.2.tgz#a428c81569dd66758c5fab866dca69b4c6e59743" + integrity sha512-Rpdxc1rt2aJFCh/y/ccaBc9J1crDjNY5o44xYoOemBoUNDMREsmg5sR5iO81qKKO5GxfoosGb2zh59aeTmywcg== + dependencies: + "@parcel/hash" "2.3.2" + "@parcel/plugin" "2.3.2" + "@parcel/utils" "2.3.2" + clone "^2.1.1" + nullthrows "^1.1.1" + postcss-value-parser "^4.2.0" + semver "^5.7.1" + +"@parcel/transformer-posthtml@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/transformer-posthtml/-/transformer-posthtml-2.3.2.tgz#5da3f24bf240c3c49b2fdb17dcda5988d3057a30" + integrity sha512-tMdVExfdM+1G8A9KSHDsjg+S9xEGbhH5mApF2NslPnNZ4ciLKRNuHU2sSV/v8i0a6kacKvDTrwQXYBQJGOodBw== + dependencies: + "@parcel/plugin" "2.3.2" + "@parcel/utils" "2.3.2" + nullthrows "^1.1.1" + posthtml "^0.16.5" + posthtml-parser "^0.10.1" + posthtml-render "^3.0.0" + semver "^5.7.1" + +"@parcel/transformer-raw@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/transformer-raw/-/transformer-raw-2.3.2.tgz#40d21773e295bae3b16bfe7a89e414ccf534b9c5" + integrity sha512-lY7eOCaALZ90+GH+4PZRmAPGQRXoZ66NakSdhEtH6JSSAYOmZKDvNLGTMRo/vK1oELzWMuAHGdqvbcPDtNLLVw== + dependencies: + "@parcel/plugin" "2.3.2" + +"@parcel/transformer-react-refresh-wrap@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/transformer-react-refresh-wrap/-/transformer-react-refresh-wrap-2.3.2.tgz#43ecfe6f4567b88abb81db9fe56b8d860d6a69f7" + integrity sha512-FZaderyCExn0SBZ6D+zHPWc8JSn9YDcbfibv0wkCl+D7sYfeWZ22i7MRp5NwCe/TZ21WuxDWySCggEp/Waz2xg== + dependencies: + "@parcel/plugin" "2.3.2" + "@parcel/utils" "2.3.2" + react-refresh "^0.9.0" + +"@parcel/transformer-svg@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/transformer-svg/-/transformer-svg-2.3.2.tgz#9a66aef5011c7bbb1fa3ce9bb52ca56d8f0f964d" + integrity sha512-k9My6bePsaGgUh+tidDjFbbVgKPTzwCAQfoloZRMt7y396KgUbvCfqDruk04k6k+cJn7Jl1o/5lUpTEruBze7g== + dependencies: + "@parcel/diagnostic" "2.3.2" + "@parcel/hash" "2.3.2" + "@parcel/plugin" "2.3.2" + nullthrows "^1.1.1" + posthtml "^0.16.5" + posthtml-parser "^0.10.1" + posthtml-render "^3.0.0" + semver "^5.7.1" + +"@parcel/types@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/types/-/types-2.3.2.tgz#7eb6925bc852a518dd75b742419e51292418769f" + integrity sha512-C77Ct1xNM7LWjPTfe/dQ/9rq1efdsX5VJu2o8/TVi6qoFh64Wp/c5/vCHwKInOTBZUTchVO6z4PGJNIZoUVJuA== + dependencies: + "@parcel/cache" "2.3.2" + "@parcel/diagnostic" "2.3.2" + "@parcel/fs" "2.3.2" + "@parcel/package-manager" "2.3.2" + "@parcel/source-map" "^2.0.0" + "@parcel/workers" "2.3.2" + utility-types "^3.10.0" + +"@parcel/utils@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/utils/-/utils-2.3.2.tgz#4aab052fc9f3227811a504da7b9663ca75004f55" + integrity sha512-xzZ+0vWhrXlLzGoz7WlANaO5IPtyWGeCZruGtepUL3yheRWb1UU4zFN9xz7Z+j++Dmf1Fgkc3qdk/t4O8u9HLQ== + dependencies: + "@parcel/codeframe" "2.3.2" + "@parcel/diagnostic" "2.3.2" + "@parcel/hash" "2.3.2" + "@parcel/logger" "2.3.2" + "@parcel/markdown-ansi" "2.3.2" + "@parcel/source-map" "^2.0.0" + chalk "^4.1.0" + +"@parcel/watcher@^2.0.0": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@parcel/watcher/-/watcher-2.0.5.tgz#f913a54e1601b0aac972803829b0eece48de215b" + integrity sha512-x0hUbjv891omnkcHD7ZOhiyyUqUUR6MNjq89JhEI3BxppeKWAm6NPQsqqRrAkCJBogdT/o/My21sXtTI9rJIsw== + dependencies: + node-addon-api "^3.2.1" + node-gyp-build "^4.3.0" + +"@parcel/workers@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@parcel/workers/-/workers-2.3.2.tgz#05ffa2da9169bfb83335892c2b8abce55686ceb1" + integrity sha512-JbOm+Ceuyymd1SuKGgodC2EXAiPuFRpaNUSJpz3NAsS3lVIt2TDAPMOWBivS7sML/KltspUfl/Q9YwO0TPUFNw== + dependencies: + "@parcel/diagnostic" "2.3.2" + "@parcel/logger" "2.3.2" + "@parcel/types" "2.3.2" + "@parcel/utils" "2.3.2" + chrome-trace-event "^1.0.2" + nullthrows "^1.1.1" + +"@sindresorhus/is@^0.14.0": + version "0.14.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" + integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== + +"@swc/helpers@^0.2.11": + version "0.2.14" + resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.2.14.tgz#20288c3627442339dd3d743c944f7043ee3590f0" + integrity sha512-wpCQMhf5p5GhNg2MmGKXzUNwxe7zRiCsmqYsamez2beP7mKPCSiu+BjZcdN95yYSzO857kr0VfQewmGpS77nqA== + +"@szmarczak/http-timer@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" + integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== + dependencies: + defer-to-connect "^1.0.1" + +"@trysound/sax@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" + integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== + +"@types/body-parser@*": + version "1.19.2" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" + integrity sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g== + dependencies: + "@types/connect" "*" + "@types/node" "*" + +"@types/connect@*": + version "3.4.35" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" + integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== + dependencies: + "@types/node" "*" + +"@types/cors@^2.8.12": + version "2.8.12" + resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.12.tgz#6b2c510a7ad7039e98e7b8d3d6598f4359e5c080" + integrity sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw== + +"@types/express-serve-static-core@^4.17.18": + version "4.17.28" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz#c47def9f34ec81dc6328d0b1b5303d1ec98d86b8" + integrity sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig== + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + +"@types/express@^4.17.13": + version "4.17.13" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.13.tgz#a76e2995728999bab51a33fabce1d705a3709034" + integrity sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "^4.17.18" + "@types/qs" "*" + "@types/serve-static" "*" + +"@types/mime@^1": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" + integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== + +"@types/node@*": + version "17.0.21" + resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.21.tgz#864b987c0c68d07b4345845c3e63b75edd143644" + integrity sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ== + +"@types/parse-json@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" + integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== + +"@types/qs@*": + version "6.9.7" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" + integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== + +"@types/range-parser@*": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" + integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== + +"@types/serve-static@*": + version "1.13.10" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.10.tgz#f5e0ce8797d2d7cc5ebeda48a52c96c4fa47a8d9" + integrity sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ== + dependencies: + "@types/mime" "^1" + "@types/node" "*" + +abbrev@1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + +abortcontroller-polyfill@^1.1.9: + version "1.7.3" + resolved "https://registry.yarnpkg.com/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.3.tgz#1b5b487bd6436b5b764fd52a612509702c3144b5" + integrity sha512-zetDJxd89y3X99Kvo4qFx8GKlt6GsvN3UcRZHwU6iFA/0KiOmhkTVhe8oRoTBiTVPZu09x3vCra47+w8Yz1+2Q== + +accepts@~1.3.8: + version "1.3.8" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== + dependencies: + mime-types "~2.1.34" + negotiator "0.6.3" + +acorn@^8.5.0: + version "8.7.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.0.tgz#90951fde0f8f09df93549481e5fc141445b791cf" + integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ== + +ansi-align@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.1.tgz#0cdf12e111ace773a86e9a1fad1225c43cb19a59" + integrity sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w== + dependencies: + string-width "^4.1.0" + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +anymatch@~3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" + integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base-x@^3.0.8: + version "3.0.9" + resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.9.tgz#6349aaabb58526332de9f60995e548a53fe21320" + integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ== + dependencies: + safe-buffer "^5.0.1" + +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + +body-parser@1.19.2: + version "1.19.2" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.2.tgz#4714ccd9c157d44797b8b5607d72c0b89952f26e" + integrity sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw== + dependencies: + bytes "3.1.2" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.2" + http-errors "1.8.1" + iconv-lite "0.4.24" + on-finished "~2.3.0" + qs "6.9.7" + raw-body "2.4.3" + type-is "~1.6.18" + +boolbase@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= + +boxen@^5.0.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-5.1.2.tgz#788cb686fc83c1f486dfa8a40c68fc2b831d2b50" + integrity sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ== + dependencies: + ansi-align "^3.0.0" + camelcase "^6.2.0" + chalk "^4.1.0" + cli-boxes "^2.2.1" + string-width "^4.2.2" + type-fest "^0.20.2" + widest-line "^3.1.0" + wrap-ansi "^7.0.0" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +browserslist@^4.0.0, browserslist@^4.16.6, browserslist@^4.6.6: + version "4.19.3" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.19.3.tgz#29b7caad327ecf2859485f696f9604214bedd383" + integrity sha512-XK3X4xtKJ+Txj8G5c30B4gsm71s69lqXlkYui4s6EkKxuv49qjYlY6oVd+IFJ73d4YymtM3+djvvt/R/iJwwDg== + dependencies: + caniuse-lite "^1.0.30001312" + electron-to-chromium "^1.4.71" + escalade "^3.1.1" + node-releases "^2.0.2" + picocolors "^1.0.0" + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +bytes@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== + +cacheable-request@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" + integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== + dependencies: + clone-response "^1.0.2" + get-stream "^5.1.0" + http-cache-semantics "^4.0.0" + keyv "^3.0.0" + lowercase-keys "^2.0.0" + normalize-url "^4.1.0" + responselike "^1.0.2" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camelcase@^6.2.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + +caniuse-api@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" + integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== + dependencies: + browserslist "^4.0.0" + caniuse-lite "^1.0.0" + lodash.memoize "^4.1.2" + lodash.uniq "^4.5.0" + +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001312: + version "1.0.30001313" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001313.tgz#a380b079db91621e1b7120895874e2fd62ed2e2f" + integrity sha512-rI1UN0koZUiKINjysQDuRi2VeSCce3bYJNmDcj3PIKREiAmjakugBul1QSkg/fPrlULYl6oWfGg3PbgOSY9X4Q== + +chalk@^2.0.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.1.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chokidar@^3.5.2: + version "3.5.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +chrome-trace-event@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" + integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== + +ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== + +cli-boxes@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" + integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== + +clone-response@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" + integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= + dependencies: + mimic-response "^1.0.0" + +clone@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" + integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +colord@^2.9.1: + version "2.9.2" + resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.2.tgz#25e2bacbbaa65991422c07ea209e2089428effb1" + integrity sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ== + +commander@^2.20.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@^7.0.0, commander@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +configstore@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96" + integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA== + dependencies: + dot-prop "^5.2.0" + graceful-fs "^4.1.2" + make-dir "^3.0.0" + unique-string "^2.0.0" + write-file-atomic "^3.0.0" + xdg-basedir "^4.0.0" + +content-disposition@0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" + integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== + dependencies: + safe-buffer "5.2.1" + +content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= + +cookie@0.4.2: + version "0.4.2" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" + integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== + +cors@^2.8.5: + version "2.8.5" + resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" + integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== + dependencies: + object-assign "^4" + vary "^1" + +cosmiconfig@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d" + integrity sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.2.1" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.10.0" + +crypto-random-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" + integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== + +css-declaration-sorter@^6.0.3: + version "6.1.4" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.1.4.tgz#b9bfb4ed9a41f8dcca9bf7184d849ea94a8294b4" + integrity sha512-lpfkqS0fctcmZotJGhnxkIyJWvBXgpyi2wsFd4J8VB7wzyrT6Ch/3Q+FMNJpjK4gu1+GN5khOnpU2ZVKrLbhCw== + dependencies: + timsort "^0.3.0" + +css-select@^4.1.3: + version "4.2.1" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.2.1.tgz#9e665d6ae4c7f9d65dbe69d0316e3221fb274cdd" + integrity sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ== + dependencies: + boolbase "^1.0.0" + css-what "^5.1.0" + domhandler "^4.3.0" + domutils "^2.8.0" + nth-check "^2.0.1" + +css-tree@^1.1.2, css-tree@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" + integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== + dependencies: + mdn-data "2.0.14" + source-map "^0.6.1" + +css-what@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-5.1.0.tgz#3f7b707aadf633baf62c2ceb8579b545bb40f7fe" + integrity sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw== + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +cssnano-preset-default@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.2.0.tgz#2579d38b9217746f2cf9f938954a91e00418ded6" + integrity sha512-3N5Vcptj2pqVKpHVqH6ezOJvqikR2PdLTbTrsrhF61FbLRQuujAqZ2sKN5rvcMsb7hFjrNnjZT8CGEkxoN/Pwg== + dependencies: + css-declaration-sorter "^6.0.3" + cssnano-utils "^3.1.0" + postcss-calc "^8.2.3" + postcss-colormin "^5.3.0" + postcss-convert-values "^5.1.0" + postcss-discard-comments "^5.1.0" + postcss-discard-duplicates "^5.1.0" + postcss-discard-empty "^5.1.0" + postcss-discard-overridden "^5.1.0" + postcss-merge-longhand "^5.1.0" + postcss-merge-rules "^5.1.0" + postcss-minify-font-values "^5.1.0" + postcss-minify-gradients "^5.1.0" + postcss-minify-params "^5.1.0" + postcss-minify-selectors "^5.2.0" + postcss-normalize-charset "^5.1.0" + postcss-normalize-display-values "^5.1.0" + postcss-normalize-positions "^5.1.0" + postcss-normalize-repeat-style "^5.1.0" + postcss-normalize-string "^5.1.0" + postcss-normalize-timing-functions "^5.1.0" + postcss-normalize-unicode "^5.1.0" + postcss-normalize-url "^5.1.0" + postcss-normalize-whitespace "^5.1.0" + postcss-ordered-values "^5.1.0" + postcss-reduce-initial "^5.1.0" + postcss-reduce-transforms "^5.1.0" + postcss-svgo "^5.1.0" + postcss-unique-selectors "^5.1.0" + +cssnano-utils@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-3.1.0.tgz#95684d08c91511edfc70d2636338ca37ef3a6861" + integrity sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA== + +cssnano@^5.0.15: + version "5.1.0" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.1.0.tgz#cf977d660a5824d0d5542639ed1d4045afd84cbe" + integrity sha512-wWxave1wMlThGg4ueK98jFKaNqXnQd1nVZpSkQ9XvR+YymlzP1ofWqES1JkHtI250LksP9z5JH+oDcrKDJezAg== + dependencies: + cssnano-preset-default "^5.2.0" + lilconfig "^2.0.3" + yaml "^1.10.2" + +csso@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" + integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== + dependencies: + css-tree "^1.1.2" + +debug@2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@^3.2.7: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +decompress-response@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" + integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= + dependencies: + mimic-response "^1.0.0" + +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + +defer-to-connect@^1.0.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" + integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + +destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= + +detect-libc@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= + +dom-serializer@^1.0.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.3.2.tgz#6206437d32ceefaec7161803230c7a20bc1b4d91" + integrity sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.2.0" + entities "^2.0.0" + +domelementtype@^2.0.1, domelementtype@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57" + integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A== + +domhandler@^4.2.0, domhandler@^4.2.2, domhandler@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.0.tgz#16c658c626cf966967e306f966b431f77d4a5626" + integrity sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g== + dependencies: + domelementtype "^2.2.0" + +domutils@^2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" + integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== + dependencies: + dom-serializer "^1.0.1" + domelementtype "^2.2.0" + domhandler "^4.2.0" + +dot-prop@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" + integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== + dependencies: + is-obj "^2.0.0" + +dotenv-expand@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0" + integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA== + +dotenv@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-7.0.0.tgz#a2be3cd52736673206e8a85fb5210eea29628e7c" + integrity sha512-M3NhsLbV1i6HuGzBUH8vXrtxOk+tWmzWKDMbAVSUp3Zsjm7ywFeuwrUXhmhQyRK1q5B5GGy7hcXPbj3bnfZg2g== + +duplexer3@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" + integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + +electron-to-chromium@^1.4.71: + version "1.4.75" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.75.tgz#d1ad9bb46f2f1bf432118c2be21d27ffeae82fdd" + integrity sha512-LxgUNeu3BVU7sXaKjUDD9xivocQLxFtq6wgERrutdY/yIOps3ODOZExK1jg8DTEg4U8TUCb5MLGeWFOYuxjF3Q== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + +end-of-stream@^1.1.0: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +entities@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" + integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== + +entities@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/entities/-/entities-3.0.1.tgz#2b887ca62585e96db3903482d336c1006c3001d4" + integrity sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q== + +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-goat@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675" + integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q== + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + +express@^4.17.3: + version "4.17.3" + resolved "https://registry.yarnpkg.com/express/-/express-4.17.3.tgz#f6c7302194a4fb54271b73a1fe7a06478c8f85a1" + integrity sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg== + dependencies: + accepts "~1.3.8" + array-flatten "1.1.1" + body-parser "1.19.2" + content-disposition "0.5.4" + content-type "~1.0.4" + cookie "0.4.2" + cookie-signature "1.0.6" + debug "2.6.9" + depd "~1.1.2" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "~1.1.2" + fresh "0.5.2" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.7" + qs "6.9.7" + range-parser "~1.2.1" + safe-buffer "5.2.1" + send "0.17.2" + serve-static "1.14.2" + setprototypeof "1.2.0" + statuses "~1.5.0" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.3" + statuses "~1.5.0" + unpipe "~1.0.0" + +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + +fsevents@~2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + +get-port@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/get-port/-/get-port-4.2.0.tgz#e37368b1e863b7629c43c5a323625f95cf24b119" + integrity sha512-/b3jarXkH8KJoOMQc3uVGHASwGLPq3gSFJ7tgJm2diza+bydJPTGOibin2steecKeOylE8oY2JERlVWkAJO6yw== + +get-stream@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + +get-stream@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + dependencies: + pump "^3.0.0" + +glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +global-dirs@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.0.tgz#70a76fe84ea315ab37b1f5576cbde7d48ef72686" + integrity sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA== + dependencies: + ini "2.0.0" + +globals@^13.2.0: + version "13.12.1" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.12.1.tgz#ec206be932e6c77236677127577aa8e50bf1c5cb" + integrity sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw== + dependencies: + type-fest "^0.20.2" + +got@^9.6.0: + version "9.6.0" + resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" + integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== + dependencies: + "@sindresorhus/is" "^0.14.0" + "@szmarczak/http-timer" "^1.1.2" + cacheable-request "^6.0.0" + decompress-response "^3.3.0" + duplexer3 "^0.1.4" + get-stream "^4.1.0" + lowercase-keys "^1.0.1" + mimic-response "^1.0.1" + p-cancelable "^1.0.0" + to-readable-stream "^1.0.0" + url-parse-lax "^3.0.0" + +graceful-fs@^4.1.2: + version "4.2.9" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96" + integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-yarn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" + integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== + +htmlnano@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/htmlnano/-/htmlnano-2.0.0.tgz#07376faa064f7e1e832dfd91e1a9f606b0bc9b78" + integrity sha512-thKQfhcp2xgtsWNE27A2bliEeqVL5xjAgGn0wajyttvFFsvFWWah1ntV9aEX61gz0T6MBQ5xK/1lXuEumhJTcg== + dependencies: + cosmiconfig "^7.0.1" + posthtml "^0.16.5" + timsort "^0.3.0" + +htmlparser2@^7.1.1: + version "7.2.0" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-7.2.0.tgz#8817cdea38bbc324392a90b1990908e81a65f5a5" + integrity sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.2.2" + domutils "^2.8.0" + entities "^3.0.1" + +http-cache-semantics@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" + integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== + +http-errors@1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.1.tgz#7c3f28577cbc8a207388455dbd62295ed07bd68c" + integrity sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.1" + +iconv-lite@0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +ignore-by-default@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" + integrity sha1-SMptcvbGo68Aqa1K5odr44ieKwk= + +import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-lazy@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" + integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +inherits@2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +ini@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" + integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== + +ini@~1.3.0: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-ci@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" + integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== + dependencies: + ci-info "^2.0.0" + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-installed-globally@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520" + integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ== + dependencies: + global-dirs "^3.0.0" + is-path-inside "^3.0.2" + +is-json@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-json/-/is-json-2.0.1.tgz#6be166d144828a131d686891b983df62c39491ff" + integrity sha1-a+Fm0USCihMdaGiRuYPfYsOUkf8= + +is-npm@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-5.0.0.tgz#43e8d65cc56e1b67f8d47262cf667099193f45a8" + integrity sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA== + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== + +is-path-inside@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + +is-typedarray@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + +is-yarn-global@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" + integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +json-buffer@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" + integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= + +json-parse-even-better-errors@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json-source-map@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/json-source-map/-/json-source-map-0.6.1.tgz#e0b1f6f4ce13a9ad57e2ae165a24d06e62c79a0f" + integrity sha512-1QoztHPsMQqhDq0hlXY5ZqcEdUzxQEIxgFkKl4WUp2pgShObl+9ovi4kRh2TfvAfxAoHOJ9vIMEqk3k4iex7tg== + +json5@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" + integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== + dependencies: + minimist "^1.2.5" + +keyv@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" + integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== + dependencies: + json-buffer "3.0.0" + +latest-version@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" + integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== + dependencies: + package-json "^6.3.0" + +lilconfig@^2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.4.tgz#f4507d043d7058b380b6a8f5cb7bcd4b34cee082" + integrity sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA== + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +lmdb@^2.0.2: + version "2.2.4" + resolved "https://registry.yarnpkg.com/lmdb/-/lmdb-2.2.4.tgz#6494d5a1d1db152e0be759edcfa06893e4cbdb53" + integrity sha512-gto+BB2uEob8qRiTlOq+R3uX0YNHsX9mjxj9Sbdue/LIKqu6IlZjrsjKeGyOMquc/474GEqFyX2pdytpydp0rQ== + dependencies: + msgpackr "^1.5.4" + nan "^2.14.2" + node-gyp-build "^4.2.3" + ordered-binary "^1.2.4" + weak-lru-cache "^1.2.2" + +lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= + +lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" + integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== + +lowercase-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" + integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +make-dir@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== + dependencies: + semver "^6.0.0" + +mdn-data@2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" + integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= + +mime-db@1.51.0: + version "1.51.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.51.0.tgz#d9ff62451859b18342d960850dc3cfb77e63fb0c" + integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g== + +mime-types@~2.1.24, mime-types@~2.1.34: + version "2.1.34" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.34.tgz#5a712f9ec1503511a945803640fafe09d3793c24" + integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A== + dependencies: + mime-db "1.51.0" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mimic-response@^1.0.0, mimic-response@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" + integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== + +minimatch@^3.0.4: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.2.0, minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@2.1.3, ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +msgpackr-extract@^1.0.14: + version "1.0.16" + resolved "https://registry.yarnpkg.com/msgpackr-extract/-/msgpackr-extract-1.0.16.tgz#701c4f6e6f25c100ae84557092274e8fffeefe45" + integrity sha512-fxdRfQUxPrL/TizyfYfMn09dK58e+d65bRD/fcaVH4052vj30QOzzqxcQIS7B0NsqlypEQ/6Du3QmP2DhWFfCA== + dependencies: + nan "^2.14.2" + node-gyp-build "^4.2.3" + +msgpackr@^1.5.1, msgpackr@^1.5.4: + version "1.5.4" + resolved "https://registry.yarnpkg.com/msgpackr/-/msgpackr-1.5.4.tgz#2b6ea6cb7d79c0ad98fc76c68163c48eda50cf0d" + integrity sha512-Z7w5Jg+2Q9z9gJxeM68d7tSuWZZGnFIRhZnyqcZCa/1dKkhOCNvR1TUV3zzJ3+vj78vlwKRzUgVDlW4jiSOeDA== + optionalDependencies: + msgpackr-extract "^1.0.14" + +nan@^2.14.2: + version "2.15.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee" + integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== + +nanoid@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.1.tgz#6347a18cac88af88f58af0b3594b723d5e99bb35" + integrity sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw== + +negotiator@0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + +node-addon-api@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161" + integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A== + +node-gyp-build@^4.2.3, node-gyp-build@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.3.0.tgz#9f256b03e5826150be39c764bf51e993946d71a3" + integrity sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q== + +node-releases@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.2.tgz#7139fe71e2f4f11b47d4d2986aaf8c48699e0c01" + integrity sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg== + +nodemon@^2.0.15: + version "2.0.15" + resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-2.0.15.tgz#504516ce3b43d9dc9a955ccd9ec57550a31a8d4e" + integrity sha512-gdHMNx47Gw7b3kWxJV64NI+Q5nfl0y5DgDbiVtShiwa7Z0IZ07Ll4RLFo6AjrhzMtoEZn5PDE3/c2AbVsiCkpA== + dependencies: + chokidar "^3.5.2" + debug "^3.2.7" + ignore-by-default "^1.0.1" + minimatch "^3.0.4" + pstree.remy "^1.1.8" + semver "^5.7.1" + supports-color "^5.5.0" + touch "^3.1.0" + undefsafe "^2.0.5" + update-notifier "^5.1.0" + +nopt@~1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" + integrity sha1-bd0hvSoxQXuScn3Vhfim83YI6+4= + dependencies: + abbrev "1" + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-url@^4.1.0: + version "4.5.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" + integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== + +normalize-url@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" + integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== + +nth-check@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.1.tgz#2efe162f5c3da06a28959fbd3db75dbeea9f0fc2" + integrity sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w== + dependencies: + boolbase "^1.0.0" + +nullthrows@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/nullthrows/-/nullthrows-1.1.1.tgz#7818258843856ae971eae4208ad7d7eb19a431b1" + integrity sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw== + +object-assign@^4: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= + dependencies: + ee-first "1.1.1" + +once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +ordered-binary@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/ordered-binary/-/ordered-binary-1.2.4.tgz#51d3a03af078a0bdba6c7bc8f4fedd1f5d45d83e" + integrity sha512-A/csN0d3n+igxBPfUrjbV5GC69LWj2pjZzAAeeHXLukQ4+fytfP4T1Lg0ju7MSPSwq7KtHkGaiwO8URZN5IpLg== + +p-cancelable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" + integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== + +package-json@^6.3.0: + version "6.5.0" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0" + integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ== + dependencies: + got "^9.6.0" + registry-auth-token "^4.0.0" + registry-url "^5.0.0" + semver "^6.2.0" + +parcel@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/parcel/-/parcel-2.3.2.tgz#d1cb475f27edae981edea7a7104e04d3a35a87ca" + integrity sha512-4jhgoBcQaiGKmnmBvNyKyOvZrxCgzgUzdEoVup/fRCOP99hNmvYIN5IErIIJxsU9ObcG/RGCFF8wa4kVRsWfIg== + dependencies: + "@parcel/config-default" "2.3.2" + "@parcel/core" "2.3.2" + "@parcel/diagnostic" "2.3.2" + "@parcel/events" "2.3.2" + "@parcel/fs" "2.3.2" + "@parcel/logger" "2.3.2" + "@parcel/package-manager" "2.3.2" + "@parcel/reporter-cli" "2.3.2" + "@parcel/reporter-dev-server" "2.3.2" + "@parcel/utils" "2.3.2" + chalk "^4.1.0" + commander "^7.0.0" + get-port "^4.2.0" + v8-compile-cache "^2.0.0" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-json@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + +picomatch@^2.0.4, picomatch@^2.2.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +postcss-calc@^8.2.3: + version "8.2.4" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-8.2.4.tgz#77b9c29bfcbe8a07ff6693dc87050828889739a5" + integrity sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q== + dependencies: + postcss-selector-parser "^6.0.9" + postcss-value-parser "^4.2.0" + +postcss-colormin@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-5.3.0.tgz#3cee9e5ca62b2c27e84fce63affc0cfb5901956a" + integrity sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg== + dependencies: + browserslist "^4.16.6" + caniuse-api "^3.0.0" + colord "^2.9.1" + postcss-value-parser "^4.2.0" + +postcss-convert-values@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-5.1.0.tgz#f8d3abe40b4ce4b1470702a0706343eac17e7c10" + integrity sha512-GkyPbZEYJiWtQB0KZ0X6qusqFHUepguBCNFi9t5JJc7I2OTXG7C0twbTLvCfaKOLl3rSXmpAwV7W5txd91V84g== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-discard-comments@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-5.1.0.tgz#87be4e0953bf599935837b940c701f8d4eca7d0b" + integrity sha512-L0IKF4jAshRyn03SkEO6ar/Ipz2oLywVbg2THf2EqqdNkBwmVMxuTR/RoAltOw4piiaLt3gCAdrbAqmTBInmhg== + +postcss-discard-duplicates@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz#9eb4fe8456706a4eebd6d3b7b777d07bad03e848" + integrity sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw== + +postcss-discard-empty@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-5.1.0.tgz#7f51b16cd1b89f8180bbc7cee34d6cbabf2ef810" + integrity sha512-782T/buGgb3HOuHOJAHpdyKzAAKsv/BxWqsutnZ+QsiHEcDkY7v+6WWdturuBiSal6XMOO1p1aJvwXdqLD5vhA== + +postcss-discard-overridden@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz#7e8c5b53325747e9d90131bb88635282fb4a276e" + integrity sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw== + +postcss-merge-longhand@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.1.0.tgz#f716bffbf0bdfbde6ea78c36088e21559f8a0a95" + integrity sha512-Gr46srN2tsLD8fudKYoHO56RG0BLQ2nsBRnSZGY04eNBPwTeWa9KeHrbL3tOLAHyB2aliikycPH2TMJG1U+W6g== + dependencies: + postcss-value-parser "^4.2.0" + stylehacks "^5.1.0" + +postcss-merge-rules@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-5.1.0.tgz#a2d5117eba09c8686a5471d97bd9afcf30d1b41f" + integrity sha512-NecukEJovQ0mG7h7xV8wbYAkXGTO3MPKnXvuiXzOKcxoOodfTTKYjeo8TMhAswlSkjcPIBlnKbSFcTuVSDaPyQ== + dependencies: + browserslist "^4.16.6" + caniuse-api "^3.0.0" + cssnano-utils "^3.1.0" + postcss-selector-parser "^6.0.5" + +postcss-minify-font-values@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz#f1df0014a726083d260d3bd85d7385fb89d1f01b" + integrity sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-minify-gradients@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-5.1.0.tgz#de0260a67a13b7b321a8adc3150725f2c6612377" + integrity sha512-J/TMLklkONn3LuL8wCwfwU8zKC1hpS6VcxFkNUNjmVt53uKqrrykR3ov11mdUYyqVMEx67slMce0tE14cE4DTg== + dependencies: + colord "^2.9.1" + cssnano-utils "^3.1.0" + postcss-value-parser "^4.2.0" + +postcss-minify-params@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-5.1.0.tgz#e0b1f4e05cfd396682f612856485907e4064f25e" + integrity sha512-q67dcts4Hct6x8+JmhBgctHkbvUsqGIg2IItenjE63iZXMbhjr7AlVZkNnKtIGt/1Wsv7p/7YzeSII6Q+KPXRg== + dependencies: + browserslist "^4.16.6" + cssnano-utils "^3.1.0" + postcss-value-parser "^4.2.0" + +postcss-minify-selectors@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-5.2.0.tgz#17c2be233e12b28ffa8a421a02fc8b839825536c" + integrity sha512-vYxvHkW+iULstA+ctVNx0VoRAR4THQQRkG77o0oa4/mBS0OzGvvzLIvHDv/nNEM0crzN2WIyFU5X7wZhaUK3RA== + dependencies: + postcss-selector-parser "^6.0.5" + +postcss-normalize-charset@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz#9302de0b29094b52c259e9b2cf8dc0879879f0ed" + integrity sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg== + +postcss-normalize-display-values@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz#72abbae58081960e9edd7200fcf21ab8325c3da8" + integrity sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-positions@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-5.1.0.tgz#902a7cb97cf0b9e8b1b654d4a43d451e48966458" + integrity sha512-8gmItgA4H5xiUxgN/3TVvXRoJxkAWLW6f/KKhdsH03atg0cB8ilXnrB5PpSshwVu/dD2ZsRFQcR1OEmSBDAgcQ== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-repeat-style@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.0.tgz#f6d6fd5a54f51a741cc84a37f7459e60ef7a6398" + integrity sha512-IR3uBjc+7mcWGL6CtniKNQ4Rr5fTxwkaDHwMBDGGs1x9IVRkYIT/M4NelZWkAOBdV6v3Z9S46zqaKGlyzHSchw== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-string@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz#411961169e07308c82c1f8c55f3e8a337757e228" + integrity sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-timing-functions@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz#d5614410f8f0b2388e9f240aa6011ba6f52dafbb" + integrity sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-unicode@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.0.tgz#3d23aede35e160089a285e27bf715de11dc9db75" + integrity sha512-J6M3MizAAZ2dOdSjy2caayJLQT8E8K9XjLce8AUQMwOrCvjCHv24aLC/Lps1R1ylOfol5VIDMaM/Lo9NGlk1SQ== + dependencies: + browserslist "^4.16.6" + postcss-value-parser "^4.2.0" + +postcss-normalize-url@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz#ed9d88ca82e21abef99f743457d3729a042adcdc" + integrity sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew== + dependencies: + normalize-url "^6.0.1" + postcss-value-parser "^4.2.0" + +postcss-normalize-whitespace@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.0.tgz#aed8b4580c9ad6e8eac034177291187ea16a059c" + integrity sha512-7O1FanKaJkpWFyCghFzIkLhehujV/frGkdofGLwhg5upbLyGsSfiTcZAdSzoPsSUgyPCkBkNMeWR8yVgPdQybg== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-ordered-values@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-5.1.0.tgz#04ef429e0991b0292bc918b135cd4c038f7b889f" + integrity sha512-wU4Z4D4uOIH+BUKkYid36gGDJNQtkVJT7Twv8qH6UyfttbbJWyw4/xIPuVEkkCtQLAJ0EdsNSh8dlvqkXb49TA== + dependencies: + cssnano-utils "^3.1.0" + postcss-value-parser "^4.2.0" + +postcss-reduce-initial@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-5.1.0.tgz#fc31659ea6e85c492fb2a7b545370c215822c5d6" + integrity sha512-5OgTUviz0aeH6MtBjHfbr57tml13PuedK/Ecg8szzd4XRMbYxH4572JFG067z+FqBIf6Zp/d+0581glkvvWMFw== + dependencies: + browserslist "^4.16.6" + caniuse-api "^3.0.0" + +postcss-reduce-transforms@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz#333b70e7758b802f3dd0ddfe98bb1ccfef96b6e9" + integrity sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5, postcss-selector-parser@^6.0.9: + version "6.0.9" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.9.tgz#ee71c3b9ff63d9cd130838876c13a2ec1a992b2f" + integrity sha512-UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-svgo@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-5.1.0.tgz#0a317400ced789f233a28826e77523f15857d80d" + integrity sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA== + dependencies: + postcss-value-parser "^4.2.0" + svgo "^2.7.0" + +postcss-unique-selectors@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-5.1.0.tgz#70a945da1b0599d00f617222a44ba1d82a676694" + integrity sha512-LmUhgGobtpeVJJHuogzjLRwJlN7VH+BL5c9GKMVJSS/ejoyePZkXvNsYUtk//F6vKOGK86gfRS0xH7fXQSDtvA== + dependencies: + postcss-selector-parser "^6.0.5" + +postcss-value-parser@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" + integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== + +postcss@^8.4.5: + version "8.4.7" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.7.tgz#f99862069ec4541de386bf57f5660a6c7a0875a8" + integrity sha512-L9Ye3r6hkkCeOETQX6iOaWZgjp3LL6Lpqm6EtgbKrgqGGteRMNb9vzBfRL96YOSu8o7x3MfIH9Mo5cPJFGrW6A== + dependencies: + nanoid "^3.3.1" + picocolors "^1.0.0" + source-map-js "^1.0.2" + +posthtml-parser@^0.10.1: + version "0.10.2" + resolved "https://registry.yarnpkg.com/posthtml-parser/-/posthtml-parser-0.10.2.tgz#df364d7b179f2a6bf0466b56be7b98fd4e97c573" + integrity sha512-PId6zZ/2lyJi9LiKfe+i2xv57oEjJgWbsHGGANwos5AvdQp98i6AtamAl8gzSVFGfQ43Glb5D614cvZf012VKg== + dependencies: + htmlparser2 "^7.1.1" + +posthtml-parser@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/posthtml-parser/-/posthtml-parser-0.11.0.tgz#25d1c7bf811ea83559bc4c21c189a29747a24b7a" + integrity sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw== + dependencies: + htmlparser2 "^7.1.1" + +posthtml-render@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/posthtml-render/-/posthtml-render-3.0.0.tgz#97be44931496f495b4f07b99e903cc70ad6a3205" + integrity sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA== + dependencies: + is-json "^2.0.1" + +posthtml@^0.16.4, posthtml@^0.16.5: + version "0.16.6" + resolved "https://registry.yarnpkg.com/posthtml/-/posthtml-0.16.6.tgz#e2fc407f67a64d2fa3567afe770409ffdadafe59" + integrity sha512-JcEmHlyLK/o0uGAlj65vgg+7LIms0xKXe60lcDOTU7oVX/3LuEuLwrQpW3VJ7de5TaFKiW4kWkaIpJL42FEgxQ== + dependencies: + posthtml-parser "^0.11.0" + posthtml-render "^3.0.0" + +prepend-http@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" + integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= + +proxy-addr@~2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + dependencies: + forwarded "0.2.0" + ipaddr.js "1.9.1" + +pstree.remy@^1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.8.tgz#c242224f4a67c21f686839bbdb4ac282b8373d3a" + integrity sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w== + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pupa@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/pupa/-/pupa-2.1.1.tgz#f5e8fd4afc2c5d97828faa523549ed8744a20d62" + integrity sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A== + dependencies: + escape-goat "^2.0.0" + +qs@6.9.7: + version "6.9.7" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.7.tgz#4610846871485e1e048f44ae3b94033f0e675afe" + integrity sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw== + +range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.4.3: + version "2.4.3" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.3.tgz#8f80305d11c2a0a545c2d9d89d7a0286fcead43c" + integrity sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g== + dependencies: + bytes "3.1.2" + http-errors "1.8.1" + iconv-lite "0.4.24" + unpipe "1.0.0" + +rc@^1.2.8: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +react-refresh@^0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.9.0.tgz#71863337adc3e5c2f8a6bfddd12ae3bfe32aafbf" + integrity sha512-Gvzk7OZpiqKSkxsQvO/mbTN1poglhmAV7gR/DdIrRrSMXraRQQlfikRJOr3Nb9GTMPC5kof948Zy6jJZIFtDvQ== + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +regenerator-runtime@^0.13.7: + version "0.13.9" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" + integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== + +registry-auth-token@^4.0.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.1.tgz#6d7b4006441918972ccd5fedcd41dc322c79b250" + integrity sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw== + dependencies: + rc "^1.2.8" + +registry-url@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009" + integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw== + dependencies: + rc "^1.2.8" + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +responselike@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" + integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= + dependencies: + lowercase-keys "^1.0.0" + +safe-buffer@5.2.1, safe-buffer@^5.0.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +"safer-buffer@>= 2.1.2 < 3": + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +semver-diff@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b" + integrity sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg== + dependencies: + semver "^6.3.0" + +semver@^5.7.0, semver@^5.7.1: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +semver@^7.3.4: + version "7.3.5" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" + integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== + dependencies: + lru-cache "^6.0.0" + +send@0.17.2: + version "0.17.2" + resolved "https://registry.yarnpkg.com/send/-/send-0.17.2.tgz#926622f76601c41808012c8bf1688fe3906f7820" + integrity sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww== + dependencies: + debug "2.6.9" + depd "~1.1.2" + destroy "~1.0.4" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "1.8.1" + mime "1.6.0" + ms "2.1.3" + on-finished "~2.3.0" + range-parser "~1.2.1" + statuses "~1.5.0" + +serve-static@1.14.2: + version "1.14.2" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.2.tgz#722d6294b1d62626d41b43a013ece4598d292bfa" + integrity sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.17.2" + +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + +signal-exit@^3.0.2: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +source-map-js@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" + integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== + +source-map-support@~0.5.20: + version "0.5.21" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.6.0, source-map@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@~0.7.2: + version "0.7.3" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" + integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== + +stable@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" + integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== + +"statuses@>= 1.5.0 < 2", statuses@~1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + +string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.2: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= + +stylehacks@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-5.1.0.tgz#a40066490ca0caca04e96c6b02153ddc39913520" + integrity sha512-SzLmvHQTrIWfSgljkQCw2++C9+Ne91d/6Sp92I8c5uHTcy/PgeHamwITIbBW9wnFTY/3ZfSXR9HIL6Ikqmcu6Q== + dependencies: + browserslist "^4.16.6" + postcss-selector-parser "^6.0.4" + +supports-color@^5.3.0, supports-color@^5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +svgo@^2.4.0, svgo@^2.7.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.8.0.tgz#4ff80cce6710dc2795f0c7c74101e6764cfccd24" + integrity sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg== + dependencies: + "@trysound/sax" "0.2.0" + commander "^7.2.0" + css-select "^4.1.3" + css-tree "^1.1.3" + csso "^4.2.0" + picocolors "^1.0.0" + stable "^0.1.8" + +terser@^5.2.0: + version "5.12.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.12.0.tgz#728c6bff05f7d1dcb687d8eace0644802a9dae8a" + integrity sha512-R3AUhNBGWiFc77HXag+1fXpAxTAFRQTJemlJKjAgD9r8xXTpjNKqIXwHM/o7Rh+O0kUJtS3WQVdBeMKFk5sw9A== + dependencies: + acorn "^8.5.0" + commander "^2.20.0" + source-map "~0.7.2" + source-map-support "~0.5.20" + +timsort@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" + integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= + +to-readable-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" + integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + +touch@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b" + integrity sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA== + dependencies: + nopt "~1.0.10" + +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + +type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + +typescript@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.6.2.tgz#fe12d2727b708f4eef40f51598b3398baa9611d4" + integrity sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg== + +undefsafe@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.5.tgz#38733b9327bdcd226db889fb723a6efd162e6e2c" + integrity sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA== + +unique-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" + integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== + dependencies: + crypto-random-string "^2.0.0" + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + +update-notifier@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-5.1.0.tgz#4ab0d7c7f36a231dd7316cf7729313f0214d9ad9" + integrity sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw== + dependencies: + boxen "^5.0.0" + chalk "^4.1.0" + configstore "^5.0.1" + has-yarn "^2.1.0" + import-lazy "^2.1.0" + is-ci "^2.0.0" + is-installed-globally "^0.4.0" + is-npm "^5.0.0" + is-yarn-global "^0.3.0" + latest-version "^5.1.0" + pupa "^2.1.1" + semver "^7.3.4" + semver-diff "^3.1.1" + xdg-basedir "^4.0.0" + +url-parse-lax@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" + integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= + dependencies: + prepend-http "^2.0.0" + +util-deprecate@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +utility-types@^3.10.0: + version "3.10.0" + resolved "https://registry.yarnpkg.com/utility-types/-/utility-types-3.10.0.tgz#ea4148f9a741015f05ed74fd615e1d20e6bed82b" + integrity sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg== + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + +v8-compile-cache@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" + integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== + +vary@^1, vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + +weak-lru-cache@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/weak-lru-cache/-/weak-lru-cache-1.2.2.tgz#fdbb6741f36bae9540d12f480ce8254060dccd19" + integrity sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw== + +widest-line@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" + integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== + dependencies: + string-width "^4.0.0" + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +write-file-atomic@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" + integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== + dependencies: + imurmurhash "^0.1.4" + is-typedarray "^1.0.0" + signal-exit "^3.0.2" + typedarray-to-buffer "^3.1.5" + +xdg-basedir@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" + integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== + +xxhash-wasm@^0.4.2: + version "0.4.2" + resolved "https://registry.yarnpkg.com/xxhash-wasm/-/xxhash-wasm-0.4.2.tgz#752398c131a4dd407b5132ba62ad372029be6f79" + integrity sha512-/eyHVRJQCirEkSZ1agRSCwriMhwlyUcFkXD5TPVSLP+IPzjsqMVzZwdoczLp1SoQU0R3dxz1RpIK+4YNQbCVOA== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yaml@^1.10.0, yaml@^1.10.2: + version "1.10.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" + integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== diff --git a/webapp/.gitignore b/webapp/.gitignore deleted file mode 100644 index ef718b97..00000000 --- a/webapp/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -.parcel-cache -dist -node_modules diff --git a/webapp/src/boot.ts b/webapp/src/boot.ts index e26a7486..a6116180 100644 --- a/webapp/src/boot.ts +++ b/webapp/src/boot.ts @@ -3,7 +3,7 @@ import { HttpRemoteSpace } from "./space"; import { safeRun } from "./util"; let editor = new Editor( - new HttpRemoteSpace(`http://${location.hostname}:2222/fs`), + new HttpRemoteSpace(`http://${location.hostname}:3000/fs`), document.getElementById("root")! ); diff --git a/webapp/src/editor.tsx b/webapp/src/editor.tsx index 530f7697..2791cbc7 100644 --- a/webapp/src/editor.tsx +++ b/webapp/src/editor.tsx @@ -268,6 +268,8 @@ export class Editor implements AppEventDispatcher { key: "Ctrl-.", mac: "Cmd-.", run: (target): boolean => { + console.log("YO"); + this.viewDispatch({ type: "show-palette", }); diff --git a/webapp/src/generated/core.plugin.json b/webapp/src/generated/core.plugin.json index 4e685c2a..48fd3b25 100644 --- a/webapp/src/generated/core.plugin.json +++ b/webapp/src/generated/core.plugin.json @@ -47,62 +47,62 @@ "functions": { "indexLinks": { "path": "core/page.ts", - "code": "(function() {\n const pageLinkRegex = /\\[\\[([\\w\\s\\/\\:,\\.\\-]+)\\]\\]/;\n function syscall(name, ...args) {\n let reqId = Math.floor(Math.random() * 1000000);\n return new Promise((resolve, reject)=>{\n self.dispatchEvent(new CustomEvent(\"syscall\", {\n detail: {\n id: reqId,\n name: name,\n args: args,\n callback: resolve\n }\n }));\n });\n }\n const wikilinkRegex = new RegExp(pageLinkRegex, \"g\");\n async function indexLinks({ name , text }) {\n let backLinks = [];\n for (let match of text.matchAll(wikilinkRegex)){\n let toPage = match[1];\n let pos = match.index;\n backLinks.push({\n key: `pl:${toPage}:${pos}`,\n value: name\n });\n }\n console.log(\"Found\", backLinks.length, \"wiki link(s)\");\n await syscall(\"indexer.batchSet\", name, backLinks);\n }\n async function deletePage() {\n let pageMeta = await syscall(\"editor.getCurrentPage\");\n console.log(\"Navigating to start page\");\n await syscall(\"editor.navigate\", \"start\");\n console.log(\"Deleting page from space\");\n await syscall(\"space.deletePage\", pageMeta.name);\n console.log(\"Reloading page list\");\n await syscall(\"space.reloadPageList\");\n }\n async function renamePage() {\n const pageMeta = await syscall(\"editor.getCurrentPage\");\n const oldName = pageMeta.name;\n console.log(\"Old name is\", oldName);\n const newName = await syscall(\"editor.prompt\", `Rename ${oldName} to:`, oldName);\n if (!newName) {\n return;\n }\n console.log(\"New name\", newName);\n let pagesToUpdate = await getBackLinks(oldName);\n console.log(\"All pages containing backlinks\", pagesToUpdate);\n let text = await syscall(\"editor.getText\");\n console.log(\"Writing new page to space\");\n await syscall(\"space.writePage\", newName, text);\n console.log(\"Deleting page from space\");\n await syscall(\"space.deletePage\", oldName);\n console.log(\"Reloading page list\");\n await syscall(\"space.reloadPageList\");\n console.log(\"Navigating to new page\");\n await syscall(\"editor.navigate\", newName);\n let pageToUpdateSet = new Set();\n for (let pageToUpdate of pagesToUpdate){\n pageToUpdateSet.add(pageToUpdate.page);\n }\n for (let pageToUpdate1 of pageToUpdateSet){\n console.log(\"Now going to update links in\", pageToUpdate1);\n let { text } = await syscall(\"space.readPage\", pageToUpdate1);\n if (!text) {\n continue;\n }\n let newText = text.replaceAll(`[[${oldName}]]`, `[[${newName}]]`);\n if (text !== newText) {\n console.log(\"Changes made, saving...\");\n await syscall(\"space.writePage\", pageToUpdate1, newText);\n }\n }\n }\n async function getBackLinks(pageName) {\n let allBackLinks = await syscall(\"indexer.scanPrefixGlobal\", `pl:${pageName}:`);\n let pagesToUpdate = [];\n for (let { key , value } of allBackLinks){\n let keyParts = key.split(\":\");\n pagesToUpdate.push({\n page: value,\n pos: +keyParts[keyParts.length - 1]\n });\n }\n return pagesToUpdate;\n }\n async function showBackLinks() {\n const pageMeta = await syscall(\"editor.getCurrentPage\");\n let backLinks = await getBackLinks(pageMeta.name);\n console.log(\"Backlinks\", backLinks);\n }\n async function reindex() {\n await syscall(\"space.reindex\");\n }\n return {\n indexLinks: indexLinks,\n deletePage: deletePage,\n renamePage: renamePage,\n showBackLinks: showBackLinks,\n reindex: reindex\n };\n})();\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZpbGU6Ly8vVXNlcnMvemVmL2dpdC9udWdnZXQvd2ViYXBwL3NyYy9jb25zdGFudC50cyIsImZpbGU6Ly8vVXNlcnMvemVmL2dpdC9udWdnZXQvcGx1Z2lucy9jb3JlL2xpYi9zeXNjYWxsLnRzIiwiZmlsZTovLy9Vc2Vycy96ZWYvZ2l0L251Z2dldC9wbHVnaW5zL2NvcmUvcGFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0lBQU8sS0FBSyxDQUFDLGFBQWE7YUNBVixPQUFPLENBQUMsSUFBWSxLQUFLLElBQUksRUFBYyxDQUFDO1FBQzFELEdBQUcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLE9BQU87UUFFOUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sR0FBSyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxhQUFhLENBQ2hCLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBUyxVQUFFLENBQUM7Z0JBQzFCLE1BQU0sRUFBRSxDQUFDO29CQUNQLEVBQUUsRUFBRSxLQUFLO29CQUNULElBQUksRUFBRSxJQUFJO29CQUNWLElBQUksRUFBRSxJQUFJO29CQUNWLFFBQVEsRUFBRSxPQUFPO2dCQUNuQixDQUFDO1lBQ0gsQ0FBQztRQUVMLENBQUM7SUFDSCxDQUFDO0lDWEQsS0FBSyxDQUFDLGFBQWEsR0FBRyxHQUFHLENBQUMsTUFBTSxnQkFBZ0IsQ0FBRzttQkFFN0IsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUUsSUFBSSxFQUFhLENBQUMsRUFBRSxDQUFDO1FBQzVELEdBQUcsQ0FBQyxTQUFTLEdBQXFDLENBQUMsQ0FBQztRQUNwRCxHQUFHLEVBQUUsR0FBRyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRyxDQUFDO1lBQy9DLEdBQUcsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUM7WUFDcEIsR0FBRyxDQUFDLEdBQUcs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\n", + "code": "(()=>{var r=Object.defineProperty;var w=Object.getOwnPropertyDescriptor;var k=Object.getOwnPropertyNames;var f=Object.prototype.hasOwnProperty;var m=a=>r(a,\"__esModule\",{value:!0});var x=(a,e)=>{for(var t in e)r(a,t,{get:e[t],enumerable:!0})},u=(a,e,t,o)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let i of k(e))!f.call(a,i)&&(t||i!==\"default\")&&r(a,i,{get:()=>e[i],enumerable:!(o=w(e,i))||o.enumerable});return a};var P=(a=>(e,t)=>a&&a.get(e)||(t=u(m({}),e,1),a&&a.set(e,t),t))(typeof WeakMap!=\"undefined\"?new WeakMap:0);var R={};x(R,{deletePage:()=>h,indexLinks:()=>L,reindex:()=>B,renamePage:()=>v,showBackLinks:()=>b});var p=/\\[\\[([\\w\\s\\/\\:,\\.\\-]+)\\]\\]/;function n(a,...e){let t=Math.floor(Math.random()*1e6);return new Promise((o,i)=>{self.dispatchEvent(new CustomEvent(\"syscall\",{detail:{id:t,name:a,args:e,callback:o}}))})}var y=new RegExp(p,\"g\");async function L({name:a,text:e}){let t=[];for(let o of e.matchAll(y)){let i=o[1],l=o.index;t.push({key:`pl:${i}:${l}`,value:a})}console.log(\"Found\",t.length,\"wiki link(s)\"),await n(\"indexer.batchSet\",a,t)}async function h(){let a=await n(\"editor.getCurrentPage\");console.log(\"Navigating to start page\"),await n(\"editor.navigate\",\"start\"),console.log(\"Deleting page from space\"),await n(\"space.deletePage\",a.name),console.log(\"Reloading page list\"),await n(\"space.reloadPageList\")}async function v(){let e=(await n(\"editor.getCurrentPage\")).name;console.log(\"Old name is\",e);let t=await n(\"editor.prompt\",`Rename ${e} to:`,e);if(!t)return;console.log(\"New name\",t);let o=await d(e);console.log(\"All pages containing backlinks\",o);let i=await n(\"editor.getText\");console.log(\"Writing new page to space\"),await n(\"space.writePage\",t,i),console.log(\"Deleting page from space\"),await n(\"space.deletePage\",e),console.log(\"Reloading page list\"),await n(\"space.reloadPageList\"),console.log(\"Navigating to new page\"),await n(\"editor.navigate\",t);let l=new Set;for(let s of o)l.add(s.page);for(let s of l){console.log(\"Now going to update links in\",s);let{text:g}=await n(\"space.readPage\",s);if(!g)continue;let c=g.replaceAll(`[[${e}]]`,`[[${t}]]`);g!==c&&(console.log(\"Changes made, saving...\"),await n(\"space.writePage\",s,c))}}async function d(a){let e=await n(\"indexer.scanPrefixGlobal\",`pl:${a}:`),t=[];for(let{key:o,value:i}of e){let l=o.split(\":\");t.push({page:i,pos:+l[l.length-1]})}return t}async function b(){let a=await n(\"editor.getCurrentPage\"),e=await d(a.name);console.log(\"Backlinks\",e)}async function B(){await n(\"space.reindex\")}return P(R);})();\n//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiY29yZS9wYWdlLnRzIiwgIi4uL3dlYmFwcC9zcmMvY29uc3RhbnQudHMiLCAiY29yZS9saWIvc3lzY2FsbC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHsgSW5kZXhFdmVudCB9IGZyb20gXCIuLi8uLi93ZWJhcHAvc3JjL2FwcF9ldmVudFwiO1xuaW1wb3J0IHsgcGFnZUxpbmtSZWdleCB9IGZyb20gXCIuLi8uLi93ZWJhcHAvc3JjL2NvbnN0YW50XCI7XG5pbXBvcnQgeyBzeXNjYWxsIH0gZnJvbSBcIi4vbGliL3N5c2NhbGxcIjtcblxuY29uc3Qgd2lraWxpbmtSZWdleCA9IG5ldyBSZWdFeHAocGFnZUxpbmtSZWdleCwgXCJnXCIpO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaW5kZXhMaW5rcyh7IG5hbWUsIHRleHQgfTogSW5kZXhFdmVudCkge1xuICBsZXQgYmFja0xpbmtzOiB7IGtleTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH1bXSA9IFtdO1xuICBmb3IgKGxldCBtYXRjaCBvZiB0ZXh0Lm1hdGNoQWxsKHdpa2lsaW5rUmVnZXgpKSB7XG4gICAgbGV0IHRvUGFnZSA9IG1hdGNoWzFdO1xuICAgIGxldCBwb3MgPSBtYXRjaC5pbmRleCE7XG4gICAgYmFja0xpbmtzLnB1c2goe1xuICAgICAga2V5OiBgcGw6JHt0b1BhZ2V9OiR7cG9zfWAsXG4gICAgICB2YWx1ZTogbmFtZSxcbiAgICB9KTtcbiAgfVxuICBjb25zb2xlLmxvZyhcIkZvdW5kXCIsIGJhY2tMaW5rcy5sZW5ndGgsIFwid2lraSBsaW5rKHMpXCIpO1xuICBhd2FpdCBzeXNjYWxsKFwiaW5kZXhlci5iYXRjaFNldFwiLCBuYW1lLCBiYWNrTGlua3MpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZGVsZXRlUGFnZSgpIHtcbiAgbGV0IHBhZ2VNZXRhID0gYXdhaXQgc3lzY2FsbChcImVkaXRvci5nZXRDdXJyZW50UGFnZVwiKTtcbiAgY29uc29sZS5sb2coXCJOYXZpZ2F0aW5nIHRvIHN0YXJ0IHBhZ2VcIik7XG4gIGF3YWl0IHN5c2NhbGwoXCJlZGl0b3IubmF2aWdhdGVcIiwgXCJzdGFydFwiKTtcbiAgY29uc29sZS5sb2coXCJEZWxldGluZyBwYWdlIGZyb20gc3BhY2VcIik7XG4gIGF3YWl0IHN5c2NhbGwoXCJzcGFjZS5kZWxldGVQYWdlXCIsIHBhZ2VNZXRhLm5hbWUpO1xuICBjb25zb2xlLmxvZyhcIlJlbG9hZGluZyBwYWdlIGxpc3RcIik7XG4gIGF3YWl0IHN5c2NhbGwoXCJzcGFjZS5yZWxvYWRQYWdlTGlzdFwiKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlbmFtZVBhZ2UoKSB7XG4gIGNvbnN0IHBhZ2VNZXRhID0gYXdhaXQgc3lzY2FsbChcImVkaXRvci5nZXRDdXJyZW50UGFnZVwiKTtcbiAgY29uc3Qgb2xkTmFtZSA9IHBhZ2VNZXRhLm5hbWU7XG4gIGNvbnNvbGUubG9nKFwiT2xkIG5hbWUgaXNcIiwgb2xkTmFtZSk7XG4gIGNvbnN0IG5ld05hbWUgPSBhd2FpdCBzeXNjYWxsKFxuICAgIFwiZWRpdG9yLnByb21wdFwiLFxuICAgIGBSZW5hbWUgJHtvbGROYW1lfSB0bzpgLFxuICAgIG9sZE5hbWVcbiAgKTtcbiAgaWYgKCFuZXdOYW1lKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGNvbnNvbGUubG9nKFwiTmV3IG5hbWVcIiwgbmV3TmFtZSk7XG5cbiAgbGV0IHBhZ2VzVG9VcGRhdGUgPSBhd2FpdCBnZXRCYWNrTGlua3Mob2xkTmFtZSk7XG4gIGNvbnNvbGUubG9nKFwiQWxsIHBhZ2VzIGNvbnRhaW5pbmcgYmFja2xpbmtzXCIsIHBhZ2VzVG9VcGRhdGUpO1xuXG4gIGxldCB0ZXh0ID0gYXdhaXQgc3lzY2FsbChcImVkaXRvci5nZXRUZXh0XCIpO1xuICBjb25zb2xlLmxvZyhcIldyaXRpbmcgbmV3IHBhZ2UgdG8gc3BhY2VcIik7XG4gIGF3YWl0IHN5c2NhbGwoXCJzcGFjZS53cml0ZVBhZ2VcIiwgbmV3TmFtZSwgdGV4dCk7XG4gIGNvbnNvbGUubG9nKFwiRGVsZXRpbmcgcGFnZSBmcm9tIHNwYWNlXCIpO1xuICBhd2FpdCBzeXNjYWxsKFwic3BhY2UuZGVsZXRlUGFnZVwiLCBvbGROYW1lKTtcbiAgY29uc29sZS5sb2coXCJSZWxvYWRpbmcgcGFnZSBsaXN0XCIpO1xuICBhd2FpdCBzeXNjYWxsKFwic3BhY2UucmVsb2FkUGFnZUxpc3RcIik7XG4gIGNvbnNvbGUubG9nKFwiTmF2aWdhdGluZyB0byBuZXcgcGFnZVwiKTtcbiAgYXdhaXQgc3lzY2FsbChcImVkaXRvci5uYXZpZ2F0ZVwiLCBuZXdOYW1lKTtcblxuICBsZXQgcGFnZVRvVXBkYXRlU2V0ID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIGZvciAobGV0IHBhZ2VUb1VwZGF0ZSBvZiBwYWdlc1RvVXBkYXRlKSB7XG4gICAgcGFnZVRvVXBkYXRlU2V0LmFkZChwYWdlVG9VcGRhdGUucGFnZSk7XG4gIH1cblxuICBmb3IgKGxldCBwYWdlVG9VcGRhdGUgb2YgcGFnZVRvVXBkYXRlU2V0KSB7XG4gICAgY29uc29sZS5sb2coXCJOb3cgZ29pbmcgdG8gdXBkYXRlIGxpbmtzIGluXCIsIHBhZ2VUb1VwZGF0ZSk7XG4gICAgbGV0IHsgdGV4dCB9ID0gYXdhaXQgc3lzY2FsbChcInNwYWNlLnJlYWRQYWdlXCIsIHBhZ2VUb1VwZGF0ZSk7XG4gICAgaWYgKCF0ZXh0KSB7XG4gICAgICAvLyBQYWdlIGxpa2VseSBkb2VzIG5vdCBleGlzdCwgYnV0IGF0IGxlYXN0IHdlIGNhbiBza2lwIGl0XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgbGV0IG5ld1RleHQgPSB0ZXh0LnJlcGxhY2VBbGwoYFtbJHtvbGROYW1lfV1dYCwgYFtbJHtuZXdOYW1lfV1dYCk7XG4gICAgaWYgKHRleHQgIT09IG5ld1RleHQpIHtcbiAgICAgIGNvbnNvbGUubG9nKFwiQ2hhbmdlcyBtYWRlLCBzYXZpbmcuLi5cIik7XG4gICAgICBhd2FpdCBzeXNjYWxsKFwic3BhY2Uud3JpdGVQYWdlXCIsIHBhZ2VUb1VwZGF0ZSwgbmV3VGV4dCk7XG4gICAgfVxuICB9XG59XG5cbnR5cGUgQmFja0xpbmsgPSB7XG4gIHBhZ2U6IHN0cmluZztcbiAgcG9zOiBudW1iZXI7XG59O1xuXG5hc3luYyBmdW5jdGlvbiBnZXRCYWNrTGlua3MocGFnZU5hbWU6IHN0cmluZyk6IFByb21pc2U8QmFja0xpbmtbXT4ge1xuICBsZXQgYWxsQmFja0xpbmtzID0gYXdhaXQgc3lzY2FsbChcbiAgICBcImluZGV4ZXIuc2NhblByZWZpeEdsb2JhbFwiLFxuICAgIGBwbDoke3BhZ2VOYW1lfTpgXG4gICk7XG4gIGxldCBwYWdlc1RvVXBkYXRlOiBCYWNrTGlua1tdID0gW107XG4gIGZvciAobGV0IHsga2V5LCB2YWx1ZSB9IG9mIGFsbEJhY2tMaW5rcykge1xuICAgIGxldCBrZXlQYXJ0cyA9IGtleS5zcGxpdChcIjpcIik7XG4gICAgcGFnZXNUb1VwZGF0ZS5wdXNoKHtcbiAgICAgIHBhZ2U6IHZhbHVlLFxuICAgICAgcG9zOiAra2V5UGFydHNba2V5UGFydHMubGVuZ3RoIC0gMV0sXG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIHBhZ2VzVG9VcGRhdGU7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzaG93QmFja0xpbmtzKCkge1xuICBjb25zdCBwYWdlTWV0YSA9IGF3YWl0IHN5c2NhbGwoXCJlZGl0b3IuZ2V0Q3VycmVudFBhZ2VcIik7XG4gIGxldCBiYWNrTGlua3MgPSBhd2FpdCBnZXRCYWNrTGlua3MocGFnZU1ldGEubmFtZSk7XG5cbiAgY29uc29sZS5sb2coXCJCYWNrbGlua3NcIiwgYmFja0xpbmtzKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlaW5kZXgoKSB7XG4gIGF3YWl0IHN5c2NhbGwoXCJzcGFjZS5yZWluZGV4XCIpO1xufVxuIiwgImV4cG9ydCBjb25zdCBwYWdlTGlua1JlZ2V4ID0gL1xcW1xcWyhbXFx3XFxzXFwvXFw6LFxcLlxcLV0rKVxcXVxcXS87XG4iLCAiZXhwb3J0IGZ1bmN0aW9uIHN5c2NhbGwobmFtZTogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSk6IGFueSB7XG4gIGxldCByZXFJZCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDEwMDAwMDApO1xuICAvLyBjb25zb2xlLmxvZyhcIlN5c2NhbGxcIiwgbmFtZSwgcmVxSWQpO1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIHNlbGYuZGlzcGF0Y2hFdmVudChcbiAgICAgIG5ldyBDdXN0b21FdmVudChcInN5c2NhbGxcIiwge1xuICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICBpZDogcmVxSWQsXG4gICAgICAgICAgbmFtZTogbmFtZSxcbiAgICAgICAgICBhcmdzOiBhcmdzLFxuICAgICAgICAgIGNhbGxiYWNrOiByZXNvbHZlLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICApO1xuICB9KTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI0aEJBQUEscUdDQU8sR0FBTSxHQUFnQiw2QkNBdEIsV0FBaUIsS0FBaUIsRUFBa0IsQ0FDekQsR0FBSSxHQUFRLEtBQUssTUFBTSxLQUFLLFNBQVcsS0FFdkMsTUFBTyxJQUFJLFNBQVEsQ0FBQyxFQUFTLElBQVcsQ0FDdEMsS0FBSyxjQUNILEdBQUksYUFBWSxVQUFXLENBQ3pCLE9BQVEsQ0FDTixHQUFJLEVBQ0osS0FBTSxFQUNOLEtBQU0sRUFDTixTQUFVLFFGTnBCLEdBQU0sR0FBZ0IsR0FBSSxRQUFPLEVBQWUsS0FFaEQsaUJBQWlDLENBQUUsT0FBTSxRQUFvQixDQUMzRCxHQUFJLEdBQThDLEdBQ2xELE9BQVMsS0FBUyxHQUFLLFNBQVMsR0FBZ0IsQ0FDOUMsR0FBSSxHQUFTLEVBQU0sR0FDZixFQUFNLEVBQU0sTUFDaEIsRUFBVSxLQUFLLENBQ2IsSUFBSyxNQUFNLEtBQVUsSUFDckIsTUFBTyxJQUdYLFFBQVEsSUFBSSxRQUFTLEVBQVUsT0FBUSxnQkFDdkMsS0FBTSxHQUFRLG1CQUFvQixFQUFNLEdBRzFDLGtCQUFtQyxDQUNqQyxHQUFJLEdBQVcsS0FBTSxHQUFRLHlCQUM3QixRQUFRLElBQUksNEJBQ1osS0FBTSxHQUFRLGtCQUFtQixTQUNqQyxRQUFRLElBQUksNEJBQ1osS0FBTSxHQUFRLG1CQUFvQixFQUFTLE1BQzNDLFFBQVEsSUFBSSx1QkFDWixLQUFNLEdBQVEsd0JBR2hCLGtCQUFtQyxDQUVqQyxHQUFNLEdBQVUsQUFEQyxNQUFNLEdBQVEsMEJBQ04sS0FDekIsUUFBUSxJQUFJLGNBQWUsR0FDM0IsR0FBTSxHQUFVLEtBQU0sR0FDcEIsZ0JBQ0EsVUFBVSxRQUNWLEdBRUYsR0FBSSxDQUFDLEVBQ0gsT0FFRixRQUFRLElBQUksV0FBWSxHQUV4QixHQUFJLEdBQWdCLEtBQU0sR0FBYSxHQUN2QyxRQUFRLElBQUksaUNBQWtDLEdBRTlDLEdBQUksR0FBTyxLQUFNLEdBQVEsa0JBQ3pCLFFBQVEsSUFBSSw2QkFDWixLQUFNLEdBQVEsa0JBQW1CLEVBQVMsR0FDMUMsUUFBUSxJQUFJLDRCQUNaLEtBQU0sR0FBUSxtQkFBb0IsR0FDbEMsUUFBUSxJQUFJLHVCQUNaLEtBQU0sR0FBUSx3QkFDZCxRQUFRLElBQUksMEJBQ1osS0FBTSxHQUFRLGtCQUFtQixHQUVqQyxHQUFJLEdBQWtCLEdBQUksS0FDMUIsT0FBUyxLQUFnQixHQUN2QixFQUFnQixJQUFJLEVBQWEsTUFHbkMsT0FBUyxLQUFnQixHQUFpQixDQUN4QyxRQUFRLElBQUksK0JBQWdDLEdBQzVDLEdBQUksQ0FBRSxRQUFTLEtBQU0sR0FBUSxpQkFBa0IsR0FDL0MsR0FBSSxDQUFDLEVBRUgsU0FFRixHQUFJLEdBQVUsRUFBSyxXQUFXLEtBQUssTUFBYSxLQUFLLE9BQ3JELEFBQUksSUFBUyxHQUNYLFNBQVEsSUFBSSwyQkFDWixLQUFNLEdBQVEsa0JBQW1CLEVBQWMsS0FVckQsaUJBQTRCLEVBQXVDLENBQ2pFLEdBQUksR0FBZSxLQUFNLEdBQ3ZCLDJCQUNBLE1BQU0sTUFFSixFQUE0QixHQUNoQyxPQUFTLENBQUUsTUFBSyxVQUFXLEdBQWMsQ0FDdkMsR0FBSSxHQUFXLEVBQUksTUFBTSxLQUN6QixFQUFjLEtBQUssQ0FDakIsS0FBTSxFQUNOLElBQUssQ0FBQyxFQUFTLEVBQVMsT0FBUyxLQUdyQyxNQUFPLEdBR1Qsa0JBQXNDLENBQ3BDLEdBQU0sR0FBVyxLQUFNLEdBQVEseUJBQzNCLEVBQVksS0FBTSxHQUFhLEVBQVMsTUFFNUMsUUFBUSxJQUFJLFlBQWEsR0FHM0Isa0JBQWdDLENBQzlCLEtBQU0sR0FBUSIsCiAgIm5hbWVzIjogW10KfQo=\n", "functionName": "indexLinks" }, "deletePage": { "path": "core/page.ts", - "code": "(function() {\n const pageLinkRegex = /\\[\\[([\\w\\s\\/\\:,\\.\\-]+)\\]\\]/;\n function syscall(name, ...args) {\n let reqId = Math.floor(Math.random() * 1000000);\n return new Promise((resolve, reject)=>{\n self.dispatchEvent(new CustomEvent(\"syscall\", {\n detail: {\n id: reqId,\n name: name,\n args: args,\n callback: resolve\n }\n }));\n });\n }\n const wikilinkRegex = new RegExp(pageLinkRegex, \"g\");\n async function indexLinks({ name , text }) {\n let backLinks = [];\n for (let match of text.matchAll(wikilinkRegex)){\n let toPage = match[1];\n let pos = match.index;\n backLinks.push({\n key: `pl:${toPage}:${pos}`,\n value: name\n });\n }\n console.log(\"Found\", backLinks.length, \"wiki link(s)\");\n await syscall(\"indexer.batchSet\", name, backLinks);\n }\n async function deletePage() {\n let pageMeta = await syscall(\"editor.getCurrentPage\");\n console.log(\"Navigating to start page\");\n await syscall(\"editor.navigate\", \"start\");\n console.log(\"Deleting page from space\");\n await syscall(\"space.deletePage\", pageMeta.name);\n console.log(\"Reloading page list\");\n await syscall(\"space.reloadPageList\");\n }\n async function renamePage() {\n const pageMeta = await syscall(\"editor.getCurrentPage\");\n const oldName = pageMeta.name;\n console.log(\"Old name is\", oldName);\n const newName = await syscall(\"editor.prompt\", `Rename ${oldName} to:`, oldName);\n if (!newName) {\n return;\n }\n console.log(\"New name\", newName);\n let pagesToUpdate = await getBackLinks(oldName);\n console.log(\"All pages containing backlinks\", pagesToUpdate);\n let text = await syscall(\"editor.getText\");\n console.log(\"Writing new page to space\");\n await syscall(\"space.writePage\", newName, text);\n console.log(\"Deleting page from space\");\n await syscall(\"space.deletePage\", oldName);\n console.log(\"Reloading page list\");\n await syscall(\"space.reloadPageList\");\n console.log(\"Navigating to new page\");\n await syscall(\"editor.navigate\", newName);\n let pageToUpdateSet = new Set();\n for (let pageToUpdate of pagesToUpdate){\n pageToUpdateSet.add(pageToUpdate.page);\n }\n for (let pageToUpdate1 of pageToUpdateSet){\n console.log(\"Now going to update links in\", pageToUpdate1);\n let { text } = await syscall(\"space.readPage\", pageToUpdate1);\n if (!text) {\n continue;\n }\n let newText = text.replaceAll(`[[${oldName}]]`, `[[${newName}]]`);\n if (text !== newText) {\n console.log(\"Changes made, saving...\");\n await syscall(\"space.writePage\", pageToUpdate1, newText);\n }\n }\n }\n async function getBackLinks(pageName) {\n let allBackLinks = await syscall(\"indexer.scanPrefixGlobal\", `pl:${pageName}:`);\n let pagesToUpdate = [];\n for (let { key , value } of allBackLinks){\n let keyParts = key.split(\":\");\n pagesToUpdate.push({\n page: value,\n pos: +keyParts[keyParts.length - 1]\n });\n }\n return pagesToUpdate;\n }\n async function showBackLinks() {\n const pageMeta = await syscall(\"editor.getCurrentPage\");\n let backLinks = await getBackLinks(pageMeta.name);\n console.log(\"Backlinks\", backLinks);\n }\n async function reindex() {\n await syscall(\"space.reindex\");\n }\n return {\n indexLinks: indexLinks,\n deletePage: deletePage,\n renamePage: renamePage,\n showBackLinks: showBackLinks,\n reindex: reindex\n };\n})();\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZpbGU6Ly8vVXNlcnMvemVmL2dpdC9udWdnZXQvd2ViYXBwL3NyYy9jb25zdGFudC50cyIsImZpbGU6Ly8vVXNlcnMvemVmL2dpdC9udWdnZXQvcGx1Z2lucy9jb3JlL2xpYi9zeXNjYWxsLnRzIiwiZmlsZTovLy9Vc2Vycy96ZWYvZ2l0L251Z2dldC9wbHVnaW5zL2NvcmUvcGFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0lBQU8sS0FBSyxDQUFDLGFBQWE7YUNBVixPQUFPLENBQUMsSUFBWSxLQUFLLElBQUksRUFBYyxDQUFDO1FBQzFELEdBQUcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLE9BQU87UUFFOUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sR0FBSyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxhQUFhLENBQ2hCLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBUyxVQUFFLENBQUM7Z0JBQzFCLE1BQU0sRUFBRSxDQUFDO29CQUNQLEVBQUUsRUFBRSxLQUFLO29CQUNULElBQUksRUFBRSxJQUFJO29CQUNWLElBQUksRUFBRSxJQUFJO29CQUNWLFFBQVEsRUFBRSxPQUFPO2dCQUNuQixDQUFDO1lBQ0gsQ0FBQztRQUVMLENBQUM7SUFDSCxDQUFDO0lDWEQsS0FBSyxDQUFDLGFBQWEsR0FBRyxHQUFHLENBQUMsTUFBTSxnQkFBZ0IsQ0FBRzttQkFFN0IsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUUsSUFBSSxFQUFhLENBQUMsRUFBRSxDQUFDO1FBQzVELEdBQUcsQ0FBQyxTQUFTLEdBQXFDLENBQUMsQ0FBQztRQUNwRCxHQUFHLEVBQUUsR0FBRyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRyxDQUFDO1lBQy9DLEdBQUcsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUM7WUFDcEIsR0FBRyxDQUFDLEdBQUcs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\n", + "code": "(()=>{var r=Object.defineProperty;var w=Object.getOwnPropertyDescriptor;var k=Object.getOwnPropertyNames;var f=Object.prototype.hasOwnProperty;var m=a=>r(a,\"__esModule\",{value:!0});var x=(a,e)=>{for(var t in e)r(a,t,{get:e[t],enumerable:!0})},u=(a,e,t,o)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let i of k(e))!f.call(a,i)&&(t||i!==\"default\")&&r(a,i,{get:()=>e[i],enumerable:!(o=w(e,i))||o.enumerable});return a};var P=(a=>(e,t)=>a&&a.get(e)||(t=u(m({}),e,1),a&&a.set(e,t),t))(typeof WeakMap!=\"undefined\"?new WeakMap:0);var R={};x(R,{deletePage:()=>h,indexLinks:()=>L,reindex:()=>B,renamePage:()=>v,showBackLinks:()=>b});var p=/\\[\\[([\\w\\s\\/\\:,\\.\\-]+)\\]\\]/;function n(a,...e){let t=Math.floor(Math.random()*1e6);return new Promise((o,i)=>{self.dispatchEvent(new CustomEvent(\"syscall\",{detail:{id:t,name:a,args:e,callback:o}}))})}var y=new RegExp(p,\"g\");async function L({name:a,text:e}){let t=[];for(let o of e.matchAll(y)){let i=o[1],l=o.index;t.push({key:`pl:${i}:${l}`,value:a})}console.log(\"Found\",t.length,\"wiki link(s)\"),await n(\"indexer.batchSet\",a,t)}async function h(){let a=await n(\"editor.getCurrentPage\");console.log(\"Navigating to start page\"),await n(\"editor.navigate\",\"start\"),console.log(\"Deleting page from space\"),await n(\"space.deletePage\",a.name),console.log(\"Reloading page list\"),await n(\"space.reloadPageList\")}async function v(){let e=(await n(\"editor.getCurrentPage\")).name;console.log(\"Old name is\",e);let t=await n(\"editor.prompt\",`Rename ${e} to:`,e);if(!t)return;console.log(\"New name\",t);let o=await d(e);console.log(\"All pages containing backlinks\",o);let i=await n(\"editor.getText\");console.log(\"Writing new page to space\"),await n(\"space.writePage\",t,i),console.log(\"Deleting page from space\"),await n(\"space.deletePage\",e),console.log(\"Reloading page list\"),await n(\"space.reloadPageList\"),console.log(\"Navigating to new page\"),await n(\"editor.navigate\",t);let l=new Set;for(let s of o)l.add(s.page);for(let s of l){console.log(\"Now going to update links in\",s);let{text:g}=await n(\"space.readPage\",s);if(!g)continue;let c=g.replaceAll(`[[${e}]]`,`[[${t}]]`);g!==c&&(console.log(\"Changes made, saving...\"),await n(\"space.writePage\",s,c))}}async function d(a){let e=await n(\"indexer.scanPrefixGlobal\",`pl:${a}:`),t=[];for(let{key:o,value:i}of e){let l=o.split(\":\");t.push({page:i,pos:+l[l.length-1]})}return t}async function b(){let a=await n(\"editor.getCurrentPage\"),e=await d(a.name);console.log(\"Backlinks\",e)}async function B(){await n(\"space.reindex\")}return P(R);})();\n//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiY29yZS9wYWdlLnRzIiwgIi4uL3dlYmFwcC9zcmMvY29uc3RhbnQudHMiLCAiY29yZS9saWIvc3lzY2FsbC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHsgSW5kZXhFdmVudCB9IGZyb20gXCIuLi8uLi93ZWJhcHAvc3JjL2FwcF9ldmVudFwiO1xuaW1wb3J0IHsgcGFnZUxpbmtSZWdleCB9IGZyb20gXCIuLi8uLi93ZWJhcHAvc3JjL2NvbnN0YW50XCI7XG5pbXBvcnQgeyBzeXNjYWxsIH0gZnJvbSBcIi4vbGliL3N5c2NhbGxcIjtcblxuY29uc3Qgd2lraWxpbmtSZWdleCA9IG5ldyBSZWdFeHAocGFnZUxpbmtSZWdleCwgXCJnXCIpO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaW5kZXhMaW5rcyh7IG5hbWUsIHRleHQgfTogSW5kZXhFdmVudCkge1xuICBsZXQgYmFja0xpbmtzOiB7IGtleTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH1bXSA9IFtdO1xuICBmb3IgKGxldCBtYXRjaCBvZiB0ZXh0Lm1hdGNoQWxsKHdpa2lsaW5rUmVnZXgpKSB7XG4gICAgbGV0IHRvUGFnZSA9IG1hdGNoWzFdO1xuICAgIGxldCBwb3MgPSBtYXRjaC5pbmRleCE7XG4gICAgYmFja0xpbmtzLnB1c2goe1xuICAgICAga2V5OiBgcGw6JHt0b1BhZ2V9OiR7cG9zfWAsXG4gICAgICB2YWx1ZTogbmFtZSxcbiAgICB9KTtcbiAgfVxuICBjb25zb2xlLmxvZyhcIkZvdW5kXCIsIGJhY2tMaW5rcy5sZW5ndGgsIFwid2lraSBsaW5rKHMpXCIpO1xuICBhd2FpdCBzeXNjYWxsKFwiaW5kZXhlci5iYXRjaFNldFwiLCBuYW1lLCBiYWNrTGlua3MpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZGVsZXRlUGFnZSgpIHtcbiAgbGV0IHBhZ2VNZXRhID0gYXdhaXQgc3lzY2FsbChcImVkaXRvci5nZXRDdXJyZW50UGFnZVwiKTtcbiAgY29uc29sZS5sb2coXCJOYXZpZ2F0aW5nIHRvIHN0YXJ0IHBhZ2VcIik7XG4gIGF3YWl0IHN5c2NhbGwoXCJlZGl0b3IubmF2aWdhdGVcIiwgXCJzdGFydFwiKTtcbiAgY29uc29sZS5sb2coXCJEZWxldGluZyBwYWdlIGZyb20gc3BhY2VcIik7XG4gIGF3YWl0IHN5c2NhbGwoXCJzcGFjZS5kZWxldGVQYWdlXCIsIHBhZ2VNZXRhLm5hbWUpO1xuICBjb25zb2xlLmxvZyhcIlJlbG9hZGluZyBwYWdlIGxpc3RcIik7XG4gIGF3YWl0IHN5c2NhbGwoXCJzcGFjZS5yZWxvYWRQYWdlTGlzdFwiKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlbmFtZVBhZ2UoKSB7XG4gIGNvbnN0IHBhZ2VNZXRhID0gYXdhaXQgc3lzY2FsbChcImVkaXRvci5nZXRDdXJyZW50UGFnZVwiKTtcbiAgY29uc3Qgb2xkTmFtZSA9IHBhZ2VNZXRhLm5hbWU7XG4gIGNvbnNvbGUubG9nKFwiT2xkIG5hbWUgaXNcIiwgb2xkTmFtZSk7XG4gIGNvbnN0IG5ld05hbWUgPSBhd2FpdCBzeXNjYWxsKFxuICAgIFwiZWRpdG9yLnByb21wdFwiLFxuICAgIGBSZW5hbWUgJHtvbGROYW1lfSB0bzpgLFxuICAgIG9sZE5hbWVcbiAgKTtcbiAgaWYgKCFuZXdOYW1lKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGNvbnNvbGUubG9nKFwiTmV3IG5hbWVcIiwgbmV3TmFtZSk7XG5cbiAgbGV0IHBhZ2VzVG9VcGRhdGUgPSBhd2FpdCBnZXRCYWNrTGlua3Mob2xkTmFtZSk7XG4gIGNvbnNvbGUubG9nKFwiQWxsIHBhZ2VzIGNvbnRhaW5pbmcgYmFja2xpbmtzXCIsIHBhZ2VzVG9VcGRhdGUpO1xuXG4gIGxldCB0ZXh0ID0gYXdhaXQgc3lzY2FsbChcImVkaXRvci5nZXRUZXh0XCIpO1xuICBjb25zb2xlLmxvZyhcIldyaXRpbmcgbmV3IHBhZ2UgdG8gc3BhY2VcIik7XG4gIGF3YWl0IHN5c2NhbGwoXCJzcGFjZS53cml0ZVBhZ2VcIiwgbmV3TmFtZSwgdGV4dCk7XG4gIGNvbnNvbGUubG9nKFwiRGVsZXRpbmcgcGFnZSBmcm9tIHNwYWNlXCIpO1xuICBhd2FpdCBzeXNjYWxsKFwic3BhY2UuZGVsZXRlUGFnZVwiLCBvbGROYW1lKTtcbiAgY29uc29sZS5sb2coXCJSZWxvYWRpbmcgcGFnZSBsaXN0XCIpO1xuICBhd2FpdCBzeXNjYWxsKFwic3BhY2UucmVsb2FkUGFnZUxpc3RcIik7XG4gIGNvbnNvbGUubG9nKFwiTmF2aWdhdGluZyB0byBuZXcgcGFnZVwiKTtcbiAgYXdhaXQgc3lzY2FsbChcImVkaXRvci5uYXZpZ2F0ZVwiLCBuZXdOYW1lKTtcblxuICBsZXQgcGFnZVRvVXBkYXRlU2V0ID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIGZvciAobGV0IHBhZ2VUb1VwZGF0ZSBvZiBwYWdlc1RvVXBkYXRlKSB7XG4gICAgcGFnZVRvVXBkYXRlU2V0LmFkZChwYWdlVG9VcGRhdGUucGFnZSk7XG4gIH1cblxuICBmb3IgKGxldCBwYWdlVG9VcGRhdGUgb2YgcGFnZVRvVXBkYXRlU2V0KSB7XG4gICAgY29uc29sZS5sb2coXCJOb3cgZ29pbmcgdG8gdXBkYXRlIGxpbmtzIGluXCIsIHBhZ2VUb1VwZGF0ZSk7XG4gICAgbGV0IHsgdGV4dCB9ID0gYXdhaXQgc3lzY2FsbChcInNwYWNlLnJlYWRQYWdlXCIsIHBhZ2VUb1VwZGF0ZSk7XG4gICAgaWYgKCF0ZXh0KSB7XG4gICAgICAvLyBQYWdlIGxpa2VseSBkb2VzIG5vdCBleGlzdCwgYnV0IGF0IGxlYXN0IHdlIGNhbiBza2lwIGl0XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgbGV0IG5ld1RleHQgPSB0ZXh0LnJlcGxhY2VBbGwoYFtbJHtvbGROYW1lfV1dYCwgYFtbJHtuZXdOYW1lfV1dYCk7XG4gICAgaWYgKHRleHQgIT09IG5ld1RleHQpIHtcbiAgICAgIGNvbnNvbGUubG9nKFwiQ2hhbmdlcyBtYWRlLCBzYXZpbmcuLi5cIik7XG4gICAgICBhd2FpdCBzeXNjYWxsKFwic3BhY2Uud3JpdGVQYWdlXCIsIHBhZ2VUb1VwZGF0ZSwgbmV3VGV4dCk7XG4gICAgfVxuICB9XG59XG5cbnR5cGUgQmFja0xpbmsgPSB7XG4gIHBhZ2U6IHN0cmluZztcbiAgcG9zOiBudW1iZXI7XG59O1xuXG5hc3luYyBmdW5jdGlvbiBnZXRCYWNrTGlua3MocGFnZU5hbWU6IHN0cmluZyk6IFByb21pc2U8QmFja0xpbmtbXT4ge1xuICBsZXQgYWxsQmFja0xpbmtzID0gYXdhaXQgc3lzY2FsbChcbiAgICBcImluZGV4ZXIuc2NhblByZWZpeEdsb2JhbFwiLFxuICAgIGBwbDoke3BhZ2VOYW1lfTpgXG4gICk7XG4gIGxldCBwYWdlc1RvVXBkYXRlOiBCYWNrTGlua1tdID0gW107XG4gIGZvciAobGV0IHsga2V5LCB2YWx1ZSB9IG9mIGFsbEJhY2tMaW5rcykge1xuICAgIGxldCBrZXlQYXJ0cyA9IGtleS5zcGxpdChcIjpcIik7XG4gICAgcGFnZXNUb1VwZGF0ZS5wdXNoKHtcbiAgICAgIHBhZ2U6IHZhbHVlLFxuICAgICAgcG9zOiAra2V5UGFydHNba2V5UGFydHMubGVuZ3RoIC0gMV0sXG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIHBhZ2VzVG9VcGRhdGU7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzaG93QmFja0xpbmtzKCkge1xuICBjb25zdCBwYWdlTWV0YSA9IGF3YWl0IHN5c2NhbGwoXCJlZGl0b3IuZ2V0Q3VycmVudFBhZ2VcIik7XG4gIGxldCBiYWNrTGlua3MgPSBhd2FpdCBnZXRCYWNrTGlua3MocGFnZU1ldGEubmFtZSk7XG5cbiAgY29uc29sZS5sb2coXCJCYWNrbGlua3NcIiwgYmFja0xpbmtzKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlaW5kZXgoKSB7XG4gIGF3YWl0IHN5c2NhbGwoXCJzcGFjZS5yZWluZGV4XCIpO1xufVxuIiwgImV4cG9ydCBjb25zdCBwYWdlTGlua1JlZ2V4ID0gL1xcW1xcWyhbXFx3XFxzXFwvXFw6LFxcLlxcLV0rKVxcXVxcXS87XG4iLCAiZXhwb3J0IGZ1bmN0aW9uIHN5c2NhbGwobmFtZTogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSk6IGFueSB7XG4gIGxldCByZXFJZCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDEwMDAwMDApO1xuICAvLyBjb25zb2xlLmxvZyhcIlN5c2NhbGxcIiwgbmFtZSwgcmVxSWQpO1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIHNlbGYuZGlzcGF0Y2hFdmVudChcbiAgICAgIG5ldyBDdXN0b21FdmVudChcInN5c2NhbGxcIiwge1xuICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICBpZDogcmVxSWQsXG4gICAgICAgICAgbmFtZTogbmFtZSxcbiAgICAgICAgICBhcmdzOiBhcmdzLFxuICAgICAgICAgIGNhbGxiYWNrOiByZXNvbHZlLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICApO1xuICB9KTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI0aEJBQUEscUdDQU8sR0FBTSxHQUFnQiw2QkNBdEIsV0FBaUIsS0FBaUIsRUFBa0IsQ0FDekQsR0FBSSxHQUFRLEtBQUssTUFBTSxLQUFLLFNBQVcsS0FFdkMsTUFBTyxJQUFJLFNBQVEsQ0FBQyxFQUFTLElBQVcsQ0FDdEMsS0FBSyxjQUNILEdBQUksYUFBWSxVQUFXLENBQ3pCLE9BQVEsQ0FDTixHQUFJLEVBQ0osS0FBTSxFQUNOLEtBQU0sRUFDTixTQUFVLFFGTnBCLEdBQU0sR0FBZ0IsR0FBSSxRQUFPLEVBQWUsS0FFaEQsaUJBQWlDLENBQUUsT0FBTSxRQUFvQixDQUMzRCxHQUFJLEdBQThDLEdBQ2xELE9BQVMsS0FBUyxHQUFLLFNBQVMsR0FBZ0IsQ0FDOUMsR0FBSSxHQUFTLEVBQU0sR0FDZixFQUFNLEVBQU0sTUFDaEIsRUFBVSxLQUFLLENBQ2IsSUFBSyxNQUFNLEtBQVUsSUFDckIsTUFBTyxJQUdYLFFBQVEsSUFBSSxRQUFTLEVBQVUsT0FBUSxnQkFDdkMsS0FBTSxHQUFRLG1CQUFvQixFQUFNLEdBRzFDLGtCQUFtQyxDQUNqQyxHQUFJLEdBQVcsS0FBTSxHQUFRLHlCQUM3QixRQUFRLElBQUksNEJBQ1osS0FBTSxHQUFRLGtCQUFtQixTQUNqQyxRQUFRLElBQUksNEJBQ1osS0FBTSxHQUFRLG1CQUFvQixFQUFTLE1BQzNDLFFBQVEsSUFBSSx1QkFDWixLQUFNLEdBQVEsd0JBR2hCLGtCQUFtQyxDQUVqQyxHQUFNLEdBQVUsQUFEQyxNQUFNLEdBQVEsMEJBQ04sS0FDekIsUUFBUSxJQUFJLGNBQWUsR0FDM0IsR0FBTSxHQUFVLEtBQU0sR0FDcEIsZ0JBQ0EsVUFBVSxRQUNWLEdBRUYsR0FBSSxDQUFDLEVBQ0gsT0FFRixRQUFRLElBQUksV0FBWSxHQUV4QixHQUFJLEdBQWdCLEtBQU0sR0FBYSxHQUN2QyxRQUFRLElBQUksaUNBQWtDLEdBRTlDLEdBQUksR0FBTyxLQUFNLEdBQVEsa0JBQ3pCLFFBQVEsSUFBSSw2QkFDWixLQUFNLEdBQVEsa0JBQW1CLEVBQVMsR0FDMUMsUUFBUSxJQUFJLDRCQUNaLEtBQU0sR0FBUSxtQkFBb0IsR0FDbEMsUUFBUSxJQUFJLHVCQUNaLEtBQU0sR0FBUSx3QkFDZCxRQUFRLElBQUksMEJBQ1osS0FBTSxHQUFRLGtCQUFtQixHQUVqQyxHQUFJLEdBQWtCLEdBQUksS0FDMUIsT0FBUyxLQUFnQixHQUN2QixFQUFnQixJQUFJLEVBQWEsTUFHbkMsT0FBUyxLQUFnQixHQUFpQixDQUN4QyxRQUFRLElBQUksK0JBQWdDLEdBQzVDLEdBQUksQ0FBRSxRQUFTLEtBQU0sR0FBUSxpQkFBa0IsR0FDL0MsR0FBSSxDQUFDLEVBRUgsU0FFRixHQUFJLEdBQVUsRUFBSyxXQUFXLEtBQUssTUFBYSxLQUFLLE9BQ3JELEFBQUksSUFBUyxHQUNYLFNBQVEsSUFBSSwyQkFDWixLQUFNLEdBQVEsa0JBQW1CLEVBQWMsS0FVckQsaUJBQTRCLEVBQXVDLENBQ2pFLEdBQUksR0FBZSxLQUFNLEdBQ3ZCLDJCQUNBLE1BQU0sTUFFSixFQUE0QixHQUNoQyxPQUFTLENBQUUsTUFBSyxVQUFXLEdBQWMsQ0FDdkMsR0FBSSxHQUFXLEVBQUksTUFBTSxLQUN6QixFQUFjLEtBQUssQ0FDakIsS0FBTSxFQUNOLElBQUssQ0FBQyxFQUFTLEVBQVMsT0FBUyxLQUdyQyxNQUFPLEdBR1Qsa0JBQXNDLENBQ3BDLEdBQU0sR0FBVyxLQUFNLEdBQVEseUJBQzNCLEVBQVksS0FBTSxHQUFhLEVBQVMsTUFFNUMsUUFBUSxJQUFJLFlBQWEsR0FHM0Isa0JBQWdDLENBQzlCLEtBQU0sR0FBUSIsCiAgIm5hbWVzIjogW10KfQo=\n", "functionName": "deletePage" }, "showBackLinks": { "path": "core/page.ts", - "code": "(function() {\n const pageLinkRegex = /\\[\\[([\\w\\s\\/\\:,\\.\\-]+)\\]\\]/;\n function syscall(name, ...args) {\n let reqId = Math.floor(Math.random() * 1000000);\n return new Promise((resolve, reject)=>{\n self.dispatchEvent(new CustomEvent(\"syscall\", {\n detail: {\n id: reqId,\n name: name,\n args: args,\n callback: resolve\n }\n }));\n });\n }\n const wikilinkRegex = new RegExp(pageLinkRegex, \"g\");\n async function indexLinks({ name , text }) {\n let backLinks = [];\n for (let match of text.matchAll(wikilinkRegex)){\n let toPage = match[1];\n let pos = match.index;\n backLinks.push({\n key: `pl:${toPage}:${pos}`,\n value: name\n });\n }\n console.log(\"Found\", backLinks.length, \"wiki link(s)\");\n await syscall(\"indexer.batchSet\", name, backLinks);\n }\n async function deletePage() {\n let pageMeta = await syscall(\"editor.getCurrentPage\");\n console.log(\"Navigating to start page\");\n await syscall(\"editor.navigate\", \"start\");\n console.log(\"Deleting page from space\");\n await syscall(\"space.deletePage\", pageMeta.name);\n console.log(\"Reloading page list\");\n await syscall(\"space.reloadPageList\");\n }\n async function renamePage() {\n const pageMeta = await syscall(\"editor.getCurrentPage\");\n const oldName = pageMeta.name;\n console.log(\"Old name is\", oldName);\n const newName = await syscall(\"editor.prompt\", `Rename ${oldName} to:`, oldName);\n if (!newName) {\n return;\n }\n console.log(\"New name\", newName);\n let pagesToUpdate = await getBackLinks(oldName);\n console.log(\"All pages containing backlinks\", pagesToUpdate);\n let text = await syscall(\"editor.getText\");\n console.log(\"Writing new page to space\");\n await syscall(\"space.writePage\", newName, text);\n console.log(\"Deleting page from space\");\n await syscall(\"space.deletePage\", oldName);\n console.log(\"Reloading page list\");\n await syscall(\"space.reloadPageList\");\n console.log(\"Navigating to new page\");\n await syscall(\"editor.navigate\", newName);\n let pageToUpdateSet = new Set();\n for (let pageToUpdate of pagesToUpdate){\n pageToUpdateSet.add(pageToUpdate.page);\n }\n for (let pageToUpdate1 of pageToUpdateSet){\n console.log(\"Now going to update links in\", pageToUpdate1);\n let { text } = await syscall(\"space.readPage\", pageToUpdate1);\n if (!text) {\n continue;\n }\n let newText = text.replaceAll(`[[${oldName}]]`, `[[${newName}]]`);\n if (text !== newText) {\n console.log(\"Changes made, saving...\");\n await syscall(\"space.writePage\", pageToUpdate1, newText);\n }\n }\n }\n async function getBackLinks(pageName) {\n let allBackLinks = await syscall(\"indexer.scanPrefixGlobal\", `pl:${pageName}:`);\n let pagesToUpdate = [];\n for (let { key , value } of allBackLinks){\n let keyParts = key.split(\":\");\n pagesToUpdate.push({\n page: value,\n pos: +keyParts[keyParts.length - 1]\n });\n }\n return pagesToUpdate;\n }\n async function showBackLinks() {\n const pageMeta = await syscall(\"editor.getCurrentPage\");\n let backLinks = await getBackLinks(pageMeta.name);\n console.log(\"Backlinks\", backLinks);\n }\n async function reindex() {\n await syscall(\"space.reindex\");\n }\n return {\n indexLinks: indexLinks,\n deletePage: deletePage,\n renamePage: renamePage,\n showBackLinks: showBackLinks,\n reindex: reindex\n };\n})();\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZpbGU6Ly8vVXNlcnMvemVmL2dpdC9udWdnZXQvd2ViYXBwL3NyYy9jb25zdGFudC50cyIsImZpbGU6Ly8vVXNlcnMvemVmL2dpdC9udWdnZXQvcGx1Z2lucy9jb3JlL2xpYi9zeXNjYWxsLnRzIiwiZmlsZTovLy9Vc2Vycy96ZWYvZ2l0L251Z2dldC9wbHVnaW5zL2NvcmUvcGFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0lBQU8sS0FBSyxDQUFDLGFBQWE7YUNBVixPQUFPLENBQUMsSUFBWSxLQUFLLElBQUksRUFBYyxDQUFDO1FBQzFELEdBQUcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLE9BQU87UUFFOUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sR0FBSyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxhQUFhLENBQ2hCLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBUyxVQUFFLENBQUM7Z0JBQzFCLE1BQU0sRUFBRSxDQUFDO29CQUNQLEVBQUUsRUFBRSxLQUFLO29CQUNULElBQUksRUFBRSxJQUFJO29CQUNWLElBQUksRUFBRSxJQUFJO29CQUNWLFFBQVEsRUFBRSxPQUFPO2dCQUNuQixDQUFDO1lBQ0gsQ0FBQztRQUVMLENBQUM7SUFDSCxDQUFDO0lDWEQsS0FBSyxDQUFDLGFBQWEsR0FBRyxHQUFHLENBQUMsTUFBTSxnQkFBZ0IsQ0FBRzttQkFFN0IsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUUsSUFBSSxFQUFhLENBQUMsRUFBRSxDQUFDO1FBQzVELEdBQUcsQ0FBQyxTQUFTLEdBQXFDLENBQUMsQ0FBQztRQUNwRCxHQUFHLEVBQUUsR0FBRyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRyxDQUFDO1lBQy9DLEdBQUcsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUM7WUFDcEIsR0FBRyxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsS0FBSztZQUNyQixTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2QsR0FBRyxHQUFHLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQyxFQUFFLEdBQUc7Z0JBQ3hCLEtBQUssRUFBRSxJQUFJO1lBQ2IsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLENBQU8sUUFBRSxTQUFTLENBQUMsTUFBTSxFQUFFLENBQWM7UUFDckQsS0FBSyxTQUFTLENBQWtCLG1CQUFFLElBQUksRUFBRSxTQUFTO0lBQ25ELENBQUM7bUJBRXFCLFVBQVUsR0FBRyxDQUFDO1FBQ2xDLEdBQUcsQ0FBQyxRQUFRLEdBQUcsS0FBSyxTQUFTLENBQXVCO1FBQ3BELE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBMEI7UUFDdEMsS0FBSyxTQUFTLENBQWlCLGtCQUFFLENBQU87UUFDeEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUEwQjtRQUN0QyxLQUFLLFNBQVMsQ0FBa0IsbUJBQUUsUUFBUSxDQUFDLElBQUk7UUFDL0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFxQjtRQUNqQyxLQUFLLFNBQVMsQ0FBc0I7SUFDdEMsQ0FBQzttQkFFcUIsVUFBVSxHQUFHLENBQUM7UUFFbEMsS0FBSyxDQUFDLFFBQVEsR0FBRyxLQUFLLFNBQVMsQ0FBdUI7UUFDdEQsS0FBSyxDQUFDLE9BQU8sR0FBRyxRQUFRLENBQUMsSUFBSTtRQUM3QixPQUFPLENBQUMsR0FBRyxDQUFDLENBQWEsY0FBRSxPQUFPO1FBQ2xDLEtBQUssQ0FBQyxPQUFPLEdBQUcsS0FBSyxTQUNuQixDQUFlLGlCQUNkLE9BQU8sRUFBRSxPQUFPLENBQUMsSUFBSSxHQUN0QixPQUFPO1FBRVQsRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDO1lBQ2IsTUFBTTtRQUNSLENBQUM7UUFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLENBQVUsV0FBRSxPQUFPO1FBRS9CLEdBQUcsQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPO1FBQzlDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBZ0MsaUNBQUUsYUFBYTtRQUUzRCxHQUFHLENBQUMsSUFBSSxHQUFHLEtBQUssU0FBUyxDQUFnQjtRQUN6QyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQTJCO1FBQ3ZDLEtBQUssU0FBUyxDQUFpQixrQkFBRSxPQUFPLEVBQUUsSUFBSTtRQUM5QyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQTBCO1FBQ3RDLEtBQUssU0FBUyxDQUFrQixtQkFBRSxPQUFPO1FBQ3pDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBcUI7UUFDakMsS0FBSyxTQUFTLENBQXNCO1FBQ3BDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBd0I7UUFDcEMsS0FBSyxTQUFTLENBQWlCLGtCQUFFLE9BQU87UUFFeEMsR0FBRyxDQUFDLGVBQWUsR0FBRyxHQUFHLENBQUMsR0FBRztRQUM3QixHQUFHLEVBQUUsR0FBRyxDQUFDLFlBQVksSUFBSSxhQUFhLENBQUUsQ0FBQztZQUN2QyxlQUFlLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxJQUFJO1FBQ3ZDLENBQUM7UUFFRCxHQUFHLEVBQUUsR0FBRyxDQUFDLGFBQVksSUFBSSxlQUFlLENBQUUsQ0FBQztZQUN6QyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQThCLCtCQUFFLGFBQVk7WUFDeEQsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFHLEtBQUssU0FBUyxDQUFnQixpQkFBRSxhQUFZO1lBQzNELEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQztnQkFFVixRQUFRO1lBQ1YsQ0FBQztZQUNELEdBQUcsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUU7WUFDL0QsRUFBRSxFQUFFLElBQUksS0FBSyxPQUFPLEVBQUUsQ0FBQztnQkFDckIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUF5QjtnQkFDckMsS0FBSyxTQUFTLENBQWlCLGtCQUFFLGFBQVksRUFBRSxPQUFPO1lBQ3hELENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQzttQkFPYyxZQUFZLENBQUMsUUFBZ0IsRUFBdUIsQ0FBQztRQUNsRSxHQUFHLENBQUMsWUFBWSxHQUFHLEtBQUssU0FDdEIsQ0FBMEIsNEJBQ3pCLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUVsQixHQUFHLENBQUMsYUFBYSxHQUFlLENBQUMsQ0FBQztRQUNsQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUUsS0FBSyxFQUFDLENBQUMsSUFBSSxZQUFZLENBQUUsQ0FBQztZQUN4QyxHQUFHLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBRztZQUM1QixhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2xCLElBQUksRUFBRSxLQUFLO2dCQUNYLEdBQUcsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDO1lBQ3BDLENBQUM7UUFDSCxDQUFDO1FBQ0QsTUFBTSxDQUFDLGFBQWE7SUFDdEIsQ0FBQzttQkFFcUIsYUFBYSxHQUFHLENBQUM7UUFDckMsS0FBSyxDQUFDLFFBQVEsR0FBRyxLQUFLLFNBQVMsQ0FBdUI7UUFDdEQsR0FBRyxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJO1FBRWhELE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBVyxZQUFFLFNBQVM7SUFDcEMsQ0FBQzttQkFFcUIsT0FBTyxHQUFHLENBQUM7UUFDL0IsS0FBSyxTQUFTLENBQWU7SUFDL0IsQ0FBQzs7UUF0R3FCLFVBQVUsRUFBVixVQUFVO1FBY1YsVUFBVSxFQUFWLFVBQVU7UUFVVixVQUFVLEVBQVYsVUFBVTtRQXFFVixhQUFhLEVBQWIsYUFBYTtRQU9iLE9BQU8sRUFBUCxPQUFPIn0=\n", + "code": "(()=>{var r=Object.defineProperty;var w=Object.getOwnPropertyDescriptor;var k=Object.getOwnPropertyNames;var f=Object.prototype.hasOwnProperty;var m=a=>r(a,\"__esModule\",{value:!0});var x=(a,e)=>{for(var t in e)r(a,t,{get:e[t],enumerable:!0})},u=(a,e,t,o)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let i of k(e))!f.call(a,i)&&(t||i!==\"default\")&&r(a,i,{get:()=>e[i],enumerable:!(o=w(e,i))||o.enumerable});return a};var P=(a=>(e,t)=>a&&a.get(e)||(t=u(m({}),e,1),a&&a.set(e,t),t))(typeof WeakMap!=\"undefined\"?new WeakMap:0);var R={};x(R,{deletePage:()=>h,indexLinks:()=>L,reindex:()=>B,renamePage:()=>v,showBackLinks:()=>b});var p=/\\[\\[([\\w\\s\\/\\:,\\.\\-]+)\\]\\]/;function n(a,...e){let t=Math.floor(Math.random()*1e6);return new Promise((o,i)=>{self.dispatchEvent(new CustomEvent(\"syscall\",{detail:{id:t,name:a,args:e,callback:o}}))})}var y=new RegExp(p,\"g\");async function L({name:a,text:e}){let t=[];for(let o of e.matchAll(y)){let i=o[1],l=o.index;t.push({key:`pl:${i}:${l}`,value:a})}console.log(\"Found\",t.length,\"wiki link(s)\"),await n(\"indexer.batchSet\",a,t)}async function h(){let a=await n(\"editor.getCurrentPage\");console.log(\"Navigating to start page\"),await n(\"editor.navigate\",\"start\"),console.log(\"Deleting page from space\"),await n(\"space.deletePage\",a.name),console.log(\"Reloading page list\"),await n(\"space.reloadPageList\")}async function v(){let e=(await n(\"editor.getCurrentPage\")).name;console.log(\"Old name is\",e);let t=await n(\"editor.prompt\",`Rename ${e} to:`,e);if(!t)return;console.log(\"New name\",t);let o=await d(e);console.log(\"All pages containing backlinks\",o);let i=await n(\"editor.getText\");console.log(\"Writing new page to space\"),await n(\"space.writePage\",t,i),console.log(\"Deleting page from space\"),await n(\"space.deletePage\",e),console.log(\"Reloading page list\"),await n(\"space.reloadPageList\"),console.log(\"Navigating to new page\"),await n(\"editor.navigate\",t);let l=new Set;for(let s of o)l.add(s.page);for(let s of l){console.log(\"Now going to update links in\",s);let{text:g}=await n(\"space.readPage\",s);if(!g)continue;let c=g.replaceAll(`[[${e}]]`,`[[${t}]]`);g!==c&&(console.log(\"Changes made, saving...\"),await n(\"space.writePage\",s,c))}}async function d(a){let e=await n(\"indexer.scanPrefixGlobal\",`pl:${a}:`),t=[];for(let{key:o,value:i}of e){let l=o.split(\":\");t.push({page:i,pos:+l[l.length-1]})}return t}async function b(){let a=await n(\"editor.getCurrentPage\"),e=await d(a.name);console.log(\"Backlinks\",e)}async function B(){await n(\"space.reindex\")}return P(R);})();\n//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiY29yZS9wYWdlLnRzIiwgIi4uL3dlYmFwcC9zcmMvY29uc3RhbnQudHMiLCAiY29yZS9saWIvc3lzY2FsbC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHsgSW5kZXhFdmVudCB9IGZyb20gXCIuLi8uLi93ZWJhcHAvc3JjL2FwcF9ldmVudFwiO1xuaW1wb3J0IHsgcGFnZUxpbmtSZWdleCB9IGZyb20gXCIuLi8uLi93ZWJhcHAvc3JjL2NvbnN0YW50XCI7XG5pbXBvcnQgeyBzeXNjYWxsIH0gZnJvbSBcIi4vbGliL3N5c2NhbGxcIjtcblxuY29uc3Qgd2lraWxpbmtSZWdleCA9IG5ldyBSZWdFeHAocGFnZUxpbmtSZWdleCwgXCJnXCIpO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaW5kZXhMaW5rcyh7IG5hbWUsIHRleHQgfTogSW5kZXhFdmVudCkge1xuICBsZXQgYmFja0xpbmtzOiB7IGtleTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH1bXSA9IFtdO1xuICBmb3IgKGxldCBtYXRjaCBvZiB0ZXh0Lm1hdGNoQWxsKHdpa2lsaW5rUmVnZXgpKSB7XG4gICAgbGV0IHRvUGFnZSA9IG1hdGNoWzFdO1xuICAgIGxldCBwb3MgPSBtYXRjaC5pbmRleCE7XG4gICAgYmFja0xpbmtzLnB1c2goe1xuICAgICAga2V5OiBgcGw6JHt0b1BhZ2V9OiR7cG9zfWAsXG4gICAgICB2YWx1ZTogbmFtZSxcbiAgICB9KTtcbiAgfVxuICBjb25zb2xlLmxvZyhcIkZvdW5kXCIsIGJhY2tMaW5rcy5sZW5ndGgsIFwid2lraSBsaW5rKHMpXCIpO1xuICBhd2FpdCBzeXNjYWxsKFwiaW5kZXhlci5iYXRjaFNldFwiLCBuYW1lLCBiYWNrTGlua3MpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZGVsZXRlUGFnZSgpIHtcbiAgbGV0IHBhZ2VNZXRhID0gYXdhaXQgc3lzY2FsbChcImVkaXRvci5nZXRDdXJyZW50UGFnZVwiKTtcbiAgY29uc29sZS5sb2coXCJOYXZpZ2F0aW5nIHRvIHN0YXJ0IHBhZ2VcIik7XG4gIGF3YWl0IHN5c2NhbGwoXCJlZGl0b3IubmF2aWdhdGVcIiwgXCJzdGFydFwiKTtcbiAgY29uc29sZS5sb2coXCJEZWxldGluZyBwYWdlIGZyb20gc3BhY2VcIik7XG4gIGF3YWl0IHN5c2NhbGwoXCJzcGFjZS5kZWxldGVQYWdlXCIsIHBhZ2VNZXRhLm5hbWUpO1xuICBjb25zb2xlLmxvZyhcIlJlbG9hZGluZyBwYWdlIGxpc3RcIik7XG4gIGF3YWl0IHN5c2NhbGwoXCJzcGFjZS5yZWxvYWRQYWdlTGlzdFwiKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlbmFtZVBhZ2UoKSB7XG4gIGNvbnN0IHBhZ2VNZXRhID0gYXdhaXQgc3lzY2FsbChcImVkaXRvci5nZXRDdXJyZW50UGFnZVwiKTtcbiAgY29uc3Qgb2xkTmFtZSA9IHBhZ2VNZXRhLm5hbWU7XG4gIGNvbnNvbGUubG9nKFwiT2xkIG5hbWUgaXNcIiwgb2xkTmFtZSk7XG4gIGNvbnN0IG5ld05hbWUgPSBhd2FpdCBzeXNjYWxsKFxuICAgIFwiZWRpdG9yLnByb21wdFwiLFxuICAgIGBSZW5hbWUgJHtvbGROYW1lfSB0bzpgLFxuICAgIG9sZE5hbWVcbiAgKTtcbiAgaWYgKCFuZXdOYW1lKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGNvbnNvbGUubG9nKFwiTmV3IG5hbWVcIiwgbmV3TmFtZSk7XG5cbiAgbGV0IHBhZ2VzVG9VcGRhdGUgPSBhd2FpdCBnZXRCYWNrTGlua3Mob2xkTmFtZSk7XG4gIGNvbnNvbGUubG9nKFwiQWxsIHBhZ2VzIGNvbnRhaW5pbmcgYmFja2xpbmtzXCIsIHBhZ2VzVG9VcGRhdGUpO1xuXG4gIGxldCB0ZXh0ID0gYXdhaXQgc3lzY2FsbChcImVkaXRvci5nZXRUZXh0XCIpO1xuICBjb25zb2xlLmxvZyhcIldyaXRpbmcgbmV3IHBhZ2UgdG8gc3BhY2VcIik7XG4gIGF3YWl0IHN5c2NhbGwoXCJzcGFjZS53cml0ZVBhZ2VcIiwgbmV3TmFtZSwgdGV4dCk7XG4gIGNvbnNvbGUubG9nKFwiRGVsZXRpbmcgcGFnZSBmcm9tIHNwYWNlXCIpO1xuICBhd2FpdCBzeXNjYWxsKFwic3BhY2UuZGVsZXRlUGFnZVwiLCBvbGROYW1lKTtcbiAgY29uc29sZS5sb2coXCJSZWxvYWRpbmcgcGFnZSBsaXN0XCIpO1xuICBhd2FpdCBzeXNjYWxsKFwic3BhY2UucmVsb2FkUGFnZUxpc3RcIik7XG4gIGNvbnNvbGUubG9nKFwiTmF2aWdhdGluZyB0byBuZXcgcGFnZVwiKTtcbiAgYXdhaXQgc3lzY2FsbChcImVkaXRvci5uYXZpZ2F0ZVwiLCBuZXdOYW1lKTtcblxuICBsZXQgcGFnZVRvVXBkYXRlU2V0ID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIGZvciAobGV0IHBhZ2VUb1VwZGF0ZSBvZiBwYWdlc1RvVXBkYXRlKSB7XG4gICAgcGFnZVRvVXBkYXRlU2V0LmFkZChwYWdlVG9VcGRhdGUucGFnZSk7XG4gIH1cblxuICBmb3IgKGxldCBwYWdlVG9VcGRhdGUgb2YgcGFnZVRvVXBkYXRlU2V0KSB7XG4gICAgY29uc29sZS5sb2coXCJOb3cgZ29pbmcgdG8gdXBkYXRlIGxpbmtzIGluXCIsIHBhZ2VUb1VwZGF0ZSk7XG4gICAgbGV0IHsgdGV4dCB9ID0gYXdhaXQgc3lzY2FsbChcInNwYWNlLnJlYWRQYWdlXCIsIHBhZ2VUb1VwZGF0ZSk7XG4gICAgaWYgKCF0ZXh0KSB7XG4gICAgICAvLyBQYWdlIGxpa2VseSBkb2VzIG5vdCBleGlzdCwgYnV0IGF0IGxlYXN0IHdlIGNhbiBza2lwIGl0XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgbGV0IG5ld1RleHQgPSB0ZXh0LnJlcGxhY2VBbGwoYFtbJHtvbGROYW1lfV1dYCwgYFtbJHtuZXdOYW1lfV1dYCk7XG4gICAgaWYgKHRleHQgIT09IG5ld1RleHQpIHtcbiAgICAgIGNvbnNvbGUubG9nKFwiQ2hhbmdlcyBtYWRlLCBzYXZpbmcuLi5cIik7XG4gICAgICBhd2FpdCBzeXNjYWxsKFwic3BhY2Uud3JpdGVQYWdlXCIsIHBhZ2VUb1VwZGF0ZSwgbmV3VGV4dCk7XG4gICAgfVxuICB9XG59XG5cbnR5cGUgQmFja0xpbmsgPSB7XG4gIHBhZ2U6IHN0cmluZztcbiAgcG9zOiBudW1iZXI7XG59O1xuXG5hc3luYyBmdW5jdGlvbiBnZXRCYWNrTGlua3MocGFnZU5hbWU6IHN0cmluZyk6IFByb21pc2U8QmFja0xpbmtbXT4ge1xuICBsZXQgYWxsQmFja0xpbmtzID0gYXdhaXQgc3lzY2FsbChcbiAgICBcImluZGV4ZXIuc2NhblByZWZpeEdsb2JhbFwiLFxuICAgIGBwbDoke3BhZ2VOYW1lfTpgXG4gICk7XG4gIGxldCBwYWdlc1RvVXBkYXRlOiBCYWNrTGlua1tdID0gW107XG4gIGZvciAobGV0IHsga2V5LCB2YWx1ZSB9IG9mIGFsbEJhY2tMaW5rcykge1xuICAgIGxldCBrZXlQYXJ0cyA9IGtleS5zcGxpdChcIjpcIik7XG4gICAgcGFnZXNUb1VwZGF0ZS5wdXNoKHtcbiAgICAgIHBhZ2U6IHZhbHVlLFxuICAgICAgcG9zOiAra2V5UGFydHNba2V5UGFydHMubGVuZ3RoIC0gMV0sXG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIHBhZ2VzVG9VcGRhdGU7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzaG93QmFja0xpbmtzKCkge1xuICBjb25zdCBwYWdlTWV0YSA9IGF3YWl0IHN5c2NhbGwoXCJlZGl0b3IuZ2V0Q3VycmVudFBhZ2VcIik7XG4gIGxldCBiYWNrTGlua3MgPSBhd2FpdCBnZXRCYWNrTGlua3MocGFnZU1ldGEubmFtZSk7XG5cbiAgY29uc29sZS5sb2coXCJCYWNrbGlua3NcIiwgYmFja0xpbmtzKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlaW5kZXgoKSB7XG4gIGF3YWl0IHN5c2NhbGwoXCJzcGFjZS5yZWluZGV4XCIpO1xufVxuIiwgImV4cG9ydCBjb25zdCBwYWdlTGlua1JlZ2V4ID0gL1xcW1xcWyhbXFx3XFxzXFwvXFw6LFxcLlxcLV0rKVxcXVxcXS87XG4iLCAiZXhwb3J0IGZ1bmN0aW9uIHN5c2NhbGwobmFtZTogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSk6IGFueSB7XG4gIGxldCByZXFJZCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDEwMDAwMDApO1xuICAvLyBjb25zb2xlLmxvZyhcIlN5c2NhbGxcIiwgbmFtZSwgcmVxSWQpO1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIHNlbGYuZGlzcGF0Y2hFdmVudChcbiAgICAgIG5ldyBDdXN0b21FdmVudChcInN5c2NhbGxcIiwge1xuICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICBpZDogcmVxSWQsXG4gICAgICAgICAgbmFtZTogbmFtZSxcbiAgICAgICAgICBhcmdzOiBhcmdzLFxuICAgICAgICAgIGNhbGxiYWNrOiByZXNvbHZlLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICApO1xuICB9KTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI0aEJBQUEscUdDQU8sR0FBTSxHQUFnQiw2QkNBdEIsV0FBaUIsS0FBaUIsRUFBa0IsQ0FDekQsR0FBSSxHQUFRLEtBQUssTUFBTSxLQUFLLFNBQVcsS0FFdkMsTUFBTyxJQUFJLFNBQVEsQ0FBQyxFQUFTLElBQVcsQ0FDdEMsS0FBSyxjQUNILEdBQUksYUFBWSxVQUFXLENBQ3pCLE9BQVEsQ0FDTixHQUFJLEVBQ0osS0FBTSxFQUNOLEtBQU0sRUFDTixTQUFVLFFGTnBCLEdBQU0sR0FBZ0IsR0FBSSxRQUFPLEVBQWUsS0FFaEQsaUJBQWlDLENBQUUsT0FBTSxRQUFvQixDQUMzRCxHQUFJLEdBQThDLEdBQ2xELE9BQVMsS0FBUyxHQUFLLFNBQVMsR0FBZ0IsQ0FDOUMsR0FBSSxHQUFTLEVBQU0sR0FDZixFQUFNLEVBQU0sTUFDaEIsRUFBVSxLQUFLLENBQ2IsSUFBSyxNQUFNLEtBQVUsSUFDckIsTUFBTyxJQUdYLFFBQVEsSUFBSSxRQUFTLEVBQVUsT0FBUSxnQkFDdkMsS0FBTSxHQUFRLG1CQUFvQixFQUFNLEdBRzFDLGtCQUFtQyxDQUNqQyxHQUFJLEdBQVcsS0FBTSxHQUFRLHlCQUM3QixRQUFRLElBQUksNEJBQ1osS0FBTSxHQUFRLGtCQUFtQixTQUNqQyxRQUFRLElBQUksNEJBQ1osS0FBTSxHQUFRLG1CQUFvQixFQUFTLE1BQzNDLFFBQVEsSUFBSSx1QkFDWixLQUFNLEdBQVEsd0JBR2hCLGtCQUFtQyxDQUVqQyxHQUFNLEdBQVUsQUFEQyxNQUFNLEdBQVEsMEJBQ04sS0FDekIsUUFBUSxJQUFJLGNBQWUsR0FDM0IsR0FBTSxHQUFVLEtBQU0sR0FDcEIsZ0JBQ0EsVUFBVSxRQUNWLEdBRUYsR0FBSSxDQUFDLEVBQ0gsT0FFRixRQUFRLElBQUksV0FBWSxHQUV4QixHQUFJLEdBQWdCLEtBQU0sR0FBYSxHQUN2QyxRQUFRLElBQUksaUNBQWtDLEdBRTlDLEdBQUksR0FBTyxLQUFNLEdBQVEsa0JBQ3pCLFFBQVEsSUFBSSw2QkFDWixLQUFNLEdBQVEsa0JBQW1CLEVBQVMsR0FDMUMsUUFBUSxJQUFJLDRCQUNaLEtBQU0sR0FBUSxtQkFBb0IsR0FDbEMsUUFBUSxJQUFJLHVCQUNaLEtBQU0sR0FBUSx3QkFDZCxRQUFRLElBQUksMEJBQ1osS0FBTSxHQUFRLGtCQUFtQixHQUVqQyxHQUFJLEdBQWtCLEdBQUksS0FDMUIsT0FBUyxLQUFnQixHQUN2QixFQUFnQixJQUFJLEVBQWEsTUFHbkMsT0FBUyxLQUFnQixHQUFpQixDQUN4QyxRQUFRLElBQUksK0JBQWdDLEdBQzVDLEdBQUksQ0FBRSxRQUFTLEtBQU0sR0FBUSxpQkFBa0IsR0FDL0MsR0FBSSxDQUFDLEVBRUgsU0FFRixHQUFJLEdBQVUsRUFBSyxXQUFXLEtBQUssTUFBYSxLQUFLLE9BQ3JELEFBQUksSUFBUyxHQUNYLFNBQVEsSUFBSSwyQkFDWixLQUFNLEdBQVEsa0JBQW1CLEVBQWMsS0FVckQsaUJBQTRCLEVBQXVDLENBQ2pFLEdBQUksR0FBZSxLQUFNLEdBQ3ZCLDJCQUNBLE1BQU0sTUFFSixFQUE0QixHQUNoQyxPQUFTLENBQUUsTUFBSyxVQUFXLEdBQWMsQ0FDdkMsR0FBSSxHQUFXLEVBQUksTUFBTSxLQUN6QixFQUFjLEtBQUssQ0FDakIsS0FBTSxFQUNOLElBQUssQ0FBQyxFQUFTLEVBQVMsT0FBUyxLQUdyQyxNQUFPLEdBR1Qsa0JBQXNDLENBQ3BDLEdBQU0sR0FBVyxLQUFNLEdBQVEseUJBQzNCLEVBQVksS0FBTSxHQUFhLEVBQVMsTUFFNUMsUUFBUSxJQUFJLFlBQWEsR0FHM0Isa0JBQWdDLENBQzlCLEtBQU0sR0FBUSIsCiAgIm5hbWVzIjogW10KfQo=\n", "functionName": "showBackLinks" }, "renamePage": { "path": "core/page.ts", - "code": "(function() {\n const pageLinkRegex = /\\[\\[([\\w\\s\\/\\:,\\.\\-]+)\\]\\]/;\n function syscall(name, ...args) {\n let reqId = Math.floor(Math.random() * 1000000);\n return new Promise((resolve, reject)=>{\n self.dispatchEvent(new CustomEvent(\"syscall\", {\n detail: {\n id: reqId,\n name: name,\n args: args,\n callback: resolve\n }\n }));\n });\n }\n const wikilinkRegex = new RegExp(pageLinkRegex, \"g\");\n async function indexLinks({ name , text }) {\n let backLinks = [];\n for (let match of text.matchAll(wikilinkRegex)){\n let toPage = match[1];\n let pos = match.index;\n backLinks.push({\n key: `pl:${toPage}:${pos}`,\n value: name\n });\n }\n console.log(\"Found\", backLinks.length, \"wiki link(s)\");\n await syscall(\"indexer.batchSet\", name, backLinks);\n }\n async function deletePage() {\n let pageMeta = await syscall(\"editor.getCurrentPage\");\n console.log(\"Navigating to start page\");\n await syscall(\"editor.navigate\", \"start\");\n console.log(\"Deleting page from space\");\n await syscall(\"space.deletePage\", pageMeta.name);\n console.log(\"Reloading page list\");\n await syscall(\"space.reloadPageList\");\n }\n async function renamePage() {\n const pageMeta = await syscall(\"editor.getCurrentPage\");\n const oldName = pageMeta.name;\n console.log(\"Old name is\", oldName);\n const newName = await syscall(\"editor.prompt\", `Rename ${oldName} to:`, oldName);\n if (!newName) {\n return;\n }\n console.log(\"New name\", newName);\n let pagesToUpdate = await getBackLinks(oldName);\n console.log(\"All pages containing backlinks\", pagesToUpdate);\n let text = await syscall(\"editor.getText\");\n console.log(\"Writing new page to space\");\n await syscall(\"space.writePage\", newName, text);\n console.log(\"Deleting page from space\");\n await syscall(\"space.deletePage\", oldName);\n console.log(\"Reloading page list\");\n await syscall(\"space.reloadPageList\");\n console.log(\"Navigating to new page\");\n await syscall(\"editor.navigate\", newName);\n let pageToUpdateSet = new Set();\n for (let pageToUpdate of pagesToUpdate){\n pageToUpdateSet.add(pageToUpdate.page);\n }\n for (let pageToUpdate1 of pageToUpdateSet){\n console.log(\"Now going to update links in\", pageToUpdate1);\n let { text } = await syscall(\"space.readPage\", pageToUpdate1);\n if (!text) {\n continue;\n }\n let newText = text.replaceAll(`[[${oldName}]]`, `[[${newName}]]`);\n if (text !== newText) {\n console.log(\"Changes made, saving...\");\n await syscall(\"space.writePage\", pageToUpdate1, newText);\n }\n }\n }\n async function getBackLinks(pageName) {\n let allBackLinks = await syscall(\"indexer.scanPrefixGlobal\", `pl:${pageName}:`);\n let pagesToUpdate = [];\n for (let { key , value } of allBackLinks){\n let keyParts = key.split(\":\");\n pagesToUpdate.push({\n page: value,\n pos: +keyParts[keyParts.length - 1]\n });\n }\n return pagesToUpdate;\n }\n async function showBackLinks() {\n const pageMeta = await syscall(\"editor.getCurrentPage\");\n let backLinks = await getBackLinks(pageMeta.name);\n console.log(\"Backlinks\", backLinks);\n }\n async function reindex() {\n await syscall(\"space.reindex\");\n }\n return {\n indexLinks: indexLinks,\n deletePage: deletePage,\n renamePage: renamePage,\n showBackLinks: showBackLinks,\n reindex: reindex\n };\n})();\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZpbGU6Ly8vVXNlcnMvemVmL2dpdC9udWdnZXQvd2ViYXBwL3NyYy9jb25zdGFudC50cyIsImZpbGU6Ly8vVXNlcnMvemVmL2dpdC9udWdnZXQvcGx1Z2lucy9jb3JlL2xpYi9zeXNjYWxsLnRzIiwiZmlsZTovLy9Vc2Vycy96ZWYvZ2l0L251Z2dldC9wbHVnaW5zL2NvcmUvcGFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0lBQU8sS0FBSyxDQUFDLGFBQWE7YUNBVixPQUFPLENBQUMsSUFBWSxLQUFLLElBQUksRUFBYyxDQUFDO1FBQzFELEdBQUcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLE9BQU87UUFFOUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sR0FBSyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxhQUFhLENBQ2hCLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBUyxVQUFFLENBQUM7Z0JBQzFCLE1BQU0sRUFBRSxDQUFDO29CQUNQLEVBQUUsRUFBRSxLQUFLO29CQUNULElBQUksRUFBRSxJQUFJO29CQUNWLElBQUksRUFBRSxJQUFJO29CQUNWLFFBQVEsRUFBRSxPQUFPO2dCQUNuQixDQUFDO1lBQ0gsQ0FBQztRQUVMLENBQUM7SUFDSCxDQUFDO0lDWEQsS0FBSyxDQUFDLGFBQWEsR0FBRyxHQUFHLENBQUMsTUFBTSxnQkFBZ0IsQ0FBRzttQkFFN0IsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUUsSUFBSSxFQUFhLENBQUMsRUFBRSxDQUFDO1FBQzVELEdBQUcsQ0FBQyxTQUFTLEdBQXFDLENBQUMsQ0FBQztRQUNwRCxHQUFHLEVBQUUsR0FBRyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRyxDQUFDO1lBQy9DLEdBQUcsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUM7WUFDcEIsR0FBRyxDQUFDLEdBQUcs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\n", + "code": "(()=>{var r=Object.defineProperty;var w=Object.getOwnPropertyDescriptor;var k=Object.getOwnPropertyNames;var f=Object.prototype.hasOwnProperty;var m=a=>r(a,\"__esModule\",{value:!0});var x=(a,e)=>{for(var t in e)r(a,t,{get:e[t],enumerable:!0})},u=(a,e,t,o)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let i of k(e))!f.call(a,i)&&(t||i!==\"default\")&&r(a,i,{get:()=>e[i],enumerable:!(o=w(e,i))||o.enumerable});return a};var P=(a=>(e,t)=>a&&a.get(e)||(t=u(m({}),e,1),a&&a.set(e,t),t))(typeof WeakMap!=\"undefined\"?new WeakMap:0);var R={};x(R,{deletePage:()=>h,indexLinks:()=>L,reindex:()=>B,renamePage:()=>v,showBackLinks:()=>b});var p=/\\[\\[([\\w\\s\\/\\:,\\.\\-]+)\\]\\]/;function n(a,...e){let t=Math.floor(Math.random()*1e6);return new Promise((o,i)=>{self.dispatchEvent(new CustomEvent(\"syscall\",{detail:{id:t,name:a,args:e,callback:o}}))})}var y=new RegExp(p,\"g\");async function L({name:a,text:e}){let t=[];for(let o of e.matchAll(y)){let i=o[1],l=o.index;t.push({key:`pl:${i}:${l}`,value:a})}console.log(\"Found\",t.length,\"wiki link(s)\"),await n(\"indexer.batchSet\",a,t)}async function h(){let a=await n(\"editor.getCurrentPage\");console.log(\"Navigating to start page\"),await n(\"editor.navigate\",\"start\"),console.log(\"Deleting page from space\"),await n(\"space.deletePage\",a.name),console.log(\"Reloading page list\"),await n(\"space.reloadPageList\")}async function v(){let e=(await n(\"editor.getCurrentPage\")).name;console.log(\"Old name is\",e);let t=await n(\"editor.prompt\",`Rename ${e} to:`,e);if(!t)return;console.log(\"New name\",t);let o=await d(e);console.log(\"All pages containing backlinks\",o);let i=await n(\"editor.getText\");console.log(\"Writing new page to space\"),await n(\"space.writePage\",t,i),console.log(\"Deleting page from space\"),await n(\"space.deletePage\",e),console.log(\"Reloading page list\"),await n(\"space.reloadPageList\"),console.log(\"Navigating to new page\"),await n(\"editor.navigate\",t);let l=new Set;for(let s of o)l.add(s.page);for(let s of l){console.log(\"Now going to update links in\",s);let{text:g}=await n(\"space.readPage\",s);if(!g)continue;let c=g.replaceAll(`[[${e}]]`,`[[${t}]]`);g!==c&&(console.log(\"Changes made, saving...\"),await n(\"space.writePage\",s,c))}}async function d(a){let e=await n(\"indexer.scanPrefixGlobal\",`pl:${a}:`),t=[];for(let{key:o,value:i}of e){let l=o.split(\":\");t.push({page:i,pos:+l[l.length-1]})}return t}async function b(){let a=await n(\"editor.getCurrentPage\"),e=await d(a.name);console.log(\"Backlinks\",e)}async function B(){await n(\"space.reindex\")}return P(R);})();\n//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiY29yZS9wYWdlLnRzIiwgIi4uL3dlYmFwcC9zcmMvY29uc3RhbnQudHMiLCAiY29yZS9saWIvc3lzY2FsbC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHsgSW5kZXhFdmVudCB9IGZyb20gXCIuLi8uLi93ZWJhcHAvc3JjL2FwcF9ldmVudFwiO1xuaW1wb3J0IHsgcGFnZUxpbmtSZWdleCB9IGZyb20gXCIuLi8uLi93ZWJhcHAvc3JjL2NvbnN0YW50XCI7XG5pbXBvcnQgeyBzeXNjYWxsIH0gZnJvbSBcIi4vbGliL3N5c2NhbGxcIjtcblxuY29uc3Qgd2lraWxpbmtSZWdleCA9IG5ldyBSZWdFeHAocGFnZUxpbmtSZWdleCwgXCJnXCIpO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaW5kZXhMaW5rcyh7IG5hbWUsIHRleHQgfTogSW5kZXhFdmVudCkge1xuICBsZXQgYmFja0xpbmtzOiB7IGtleTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH1bXSA9IFtdO1xuICBmb3IgKGxldCBtYXRjaCBvZiB0ZXh0Lm1hdGNoQWxsKHdpa2lsaW5rUmVnZXgpKSB7XG4gICAgbGV0IHRvUGFnZSA9IG1hdGNoWzFdO1xuICAgIGxldCBwb3MgPSBtYXRjaC5pbmRleCE7XG4gICAgYmFja0xpbmtzLnB1c2goe1xuICAgICAga2V5OiBgcGw6JHt0b1BhZ2V9OiR7cG9zfWAsXG4gICAgICB2YWx1ZTogbmFtZSxcbiAgICB9KTtcbiAgfVxuICBjb25zb2xlLmxvZyhcIkZvdW5kXCIsIGJhY2tMaW5rcy5sZW5ndGgsIFwid2lraSBsaW5rKHMpXCIpO1xuICBhd2FpdCBzeXNjYWxsKFwiaW5kZXhlci5iYXRjaFNldFwiLCBuYW1lLCBiYWNrTGlua3MpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZGVsZXRlUGFnZSgpIHtcbiAgbGV0IHBhZ2VNZXRhID0gYXdhaXQgc3lzY2FsbChcImVkaXRvci5nZXRDdXJyZW50UGFnZVwiKTtcbiAgY29uc29sZS5sb2coXCJOYXZpZ2F0aW5nIHRvIHN0YXJ0IHBhZ2VcIik7XG4gIGF3YWl0IHN5c2NhbGwoXCJlZGl0b3IubmF2aWdhdGVcIiwgXCJzdGFydFwiKTtcbiAgY29uc29sZS5sb2coXCJEZWxldGluZyBwYWdlIGZyb20gc3BhY2VcIik7XG4gIGF3YWl0IHN5c2NhbGwoXCJzcGFjZS5kZWxldGVQYWdlXCIsIHBhZ2VNZXRhLm5hbWUpO1xuICBjb25zb2xlLmxvZyhcIlJlbG9hZGluZyBwYWdlIGxpc3RcIik7XG4gIGF3YWl0IHN5c2NhbGwoXCJzcGFjZS5yZWxvYWRQYWdlTGlzdFwiKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlbmFtZVBhZ2UoKSB7XG4gIGNvbnN0IHBhZ2VNZXRhID0gYXdhaXQgc3lzY2FsbChcImVkaXRvci5nZXRDdXJyZW50UGFnZVwiKTtcbiAgY29uc3Qgb2xkTmFtZSA9IHBhZ2VNZXRhLm5hbWU7XG4gIGNvbnNvbGUubG9nKFwiT2xkIG5hbWUgaXNcIiwgb2xkTmFtZSk7XG4gIGNvbnN0IG5ld05hbWUgPSBhd2FpdCBzeXNjYWxsKFxuICAgIFwiZWRpdG9yLnByb21wdFwiLFxuICAgIGBSZW5hbWUgJHtvbGROYW1lfSB0bzpgLFxuICAgIG9sZE5hbWVcbiAgKTtcbiAgaWYgKCFuZXdOYW1lKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGNvbnNvbGUubG9nKFwiTmV3IG5hbWVcIiwgbmV3TmFtZSk7XG5cbiAgbGV0IHBhZ2VzVG9VcGRhdGUgPSBhd2FpdCBnZXRCYWNrTGlua3Mob2xkTmFtZSk7XG4gIGNvbnNvbGUubG9nKFwiQWxsIHBhZ2VzIGNvbnRhaW5pbmcgYmFja2xpbmtzXCIsIHBhZ2VzVG9VcGRhdGUpO1xuXG4gIGxldCB0ZXh0ID0gYXdhaXQgc3lzY2FsbChcImVkaXRvci5nZXRUZXh0XCIpO1xuICBjb25zb2xlLmxvZyhcIldyaXRpbmcgbmV3IHBhZ2UgdG8gc3BhY2VcIik7XG4gIGF3YWl0IHN5c2NhbGwoXCJzcGFjZS53cml0ZVBhZ2VcIiwgbmV3TmFtZSwgdGV4dCk7XG4gIGNvbnNvbGUubG9nKFwiRGVsZXRpbmcgcGFnZSBmcm9tIHNwYWNlXCIpO1xuICBhd2FpdCBzeXNjYWxsKFwic3BhY2UuZGVsZXRlUGFnZVwiLCBvbGROYW1lKTtcbiAgY29uc29sZS5sb2coXCJSZWxvYWRpbmcgcGFnZSBsaXN0XCIpO1xuICBhd2FpdCBzeXNjYWxsKFwic3BhY2UucmVsb2FkUGFnZUxpc3RcIik7XG4gIGNvbnNvbGUubG9nKFwiTmF2aWdhdGluZyB0byBuZXcgcGFnZVwiKTtcbiAgYXdhaXQgc3lzY2FsbChcImVkaXRvci5uYXZpZ2F0ZVwiLCBuZXdOYW1lKTtcblxuICBsZXQgcGFnZVRvVXBkYXRlU2V0ID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIGZvciAobGV0IHBhZ2VUb1VwZGF0ZSBvZiBwYWdlc1RvVXBkYXRlKSB7XG4gICAgcGFnZVRvVXBkYXRlU2V0LmFkZChwYWdlVG9VcGRhdGUucGFnZSk7XG4gIH1cblxuICBmb3IgKGxldCBwYWdlVG9VcGRhdGUgb2YgcGFnZVRvVXBkYXRlU2V0KSB7XG4gICAgY29uc29sZS5sb2coXCJOb3cgZ29pbmcgdG8gdXBkYXRlIGxpbmtzIGluXCIsIHBhZ2VUb1VwZGF0ZSk7XG4gICAgbGV0IHsgdGV4dCB9ID0gYXdhaXQgc3lzY2FsbChcInNwYWNlLnJlYWRQYWdlXCIsIHBhZ2VUb1VwZGF0ZSk7XG4gICAgaWYgKCF0ZXh0KSB7XG4gICAgICAvLyBQYWdlIGxpa2VseSBkb2VzIG5vdCBleGlzdCwgYnV0IGF0IGxlYXN0IHdlIGNhbiBza2lwIGl0XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgbGV0IG5ld1RleHQgPSB0ZXh0LnJlcGxhY2VBbGwoYFtbJHtvbGROYW1lfV1dYCwgYFtbJHtuZXdOYW1lfV1dYCk7XG4gICAgaWYgKHRleHQgIT09IG5ld1RleHQpIHtcbiAgICAgIGNvbnNvbGUubG9nKFwiQ2hhbmdlcyBtYWRlLCBzYXZpbmcuLi5cIik7XG4gICAgICBhd2FpdCBzeXNjYWxsKFwic3BhY2Uud3JpdGVQYWdlXCIsIHBhZ2VUb1VwZGF0ZSwgbmV3VGV4dCk7XG4gICAgfVxuICB9XG59XG5cbnR5cGUgQmFja0xpbmsgPSB7XG4gIHBhZ2U6IHN0cmluZztcbiAgcG9zOiBudW1iZXI7XG59O1xuXG5hc3luYyBmdW5jdGlvbiBnZXRCYWNrTGlua3MocGFnZU5hbWU6IHN0cmluZyk6IFByb21pc2U8QmFja0xpbmtbXT4ge1xuICBsZXQgYWxsQmFja0xpbmtzID0gYXdhaXQgc3lzY2FsbChcbiAgICBcImluZGV4ZXIuc2NhblByZWZpeEdsb2JhbFwiLFxuICAgIGBwbDoke3BhZ2VOYW1lfTpgXG4gICk7XG4gIGxldCBwYWdlc1RvVXBkYXRlOiBCYWNrTGlua1tdID0gW107XG4gIGZvciAobGV0IHsga2V5LCB2YWx1ZSB9IG9mIGFsbEJhY2tMaW5rcykge1xuICAgIGxldCBrZXlQYXJ0cyA9IGtleS5zcGxpdChcIjpcIik7XG4gICAgcGFnZXNUb1VwZGF0ZS5wdXNoKHtcbiAgICAgIHBhZ2U6IHZhbHVlLFxuICAgICAgcG9zOiAra2V5UGFydHNba2V5UGFydHMubGVuZ3RoIC0gMV0sXG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIHBhZ2VzVG9VcGRhdGU7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzaG93QmFja0xpbmtzKCkge1xuICBjb25zdCBwYWdlTWV0YSA9IGF3YWl0IHN5c2NhbGwoXCJlZGl0b3IuZ2V0Q3VycmVudFBhZ2VcIik7XG4gIGxldCBiYWNrTGlua3MgPSBhd2FpdCBnZXRCYWNrTGlua3MocGFnZU1ldGEubmFtZSk7XG5cbiAgY29uc29sZS5sb2coXCJCYWNrbGlua3NcIiwgYmFja0xpbmtzKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlaW5kZXgoKSB7XG4gIGF3YWl0IHN5c2NhbGwoXCJzcGFjZS5yZWluZGV4XCIpO1xufVxuIiwgImV4cG9ydCBjb25zdCBwYWdlTGlua1JlZ2V4ID0gL1xcW1xcWyhbXFx3XFxzXFwvXFw6LFxcLlxcLV0rKVxcXVxcXS87XG4iLCAiZXhwb3J0IGZ1bmN0aW9uIHN5c2NhbGwobmFtZTogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSk6IGFueSB7XG4gIGxldCByZXFJZCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDEwMDAwMDApO1xuICAvLyBjb25zb2xlLmxvZyhcIlN5c2NhbGxcIiwgbmFtZSwgcmVxSWQpO1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIHNlbGYuZGlzcGF0Y2hFdmVudChcbiAgICAgIG5ldyBDdXN0b21FdmVudChcInN5c2NhbGxcIiwge1xuICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICBpZDogcmVxSWQsXG4gICAgICAgICAgbmFtZTogbmFtZSxcbiAgICAgICAgICBhcmdzOiBhcmdzLFxuICAgICAgICAgIGNhbGxiYWNrOiByZXNvbHZlLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICApO1xuICB9KTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI0aEJBQUEscUdDQU8sR0FBTSxHQUFnQiw2QkNBdEIsV0FBaUIsS0FBaUIsRUFBa0IsQ0FDekQsR0FBSSxHQUFRLEtBQUssTUFBTSxLQUFLLFNBQVcsS0FFdkMsTUFBTyxJQUFJLFNBQVEsQ0FBQyxFQUFTLElBQVcsQ0FDdEMsS0FBSyxjQUNILEdBQUksYUFBWSxVQUFXLENBQ3pCLE9BQVEsQ0FDTixHQUFJLEVBQ0osS0FBTSxFQUNOLEtBQU0sRUFDTixTQUFVLFFGTnBCLEdBQU0sR0FBZ0IsR0FBSSxRQUFPLEVBQWUsS0FFaEQsaUJBQWlDLENBQUUsT0FBTSxRQUFvQixDQUMzRCxHQUFJLEdBQThDLEdBQ2xELE9BQVMsS0FBUyxHQUFLLFNBQVMsR0FBZ0IsQ0FDOUMsR0FBSSxHQUFTLEVBQU0sR0FDZixFQUFNLEVBQU0sTUFDaEIsRUFBVSxLQUFLLENBQ2IsSUFBSyxNQUFNLEtBQVUsSUFDckIsTUFBTyxJQUdYLFFBQVEsSUFBSSxRQUFTLEVBQVUsT0FBUSxnQkFDdkMsS0FBTSxHQUFRLG1CQUFvQixFQUFNLEdBRzFDLGtCQUFtQyxDQUNqQyxHQUFJLEdBQVcsS0FBTSxHQUFRLHlCQUM3QixRQUFRLElBQUksNEJBQ1osS0FBTSxHQUFRLGtCQUFtQixTQUNqQyxRQUFRLElBQUksNEJBQ1osS0FBTSxHQUFRLG1CQUFvQixFQUFTLE1BQzNDLFFBQVEsSUFBSSx1QkFDWixLQUFNLEdBQVEsd0JBR2hCLGtCQUFtQyxDQUVqQyxHQUFNLEdBQVUsQUFEQyxNQUFNLEdBQVEsMEJBQ04sS0FDekIsUUFBUSxJQUFJLGNBQWUsR0FDM0IsR0FBTSxHQUFVLEtBQU0sR0FDcEIsZ0JBQ0EsVUFBVSxRQUNWLEdBRUYsR0FBSSxDQUFDLEVBQ0gsT0FFRixRQUFRLElBQUksV0FBWSxHQUV4QixHQUFJLEdBQWdCLEtBQU0sR0FBYSxHQUN2QyxRQUFRLElBQUksaUNBQWtDLEdBRTlDLEdBQUksR0FBTyxLQUFNLEdBQVEsa0JBQ3pCLFFBQVEsSUFBSSw2QkFDWixLQUFNLEdBQVEsa0JBQW1CLEVBQVMsR0FDMUMsUUFBUSxJQUFJLDRCQUNaLEtBQU0sR0FBUSxtQkFBb0IsR0FDbEMsUUFBUSxJQUFJLHVCQUNaLEtBQU0sR0FBUSx3QkFDZCxRQUFRLElBQUksMEJBQ1osS0FBTSxHQUFRLGtCQUFtQixHQUVqQyxHQUFJLEdBQWtCLEdBQUksS0FDMUIsT0FBUyxLQUFnQixHQUN2QixFQUFnQixJQUFJLEVBQWEsTUFHbkMsT0FBUyxLQUFnQixHQUFpQixDQUN4QyxRQUFRLElBQUksK0JBQWdDLEdBQzVDLEdBQUksQ0FBRSxRQUFTLEtBQU0sR0FBUSxpQkFBa0IsR0FDL0MsR0FBSSxDQUFDLEVBRUgsU0FFRixHQUFJLEdBQVUsRUFBSyxXQUFXLEtBQUssTUFBYSxLQUFLLE9BQ3JELEFBQUksSUFBUyxHQUNYLFNBQVEsSUFBSSwyQkFDWixLQUFNLEdBQVEsa0JBQW1CLEVBQWMsS0FVckQsaUJBQTRCLEVBQXVDLENBQ2pFLEdBQUksR0FBZSxLQUFNLEdBQ3ZCLDJCQUNBLE1BQU0sTUFFSixFQUE0QixHQUNoQyxPQUFTLENBQUUsTUFBSyxVQUFXLEdBQWMsQ0FDdkMsR0FBSSxHQUFXLEVBQUksTUFBTSxLQUN6QixFQUFjLEtBQUssQ0FDakIsS0FBTSxFQUNOLElBQUssQ0FBQyxFQUFTLEVBQVMsT0FBUyxLQUdyQyxNQUFPLEdBR1Qsa0JBQXNDLENBQ3BDLEdBQU0sR0FBVyxLQUFNLEdBQVEseUJBQzNCLEVBQVksS0FBTSxHQUFhLEVBQVMsTUFFNUMsUUFBUSxJQUFJLFlBQWEsR0FHM0Isa0JBQWdDLENBQzlCLEtBQU0sR0FBUSIsCiAgIm5hbWVzIjogW10KfQo=\n", "functionName": "renamePage" }, "reindexPages": { "path": "core/page.ts", - "code": "(function() {\n const pageLinkRegex = /\\[\\[([\\w\\s\\/\\:,\\.\\-]+)\\]\\]/;\n function syscall(name, ...args) {\n let reqId = Math.floor(Math.random() * 1000000);\n return new Promise((resolve, reject)=>{\n self.dispatchEvent(new CustomEvent(\"syscall\", {\n detail: {\n id: reqId,\n name: name,\n args: args,\n callback: resolve\n }\n }));\n });\n }\n const wikilinkRegex = new RegExp(pageLinkRegex, \"g\");\n async function indexLinks({ name , text }) {\n let backLinks = [];\n for (let match of text.matchAll(wikilinkRegex)){\n let toPage = match[1];\n let pos = match.index;\n backLinks.push({\n key: `pl:${toPage}:${pos}`,\n value: name\n });\n }\n console.log(\"Found\", backLinks.length, \"wiki link(s)\");\n await syscall(\"indexer.batchSet\", name, backLinks);\n }\n async function deletePage() {\n let pageMeta = await syscall(\"editor.getCurrentPage\");\n console.log(\"Navigating to start page\");\n await syscall(\"editor.navigate\", \"start\");\n console.log(\"Deleting page from space\");\n await syscall(\"space.deletePage\", pageMeta.name);\n console.log(\"Reloading page list\");\n await syscall(\"space.reloadPageList\");\n }\n async function renamePage() {\n const pageMeta = await syscall(\"editor.getCurrentPage\");\n const oldName = pageMeta.name;\n console.log(\"Old name is\", oldName);\n const newName = await syscall(\"editor.prompt\", `Rename ${oldName} to:`, oldName);\n if (!newName) {\n return;\n }\n console.log(\"New name\", newName);\n let pagesToUpdate = await getBackLinks(oldName);\n console.log(\"All pages containing backlinks\", pagesToUpdate);\n let text = await syscall(\"editor.getText\");\n console.log(\"Writing new page to space\");\n await syscall(\"space.writePage\", newName, text);\n console.log(\"Deleting page from space\");\n await syscall(\"space.deletePage\", oldName);\n console.log(\"Reloading page list\");\n await syscall(\"space.reloadPageList\");\n console.log(\"Navigating to new page\");\n await syscall(\"editor.navigate\", newName);\n let pageToUpdateSet = new Set();\n for (let pageToUpdate of pagesToUpdate){\n pageToUpdateSet.add(pageToUpdate.page);\n }\n for (let pageToUpdate1 of pageToUpdateSet){\n console.log(\"Now going to update links in\", pageToUpdate1);\n let { text } = await syscall(\"space.readPage\", pageToUpdate1);\n if (!text) {\n continue;\n }\n let newText = text.replaceAll(`[[${oldName}]]`, `[[${newName}]]`);\n if (text !== newText) {\n console.log(\"Changes made, saving...\");\n await syscall(\"space.writePage\", pageToUpdate1, newText);\n }\n }\n }\n async function getBackLinks(pageName) {\n let allBackLinks = await syscall(\"indexer.scanPrefixGlobal\", `pl:${pageName}:`);\n let pagesToUpdate = [];\n for (let { key , value } of allBackLinks){\n let keyParts = key.split(\":\");\n pagesToUpdate.push({\n page: value,\n pos: +keyParts[keyParts.length - 1]\n });\n }\n return pagesToUpdate;\n }\n async function showBackLinks() {\n const pageMeta = await syscall(\"editor.getCurrentPage\");\n let backLinks = await getBackLinks(pageMeta.name);\n console.log(\"Backlinks\", backLinks);\n }\n async function reindex() {\n await syscall(\"space.reindex\");\n }\n return {\n indexLinks: indexLinks,\n deletePage: deletePage,\n renamePage: renamePage,\n showBackLinks: showBackLinks,\n reindex: reindex\n };\n})();\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZpbGU6Ly8vVXNlcnMvemVmL2dpdC9udWdnZXQvd2ViYXBwL3NyYy9jb25zdGFudC50cyIsImZpbGU6Ly8vVXNlcnMvemVmL2dpdC9udWdnZXQvcGx1Z2lucy9jb3JlL2xpYi9zeXNjYWxsLnRzIiwiZmlsZTovLy9Vc2Vycy96ZWYvZ2l0L251Z2dldC9wbHVnaW5zL2NvcmUvcGFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0lBQU8sS0FBSyxDQUFDLGFBQWE7YUNBVixPQUFPLENBQUMsSUFBWSxLQUFLLElBQUksRUFBYyxDQUFDO1FBQzFELEdBQUcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLE9BQU87UUFFOUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sR0FBSyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxhQUFhLENBQ2hCLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBUyxVQUFFLENBQUM7Z0JBQzFCLE1BQU0sRUFBRSxDQUFDO29CQUNQLEVBQUUsRUFBRSxLQUFLO29CQUNULElBQUksRUFBRSxJQUFJO29CQUNWLElBQUksRUFBRSxJQUFJO29CQUNWLFFBQVEsRUFBRSxPQUFPO2dCQUNuQixDQUFDO1lBQ0gsQ0FBQztRQUVMLENBQUM7SUFDSCxDQUFDO0lDWEQsS0FBSyxDQUFDLGFBQWEsR0FBRyxHQUFHLENBQUMsTUFBTSxnQkFBZ0IsQ0FBRzttQkFFN0IsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUUsSUFBSSxFQUFhLENBQUMsRUFBRSxDQUFDO1FBQzVELEdBQUcsQ0FBQyxTQUFTLEdBQXFDLENBQUMsQ0FBQztRQUNwRCxHQUFHLEVBQUUsR0FBRyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRyxDQUFDO1lBQy9DLEdBQUcsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUM7WUFDcEIsR0FBRyxDQUFDLEdBQUcs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\n", + "code": "(()=>{var r=Object.defineProperty;var w=Object.getOwnPropertyDescriptor;var k=Object.getOwnPropertyNames;var f=Object.prototype.hasOwnProperty;var m=a=>r(a,\"__esModule\",{value:!0});var x=(a,e)=>{for(var t in e)r(a,t,{get:e[t],enumerable:!0})},u=(a,e,t,o)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let i of k(e))!f.call(a,i)&&(t||i!==\"default\")&&r(a,i,{get:()=>e[i],enumerable:!(o=w(e,i))||o.enumerable});return a};var P=(a=>(e,t)=>a&&a.get(e)||(t=u(m({}),e,1),a&&a.set(e,t),t))(typeof WeakMap!=\"undefined\"?new WeakMap:0);var R={};x(R,{deletePage:()=>h,indexLinks:()=>L,reindex:()=>B,renamePage:()=>v,showBackLinks:()=>b});var p=/\\[\\[([\\w\\s\\/\\:,\\.\\-]+)\\]\\]/;function n(a,...e){let t=Math.floor(Math.random()*1e6);return new Promise((o,i)=>{self.dispatchEvent(new CustomEvent(\"syscall\",{detail:{id:t,name:a,args:e,callback:o}}))})}var y=new RegExp(p,\"g\");async function L({name:a,text:e}){let t=[];for(let o of e.matchAll(y)){let i=o[1],l=o.index;t.push({key:`pl:${i}:${l}`,value:a})}console.log(\"Found\",t.length,\"wiki link(s)\"),await n(\"indexer.batchSet\",a,t)}async function h(){let a=await n(\"editor.getCurrentPage\");console.log(\"Navigating to start page\"),await n(\"editor.navigate\",\"start\"),console.log(\"Deleting page from space\"),await n(\"space.deletePage\",a.name),console.log(\"Reloading page list\"),await n(\"space.reloadPageList\")}async function v(){let e=(await n(\"editor.getCurrentPage\")).name;console.log(\"Old name is\",e);let t=await n(\"editor.prompt\",`Rename ${e} to:`,e);if(!t)return;console.log(\"New name\",t);let o=await d(e);console.log(\"All pages containing backlinks\",o);let i=await n(\"editor.getText\");console.log(\"Writing new page to space\"),await n(\"space.writePage\",t,i),console.log(\"Deleting page from space\"),await n(\"space.deletePage\",e),console.log(\"Reloading page list\"),await n(\"space.reloadPageList\"),console.log(\"Navigating to new page\"),await n(\"editor.navigate\",t);let l=new Set;for(let s of o)l.add(s.page);for(let s of l){console.log(\"Now going to update links in\",s);let{text:g}=await n(\"space.readPage\",s);if(!g)continue;let c=g.replaceAll(`[[${e}]]`,`[[${t}]]`);g!==c&&(console.log(\"Changes made, saving...\"),await n(\"space.writePage\",s,c))}}async function d(a){let e=await n(\"indexer.scanPrefixGlobal\",`pl:${a}:`),t=[];for(let{key:o,value:i}of e){let l=o.split(\":\");t.push({page:i,pos:+l[l.length-1]})}return t}async function b(){let a=await n(\"editor.getCurrentPage\"),e=await d(a.name);console.log(\"Backlinks\",e)}async function B(){await n(\"space.reindex\")}return P(R);})();\n//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiY29yZS9wYWdlLnRzIiwgIi4uL3dlYmFwcC9zcmMvY29uc3RhbnQudHMiLCAiY29yZS9saWIvc3lzY2FsbC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHsgSW5kZXhFdmVudCB9IGZyb20gXCIuLi8uLi93ZWJhcHAvc3JjL2FwcF9ldmVudFwiO1xuaW1wb3J0IHsgcGFnZUxpbmtSZWdleCB9IGZyb20gXCIuLi8uLi93ZWJhcHAvc3JjL2NvbnN0YW50XCI7XG5pbXBvcnQgeyBzeXNjYWxsIH0gZnJvbSBcIi4vbGliL3N5c2NhbGxcIjtcblxuY29uc3Qgd2lraWxpbmtSZWdleCA9IG5ldyBSZWdFeHAocGFnZUxpbmtSZWdleCwgXCJnXCIpO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaW5kZXhMaW5rcyh7IG5hbWUsIHRleHQgfTogSW5kZXhFdmVudCkge1xuICBsZXQgYmFja0xpbmtzOiB7IGtleTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH1bXSA9IFtdO1xuICBmb3IgKGxldCBtYXRjaCBvZiB0ZXh0Lm1hdGNoQWxsKHdpa2lsaW5rUmVnZXgpKSB7XG4gICAgbGV0IHRvUGFnZSA9IG1hdGNoWzFdO1xuICAgIGxldCBwb3MgPSBtYXRjaC5pbmRleCE7XG4gICAgYmFja0xpbmtzLnB1c2goe1xuICAgICAga2V5OiBgcGw6JHt0b1BhZ2V9OiR7cG9zfWAsXG4gICAgICB2YWx1ZTogbmFtZSxcbiAgICB9KTtcbiAgfVxuICBjb25zb2xlLmxvZyhcIkZvdW5kXCIsIGJhY2tMaW5rcy5sZW5ndGgsIFwid2lraSBsaW5rKHMpXCIpO1xuICBhd2FpdCBzeXNjYWxsKFwiaW5kZXhlci5iYXRjaFNldFwiLCBuYW1lLCBiYWNrTGlua3MpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZGVsZXRlUGFnZSgpIHtcbiAgbGV0IHBhZ2VNZXRhID0gYXdhaXQgc3lzY2FsbChcImVkaXRvci5nZXRDdXJyZW50UGFnZVwiKTtcbiAgY29uc29sZS5sb2coXCJOYXZpZ2F0aW5nIHRvIHN0YXJ0IHBhZ2VcIik7XG4gIGF3YWl0IHN5c2NhbGwoXCJlZGl0b3IubmF2aWdhdGVcIiwgXCJzdGFydFwiKTtcbiAgY29uc29sZS5sb2coXCJEZWxldGluZyBwYWdlIGZyb20gc3BhY2VcIik7XG4gIGF3YWl0IHN5c2NhbGwoXCJzcGFjZS5kZWxldGVQYWdlXCIsIHBhZ2VNZXRhLm5hbWUpO1xuICBjb25zb2xlLmxvZyhcIlJlbG9hZGluZyBwYWdlIGxpc3RcIik7XG4gIGF3YWl0IHN5c2NhbGwoXCJzcGFjZS5yZWxvYWRQYWdlTGlzdFwiKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlbmFtZVBhZ2UoKSB7XG4gIGNvbnN0IHBhZ2VNZXRhID0gYXdhaXQgc3lzY2FsbChcImVkaXRvci5nZXRDdXJyZW50UGFnZVwiKTtcbiAgY29uc3Qgb2xkTmFtZSA9IHBhZ2VNZXRhLm5hbWU7XG4gIGNvbnNvbGUubG9nKFwiT2xkIG5hbWUgaXNcIiwgb2xkTmFtZSk7XG4gIGNvbnN0IG5ld05hbWUgPSBhd2FpdCBzeXNjYWxsKFxuICAgIFwiZWRpdG9yLnByb21wdFwiLFxuICAgIGBSZW5hbWUgJHtvbGROYW1lfSB0bzpgLFxuICAgIG9sZE5hbWVcbiAgKTtcbiAgaWYgKCFuZXdOYW1lKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGNvbnNvbGUubG9nKFwiTmV3IG5hbWVcIiwgbmV3TmFtZSk7XG5cbiAgbGV0IHBhZ2VzVG9VcGRhdGUgPSBhd2FpdCBnZXRCYWNrTGlua3Mob2xkTmFtZSk7XG4gIGNvbnNvbGUubG9nKFwiQWxsIHBhZ2VzIGNvbnRhaW5pbmcgYmFja2xpbmtzXCIsIHBhZ2VzVG9VcGRhdGUpO1xuXG4gIGxldCB0ZXh0ID0gYXdhaXQgc3lzY2FsbChcImVkaXRvci5nZXRUZXh0XCIpO1xuICBjb25zb2xlLmxvZyhcIldyaXRpbmcgbmV3IHBhZ2UgdG8gc3BhY2VcIik7XG4gIGF3YWl0IHN5c2NhbGwoXCJzcGFjZS53cml0ZVBhZ2VcIiwgbmV3TmFtZSwgdGV4dCk7XG4gIGNvbnNvbGUubG9nKFwiRGVsZXRpbmcgcGFnZSBmcm9tIHNwYWNlXCIpO1xuICBhd2FpdCBzeXNjYWxsKFwic3BhY2UuZGVsZXRlUGFnZVwiLCBvbGROYW1lKTtcbiAgY29uc29sZS5sb2coXCJSZWxvYWRpbmcgcGFnZSBsaXN0XCIpO1xuICBhd2FpdCBzeXNjYWxsKFwic3BhY2UucmVsb2FkUGFnZUxpc3RcIik7XG4gIGNvbnNvbGUubG9nKFwiTmF2aWdhdGluZyB0byBuZXcgcGFnZVwiKTtcbiAgYXdhaXQgc3lzY2FsbChcImVkaXRvci5uYXZpZ2F0ZVwiLCBuZXdOYW1lKTtcblxuICBsZXQgcGFnZVRvVXBkYXRlU2V0ID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIGZvciAobGV0IHBhZ2VUb1VwZGF0ZSBvZiBwYWdlc1RvVXBkYXRlKSB7XG4gICAgcGFnZVRvVXBkYXRlU2V0LmFkZChwYWdlVG9VcGRhdGUucGFnZSk7XG4gIH1cblxuICBmb3IgKGxldCBwYWdlVG9VcGRhdGUgb2YgcGFnZVRvVXBkYXRlU2V0KSB7XG4gICAgY29uc29sZS5sb2coXCJOb3cgZ29pbmcgdG8gdXBkYXRlIGxpbmtzIGluXCIsIHBhZ2VUb1VwZGF0ZSk7XG4gICAgbGV0IHsgdGV4dCB9ID0gYXdhaXQgc3lzY2FsbChcInNwYWNlLnJlYWRQYWdlXCIsIHBhZ2VUb1VwZGF0ZSk7XG4gICAgaWYgKCF0ZXh0KSB7XG4gICAgICAvLyBQYWdlIGxpa2VseSBkb2VzIG5vdCBleGlzdCwgYnV0IGF0IGxlYXN0IHdlIGNhbiBza2lwIGl0XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgbGV0IG5ld1RleHQgPSB0ZXh0LnJlcGxhY2VBbGwoYFtbJHtvbGROYW1lfV1dYCwgYFtbJHtuZXdOYW1lfV1dYCk7XG4gICAgaWYgKHRleHQgIT09IG5ld1RleHQpIHtcbiAgICAgIGNvbnNvbGUubG9nKFwiQ2hhbmdlcyBtYWRlLCBzYXZpbmcuLi5cIik7XG4gICAgICBhd2FpdCBzeXNjYWxsKFwic3BhY2Uud3JpdGVQYWdlXCIsIHBhZ2VUb1VwZGF0ZSwgbmV3VGV4dCk7XG4gICAgfVxuICB9XG59XG5cbnR5cGUgQmFja0xpbmsgPSB7XG4gIHBhZ2U6IHN0cmluZztcbiAgcG9zOiBudW1iZXI7XG59O1xuXG5hc3luYyBmdW5jdGlvbiBnZXRCYWNrTGlua3MocGFnZU5hbWU6IHN0cmluZyk6IFByb21pc2U8QmFja0xpbmtbXT4ge1xuICBsZXQgYWxsQmFja0xpbmtzID0gYXdhaXQgc3lzY2FsbChcbiAgICBcImluZGV4ZXIuc2NhblByZWZpeEdsb2JhbFwiLFxuICAgIGBwbDoke3BhZ2VOYW1lfTpgXG4gICk7XG4gIGxldCBwYWdlc1RvVXBkYXRlOiBCYWNrTGlua1tdID0gW107XG4gIGZvciAobGV0IHsga2V5LCB2YWx1ZSB9IG9mIGFsbEJhY2tMaW5rcykge1xuICAgIGxldCBrZXlQYXJ0cyA9IGtleS5zcGxpdChcIjpcIik7XG4gICAgcGFnZXNUb1VwZGF0ZS5wdXNoKHtcbiAgICAgIHBhZ2U6IHZhbHVlLFxuICAgICAgcG9zOiAra2V5UGFydHNba2V5UGFydHMubGVuZ3RoIC0gMV0sXG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIHBhZ2VzVG9VcGRhdGU7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzaG93QmFja0xpbmtzKCkge1xuICBjb25zdCBwYWdlTWV0YSA9IGF3YWl0IHN5c2NhbGwoXCJlZGl0b3IuZ2V0Q3VycmVudFBhZ2VcIik7XG4gIGxldCBiYWNrTGlua3MgPSBhd2FpdCBnZXRCYWNrTGlua3MocGFnZU1ldGEubmFtZSk7XG5cbiAgY29uc29sZS5sb2coXCJCYWNrbGlua3NcIiwgYmFja0xpbmtzKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlaW5kZXgoKSB7XG4gIGF3YWl0IHN5c2NhbGwoXCJzcGFjZS5yZWluZGV4XCIpO1xufVxuIiwgImV4cG9ydCBjb25zdCBwYWdlTGlua1JlZ2V4ID0gL1xcW1xcWyhbXFx3XFxzXFwvXFw6LFxcLlxcLV0rKVxcXVxcXS87XG4iLCAiZXhwb3J0IGZ1bmN0aW9uIHN5c2NhbGwobmFtZTogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSk6IGFueSB7XG4gIGxldCByZXFJZCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDEwMDAwMDApO1xuICAvLyBjb25zb2xlLmxvZyhcIlN5c2NhbGxcIiwgbmFtZSwgcmVxSWQpO1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIHNlbGYuZGlzcGF0Y2hFdmVudChcbiAgICAgIG5ldyBDdXN0b21FdmVudChcInN5c2NhbGxcIiwge1xuICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICBpZDogcmVxSWQsXG4gICAgICAgICAgbmFtZTogbmFtZSxcbiAgICAgICAgICBhcmdzOiBhcmdzLFxuICAgICAgICAgIGNhbGxiYWNrOiByZXNvbHZlLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICApO1xuICB9KTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI0aEJBQUEscUdDQU8sR0FBTSxHQUFnQiw2QkNBdEIsV0FBaUIsS0FBaUIsRUFBa0IsQ0FDekQsR0FBSSxHQUFRLEtBQUssTUFBTSxLQUFLLFNBQVcsS0FFdkMsTUFBTyxJQUFJLFNBQVEsQ0FBQyxFQUFTLElBQVcsQ0FDdEMsS0FBSyxjQUNILEdBQUksYUFBWSxVQUFXLENBQ3pCLE9BQVEsQ0FDTixHQUFJLEVBQ0osS0FBTSxFQUNOLEtBQU0sRUFDTixTQUFVLFFGTnBCLEdBQU0sR0FBZ0IsR0FBSSxRQUFPLEVBQWUsS0FFaEQsaUJBQWlDLENBQUUsT0FBTSxRQUFvQixDQUMzRCxHQUFJLEdBQThDLEdBQ2xELE9BQVMsS0FBUyxHQUFLLFNBQVMsR0FBZ0IsQ0FDOUMsR0FBSSxHQUFTLEVBQU0sR0FDZixFQUFNLEVBQU0sTUFDaEIsRUFBVSxLQUFLLENBQ2IsSUFBSyxNQUFNLEtBQVUsSUFDckIsTUFBTyxJQUdYLFFBQVEsSUFBSSxRQUFTLEVBQVUsT0FBUSxnQkFDdkMsS0FBTSxHQUFRLG1CQUFvQixFQUFNLEdBRzFDLGtCQUFtQyxDQUNqQyxHQUFJLEdBQVcsS0FBTSxHQUFRLHlCQUM3QixRQUFRLElBQUksNEJBQ1osS0FBTSxHQUFRLGtCQUFtQixTQUNqQyxRQUFRLElBQUksNEJBQ1osS0FBTSxHQUFRLG1CQUFvQixFQUFTLE1BQzNDLFFBQVEsSUFBSSx1QkFDWixLQUFNLEdBQVEsd0JBR2hCLGtCQUFtQyxDQUVqQyxHQUFNLEdBQVUsQUFEQyxNQUFNLEdBQVEsMEJBQ04sS0FDekIsUUFBUSxJQUFJLGNBQWUsR0FDM0IsR0FBTSxHQUFVLEtBQU0sR0FDcEIsZ0JBQ0EsVUFBVSxRQUNWLEdBRUYsR0FBSSxDQUFDLEVBQ0gsT0FFRixRQUFRLElBQUksV0FBWSxHQUV4QixHQUFJLEdBQWdCLEtBQU0sR0FBYSxHQUN2QyxRQUFRLElBQUksaUNBQWtDLEdBRTlDLEdBQUksR0FBTyxLQUFNLEdBQVEsa0JBQ3pCLFFBQVEsSUFBSSw2QkFDWixLQUFNLEdBQVEsa0JBQW1CLEVBQVMsR0FDMUMsUUFBUSxJQUFJLDRCQUNaLEtBQU0sR0FBUSxtQkFBb0IsR0FDbEMsUUFBUSxJQUFJLHVCQUNaLEtBQU0sR0FBUSx3QkFDZCxRQUFRLElBQUksMEJBQ1osS0FBTSxHQUFRLGtCQUFtQixHQUVqQyxHQUFJLEdBQWtCLEdBQUksS0FDMUIsT0FBUyxLQUFnQixHQUN2QixFQUFnQixJQUFJLEVBQWEsTUFHbkMsT0FBUyxLQUFnQixHQUFpQixDQUN4QyxRQUFRLElBQUksK0JBQWdDLEdBQzVDLEdBQUksQ0FBRSxRQUFTLEtBQU0sR0FBUSxpQkFBa0IsR0FDL0MsR0FBSSxDQUFDLEVBRUgsU0FFRixHQUFJLEdBQVUsRUFBSyxXQUFXLEtBQUssTUFBYSxLQUFLLE9BQ3JELEFBQUksSUFBUyxHQUNYLFNBQVEsSUFBSSwyQkFDWixLQUFNLEdBQVEsa0JBQW1CLEVBQWMsS0FVckQsaUJBQTRCLEVBQXVDLENBQ2pFLEdBQUksR0FBZSxLQUFNLEdBQ3ZCLDJCQUNBLE1BQU0sTUFFSixFQUE0QixHQUNoQyxPQUFTLENBQUUsTUFBSyxVQUFXLEdBQWMsQ0FDdkMsR0FBSSxHQUFXLEVBQUksTUFBTSxLQUN6QixFQUFjLEtBQUssQ0FDakIsS0FBTSxFQUNOLElBQUssQ0FBQyxFQUFTLEVBQVMsT0FBUyxLQUdyQyxNQUFPLEdBR1Qsa0JBQXNDLENBQ3BDLEdBQU0sR0FBVyxLQUFNLEdBQVEseUJBQzNCLEVBQVksS0FBTSxHQUFhLEVBQVMsTUFFNUMsUUFBUSxJQUFJLFlBQWEsR0FHM0Isa0JBQWdDLENBQzlCLEtBQU0sR0FBUSIsCiAgIm5hbWVzIjogW10KfQo=\n", "functionName": "reindex" }, "pageComplete": { "path": "core/navigate.ts", - "code": "(function() {\n function syscall(name, ...args) {\n let reqId = Math.floor(Math.random() * 1000000);\n return new Promise((resolve, reject)=>{\n self.dispatchEvent(new CustomEvent(\"syscall\", {\n detail: {\n id: reqId,\n name: name,\n args: args,\n callback: resolve\n }\n }));\n });\n }\n async function navigate(syntaxNode) {\n if (!syntaxNode) {\n return;\n }\n console.log(\"Attempting to navigate based on syntax node\", syntaxNode);\n switch(syntaxNode.name){\n case \"WikiLinkPage\":\n await syscall(\"editor.navigate\", syntaxNode.text);\n break;\n case \"URL\":\n await syscall(\"editor.openUrl\", syntaxNode.text);\n break;\n case \"Link\":\n let match = /\\[[^\\\\]+\\]\\(([^\\)]+)\\)/.exec(syntaxNode.text);\n if (match) {\n await syscall(\"editor.openUrl\", match[1]);\n }\n }\n }\n async function linkNavigate() {\n navigate(await syscall(\"editor.getSyntaxNodeUnderCursor\"));\n }\n async function clickNavigate(event) {\n if (event.ctrlKey || event.metaKey) {\n let syntaxNode = await syscall(\"editor.getSyntaxNodeAtPos\", event.pos);\n navigate(syntaxNode);\n }\n }\n async function pageComplete() {\n let prefix = await syscall(\"editor.matchBefore\", \"\\\\[\\\\[[\\\\w\\\\s]*\");\n if (!prefix) {\n return null;\n }\n let allPages = await syscall(\"space.listPages\");\n return {\n from: prefix.from + 2,\n options: allPages.map((pageMeta)=>({\n label: pageMeta.name,\n type: \"page\"\n })\n )\n };\n }\n return {\n linkNavigate: linkNavigate,\n clickNavigate: clickNavigate,\n pageComplete: pageComplete\n };\n})();\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZpbGU6Ly8vVXNlcnMvemVmL2dpdC9udWdnZXQvcGx1Z2lucy9jb3JlL2xpYi9zeXNjYWxsLnRzIiwiZmlsZTovLy9Vc2Vycy96ZWYvZ2l0L251Z2dldC9wbHVnaW5zL2NvcmUvbmF2aWdhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjthQUFnQixPQUFPLENBQUMsSUFBWSxLQUFLLElBQUksRUFBYyxDQUFDO1FBQzFELEdBQUcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLE9BQU87UUFFOUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sR0FBSyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxhQUFhLENBQ2hCLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBUyxVQUFFLENBQUM7Z0JBQzFCLE1BQU0sRUFBRSxDQUFDO29CQUNQLEVBQUUsRUFBRSxLQUFLO29CQUNULElBQUksRUFBRSxJQUFJO29CQUNWLElBQUksRUFBRSxJQUFJO29CQUNWLFFBQVEsRUFBRSxPQUFPO2dCQUNuQixDQUFDO1lBQ0gsQ0FBQztRQUVMLENBQUM7SUFDSCxDQUFDO21CQ1pjLFFBQVEsQ0FBQyxVQUFlLEVBQUUsQ0FBQztRQUN4QyxFQUFFLEdBQUcsVUFBVSxFQUFFLENBQUM7WUFDaEIsTUFBTTtRQUNSLENBQUM7UUFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLENBQTZDLDhDQUFFLFVBQVU7UUFDckUsTUFBTSxDQUFFLFVBQVUsQ0FBQyxJQUFJO1lBQ3JCLElBQUksQ0FBQyxDQUFjO2dCQUNqQixLQUFLLFNBQVMsQ0FBaUIsa0JBQUUsVUFBVSxDQUFDLElBQUk7Z0JBQ2hELEtBQUs7WUFDUCxJQUFJLENBQUMsQ0FBSztnQkFDUixLQUFLLFNBQVMsQ0FBZ0IsaUJBQUUsVUFBVSxDQUFDLElBQUk7Z0JBQy9DLEtBQUs7WUFDUCxJQUFJLENBQUMsQ0FBTTtnQkFFVCxHQUFHLENBQUMsS0FBSyw0QkFBNEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJO2dCQUN6RCxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUM7b0JBQ1YsS0FBSyxTQUFTLENBQWdCLGlCQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUN6QyxDQUFDOztJQUVQLENBQUM7bUJBRXFCLFlBQVksR0FBRyxDQUFDO1FBQ3BDLFFBQVEsQ0FBQyxLQUFLLFNBQVMsQ0FBaUM7SUFDMUQsQ0FBQzttQkFFcUIsYUFBYSxDQUFDLEtBQWlCLEVBQUUsQ0FBQztRQUN0RCxFQUFFLEVBQUUsS0FBSyxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbkMsR0FBRyxDQUFDLFVBQVUsR0FBRyxLQUFLLFNBQVMsQ0FBMkIsNEJBQUUsS0FBSyxDQUFDLEdBQUc7WUFDckUsUUFBUSxDQUFDLFVBQVU7UUFDckIsQ0FBQztJQUNILENBQUM7bUJBRXFCLFlBQVksR0FBRyxDQUFDO1FBQ3BDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsS0FBSyxTQUFTLENBQW9CLHFCQUFFLENBQWlCO1FBQ2xFLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FBQztZQUNaLE1BQU0sQ0FBQyxJQUFJO1FBQ2IsQ0FBQztRQUNELEdBQUcsQ0FBQyxRQUFRLEdBQUcsS0FBSyxTQUFTLENBQWlCO1FBQzlDLE1BQU0sQ0FBQyxDQUFDO1lBQ04sSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEdBQUcsQ0FBQztZQUNyQixPQUFPLEVBQUUsUUFBUSxDQUFDLEdBQUcsRUFBRSxRQUFhLElBQU0sQ0FBQztvQkFDekMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxJQUFJO29CQUNwQixJQUFJLEVBQUUsQ0FBTTtnQkFDZCxDQUFDOztRQUNILENBQUM7SUFDSCxDQUFDOztRQXhCcUIsWUFBWSxFQUFaLFlBQVk7UUFJWixhQUFhLEVBQWIsYUFBYTtRQU9iLFlBQVksRUFBWixZQUFZIn0=\n", + "code": "(()=>{var o=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var m=e=>o(e,\"__esModule\",{value:!0});var f=(e,t)=>{for(var a in t)o(e,a,{get:t[a],enumerable:!0})},g=(e,t,a,r)=>{if(t&&typeof t==\"object\"||typeof t==\"function\")for(let n of s(t))!p.call(e,n)&&(a||n!==\"default\")&&o(e,n,{get:()=>t[n],enumerable:!(r=c(t,n))||r.enumerable});return e};var y=(e=>(t,a)=>e&&e.get(t)||(a=g(m({}),t,1),e&&e.set(t,a),a))(typeof WeakMap!=\"undefined\"?new WeakMap:0);var k={};f(k,{clickNavigate:()=>u,linkNavigate:()=>d,pageComplete:()=>w});function i(e,...t){let a=Math.floor(Math.random()*1e6);return new Promise((r,n)=>{self.dispatchEvent(new CustomEvent(\"syscall\",{detail:{id:a,name:e,args:t,callback:r}}))})}async function l(e){if(!!e)switch(console.log(\"Attempting to navigate based on syntax node\",e),e.name){case\"WikiLinkPage\":await i(\"editor.navigate\",e.text);break;case\"URL\":await i(\"editor.openUrl\",e.text);break;case\"Link\":let t=/\\[[^\\\\]+\\]\\(([^\\)]+)\\)/.exec(e.text);t&&await i(\"editor.openUrl\",t[1])}}async function d(){l(await i(\"editor.getSyntaxNodeUnderCursor\"))}async function u(e){if(e.ctrlKey||e.metaKey){let t=await i(\"editor.getSyntaxNodeAtPos\",e.pos);l(t)}}async function w(){let e=await i(\"editor.matchBefore\",\"\\\\[\\\\[[\\\\w\\\\s]*\");if(!e)return null;let t=await i(\"space.listPages\");return{from:e.from+2,options:t.map(a=>({label:a.name,type:\"page\"}))}}return y(k);})();\n//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiY29yZS9uYXZpZ2F0ZS50cyIsICJjb3JlL2xpYi9zeXNjYWxsLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgeyBDbGlja0V2ZW50IH0gZnJvbSBcIi4uLy4uL3dlYmFwcC9zcmMvYXBwX2V2ZW50LnRzXCI7XG5pbXBvcnQgeyBzeXNjYWxsIH0gZnJvbSBcIi4vbGliL3N5c2NhbGwudHNcIjtcblxuYXN5bmMgZnVuY3Rpb24gbmF2aWdhdGUoc3ludGF4Tm9kZTogYW55KSB7XG4gIGlmICghc3ludGF4Tm9kZSkge1xuICAgIHJldHVybjtcbiAgfVxuICBjb25zb2xlLmxvZyhcIkF0dGVtcHRpbmcgdG8gbmF2aWdhdGUgYmFzZWQgb24gc3ludGF4IG5vZGVcIiwgc3ludGF4Tm9kZSk7XG4gIHN3aXRjaCAoc3ludGF4Tm9kZS5uYW1lKSB7XG4gICAgY2FzZSBcIldpa2lMaW5rUGFnZVwiOlxuICAgICAgYXdhaXQgc3lzY2FsbChcImVkaXRvci5uYXZpZ2F0ZVwiLCBzeW50YXhOb2RlLnRleHQpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBcIlVSTFwiOlxuICAgICAgYXdhaXQgc3lzY2FsbChcImVkaXRvci5vcGVuVXJsXCIsIHN5bnRheE5vZGUudGV4dCk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIFwiTGlua1wiOlxuICAgICAgLy8gTWFya2Rvd24gbGluazogW2JsYV0oVVJMSEVSRSkgbmVlZHMgZXh0cmFjdGlvblxuICAgICAgbGV0IG1hdGNoID0gL1xcW1teXFxcXF0rXFxdXFwoKFteXFwpXSspXFwpLy5leGVjKHN5bnRheE5vZGUudGV4dCk7XG4gICAgICBpZiAobWF0Y2gpIHtcbiAgICAgICAgYXdhaXQgc3lzY2FsbChcImVkaXRvci5vcGVuVXJsXCIsIG1hdGNoWzFdKTtcbiAgICAgIH1cbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbGlua05hdmlnYXRlKCkge1xuICBuYXZpZ2F0ZShhd2FpdCBzeXNjYWxsKFwiZWRpdG9yLmdldFN5bnRheE5vZGVVbmRlckN1cnNvclwiKSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjbGlja05hdmlnYXRlKGV2ZW50OiBDbGlja0V2ZW50KSB7XG4gIGlmIChldmVudC5jdHJsS2V5IHx8IGV2ZW50Lm1ldGFLZXkpIHtcbiAgICBsZXQgc3ludGF4Tm9kZSA9IGF3YWl0IHN5c2NhbGwoXCJlZGl0b3IuZ2V0U3ludGF4Tm9kZUF0UG9zXCIsIGV2ZW50LnBvcyk7XG4gICAgbmF2aWdhdGUoc3ludGF4Tm9kZSk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHBhZ2VDb21wbGV0ZSgpIHtcbiAgbGV0IHByZWZpeCA9IGF3YWl0IHN5c2NhbGwoXCJlZGl0b3IubWF0Y2hCZWZvcmVcIiwgXCJcXFxcW1xcXFxbW1xcXFx3XFxcXHNdKlwiKTtcbiAgaWYgKCFwcmVmaXgpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBsZXQgYWxsUGFnZXMgPSBhd2FpdCBzeXNjYWxsKFwic3BhY2UubGlzdFBhZ2VzXCIpO1xuICByZXR1cm4ge1xuICAgIGZyb206IHByZWZpeC5mcm9tICsgMixcbiAgICBvcHRpb25zOiBhbGxQYWdlcy5tYXAoKHBhZ2VNZXRhOiBhbnkpID0+ICh7XG4gICAgICBsYWJlbDogcGFnZU1ldGEubmFtZSxcbiAgICAgIHR5cGU6IFwicGFnZVwiLFxuICAgIH0pKSxcbiAgfTtcbn1cbiIsICJleHBvcnQgZnVuY3Rpb24gc3lzY2FsbChuYW1lOiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKTogYW55IHtcbiAgbGV0IHJlcUlkID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTAwMDAwMCk7XG4gIC8vIGNvbnNvbGUubG9nKFwiU3lzY2FsbFwiLCBuYW1lLCByZXFJZCk7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgc2VsZi5kaXNwYXRjaEV2ZW50KFxuICAgICAgbmV3IEN1c3RvbUV2ZW50KFwic3lzY2FsbFwiLCB7XG4gICAgICAgIGRldGFpbDoge1xuICAgICAgICAgIGlkOiByZXFJZCxcbiAgICAgICAgICBuYW1lOiBuYW1lLFxuICAgICAgICAgIGFyZ3M6IGFyZ3MsXG4gICAgICAgICAgY2FsbGJhY2s6IHJlc29sdmUsXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgICk7XG4gIH0pO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjRoQkFBQSwwRUNBTyxXQUFpQixLQUFpQixFQUFrQixDQUN6RCxHQUFJLEdBQVEsS0FBSyxNQUFNLEtBQUssU0FBVyxLQUV2QyxNQUFPLElBQUksU0FBUSxDQUFDLEVBQVMsSUFBVyxDQUN0QyxLQUFLLGNBQ0gsR0FBSSxhQUFZLFVBQVcsQ0FDekIsT0FBUSxDQUNOLEdBQUksRUFDSixLQUFNLEVBQ04sS0FBTSxFQUNOLFNBQVUsUURQcEIsaUJBQXdCLEVBQWlCLENBQ3ZDLEdBQUksRUFBQyxFQUlMLE9BREEsUUFBUSxJQUFJLDhDQUErQyxHQUNuRCxFQUFXLFVBQ1osZUFDSCxLQUFNLEdBQVEsa0JBQW1CLEVBQVcsTUFDNUMsVUFDRyxNQUNILEtBQU0sR0FBUSxpQkFBa0IsRUFBVyxNQUMzQyxVQUNHLE9BRUgsR0FBSSxHQUFRLHlCQUF5QixLQUFLLEVBQVcsTUFDckQsQUFBSSxHQUNGLEtBQU0sR0FBUSxpQkFBa0IsRUFBTSxLQUs5QyxrQkFBcUMsQ0FDbkMsRUFBUyxLQUFNLEdBQVEsb0NBR3pCLGlCQUFvQyxFQUFtQixDQUNyRCxHQUFJLEVBQU0sU0FBVyxFQUFNLFFBQVMsQ0FDbEMsR0FBSSxHQUFhLEtBQU0sR0FBUSw0QkFBNkIsRUFBTSxLQUNsRSxFQUFTLElBSWIsa0JBQXFDLENBQ25DLEdBQUksR0FBUyxLQUFNLEdBQVEscUJBQXNCLG1CQUNqRCxHQUFJLENBQUMsRUFDSCxNQUFPLE1BRVQsR0FBSSxHQUFXLEtBQU0sR0FBUSxtQkFDN0IsTUFBTyxDQUNMLEtBQU0sRUFBTyxLQUFPLEVBQ3BCLFFBQVMsRUFBUyxJQUFJLEFBQUMsR0FBbUIsRUFDeEMsTUFBTyxFQUFTLEtBQ2hCLEtBQU0iLAogICJuYW1lcyI6IFtdCn0K\n", "functionName": "pageComplete" }, "linkNavigate": { "path": "core/navigate.ts", - "code": "(function() {\n function syscall(name, ...args) {\n let reqId = Math.floor(Math.random() * 1000000);\n return new Promise((resolve, reject)=>{\n self.dispatchEvent(new CustomEvent(\"syscall\", {\n detail: {\n id: reqId,\n name: name,\n args: args,\n callback: resolve\n }\n }));\n });\n }\n async function navigate(syntaxNode) {\n if (!syntaxNode) {\n return;\n }\n console.log(\"Attempting to navigate based on syntax node\", syntaxNode);\n switch(syntaxNode.name){\n case \"WikiLinkPage\":\n await syscall(\"editor.navigate\", syntaxNode.text);\n break;\n case \"URL\":\n await syscall(\"editor.openUrl\", syntaxNode.text);\n break;\n case \"Link\":\n let match = /\\[[^\\\\]+\\]\\(([^\\)]+)\\)/.exec(syntaxNode.text);\n if (match) {\n await syscall(\"editor.openUrl\", match[1]);\n }\n }\n }\n async function linkNavigate() {\n navigate(await syscall(\"editor.getSyntaxNodeUnderCursor\"));\n }\n async function clickNavigate(event) {\n if (event.ctrlKey || event.metaKey) {\n let syntaxNode = await syscall(\"editor.getSyntaxNodeAtPos\", event.pos);\n navigate(syntaxNode);\n }\n }\n async function pageComplete() {\n let prefix = await syscall(\"editor.matchBefore\", \"\\\\[\\\\[[\\\\w\\\\s]*\");\n if (!prefix) {\n return null;\n }\n let allPages = await syscall(\"space.listPages\");\n return {\n from: prefix.from + 2,\n options: allPages.map((pageMeta)=>({\n label: pageMeta.name,\n type: \"page\"\n })\n )\n };\n }\n return {\n linkNavigate: linkNavigate,\n clickNavigate: clickNavigate,\n pageComplete: pageComplete\n };\n})();\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZpbGU6Ly8vVXNlcnMvemVmL2dpdC9udWdnZXQvcGx1Z2lucy9jb3JlL2xpYi9zeXNjYWxsLnRzIiwiZmlsZTovLy9Vc2Vycy96ZWYvZ2l0L251Z2dldC9wbHVnaW5zL2NvcmUvbmF2aWdhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjthQUFnQixPQUFPLENBQUMsSUFBWSxLQUFLLElBQUksRUFBYyxDQUFDO1FBQzFELEdBQUcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLE9BQU87UUFFOUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sR0FBSyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxhQUFhLENBQ2hCLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBUyxVQUFFLENBQUM7Z0JBQzFCLE1BQU0sRUFBRSxDQUFDO29CQUNQLEVBQUUsRUFBRSxLQUFLO29CQUNULElBQUksRUFBRSxJQUFJO29CQUNWLElBQUksRUFBRSxJQUFJO29CQUNWLFFBQVEsRUFBRSxPQUFPO2dCQUNuQixDQUFDO1lBQ0gsQ0FBQztRQUVMLENBQUM7SUFDSCxDQUFDO21CQ1pjLFFBQVEsQ0FBQyxVQUFlLEVBQUUsQ0FBQztRQUN4QyxFQUFFLEdBQUcsVUFBVSxFQUFFLENBQUM7WUFDaEIsTUFBTTtRQUNSLENBQUM7UUFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLENBQTZDLDhDQUFFLFVBQVU7UUFDckUsTUFBTSxDQUFFLFVBQVUsQ0FBQyxJQUFJO1lBQ3JCLElBQUksQ0FBQyxDQUFjO2dCQUNqQixLQUFLLFNBQVMsQ0FBaUIsa0JBQUUsVUFBVSxDQUFDLElBQUk7Z0JBQ2hELEtBQUs7WUFDUCxJQUFJLENBQUMsQ0FBSztnQkFDUixLQUFLLFNBQVMsQ0FBZ0IsaUJBQUUsVUFBVSxDQUFDLElBQUk7Z0JBQy9DLEtBQUs7WUFDUCxJQUFJLENBQUMsQ0FBTTtnQkFFVCxHQUFHLENBQUMsS0FBSyw0QkFBNEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJO2dCQUN6RCxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUM7b0JBQ1YsS0FBSyxTQUFTLENBQWdCLGlCQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUN6QyxDQUFDOztJQUVQLENBQUM7bUJBRXFCLFlBQVksR0FBRyxDQUFDO1FBQ3BDLFFBQVEsQ0FBQyxLQUFLLFNBQVMsQ0FBaUM7SUFDMUQsQ0FBQzttQkFFcUIsYUFBYSxDQUFDLEtBQWlCLEVBQUUsQ0FBQztRQUN0RCxFQUFFLEVBQUUsS0FBSyxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbkMsR0FBRyxDQUFDLFVBQVUsR0FBRyxLQUFLLFNBQVMsQ0FBMkIsNEJBQUUsS0FBSyxDQUFDLEdBQUc7WUFDckUsUUFBUSxDQUFDLFVBQVU7UUFDckIsQ0FBQztJQUNILENBQUM7bUJBRXFCLFlBQVksR0FBRyxDQUFDO1FBQ3BDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsS0FBSyxTQUFTLENBQW9CLHFCQUFFLENBQWlCO1FBQ2xFLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FBQztZQUNaLE1BQU0sQ0FBQyxJQUFJO1FBQ2IsQ0FBQztRQUNELEdBQUcsQ0FBQyxRQUFRLEdBQUcsS0FBSyxTQUFTLENBQWlCO1FBQzlDLE1BQU0sQ0FBQyxDQUFDO1lBQ04sSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEdBQUcsQ0FBQztZQUNyQixPQUFPLEVBQUUsUUFBUSxDQUFDLEdBQUcsRUFBRSxRQUFhLElBQU0sQ0FBQztvQkFDekMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxJQUFJO29CQUNwQixJQUFJLEVBQUUsQ0FBTTtnQkFDZCxDQUFDOztRQUNILENBQUM7SUFDSCxDQUFDOztRQXhCcUIsWUFBWSxFQUFaLFlBQVk7UUFJWixhQUFhLEVBQWIsYUFBYTtRQU9iLFlBQVksRUFBWixZQUFZIn0=\n", + "code": "(()=>{var o=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var m=e=>o(e,\"__esModule\",{value:!0});var f=(e,t)=>{for(var a in t)o(e,a,{get:t[a],enumerable:!0})},g=(e,t,a,r)=>{if(t&&typeof t==\"object\"||typeof t==\"function\")for(let n of s(t))!p.call(e,n)&&(a||n!==\"default\")&&o(e,n,{get:()=>t[n],enumerable:!(r=c(t,n))||r.enumerable});return e};var y=(e=>(t,a)=>e&&e.get(t)||(a=g(m({}),t,1),e&&e.set(t,a),a))(typeof WeakMap!=\"undefined\"?new WeakMap:0);var k={};f(k,{clickNavigate:()=>u,linkNavigate:()=>d,pageComplete:()=>w});function i(e,...t){let a=Math.floor(Math.random()*1e6);return new Promise((r,n)=>{self.dispatchEvent(new CustomEvent(\"syscall\",{detail:{id:a,name:e,args:t,callback:r}}))})}async function l(e){if(!!e)switch(console.log(\"Attempting to navigate based on syntax node\",e),e.name){case\"WikiLinkPage\":await i(\"editor.navigate\",e.text);break;case\"URL\":await i(\"editor.openUrl\",e.text);break;case\"Link\":let t=/\\[[^\\\\]+\\]\\(([^\\)]+)\\)/.exec(e.text);t&&await i(\"editor.openUrl\",t[1])}}async function d(){l(await i(\"editor.getSyntaxNodeUnderCursor\"))}async function u(e){if(e.ctrlKey||e.metaKey){let t=await i(\"editor.getSyntaxNodeAtPos\",e.pos);l(t)}}async function w(){let e=await i(\"editor.matchBefore\",\"\\\\[\\\\[[\\\\w\\\\s]*\");if(!e)return null;let t=await i(\"space.listPages\");return{from:e.from+2,options:t.map(a=>({label:a.name,type:\"page\"}))}}return y(k);})();\n//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiY29yZS9uYXZpZ2F0ZS50cyIsICJjb3JlL2xpYi9zeXNjYWxsLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgeyBDbGlja0V2ZW50IH0gZnJvbSBcIi4uLy4uL3dlYmFwcC9zcmMvYXBwX2V2ZW50LnRzXCI7XG5pbXBvcnQgeyBzeXNjYWxsIH0gZnJvbSBcIi4vbGliL3N5c2NhbGwudHNcIjtcblxuYXN5bmMgZnVuY3Rpb24gbmF2aWdhdGUoc3ludGF4Tm9kZTogYW55KSB7XG4gIGlmICghc3ludGF4Tm9kZSkge1xuICAgIHJldHVybjtcbiAgfVxuICBjb25zb2xlLmxvZyhcIkF0dGVtcHRpbmcgdG8gbmF2aWdhdGUgYmFzZWQgb24gc3ludGF4IG5vZGVcIiwgc3ludGF4Tm9kZSk7XG4gIHN3aXRjaCAoc3ludGF4Tm9kZS5uYW1lKSB7XG4gICAgY2FzZSBcIldpa2lMaW5rUGFnZVwiOlxuICAgICAgYXdhaXQgc3lzY2FsbChcImVkaXRvci5uYXZpZ2F0ZVwiLCBzeW50YXhOb2RlLnRleHQpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBcIlVSTFwiOlxuICAgICAgYXdhaXQgc3lzY2FsbChcImVkaXRvci5vcGVuVXJsXCIsIHN5bnRheE5vZGUudGV4dCk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIFwiTGlua1wiOlxuICAgICAgLy8gTWFya2Rvd24gbGluazogW2JsYV0oVVJMSEVSRSkgbmVlZHMgZXh0cmFjdGlvblxuICAgICAgbGV0IG1hdGNoID0gL1xcW1teXFxcXF0rXFxdXFwoKFteXFwpXSspXFwpLy5leGVjKHN5bnRheE5vZGUudGV4dCk7XG4gICAgICBpZiAobWF0Y2gpIHtcbiAgICAgICAgYXdhaXQgc3lzY2FsbChcImVkaXRvci5vcGVuVXJsXCIsIG1hdGNoWzFdKTtcbiAgICAgIH1cbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbGlua05hdmlnYXRlKCkge1xuICBuYXZpZ2F0ZShhd2FpdCBzeXNjYWxsKFwiZWRpdG9yLmdldFN5bnRheE5vZGVVbmRlckN1cnNvclwiKSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjbGlja05hdmlnYXRlKGV2ZW50OiBDbGlja0V2ZW50KSB7XG4gIGlmIChldmVudC5jdHJsS2V5IHx8IGV2ZW50Lm1ldGFLZXkpIHtcbiAgICBsZXQgc3ludGF4Tm9kZSA9IGF3YWl0IHN5c2NhbGwoXCJlZGl0b3IuZ2V0U3ludGF4Tm9kZUF0UG9zXCIsIGV2ZW50LnBvcyk7XG4gICAgbmF2aWdhdGUoc3ludGF4Tm9kZSk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHBhZ2VDb21wbGV0ZSgpIHtcbiAgbGV0IHByZWZpeCA9IGF3YWl0IHN5c2NhbGwoXCJlZGl0b3IubWF0Y2hCZWZvcmVcIiwgXCJcXFxcW1xcXFxbW1xcXFx3XFxcXHNdKlwiKTtcbiAgaWYgKCFwcmVmaXgpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBsZXQgYWxsUGFnZXMgPSBhd2FpdCBzeXNjYWxsKFwic3BhY2UubGlzdFBhZ2VzXCIpO1xuICByZXR1cm4ge1xuICAgIGZyb206IHByZWZpeC5mcm9tICsgMixcbiAgICBvcHRpb25zOiBhbGxQYWdlcy5tYXAoKHBhZ2VNZXRhOiBhbnkpID0+ICh7XG4gICAgICBsYWJlbDogcGFnZU1ldGEubmFtZSxcbiAgICAgIHR5cGU6IFwicGFnZVwiLFxuICAgIH0pKSxcbiAgfTtcbn1cbiIsICJleHBvcnQgZnVuY3Rpb24gc3lzY2FsbChuYW1lOiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKTogYW55IHtcbiAgbGV0IHJlcUlkID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTAwMDAwMCk7XG4gIC8vIGNvbnNvbGUubG9nKFwiU3lzY2FsbFwiLCBuYW1lLCByZXFJZCk7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgc2VsZi5kaXNwYXRjaEV2ZW50KFxuICAgICAgbmV3IEN1c3RvbUV2ZW50KFwic3lzY2FsbFwiLCB7XG4gICAgICAgIGRldGFpbDoge1xuICAgICAgICAgIGlkOiByZXFJZCxcbiAgICAgICAgICBuYW1lOiBuYW1lLFxuICAgICAgICAgIGFyZ3M6IGFyZ3MsXG4gICAgICAgICAgY2FsbGJhY2s6IHJlc29sdmUsXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgICk7XG4gIH0pO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjRoQkFBQSwwRUNBTyxXQUFpQixLQUFpQixFQUFrQixDQUN6RCxHQUFJLEdBQVEsS0FBSyxNQUFNLEtBQUssU0FBVyxLQUV2QyxNQUFPLElBQUksU0FBUSxDQUFDLEVBQVMsSUFBVyxDQUN0QyxLQUFLLGNBQ0gsR0FBSSxhQUFZLFVBQVcsQ0FDekIsT0FBUSxDQUNOLEdBQUksRUFDSixLQUFNLEVBQ04sS0FBTSxFQUNOLFNBQVUsUURQcEIsaUJBQXdCLEVBQWlCLENBQ3ZDLEdBQUksRUFBQyxFQUlMLE9BREEsUUFBUSxJQUFJLDhDQUErQyxHQUNuRCxFQUFXLFVBQ1osZUFDSCxLQUFNLEdBQVEsa0JBQW1CLEVBQVcsTUFDNUMsVUFDRyxNQUNILEtBQU0sR0FBUSxpQkFBa0IsRUFBVyxNQUMzQyxVQUNHLE9BRUgsR0FBSSxHQUFRLHlCQUF5QixLQUFLLEVBQVcsTUFDckQsQUFBSSxHQUNGLEtBQU0sR0FBUSxpQkFBa0IsRUFBTSxLQUs5QyxrQkFBcUMsQ0FDbkMsRUFBUyxLQUFNLEdBQVEsb0NBR3pCLGlCQUFvQyxFQUFtQixDQUNyRCxHQUFJLEVBQU0sU0FBVyxFQUFNLFFBQVMsQ0FDbEMsR0FBSSxHQUFhLEtBQU0sR0FBUSw0QkFBNkIsRUFBTSxLQUNsRSxFQUFTLElBSWIsa0JBQXFDLENBQ25DLEdBQUksR0FBUyxLQUFNLEdBQVEscUJBQXNCLG1CQUNqRCxHQUFJLENBQUMsRUFDSCxNQUFPLE1BRVQsR0FBSSxHQUFXLEtBQU0sR0FBUSxtQkFDN0IsTUFBTyxDQUNMLEtBQU0sRUFBTyxLQUFPLEVBQ3BCLFFBQVMsRUFBUyxJQUFJLEFBQUMsR0FBbUIsRUFDeEMsTUFBTyxFQUFTLEtBQ2hCLEtBQU0iLAogICJuYW1lcyI6IFtdCn0K\n", "functionName": "linkNavigate" }, "clickNavigate": { "path": "core/navigate.ts", - "code": "(function() {\n function syscall(name, ...args) {\n let reqId = Math.floor(Math.random() * 1000000);\n return new Promise((resolve, reject)=>{\n self.dispatchEvent(new CustomEvent(\"syscall\", {\n detail: {\n id: reqId,\n name: name,\n args: args,\n callback: resolve\n }\n }));\n });\n }\n async function navigate(syntaxNode) {\n if (!syntaxNode) {\n return;\n }\n console.log(\"Attempting to navigate based on syntax node\", syntaxNode);\n switch(syntaxNode.name){\n case \"WikiLinkPage\":\n await syscall(\"editor.navigate\", syntaxNode.text);\n break;\n case \"URL\":\n await syscall(\"editor.openUrl\", syntaxNode.text);\n break;\n case \"Link\":\n let match = /\\[[^\\\\]+\\]\\(([^\\)]+)\\)/.exec(syntaxNode.text);\n if (match) {\n await syscall(\"editor.openUrl\", match[1]);\n }\n }\n }\n async function linkNavigate() {\n navigate(await syscall(\"editor.getSyntaxNodeUnderCursor\"));\n }\n async function clickNavigate(event) {\n if (event.ctrlKey || event.metaKey) {\n let syntaxNode = await syscall(\"editor.getSyntaxNodeAtPos\", event.pos);\n navigate(syntaxNode);\n }\n }\n async function pageComplete() {\n let prefix = await syscall(\"editor.matchBefore\", \"\\\\[\\\\[[\\\\w\\\\s]*\");\n if (!prefix) {\n return null;\n }\n let allPages = await syscall(\"space.listPages\");\n return {\n from: prefix.from + 2,\n options: allPages.map((pageMeta)=>({\n label: pageMeta.name,\n type: \"page\"\n })\n )\n };\n }\n return {\n linkNavigate: linkNavigate,\n clickNavigate: clickNavigate,\n pageComplete: pageComplete\n };\n})();\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZpbGU6Ly8vVXNlcnMvemVmL2dpdC9udWdnZXQvcGx1Z2lucy9jb3JlL2xpYi9zeXNjYWxsLnRzIiwiZmlsZTovLy9Vc2Vycy96ZWYvZ2l0L251Z2dldC9wbHVnaW5zL2NvcmUvbmF2aWdhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjthQUFnQixPQUFPLENBQUMsSUFBWSxLQUFLLElBQUksRUFBYyxDQUFDO1FBQzFELEdBQUcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLE9BQU87UUFFOUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sR0FBSyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxhQUFhLENBQ2hCLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBUyxVQUFFLENBQUM7Z0JBQzFCLE1BQU0sRUFBRSxDQUFDO29CQUNQLEVBQUUsRUFBRSxLQUFLO29CQUNULElBQUksRUFBRSxJQUFJO29CQUNWLElBQUksRUFBRSxJQUFJO29CQUNWLFFBQVEsRUFBRSxPQUFPO2dCQUNuQixDQUFDO1lBQ0gsQ0FBQztRQUVMLENBQUM7SUFDSCxDQUFDO21CQ1pjLFFBQVEsQ0FBQyxVQUFlLEVBQUUsQ0FBQztRQUN4QyxFQUFFLEdBQUcsVUFBVSxFQUFFLENBQUM7WUFDaEIsTUFBTTtRQUNSLENBQUM7UUFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLENBQTZDLDhDQUFFLFVBQVU7UUFDckUsTUFBTSxDQUFFLFVBQVUsQ0FBQyxJQUFJO1lBQ3JCLElBQUksQ0FBQyxDQUFjO2dCQUNqQixLQUFLLFNBQVMsQ0FBaUIsa0JBQUUsVUFBVSxDQUFDLElBQUk7Z0JBQ2hELEtBQUs7WUFDUCxJQUFJLENBQUMsQ0FBSztnQkFDUixLQUFLLFNBQVMsQ0FBZ0IsaUJBQUUsVUFBVSxDQUFDLElBQUk7Z0JBQy9DLEtBQUs7WUFDUCxJQUFJLENBQUMsQ0FBTTtnQkFFVCxHQUFHLENBQUMsS0FBSyw0QkFBNEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJO2dCQUN6RCxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUM7b0JBQ1YsS0FBSyxTQUFTLENBQWdCLGlCQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUN6QyxDQUFDOztJQUVQLENBQUM7bUJBRXFCLFlBQVksR0FBRyxDQUFDO1FBQ3BDLFFBQVEsQ0FBQyxLQUFLLFNBQVMsQ0FBaUM7SUFDMUQsQ0FBQzttQkFFcUIsYUFBYSxDQUFDLEtBQWlCLEVBQUUsQ0FBQztRQUN0RCxFQUFFLEVBQUUsS0FBSyxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbkMsR0FBRyxDQUFDLFVBQVUsR0FBRyxLQUFLLFNBQVMsQ0FBMkIsNEJBQUUsS0FBSyxDQUFDLEdBQUc7WUFDckUsUUFBUSxDQUFDLFVBQVU7UUFDckIsQ0FBQztJQUNILENBQUM7bUJBRXFCLFlBQVksR0FBRyxDQUFDO1FBQ3BDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsS0FBSyxTQUFTLENBQW9CLHFCQUFFLENBQWlCO1FBQ2xFLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FBQztZQUNaLE1BQU0sQ0FBQyxJQUFJO1FBQ2IsQ0FBQztRQUNELEdBQUcsQ0FBQyxRQUFRLEdBQUcsS0FBSyxTQUFTLENBQWlCO1FBQzlDLE1BQU0sQ0FBQyxDQUFDO1lBQ04sSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEdBQUcsQ0FBQztZQUNyQixPQUFPLEVBQUUsUUFBUSxDQUFDLEdBQUcsRUFBRSxRQUFhLElBQU0sQ0FBQztvQkFDekMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxJQUFJO29CQUNwQixJQUFJLEVBQUUsQ0FBTTtnQkFDZCxDQUFDOztRQUNILENBQUM7SUFDSCxDQUFDOztRQXhCcUIsWUFBWSxFQUFaLFlBQVk7UUFJWixhQUFhLEVBQWIsYUFBYTtRQU9iLFlBQVksRUFBWixZQUFZIn0=\n", + "code": "(()=>{var o=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var m=e=>o(e,\"__esModule\",{value:!0});var f=(e,t)=>{for(var a in t)o(e,a,{get:t[a],enumerable:!0})},g=(e,t,a,r)=>{if(t&&typeof t==\"object\"||typeof t==\"function\")for(let n of s(t))!p.call(e,n)&&(a||n!==\"default\")&&o(e,n,{get:()=>t[n],enumerable:!(r=c(t,n))||r.enumerable});return e};var y=(e=>(t,a)=>e&&e.get(t)||(a=g(m({}),t,1),e&&e.set(t,a),a))(typeof WeakMap!=\"undefined\"?new WeakMap:0);var k={};f(k,{clickNavigate:()=>u,linkNavigate:()=>d,pageComplete:()=>w});function i(e,...t){let a=Math.floor(Math.random()*1e6);return new Promise((r,n)=>{self.dispatchEvent(new CustomEvent(\"syscall\",{detail:{id:a,name:e,args:t,callback:r}}))})}async function l(e){if(!!e)switch(console.log(\"Attempting to navigate based on syntax node\",e),e.name){case\"WikiLinkPage\":await i(\"editor.navigate\",e.text);break;case\"URL\":await i(\"editor.openUrl\",e.text);break;case\"Link\":let t=/\\[[^\\\\]+\\]\\(([^\\)]+)\\)/.exec(e.text);t&&await i(\"editor.openUrl\",t[1])}}async function d(){l(await i(\"editor.getSyntaxNodeUnderCursor\"))}async function u(e){if(e.ctrlKey||e.metaKey){let t=await i(\"editor.getSyntaxNodeAtPos\",e.pos);l(t)}}async function w(){let e=await i(\"editor.matchBefore\",\"\\\\[\\\\[[\\\\w\\\\s]*\");if(!e)return null;let t=await i(\"space.listPages\");return{from:e.from+2,options:t.map(a=>({label:a.name,type:\"page\"}))}}return y(k);})();\n//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiY29yZS9uYXZpZ2F0ZS50cyIsICJjb3JlL2xpYi9zeXNjYWxsLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgeyBDbGlja0V2ZW50IH0gZnJvbSBcIi4uLy4uL3dlYmFwcC9zcmMvYXBwX2V2ZW50LnRzXCI7XG5pbXBvcnQgeyBzeXNjYWxsIH0gZnJvbSBcIi4vbGliL3N5c2NhbGwudHNcIjtcblxuYXN5bmMgZnVuY3Rpb24gbmF2aWdhdGUoc3ludGF4Tm9kZTogYW55KSB7XG4gIGlmICghc3ludGF4Tm9kZSkge1xuICAgIHJldHVybjtcbiAgfVxuICBjb25zb2xlLmxvZyhcIkF0dGVtcHRpbmcgdG8gbmF2aWdhdGUgYmFzZWQgb24gc3ludGF4IG5vZGVcIiwgc3ludGF4Tm9kZSk7XG4gIHN3aXRjaCAoc3ludGF4Tm9kZS5uYW1lKSB7XG4gICAgY2FzZSBcIldpa2lMaW5rUGFnZVwiOlxuICAgICAgYXdhaXQgc3lzY2FsbChcImVkaXRvci5uYXZpZ2F0ZVwiLCBzeW50YXhOb2RlLnRleHQpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBcIlVSTFwiOlxuICAgICAgYXdhaXQgc3lzY2FsbChcImVkaXRvci5vcGVuVXJsXCIsIHN5bnRheE5vZGUudGV4dCk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIFwiTGlua1wiOlxuICAgICAgLy8gTWFya2Rvd24gbGluazogW2JsYV0oVVJMSEVSRSkgbmVlZHMgZXh0cmFjdGlvblxuICAgICAgbGV0IG1hdGNoID0gL1xcW1teXFxcXF0rXFxdXFwoKFteXFwpXSspXFwpLy5leGVjKHN5bnRheE5vZGUudGV4dCk7XG4gICAgICBpZiAobWF0Y2gpIHtcbiAgICAgICAgYXdhaXQgc3lzY2FsbChcImVkaXRvci5vcGVuVXJsXCIsIG1hdGNoWzFdKTtcbiAgICAgIH1cbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbGlua05hdmlnYXRlKCkge1xuICBuYXZpZ2F0ZShhd2FpdCBzeXNjYWxsKFwiZWRpdG9yLmdldFN5bnRheE5vZGVVbmRlckN1cnNvclwiKSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjbGlja05hdmlnYXRlKGV2ZW50OiBDbGlja0V2ZW50KSB7XG4gIGlmIChldmVudC5jdHJsS2V5IHx8IGV2ZW50Lm1ldGFLZXkpIHtcbiAgICBsZXQgc3ludGF4Tm9kZSA9IGF3YWl0IHN5c2NhbGwoXCJlZGl0b3IuZ2V0U3ludGF4Tm9kZUF0UG9zXCIsIGV2ZW50LnBvcyk7XG4gICAgbmF2aWdhdGUoc3ludGF4Tm9kZSk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHBhZ2VDb21wbGV0ZSgpIHtcbiAgbGV0IHByZWZpeCA9IGF3YWl0IHN5c2NhbGwoXCJlZGl0b3IubWF0Y2hCZWZvcmVcIiwgXCJcXFxcW1xcXFxbW1xcXFx3XFxcXHNdKlwiKTtcbiAgaWYgKCFwcmVmaXgpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBsZXQgYWxsUGFnZXMgPSBhd2FpdCBzeXNjYWxsKFwic3BhY2UubGlzdFBhZ2VzXCIpO1xuICByZXR1cm4ge1xuICAgIGZyb206IHByZWZpeC5mcm9tICsgMixcbiAgICBvcHRpb25zOiBhbGxQYWdlcy5tYXAoKHBhZ2VNZXRhOiBhbnkpID0+ICh7XG4gICAgICBsYWJlbDogcGFnZU1ldGEubmFtZSxcbiAgICAgIHR5cGU6IFwicGFnZVwiLFxuICAgIH0pKSxcbiAgfTtcbn1cbiIsICJleHBvcnQgZnVuY3Rpb24gc3lzY2FsbChuYW1lOiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKTogYW55IHtcbiAgbGV0IHJlcUlkID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTAwMDAwMCk7XG4gIC8vIGNvbnNvbGUubG9nKFwiU3lzY2FsbFwiLCBuYW1lLCByZXFJZCk7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgc2VsZi5kaXNwYXRjaEV2ZW50KFxuICAgICAgbmV3IEN1c3RvbUV2ZW50KFwic3lzY2FsbFwiLCB7XG4gICAgICAgIGRldGFpbDoge1xuICAgICAgICAgIGlkOiByZXFJZCxcbiAgICAgICAgICBuYW1lOiBuYW1lLFxuICAgICAgICAgIGFyZ3M6IGFyZ3MsXG4gICAgICAgICAgY2FsbGJhY2s6IHJlc29sdmUsXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgICk7XG4gIH0pO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjRoQkFBQSwwRUNBTyxXQUFpQixLQUFpQixFQUFrQixDQUN6RCxHQUFJLEdBQVEsS0FBSyxNQUFNLEtBQUssU0FBVyxLQUV2QyxNQUFPLElBQUksU0FBUSxDQUFDLEVBQVMsSUFBVyxDQUN0QyxLQUFLLGNBQ0gsR0FBSSxhQUFZLFVBQVcsQ0FDekIsT0FBUSxDQUNOLEdBQUksRUFDSixLQUFNLEVBQ04sS0FBTSxFQUNOLFNBQVUsUURQcEIsaUJBQXdCLEVBQWlCLENBQ3ZDLEdBQUksRUFBQyxFQUlMLE9BREEsUUFBUSxJQUFJLDhDQUErQyxHQUNuRCxFQUFXLFVBQ1osZUFDSCxLQUFNLEdBQVEsa0JBQW1CLEVBQVcsTUFDNUMsVUFDRyxNQUNILEtBQU0sR0FBUSxpQkFBa0IsRUFBVyxNQUMzQyxVQUNHLE9BRUgsR0FBSSxHQUFRLHlCQUF5QixLQUFLLEVBQVcsTUFDckQsQUFBSSxHQUNGLEtBQU0sR0FBUSxpQkFBa0IsRUFBTSxLQUs5QyxrQkFBcUMsQ0FDbkMsRUFBUyxLQUFNLEdBQVEsb0NBR3pCLGlCQUFvQyxFQUFtQixDQUNyRCxHQUFJLEVBQU0sU0FBVyxFQUFNLFFBQVMsQ0FDbEMsR0FBSSxHQUFhLEtBQU0sR0FBUSw0QkFBNkIsRUFBTSxLQUNsRSxFQUFTLElBSWIsa0JBQXFDLENBQ25DLEdBQUksR0FBUyxLQUFNLEdBQVEscUJBQXNCLG1CQUNqRCxHQUFJLENBQUMsRUFDSCxNQUFPLE1BRVQsR0FBSSxHQUFXLEtBQU0sR0FBUSxtQkFDN0IsTUFBTyxDQUNMLEtBQU0sRUFBTyxLQUFPLEVBQ3BCLFFBQVMsRUFBUyxJQUFJLEFBQUMsR0FBbUIsRUFDeEMsTUFBTyxFQUFTLEtBQ2hCLEtBQU0iLAogICJuYW1lcyI6IFtdCn0K\n", "functionName": "clickNavigate" }, "taskToggle": { "path": "core/task.ts", - "code": "(function() {\n function syscall(name, ...args) {\n let reqId = Math.floor(Math.random() * 1000000);\n return new Promise((resolve, reject)=>{\n self.dispatchEvent(new CustomEvent(\"syscall\", {\n detail: {\n id: reqId,\n name: name,\n args: args,\n callback: resolve\n }\n }));\n });\n }\n async function taskToggle(event) {\n let syntaxNode = await syscall(\"editor.getSyntaxNodeAtPos\", event.pos);\n if (syntaxNode && syntaxNode.name === \"TaskMarker\") {\n if (syntaxNode.text === \"[x]\" || syntaxNode.text === \"[X]\") {\n await syscall(\"editor.dispatch\", {\n changes: {\n from: syntaxNode.from,\n to: syntaxNode.to,\n insert: \"[ ]\"\n },\n selection: {\n anchor: event.pos\n }\n });\n } else {\n await syscall(\"editor.dispatch\", {\n changes: {\n from: syntaxNode.from,\n to: syntaxNode.to,\n insert: \"[x]\"\n },\n selection: {\n anchor: event.pos\n }\n });\n }\n }\n }\n return {\n taskToggle: taskToggle\n };\n})();\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZpbGU6Ly8vVXNlcnMvemVmL2dpdC9udWdnZXQvcGx1Z2lucy9jb3JlL2xpYi9zeXNjYWxsLnRzIiwiZmlsZTovLy9Vc2Vycy96ZWYvZ2l0L251Z2dldC9wbHVnaW5zL2NvcmUvdGFzay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO2FBQWdCLE9BQU8sQ0FBQyxJQUFZLEtBQUssSUFBSSxFQUFjLENBQUM7UUFDMUQsR0FBRyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssT0FBTztRQUU5QyxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxHQUFLLENBQUM7WUFDdkMsSUFBSSxDQUFDLGFBQWEsQ0FDaEIsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFTLFVBQUUsQ0FBQztnQkFDMUIsTUFBTSxFQUFFLENBQUM7b0JBQ1AsRUFBRSxFQUFFLEtBQUs7b0JBQ1QsSUFBSSxFQUFFLElBQUk7b0JBQ1YsSUFBSSxFQUFFLElBQUk7b0JBQ1YsUUFBUSxFQUFFLE9BQU87Z0JBQ25CLENBQUM7WUFDSCxDQUFDO1FBRUwsQ0FBQztJQUNILENBQUM7bUJDWnFCLFVBQVUsQ0FBQyxLQUFpQixFQUFFLENBQUM7UUFDbkQsR0FBRyxDQUFDLFVBQVUsR0FBRyxLQUFLLFNBQVMsQ0FBMkIsNEJBQUUsS0FBSyxDQUFDLEdBQUc7UUFDckUsRUFBRSxFQUFFLFVBQVUsSUFBSSxVQUFVLENBQUMsSUFBSSxLQUFLLENBQVksYUFBRSxDQUFDO1lBQ25ELEVBQUUsRUFBRSxVQUFVLENBQUMsSUFBSSxLQUFLLENBQUssUUFBSSxVQUFVLENBQUMsSUFBSSxLQUFLLENBQUssTUFBRSxDQUFDO2dCQUMzRCxLQUFLLFNBQVMsQ0FBaUIsa0JBQUUsQ0FBQztvQkFDaEMsT0FBTyxFQUFFLENBQUM7d0JBQ1IsSUFBSSxFQUFFLFVBQVUsQ0FBQyxJQUFJO3dCQUNyQixFQUFFLEVBQUUsVUFBVSxDQUFDLEVBQUU7d0JBQ2pCLE1BQU0sRUFBRSxDQUFLO29CQUNmLENBQUM7b0JBQ0QsU0FBUyxFQUFFLENBQUM7d0JBQ1YsTUFBTSxFQUFFLEtBQUssQ0FBQyxHQUFHO29CQUNuQixDQUFDO2dCQUNILENBQUM7WUFDSCxDQUFDLE1BQU0sQ0FBQztnQkFDTixLQUFLLFNBQVMsQ0FBaUIsa0JBQUUsQ0FBQztvQkFDaEMsT0FBTyxFQUFFLENBQUM7d0JBQ1IsSUFBSSxFQUFFLFVBQVUsQ0FBQyxJQUFJO3dCQUNyQixFQUFFLEVBQUUsVUFBVSxDQUFDLEVBQUU7d0JBQ2pCLE1BQU0sRUFBRSxDQUFLO29CQUNmLENBQUM7b0JBQ0QsU0FBUyxFQUFFLENBQUM7d0JBQ1YsTUFBTSxFQUFFLEtBQUssQ0FBQyxHQUFHO29CQUNuQixDQUFDO2dCQUNILENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7O1FBM0JxQixVQUFVLEVBQVYsVUFBVSJ9\n", + "code": "(()=>{var n=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var m=e=>n(e,\"__esModule\",{value:!0});var d=(e,t)=>{for(var o in t)n(e,o,{get:t[o],enumerable:!0})},f=(e,t,o,s)=>{if(t&&typeof t==\"object\"||typeof t==\"function\")for(let a of c(t))!l.call(e,a)&&(o||a!==\"default\")&&n(e,a,{get:()=>t[a],enumerable:!(s=i(t,a))||s.enumerable});return e};var p=(e=>(t,o)=>e&&e.get(t)||(o=f(m({}),t,1),e&&e.set(t,o),o))(typeof WeakMap!=\"undefined\"?new WeakMap:0);var x={};d(x,{taskToggle:()=>h});function r(e,...t){let o=Math.floor(Math.random()*1e6);return new Promise((s,a)=>{self.dispatchEvent(new CustomEvent(\"syscall\",{detail:{id:o,name:e,args:t,callback:s}}))})}async function h(e){let t=await r(\"editor.getSyntaxNodeAtPos\",e.pos);t&&t.name===\"TaskMarker\"&&(t.text===\"[x]\"||t.text===\"[X]\"?await r(\"editor.dispatch\",{changes:{from:t.from,to:t.to,insert:\"[ ]\"},selection:{anchor:e.pos}}):await r(\"editor.dispatch\",{changes:{from:t.from,to:t.to,insert:\"[x]\"},selection:{anchor:e.pos}}))}return p(x);})();\n//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiY29yZS90YXNrLnRzIiwgImNvcmUvbGliL3N5c2NhbGwudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7IENsaWNrRXZlbnQgfSBmcm9tIFwiLi4vLi4vd2ViYXBwL3NyYy9hcHBfZXZlbnQudHNcIjtcbmltcG9ydCB7IHN5c2NhbGwgfSBmcm9tIFwiLi9saWIvc3lzY2FsbC50c1wiO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdGFza1RvZ2dsZShldmVudDogQ2xpY2tFdmVudCkge1xuICBsZXQgc3ludGF4Tm9kZSA9IGF3YWl0IHN5c2NhbGwoXCJlZGl0b3IuZ2V0U3ludGF4Tm9kZUF0UG9zXCIsIGV2ZW50LnBvcyk7XG4gIGlmIChzeW50YXhOb2RlICYmIHN5bnRheE5vZGUubmFtZSA9PT0gXCJUYXNrTWFya2VyXCIpIHtcbiAgICBpZiAoc3ludGF4Tm9kZS50ZXh0ID09PSBcIlt4XVwiIHx8IHN5bnRheE5vZGUudGV4dCA9PT0gXCJbWF1cIikge1xuICAgICAgYXdhaXQgc3lzY2FsbChcImVkaXRvci5kaXNwYXRjaFwiLCB7XG4gICAgICAgIGNoYW5nZXM6IHtcbiAgICAgICAgICBmcm9tOiBzeW50YXhOb2RlLmZyb20sXG4gICAgICAgICAgdG86IHN5bnRheE5vZGUudG8sXG4gICAgICAgICAgaW5zZXJ0OiBcIlsgXVwiLFxuICAgICAgICB9LFxuICAgICAgICBzZWxlY3Rpb246IHtcbiAgICAgICAgICBhbmNob3I6IGV2ZW50LnBvcyxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBhd2FpdCBzeXNjYWxsKFwiZWRpdG9yLmRpc3BhdGNoXCIsIHtcbiAgICAgICAgY2hhbmdlczoge1xuICAgICAgICAgIGZyb206IHN5bnRheE5vZGUuZnJvbSxcbiAgICAgICAgICB0bzogc3ludGF4Tm9kZS50byxcbiAgICAgICAgICBpbnNlcnQ6IFwiW3hdXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHNlbGVjdGlvbjoge1xuICAgICAgICAgIGFuY2hvcjogZXZlbnQucG9zLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iLCAiZXhwb3J0IGZ1bmN0aW9uIHN5c2NhbGwobmFtZTogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSk6IGFueSB7XG4gIGxldCByZXFJZCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDEwMDAwMDApO1xuICAvLyBjb25zb2xlLmxvZyhcIlN5c2NhbGxcIiwgbmFtZSwgcmVxSWQpO1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIHNlbGYuZGlzcGF0Y2hFdmVudChcbiAgICAgIG5ldyBDdXN0b21FdmVudChcInN5c2NhbGxcIiwge1xuICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICBpZDogcmVxSWQsXG4gICAgICAgICAgbmFtZTogbmFtZSxcbiAgICAgICAgICBhcmdzOiBhcmdzLFxuICAgICAgICAgIGNhbGxiYWNrOiByZXNvbHZlLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICApO1xuICB9KTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI0aEJBQUEsaUNDQU8sV0FBaUIsS0FBaUIsRUFBa0IsQ0FDekQsR0FBSSxHQUFRLEtBQUssTUFBTSxLQUFLLFNBQVcsS0FFdkMsTUFBTyxJQUFJLFNBQVEsQ0FBQyxFQUFTLElBQVcsQ0FDdEMsS0FBSyxjQUNILEdBQUksYUFBWSxVQUFXLENBQ3pCLE9BQVEsQ0FDTixHQUFJLEVBQ0osS0FBTSxFQUNOLEtBQU0sRUFDTixTQUFVLFFEUHBCLGlCQUFpQyxFQUFtQixDQUNsRCxHQUFJLEdBQWEsS0FBTSxHQUFRLDRCQUE2QixFQUFNLEtBQ2xFLEFBQUksR0FBYyxFQUFXLE9BQVMsY0FDcEMsQ0FBSSxFQUFXLE9BQVMsT0FBUyxFQUFXLE9BQVMsTUFDbkQsS0FBTSxHQUFRLGtCQUFtQixDQUMvQixRQUFTLENBQ1AsS0FBTSxFQUFXLEtBQ2pCLEdBQUksRUFBVyxHQUNmLE9BQVEsT0FFVixVQUFXLENBQ1QsT0FBUSxFQUFNLE9BSWxCLEtBQU0sR0FBUSxrQkFBbUIsQ0FDL0IsUUFBUyxDQUNQLEtBQU0sRUFBVyxLQUNqQixHQUFJLEVBQVcsR0FDZixPQUFRLE9BRVYsVUFBVyxDQUNULE9BQVEsRUFBTSIsCiAgIm5hbWVzIjogW10KfQo=\n", "functionName": "taskToggle" }, "insertToday": { "path": "core/dates.ts", - "code": "(function() {\n function syscall(name, ...args) {\n let reqId = Math.floor(Math.random() * 1000000);\n return new Promise((resolve, reject)=>{\n self.dispatchEvent(new CustomEvent(\"syscall\", {\n detail: {\n id: reqId,\n name: name,\n args: args,\n callback: resolve\n }\n }));\n });\n }\n async function insertToday() {\n let niceDate = new Date().toISOString().split(\"T\")[0];\n await syscall(\"editor.insertAtCursor\", niceDate);\n }\n return {\n insertToday: insertToday\n };\n})();\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZpbGU6Ly8vVXNlcnMvemVmL2dpdC9udWdnZXQvcGx1Z2lucy9jb3JlL2xpYi9zeXNjYWxsLnRzIiwiZmlsZTovLy9Vc2Vycy96ZWYvZ2l0L251Z2dldC9wbHVnaW5zL2NvcmUvZGF0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjthQUFnQixPQUFPLENBQUMsSUFBWSxLQUFLLElBQUksRUFBYyxDQUFDO1FBQzFELEdBQUcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLE9BQU87UUFFOUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sR0FBSyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxhQUFhLENBQ2hCLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBUyxVQUFFLENBQUM7Z0JBQzFCLE1BQU0sRUFBRSxDQUFDO29CQUNQLEVBQUUsRUFBRSxLQUFLO29CQUNULElBQUksRUFBRSxJQUFJO29CQUNWLElBQUksRUFBRSxJQUFJO29CQUNWLFFBQVEsRUFBRSxPQUFPO2dCQUNuQixDQUFDO1lBQ0gsQ0FBQztRQUVMLENBQUM7SUFDSCxDQUFDO21CQ2JxQixXQUFXLEdBQUcsQ0FBQztRQUNuQyxHQUFHLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQyxJQUFJLEdBQUcsV0FBVyxHQUFHLEtBQUssQ0FBQyxDQUFHLElBQUUsQ0FBQztRQUNwRCxLQUFLLFNBQVMsQ0FBdUIsd0JBQUUsUUFBUTtJQUNqRCxDQUFDOztRQUhxQixXQUFXLEVBQVgsV0FBVyJ9\n", + "code": "(()=>{var s=Object.defineProperty;var o=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var d=t=>s(t,\"__esModule\",{value:!0});var y=(t,e)=>{for(var a in e)s(t,a,{get:e[a],enumerable:!0})},m=(t,e,a,r)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let n of l(e))!c.call(t,n)&&(a||n!==\"default\")&&s(t,n,{get:()=>e[n],enumerable:!(r=o(e,n))||r.enumerable});return t};var f=(t=>(e,a)=>t&&t.get(e)||(a=m(d({}),e,1),t&&t.set(e,a),a))(typeof WeakMap!=\"undefined\"?new WeakMap:0);var u={};y(u,{insertToday:()=>p});function i(t,...e){let a=Math.floor(Math.random()*1e6);return new Promise((r,n)=>{self.dispatchEvent(new CustomEvent(\"syscall\",{detail:{id:a,name:t,args:e,callback:r}}))})}async function p(){let t=new Date().toISOString().split(\"T\")[0];await i(\"editor.insertAtCursor\",t)}return f(u);})();\n//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiY29yZS9kYXRlcy50cyIsICJjb3JlL2xpYi9zeXNjYWxsLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgeyBzeXNjYWxsIH0gZnJvbSBcIi4vbGliL3N5c2NhbGwudHNcIjtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGluc2VydFRvZGF5KCkge1xuICBsZXQgbmljZURhdGUgPSBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkuc3BsaXQoXCJUXCIpWzBdO1xuICBhd2FpdCBzeXNjYWxsKFwiZWRpdG9yLmluc2VydEF0Q3Vyc29yXCIsIG5pY2VEYXRlKTtcbn1cbiIsICJleHBvcnQgZnVuY3Rpb24gc3lzY2FsbChuYW1lOiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKTogYW55IHtcbiAgbGV0IHJlcUlkID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTAwMDAwMCk7XG4gIC8vIGNvbnNvbGUubG9nKFwiU3lzY2FsbFwiLCBuYW1lLCByZXFJZCk7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgc2VsZi5kaXNwYXRjaEV2ZW50KFxuICAgICAgbmV3IEN1c3RvbUV2ZW50KFwic3lzY2FsbFwiLCB7XG4gICAgICAgIGRldGFpbDoge1xuICAgICAgICAgIGlkOiByZXFJZCxcbiAgICAgICAgICBuYW1lOiBuYW1lLFxuICAgICAgICAgIGFyZ3M6IGFyZ3MsXG4gICAgICAgICAgY2FsbGJhY2s6IHJlc29sdmUsXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgICk7XG4gIH0pO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjRoQkFBQSxrQ0NBTyxXQUFpQixLQUFpQixFQUFrQixDQUN6RCxHQUFJLEdBQVEsS0FBSyxNQUFNLEtBQUssU0FBVyxLQUV2QyxNQUFPLElBQUksU0FBUSxDQUFDLEVBQVMsSUFBVyxDQUN0QyxLQUFLLGNBQ0gsR0FBSSxhQUFZLFVBQVcsQ0FDekIsT0FBUSxDQUNOLEdBQUksRUFDSixLQUFNLEVBQ04sS0FBTSxFQUNOLFNBQVUsUURScEIsa0JBQW9DLENBQ2xDLEdBQUksR0FBVyxHQUFJLFFBQU8sY0FBYyxNQUFNLEtBQUssR0FDbkQsS0FBTSxHQUFRLHdCQUF5QiIsCiAgIm5hbWVzIjogW10KfQo=\n", "functionName": "insertToday" }, "toggle_h1": { "path": "core/markup.ts", - "code": "(function() {\n function syscall(name, ...args) {\n let reqId = Math.floor(Math.random() * 1000000);\n return new Promise((resolve, reject)=>{\n self.dispatchEvent(new CustomEvent(\"syscall\", {\n detail: {\n id: reqId,\n name: name,\n args: args,\n callback: resolve\n }\n }));\n });\n }\n async function toggleH1() {\n await togglePrefix(\"# \");\n }\n async function toggleH2() {\n await togglePrefix(\"## \");\n }\n function lookBack(s, pos, backString) {\n return s.substring(pos - backString.length, pos) === backString;\n }\n async function togglePrefix(prefix) {\n let text = await syscall(\"editor.getText\");\n let pos = await syscall(\"editor.getCursor\");\n if (text[pos] === \"\\n\") {\n pos--;\n }\n while(pos > 0 && text[pos] !== \"\\n\"){\n if (lookBack(text, pos, prefix)) {\n await syscall(\"editor.replaceRange\", pos - prefix.length, pos, \"\");\n return;\n }\n pos--;\n }\n if (pos) {\n pos++;\n }\n await syscall(\"editor.insertAtPos\", prefix, pos);\n }\n return {\n toggleH1: toggleH1,\n toggleH2: toggleH2\n };\n})();\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZpbGU6Ly8vVXNlcnMvemVmL2dpdC9udWdnZXQvcGx1Z2lucy9jb3JlL2xpYi9zeXNjYWxsLnRzIiwiZmlsZTovLy9Vc2Vycy96ZWYvZ2l0L251Z2dldC9wbHVnaW5zL2NvcmUvbWFya3VwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7YUFBZ0IsT0FBTyxDQUFDLElBQVksS0FBSyxJQUFJLEVBQWMsQ0FBQztRQUMxRCxHQUFHLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxPQUFPO1FBRTlDLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEdBQUssQ0FBQztZQUN2QyxJQUFJLENBQUMsYUFBYSxDQUNoQixHQUFHLENBQUMsV0FBVyxDQUFDLENBQVMsVUFBRSxDQUFDO2dCQUMxQixNQUFNLEVBQUUsQ0FBQztvQkFDUCxFQUFFLEVBQUUsS0FBSztvQkFDVCxJQUFJLEVBQUUsSUFBSTtvQkFDVixJQUFJLEVBQUUsSUFBSTtvQkFDVixRQUFRLEVBQUUsT0FBTztnQkFDbkIsQ0FBQztZQUNILENBQUM7UUFFTCxDQUFDO0lBQ0gsQ0FBQzttQkNicUIsUUFBUSxHQUFHLENBQUM7UUFDaEMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFJO0lBQ3pCLENBQUM7bUJBRXFCLFFBQVEsR0FBRyxDQUFDO1FBQ2hDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBSztJQUMxQixDQUFDO2FBRVEsUUFBUSxDQUFDLENBQVMsRUFBRSxHQUFXLEVBQUUsVUFBa0IsRUFBVyxDQUFDO1FBQ3RFLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsR0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFLEdBQUcsTUFBTSxVQUFVO0lBQ2pFLENBQUM7bUJBRWMsWUFBWSxDQUFDLE1BQWMsRUFBRSxDQUFDO1FBQzNDLEdBQUcsQ0FBQyxJQUFJLEdBQUksS0FBSyxTQUFTLENBQWdCO1FBQzFDLEdBQUcsQ0FBQyxHQUFHLEdBQUksS0FBSyxTQUFTLENBQWtCO1FBQzNDLEVBQUUsRUFBRSxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUksS0FBRSxDQUFDO1lBQ3ZCLEdBQUc7UUFDTCxDQUFDO2NBQ00sR0FBRyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUksSUFBRSxDQUFDO1lBQ3JDLEVBQUUsRUFBRSxRQUFRLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLEdBQUcsQ0FBQztnQkFFaEMsS0FBSyxTQUFTLENBQXFCLHNCQUFFLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFFO2dCQUNqRSxNQUFNO1lBQ1IsQ0FBQztZQUNELEdBQUc7UUFDTCxDQUFDO1FBQ0QsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDO1lBQ1IsR0FBRztRQUNMLENBQUM7UUFDRCxLQUFLLFNBQVMsQ0FBb0IscUJBQUUsTUFBTSxFQUFFLEdBQUc7SUFDakQsQ0FBQzs7UUE5QnFCLFFBQVEsRUFBUixRQUFRO1FBSVIsUUFBUSxFQUFSLFFBQVEifQ==\n", + "code": "(()=>{var o=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var u=n=>o(n,\"__esModule\",{value:!0});var f=(n,e)=>{for(var t in e)o(n,t,{get:e[t],enumerable:!0})},d=(n,e,t,i)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let a of g(e))!c.call(n,a)&&(t||a!==\"default\")&&o(n,a,{get:()=>e[a],enumerable:!(i=l(e,a))||i.enumerable});return n};var w=(n=>(e,t)=>n&&n.get(e)||(t=d(u({}),e,1),n&&n.set(e,t),t))(typeof WeakMap!=\"undefined\"?new WeakMap:0);var b={};f(b,{toggleH1:()=>m,toggleH2:()=>y});function r(n,...e){let t=Math.floor(Math.random()*1e6);return new Promise((i,a)=>{self.dispatchEvent(new CustomEvent(\"syscall\",{detail:{id:t,name:n,args:e,callback:i}}))})}async function m(){await s(\"# \")}async function y(){await s(\"## \")}function h(n,e,t){return n.substring(e-t.length,e)===t}async function s(n){let e=await r(\"editor.getText\"),t=await r(\"editor.getCursor\");for(e[t]===`\n`&&t--;t>0&&e[t]!==`\n`;){if(h(e,t,n)){await r(\"editor.replaceRange\",t-n.length,t,\"\");return}t--}t&&t++,await r(\"editor.insertAtPos\",n,t)}return w(b);})();\n//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiY29yZS9tYXJrdXAudHMiLCAiY29yZS9saWIvc3lzY2FsbC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHsgc3lzY2FsbCB9IGZyb20gXCIuL2xpYi9zeXNjYWxsLnRzXCI7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB0b2dnbGVIMSgpIHtcbiAgYXdhaXQgdG9nZ2xlUHJlZml4KFwiIyBcIik7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB0b2dnbGVIMigpIHtcbiAgYXdhaXQgdG9nZ2xlUHJlZml4KFwiIyMgXCIpO1xufVxuXG5mdW5jdGlvbiBsb29rQmFjayhzOiBzdHJpbmcsIHBvczogbnVtYmVyLCBiYWNrU3RyaW5nOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIHMuc3Vic3RyaW5nKHBvcyAtIGJhY2tTdHJpbmcubGVuZ3RoLCBwb3MpID09PSBiYWNrU3RyaW5nO1xufVxuXG5hc3luYyBmdW5jdGlvbiB0b2dnbGVQcmVmaXgocHJlZml4OiBzdHJpbmcpIHtcbiAgbGV0IHRleHQgPSAoYXdhaXQgc3lzY2FsbChcImVkaXRvci5nZXRUZXh0XCIpKSBhcyBzdHJpbmc7XG4gIGxldCBwb3MgPSAoYXdhaXQgc3lzY2FsbChcImVkaXRvci5nZXRDdXJzb3JcIikpIGFzIG51bWJlcjtcbiAgaWYgKHRleHRbcG9zXSA9PT0gXCJcXG5cIikge1xuICAgIHBvcy0tO1xuICB9XG4gIHdoaWxlIChwb3MgPiAwICYmIHRleHRbcG9zXSAhPT0gXCJcXG5cIikge1xuICAgIGlmIChsb29rQmFjayh0ZXh0LCBwb3MsIHByZWZpeCkpIHtcbiAgICAgIC8vIEFscmVhZHkgaGFzIHRoaXMgcHJlZml4LCBsZXQncyBmbGlwIGl0XG4gICAgICBhd2FpdCBzeXNjYWxsKFwiZWRpdG9yLnJlcGxhY2VSYW5nZVwiLCBwb3MgLSBwcmVmaXgubGVuZ3RoLCBwb3MsIFwiXCIpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBwb3MtLTtcbiAgfVxuICBpZiAocG9zKSB7XG4gICAgcG9zKys7XG4gIH1cbiAgYXdhaXQgc3lzY2FsbChcImVkaXRvci5pbnNlcnRBdFBvc1wiLCBwcmVmaXgsIHBvcyk7XG59XG4iLCAiZXhwb3J0IGZ1bmN0aW9uIHN5c2NhbGwobmFtZTogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSk6IGFueSB7XG4gIGxldCByZXFJZCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDEwMDAwMDApO1xuICAvLyBjb25zb2xlLmxvZyhcIlN5c2NhbGxcIiwgbmFtZSwgcmVxSWQpO1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIHNlbGYuZGlzcGF0Y2hFdmVudChcbiAgICAgIG5ldyBDdXN0b21FdmVudChcInN5c2NhbGxcIiwge1xuICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICBpZDogcmVxSWQsXG4gICAgICAgICAgbmFtZTogbmFtZSxcbiAgICAgICAgICBhcmdzOiBhcmdzLFxuICAgICAgICAgIGNhbGxiYWNrOiByZXNvbHZlLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICApO1xuICB9KTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI0aEJBQUEsOENDQU8sV0FBaUIsS0FBaUIsRUFBa0IsQ0FDekQsR0FBSSxHQUFRLEtBQUssTUFBTSxLQUFLLFNBQVcsS0FFdkMsTUFBTyxJQUFJLFNBQVEsQ0FBQyxFQUFTLElBQVcsQ0FDdEMsS0FBSyxjQUNILEdBQUksYUFBWSxVQUFXLENBQ3pCLE9BQVEsQ0FDTixHQUFJLEVBQ0osS0FBTSxFQUNOLEtBQU0sRUFDTixTQUFVLFFEUnBCLGtCQUFpQyxDQUMvQixLQUFNLEdBQWEsTUFHckIsa0JBQWlDLENBQy9CLEtBQU0sR0FBYSxPQUdyQixXQUFrQixFQUFXLEVBQWEsRUFBNkIsQ0FDckUsTUFBTyxHQUFFLFVBQVUsRUFBTSxFQUFXLE9BQVEsS0FBUyxFQUd2RCxpQkFBNEIsRUFBZ0IsQ0FDMUMsR0FBSSxHQUFRLEtBQU0sR0FBUSxrQkFDdEIsRUFBTyxLQUFNLEdBQVEsb0JBSXpCLElBSEksRUFBSyxLQUFTO0FBQUEsR0FDaEIsSUFFSyxFQUFNLEdBQUssRUFBSyxLQUFTO0FBQUEsR0FBTSxDQUNwQyxHQUFJLEVBQVMsRUFBTSxFQUFLLEdBQVMsQ0FFL0IsS0FBTSxHQUFRLHNCQUF1QixFQUFNLEVBQU8sT0FBUSxFQUFLLElBQy9ELE9BRUYsSUFFRixBQUFJLEdBQ0YsSUFFRixLQUFNLEdBQVEscUJBQXNCLEVBQVEiLAogICJuYW1lcyI6IFtdCn0K\n", "functionName": "toggleH1" }, "toggle_h2": { "path": "core/markup.ts", - "code": "(function() {\n function syscall(name, ...args) {\n let reqId = Math.floor(Math.random() * 1000000);\n return new Promise((resolve, reject)=>{\n self.dispatchEvent(new CustomEvent(\"syscall\", {\n detail: {\n id: reqId,\n name: name,\n args: args,\n callback: resolve\n }\n }));\n });\n }\n async function toggleH1() {\n await togglePrefix(\"# \");\n }\n async function toggleH2() {\n await togglePrefix(\"## \");\n }\n function lookBack(s, pos, backString) {\n return s.substring(pos - backString.length, pos) === backString;\n }\n async function togglePrefix(prefix) {\n let text = await syscall(\"editor.getText\");\n let pos = await syscall(\"editor.getCursor\");\n if (text[pos] === \"\\n\") {\n pos--;\n }\n while(pos > 0 && text[pos] !== \"\\n\"){\n if (lookBack(text, pos, prefix)) {\n await syscall(\"editor.replaceRange\", pos - prefix.length, pos, \"\");\n return;\n }\n pos--;\n }\n if (pos) {\n pos++;\n }\n await syscall(\"editor.insertAtPos\", prefix, pos);\n }\n return {\n toggleH1: toggleH1,\n toggleH2: toggleH2\n };\n})();\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZpbGU6Ly8vVXNlcnMvemVmL2dpdC9udWdnZXQvcGx1Z2lucy9jb3JlL2xpYi9zeXNjYWxsLnRzIiwiZmlsZTovLy9Vc2Vycy96ZWYvZ2l0L251Z2dldC9wbHVnaW5zL2NvcmUvbWFya3VwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7YUFBZ0IsT0FBTyxDQUFDLElBQVksS0FBSyxJQUFJLEVBQWMsQ0FBQztRQUMxRCxHQUFHLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxPQUFPO1FBRTlDLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEdBQUssQ0FBQztZQUN2QyxJQUFJLENBQUMsYUFBYSxDQUNoQixHQUFHLENBQUMsV0FBVyxDQUFDLENBQVMsVUFBRSxDQUFDO2dCQUMxQixNQUFNLEVBQUUsQ0FBQztvQkFDUCxFQUFFLEVBQUUsS0FBSztvQkFDVCxJQUFJLEVBQUUsSUFBSTtvQkFDVixJQUFJLEVBQUUsSUFBSTtvQkFDVixRQUFRLEVBQUUsT0FBTztnQkFDbkIsQ0FBQztZQUNILENBQUM7UUFFTCxDQUFDO0lBQ0gsQ0FBQzttQkNicUIsUUFBUSxHQUFHLENBQUM7UUFDaEMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFJO0lBQ3pCLENBQUM7bUJBRXFCLFFBQVEsR0FBRyxDQUFDO1FBQ2hDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBSztJQUMxQixDQUFDO2FBRVEsUUFBUSxDQUFDLENBQVMsRUFBRSxHQUFXLEVBQUUsVUFBa0IsRUFBVyxDQUFDO1FBQ3RFLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsR0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFLEdBQUcsTUFBTSxVQUFVO0lBQ2pFLENBQUM7bUJBRWMsWUFBWSxDQUFDLE1BQWMsRUFBRSxDQUFDO1FBQzNDLEdBQUcsQ0FBQyxJQUFJLEdBQUksS0FBSyxTQUFTLENBQWdCO1FBQzFDLEdBQUcsQ0FBQyxHQUFHLEdBQUksS0FBSyxTQUFTLENBQWtCO1FBQzNDLEVBQUUsRUFBRSxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUksS0FBRSxDQUFDO1lBQ3ZCLEdBQUc7UUFDTCxDQUFDO2NBQ00sR0FBRyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUksSUFBRSxDQUFDO1lBQ3JDLEVBQUUsRUFBRSxRQUFRLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLEdBQUcsQ0FBQztnQkFFaEMsS0FBSyxTQUFTLENBQXFCLHNCQUFFLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFFO2dCQUNqRSxNQUFNO1lBQ1IsQ0FBQztZQUNELEdBQUc7UUFDTCxDQUFDO1FBQ0QsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDO1lBQ1IsR0FBRztRQUNMLENBQUM7UUFDRCxLQUFLLFNBQVMsQ0FBb0IscUJBQUUsTUFBTSxFQUFFLEdBQUc7SUFDakQsQ0FBQzs7UUE5QnFCLFFBQVEsRUFBUixRQUFRO1FBSVIsUUFBUSxFQUFSLFFBQVEifQ==\n", + "code": "(()=>{var o=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var u=n=>o(n,\"__esModule\",{value:!0});var f=(n,e)=>{for(var t in e)o(n,t,{get:e[t],enumerable:!0})},d=(n,e,t,i)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let a of g(e))!c.call(n,a)&&(t||a!==\"default\")&&o(n,a,{get:()=>e[a],enumerable:!(i=l(e,a))||i.enumerable});return n};var w=(n=>(e,t)=>n&&n.get(e)||(t=d(u({}),e,1),n&&n.set(e,t),t))(typeof WeakMap!=\"undefined\"?new WeakMap:0);var b={};f(b,{toggleH1:()=>m,toggleH2:()=>y});function r(n,...e){let t=Math.floor(Math.random()*1e6);return new Promise((i,a)=>{self.dispatchEvent(new CustomEvent(\"syscall\",{detail:{id:t,name:n,args:e,callback:i}}))})}async function m(){await s(\"# \")}async function y(){await s(\"## \")}function h(n,e,t){return n.substring(e-t.length,e)===t}async function s(n){let e=await r(\"editor.getText\"),t=await r(\"editor.getCursor\");for(e[t]===`\n`&&t--;t>0&&e[t]!==`\n`;){if(h(e,t,n)){await r(\"editor.replaceRange\",t-n.length,t,\"\");return}t--}t&&t++,await r(\"editor.insertAtPos\",n,t)}return w(b);})();\n//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiY29yZS9tYXJrdXAudHMiLCAiY29yZS9saWIvc3lzY2FsbC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHsgc3lzY2FsbCB9IGZyb20gXCIuL2xpYi9zeXNjYWxsLnRzXCI7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB0b2dnbGVIMSgpIHtcbiAgYXdhaXQgdG9nZ2xlUHJlZml4KFwiIyBcIik7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB0b2dnbGVIMigpIHtcbiAgYXdhaXQgdG9nZ2xlUHJlZml4KFwiIyMgXCIpO1xufVxuXG5mdW5jdGlvbiBsb29rQmFjayhzOiBzdHJpbmcsIHBvczogbnVtYmVyLCBiYWNrU3RyaW5nOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIHMuc3Vic3RyaW5nKHBvcyAtIGJhY2tTdHJpbmcubGVuZ3RoLCBwb3MpID09PSBiYWNrU3RyaW5nO1xufVxuXG5hc3luYyBmdW5jdGlvbiB0b2dnbGVQcmVmaXgocHJlZml4OiBzdHJpbmcpIHtcbiAgbGV0IHRleHQgPSAoYXdhaXQgc3lzY2FsbChcImVkaXRvci5nZXRUZXh0XCIpKSBhcyBzdHJpbmc7XG4gIGxldCBwb3MgPSAoYXdhaXQgc3lzY2FsbChcImVkaXRvci5nZXRDdXJzb3JcIikpIGFzIG51bWJlcjtcbiAgaWYgKHRleHRbcG9zXSA9PT0gXCJcXG5cIikge1xuICAgIHBvcy0tO1xuICB9XG4gIHdoaWxlIChwb3MgPiAwICYmIHRleHRbcG9zXSAhPT0gXCJcXG5cIikge1xuICAgIGlmIChsb29rQmFjayh0ZXh0LCBwb3MsIHByZWZpeCkpIHtcbiAgICAgIC8vIEFscmVhZHkgaGFzIHRoaXMgcHJlZml4LCBsZXQncyBmbGlwIGl0XG4gICAgICBhd2FpdCBzeXNjYWxsKFwiZWRpdG9yLnJlcGxhY2VSYW5nZVwiLCBwb3MgLSBwcmVmaXgubGVuZ3RoLCBwb3MsIFwiXCIpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBwb3MtLTtcbiAgfVxuICBpZiAocG9zKSB7XG4gICAgcG9zKys7XG4gIH1cbiAgYXdhaXQgc3lzY2FsbChcImVkaXRvci5pbnNlcnRBdFBvc1wiLCBwcmVmaXgsIHBvcyk7XG59XG4iLCAiZXhwb3J0IGZ1bmN0aW9uIHN5c2NhbGwobmFtZTogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSk6IGFueSB7XG4gIGxldCByZXFJZCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDEwMDAwMDApO1xuICAvLyBjb25zb2xlLmxvZyhcIlN5c2NhbGxcIiwgbmFtZSwgcmVxSWQpO1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIHNlbGYuZGlzcGF0Y2hFdmVudChcbiAgICAgIG5ldyBDdXN0b21FdmVudChcInN5c2NhbGxcIiwge1xuICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICBpZDogcmVxSWQsXG4gICAgICAgICAgbmFtZTogbmFtZSxcbiAgICAgICAgICBhcmdzOiBhcmdzLFxuICAgICAgICAgIGNhbGxiYWNrOiByZXNvbHZlLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICApO1xuICB9KTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI0aEJBQUEsOENDQU8sV0FBaUIsS0FBaUIsRUFBa0IsQ0FDekQsR0FBSSxHQUFRLEtBQUssTUFBTSxLQUFLLFNBQVcsS0FFdkMsTUFBTyxJQUFJLFNBQVEsQ0FBQyxFQUFTLElBQVcsQ0FDdEMsS0FBSyxjQUNILEdBQUksYUFBWSxVQUFXLENBQ3pCLE9BQVEsQ0FDTixHQUFJLEVBQ0osS0FBTSxFQUNOLEtBQU0sRUFDTixTQUFVLFFEUnBCLGtCQUFpQyxDQUMvQixLQUFNLEdBQWEsTUFHckIsa0JBQWlDLENBQy9CLEtBQU0sR0FBYSxPQUdyQixXQUFrQixFQUFXLEVBQWEsRUFBNkIsQ0FDckUsTUFBTyxHQUFFLFVBQVUsRUFBTSxFQUFXLE9BQVEsS0FBUyxFQUd2RCxpQkFBNEIsRUFBZ0IsQ0FDMUMsR0FBSSxHQUFRLEtBQU0sR0FBUSxrQkFDdEIsRUFBTyxLQUFNLEdBQVEsb0JBSXpCLElBSEksRUFBSyxLQUFTO0FBQUEsR0FDaEIsSUFFSyxFQUFNLEdBQUssRUFBSyxLQUFTO0FBQUEsR0FBTSxDQUNwQyxHQUFJLEVBQVMsRUFBTSxFQUFLLEdBQVMsQ0FFL0IsS0FBTSxHQUFRLHNCQUF1QixFQUFNLEVBQU8sT0FBUSxFQUFLLElBQy9ELE9BRUYsSUFFRixBQUFJLEdBQ0YsSUFFRixLQUFNLEdBQVEscUJBQXNCLEVBQVEiLAogICJuYW1lcyI6IFtdCn0K\n", "functionName": "toggleH2" } }