From 31f0ea8e0dafb82c3bf302a15d2a5de6be358e8f Mon Sep 17 00:00:00 2001 From: Anton Kovalenko Date: Sat, 17 Jul 2021 13:44:07 +0300 Subject: [PATCH] Initial release --- README.md | 3 + package-lock.json | 2078 +++++++++++++++++++++++++++++ package.json | 30 + public/about.txt | 6 + public/android-chrome-192x192.png | Bin 0 -> 7282 bytes public/android-chrome-512x512.png | Bin 0 -> 18475 bytes public/apple-touch-icon.png | Bin 0 -> 6416 bytes public/favicon-16x16.png | Bin 0 -> 454 bytes public/favicon-32x32.png | Bin 0 -> 922 bytes public/favicon.ico | Bin 0 -> 15406 bytes public/favicon.png | Bin 0 -> 922 bytes public/global.css | 0 public/index.html | 20 + public/site.webmanifest | 1 + rollup.config.js | 76 ++ src/App.svelte | 233 ++++ src/CTC.svelte | 29 + src/InputMask.svelte | 71 + src/PayFlow.svelte | 170 +++ src/QR.svelte | 42 + src/SiteCard.svelte | 12 + src/SiteDeck.svelte | 13 + src/SiteHead.svelte | 39 + src/Tipped.svelte | 9 + src/main.js | 10 + src/payflow.js | 51 + src/payways.js | 193 +++ 27 files changed, 3086 insertions(+) create mode 100644 README.md create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 public/about.txt create mode 100644 public/android-chrome-192x192.png create mode 100644 public/android-chrome-512x512.png create mode 100644 public/apple-touch-icon.png create mode 100644 public/favicon-16x16.png create mode 100644 public/favicon-32x32.png create mode 100644 public/favicon.ico create mode 100644 public/favicon.png create mode 100644 public/global.css create mode 100644 public/index.html create mode 100644 public/site.webmanifest create mode 100644 rollup.config.js create mode 100644 src/App.svelte create mode 100644 src/CTC.svelte create mode 100644 src/InputMask.svelte create mode 100644 src/PayFlow.svelte create mode 100644 src/QR.svelte create mode 100644 src/SiteCard.svelte create mode 100644 src/SiteDeck.svelte create mode 100644 src/SiteHead.svelte create mode 100644 src/Tipped.svelte create mode 100644 src/main.js create mode 100644 src/payflow.js create mode 100644 src/payways.js diff --git a/README.md b/README.md new file mode 100644 index 0000000..502d9ff --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ + +# lnurl-pay.me lightning to fiat gateway + diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..e686477 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,2078 @@ +{ + "name": "svelte-app", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "svelte-app", + "version": "1.0.0", + "dependencies": { + "@imask/svelte": "^6.1.0", + "bech32": "^2.0.0", + "kjua": "^0.9.0", + "sirv-cli": "^1.0.0", + "sveltestrap": "^5.4.0", + "utf-8": "^2.0.0" + }, + "devDependencies": { + "@rollup/plugin-commonjs": "^17.0.0", + "@rollup/plugin-inject": "^4.0.2", + "@rollup/plugin-node-resolve": "^11.0.0", + "rollup": "^2.3.4", + "rollup-plugin-css-only": "^3.1.0", + "rollup-plugin-livereload": "^2.0.0", + "rollup-plugin-node-globals": "^1.4.0", + "rollup-plugin-svelte": "^7.0.0", + "rollup-plugin-terser": "^7.0.0", + "svelte": "^3.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", + "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz", + "integrity": "sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", + "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.14.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@imask/svelte": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@imask/svelte/-/svelte-6.1.0.tgz", + "integrity": "sha512-2HTp/8nc/RPettwpuc3lFRFqWkEeOSvlMylcUUpI7ZYwPkF/mvCaJ4pZoIbO2P+UCDt06lCMZtjVxKb1g+0Pnw==", + "dependencies": { + "imask": "^6.1.0" + }, + "peerDependencies": { + "svelte": ">=3.0.0" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.15", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.15.tgz", + "integrity": "sha512-15spi3V28QdevleWBNXE4pIls3nFZmBbUGrW9IVPwiQczuSb9n76TCB4bsk8TSel+I1OkHEdPhu5QKMfY6rQHA==" + }, + "node_modules/@popperjs/core": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.9.2.tgz", + "integrity": "sha512-VZMYa7+fXHdwIq1TDhSXoVmSPEGM/aa+6Aiq3nVVJ9bXr24zScr+NlKFKC3iPljA7ho/GAZr+d2jOf5GIRC30Q==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/@rollup/plugin-commonjs": { + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-17.1.0.tgz", + "integrity": "sha512-PoMdXCw0ZyvjpCMT5aV4nkL0QywxP29sODQsSGeDpr/oI49Qq9tRtAsb/LbYbDzFlOydVEqHmmZWFtXJEAX9ew==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "commondir": "^1.0.1", + "estree-walker": "^2.0.1", + "glob": "^7.1.6", + "is-reference": "^1.2.1", + "magic-string": "^0.25.7", + "resolve": "^1.17.0" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^2.30.0" + } + }, + "node_modules/@rollup/plugin-inject": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-inject/-/plugin-inject-4.0.2.tgz", + "integrity": "sha512-TSLMA8waJ7Dmgmoc8JfPnwUwVZgLjjIAM6MqeIFqPO2ODK36JqE0Cf2F54UTgCUuW8da93Mvoj75a6KAVWgylw==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^3.0.4", + "estree-walker": "^1.0.1", + "magic-string": "^0.25.5" + }, + "peerDependencies": { + "rollup": "^1.20.0 || ^2.0.0" + } + }, + "node_modules/@rollup/plugin-inject/node_modules/estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "11.2.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", + "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "builtin-modules": "^3.1.0", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dev": true, + "dependencies": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@rollup/pluginutils/node_modules/estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + }, + "node_modules/@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "dev": true + }, + "node_modules/@types/node": { + "version": "16.3.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.3.2.tgz", + "integrity": "sha512-jJs9ErFLP403I+hMLGnqDRWT0RYKSvArxuBVh2veudHV7ifEC1WAmjJADacZ7mRbA2nWgHtn8xyECMAot0SkAw==", + "dev": true + }, + "node_modules/@types/resolve": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", + "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/acorn": { + "version": "5.7.4", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz", + "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/bech32": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-2.0.0.tgz", + "integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==" + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/buffer-es6": { + "version": "4.9.3", + "resolved": "https://registry.npmjs.org/buffer-es6/-/buffer-es6-4.9.3.tgz", + "integrity": "sha1-8mNHuC33b9N+GLy1KIxJcM/VxAQ=", + "dev": true + }, + "node_modules/buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true + }, + "node_modules/builtin-modules": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz", + "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chokidar": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "dev": true, + "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" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "node_modules/console-clear": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/console-clear/-/console-clear-1.1.1.tgz", + "integrity": "sha512-pMD+MVR538ipqkG5JXeOEbKWS5um1H4LUUccUQG68qpeqBYbzYy79Gh55jkd2TtPdRfUaLWdv6LPP//5Zt0aPQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/get-port": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", + "integrity": "sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw=", + "engines": { + "node": ">=4" + } + }, + "node_modules/glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/imask": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/imask/-/imask-6.1.0.tgz", + "integrity": "sha512-IuElVZpc7iuGw+CXfwoUZYpGdoD5H7cGo3S93gZPgjTTWfY5XAXCFL3g3b/ZJBZ18RG2dFF2kxAuuFlXMjq7oQ==", + "engines": { + "npm": ">=4.0.0" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.5.0.tgz", + "integrity": "sha512-TXCMSDsEHMEEZ6eCA8rwRDbLu55MRGmrctljsBX/2v1d9/GzqHOxW5c5oPSgrUt2vBFXebu9rGqckXGPWOlYpg==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", + "dev": true + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-reference": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", + "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", + "dev": true, + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/kjua": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/kjua/-/kjua-0.9.0.tgz", + "integrity": "sha512-Wmh5k6hpl+wiYkcEIx0/Ocj1DOxacw/myh/SQ3NbY0RWD4360CXaaAJkdeeV+moqf7fxvACYK95LXQ8vtLWKxA==" + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "engines": { + "node": ">=6" + } + }, + "node_modules/livereload": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/livereload/-/livereload-0.9.3.tgz", + "integrity": "sha512-q7Z71n3i4X0R9xthAryBdNGVGAO2R5X+/xXpmKeuPMrteg+W2U8VusTKV3YiJbXZwKsOlFlHe+go6uSNjfxrZw==", + "dev": true, + "dependencies": { + "chokidar": "^3.5.0", + "livereload-js": "^3.3.1", + "opts": ">= 1.2.0", + "ws": "^7.4.3" + }, + "bin": { + "livereload": "bin/livereload.js" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/livereload-js": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-3.3.2.tgz", + "integrity": "sha512-w677WnINxFkuixAoUEXOStewzLYGI76XVag+0JWMMEyjJQKs0ibWZMxkTlB96Lm3EjZ7IeOxVziBEbtxVQqQZA==", + "dev": true + }, + "node_modules/local-access": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/local-access/-/local-access-1.1.0.tgz", + "integrity": "sha512-XfegD5pyTAfb+GY6chk283Ox5z8WexG56OvM06RWLpAc/UHozO8X6xAxEkIitZOtsSMM1Yr3DkHgW5W+onLhCw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/magic-string": { + "version": "0.25.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", + "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", + "dev": true, + "dependencies": { + "sourcemap-codec": "^1.4.4" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/mime": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz", + "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mri": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.6.tgz", + "integrity": "sha512-oi1b3MfbyGa7FJMP9GmLTttni5JoICpYBRlq+x5V16fZbLsnL9N3wFqqIm/nIG43FjUFkFh9Epzp/kzUGUnJxQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/opts": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/opts/-/opts-2.0.2.tgz", + "integrity": "sha512-k41FwbcLnlgnFh69f4qdUfvDQ+5vaSDnVPFI/y5XuhKRq97EnVVneO9F1ESVCdiVu4fCS2L8usX3mU331hB7pg==", + "dev": true + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/process-es6": { + "version": "0.11.6", + "resolved": "https://registry.npmjs.org/process-es6/-/process-es6-0.11.6.tgz", + "integrity": "sha1-xrs4n5qVH4K9TrFpYAEFvS/5x3g=", + "dev": true + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/require-relative": { + "version": "0.8.7", + "resolved": "https://registry.npmjs.org/require-relative/-/require-relative-0.8.7.tgz", + "integrity": "sha1-eZlTn8ngR6N5KPoZb44VY9q9Nt4=", + "dev": true + }, + "node_modules/resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dev": true, + "dependencies": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/rollup": { + "version": "2.53.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.53.2.tgz", + "integrity": "sha512-1CtEYuS5CRCzFZ7SNW5528SlDlk4VDXIRGwbm/2POQxA/G4+7/crIqJwkmnj8Q/74hGx4oVlNvh4E1CJQ5hZ6w==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/rollup-plugin-css-only": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-css-only/-/rollup-plugin-css-only-3.1.0.tgz", + "integrity": "sha512-TYMOE5uoD76vpj+RTkQLzC9cQtbnJNktHPB507FzRWBVaofg7KhIqq1kGbcVOadARSozWF883Ho9KpSPKH8gqA==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "4" + }, + "engines": { + "node": ">=10.12.0" + }, + "peerDependencies": { + "rollup": "1 || 2" + } + }, + "node_modules/rollup-plugin-css-only/node_modules/@rollup/pluginutils": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.1.0.tgz", + "integrity": "sha512-TrBhfJkFxA+ER+ew2U2/fHbebhLT/l/2pRk0hfj9KusXUuRXd2v0R58AfaZK9VXDQ4TogOSEmICVrQAA3zFnHQ==", + "dev": true, + "dependencies": { + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/rollup-plugin-livereload": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/rollup-plugin-livereload/-/rollup-plugin-livereload-2.0.5.tgz", + "integrity": "sha512-vqQZ/UQowTW7VoiKEM5ouNW90wE5/GZLfdWuR0ELxyKOJUIaj+uismPZZaICU4DnWPVjnpCDDxEqwU7pcKY/PA==", + "dev": true, + "dependencies": { + "livereload": "^0.9.1" + }, + "engines": { + "node": ">=8.3" + } + }, + "node_modules/rollup-plugin-node-globals": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-node-globals/-/rollup-plugin-node-globals-1.4.0.tgz", + "integrity": "sha512-xRkB+W/m1KLIzPUmG0ofvR+CPNcvuCuNdjVBVS7ALKSxr3EDhnzNceGkGi1m8MToSli13AzKFYH4ie9w3I5L3g==", + "dev": true, + "dependencies": { + "acorn": "^5.7.3", + "buffer-es6": "^4.9.3", + "estree-walker": "^0.5.2", + "magic-string": "^0.22.5", + "process-es6": "^0.11.6", + "rollup-pluginutils": "^2.3.1" + } + }, + "node_modules/rollup-plugin-node-globals/node_modules/estree-walker": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.5.2.tgz", + "integrity": "sha512-XpCnW/AE10ws/kDAs37cngSkvgIR8aN3G0MS85m7dUpuK2EREo9VJ00uvw6Dg/hXEpfsE1I1TvJOJr+Z+TL+ig==", + "dev": true + }, + "node_modules/rollup-plugin-node-globals/node_modules/magic-string": { + "version": "0.22.5", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.22.5.tgz", + "integrity": "sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w==", + "dev": true, + "dependencies": { + "vlq": "^0.2.2" + } + }, + "node_modules/rollup-plugin-svelte": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-svelte/-/rollup-plugin-svelte-7.1.0.tgz", + "integrity": "sha512-vopCUq3G+25sKjwF5VilIbiY6KCuMNHP1PFvx2Vr3REBNMDllKHFZN2B9jwwC+MqNc3UPKkjXnceLPEjTjXGXg==", + "dev": true, + "dependencies": { + "require-relative": "^0.8.7", + "rollup-pluginutils": "^2.8.2" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "rollup": ">=2.0.0", + "svelte": ">=3.5.0" + } + }, + "node_modules/rollup-plugin-terser": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", + "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "jest-worker": "^26.2.1", + "serialize-javascript": "^4.0.0", + "terser": "^5.0.0" + }, + "peerDependencies": { + "rollup": "^2.0.0" + } + }, + "node_modules/rollup-pluginutils": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", + "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", + "dev": true, + "dependencies": { + "estree-walker": "^0.6.1" + } + }, + "node_modules/rollup-pluginutils/node_modules/estree-walker": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", + "dev": true + }, + "node_modules/sade": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/sade/-/sade-1.7.4.tgz", + "integrity": "sha512-y5yauMD93rX840MwUJr7C1ysLFBgMspsdTo4UVrDg3fXDvtwOyIqykhVAAm6fk/3au77773itJStObgK+LKaiA==", + "dependencies": { + "mri": "^1.1.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/semiver": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/semiver/-/semiver-1.1.0.tgz", + "integrity": "sha512-QNI2ChmuioGC1/xjyYwyZYADILWyW6AmS1UH6gDj/SFUUUS4MBAWs/7mxnkRPc/F4iHezDP+O8t0dO8WHiEOdg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/sirv": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-1.0.12.tgz", + "integrity": "sha512-+jQoCxndz7L2tqQL4ZyzfDhky0W/4ZJip3XoOuxyQWnAwMxindLl3Xv1qT4x1YX/re0leShvTm8Uk0kQspGhBg==", + "dependencies": { + "@polka/url": "^1.0.0-next.15", + "mime": "^2.3.1", + "totalist": "^1.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/sirv-cli": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/sirv-cli/-/sirv-cli-1.0.12.tgz", + "integrity": "sha512-Rs5PvF3a48zuLmrl8vcqVv9xF/WWPES19QawVkpdzqx7vD5SMZS07+ece1gK4umbslXN43YeIksYtQM5csgIzQ==", + "dependencies": { + "console-clear": "^1.1.0", + "get-port": "^3.2.0", + "kleur": "^3.0.0", + "local-access": "^1.0.1", + "sade": "^1.6.0", + "semiver": "^1.0.0", + "sirv": "^1.0.12", + "tinydate": "^1.0.0" + }, + "bin": { + "sirv": "bin.js" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/svelte": { + "version": "3.38.3", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.38.3.tgz", + "integrity": "sha512-N7bBZJH0iF24wsalFZF+fVYMUOigaAUQMIcEKHO3jstK/iL8VmP9xE+P0/a76+FkNcWt+TDv2Gx1taUoUscrvw==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/sveltestrap": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/sveltestrap/-/sveltestrap-5.4.0.tgz", + "integrity": "sha512-BcLaIiNLndT72o27PosZuWahJskkB5AyXDfAiGg+1hNCRhzHd8jjQdwWkfJXRSJwmDpCogL7V+62kVGHDkwU1g==", + "dependencies": { + "@popperjs/core": "^2.9.2" + }, + "peerDependencies": { + "svelte": "^3.29.0" + } + }, + "node_modules/terser": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.7.1.tgz", + "integrity": "sha512-b3e+d5JbHAe/JSjwsC3Zn55wsBIM7AsHLjKxT31kGCldgbpFePaFo+PiddtO6uwRZWRw7sPXmAN8dTW61xmnSg==", + "dev": true, + "dependencies": { + "commander": "^2.20.0", + "source-map": "~0.7.2", + "source-map-support": "~0.5.19" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tinydate": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/tinydate/-/tinydate-1.3.0.tgz", + "integrity": "sha512-7cR8rLy2QhYHpsBDBVYnnWXm8uRTr38RoZakFSW7Bs7PzfMPNZthuMLkwqZv7MTu8lhQ91cOFYS5a7iFj2oR3w==", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/totalist": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-1.1.0.tgz", + "integrity": "sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==", + "engines": { + "node": ">=6" + } + }, + "node_modules/utf-8": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/utf-8/-/utf-8-2.0.0.tgz", + "integrity": "sha512-DItg/Z20ltBzugPrb8Mx1oN0F8CqN5bD38T57YM/pF/GOzUsNVXiellI0PbJPq3e1Z7BEDNoWP1H1+4n7g54Cg==", + "engines": { + "node": ">=6.9.5" + } + }, + "node_modules/vlq": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz", + "integrity": "sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==", + "dev": true + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "node_modules/ws": { + "version": "7.5.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.3.tgz", + "integrity": "sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg==", + "dev": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + } + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", + "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.14.5" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz", + "integrity": "sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==", + "dev": true + }, + "@babel/highlight": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", + "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@imask/svelte": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@imask/svelte/-/svelte-6.1.0.tgz", + "integrity": "sha512-2HTp/8nc/RPettwpuc3lFRFqWkEeOSvlMylcUUpI7ZYwPkF/mvCaJ4pZoIbO2P+UCDt06lCMZtjVxKb1g+0Pnw==", + "requires": { + "imask": "^6.1.0" + } + }, + "@polka/url": { + "version": "1.0.0-next.15", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.15.tgz", + "integrity": "sha512-15spi3V28QdevleWBNXE4pIls3nFZmBbUGrW9IVPwiQczuSb9n76TCB4bsk8TSel+I1OkHEdPhu5QKMfY6rQHA==" + }, + "@popperjs/core": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.9.2.tgz", + "integrity": "sha512-VZMYa7+fXHdwIq1TDhSXoVmSPEGM/aa+6Aiq3nVVJ9bXr24zScr+NlKFKC3iPljA7ho/GAZr+d2jOf5GIRC30Q==" + }, + "@rollup/plugin-commonjs": { + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-17.1.0.tgz", + "integrity": "sha512-PoMdXCw0ZyvjpCMT5aV4nkL0QywxP29sODQsSGeDpr/oI49Qq9tRtAsb/LbYbDzFlOydVEqHmmZWFtXJEAX9ew==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^3.1.0", + "commondir": "^1.0.1", + "estree-walker": "^2.0.1", + "glob": "^7.1.6", + "is-reference": "^1.2.1", + "magic-string": "^0.25.7", + "resolve": "^1.17.0" + } + }, + "@rollup/plugin-inject": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-inject/-/plugin-inject-4.0.2.tgz", + "integrity": "sha512-TSLMA8waJ7Dmgmoc8JfPnwUwVZgLjjIAM6MqeIFqPO2ODK36JqE0Cf2F54UTgCUuW8da93Mvoj75a6KAVWgylw==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^3.0.4", + "estree-walker": "^1.0.1", + "magic-string": "^0.25.5" + }, + "dependencies": { + "estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + } + } + }, + "@rollup/plugin-node-resolve": { + "version": "11.2.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", + "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "builtin-modules": "^3.1.0", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.19.0" + } + }, + "@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dev": true, + "requires": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "dependencies": { + "estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + } + } + }, + "@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "dev": true + }, + "@types/node": { + "version": "16.3.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.3.2.tgz", + "integrity": "sha512-jJs9ErFLP403I+hMLGnqDRWT0RYKSvArxuBVh2veudHV7ifEC1WAmjJADacZ7mRbA2nWgHtn8xyECMAot0SkAw==", + "dev": true + }, + "@types/resolve": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", + "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "acorn": { + "version": "5.7.4", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz", + "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "bech32": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-2.0.0.tgz", + "integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==" + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "buffer-es6": { + "version": "4.9.3", + "resolved": "https://registry.npmjs.org/buffer-es6/-/buffer-es6-4.9.3.tgz", + "integrity": "sha1-8mNHuC33b9N+GLy1KIxJcM/VxAQ=", + "dev": true + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true + }, + "builtin-modules": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz", + "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chokidar": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.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" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "console-clear": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/console-clear/-/console-clear-1.1.1.tgz", + "integrity": "sha512-pMD+MVR538ipqkG5JXeOEbKWS5um1H4LUUccUQG68qpeqBYbzYy79Gh55jkd2TtPdRfUaLWdv6LPP//5Zt0aPQ==" + }, + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "get-port": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", + "integrity": "sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw=" + }, + "glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "imask": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/imask/-/imask-6.1.0.tgz", + "integrity": "sha512-IuElVZpc7iuGw+CXfwoUZYpGdoD5H7cGo3S93gZPgjTTWfY5XAXCFL3g3b/ZJBZ18RG2dFF2kxAuuFlXMjq7oQ==" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-core-module": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.5.0.tgz", + "integrity": "sha512-TXCMSDsEHMEEZ6eCA8rwRDbLu55MRGmrctljsBX/2v1d9/GzqHOxW5c5oPSgrUt2vBFXebu9rGqckXGPWOlYpg==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-reference": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", + "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", + "dev": true, + "requires": { + "@types/estree": "*" + } + }, + "jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "kjua": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/kjua/-/kjua-0.9.0.tgz", + "integrity": "sha512-Wmh5k6hpl+wiYkcEIx0/Ocj1DOxacw/myh/SQ3NbY0RWD4360CXaaAJkdeeV+moqf7fxvACYK95LXQ8vtLWKxA==" + }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" + }, + "livereload": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/livereload/-/livereload-0.9.3.tgz", + "integrity": "sha512-q7Z71n3i4X0R9xthAryBdNGVGAO2R5X+/xXpmKeuPMrteg+W2U8VusTKV3YiJbXZwKsOlFlHe+go6uSNjfxrZw==", + "dev": true, + "requires": { + "chokidar": "^3.5.0", + "livereload-js": "^3.3.1", + "opts": ">= 1.2.0", + "ws": "^7.4.3" + } + }, + "livereload-js": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-3.3.2.tgz", + "integrity": "sha512-w677WnINxFkuixAoUEXOStewzLYGI76XVag+0JWMMEyjJQKs0ibWZMxkTlB96Lm3EjZ7IeOxVziBEbtxVQqQZA==", + "dev": true + }, + "local-access": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/local-access/-/local-access-1.1.0.tgz", + "integrity": "sha512-XfegD5pyTAfb+GY6chk283Ox5z8WexG56OvM06RWLpAc/UHozO8X6xAxEkIitZOtsSMM1Yr3DkHgW5W+onLhCw==" + }, + "magic-string": { + "version": "0.25.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", + "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.4" + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "mime": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz", + "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==" + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "mri": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.6.tgz", + "integrity": "sha512-oi1b3MfbyGa7FJMP9GmLTttni5JoICpYBRlq+x5V16fZbLsnL9N3wFqqIm/nIG43FjUFkFh9Epzp/kzUGUnJxQ==" + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "opts": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/opts/-/opts-2.0.2.tgz", + "integrity": "sha512-k41FwbcLnlgnFh69f4qdUfvDQ+5vaSDnVPFI/y5XuhKRq97EnVVneO9F1ESVCdiVu4fCS2L8usX3mU331hB7pg==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "picomatch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "dev": true + }, + "process-es6": { + "version": "0.11.6", + "resolved": "https://registry.npmjs.org/process-es6/-/process-es6-0.11.6.tgz", + "integrity": "sha1-xrs4n5qVH4K9TrFpYAEFvS/5x3g=", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "require-relative": { + "version": "0.8.7", + "resolved": "https://registry.npmjs.org/require-relative/-/require-relative-0.8.7.tgz", + "integrity": "sha1-eZlTn8ngR6N5KPoZb44VY9q9Nt4=", + "dev": true + }, + "resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dev": true, + "requires": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + } + }, + "rollup": { + "version": "2.53.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.53.2.tgz", + "integrity": "sha512-1CtEYuS5CRCzFZ7SNW5528SlDlk4VDXIRGwbm/2POQxA/G4+7/crIqJwkmnj8Q/74hGx4oVlNvh4E1CJQ5hZ6w==", + "dev": true, + "requires": { + "fsevents": "~2.3.2" + } + }, + "rollup-plugin-css-only": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-css-only/-/rollup-plugin-css-only-3.1.0.tgz", + "integrity": "sha512-TYMOE5uoD76vpj+RTkQLzC9cQtbnJNktHPB507FzRWBVaofg7KhIqq1kGbcVOadARSozWF883Ho9KpSPKH8gqA==", + "dev": true, + "requires": { + "@rollup/pluginutils": "4" + }, + "dependencies": { + "@rollup/pluginutils": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.1.0.tgz", + "integrity": "sha512-TrBhfJkFxA+ER+ew2U2/fHbebhLT/l/2pRk0hfj9KusXUuRXd2v0R58AfaZK9VXDQ4TogOSEmICVrQAA3zFnHQ==", + "dev": true, + "requires": { + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" + } + } + } + }, + "rollup-plugin-livereload": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/rollup-plugin-livereload/-/rollup-plugin-livereload-2.0.5.tgz", + "integrity": "sha512-vqQZ/UQowTW7VoiKEM5ouNW90wE5/GZLfdWuR0ELxyKOJUIaj+uismPZZaICU4DnWPVjnpCDDxEqwU7pcKY/PA==", + "dev": true, + "requires": { + "livereload": "^0.9.1" + } + }, + "rollup-plugin-node-globals": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-node-globals/-/rollup-plugin-node-globals-1.4.0.tgz", + "integrity": "sha512-xRkB+W/m1KLIzPUmG0ofvR+CPNcvuCuNdjVBVS7ALKSxr3EDhnzNceGkGi1m8MToSli13AzKFYH4ie9w3I5L3g==", + "dev": true, + "requires": { + "acorn": "^5.7.3", + "buffer-es6": "^4.9.3", + "estree-walker": "^0.5.2", + "magic-string": "^0.22.5", + "process-es6": "^0.11.6", + "rollup-pluginutils": "^2.3.1" + }, + "dependencies": { + "estree-walker": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.5.2.tgz", + "integrity": "sha512-XpCnW/AE10ws/kDAs37cngSkvgIR8aN3G0MS85m7dUpuK2EREo9VJ00uvw6Dg/hXEpfsE1I1TvJOJr+Z+TL+ig==", + "dev": true + }, + "magic-string": { + "version": "0.22.5", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.22.5.tgz", + "integrity": "sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w==", + "dev": true, + "requires": { + "vlq": "^0.2.2" + } + } + } + }, + "rollup-plugin-svelte": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-svelte/-/rollup-plugin-svelte-7.1.0.tgz", + "integrity": "sha512-vopCUq3G+25sKjwF5VilIbiY6KCuMNHP1PFvx2Vr3REBNMDllKHFZN2B9jwwC+MqNc3UPKkjXnceLPEjTjXGXg==", + "dev": true, + "requires": { + "require-relative": "^0.8.7", + "rollup-pluginutils": "^2.8.2" + } + }, + "rollup-plugin-terser": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", + "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "jest-worker": "^26.2.1", + "serialize-javascript": "^4.0.0", + "terser": "^5.0.0" + } + }, + "rollup-pluginutils": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", + "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", + "dev": true, + "requires": { + "estree-walker": "^0.6.1" + }, + "dependencies": { + "estree-walker": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", + "dev": true + } + } + }, + "sade": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/sade/-/sade-1.7.4.tgz", + "integrity": "sha512-y5yauMD93rX840MwUJr7C1ysLFBgMspsdTo4UVrDg3fXDvtwOyIqykhVAAm6fk/3au77773itJStObgK+LKaiA==", + "requires": { + "mri": "^1.1.0" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "semiver": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/semiver/-/semiver-1.1.0.tgz", + "integrity": "sha512-QNI2ChmuioGC1/xjyYwyZYADILWyW6AmS1UH6gDj/SFUUUS4MBAWs/7mxnkRPc/F4iHezDP+O8t0dO8WHiEOdg==" + }, + "serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "sirv": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-1.0.12.tgz", + "integrity": "sha512-+jQoCxndz7L2tqQL4ZyzfDhky0W/4ZJip3XoOuxyQWnAwMxindLl3Xv1qT4x1YX/re0leShvTm8Uk0kQspGhBg==", + "requires": { + "@polka/url": "^1.0.0-next.15", + "mime": "^2.3.1", + "totalist": "^1.0.0" + } + }, + "sirv-cli": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/sirv-cli/-/sirv-cli-1.0.12.tgz", + "integrity": "sha512-Rs5PvF3a48zuLmrl8vcqVv9xF/WWPES19QawVkpdzqx7vD5SMZS07+ece1gK4umbslXN43YeIksYtQM5csgIzQ==", + "requires": { + "console-clear": "^1.1.0", + "get-port": "^3.2.0", + "kleur": "^3.0.0", + "local-access": "^1.0.1", + "sade": "^1.6.0", + "semiver": "^1.0.0", + "sirv": "^1.0.12", + "tinydate": "^1.0.0" + } + }, + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true + }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "svelte": { + "version": "3.38.3", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.38.3.tgz", + "integrity": "sha512-N7bBZJH0iF24wsalFZF+fVYMUOigaAUQMIcEKHO3jstK/iL8VmP9xE+P0/a76+FkNcWt+TDv2Gx1taUoUscrvw==" + }, + "sveltestrap": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/sveltestrap/-/sveltestrap-5.4.0.tgz", + "integrity": "sha512-BcLaIiNLndT72o27PosZuWahJskkB5AyXDfAiGg+1hNCRhzHd8jjQdwWkfJXRSJwmDpCogL7V+62kVGHDkwU1g==", + "requires": { + "@popperjs/core": "^2.9.2" + } + }, + "terser": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.7.1.tgz", + "integrity": "sha512-b3e+d5JbHAe/JSjwsC3Zn55wsBIM7AsHLjKxT31kGCldgbpFePaFo+PiddtO6uwRZWRw7sPXmAN8dTW61xmnSg==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.7.2", + "source-map-support": "~0.5.19" + } + }, + "tinydate": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/tinydate/-/tinydate-1.3.0.tgz", + "integrity": "sha512-7cR8rLy2QhYHpsBDBVYnnWXm8uRTr38RoZakFSW7Bs7PzfMPNZthuMLkwqZv7MTu8lhQ91cOFYS5a7iFj2oR3w==" + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "totalist": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-1.1.0.tgz", + "integrity": "sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==" + }, + "utf-8": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/utf-8/-/utf-8-2.0.0.tgz", + "integrity": "sha512-DItg/Z20ltBzugPrb8Mx1oN0F8CqN5bD38T57YM/pF/GOzUsNVXiellI0PbJPq3e1Z7BEDNoWP1H1+4n7g54Cg==" + }, + "vlq": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz", + "integrity": "sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==", + "dev": true + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "ws": { + "version": "7.5.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.3.tgz", + "integrity": "sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg==", + "dev": true, + "requires": {} + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..6daca7d --- /dev/null +++ b/package.json @@ -0,0 +1,30 @@ +{ + "name": "lnurl-pay.me", + "version": "1.0.0", + "private": true, + "scripts": { + "build": "rollup -c", + "dev": "rollup -c -w", + "start": "sirv public --no-clear --host 0.0.0.0" + }, + "devDependencies": { + "@rollup/plugin-commonjs": "^17.0.0", + "@rollup/plugin-inject": "^4.0.2", + "@rollup/plugin-node-resolve": "^11.0.0", + "rollup": "^2.3.4", + "rollup-plugin-css-only": "^3.1.0", + "rollup-plugin-livereload": "^2.0.0", + "rollup-plugin-node-globals": "^1.4.0", + "rollup-plugin-svelte": "^7.0.0", + "rollup-plugin-terser": "^7.0.0", + "svelte": "^3.0.0" + }, + "dependencies": { + "@imask/svelte": "^6.1.0", + "bech32": "^2.0.0", + "kjua": "^0.9.0", + "sirv-cli": "^1.0.0", + "sveltestrap": "^5.4.0", + "utf-8": "^2.0.0" + } +} diff --git a/public/about.txt b/public/about.txt new file mode 100644 index 0000000..5c9e10c --- /dev/null +++ b/public/about.txt @@ -0,0 +1,6 @@ +This favicon was generated using the following font: + +- Font Title: Leckerli One +- Font Author: Copyright (c) 2011 Gesine Todt (www.gesine-todt.de), with Reserved Font Names "Leckerli" +- Font Source: http://fonts.gstatic.com/s/leckerlione/v11/V8mCoQH8VCsNttEnxnGQ-1itLZxcBtItFw.ttf +- Font License: SIL Open Font License, 1.1 (http://scripts.sil.org/OFL) diff --git a/public/android-chrome-192x192.png b/public/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..3903a830592eb1b973ee1ec7fa794b5bc39dc02d GIT binary patch literal 7282 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 PB|=n`G!!eK7NP$GOb$2} literal 0 HcmV?d00001 diff --git a/public/android-chrome-512x512.png b/public/android-chrome-512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..78ab2c44838c49dd2ba092eb13c16652effaaa90 GIT binary patch literal 18475 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 QO$VFtWpjhqDA(x!2NXU~!2kdN literal 0 HcmV?d00001 diff --git a/public/favicon-16x16.png b/public/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..0e1b784bfd2763b5f34cce7fa85ccd719f7f9a4c GIT binary patch literal 454 zcmV;%0XhDOP)ERO&}U2yy#{ID#ZzC3CqPrfFgr##_i=0mI=CDJ1}57*ea%VtG|n z*=#n{>-DdIMx%k0lHqWOVHij$8IQ*?@ou+cHk-vA7=}SQoyPM#eBVb=6b6F<0Jd!- zgh10Y_WOM#jsdFGDnSqcaJ${OUay2<7k8HcH z%VaWnzr@920YIzOiWOxt8BV7Yj^n%sY`5Fk%)dj^G(J8)IG@k7+wHFa$8lILm-xO9 zfN7dhL8Ve*wOU2D;rl+#W|MNc{0Xou3n?X|(TK<60f6Uubh}+Toen_|#2n@Gd3@i; z^E?zqAyF(A3B!=%@yPS}WImsBxm*Ca-|zH#y_n@vsf6pgNGZ{E{d0sup@3ysWV6|* w&@c>CRegEFilRh2_|7N(d8TAC`Csq+3lpC*NWsT1+krH|8SXQc(Z!5GRaAr zp6Pjhopa_)M%dfi`$rVT{|F&HLI@><;4d2`g!DvF+y(GM_$~goMOT_AiaP=!NTZXX)5B06q;64u_%ZI%>5Vs?{nkE-nxXg}w*i>go!P<6v>TzP=(Jk9+=se!q`$ zx%@eRa=E-DJU=YU`Y=W$62Wjd1OQa4Rqp`lbQ+XW005;Fg+c+cEF+W2FaSy^0)fEV z7_uxg@m8w^pU>wFK$0Zbw#|f!#UkgQPf0KsTp1%8jbbz!G4W5;z~$v7mupFqm@k{n zGT-y_^IGxQ4>X%iZ$+r`$_ zj1PC%Mu7PW9}b5f28%|cOnkP_zYL%#3b)+-e*eQ@sZJey4cJP4h}FHjc|T`&b_Zzs{nxMbjqEU^Uney@BO~rZnFbt z)tDWhizZ1D?(gpb0I5`J$zQM60lc?yP18UK!OhJL4^S$Vn2_T*czb(W0y6@mzaQCbmW!h(${zqt z(^f9~Xf#4R9*3%`Xti4097-t$gTczY&s!`OgK3%=38#ocWI w?C9e}imUKf>W?s&rA#IU<2T2$XXK zB|s<#K%l_5ztQVg&3I;a-@b*==$g)M*=h@=LncUm5U%tq)@3Jgw zYy0rNZ~ zSLx{7y?gh%uC6Y(ef#!04?A}3a2q#ntiS6Vy>HmC!H@0Vzu&!o|K2@)`qaI9_s-q8 zal=haOgP$`H*egTGiPStIB?*Ad-(97o1UI_+qP}hCnsHZcXu7fo;`cq`1rU3MtL}W`m`Gu81Vfd=_jBVPq$?e>^(~XUdxxT)>|IE|*w{G3?^Lu-HXTWUTy4AgW z`O?9s!p81r&z|-3@7}%ZWkx^1VFz?}<;s=h{KJP2dtHHGYHG^8e*N0pBa{i54*=gxV4R3G3N85wccu3d}bfY)Qkj(OW&xNyON6Wb~e zD$DTja4rt!GLMFDb#!#hpoc#0-Mi~2DTurUt zXi#XNlQ`2R*Y|P}pHgkrs#Tw@UAy)-;dfZB>9R6bg@ZB4}5|)$BZpvA+s0 zBhBKeI=`leS=V`rKWvd2``G=&Z{pbP+qZqLAXbKXhB!l>Af^?q-#q?_XBPLqef#P; z#s`<$AL2Us0N%(Inui!B4w2hzPKnVZhawZO#7}Y|jr^nVH*enbec&Wlkh3(-0Z*(; zHQ>&lKVQeCIPD!-$xjx~?%liVbBMb%XsK?WLF4X26h- zY3#S`zQ#U>xb&U{E+yu(u*U z(DL?zMR*v8{)-ncl)SekF^Rn@YlFQy>o&y28dDyC3&+d6v!{RZH#`o9Rq%1 zKJkb~-BX69g?aw`xu2`?)xXFe_SpCD-}mcT`?$x}202UXEn<+xU-V2pqI+m-19B5{ ziMzyXn@?gj3_h$f=-eXO;rOXjr|O~-L#@qijCl3xRa8c;?Ld+jLqody4n36t9K;qK z<8If8jeiyf9*EDhqBv^j>9f{O%x8TQWAIUOt~UCyi_Qt}z_W&F@Srtv2$y;%|K&B- zW@@hXvu9Hts>BECV5@KC2frwj)8KQ39^@L4Yu4*AXh4g)Th`B_)VaX_rJr*WIik&$%awOdBEwmG zd;4PXm7hg_J)*yfk72JyeY0lYapA95&Nr6BGrX@}z4|K|`%A8gMsdy+yzt5y+#kpw zvMj5;&#PEl<9WH3*>{a=tW+fUuf_ae>Oi|MGdOLZ&WqiFf?Pc8k}GjgyFu|p^W^4U3@z1v#Y*5lyeT(hXbCq6?xj4r@u z=`v1DW$6|@vySwhMla9{eGwhAHf;m0$WO2n@rHN+j*u7n;Dd8w8aO$>jltTv z#4;BQBM_ymhDbuh^5ig8$KA?6Wp6GXSrETxnO??4AI1_+3 zU|6@TX$x0UG)wP><&^5zhGs8>SWTRCFS$VUFhHhFqw zkE=3(hu>qgs^%u|7X5xA#=GsqKKNLyW>vl6o0=c71K(g;Ap`Y>>Kz@ij|&@gS;NE- z_TUO{;oyn6c`?TNC-Bs>Dqqz*v61~N`)=Lm=srdH!%uA90giaWdI;kcYcx*={r#=t zMh5)1D*wz2>0#@TFMQV0U=H>mr`m?Cit;tFRqHP7fG(Pq!ScplD6|1SqxMl)mBI24 zKg3OiN!_WxG`2Dazs!qeDLk=$_zJ)A!y`6`(FoTAzb6iD8l!_9u$S7J-8H-pvxG)v zpgyM7K?c@#l{z>^6JN$p)y66Q;XQTk5W^em!zbBWk&p8BB(b?gecgxLD)Z zn!MC1pDp5}730Jm;zX-;)C%4faHM~?(x`6uekWJM|I5`Vo!NpH-pAycx8JYj+jW=d z=0}lX-hIP{XW{=Re!n62zvq(-!t0dq{AauQ4T|KUAEdui`aj8U^1|D6jkj)jUMBVE Pm;8Qap)F{j84dgkX+XoI literal 0 HcmV?d00001 diff --git a/public/favicon.png b/public/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..9eadb7dd63d140a136a5e19001aeb698fcf9e6e7 GIT binary patch literal 922 zcmV;L17-Y)P)WsT1+krH|8SXQc(Z!5GRaAr zp6Pjhopa_)M%dfi`$rVT{|F&HLI@><;4d2`g!DvF+y(GM_$~goMOT_AiaP=!NTZXX)5B06q;64u_%ZI%>5Vs?{nkE-nxXg}w*i>go!P<6v>TzP=(Jk9+=se!q`$ zx%@eRa=E-DJU=YU`Y=W$62Wjd1OQa4Rqp`lbQ+XW005;Fg+c+cEF+W2FaSy^0)fEV z7_uxg@m8w^pU>wFK$0Zbw#|f!#UkgQPf0KsTp1%8jbbz!G4W5;z~$v7mupFqm@k{n zGT-y_^IGxQ4>X%iZ$+r`$_ zj1PC%Mu7PW9}b5f28%|cOnkP_zYL%#3b)+-e*eQ@sZJey4cJP4h}FHjc|T`&b_Zzs{nxMbjqEU^Uney@BO~rZnFbt z)tDWhizZ1D?(gpb0I5`J$zQM60lc?yP18UK!OhJL4^S$Vn2_T*czb(W0y6@mzaQCbmW!h(${zqt z(^f9~Xf#4R9*3%`Xti4097-t$gTczY&s!`OgK3%=38#ocWI w?C + + + + + + lnurl-pay generator + + + + + + + + + + + + + diff --git a/public/site.webmanifest b/public/site.webmanifest new file mode 100644 index 0000000..62abc52 --- /dev/null +++ b/public/site.webmanifest @@ -0,0 +1 @@ +{"name":"lnurl-pay generator","short_name":"lnurl-pay.me","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"} diff --git a/rollup.config.js b/rollup.config.js new file mode 100644 index 0000000..e8965ec --- /dev/null +++ b/rollup.config.js @@ -0,0 +1,76 @@ +import svelte from 'rollup-plugin-svelte'; +import commonjs from '@rollup/plugin-commonjs'; +import resolve from '@rollup/plugin-node-resolve'; +import livereload from 'rollup-plugin-livereload'; +import { terser } from 'rollup-plugin-terser'; +import css from 'rollup-plugin-css-only'; + +const production = !process.env.ROLLUP_WATCH; + +function serve() { + let server; + + function toExit() { + if (server) server.kill(0); + } + + return { + writeBundle() { + if (server) return; + server = require('child_process').spawn('npm', ['run', 'start', '--', '--dev'], { + stdio: ['ignore', 'inherit', 'inherit'], + shell: true + }); + + process.on('SIGTERM', toExit); + process.on('exit', toExit); + } + }; +} + +export default { + input: 'src/main.js', + output: { + sourcemap: true, + format: 'iife', + name: 'app', + file: 'public/build/bundle.js' + }, + plugins: [ + svelte({ + compilerOptions: { + // enable run-time checks when not in production + dev: !production + } + }), + // we'll extract any component CSS out into + // a separate file - better for performance + css({ output: 'bundle.css' }), + + // If you have external dependencies installed from + // npm, you'll most likely need these plugins. In + // some cases you'll need additional configuration - + // consult the documentation for details: + // https://github.com/rollup/plugins/tree/master/packages/commonjs + resolve({ + browser: true, + dedupe: ['svelte'] + }), + commonjs(), + + // In dev mode, call `npm run start` once + // the bundle has been generated + !production && serve(), + + // Watch the `public` directory and refresh the + // browser on changes when not in production + !production && livereload('public'), + + // If we're building for production (npm run build + // instead of npm run dev), minify + production && terser() + ], + watch: { + clearScreen: false + } +}; diff --git a/src/App.svelte b/src/App.svelte new file mode 100644 index 0000000..bbea958 --- /dev/null +++ b/src/App.svelte @@ -0,0 +1,233 @@ + + + + + + +

Fill in everything to get your lnurl-pay link

+ + + {#key payway} + + + {/key} + + +
+ + {#if lnurl} + +
{lnurl} +
+
+ {:else} +
Expecting: {payway.acc.toLowerCase()}
+ {/if} +
+ + + + + +
+ +
+

You might want to save image and share it + as you like. All form data are present in lnurl: don't share what you wanted to hide.

+
+ +
+ + + + {#if canShare} + + {/if} + + Pay +
open in your wallet
+
+ + + +
get an invoice for wallets with no lnurl-pay
+
+
+
+
+ + + + diff --git a/src/CTC.svelte b/src/CTC.svelte new file mode 100644 index 0000000..6eb3740 --- /dev/null +++ b/src/CTC.svelte @@ -0,0 +1,29 @@ + + +{#if canCopy||force} + + {#if canCopy} + + {#if justCopied} + copied! + {:else} + click to copy + {/if} + + {/if} +{/if} diff --git a/src/InputMask.svelte b/src/InputMask.svelte new file mode 100644 index 0000000..48acd75 --- /dev/null +++ b/src/InputMask.svelte @@ -0,0 +1,71 @@ + + + diff --git a/src/PayFlow.svelte b/src/PayFlow.svelte new file mode 100644 index 0000000..023b727 --- /dev/null +++ b/src/PayFlow.svelte @@ -0,0 +1,170 @@ + + + + BOLT11 invoice: {stage} + + {#if confirmAmount} +
+ +
+ {/if} + {#if (res2&&res2.pr)} +
+ +
{res2.pr.toUpperCase()} +
+
+
+ + + +
+
+ {/if} +
+ +
+ {#if res2 && res2.pr} + + + + {#if canShare} + + {/if} + + Pay +
open invoice in your wallet
+
+ {/if} + +
+ +
+
diff --git a/src/QR.svelte b/src/QR.svelte new file mode 100644 index 0000000..dce1783 --- /dev/null +++ b/src/QR.svelte @@ -0,0 +1,42 @@ + + + + + +
+ diff --git a/src/SiteCard.svelte b/src/SiteCard.svelte new file mode 100644 index 0000000..5591568 --- /dev/null +++ b/src/SiteCard.svelte @@ -0,0 +1,12 @@ + + +
+ + + +
diff --git a/src/SiteDeck.svelte b/src/SiteDeck.svelte new file mode 100644 index 0000000..0c4ae04 --- /dev/null +++ b/src/SiteDeck.svelte @@ -0,0 +1,13 @@ + + + + + + + diff --git a/src/SiteHead.svelte b/src/SiteHead.svelte new file mode 100644 index 0000000..b72a9fa --- /dev/null +++ b/src/SiteHead.svelte @@ -0,0 +1,39 @@ + + +
+
+

lnurl-pay generator

+

Create lnurl-pay code for sending fiat money to various destinations from Bitcoin Lightning Network. +

+
+
+ +
+
diff --git a/src/Tipped.svelte b/src/Tipped.svelte new file mode 100644 index 0000000..8b77081 --- /dev/null +++ b/src/Tipped.svelte @@ -0,0 +1,9 @@ + + + + + + diff --git a/src/main.js b/src/main.js new file mode 100644 index 0000000..d6cacbb --- /dev/null +++ b/src/main.js @@ -0,0 +1,10 @@ +import App from './App.svelte'; + +const app = new App({ + target: document.body, + props: { + name: 'world' + } +}); + +export default app; \ No newline at end of file diff --git a/src/payflow.js b/src/payflow.js new file mode 100644 index 0000000..61f9070 --- /dev/null +++ b/src/payflow.js @@ -0,0 +1,51 @@ + +import { bech32 } from 'bech32' +import UTF8 from 'utf-8' + +function getDomain(url) { + return url + .split('://')[1] + .split('/')[0] + .split('@') + .slice(-1)[0] + .split(':')[0] +} + +export function decodeLnurl(lnurl) { + let obj = bech32.decode(lnurl,20000) + if (obj.prefix!="lnurl") + throw new Error("bad prefix") + return UTF8.getStringFromBytes(bech32.fromWords(obj.words)) +} + +export async function payStep1(url) { + const r = await fetch(url) + if (r.status >= 300) { + throw new Error(await r.text()) + } + let res = await r.json() + if (res.status == "ERROR") + return res; + if (res.tag != "payRequest") { + throw new Error(`LNURL type ${r.tag}, expected: payRequest`) + } + try { + res.decodedMetadata = JSON.parse(res.metadata) + } catch (err) { + res.decodedMetadata = [] + } + return res +} + +export async function payStep2(url, res, msat, comment) { + let cb = res.callback; + let params = new URLSearchParams(); + params.set("amount",msat); + cb = cb+(cb.includes("?")?"&":"?")+params.toString() + const r = await fetch(cb) + if (r.status >= 300) { + throw new Error(await r.text()) + } + let res2 = await r.json() + return res2 +} diff --git a/src/payways.js b/src/payways.js new file mode 100644 index 0000000..b270af0 --- /dev/null +++ b/src/payways.js @@ -0,0 +1,193 @@ +const masks = { + cc: { + mask: "0000 0000 0000 0000" + }, + telru: { mask: "{+}{7} 000 000-0000" }, + telua: { mask: "{+}{3}{8} {\\0}00 000 0000"}, + tel: { + mask: [ + { + mask: '+00 {21} 0 000 0000', + startsWith: '30', + lazy: false, + country: 'Greece' + }, + { + mask: '+0 000 000 0000', + // startsWith: '77', + lazy: false, + country: 'Kazakhstan' + }, + { + mask: '+0 000 000-0000', + startsWith: '7', + // lazy: false, + country: 'Russia' + }, + { + mask: "+00 000 000-0000", + startsWith: '380', + // lazy: false, + country: 'Ukraine' + }, + { + mask: '+00-0000-000000', + startsWith: '91', + lazy: false, + country: 'India' + }, + { + mask: '+0000000[000000000]', + startsWith: '', + country: 'unknown' + } + ], + dispatch: function (appended, dynamicMasked) { + var number = (dynamicMasked.value + appended).replace(/\D/g,''); + return dynamicMasked.compiledMasks.find(function (m) { + return number.indexOf(m.startsWith) === 0; + }); + } + } +} + +const maskYoo = { + mask:[{mask: "00000000000000[0]",startsWith: '41001'},...masks.tel.mask], + dispatch: masks.tel.dispatch +} + + + +export default [ + {"name":"💳 🇷🇺 RUB ₽ Visa/MC/Mir", + "currency":"RUB", + "min":500, + "max":10000, + "acc":"Card number", + "imask":masks.cc, + "iid":"cc", + "autocomplete":"cc-number", + "id":"card", + "placeholder":"4111 1111 1111 1111", + }, + {"name":"💳 🇺🇦 UAH ₴ Visa/MC", + "currency":"UAH", + "min":10, + "max":5000, + "imask":masks.cc, + "iid":"cc", + "acc":"Card number", + "autocomplete":"cc-number", + "id":"uacard", + "placeholder":"4111 1111 1111 1111", + }, + {"name":"💳 🇰🇿 KZT ₸ Visa/MC", + "currency":"KZT", + "min":500, + "max":50000, + "imask":masks.cc, + "acc":"Card number", + "iid":"cc", + "autocomplete":"cc-number", + "id":"kzcard", + "placeholder":"4111 1111 1111 1111", + }, + {"name":"📱 🇷🇺 RUB ₽ Mobile top-up", + "currency":"RUB", + "min":1, + "max":2000, + "imask":masks.telru, + "acc":"Phone number", + "autocomplete":"tel", + "inputmode":"tel", + "id":"mobile", + "placeholder":"+7 955 555-1234", + }, + {"name":"📱 🇺🇦 UAH ₴ Mobile top-up", + "currency":"UAH", + "min":1, + "max":500, + "imask":masks.telua, + "acc":"Phone number", + "autocomplete":"tel", + "inputmode":"tel", + "id":"uamobile", + "placeholder":"+38 055 555 1234", + }, + {"name":"👛 🇷🇺 RUB ₽ Qiwi", + "imask": masks.tel, + "currency":"RUB", + "min":1, + "max":10000, + "acc":"Wallet (Phone number)", + "autocomplete":"tel", + "inputmode":"tel", + "id":"qiwi", + "placeholder":"+7 955 555-1234", + }, + {"name":"👛 🇷🇺 RUB ₽ YooMoney", + "currency":"RUB", + "min":0.01, + "max":10000, + "acc":"Wallet ID or mobile number", + "autocomplete":"tel", + "id":"yandex", + "imask":maskYoo, + "placeholder":"41001…", + }, + {"name":"🚌 🇷🇺 RUB ₽ Strelka", + "currency":"RUB", + "min":10, + "max":2000, + "imask":{mask:"0000 0000 000"}, + "acc":"Strelka card number", + "id":"strelka", + "placeholder":"0000 0000 000", + }, + {"name":"🌐 🇷🇺 RUB ₽ Flex provider", + "currency":"RUB", + "min":20, + "max":2000, + "acc":"Flex account (NB! not user login)", + "id":"flex", + "imask":{mask:"0[0000000]"}, + }, + {"name":"☎️ 🇺🇸 USD $ Skype account", + "currency":"USD", + "min":0.05, + "max":30, + "acc":"Skype login name", + "id":"skype", + "inputmode":"text", + "imask":{mask:"a[xxxxxxxxxxxxxx]", + definitions:{'a':/[A-Za-z_]/,'x':/[A-Za-z0-9_,\.\-]/}}, + "placeholder":"amazing1337_user", + }, + + {"name":"📞 🇷🇺 RUB ₽ SipNet", + "currency":"RUB", + "min":10, + "max":2000, + "acc":"SIP ID", + "id":"sipnet", + "imask":{mask:"000[000000]"} + }, + {"name":"🌐 🇷🇺 RUB ₽ Spaceweb.ru", + "currency":"RUB", + "min":10, + "max":2000, + "acc":"Login on sweb.ru", + "id":"spaceweb", + "inputmode":"text", + "imask":{mask:"a[xxxxxxxxxxxxxx]", + definitions:{'a':/[A-Za-z_]/,'x':/[A-Za-z0-9_,\.\-]/}}, + }, + {"name":"🚕 🇷🇺 RUB ₽ Taxi Maxim", + "currency":"RUB", + "min":10, + "max":2000, + "imask":{mask:"000[000000]"}, + "acc":"Account number ", + "id":"maxim", + }, +]