From 842a0d4703368cb70584eda6891f6bcf1c8acd7b Mon Sep 17 00:00:00 2001
From: pablof7z
Date: Mon, 5 Jun 2023 10:40:58 +0200
Subject: [PATCH] update
---
package-lock.json | 6316 +++++++++-
package.json | 3 +-
public/bundle.css | 6 +
public/bundle.js | 15092 +++++++++++++++++++++++
public/bundle.js.map | 1 +
src/ZapAmountButton.svelte | 3 +-
src/lib/adapters/index.js | 2 +-
static/favicon.png | Bin 0 -> 1571 bytes
static/public/bundle.css | 6 +
static/public/bundle.js | 21958 ++++++++++++++++++++++++++++++++++
static/public/bundle.js.map | 1 +
11 files changed, 43284 insertions(+), 104 deletions(-)
create mode 100644 public/bundle.css
create mode 100644 public/bundle.js
create mode 100644 public/bundle.js.map
create mode 100644 static/favicon.png
create mode 100644 static/public/bundle.css
create mode 100644 static/public/bundle.js
create mode 100644 static/public/bundle.js.map
diff --git a/package-lock.json b/package-lock.json
index eeb45f3..52169c6 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,14 +1,15 @@
{
"name": "nostri.chat",
- "version": "0.1.2",
+ "version": "0.1.5",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "nostri.chat",
- "version": "0.1.2",
+ "version": "0.1.5",
"dependencies": {
"@nostr-connect/connect": "^0.2.3",
+ "@nostr-dev-kit/ndk": "^0.3.32",
"@rollup/plugin-commonjs": "^24.0.1",
"@rollup/plugin-json": "^6.0.0",
"@rollup/plugin-typescript": "^11.0.0",
@@ -20,7 +21,7 @@
"light-bolt11-decoder": "^3.0.0",
"nostr": "^0.2.7",
"nostr-dev-kit": "file:../../nostr/ndk/nostr-dev-kit",
- "nostr-tools": "^1.2.1",
+ "nostr-tools": "^1.11.1",
"rollup-plugin-css-only": "^4.3.0",
"rollup-plugin-esformatter": "^3.0.0",
"rollup-plugin-livereload": "^2.0.5",
@@ -158,6 +159,494 @@
"node": ">=4"
}
},
+ "node_modules/@esbuild/android-arm": {
+ "version": "0.17.19",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.19.tgz",
+ "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==",
+ "cpu": [
+ "arm"
+ ],
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/android-arm64": {
+ "version": "0.17.19",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz",
+ "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/android-x64": {
+ "version": "0.17.19",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.19.tgz",
+ "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/darwin-arm64": {
+ "version": "0.17.19",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz",
+ "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/darwin-x64": {
+ "version": "0.17.19",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz",
+ "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/freebsd-arm64": {
+ "version": "0.17.19",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz",
+ "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/freebsd-x64": {
+ "version": "0.17.19",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz",
+ "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-arm": {
+ "version": "0.17.19",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz",
+ "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==",
+ "cpu": [
+ "arm"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-arm64": {
+ "version": "0.17.19",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz",
+ "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-ia32": {
+ "version": "0.17.19",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz",
+ "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==",
+ "cpu": [
+ "ia32"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-loong64": {
+ "version": "0.17.19",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz",
+ "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==",
+ "cpu": [
+ "loong64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-mips64el": {
+ "version": "0.17.19",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz",
+ "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==",
+ "cpu": [
+ "mips64el"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-ppc64": {
+ "version": "0.17.19",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz",
+ "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==",
+ "cpu": [
+ "ppc64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-riscv64": {
+ "version": "0.17.19",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz",
+ "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==",
+ "cpu": [
+ "riscv64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-s390x": {
+ "version": "0.17.19",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz",
+ "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==",
+ "cpu": [
+ "s390x"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-x64": {
+ "version": "0.17.19",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz",
+ "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/netbsd-x64": {
+ "version": "0.17.19",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz",
+ "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/openbsd-x64": {
+ "version": "0.17.19",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz",
+ "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/sunos-x64": {
+ "version": "0.17.19",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz",
+ "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "sunos"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/win32-arm64": {
+ "version": "0.17.19",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz",
+ "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/win32-ia32": {
+ "version": "0.17.19",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz",
+ "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==",
+ "cpu": [
+ "ia32"
+ ],
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/win32-x64": {
+ "version": "0.17.19",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz",
+ "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@eslint-community/eslint-utils": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
+ "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
+ "dependencies": {
+ "eslint-visitor-keys": "^3.3.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "peerDependencies": {
+ "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
+ }
+ },
+ "node_modules/@eslint-community/regexpp": {
+ "version": "4.5.1",
+ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz",
+ "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==",
+ "engines": {
+ "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
+ }
+ },
+ "node_modules/@eslint/eslintrc": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.3.tgz",
+ "integrity": "sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==",
+ "dependencies": {
+ "ajv": "^6.12.4",
+ "debug": "^4.3.2",
+ "espree": "^9.5.2",
+ "globals": "^13.19.0",
+ "ignore": "^5.2.0",
+ "import-fresh": "^3.2.1",
+ "js-yaml": "^4.1.0",
+ "minimatch": "^3.1.2",
+ "strip-json-comments": "^3.1.1"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/@eslint/eslintrc/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==",
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/@eslint/eslintrc/node_modules/globals": {
+ "version": "13.20.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz",
+ "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==",
+ "dependencies": {
+ "type-fest": "^0.20.2"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@eslint/eslintrc/node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/@eslint/eslintrc/node_modules/type-fest": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@eslint/js": {
+ "version": "8.42.0",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.42.0.tgz",
+ "integrity": "sha512-6SWlXpWU5AvId8Ac7zjzmIOqMOba/JWY8XZ4A7q7Gn1Vlfg/SFFIlrtHXt9nPn4op9ZPAkl91Jao+QQv3r/ukw==",
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ }
+ },
+ "node_modules/@humanwhocodes/config-array": {
+ "version": "0.11.10",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.10.tgz",
+ "integrity": "sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==",
+ "dependencies": {
+ "@humanwhocodes/object-schema": "^1.2.1",
+ "debug": "^4.1.1",
+ "minimatch": "^3.0.5"
+ },
+ "engines": {
+ "node": ">=10.10.0"
+ }
+ },
+ "node_modules/@humanwhocodes/config-array/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==",
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/@humanwhocodes/config-array/node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/@humanwhocodes/module-importer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
+ "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
+ "engines": {
+ "node": ">=12.22"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/nzakas"
+ }
+ },
+ "node_modules/@humanwhocodes/object-schema": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
+ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA=="
+ },
+ "node_modules/@jest/schemas": {
+ "version": "29.4.3",
+ "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.4.3.tgz",
+ "integrity": "sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==",
+ "dependencies": {
+ "@sinclair/typebox": "^0.25.16"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
"node_modules/@jridgewell/gen-mapping": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
@@ -211,15 +700,24 @@
"@jridgewell/sourcemap-codec": "1.4.14"
}
},
- "node_modules/@noble/hashes": {
+ "node_modules/@noble/curves": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.0.0.tgz",
- "integrity": "sha512-DZVbtY62kc3kkBtMHqwCOfXrT/hnoORy5BJ4+HU1IR59X0KWAOqsfzQPcUl/lQLlG7qXbe/fZ3r/emxtAl+sqg=="
+ "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.0.0.tgz",
+ "integrity": "sha512-2upgEu0iLiDVDZkNLeFV2+ht0BAVgQnEmCk6JsOch9Rp8xfkMCbvbAZlA2pBHQc73dbl+vFOXfqkf4uemdn0bw==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
+ }
+ ],
+ "dependencies": {
+ "@noble/hashes": "1.3.0"
+ }
},
- "node_modules/@noble/secp256k1": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz",
- "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==",
+ "node_modules/@noble/hashes": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.0.tgz",
+ "integrity": "sha512-ilHEACi9DwqJB0pw7kv+Apvh50jiiSyR/cQ3y4W7lOR5mhvn/50FLUfsnfJz0BDZtl/RR16kXvptiv6q1msYZg==",
"funding": [
{
"type": "individual",
@@ -274,6 +772,79 @@
"react": ">=16"
}
},
+ "node_modules/@nostr-dev-kit/ndk": {
+ "version": "0.3.32",
+ "resolved": "https://registry.npmjs.org/@nostr-dev-kit/ndk/-/ndk-0.3.32.tgz",
+ "integrity": "sha512-f6fttPt6rRFNM0JV+atNZudz3MUpS4cZtPHZv8DQOXgfEOzjJCG5yOl0n9AUTsPYQirsGq3glW/gZs/LkxrP8g==",
+ "dependencies": {
+ "@noble/secp256k1": "^2.0.0",
+ "@scure/base": "^1.1.1",
+ "@typescript-eslint/eslint-plugin": "^5.57.0",
+ "@typescript-eslint/parser": "^5.57.0",
+ "debug": "^4.3.4",
+ "esbuild": "^0.17.15",
+ "esbuild-plugin-alias": "^0.2.1",
+ "eslint": "^8.37.0",
+ "eslint-config-prettier": "^8.8.0",
+ "eslint-plugin-import": "^2.27.5",
+ "esm-loader-typescript": "^1.0.4",
+ "eventemitter3": "^5.0.0",
+ "light-bolt11-decoder": "^3.0.0",
+ "node-fetch": "^3.3.1",
+ "nostr-tools": "^1.11.1",
+ "tsd": "^0.28.1",
+ "typedoc": "^0.24.6",
+ "utf8-buffer": "^1.0.0",
+ "websocket-polyfill": "^0.0.3"
+ }
+ },
+ "node_modules/@nostr-dev-kit/ndk/node_modules/@noble/secp256k1": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-2.0.0.tgz",
+ "integrity": "sha512-rUGBd95e2a45rlmFTqQJYEFA4/gdIARFfuTuTqLglz0PZ6AKyzyXsEZZq7UZn8hZsvaBgpCzKKBJizT2cJERXw==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
+ }
+ ]
+ },
+ "node_modules/@nostr-dev-kit/ndk/node_modules/esbuild": {
+ "version": "0.17.19",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.19.tgz",
+ "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==",
+ "hasInstallScript": true,
+ "bin": {
+ "esbuild": "bin/esbuild"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "optionalDependencies": {
+ "@esbuild/android-arm": "0.17.19",
+ "@esbuild/android-arm64": "0.17.19",
+ "@esbuild/android-x64": "0.17.19",
+ "@esbuild/darwin-arm64": "0.17.19",
+ "@esbuild/darwin-x64": "0.17.19",
+ "@esbuild/freebsd-arm64": "0.17.19",
+ "@esbuild/freebsd-x64": "0.17.19",
+ "@esbuild/linux-arm": "0.17.19",
+ "@esbuild/linux-arm64": "0.17.19",
+ "@esbuild/linux-ia32": "0.17.19",
+ "@esbuild/linux-loong64": "0.17.19",
+ "@esbuild/linux-mips64el": "0.17.19",
+ "@esbuild/linux-ppc64": "0.17.19",
+ "@esbuild/linux-riscv64": "0.17.19",
+ "@esbuild/linux-s390x": "0.17.19",
+ "@esbuild/linux-x64": "0.17.19",
+ "@esbuild/netbsd-x64": "0.17.19",
+ "@esbuild/openbsd-x64": "0.17.19",
+ "@esbuild/sunos-x64": "0.17.19",
+ "@esbuild/win32-arm64": "0.17.19",
+ "@esbuild/win32-ia32": "0.17.19",
+ "@esbuild/win32-x64": "0.17.19"
+ }
+ },
"node_modules/@polka/url": {
"version": "1.0.0-next.21",
"resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz",
@@ -415,9 +986,9 @@
]
},
"node_modules/@scure/bip32": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.1.5.tgz",
- "integrity": "sha512-XyNh1rB0SkEqd3tXcXMi+Xe1fvg+kUIcoRIEujP1Jgv7DqW2r9lg3Ah0NkFaCs9sTkQAQA8kw7xiRXzENi9Rtw==",
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.3.0.tgz",
+ "integrity": "sha512-bcKpo1oj54hGholplGLpqPHRbIsnbixFtc06nwuNM5/dwSXOq/AAYoIBRsBmnZJSdfeNW5rnff7NTAz3ZCqR9Q==",
"funding": [
{
"type": "individual",
@@ -425,26 +996,15 @@
}
],
"dependencies": {
- "@noble/hashes": "~1.2.0",
- "@noble/secp256k1": "~1.7.0",
+ "@noble/curves": "~1.0.0",
+ "@noble/hashes": "~1.3.0",
"@scure/base": "~1.1.0"
}
},
- "node_modules/@scure/bip32/node_modules/@noble/hashes": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.2.0.tgz",
- "integrity": "sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==",
- "funding": [
- {
- "type": "individual",
- "url": "https://paulmillr.com/funding/"
- }
- ]
- },
"node_modules/@scure/bip39": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.1.tgz",
- "integrity": "sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.2.0.tgz",
+ "integrity": "sha512-SX/uKq52cuxm4YFXWFaVByaSHJh2w3BnokVSeUJVCv6K7WulT9u2BuNRBhuFl8vAuYnzx9bEu9WgpcNYTrYieg==",
"funding": [
{
"type": "individual",
@@ -452,20 +1012,14 @@
}
],
"dependencies": {
- "@noble/hashes": "~1.2.0",
+ "@noble/hashes": "~1.3.0",
"@scure/base": "~1.1.0"
}
},
- "node_modules/@scure/bip39/node_modules/@noble/hashes": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.2.0.tgz",
- "integrity": "sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==",
- "funding": [
- {
- "type": "individual",
- "url": "https://paulmillr.com/funding/"
- }
- ]
+ "node_modules/@sinclair/typebox": {
+ "version": "0.25.24",
+ "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.24.tgz",
+ "integrity": "sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ=="
},
"node_modules/@sveltejs/adapter-auto": {
"version": "1.0.2",
@@ -625,6 +1179,11 @@
"node": ">=10.13.0"
}
},
+ "node_modules/@tsd/typescript": {
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/@tsd/typescript/-/typescript-5.0.4.tgz",
+ "integrity": "sha512-YQi2lvZSI+xidKeUjlbv6b6Zw7qB3aXHw5oGJLs5OOGAEqKIOvz5UIAkWyg0bJbkSUWPBEtaOHpVxU4EYBO1Jg=="
+ },
"node_modules/@types/chrome": {
"version": "0.0.74",
"resolved": "https://registry.npmjs.org/@types/chrome/-/chrome-0.0.74.tgz",
@@ -639,6 +1198,15 @@
"integrity": "sha512-COUnqfB2+ckwXXSFInsFdOAWQzCCx+a5hq2ruyj+Vjund94RJQd4LG2u9hnvJrTgunKAaax7ancBYlDrNYxA0g==",
"license": "MIT"
},
+ "node_modules/@types/eslint": {
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.29.0.tgz",
+ "integrity": "sha512-VNcvioYDH8/FxaeTKkM4/TiTwt6pBV9E3OfGmvaw8tPl0rrHCJ4Ll15HRT+pMiFAf/MLQvAzC+6RzUMEL9Ceng==",
+ "dependencies": {
+ "@types/estree": "*",
+ "@types/json-schema": "*"
+ }
+ },
"node_modules/@types/estree": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz",
@@ -657,11 +1225,31 @@
"resolved": "https://registry.npmjs.org/@types/filewriter/-/filewriter-0.0.29.tgz",
"integrity": "sha512-BsPXH/irW0ht0Ji6iw/jJaK8Lj3FJemon2gvEqHKpCdDCeemHa+rI3WBGq5z7cDMZgoLjY40oninGxqk+8NzNQ=="
},
+ "node_modules/@types/json-schema": {
+ "version": "7.0.12",
+ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz",
+ "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA=="
+ },
+ "node_modules/@types/json5": {
+ "version": "0.0.29",
+ "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
+ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ=="
+ },
+ "node_modules/@types/minimist": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz",
+ "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ=="
+ },
"node_modules/@types/node": {
"version": "18.11.18",
"resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz",
"integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA=="
},
+ "node_modules/@types/normalize-package-data": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz",
+ "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw=="
+ },
"node_modules/@types/pug": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/@types/pug/-/pug-2.0.6.tgz",
@@ -680,6 +1268,233 @@
"@types/node": "*"
}
},
+ "node_modules/@types/semver": {
+ "version": "7.5.0",
+ "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz",
+ "integrity": "sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw=="
+ },
+ "node_modules/@typescript-eslint/eslint-plugin": {
+ "version": "5.59.8",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.8.tgz",
+ "integrity": "sha512-JDMOmhXteJ4WVKOiHXGCoB96ADWg9q7efPWHRViT/f09bA8XOMLAVHHju3l0MkZnG1izaWXYmgvQcUjTRcpShQ==",
+ "dependencies": {
+ "@eslint-community/regexpp": "^4.4.0",
+ "@typescript-eslint/scope-manager": "5.59.8",
+ "@typescript-eslint/type-utils": "5.59.8",
+ "@typescript-eslint/utils": "5.59.8",
+ "debug": "^4.3.4",
+ "grapheme-splitter": "^1.0.4",
+ "ignore": "^5.2.0",
+ "natural-compare-lite": "^1.4.0",
+ "semver": "^7.3.7",
+ "tsutils": "^3.21.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "@typescript-eslint/parser": "^5.0.0",
+ "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": {
+ "version": "7.5.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz",
+ "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@typescript-eslint/parser": {
+ "version": "5.59.8",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.8.tgz",
+ "integrity": "sha512-AnR19RjJcpjoeGojmwZtCwBX/RidqDZtzcbG3xHrmz0aHHoOcbWnpDllenRDmDvsV0RQ6+tbb09/kyc+UT9Orw==",
+ "dependencies": {
+ "@typescript-eslint/scope-manager": "5.59.8",
+ "@typescript-eslint/types": "5.59.8",
+ "@typescript-eslint/typescript-estree": "5.59.8",
+ "debug": "^4.3.4"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/scope-manager": {
+ "version": "5.59.8",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.8.tgz",
+ "integrity": "sha512-/w08ndCYI8gxGf+9zKf1vtx/16y8MHrZs5/tnjHhMLNSixuNcJavSX4wAiPf4aS5x41Es9YPCn44MIe4cxIlig==",
+ "dependencies": {
+ "@typescript-eslint/types": "5.59.8",
+ "@typescript-eslint/visitor-keys": "5.59.8"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/type-utils": {
+ "version": "5.59.8",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.8.tgz",
+ "integrity": "sha512-+5M518uEIHFBy3FnyqZUF3BMP+AXnYn4oyH8RF012+e7/msMY98FhGL5SrN29NQ9xDgvqCgYnsOiKp1VjZ/fpA==",
+ "dependencies": {
+ "@typescript-eslint/typescript-estree": "5.59.8",
+ "@typescript-eslint/utils": "5.59.8",
+ "debug": "^4.3.4",
+ "tsutils": "^3.21.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "*"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/types": {
+ "version": "5.59.8",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.8.tgz",
+ "integrity": "sha512-+uWuOhBTj/L6awoWIg0BlWy0u9TyFpCHrAuQ5bNfxDaZ1Ppb3mx6tUigc74LHcbHpOHuOTOJrBoAnhdHdaea1w==",
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/typescript-estree": {
+ "version": "5.59.8",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.8.tgz",
+ "integrity": "sha512-Jy/lPSDJGNow14vYu6IrW790p7HIf/SOV1Bb6lZ7NUkLc2iB2Z9elESmsaUtLw8kVqogSbtLH9tut5GCX1RLDg==",
+ "dependencies": {
+ "@typescript-eslint/types": "5.59.8",
+ "@typescript-eslint/visitor-keys": "5.59.8",
+ "debug": "^4.3.4",
+ "globby": "^11.1.0",
+ "is-glob": "^4.0.3",
+ "semver": "^7.3.7",
+ "tsutils": "^3.21.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": {
+ "version": "7.5.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz",
+ "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@typescript-eslint/utils": {
+ "version": "5.59.8",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.8.tgz",
+ "integrity": "sha512-Tr65630KysnNn9f9G7ROF3w1b5/7f6QVCJ+WK9nhIocWmx9F+TmCAcglF26Vm7z8KCTwoKcNEBZrhlklla3CKg==",
+ "dependencies": {
+ "@eslint-community/eslint-utils": "^4.2.0",
+ "@types/json-schema": "^7.0.9",
+ "@types/semver": "^7.3.12",
+ "@typescript-eslint/scope-manager": "5.59.8",
+ "@typescript-eslint/types": "5.59.8",
+ "@typescript-eslint/typescript-estree": "5.59.8",
+ "eslint-scope": "^5.1.1",
+ "semver": "^7.3.7"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ }
+ },
+ "node_modules/@typescript-eslint/utils/node_modules/semver": {
+ "version": "7.5.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz",
+ "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@typescript-eslint/visitor-keys": {
+ "version": "5.59.8",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.8.tgz",
+ "integrity": "sha512-pJhi2ms0x0xgloT7xYabil3SGGlojNNKjK/q6dB3Ey0uJLMjK2UDGJvHieiyJVW/7C3KI+Z4Q3pEHkm4ejA+xQ==",
+ "dependencies": {
+ "@typescript-eslint/types": "5.59.8",
+ "eslint-visitor-keys": "^3.3.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
"node_modules/acorn": {
"version": "7.4.1",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
@@ -691,6 +1506,14 @@
"node": ">=0.4.0"
}
},
+ "node_modules/acorn-jsx": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
+ "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
+ "peerDependencies": {
+ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ }
+ },
"node_modules/acorn-node": {
"version": "1.8.2",
"resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz",
@@ -714,6 +1537,35 @@
"node": ">=0.4.0"
}
},
+ "node_modules/ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
+ "node_modules/ansi-escapes": {
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
+ "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
+ "dependencies": {
+ "type-fest": "^0.21.3"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/ansi-regex": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
@@ -722,6 +1574,11 @@
"node": ">=0.10.0"
}
},
+ "node_modules/ansi-sequence-parser": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-sequence-parser/-/ansi-sequence-parser-1.1.0.tgz",
+ "integrity": "sha512-lEm8mt52to2fT8GhciPCGeCXACSz2UwIN4X2e2LJSnZ5uAbn2/dsYdOmUXq0AtWS5cpAupysIneExOgH0Vd2TQ=="
+ },
"node_modules/ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
@@ -754,6 +1611,91 @@
"resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
"integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg=="
},
+ "node_modules/argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
+ },
+ "node_modules/array-buffer-byte-length": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz",
+ "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "is-array-buffer": "^3.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/array-includes": {
+ "version": "3.1.6",
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz",
+ "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4",
+ "get-intrinsic": "^1.1.3",
+ "is-string": "^1.0.7"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/array-union": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
+ "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/array.prototype.flat": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz",
+ "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4",
+ "es-shim-unscopables": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/array.prototype.flatmap": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz",
+ "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4",
+ "es-shim-unscopables": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/arrify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
+ "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/autoprefixer": {
"version": "10.4.13",
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz",
@@ -787,6 +1729,17 @@
"postcss": "^8.1.0"
}
},
+ "node_modules/available-typed-arrays": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz",
+ "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/babel-code-frame": {
"version": "6.26.0",
"resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
@@ -1011,6 +1964,34 @@
"node": ">=10.16.0"
}
},
+ "node_modules/call-bind": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
+ "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
+ "dependencies": {
+ "function-bind": "^1.1.1",
+ "get-intrinsic": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/callsites": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/camelcase-css": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
@@ -1019,6 +2000,30 @@
"node": ">= 6"
}
},
+ "node_modules/camelcase-keys": {
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz",
+ "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==",
+ "dependencies": {
+ "camelcase": "^5.3.1",
+ "map-obj": "^4.0.0",
+ "quick-lru": "^4.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/camelcase-keys/node_modules/quick-lru": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz",
+ "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/caniuse-api": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz",
@@ -1159,6 +2164,58 @@
"deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.",
"hasInstallScript": true
},
+ "node_modules/create-esm-loader": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/create-esm-loader/-/create-esm-loader-0.2.3.tgz",
+ "integrity": "sha512-cllzD6IU/mzXBs5OdQVWL3+ne5Elpu3Wdm7h5OldMbGXk76yr9XzHlQXWJ4zfs0ZAibe26rkbs4KvMAJm7fIZA==",
+ "dependencies": {
+ "semver": "^7.3.5"
+ },
+ "engines": {
+ "node": ">=14.x"
+ }
+ },
+ "node_modules/create-esm-loader/node_modules/semver": {
+ "version": "7.5.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz",
+ "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/cross-spawn": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
+ "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+ "dependencies": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/cross-spawn/node_modules/which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "node-which": "bin/node-which"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
"node_modules/css-declaration-sorter": {
"version": "6.3.1",
"resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.3.1.tgz",
@@ -1312,6 +2369,14 @@
"type": "^1.0.1"
}
},
+ "node_modules/data-uri-to-buffer": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz",
+ "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==",
+ "engines": {
+ "node": ">= 12"
+ }
+ },
"node_modules/debug": {
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
@@ -1328,6 +2393,37 @@
}
}
},
+ "node_modules/decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/decamelize-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz",
+ "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==",
+ "dependencies": {
+ "decamelize": "^1.1.0",
+ "map-obj": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/decamelize-keys/node_modules/map-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
+ "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/dedent-js": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/dedent-js/-/dedent-js-1.0.1.tgz",
@@ -1335,6 +2431,11 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/deep-is": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
+ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="
+ },
"node_modules/deepmerge": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.0.tgz",
@@ -1344,6 +2445,21 @@
"node": ">=0.10.0"
}
},
+ "node_modules/define-properties": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz",
+ "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==",
+ "dependencies": {
+ "has-property-descriptors": "^1.0.0",
+ "object-keys": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/defined": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz",
@@ -1394,6 +2510,25 @@
"node": ">=0.3.1"
}
},
+ "node_modules/diff-sequences": {
+ "version": "29.4.3",
+ "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.4.3.tgz",
+ "integrity": "sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==",
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/dir-glob": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
+ "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
+ "dependencies": {
+ "path-type": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/disparity": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/disparity/-/disparity-3.2.0.tgz",
@@ -1422,6 +2557,17 @@
"resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
"integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA=="
},
+ "node_modules/doctrine": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
+ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+ "dependencies": {
+ "esutils": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
"node_modules/dom-serializer": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
@@ -1491,6 +2637,98 @@
"url": "https://github.com/fb55/entities?sponsor=1"
}
},
+ "node_modules/error-ex": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
+ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+ "dependencies": {
+ "is-arrayish": "^0.2.1"
+ }
+ },
+ "node_modules/es-abstract": {
+ "version": "1.21.2",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.2.tgz",
+ "integrity": "sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==",
+ "dependencies": {
+ "array-buffer-byte-length": "^1.0.0",
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.2",
+ "es-set-tostringtag": "^2.0.1",
+ "es-to-primitive": "^1.2.1",
+ "function.prototype.name": "^1.1.5",
+ "get-intrinsic": "^1.2.0",
+ "get-symbol-description": "^1.0.0",
+ "globalthis": "^1.0.3",
+ "gopd": "^1.0.1",
+ "has": "^1.0.3",
+ "has-property-descriptors": "^1.0.0",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "internal-slot": "^1.0.5",
+ "is-array-buffer": "^3.0.2",
+ "is-callable": "^1.2.7",
+ "is-negative-zero": "^2.0.2",
+ "is-regex": "^1.1.4",
+ "is-shared-array-buffer": "^1.0.2",
+ "is-string": "^1.0.7",
+ "is-typed-array": "^1.1.10",
+ "is-weakref": "^1.0.2",
+ "object-inspect": "^1.12.3",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.4",
+ "regexp.prototype.flags": "^1.4.3",
+ "safe-regex-test": "^1.0.0",
+ "string.prototype.trim": "^1.2.7",
+ "string.prototype.trimend": "^1.0.6",
+ "string.prototype.trimstart": "^1.0.6",
+ "typed-array-length": "^1.0.4",
+ "unbox-primitive": "^1.0.2",
+ "which-typed-array": "^1.1.9"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/es-set-tostringtag": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz",
+ "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==",
+ "dependencies": {
+ "get-intrinsic": "^1.1.3",
+ "has": "^1.0.3",
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-shim-unscopables": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz",
+ "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==",
+ "dependencies": {
+ "has": "^1.0.3"
+ }
+ },
+ "node_modules/es-to-primitive": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
+ "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+ "dependencies": {
+ "is-callable": "^1.1.4",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/es5-ext": {
"version": "0.10.62",
"resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz",
@@ -1564,6 +2802,11 @@
"@esbuild/win32-x64": "0.16.17"
}
},
+ "node_modules/esbuild-plugin-alias": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/esbuild-plugin-alias/-/esbuild-plugin-alias-0.2.1.tgz",
+ "integrity": "sha512-jyfL/pwPqaFXyKnj8lP8iLk6Z0m099uXR45aSN8Av1XD4vhvQutxxPzgA2bTcAwQpa1zCXDcWOlhFgyP3GKqhQ=="
+ },
"node_modules/esbuild/node_modules/@esbuild/android-arm": {
"version": "0.16.17",
"resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.16.17.tgz",
@@ -1994,12 +3237,417 @@
"node": "*"
}
},
+ "node_modules/eslint": {
+ "version": "8.42.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.42.0.tgz",
+ "integrity": "sha512-ulg9Ms6E1WPf67PHaEY4/6E2tEn5/f7FXGzr3t9cBMugOmf1INYvuUwwh1aXQN4MfJ6a5K2iNwP3w4AColvI9A==",
+ "dependencies": {
+ "@eslint-community/eslint-utils": "^4.2.0",
+ "@eslint-community/regexpp": "^4.4.0",
+ "@eslint/eslintrc": "^2.0.3",
+ "@eslint/js": "8.42.0",
+ "@humanwhocodes/config-array": "^0.11.10",
+ "@humanwhocodes/module-importer": "^1.0.1",
+ "@nodelib/fs.walk": "^1.2.8",
+ "ajv": "^6.10.0",
+ "chalk": "^4.0.0",
+ "cross-spawn": "^7.0.2",
+ "debug": "^4.3.2",
+ "doctrine": "^3.0.0",
+ "escape-string-regexp": "^4.0.0",
+ "eslint-scope": "^7.2.0",
+ "eslint-visitor-keys": "^3.4.1",
+ "espree": "^9.5.2",
+ "esquery": "^1.4.2",
+ "esutils": "^2.0.2",
+ "fast-deep-equal": "^3.1.3",
+ "file-entry-cache": "^6.0.1",
+ "find-up": "^5.0.0",
+ "glob-parent": "^6.0.2",
+ "globals": "^13.19.0",
+ "graphemer": "^1.4.0",
+ "ignore": "^5.2.0",
+ "import-fresh": "^3.0.0",
+ "imurmurhash": "^0.1.4",
+ "is-glob": "^4.0.0",
+ "is-path-inside": "^3.0.3",
+ "js-yaml": "^4.1.0",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.4.1",
+ "lodash.merge": "^4.6.2",
+ "minimatch": "^3.1.2",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.9.1",
+ "strip-ansi": "^6.0.1",
+ "strip-json-comments": "^3.1.0",
+ "text-table": "^0.2.0"
+ },
+ "bin": {
+ "eslint": "bin/eslint.js"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint-config-prettier": {
+ "version": "8.8.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz",
+ "integrity": "sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==",
+ "bin": {
+ "eslint-config-prettier": "bin/cli.js"
+ },
+ "peerDependencies": {
+ "eslint": ">=7.0.0"
+ }
+ },
+ "node_modules/eslint-formatter-pretty": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-formatter-pretty/-/eslint-formatter-pretty-4.1.0.tgz",
+ "integrity": "sha512-IsUTtGxF1hrH6lMWiSl1WbGaiP01eT6kzywdY1U+zLc0MP+nwEnUiS9UI8IaOTUhTeQJLlCEWIbXINBH4YJbBQ==",
+ "dependencies": {
+ "@types/eslint": "^7.2.13",
+ "ansi-escapes": "^4.2.1",
+ "chalk": "^4.1.0",
+ "eslint-rule-docs": "^1.1.5",
+ "log-symbols": "^4.0.0",
+ "plur": "^4.0.0",
+ "string-width": "^4.2.0",
+ "supports-hyperlinks": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint-import-resolver-node": {
+ "version": "0.3.7",
+ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz",
+ "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==",
+ "dependencies": {
+ "debug": "^3.2.7",
+ "is-core-module": "^2.11.0",
+ "resolve": "^1.22.1"
+ }
+ },
+ "node_modules/eslint-import-resolver-node/node_modules/debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "dependencies": {
+ "ms": "^2.1.1"
+ }
+ },
+ "node_modules/eslint-module-utils": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz",
+ "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==",
+ "dependencies": {
+ "debug": "^3.2.7"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "peerDependenciesMeta": {
+ "eslint": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/eslint-module-utils/node_modules/debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "dependencies": {
+ "ms": "^2.1.1"
+ }
+ },
+ "node_modules/eslint-plugin-import": {
+ "version": "2.27.5",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz",
+ "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==",
+ "dependencies": {
+ "array-includes": "^3.1.6",
+ "array.prototype.flat": "^1.3.1",
+ "array.prototype.flatmap": "^1.3.1",
+ "debug": "^3.2.7",
+ "doctrine": "^2.1.0",
+ "eslint-import-resolver-node": "^0.3.7",
+ "eslint-module-utils": "^2.7.4",
+ "has": "^1.0.3",
+ "is-core-module": "^2.11.0",
+ "is-glob": "^4.0.3",
+ "minimatch": "^3.1.2",
+ "object.values": "^1.1.6",
+ "resolve": "^1.22.1",
+ "semver": "^6.3.0",
+ "tsconfig-paths": "^3.14.1"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "peerDependencies": {
+ "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8"
+ }
+ },
+ "node_modules/eslint-plugin-import/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==",
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/eslint-plugin-import/node_modules/debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "dependencies": {
+ "ms": "^2.1.1"
+ }
+ },
+ "node_modules/eslint-plugin-import/node_modules/doctrine": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
+ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
+ "dependencies": {
+ "esutils": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/eslint-plugin-import/node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/eslint-plugin-import/node_modules/semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/eslint-rule-docs": {
+ "version": "1.1.235",
+ "resolved": "https://registry.npmjs.org/eslint-rule-docs/-/eslint-rule-docs-1.1.235.tgz",
+ "integrity": "sha512-+TQ+x4JdTnDoFEXXb3fDvfGOwnyNV7duH8fXWTPD1ieaBmB8omj7Gw/pMBBu4uI2uJCCU8APDaQJzWuXnTsH4A=="
+ },
+ "node_modules/eslint-scope": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
+ "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
+ "dependencies": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^4.1.1"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/eslint-visitor-keys": {
+ "version": "3.4.1",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz",
+ "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==",
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/eslint/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==",
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/eslint/node_modules/escape-string-regexp": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint/node_modules/eslint-scope": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz",
+ "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==",
+ "dependencies": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^5.2.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint/node_modules/estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/eslint/node_modules/glob-parent": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
+ "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
+ "dependencies": {
+ "is-glob": "^4.0.3"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/eslint/node_modules/globals": {
+ "version": "13.20.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz",
+ "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==",
+ "dependencies": {
+ "type-fest": "^0.20.2"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint/node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/eslint/node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/eslint/node_modules/type-fest": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/esm-env": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.0.0.tgz",
"integrity": "sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==",
"license": "MIT"
},
+ "node_modules/esm-loader-typescript": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/esm-loader-typescript/-/esm-loader-typescript-1.0.4.tgz",
+ "integrity": "sha512-ejo2f+NKIt23jaJKVpjcRQC0xTa6cTqt6VA+z8Ef/A/TCjQ5u7opPO1J4fJFeTiiHEo8JqU92EG4I1KwuXYZMg==",
+ "dependencies": {
+ "create-esm-loader": "^0.2.3",
+ "npm-run-all": "^4.1.5",
+ "semver": "^7.3.8",
+ "typescript": "^5.0.2"
+ }
+ },
+ "node_modules/esm-loader-typescript/node_modules/semver": {
+ "version": "7.5.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz",
+ "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/esm-loader-typescript/node_modules/typescript": {
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.3.tgz",
+ "integrity": "sha512-XH627E9vkeqhlZFQuL+UsyAXEnibT0kWR2FWONlr4sTjvxyJYnyefgrkyECLzM5NenmKzRAy2rR/OlYLA1HkZw==",
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=14.17"
+ }
+ },
+ "node_modules/espree": {
+ "version": "9.5.2",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.2.tgz",
+ "integrity": "sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==",
+ "dependencies": {
+ "acorn": "^8.8.0",
+ "acorn-jsx": "^5.3.2",
+ "eslint-visitor-keys": "^3.4.1"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/espree/node_modules/acorn": {
+ "version": "8.8.2",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz",
+ "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==",
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
"node_modules/esprima": {
"version": "2.7.3",
"resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
@@ -2012,6 +3660,52 @@
"node": ">=0.10.0"
}
},
+ "node_modules/esquery": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz",
+ "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==",
+ "dependencies": {
+ "estraverse": "^5.1.0"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/esquery/node_modules/estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/esrecurse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
+ "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
+ "dependencies": {
+ "estraverse": "^5.2.0"
+ },
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/esrecurse/node_modules/estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/estraverse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
"node_modules/estree-walker": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz",
@@ -2051,6 +3745,11 @@
"resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz",
"integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw=="
},
+ "node_modules/fast-deep-equal": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
+ },
"node_modules/fast-glob": {
"version": "3.2.12",
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz",
@@ -2066,6 +3765,16 @@
"node": ">=8.6.0"
}
},
+ "node_modules/fast-json-stable-stringify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
+ },
+ "node_modules/fast-levenshtein": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="
+ },
"node_modules/fastq": {
"version": "1.15.0",
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz",
@@ -2074,6 +3783,39 @@
"reusify": "^1.0.4"
}
},
+ "node_modules/fetch-blob": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz",
+ "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/jimmywarting"
+ },
+ {
+ "type": "paypal",
+ "url": "https://paypal.me/jimmywarting"
+ }
+ ],
+ "dependencies": {
+ "node-domexception": "^1.0.0",
+ "web-streams-polyfill": "^3.0.3"
+ },
+ "engines": {
+ "node": "^12.20 || >= 14.13"
+ }
+ },
+ "node_modules/file-entry-cache": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
+ "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
+ "dependencies": {
+ "flat-cache": "^3.0.4"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ }
+ },
"node_modules/fill-range": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
@@ -2086,6 +3828,110 @@
"node": ">=8"
}
},
+ "node_modules/find-up": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
+ "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
+ "dependencies": {
+ "locate-path": "^6.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/flat-cache": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
+ "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
+ "dependencies": {
+ "flatted": "^3.1.0",
+ "rimraf": "^3.0.2"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ }
+ },
+ "node_modules/flat-cache/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==",
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/flat-cache/node_modules/glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/flat-cache/node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/flat-cache/node_modules/rimraf": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/flatted": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz",
+ "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ=="
+ },
+ "node_modules/for-each": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
+ "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
+ "dependencies": {
+ "is-callable": "^1.1.3"
+ }
+ },
+ "node_modules/formdata-polyfill": {
+ "version": "4.0.10",
+ "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz",
+ "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==",
+ "dependencies": {
+ "fetch-blob": "^3.1.2"
+ },
+ "engines": {
+ "node": ">=12.20.0"
+ }
+ },
"node_modules/fraction.js": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz",
@@ -2123,6 +3969,31 @@
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
"license": "MIT"
},
+ "node_modules/function.prototype.name": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz",
+ "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.19.0",
+ "functions-have-names": "^1.2.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/functions-have-names": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
+ "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/generic-names": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/generic-names/-/generic-names-4.0.0.tgz",
@@ -2131,6 +4002,20 @@
"loader-utils": "^3.2.0"
}
},
+ "node_modules/get-intrinsic": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz",
+ "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==",
+ "dependencies": {
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/get-port": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz",
@@ -2140,6 +4025,21 @@
"node": ">=4"
}
},
+ "node_modules/get-symbol-description": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz",
+ "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/glob": {
"version": "8.1.0",
"resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz",
@@ -2178,23 +4078,85 @@
"node": ">=0.10.0"
}
},
+ "node_modules/globalthis": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz",
+ "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==",
+ "dependencies": {
+ "define-properties": "^1.1.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/globalyzer": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz",
"integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==",
"license": "MIT"
},
+ "node_modules/globby": {
+ "version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
+ "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
+ "dependencies": {
+ "array-union": "^2.1.0",
+ "dir-glob": "^3.0.1",
+ "fast-glob": "^3.2.9",
+ "ignore": "^5.2.0",
+ "merge2": "^1.4.1",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/globrex": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz",
"integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==",
"license": "MIT"
},
+ "node_modules/gopd": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
+ "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
+ "dependencies": {
+ "get-intrinsic": "^1.1.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/graceful-fs": {
"version": "4.2.10",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
"integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA=="
},
+ "node_modules/grapheme-splitter": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz",
+ "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ=="
+ },
+ "node_modules/graphemer": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
+ "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag=="
+ },
+ "node_modules/hard-rejection": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz",
+ "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/has": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
@@ -2218,6 +4180,14 @@
"node": ">=0.10.0"
}
},
+ "node_modules/has-bigints": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz",
+ "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
@@ -2226,6 +4196,58 @@
"node": ">=8"
}
},
+ "node_modules/has-property-descriptors": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz",
+ "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==",
+ "dependencies": {
+ "get-intrinsic": "^1.1.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-proto": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz",
+ "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-symbols": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
+ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-tostringtag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
+ "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
+ "dependencies": {
+ "has-symbols": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/hosted-git-info": {
+ "version": "2.8.9",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
+ "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw=="
+ },
"node_modules/icss-replace-symbols": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz",
@@ -2242,6 +4264,14 @@
"postcss": "^8.1.0"
}
},
+ "node_modules/ignore": {
+ "version": "5.2.4",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz",
+ "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==",
+ "engines": {
+ "node": ">= 4"
+ }
+ },
"node_modules/import-cwd": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-3.0.0.tgz",
@@ -2253,6 +4283,29 @@
"node": ">=8"
}
},
+ "node_modules/import-fresh": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
+ "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
+ "dependencies": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/import-fresh/node_modules/resolve-from": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/import-from": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/import-from/-/import-from-3.0.0.tgz",
@@ -2275,6 +4328,22 @@
"url": "https://github.com/sponsors/wooorm"
}
},
+ "node_modules/imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
+ "engines": {
+ "node": ">=0.8.19"
+ }
+ },
+ "node_modules/indent-string": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
+ "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/inflight": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
@@ -2289,6 +4358,19 @@
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
},
+ "node_modules/internal-slot": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz",
+ "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==",
+ "dependencies": {
+ "get-intrinsic": "^1.2.0",
+ "has": "^1.0.3",
+ "side-channel": "^1.0.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
"node_modules/invariant": {
"version": "2.2.4",
"resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
@@ -2297,6 +4379,43 @@
"loose-envify": "^1.0.0"
}
},
+ "node_modules/irregular-plurals": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-3.5.0.tgz",
+ "integrity": "sha512-1ANGLZ+Nkv1ptFb2pa8oG8Lem4krflKuX/gINiHJHjJUKaJHk/SXk5x6K3J+39/p0h1RQ2saROclJJ+QLvETCQ==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-array-buffer": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz",
+ "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.2.0",
+ "is-typed-array": "^1.1.10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg=="
+ },
+ "node_modules/is-bigint": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
+ "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
+ "dependencies": {
+ "has-bigints": "^1.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/is-binary-path": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
@@ -2309,6 +4428,21 @@
"node": ">=8"
}
},
+ "node_modules/is-boolean-object": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz",
+ "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/is-builtin-module": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz",
@@ -2323,6 +4457,17 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/is-callable": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
+ "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/is-core-module": {
"version": "2.11.0",
"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz",
@@ -2335,6 +4480,20 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/is-date-object": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
+ "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
+ "dependencies": {
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "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",
@@ -2344,6 +4503,14 @@
"node": ">=0.10.0"
}
},
+ "node_modules/is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/is-glob": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
@@ -2361,6 +4528,17 @@
"resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz",
"integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g=="
},
+ "node_modules/is-negative-zero": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz",
+ "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/is-number": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
@@ -2370,6 +4548,36 @@
"node": ">=0.12.0"
}
},
+ "node_modules/is-number-object": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz",
+ "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==",
+ "dependencies": {
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-path-inside": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
+ "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-plain-obj": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
+ "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/is-reference": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz",
@@ -2378,16 +4586,132 @@
"@types/estree": "*"
}
},
+ "node_modules/is-regex": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
+ "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-shared-array-buffer": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz",
+ "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==",
+ "dependencies": {
+ "call-bind": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-string": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
+ "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
+ "dependencies": {
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-symbol": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz",
+ "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==",
+ "dependencies": {
+ "has-symbols": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-typed-array": {
+ "version": "1.1.10",
+ "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz",
+ "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==",
+ "dependencies": {
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.2",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/is-typedarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
"integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA=="
},
+ "node_modules/is-unicode-supported": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
+ "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-weakref": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
+ "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==",
+ "dependencies": {
+ "call-bind": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/isexe": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
},
+ "node_modules/jest-diff": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.5.0.tgz",
+ "integrity": "sha512-LtxijLLZBduXnHSniy0WMdaHjmQnt3g5sa16W4p0HqukYTTsyTW3GD1q41TyGl5YFXj/5B2U6dlh5FM1LIMgxw==",
+ "dependencies": {
+ "chalk": "^4.0.0",
+ "diff-sequences": "^29.4.3",
+ "jest-get-type": "^29.4.3",
+ "pretty-format": "^29.5.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-get-type": {
+ "version": "29.4.3",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.4.3.tgz",
+ "integrity": "sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==",
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
"node_modules/jest-worker": {
"version": "26.6.2",
"resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz",
@@ -2406,6 +4730,61 @@
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
},
+ "node_modules/js-yaml": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "dependencies": {
+ "argparse": "^2.0.1"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
+ "node_modules/json-parse-better-errors": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
+ "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw=="
+ },
+ "node_modules/json-parse-even-better-errors": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
+ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w=="
+ },
+ "node_modules/json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
+ },
+ "node_modules/json-stable-stringify-without-jsonify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw=="
+ },
+ "node_modules/json5": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+ "dependencies": {
+ "minimist": "^1.2.0"
+ },
+ "bin": {
+ "json5": "lib/cli.js"
+ }
+ },
+ "node_modules/jsonc-parser": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz",
+ "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w=="
+ },
+ "node_modules/kind-of": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/kleur": {
"version": "4.1.5",
"resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz",
@@ -2415,6 +4794,18 @@
"node": ">=6"
}
},
+ "node_modules/levn": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
+ "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
+ "dependencies": {
+ "prelude-ls": "^1.2.1",
+ "type-check": "~0.4.0"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
"node_modules/light-bolt11-decoder": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/light-bolt11-decoder/-/light-bolt11-decoder-3.0.0.tgz",
@@ -2431,6 +4822,11 @@
"node": ">=10"
}
},
+ "node_modules/lines-and-columns": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
+ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="
+ },
"node_modules/livereload": {
"version": "0.9.3",
"resolved": "https://registry.npmjs.org/livereload/-/livereload-0.9.3.tgz",
@@ -2473,6 +4869,28 @@
}
}
},
+ "node_modules/load-json-file": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
+ "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==",
+ "dependencies": {
+ "graceful-fs": "^4.1.2",
+ "parse-json": "^4.0.0",
+ "pify": "^3.0.0",
+ "strip-bom": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/load-json-file/node_modules/pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/loader-utils": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz",
@@ -2490,6 +4908,20 @@
"node": ">=6"
}
},
+ "node_modules/locate-path": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
+ "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
+ "dependencies": {
+ "p-locate": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/lodash": {
"version": "4.17.21",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
@@ -2545,6 +4977,21 @@
"resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
"integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ=="
},
+ "node_modules/log-symbols": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
+ "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
+ "dependencies": {
+ "chalk": "^4.1.0",
+ "is-unicode-supported": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/loose-envify": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
@@ -2566,6 +5013,22 @@
"tslib": "^2.0.3"
}
},
+ "node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/lunr": {
+ "version": "2.3.9",
+ "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz",
+ "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow=="
+ },
"node_modules/magic-string": {
"version": "0.27.0",
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz",
@@ -2578,11 +5041,116 @@
"node": ">=12"
}
},
+ "node_modules/map-obj": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz",
+ "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/marked": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz",
+ "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==",
+ "bin": {
+ "marked": "bin/marked.js"
+ },
+ "engines": {
+ "node": ">= 12"
+ }
+ },
"node_modules/mdn-data": {
"version": "2.0.14",
"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz",
"integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow=="
},
+ "node_modules/memorystream": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz",
+ "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==",
+ "engines": {
+ "node": ">= 0.10.0"
+ }
+ },
+ "node_modules/meow": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz",
+ "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==",
+ "dependencies": {
+ "@types/minimist": "^1.2.0",
+ "camelcase-keys": "^6.2.2",
+ "decamelize": "^1.2.0",
+ "decamelize-keys": "^1.1.0",
+ "hard-rejection": "^2.1.0",
+ "minimist-options": "4.1.0",
+ "normalize-package-data": "^3.0.0",
+ "read-pkg-up": "^7.0.1",
+ "redent": "^3.0.0",
+ "trim-newlines": "^3.0.0",
+ "type-fest": "^0.18.0",
+ "yargs-parser": "^20.2.3"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/meow/node_modules/hosted-git-info": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
+ "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/meow/node_modules/normalize-package-data": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz",
+ "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==",
+ "dependencies": {
+ "hosted-git-info": "^4.0.1",
+ "is-core-module": "^2.5.0",
+ "semver": "^7.3.4",
+ "validate-npm-package-license": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/meow/node_modules/semver": {
+ "version": "7.5.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz",
+ "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/meow/node_modules/type-fest": {
+ "version": "0.18.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz",
+ "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/merge-stream": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
@@ -2655,6 +5223,19 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/minimist-options": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz",
+ "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==",
+ "dependencies": {
+ "arrify": "^1.0.1",
+ "is-plain-obj": "^1.1.0",
+ "kind-of": "^6.0.3"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
"node_modules/mkdirp": {
"version": "0.5.6",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
@@ -2707,11 +5288,26 @@
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
}
},
+ "node_modules/natural-compare": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="
+ },
+ "node_modules/natural-compare-lite": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz",
+ "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g=="
+ },
"node_modules/next-tick": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz",
"integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ=="
},
+ "node_modules/nice-try": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
+ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ=="
+ },
"node_modules/no-case": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz",
@@ -2729,6 +5325,41 @@
"integrity": "sha512-GSCXyoZBUaaPwVWdYncMEmzlSUjF9J/YeEHpklYJCyg8wPuJP3NzDx0BkiwArzINkdX2HJHvUJhL6vVWPOQQcg==",
"deprecated": "Switch to namespaced @noble/secp256k1 for security and feature updates"
},
+ "node_modules/node-domexception": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz",
+ "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/jimmywarting"
+ },
+ {
+ "type": "github",
+ "url": "https://paypal.me/jimmywarting"
+ }
+ ],
+ "engines": {
+ "node": ">=10.5.0"
+ }
+ },
+ "node_modules/node-fetch": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.1.tgz",
+ "integrity": "sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==",
+ "dependencies": {
+ "data-uri-to-buffer": "^4.0.0",
+ "fetch-blob": "^3.1.4",
+ "formdata-polyfill": "^4.0.10"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/node-fetch"
+ }
+ },
"node_modules/node-gyp-build": {
"version": "4.6.0",
"resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz",
@@ -2744,6 +5375,17 @@
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.9.tgz",
"integrity": "sha512-2xfmOrRkGogbTK9R6Leda0DGiXeY3p2NJpy4+gNCffdUvV6mdEJnaDEic1i3Ec2djAo8jWYoJMR5PB0MSMpxUA=="
},
+ "node_modules/normalize-package-data": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
+ "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
+ "dependencies": {
+ "hosted-git-info": "^2.1.4",
+ "resolve": "^1.10.0",
+ "semver": "2 || 3 || 4 || 5",
+ "validate-npm-package-license": "^3.0.1"
+ }
+ },
"node_modules/normalize-path": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
@@ -2787,16 +5429,15 @@
"link": true
},
"node_modules/nostr-tools": {
- "version": "1.7.4",
- "resolved": "https://registry.npmjs.org/nostr-tools/-/nostr-tools-1.7.4.tgz",
- "integrity": "sha512-YowDJ+S3UW9KCYPDZfZXXMITrJSMjiCmFOK5HohyKkg+w6EipFUTkFRBPRA2BTLXO/qw8gukKXfL0B7Dv3jtcQ==",
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/nostr-tools/-/nostr-tools-1.11.1.tgz",
+ "integrity": "sha512-b8BpCiD3wxjBZwrn0wc+CkVj6/7s4sQxp+Az7UkCG80mJu7xTspZsOoUP/geBNwZVYETzEwj+CPBvW8WIP8mBQ==",
"dependencies": {
- "@noble/hashes": "1.0.0",
- "@noble/secp256k1": "^1.7.1",
- "@scure/base": "^1.1.1",
- "@scure/bip32": "^1.1.5",
- "@scure/bip39": "^1.1.1",
- "prettier": "^2.8.4"
+ "@noble/curves": "1.0.0",
+ "@noble/hashes": "1.3.0",
+ "@scure/base": "1.1.1",
+ "@scure/bip32": "1.3.0",
+ "@scure/bip39": "1.2.0"
}
},
"node_modules/npm-path": {
@@ -2830,6 +5471,156 @@
"node": ">=4.2.0"
}
},
+ "node_modules/npm-run-all": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz",
+ "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==",
+ "dependencies": {
+ "ansi-styles": "^3.2.1",
+ "chalk": "^2.4.1",
+ "cross-spawn": "^6.0.5",
+ "memorystream": "^0.3.1",
+ "minimatch": "^3.0.4",
+ "pidtree": "^0.3.0",
+ "read-pkg": "^3.0.0",
+ "shell-quote": "^1.6.1",
+ "string.prototype.padend": "^3.0.0"
+ },
+ "bin": {
+ "npm-run-all": "bin/npm-run-all/index.js",
+ "run-p": "bin/run-p/index.js",
+ "run-s": "bin/run-s/index.js"
+ },
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/npm-run-all/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==",
+ "dependencies": {
+ "color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/npm-run-all/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==",
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/npm-run-all/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==",
+ "dependencies": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/npm-run-all/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==",
+ "dependencies": {
+ "color-name": "1.1.3"
+ }
+ },
+ "node_modules/npm-run-all/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+ },
+ "node_modules/npm-run-all/node_modules/cross-spawn": {
+ "version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+ "dependencies": {
+ "nice-try": "^1.0.4",
+ "path-key": "^2.0.1",
+ "semver": "^5.5.0",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ },
+ "engines": {
+ "node": ">=4.8"
+ }
+ },
+ "node_modules/npm-run-all/node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/npm-run-all/node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/npm-run-all/node_modules/path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/npm-run-all/node_modules/semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/npm-run-all/node_modules/shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==",
+ "dependencies": {
+ "shebang-regex": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/npm-run-all/node_modules/shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/npm-run-all/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==",
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/npm-which": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/npm-which/-/npm-which-3.0.1.tgz",
@@ -2870,6 +5661,55 @@
"node": ">= 6"
}
},
+ "node_modules/object-inspect": {
+ "version": "1.12.3",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz",
+ "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/object.assign": {
+ "version": "4.1.4",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz",
+ "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "has-symbols": "^1.0.3",
+ "object-keys": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/object.values": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz",
+ "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
@@ -2886,6 +5726,22 @@
"opener": "bin/opener-bin.js"
}
},
+ "node_modules/optionator": {
+ "version": "0.9.1",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
+ "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
+ "dependencies": {
+ "deep-is": "^0.1.3",
+ "fast-levenshtein": "^2.0.6",
+ "levn": "^0.4.1",
+ "prelude-ls": "^1.2.1",
+ "type-check": "^0.4.0",
+ "word-wrap": "^1.2.3"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
"node_modules/opts": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/opts/-/opts-2.0.2.tgz",
@@ -2907,6 +5763,34 @@
"node": ">=4"
}
},
+ "node_modules/p-limit": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
+ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
+ "dependencies": {
+ "yocto-queue": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/p-locate": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
+ "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
+ "dependencies": {
+ "p-limit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/p-queue": {
"version": "6.6.2",
"resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz",
@@ -2938,6 +5822,37 @@
"node": ">=8"
}
},
+ "node_modules/p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/parent-module": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+ "dependencies": {
+ "callsites": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==",
+ "dependencies": {
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/pascal-case": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz",
@@ -2949,6 +5864,14 @@
"tslib": "^2.0.3"
}
},
+ "node_modules/path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/path-is-absolute": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
@@ -2957,12 +5880,28 @@
"node": ">=0.10.0"
}
},
+ "node_modules/path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
"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==",
"license": "MIT"
},
+ "node_modules/path-type": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/picocolors": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
@@ -2981,6 +5920,17 @@
"url": "https://github.com/sponsors/jonschlinkert"
}
},
+ "node_modules/pidtree": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz",
+ "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==",
+ "bin": {
+ "pidtree": "bin/pidtree.js"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
"node_modules/pify": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
@@ -2989,6 +5939,20 @@
"node": ">=0.10.0"
}
},
+ "node_modules/plur": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/plur/-/plur-4.0.0.tgz",
+ "integrity": "sha512-4UGewrYgqDFw9vV6zNV+ADmPAUAfJPKtGvb/VdpQAx25X5f3xXdGdyOEVFwkl8Hl/tl7+xbeHqSEM+D5/TirUg==",
+ "dependencies": {
+ "irregular-plurals": "^3.2.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/postcss": {
"version": "8.4.21",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz",
@@ -3560,18 +6524,36 @@
"resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
"integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="
},
- "node_modules/prettier": {
- "version": "2.8.4",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.4.tgz",
- "integrity": "sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw==",
- "bin": {
- "prettier": "bin-prettier.js"
+ "node_modules/prelude-ls": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
+ "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/pretty-format": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.5.0.tgz",
+ "integrity": "sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==",
+ "dependencies": {
+ "@jest/schemas": "^29.4.3",
+ "ansi-styles": "^5.0.0",
+ "react-is": "^18.0.0"
},
"engines": {
- "node": ">=10.13.0"
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/pretty-format/node_modules/ansi-styles": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
+ "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
+ "engines": {
+ "node": ">=10"
},
"funding": {
- "url": "https://github.com/prettier/prettier?sponsor=1"
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
"node_modules/promise.series": {
@@ -3587,6 +6569,14 @@
"resolved": "https://registry.npmjs.org/protochain/-/protochain-1.0.5.tgz",
"integrity": "sha512-4hDwFSX50C4NE6f/6zg8EPr/WLPTkFPUtG0ulWZu6bwzV2hmb50fpdQLr0HiKBAUehapaFpItzWoCLjraLJhUA=="
},
+ "node_modules/punycode": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz",
+ "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/queue-microtask": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
@@ -3637,6 +6627,11 @@
"node": ">=0.10.0"
}
},
+ "node_modules/react-is": {
+ "version": "18.2.0",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
+ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w=="
+ },
"node_modules/read-cache": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
@@ -3645,6 +6640,149 @@
"pify": "^2.3.0"
}
},
+ "node_modules/read-pkg": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
+ "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==",
+ "dependencies": {
+ "load-json-file": "^4.0.0",
+ "normalize-package-data": "^2.3.2",
+ "path-type": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/read-pkg-up": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz",
+ "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==",
+ "dependencies": {
+ "find-up": "^4.1.0",
+ "read-pkg": "^5.2.0",
+ "type-fest": "^0.8.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/read-pkg-up/node_modules/find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "dependencies": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/read-pkg-up/node_modules/locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "dependencies": {
+ "p-locate": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/read-pkg-up/node_modules/p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "dependencies": {
+ "p-try": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/read-pkg-up/node_modules/p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "dependencies": {
+ "p-limit": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/read-pkg-up/node_modules/parse-json": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
+ "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"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/read-pkg-up/node_modules/read-pkg": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
+ "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==",
+ "dependencies": {
+ "@types/normalize-package-data": "^2.4.0",
+ "normalize-package-data": "^2.5.0",
+ "parse-json": "^5.0.0",
+ "type-fest": "^0.6.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/read-pkg-up/node_modules/read-pkg/node_modules/type-fest": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz",
+ "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/read-pkg-up/node_modules/type-fest": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
+ "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/read-pkg/node_modules/path-type": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
+ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
+ "dependencies": {
+ "pify": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/read-pkg/node_modules/pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/readdirp": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
@@ -3657,11 +6795,39 @@
"node": ">=8.10.0"
}
},
+ "node_modules/redent": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz",
+ "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==",
+ "dependencies": {
+ "indent-string": "^4.0.0",
+ "strip-indent": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/regenerator-runtime": {
"version": "0.11.1",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
"integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
},
+ "node_modules/regexp.prototype.flags": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz",
+ "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "functions-have-names": "^1.2.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/repeat-string": {
"version": "1.6.1",
"resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
@@ -4067,6 +7233,19 @@
"resolved": "https://registry.npmjs.org/safe-identifier/-/safe-identifier-0.4.2.tgz",
"integrity": "sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w=="
},
+ "node_modules/safe-regex-test": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz",
+ "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.3",
+ "is-regex": "^1.1.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/sander": {
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/sander/-/sander-0.5.1.tgz",
@@ -4117,6 +7296,57 @@
"integrity": "sha512-1jeBGaKNGdEq4FgIrORu/N570dwoPYio8lSoYLWmX7sQ//0JY08Xh9o5pBcgmHQ/MbsYp/aZnOe1s1lIsbLprQ==",
"license": "MIT"
},
+ "node_modules/shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "dependencies": {
+ "shebang-regex": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/shell-quote": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz",
+ "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/shiki": {
+ "version": "0.14.2",
+ "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.2.tgz",
+ "integrity": "sha512-ltSZlSLOuSY0M0Y75KA+ieRaZ0Trf5Wl3gutE7jzLuIcWxLp5i/uEnLoQWNvgKXQ5OMpGkJnVMRLAuzjc0LJ2A==",
+ "dependencies": {
+ "ansi-sequence-parser": "^1.1.0",
+ "jsonc-parser": "^3.2.0",
+ "vscode-oniguruma": "^1.7.0",
+ "vscode-textmate": "^8.0.0"
+ }
+ },
+ "node_modules/side-channel": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
+ "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
+ "dependencies": {
+ "call-bind": "^1.0.0",
+ "get-intrinsic": "^1.0.2",
+ "object-inspect": "^1.9.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/sirv": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.2.tgz",
@@ -4153,6 +7383,14 @@
"node": ">= 10"
}
},
+ "node_modules/slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/sorcery": {
"version": "0.11.0",
"resolved": "https://registry.npmjs.org/sorcery/-/sorcery-0.11.0.tgz",
@@ -4199,6 +7437,34 @@
"integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==",
"deprecated": "Please use @jridgewell/sourcemap-codec instead"
},
+ "node_modules/spdx-correct": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz",
+ "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==",
+ "dependencies": {
+ "spdx-expression-parse": "^3.0.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "node_modules/spdx-exceptions": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz",
+ "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A=="
+ },
+ "node_modules/spdx-expression-parse": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
+ "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
+ "dependencies": {
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "node_modules/spdx-license-ids": {
+ "version": "3.0.13",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz",
+ "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w=="
+ },
"node_modules/stable": {
"version": "0.1.8",
"resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz",
@@ -4223,6 +7489,101 @@
"resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz",
"integrity": "sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A=="
},
+ "node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/string-width/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/string-width/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
+ },
+ "node_modules/string-width/node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/string.prototype.padend": {
+ "version": "3.1.4",
+ "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.4.tgz",
+ "integrity": "sha512-67otBXoksdjsnXXRUq+KMVTdlVRZ2af422Y0aTyTjVaoQkGr3mxl2Bc5emi7dOQ3OGVVQQskmLEWwFXwommpNw==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trim": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz",
+ "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trimend": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz",
+ "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trimstart": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz",
+ "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/strip-ansi": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
@@ -4234,6 +7595,14 @@
"node": ">=0.10.0"
}
},
+ "node_modules/strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/strip-indent": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
@@ -4287,6 +7656,18 @@
"node": ">=8"
}
},
+ "node_modules/supports-hyperlinks": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz",
+ "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==",
+ "dependencies": {
+ "has-flag": "^4.0.0",
+ "supports-color": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/supports-preserve-symlinks-flag": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
@@ -4512,6 +7893,11 @@
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
},
+ "node_modules/text-table": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw=="
+ },
"node_modules/tiny-glob": {
"version": "0.2.9",
"resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz",
@@ -4560,6 +7946,45 @@
"node": ">=6"
}
},
+ "node_modules/trim-newlines": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz",
+ "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/tsconfig-paths": {
+ "version": "3.14.2",
+ "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz",
+ "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==",
+ "dependencies": {
+ "@types/json5": "^0.0.29",
+ "json5": "^1.0.2",
+ "minimist": "^1.2.6",
+ "strip-bom": "^3.0.0"
+ }
+ },
+ "node_modules/tsd": {
+ "version": "0.28.1",
+ "resolved": "https://registry.npmjs.org/tsd/-/tsd-0.28.1.tgz",
+ "integrity": "sha512-FeYrfJ05QgEMW/qOukNCr4fAJHww4SaKnivAXRv4g5kj4FeLpNV7zH4dorzB9zAfVX4wmA7zWu/wQf7kkcvfbw==",
+ "dependencies": {
+ "@tsd/typescript": "~5.0.2",
+ "eslint-formatter-pretty": "^4.1.0",
+ "globby": "^11.0.1",
+ "jest-diff": "^29.0.3",
+ "meow": "^9.0.0",
+ "path-exists": "^4.0.0",
+ "read-pkg-up": "^7.0.0"
+ },
+ "bin": {
+ "tsd": "dist/cli.js"
+ },
+ "engines": {
+ "node": ">=14.16"
+ }
+ },
"node_modules/tslib": {
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz",
@@ -4572,11 +7997,65 @@
"resolved": "https://registry.npmjs.org/tstl/-/tstl-2.5.13.tgz",
"integrity": "sha512-h9wayHHFI5+yqt8iau0vqH96cTNhezhZ/Fk/hrIdpfkiMu3lg9nzyvMfs5bIdX51IVzZO6DudLqhkL/rVXpT6g=="
},
+ "node_modules/tsutils": {
+ "version": "3.21.0",
+ "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz",
+ "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==",
+ "dependencies": {
+ "tslib": "^1.8.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ },
+ "peerDependencies": {
+ "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta"
+ }
+ },
+ "node_modules/tsutils/node_modules/tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
+ },
"node_modules/type": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz",
"integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg=="
},
+ "node_modules/type-check": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
+ "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
+ "dependencies": {
+ "prelude-ls": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/type-fest": {
+ "version": "0.21.3",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
+ "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/typed-array-length": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz",
+ "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "for-each": "^0.3.3",
+ "is-typed-array": "^1.1.9"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/typedarray-to-buffer": {
"version": "3.1.5",
"resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
@@ -4585,6 +8064,40 @@
"is-typedarray": "^1.0.0"
}
},
+ "node_modules/typedoc": {
+ "version": "0.24.8",
+ "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.24.8.tgz",
+ "integrity": "sha512-ahJ6Cpcvxwaxfu4KtjA8qZNqS43wYt6JL27wYiIgl1vd38WW/KWX11YuAeZhuz9v+ttrutSsgK+XO1CjL1kA3w==",
+ "dependencies": {
+ "lunr": "^2.3.9",
+ "marked": "^4.3.0",
+ "minimatch": "^9.0.0",
+ "shiki": "^0.14.1"
+ },
+ "bin": {
+ "typedoc": "bin/typedoc"
+ },
+ "engines": {
+ "node": ">= 14.14"
+ },
+ "peerDependencies": {
+ "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x"
+ }
+ },
+ "node_modules/typedoc/node_modules/minimatch": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.1.tgz",
+ "integrity": "sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==",
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
"node_modules/typescript": {
"version": "4.9.5",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
@@ -4597,6 +8110,20 @@
"node": ">=4.2.0"
}
},
+ "node_modules/unbox-primitive": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
+ "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "has-bigints": "^1.0.2",
+ "has-symbols": "^1.0.3",
+ "which-boxed-primitive": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/undici": {
"version": "5.21.0",
"resolved": "https://registry.npmjs.org/undici/-/undici-5.21.0.tgz",
@@ -4633,6 +8160,14 @@
"browserslist": ">= 4.21.0"
}
},
+ "node_modules/uri-js": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "dependencies": {
+ "punycode": "^2.1.0"
+ }
+ },
"node_modules/user-home": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz",
@@ -4656,6 +8191,14 @@
"node": ">=6.14.2"
}
},
+ "node_modules/utf8-buffer": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/utf8-buffer/-/utf8-buffer-1.0.0.tgz",
+ "integrity": "sha512-ueuhzvWnp5JU5CiGSY4WdKbiN/PO2AZ/lpeLiz2l38qwdLy/cW40XobgyuIWucNyum0B33bVB0owjFCeGBSLqg==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
@@ -4669,6 +8212,15 @@
"uuid": "dist/bin/uuid"
}
},
+ "node_modules/validate-npm-package-license": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
+ "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
+ "dependencies": {
+ "spdx-correct": "^3.0.0",
+ "spdx-expression-parse": "^3.0.0"
+ }
+ },
"node_modules/vite": {
"version": "4.1.4",
"resolved": "https://registry.npmjs.org/vite/-/vite-4.1.4.tgz",
@@ -4746,6 +8298,24 @@
}
}
},
+ "node_modules/vscode-oniguruma": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz",
+ "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA=="
+ },
+ "node_modules/vscode-textmate": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-8.0.0.tgz",
+ "integrity": "sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg=="
+ },
+ "node_modules/web-streams-polyfill": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz",
+ "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
"node_modules/webln": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/webln/-/webln-0.3.2.tgz",
@@ -4803,6 +8373,48 @@
"which": "bin/which"
}
},
+ "node_modules/which-boxed-primitive": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
+ "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
+ "dependencies": {
+ "is-bigint": "^1.0.1",
+ "is-boolean-object": "^1.1.0",
+ "is-number-object": "^1.0.4",
+ "is-string": "^1.0.5",
+ "is-symbol": "^1.0.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/which-typed-array": {
+ "version": "1.1.9",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz",
+ "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==",
+ "dependencies": {
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.2",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-tostringtag": "^1.0.0",
+ "is-typed-array": "^1.1.10"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/word-wrap": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
+ "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
@@ -4844,6 +8456,11 @@
"node": ">=0.10.32"
}
},
+ "node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ },
"node_modules/yaml": {
"version": "1.10.2",
"resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
@@ -4851,6 +8468,25 @@
"engines": {
"node": ">= 6"
}
+ },
+ "node_modules/yargs-parser": {
+ "version": "20.2.9",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
+ "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/yocto-queue": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
+ "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
}
},
"dependencies": {
@@ -4923,6 +8559,251 @@
}
}
},
+ "@esbuild/android-arm": {
+ "version": "0.17.19",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.19.tgz",
+ "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==",
+ "optional": true
+ },
+ "@esbuild/android-arm64": {
+ "version": "0.17.19",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz",
+ "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==",
+ "optional": true
+ },
+ "@esbuild/android-x64": {
+ "version": "0.17.19",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.19.tgz",
+ "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==",
+ "optional": true
+ },
+ "@esbuild/darwin-arm64": {
+ "version": "0.17.19",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz",
+ "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==",
+ "optional": true
+ },
+ "@esbuild/darwin-x64": {
+ "version": "0.17.19",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz",
+ "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==",
+ "optional": true
+ },
+ "@esbuild/freebsd-arm64": {
+ "version": "0.17.19",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz",
+ "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==",
+ "optional": true
+ },
+ "@esbuild/freebsd-x64": {
+ "version": "0.17.19",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz",
+ "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==",
+ "optional": true
+ },
+ "@esbuild/linux-arm": {
+ "version": "0.17.19",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz",
+ "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==",
+ "optional": true
+ },
+ "@esbuild/linux-arm64": {
+ "version": "0.17.19",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz",
+ "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==",
+ "optional": true
+ },
+ "@esbuild/linux-ia32": {
+ "version": "0.17.19",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz",
+ "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==",
+ "optional": true
+ },
+ "@esbuild/linux-loong64": {
+ "version": "0.17.19",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz",
+ "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==",
+ "optional": true
+ },
+ "@esbuild/linux-mips64el": {
+ "version": "0.17.19",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz",
+ "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==",
+ "optional": true
+ },
+ "@esbuild/linux-ppc64": {
+ "version": "0.17.19",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz",
+ "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==",
+ "optional": true
+ },
+ "@esbuild/linux-riscv64": {
+ "version": "0.17.19",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz",
+ "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==",
+ "optional": true
+ },
+ "@esbuild/linux-s390x": {
+ "version": "0.17.19",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz",
+ "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==",
+ "optional": true
+ },
+ "@esbuild/linux-x64": {
+ "version": "0.17.19",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz",
+ "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==",
+ "optional": true
+ },
+ "@esbuild/netbsd-x64": {
+ "version": "0.17.19",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz",
+ "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==",
+ "optional": true
+ },
+ "@esbuild/openbsd-x64": {
+ "version": "0.17.19",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz",
+ "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==",
+ "optional": true
+ },
+ "@esbuild/sunos-x64": {
+ "version": "0.17.19",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz",
+ "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==",
+ "optional": true
+ },
+ "@esbuild/win32-arm64": {
+ "version": "0.17.19",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz",
+ "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==",
+ "optional": true
+ },
+ "@esbuild/win32-ia32": {
+ "version": "0.17.19",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz",
+ "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==",
+ "optional": true
+ },
+ "@esbuild/win32-x64": {
+ "version": "0.17.19",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz",
+ "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==",
+ "optional": true
+ },
+ "@eslint-community/eslint-utils": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
+ "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
+ "requires": {
+ "eslint-visitor-keys": "^3.3.0"
+ }
+ },
+ "@eslint-community/regexpp": {
+ "version": "4.5.1",
+ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz",
+ "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ=="
+ },
+ "@eslint/eslintrc": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.3.tgz",
+ "integrity": "sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==",
+ "requires": {
+ "ajv": "^6.12.4",
+ "debug": "^4.3.2",
+ "espree": "^9.5.2",
+ "globals": "^13.19.0",
+ "ignore": "^5.2.0",
+ "import-fresh": "^3.2.1",
+ "js-yaml": "^4.1.0",
+ "minimatch": "^3.1.2",
+ "strip-json-comments": "^3.1.1"
+ },
+ "dependencies": {
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "globals": {
+ "version": "13.20.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz",
+ "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==",
+ "requires": {
+ "type-fest": "^0.20.2"
+ }
+ },
+ "minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "type-fest": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ=="
+ }
+ }
+ },
+ "@eslint/js": {
+ "version": "8.42.0",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.42.0.tgz",
+ "integrity": "sha512-6SWlXpWU5AvId8Ac7zjzmIOqMOba/JWY8XZ4A7q7Gn1Vlfg/SFFIlrtHXt9nPn4op9ZPAkl91Jao+QQv3r/ukw=="
+ },
+ "@humanwhocodes/config-array": {
+ "version": "0.11.10",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.10.tgz",
+ "integrity": "sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==",
+ "requires": {
+ "@humanwhocodes/object-schema": "^1.2.1",
+ "debug": "^4.1.1",
+ "minimatch": "^3.0.5"
+ },
+ "dependencies": {
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ }
+ }
+ },
+ "@humanwhocodes/module-importer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
+ "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA=="
+ },
+ "@humanwhocodes/object-schema": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
+ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA=="
+ },
+ "@jest/schemas": {
+ "version": "29.4.3",
+ "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.4.3.tgz",
+ "integrity": "sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==",
+ "requires": {
+ "@sinclair/typebox": "^0.25.16"
+ }
+ },
"@jridgewell/gen-mapping": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
@@ -4966,15 +8847,18 @@
"@jridgewell/sourcemap-codec": "1.4.14"
}
},
- "@noble/hashes": {
+ "@noble/curves": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.0.0.tgz",
- "integrity": "sha512-DZVbtY62kc3kkBtMHqwCOfXrT/hnoORy5BJ4+HU1IR59X0KWAOqsfzQPcUl/lQLlG7qXbe/fZ3r/emxtAl+sqg=="
+ "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.0.0.tgz",
+ "integrity": "sha512-2upgEu0iLiDVDZkNLeFV2+ht0BAVgQnEmCk6JsOch9Rp8xfkMCbvbAZlA2pBHQc73dbl+vFOXfqkf4uemdn0bw==",
+ "requires": {
+ "@noble/hashes": "1.3.0"
+ }
},
- "@noble/secp256k1": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz",
- "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw=="
+ "@noble/hashes": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.0.tgz",
+ "integrity": "sha512-ilHEACi9DwqJB0pw7kv+Apvh50jiiSyR/cQ3y4W7lOR5mhvn/50FLUfsnfJz0BDZtl/RR16kXvptiv6q1msYZg=="
},
"@nodelib/fs.scandir": {
"version": "2.1.5",
@@ -5008,6 +8892,68 @@
"nostr-tools": "^1.0.1"
}
},
+ "@nostr-dev-kit/ndk": {
+ "version": "0.3.32",
+ "resolved": "https://registry.npmjs.org/@nostr-dev-kit/ndk/-/ndk-0.3.32.tgz",
+ "integrity": "sha512-f6fttPt6rRFNM0JV+atNZudz3MUpS4cZtPHZv8DQOXgfEOzjJCG5yOl0n9AUTsPYQirsGq3glW/gZs/LkxrP8g==",
+ "requires": {
+ "@noble/secp256k1": "^2.0.0",
+ "@scure/base": "^1.1.1",
+ "@typescript-eslint/eslint-plugin": "^5.57.0",
+ "@typescript-eslint/parser": "^5.57.0",
+ "debug": "^4.3.4",
+ "esbuild": "^0.17.15",
+ "esbuild-plugin-alias": "^0.2.1",
+ "eslint": "^8.37.0",
+ "eslint-config-prettier": "^8.8.0",
+ "eslint-plugin-import": "^2.27.5",
+ "esm-loader-typescript": "^1.0.4",
+ "eventemitter3": "^5.0.0",
+ "light-bolt11-decoder": "^3.0.0",
+ "node-fetch": "^3.3.1",
+ "nostr-tools": "^1.11.1",
+ "tsd": "^0.28.1",
+ "typedoc": "^0.24.6",
+ "utf8-buffer": "^1.0.0",
+ "websocket-polyfill": "^0.0.3"
+ },
+ "dependencies": {
+ "@noble/secp256k1": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-2.0.0.tgz",
+ "integrity": "sha512-rUGBd95e2a45rlmFTqQJYEFA4/gdIARFfuTuTqLglz0PZ6AKyzyXsEZZq7UZn8hZsvaBgpCzKKBJizT2cJERXw=="
+ },
+ "esbuild": {
+ "version": "0.17.19",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.19.tgz",
+ "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==",
+ "requires": {
+ "@esbuild/android-arm": "0.17.19",
+ "@esbuild/android-arm64": "0.17.19",
+ "@esbuild/android-x64": "0.17.19",
+ "@esbuild/darwin-arm64": "0.17.19",
+ "@esbuild/darwin-x64": "0.17.19",
+ "@esbuild/freebsd-arm64": "0.17.19",
+ "@esbuild/freebsd-x64": "0.17.19",
+ "@esbuild/linux-arm": "0.17.19",
+ "@esbuild/linux-arm64": "0.17.19",
+ "@esbuild/linux-ia32": "0.17.19",
+ "@esbuild/linux-loong64": "0.17.19",
+ "@esbuild/linux-mips64el": "0.17.19",
+ "@esbuild/linux-ppc64": "0.17.19",
+ "@esbuild/linux-riscv64": "0.17.19",
+ "@esbuild/linux-s390x": "0.17.19",
+ "@esbuild/linux-x64": "0.17.19",
+ "@esbuild/netbsd-x64": "0.17.19",
+ "@esbuild/openbsd-x64": "0.17.19",
+ "@esbuild/sunos-x64": "0.17.19",
+ "@esbuild/win32-arm64": "0.17.19",
+ "@esbuild/win32-ia32": "0.17.19",
+ "@esbuild/win32-x64": "0.17.19"
+ }
+ }
+ }
+ },
"@polka/url": {
"version": "1.0.0-next.21",
"resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz",
@@ -5086,38 +9032,29 @@
"integrity": "sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA=="
},
"@scure/bip32": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.1.5.tgz",
- "integrity": "sha512-XyNh1rB0SkEqd3tXcXMi+Xe1fvg+kUIcoRIEujP1Jgv7DqW2r9lg3Ah0NkFaCs9sTkQAQA8kw7xiRXzENi9Rtw==",
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.3.0.tgz",
+ "integrity": "sha512-bcKpo1oj54hGholplGLpqPHRbIsnbixFtc06nwuNM5/dwSXOq/AAYoIBRsBmnZJSdfeNW5rnff7NTAz3ZCqR9Q==",
"requires": {
- "@noble/hashes": "~1.2.0",
- "@noble/secp256k1": "~1.7.0",
+ "@noble/curves": "~1.0.0",
+ "@noble/hashes": "~1.3.0",
"@scure/base": "~1.1.0"
- },
- "dependencies": {
- "@noble/hashes": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.2.0.tgz",
- "integrity": "sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ=="
- }
}
},
"@scure/bip39": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.1.tgz",
- "integrity": "sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.2.0.tgz",
+ "integrity": "sha512-SX/uKq52cuxm4YFXWFaVByaSHJh2w3BnokVSeUJVCv6K7WulT9u2BuNRBhuFl8vAuYnzx9bEu9WgpcNYTrYieg==",
"requires": {
- "@noble/hashes": "~1.2.0",
+ "@noble/hashes": "~1.3.0",
"@scure/base": "~1.1.0"
- },
- "dependencies": {
- "@noble/hashes": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.2.0.tgz",
- "integrity": "sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ=="
- }
}
},
+ "@sinclair/typebox": {
+ "version": "0.25.24",
+ "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.24.tgz",
+ "integrity": "sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ=="
+ },
"@sveltejs/adapter-auto": {
"version": "1.0.2",
"dev": true,
@@ -5225,6 +9162,11 @@
"resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz",
"integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA=="
},
+ "@tsd/typescript": {
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/@tsd/typescript/-/typescript-5.0.4.tgz",
+ "integrity": "sha512-YQi2lvZSI+xidKeUjlbv6b6Zw7qB3aXHw5oGJLs5OOGAEqKIOvz5UIAkWyg0bJbkSUWPBEtaOHpVxU4EYBO1Jg=="
+ },
"@types/chrome": {
"version": "0.0.74",
"resolved": "https://registry.npmjs.org/@types/chrome/-/chrome-0.0.74.tgz",
@@ -5238,6 +9180,15 @@
"resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.5.1.tgz",
"integrity": "sha512-COUnqfB2+ckwXXSFInsFdOAWQzCCx+a5hq2ruyj+Vjund94RJQd4LG2u9hnvJrTgunKAaax7ancBYlDrNYxA0g=="
},
+ "@types/eslint": {
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.29.0.tgz",
+ "integrity": "sha512-VNcvioYDH8/FxaeTKkM4/TiTwt6pBV9E3OfGmvaw8tPl0rrHCJ4Ll15HRT+pMiFAf/MLQvAzC+6RzUMEL9Ceng==",
+ "requires": {
+ "@types/estree": "*",
+ "@types/json-schema": "*"
+ }
+ },
"@types/estree": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz",
@@ -5256,11 +9207,31 @@
"resolved": "https://registry.npmjs.org/@types/filewriter/-/filewriter-0.0.29.tgz",
"integrity": "sha512-BsPXH/irW0ht0Ji6iw/jJaK8Lj3FJemon2gvEqHKpCdDCeemHa+rI3WBGq5z7cDMZgoLjY40oninGxqk+8NzNQ=="
},
+ "@types/json-schema": {
+ "version": "7.0.12",
+ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz",
+ "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA=="
+ },
+ "@types/json5": {
+ "version": "0.0.29",
+ "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
+ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ=="
+ },
+ "@types/minimist": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz",
+ "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ=="
+ },
"@types/node": {
"version": "18.11.18",
"resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz",
"integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA=="
},
+ "@types/normalize-package-data": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz",
+ "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw=="
+ },
"@types/pug": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/@types/pug/-/pug-2.0.6.tgz",
@@ -5279,11 +9250,143 @@
"@types/node": "*"
}
},
+ "@types/semver": {
+ "version": "7.5.0",
+ "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz",
+ "integrity": "sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw=="
+ },
+ "@typescript-eslint/eslint-plugin": {
+ "version": "5.59.8",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.8.tgz",
+ "integrity": "sha512-JDMOmhXteJ4WVKOiHXGCoB96ADWg9q7efPWHRViT/f09bA8XOMLAVHHju3l0MkZnG1izaWXYmgvQcUjTRcpShQ==",
+ "requires": {
+ "@eslint-community/regexpp": "^4.4.0",
+ "@typescript-eslint/scope-manager": "5.59.8",
+ "@typescript-eslint/type-utils": "5.59.8",
+ "@typescript-eslint/utils": "5.59.8",
+ "debug": "^4.3.4",
+ "grapheme-splitter": "^1.0.4",
+ "ignore": "^5.2.0",
+ "natural-compare-lite": "^1.4.0",
+ "semver": "^7.3.7",
+ "tsutils": "^3.21.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "7.5.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz",
+ "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==",
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ }
+ }
+ },
+ "@typescript-eslint/parser": {
+ "version": "5.59.8",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.8.tgz",
+ "integrity": "sha512-AnR19RjJcpjoeGojmwZtCwBX/RidqDZtzcbG3xHrmz0aHHoOcbWnpDllenRDmDvsV0RQ6+tbb09/kyc+UT9Orw==",
+ "requires": {
+ "@typescript-eslint/scope-manager": "5.59.8",
+ "@typescript-eslint/types": "5.59.8",
+ "@typescript-eslint/typescript-estree": "5.59.8",
+ "debug": "^4.3.4"
+ }
+ },
+ "@typescript-eslint/scope-manager": {
+ "version": "5.59.8",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.8.tgz",
+ "integrity": "sha512-/w08ndCYI8gxGf+9zKf1vtx/16y8MHrZs5/tnjHhMLNSixuNcJavSX4wAiPf4aS5x41Es9YPCn44MIe4cxIlig==",
+ "requires": {
+ "@typescript-eslint/types": "5.59.8",
+ "@typescript-eslint/visitor-keys": "5.59.8"
+ }
+ },
+ "@typescript-eslint/type-utils": {
+ "version": "5.59.8",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.8.tgz",
+ "integrity": "sha512-+5M518uEIHFBy3FnyqZUF3BMP+AXnYn4oyH8RF012+e7/msMY98FhGL5SrN29NQ9xDgvqCgYnsOiKp1VjZ/fpA==",
+ "requires": {
+ "@typescript-eslint/typescript-estree": "5.59.8",
+ "@typescript-eslint/utils": "5.59.8",
+ "debug": "^4.3.4",
+ "tsutils": "^3.21.0"
+ }
+ },
+ "@typescript-eslint/types": {
+ "version": "5.59.8",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.8.tgz",
+ "integrity": "sha512-+uWuOhBTj/L6awoWIg0BlWy0u9TyFpCHrAuQ5bNfxDaZ1Ppb3mx6tUigc74LHcbHpOHuOTOJrBoAnhdHdaea1w=="
+ },
+ "@typescript-eslint/typescript-estree": {
+ "version": "5.59.8",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.8.tgz",
+ "integrity": "sha512-Jy/lPSDJGNow14vYu6IrW790p7HIf/SOV1Bb6lZ7NUkLc2iB2Z9elESmsaUtLw8kVqogSbtLH9tut5GCX1RLDg==",
+ "requires": {
+ "@typescript-eslint/types": "5.59.8",
+ "@typescript-eslint/visitor-keys": "5.59.8",
+ "debug": "^4.3.4",
+ "globby": "^11.1.0",
+ "is-glob": "^4.0.3",
+ "semver": "^7.3.7",
+ "tsutils": "^3.21.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "7.5.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz",
+ "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==",
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ }
+ }
+ },
+ "@typescript-eslint/utils": {
+ "version": "5.59.8",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.8.tgz",
+ "integrity": "sha512-Tr65630KysnNn9f9G7ROF3w1b5/7f6QVCJ+WK9nhIocWmx9F+TmCAcglF26Vm7z8KCTwoKcNEBZrhlklla3CKg==",
+ "requires": {
+ "@eslint-community/eslint-utils": "^4.2.0",
+ "@types/json-schema": "^7.0.9",
+ "@types/semver": "^7.3.12",
+ "@typescript-eslint/scope-manager": "5.59.8",
+ "@typescript-eslint/types": "5.59.8",
+ "@typescript-eslint/typescript-estree": "5.59.8",
+ "eslint-scope": "^5.1.1",
+ "semver": "^7.3.7"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "7.5.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz",
+ "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==",
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ }
+ }
+ },
+ "@typescript-eslint/visitor-keys": {
+ "version": "5.59.8",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.8.tgz",
+ "integrity": "sha512-pJhi2ms0x0xgloT7xYabil3SGGlojNNKjK/q6dB3Ey0uJLMjK2UDGJvHieiyJVW/7C3KI+Z4Q3pEHkm4ejA+xQ==",
+ "requires": {
+ "@typescript-eslint/types": "5.59.8",
+ "eslint-visitor-keys": "^3.3.0"
+ }
+ },
"acorn": {
"version": "7.4.1",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
"integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A=="
},
+ "acorn-jsx": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
+ "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
+ "requires": {}
+ },
"acorn-node": {
"version": "1.8.2",
"resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz",
@@ -5304,11 +9407,35 @@
"resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz",
"integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA=="
},
+ "ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "requires": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "ansi-escapes": {
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
+ "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
+ "requires": {
+ "type-fest": "^0.21.3"
+ }
+ },
"ansi-regex": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
"integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA=="
},
+ "ansi-sequence-parser": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-sequence-parser/-/ansi-sequence-parser-1.1.0.tgz",
+ "integrity": "sha512-lEm8mt52to2fT8GhciPCGeCXACSz2UwIN4X2e2LJSnZ5uAbn2/dsYdOmUXq0AtWS5cpAupysIneExOgH0Vd2TQ=="
+ },
"ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
@@ -5331,6 +9458,64 @@
"resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
"integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg=="
},
+ "argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
+ },
+ "array-buffer-byte-length": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz",
+ "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "is-array-buffer": "^3.0.1"
+ }
+ },
+ "array-includes": {
+ "version": "3.1.6",
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz",
+ "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4",
+ "get-intrinsic": "^1.1.3",
+ "is-string": "^1.0.7"
+ }
+ },
+ "array-union": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
+ "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw=="
+ },
+ "array.prototype.flat": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz",
+ "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4",
+ "es-shim-unscopables": "^1.0.0"
+ }
+ },
+ "array.prototype.flatmap": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz",
+ "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4",
+ "es-shim-unscopables": "^1.0.0"
+ }
+ },
+ "arrify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
+ "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA=="
+ },
"autoprefixer": {
"version": "10.4.13",
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz",
@@ -5345,6 +9530,11 @@
"postcss-value-parser": "^4.2.0"
}
},
+ "available-typed-arrays": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz",
+ "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw=="
+ },
"babel-code-frame": {
"version": "6.26.0",
"resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
@@ -5521,11 +9711,47 @@
"streamsearch": "^1.1.0"
}
},
+ "call-bind": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
+ "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
+ "requires": {
+ "function-bind": "^1.1.1",
+ "get-intrinsic": "^1.0.2"
+ }
+ },
+ "callsites": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="
+ },
+ "camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="
+ },
"camelcase-css": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
"integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA=="
},
+ "camelcase-keys": {
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz",
+ "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==",
+ "requires": {
+ "camelcase": "^5.3.1",
+ "map-obj": "^4.0.0",
+ "quick-lru": "^4.0.1"
+ },
+ "dependencies": {
+ "quick-lru": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz",
+ "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g=="
+ }
+ }
+ },
"caniuse-api": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz",
@@ -5623,6 +9849,44 @@
"resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz",
"integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ=="
},
+ "create-esm-loader": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/create-esm-loader/-/create-esm-loader-0.2.3.tgz",
+ "integrity": "sha512-cllzD6IU/mzXBs5OdQVWL3+ne5Elpu3Wdm7h5OldMbGXk76yr9XzHlQXWJ4zfs0ZAibe26rkbs4KvMAJm7fIZA==",
+ "requires": {
+ "semver": "^7.3.5"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "7.5.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz",
+ "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==",
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ }
+ }
+ },
+ "cross-spawn": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
+ "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+ "requires": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ },
+ "dependencies": {
+ "which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ }
+ }
+ },
"css-declaration-sorter": {
"version": "6.3.1",
"resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.3.1.tgz",
@@ -5729,6 +9993,11 @@
"type": "^1.0.1"
}
},
+ "data-uri-to-buffer": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz",
+ "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A=="
+ },
"debug": {
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
@@ -5737,17 +10006,52 @@
"ms": "2.1.2"
}
},
+ "decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA=="
+ },
+ "decamelize-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz",
+ "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==",
+ "requires": {
+ "decamelize": "^1.1.0",
+ "map-obj": "^1.0.0"
+ },
+ "dependencies": {
+ "map-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
+ "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg=="
+ }
+ }
+ },
"dedent-js": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/dedent-js/-/dedent-js-1.0.1.tgz",
"integrity": "sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ==",
"dev": true
},
+ "deep-is": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
+ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="
+ },
"deepmerge": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.0.tgz",
"integrity": "sha512-z2wJZXrmeHdvYJp/Ux55wIjqo81G5Bp4c+oELTW+7ar6SogWHajt5a9gO3s3IDaGSAXjDk0vlQKN3rms8ab3og=="
},
+ "define-properties": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz",
+ "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==",
+ "requires": {
+ "has-property-descriptors": "^1.0.0",
+ "object-keys": "^1.1.1"
+ }
+ },
"defined": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz",
@@ -5783,6 +10087,19 @@
"resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz",
"integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw=="
},
+ "diff-sequences": {
+ "version": "29.4.3",
+ "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.4.3.tgz",
+ "integrity": "sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA=="
+ },
+ "dir-glob": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
+ "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
+ "requires": {
+ "path-type": "^4.0.0"
+ }
+ },
"disparity": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/disparity/-/disparity-3.2.0.tgz",
@@ -5804,6 +10121,14 @@
"resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
"integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA=="
},
+ "doctrine": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
+ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+ "requires": {
+ "esutils": "^2.0.2"
+ }
+ },
"dom-serializer": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
@@ -5852,6 +10177,83 @@
"resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
"integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A=="
},
+ "error-ex": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
+ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+ "requires": {
+ "is-arrayish": "^0.2.1"
+ }
+ },
+ "es-abstract": {
+ "version": "1.21.2",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.2.tgz",
+ "integrity": "sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==",
+ "requires": {
+ "array-buffer-byte-length": "^1.0.0",
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.2",
+ "es-set-tostringtag": "^2.0.1",
+ "es-to-primitive": "^1.2.1",
+ "function.prototype.name": "^1.1.5",
+ "get-intrinsic": "^1.2.0",
+ "get-symbol-description": "^1.0.0",
+ "globalthis": "^1.0.3",
+ "gopd": "^1.0.1",
+ "has": "^1.0.3",
+ "has-property-descriptors": "^1.0.0",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "internal-slot": "^1.0.5",
+ "is-array-buffer": "^3.0.2",
+ "is-callable": "^1.2.7",
+ "is-negative-zero": "^2.0.2",
+ "is-regex": "^1.1.4",
+ "is-shared-array-buffer": "^1.0.2",
+ "is-string": "^1.0.7",
+ "is-typed-array": "^1.1.10",
+ "is-weakref": "^1.0.2",
+ "object-inspect": "^1.12.3",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.4",
+ "regexp.prototype.flags": "^1.4.3",
+ "safe-regex-test": "^1.0.0",
+ "string.prototype.trim": "^1.2.7",
+ "string.prototype.trimend": "^1.0.6",
+ "string.prototype.trimstart": "^1.0.6",
+ "typed-array-length": "^1.0.4",
+ "unbox-primitive": "^1.0.2",
+ "which-typed-array": "^1.1.9"
+ }
+ },
+ "es-set-tostringtag": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz",
+ "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==",
+ "requires": {
+ "get-intrinsic": "^1.1.3",
+ "has": "^1.0.3",
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "es-shim-unscopables": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz",
+ "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==",
+ "requires": {
+ "has": "^1.0.3"
+ }
+ },
+ "es-to-primitive": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
+ "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+ "requires": {
+ "is-callable": "^1.1.4",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.2"
+ }
+ },
"es5-ext": {
"version": "0.10.62",
"resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz",
@@ -6047,6 +10449,11 @@
}
}
},
+ "esbuild-plugin-alias": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/esbuild-plugin-alias/-/esbuild-plugin-alias-0.2.1.tgz",
+ "integrity": "sha512-jyfL/pwPqaFXyKnj8lP8iLk6Z0m099uXR45aSN8Av1XD4vhvQutxxPzgA2bTcAwQpa1zCXDcWOlhFgyP3GKqhQ=="
+ },
"escalade": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
@@ -6128,16 +10535,352 @@
"rocambole": "^0.7.0"
}
},
+ "eslint": {
+ "version": "8.42.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.42.0.tgz",
+ "integrity": "sha512-ulg9Ms6E1WPf67PHaEY4/6E2tEn5/f7FXGzr3t9cBMugOmf1INYvuUwwh1aXQN4MfJ6a5K2iNwP3w4AColvI9A==",
+ "requires": {
+ "@eslint-community/eslint-utils": "^4.2.0",
+ "@eslint-community/regexpp": "^4.4.0",
+ "@eslint/eslintrc": "^2.0.3",
+ "@eslint/js": "8.42.0",
+ "@humanwhocodes/config-array": "^0.11.10",
+ "@humanwhocodes/module-importer": "^1.0.1",
+ "@nodelib/fs.walk": "^1.2.8",
+ "ajv": "^6.10.0",
+ "chalk": "^4.0.0",
+ "cross-spawn": "^7.0.2",
+ "debug": "^4.3.2",
+ "doctrine": "^3.0.0",
+ "escape-string-regexp": "^4.0.0",
+ "eslint-scope": "^7.2.0",
+ "eslint-visitor-keys": "^3.4.1",
+ "espree": "^9.5.2",
+ "esquery": "^1.4.2",
+ "esutils": "^2.0.2",
+ "fast-deep-equal": "^3.1.3",
+ "file-entry-cache": "^6.0.1",
+ "find-up": "^5.0.0",
+ "glob-parent": "^6.0.2",
+ "globals": "^13.19.0",
+ "graphemer": "^1.4.0",
+ "ignore": "^5.2.0",
+ "import-fresh": "^3.0.0",
+ "imurmurhash": "^0.1.4",
+ "is-glob": "^4.0.0",
+ "is-path-inside": "^3.0.3",
+ "js-yaml": "^4.1.0",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.4.1",
+ "lodash.merge": "^4.6.2",
+ "minimatch": "^3.1.2",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.9.1",
+ "strip-ansi": "^6.0.1",
+ "strip-json-comments": "^3.1.0",
+ "text-table": "^0.2.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "escape-string-regexp": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="
+ },
+ "eslint-scope": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz",
+ "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==",
+ "requires": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^5.2.0"
+ }
+ },
+ "estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA=="
+ },
+ "glob-parent": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
+ "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
+ "requires": {
+ "is-glob": "^4.0.3"
+ }
+ },
+ "globals": {
+ "version": "13.20.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz",
+ "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==",
+ "requires": {
+ "type-fest": "^0.20.2"
+ }
+ },
+ "minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "requires": {
+ "ansi-regex": "^5.0.1"
+ }
+ },
+ "type-fest": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ=="
+ }
+ }
+ },
+ "eslint-config-prettier": {
+ "version": "8.8.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz",
+ "integrity": "sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==",
+ "requires": {}
+ },
+ "eslint-formatter-pretty": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-formatter-pretty/-/eslint-formatter-pretty-4.1.0.tgz",
+ "integrity": "sha512-IsUTtGxF1hrH6lMWiSl1WbGaiP01eT6kzywdY1U+zLc0MP+nwEnUiS9UI8IaOTUhTeQJLlCEWIbXINBH4YJbBQ==",
+ "requires": {
+ "@types/eslint": "^7.2.13",
+ "ansi-escapes": "^4.2.1",
+ "chalk": "^4.1.0",
+ "eslint-rule-docs": "^1.1.5",
+ "log-symbols": "^4.0.0",
+ "plur": "^4.0.0",
+ "string-width": "^4.2.0",
+ "supports-hyperlinks": "^2.0.0"
+ }
+ },
+ "eslint-import-resolver-node": {
+ "version": "0.3.7",
+ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz",
+ "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==",
+ "requires": {
+ "debug": "^3.2.7",
+ "is-core-module": "^2.11.0",
+ "resolve": "^1.22.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ }
+ }
+ },
+ "eslint-module-utils": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz",
+ "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==",
+ "requires": {
+ "debug": "^3.2.7"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ }
+ }
+ },
+ "eslint-plugin-import": {
+ "version": "2.27.5",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz",
+ "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==",
+ "requires": {
+ "array-includes": "^3.1.6",
+ "array.prototype.flat": "^1.3.1",
+ "array.prototype.flatmap": "^1.3.1",
+ "debug": "^3.2.7",
+ "doctrine": "^2.1.0",
+ "eslint-import-resolver-node": "^0.3.7",
+ "eslint-module-utils": "^2.7.4",
+ "has": "^1.0.3",
+ "is-core-module": "^2.11.0",
+ "is-glob": "^4.0.3",
+ "minimatch": "^3.1.2",
+ "object.values": "^1.1.6",
+ "resolve": "^1.22.1",
+ "semver": "^6.3.0",
+ "tsconfig-paths": "^3.14.1"
+ },
+ "dependencies": {
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "doctrine": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
+ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
+ "requires": {
+ "esutils": "^2.0.2"
+ }
+ },
+ "minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+ }
+ }
+ },
+ "eslint-rule-docs": {
+ "version": "1.1.235",
+ "resolved": "https://registry.npmjs.org/eslint-rule-docs/-/eslint-rule-docs-1.1.235.tgz",
+ "integrity": "sha512-+TQ+x4JdTnDoFEXXb3fDvfGOwnyNV7duH8fXWTPD1ieaBmB8omj7Gw/pMBBu4uI2uJCCU8APDaQJzWuXnTsH4A=="
+ },
+ "eslint-scope": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
+ "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
+ "requires": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^4.1.1"
+ }
+ },
+ "eslint-visitor-keys": {
+ "version": "3.4.1",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz",
+ "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA=="
+ },
"esm-env": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.0.0.tgz",
"integrity": "sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA=="
},
+ "esm-loader-typescript": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/esm-loader-typescript/-/esm-loader-typescript-1.0.4.tgz",
+ "integrity": "sha512-ejo2f+NKIt23jaJKVpjcRQC0xTa6cTqt6VA+z8Ef/A/TCjQ5u7opPO1J4fJFeTiiHEo8JqU92EG4I1KwuXYZMg==",
+ "requires": {
+ "create-esm-loader": "^0.2.3",
+ "npm-run-all": "^4.1.5",
+ "semver": "^7.3.8",
+ "typescript": "^5.0.2"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "7.5.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz",
+ "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==",
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ },
+ "typescript": {
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.3.tgz",
+ "integrity": "sha512-XH627E9vkeqhlZFQuL+UsyAXEnibT0kWR2FWONlr4sTjvxyJYnyefgrkyECLzM5NenmKzRAy2rR/OlYLA1HkZw=="
+ }
+ }
+ },
+ "espree": {
+ "version": "9.5.2",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.2.tgz",
+ "integrity": "sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==",
+ "requires": {
+ "acorn": "^8.8.0",
+ "acorn-jsx": "^5.3.2",
+ "eslint-visitor-keys": "^3.4.1"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "8.8.2",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz",
+ "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw=="
+ }
+ }
+ },
"esprima": {
"version": "2.7.3",
"resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
"integrity": "sha512-OarPfz0lFCiW4/AV2Oy1Rp9qu0iusTKqykwTspGCZtPxmF81JR4MmIebvF1F9+UOKth2ZubLQ4XGGaU+hSn99A=="
},
+ "esquery": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz",
+ "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==",
+ "requires": {
+ "estraverse": "^5.1.0"
+ },
+ "dependencies": {
+ "estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA=="
+ }
+ }
+ },
+ "esrecurse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
+ "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
+ "requires": {
+ "estraverse": "^5.2.0"
+ },
+ "dependencies": {
+ "estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA=="
+ }
+ }
+ },
+ "estraverse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw=="
+ },
"estree-walker": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz",
@@ -6173,6 +10916,11 @@
}
}
},
+ "fast-deep-equal": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
+ },
"fast-glob": {
"version": "3.2.12",
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz",
@@ -6185,6 +10933,16 @@
"micromatch": "^4.0.4"
}
},
+ "fast-json-stable-stringify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
+ },
+ "fast-levenshtein": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="
+ },
"fastq": {
"version": "1.15.0",
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz",
@@ -6193,6 +10951,23 @@
"reusify": "^1.0.4"
}
},
+ "fetch-blob": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz",
+ "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==",
+ "requires": {
+ "node-domexception": "^1.0.0",
+ "web-streams-polyfill": "^3.0.3"
+ }
+ },
+ "file-entry-cache": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
+ "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
+ "requires": {
+ "flat-cache": "^3.0.4"
+ }
+ },
"fill-range": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
@@ -6201,6 +10976,85 @@
"to-regex-range": "^5.0.1"
}
},
+ "find-up": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
+ "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
+ "requires": {
+ "locate-path": "^6.0.0",
+ "path-exists": "^4.0.0"
+ }
+ },
+ "flat-cache": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
+ "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
+ "requires": {
+ "flatted": "^3.1.0",
+ "rimraf": "^3.0.2"
+ },
+ "dependencies": {
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "rimraf": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ }
+ }
+ },
+ "flatted": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz",
+ "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ=="
+ },
+ "for-each": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
+ "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
+ "requires": {
+ "is-callable": "^1.1.3"
+ }
+ },
+ "formdata-polyfill": {
+ "version": "4.0.10",
+ "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz",
+ "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==",
+ "requires": {
+ "fetch-blob": "^3.1.2"
+ }
+ },
"fraction.js": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz",
@@ -6223,6 +11077,22 @@
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
},
+ "function.prototype.name": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz",
+ "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.19.0",
+ "functions-have-names": "^1.2.2"
+ }
+ },
+ "functions-have-names": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
+ "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ=="
+ },
"generic-names": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/generic-names/-/generic-names-4.0.0.tgz",
@@ -6231,12 +11101,32 @@
"loader-utils": "^3.2.0"
}
},
+ "get-intrinsic": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz",
+ "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==",
+ "requires": {
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3"
+ }
+ },
"get-port": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz",
"integrity": "sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==",
"dev": true
},
+ "get-symbol-description": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz",
+ "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.1"
+ }
+ },
"glob": {
"version": "8.1.0",
"resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz",
@@ -6262,21 +11152,65 @@
"resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz",
"integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ=="
},
+ "globalthis": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz",
+ "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==",
+ "requires": {
+ "define-properties": "^1.1.3"
+ }
+ },
"globalyzer": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz",
"integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q=="
},
+ "globby": {
+ "version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
+ "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
+ "requires": {
+ "array-union": "^2.1.0",
+ "dir-glob": "^3.0.1",
+ "fast-glob": "^3.2.9",
+ "ignore": "^5.2.0",
+ "merge2": "^1.4.1",
+ "slash": "^3.0.0"
+ }
+ },
"globrex": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz",
"integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg=="
},
+ "gopd": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
+ "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
+ "requires": {
+ "get-intrinsic": "^1.1.3"
+ }
+ },
"graceful-fs": {
"version": "4.2.10",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
"integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA=="
},
+ "grapheme-splitter": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz",
+ "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ=="
+ },
+ "graphemer": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
+ "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag=="
+ },
+ "hard-rejection": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz",
+ "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA=="
+ },
"has": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
@@ -6293,11 +11227,47 @@
"ansi-regex": "^2.0.0"
}
},
+ "has-bigints": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz",
+ "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ=="
+ },
"has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
},
+ "has-property-descriptors": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz",
+ "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==",
+ "requires": {
+ "get-intrinsic": "^1.1.1"
+ }
+ },
+ "has-proto": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz",
+ "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg=="
+ },
+ "has-symbols": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
+ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A=="
+ },
+ "has-tostringtag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
+ "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
+ "requires": {
+ "has-symbols": "^1.0.2"
+ }
+ },
+ "hosted-git-info": {
+ "version": "2.8.9",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
+ "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw=="
+ },
"icss-replace-symbols": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz",
@@ -6309,6 +11279,11 @@
"integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==",
"requires": {}
},
+ "ignore": {
+ "version": "5.2.4",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz",
+ "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ=="
+ },
"import-cwd": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-3.0.0.tgz",
@@ -6317,6 +11292,22 @@
"import-from": "^3.0.0"
}
},
+ "import-fresh": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
+ "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
+ "requires": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ },
+ "dependencies": {
+ "resolve-from": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="
+ }
+ }
+ },
"import-from": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/import-from/-/import-from-3.0.0.tgz",
@@ -6331,6 +11322,16 @@
"integrity": "sha512-C6lLL7EJPY44kBvA80gq4uMsVFw5x3oSKfuMl1cuZ2RkI5+UJqQXgn+6hlUew0y4ig7Ypt4CObAAIzU53Nfpuw==",
"dev": true
},
+ "imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA=="
+ },
+ "indent-string": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
+ "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg=="
+ },
"inflight": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
@@ -6345,6 +11346,16 @@
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
},
+ "internal-slot": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz",
+ "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==",
+ "requires": {
+ "get-intrinsic": "^1.2.0",
+ "has": "^1.0.3",
+ "side-channel": "^1.0.4"
+ }
+ },
"invariant": {
"version": "2.2.4",
"resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
@@ -6353,6 +11364,34 @@
"loose-envify": "^1.0.0"
}
},
+ "irregular-plurals": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-3.5.0.tgz",
+ "integrity": "sha512-1ANGLZ+Nkv1ptFb2pa8oG8Lem4krflKuX/gINiHJHjJUKaJHk/SXk5x6K3J+39/p0h1RQ2saROclJJ+QLvETCQ=="
+ },
+ "is-array-buffer": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz",
+ "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.2.0",
+ "is-typed-array": "^1.1.10"
+ }
+ },
+ "is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg=="
+ },
+ "is-bigint": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
+ "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
+ "requires": {
+ "has-bigints": "^1.0.1"
+ }
+ },
"is-binary-path": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
@@ -6361,6 +11400,15 @@
"binary-extensions": "^2.0.0"
}
},
+ "is-boolean-object": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz",
+ "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ }
+ },
"is-builtin-module": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz",
@@ -6369,6 +11417,11 @@
"builtin-modules": "^3.3.0"
}
},
+ "is-callable": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
+ "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA=="
+ },
"is-core-module": {
"version": "2.11.0",
"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz",
@@ -6377,11 +11430,24 @@
"has": "^1.0.3"
}
},
+ "is-date-object": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
+ "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
+ "requires": {
+ "has-tostringtag": "^1.0.0"
+ }
+ },
"is-extglob": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
"integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="
},
+ "is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
+ },
"is-glob": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
@@ -6395,11 +11461,34 @@
"resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz",
"integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g=="
},
+ "is-negative-zero": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz",
+ "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA=="
+ },
"is-number": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
},
+ "is-number-object": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz",
+ "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==",
+ "requires": {
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-path-inside": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
+ "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ=="
+ },
+ "is-plain-obj": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
+ "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg=="
+ },
"is-reference": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz",
@@ -6408,16 +11497,90 @@
"@types/estree": "*"
}
},
+ "is-regex": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
+ "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-shared-array-buffer": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz",
+ "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==",
+ "requires": {
+ "call-bind": "^1.0.2"
+ }
+ },
+ "is-string": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
+ "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
+ "requires": {
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-symbol": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz",
+ "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==",
+ "requires": {
+ "has-symbols": "^1.0.2"
+ }
+ },
+ "is-typed-array": {
+ "version": "1.1.10",
+ "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz",
+ "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==",
+ "requires": {
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.2",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-tostringtag": "^1.0.0"
+ }
+ },
"is-typedarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
"integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA=="
},
+ "is-unicode-supported": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
+ "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw=="
+ },
+ "is-weakref": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
+ "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==",
+ "requires": {
+ "call-bind": "^1.0.2"
+ }
+ },
"isexe": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
},
+ "jest-diff": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.5.0.tgz",
+ "integrity": "sha512-LtxijLLZBduXnHSniy0WMdaHjmQnt3g5sa16W4p0HqukYTTsyTW3GD1q41TyGl5YFXj/5B2U6dlh5FM1LIMgxw==",
+ "requires": {
+ "chalk": "^4.0.0",
+ "diff-sequences": "^29.4.3",
+ "jest-get-type": "^29.4.3",
+ "pretty-format": "^29.5.0"
+ }
+ },
+ "jest-get-type": {
+ "version": "29.4.3",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.4.3.tgz",
+ "integrity": "sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg=="
+ },
"jest-worker": {
"version": "26.6.2",
"resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz",
@@ -6433,11 +11596,66 @@
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
},
+ "js-yaml": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "requires": {
+ "argparse": "^2.0.1"
+ }
+ },
+ "json-parse-better-errors": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
+ "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw=="
+ },
+ "json-parse-even-better-errors": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
+ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w=="
+ },
+ "json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
+ },
+ "json-stable-stringify-without-jsonify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw=="
+ },
+ "json5": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+ "requires": {
+ "minimist": "^1.2.0"
+ }
+ },
+ "jsonc-parser": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz",
+ "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w=="
+ },
+ "kind-of": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw=="
+ },
"kleur": {
"version": "4.1.5",
"resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz",
"integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ=="
},
+ "levn": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
+ "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
+ "requires": {
+ "prelude-ls": "^1.2.1",
+ "type-check": "~0.4.0"
+ }
+ },
"light-bolt11-decoder": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/light-bolt11-decoder/-/light-bolt11-decoder-3.0.0.tgz",
@@ -6451,6 +11669,11 @@
"resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz",
"integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg=="
},
+ "lines-and-columns": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
+ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="
+ },
"livereload": {
"version": "0.9.3",
"resolved": "https://registry.npmjs.org/livereload/-/livereload-0.9.3.tgz",
@@ -6475,6 +11698,24 @@
"resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-3.4.1.tgz",
"integrity": "sha512-5MP0uUeVCec89ZbNOT/i97Mc+q3SxXmiUGhRFOTmhrGPn//uWVQdCvcLJDy64MSBR5MidFdOR7B9viumoavy6g=="
},
+ "load-json-file": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
+ "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==",
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "parse-json": "^4.0.0",
+ "pify": "^3.0.0",
+ "strip-bom": "^3.0.0"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg=="
+ }
+ }
+ },
"loader-utils": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz",
@@ -6486,6 +11727,14 @@
"integrity": "sha512-XfegD5pyTAfb+GY6chk283Ox5z8WexG56OvM06RWLpAc/UHozO8X6xAxEkIitZOtsSMM1Yr3DkHgW5W+onLhCw==",
"dev": true
},
+ "locate-path": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
+ "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
+ "requires": {
+ "p-locate": "^5.0.0"
+ }
+ },
"lodash": {
"version": "4.17.21",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
@@ -6541,6 +11790,15 @@
"resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
"integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ=="
},
+ "log-symbols": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
+ "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
+ "requires": {
+ "chalk": "^4.1.0",
+ "is-unicode-supported": "^0.1.0"
+ }
+ },
"loose-envify": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
@@ -6558,6 +11816,19 @@
"tslib": "^2.0.3"
}
},
+ "lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ },
+ "lunr": {
+ "version": "2.3.9",
+ "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz",
+ "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow=="
+ },
"magic-string": {
"version": "0.27.0",
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz",
@@ -6566,11 +11837,79 @@
"@jridgewell/sourcemap-codec": "^1.4.13"
}
},
+ "map-obj": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz",
+ "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ=="
+ },
+ "marked": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz",
+ "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A=="
+ },
"mdn-data": {
"version": "2.0.14",
"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz",
"integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow=="
},
+ "memorystream": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz",
+ "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw=="
+ },
+ "meow": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz",
+ "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==",
+ "requires": {
+ "@types/minimist": "^1.2.0",
+ "camelcase-keys": "^6.2.2",
+ "decamelize": "^1.2.0",
+ "decamelize-keys": "^1.1.0",
+ "hard-rejection": "^2.1.0",
+ "minimist-options": "4.1.0",
+ "normalize-package-data": "^3.0.0",
+ "read-pkg-up": "^7.0.1",
+ "redent": "^3.0.0",
+ "trim-newlines": "^3.0.0",
+ "type-fest": "^0.18.0",
+ "yargs-parser": "^20.2.3"
+ },
+ "dependencies": {
+ "hosted-git-info": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
+ "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==",
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ },
+ "normalize-package-data": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz",
+ "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==",
+ "requires": {
+ "hosted-git-info": "^4.0.1",
+ "is-core-module": "^2.5.0",
+ "semver": "^7.3.4",
+ "validate-npm-package-license": "^3.0.1"
+ }
+ },
+ "semver": {
+ "version": "7.5.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz",
+ "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==",
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ },
+ "type-fest": {
+ "version": "0.18.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz",
+ "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw=="
+ }
+ }
+ },
"merge-stream": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
@@ -6618,6 +11957,16 @@
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz",
"integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g=="
},
+ "minimist-options": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz",
+ "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==",
+ "requires": {
+ "arrify": "^1.0.1",
+ "is-plain-obj": "^1.1.0",
+ "kind-of": "^6.0.3"
+ }
+ },
"mkdirp": {
"version": "0.5.6",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
@@ -6651,11 +12000,26 @@
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
"integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw=="
},
+ "natural-compare": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="
+ },
+ "natural-compare-lite": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz",
+ "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g=="
+ },
"next-tick": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz",
"integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ=="
},
+ "nice-try": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
+ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ=="
+ },
"no-case": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz",
@@ -6671,6 +12035,21 @@
"resolved": "https://registry.npmjs.org/noble-secp256k1/-/noble-secp256k1-1.2.14.tgz",
"integrity": "sha512-GSCXyoZBUaaPwVWdYncMEmzlSUjF9J/YeEHpklYJCyg8wPuJP3NzDx0BkiwArzINkdX2HJHvUJhL6vVWPOQQcg=="
},
+ "node-domexception": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz",
+ "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ=="
+ },
+ "node-fetch": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.1.tgz",
+ "integrity": "sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==",
+ "requires": {
+ "data-uri-to-buffer": "^4.0.0",
+ "fetch-blob": "^3.1.4",
+ "formdata-polyfill": "^4.0.10"
+ }
+ },
"node-gyp-build": {
"version": "4.6.0",
"resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz",
@@ -6681,6 +12060,17 @@
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.9.tgz",
"integrity": "sha512-2xfmOrRkGogbTK9R6Leda0DGiXeY3p2NJpy4+gNCffdUvV6mdEJnaDEic1i3Ec2djAo8jWYoJMR5PB0MSMpxUA=="
},
+ "normalize-package-data": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
+ "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
+ "requires": {
+ "hosted-git-info": "^2.1.4",
+ "resolve": "^1.10.0",
+ "semver": "2 || 3 || 4 || 5",
+ "validate-npm-package-license": "^3.0.1"
+ }
+ },
"normalize-path": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
@@ -6722,16 +12112,15 @@
}
},
"nostr-tools": {
- "version": "1.7.4",
- "resolved": "https://registry.npmjs.org/nostr-tools/-/nostr-tools-1.7.4.tgz",
- "integrity": "sha512-YowDJ+S3UW9KCYPDZfZXXMITrJSMjiCmFOK5HohyKkg+w6EipFUTkFRBPRA2BTLXO/qw8gukKXfL0B7Dv3jtcQ==",
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/nostr-tools/-/nostr-tools-1.11.1.tgz",
+ "integrity": "sha512-b8BpCiD3wxjBZwrn0wc+CkVj6/7s4sQxp+Az7UkCG80mJu7xTspZsOoUP/geBNwZVYETzEwj+CPBvW8WIP8mBQ==",
"requires": {
- "@noble/hashes": "1.0.0",
- "@noble/secp256k1": "^1.7.1",
- "@scure/base": "^1.1.1",
- "@scure/bip32": "^1.1.5",
- "@scure/bip39": "^1.1.1",
- "prettier": "^2.8.4"
+ "@noble/curves": "1.0.0",
+ "@noble/hashes": "1.3.0",
+ "@scure/base": "1.1.1",
+ "@scure/bip32": "1.3.0",
+ "@scure/bip39": "1.2.0"
}
},
"npm-path": {
@@ -6753,6 +12142,120 @@
"serializerr": "^1.0.3"
}
},
+ "npm-run-all": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz",
+ "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==",
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "chalk": "^2.4.1",
+ "cross-spawn": "^6.0.5",
+ "memorystream": "^0.3.1",
+ "minimatch": "^3.0.4",
+ "pidtree": "^0.3.0",
+ "read-pkg": "^3.0.0",
+ "shell-quote": "^1.6.1",
+ "string.prototype.padend": "^3.0.0"
+ },
+ "dependencies": {
+ "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==",
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.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==",
+ "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": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+ },
+ "cross-spawn": {
+ "version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+ "requires": {
+ "nice-try": "^1.0.4",
+ "path-key": "^2.0.1",
+ "semver": "^5.5.0",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ }
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw=="
+ },
+ "minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw=="
+ },
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
+ },
+ "shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==",
+ "requires": {
+ "shebang-regex": "^1.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ=="
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
"npm-which": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/npm-which/-/npm-which-3.0.1.tgz",
@@ -6783,6 +12286,37 @@
"resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz",
"integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw=="
},
+ "object-inspect": {
+ "version": "1.12.3",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz",
+ "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g=="
+ },
+ "object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="
+ },
+ "object.assign": {
+ "version": "4.1.4",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz",
+ "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "has-symbols": "^1.0.3",
+ "object-keys": "^1.1.1"
+ }
+ },
+ "object.values": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz",
+ "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
+ }
+ },
"once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
@@ -6796,6 +12330,19 @@
"resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz",
"integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A=="
},
+ "optionator": {
+ "version": "0.9.1",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
+ "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
+ "requires": {
+ "deep-is": "^0.1.3",
+ "fast-levenshtein": "^2.0.6",
+ "levn": "^0.4.1",
+ "prelude-ls": "^1.2.1",
+ "type-check": "^0.4.0",
+ "word-wrap": "^1.2.3"
+ }
+ },
"opts": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/opts/-/opts-2.0.2.tgz",
@@ -6811,6 +12358,22 @@
"resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
"integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow=="
},
+ "p-limit": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
+ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
+ "requires": {
+ "yocto-queue": "^0.1.0"
+ }
+ },
+ "p-locate": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
+ "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
+ "requires": {
+ "p-limit": "^3.0.2"
+ }
+ },
"p-queue": {
"version": "6.6.2",
"resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz",
@@ -6835,6 +12398,28 @@
"p-finally": "^1.0.0"
}
},
+ "p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="
+ },
+ "parent-module": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+ "requires": {
+ "callsites": "^3.0.0"
+ }
+ },
+ "parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==",
+ "requires": {
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1"
+ }
+ },
"pascal-case": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz",
@@ -6845,16 +12430,31 @@
"tslib": "^2.0.3"
}
},
+ "path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="
+ },
"path-is-absolute": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
"integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg=="
},
+ "path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="
+ },
"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=="
},
+ "path-type": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw=="
+ },
"picocolors": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
@@ -6865,11 +12465,24 @@
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="
},
+ "pidtree": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz",
+ "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA=="
+ },
"pify": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
"integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog=="
},
+ "plur": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/plur/-/plur-4.0.0.tgz",
+ "integrity": "sha512-4UGewrYgqDFw9vV6zNV+ADmPAUAfJPKtGvb/VdpQAx25X5f3xXdGdyOEVFwkl8Hl/tl7+xbeHqSEM+D5/TirUg==",
+ "requires": {
+ "irregular-plurals": "^3.2.0"
+ }
+ },
"postcss": {
"version": "8.4.21",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz",
@@ -7200,10 +12813,27 @@
"resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
"integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="
},
- "prettier": {
- "version": "2.8.4",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.4.tgz",
- "integrity": "sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw=="
+ "prelude-ls": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
+ "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g=="
+ },
+ "pretty-format": {
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.5.0.tgz",
+ "integrity": "sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==",
+ "requires": {
+ "@jest/schemas": "^29.4.3",
+ "ansi-styles": "^5.0.0",
+ "react-is": "^18.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
+ "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA=="
+ }
+ }
},
"promise.series": {
"version": "0.2.0",
@@ -7215,6 +12845,11 @@
"resolved": "https://registry.npmjs.org/protochain/-/protochain-1.0.5.tgz",
"integrity": "sha512-4hDwFSX50C4NE6f/6zg8EPr/WLPTkFPUtG0ulWZu6bwzV2hmb50fpdQLr0HiKBAUehapaFpItzWoCLjraLJhUA=="
},
+ "punycode": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz",
+ "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA=="
+ },
"queue-microtask": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
@@ -7242,6 +12877,11 @@
"loose-envify": "^1.1.0"
}
},
+ "react-is": {
+ "version": "18.2.0",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
+ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w=="
+ },
"read-cache": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
@@ -7250,6 +12890,110 @@
"pify": "^2.3.0"
}
},
+ "read-pkg": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
+ "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==",
+ "requires": {
+ "load-json-file": "^4.0.0",
+ "normalize-package-data": "^2.3.2",
+ "path-type": "^3.0.0"
+ },
+ "dependencies": {
+ "path-type": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
+ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
+ "requires": {
+ "pify": "^3.0.0"
+ }
+ },
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg=="
+ }
+ }
+ },
+ "read-pkg-up": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz",
+ "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==",
+ "requires": {
+ "find-up": "^4.1.0",
+ "read-pkg": "^5.2.0",
+ "type-fest": "^0.8.1"
+ },
+ "dependencies": {
+ "find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "requires": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ }
+ },
+ "locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "requires": {
+ "p-locate": "^4.1.0"
+ }
+ },
+ "p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "requires": {
+ "p-try": "^2.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "requires": {
+ "p-limit": "^2.2.0"
+ }
+ },
+ "parse-json": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
+ "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
+ "requires": {
+ "@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"
+ }
+ },
+ "read-pkg": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
+ "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==",
+ "requires": {
+ "@types/normalize-package-data": "^2.4.0",
+ "normalize-package-data": "^2.5.0",
+ "parse-json": "^5.0.0",
+ "type-fest": "^0.6.0"
+ },
+ "dependencies": {
+ "type-fest": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz",
+ "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg=="
+ }
+ }
+ },
+ "type-fest": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
+ "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA=="
+ }
+ }
+ },
"readdirp": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
@@ -7258,11 +13002,30 @@
"picomatch": "^2.2.1"
}
},
+ "redent": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz",
+ "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==",
+ "requires": {
+ "indent-string": "^4.0.0",
+ "strip-indent": "^3.0.0"
+ }
+ },
"regenerator-runtime": {
"version": "0.11.1",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
"integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
},
+ "regexp.prototype.flags": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz",
+ "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "functions-have-names": "^1.2.3"
+ }
+ },
"repeat-string": {
"version": "1.6.1",
"resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
@@ -7572,6 +13335,16 @@
"resolved": "https://registry.npmjs.org/safe-identifier/-/safe-identifier-0.4.2.tgz",
"integrity": "sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w=="
},
+ "safe-regex-test": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz",
+ "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.3",
+ "is-regex": "^1.1.4"
+ }
+ },
"sander": {
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/sander/-/sander-0.5.1.tgz",
@@ -7615,6 +13388,45 @@
"resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.5.1.tgz",
"integrity": "sha512-1jeBGaKNGdEq4FgIrORu/N570dwoPYio8lSoYLWmX7sQ//0JY08Xh9o5pBcgmHQ/MbsYp/aZnOe1s1lIsbLprQ=="
},
+ "shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "requires": {
+ "shebang-regex": "^3.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="
+ },
+ "shell-quote": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz",
+ "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA=="
+ },
+ "shiki": {
+ "version": "0.14.2",
+ "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.2.tgz",
+ "integrity": "sha512-ltSZlSLOuSY0M0Y75KA+ieRaZ0Trf5Wl3gutE7jzLuIcWxLp5i/uEnLoQWNvgKXQ5OMpGkJnVMRLAuzjc0LJ2A==",
+ "requires": {
+ "ansi-sequence-parser": "^1.1.0",
+ "jsonc-parser": "^3.2.0",
+ "vscode-oniguruma": "^1.7.0",
+ "vscode-textmate": "^8.0.0"
+ }
+ },
+ "side-channel": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
+ "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
+ "requires": {
+ "call-bind": "^1.0.0",
+ "get-intrinsic": "^1.0.2",
+ "object-inspect": "^1.9.0"
+ }
+ },
"sirv": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.2.tgz",
@@ -7641,6 +13453,11 @@
"tinydate": "^1.0.0"
}
},
+ "slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="
+ },
"sorcery": {
"version": "0.11.0",
"resolved": "https://registry.npmjs.org/sorcery/-/sorcery-0.11.0.tgz",
@@ -7676,6 +13493,34 @@
"resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
"integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA=="
},
+ "spdx-correct": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz",
+ "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==",
+ "requires": {
+ "spdx-expression-parse": "^3.0.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "spdx-exceptions": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz",
+ "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A=="
+ },
+ "spdx-expression-parse": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
+ "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
+ "requires": {
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "spdx-license-ids": {
+ "version": "3.0.13",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz",
+ "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w=="
+ },
"stable": {
"version": "0.1.8",
"resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz",
@@ -7696,6 +13541,76 @@
"resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz",
"integrity": "sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A=="
},
+ "string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
+ },
+ "emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
+ },
+ "strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "requires": {
+ "ansi-regex": "^5.0.1"
+ }
+ }
+ }
+ },
+ "string.prototype.padend": {
+ "version": "3.1.4",
+ "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.4.tgz",
+ "integrity": "sha512-67otBXoksdjsnXXRUq+KMVTdlVRZ2af422Y0aTyTjVaoQkGr3mxl2Bc5emi7dOQ3OGVVQQskmLEWwFXwommpNw==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
+ }
+ },
+ "string.prototype.trim": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz",
+ "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
+ }
+ },
+ "string.prototype.trimend": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz",
+ "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
+ }
+ },
+ "string.prototype.trimstart": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz",
+ "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
+ }
+ },
"strip-ansi": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
@@ -7704,6 +13619,11 @@
"ansi-regex": "^2.0.0"
}
},
+ "strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA=="
+ },
"strip-indent": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
@@ -7739,6 +13659,15 @@
"has-flag": "^4.0.0"
}
},
+ "supports-hyperlinks": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz",
+ "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==",
+ "requires": {
+ "has-flag": "^4.0.0",
+ "supports-color": "^7.0.0"
+ }
+ },
"supports-preserve-symlinks-flag": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
@@ -7866,6 +13795,11 @@
}
}
},
+ "text-table": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw=="
+ },
"tiny-glob": {
"version": "0.2.9",
"resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz",
@@ -7899,6 +13833,36 @@
"resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.0.tgz",
"integrity": "sha512-eM+pCBxXO/njtF7vdFsHuqb+ElbxqtI4r5EAvk6grfAFyJ6IvWlSkfZ5T9ozC6xWw3Fj1fGoSmrl0gUs46JVIw=="
},
+ "trim-newlines": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz",
+ "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw=="
+ },
+ "tsconfig-paths": {
+ "version": "3.14.2",
+ "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz",
+ "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==",
+ "requires": {
+ "@types/json5": "^0.0.29",
+ "json5": "^1.0.2",
+ "minimist": "^1.2.6",
+ "strip-bom": "^3.0.0"
+ }
+ },
+ "tsd": {
+ "version": "0.28.1",
+ "resolved": "https://registry.npmjs.org/tsd/-/tsd-0.28.1.tgz",
+ "integrity": "sha512-FeYrfJ05QgEMW/qOukNCr4fAJHww4SaKnivAXRv4g5kj4FeLpNV7zH4dorzB9zAfVX4wmA7zWu/wQf7kkcvfbw==",
+ "requires": {
+ "@tsd/typescript": "~5.0.2",
+ "eslint-formatter-pretty": "^4.1.0",
+ "globby": "^11.0.1",
+ "jest-diff": "^29.0.3",
+ "meow": "^9.0.0",
+ "path-exists": "^4.0.0",
+ "read-pkg-up": "^7.0.0"
+ }
+ },
"tslib": {
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz",
@@ -7910,11 +13874,49 @@
"resolved": "https://registry.npmjs.org/tstl/-/tstl-2.5.13.tgz",
"integrity": "sha512-h9wayHHFI5+yqt8iau0vqH96cTNhezhZ/Fk/hrIdpfkiMu3lg9nzyvMfs5bIdX51IVzZO6DudLqhkL/rVXpT6g=="
},
+ "tsutils": {
+ "version": "3.21.0",
+ "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz",
+ "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==",
+ "requires": {
+ "tslib": "^1.8.1"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
+ }
+ }
+ },
"type": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz",
"integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg=="
},
+ "type-check": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
+ "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
+ "requires": {
+ "prelude-ls": "^1.2.1"
+ }
+ },
+ "type-fest": {
+ "version": "0.21.3",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
+ "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w=="
+ },
+ "typed-array-length": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz",
+ "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "for-each": "^0.3.3",
+ "is-typed-array": "^1.1.9"
+ }
+ },
"typedarray-to-buffer": {
"version": "3.1.5",
"resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
@@ -7923,11 +13925,43 @@
"is-typedarray": "^1.0.0"
}
},
+ "typedoc": {
+ "version": "0.24.8",
+ "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.24.8.tgz",
+ "integrity": "sha512-ahJ6Cpcvxwaxfu4KtjA8qZNqS43wYt6JL27wYiIgl1vd38WW/KWX11YuAeZhuz9v+ttrutSsgK+XO1CjL1kA3w==",
+ "requires": {
+ "lunr": "^2.3.9",
+ "marked": "^4.3.0",
+ "minimatch": "^9.0.0",
+ "shiki": "^0.14.1"
+ },
+ "dependencies": {
+ "minimatch": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.1.tgz",
+ "integrity": "sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==",
+ "requires": {
+ "brace-expansion": "^2.0.1"
+ }
+ }
+ }
+ },
"typescript": {
"version": "4.9.5",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
"integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g=="
},
+ "unbox-primitive": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
+ "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "has-bigints": "^1.0.2",
+ "has-symbols": "^1.0.3",
+ "which-boxed-primitive": "^1.0.2"
+ }
+ },
"undici": {
"version": "5.21.0",
"resolved": "https://registry.npmjs.org/undici/-/undici-5.21.0.tgz",
@@ -7945,6 +13979,14 @@
"picocolors": "^1.0.0"
}
},
+ "uri-js": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "requires": {
+ "punycode": "^2.1.0"
+ }
+ },
"user-home": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz",
@@ -7961,6 +14003,11 @@
"node-gyp-build": "^4.3.0"
}
},
+ "utf8-buffer": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/utf8-buffer/-/utf8-buffer-1.0.0.tgz",
+ "integrity": "sha512-ueuhzvWnp5JU5CiGSY4WdKbiN/PO2AZ/lpeLiz2l38qwdLy/cW40XobgyuIWucNyum0B33bVB0owjFCeGBSLqg=="
+ },
"util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
@@ -7971,6 +14018,15 @@
"resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz",
"integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg=="
},
+ "validate-npm-package-license": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
+ "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
+ "requires": {
+ "spdx-correct": "^3.0.0",
+ "spdx-expression-parse": "^3.0.0"
+ }
+ },
"vite": {
"version": "4.1.4",
"resolved": "https://registry.npmjs.org/vite/-/vite-4.1.4.tgz",
@@ -7999,6 +14055,21 @@
"integrity": "sha512-fanAXjSaf9xXtOOeno8wZXIhgia+CZury481LsDaV++lSvcU2R9Ch2bPh3PYFyoHW+w9LqAeYRISVQjUIew14g==",
"requires": {}
},
+ "vscode-oniguruma": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz",
+ "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA=="
+ },
+ "vscode-textmate": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-8.0.0.tgz",
+ "integrity": "sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg=="
+ },
+ "web-streams-polyfill": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz",
+ "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q=="
+ },
"webln": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/webln/-/webln-0.3.2.tgz",
@@ -8052,6 +14123,36 @@
"isexe": "^2.0.0"
}
},
+ "which-boxed-primitive": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
+ "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
+ "requires": {
+ "is-bigint": "^1.0.1",
+ "is-boolean-object": "^1.1.0",
+ "is-number-object": "^1.0.4",
+ "is-string": "^1.0.5",
+ "is-symbol": "^1.0.3"
+ }
+ },
+ "which-typed-array": {
+ "version": "1.1.9",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz",
+ "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==",
+ "requires": {
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.2",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-tostringtag": "^1.0.0",
+ "is-typed-array": "^1.1.10"
+ }
+ },
+ "word-wrap": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
+ "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ=="
+ },
"wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
@@ -8073,10 +14174,25 @@
"resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz",
"integrity": "sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug=="
},
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ },
"yaml": {
"version": "1.10.2",
"resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
"integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg=="
+ },
+ "yargs-parser": {
+ "version": "20.2.9",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
+ "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w=="
+ },
+ "yocto-queue": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
+ "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="
}
}
}
diff --git a/package.json b/package.json
index c037296..1c3d566 100644
--- a/package.json
+++ b/package.json
@@ -25,6 +25,7 @@
"type": "module",
"dependencies": {
"@nostr-connect/connect": "^0.2.3",
+ "@nostr-dev-kit/ndk": "^0.3.32",
"@rollup/plugin-commonjs": "^24.0.1",
"@rollup/plugin-json": "^6.0.0",
"@rollup/plugin-typescript": "^11.0.0",
@@ -36,7 +37,7 @@
"light-bolt11-decoder": "^3.0.0",
"nostr": "^0.2.7",
"nostr-dev-kit": "file:../../nostr/ndk/nostr-dev-kit",
- "nostr-tools": "^1.2.1",
+ "nostr-tools": "^1.11.1",
"rollup-plugin-css-only": "^4.3.0",
"rollup-plugin-esformatter": "^3.0.0",
"rollup-plugin-livereload": "^2.0.5",
diff --git a/public/bundle.css b/public/bundle.css
new file mode 100644
index 0000000..c0a049a
--- /dev/null
+++ b/public/bundle.css
@@ -0,0 +1,6 @@
+.qr.svelte-2fcki1.svelte-2fcki1{display:block;shape-rendering:crispEdges;transform:translateZ(0)}.qr.svelte-2fcki1 rect.svelte-2fcki1{fill:var(--qr-color, 'currentColor')}
+.svelte-117e9f7,.svelte-117e9f7::before,.svelte-117e9f7::after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}.svelte-117e9f7::before,.svelte-117e9f7::after{--tw-content:''}h1.svelte-117e9f7{font-size:inherit;font-weight:inherit}button.svelte-117e9f7{font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button.svelte-117e9f7{text-transform:none}button.svelte-117e9f7{-webkit-appearance:button;background-color:transparent;background-image:none}.svelte-117e9f7:-moz-focusring{outline:auto}.svelte-117e9f7:-moz-ui-invalid{box-shadow:none}.svelte-117e9f7::-webkit-inner-spin-button,.svelte-117e9f7::-webkit-outer-spin-button{height:auto}.svelte-117e9f7::-webkit-search-decoration{-webkit-appearance:none}.svelte-117e9f7::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}h1.svelte-117e9f7,p.svelte-117e9f7{margin:0}button.svelte-117e9f7{cursor:pointer}.svelte-117e9f7:disabled{cursor:default}.svelte-117e9f7,.svelte-117e9f7::before,.svelte-117e9f7::after{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.svelte-117e9f7::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }@media(min-width: 640px){}@media(min-width: 768px){}@media(min-width: 1024px){}@media(min-width: 1280px){}@media(min-width: 1536px){}.mb-3.svelte-117e9f7{margin-bottom:0.75rem}.flex.svelte-117e9f7{display:flex}.w-full.svelte-117e9f7{width:100%}.flex-col.svelte-117e9f7{flex-direction:column}.gap-1.svelte-117e9f7{gap:0.25rem}.rounded-xl.svelte-117e9f7{border-radius:0.75rem}.bg-white.svelte-117e9f7{--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.bg-purple-900.svelte-117e9f7{--tw-bg-opacity:1;background-color:rgb(88 28 135 / var(--tw-bg-opacity))}.p-2.svelte-117e9f7{padding:0.5rem}.p-3.svelte-117e9f7{padding:0.75rem}.p-4.svelte-117e9f7{padding:1rem}.text-center.svelte-117e9f7{text-align:center}.text-xs.svelte-117e9f7{font-size:0.75rem;line-height:1rem}.text-xl.svelte-117e9f7{font-size:1.25rem;line-height:1.75rem}.font-bold.svelte-117e9f7{font-weight:700}.text-white.svelte-117e9f7{--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity))}.text-gray-200.svelte-117e9f7{--tw-text-opacity:1;color:rgb(229 231 235 / var(--tw-text-opacity))}.text-gray-600.svelte-117e9f7{--tw-text-opacity:1;color:rgb(75 85 99 / var(--tw-text-opacity))}.text-gray-400.svelte-117e9f7{--tw-text-opacity:1;color:rgb(156 163 175 / var(--tw-text-opacity))}.text-gray-300.svelte-117e9f7{--tw-text-opacity:1;color:rgb(209 213 219 / var(--tw-text-opacity))}.hover\:bg-purple-700.svelte-117e9f7:hover{--tw-bg-opacity:1;background-color:rgb(126 34 206 / var(--tw-bg-opacity))}@media(prefers-color-scheme: dark){}@media(min-width: 768px){}@media(min-width: 1024px){}@media(min-width: 1280px){}
+.svelte-t9ifgy,.svelte-t9ifgy::before,.svelte-t9ifgy::after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}.svelte-t9ifgy::before,.svelte-t9ifgy::after{--tw-content:''}.svelte-t9ifgy:-moz-focusring{outline:auto}.svelte-t9ifgy:-moz-ui-invalid{box-shadow:none}.svelte-t9ifgy::-webkit-inner-spin-button,.svelte-t9ifgy::-webkit-outer-spin-button{height:auto}.svelte-t9ifgy::-webkit-search-decoration{-webkit-appearance:none}.svelte-t9ifgy::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}.svelte-t9ifgy:disabled{cursor:default}img.svelte-t9ifgy{display:block;vertical-align:middle}img.svelte-t9ifgy{max-width:100%;height:auto}.svelte-t9ifgy,.svelte-t9ifgy::before,.svelte-t9ifgy::after{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.svelte-t9ifgy::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }@media(min-width: 640px){}@media(min-width: 768px){}@media(min-width: 1024px){}@media(min-width: 1280px){}@media(min-width: 1536px){}.mb-3.svelte-t9ifgy{margin-bottom:0.75rem}.mt-1.svelte-t9ifgy{margin-top:0.25rem}.mb-10.svelte-t9ifgy{margin-bottom:2.5rem}.block.svelte-t9ifgy{display:block}.flex.svelte-t9ifgy{display:flex}.h-10.svelte-t9ifgy{height:2.5rem}.max-h-64.svelte-t9ifgy{max-height:16rem}.w-full.svelte-t9ifgy{width:100%}.w-10.svelte-t9ifgy{width:2.5rem}.min-w-fit.svelte-t9ifgy{min-width:-moz-fit-content;min-width:fit-content}.cursor-pointer.svelte-t9ifgy{cursor:pointer}.flex-row.svelte-t9ifgy{flex-direction:row}.flex-row-reverse.svelte-t9ifgy{flex-direction:row-reverse}.items-center.svelte-t9ifgy{align-items:center}.justify-between.svelte-t9ifgy{justify-content:space-between}.gap-4.svelte-t9ifgy{gap:1rem}.overflow-auto.svelte-t9ifgy{overflow:auto}.overflow-hidden.svelte-t9ifgy{overflow:hidden}.overflow-clip.svelte-t9ifgy{overflow:clip}.text-ellipsis.svelte-t9ifgy{text-overflow:ellipsis}.text-clip.svelte-t9ifgy{text-overflow:clip}.whitespace-nowrap.svelte-t9ifgy{white-space:nowrap}.rounded-full.svelte-t9ifgy{border-radius:9999px}.rounded-2xl.svelte-t9ifgy{border-radius:1rem}.border.svelte-t9ifgy{border-width:1px}.border-l.svelte-t9ifgy{border-left-width:1px}.border-slate-200.svelte-t9ifgy{--tw-border-opacity:1;border-color:rgb(226 232 240 / var(--tw-border-opacity))}.border-l-gray-400.svelte-t9ifgy{--tw-border-opacity:1;border-left-color:rgb(156 163 175 / var(--tw-border-opacity))}.bg-purple-700.svelte-t9ifgy{--tw-bg-opacity:1;background-color:rgb(126 34 206 / var(--tw-bg-opacity))}.bg-slate-50.svelte-t9ifgy{--tw-bg-opacity:1;background-color:rgb(248 250 252 / var(--tw-bg-opacity))}.p-4.svelte-t9ifgy{padding:1rem}.py-2.svelte-t9ifgy{padding-top:0.5rem;padding-bottom:0.5rem}.pl-5.svelte-t9ifgy{padding-left:1.25rem}.text-center.svelte-t9ifgy{text-align:center}.text-xs.svelte-t9ifgy{font-size:0.75rem;line-height:1rem}.text-base.svelte-t9ifgy{font-size:1rem;line-height:1.5rem}.text-white.svelte-t9ifgy{--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity))}.text-gray-400.svelte-t9ifgy{--tw-text-opacity:1;color:rgb(156 163 175 / var(--tw-text-opacity))}.text-gray-500.svelte-t9ifgy{--tw-text-opacity:1;color:rgb(107 114 128 / var(--tw-text-opacity))}.text-purple-500.svelte-t9ifgy{--tw-text-opacity:1;color:rgb(168 85 247 / var(--tw-text-opacity))}.ring-4.svelte-t9ifgy{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000)}.ring-2.svelte-t9ifgy{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000)}.ring-purple-700.svelte-t9ifgy{--tw-ring-opacity:1;--tw-ring-color:rgb(126 34 206 / var(--tw-ring-opacity))}.ring-gray-300.svelte-t9ifgy{--tw-ring-opacity:1;--tw-ring-color:rgb(209 213 219 / var(--tw-ring-opacity))}.hover\:bg-slate-100.svelte-t9ifgy:hover{--tw-bg-opacity:1;background-color:rgb(241 245 249 / var(--tw-bg-opacity))}@media(prefers-color-scheme: dark){}@media(min-width: 768px){}@media(min-width: 1024px){}@media(min-width: 1280px){}
+.svelte-117e9f7,.svelte-117e9f7::before,.svelte-117e9f7::after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}.svelte-117e9f7::before,.svelte-117e9f7::after{--tw-content:''}h1.svelte-117e9f7{font-size:inherit;font-weight:inherit}a.svelte-117e9f7{color:inherit;text-decoration:inherit}b.svelte-117e9f7{font-weight:bolder}button.svelte-117e9f7,textarea.svelte-117e9f7{font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button.svelte-117e9f7{text-transform:none}button.svelte-117e9f7,[type='button'].svelte-117e9f7{-webkit-appearance:button;background-color:transparent;background-image:none}.svelte-117e9f7:-moz-focusring{outline:auto}.svelte-117e9f7:-moz-ui-invalid{box-shadow:none}.svelte-117e9f7::-webkit-inner-spin-button,.svelte-117e9f7::-webkit-outer-spin-button{height:auto}.svelte-117e9f7::-webkit-search-decoration{-webkit-appearance:none}.svelte-117e9f7::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}h1.svelte-117e9f7{margin:0}textarea.svelte-117e9f7{resize:vertical}textarea.svelte-117e9f7::-moz-placeholder{opacity:1;color:#9ca3af}textarea.svelte-117e9f7::placeholder{opacity:1;color:#9ca3af}button.svelte-117e9f7{cursor:pointer}.svelte-117e9f7:disabled{cursor:default}svg.svelte-117e9f7{display:block;vertical-align:middle}.svelte-117e9f7,.svelte-117e9f7::before,.svelte-117e9f7::after{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.svelte-117e9f7::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }@media(min-width: 640px){}@media(min-width: 768px){}@media(min-width: 1024px){}@media(min-width: 1280px){}@media(min-width: 1536px){}.-m-5.svelte-117e9f7{margin:-1.25rem}.-mx-4.svelte-117e9f7{margin-left:-1rem;margin-right:-1rem}.-mx-5.svelte-117e9f7{margin-left:-1.25rem;margin-right:-1.25rem}.my-2.svelte-117e9f7{margin-top:0.5rem;margin-bottom:0.5rem}.-mx-1.svelte-117e9f7{margin-left:-0.25rem;margin-right:-0.25rem}.mb-3.svelte-117e9f7{margin-bottom:0.75rem}.mt-2.svelte-117e9f7{margin-top:0.5rem}.ml-2.svelte-117e9f7{margin-left:0.5rem}.-mb-2.svelte-117e9f7{margin-bottom:-0.5rem}.inline-block.svelte-117e9f7{display:inline-block}.flex.svelte-117e9f7{display:flex}.inline-flex.svelte-117e9f7{display:inline-flex}.h-2.svelte-117e9f7{height:0.5rem}.h-6.svelte-117e9f7{height:1.5rem}.w-2.svelte-117e9f7{width:0.5rem}.w-6.svelte-117e9f7{width:1.5rem}.w-full.svelte-117e9f7{width:100%}.rotate-90.svelte-117e9f7{--tw-rotate:90deg;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize-none.svelte-117e9f7{resize:none}.flex-row.svelte-117e9f7{flex-direction:row}.flex-col.svelte-117e9f7{flex-direction:column}.items-end.svelte-117e9f7{align-items:flex-end}.items-center.svelte-117e9f7{align-items:center}.justify-between.svelte-117e9f7{justify-content:space-between}.gap-1.svelte-117e9f7{gap:0.25rem}.gap-2.svelte-117e9f7{gap:0.5rem}.overflow-auto.svelte-117e9f7{overflow:auto}.overflow-hidden.svelte-117e9f7{overflow:hidden}.overflow-clip.svelte-117e9f7{overflow:clip}.text-ellipsis.svelte-117e9f7{text-overflow:ellipsis}.whitespace-nowrap.svelte-117e9f7{white-space:nowrap}.rounded-full.svelte-117e9f7{border-radius:9999px}.rounded-xl.svelte-117e9f7{border-radius:0.75rem}.border.svelte-117e9f7{border-width:1px}.border-y.svelte-117e9f7{border-top-width:1px;border-bottom-width:1px}.border-transparent.svelte-117e9f7{border-color:transparent}.border-y-slate-200.svelte-117e9f7{--tw-border-opacity:1;border-top-color:rgb(226 232 240 / var(--tw-border-opacity));border-bottom-color:rgb(226 232 240 / var(--tw-border-opacity))}.bg-purple-700.svelte-117e9f7{--tw-bg-opacity:1;background-color:rgb(126 34 206 / var(--tw-bg-opacity))}.bg-green-500.svelte-117e9f7{--tw-bg-opacity:1;background-color:rgb(34 197 94 / var(--tw-bg-opacity))}.bg-gray-300.svelte-117e9f7{--tw-bg-opacity:1;background-color:rgb(209 213 219 / var(--tw-bg-opacity))}.bg-slate-100.svelte-117e9f7{--tw-bg-opacity:1;background-color:rgb(241 245 249 / var(--tw-bg-opacity))}.p-2.svelte-117e9f7{padding:0.5rem}.p-3.svelte-117e9f7{padding:0.75rem}.px-5.svelte-117e9f7{padding-left:1.25rem;padding-right:1.25rem}.py-3.svelte-117e9f7{padding-top:0.75rem;padding-bottom:0.75rem}.px-4.svelte-117e9f7{padding-left:1rem;padding-right:1rem}.py-2.svelte-117e9f7{padding-top:0.5rem;padding-bottom:0.5rem}.text-lg.svelte-117e9f7{font-size:1.125rem;line-height:1.75rem}.text-xs.svelte-117e9f7{font-size:0.75rem;line-height:1rem}.text-sm.svelte-117e9f7{font-size:0.875rem;line-height:1.25rem}.font-semibold.svelte-117e9f7{font-weight:600}.text-white.svelte-117e9f7{--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity))}.text-gray-200.svelte-117e9f7{--tw-text-opacity:1;color:rgb(229 231 235 / var(--tw-text-opacity))}.text-black.svelte-117e9f7{--tw-text-opacity:1;color:rgb(0 0 0 / var(--tw-text-opacity))}.text-gray-600.svelte-117e9f7{--tw-text-opacity:1;color:rgb(75 85 99 / var(--tw-text-opacity))}.shadow-sm.svelte-117e9f7{--tw-shadow:0 1px 2px 0 rgb(0 0 0 / 0.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.hover\:bg-purple-600.svelte-117e9f7:hover{--tw-bg-opacity:1;background-color:rgb(147 51 234 / var(--tw-bg-opacity))}.focus\:outline-none.svelte-117e9f7:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2.svelte-117e9f7:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000)}.focus\:ring-purple-500.svelte-117e9f7:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(168 85 247 / var(--tw-ring-opacity))}.focus\:ring-offset-2.svelte-117e9f7:focus{--tw-ring-offset-width:2px}@media(prefers-color-scheme: dark){}@media(min-width: 768px){}@media(min-width: 1024px){}@media(min-width: 1280px){}
+@media(min-width: 640px){}@media(min-width: 768px){}@media(min-width: 1024px){}@media(min-width: 1280px){}@media(min-width: 1536px){}@media(prefers-color-scheme: dark){}@media(min-width: 768px){}@media(min-width: 1024px){}@media(min-width: 1280px){}
+.svelte-t9ifgy,.svelte-t9ifgy::before,.svelte-t9ifgy::after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}.svelte-t9ifgy::before,.svelte-t9ifgy::after{--tw-content:''}h1.svelte-t9ifgy{font-size:inherit;font-weight:inherit}a.svelte-t9ifgy{color:inherit;text-decoration:inherit}button.svelte-t9ifgy{font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button.svelte-t9ifgy{text-transform:none}button.svelte-t9ifgy{-webkit-appearance:button;background-color:transparent;background-image:none}.svelte-t9ifgy:-moz-focusring{outline:auto}.svelte-t9ifgy:-moz-ui-invalid{box-shadow:none}.svelte-t9ifgy::-webkit-inner-spin-button,.svelte-t9ifgy::-webkit-outer-spin-button{height:auto}.svelte-t9ifgy::-webkit-search-decoration{-webkit-appearance:none}.svelte-t9ifgy::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}h1.svelte-t9ifgy,p.svelte-t9ifgy{margin:0}button.svelte-t9ifgy{cursor:pointer}.svelte-t9ifgy:disabled{cursor:default}svg.svelte-t9ifgy{display:block;vertical-align:middle}.svelte-t9ifgy,.svelte-t9ifgy::before,.svelte-t9ifgy::after{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.svelte-t9ifgy::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }@media(min-width: 640px){}@media(min-width: 768px){}@media(min-width: 1024px){}@media(min-width: 1280px){}@media(min-width: 1536px){}.fixed.svelte-t9ifgy{position:fixed}.bottom-5.svelte-t9ifgy{bottom:1.25rem}.right-5.svelte-t9ifgy{right:1.25rem}.mb-3.svelte-t9ifgy{margin-bottom:0.75rem}.mb-5.svelte-t9ifgy{margin-bottom:1.25rem}.mt-3.svelte-t9ifgy{margin-top:0.75rem}.flex.svelte-t9ifgy{display:flex}.hidden.svelte-t9ifgy{display:none}.w-full.svelte-t9ifgy{width:100%}.w-96.svelte-t9ifgy{width:24rem}.max-w-screen-sm.svelte-t9ifgy{max-width:640px}.flex-row.svelte-t9ifgy{flex-direction:row}.flex-col.svelte-t9ifgy{flex-direction:column}.items-center.svelte-t9ifgy{align-items:center}.gap-4.svelte-t9ifgy{gap:1rem}.self-end.svelte-t9ifgy{align-self:flex-end}.rounded-full.svelte-t9ifgy{border-radius:9999px}.rounded-xl.svelte-t9ifgy{border-radius:0.75rem}.bg-white.svelte-t9ifgy{--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.bg-purple-900.svelte-t9ifgy{--tw-bg-opacity:1;background-color:rgb(88 28 135 / var(--tw-bg-opacity))}.p-2.svelte-t9ifgy{padding:0.5rem}.p-5.svelte-t9ifgy{padding:1.25rem}.py-4.svelte-t9ifgy{padding-top:1rem;padding-bottom:1rem}.text-center.svelte-t9ifgy{text-align:center}.font-sans.svelte-t9ifgy{font-family:ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"}.text-xl.svelte-t9ifgy{font-size:1.25rem;line-height:1.75rem}.text-2xl.svelte-t9ifgy{font-size:1.5rem;line-height:2rem}.font-semibold.svelte-t9ifgy{font-weight:600}.font-bold.svelte-t9ifgy{font-weight:700}.uppercase.svelte-t9ifgy{text-transform:uppercase}.tracking-wide.svelte-t9ifgy{letter-spacing:0.025em}.tracking-wider.svelte-t9ifgy{letter-spacing:0.05em}.text-white.svelte-t9ifgy{--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity))}.text-black.svelte-t9ifgy{--tw-text-opacity:1;color:rgb(0 0 0 / var(--tw-text-opacity))}.text-purple-700.svelte-t9ifgy{--tw-text-opacity:1;color:rgb(126 34 206 / var(--tw-text-opacity))}.text-gray-700.svelte-t9ifgy{--tw-text-opacity:1;color:rgb(55 65 81 / var(--tw-text-opacity))}.text-purple-300.svelte-t9ifgy{--tw-text-opacity:1;color:rgb(216 180 254 / var(--tw-text-opacity))}.shadow-2xl.svelte-t9ifgy{--tw-shadow:0 25px 50px -12px rgb(0 0 0 / 0.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.hover\:bg-purple-700.svelte-t9ifgy:hover{--tw-bg-opacity:1;background-color:rgb(126 34 206 / var(--tw-bg-opacity))}@media(prefers-color-scheme: dark){}@media(min-width: 768px){}@media(min-width: 1024px){}@media(min-width: 1280px){}
diff --git a/public/bundle.js b/public/bundle.js
new file mode 100644
index 0000000..56f2b32
--- /dev/null
+++ b/public/bundle.js
@@ -0,0 +1,15092 @@
+(function () {
+ 'use strict';
+
+ function noop() { }
+ function assign(tar, src) {
+ // @ts-ignore
+ for (const k in src)
+ tar[k] = src[k];
+ return tar;
+ }
+ function run(fn) {
+ return fn();
+ }
+ function blank_object() {
+ return Object.create(null);
+ }
+ function run_all(fns) {
+ fns.forEach(run);
+ }
+ function is_function(thing) {
+ return typeof thing === 'function';
+ }
+ function safe_not_equal(a, b) {
+ return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function');
+ }
+ let src_url_equal_anchor;
+ function src_url_equal(element_src, url) {
+ if (!src_url_equal_anchor) {
+ src_url_equal_anchor = document.createElement('a');
+ }
+ src_url_equal_anchor.href = url;
+ return element_src === src_url_equal_anchor.href;
+ }
+ function is_empty(obj) {
+ return Object.keys(obj).length === 0;
+ }
+ function subscribe(store, ...callbacks) {
+ if (store == null) {
+ return noop;
+ }
+ const unsub = store.subscribe(...callbacks);
+ return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub;
+ }
+ function component_subscribe(component, store, callback) {
+ component.$$.on_destroy.push(subscribe(store, callback));
+ }
+ function set_store_value(store, ret, value) {
+ store.set(value);
+ return ret;
+ }
+
+ const is_client = typeof window !== 'undefined';
+ let now$1 = is_client
+ ? () => window.performance.now()
+ : () => Date.now();
+ let raf = is_client ? cb => requestAnimationFrame(cb) : noop;
+
+ const tasks = new Set();
+ function run_tasks(now) {
+ tasks.forEach(task => {
+ if (!task.c(now)) {
+ tasks.delete(task);
+ task.f();
+ }
+ });
+ if (tasks.size !== 0)
+ raf(run_tasks);
+ }
+ /**
+ * Creates a new task that runs on each raf frame
+ * until it returns a falsy value or is aborted
+ */
+ function loop(callback) {
+ let task;
+ if (tasks.size === 0)
+ raf(run_tasks);
+ return {
+ promise: new Promise(fulfill => {
+ tasks.add(task = { c: callback, f: fulfill });
+ }),
+ abort() {
+ tasks.delete(task);
+ }
+ };
+ }
+ function append(target, node) {
+ target.appendChild(node);
+ }
+ function insert(target, node, anchor) {
+ target.insertBefore(node, anchor || null);
+ }
+ function detach(node) {
+ if (node.parentNode) {
+ node.parentNode.removeChild(node);
+ }
+ }
+ function destroy_each(iterations, detaching) {
+ for (let i = 0; i < iterations.length; i += 1) {
+ if (iterations[i])
+ iterations[i].d(detaching);
+ }
+ }
+ function element(name) {
+ return document.createElement(name);
+ }
+ function svg_element(name) {
+ return document.createElementNS('http://www.w3.org/2000/svg', name);
+ }
+ function text(data) {
+ return document.createTextNode(data);
+ }
+ function space() {
+ return text(' ');
+ }
+ function empty() {
+ return text('');
+ }
+ function listen(node, event, handler, options) {
+ node.addEventListener(event, handler, options);
+ return () => node.removeEventListener(event, handler, options);
+ }
+ function prevent_default(fn) {
+ return function (event) {
+ event.preventDefault();
+ // @ts-ignore
+ return fn.call(this, event);
+ };
+ }
+ function attr(node, attribute, value) {
+ if (value == null)
+ node.removeAttribute(attribute);
+ else if (node.getAttribute(attribute) !== value)
+ node.setAttribute(attribute, value);
+ }
+ function set_svg_attributes(node, attributes) {
+ for (const key in attributes) {
+ attr(node, key, attributes[key]);
+ }
+ }
+ function children(element) {
+ return Array.from(element.childNodes);
+ }
+ function set_data(text, data) {
+ data = '' + data;
+ if (text.wholeText !== data)
+ text.data = data;
+ }
+ function set_style(node, key, value, important) {
+ if (value === null) {
+ node.style.removeProperty(key);
+ }
+ else {
+ node.style.setProperty(key, value, important ? 'important' : '');
+ }
+ }
+ function toggle_class(element, name, toggle) {
+ element.classList[toggle ? 'add' : 'remove'](name);
+ }
+
+ let current_component;
+ function set_current_component(component) {
+ current_component = component;
+ }
+ function get_current_component() {
+ if (!current_component)
+ throw new Error('Function called outside component initialization');
+ return current_component;
+ }
+ /**
+ * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM.
+ * It must be called during the component's initialisation (but doesn't need to live *inside* the component;
+ * it can be called from an external module).
+ *
+ * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api).
+ *
+ * https://svelte.dev/docs#run-time-svelte-onmount
+ */
+ function onMount(fn) {
+ get_current_component().$$.on_mount.push(fn);
+ }
+
+ const dirty_components = [];
+ const binding_callbacks = [];
+ const render_callbacks = [];
+ const flush_callbacks = [];
+ const resolved_promise = Promise.resolve();
+ let update_scheduled = false;
+ function schedule_update() {
+ if (!update_scheduled) {
+ update_scheduled = true;
+ resolved_promise.then(flush);
+ }
+ }
+ function add_render_callback(fn) {
+ render_callbacks.push(fn);
+ }
+ // flush() calls callbacks in this order:
+ // 1. All beforeUpdate callbacks, in order: parents before children
+ // 2. All bind:this callbacks, in reverse order: children before parents.
+ // 3. All afterUpdate callbacks, in order: parents before children. EXCEPT
+ // for afterUpdates called during the initial onMount, which are called in
+ // reverse order: children before parents.
+ // Since callbacks might update component values, which could trigger another
+ // call to flush(), the following steps guard against this:
+ // 1. During beforeUpdate, any updated components will be added to the
+ // dirty_components array and will cause a reentrant call to flush(). Because
+ // the flush index is kept outside the function, the reentrant call will pick
+ // up where the earlier call left off and go through all dirty components. The
+ // current_component value is saved and restored so that the reentrant call will
+ // not interfere with the "parent" flush() call.
+ // 2. bind:this callbacks cannot trigger new flush() calls.
+ // 3. During afterUpdate, any updated components will NOT have their afterUpdate
+ // callback called a second time; the seen_callbacks set, outside the flush()
+ // function, guarantees this behavior.
+ const seen_callbacks = new Set();
+ let flushidx = 0; // Do *not* move this inside the flush() function
+ function flush() {
+ // Do not reenter flush while dirty components are updated, as this can
+ // result in an infinite loop. Instead, let the inner flush handle it.
+ // Reentrancy is ok afterwards for bindings etc.
+ if (flushidx !== 0) {
+ return;
+ }
+ const saved_component = current_component;
+ do {
+ // first, call beforeUpdate functions
+ // and update components
+ try {
+ while (flushidx < dirty_components.length) {
+ const component = dirty_components[flushidx];
+ flushidx++;
+ set_current_component(component);
+ update(component.$$);
+ }
+ }
+ catch (e) {
+ // reset dirty state to not end up in a deadlocked state and then rethrow
+ dirty_components.length = 0;
+ flushidx = 0;
+ throw e;
+ }
+ set_current_component(null);
+ dirty_components.length = 0;
+ flushidx = 0;
+ while (binding_callbacks.length)
+ binding_callbacks.pop()();
+ // then, once components are updated, call
+ // afterUpdate functions. This may cause
+ // subsequent updates...
+ for (let i = 0; i < render_callbacks.length; i += 1) {
+ const callback = render_callbacks[i];
+ if (!seen_callbacks.has(callback)) {
+ // ...so guard against infinite loops
+ seen_callbacks.add(callback);
+ callback();
+ }
+ }
+ render_callbacks.length = 0;
+ } while (dirty_components.length);
+ while (flush_callbacks.length) {
+ flush_callbacks.pop()();
+ }
+ update_scheduled = false;
+ seen_callbacks.clear();
+ set_current_component(saved_component);
+ }
+ function update($$) {
+ if ($$.fragment !== null) {
+ $$.update();
+ run_all($$.before_update);
+ const dirty = $$.dirty;
+ $$.dirty = [-1];
+ $$.fragment && $$.fragment.p($$.ctx, dirty);
+ $$.after_update.forEach(add_render_callback);
+ }
+ }
+ const outroing = new Set();
+ let outros;
+ function group_outros() {
+ outros = {
+ r: 0,
+ c: [],
+ p: outros // parent group
+ };
+ }
+ function check_outros() {
+ if (!outros.r) {
+ run_all(outros.c);
+ }
+ outros = outros.p;
+ }
+ function transition_in(block, local) {
+ if (block && block.i) {
+ outroing.delete(block);
+ block.i(local);
+ }
+ }
+ function transition_out(block, local, detach, callback) {
+ if (block && block.o) {
+ if (outroing.has(block))
+ return;
+ outroing.add(block);
+ outros.c.push(() => {
+ outroing.delete(block);
+ if (callback) {
+ if (detach)
+ block.d(1);
+ callback();
+ }
+ });
+ block.o(local);
+ }
+ else if (callback) {
+ callback();
+ }
+ }
+
+ function get_spread_update(levels, updates) {
+ const update = {};
+ const to_null_out = {};
+ const accounted_for = { $$scope: 1 };
+ let i = levels.length;
+ while (i--) {
+ const o = levels[i];
+ const n = updates[i];
+ if (n) {
+ for (const key in o) {
+ if (!(key in n))
+ to_null_out[key] = 1;
+ }
+ for (const key in n) {
+ if (!accounted_for[key]) {
+ update[key] = n[key];
+ accounted_for[key] = 1;
+ }
+ }
+ levels[i] = n;
+ }
+ else {
+ for (const key in o) {
+ accounted_for[key] = 1;
+ }
+ }
+ }
+ for (const key in to_null_out) {
+ if (!(key in update))
+ update[key] = undefined;
+ }
+ return update;
+ }
+ function create_component(block) {
+ block && block.c();
+ }
+ function mount_component(component, target, anchor, customElement) {
+ const { fragment, after_update } = component.$$;
+ fragment && fragment.m(target, anchor);
+ if (!customElement) {
+ // onMount happens before the initial afterUpdate
+ add_render_callback(() => {
+ const new_on_destroy = component.$$.on_mount.map(run).filter(is_function);
+ // if the component was destroyed immediately
+ // it will update the `$$.on_destroy` reference to `null`.
+ // the destructured on_destroy may still reference to the old array
+ if (component.$$.on_destroy) {
+ component.$$.on_destroy.push(...new_on_destroy);
+ }
+ else {
+ // Edge case - component was destroyed immediately,
+ // most likely as a result of a binding initialising
+ run_all(new_on_destroy);
+ }
+ component.$$.on_mount = [];
+ });
+ }
+ after_update.forEach(add_render_callback);
+ }
+ function destroy_component(component, detaching) {
+ const $$ = component.$$;
+ if ($$.fragment !== null) {
+ run_all($$.on_destroy);
+ $$.fragment && $$.fragment.d(detaching);
+ // TODO null out other refs, including component.$$ (but need to
+ // preserve final state?)
+ $$.on_destroy = $$.fragment = null;
+ $$.ctx = [];
+ }
+ }
+ function make_dirty(component, i) {
+ if (component.$$.dirty[0] === -1) {
+ dirty_components.push(component);
+ schedule_update();
+ component.$$.dirty.fill(0);
+ }
+ component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31));
+ }
+ function init(component, options, instance, create_fragment, not_equal, props, append_styles, dirty = [-1]) {
+ const parent_component = current_component;
+ set_current_component(component);
+ const $$ = component.$$ = {
+ fragment: null,
+ ctx: [],
+ // state
+ props,
+ update: noop,
+ not_equal,
+ bound: blank_object(),
+ // lifecycle
+ on_mount: [],
+ on_destroy: [],
+ on_disconnect: [],
+ before_update: [],
+ after_update: [],
+ context: new Map(options.context || (parent_component ? parent_component.$$.context : [])),
+ // everything else
+ callbacks: blank_object(),
+ dirty,
+ skip_bound: false,
+ root: options.target || parent_component.$$.root
+ };
+ append_styles && append_styles($$.root);
+ let ready = false;
+ $$.ctx = instance
+ ? instance(component, options.props || {}, (i, ret, ...rest) => {
+ const value = rest.length ? rest[0] : ret;
+ if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {
+ if (!$$.skip_bound && $$.bound[i])
+ $$.bound[i](value);
+ if (ready)
+ make_dirty(component, i);
+ }
+ return ret;
+ })
+ : [];
+ $$.update();
+ ready = true;
+ run_all($$.before_update);
+ // `false` as a special case of no DOM component
+ $$.fragment = create_fragment ? create_fragment($$.ctx) : false;
+ if (options.target) {
+ if (options.hydrate) {
+ const nodes = children(options.target);
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
+ $$.fragment && $$.fragment.l(nodes);
+ nodes.forEach(detach);
+ }
+ else {
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
+ $$.fragment && $$.fragment.c();
+ }
+ if (options.intro)
+ transition_in(component.$$.fragment);
+ mount_component(component, options.target, options.anchor, options.customElement);
+ flush();
+ }
+ set_current_component(parent_component);
+ }
+ /**
+ * Base class for Svelte components. Used when dev=false.
+ */
+ class SvelteComponent {
+ $destroy() {
+ destroy_component(this, 1);
+ this.$destroy = noop;
+ }
+ $on(type, callback) {
+ if (!is_function(callback)) {
+ return noop;
+ }
+ const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));
+ callbacks.push(callback);
+ return () => {
+ const index = callbacks.indexOf(callback);
+ if (index !== -1)
+ callbacks.splice(index, 1);
+ };
+ }
+ $set($$props) {
+ if (this.$$set && !is_empty($$props)) {
+ this.$$.skip_bound = true;
+ this.$$set($$props);
+ this.$$.skip_bound = false;
+ }
+ }
+ }
+
+ const subscriber_queue = [];
+ /**
+ * Create a `Writable` store that allows both updating and reading by subscription.
+ * @param {*=}value initial value
+ * @param {StartStopNotifier=}start start and stop notifications for subscriptions
+ */
+ function writable(value, start = noop) {
+ let stop;
+ const subscribers = new Set();
+ function set(new_value) {
+ if (safe_not_equal(value, new_value)) {
+ value = new_value;
+ if (stop) { // store is ready
+ const run_queue = !subscriber_queue.length;
+ for (const subscriber of subscribers) {
+ subscriber[1]();
+ subscriber_queue.push(subscriber, value);
+ }
+ if (run_queue) {
+ for (let i = 0; i < subscriber_queue.length; i += 2) {
+ subscriber_queue[i][0](subscriber_queue[i + 1]);
+ }
+ subscriber_queue.length = 0;
+ }
+ }
+ }
+ }
+ function update(fn) {
+ set(fn(value));
+ }
+ function subscribe(run, invalidate = noop) {
+ const subscriber = [run, invalidate];
+ subscribers.add(subscriber);
+ if (subscribers.size === 1) {
+ stop = start(set) || noop;
+ }
+ run(value);
+ return () => {
+ subscribers.delete(subscriber);
+ if (subscribers.size === 0) {
+ stop();
+ stop = null;
+ }
+ };
+ }
+ return { set, update, subscribe };
+ }
+
+ const chatAdapter = writable(null);
+ const chatData = writable({ events: [], profiles: {}});
+ const selectedMessage = writable(null);
+
+ var Mode = {
+ MODE_NUMBER: 1 << 0,
+ MODE_ALPHA_NUM: 1 << 1,
+ MODE_8BIT_BYTE: 1 << 2,
+ MODE_KANJI: 1 << 3,
+ };
+
+ function QR8bitByte(data) {
+ this.mode = Mode.MODE_8BIT_BYTE;
+ this.data = data;
+ }
+
+ QR8bitByte.prototype = {
+ getLength: function () {
+ return this.data.length
+ },
+
+ write: function (buffer) {
+ for (var i = 0; i < this.data.length; i++) {
+ // not JIS ...
+ buffer.put(this.data.charCodeAt(i), 8);
+ }
+ },
+ };
+
+ var ErrorCorrectLevel = {
+ L: 1,
+ M: 0,
+ Q: 3,
+ H: 2,
+ };
+
+ // ErrorCorrectLevel
+
+ function QRRSBlock(totalCount, dataCount) {
+ this.totalCount = totalCount;
+ this.dataCount = dataCount;
+ }
+
+ QRRSBlock.RS_BLOCK_TABLE = [
+ // L
+ // M
+ // Q
+ // H
+
+ // 1
+ [1, 26, 19],
+ [1, 26, 16],
+ [1, 26, 13],
+ [1, 26, 9],
+
+ // 2
+ [1, 44, 34],
+ [1, 44, 28],
+ [1, 44, 22],
+ [1, 44, 16],
+
+ // 3
+ [1, 70, 55],
+ [1, 70, 44],
+ [2, 35, 17],
+ [2, 35, 13],
+
+ // 4
+ [1, 100, 80],
+ [2, 50, 32],
+ [2, 50, 24],
+ [4, 25, 9],
+
+ // 5
+ [1, 134, 108],
+ [2, 67, 43],
+ [2, 33, 15, 2, 34, 16],
+ [2, 33, 11, 2, 34, 12],
+
+ // 6
+ [2, 86, 68],
+ [4, 43, 27],
+ [4, 43, 19],
+ [4, 43, 15],
+
+ // 7
+ [2, 98, 78],
+ [4, 49, 31],
+ [2, 32, 14, 4, 33, 15],
+ [4, 39, 13, 1, 40, 14],
+
+ // 8
+ [2, 121, 97],
+ [2, 60, 38, 2, 61, 39],
+ [4, 40, 18, 2, 41, 19],
+ [4, 40, 14, 2, 41, 15],
+
+ // 9
+ [2, 146, 116],
+ [3, 58, 36, 2, 59, 37],
+ [4, 36, 16, 4, 37, 17],
+ [4, 36, 12, 4, 37, 13],
+
+ // 10
+ [2, 86, 68, 2, 87, 69],
+ [4, 69, 43, 1, 70, 44],
+ [6, 43, 19, 2, 44, 20],
+ [6, 43, 15, 2, 44, 16],
+
+ // 11
+ [4, 101, 81],
+ [1, 80, 50, 4, 81, 51],
+ [4, 50, 22, 4, 51, 23],
+ [3, 36, 12, 8, 37, 13],
+
+ // 12
+ [2, 116, 92, 2, 117, 93],
+ [6, 58, 36, 2, 59, 37],
+ [4, 46, 20, 6, 47, 21],
+ [7, 42, 14, 4, 43, 15],
+
+ // 13
+ [4, 133, 107],
+ [8, 59, 37, 1, 60, 38],
+ [8, 44, 20, 4, 45, 21],
+ [12, 33, 11, 4, 34, 12],
+
+ // 14
+ [3, 145, 115, 1, 146, 116],
+ [4, 64, 40, 5, 65, 41],
+ [11, 36, 16, 5, 37, 17],
+ [11, 36, 12, 5, 37, 13],
+
+ // 15
+ [5, 109, 87, 1, 110, 88],
+ [5, 65, 41, 5, 66, 42],
+ [5, 54, 24, 7, 55, 25],
+ [11, 36, 12],
+
+ // 16
+ [5, 122, 98, 1, 123, 99],
+ [7, 73, 45, 3, 74, 46],
+ [15, 43, 19, 2, 44, 20],
+ [3, 45, 15, 13, 46, 16],
+
+ // 17
+ [1, 135, 107, 5, 136, 108],
+ [10, 74, 46, 1, 75, 47],
+ [1, 50, 22, 15, 51, 23],
+ [2, 42, 14, 17, 43, 15],
+
+ // 18
+ [5, 150, 120, 1, 151, 121],
+ [9, 69, 43, 4, 70, 44],
+ [17, 50, 22, 1, 51, 23],
+ [2, 42, 14, 19, 43, 15],
+
+ // 19
+ [3, 141, 113, 4, 142, 114],
+ [3, 70, 44, 11, 71, 45],
+ [17, 47, 21, 4, 48, 22],
+ [9, 39, 13, 16, 40, 14],
+
+ // 20
+ [3, 135, 107, 5, 136, 108],
+ [3, 67, 41, 13, 68, 42],
+ [15, 54, 24, 5, 55, 25],
+ [15, 43, 15, 10, 44, 16],
+
+ // 21
+ [4, 144, 116, 4, 145, 117],
+ [17, 68, 42],
+ [17, 50, 22, 6, 51, 23],
+ [19, 46, 16, 6, 47, 17],
+
+ // 22
+ [2, 139, 111, 7, 140, 112],
+ [17, 74, 46],
+ [7, 54, 24, 16, 55, 25],
+ [34, 37, 13],
+
+ // 23
+ [4, 151, 121, 5, 152, 122],
+ [4, 75, 47, 14, 76, 48],
+ [11, 54, 24, 14, 55, 25],
+ [16, 45, 15, 14, 46, 16],
+
+ // 24
+ [6, 147, 117, 4, 148, 118],
+ [6, 73, 45, 14, 74, 46],
+ [11, 54, 24, 16, 55, 25],
+ [30, 46, 16, 2, 47, 17],
+
+ // 25
+ [8, 132, 106, 4, 133, 107],
+ [8, 75, 47, 13, 76, 48],
+ [7, 54, 24, 22, 55, 25],
+ [22, 45, 15, 13, 46, 16],
+
+ // 26
+ [10, 142, 114, 2, 143, 115],
+ [19, 74, 46, 4, 75, 47],
+ [28, 50, 22, 6, 51, 23],
+ [33, 46, 16, 4, 47, 17],
+
+ // 27
+ [8, 152, 122, 4, 153, 123],
+ [22, 73, 45, 3, 74, 46],
+ [8, 53, 23, 26, 54, 24],
+ [12, 45, 15, 28, 46, 16],
+
+ // 28
+ [3, 147, 117, 10, 148, 118],
+ [3, 73, 45, 23, 74, 46],
+ [4, 54, 24, 31, 55, 25],
+ [11, 45, 15, 31, 46, 16],
+
+ // 29
+ [7, 146, 116, 7, 147, 117],
+ [21, 73, 45, 7, 74, 46],
+ [1, 53, 23, 37, 54, 24],
+ [19, 45, 15, 26, 46, 16],
+
+ // 30
+ [5, 145, 115, 10, 146, 116],
+ [19, 75, 47, 10, 76, 48],
+ [15, 54, 24, 25, 55, 25],
+ [23, 45, 15, 25, 46, 16],
+
+ // 31
+ [13, 145, 115, 3, 146, 116],
+ [2, 74, 46, 29, 75, 47],
+ [42, 54, 24, 1, 55, 25],
+ [23, 45, 15, 28, 46, 16],
+
+ // 32
+ [17, 145, 115],
+ [10, 74, 46, 23, 75, 47],
+ [10, 54, 24, 35, 55, 25],
+ [19, 45, 15, 35, 46, 16],
+
+ // 33
+ [17, 145, 115, 1, 146, 116],
+ [14, 74, 46, 21, 75, 47],
+ [29, 54, 24, 19, 55, 25],
+ [11, 45, 15, 46, 46, 16],
+
+ // 34
+ [13, 145, 115, 6, 146, 116],
+ [14, 74, 46, 23, 75, 47],
+ [44, 54, 24, 7, 55, 25],
+ [59, 46, 16, 1, 47, 17],
+
+ // 35
+ [12, 151, 121, 7, 152, 122],
+ [12, 75, 47, 26, 76, 48],
+ [39, 54, 24, 14, 55, 25],
+ [22, 45, 15, 41, 46, 16],
+
+ // 36
+ [6, 151, 121, 14, 152, 122],
+ [6, 75, 47, 34, 76, 48],
+ [46, 54, 24, 10, 55, 25],
+ [2, 45, 15, 64, 46, 16],
+
+ // 37
+ [17, 152, 122, 4, 153, 123],
+ [29, 74, 46, 14, 75, 47],
+ [49, 54, 24, 10, 55, 25],
+ [24, 45, 15, 46, 46, 16],
+
+ // 38
+ [4, 152, 122, 18, 153, 123],
+ [13, 74, 46, 32, 75, 47],
+ [48, 54, 24, 14, 55, 25],
+ [42, 45, 15, 32, 46, 16],
+
+ // 39
+ [20, 147, 117, 4, 148, 118],
+ [40, 75, 47, 7, 76, 48],
+ [43, 54, 24, 22, 55, 25],
+ [10, 45, 15, 67, 46, 16],
+
+ // 40
+ [19, 148, 118, 6, 149, 119],
+ [18, 75, 47, 31, 76, 48],
+ [34, 54, 24, 34, 55, 25],
+ [20, 45, 15, 61, 46, 16],
+ ];
+
+ QRRSBlock.getRSBlocks = function (typeNumber, errorCorrectLevel) {
+ var rsBlock = QRRSBlock.getRsBlockTable(typeNumber, errorCorrectLevel);
+
+ if (rsBlock == undefined) {
+ throw new Error(
+ 'bad rs block @ typeNumber:' + typeNumber + '/errorCorrectLevel:' + errorCorrectLevel
+ )
+ }
+
+ var length = rsBlock.length / 3;
+
+ var list = new Array();
+
+ for (var i = 0; i < length; i++) {
+ var count = rsBlock[i * 3 + 0];
+ var totalCount = rsBlock[i * 3 + 1];
+ var dataCount = rsBlock[i * 3 + 2];
+
+ for (var j = 0; j < count; j++) {
+ list.push(new QRRSBlock(totalCount, dataCount));
+ }
+ }
+
+ return list
+ };
+
+ QRRSBlock.getRsBlockTable = function (typeNumber, errorCorrectLevel) {
+ switch (errorCorrectLevel) {
+ case ErrorCorrectLevel.L:
+ return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 0]
+ case ErrorCorrectLevel.M:
+ return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 1]
+ case ErrorCorrectLevel.Q:
+ return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 2]
+ case ErrorCorrectLevel.H:
+ return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 3]
+ default:
+ return undefined
+ }
+ };
+
+ function QRBitBuffer() {
+ this.buffer = new Array();
+ this.length = 0;
+ }
+
+ QRBitBuffer.prototype = {
+ get: function (index) {
+ var bufIndex = Math.floor(index / 8);
+ return ((this.buffer[bufIndex] >>> (7 - (index % 8))) & 1) == 1
+ },
+
+ put: function (num, length) {
+ for (var i = 0; i < length; i++) {
+ this.putBit(((num >>> (length - i - 1)) & 1) == 1);
+ }
+ },
+
+ getLengthInBits: function () {
+ return this.length
+ },
+
+ putBit: function (bit) {
+ var bufIndex = Math.floor(this.length / 8);
+ if (this.buffer.length <= bufIndex) {
+ this.buffer.push(0);
+ }
+
+ if (bit) {
+ this.buffer[bufIndex] |= 0x80 >>> this.length % 8;
+ }
+
+ this.length++;
+ },
+ };
+
+ const QRMath = {
+ glog: function (n) {
+ if (n < 1) {
+ throw new Error('glog(' + n + ')')
+ }
+
+ return QRMath.LOG_TABLE[n]
+ },
+
+ gexp: function (n) {
+ while (n < 0) {
+ n += 255;
+ }
+
+ while (n >= 256) {
+ n -= 255;
+ }
+
+ return QRMath.EXP_TABLE[n]
+ },
+
+ EXP_TABLE: new Array(256),
+
+ LOG_TABLE: new Array(256),
+ };
+
+ for (var i = 0; i < 8; i++) {
+ QRMath.EXP_TABLE[i] = 1 << i;
+ }
+ for (var i = 8; i < 256; i++) {
+ QRMath.EXP_TABLE[i] =
+ QRMath.EXP_TABLE[i - 4] ^
+ QRMath.EXP_TABLE[i - 5] ^
+ QRMath.EXP_TABLE[i - 6] ^
+ QRMath.EXP_TABLE[i - 8];
+ }
+ for (var i = 0; i < 255; i++) {
+ QRMath.LOG_TABLE[QRMath.EXP_TABLE[i]] = i;
+ }
+
+ function QRPolynomial(num, shift) {
+ if (num.length == undefined) {
+ throw new Error(num.length + '/' + shift)
+ }
+
+ var offset = 0;
+
+ while (offset < num.length && num[offset] == 0) {
+ offset++;
+ }
+
+ this.num = new Array(num.length - offset + shift);
+ for (var i = 0; i < num.length - offset; i++) {
+ this.num[i] = num[i + offset];
+ }
+ }
+
+ QRPolynomial.prototype = {
+ get: function (index) {
+ return this.num[index]
+ },
+
+ getLength: function () {
+ return this.num.length
+ },
+
+ multiply: function (e) {
+ var num = new Array(this.getLength() + e.getLength() - 1);
+
+ for (var i = 0; i < this.getLength(); i++) {
+ for (var j = 0; j < e.getLength(); j++) {
+ num[i + j] ^= QRMath.gexp(QRMath.glog(this.get(i)) + QRMath.glog(e.get(j)));
+ }
+ }
+
+ return new QRPolynomial(num, 0)
+ },
+
+ mod: function (e) {
+ if (this.getLength() - e.getLength() < 0) {
+ return this
+ }
+
+ var ratio = QRMath.glog(this.get(0)) - QRMath.glog(e.get(0));
+
+ var num = new Array(this.getLength());
+
+ for (var i = 0; i < this.getLength(); i++) {
+ num[i] = this.get(i);
+ }
+
+ for (var i = 0; i < e.getLength(); i++) {
+ num[i] ^= QRMath.gexp(QRMath.glog(e.get(i)) + ratio);
+ }
+
+ // recursive call
+ return new QRPolynomial(num, 0).mod(e)
+ },
+ };
+
+ const QRMaskPattern = {
+ PATTERN000: 0,
+ PATTERN001: 1,
+ PATTERN010: 2,
+ PATTERN011: 3,
+ PATTERN100: 4,
+ PATTERN101: 5,
+ PATTERN110: 6,
+ PATTERN111: 7,
+ };
+
+ const QRUtil = {
+ PATTERN_POSITION_TABLE: [
+ [],
+ [6, 18],
+ [6, 22],
+ [6, 26],
+ [6, 30],
+ [6, 34],
+ [6, 22, 38],
+ [6, 24, 42],
+ [6, 26, 46],
+ [6, 28, 50],
+ [6, 30, 54],
+ [6, 32, 58],
+ [6, 34, 62],
+ [6, 26, 46, 66],
+ [6, 26, 48, 70],
+ [6, 26, 50, 74],
+ [6, 30, 54, 78],
+ [6, 30, 56, 82],
+ [6, 30, 58, 86],
+ [6, 34, 62, 90],
+ [6, 28, 50, 72, 94],
+ [6, 26, 50, 74, 98],
+ [6, 30, 54, 78, 102],
+ [6, 28, 54, 80, 106],
+ [6, 32, 58, 84, 110],
+ [6, 30, 58, 86, 114],
+ [6, 34, 62, 90, 118],
+ [6, 26, 50, 74, 98, 122],
+ [6, 30, 54, 78, 102, 126],
+ [6, 26, 52, 78, 104, 130],
+ [6, 30, 56, 82, 108, 134],
+ [6, 34, 60, 86, 112, 138],
+ [6, 30, 58, 86, 114, 142],
+ [6, 34, 62, 90, 118, 146],
+ [6, 30, 54, 78, 102, 126, 150],
+ [6, 24, 50, 76, 102, 128, 154],
+ [6, 28, 54, 80, 106, 132, 158],
+ [6, 32, 58, 84, 110, 136, 162],
+ [6, 26, 54, 82, 110, 138, 166],
+ [6, 30, 58, 86, 114, 142, 170],
+ ],
+
+ G15: (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0),
+ G18: (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0),
+ G15_MASK: (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1),
+
+ getBCHTypeInfo: function (data) {
+ var d = data << 10;
+ while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15) >= 0) {
+ d ^= QRUtil.G15 << (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15));
+ }
+ return ((data << 10) | d) ^ QRUtil.G15_MASK
+ },
+
+ getBCHTypeNumber: function (data) {
+ var d = data << 12;
+ while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18) >= 0) {
+ d ^= QRUtil.G18 << (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18));
+ }
+ return (data << 12) | d
+ },
+
+ getBCHDigit: function (data) {
+ var digit = 0;
+
+ while (data != 0) {
+ digit++;
+ data >>>= 1;
+ }
+
+ return digit
+ },
+
+ getPatternPosition: function (typeNumber) {
+ return QRUtil.PATTERN_POSITION_TABLE[typeNumber - 1]
+ },
+
+ getMask: function (maskPattern, i, j) {
+ switch (maskPattern) {
+ case QRMaskPattern.PATTERN000:
+ return (i + j) % 2 == 0
+ case QRMaskPattern.PATTERN001:
+ return i % 2 == 0
+ case QRMaskPattern.PATTERN010:
+ return j % 3 == 0
+ case QRMaskPattern.PATTERN011:
+ return (i + j) % 3 == 0
+ case QRMaskPattern.PATTERN100:
+ return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 == 0
+ case QRMaskPattern.PATTERN101:
+ return ((i * j) % 2) + ((i * j) % 3) == 0
+ case QRMaskPattern.PATTERN110:
+ return (((i * j) % 2) + ((i * j) % 3)) % 2 == 0
+ case QRMaskPattern.PATTERN111:
+ return (((i * j) % 3) + ((i + j) % 2)) % 2 == 0
+
+ default:
+ throw new Error('bad maskPattern:' + maskPattern)
+ }
+ },
+
+ getErrorCorrectPolynomial: function (errorCorrectLength) {
+ var a = new QRPolynomial([1], 0);
+
+ for (var i = 0; i < errorCorrectLength; i++) {
+ a = a.multiply(new QRPolynomial([1, QRMath.gexp(i)], 0));
+ }
+
+ return a
+ },
+
+ getLengthInBits: function (mode, type) {
+ if (1 <= type && type < 10) {
+ // 1 - 9
+
+ switch (mode) {
+ case Mode.MODE_NUMBER:
+ return 10
+ case Mode.MODE_ALPHA_NUM:
+ return 9
+ case Mode.MODE_8BIT_BYTE:
+ return 8
+ case Mode.MODE_KANJI:
+ return 8
+ default:
+ throw new Error('mode:' + mode)
+ }
+ } else if (type < 27) {
+ // 10 - 26
+
+ switch (mode) {
+ case Mode.MODE_NUMBER:
+ return 12
+ case Mode.MODE_ALPHA_NUM:
+ return 11
+ case Mode.MODE_8BIT_BYTE:
+ return 16
+ case Mode.MODE_KANJI:
+ return 10
+ default:
+ throw new Error('mode:' + mode)
+ }
+ } else if (type < 41) {
+ // 27 - 40
+
+ switch (mode) {
+ case Mode.MODE_NUMBER:
+ return 14
+ case Mode.MODE_ALPHA_NUM:
+ return 13
+ case Mode.MODE_8BIT_BYTE:
+ return 16
+ case Mode.MODE_KANJI:
+ return 12
+ default:
+ throw new Error('mode:' + mode)
+ }
+ } else {
+ throw new Error('type:' + type)
+ }
+ },
+
+ getLostPoint: function (qrCode) {
+ var moduleCount = qrCode.getModuleCount();
+
+ var lostPoint = 0;
+
+ // LEVEL1
+
+ for (var row = 0; row < moduleCount; row++) {
+ for (var col = 0; col < moduleCount; col++) {
+ var sameCount = 0;
+ var dark = qrCode.isDark(row, col);
+
+ for (var r = -1; r <= 1; r++) {
+ if (row + r < 0 || moduleCount <= row + r) {
+ continue
+ }
+
+ for (var c = -1; c <= 1; c++) {
+ if (col + c < 0 || moduleCount <= col + c) {
+ continue
+ }
+
+ if (r == 0 && c == 0) {
+ continue
+ }
+
+ if (dark == qrCode.isDark(row + r, col + c)) {
+ sameCount++;
+ }
+ }
+ }
+
+ if (sameCount > 5) {
+ lostPoint += 3 + sameCount - 5;
+ }
+ }
+ }
+
+ // LEVEL2
+
+ for (var row = 0; row < moduleCount - 1; row++) {
+ for (var col = 0; col < moduleCount - 1; col++) {
+ var count = 0;
+ if (qrCode.isDark(row, col)) count++;
+ if (qrCode.isDark(row + 1, col)) count++;
+ if (qrCode.isDark(row, col + 1)) count++;
+ if (qrCode.isDark(row + 1, col + 1)) count++;
+ if (count == 0 || count == 4) {
+ lostPoint += 3;
+ }
+ }
+ }
+
+ // LEVEL3
+
+ for (var row = 0; row < moduleCount; row++) {
+ for (var col = 0; col < moduleCount - 6; col++) {
+ if (
+ qrCode.isDark(row, col) &&
+ !qrCode.isDark(row, col + 1) &&
+ qrCode.isDark(row, col + 2) &&
+ qrCode.isDark(row, col + 3) &&
+ qrCode.isDark(row, col + 4) &&
+ !qrCode.isDark(row, col + 5) &&
+ qrCode.isDark(row, col + 6)
+ ) {
+ lostPoint += 40;
+ }
+ }
+ }
+
+ for (var col = 0; col < moduleCount; col++) {
+ for (var row = 0; row < moduleCount - 6; row++) {
+ if (
+ qrCode.isDark(row, col) &&
+ !qrCode.isDark(row + 1, col) &&
+ qrCode.isDark(row + 2, col) &&
+ qrCode.isDark(row + 3, col) &&
+ qrCode.isDark(row + 4, col) &&
+ !qrCode.isDark(row + 5, col) &&
+ qrCode.isDark(row + 6, col)
+ ) {
+ lostPoint += 40;
+ }
+ }
+ }
+
+ // LEVEL4
+
+ var darkCount = 0;
+
+ for (var col = 0; col < moduleCount; col++) {
+ for (var row = 0; row < moduleCount; row++) {
+ if (qrCode.isDark(row, col)) {
+ darkCount++;
+ }
+ }
+ }
+
+ var ratio = Math.abs((100 * darkCount) / moduleCount / moduleCount - 50) / 5;
+ lostPoint += ratio * 10;
+
+ return lostPoint
+ },
+ };
+
+ function QRCode(typeNumber, errorCorrectLevel) {
+ this.typeNumber = typeNumber;
+ this.errorCorrectLevel = errorCorrectLevel;
+ this.modules = null;
+ this.moduleCount = 0;
+ this.dataCache = null;
+ this.dataList = [];
+ }
+
+ // for client side minification
+ var proto = QRCode.prototype;
+
+ proto.addData = function (data) {
+ var newData = new QR8bitByte(data);
+ this.dataList.push(newData);
+ this.dataCache = null;
+ };
+
+ proto.isDark = function (row, col) {
+ if (row < 0 || this.moduleCount <= row || col < 0 || this.moduleCount <= col) {
+ throw new Error(row + ',' + col)
+ }
+ return this.modules[row][col]
+ };
+
+ proto.getModuleCount = function () {
+ return this.moduleCount
+ };
+
+ proto.make = function () {
+ // Calculate automatically typeNumber if provided is < 1
+ if (this.typeNumber < 1) {
+ var typeNumber = 1;
+ for (typeNumber = 1; typeNumber < 40; typeNumber++) {
+ var rsBlocks = QRRSBlock.getRSBlocks(typeNumber, this.errorCorrectLevel);
+
+ var buffer = new QRBitBuffer();
+ var totalDataCount = 0;
+ for (var i = 0; i < rsBlocks.length; i++) {
+ totalDataCount += rsBlocks[i].dataCount;
+ }
+
+ for (var i = 0; i < this.dataList.length; i++) {
+ var data = this.dataList[i];
+ buffer.put(data.mode, 4);
+ buffer.put(data.getLength(), QRUtil.getLengthInBits(data.mode, typeNumber));
+ data.write(buffer);
+ }
+ if (buffer.getLengthInBits() <= totalDataCount * 8) break
+ }
+ this.typeNumber = typeNumber;
+ }
+ this.makeImpl(false, this.getBestMaskPattern());
+ };
+
+ proto.makeImpl = function (test, maskPattern) {
+ this.moduleCount = this.typeNumber * 4 + 17;
+ this.modules = new Array(this.moduleCount);
+
+ for (var row = 0; row < this.moduleCount; row++) {
+ this.modules[row] = new Array(this.moduleCount);
+
+ for (var col = 0; col < this.moduleCount; col++) {
+ this.modules[row][col] = null; //(col + row) % 3;
+ }
+ }
+
+ this.setupPositionProbePattern(0, 0);
+ this.setupPositionProbePattern(this.moduleCount - 7, 0);
+ this.setupPositionProbePattern(0, this.moduleCount - 7);
+ this.setupPositionAdjustPattern();
+ this.setupTimingPattern();
+ this.setupTypeInfo(test, maskPattern);
+
+ if (this.typeNumber >= 7) {
+ this.setupTypeNumber(test);
+ }
+
+ if (this.dataCache == null) {
+ this.dataCache = QRCode.createData(this.typeNumber, this.errorCorrectLevel, this.dataList);
+ }
+
+ this.mapData(this.dataCache, maskPattern);
+ };
+
+ proto.setupPositionProbePattern = function (row, col) {
+ for (var r = -1; r <= 7; r++) {
+ if (row + r <= -1 || this.moduleCount <= row + r) continue
+
+ for (var c = -1; c <= 7; c++) {
+ if (col + c <= -1 || this.moduleCount <= col + c) continue
+
+ if (
+ (0 <= r && r <= 6 && (c == 0 || c == 6)) ||
+ (0 <= c && c <= 6 && (r == 0 || r == 6)) ||
+ (2 <= r && r <= 4 && 2 <= c && c <= 4)
+ ) {
+ this.modules[row + r][col + c] = true;
+ } else {
+ this.modules[row + r][col + c] = false;
+ }
+ }
+ }
+ };
+
+ proto.getBestMaskPattern = function () {
+ var minLostPoint = 0;
+ var pattern = 0;
+
+ for (var i = 0; i < 8; i++) {
+ this.makeImpl(true, i);
+
+ var lostPoint = QRUtil.getLostPoint(this);
+
+ if (i == 0 || minLostPoint > lostPoint) {
+ minLostPoint = lostPoint;
+ pattern = i;
+ }
+ }
+
+ return pattern
+ };
+
+ proto.setupTimingPattern = function () {
+ for (var r = 8; r < this.moduleCount - 8; r++) {
+ if (this.modules[r][6] != null) {
+ continue
+ }
+ this.modules[r][6] = r % 2 == 0;
+ }
+
+ for (var c = 8; c < this.moduleCount - 8; c++) {
+ if (this.modules[6][c] != null) {
+ continue
+ }
+ this.modules[6][c] = c % 2 == 0;
+ }
+ };
+
+ proto.setupPositionAdjustPattern = function () {
+ var pos = QRUtil.getPatternPosition(this.typeNumber);
+
+ for (var i = 0; i < pos.length; i++) {
+ for (var j = 0; j < pos.length; j++) {
+ var row = pos[i];
+ var col = pos[j];
+
+ if (this.modules[row][col] != null) {
+ continue
+ }
+
+ for (var r = -2; r <= 2; r++) {
+ for (var c = -2; c <= 2; c++) {
+ if (r == -2 || r == 2 || c == -2 || c == 2 || (r == 0 && c == 0)) {
+ this.modules[row + r][col + c] = true;
+ } else {
+ this.modules[row + r][col + c] = false;
+ }
+ }
+ }
+ }
+ }
+ };
+
+ proto.setupTypeNumber = function (test) {
+ var bits = QRUtil.getBCHTypeNumber(this.typeNumber);
+
+ for (var i = 0; i < 18; i++) {
+ var mod = !test && ((bits >> i) & 1) == 1;
+ this.modules[Math.floor(i / 3)][(i % 3) + this.moduleCount - 8 - 3] = mod;
+ }
+
+ for (var i = 0; i < 18; i++) {
+ var mod = !test && ((bits >> i) & 1) == 1;
+ this.modules[(i % 3) + this.moduleCount - 8 - 3][Math.floor(i / 3)] = mod;
+ }
+ };
+
+ proto.setupTypeInfo = function (test, maskPattern) {
+ var data = (this.errorCorrectLevel << 3) | maskPattern;
+ var bits = QRUtil.getBCHTypeInfo(data);
+
+ // vertical
+ for (var i = 0; i < 15; i++) {
+ var mod = !test && ((bits >> i) & 1) == 1;
+
+ if (i < 6) {
+ this.modules[i][8] = mod;
+ } else if (i < 8) {
+ this.modules[i + 1][8] = mod;
+ } else {
+ this.modules[this.moduleCount - 15 + i][8] = mod;
+ }
+ }
+
+ // horizontal
+ for (var i = 0; i < 15; i++) {
+ var mod = !test && ((bits >> i) & 1) == 1;
+
+ if (i < 8) {
+ this.modules[8][this.moduleCount - i - 1] = mod;
+ } else if (i < 9) {
+ this.modules[8][15 - i - 1 + 1] = mod;
+ } else {
+ this.modules[8][15 - i - 1] = mod;
+ }
+ }
+
+ // fixed module
+ this.modules[this.moduleCount - 8][8] = !test;
+ };
+
+ proto.mapData = function (data, maskPattern) {
+ var inc = -1;
+ var row = this.moduleCount - 1;
+ var bitIndex = 7;
+ var byteIndex = 0;
+
+ for (var col = this.moduleCount - 1; col > 0; col -= 2) {
+ if (col == 6) col--;
+
+ while (true) {
+ for (var c = 0; c < 2; c++) {
+ if (this.modules[row][col - c] == null) {
+ var dark = false;
+
+ if (byteIndex < data.length) {
+ dark = ((data[byteIndex] >>> bitIndex) & 1) == 1;
+ }
+
+ var mask = QRUtil.getMask(maskPattern, row, col - c);
+
+ if (mask) {
+ dark = !dark;
+ }
+
+ this.modules[row][col - c] = dark;
+ bitIndex--;
+
+ if (bitIndex == -1) {
+ byteIndex++;
+ bitIndex = 7;
+ }
+ }
+ }
+
+ row += inc;
+
+ if (row < 0 || this.moduleCount <= row) {
+ row -= inc;
+ inc = -inc;
+ break
+ }
+ }
+ }
+ };
+
+ QRCode.PAD0 = 0xec;
+ QRCode.PAD1 = 0x11;
+
+ QRCode.createData = function (typeNumber, errorCorrectLevel, dataList) {
+ var rsBlocks = QRRSBlock.getRSBlocks(typeNumber, errorCorrectLevel);
+
+ var buffer = new QRBitBuffer();
+
+ for (var i = 0; i < dataList.length; i++) {
+ var data = dataList[i];
+ buffer.put(data.mode, 4);
+ buffer.put(data.getLength(), QRUtil.getLengthInBits(data.mode, typeNumber));
+ data.write(buffer);
+ }
+
+ // calc num max data.
+ var totalDataCount = 0;
+ for (var i = 0; i < rsBlocks.length; i++) {
+ totalDataCount += rsBlocks[i].dataCount;
+ }
+
+ if (buffer.getLengthInBits() > totalDataCount * 8) {
+ throw new Error(
+ 'code length overflow. (' + buffer.getLengthInBits() + '>' + totalDataCount * 8 + ')'
+ )
+ }
+
+ // end code
+ if (buffer.getLengthInBits() + 4 <= totalDataCount * 8) {
+ buffer.put(0, 4);
+ }
+
+ // padding
+ while (buffer.getLengthInBits() % 8 != 0) {
+ buffer.putBit(false);
+ }
+
+ // padding
+ while (true) {
+ if (buffer.getLengthInBits() >= totalDataCount * 8) {
+ break
+ }
+ buffer.put(QRCode.PAD0, 8);
+
+ if (buffer.getLengthInBits() >= totalDataCount * 8) {
+ break
+ }
+ buffer.put(QRCode.PAD1, 8);
+ }
+
+ return QRCode.createBytes(buffer, rsBlocks)
+ };
+
+ QRCode.createBytes = function (buffer, rsBlocks) {
+ var offset = 0;
+
+ var maxDcCount = 0;
+ var maxEcCount = 0;
+
+ var dcdata = new Array(rsBlocks.length);
+ var ecdata = new Array(rsBlocks.length);
+
+ for (var r = 0; r < rsBlocks.length; r++) {
+ var dcCount = rsBlocks[r].dataCount;
+ var ecCount = rsBlocks[r].totalCount - dcCount;
+
+ maxDcCount = Math.max(maxDcCount, dcCount);
+ maxEcCount = Math.max(maxEcCount, ecCount);
+
+ dcdata[r] = new Array(dcCount);
+
+ for (var i = 0; i < dcdata[r].length; i++) {
+ dcdata[r][i] = 0xff & buffer.buffer[i + offset];
+ }
+ offset += dcCount;
+
+ var rsPoly = QRUtil.getErrorCorrectPolynomial(ecCount);
+ var rawPoly = new QRPolynomial(dcdata[r], rsPoly.getLength() - 1);
+
+ var modPoly = rawPoly.mod(rsPoly);
+ ecdata[r] = new Array(rsPoly.getLength() - 1);
+ for (var i = 0; i < ecdata[r].length; i++) {
+ var modIndex = i + modPoly.getLength() - ecdata[r].length;
+ ecdata[r][i] = modIndex >= 0 ? modPoly.get(modIndex) : 0;
+ }
+ }
+
+ var totalCodeCount = 0;
+ for (var i = 0; i < rsBlocks.length; i++) {
+ totalCodeCount += rsBlocks[i].totalCount;
+ }
+
+ var data = new Array(totalCodeCount);
+ var index = 0;
+
+ for (var i = 0; i < maxDcCount; i++) {
+ for (var r = 0; r < rsBlocks.length; r++) {
+ if (i < dcdata[r].length) {
+ data[index++] = dcdata[r][i];
+ }
+ }
+ }
+
+ for (var i = 0; i < maxEcCount; i++) {
+ for (var r = 0; r < rsBlocks.length; r++) {
+ if (i < ecdata[r].length) {
+ data[index++] = ecdata[r][i];
+ }
+ }
+ }
+
+ return data
+ };
+
+ /* node_modules/svelte-qr/src/QR.svelte generated by Svelte v3.55.1 */
+
+ function get_each_context$2(ctx, list, i) {
+ const child_ctx = ctx.slice();
+ child_ctx[5] = list[i];
+ return child_ctx;
+ }
+
+ // (48:4) {#each rects as rect}
+ function create_each_block$2(ctx) {
+ let rect;
+ let rect_levels = [/*rect*/ ctx[5]];
+ let rect_data = {};
+
+ for (let i = 0; i < rect_levels.length; i += 1) {
+ rect_data = assign(rect_data, rect_levels[i]);
+ }
+
+ return {
+ c() {
+ rect = svg_element("rect");
+ set_svg_attributes(rect, rect_data);
+ toggle_class(rect, "svelte-2fcki1", true);
+ },
+ m(target, anchor) {
+ insert(target, rect, anchor);
+ },
+ p(ctx, dirty) {
+ set_svg_attributes(rect, rect_data = get_spread_update(rect_levels, [/*rect*/ ctx[5]]));
+ toggle_class(rect, "svelte-2fcki1", true);
+ },
+ d(detaching) {
+ if (detaching) detach(rect);
+ }
+ };
+ }
+
+ function create_fragment$5(ctx) {
+ let svg;
+ let svg_viewBox_value;
+ let each_value = /*rects*/ ctx[1];
+ let each_blocks = [];
+
+ for (let i = 0; i < each_value.length; i += 1) {
+ each_blocks[i] = create_each_block$2(get_each_context$2(ctx, each_value, i));
+ }
+
+ return {
+ c() {
+ svg = svg_element("svg");
+
+ for (let i = 0; i < each_blocks.length; i += 1) {
+ each_blocks[i].c();
+ }
+
+ attr(svg, "class", "qr svelte-2fcki1");
+ attr(svg, "xmlns", "http://www.w3.org/2000/svg");
+ attr(svg, "viewBox", svg_viewBox_value = "0 0 " + /*size*/ ctx[0] + " " + /*size*/ ctx[0]);
+ },
+ m(target, anchor) {
+ insert(target, svg, anchor);
+
+ for (let i = 0; i < each_blocks.length; i += 1) {
+ each_blocks[i].m(svg, null);
+ }
+ },
+ p(ctx, [dirty]) {
+ if (dirty & /*rects*/ 2) {
+ each_value = /*rects*/ ctx[1];
+ let i;
+
+ for (i = 0; i < each_value.length; i += 1) {
+ const child_ctx = get_each_context$2(ctx, each_value, i);
+
+ if (each_blocks[i]) {
+ each_blocks[i].p(child_ctx, dirty);
+ } else {
+ each_blocks[i] = create_each_block$2(child_ctx);
+ each_blocks[i].c();
+ each_blocks[i].m(svg, null);
+ }
+ }
+
+ for (; i < each_blocks.length; i += 1) {
+ each_blocks[i].d(1);
+ }
+
+ each_blocks.length = each_value.length;
+ }
+
+ if (dirty & /*size*/ 1 && svg_viewBox_value !== (svg_viewBox_value = "0 0 " + /*size*/ ctx[0] + " " + /*size*/ ctx[0])) {
+ attr(svg, "viewBox", svg_viewBox_value);
+ }
+ },
+ i: noop,
+ o: noop,
+ d(detaching) {
+ if (detaching) detach(svg);
+ destroy_each(each_blocks, detaching);
+ }
+ };
+ }
+
+ function instance$5($$self, $$props, $$invalidate) {
+ let { text } = $$props;
+ let { level = "L" } = $$props;
+ let { version = -1 } = $$props;
+ let size;
+ let rects = [];
+
+ $$self.$$set = $$props => {
+ if ('text' in $$props) $$invalidate(2, text = $$props.text);
+ if ('level' in $$props) $$invalidate(3, level = $$props.level);
+ if ('version' in $$props) $$invalidate(4, version = $$props.version);
+ };
+
+ $$self.$$.update = () => {
+ if ($$self.$$.dirty & /*version, level, text*/ 28) {
+ {
+ let qr = new QRCode(version, ErrorCorrectLevel[level]);
+ qr.addData(text);
+ qr.make();
+ const rows = qr.modules;
+ $$invalidate(0, size = rows.length);
+
+ for (const [y, row] of rows.entries()) {
+ let rect;
+
+ for (const [x, on] of row.entries()) {
+ if (on) {
+ if (!rect) rect = { x, y, width: 0, height: 1 };
+ rect.width++;
+ } else {
+ if (rect && rect.width > 0) {
+ rects.push(rect);
+ }
+
+ rect = void 0;
+ }
+ }
+
+ if (rect && rect.width > 0) {
+ rects.push(rect);
+ }
+ }
+ }
+ }
+ };
+
+ return [size, rects, text, level, version];
+ }
+
+ class QR extends SvelteComponent {
+ constructor(options) {
+ super();
+ init(this, options, instance$5, create_fragment$5, safe_not_equal, { text: 2, level: 3, version: 4 });
+ }
+ }
+
+ var _nodeResolve_empty = {};
+
+ var nodeCrypto = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ default: _nodeResolve_empty
+ });
+
+ /*! noble-secp256k1 - MIT License (c) 2019 Paul Miller (paulmillr.com) */
+ const _0n = BigInt(0);
+ const _1n = BigInt(1);
+ const _2n = BigInt(2);
+ const _3n = BigInt(3);
+ const _8n = BigInt(8);
+ const CURVE = Object.freeze({
+ a: _0n,
+ b: BigInt(7),
+ P: BigInt('0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f'),
+ n: BigInt('0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141'),
+ h: _1n,
+ Gx: BigInt('55066263022277343669578718895168534326250603453777594175500187360389116729240'),
+ Gy: BigInt('32670510020758816978083085130507043184471273380659243275938904335757337482424'),
+ beta: BigInt('0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee'),
+ });
+ const divNearest = (a, b) => (a + b / _2n) / b;
+ const endo = {
+ beta: BigInt('0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee'),
+ splitScalar(k) {
+ const { n } = CURVE;
+ const a1 = BigInt('0x3086d221a7d46bcde86c90e49284eb15');
+ const b1 = -_1n * BigInt('0xe4437ed6010e88286f547fa90abfe4c3');
+ const a2 = BigInt('0x114ca50f7a8e2f3f657c1108d9d44cfd8');
+ const b2 = a1;
+ const POW_2_128 = BigInt('0x100000000000000000000000000000000');
+ const c1 = divNearest(b2 * k, n);
+ const c2 = divNearest(-b1 * k, n);
+ let k1 = mod(k - c1 * a1 - c2 * a2, n);
+ let k2 = mod(-c1 * b1 - c2 * b2, n);
+ const k1neg = k1 > POW_2_128;
+ const k2neg = k2 > POW_2_128;
+ if (k1neg)
+ k1 = n - k1;
+ if (k2neg)
+ k2 = n - k2;
+ if (k1 > POW_2_128 || k2 > POW_2_128) {
+ throw new Error('splitScalarEndo: Endomorphism failed, k=' + k);
+ }
+ return { k1neg, k1, k2neg, k2 };
+ },
+ };
+ const fieldLen = 32;
+ const groupLen = 32;
+ const hashLen = 32;
+ const compressedLen = fieldLen + 1;
+ const uncompressedLen = 2 * fieldLen + 1;
+ function weierstrass(x) {
+ const { a, b } = CURVE;
+ const x2 = mod(x * x);
+ const x3 = mod(x2 * x);
+ return mod(x3 + a * x + b);
+ }
+ const USE_ENDOMORPHISM = CURVE.a === _0n;
+ class ShaError extends Error {
+ constructor(message) {
+ super(message);
+ }
+ }
+ function assertJacPoint(other) {
+ if (!(other instanceof JacobianPoint))
+ throw new TypeError('JacobianPoint expected');
+ }
+ class JacobianPoint {
+ constructor(x, y, z) {
+ this.x = x;
+ this.y = y;
+ this.z = z;
+ }
+ static fromAffine(p) {
+ if (!(p instanceof Point)) {
+ throw new TypeError('JacobianPoint#fromAffine: expected Point');
+ }
+ if (p.equals(Point.ZERO))
+ return JacobianPoint.ZERO;
+ return new JacobianPoint(p.x, p.y, _1n);
+ }
+ static toAffineBatch(points) {
+ const toInv = invertBatch(points.map((p) => p.z));
+ return points.map((p, i) => p.toAffine(toInv[i]));
+ }
+ static normalizeZ(points) {
+ return JacobianPoint.toAffineBatch(points).map(JacobianPoint.fromAffine);
+ }
+ equals(other) {
+ assertJacPoint(other);
+ const { x: X1, y: Y1, z: Z1 } = this;
+ const { x: X2, y: Y2, z: Z2 } = other;
+ const Z1Z1 = mod(Z1 * Z1);
+ const Z2Z2 = mod(Z2 * Z2);
+ const U1 = mod(X1 * Z2Z2);
+ const U2 = mod(X2 * Z1Z1);
+ const S1 = mod(mod(Y1 * Z2) * Z2Z2);
+ const S2 = mod(mod(Y2 * Z1) * Z1Z1);
+ return U1 === U2 && S1 === S2;
+ }
+ negate() {
+ return new JacobianPoint(this.x, mod(-this.y), this.z);
+ }
+ double() {
+ const { x: X1, y: Y1, z: Z1 } = this;
+ const A = mod(X1 * X1);
+ const B = mod(Y1 * Y1);
+ const C = mod(B * B);
+ const x1b = X1 + B;
+ const D = mod(_2n * (mod(x1b * x1b) - A - C));
+ const E = mod(_3n * A);
+ const F = mod(E * E);
+ const X3 = mod(F - _2n * D);
+ const Y3 = mod(E * (D - X3) - _8n * C);
+ const Z3 = mod(_2n * Y1 * Z1);
+ return new JacobianPoint(X3, Y3, Z3);
+ }
+ add(other) {
+ assertJacPoint(other);
+ const { x: X1, y: Y1, z: Z1 } = this;
+ const { x: X2, y: Y2, z: Z2 } = other;
+ if (X2 === _0n || Y2 === _0n)
+ return this;
+ if (X1 === _0n || Y1 === _0n)
+ return other;
+ const Z1Z1 = mod(Z1 * Z1);
+ const Z2Z2 = mod(Z2 * Z2);
+ const U1 = mod(X1 * Z2Z2);
+ const U2 = mod(X2 * Z1Z1);
+ const S1 = mod(mod(Y1 * Z2) * Z2Z2);
+ const S2 = mod(mod(Y2 * Z1) * Z1Z1);
+ const H = mod(U2 - U1);
+ const r = mod(S2 - S1);
+ if (H === _0n) {
+ if (r === _0n) {
+ return this.double();
+ }
+ else {
+ return JacobianPoint.ZERO;
+ }
+ }
+ const HH = mod(H * H);
+ const HHH = mod(H * HH);
+ const V = mod(U1 * HH);
+ const X3 = mod(r * r - HHH - _2n * V);
+ const Y3 = mod(r * (V - X3) - S1 * HHH);
+ const Z3 = mod(Z1 * Z2 * H);
+ return new JacobianPoint(X3, Y3, Z3);
+ }
+ subtract(other) {
+ return this.add(other.negate());
+ }
+ multiplyUnsafe(scalar) {
+ const P0 = JacobianPoint.ZERO;
+ if (typeof scalar === 'bigint' && scalar === _0n)
+ return P0;
+ let n = normalizeScalar(scalar);
+ if (n === _1n)
+ return this;
+ if (!USE_ENDOMORPHISM) {
+ let p = P0;
+ let d = this;
+ while (n > _0n) {
+ if (n & _1n)
+ p = p.add(d);
+ d = d.double();
+ n >>= _1n;
+ }
+ return p;
+ }
+ let { k1neg, k1, k2neg, k2 } = endo.splitScalar(n);
+ let k1p = P0;
+ let k2p = P0;
+ let d = this;
+ while (k1 > _0n || k2 > _0n) {
+ if (k1 & _1n)
+ k1p = k1p.add(d);
+ if (k2 & _1n)
+ k2p = k2p.add(d);
+ d = d.double();
+ k1 >>= _1n;
+ k2 >>= _1n;
+ }
+ if (k1neg)
+ k1p = k1p.negate();
+ if (k2neg)
+ k2p = k2p.negate();
+ k2p = new JacobianPoint(mod(k2p.x * endo.beta), k2p.y, k2p.z);
+ return k1p.add(k2p);
+ }
+ precomputeWindow(W) {
+ const windows = USE_ENDOMORPHISM ? 128 / W + 1 : 256 / W + 1;
+ const points = [];
+ let p = this;
+ let base = p;
+ for (let window = 0; window < windows; window++) {
+ base = p;
+ points.push(base);
+ for (let i = 1; i < 2 ** (W - 1); i++) {
+ base = base.add(p);
+ points.push(base);
+ }
+ p = base.double();
+ }
+ return points;
+ }
+ wNAF(n, affinePoint) {
+ if (!affinePoint && this.equals(JacobianPoint.BASE))
+ affinePoint = Point.BASE;
+ const W = (affinePoint && affinePoint._WINDOW_SIZE) || 1;
+ if (256 % W) {
+ throw new Error('Point#wNAF: Invalid precomputation window, must be power of 2');
+ }
+ let precomputes = affinePoint && pointPrecomputes.get(affinePoint);
+ if (!precomputes) {
+ precomputes = this.precomputeWindow(W);
+ if (affinePoint && W !== 1) {
+ precomputes = JacobianPoint.normalizeZ(precomputes);
+ pointPrecomputes.set(affinePoint, precomputes);
+ }
+ }
+ let p = JacobianPoint.ZERO;
+ let f = JacobianPoint.BASE;
+ const windows = 1 + (USE_ENDOMORPHISM ? 128 / W : 256 / W);
+ const windowSize = 2 ** (W - 1);
+ const mask = BigInt(2 ** W - 1);
+ const maxNumber = 2 ** W;
+ const shiftBy = BigInt(W);
+ for (let window = 0; window < windows; window++) {
+ const offset = window * windowSize;
+ let wbits = Number(n & mask);
+ n >>= shiftBy;
+ if (wbits > windowSize) {
+ wbits -= maxNumber;
+ n += _1n;
+ }
+ const offset1 = offset;
+ const offset2 = offset + Math.abs(wbits) - 1;
+ const cond1 = window % 2 !== 0;
+ const cond2 = wbits < 0;
+ if (wbits === 0) {
+ f = f.add(constTimeNegate(cond1, precomputes[offset1]));
+ }
+ else {
+ p = p.add(constTimeNegate(cond2, precomputes[offset2]));
+ }
+ }
+ return { p, f };
+ }
+ multiply(scalar, affinePoint) {
+ let n = normalizeScalar(scalar);
+ let point;
+ let fake;
+ if (USE_ENDOMORPHISM) {
+ const { k1neg, k1, k2neg, k2 } = endo.splitScalar(n);
+ let { p: k1p, f: f1p } = this.wNAF(k1, affinePoint);
+ let { p: k2p, f: f2p } = this.wNAF(k2, affinePoint);
+ k1p = constTimeNegate(k1neg, k1p);
+ k2p = constTimeNegate(k2neg, k2p);
+ k2p = new JacobianPoint(mod(k2p.x * endo.beta), k2p.y, k2p.z);
+ point = k1p.add(k2p);
+ fake = f1p.add(f2p);
+ }
+ else {
+ const { p, f } = this.wNAF(n, affinePoint);
+ point = p;
+ fake = f;
+ }
+ return JacobianPoint.normalizeZ([point, fake])[0];
+ }
+ toAffine(invZ) {
+ const { x, y, z } = this;
+ const is0 = this.equals(JacobianPoint.ZERO);
+ if (invZ == null)
+ invZ = is0 ? _8n : invert(z);
+ const iz1 = invZ;
+ const iz2 = mod(iz1 * iz1);
+ const iz3 = mod(iz2 * iz1);
+ const ax = mod(x * iz2);
+ const ay = mod(y * iz3);
+ const zz = mod(z * iz1);
+ if (is0)
+ return Point.ZERO;
+ if (zz !== _1n)
+ throw new Error('invZ was invalid');
+ return new Point(ax, ay);
+ }
+ }
+ JacobianPoint.BASE = new JacobianPoint(CURVE.Gx, CURVE.Gy, _1n);
+ JacobianPoint.ZERO = new JacobianPoint(_0n, _1n, _0n);
+ function constTimeNegate(condition, item) {
+ const neg = item.negate();
+ return condition ? neg : item;
+ }
+ const pointPrecomputes = new WeakMap();
+ class Point {
+ constructor(x, y) {
+ this.x = x;
+ this.y = y;
+ }
+ _setWindowSize(windowSize) {
+ this._WINDOW_SIZE = windowSize;
+ pointPrecomputes.delete(this);
+ }
+ hasEvenY() {
+ return this.y % _2n === _0n;
+ }
+ static fromCompressedHex(bytes) {
+ const isShort = bytes.length === 32;
+ const x = bytesToNumber$1(isShort ? bytes : bytes.subarray(1));
+ if (!isValidFieldElement(x))
+ throw new Error('Point is not on curve');
+ const y2 = weierstrass(x);
+ let y = sqrtMod(y2);
+ const isYOdd = (y & _1n) === _1n;
+ if (isShort) {
+ if (isYOdd)
+ y = mod(-y);
+ }
+ else {
+ const isFirstByteOdd = (bytes[0] & 1) === 1;
+ if (isFirstByteOdd !== isYOdd)
+ y = mod(-y);
+ }
+ const point = new Point(x, y);
+ point.assertValidity();
+ return point;
+ }
+ static fromUncompressedHex(bytes) {
+ const x = bytesToNumber$1(bytes.subarray(1, fieldLen + 1));
+ const y = bytesToNumber$1(bytes.subarray(fieldLen + 1, fieldLen * 2 + 1));
+ const point = new Point(x, y);
+ point.assertValidity();
+ return point;
+ }
+ static fromHex(hex) {
+ const bytes = ensureBytes(hex);
+ const len = bytes.length;
+ const header = bytes[0];
+ if (len === fieldLen)
+ return this.fromCompressedHex(bytes);
+ if (len === compressedLen && (header === 0x02 || header === 0x03)) {
+ return this.fromCompressedHex(bytes);
+ }
+ if (len === uncompressedLen && header === 0x04)
+ return this.fromUncompressedHex(bytes);
+ throw new Error(`Point.fromHex: received invalid point. Expected 32-${compressedLen} compressed bytes or ${uncompressedLen} uncompressed bytes, not ${len}`);
+ }
+ static fromPrivateKey(privateKey) {
+ return Point.BASE.multiply(normalizePrivateKey(privateKey));
+ }
+ static fromSignature(msgHash, signature, recovery) {
+ const { r, s } = normalizeSignature(signature);
+ if (![0, 1, 2, 3].includes(recovery))
+ throw new Error('Cannot recover: invalid recovery bit');
+ const h = truncateHash(ensureBytes(msgHash));
+ const { n } = CURVE;
+ const radj = recovery === 2 || recovery === 3 ? r + n : r;
+ const rinv = invert(radj, n);
+ const u1 = mod(-h * rinv, n);
+ const u2 = mod(s * rinv, n);
+ const prefix = recovery & 1 ? '03' : '02';
+ const R = Point.fromHex(prefix + numTo32bStr(radj));
+ const Q = Point.BASE.multiplyAndAddUnsafe(R, u1, u2);
+ if (!Q)
+ throw new Error('Cannot recover signature: point at infinify');
+ Q.assertValidity();
+ return Q;
+ }
+ toRawBytes(isCompressed = false) {
+ return hexToBytes$1(this.toHex(isCompressed));
+ }
+ toHex(isCompressed = false) {
+ const x = numTo32bStr(this.x);
+ if (isCompressed) {
+ const prefix = this.hasEvenY() ? '02' : '03';
+ return `${prefix}${x}`;
+ }
+ else {
+ return `04${x}${numTo32bStr(this.y)}`;
+ }
+ }
+ toHexX() {
+ return this.toHex(true).slice(2);
+ }
+ toRawX() {
+ return this.toRawBytes(true).slice(1);
+ }
+ assertValidity() {
+ const msg = 'Point is not on elliptic curve';
+ const { x, y } = this;
+ if (!isValidFieldElement(x) || !isValidFieldElement(y))
+ throw new Error(msg);
+ const left = mod(y * y);
+ const right = weierstrass(x);
+ if (mod(left - right) !== _0n)
+ throw new Error(msg);
+ }
+ equals(other) {
+ return this.x === other.x && this.y === other.y;
+ }
+ negate() {
+ return new Point(this.x, mod(-this.y));
+ }
+ double() {
+ return JacobianPoint.fromAffine(this).double().toAffine();
+ }
+ add(other) {
+ return JacobianPoint.fromAffine(this).add(JacobianPoint.fromAffine(other)).toAffine();
+ }
+ subtract(other) {
+ return this.add(other.negate());
+ }
+ multiply(scalar) {
+ return JacobianPoint.fromAffine(this).multiply(scalar, this).toAffine();
+ }
+ multiplyAndAddUnsafe(Q, a, b) {
+ const P = JacobianPoint.fromAffine(this);
+ const aP = a === _0n || a === _1n || this !== Point.BASE ? P.multiplyUnsafe(a) : P.multiply(a);
+ const bQ = JacobianPoint.fromAffine(Q).multiplyUnsafe(b);
+ const sum = aP.add(bQ);
+ return sum.equals(JacobianPoint.ZERO) ? undefined : sum.toAffine();
+ }
+ }
+ Point.BASE = new Point(CURVE.Gx, CURVE.Gy);
+ Point.ZERO = new Point(_0n, _0n);
+ function sliceDER(s) {
+ return Number.parseInt(s[0], 16) >= 8 ? '00' + s : s;
+ }
+ function parseDERInt(data) {
+ if (data.length < 2 || data[0] !== 0x02) {
+ throw new Error(`Invalid signature integer tag: ${bytesToHex$1(data)}`);
+ }
+ const len = data[1];
+ const res = data.subarray(2, len + 2);
+ if (!len || res.length !== len) {
+ throw new Error(`Invalid signature integer: wrong length`);
+ }
+ if (res[0] === 0x00 && res[1] <= 0x7f) {
+ throw new Error('Invalid signature integer: trailing length');
+ }
+ return { data: bytesToNumber$1(res), left: data.subarray(len + 2) };
+ }
+ function parseDERSignature(data) {
+ if (data.length < 2 || data[0] != 0x30) {
+ throw new Error(`Invalid signature tag: ${bytesToHex$1(data)}`);
+ }
+ if (data[1] !== data.length - 2) {
+ throw new Error('Invalid signature: incorrect length');
+ }
+ const { data: r, left: sBytes } = parseDERInt(data.subarray(2));
+ const { data: s, left: rBytesLeft } = parseDERInt(sBytes);
+ if (rBytesLeft.length) {
+ throw new Error(`Invalid signature: left bytes after parsing: ${bytesToHex$1(rBytesLeft)}`);
+ }
+ return { r, s };
+ }
+ class Signature {
+ constructor(r, s) {
+ this.r = r;
+ this.s = s;
+ this.assertValidity();
+ }
+ static fromCompact(hex) {
+ const arr = hex instanceof Uint8Array;
+ const name = 'Signature.fromCompact';
+ if (typeof hex !== 'string' && !arr)
+ throw new TypeError(`${name}: Expected string or Uint8Array`);
+ const str = arr ? bytesToHex$1(hex) : hex;
+ if (str.length !== 128)
+ throw new Error(`${name}: Expected 64-byte hex`);
+ return new Signature(hexToNumber(str.slice(0, 64)), hexToNumber(str.slice(64, 128)));
+ }
+ static fromDER(hex) {
+ const arr = hex instanceof Uint8Array;
+ if (typeof hex !== 'string' && !arr)
+ throw new TypeError(`Signature.fromDER: Expected string or Uint8Array`);
+ const { r, s } = parseDERSignature(arr ? hex : hexToBytes$1(hex));
+ return new Signature(r, s);
+ }
+ static fromHex(hex) {
+ return this.fromDER(hex);
+ }
+ assertValidity() {
+ const { r, s } = this;
+ if (!isWithinCurveOrder(r))
+ throw new Error('Invalid Signature: r must be 0 < r < n');
+ if (!isWithinCurveOrder(s))
+ throw new Error('Invalid Signature: s must be 0 < s < n');
+ }
+ hasHighS() {
+ const HALF = CURVE.n >> _1n;
+ return this.s > HALF;
+ }
+ normalizeS() {
+ return this.hasHighS() ? new Signature(this.r, mod(-this.s, CURVE.n)) : this;
+ }
+ toDERRawBytes() {
+ return hexToBytes$1(this.toDERHex());
+ }
+ toDERHex() {
+ const sHex = sliceDER(numberToHexUnpadded(this.s));
+ const rHex = sliceDER(numberToHexUnpadded(this.r));
+ const sHexL = sHex.length / 2;
+ const rHexL = rHex.length / 2;
+ const sLen = numberToHexUnpadded(sHexL);
+ const rLen = numberToHexUnpadded(rHexL);
+ const length = numberToHexUnpadded(rHexL + sHexL + 4);
+ return `30${length}02${rLen}${rHex}02${sLen}${sHex}`;
+ }
+ toRawBytes() {
+ return this.toDERRawBytes();
+ }
+ toHex() {
+ return this.toDERHex();
+ }
+ toCompactRawBytes() {
+ return hexToBytes$1(this.toCompactHex());
+ }
+ toCompactHex() {
+ return numTo32bStr(this.r) + numTo32bStr(this.s);
+ }
+ }
+ function concatBytes$1(...arrays) {
+ if (!arrays.every((b) => b instanceof Uint8Array))
+ throw new Error('Uint8Array list expected');
+ if (arrays.length === 1)
+ return arrays[0];
+ const length = arrays.reduce((a, arr) => a + arr.length, 0);
+ const result = new Uint8Array(length);
+ for (let i = 0, pad = 0; i < arrays.length; i++) {
+ const arr = arrays[i];
+ result.set(arr, pad);
+ pad += arr.length;
+ }
+ return result;
+ }
+ const hexes$1 = Array.from({ length: 256 }, (v, i) => i.toString(16).padStart(2, '0'));
+ function bytesToHex$1(uint8a) {
+ if (!(uint8a instanceof Uint8Array))
+ throw new Error('Expected Uint8Array');
+ let hex = '';
+ for (let i = 0; i < uint8a.length; i++) {
+ hex += hexes$1[uint8a[i]];
+ }
+ return hex;
+ }
+ const POW_2_256 = BigInt('0x10000000000000000000000000000000000000000000000000000000000000000');
+ function numTo32bStr(num) {
+ if (typeof num !== 'bigint')
+ throw new Error('Expected bigint');
+ if (!(_0n <= num && num < POW_2_256))
+ throw new Error('Expected number 0 <= n < 2^256');
+ return num.toString(16).padStart(64, '0');
+ }
+ function numTo32b(num) {
+ const b = hexToBytes$1(numTo32bStr(num));
+ if (b.length !== 32)
+ throw new Error('Error: expected 32 bytes');
+ return b;
+ }
+ function numberToHexUnpadded(num) {
+ const hex = num.toString(16);
+ return hex.length & 1 ? `0${hex}` : hex;
+ }
+ function hexToNumber(hex) {
+ if (typeof hex !== 'string') {
+ throw new TypeError('hexToNumber: expected string, got ' + typeof hex);
+ }
+ return BigInt(`0x${hex}`);
+ }
+ function hexToBytes$1(hex) {
+ if (typeof hex !== 'string') {
+ throw new TypeError('hexToBytes: expected string, got ' + typeof hex);
+ }
+ if (hex.length % 2)
+ throw new Error('hexToBytes: received invalid unpadded hex' + hex.length);
+ const array = new Uint8Array(hex.length / 2);
+ for (let i = 0; i < array.length; i++) {
+ const j = i * 2;
+ const hexByte = hex.slice(j, j + 2);
+ const byte = Number.parseInt(hexByte, 16);
+ if (Number.isNaN(byte) || byte < 0)
+ throw new Error('Invalid byte sequence');
+ array[i] = byte;
+ }
+ return array;
+ }
+ function bytesToNumber$1(bytes) {
+ return hexToNumber(bytesToHex$1(bytes));
+ }
+ function ensureBytes(hex) {
+ return hex instanceof Uint8Array ? Uint8Array.from(hex) : hexToBytes$1(hex);
+ }
+ function normalizeScalar(num) {
+ if (typeof num === 'number' && Number.isSafeInteger(num) && num > 0)
+ return BigInt(num);
+ if (typeof num === 'bigint' && isWithinCurveOrder(num))
+ return num;
+ throw new TypeError('Expected valid private scalar: 0 < scalar < curve.n');
+ }
+ function mod(a, b = CURVE.P) {
+ const result = a % b;
+ return result >= _0n ? result : b + result;
+ }
+ function pow2(x, power) {
+ const { P } = CURVE;
+ let res = x;
+ while (power-- > _0n) {
+ res *= res;
+ res %= P;
+ }
+ return res;
+ }
+ function sqrtMod(x) {
+ const { P } = CURVE;
+ const _6n = BigInt(6);
+ const _11n = BigInt(11);
+ const _22n = BigInt(22);
+ const _23n = BigInt(23);
+ const _44n = BigInt(44);
+ const _88n = BigInt(88);
+ const b2 = (x * x * x) % P;
+ const b3 = (b2 * b2 * x) % P;
+ const b6 = (pow2(b3, _3n) * b3) % P;
+ const b9 = (pow2(b6, _3n) * b3) % P;
+ const b11 = (pow2(b9, _2n) * b2) % P;
+ const b22 = (pow2(b11, _11n) * b11) % P;
+ const b44 = (pow2(b22, _22n) * b22) % P;
+ const b88 = (pow2(b44, _44n) * b44) % P;
+ const b176 = (pow2(b88, _88n) * b88) % P;
+ const b220 = (pow2(b176, _44n) * b44) % P;
+ const b223 = (pow2(b220, _3n) * b3) % P;
+ const t1 = (pow2(b223, _23n) * b22) % P;
+ const t2 = (pow2(t1, _6n) * b2) % P;
+ const rt = pow2(t2, _2n);
+ const xc = (rt * rt) % P;
+ if (xc !== x)
+ throw new Error('Cannot find square root');
+ return rt;
+ }
+ function invert(number, modulo = CURVE.P) {
+ if (number === _0n || modulo <= _0n) {
+ throw new Error(`invert: expected positive integers, got n=${number} mod=${modulo}`);
+ }
+ let a = mod(number, modulo);
+ let b = modulo;
+ let x = _0n, u = _1n;
+ while (a !== _0n) {
+ const q = b / a;
+ const r = b % a;
+ const m = x - u * q;
+ b = a, a = r, x = u, u = m;
+ }
+ const gcd = b;
+ if (gcd !== _1n)
+ throw new Error('invert: does not exist');
+ return mod(x, modulo);
+ }
+ function invertBatch(nums, p = CURVE.P) {
+ const scratch = new Array(nums.length);
+ const lastMultiplied = nums.reduce((acc, num, i) => {
+ if (num === _0n)
+ return acc;
+ scratch[i] = acc;
+ return mod(acc * num, p);
+ }, _1n);
+ const inverted = invert(lastMultiplied, p);
+ nums.reduceRight((acc, num, i) => {
+ if (num === _0n)
+ return acc;
+ scratch[i] = mod(acc * scratch[i], p);
+ return mod(acc * num, p);
+ }, inverted);
+ return scratch;
+ }
+ function bits2int_2(bytes) {
+ const delta = bytes.length * 8 - groupLen * 8;
+ const num = bytesToNumber$1(bytes);
+ return delta > 0 ? num >> BigInt(delta) : num;
+ }
+ function truncateHash(hash, truncateOnly = false) {
+ const h = bits2int_2(hash);
+ if (truncateOnly)
+ return h;
+ const { n } = CURVE;
+ return h >= n ? h - n : h;
+ }
+ let _sha256Sync;
+ let _hmacSha256Sync;
+ class HmacDrbg {
+ constructor(hashLen, qByteLen) {
+ this.hashLen = hashLen;
+ this.qByteLen = qByteLen;
+ if (typeof hashLen !== 'number' || hashLen < 2)
+ throw new Error('hashLen must be a number');
+ if (typeof qByteLen !== 'number' || qByteLen < 2)
+ throw new Error('qByteLen must be a number');
+ this.v = new Uint8Array(hashLen).fill(1);
+ this.k = new Uint8Array(hashLen).fill(0);
+ this.counter = 0;
+ }
+ hmac(...values) {
+ return utils$1.hmacSha256(this.k, ...values);
+ }
+ hmacSync(...values) {
+ return _hmacSha256Sync(this.k, ...values);
+ }
+ checkSync() {
+ if (typeof _hmacSha256Sync !== 'function')
+ throw new ShaError('hmacSha256Sync needs to be set');
+ }
+ incr() {
+ if (this.counter >= 1000)
+ throw new Error('Tried 1,000 k values for sign(), all were invalid');
+ this.counter += 1;
+ }
+ async reseed(seed = new Uint8Array()) {
+ this.k = await this.hmac(this.v, Uint8Array.from([0x00]), seed);
+ this.v = await this.hmac(this.v);
+ if (seed.length === 0)
+ return;
+ this.k = await this.hmac(this.v, Uint8Array.from([0x01]), seed);
+ this.v = await this.hmac(this.v);
+ }
+ reseedSync(seed = new Uint8Array()) {
+ this.checkSync();
+ this.k = this.hmacSync(this.v, Uint8Array.from([0x00]), seed);
+ this.v = this.hmacSync(this.v);
+ if (seed.length === 0)
+ return;
+ this.k = this.hmacSync(this.v, Uint8Array.from([0x01]), seed);
+ this.v = this.hmacSync(this.v);
+ }
+ async generate() {
+ this.incr();
+ let len = 0;
+ const out = [];
+ while (len < this.qByteLen) {
+ this.v = await this.hmac(this.v);
+ const sl = this.v.slice();
+ out.push(sl);
+ len += this.v.length;
+ }
+ return concatBytes$1(...out);
+ }
+ generateSync() {
+ this.checkSync();
+ this.incr();
+ let len = 0;
+ const out = [];
+ while (len < this.qByteLen) {
+ this.v = this.hmacSync(this.v);
+ const sl = this.v.slice();
+ out.push(sl);
+ len += this.v.length;
+ }
+ return concatBytes$1(...out);
+ }
+ }
+ function isWithinCurveOrder(num) {
+ return _0n < num && num < CURVE.n;
+ }
+ function isValidFieldElement(num) {
+ return _0n < num && num < CURVE.P;
+ }
+ function kmdToSig(kBytes, m, d, lowS = true) {
+ const { n } = CURVE;
+ const k = truncateHash(kBytes, true);
+ if (!isWithinCurveOrder(k))
+ return;
+ const kinv = invert(k, n);
+ const q = Point.BASE.multiply(k);
+ const r = mod(q.x, n);
+ if (r === _0n)
+ return;
+ const s = mod(kinv * mod(m + d * r, n), n);
+ if (s === _0n)
+ return;
+ let sig = new Signature(r, s);
+ let recovery = (q.x === sig.r ? 0 : 2) | Number(q.y & _1n);
+ if (lowS && sig.hasHighS()) {
+ sig = sig.normalizeS();
+ recovery ^= 1;
+ }
+ return { sig, recovery };
+ }
+ function normalizePrivateKey(key) {
+ let num;
+ if (typeof key === 'bigint') {
+ num = key;
+ }
+ else if (typeof key === 'number' && Number.isSafeInteger(key) && key > 0) {
+ num = BigInt(key);
+ }
+ else if (typeof key === 'string') {
+ if (key.length !== 2 * groupLen)
+ throw new Error('Expected 32 bytes of private key');
+ num = hexToNumber(key);
+ }
+ else if (key instanceof Uint8Array) {
+ if (key.length !== groupLen)
+ throw new Error('Expected 32 bytes of private key');
+ num = bytesToNumber$1(key);
+ }
+ else {
+ throw new TypeError('Expected valid private key');
+ }
+ if (!isWithinCurveOrder(num))
+ throw new Error('Expected private key: 0 < key < n');
+ return num;
+ }
+ function normalizePublicKey(publicKey) {
+ if (publicKey instanceof Point) {
+ publicKey.assertValidity();
+ return publicKey;
+ }
+ else {
+ return Point.fromHex(publicKey);
+ }
+ }
+ function normalizeSignature(signature) {
+ if (signature instanceof Signature) {
+ signature.assertValidity();
+ return signature;
+ }
+ try {
+ return Signature.fromDER(signature);
+ }
+ catch (error) {
+ return Signature.fromCompact(signature);
+ }
+ }
+ function getPublicKey$1(privateKey, isCompressed = false) {
+ return Point.fromPrivateKey(privateKey).toRawBytes(isCompressed);
+ }
+ function isProbPub(item) {
+ const arr = item instanceof Uint8Array;
+ const str = typeof item === 'string';
+ const len = (arr || str) && item.length;
+ if (arr)
+ return len === compressedLen || len === uncompressedLen;
+ if (str)
+ return len === compressedLen * 2 || len === uncompressedLen * 2;
+ if (item instanceof Point)
+ return true;
+ return false;
+ }
+ function getSharedSecret(privateA, publicB, isCompressed = false) {
+ if (isProbPub(privateA))
+ throw new TypeError('getSharedSecret: first arg must be private key');
+ if (!isProbPub(publicB))
+ throw new TypeError('getSharedSecret: second arg must be public key');
+ const b = normalizePublicKey(publicB);
+ b.assertValidity();
+ return b.multiply(normalizePrivateKey(privateA)).toRawBytes(isCompressed);
+ }
+ function bits2int(bytes) {
+ const slice = bytes.length > fieldLen ? bytes.slice(0, fieldLen) : bytes;
+ return bytesToNumber$1(slice);
+ }
+ function bits2octets(bytes) {
+ const z1 = bits2int(bytes);
+ const z2 = mod(z1, CURVE.n);
+ return int2octets(z2 < _0n ? z1 : z2);
+ }
+ function int2octets(num) {
+ return numTo32b(num);
+ }
+ function initSigArgs(msgHash, privateKey, extraEntropy) {
+ if (msgHash == null)
+ throw new Error(`sign: expected valid message hash, not "${msgHash}"`);
+ const h1 = ensureBytes(msgHash);
+ const d = normalizePrivateKey(privateKey);
+ const seedArgs = [int2octets(d), bits2octets(h1)];
+ if (extraEntropy != null) {
+ if (extraEntropy === true)
+ extraEntropy = utils$1.randomBytes(fieldLen);
+ const e = ensureBytes(extraEntropy);
+ if (e.length !== fieldLen)
+ throw new Error(`sign: Expected ${fieldLen} bytes of extra data`);
+ seedArgs.push(e);
+ }
+ const seed = concatBytes$1(...seedArgs);
+ const m = bits2int(h1);
+ return { seed, m, d };
+ }
+ function finalizeSig(recSig, opts) {
+ const { sig, recovery } = recSig;
+ const { der, recovered } = Object.assign({ canonical: true, der: true }, opts);
+ const hashed = der ? sig.toDERRawBytes() : sig.toCompactRawBytes();
+ return recovered ? [hashed, recovery] : hashed;
+ }
+ function signSync(msgHash, privKey, opts = {}) {
+ const { seed, m, d } = initSigArgs(msgHash, privKey, opts.extraEntropy);
+ const drbg = new HmacDrbg(hashLen, groupLen);
+ drbg.reseedSync(seed);
+ let sig;
+ while (!(sig = kmdToSig(drbg.generateSync(), m, d, opts.canonical)))
+ drbg.reseedSync();
+ return finalizeSig(sig, opts);
+ }
+ const vopts = { strict: true };
+ function verify(signature, msgHash, publicKey, opts = vopts) {
+ let sig;
+ try {
+ sig = normalizeSignature(signature);
+ msgHash = ensureBytes(msgHash);
+ }
+ catch (error) {
+ return false;
+ }
+ const { r, s } = sig;
+ if (opts.strict && sig.hasHighS())
+ return false;
+ const h = truncateHash(msgHash);
+ let P;
+ try {
+ P = normalizePublicKey(publicKey);
+ }
+ catch (error) {
+ return false;
+ }
+ const { n } = CURVE;
+ const sinv = invert(s, n);
+ const u1 = mod(h * sinv, n);
+ const u2 = mod(r * sinv, n);
+ const R = Point.BASE.multiplyAndAddUnsafe(P, u1, u2);
+ if (!R)
+ return false;
+ const v = mod(R.x, n);
+ return v === r;
+ }
+ function schnorrChallengeFinalize(ch) {
+ return mod(bytesToNumber$1(ch), CURVE.n);
+ }
+ class SchnorrSignature {
+ constructor(r, s) {
+ this.r = r;
+ this.s = s;
+ this.assertValidity();
+ }
+ static fromHex(hex) {
+ const bytes = ensureBytes(hex);
+ if (bytes.length !== 64)
+ throw new TypeError(`SchnorrSignature.fromHex: expected 64 bytes, not ${bytes.length}`);
+ const r = bytesToNumber$1(bytes.subarray(0, 32));
+ const s = bytesToNumber$1(bytes.subarray(32, 64));
+ return new SchnorrSignature(r, s);
+ }
+ assertValidity() {
+ const { r, s } = this;
+ if (!isValidFieldElement(r) || !isWithinCurveOrder(s))
+ throw new Error('Invalid signature');
+ }
+ toHex() {
+ return numTo32bStr(this.r) + numTo32bStr(this.s);
+ }
+ toRawBytes() {
+ return hexToBytes$1(this.toHex());
+ }
+ }
+ function schnorrGetPublicKey(privateKey) {
+ return Point.fromPrivateKey(privateKey).toRawX();
+ }
+ class InternalSchnorrSignature {
+ constructor(message, privateKey, auxRand = utils$1.randomBytes()) {
+ if (message == null)
+ throw new TypeError(`sign: Expected valid message, not "${message}"`);
+ this.m = ensureBytes(message);
+ const { x, scalar } = this.getScalar(normalizePrivateKey(privateKey));
+ this.px = x;
+ this.d = scalar;
+ this.rand = ensureBytes(auxRand);
+ if (this.rand.length !== 32)
+ throw new TypeError('sign: Expected 32 bytes of aux randomness');
+ }
+ getScalar(priv) {
+ const point = Point.fromPrivateKey(priv);
+ const scalar = point.hasEvenY() ? priv : CURVE.n - priv;
+ return { point, scalar, x: point.toRawX() };
+ }
+ initNonce(d, t0h) {
+ return numTo32b(d ^ bytesToNumber$1(t0h));
+ }
+ finalizeNonce(k0h) {
+ const k0 = mod(bytesToNumber$1(k0h), CURVE.n);
+ if (k0 === _0n)
+ throw new Error('sign: Creation of signature failed. k is zero');
+ const { point: R, x: rx, scalar: k } = this.getScalar(k0);
+ return { R, rx, k };
+ }
+ finalizeSig(R, k, e, d) {
+ return new SchnorrSignature(R.x, mod(k + e * d, CURVE.n)).toRawBytes();
+ }
+ error() {
+ throw new Error('sign: Invalid signature produced');
+ }
+ async calc() {
+ const { m, d, px, rand } = this;
+ const tag = utils$1.taggedHash;
+ const t = this.initNonce(d, await tag(TAGS.aux, rand));
+ const { R, rx, k } = this.finalizeNonce(await tag(TAGS.nonce, t, px, m));
+ const e = schnorrChallengeFinalize(await tag(TAGS.challenge, rx, px, m));
+ const sig = this.finalizeSig(R, k, e, d);
+ if (!(await schnorrVerify(sig, m, px)))
+ this.error();
+ return sig;
+ }
+ calcSync() {
+ const { m, d, px, rand } = this;
+ const tag = utils$1.taggedHashSync;
+ const t = this.initNonce(d, tag(TAGS.aux, rand));
+ const { R, rx, k } = this.finalizeNonce(tag(TAGS.nonce, t, px, m));
+ const e = schnorrChallengeFinalize(tag(TAGS.challenge, rx, px, m));
+ const sig = this.finalizeSig(R, k, e, d);
+ if (!schnorrVerifySync(sig, m, px))
+ this.error();
+ return sig;
+ }
+ }
+ async function schnorrSign(msg, privKey, auxRand) {
+ return new InternalSchnorrSignature(msg, privKey, auxRand).calc();
+ }
+ function schnorrSignSync(msg, privKey, auxRand) {
+ return new InternalSchnorrSignature(msg, privKey, auxRand).calcSync();
+ }
+ function initSchnorrVerify(signature, message, publicKey) {
+ const raw = signature instanceof SchnorrSignature;
+ const sig = raw ? signature : SchnorrSignature.fromHex(signature);
+ if (raw)
+ sig.assertValidity();
+ return {
+ ...sig,
+ m: ensureBytes(message),
+ P: normalizePublicKey(publicKey),
+ };
+ }
+ function finalizeSchnorrVerify(r, P, s, e) {
+ const R = Point.BASE.multiplyAndAddUnsafe(P, normalizePrivateKey(s), mod(-e, CURVE.n));
+ if (!R || !R.hasEvenY() || R.x !== r)
+ return false;
+ return true;
+ }
+ async function schnorrVerify(signature, message, publicKey) {
+ try {
+ const { r, s, m, P } = initSchnorrVerify(signature, message, publicKey);
+ const e = schnorrChallengeFinalize(await utils$1.taggedHash(TAGS.challenge, numTo32b(r), P.toRawX(), m));
+ return finalizeSchnorrVerify(r, P, s, e);
+ }
+ catch (error) {
+ return false;
+ }
+ }
+ function schnorrVerifySync(signature, message, publicKey) {
+ try {
+ const { r, s, m, P } = initSchnorrVerify(signature, message, publicKey);
+ const e = schnorrChallengeFinalize(utils$1.taggedHashSync(TAGS.challenge, numTo32b(r), P.toRawX(), m));
+ return finalizeSchnorrVerify(r, P, s, e);
+ }
+ catch (error) {
+ if (error instanceof ShaError)
+ throw error;
+ return false;
+ }
+ }
+ const schnorr = {
+ Signature: SchnorrSignature,
+ getPublicKey: schnorrGetPublicKey,
+ sign: schnorrSign,
+ verify: schnorrVerify,
+ signSync: schnorrSignSync,
+ verifySync: schnorrVerifySync,
+ };
+ Point.BASE._setWindowSize(8);
+ const crypto$2 = {
+ node: nodeCrypto,
+ web: typeof self === 'object' && 'crypto' in self ? self.crypto : undefined,
+ };
+ const TAGS = {
+ challenge: 'BIP0340/challenge',
+ aux: 'BIP0340/aux',
+ nonce: 'BIP0340/nonce',
+ };
+ const TAGGED_HASH_PREFIXES = {};
+ const utils$1 = {
+ bytesToHex: bytesToHex$1,
+ hexToBytes: hexToBytes$1,
+ concatBytes: concatBytes$1,
+ mod,
+ invert,
+ isValidPrivateKey(privateKey) {
+ try {
+ normalizePrivateKey(privateKey);
+ return true;
+ }
+ catch (error) {
+ return false;
+ }
+ },
+ _bigintTo32Bytes: numTo32b,
+ _normalizePrivateKey: normalizePrivateKey,
+ hashToPrivateKey: (hash) => {
+ hash = ensureBytes(hash);
+ const minLen = groupLen + 8;
+ if (hash.length < minLen || hash.length > 1024) {
+ throw new Error(`Expected valid bytes of private key as per FIPS 186`);
+ }
+ const num = mod(bytesToNumber$1(hash), CURVE.n - _1n) + _1n;
+ return numTo32b(num);
+ },
+ randomBytes: (bytesLength = 32) => {
+ if (crypto$2.web) {
+ return crypto$2.web.getRandomValues(new Uint8Array(bytesLength));
+ }
+ else if (crypto$2.node) {
+ const { randomBytes } = crypto$2.node;
+ return Uint8Array.from(randomBytes(bytesLength));
+ }
+ else {
+ throw new Error("The environment doesn't have randomBytes function");
+ }
+ },
+ randomPrivateKey: () => utils$1.hashToPrivateKey(utils$1.randomBytes(groupLen + 8)),
+ precompute(windowSize = 8, point = Point.BASE) {
+ const cached = point === Point.BASE ? point : new Point(point.x, point.y);
+ cached._setWindowSize(windowSize);
+ cached.multiply(_3n);
+ return cached;
+ },
+ sha256: async (...messages) => {
+ if (crypto$2.web) {
+ const buffer = await crypto$2.web.subtle.digest('SHA-256', concatBytes$1(...messages));
+ return new Uint8Array(buffer);
+ }
+ else if (crypto$2.node) {
+ const { createHash } = crypto$2.node;
+ const hash = createHash('sha256');
+ messages.forEach((m) => hash.update(m));
+ return Uint8Array.from(hash.digest());
+ }
+ else {
+ throw new Error("The environment doesn't have sha256 function");
+ }
+ },
+ hmacSha256: async (key, ...messages) => {
+ if (crypto$2.web) {
+ const ckey = await crypto$2.web.subtle.importKey('raw', key, { name: 'HMAC', hash: { name: 'SHA-256' } }, false, ['sign']);
+ const message = concatBytes$1(...messages);
+ const buffer = await crypto$2.web.subtle.sign('HMAC', ckey, message);
+ return new Uint8Array(buffer);
+ }
+ else if (crypto$2.node) {
+ const { createHmac } = crypto$2.node;
+ const hash = createHmac('sha256', key);
+ messages.forEach((m) => hash.update(m));
+ return Uint8Array.from(hash.digest());
+ }
+ else {
+ throw new Error("The environment doesn't have hmac-sha256 function");
+ }
+ },
+ sha256Sync: undefined,
+ hmacSha256Sync: undefined,
+ taggedHash: async (tag, ...messages) => {
+ let tagP = TAGGED_HASH_PREFIXES[tag];
+ if (tagP === undefined) {
+ const tagH = await utils$1.sha256(Uint8Array.from(tag, (c) => c.charCodeAt(0)));
+ tagP = concatBytes$1(tagH, tagH);
+ TAGGED_HASH_PREFIXES[tag] = tagP;
+ }
+ return utils$1.sha256(tagP, ...messages);
+ },
+ taggedHashSync: (tag, ...messages) => {
+ if (typeof _sha256Sync !== 'function')
+ throw new ShaError('sha256Sync is undefined, you need to set it');
+ let tagP = TAGGED_HASH_PREFIXES[tag];
+ if (tagP === undefined) {
+ const tagH = _sha256Sync(Uint8Array.from(tag, (c) => c.charCodeAt(0)));
+ tagP = concatBytes$1(tagH, tagH);
+ TAGGED_HASH_PREFIXES[tag] = tagP;
+ }
+ return _sha256Sync(tagP, ...messages);
+ },
+ _JacobianPoint: JacobianPoint,
+ };
+ Object.defineProperties(utils$1, {
+ sha256Sync: {
+ configurable: false,
+ get() {
+ return _sha256Sync;
+ },
+ set(val) {
+ if (!_sha256Sync)
+ _sha256Sync = val;
+ },
+ },
+ hmacSha256Sync: {
+ configurable: false,
+ get() {
+ return _hmacSha256Sync;
+ },
+ set(val) {
+ if (!_hmacSha256Sync)
+ _hmacSha256Sync = val;
+ },
+ },
+ });
+
+ const crypto$1 = {
+ node: undefined,
+ web: typeof self === 'object' && 'crypto' in self ? self.crypto : undefined,
+ };
+
+ /*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */
+ // Cast array to view
+ const createView$1 = (arr) => new DataView(arr.buffer, arr.byteOffset, arr.byteLength);
+ // The rotate right (circular right shift) operation for uint32
+ const rotr$1 = (word, shift) => (word << (32 - shift)) | (word >>> shift);
+ const isLE$1 = new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44;
+ // There is almost no big endian hardware, but js typed arrays uses platform specific endianess.
+ // So, just to be sure not to corrupt anything.
+ if (!isLE$1)
+ throw new Error('Non little-endian hardware is not supported');
+ Array.from({ length: 256 }, (v, i) => i.toString(16).padStart(2, '0'));
+ // Currently avoid insertion of polyfills with packers (browserify/webpack/etc)
+ // But setTimeout is pretty slow, maybe worth to investigate howto do minimal polyfill here
+ (() => {
+ const nodeRequire = typeof module !== 'undefined' &&
+ typeof module.require === 'function' &&
+ module.require.bind(module);
+ try {
+ if (nodeRequire) {
+ const { setImmediate } = nodeRequire('timers');
+ return () => new Promise((resolve) => setImmediate(resolve));
+ }
+ }
+ catch (e) { }
+ return () => new Promise((resolve) => setTimeout(resolve, 0));
+ })();
+ function utf8ToBytes$1(str) {
+ if (typeof str !== 'string') {
+ throw new TypeError(`utf8ToBytes expected string, got ${typeof str}`);
+ }
+ return new TextEncoder().encode(str);
+ }
+ function toBytes$1(data) {
+ if (typeof data === 'string')
+ data = utf8ToBytes$1(data);
+ if (!(data instanceof Uint8Array))
+ throw new TypeError(`Expected input type is Uint8Array (got ${typeof data})`);
+ return data;
+ }
+ function assertNumber$1(n) {
+ if (!Number.isSafeInteger(n) || n < 0)
+ throw new Error(`Wrong positive integer: ${n}`);
+ }
+ function assertHash(hash) {
+ if (typeof hash !== 'function' || typeof hash.create !== 'function')
+ throw new Error('Hash should be wrapped by utils.wrapConstructor');
+ assertNumber$1(hash.outputLen);
+ assertNumber$1(hash.blockLen);
+ }
+ // For runtime check if class implements interface
+ let Hash$1 = class Hash {
+ // Safe version that clones internal state
+ clone() {
+ return this._cloneInto();
+ }
+ };
+ function wrapConstructor$1(hashConstructor) {
+ const hashC = (message) => hashConstructor().update(toBytes$1(message)).digest();
+ const tmp = hashConstructor();
+ hashC.outputLen = tmp.outputLen;
+ hashC.blockLen = tmp.blockLen;
+ hashC.create = () => hashConstructor();
+ return hashC;
+ }
+ /**
+ * Secure PRNG
+ */
+ function randomBytes(bytesLength = 32) {
+ if (crypto$1.web) {
+ return crypto$1.web.getRandomValues(new Uint8Array(bytesLength));
+ }
+ else {
+ throw new Error("The environment doesn't have randomBytes function");
+ }
+ }
+
+ // Polyfill for Safari 14
+ function setBigUint64$2(view, byteOffset, value, isLE) {
+ if (typeof view.setBigUint64 === 'function')
+ return view.setBigUint64(byteOffset, value, isLE);
+ const _32n = BigInt(32);
+ const _u32_max = BigInt(0xffffffff);
+ const wh = Number((value >> _32n) & _u32_max);
+ const wl = Number(value & _u32_max);
+ const h = isLE ? 4 : 0;
+ const l = isLE ? 0 : 4;
+ view.setUint32(byteOffset + h, wh, isLE);
+ view.setUint32(byteOffset + l, wl, isLE);
+ }
+ // Base SHA2 class (RFC 6234)
+ let SHA2$2 = class SHA2 extends Hash$1 {
+ constructor(blockLen, outputLen, padOffset, isLE) {
+ super();
+ this.blockLen = blockLen;
+ this.outputLen = outputLen;
+ this.padOffset = padOffset;
+ this.isLE = isLE;
+ this.finished = false;
+ this.length = 0;
+ this.pos = 0;
+ this.destroyed = false;
+ this.buffer = new Uint8Array(blockLen);
+ this.view = createView$1(this.buffer);
+ }
+ update(data) {
+ if (this.destroyed)
+ throw new Error('instance is destroyed');
+ const { view, buffer, blockLen, finished } = this;
+ if (finished)
+ throw new Error('digest() was already called');
+ data = toBytes$1(data);
+ const len = data.length;
+ for (let pos = 0; pos < len;) {
+ const take = Math.min(blockLen - this.pos, len - pos);
+ // Fast path: we have at least one block in input, cast it to view and process
+ if (take === blockLen) {
+ const dataView = createView$1(data);
+ for (; blockLen <= len - pos; pos += blockLen)
+ this.process(dataView, pos);
+ continue;
+ }
+ buffer.set(data.subarray(pos, pos + take), this.pos);
+ this.pos += take;
+ pos += take;
+ if (this.pos === blockLen) {
+ this.process(view, 0);
+ this.pos = 0;
+ }
+ }
+ this.length += data.length;
+ this.roundClean();
+ return this;
+ }
+ digestInto(out) {
+ if (this.destroyed)
+ throw new Error('instance is destroyed');
+ if (!(out instanceof Uint8Array) || out.length < this.outputLen)
+ throw new Error('_Sha2: Invalid output buffer');
+ if (this.finished)
+ throw new Error('digest() was already called');
+ this.finished = true;
+ // Padding
+ // We can avoid allocation of buffer for padding completely if it
+ // was previously not allocated here. But it won't change performance.
+ const { buffer, view, blockLen, isLE } = this;
+ let { pos } = this;
+ // append the bit '1' to the message
+ buffer[pos++] = 0b10000000;
+ this.buffer.subarray(pos).fill(0);
+ // we have less than padOffset left in buffer, so we cannot put length in current block, need process it and pad again
+ if (this.padOffset > blockLen - pos) {
+ this.process(view, 0);
+ pos = 0;
+ }
+ // Pad until full block byte with zeros
+ for (let i = pos; i < blockLen; i++)
+ buffer[i] = 0;
+ // NOTE: sha512 requires length to be 128bit integer, but length in JS will overflow before that
+ // You need to write around 2 exabytes (u64_max / 8 / (1024**6)) for this to happen.
+ // So we just write lowest 64bit of that value.
+ setBigUint64$2(view, blockLen - 8, BigInt(this.length * 8), isLE);
+ this.process(view, 0);
+ const oview = createView$1(out);
+ this.get().forEach((v, i) => oview.setUint32(4 * i, v, isLE));
+ }
+ digest() {
+ const { buffer, outputLen } = this;
+ this.digestInto(buffer);
+ const res = buffer.slice(0, outputLen);
+ this.destroy();
+ return res;
+ }
+ _cloneInto(to) {
+ to || (to = new this.constructor());
+ to.set(...this.get());
+ const { blockLen, buffer, length, finished, destroyed, pos } = this;
+ to.length = length;
+ to.pos = pos;
+ to.finished = finished;
+ to.destroyed = destroyed;
+ if (length % blockLen)
+ to.buffer.set(buffer);
+ return to;
+ }
+ };
+
+ // Choice: a ? b : c
+ const Chi$2 = (a, b, c) => (a & b) ^ (~a & c);
+ // Majority function, true if any two inpust is true
+ const Maj$2 = (a, b, c) => (a & b) ^ (a & c) ^ (b & c);
+ // Round constants:
+ // first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311)
+ // prettier-ignore
+ const SHA256_K$2 = new Uint32Array([
+ 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,
+ 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,
+ 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
+ 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,
+ 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,
+ 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
+ 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,
+ 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2
+ ]);
+ // Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):
+ // prettier-ignore
+ const IV$2 = new Uint32Array([
+ 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19
+ ]);
+ // Temporary buffer, not used to store anything between runs
+ // Named this way because it matches specification.
+ const SHA256_W$2 = new Uint32Array(64);
+ let SHA256$2 = class SHA256 extends SHA2$2 {
+ constructor() {
+ super(64, 32, 8, false);
+ // We cannot use array here since array allows indexing by variable
+ // which means optimizer/compiler cannot use registers.
+ this.A = IV$2[0] | 0;
+ this.B = IV$2[1] | 0;
+ this.C = IV$2[2] | 0;
+ this.D = IV$2[3] | 0;
+ this.E = IV$2[4] | 0;
+ this.F = IV$2[5] | 0;
+ this.G = IV$2[6] | 0;
+ this.H = IV$2[7] | 0;
+ }
+ get() {
+ const { A, B, C, D, E, F, G, H } = this;
+ return [A, B, C, D, E, F, G, H];
+ }
+ // prettier-ignore
+ set(A, B, C, D, E, F, G, H) {
+ this.A = A | 0;
+ this.B = B | 0;
+ this.C = C | 0;
+ this.D = D | 0;
+ this.E = E | 0;
+ this.F = F | 0;
+ this.G = G | 0;
+ this.H = H | 0;
+ }
+ process(view, offset) {
+ // Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array
+ for (let i = 0; i < 16; i++, offset += 4)
+ SHA256_W$2[i] = view.getUint32(offset, false);
+ for (let i = 16; i < 64; i++) {
+ const W15 = SHA256_W$2[i - 15];
+ const W2 = SHA256_W$2[i - 2];
+ const s0 = rotr$1(W15, 7) ^ rotr$1(W15, 18) ^ (W15 >>> 3);
+ const s1 = rotr$1(W2, 17) ^ rotr$1(W2, 19) ^ (W2 >>> 10);
+ SHA256_W$2[i] = (s1 + SHA256_W$2[i - 7] + s0 + SHA256_W$2[i - 16]) | 0;
+ }
+ // Compression function main loop, 64 rounds
+ let { A, B, C, D, E, F, G, H } = this;
+ for (let i = 0; i < 64; i++) {
+ const sigma1 = rotr$1(E, 6) ^ rotr$1(E, 11) ^ rotr$1(E, 25);
+ const T1 = (H + sigma1 + Chi$2(E, F, G) + SHA256_K$2[i] + SHA256_W$2[i]) | 0;
+ const sigma0 = rotr$1(A, 2) ^ rotr$1(A, 13) ^ rotr$1(A, 22);
+ const T2 = (sigma0 + Maj$2(A, B, C)) | 0;
+ H = G;
+ G = F;
+ F = E;
+ E = (D + T1) | 0;
+ D = C;
+ C = B;
+ B = A;
+ A = (T1 + T2) | 0;
+ }
+ // Add the compressed chunk to the current hash value
+ A = (A + this.A) | 0;
+ B = (B + this.B) | 0;
+ C = (C + this.C) | 0;
+ D = (D + this.D) | 0;
+ E = (E + this.E) | 0;
+ F = (F + this.F) | 0;
+ G = (G + this.G) | 0;
+ H = (H + this.H) | 0;
+ this.set(A, B, C, D, E, F, G, H);
+ }
+ roundClean() {
+ SHA256_W$2.fill(0);
+ }
+ destroy() {
+ this.set(0, 0, 0, 0, 0, 0, 0, 0);
+ this.buffer.fill(0);
+ }
+ };
+ /**
+ * SHA2-256 hash function
+ * @param message - data that would be hashed
+ */
+ const sha256$2 = wrapConstructor$1(() => new SHA256$2());
+
+ /*! scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) */
+ function assertNumber(n) {
+ if (!Number.isSafeInteger(n))
+ throw new Error(`Wrong integer: ${n}`);
+ }
+ function chain(...args) {
+ const wrap = (a, b) => (c) => a(b(c));
+ const encode = Array.from(args)
+ .reverse()
+ .reduce((acc, i) => (acc ? wrap(acc, i.encode) : i.encode), undefined);
+ const decode = args.reduce((acc, i) => (acc ? wrap(acc, i.decode) : i.decode), undefined);
+ return { encode, decode };
+ }
+ function alphabet(alphabet) {
+ return {
+ encode: (digits) => {
+ if (!Array.isArray(digits) || (digits.length && typeof digits[0] !== 'number'))
+ throw new Error('alphabet.encode input should be an array of numbers');
+ return digits.map((i) => {
+ assertNumber(i);
+ if (i < 0 || i >= alphabet.length)
+ throw new Error(`Digit index outside alphabet: ${i} (alphabet: ${alphabet.length})`);
+ return alphabet[i];
+ });
+ },
+ decode: (input) => {
+ if (!Array.isArray(input) || (input.length && typeof input[0] !== 'string'))
+ throw new Error('alphabet.decode input should be array of strings');
+ return input.map((letter) => {
+ if (typeof letter !== 'string')
+ throw new Error(`alphabet.decode: not string element=${letter}`);
+ const index = alphabet.indexOf(letter);
+ if (index === -1)
+ throw new Error(`Unknown letter: "${letter}". Allowed: ${alphabet}`);
+ return index;
+ });
+ },
+ };
+ }
+ function join(separator = '') {
+ if (typeof separator !== 'string')
+ throw new Error('join separator should be string');
+ return {
+ encode: (from) => {
+ if (!Array.isArray(from) || (from.length && typeof from[0] !== 'string'))
+ throw new Error('join.encode input should be array of strings');
+ for (let i of from)
+ if (typeof i !== 'string')
+ throw new Error(`join.encode: non-string input=${i}`);
+ return from.join(separator);
+ },
+ decode: (to) => {
+ if (typeof to !== 'string')
+ throw new Error('join.decode input should be string');
+ return to.split(separator);
+ },
+ };
+ }
+ function padding(bits, chr = '=') {
+ assertNumber(bits);
+ if (typeof chr !== 'string')
+ throw new Error('padding chr should be string');
+ return {
+ encode(data) {
+ if (!Array.isArray(data) || (data.length && typeof data[0] !== 'string'))
+ throw new Error('padding.encode input should be array of strings');
+ for (let i of data)
+ if (typeof i !== 'string')
+ throw new Error(`padding.encode: non-string input=${i}`);
+ while ((data.length * bits) % 8)
+ data.push(chr);
+ return data;
+ },
+ decode(input) {
+ if (!Array.isArray(input) || (input.length && typeof input[0] !== 'string'))
+ throw new Error('padding.encode input should be array of strings');
+ for (let i of input)
+ if (typeof i !== 'string')
+ throw new Error(`padding.decode: non-string input=${i}`);
+ let end = input.length;
+ if ((end * bits) % 8)
+ throw new Error('Invalid padding: string should have whole number of bytes');
+ for (; end > 0 && input[end - 1] === chr; end--) {
+ if (!(((end - 1) * bits) % 8))
+ throw new Error('Invalid padding: string has too much padding');
+ }
+ return input.slice(0, end);
+ },
+ };
+ }
+ function normalize$1(fn) {
+ if (typeof fn !== 'function')
+ throw new Error('normalize fn should be function');
+ return { encode: (from) => from, decode: (to) => fn(to) };
+ }
+ function convertRadix(data, from, to) {
+ if (from < 2)
+ throw new Error(`convertRadix: wrong from=${from}, base cannot be less than 2`);
+ if (to < 2)
+ throw new Error(`convertRadix: wrong to=${to}, base cannot be less than 2`);
+ if (!Array.isArray(data))
+ throw new Error('convertRadix: data should be array');
+ if (!data.length)
+ return [];
+ let pos = 0;
+ const res = [];
+ const digits = Array.from(data);
+ digits.forEach((d) => {
+ assertNumber(d);
+ if (d < 0 || d >= from)
+ throw new Error(`Wrong integer: ${d}`);
+ });
+ while (true) {
+ let carry = 0;
+ let done = true;
+ for (let i = pos; i < digits.length; i++) {
+ const digit = digits[i];
+ const digitBase = from * carry + digit;
+ if (!Number.isSafeInteger(digitBase) ||
+ (from * carry) / from !== carry ||
+ digitBase - digit !== from * carry) {
+ throw new Error('convertRadix: carry overflow');
+ }
+ carry = digitBase % to;
+ digits[i] = Math.floor(digitBase / to);
+ if (!Number.isSafeInteger(digits[i]) || digits[i] * to + carry !== digitBase)
+ throw new Error('convertRadix: carry overflow');
+ if (!done)
+ continue;
+ else if (!digits[i])
+ pos = i;
+ else
+ done = false;
+ }
+ res.push(carry);
+ if (done)
+ break;
+ }
+ for (let i = 0; i < data.length - 1 && data[i] === 0; i++)
+ res.push(0);
+ return res.reverse();
+ }
+ const gcd = (a, b) => (!b ? a : gcd(b, a % b));
+ const radix2carry = (from, to) => from + (to - gcd(from, to));
+ function convertRadix2(data, from, to, padding) {
+ if (!Array.isArray(data))
+ throw new Error('convertRadix2: data should be array');
+ if (from <= 0 || from > 32)
+ throw new Error(`convertRadix2: wrong from=${from}`);
+ if (to <= 0 || to > 32)
+ throw new Error(`convertRadix2: wrong to=${to}`);
+ if (radix2carry(from, to) > 32) {
+ throw new Error(`convertRadix2: carry overflow from=${from} to=${to} carryBits=${radix2carry(from, to)}`);
+ }
+ let carry = 0;
+ let pos = 0;
+ const mask = 2 ** to - 1;
+ const res = [];
+ for (const n of data) {
+ assertNumber(n);
+ if (n >= 2 ** from)
+ throw new Error(`convertRadix2: invalid data word=${n} from=${from}`);
+ carry = (carry << from) | n;
+ if (pos + from > 32)
+ throw new Error(`convertRadix2: carry overflow pos=${pos} from=${from}`);
+ pos += from;
+ for (; pos >= to; pos -= to)
+ res.push(((carry >> (pos - to)) & mask) >>> 0);
+ carry &= 2 ** pos - 1;
+ }
+ carry = (carry << (to - pos)) & mask;
+ if (!padding && pos >= from)
+ throw new Error('Excess padding');
+ if (!padding && carry)
+ throw new Error(`Non-zero padding: ${carry}`);
+ if (padding && pos > 0)
+ res.push(carry >>> 0);
+ return res;
+ }
+ function radix(num) {
+ assertNumber(num);
+ return {
+ encode: (bytes) => {
+ if (!(bytes instanceof Uint8Array))
+ throw new Error('radix.encode input should be Uint8Array');
+ return convertRadix(Array.from(bytes), 2 ** 8, num);
+ },
+ decode: (digits) => {
+ if (!Array.isArray(digits) || (digits.length && typeof digits[0] !== 'number'))
+ throw new Error('radix.decode input should be array of strings');
+ return Uint8Array.from(convertRadix(digits, num, 2 ** 8));
+ },
+ };
+ }
+ function radix2(bits, revPadding = false) {
+ assertNumber(bits);
+ if (bits <= 0 || bits > 32)
+ throw new Error('radix2: bits should be in (0..32]');
+ if (radix2carry(8, bits) > 32 || radix2carry(bits, 8) > 32)
+ throw new Error('radix2: carry overflow');
+ return {
+ encode: (bytes) => {
+ if (!(bytes instanceof Uint8Array))
+ throw new Error('radix2.encode input should be Uint8Array');
+ return convertRadix2(Array.from(bytes), 8, bits, !revPadding);
+ },
+ decode: (digits) => {
+ if (!Array.isArray(digits) || (digits.length && typeof digits[0] !== 'number'))
+ throw new Error('radix2.decode input should be array of strings');
+ return Uint8Array.from(convertRadix2(digits, bits, 8, revPadding));
+ },
+ };
+ }
+ function unsafeWrapper(fn) {
+ if (typeof fn !== 'function')
+ throw new Error('unsafeWrapper fn should be function');
+ return function (...args) {
+ try {
+ return fn.apply(null, args);
+ }
+ catch (e) { }
+ };
+ }
+ function checksum(len, fn) {
+ assertNumber(len);
+ if (typeof fn !== 'function')
+ throw new Error('checksum fn should be function');
+ return {
+ encode(data) {
+ if (!(data instanceof Uint8Array))
+ throw new Error('checksum.encode: input should be Uint8Array');
+ const checksum = fn(data).slice(0, len);
+ const res = new Uint8Array(data.length + len);
+ res.set(data);
+ res.set(checksum, data.length);
+ return res;
+ },
+ decode(data) {
+ if (!(data instanceof Uint8Array))
+ throw new Error('checksum.decode: input should be Uint8Array');
+ const payload = data.slice(0, -len);
+ const newChecksum = fn(payload).slice(0, len);
+ const oldChecksum = data.slice(-len);
+ for (let i = 0; i < len; i++)
+ if (newChecksum[i] !== oldChecksum[i])
+ throw new Error('Invalid checksum');
+ return payload;
+ },
+ };
+ }
+ const base16 = chain(radix2(4), alphabet('0123456789ABCDEF'), join(''));
+ const base32 = chain(radix2(5), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZ234567'), padding(5), join(''));
+ chain(radix2(5), alphabet('0123456789ABCDEFGHIJKLMNOPQRSTUV'), padding(5), join(''));
+ chain(radix2(5), alphabet('0123456789ABCDEFGHJKMNPQRSTVWXYZ'), join(''), normalize$1((s) => s.toUpperCase().replace(/O/g, '0').replace(/[IL]/g, '1')));
+ const base64 = chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'), padding(6), join(''));
+ const base64url = chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_'), padding(6), join(''));
+ const genBase58 = (abc) => chain(radix(58), alphabet(abc), join(''));
+ const base58 = genBase58('123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz');
+ genBase58('123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ');
+ genBase58('rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz');
+ const XMR_BLOCK_LEN = [0, 2, 3, 5, 6, 7, 9, 10, 11];
+ const base58xmr = {
+ encode(data) {
+ let res = '';
+ for (let i = 0; i < data.length; i += 8) {
+ const block = data.subarray(i, i + 8);
+ res += base58.encode(block).padStart(XMR_BLOCK_LEN[block.length], '1');
+ }
+ return res;
+ },
+ decode(str) {
+ let res = [];
+ for (let i = 0; i < str.length; i += 11) {
+ const slice = str.slice(i, i + 11);
+ const blockLen = XMR_BLOCK_LEN.indexOf(slice.length);
+ const block = base58.decode(slice);
+ for (let j = 0; j < block.length - blockLen; j++) {
+ if (block[j] !== 0)
+ throw new Error('base58xmr: wrong padding');
+ }
+ res = res.concat(Array.from(block.slice(block.length - blockLen)));
+ }
+ return Uint8Array.from(res);
+ },
+ };
+ const base58check$1 = (sha256) => chain(checksum(4, (data) => sha256(sha256(data))), base58);
+ const BECH_ALPHABET = chain(alphabet('qpzry9x8gf2tvdw0s3jn54khce6mua7l'), join(''));
+ const POLYMOD_GENERATORS = [0x3b6a57b2, 0x26508e6d, 0x1ea119fa, 0x3d4233dd, 0x2a1462b3];
+ function bech32Polymod(pre) {
+ const b = pre >> 25;
+ let chk = (pre & 0x1ffffff) << 5;
+ for (let i = 0; i < POLYMOD_GENERATORS.length; i++) {
+ if (((b >> i) & 1) === 1)
+ chk ^= POLYMOD_GENERATORS[i];
+ }
+ return chk;
+ }
+ function bechChecksum(prefix, words, encodingConst = 1) {
+ const len = prefix.length;
+ let chk = 1;
+ for (let i = 0; i < len; i++) {
+ const c = prefix.charCodeAt(i);
+ if (c < 33 || c > 126)
+ throw new Error(`Invalid prefix (${prefix})`);
+ chk = bech32Polymod(chk) ^ (c >> 5);
+ }
+ chk = bech32Polymod(chk);
+ for (let i = 0; i < len; i++)
+ chk = bech32Polymod(chk) ^ (prefix.charCodeAt(i) & 0x1f);
+ for (let v of words)
+ chk = bech32Polymod(chk) ^ v;
+ for (let i = 0; i < 6; i++)
+ chk = bech32Polymod(chk);
+ chk ^= encodingConst;
+ return BECH_ALPHABET.encode(convertRadix2([chk % 2 ** 30], 30, 5, false));
+ }
+ function genBech32(encoding) {
+ const ENCODING_CONST = encoding === 'bech32' ? 1 : 0x2bc830a3;
+ const _words = radix2(5);
+ const fromWords = _words.decode;
+ const toWords = _words.encode;
+ const fromWordsUnsafe = unsafeWrapper(fromWords);
+ function encode(prefix, words, limit = 90) {
+ if (typeof prefix !== 'string')
+ throw new Error(`bech32.encode prefix should be string, not ${typeof prefix}`);
+ if (!Array.isArray(words) || (words.length && typeof words[0] !== 'number'))
+ throw new Error(`bech32.encode words should be array of numbers, not ${typeof words}`);
+ const actualLength = prefix.length + 7 + words.length;
+ if (limit !== false && actualLength > limit)
+ throw new TypeError(`Length ${actualLength} exceeds limit ${limit}`);
+ prefix = prefix.toLowerCase();
+ return `${prefix}1${BECH_ALPHABET.encode(words)}${bechChecksum(prefix, words, ENCODING_CONST)}`;
+ }
+ function decode(str, limit = 90) {
+ if (typeof str !== 'string')
+ throw new Error(`bech32.decode input should be string, not ${typeof str}`);
+ if (str.length < 8 || (limit !== false && str.length > limit))
+ throw new TypeError(`Wrong string length: ${str.length} (${str}). Expected (8..${limit})`);
+ const lowered = str.toLowerCase();
+ if (str !== lowered && str !== str.toUpperCase())
+ throw new Error(`String must be lowercase or uppercase`);
+ str = lowered;
+ const sepIndex = str.lastIndexOf('1');
+ if (sepIndex === 0 || sepIndex === -1)
+ throw new Error(`Letter "1" must be present between prefix and data only`);
+ const prefix = str.slice(0, sepIndex);
+ const _words = str.slice(sepIndex + 1);
+ if (_words.length < 6)
+ throw new Error('Data must be at least 6 characters long');
+ const words = BECH_ALPHABET.decode(_words).slice(0, -6);
+ const sum = bechChecksum(prefix, words, ENCODING_CONST);
+ if (!_words.endsWith(sum))
+ throw new Error(`Invalid checksum in ${str}: expected "${sum}"`);
+ return { prefix, words };
+ }
+ const decodeUnsafe = unsafeWrapper(decode);
+ function decodeToBytes(str) {
+ const { prefix, words } = decode(str, false);
+ return { prefix, words, bytes: fromWords(words) };
+ }
+ return { encode, decode, decodeToBytes, decodeUnsafe, fromWords, fromWordsUnsafe, toWords };
+ }
+ const bech32 = genBech32('bech32');
+ genBech32('bech32m');
+ const utf8 = {
+ encode: (data) => new TextDecoder().decode(data),
+ decode: (str) => new TextEncoder().encode(str),
+ };
+ const hex = chain(radix2(4), alphabet('0123456789abcdef'), join(''), normalize$1((s) => {
+ if (typeof s !== 'string' || s.length % 2)
+ throw new TypeError(`hex.decode: expected string, got ${typeof s} with length ${s.length}`);
+ return s.toLowerCase();
+ }));
+ const CODERS = {
+ utf8, hex, base16, base32, base64, base64url, base58, base58xmr
+ };
+`Invalid encoding type. Available types: ${Object.keys(CODERS).join(', ')}`;
+
+ var english = {};
+
+ Object.defineProperty(english, "__esModule", { value: true });
+ var wordlist = english.wordlist = void 0;
+ wordlist = english.wordlist = `abandon
+ability
+able
+about
+above
+absent
+absorb
+abstract
+absurd
+abuse
+access
+accident
+account
+accuse
+achieve
+acid
+acoustic
+acquire
+across
+act
+action
+actor
+actress
+actual
+adapt
+add
+addict
+address
+adjust
+admit
+adult
+advance
+advice
+aerobic
+affair
+afford
+afraid
+again
+age
+agent
+agree
+ahead
+aim
+air
+airport
+aisle
+alarm
+album
+alcohol
+alert
+alien
+all
+alley
+allow
+almost
+alone
+alpha
+already
+also
+alter
+always
+amateur
+amazing
+among
+amount
+amused
+analyst
+anchor
+ancient
+anger
+angle
+angry
+animal
+ankle
+announce
+annual
+another
+answer
+antenna
+antique
+anxiety
+any
+apart
+apology
+appear
+apple
+approve
+april
+arch
+arctic
+area
+arena
+argue
+arm
+armed
+armor
+army
+around
+arrange
+arrest
+arrive
+arrow
+art
+artefact
+artist
+artwork
+ask
+aspect
+assault
+asset
+assist
+assume
+asthma
+athlete
+atom
+attack
+attend
+attitude
+attract
+auction
+audit
+august
+aunt
+author
+auto
+autumn
+average
+avocado
+avoid
+awake
+aware
+away
+awesome
+awful
+awkward
+axis
+baby
+bachelor
+bacon
+badge
+bag
+balance
+balcony
+ball
+bamboo
+banana
+banner
+bar
+barely
+bargain
+barrel
+base
+basic
+basket
+battle
+beach
+bean
+beauty
+because
+become
+beef
+before
+begin
+behave
+behind
+believe
+below
+belt
+bench
+benefit
+best
+betray
+better
+between
+beyond
+bicycle
+bid
+bike
+bind
+biology
+bird
+birth
+bitter
+black
+blade
+blame
+blanket
+blast
+bleak
+bless
+blind
+blood
+blossom
+blouse
+blue
+blur
+blush
+board
+boat
+body
+boil
+bomb
+bone
+bonus
+book
+boost
+border
+boring
+borrow
+boss
+bottom
+bounce
+box
+boy
+bracket
+brain
+brand
+brass
+brave
+bread
+breeze
+brick
+bridge
+brief
+bright
+bring
+brisk
+broccoli
+broken
+bronze
+broom
+brother
+brown
+brush
+bubble
+buddy
+budget
+buffalo
+build
+bulb
+bulk
+bullet
+bundle
+bunker
+burden
+burger
+burst
+bus
+business
+busy
+butter
+buyer
+buzz
+cabbage
+cabin
+cable
+cactus
+cage
+cake
+call
+calm
+camera
+camp
+can
+canal
+cancel
+candy
+cannon
+canoe
+canvas
+canyon
+capable
+capital
+captain
+car
+carbon
+card
+cargo
+carpet
+carry
+cart
+case
+cash
+casino
+castle
+casual
+cat
+catalog
+catch
+category
+cattle
+caught
+cause
+caution
+cave
+ceiling
+celery
+cement
+census
+century
+cereal
+certain
+chair
+chalk
+champion
+change
+chaos
+chapter
+charge
+chase
+chat
+cheap
+check
+cheese
+chef
+cherry
+chest
+chicken
+chief
+child
+chimney
+choice
+choose
+chronic
+chuckle
+chunk
+churn
+cigar
+cinnamon
+circle
+citizen
+city
+civil
+claim
+clap
+clarify
+claw
+clay
+clean
+clerk
+clever
+click
+client
+cliff
+climb
+clinic
+clip
+clock
+clog
+close
+cloth
+cloud
+clown
+club
+clump
+cluster
+clutch
+coach
+coast
+coconut
+code
+coffee
+coil
+coin
+collect
+color
+column
+combine
+come
+comfort
+comic
+common
+company
+concert
+conduct
+confirm
+congress
+connect
+consider
+control
+convince
+cook
+cool
+copper
+copy
+coral
+core
+corn
+correct
+cost
+cotton
+couch
+country
+couple
+course
+cousin
+cover
+coyote
+crack
+cradle
+craft
+cram
+crane
+crash
+crater
+crawl
+crazy
+cream
+credit
+creek
+crew
+cricket
+crime
+crisp
+critic
+crop
+cross
+crouch
+crowd
+crucial
+cruel
+cruise
+crumble
+crunch
+crush
+cry
+crystal
+cube
+culture
+cup
+cupboard
+curious
+current
+curtain
+curve
+cushion
+custom
+cute
+cycle
+dad
+damage
+damp
+dance
+danger
+daring
+dash
+daughter
+dawn
+day
+deal
+debate
+debris
+decade
+december
+decide
+decline
+decorate
+decrease
+deer
+defense
+define
+defy
+degree
+delay
+deliver
+demand
+demise
+denial
+dentist
+deny
+depart
+depend
+deposit
+depth
+deputy
+derive
+describe
+desert
+design
+desk
+despair
+destroy
+detail
+detect
+develop
+device
+devote
+diagram
+dial
+diamond
+diary
+dice
+diesel
+diet
+differ
+digital
+dignity
+dilemma
+dinner
+dinosaur
+direct
+dirt
+disagree
+discover
+disease
+dish
+dismiss
+disorder
+display
+distance
+divert
+divide
+divorce
+dizzy
+doctor
+document
+dog
+doll
+dolphin
+domain
+donate
+donkey
+donor
+door
+dose
+double
+dove
+draft
+dragon
+drama
+drastic
+draw
+dream
+dress
+drift
+drill
+drink
+drip
+drive
+drop
+drum
+dry
+duck
+dumb
+dune
+during
+dust
+dutch
+duty
+dwarf
+dynamic
+eager
+eagle
+early
+earn
+earth
+easily
+east
+easy
+echo
+ecology
+economy
+edge
+edit
+educate
+effort
+egg
+eight
+either
+elbow
+elder
+electric
+elegant
+element
+elephant
+elevator
+elite
+else
+embark
+embody
+embrace
+emerge
+emotion
+employ
+empower
+empty
+enable
+enact
+end
+endless
+endorse
+enemy
+energy
+enforce
+engage
+engine
+enhance
+enjoy
+enlist
+enough
+enrich
+enroll
+ensure
+enter
+entire
+entry
+envelope
+episode
+equal
+equip
+era
+erase
+erode
+erosion
+error
+erupt
+escape
+essay
+essence
+estate
+eternal
+ethics
+evidence
+evil
+evoke
+evolve
+exact
+example
+excess
+exchange
+excite
+exclude
+excuse
+execute
+exercise
+exhaust
+exhibit
+exile
+exist
+exit
+exotic
+expand
+expect
+expire
+explain
+expose
+express
+extend
+extra
+eye
+eyebrow
+fabric
+face
+faculty
+fade
+faint
+faith
+fall
+false
+fame
+family
+famous
+fan
+fancy
+fantasy
+farm
+fashion
+fat
+fatal
+father
+fatigue
+fault
+favorite
+feature
+february
+federal
+fee
+feed
+feel
+female
+fence
+festival
+fetch
+fever
+few
+fiber
+fiction
+field
+figure
+file
+film
+filter
+final
+find
+fine
+finger
+finish
+fire
+firm
+first
+fiscal
+fish
+fit
+fitness
+fix
+flag
+flame
+flash
+flat
+flavor
+flee
+flight
+flip
+float
+flock
+floor
+flower
+fluid
+flush
+fly
+foam
+focus
+fog
+foil
+fold
+follow
+food
+foot
+force
+forest
+forget
+fork
+fortune
+forum
+forward
+fossil
+foster
+found
+fox
+fragile
+frame
+frequent
+fresh
+friend
+fringe
+frog
+front
+frost
+frown
+frozen
+fruit
+fuel
+fun
+funny
+furnace
+fury
+future
+gadget
+gain
+galaxy
+gallery
+game
+gap
+garage
+garbage
+garden
+garlic
+garment
+gas
+gasp
+gate
+gather
+gauge
+gaze
+general
+genius
+genre
+gentle
+genuine
+gesture
+ghost
+giant
+gift
+giggle
+ginger
+giraffe
+girl
+give
+glad
+glance
+glare
+glass
+glide
+glimpse
+globe
+gloom
+glory
+glove
+glow
+glue
+goat
+goddess
+gold
+good
+goose
+gorilla
+gospel
+gossip
+govern
+gown
+grab
+grace
+grain
+grant
+grape
+grass
+gravity
+great
+green
+grid
+grief
+grit
+grocery
+group
+grow
+grunt
+guard
+guess
+guide
+guilt
+guitar
+gun
+gym
+habit
+hair
+half
+hammer
+hamster
+hand
+happy
+harbor
+hard
+harsh
+harvest
+hat
+have
+hawk
+hazard
+head
+health
+heart
+heavy
+hedgehog
+height
+hello
+helmet
+help
+hen
+hero
+hidden
+high
+hill
+hint
+hip
+hire
+history
+hobby
+hockey
+hold
+hole
+holiday
+hollow
+home
+honey
+hood
+hope
+horn
+horror
+horse
+hospital
+host
+hotel
+hour
+hover
+hub
+huge
+human
+humble
+humor
+hundred
+hungry
+hunt
+hurdle
+hurry
+hurt
+husband
+hybrid
+ice
+icon
+idea
+identify
+idle
+ignore
+ill
+illegal
+illness
+image
+imitate
+immense
+immune
+impact
+impose
+improve
+impulse
+inch
+include
+income
+increase
+index
+indicate
+indoor
+industry
+infant
+inflict
+inform
+inhale
+inherit
+initial
+inject
+injury
+inmate
+inner
+innocent
+input
+inquiry
+insane
+insect
+inside
+inspire
+install
+intact
+interest
+into
+invest
+invite
+involve
+iron
+island
+isolate
+issue
+item
+ivory
+jacket
+jaguar
+jar
+jazz
+jealous
+jeans
+jelly
+jewel
+job
+join
+joke
+journey
+joy
+judge
+juice
+jump
+jungle
+junior
+junk
+just
+kangaroo
+keen
+keep
+ketchup
+key
+kick
+kid
+kidney
+kind
+kingdom
+kiss
+kit
+kitchen
+kite
+kitten
+kiwi
+knee
+knife
+knock
+know
+lab
+label
+labor
+ladder
+lady
+lake
+lamp
+language
+laptop
+large
+later
+latin
+laugh
+laundry
+lava
+law
+lawn
+lawsuit
+layer
+lazy
+leader
+leaf
+learn
+leave
+lecture
+left
+leg
+legal
+legend
+leisure
+lemon
+lend
+length
+lens
+leopard
+lesson
+letter
+level
+liar
+liberty
+library
+license
+life
+lift
+light
+like
+limb
+limit
+link
+lion
+liquid
+list
+little
+live
+lizard
+load
+loan
+lobster
+local
+lock
+logic
+lonely
+long
+loop
+lottery
+loud
+lounge
+love
+loyal
+lucky
+luggage
+lumber
+lunar
+lunch
+luxury
+lyrics
+machine
+mad
+magic
+magnet
+maid
+mail
+main
+major
+make
+mammal
+man
+manage
+mandate
+mango
+mansion
+manual
+maple
+marble
+march
+margin
+marine
+market
+marriage
+mask
+mass
+master
+match
+material
+math
+matrix
+matter
+maximum
+maze
+meadow
+mean
+measure
+meat
+mechanic
+medal
+media
+melody
+melt
+member
+memory
+mention
+menu
+mercy
+merge
+merit
+merry
+mesh
+message
+metal
+method
+middle
+midnight
+milk
+million
+mimic
+mind
+minimum
+minor
+minute
+miracle
+mirror
+misery
+miss
+mistake
+mix
+mixed
+mixture
+mobile
+model
+modify
+mom
+moment
+monitor
+monkey
+monster
+month
+moon
+moral
+more
+morning
+mosquito
+mother
+motion
+motor
+mountain
+mouse
+move
+movie
+much
+muffin
+mule
+multiply
+muscle
+museum
+mushroom
+music
+must
+mutual
+myself
+mystery
+myth
+naive
+name
+napkin
+narrow
+nasty
+nation
+nature
+near
+neck
+need
+negative
+neglect
+neither
+nephew
+nerve
+nest
+net
+network
+neutral
+never
+news
+next
+nice
+night
+noble
+noise
+nominee
+noodle
+normal
+north
+nose
+notable
+note
+nothing
+notice
+novel
+now
+nuclear
+number
+nurse
+nut
+oak
+obey
+object
+oblige
+obscure
+observe
+obtain
+obvious
+occur
+ocean
+october
+odor
+off
+offer
+office
+often
+oil
+okay
+old
+olive
+olympic
+omit
+once
+one
+onion
+online
+only
+open
+opera
+opinion
+oppose
+option
+orange
+orbit
+orchard
+order
+ordinary
+organ
+orient
+original
+orphan
+ostrich
+other
+outdoor
+outer
+output
+outside
+oval
+oven
+over
+own
+owner
+oxygen
+oyster
+ozone
+pact
+paddle
+page
+pair
+palace
+palm
+panda
+panel
+panic
+panther
+paper
+parade
+parent
+park
+parrot
+party
+pass
+patch
+path
+patient
+patrol
+pattern
+pause
+pave
+payment
+peace
+peanut
+pear
+peasant
+pelican
+pen
+penalty
+pencil
+people
+pepper
+perfect
+permit
+person
+pet
+phone
+photo
+phrase
+physical
+piano
+picnic
+picture
+piece
+pig
+pigeon
+pill
+pilot
+pink
+pioneer
+pipe
+pistol
+pitch
+pizza
+place
+planet
+plastic
+plate
+play
+please
+pledge
+pluck
+plug
+plunge
+poem
+poet
+point
+polar
+pole
+police
+pond
+pony
+pool
+popular
+portion
+position
+possible
+post
+potato
+pottery
+poverty
+powder
+power
+practice
+praise
+predict
+prefer
+prepare
+present
+pretty
+prevent
+price
+pride
+primary
+print
+priority
+prison
+private
+prize
+problem
+process
+produce
+profit
+program
+project
+promote
+proof
+property
+prosper
+protect
+proud
+provide
+public
+pudding
+pull
+pulp
+pulse
+pumpkin
+punch
+pupil
+puppy
+purchase
+purity
+purpose
+purse
+push
+put
+puzzle
+pyramid
+quality
+quantum
+quarter
+question
+quick
+quit
+quiz
+quote
+rabbit
+raccoon
+race
+rack
+radar
+radio
+rail
+rain
+raise
+rally
+ramp
+ranch
+random
+range
+rapid
+rare
+rate
+rather
+raven
+raw
+razor
+ready
+real
+reason
+rebel
+rebuild
+recall
+receive
+recipe
+record
+recycle
+reduce
+reflect
+reform
+refuse
+region
+regret
+regular
+reject
+relax
+release
+relief
+rely
+remain
+remember
+remind
+remove
+render
+renew
+rent
+reopen
+repair
+repeat
+replace
+report
+require
+rescue
+resemble
+resist
+resource
+response
+result
+retire
+retreat
+return
+reunion
+reveal
+review
+reward
+rhythm
+rib
+ribbon
+rice
+rich
+ride
+ridge
+rifle
+right
+rigid
+ring
+riot
+ripple
+risk
+ritual
+rival
+river
+road
+roast
+robot
+robust
+rocket
+romance
+roof
+rookie
+room
+rose
+rotate
+rough
+round
+route
+royal
+rubber
+rude
+rug
+rule
+run
+runway
+rural
+sad
+saddle
+sadness
+safe
+sail
+salad
+salmon
+salon
+salt
+salute
+same
+sample
+sand
+satisfy
+satoshi
+sauce
+sausage
+save
+say
+scale
+scan
+scare
+scatter
+scene
+scheme
+school
+science
+scissors
+scorpion
+scout
+scrap
+screen
+script
+scrub
+sea
+search
+season
+seat
+second
+secret
+section
+security
+seed
+seek
+segment
+select
+sell
+seminar
+senior
+sense
+sentence
+series
+service
+session
+settle
+setup
+seven
+shadow
+shaft
+shallow
+share
+shed
+shell
+sheriff
+shield
+shift
+shine
+ship
+shiver
+shock
+shoe
+shoot
+shop
+short
+shoulder
+shove
+shrimp
+shrug
+shuffle
+shy
+sibling
+sick
+side
+siege
+sight
+sign
+silent
+silk
+silly
+silver
+similar
+simple
+since
+sing
+siren
+sister
+situate
+six
+size
+skate
+sketch
+ski
+skill
+skin
+skirt
+skull
+slab
+slam
+sleep
+slender
+slice
+slide
+slight
+slim
+slogan
+slot
+slow
+slush
+small
+smart
+smile
+smoke
+smooth
+snack
+snake
+snap
+sniff
+snow
+soap
+soccer
+social
+sock
+soda
+soft
+solar
+soldier
+solid
+solution
+solve
+someone
+song
+soon
+sorry
+sort
+soul
+sound
+soup
+source
+south
+space
+spare
+spatial
+spawn
+speak
+special
+speed
+spell
+spend
+sphere
+spice
+spider
+spike
+spin
+spirit
+split
+spoil
+sponsor
+spoon
+sport
+spot
+spray
+spread
+spring
+spy
+square
+squeeze
+squirrel
+stable
+stadium
+staff
+stage
+stairs
+stamp
+stand
+start
+state
+stay
+steak
+steel
+stem
+step
+stereo
+stick
+still
+sting
+stock
+stomach
+stone
+stool
+story
+stove
+strategy
+street
+strike
+strong
+struggle
+student
+stuff
+stumble
+style
+subject
+submit
+subway
+success
+such
+sudden
+suffer
+sugar
+suggest
+suit
+summer
+sun
+sunny
+sunset
+super
+supply
+supreme
+sure
+surface
+surge
+surprise
+surround
+survey
+suspect
+sustain
+swallow
+swamp
+swap
+swarm
+swear
+sweet
+swift
+swim
+swing
+switch
+sword
+symbol
+symptom
+syrup
+system
+table
+tackle
+tag
+tail
+talent
+talk
+tank
+tape
+target
+task
+taste
+tattoo
+taxi
+teach
+team
+tell
+ten
+tenant
+tennis
+tent
+term
+test
+text
+thank
+that
+theme
+then
+theory
+there
+they
+thing
+this
+thought
+three
+thrive
+throw
+thumb
+thunder
+ticket
+tide
+tiger
+tilt
+timber
+time
+tiny
+tip
+tired
+tissue
+title
+toast
+tobacco
+today
+toddler
+toe
+together
+toilet
+token
+tomato
+tomorrow
+tone
+tongue
+tonight
+tool
+tooth
+top
+topic
+topple
+torch
+tornado
+tortoise
+toss
+total
+tourist
+toward
+tower
+town
+toy
+track
+trade
+traffic
+tragic
+train
+transfer
+trap
+trash
+travel
+tray
+treat
+tree
+trend
+trial
+tribe
+trick
+trigger
+trim
+trip
+trophy
+trouble
+truck
+true
+truly
+trumpet
+trust
+truth
+try
+tube
+tuition
+tumble
+tuna
+tunnel
+turkey
+turn
+turtle
+twelve
+twenty
+twice
+twin
+twist
+two
+type
+typical
+ugly
+umbrella
+unable
+unaware
+uncle
+uncover
+under
+undo
+unfair
+unfold
+unhappy
+uniform
+unique
+unit
+universe
+unknown
+unlock
+until
+unusual
+unveil
+update
+upgrade
+uphold
+upon
+upper
+upset
+urban
+urge
+usage
+use
+used
+useful
+useless
+usual
+utility
+vacant
+vacuum
+vague
+valid
+valley
+valve
+van
+vanish
+vapor
+various
+vast
+vault
+vehicle
+velvet
+vendor
+venture
+venue
+verb
+verify
+version
+very
+vessel
+veteran
+viable
+vibrant
+vicious
+victory
+video
+view
+village
+vintage
+violin
+virtual
+virus
+visa
+visit
+visual
+vital
+vivid
+vocal
+voice
+void
+volcano
+volume
+vote
+voyage
+wage
+wagon
+wait
+walk
+wall
+walnut
+want
+warfare
+warm
+warrior
+wash
+wasp
+waste
+water
+wave
+way
+wealth
+weapon
+wear
+weasel
+weather
+web
+wedding
+weekend
+weird
+welcome
+west
+wet
+whale
+what
+wheat
+wheel
+when
+where
+whip
+whisper
+wide
+width
+wife
+wild
+will
+win
+window
+wine
+wing
+wink
+winner
+winter
+wire
+wisdom
+wise
+wish
+witness
+wolf
+woman
+wonder
+wood
+wool
+word
+work
+world
+worry
+worth
+wrap
+wreck
+wrestle
+wrist
+write
+wrong
+yard
+year
+yellow
+you
+young
+youth
+zebra
+zero
+zone
+zoo`.split('\n');
+
+ var bip39 = {};
+
+ var _assert = {};
+
+ Object.defineProperty(_assert, "__esModule", { value: true });
+ _assert.output = _assert.exists = _assert.hash = _assert.bytes = _assert.bool = _assert.number = void 0;
+ function number$1(n) {
+ if (!Number.isSafeInteger(n) || n < 0)
+ throw new Error(`Wrong positive integer: ${n}`);
+ }
+ _assert.number = number$1;
+ function bool$1(b) {
+ if (typeof b !== 'boolean')
+ throw new Error(`Expected boolean, not ${b}`);
+ }
+ _assert.bool = bool$1;
+ function bytes$1(b, ...lengths) {
+ if (!(b instanceof Uint8Array))
+ throw new TypeError('Expected Uint8Array');
+ if (lengths.length > 0 && !lengths.includes(b.length))
+ throw new TypeError(`Expected Uint8Array of length ${lengths}, not of length=${b.length}`);
+ }
+ _assert.bytes = bytes$1;
+ function hash$1(hash) {
+ if (typeof hash !== 'function' || typeof hash.create !== 'function')
+ throw new Error('Hash should be wrapped by utils.wrapConstructor');
+ number$1(hash.outputLen);
+ number$1(hash.blockLen);
+ }
+ _assert.hash = hash$1;
+ function exists$1(instance, checkFinished = true) {
+ if (instance.destroyed)
+ throw new Error('Hash instance has been destroyed');
+ if (checkFinished && instance.finished)
+ throw new Error('Hash#digest() has already been called');
+ }
+ _assert.exists = exists$1;
+ function output$1(out, instance) {
+ bytes$1(out);
+ const min = instance.outputLen;
+ if (out.length < min) {
+ throw new Error(`digestInto() expects output buffer of length at least ${min}`);
+ }
+ }
+ _assert.output = output$1;
+ const assert$1 = {
+ number: number$1,
+ bool: bool$1,
+ bytes: bytes$1,
+ hash: hash$1,
+ exists: exists$1,
+ output: output$1,
+ };
+ _assert.default = assert$1;
+
+ var pbkdf2$1 = {};
+
+ var hmac$2 = {};
+
+ var utils = {};
+
+ var cryptoBrowser = {};
+
+ Object.defineProperty(cryptoBrowser, "__esModule", { value: true });
+ cryptoBrowser.crypto = void 0;
+ cryptoBrowser.crypto = {
+ node: undefined,
+ web: typeof self === 'object' && 'crypto' in self ? self.crypto : undefined,
+ };
+
+ (function (exports) {
+ /*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */
+ Object.defineProperty(exports, "__esModule", { value: true });
+ exports.randomBytes = exports.wrapConstructorWithOpts = exports.wrapConstructor = exports.checkOpts = exports.Hash = exports.concatBytes = exports.toBytes = exports.utf8ToBytes = exports.asyncLoop = exports.nextTick = exports.hexToBytes = exports.bytesToHex = exports.isLE = exports.rotr = exports.createView = exports.u32 = exports.u8 = void 0;
+ // The import here is via the package name. This is to ensure
+ // that exports mapping/resolution does fall into place.
+ const crypto_1 = cryptoBrowser;
+ // Cast array to different type
+ const u8 = (arr) => new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);
+ exports.u8 = u8;
+ const u32 = (arr) => new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));
+ exports.u32 = u32;
+ // Cast array to view
+ const createView = (arr) => new DataView(arr.buffer, arr.byteOffset, arr.byteLength);
+ exports.createView = createView;
+ // The rotate right (circular right shift) operation for uint32
+ const rotr = (word, shift) => (word << (32 - shift)) | (word >>> shift);
+ exports.rotr = rotr;
+ exports.isLE = new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44;
+ // There is almost no big endian hardware, but js typed arrays uses platform specific endianness.
+ // So, just to be sure not to corrupt anything.
+ if (!exports.isLE)
+ throw new Error('Non little-endian hardware is not supported');
+ const hexes = Array.from({ length: 256 }, (v, i) => i.toString(16).padStart(2, '0'));
+ /**
+ * @example bytesToHex(Uint8Array.from([0xde, 0xad, 0xbe, 0xef]))
+ */
+ function bytesToHex(uint8a) {
+ // pre-caching improves the speed 6x
+ if (!(uint8a instanceof Uint8Array))
+ throw new Error('Uint8Array expected');
+ let hex = '';
+ for (let i = 0; i < uint8a.length; i++) {
+ hex += hexes[uint8a[i]];
+ }
+ return hex;
+ }
+ exports.bytesToHex = bytesToHex;
+ /**
+ * @example hexToBytes('deadbeef')
+ */
+ function hexToBytes(hex) {
+ if (typeof hex !== 'string') {
+ throw new TypeError('hexToBytes: expected string, got ' + typeof hex);
+ }
+ if (hex.length % 2)
+ throw new Error('hexToBytes: received invalid unpadded hex');
+ const array = new Uint8Array(hex.length / 2);
+ for (let i = 0; i < array.length; i++) {
+ const j = i * 2;
+ const hexByte = hex.slice(j, j + 2);
+ const byte = Number.parseInt(hexByte, 16);
+ if (Number.isNaN(byte) || byte < 0)
+ throw new Error('Invalid byte sequence');
+ array[i] = byte;
+ }
+ return array;
+ }
+ exports.hexToBytes = hexToBytes;
+ // There is no setImmediate in browser and setTimeout is slow. However, call to async function will return Promise
+ // which will be fullfiled only on next scheduler queue processing step and this is exactly what we need.
+ const nextTick = async () => { };
+ exports.nextTick = nextTick;
+ // Returns control to thread each 'tick' ms to avoid blocking
+ async function asyncLoop(iters, tick, cb) {
+ let ts = Date.now();
+ for (let i = 0; i < iters; i++) {
+ cb(i);
+ // Date.now() is not monotonic, so in case if clock goes backwards we return return control too
+ const diff = Date.now() - ts;
+ if (diff >= 0 && diff < tick)
+ continue;
+ await (0, exports.nextTick)();
+ ts += diff;
+ }
+ }
+ exports.asyncLoop = asyncLoop;
+ function utf8ToBytes(str) {
+ if (typeof str !== 'string') {
+ throw new TypeError(`utf8ToBytes expected string, got ${typeof str}`);
+ }
+ return new TextEncoder().encode(str);
+ }
+ exports.utf8ToBytes = utf8ToBytes;
+ function toBytes(data) {
+ if (typeof data === 'string')
+ data = utf8ToBytes(data);
+ if (!(data instanceof Uint8Array))
+ throw new TypeError(`Expected input type is Uint8Array (got ${typeof data})`);
+ return data;
+ }
+ exports.toBytes = toBytes;
+ /**
+ * Concats Uint8Array-s into one; like `Buffer.concat([buf1, buf2])`
+ * @example concatBytes(buf1, buf2)
+ */
+ function concatBytes(...arrays) {
+ if (!arrays.every((a) => a instanceof Uint8Array))
+ throw new Error('Uint8Array list expected');
+ if (arrays.length === 1)
+ return arrays[0];
+ const length = arrays.reduce((a, arr) => a + arr.length, 0);
+ const result = new Uint8Array(length);
+ for (let i = 0, pad = 0; i < arrays.length; i++) {
+ const arr = arrays[i];
+ result.set(arr, pad);
+ pad += arr.length;
+ }
+ return result;
+ }
+ exports.concatBytes = concatBytes;
+ // For runtime check if class implements interface
+ class Hash {
+ // Safe version that clones internal state
+ clone() {
+ return this._cloneInto();
+ }
+ }
+ exports.Hash = Hash;
+ // Check if object doens't have custom constructor (like Uint8Array/Array)
+ const isPlainObject = (obj) => Object.prototype.toString.call(obj) === '[object Object]' && obj.constructor === Object;
+ function checkOpts(defaults, opts) {
+ if (opts !== undefined && (typeof opts !== 'object' || !isPlainObject(opts)))
+ throw new TypeError('Options should be object or undefined');
+ const merged = Object.assign(defaults, opts);
+ return merged;
+ }
+ exports.checkOpts = checkOpts;
+ function wrapConstructor(hashConstructor) {
+ const hashC = (message) => hashConstructor().update(toBytes(message)).digest();
+ const tmp = hashConstructor();
+ hashC.outputLen = tmp.outputLen;
+ hashC.blockLen = tmp.blockLen;
+ hashC.create = () => hashConstructor();
+ return hashC;
+ }
+ exports.wrapConstructor = wrapConstructor;
+ function wrapConstructorWithOpts(hashCons) {
+ const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();
+ const tmp = hashCons({});
+ hashC.outputLen = tmp.outputLen;
+ hashC.blockLen = tmp.blockLen;
+ hashC.create = (opts) => hashCons(opts);
+ return hashC;
+ }
+ exports.wrapConstructorWithOpts = wrapConstructorWithOpts;
+ /**
+ * Secure PRNG
+ */
+ function randomBytes(bytesLength = 32) {
+ if (crypto_1.crypto.web) {
+ return crypto_1.crypto.web.getRandomValues(new Uint8Array(bytesLength));
+ }
+ else if (crypto_1.crypto.node) {
+ return new Uint8Array(crypto_1.crypto.node.randomBytes(bytesLength).buffer);
+ }
+ else {
+ throw new Error("The environment doesn't have randomBytes function");
+ }
+ }
+ exports.randomBytes = randomBytes;
+
+ } (utils));
+
+ (function (exports) {
+ Object.defineProperty(exports, "__esModule", { value: true });
+ exports.hmac = void 0;
+ const _assert_js_1 = _assert;
+ const utils_js_1 = utils;
+ // HMAC (RFC 2104)
+ class HMAC extends utils_js_1.Hash {
+ constructor(hash, _key) {
+ super();
+ this.finished = false;
+ this.destroyed = false;
+ _assert_js_1.default.hash(hash);
+ const key = (0, utils_js_1.toBytes)(_key);
+ this.iHash = hash.create();
+ if (typeof this.iHash.update !== 'function')
+ throw new TypeError('Expected instance of class which extends utils.Hash');
+ this.blockLen = this.iHash.blockLen;
+ this.outputLen = this.iHash.outputLen;
+ const blockLen = this.blockLen;
+ const pad = new Uint8Array(blockLen);
+ // blockLen can be bigger than outputLen
+ pad.set(key.length > blockLen ? hash.create().update(key).digest() : key);
+ for (let i = 0; i < pad.length; i++)
+ pad[i] ^= 0x36;
+ this.iHash.update(pad);
+ // By doing update (processing of first block) of outer hash here we can re-use it between multiple calls via clone
+ this.oHash = hash.create();
+ // Undo internal XOR && apply outer XOR
+ for (let i = 0; i < pad.length; i++)
+ pad[i] ^= 0x36 ^ 0x5c;
+ this.oHash.update(pad);
+ pad.fill(0);
+ }
+ update(buf) {
+ _assert_js_1.default.exists(this);
+ this.iHash.update(buf);
+ return this;
+ }
+ digestInto(out) {
+ _assert_js_1.default.exists(this);
+ _assert_js_1.default.bytes(out, this.outputLen);
+ this.finished = true;
+ this.iHash.digestInto(out);
+ this.oHash.update(out);
+ this.oHash.digestInto(out);
+ this.destroy();
+ }
+ digest() {
+ const out = new Uint8Array(this.oHash.outputLen);
+ this.digestInto(out);
+ return out;
+ }
+ _cloneInto(to) {
+ // Create new instance without calling constructor since key already in state and we don't know it.
+ to || (to = Object.create(Object.getPrototypeOf(this), {}));
+ const { oHash, iHash, finished, destroyed, blockLen, outputLen } = this;
+ to = to;
+ to.finished = finished;
+ to.destroyed = destroyed;
+ to.blockLen = blockLen;
+ to.outputLen = outputLen;
+ to.oHash = oHash._cloneInto(to.oHash);
+ to.iHash = iHash._cloneInto(to.iHash);
+ return to;
+ }
+ destroy() {
+ this.destroyed = true;
+ this.oHash.destroy();
+ this.iHash.destroy();
+ }
+ }
+ /**
+ * HMAC: RFC2104 message authentication code.
+ * @param hash - function that would be used e.g. sha256
+ * @param key - message key
+ * @param message - message data
+ */
+ const hmac = (hash, key, message) => new HMAC(hash, key).update(message).digest();
+ exports.hmac = hmac;
+ exports.hmac.create = (hash, key) => new HMAC(hash, key);
+
+ } (hmac$2));
+
+ Object.defineProperty(pbkdf2$1, "__esModule", { value: true });
+ pbkdf2$1.pbkdf2Async = pbkdf2$1.pbkdf2 = void 0;
+ const _assert_js_1$1 = _assert;
+ const hmac_js_1 = hmac$2;
+ const utils_js_1$3 = utils;
+ // Common prologue and epilogue for sync/async functions
+ function pbkdf2Init(hash, _password, _salt, _opts) {
+ _assert_js_1$1.default.hash(hash);
+ const opts = (0, utils_js_1$3.checkOpts)({ dkLen: 32, asyncTick: 10 }, _opts);
+ const { c, dkLen, asyncTick } = opts;
+ _assert_js_1$1.default.number(c);
+ _assert_js_1$1.default.number(dkLen);
+ _assert_js_1$1.default.number(asyncTick);
+ if (c < 1)
+ throw new Error('PBKDF2: iterations (c) should be >= 1');
+ const password = (0, utils_js_1$3.toBytes)(_password);
+ const salt = (0, utils_js_1$3.toBytes)(_salt);
+ // DK = PBKDF2(PRF, Password, Salt, c, dkLen);
+ const DK = new Uint8Array(dkLen);
+ // U1 = PRF(Password, Salt + INT_32_BE(i))
+ const PRF = hmac_js_1.hmac.create(hash, password);
+ const PRFSalt = PRF._cloneInto().update(salt);
+ return { c, dkLen, asyncTick, DK, PRF, PRFSalt };
+ }
+ function pbkdf2Output(PRF, PRFSalt, DK, prfW, u) {
+ PRF.destroy();
+ PRFSalt.destroy();
+ if (prfW)
+ prfW.destroy();
+ u.fill(0);
+ return DK;
+ }
+ /**
+ * PBKDF2-HMAC: RFC 2898 key derivation function
+ * @param hash - hash function that would be used e.g. sha256
+ * @param password - password from which a derived key is generated
+ * @param salt - cryptographic salt
+ * @param opts - {c, dkLen} where c is work factor and dkLen is output message size
+ */
+ function pbkdf2(hash, password, salt, opts) {
+ const { c, dkLen, DK, PRF, PRFSalt } = pbkdf2Init(hash, password, salt, opts);
+ let prfW; // Working copy
+ const arr = new Uint8Array(4);
+ const view = (0, utils_js_1$3.createView)(arr);
+ const u = new Uint8Array(PRF.outputLen);
+ // DK = T1 + T2 + ⋯ + Tdklen/hlen
+ for (let ti = 1, pos = 0; pos < dkLen; ti++, pos += PRF.outputLen) {
+ // Ti = F(Password, Salt, c, i)
+ const Ti = DK.subarray(pos, pos + PRF.outputLen);
+ view.setInt32(0, ti, false);
+ // F(Password, Salt, c, i) = U1 ^ U2 ^ ⋯ ^ Uc
+ // U1 = PRF(Password, Salt + INT_32_BE(i))
+ (prfW = PRFSalt._cloneInto(prfW)).update(arr).digestInto(u);
+ Ti.set(u.subarray(0, Ti.length));
+ for (let ui = 1; ui < c; ui++) {
+ // Uc = PRF(Password, Uc−1)
+ PRF._cloneInto(prfW).update(u).digestInto(u);
+ for (let i = 0; i < Ti.length; i++)
+ Ti[i] ^= u[i];
+ }
+ }
+ return pbkdf2Output(PRF, PRFSalt, DK, prfW, u);
+ }
+ pbkdf2$1.pbkdf2 = pbkdf2;
+ async function pbkdf2Async(hash, password, salt, opts) {
+ const { c, dkLen, asyncTick, DK, PRF, PRFSalt } = pbkdf2Init(hash, password, salt, opts);
+ let prfW; // Working copy
+ const arr = new Uint8Array(4);
+ const view = (0, utils_js_1$3.createView)(arr);
+ const u = new Uint8Array(PRF.outputLen);
+ // DK = T1 + T2 + ⋯ + Tdklen/hlen
+ for (let ti = 1, pos = 0; pos < dkLen; ti++, pos += PRF.outputLen) {
+ // Ti = F(Password, Salt, c, i)
+ const Ti = DK.subarray(pos, pos + PRF.outputLen);
+ view.setInt32(0, ti, false);
+ // F(Password, Salt, c, i) = U1 ^ U2 ^ ⋯ ^ Uc
+ // U1 = PRF(Password, Salt + INT_32_BE(i))
+ (prfW = PRFSalt._cloneInto(prfW)).update(arr).digestInto(u);
+ Ti.set(u.subarray(0, Ti.length));
+ await (0, utils_js_1$3.asyncLoop)(c - 1, asyncTick, (i) => {
+ // Uc = PRF(Password, Uc−1)
+ PRF._cloneInto(prfW).update(u).digestInto(u);
+ for (let i = 0; i < Ti.length; i++)
+ Ti[i] ^= u[i];
+ });
+ }
+ return pbkdf2Output(PRF, PRFSalt, DK, prfW, u);
+ }
+ pbkdf2$1.pbkdf2Async = pbkdf2Async;
+
+ var sha256$1 = {};
+
+ var _sha2 = {};
+
+ Object.defineProperty(_sha2, "__esModule", { value: true });
+ _sha2.SHA2 = void 0;
+ const _assert_js_1 = _assert;
+ const utils_js_1$2 = utils;
+ // Polyfill for Safari 14
+ function setBigUint64$1(view, byteOffset, value, isLE) {
+ if (typeof view.setBigUint64 === 'function')
+ return view.setBigUint64(byteOffset, value, isLE);
+ const _32n = BigInt(32);
+ const _u32_max = BigInt(0xffffffff);
+ const wh = Number((value >> _32n) & _u32_max);
+ const wl = Number(value & _u32_max);
+ const h = isLE ? 4 : 0;
+ const l = isLE ? 0 : 4;
+ view.setUint32(byteOffset + h, wh, isLE);
+ view.setUint32(byteOffset + l, wl, isLE);
+ }
+ // Base SHA2 class (RFC 6234)
+ let SHA2$1 = class SHA2 extends utils_js_1$2.Hash {
+ constructor(blockLen, outputLen, padOffset, isLE) {
+ super();
+ this.blockLen = blockLen;
+ this.outputLen = outputLen;
+ this.padOffset = padOffset;
+ this.isLE = isLE;
+ this.finished = false;
+ this.length = 0;
+ this.pos = 0;
+ this.destroyed = false;
+ this.buffer = new Uint8Array(blockLen);
+ this.view = (0, utils_js_1$2.createView)(this.buffer);
+ }
+ update(data) {
+ _assert_js_1.default.exists(this);
+ const { view, buffer, blockLen } = this;
+ data = (0, utils_js_1$2.toBytes)(data);
+ const len = data.length;
+ for (let pos = 0; pos < len;) {
+ const take = Math.min(blockLen - this.pos, len - pos);
+ // Fast path: we have at least one block in input, cast it to view and process
+ if (take === blockLen) {
+ const dataView = (0, utils_js_1$2.createView)(data);
+ for (; blockLen <= len - pos; pos += blockLen)
+ this.process(dataView, pos);
+ continue;
+ }
+ buffer.set(data.subarray(pos, pos + take), this.pos);
+ this.pos += take;
+ pos += take;
+ if (this.pos === blockLen) {
+ this.process(view, 0);
+ this.pos = 0;
+ }
+ }
+ this.length += data.length;
+ this.roundClean();
+ return this;
+ }
+ digestInto(out) {
+ _assert_js_1.default.exists(this);
+ _assert_js_1.default.output(out, this);
+ this.finished = true;
+ // Padding
+ // We can avoid allocation of buffer for padding completely if it
+ // was previously not allocated here. But it won't change performance.
+ const { buffer, view, blockLen, isLE } = this;
+ let { pos } = this;
+ // append the bit '1' to the message
+ buffer[pos++] = 0b10000000;
+ this.buffer.subarray(pos).fill(0);
+ // we have less than padOffset left in buffer, so we cannot put length in current block, need process it and pad again
+ if (this.padOffset > blockLen - pos) {
+ this.process(view, 0);
+ pos = 0;
+ }
+ // Pad until full block byte with zeros
+ for (let i = pos; i < blockLen; i++)
+ buffer[i] = 0;
+ // Note: sha512 requires length to be 128bit integer, but length in JS will overflow before that
+ // You need to write around 2 exabytes (u64_max / 8 / (1024**6)) for this to happen.
+ // So we just write lowest 64 bits of that value.
+ setBigUint64$1(view, blockLen - 8, BigInt(this.length * 8), isLE);
+ this.process(view, 0);
+ const oview = (0, utils_js_1$2.createView)(out);
+ const len = this.outputLen;
+ // NOTE: we do division by 4 later, which should be fused in single op with modulo by JIT
+ if (len % 4)
+ throw new Error('_sha2: outputLen should be aligned to 32bit');
+ const outLen = len / 4;
+ const state = this.get();
+ if (outLen > state.length)
+ throw new Error('_sha2: outputLen bigger than state');
+ for (let i = 0; i < outLen; i++)
+ oview.setUint32(4 * i, state[i], isLE);
+ }
+ digest() {
+ const { buffer, outputLen } = this;
+ this.digestInto(buffer);
+ const res = buffer.slice(0, outputLen);
+ this.destroy();
+ return res;
+ }
+ _cloneInto(to) {
+ to || (to = new this.constructor());
+ to.set(...this.get());
+ const { blockLen, buffer, length, finished, destroyed, pos } = this;
+ to.length = length;
+ to.pos = pos;
+ to.finished = finished;
+ to.destroyed = destroyed;
+ if (length % blockLen)
+ to.buffer.set(buffer);
+ return to;
+ }
+ };
+ _sha2.SHA2 = SHA2$1;
+
+ Object.defineProperty(sha256$1, "__esModule", { value: true });
+ sha256$1.sha224 = sha256$1.sha256 = void 0;
+ const _sha2_js_1$1 = _sha2;
+ const utils_js_1$1 = utils;
+ // Choice: a ? b : c
+ const Chi$1 = (a, b, c) => (a & b) ^ (~a & c);
+ // Majority function, true if any two inpust is true
+ const Maj$1 = (a, b, c) => (a & b) ^ (a & c) ^ (b & c);
+ // Round constants:
+ // first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311)
+ // prettier-ignore
+ const SHA256_K$1 = new Uint32Array([
+ 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,
+ 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,
+ 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
+ 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,
+ 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,
+ 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
+ 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,
+ 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2
+ ]);
+ // Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):
+ // prettier-ignore
+ const IV$1 = new Uint32Array([
+ 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19
+ ]);
+ // Temporary buffer, not used to store anything between runs
+ // Named this way because it matches specification.
+ const SHA256_W$1 = new Uint32Array(64);
+ let SHA256$1 = class SHA256 extends _sha2_js_1$1.SHA2 {
+ constructor() {
+ super(64, 32, 8, false);
+ // We cannot use array here since array allows indexing by variable
+ // which means optimizer/compiler cannot use registers.
+ this.A = IV$1[0] | 0;
+ this.B = IV$1[1] | 0;
+ this.C = IV$1[2] | 0;
+ this.D = IV$1[3] | 0;
+ this.E = IV$1[4] | 0;
+ this.F = IV$1[5] | 0;
+ this.G = IV$1[6] | 0;
+ this.H = IV$1[7] | 0;
+ }
+ get() {
+ const { A, B, C, D, E, F, G, H } = this;
+ return [A, B, C, D, E, F, G, H];
+ }
+ // prettier-ignore
+ set(A, B, C, D, E, F, G, H) {
+ this.A = A | 0;
+ this.B = B | 0;
+ this.C = C | 0;
+ this.D = D | 0;
+ this.E = E | 0;
+ this.F = F | 0;
+ this.G = G | 0;
+ this.H = H | 0;
+ }
+ process(view, offset) {
+ // Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array
+ for (let i = 0; i < 16; i++, offset += 4)
+ SHA256_W$1[i] = view.getUint32(offset, false);
+ for (let i = 16; i < 64; i++) {
+ const W15 = SHA256_W$1[i - 15];
+ const W2 = SHA256_W$1[i - 2];
+ const s0 = (0, utils_js_1$1.rotr)(W15, 7) ^ (0, utils_js_1$1.rotr)(W15, 18) ^ (W15 >>> 3);
+ const s1 = (0, utils_js_1$1.rotr)(W2, 17) ^ (0, utils_js_1$1.rotr)(W2, 19) ^ (W2 >>> 10);
+ SHA256_W$1[i] = (s1 + SHA256_W$1[i - 7] + s0 + SHA256_W$1[i - 16]) | 0;
+ }
+ // Compression function main loop, 64 rounds
+ let { A, B, C, D, E, F, G, H } = this;
+ for (let i = 0; i < 64; i++) {
+ const sigma1 = (0, utils_js_1$1.rotr)(E, 6) ^ (0, utils_js_1$1.rotr)(E, 11) ^ (0, utils_js_1$1.rotr)(E, 25);
+ const T1 = (H + sigma1 + Chi$1(E, F, G) + SHA256_K$1[i] + SHA256_W$1[i]) | 0;
+ const sigma0 = (0, utils_js_1$1.rotr)(A, 2) ^ (0, utils_js_1$1.rotr)(A, 13) ^ (0, utils_js_1$1.rotr)(A, 22);
+ const T2 = (sigma0 + Maj$1(A, B, C)) | 0;
+ H = G;
+ G = F;
+ F = E;
+ E = (D + T1) | 0;
+ D = C;
+ C = B;
+ B = A;
+ A = (T1 + T2) | 0;
+ }
+ // Add the compressed chunk to the current hash value
+ A = (A + this.A) | 0;
+ B = (B + this.B) | 0;
+ C = (C + this.C) | 0;
+ D = (D + this.D) | 0;
+ E = (E + this.E) | 0;
+ F = (F + this.F) | 0;
+ G = (G + this.G) | 0;
+ H = (H + this.H) | 0;
+ this.set(A, B, C, D, E, F, G, H);
+ }
+ roundClean() {
+ SHA256_W$1.fill(0);
+ }
+ destroy() {
+ this.set(0, 0, 0, 0, 0, 0, 0, 0);
+ this.buffer.fill(0);
+ }
+ };
+ // Constants from https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf
+ let SHA224$1 = class SHA224 extends SHA256$1 {
+ constructor() {
+ super();
+ this.A = 0xc1059ed8 | 0;
+ this.B = 0x367cd507 | 0;
+ this.C = 0x3070dd17 | 0;
+ this.D = 0xf70e5939 | 0;
+ this.E = 0xffc00b31 | 0;
+ this.F = 0x68581511 | 0;
+ this.G = 0x64f98fa7 | 0;
+ this.H = 0xbefa4fa4 | 0;
+ this.outputLen = 28;
+ }
+ };
+ /**
+ * SHA2-256 hash function
+ * @param message - data that would be hashed
+ */
+ sha256$1.sha256 = (0, utils_js_1$1.wrapConstructor)(() => new SHA256$1());
+ sha256$1.sha224 = (0, utils_js_1$1.wrapConstructor)(() => new SHA224$1());
+
+ var sha512$1 = {};
+
+ var _u64 = {};
+
+ (function (exports) {
+ Object.defineProperty(exports, "__esModule", { value: true });
+ exports.add = exports.toBig = exports.split = exports.fromBig = void 0;
+ const U32_MASK64 = BigInt(2 ** 32 - 1);
+ const _32n = BigInt(32);
+ // We are not using BigUint64Array, because they are extremely slow as per 2022
+ function fromBig(n, le = false) {
+ if (le)
+ return { h: Number(n & U32_MASK64), l: Number((n >> _32n) & U32_MASK64) };
+ return { h: Number((n >> _32n) & U32_MASK64) | 0, l: Number(n & U32_MASK64) | 0 };
+ }
+ exports.fromBig = fromBig;
+ function split(lst, le = false) {
+ let Ah = new Uint32Array(lst.length);
+ let Al = new Uint32Array(lst.length);
+ for (let i = 0; i < lst.length; i++) {
+ const { h, l } = fromBig(lst[i], le);
+ [Ah[i], Al[i]] = [h, l];
+ }
+ return [Ah, Al];
+ }
+ exports.split = split;
+ const toBig = (h, l) => (BigInt(h >>> 0) << _32n) | BigInt(l >>> 0);
+ exports.toBig = toBig;
+ // for Shift in [0, 32)
+ const shrSH = (h, l, s) => h >>> s;
+ const shrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);
+ // Right rotate for Shift in [1, 32)
+ const rotrSH = (h, l, s) => (h >>> s) | (l << (32 - s));
+ const rotrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);
+ // Right rotate for Shift in (32, 64), NOTE: 32 is special case.
+ const rotrBH = (h, l, s) => (h << (64 - s)) | (l >>> (s - 32));
+ const rotrBL = (h, l, s) => (h >>> (s - 32)) | (l << (64 - s));
+ // Right rotate for shift===32 (just swaps l&h)
+ const rotr32H = (h, l) => l;
+ const rotr32L = (h, l) => h;
+ // Left rotate for Shift in [1, 32)
+ const rotlSH = (h, l, s) => (h << s) | (l >>> (32 - s));
+ const rotlSL = (h, l, s) => (l << s) | (h >>> (32 - s));
+ // Left rotate for Shift in (32, 64), NOTE: 32 is special case.
+ const rotlBH = (h, l, s) => (l << (s - 32)) | (h >>> (64 - s));
+ const rotlBL = (h, l, s) => (h << (s - 32)) | (l >>> (64 - s));
+ // JS uses 32-bit signed integers for bitwise operations which means we cannot
+ // simple take carry out of low bit sum by shift, we need to use division.
+ // Removing "export" has 5% perf penalty -_-
+ function add(Ah, Al, Bh, Bl) {
+ const l = (Al >>> 0) + (Bl >>> 0);
+ return { h: (Ah + Bh + ((l / 2 ** 32) | 0)) | 0, l: l | 0 };
+ }
+ exports.add = add;
+ // Addition with more than 2 elements
+ const add3L = (Al, Bl, Cl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0);
+ const add3H = (low, Ah, Bh, Ch) => (Ah + Bh + Ch + ((low / 2 ** 32) | 0)) | 0;
+ const add4L = (Al, Bl, Cl, Dl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0);
+ const add4H = (low, Ah, Bh, Ch, Dh) => (Ah + Bh + Ch + Dh + ((low / 2 ** 32) | 0)) | 0;
+ const add5L = (Al, Bl, Cl, Dl, El) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0) + (El >>> 0);
+ const add5H = (low, Ah, Bh, Ch, Dh, Eh) => (Ah + Bh + Ch + Dh + Eh + ((low / 2 ** 32) | 0)) | 0;
+ // prettier-ignore
+ const u64 = {
+ fromBig, split, toBig: exports.toBig,
+ shrSH, shrSL,
+ rotrSH, rotrSL, rotrBH, rotrBL,
+ rotr32H, rotr32L,
+ rotlSH, rotlSL, rotlBH, rotlBL,
+ add, add3L, add3H, add4L, add4H, add5H, add5L,
+ };
+ exports.default = u64;
+
+ } (_u64));
+
+ Object.defineProperty(sha512$1, "__esModule", { value: true });
+ sha512$1.sha384 = sha512$1.sha512_256 = sha512$1.sha512_224 = sha512$1.sha512 = sha512$1.SHA512 = void 0;
+ const _sha2_js_1 = _sha2;
+ const _u64_js_1 = _u64;
+ const utils_js_1 = utils;
+ // Round contants (first 32 bits of the fractional parts of the cube roots of the first 80 primes 2..409):
+ // prettier-ignore
+ const [SHA512_Kh$1, SHA512_Kl$1] = _u64_js_1.default.split([
+ '0x428a2f98d728ae22', '0x7137449123ef65cd', '0xb5c0fbcfec4d3b2f', '0xe9b5dba58189dbbc',
+ '0x3956c25bf348b538', '0x59f111f1b605d019', '0x923f82a4af194f9b', '0xab1c5ed5da6d8118',
+ '0xd807aa98a3030242', '0x12835b0145706fbe', '0x243185be4ee4b28c', '0x550c7dc3d5ffb4e2',
+ '0x72be5d74f27b896f', '0x80deb1fe3b1696b1', '0x9bdc06a725c71235', '0xc19bf174cf692694',
+ '0xe49b69c19ef14ad2', '0xefbe4786384f25e3', '0x0fc19dc68b8cd5b5', '0x240ca1cc77ac9c65',
+ '0x2de92c6f592b0275', '0x4a7484aa6ea6e483', '0x5cb0a9dcbd41fbd4', '0x76f988da831153b5',
+ '0x983e5152ee66dfab', '0xa831c66d2db43210', '0xb00327c898fb213f', '0xbf597fc7beef0ee4',
+ '0xc6e00bf33da88fc2', '0xd5a79147930aa725', '0x06ca6351e003826f', '0x142929670a0e6e70',
+ '0x27b70a8546d22ffc', '0x2e1b21385c26c926', '0x4d2c6dfc5ac42aed', '0x53380d139d95b3df',
+ '0x650a73548baf63de', '0x766a0abb3c77b2a8', '0x81c2c92e47edaee6', '0x92722c851482353b',
+ '0xa2bfe8a14cf10364', '0xa81a664bbc423001', '0xc24b8b70d0f89791', '0xc76c51a30654be30',
+ '0xd192e819d6ef5218', '0xd69906245565a910', '0xf40e35855771202a', '0x106aa07032bbd1b8',
+ '0x19a4c116b8d2d0c8', '0x1e376c085141ab53', '0x2748774cdf8eeb99', '0x34b0bcb5e19b48a8',
+ '0x391c0cb3c5c95a63', '0x4ed8aa4ae3418acb', '0x5b9cca4f7763e373', '0x682e6ff3d6b2b8a3',
+ '0x748f82ee5defb2fc', '0x78a5636f43172f60', '0x84c87814a1f0ab72', '0x8cc702081a6439ec',
+ '0x90befffa23631e28', '0xa4506cebde82bde9', '0xbef9a3f7b2c67915', '0xc67178f2e372532b',
+ '0xca273eceea26619c', '0xd186b8c721c0c207', '0xeada7dd6cde0eb1e', '0xf57d4f7fee6ed178',
+ '0x06f067aa72176fba', '0x0a637dc5a2c898a6', '0x113f9804bef90dae', '0x1b710b35131c471b',
+ '0x28db77f523047d84', '0x32caab7b40c72493', '0x3c9ebe0a15c9bebc', '0x431d67c49c100d4c',
+ '0x4cc5d4becb3e42b6', '0x597f299cfc657e2a', '0x5fcb6fab3ad6faec', '0x6c44198c4a475817'
+ ].map(n => BigInt(n)));
+ // Temporary buffer, not used to store anything between runs
+ const SHA512_W_H$1 = new Uint32Array(80);
+ const SHA512_W_L$1 = new Uint32Array(80);
+ let SHA512$1 = class SHA512 extends _sha2_js_1.SHA2 {
+ constructor() {
+ super(128, 64, 16, false);
+ // We cannot use array here since array allows indexing by variable which means optimizer/compiler cannot use registers.
+ // Also looks cleaner and easier to verify with spec.
+ // Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):
+ // h -- high 32 bits, l -- low 32 bits
+ this.Ah = 0x6a09e667 | 0;
+ this.Al = 0xf3bcc908 | 0;
+ this.Bh = 0xbb67ae85 | 0;
+ this.Bl = 0x84caa73b | 0;
+ this.Ch = 0x3c6ef372 | 0;
+ this.Cl = 0xfe94f82b | 0;
+ this.Dh = 0xa54ff53a | 0;
+ this.Dl = 0x5f1d36f1 | 0;
+ this.Eh = 0x510e527f | 0;
+ this.El = 0xade682d1 | 0;
+ this.Fh = 0x9b05688c | 0;
+ this.Fl = 0x2b3e6c1f | 0;
+ this.Gh = 0x1f83d9ab | 0;
+ this.Gl = 0xfb41bd6b | 0;
+ this.Hh = 0x5be0cd19 | 0;
+ this.Hl = 0x137e2179 | 0;
+ }
+ // prettier-ignore
+ get() {
+ const { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;
+ return [Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl];
+ }
+ // prettier-ignore
+ set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl) {
+ this.Ah = Ah | 0;
+ this.Al = Al | 0;
+ this.Bh = Bh | 0;
+ this.Bl = Bl | 0;
+ this.Ch = Ch | 0;
+ this.Cl = Cl | 0;
+ this.Dh = Dh | 0;
+ this.Dl = Dl | 0;
+ this.Eh = Eh | 0;
+ this.El = El | 0;
+ this.Fh = Fh | 0;
+ this.Fl = Fl | 0;
+ this.Gh = Gh | 0;
+ this.Gl = Gl | 0;
+ this.Hh = Hh | 0;
+ this.Hl = Hl | 0;
+ }
+ process(view, offset) {
+ // Extend the first 16 words into the remaining 64 words w[16..79] of the message schedule array
+ for (let i = 0; i < 16; i++, offset += 4) {
+ SHA512_W_H$1[i] = view.getUint32(offset);
+ SHA512_W_L$1[i] = view.getUint32((offset += 4));
+ }
+ for (let i = 16; i < 80; i++) {
+ // s0 := (w[i-15] rightrotate 1) xor (w[i-15] rightrotate 8) xor (w[i-15] rightshift 7)
+ const W15h = SHA512_W_H$1[i - 15] | 0;
+ const W15l = SHA512_W_L$1[i - 15] | 0;
+ const s0h = _u64_js_1.default.rotrSH(W15h, W15l, 1) ^ _u64_js_1.default.rotrSH(W15h, W15l, 8) ^ _u64_js_1.default.shrSH(W15h, W15l, 7);
+ const s0l = _u64_js_1.default.rotrSL(W15h, W15l, 1) ^ _u64_js_1.default.rotrSL(W15h, W15l, 8) ^ _u64_js_1.default.shrSL(W15h, W15l, 7);
+ // s1 := (w[i-2] rightrotate 19) xor (w[i-2] rightrotate 61) xor (w[i-2] rightshift 6)
+ const W2h = SHA512_W_H$1[i - 2] | 0;
+ const W2l = SHA512_W_L$1[i - 2] | 0;
+ const s1h = _u64_js_1.default.rotrSH(W2h, W2l, 19) ^ _u64_js_1.default.rotrBH(W2h, W2l, 61) ^ _u64_js_1.default.shrSH(W2h, W2l, 6);
+ const s1l = _u64_js_1.default.rotrSL(W2h, W2l, 19) ^ _u64_js_1.default.rotrBL(W2h, W2l, 61) ^ _u64_js_1.default.shrSL(W2h, W2l, 6);
+ // SHA256_W[i] = s0 + s1 + SHA256_W[i - 7] + SHA256_W[i - 16];
+ const SUMl = _u64_js_1.default.add4L(s0l, s1l, SHA512_W_L$1[i - 7], SHA512_W_L$1[i - 16]);
+ const SUMh = _u64_js_1.default.add4H(SUMl, s0h, s1h, SHA512_W_H$1[i - 7], SHA512_W_H$1[i - 16]);
+ SHA512_W_H$1[i] = SUMh | 0;
+ SHA512_W_L$1[i] = SUMl | 0;
+ }
+ let { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;
+ // Compression function main loop, 80 rounds
+ for (let i = 0; i < 80; i++) {
+ // S1 := (e rightrotate 14) xor (e rightrotate 18) xor (e rightrotate 41)
+ const sigma1h = _u64_js_1.default.rotrSH(Eh, El, 14) ^ _u64_js_1.default.rotrSH(Eh, El, 18) ^ _u64_js_1.default.rotrBH(Eh, El, 41);
+ const sigma1l = _u64_js_1.default.rotrSL(Eh, El, 14) ^ _u64_js_1.default.rotrSL(Eh, El, 18) ^ _u64_js_1.default.rotrBL(Eh, El, 41);
+ //const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;
+ const CHIh = (Eh & Fh) ^ (~Eh & Gh);
+ const CHIl = (El & Fl) ^ (~El & Gl);
+ // T1 = H + sigma1 + Chi(E, F, G) + SHA512_K[i] + SHA512_W[i]
+ // prettier-ignore
+ const T1ll = _u64_js_1.default.add5L(Hl, sigma1l, CHIl, SHA512_Kl$1[i], SHA512_W_L$1[i]);
+ const T1h = _u64_js_1.default.add5H(T1ll, Hh, sigma1h, CHIh, SHA512_Kh$1[i], SHA512_W_H$1[i]);
+ const T1l = T1ll | 0;
+ // S0 := (a rightrotate 28) xor (a rightrotate 34) xor (a rightrotate 39)
+ const sigma0h = _u64_js_1.default.rotrSH(Ah, Al, 28) ^ _u64_js_1.default.rotrBH(Ah, Al, 34) ^ _u64_js_1.default.rotrBH(Ah, Al, 39);
+ const sigma0l = _u64_js_1.default.rotrSL(Ah, Al, 28) ^ _u64_js_1.default.rotrBL(Ah, Al, 34) ^ _u64_js_1.default.rotrBL(Ah, Al, 39);
+ const MAJh = (Ah & Bh) ^ (Ah & Ch) ^ (Bh & Ch);
+ const MAJl = (Al & Bl) ^ (Al & Cl) ^ (Bl & Cl);
+ Hh = Gh | 0;
+ Hl = Gl | 0;
+ Gh = Fh | 0;
+ Gl = Fl | 0;
+ Fh = Eh | 0;
+ Fl = El | 0;
+ ({ h: Eh, l: El } = _u64_js_1.default.add(Dh | 0, Dl | 0, T1h | 0, T1l | 0));
+ Dh = Ch | 0;
+ Dl = Cl | 0;
+ Ch = Bh | 0;
+ Cl = Bl | 0;
+ Bh = Ah | 0;
+ Bl = Al | 0;
+ const All = _u64_js_1.default.add3L(T1l, sigma0l, MAJl);
+ Ah = _u64_js_1.default.add3H(All, T1h, sigma0h, MAJh);
+ Al = All | 0;
+ }
+ // Add the compressed chunk to the current hash value
+ ({ h: Ah, l: Al } = _u64_js_1.default.add(this.Ah | 0, this.Al | 0, Ah | 0, Al | 0));
+ ({ h: Bh, l: Bl } = _u64_js_1.default.add(this.Bh | 0, this.Bl | 0, Bh | 0, Bl | 0));
+ ({ h: Ch, l: Cl } = _u64_js_1.default.add(this.Ch | 0, this.Cl | 0, Ch | 0, Cl | 0));
+ ({ h: Dh, l: Dl } = _u64_js_1.default.add(this.Dh | 0, this.Dl | 0, Dh | 0, Dl | 0));
+ ({ h: Eh, l: El } = _u64_js_1.default.add(this.Eh | 0, this.El | 0, Eh | 0, El | 0));
+ ({ h: Fh, l: Fl } = _u64_js_1.default.add(this.Fh | 0, this.Fl | 0, Fh | 0, Fl | 0));
+ ({ h: Gh, l: Gl } = _u64_js_1.default.add(this.Gh | 0, this.Gl | 0, Gh | 0, Gl | 0));
+ ({ h: Hh, l: Hl } = _u64_js_1.default.add(this.Hh | 0, this.Hl | 0, Hh | 0, Hl | 0));
+ this.set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl);
+ }
+ roundClean() {
+ SHA512_W_H$1.fill(0);
+ SHA512_W_L$1.fill(0);
+ }
+ destroy() {
+ this.buffer.fill(0);
+ this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ }
+ };
+ sha512$1.SHA512 = SHA512$1;
+ let SHA512_224$1 = class SHA512_224 extends SHA512$1 {
+ constructor() {
+ super();
+ // h -- high 32 bits, l -- low 32 bits
+ this.Ah = 0x8c3d37c8 | 0;
+ this.Al = 0x19544da2 | 0;
+ this.Bh = 0x73e19966 | 0;
+ this.Bl = 0x89dcd4d6 | 0;
+ this.Ch = 0x1dfab7ae | 0;
+ this.Cl = 0x32ff9c82 | 0;
+ this.Dh = 0x679dd514 | 0;
+ this.Dl = 0x582f9fcf | 0;
+ this.Eh = 0x0f6d2b69 | 0;
+ this.El = 0x7bd44da8 | 0;
+ this.Fh = 0x77e36f73 | 0;
+ this.Fl = 0x04c48942 | 0;
+ this.Gh = 0x3f9d85a8 | 0;
+ this.Gl = 0x6a1d36c8 | 0;
+ this.Hh = 0x1112e6ad | 0;
+ this.Hl = 0x91d692a1 | 0;
+ this.outputLen = 28;
+ }
+ };
+ let SHA512_256$1 = class SHA512_256 extends SHA512$1 {
+ constructor() {
+ super();
+ // h -- high 32 bits, l -- low 32 bits
+ this.Ah = 0x22312194 | 0;
+ this.Al = 0xfc2bf72c | 0;
+ this.Bh = 0x9f555fa3 | 0;
+ this.Bl = 0xc84c64c2 | 0;
+ this.Ch = 0x2393b86b | 0;
+ this.Cl = 0x6f53b151 | 0;
+ this.Dh = 0x96387719 | 0;
+ this.Dl = 0x5940eabd | 0;
+ this.Eh = 0x96283ee2 | 0;
+ this.El = 0xa88effe3 | 0;
+ this.Fh = 0xbe5e1e25 | 0;
+ this.Fl = 0x53863992 | 0;
+ this.Gh = 0x2b0199fc | 0;
+ this.Gl = 0x2c85b8aa | 0;
+ this.Hh = 0x0eb72ddc | 0;
+ this.Hl = 0x81c52ca2 | 0;
+ this.outputLen = 32;
+ }
+ };
+ let SHA384$1 = class SHA384 extends SHA512$1 {
+ constructor() {
+ super();
+ // h -- high 32 bits, l -- low 32 bits
+ this.Ah = 0xcbbb9d5d | 0;
+ this.Al = 0xc1059ed8 | 0;
+ this.Bh = 0x629a292a | 0;
+ this.Bl = 0x367cd507 | 0;
+ this.Ch = 0x9159015a | 0;
+ this.Cl = 0x3070dd17 | 0;
+ this.Dh = 0x152fecd8 | 0;
+ this.Dl = 0xf70e5939 | 0;
+ this.Eh = 0x67332667 | 0;
+ this.El = 0xffc00b31 | 0;
+ this.Fh = 0x8eb44a87 | 0;
+ this.Fl = 0x68581511 | 0;
+ this.Gh = 0xdb0c2e0d | 0;
+ this.Gl = 0x64f98fa7 | 0;
+ this.Hh = 0x47b5481d | 0;
+ this.Hl = 0xbefa4fa4 | 0;
+ this.outputLen = 48;
+ }
+ };
+ sha512$1.sha512 = (0, utils_js_1.wrapConstructor)(() => new SHA512$1());
+ sha512$1.sha512_224 = (0, utils_js_1.wrapConstructor)(() => new SHA512_224$1());
+ sha512$1.sha512_256 = (0, utils_js_1.wrapConstructor)(() => new SHA512_256$1());
+ sha512$1.sha384 = (0, utils_js_1.wrapConstructor)(() => new SHA384$1());
+
+ var lib = {};
+
+ (function (exports) {
+ /*! scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) */
+ Object.defineProperty(exports, "__esModule", { value: true });
+ exports.bytes = exports.stringToBytes = exports.str = exports.bytesToString = exports.hex = exports.utf8 = exports.bech32m = exports.bech32 = exports.base58check = exports.base58xmr = exports.base58xrp = exports.base58flickr = exports.base58 = exports.base64url = exports.base64 = exports.base32crockford = exports.base32hex = exports.base32 = exports.base16 = exports.utils = exports.assertNumber = void 0;
+ function assertNumber(n) {
+ if (!Number.isSafeInteger(n))
+ throw new Error(`Wrong integer: ${n}`);
+ }
+ exports.assertNumber = assertNumber;
+ function chain(...args) {
+ const wrap = (a, b) => (c) => a(b(c));
+ const encode = Array.from(args)
+ .reverse()
+ .reduce((acc, i) => (acc ? wrap(acc, i.encode) : i.encode), undefined);
+ const decode = args.reduce((acc, i) => (acc ? wrap(acc, i.decode) : i.decode), undefined);
+ return { encode, decode };
+ }
+ function alphabet(alphabet) {
+ return {
+ encode: (digits) => {
+ if (!Array.isArray(digits) || (digits.length && typeof digits[0] !== 'number'))
+ throw new Error('alphabet.encode input should be an array of numbers');
+ return digits.map((i) => {
+ assertNumber(i);
+ if (i < 0 || i >= alphabet.length)
+ throw new Error(`Digit index outside alphabet: ${i} (alphabet: ${alphabet.length})`);
+ return alphabet[i];
+ });
+ },
+ decode: (input) => {
+ if (!Array.isArray(input) || (input.length && typeof input[0] !== 'string'))
+ throw new Error('alphabet.decode input should be array of strings');
+ return input.map((letter) => {
+ if (typeof letter !== 'string')
+ throw new Error(`alphabet.decode: not string element=${letter}`);
+ const index = alphabet.indexOf(letter);
+ if (index === -1)
+ throw new Error(`Unknown letter: "${letter}". Allowed: ${alphabet}`);
+ return index;
+ });
+ },
+ };
+ }
+ function join(separator = '') {
+ if (typeof separator !== 'string')
+ throw new Error('join separator should be string');
+ return {
+ encode: (from) => {
+ if (!Array.isArray(from) || (from.length && typeof from[0] !== 'string'))
+ throw new Error('join.encode input should be array of strings');
+ for (let i of from)
+ if (typeof i !== 'string')
+ throw new Error(`join.encode: non-string input=${i}`);
+ return from.join(separator);
+ },
+ decode: (to) => {
+ if (typeof to !== 'string')
+ throw new Error('join.decode input should be string');
+ return to.split(separator);
+ },
+ };
+ }
+ function padding(bits, chr = '=') {
+ assertNumber(bits);
+ if (typeof chr !== 'string')
+ throw new Error('padding chr should be string');
+ return {
+ encode(data) {
+ if (!Array.isArray(data) || (data.length && typeof data[0] !== 'string'))
+ throw new Error('padding.encode input should be array of strings');
+ for (let i of data)
+ if (typeof i !== 'string')
+ throw new Error(`padding.encode: non-string input=${i}`);
+ while ((data.length * bits) % 8)
+ data.push(chr);
+ return data;
+ },
+ decode(input) {
+ if (!Array.isArray(input) || (input.length && typeof input[0] !== 'string'))
+ throw new Error('padding.encode input should be array of strings');
+ for (let i of input)
+ if (typeof i !== 'string')
+ throw new Error(`padding.decode: non-string input=${i}`);
+ let end = input.length;
+ if ((end * bits) % 8)
+ throw new Error('Invalid padding: string should have whole number of bytes');
+ for (; end > 0 && input[end - 1] === chr; end--) {
+ if (!(((end - 1) * bits) % 8))
+ throw new Error('Invalid padding: string has too much padding');
+ }
+ return input.slice(0, end);
+ },
+ };
+ }
+ function normalize(fn) {
+ if (typeof fn !== 'function')
+ throw new Error('normalize fn should be function');
+ return { encode: (from) => from, decode: (to) => fn(to) };
+ }
+ function convertRadix(data, from, to) {
+ if (from < 2)
+ throw new Error(`convertRadix: wrong from=${from}, base cannot be less than 2`);
+ if (to < 2)
+ throw new Error(`convertRadix: wrong to=${to}, base cannot be less than 2`);
+ if (!Array.isArray(data))
+ throw new Error('convertRadix: data should be array');
+ if (!data.length)
+ return [];
+ let pos = 0;
+ const res = [];
+ const digits = Array.from(data);
+ digits.forEach((d) => {
+ assertNumber(d);
+ if (d < 0 || d >= from)
+ throw new Error(`Wrong integer: ${d}`);
+ });
+ while (true) {
+ let carry = 0;
+ let done = true;
+ for (let i = pos; i < digits.length; i++) {
+ const digit = digits[i];
+ const digitBase = from * carry + digit;
+ if (!Number.isSafeInteger(digitBase) ||
+ (from * carry) / from !== carry ||
+ digitBase - digit !== from * carry) {
+ throw new Error('convertRadix: carry overflow');
+ }
+ carry = digitBase % to;
+ digits[i] = Math.floor(digitBase / to);
+ if (!Number.isSafeInteger(digits[i]) || digits[i] * to + carry !== digitBase)
+ throw new Error('convertRadix: carry overflow');
+ if (!done)
+ continue;
+ else if (!digits[i])
+ pos = i;
+ else
+ done = false;
+ }
+ res.push(carry);
+ if (done)
+ break;
+ }
+ for (let i = 0; i < data.length - 1 && data[i] === 0; i++)
+ res.push(0);
+ return res.reverse();
+ }
+ const gcd = (a, b) => (!b ? a : gcd(b, a % b));
+ const radix2carry = (from, to) => from + (to - gcd(from, to));
+ function convertRadix2(data, from, to, padding) {
+ if (!Array.isArray(data))
+ throw new Error('convertRadix2: data should be array');
+ if (from <= 0 || from > 32)
+ throw new Error(`convertRadix2: wrong from=${from}`);
+ if (to <= 0 || to > 32)
+ throw new Error(`convertRadix2: wrong to=${to}`);
+ if (radix2carry(from, to) > 32) {
+ throw new Error(`convertRadix2: carry overflow from=${from} to=${to} carryBits=${radix2carry(from, to)}`);
+ }
+ let carry = 0;
+ let pos = 0;
+ const mask = 2 ** to - 1;
+ const res = [];
+ for (const n of data) {
+ assertNumber(n);
+ if (n >= 2 ** from)
+ throw new Error(`convertRadix2: invalid data word=${n} from=${from}`);
+ carry = (carry << from) | n;
+ if (pos + from > 32)
+ throw new Error(`convertRadix2: carry overflow pos=${pos} from=${from}`);
+ pos += from;
+ for (; pos >= to; pos -= to)
+ res.push(((carry >> (pos - to)) & mask) >>> 0);
+ carry &= 2 ** pos - 1;
+ }
+ carry = (carry << (to - pos)) & mask;
+ if (!padding && pos >= from)
+ throw new Error('Excess padding');
+ if (!padding && carry)
+ throw new Error(`Non-zero padding: ${carry}`);
+ if (padding && pos > 0)
+ res.push(carry >>> 0);
+ return res;
+ }
+ function radix(num) {
+ assertNumber(num);
+ return {
+ encode: (bytes) => {
+ if (!(bytes instanceof Uint8Array))
+ throw new Error('radix.encode input should be Uint8Array');
+ return convertRadix(Array.from(bytes), 2 ** 8, num);
+ },
+ decode: (digits) => {
+ if (!Array.isArray(digits) || (digits.length && typeof digits[0] !== 'number'))
+ throw new Error('radix.decode input should be array of strings');
+ return Uint8Array.from(convertRadix(digits, num, 2 ** 8));
+ },
+ };
+ }
+ function radix2(bits, revPadding = false) {
+ assertNumber(bits);
+ if (bits <= 0 || bits > 32)
+ throw new Error('radix2: bits should be in (0..32]');
+ if (radix2carry(8, bits) > 32 || radix2carry(bits, 8) > 32)
+ throw new Error('radix2: carry overflow');
+ return {
+ encode: (bytes) => {
+ if (!(bytes instanceof Uint8Array))
+ throw new Error('radix2.encode input should be Uint8Array');
+ return convertRadix2(Array.from(bytes), 8, bits, !revPadding);
+ },
+ decode: (digits) => {
+ if (!Array.isArray(digits) || (digits.length && typeof digits[0] !== 'number'))
+ throw new Error('radix2.decode input should be array of strings');
+ return Uint8Array.from(convertRadix2(digits, bits, 8, revPadding));
+ },
+ };
+ }
+ function unsafeWrapper(fn) {
+ if (typeof fn !== 'function')
+ throw new Error('unsafeWrapper fn should be function');
+ return function (...args) {
+ try {
+ return fn.apply(null, args);
+ }
+ catch (e) { }
+ };
+ }
+ function checksum(len, fn) {
+ assertNumber(len);
+ if (typeof fn !== 'function')
+ throw new Error('checksum fn should be function');
+ return {
+ encode(data) {
+ if (!(data instanceof Uint8Array))
+ throw new Error('checksum.encode: input should be Uint8Array');
+ const checksum = fn(data).slice(0, len);
+ const res = new Uint8Array(data.length + len);
+ res.set(data);
+ res.set(checksum, data.length);
+ return res;
+ },
+ decode(data) {
+ if (!(data instanceof Uint8Array))
+ throw new Error('checksum.decode: input should be Uint8Array');
+ const payload = data.slice(0, -len);
+ const newChecksum = fn(payload).slice(0, len);
+ const oldChecksum = data.slice(-len);
+ for (let i = 0; i < len; i++)
+ if (newChecksum[i] !== oldChecksum[i])
+ throw new Error('Invalid checksum');
+ return payload;
+ },
+ };
+ }
+ exports.utils = { alphabet, chain, checksum, radix, radix2, join, padding };
+ exports.base16 = chain(radix2(4), alphabet('0123456789ABCDEF'), join(''));
+ exports.base32 = chain(radix2(5), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZ234567'), padding(5), join(''));
+ exports.base32hex = chain(radix2(5), alphabet('0123456789ABCDEFGHIJKLMNOPQRSTUV'), padding(5), join(''));
+ exports.base32crockford = chain(radix2(5), alphabet('0123456789ABCDEFGHJKMNPQRSTVWXYZ'), join(''), normalize((s) => s.toUpperCase().replace(/O/g, '0').replace(/[IL]/g, '1')));
+ exports.base64 = chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'), padding(6), join(''));
+ exports.base64url = chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_'), padding(6), join(''));
+ const genBase58 = (abc) => chain(radix(58), alphabet(abc), join(''));
+ exports.base58 = genBase58('123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz');
+ exports.base58flickr = genBase58('123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ');
+ exports.base58xrp = genBase58('rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz');
+ const XMR_BLOCK_LEN = [0, 2, 3, 5, 6, 7, 9, 10, 11];
+ exports.base58xmr = {
+ encode(data) {
+ let res = '';
+ for (let i = 0; i < data.length; i += 8) {
+ const block = data.subarray(i, i + 8);
+ res += exports.base58.encode(block).padStart(XMR_BLOCK_LEN[block.length], '1');
+ }
+ return res;
+ },
+ decode(str) {
+ let res = [];
+ for (let i = 0; i < str.length; i += 11) {
+ const slice = str.slice(i, i + 11);
+ const blockLen = XMR_BLOCK_LEN.indexOf(slice.length);
+ const block = exports.base58.decode(slice);
+ for (let j = 0; j < block.length - blockLen; j++) {
+ if (block[j] !== 0)
+ throw new Error('base58xmr: wrong padding');
+ }
+ res = res.concat(Array.from(block.slice(block.length - blockLen)));
+ }
+ return Uint8Array.from(res);
+ },
+ };
+ const base58check = (sha256) => chain(checksum(4, (data) => sha256(sha256(data))), exports.base58);
+ exports.base58check = base58check;
+ const BECH_ALPHABET = chain(alphabet('qpzry9x8gf2tvdw0s3jn54khce6mua7l'), join(''));
+ const POLYMOD_GENERATORS = [0x3b6a57b2, 0x26508e6d, 0x1ea119fa, 0x3d4233dd, 0x2a1462b3];
+ function bech32Polymod(pre) {
+ const b = pre >> 25;
+ let chk = (pre & 0x1ffffff) << 5;
+ for (let i = 0; i < POLYMOD_GENERATORS.length; i++) {
+ if (((b >> i) & 1) === 1)
+ chk ^= POLYMOD_GENERATORS[i];
+ }
+ return chk;
+ }
+ function bechChecksum(prefix, words, encodingConst = 1) {
+ const len = prefix.length;
+ let chk = 1;
+ for (let i = 0; i < len; i++) {
+ const c = prefix.charCodeAt(i);
+ if (c < 33 || c > 126)
+ throw new Error(`Invalid prefix (${prefix})`);
+ chk = bech32Polymod(chk) ^ (c >> 5);
+ }
+ chk = bech32Polymod(chk);
+ for (let i = 0; i < len; i++)
+ chk = bech32Polymod(chk) ^ (prefix.charCodeAt(i) & 0x1f);
+ for (let v of words)
+ chk = bech32Polymod(chk) ^ v;
+ for (let i = 0; i < 6; i++)
+ chk = bech32Polymod(chk);
+ chk ^= encodingConst;
+ return BECH_ALPHABET.encode(convertRadix2([chk % 2 ** 30], 30, 5, false));
+ }
+ function genBech32(encoding) {
+ const ENCODING_CONST = encoding === 'bech32' ? 1 : 0x2bc830a3;
+ const _words = radix2(5);
+ const fromWords = _words.decode;
+ const toWords = _words.encode;
+ const fromWordsUnsafe = unsafeWrapper(fromWords);
+ function encode(prefix, words, limit = 90) {
+ if (typeof prefix !== 'string')
+ throw new Error(`bech32.encode prefix should be string, not ${typeof prefix}`);
+ if (!Array.isArray(words) || (words.length && typeof words[0] !== 'number'))
+ throw new Error(`bech32.encode words should be array of numbers, not ${typeof words}`);
+ const actualLength = prefix.length + 7 + words.length;
+ if (limit !== false && actualLength > limit)
+ throw new TypeError(`Length ${actualLength} exceeds limit ${limit}`);
+ prefix = prefix.toLowerCase();
+ return `${prefix}1${BECH_ALPHABET.encode(words)}${bechChecksum(prefix, words, ENCODING_CONST)}`;
+ }
+ function decode(str, limit = 90) {
+ if (typeof str !== 'string')
+ throw new Error(`bech32.decode input should be string, not ${typeof str}`);
+ if (str.length < 8 || (limit !== false && str.length > limit))
+ throw new TypeError(`Wrong string length: ${str.length} (${str}). Expected (8..${limit})`);
+ const lowered = str.toLowerCase();
+ if (str !== lowered && str !== str.toUpperCase())
+ throw new Error(`String must be lowercase or uppercase`);
+ str = lowered;
+ const sepIndex = str.lastIndexOf('1');
+ if (sepIndex === 0 || sepIndex === -1)
+ throw new Error(`Letter "1" must be present between prefix and data only`);
+ const prefix = str.slice(0, sepIndex);
+ const _words = str.slice(sepIndex + 1);
+ if (_words.length < 6)
+ throw new Error('Data must be at least 6 characters long');
+ const words = BECH_ALPHABET.decode(_words).slice(0, -6);
+ const sum = bechChecksum(prefix, words, ENCODING_CONST);
+ if (!_words.endsWith(sum))
+ throw new Error(`Invalid checksum in ${str}: expected "${sum}"`);
+ return { prefix, words };
+ }
+ const decodeUnsafe = unsafeWrapper(decode);
+ function decodeToBytes(str) {
+ const { prefix, words } = decode(str, false);
+ return { prefix, words, bytes: fromWords(words) };
+ }
+ return { encode, decode, decodeToBytes, decodeUnsafe, fromWords, fromWordsUnsafe, toWords };
+ }
+ exports.bech32 = genBech32('bech32');
+ exports.bech32m = genBech32('bech32m');
+ exports.utf8 = {
+ encode: (data) => new TextDecoder().decode(data),
+ decode: (str) => new TextEncoder().encode(str),
+ };
+ exports.hex = chain(radix2(4), alphabet('0123456789abcdef'), join(''), normalize((s) => {
+ if (typeof s !== 'string' || s.length % 2)
+ throw new TypeError(`hex.decode: expected string, got ${typeof s} with length ${s.length}`);
+ return s.toLowerCase();
+ }));
+ const CODERS = {
+ utf8: exports.utf8, hex: exports.hex, base16: exports.base16, base32: exports.base32, base64: exports.base64, base64url: exports.base64url, base58: exports.base58, base58xmr: exports.base58xmr
+ };
+ const coderTypeError = `Invalid encoding type. Available types: ${Object.keys(CODERS).join(', ')}`;
+ const bytesToString = (type, bytes) => {
+ if (typeof type !== 'string' || !CODERS.hasOwnProperty(type))
+ throw new TypeError(coderTypeError);
+ if (!(bytes instanceof Uint8Array))
+ throw new TypeError('bytesToString() expects Uint8Array');
+ return CODERS[type].encode(bytes);
+ };
+ exports.bytesToString = bytesToString;
+ exports.str = exports.bytesToString;
+ const stringToBytes = (type, str) => {
+ if (!CODERS.hasOwnProperty(type))
+ throw new TypeError(coderTypeError);
+ if (typeof str !== 'string')
+ throw new TypeError('stringToBytes() expects string');
+ return CODERS[type].decode(str);
+ };
+ exports.stringToBytes = stringToBytes;
+ exports.bytes = exports.stringToBytes;
+ } (lib));
+
+ Object.defineProperty(bip39, "__esModule", { value: true });
+ var mnemonicToSeedSync_1 = bip39.mnemonicToSeedSync = bip39.mnemonicToSeed = validateMnemonic_1 = bip39.validateMnemonic = bip39.entropyToMnemonic = bip39.mnemonicToEntropy = generateMnemonic_1 = bip39.generateMnemonic = void 0;
+ /*! scure-bip39 - MIT License (c) 2022 Patricio Palladino, Paul Miller (paulmillr.com) */
+ const _assert_1 = _assert;
+ const pbkdf2_1 = pbkdf2$1;
+ const sha256_1 = sha256$1;
+ const sha512_1 = sha512$1;
+ const utils_1 = utils;
+ const base_1 = lib;
+ // Japanese wordlist
+ const isJapanese = (wordlist) => wordlist[0] === '\u3042\u3044\u3053\u304f\u3057\u3093';
+ // Normalization replaces equivalent sequences of characters
+ // so that any two texts that are equivalent will be reduced
+ // to the same sequence of code points, called the normal form of the original text.
+ function nfkd(str) {
+ if (typeof str !== 'string')
+ throw new TypeError(`Invalid mnemonic type: ${typeof str}`);
+ return str.normalize('NFKD');
+ }
+ function normalize(str) {
+ const norm = nfkd(str);
+ const words = norm.split(' ');
+ if (![12, 15, 18, 21, 24].includes(words.length))
+ throw new Error('Invalid mnemonic');
+ return { nfkd: norm, words };
+ }
+ function assertEntropy(entropy) {
+ _assert_1.default.bytes(entropy, 16, 20, 24, 28, 32);
+ }
+ /**
+ * Generate x random words. Uses Cryptographically-Secure Random Number Generator.
+ * @param wordlist imported wordlist for specific language
+ * @param strength mnemonic strength 128-256 bits
+ * @example
+ * generateMnemonic(wordlist, 128)
+ * // 'legal winner thank year wave sausage worth useful legal winner thank yellow'
+ */
+ function generateMnemonic(wordlist, strength = 128) {
+ _assert_1.default.number(strength);
+ if (strength % 32 !== 0 || strength > 256)
+ throw new TypeError('Invalid entropy');
+ return entropyToMnemonic((0, utils_1.randomBytes)(strength / 8), wordlist);
+ }
+ var generateMnemonic_1 = bip39.generateMnemonic = generateMnemonic;
+ const calcChecksum = (entropy) => {
+ // Checksum is ent.length/4 bits long
+ const bitsLeft = 8 - entropy.length / 4;
+ // Zero rightmost "bitsLeft" bits in byte
+ // For example: bitsLeft=4 val=10111101 -> 10110000
+ return new Uint8Array([((0, sha256_1.sha256)(entropy)[0] >> bitsLeft) << bitsLeft]);
+ };
+ function getCoder(wordlist) {
+ if (!Array.isArray(wordlist) || wordlist.length !== 2048 || typeof wordlist[0] !== 'string')
+ throw new Error('Worlist: expected array of 2048 strings');
+ wordlist.forEach((i) => {
+ if (typeof i !== 'string')
+ throw new Error(`Wordlist: non-string element: ${i}`);
+ });
+ return base_1.utils.chain(base_1.utils.checksum(1, calcChecksum), base_1.utils.radix2(11, true), base_1.utils.alphabet(wordlist));
+ }
+ /**
+ * Reversible: Converts mnemonic string to raw entropy in form of byte array.
+ * @param mnemonic 12-24 words
+ * @param wordlist imported wordlist for specific language
+ * @example
+ * const mnem = 'legal winner thank year wave sausage worth useful legal winner thank yellow';
+ * mnemonicToEntropy(mnem, wordlist)
+ * // Produces
+ * new Uint8Array([
+ * 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+ * 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f
+ * ])
+ */
+ function mnemonicToEntropy(mnemonic, wordlist) {
+ const { words } = normalize(mnemonic);
+ const entropy = getCoder(wordlist).decode(words);
+ assertEntropy(entropy);
+ return entropy;
+ }
+ bip39.mnemonicToEntropy = mnemonicToEntropy;
+ /**
+ * Reversible: Converts raw entropy in form of byte array to mnemonic string.
+ * @param entropy byte array
+ * @param wordlist imported wordlist for specific language
+ * @returns 12-24 words
+ * @example
+ * const ent = new Uint8Array([
+ * 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+ * 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f
+ * ]);
+ * entropyToMnemonic(ent, wordlist);
+ * // 'legal winner thank year wave sausage worth useful legal winner thank yellow'
+ */
+ function entropyToMnemonic(entropy, wordlist) {
+ assertEntropy(entropy);
+ const words = getCoder(wordlist).encode(entropy);
+ return words.join(isJapanese(wordlist) ? '\u3000' : ' ');
+ }
+ bip39.entropyToMnemonic = entropyToMnemonic;
+ /**
+ * Validates mnemonic for being 12-24 words contained in `wordlist`.
+ */
+ function validateMnemonic(mnemonic, wordlist) {
+ try {
+ mnemonicToEntropy(mnemonic, wordlist);
+ }
+ catch (e) {
+ return false;
+ }
+ return true;
+ }
+ var validateMnemonic_1 = bip39.validateMnemonic = validateMnemonic;
+ const salt = (passphrase) => nfkd(`mnemonic${passphrase}`);
+ /**
+ * Irreversible: Uses KDF to derive 64 bytes of key data from mnemonic + optional password.
+ * @param mnemonic 12-24 words
+ * @param passphrase string that will additionally protect the key
+ * @returns 64 bytes of key data
+ * @example
+ * const mnem = 'legal winner thank year wave sausage worth useful legal winner thank yellow';
+ * await mnemonicToSeed(mnem, 'password');
+ * // new Uint8Array([...64 bytes])
+ */
+ function mnemonicToSeed(mnemonic, passphrase = '') {
+ return (0, pbkdf2_1.pbkdf2Async)(sha512_1.sha512, normalize(mnemonic).nfkd, salt(passphrase), { c: 2048, dkLen: 64 });
+ }
+ bip39.mnemonicToSeed = mnemonicToSeed;
+ /**
+ * Irreversible: Uses KDF to derive 64 bytes of key data from mnemonic + optional password.
+ * @param mnemonic 12-24 words
+ * @param passphrase string that will additionally protect the key
+ * @returns 64 bytes of key data
+ * @example
+ * const mnem = 'legal winner thank year wave sausage worth useful legal winner thank yellow';
+ * mnemonicToSeedSync(mnem, 'password');
+ * // new Uint8Array([...64 bytes])
+ */
+ function mnemonicToSeedSync(mnemonic, passphrase = '') {
+ return (0, pbkdf2_1.pbkdf2)(sha512_1.sha512, normalize(mnemonic).nfkd, salt(passphrase), { c: 2048, dkLen: 64 });
+ }
+ mnemonicToSeedSync_1 = bip39.mnemonicToSeedSync = mnemonicToSeedSync;
+
+ function number(n) {
+ if (!Number.isSafeInteger(n) || n < 0)
+ throw new Error(`Wrong positive integer: ${n}`);
+ }
+ function bool(b) {
+ if (typeof b !== 'boolean')
+ throw new Error(`Expected boolean, not ${b}`);
+ }
+ function bytes(b, ...lengths) {
+ if (!(b instanceof Uint8Array))
+ throw new TypeError('Expected Uint8Array');
+ if (lengths.length > 0 && !lengths.includes(b.length))
+ throw new TypeError(`Expected Uint8Array of length ${lengths}, not of length=${b.length}`);
+ }
+ function hash(hash) {
+ if (typeof hash !== 'function' || typeof hash.create !== 'function')
+ throw new Error('Hash should be wrapped by utils.wrapConstructor');
+ number(hash.outputLen);
+ number(hash.blockLen);
+ }
+ function exists(instance, checkFinished = true) {
+ if (instance.destroyed)
+ throw new Error('Hash instance has been destroyed');
+ if (checkFinished && instance.finished)
+ throw new Error('Hash#digest() has already been called');
+ }
+ function output(out, instance) {
+ bytes(out);
+ const min = instance.outputLen;
+ if (out.length < min) {
+ throw new Error(`digestInto() expects output buffer of length at least ${min}`);
+ }
+ }
+ const assert = {
+ number,
+ bool,
+ bytes,
+ hash,
+ exists,
+ output,
+ };
+
+ /*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */
+ // Cast array to view
+ const createView = (arr) => new DataView(arr.buffer, arr.byteOffset, arr.byteLength);
+ // The rotate right (circular right shift) operation for uint32
+ const rotr = (word, shift) => (word << (32 - shift)) | (word >>> shift);
+ const isLE = new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44;
+ // There is almost no big endian hardware, but js typed arrays uses platform specific endianness.
+ // So, just to be sure not to corrupt anything.
+ if (!isLE)
+ throw new Error('Non little-endian hardware is not supported');
+ const hexes = Array.from({ length: 256 }, (v, i) => i.toString(16).padStart(2, '0'));
+ /**
+ * @example bytesToHex(Uint8Array.from([0xde, 0xad, 0xbe, 0xef]))
+ */
+ function bytesToHex(uint8a) {
+ // pre-caching improves the speed 6x
+ if (!(uint8a instanceof Uint8Array))
+ throw new Error('Uint8Array expected');
+ let hex = '';
+ for (let i = 0; i < uint8a.length; i++) {
+ hex += hexes[uint8a[i]];
+ }
+ return hex;
+ }
+ /**
+ * @example hexToBytes('deadbeef')
+ */
+ function hexToBytes(hex) {
+ if (typeof hex !== 'string') {
+ throw new TypeError('hexToBytes: expected string, got ' + typeof hex);
+ }
+ if (hex.length % 2)
+ throw new Error('hexToBytes: received invalid unpadded hex');
+ const array = new Uint8Array(hex.length / 2);
+ for (let i = 0; i < array.length; i++) {
+ const j = i * 2;
+ const hexByte = hex.slice(j, j + 2);
+ const byte = Number.parseInt(hexByte, 16);
+ if (Number.isNaN(byte) || byte < 0)
+ throw new Error('Invalid byte sequence');
+ array[i] = byte;
+ }
+ return array;
+ }
+ function utf8ToBytes(str) {
+ if (typeof str !== 'string') {
+ throw new TypeError(`utf8ToBytes expected string, got ${typeof str}`);
+ }
+ return new TextEncoder().encode(str);
+ }
+ function toBytes(data) {
+ if (typeof data === 'string')
+ data = utf8ToBytes(data);
+ if (!(data instanceof Uint8Array))
+ throw new TypeError(`Expected input type is Uint8Array (got ${typeof data})`);
+ return data;
+ }
+ /**
+ * Concats Uint8Array-s into one; like `Buffer.concat([buf1, buf2])`
+ * @example concatBytes(buf1, buf2)
+ */
+ function concatBytes(...arrays) {
+ if (!arrays.every((a) => a instanceof Uint8Array))
+ throw new Error('Uint8Array list expected');
+ if (arrays.length === 1)
+ return arrays[0];
+ const length = arrays.reduce((a, arr) => a + arr.length, 0);
+ const result = new Uint8Array(length);
+ for (let i = 0, pad = 0; i < arrays.length; i++) {
+ const arr = arrays[i];
+ result.set(arr, pad);
+ pad += arr.length;
+ }
+ return result;
+ }
+ // For runtime check if class implements interface
+ class Hash {
+ // Safe version that clones internal state
+ clone() {
+ return this._cloneInto();
+ }
+ }
+ function wrapConstructor(hashConstructor) {
+ const hashC = (message) => hashConstructor().update(toBytes(message)).digest();
+ const tmp = hashConstructor();
+ hashC.outputLen = tmp.outputLen;
+ hashC.blockLen = tmp.blockLen;
+ hashC.create = () => hashConstructor();
+ return hashC;
+ }
+
+ // HMAC (RFC 2104)
+ let HMAC$1 = class HMAC extends Hash {
+ constructor(hash, _key) {
+ super();
+ this.finished = false;
+ this.destroyed = false;
+ assert.hash(hash);
+ const key = toBytes(_key);
+ this.iHash = hash.create();
+ if (typeof this.iHash.update !== 'function')
+ throw new TypeError('Expected instance of class which extends utils.Hash');
+ this.blockLen = this.iHash.blockLen;
+ this.outputLen = this.iHash.outputLen;
+ const blockLen = this.blockLen;
+ const pad = new Uint8Array(blockLen);
+ // blockLen can be bigger than outputLen
+ pad.set(key.length > blockLen ? hash.create().update(key).digest() : key);
+ for (let i = 0; i < pad.length; i++)
+ pad[i] ^= 0x36;
+ this.iHash.update(pad);
+ // By doing update (processing of first block) of outer hash here we can re-use it between multiple calls via clone
+ this.oHash = hash.create();
+ // Undo internal XOR && apply outer XOR
+ for (let i = 0; i < pad.length; i++)
+ pad[i] ^= 0x36 ^ 0x5c;
+ this.oHash.update(pad);
+ pad.fill(0);
+ }
+ update(buf) {
+ assert.exists(this);
+ this.iHash.update(buf);
+ return this;
+ }
+ digestInto(out) {
+ assert.exists(this);
+ assert.bytes(out, this.outputLen);
+ this.finished = true;
+ this.iHash.digestInto(out);
+ this.oHash.update(out);
+ this.oHash.digestInto(out);
+ this.destroy();
+ }
+ digest() {
+ const out = new Uint8Array(this.oHash.outputLen);
+ this.digestInto(out);
+ return out;
+ }
+ _cloneInto(to) {
+ // Create new instance without calling constructor since key already in state and we don't know it.
+ to || (to = Object.create(Object.getPrototypeOf(this), {}));
+ const { oHash, iHash, finished, destroyed, blockLen, outputLen } = this;
+ to = to;
+ to.finished = finished;
+ to.destroyed = destroyed;
+ to.blockLen = blockLen;
+ to.outputLen = outputLen;
+ to.oHash = oHash._cloneInto(to.oHash);
+ to.iHash = iHash._cloneInto(to.iHash);
+ return to;
+ }
+ destroy() {
+ this.destroyed = true;
+ this.oHash.destroy();
+ this.iHash.destroy();
+ }
+ };
+ /**
+ * HMAC: RFC2104 message authentication code.
+ * @param hash - function that would be used e.g. sha256
+ * @param key - message key
+ * @param message - message data
+ */
+ const hmac$1 = (hash, key, message) => new HMAC$1(hash, key).update(message).digest();
+ hmac$1.create = (hash, key) => new HMAC$1(hash, key);
+
+ // Polyfill for Safari 14
+ function setBigUint64(view, byteOffset, value, isLE) {
+ if (typeof view.setBigUint64 === 'function')
+ return view.setBigUint64(byteOffset, value, isLE);
+ const _32n = BigInt(32);
+ const _u32_max = BigInt(0xffffffff);
+ const wh = Number((value >> _32n) & _u32_max);
+ const wl = Number(value & _u32_max);
+ const h = isLE ? 4 : 0;
+ const l = isLE ? 0 : 4;
+ view.setUint32(byteOffset + h, wh, isLE);
+ view.setUint32(byteOffset + l, wl, isLE);
+ }
+ // Base SHA2 class (RFC 6234)
+ class SHA2 extends Hash {
+ constructor(blockLen, outputLen, padOffset, isLE) {
+ super();
+ this.blockLen = blockLen;
+ this.outputLen = outputLen;
+ this.padOffset = padOffset;
+ this.isLE = isLE;
+ this.finished = false;
+ this.length = 0;
+ this.pos = 0;
+ this.destroyed = false;
+ this.buffer = new Uint8Array(blockLen);
+ this.view = createView(this.buffer);
+ }
+ update(data) {
+ assert.exists(this);
+ const { view, buffer, blockLen } = this;
+ data = toBytes(data);
+ const len = data.length;
+ for (let pos = 0; pos < len;) {
+ const take = Math.min(blockLen - this.pos, len - pos);
+ // Fast path: we have at least one block in input, cast it to view and process
+ if (take === blockLen) {
+ const dataView = createView(data);
+ for (; blockLen <= len - pos; pos += blockLen)
+ this.process(dataView, pos);
+ continue;
+ }
+ buffer.set(data.subarray(pos, pos + take), this.pos);
+ this.pos += take;
+ pos += take;
+ if (this.pos === blockLen) {
+ this.process(view, 0);
+ this.pos = 0;
+ }
+ }
+ this.length += data.length;
+ this.roundClean();
+ return this;
+ }
+ digestInto(out) {
+ assert.exists(this);
+ assert.output(out, this);
+ this.finished = true;
+ // Padding
+ // We can avoid allocation of buffer for padding completely if it
+ // was previously not allocated here. But it won't change performance.
+ const { buffer, view, blockLen, isLE } = this;
+ let { pos } = this;
+ // append the bit '1' to the message
+ buffer[pos++] = 0b10000000;
+ this.buffer.subarray(pos).fill(0);
+ // we have less than padOffset left in buffer, so we cannot put length in current block, need process it and pad again
+ if (this.padOffset > blockLen - pos) {
+ this.process(view, 0);
+ pos = 0;
+ }
+ // Pad until full block byte with zeros
+ for (let i = pos; i < blockLen; i++)
+ buffer[i] = 0;
+ // Note: sha512 requires length to be 128bit integer, but length in JS will overflow before that
+ // You need to write around 2 exabytes (u64_max / 8 / (1024**6)) for this to happen.
+ // So we just write lowest 64 bits of that value.
+ setBigUint64(view, blockLen - 8, BigInt(this.length * 8), isLE);
+ this.process(view, 0);
+ const oview = createView(out);
+ const len = this.outputLen;
+ // NOTE: we do division by 4 later, which should be fused in single op with modulo by JIT
+ if (len % 4)
+ throw new Error('_sha2: outputLen should be aligned to 32bit');
+ const outLen = len / 4;
+ const state = this.get();
+ if (outLen > state.length)
+ throw new Error('_sha2: outputLen bigger than state');
+ for (let i = 0; i < outLen; i++)
+ oview.setUint32(4 * i, state[i], isLE);
+ }
+ digest() {
+ const { buffer, outputLen } = this;
+ this.digestInto(buffer);
+ const res = buffer.slice(0, outputLen);
+ this.destroy();
+ return res;
+ }
+ _cloneInto(to) {
+ to || (to = new this.constructor());
+ to.set(...this.get());
+ const { blockLen, buffer, length, finished, destroyed, pos } = this;
+ to.length = length;
+ to.pos = pos;
+ to.finished = finished;
+ to.destroyed = destroyed;
+ if (length % blockLen)
+ to.buffer.set(buffer);
+ return to;
+ }
+ }
+
+ // https://homes.esat.kuleuven.be/~bosselae/ripemd160.html
+ // https://homes.esat.kuleuven.be/~bosselae/ripemd160/pdf/AB-9601/AB-9601.pdf
+ const Rho = new Uint8Array([7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8]);
+ const Id = Uint8Array.from({ length: 16 }, (_, i) => i);
+ const Pi = Id.map((i) => (9 * i + 5) % 16);
+ let idxL = [Id];
+ let idxR = [Pi];
+ for (let i = 0; i < 4; i++)
+ for (let j of [idxL, idxR])
+ j.push(j[i].map((k) => Rho[k]));
+ const shifts = [
+ [11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8],
+ [12, 13, 11, 15, 6, 9, 9, 7, 12, 15, 11, 13, 7, 8, 7, 7],
+ [13, 15, 14, 11, 7, 7, 6, 8, 13, 14, 13, 12, 5, 5, 6, 9],
+ [14, 11, 12, 14, 8, 6, 5, 5, 15, 12, 15, 14, 9, 9, 8, 6],
+ [15, 12, 13, 13, 9, 5, 8, 6, 14, 11, 12, 11, 8, 6, 5, 5],
+ ].map((i) => new Uint8Array(i));
+ const shiftsL = idxL.map((idx, i) => idx.map((j) => shifts[i][j]));
+ const shiftsR = idxR.map((idx, i) => idx.map((j) => shifts[i][j]));
+ const Kl = new Uint32Array([0x00000000, 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xa953fd4e]);
+ const Kr = new Uint32Array([0x50a28be6, 0x5c4dd124, 0x6d703ef3, 0x7a6d76e9, 0x00000000]);
+ // The rotate left (circular left shift) operation for uint32
+ const rotl = (word, shift) => (word << shift) | (word >>> (32 - shift));
+ // It's called f() in spec.
+ function f(group, x, y, z) {
+ if (group === 0)
+ return x ^ y ^ z;
+ else if (group === 1)
+ return (x & y) | (~x & z);
+ else if (group === 2)
+ return (x | ~y) ^ z;
+ else if (group === 3)
+ return (x & z) | (y & ~z);
+ else
+ return x ^ (y | ~z);
+ }
+ // Temporary buffer, not used to store anything between runs
+ const BUF = new Uint32Array(16);
+ class RIPEMD160 extends SHA2 {
+ constructor() {
+ super(64, 20, 8, true);
+ this.h0 = 0x67452301 | 0;
+ this.h1 = 0xefcdab89 | 0;
+ this.h2 = 0x98badcfe | 0;
+ this.h3 = 0x10325476 | 0;
+ this.h4 = 0xc3d2e1f0 | 0;
+ }
+ get() {
+ const { h0, h1, h2, h3, h4 } = this;
+ return [h0, h1, h2, h3, h4];
+ }
+ set(h0, h1, h2, h3, h4) {
+ this.h0 = h0 | 0;
+ this.h1 = h1 | 0;
+ this.h2 = h2 | 0;
+ this.h3 = h3 | 0;
+ this.h4 = h4 | 0;
+ }
+ process(view, offset) {
+ for (let i = 0; i < 16; i++, offset += 4)
+ BUF[i] = view.getUint32(offset, true);
+ // prettier-ignore
+ let al = this.h0 | 0, ar = al, bl = this.h1 | 0, br = bl, cl = this.h2 | 0, cr = cl, dl = this.h3 | 0, dr = dl, el = this.h4 | 0, er = el;
+ // Instead of iterating 0 to 80, we split it into 5 groups
+ // And use the groups in constants, functions, etc. Much simpler
+ for (let group = 0; group < 5; group++) {
+ const rGroup = 4 - group;
+ const hbl = Kl[group], hbr = Kr[group]; // prettier-ignore
+ const rl = idxL[group], rr = idxR[group]; // prettier-ignore
+ const sl = shiftsL[group], sr = shiftsR[group]; // prettier-ignore
+ for (let i = 0; i < 16; i++) {
+ const tl = (rotl(al + f(group, bl, cl, dl) + BUF[rl[i]] + hbl, sl[i]) + el) | 0;
+ al = el, el = dl, dl = rotl(cl, 10) | 0, cl = bl, bl = tl; // prettier-ignore
+ }
+ // 2 loops are 10% faster
+ for (let i = 0; i < 16; i++) {
+ const tr = (rotl(ar + f(rGroup, br, cr, dr) + BUF[rr[i]] + hbr, sr[i]) + er) | 0;
+ ar = er, er = dr, dr = rotl(cr, 10) | 0, cr = br, br = tr; // prettier-ignore
+ }
+ }
+ // Add the compressed chunk to the current hash value
+ this.set((this.h1 + cl + dr) | 0, (this.h2 + dl + er) | 0, (this.h3 + el + ar) | 0, (this.h4 + al + br) | 0, (this.h0 + bl + cr) | 0);
+ }
+ roundClean() {
+ BUF.fill(0);
+ }
+ destroy() {
+ this.destroyed = true;
+ this.buffer.fill(0);
+ this.set(0, 0, 0, 0, 0);
+ }
+ }
+ /**
+ * RIPEMD-160 - a hash function from 1990s.
+ * @param message - msg that would be hashed
+ */
+ const ripemd160 = wrapConstructor(() => new RIPEMD160());
+
+ // Choice: a ? b : c
+ const Chi = (a, b, c) => (a & b) ^ (~a & c);
+ // Majority function, true if any two inpust is true
+ const Maj = (a, b, c) => (a & b) ^ (a & c) ^ (b & c);
+ // Round constants:
+ // first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311)
+ // prettier-ignore
+ const SHA256_K = new Uint32Array([
+ 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,
+ 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,
+ 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
+ 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,
+ 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,
+ 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
+ 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,
+ 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2
+ ]);
+ // Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):
+ // prettier-ignore
+ const IV = new Uint32Array([
+ 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19
+ ]);
+ // Temporary buffer, not used to store anything between runs
+ // Named this way because it matches specification.
+ const SHA256_W = new Uint32Array(64);
+ class SHA256 extends SHA2 {
+ constructor() {
+ super(64, 32, 8, false);
+ // We cannot use array here since array allows indexing by variable
+ // which means optimizer/compiler cannot use registers.
+ this.A = IV[0] | 0;
+ this.B = IV[1] | 0;
+ this.C = IV[2] | 0;
+ this.D = IV[3] | 0;
+ this.E = IV[4] | 0;
+ this.F = IV[5] | 0;
+ this.G = IV[6] | 0;
+ this.H = IV[7] | 0;
+ }
+ get() {
+ const { A, B, C, D, E, F, G, H } = this;
+ return [A, B, C, D, E, F, G, H];
+ }
+ // prettier-ignore
+ set(A, B, C, D, E, F, G, H) {
+ this.A = A | 0;
+ this.B = B | 0;
+ this.C = C | 0;
+ this.D = D | 0;
+ this.E = E | 0;
+ this.F = F | 0;
+ this.G = G | 0;
+ this.H = H | 0;
+ }
+ process(view, offset) {
+ // Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array
+ for (let i = 0; i < 16; i++, offset += 4)
+ SHA256_W[i] = view.getUint32(offset, false);
+ for (let i = 16; i < 64; i++) {
+ const W15 = SHA256_W[i - 15];
+ const W2 = SHA256_W[i - 2];
+ const s0 = rotr(W15, 7) ^ rotr(W15, 18) ^ (W15 >>> 3);
+ const s1 = rotr(W2, 17) ^ rotr(W2, 19) ^ (W2 >>> 10);
+ SHA256_W[i] = (s1 + SHA256_W[i - 7] + s0 + SHA256_W[i - 16]) | 0;
+ }
+ // Compression function main loop, 64 rounds
+ let { A, B, C, D, E, F, G, H } = this;
+ for (let i = 0; i < 64; i++) {
+ const sigma1 = rotr(E, 6) ^ rotr(E, 11) ^ rotr(E, 25);
+ const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;
+ const sigma0 = rotr(A, 2) ^ rotr(A, 13) ^ rotr(A, 22);
+ const T2 = (sigma0 + Maj(A, B, C)) | 0;
+ H = G;
+ G = F;
+ F = E;
+ E = (D + T1) | 0;
+ D = C;
+ C = B;
+ B = A;
+ A = (T1 + T2) | 0;
+ }
+ // Add the compressed chunk to the current hash value
+ A = (A + this.A) | 0;
+ B = (B + this.B) | 0;
+ C = (C + this.C) | 0;
+ D = (D + this.D) | 0;
+ E = (E + this.E) | 0;
+ F = (F + this.F) | 0;
+ G = (G + this.G) | 0;
+ H = (H + this.H) | 0;
+ this.set(A, B, C, D, E, F, G, H);
+ }
+ roundClean() {
+ SHA256_W.fill(0);
+ }
+ destroy() {
+ this.set(0, 0, 0, 0, 0, 0, 0, 0);
+ this.buffer.fill(0);
+ }
+ }
+ // Constants from https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf
+ class SHA224 extends SHA256 {
+ constructor() {
+ super();
+ this.A = 0xc1059ed8 | 0;
+ this.B = 0x367cd507 | 0;
+ this.C = 0x3070dd17 | 0;
+ this.D = 0xf70e5939 | 0;
+ this.E = 0xffc00b31 | 0;
+ this.F = 0x68581511 | 0;
+ this.G = 0x64f98fa7 | 0;
+ this.H = 0xbefa4fa4 | 0;
+ this.outputLen = 28;
+ }
+ }
+ /**
+ * SHA2-256 hash function
+ * @param message - data that would be hashed
+ */
+ const sha256 = wrapConstructor(() => new SHA256());
+ wrapConstructor(() => new SHA224());
+
+ const U32_MASK64 = BigInt(2 ** 32 - 1);
+ const _32n = BigInt(32);
+ // We are not using BigUint64Array, because they are extremely slow as per 2022
+ function fromBig(n, le = false) {
+ if (le)
+ return { h: Number(n & U32_MASK64), l: Number((n >> _32n) & U32_MASK64) };
+ return { h: Number((n >> _32n) & U32_MASK64) | 0, l: Number(n & U32_MASK64) | 0 };
+ }
+ function split(lst, le = false) {
+ let Ah = new Uint32Array(lst.length);
+ let Al = new Uint32Array(lst.length);
+ for (let i = 0; i < lst.length; i++) {
+ const { h, l } = fromBig(lst[i], le);
+ [Ah[i], Al[i]] = [h, l];
+ }
+ return [Ah, Al];
+ }
+ const toBig = (h, l) => (BigInt(h >>> 0) << _32n) | BigInt(l >>> 0);
+ // for Shift in [0, 32)
+ const shrSH = (h, l, s) => h >>> s;
+ const shrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);
+ // Right rotate for Shift in [1, 32)
+ const rotrSH = (h, l, s) => (h >>> s) | (l << (32 - s));
+ const rotrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);
+ // Right rotate for Shift in (32, 64), NOTE: 32 is special case.
+ const rotrBH = (h, l, s) => (h << (64 - s)) | (l >>> (s - 32));
+ const rotrBL = (h, l, s) => (h >>> (s - 32)) | (l << (64 - s));
+ // Right rotate for shift===32 (just swaps l&h)
+ const rotr32H = (h, l) => l;
+ const rotr32L = (h, l) => h;
+ // Left rotate for Shift in [1, 32)
+ const rotlSH = (h, l, s) => (h << s) | (l >>> (32 - s));
+ const rotlSL = (h, l, s) => (l << s) | (h >>> (32 - s));
+ // Left rotate for Shift in (32, 64), NOTE: 32 is special case.
+ const rotlBH = (h, l, s) => (l << (s - 32)) | (h >>> (64 - s));
+ const rotlBL = (h, l, s) => (h << (s - 32)) | (l >>> (64 - s));
+ // JS uses 32-bit signed integers for bitwise operations which means we cannot
+ // simple take carry out of low bit sum by shift, we need to use division.
+ // Removing "export" has 5% perf penalty -_-
+ function add(Ah, Al, Bh, Bl) {
+ const l = (Al >>> 0) + (Bl >>> 0);
+ return { h: (Ah + Bh + ((l / 2 ** 32) | 0)) | 0, l: l | 0 };
+ }
+ // Addition with more than 2 elements
+ const add3L = (Al, Bl, Cl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0);
+ const add3H = (low, Ah, Bh, Ch) => (Ah + Bh + Ch + ((low / 2 ** 32) | 0)) | 0;
+ const add4L = (Al, Bl, Cl, Dl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0);
+ const add4H = (low, Ah, Bh, Ch, Dh) => (Ah + Bh + Ch + Dh + ((low / 2 ** 32) | 0)) | 0;
+ const add5L = (Al, Bl, Cl, Dl, El) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0) + (El >>> 0);
+ const add5H = (low, Ah, Bh, Ch, Dh, Eh) => (Ah + Bh + Ch + Dh + Eh + ((low / 2 ** 32) | 0)) | 0;
+ // prettier-ignore
+ const u64 = {
+ fromBig, split, toBig,
+ shrSH, shrSL,
+ rotrSH, rotrSL, rotrBH, rotrBL,
+ rotr32H, rotr32L,
+ rotlSH, rotlSL, rotlBH, rotlBL,
+ add, add3L, add3H, add4L, add4H, add5H, add5L,
+ };
+
+ // Round contants (first 32 bits of the fractional parts of the cube roots of the first 80 primes 2..409):
+ // prettier-ignore
+ const [SHA512_Kh, SHA512_Kl] = u64.split([
+ '0x428a2f98d728ae22', '0x7137449123ef65cd', '0xb5c0fbcfec4d3b2f', '0xe9b5dba58189dbbc',
+ '0x3956c25bf348b538', '0x59f111f1b605d019', '0x923f82a4af194f9b', '0xab1c5ed5da6d8118',
+ '0xd807aa98a3030242', '0x12835b0145706fbe', '0x243185be4ee4b28c', '0x550c7dc3d5ffb4e2',
+ '0x72be5d74f27b896f', '0x80deb1fe3b1696b1', '0x9bdc06a725c71235', '0xc19bf174cf692694',
+ '0xe49b69c19ef14ad2', '0xefbe4786384f25e3', '0x0fc19dc68b8cd5b5', '0x240ca1cc77ac9c65',
+ '0x2de92c6f592b0275', '0x4a7484aa6ea6e483', '0x5cb0a9dcbd41fbd4', '0x76f988da831153b5',
+ '0x983e5152ee66dfab', '0xa831c66d2db43210', '0xb00327c898fb213f', '0xbf597fc7beef0ee4',
+ '0xc6e00bf33da88fc2', '0xd5a79147930aa725', '0x06ca6351e003826f', '0x142929670a0e6e70',
+ '0x27b70a8546d22ffc', '0x2e1b21385c26c926', '0x4d2c6dfc5ac42aed', '0x53380d139d95b3df',
+ '0x650a73548baf63de', '0x766a0abb3c77b2a8', '0x81c2c92e47edaee6', '0x92722c851482353b',
+ '0xa2bfe8a14cf10364', '0xa81a664bbc423001', '0xc24b8b70d0f89791', '0xc76c51a30654be30',
+ '0xd192e819d6ef5218', '0xd69906245565a910', '0xf40e35855771202a', '0x106aa07032bbd1b8',
+ '0x19a4c116b8d2d0c8', '0x1e376c085141ab53', '0x2748774cdf8eeb99', '0x34b0bcb5e19b48a8',
+ '0x391c0cb3c5c95a63', '0x4ed8aa4ae3418acb', '0x5b9cca4f7763e373', '0x682e6ff3d6b2b8a3',
+ '0x748f82ee5defb2fc', '0x78a5636f43172f60', '0x84c87814a1f0ab72', '0x8cc702081a6439ec',
+ '0x90befffa23631e28', '0xa4506cebde82bde9', '0xbef9a3f7b2c67915', '0xc67178f2e372532b',
+ '0xca273eceea26619c', '0xd186b8c721c0c207', '0xeada7dd6cde0eb1e', '0xf57d4f7fee6ed178',
+ '0x06f067aa72176fba', '0x0a637dc5a2c898a6', '0x113f9804bef90dae', '0x1b710b35131c471b',
+ '0x28db77f523047d84', '0x32caab7b40c72493', '0x3c9ebe0a15c9bebc', '0x431d67c49c100d4c',
+ '0x4cc5d4becb3e42b6', '0x597f299cfc657e2a', '0x5fcb6fab3ad6faec', '0x6c44198c4a475817'
+ ].map(n => BigInt(n)));
+ // Temporary buffer, not used to store anything between runs
+ const SHA512_W_H = new Uint32Array(80);
+ const SHA512_W_L = new Uint32Array(80);
+ class SHA512 extends SHA2 {
+ constructor() {
+ super(128, 64, 16, false);
+ // We cannot use array here since array allows indexing by variable which means optimizer/compiler cannot use registers.
+ // Also looks cleaner and easier to verify with spec.
+ // Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):
+ // h -- high 32 bits, l -- low 32 bits
+ this.Ah = 0x6a09e667 | 0;
+ this.Al = 0xf3bcc908 | 0;
+ this.Bh = 0xbb67ae85 | 0;
+ this.Bl = 0x84caa73b | 0;
+ this.Ch = 0x3c6ef372 | 0;
+ this.Cl = 0xfe94f82b | 0;
+ this.Dh = 0xa54ff53a | 0;
+ this.Dl = 0x5f1d36f1 | 0;
+ this.Eh = 0x510e527f | 0;
+ this.El = 0xade682d1 | 0;
+ this.Fh = 0x9b05688c | 0;
+ this.Fl = 0x2b3e6c1f | 0;
+ this.Gh = 0x1f83d9ab | 0;
+ this.Gl = 0xfb41bd6b | 0;
+ this.Hh = 0x5be0cd19 | 0;
+ this.Hl = 0x137e2179 | 0;
+ }
+ // prettier-ignore
+ get() {
+ const { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;
+ return [Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl];
+ }
+ // prettier-ignore
+ set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl) {
+ this.Ah = Ah | 0;
+ this.Al = Al | 0;
+ this.Bh = Bh | 0;
+ this.Bl = Bl | 0;
+ this.Ch = Ch | 0;
+ this.Cl = Cl | 0;
+ this.Dh = Dh | 0;
+ this.Dl = Dl | 0;
+ this.Eh = Eh | 0;
+ this.El = El | 0;
+ this.Fh = Fh | 0;
+ this.Fl = Fl | 0;
+ this.Gh = Gh | 0;
+ this.Gl = Gl | 0;
+ this.Hh = Hh | 0;
+ this.Hl = Hl | 0;
+ }
+ process(view, offset) {
+ // Extend the first 16 words into the remaining 64 words w[16..79] of the message schedule array
+ for (let i = 0; i < 16; i++, offset += 4) {
+ SHA512_W_H[i] = view.getUint32(offset);
+ SHA512_W_L[i] = view.getUint32((offset += 4));
+ }
+ for (let i = 16; i < 80; i++) {
+ // s0 := (w[i-15] rightrotate 1) xor (w[i-15] rightrotate 8) xor (w[i-15] rightshift 7)
+ const W15h = SHA512_W_H[i - 15] | 0;
+ const W15l = SHA512_W_L[i - 15] | 0;
+ const s0h = u64.rotrSH(W15h, W15l, 1) ^ u64.rotrSH(W15h, W15l, 8) ^ u64.shrSH(W15h, W15l, 7);
+ const s0l = u64.rotrSL(W15h, W15l, 1) ^ u64.rotrSL(W15h, W15l, 8) ^ u64.shrSL(W15h, W15l, 7);
+ // s1 := (w[i-2] rightrotate 19) xor (w[i-2] rightrotate 61) xor (w[i-2] rightshift 6)
+ const W2h = SHA512_W_H[i - 2] | 0;
+ const W2l = SHA512_W_L[i - 2] | 0;
+ const s1h = u64.rotrSH(W2h, W2l, 19) ^ u64.rotrBH(W2h, W2l, 61) ^ u64.shrSH(W2h, W2l, 6);
+ const s1l = u64.rotrSL(W2h, W2l, 19) ^ u64.rotrBL(W2h, W2l, 61) ^ u64.shrSL(W2h, W2l, 6);
+ // SHA256_W[i] = s0 + s1 + SHA256_W[i - 7] + SHA256_W[i - 16];
+ const SUMl = u64.add4L(s0l, s1l, SHA512_W_L[i - 7], SHA512_W_L[i - 16]);
+ const SUMh = u64.add4H(SUMl, s0h, s1h, SHA512_W_H[i - 7], SHA512_W_H[i - 16]);
+ SHA512_W_H[i] = SUMh | 0;
+ SHA512_W_L[i] = SUMl | 0;
+ }
+ let { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;
+ // Compression function main loop, 80 rounds
+ for (let i = 0; i < 80; i++) {
+ // S1 := (e rightrotate 14) xor (e rightrotate 18) xor (e rightrotate 41)
+ const sigma1h = u64.rotrSH(Eh, El, 14) ^ u64.rotrSH(Eh, El, 18) ^ u64.rotrBH(Eh, El, 41);
+ const sigma1l = u64.rotrSL(Eh, El, 14) ^ u64.rotrSL(Eh, El, 18) ^ u64.rotrBL(Eh, El, 41);
+ //const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;
+ const CHIh = (Eh & Fh) ^ (~Eh & Gh);
+ const CHIl = (El & Fl) ^ (~El & Gl);
+ // T1 = H + sigma1 + Chi(E, F, G) + SHA512_K[i] + SHA512_W[i]
+ // prettier-ignore
+ const T1ll = u64.add5L(Hl, sigma1l, CHIl, SHA512_Kl[i], SHA512_W_L[i]);
+ const T1h = u64.add5H(T1ll, Hh, sigma1h, CHIh, SHA512_Kh[i], SHA512_W_H[i]);
+ const T1l = T1ll | 0;
+ // S0 := (a rightrotate 28) xor (a rightrotate 34) xor (a rightrotate 39)
+ const sigma0h = u64.rotrSH(Ah, Al, 28) ^ u64.rotrBH(Ah, Al, 34) ^ u64.rotrBH(Ah, Al, 39);
+ const sigma0l = u64.rotrSL(Ah, Al, 28) ^ u64.rotrBL(Ah, Al, 34) ^ u64.rotrBL(Ah, Al, 39);
+ const MAJh = (Ah & Bh) ^ (Ah & Ch) ^ (Bh & Ch);
+ const MAJl = (Al & Bl) ^ (Al & Cl) ^ (Bl & Cl);
+ Hh = Gh | 0;
+ Hl = Gl | 0;
+ Gh = Fh | 0;
+ Gl = Fl | 0;
+ Fh = Eh | 0;
+ Fl = El | 0;
+ ({ h: Eh, l: El } = u64.add(Dh | 0, Dl | 0, T1h | 0, T1l | 0));
+ Dh = Ch | 0;
+ Dl = Cl | 0;
+ Ch = Bh | 0;
+ Cl = Bl | 0;
+ Bh = Ah | 0;
+ Bl = Al | 0;
+ const All = u64.add3L(T1l, sigma0l, MAJl);
+ Ah = u64.add3H(All, T1h, sigma0h, MAJh);
+ Al = All | 0;
+ }
+ // Add the compressed chunk to the current hash value
+ ({ h: Ah, l: Al } = u64.add(this.Ah | 0, this.Al | 0, Ah | 0, Al | 0));
+ ({ h: Bh, l: Bl } = u64.add(this.Bh | 0, this.Bl | 0, Bh | 0, Bl | 0));
+ ({ h: Ch, l: Cl } = u64.add(this.Ch | 0, this.Cl | 0, Ch | 0, Cl | 0));
+ ({ h: Dh, l: Dl } = u64.add(this.Dh | 0, this.Dl | 0, Dh | 0, Dl | 0));
+ ({ h: Eh, l: El } = u64.add(this.Eh | 0, this.El | 0, Eh | 0, El | 0));
+ ({ h: Fh, l: Fl } = u64.add(this.Fh | 0, this.Fl | 0, Fh | 0, Fl | 0));
+ ({ h: Gh, l: Gl } = u64.add(this.Gh | 0, this.Gl | 0, Gh | 0, Gl | 0));
+ ({ h: Hh, l: Hl } = u64.add(this.Hh | 0, this.Hl | 0, Hh | 0, Hl | 0));
+ this.set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl);
+ }
+ roundClean() {
+ SHA512_W_H.fill(0);
+ SHA512_W_L.fill(0);
+ }
+ destroy() {
+ this.buffer.fill(0);
+ this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ }
+ }
+ class SHA512_224 extends SHA512 {
+ constructor() {
+ super();
+ // h -- high 32 bits, l -- low 32 bits
+ this.Ah = 0x8c3d37c8 | 0;
+ this.Al = 0x19544da2 | 0;
+ this.Bh = 0x73e19966 | 0;
+ this.Bl = 0x89dcd4d6 | 0;
+ this.Ch = 0x1dfab7ae | 0;
+ this.Cl = 0x32ff9c82 | 0;
+ this.Dh = 0x679dd514 | 0;
+ this.Dl = 0x582f9fcf | 0;
+ this.Eh = 0x0f6d2b69 | 0;
+ this.El = 0x7bd44da8 | 0;
+ this.Fh = 0x77e36f73 | 0;
+ this.Fl = 0x04c48942 | 0;
+ this.Gh = 0x3f9d85a8 | 0;
+ this.Gl = 0x6a1d36c8 | 0;
+ this.Hh = 0x1112e6ad | 0;
+ this.Hl = 0x91d692a1 | 0;
+ this.outputLen = 28;
+ }
+ }
+ class SHA512_256 extends SHA512 {
+ constructor() {
+ super();
+ // h -- high 32 bits, l -- low 32 bits
+ this.Ah = 0x22312194 | 0;
+ this.Al = 0xfc2bf72c | 0;
+ this.Bh = 0x9f555fa3 | 0;
+ this.Bl = 0xc84c64c2 | 0;
+ this.Ch = 0x2393b86b | 0;
+ this.Cl = 0x6f53b151 | 0;
+ this.Dh = 0x96387719 | 0;
+ this.Dl = 0x5940eabd | 0;
+ this.Eh = 0x96283ee2 | 0;
+ this.El = 0xa88effe3 | 0;
+ this.Fh = 0xbe5e1e25 | 0;
+ this.Fl = 0x53863992 | 0;
+ this.Gh = 0x2b0199fc | 0;
+ this.Gl = 0x2c85b8aa | 0;
+ this.Hh = 0x0eb72ddc | 0;
+ this.Hl = 0x81c52ca2 | 0;
+ this.outputLen = 32;
+ }
+ }
+ class SHA384 extends SHA512 {
+ constructor() {
+ super();
+ // h -- high 32 bits, l -- low 32 bits
+ this.Ah = 0xcbbb9d5d | 0;
+ this.Al = 0xc1059ed8 | 0;
+ this.Bh = 0x629a292a | 0;
+ this.Bl = 0x367cd507 | 0;
+ this.Ch = 0x9159015a | 0;
+ this.Cl = 0x3070dd17 | 0;
+ this.Dh = 0x152fecd8 | 0;
+ this.Dl = 0xf70e5939 | 0;
+ this.Eh = 0x67332667 | 0;
+ this.El = 0xffc00b31 | 0;
+ this.Fh = 0x8eb44a87 | 0;
+ this.Fl = 0x68581511 | 0;
+ this.Gh = 0xdb0c2e0d | 0;
+ this.Gl = 0x64f98fa7 | 0;
+ this.Hh = 0x47b5481d | 0;
+ this.Hl = 0xbefa4fa4 | 0;
+ this.outputLen = 48;
+ }
+ }
+ const sha512 = wrapConstructor(() => new SHA512());
+ wrapConstructor(() => new SHA512_224());
+ wrapConstructor(() => new SHA512_256());
+ wrapConstructor(() => new SHA384());
+
+ utils$1.hmacSha256Sync = (key, ...msgs) => hmac$1(sha256, key, utils$1.concatBytes(...msgs));
+ const base58check = base58check$1(sha256);
+ function bytesToNumber(bytes) {
+ return BigInt(`0x${bytesToHex(bytes)}`);
+ }
+ function numberToBytes(num) {
+ return hexToBytes(num.toString(16).padStart(64, '0'));
+ }
+ const MASTER_SECRET = utf8ToBytes('Bitcoin seed');
+ const BITCOIN_VERSIONS = { private: 0x0488ade4, public: 0x0488b21e };
+ const HARDENED_OFFSET = 0x80000000;
+ const hash160 = (data) => ripemd160(sha256(data));
+ const fromU32 = (data) => createView(data).getUint32(0, false);
+ const toU32 = (n) => {
+ if (!Number.isSafeInteger(n) || n < 0 || n > 2 ** 32 - 1) {
+ throw new Error(`Invalid number=${n}. Should be from 0 to 2 ** 32 - 1`);
+ }
+ const buf = new Uint8Array(4);
+ createView(buf).setUint32(0, n, false);
+ return buf;
+ };
+ class HDKey {
+ constructor(opt) {
+ this.depth = 0;
+ this.index = 0;
+ this.chainCode = null;
+ this.parentFingerprint = 0;
+ if (!opt || typeof opt !== 'object') {
+ throw new Error('HDKey.constructor must not be called directly');
+ }
+ this.versions = opt.versions || BITCOIN_VERSIONS;
+ this.depth = opt.depth || 0;
+ this.chainCode = opt.chainCode;
+ this.index = opt.index || 0;
+ this.parentFingerprint = opt.parentFingerprint || 0;
+ if (!this.depth) {
+ if (this.parentFingerprint || this.index) {
+ throw new Error('HDKey: zero depth with non-zero index/parent fingerprint');
+ }
+ }
+ if (opt.publicKey && opt.privateKey) {
+ throw new Error('HDKey: publicKey and privateKey at same time.');
+ }
+ if (opt.privateKey) {
+ if (!utils$1.isValidPrivateKey(opt.privateKey)) {
+ throw new Error('Invalid private key');
+ }
+ this.privKey =
+ typeof opt.privateKey === 'bigint' ? opt.privateKey : bytesToNumber(opt.privateKey);
+ this.privKeyBytes = numberToBytes(this.privKey);
+ this.pubKey = getPublicKey$1(opt.privateKey, true);
+ }
+ else if (opt.publicKey) {
+ this.pubKey = Point.fromHex(opt.publicKey).toRawBytes(true);
+ }
+ else {
+ throw new Error('HDKey: no public or private key provided');
+ }
+ this.pubHash = hash160(this.pubKey);
+ }
+ get fingerprint() {
+ if (!this.pubHash) {
+ throw new Error('No publicKey set!');
+ }
+ return fromU32(this.pubHash);
+ }
+ get identifier() {
+ return this.pubHash;
+ }
+ get pubKeyHash() {
+ return this.pubHash;
+ }
+ get privateKey() {
+ return this.privKeyBytes || null;
+ }
+ get publicKey() {
+ return this.pubKey || null;
+ }
+ get privateExtendedKey() {
+ const priv = this.privateKey;
+ if (!priv) {
+ throw new Error('No private key');
+ }
+ return base58check.encode(this.serialize(this.versions.private, concatBytes(new Uint8Array([0]), priv)));
+ }
+ get publicExtendedKey() {
+ if (!this.pubKey) {
+ throw new Error('No public key');
+ }
+ return base58check.encode(this.serialize(this.versions.public, this.pubKey));
+ }
+ static fromMasterSeed(seed, versions = BITCOIN_VERSIONS) {
+ bytes(seed);
+ if (8 * seed.length < 128 || 8 * seed.length > 512) {
+ throw new Error(`HDKey: wrong seed length=${seed.length}. Should be between 128 and 512 bits; 256 bits is advised)`);
+ }
+ const I = hmac$1(sha512, MASTER_SECRET, seed);
+ return new HDKey({
+ versions,
+ chainCode: I.slice(32),
+ privateKey: I.slice(0, 32),
+ });
+ }
+ static fromExtendedKey(base58key, versions = BITCOIN_VERSIONS) {
+ const keyBuffer = base58check.decode(base58key);
+ const keyView = createView(keyBuffer);
+ const version = keyView.getUint32(0, false);
+ const opt = {
+ versions,
+ depth: keyBuffer[4],
+ parentFingerprint: keyView.getUint32(5, false),
+ index: keyView.getUint32(9, false),
+ chainCode: keyBuffer.slice(13, 45),
+ };
+ const key = keyBuffer.slice(45);
+ const isPriv = key[0] === 0;
+ if (version !== versions[isPriv ? 'private' : 'public']) {
+ throw new Error('Version mismatch');
+ }
+ if (isPriv) {
+ return new HDKey({ ...opt, privateKey: key.slice(1) });
+ }
+ else {
+ return new HDKey({ ...opt, publicKey: key });
+ }
+ }
+ static fromJSON(json) {
+ return HDKey.fromExtendedKey(json.xpriv);
+ }
+ derive(path) {
+ if (!/^[mM]'?/.test(path)) {
+ throw new Error('Path must start with "m" or "M"');
+ }
+ if (/^[mM]'?$/.test(path)) {
+ return this;
+ }
+ const parts = path.replace(/^[mM]'?\//, '').split('/');
+ let child = this;
+ for (const c of parts) {
+ const m = /^(\d+)('?)$/.exec(c);
+ if (!m || m.length !== 3) {
+ throw new Error(`Invalid child index: ${c}`);
+ }
+ let idx = +m[1];
+ if (!Number.isSafeInteger(idx) || idx >= HARDENED_OFFSET) {
+ throw new Error('Invalid index');
+ }
+ if (m[2] === "'") {
+ idx += HARDENED_OFFSET;
+ }
+ child = child.deriveChild(idx);
+ }
+ return child;
+ }
+ deriveChild(index) {
+ if (!this.pubKey || !this.chainCode) {
+ throw new Error('No publicKey or chainCode set');
+ }
+ let data = toU32(index);
+ if (index >= HARDENED_OFFSET) {
+ const priv = this.privateKey;
+ if (!priv) {
+ throw new Error('Could not derive hardened child key');
+ }
+ data = concatBytes(new Uint8Array([0]), priv, data);
+ }
+ else {
+ data = concatBytes(this.pubKey, data);
+ }
+ const I = hmac$1(sha512, this.chainCode, data);
+ const childTweak = bytesToNumber(I.slice(0, 32));
+ const chainCode = I.slice(32);
+ if (!utils$1.isValidPrivateKey(childTweak)) {
+ throw new Error('Tweak bigger than curve order');
+ }
+ const opt = {
+ versions: this.versions,
+ chainCode,
+ depth: this.depth + 1,
+ parentFingerprint: this.fingerprint,
+ index,
+ };
+ try {
+ if (this.privateKey) {
+ const added = utils$1.mod(this.privKey + childTweak, CURVE.n);
+ if (!utils$1.isValidPrivateKey(added)) {
+ throw new Error('The tweak was out of range or the resulted private key is invalid');
+ }
+ opt.privateKey = added;
+ }
+ else {
+ const added = Point.fromHex(this.pubKey).add(Point.fromPrivateKey(childTweak));
+ if (added.equals(Point.ZERO)) {
+ throw new Error('The tweak was equal to negative P, which made the result key invalid');
+ }
+ opt.publicKey = added.toRawBytes(true);
+ }
+ return new HDKey(opt);
+ }
+ catch (err) {
+ return this.deriveChild(index + 1);
+ }
+ }
+ sign(hash) {
+ if (!this.privateKey) {
+ throw new Error('No privateKey set!');
+ }
+ bytes(hash, 32);
+ return signSync(hash, this.privKey, {
+ canonical: true,
+ der: false,
+ });
+ }
+ verify(hash, signature) {
+ bytes(hash, 32);
+ bytes(signature, 64);
+ if (!this.publicKey) {
+ throw new Error('No publicKey set!');
+ }
+ let sig;
+ try {
+ sig = Signature.fromCompact(signature);
+ }
+ catch (error) {
+ return false;
+ }
+ return verify(sig, hash, this.publicKey);
+ }
+ wipePrivateData() {
+ this.privKey = undefined;
+ if (this.privKeyBytes) {
+ this.privKeyBytes.fill(0);
+ this.privKeyBytes = undefined;
+ }
+ return this;
+ }
+ toJSON() {
+ return {
+ xpriv: this.privateExtendedKey,
+ xpub: this.publicExtendedKey,
+ };
+ }
+ serialize(version, key) {
+ if (!this.chainCode) {
+ throw new Error('No chainCode set');
+ }
+ bytes(key, 33);
+ return concatBytes(toU32(version), new Uint8Array([this.depth]), toU32(this.parentFingerprint), toU32(this.index), this.chainCode, key);
+ }
+ }
+
+ // HMAC (RFC 2104)
+ class HMAC extends Hash$1 {
+ constructor(hash, _key) {
+ super();
+ this.finished = false;
+ this.destroyed = false;
+ assertHash(hash);
+ const key = toBytes$1(_key);
+ this.iHash = hash.create();
+ if (!(this.iHash instanceof Hash$1))
+ throw new TypeError('Expected instance of class which extends utils.Hash');
+ const blockLen = (this.blockLen = this.iHash.blockLen);
+ this.outputLen = this.iHash.outputLen;
+ const pad = new Uint8Array(blockLen);
+ // blockLen can be bigger than outputLen
+ pad.set(key.length > this.iHash.blockLen ? hash.create().update(key).digest() : key);
+ for (let i = 0; i < pad.length; i++)
+ pad[i] ^= 0x36;
+ this.iHash.update(pad);
+ // By doing update (processing of first block) of outer hash here we can re-use it between multiple calls via clone
+ this.oHash = hash.create();
+ // Undo internal XOR && apply outer XOR
+ for (let i = 0; i < pad.length; i++)
+ pad[i] ^= 0x36 ^ 0x5c;
+ this.oHash.update(pad);
+ pad.fill(0);
+ }
+ update(buf) {
+ if (this.destroyed)
+ throw new Error('instance is destroyed');
+ this.iHash.update(buf);
+ return this;
+ }
+ digestInto(out) {
+ if (this.destroyed)
+ throw new Error('instance is destroyed');
+ if (!(out instanceof Uint8Array) || out.length !== this.outputLen)
+ throw new Error('HMAC: Invalid output buffer');
+ if (this.finished)
+ throw new Error('digest() was already called');
+ this.finished = true;
+ this.iHash.digestInto(out);
+ this.oHash.update(out);
+ this.oHash.digestInto(out);
+ this.destroy();
+ }
+ digest() {
+ const out = new Uint8Array(this.oHash.outputLen);
+ this.digestInto(out);
+ return out;
+ }
+ _cloneInto(to) {
+ // Create new instance without calling constructor since key already in state and we don't know it.
+ to || (to = Object.create(Object.getPrototypeOf(this), {}));
+ const { oHash, iHash, finished, destroyed, blockLen, outputLen } = this;
+ to = to;
+ to.finished = finished;
+ to.destroyed = destroyed;
+ to.blockLen = blockLen;
+ to.outputLen = outputLen;
+ to.oHash = oHash._cloneInto(to.oHash);
+ to.iHash = iHash._cloneInto(to.iHash);
+ return to;
+ }
+ destroy() {
+ this.destroyed = true;
+ this.oHash.destroy();
+ this.iHash.destroy();
+ }
+ }
+ /**
+ * HMAC: RFC2104 message authentication code.
+ * @param hash - function that would be used e.g. sha256
+ * @param key - message key
+ * @param message - message data
+ */
+ const hmac = (hash, key, message) => new HMAC(hash, key).update(message).digest();
+ hmac.create = (hash, key) => new HMAC(hash, key);
+
+ var __defProp = Object.defineProperty;
+ var __export = (target, all) => {
+ for (var name in all)
+ __defProp(target, name, { get: all[name], enumerable: true });
+ };
+ function generatePrivateKey() {
+ return utils$1.bytesToHex(utils$1.randomPrivateKey());
+ }
+ function getPublicKey(privateKey) {
+ return utils$1.bytesToHex(schnorr.getPublicKey(privateKey));
+ }
+
+ // utils.ts
+ var utils_exports = {};
+ __export(utils_exports, {
+ insertEventIntoAscendingList: () => insertEventIntoAscendingList,
+ insertEventIntoDescendingList: () => insertEventIntoDescendingList,
+ normalizeURL: () => normalizeURL,
+ utf8Decoder: () => utf8Decoder,
+ utf8Encoder: () => utf8Encoder
+ });
+ var utf8Decoder = new TextDecoder("utf-8");
+ var utf8Encoder = new TextEncoder();
+ function normalizeURL(url) {
+ let p = new URL(url);
+ p.pathname = p.pathname.replace(/\/+/g, "/");
+ if (p.pathname.endsWith("/"))
+ p.pathname = p.pathname.slice(0, -1);
+ if (p.port === "80" && p.protocol === "ws:" || p.port === "443" && p.protocol === "wss:")
+ p.port = "";
+ p.searchParams.sort();
+ p.hash = "";
+ return p.toString();
+ }
+ function insertEventIntoDescendingList(sortedArray, event) {
+ let start = 0;
+ let end = sortedArray.length - 1;
+ let midPoint;
+ let position = start;
+ if (end < 0) {
+ position = 0;
+ } else if (event.created_at < sortedArray[end].created_at) {
+ position = end + 1;
+ } else if (event.created_at >= sortedArray[start].created_at) {
+ position = start;
+ } else
+ while (true) {
+ if (end <= start + 1) {
+ position = end;
+ break;
+ }
+ midPoint = Math.floor(start + (end - start) / 2);
+ if (sortedArray[midPoint].created_at > event.created_at) {
+ start = midPoint;
+ } else if (sortedArray[midPoint].created_at < event.created_at) {
+ end = midPoint;
+ } else {
+ position = midPoint;
+ break;
+ }
+ }
+ if (sortedArray[position]?.id !== event.id) {
+ return [
+ ...sortedArray.slice(0, position),
+ event,
+ ...sortedArray.slice(position)
+ ];
+ }
+ return sortedArray;
+ }
+ function insertEventIntoAscendingList(sortedArray, event) {
+ let start = 0;
+ let end = sortedArray.length - 1;
+ let midPoint;
+ let position = start;
+ if (end < 0) {
+ position = 0;
+ } else if (event.created_at > sortedArray[end].created_at) {
+ position = end + 1;
+ } else if (event.created_at <= sortedArray[start].created_at) {
+ position = start;
+ } else
+ while (true) {
+ if (end <= start + 1) {
+ position = end;
+ break;
+ }
+ midPoint = Math.floor(start + (end - start) / 2);
+ if (sortedArray[midPoint].created_at < event.created_at) {
+ start = midPoint;
+ } else if (sortedArray[midPoint].created_at > event.created_at) {
+ end = midPoint;
+ } else {
+ position = midPoint;
+ break;
+ }
+ }
+ if (sortedArray[position]?.id !== event.id) {
+ return [
+ ...sortedArray.slice(0, position),
+ event,
+ ...sortedArray.slice(position)
+ ];
+ }
+ return sortedArray;
+ }
+ function serializeEvent(evt) {
+ if (!validateEvent(evt))
+ throw new Error("can't serialize event with wrong or missing properties");
+ return JSON.stringify([
+ 0,
+ evt.pubkey,
+ evt.created_at,
+ evt.kind,
+ evt.tags,
+ evt.content
+ ]);
+ }
+ function getEventHash(event) {
+ let eventHash = sha256$2(utf8Encoder.encode(serializeEvent(event)));
+ return utils$1.bytesToHex(eventHash);
+ }
+ function validateEvent(event) {
+ if (typeof event !== "object")
+ return false;
+ if (typeof event.kind !== "number")
+ return false;
+ if (typeof event.content !== "string")
+ return false;
+ if (typeof event.created_at !== "number")
+ return false;
+ if (typeof event.pubkey !== "string")
+ return false;
+ if (!event.pubkey.match(/^[a-f0-9]{64}$/))
+ return false;
+ if (!Array.isArray(event.tags))
+ return false;
+ for (let i = 0; i < event.tags.length; i++) {
+ let tag = event.tags[i];
+ if (!Array.isArray(tag))
+ return false;
+ for (let j = 0; j < tag.length; j++) {
+ if (typeof tag[j] === "object")
+ return false;
+ }
+ }
+ return true;
+ }
+ function verifySignature(event) {
+ return schnorr.verifySync(
+ event.sig,
+ getEventHash(event),
+ event.pubkey
+ );
+ }
+ function signEvent(event, key) {
+ return utils$1.bytesToHex(
+ schnorr.signSync(getEventHash(event), key)
+ );
+ }
+
+ // filter.ts
+ function matchFilter(filter, event) {
+ if (filter.ids && filter.ids.indexOf(event.id) === -1)
+ return false;
+ if (filter.kinds && filter.kinds.indexOf(event.kind) === -1)
+ return false;
+ if (filter.authors && filter.authors.indexOf(event.pubkey) === -1)
+ return false;
+ for (let f in filter) {
+ if (f[0] === "#") {
+ let tagName = f.slice(1);
+ let values = filter[`#${tagName}`];
+ if (values && !event.tags.find(
+ ([t, v]) => t === f.slice(1) && values.indexOf(v) !== -1
+ ))
+ return false;
+ }
+ }
+ if (filter.since && event.created_at < filter.since)
+ return false;
+ if (filter.until && event.created_at >= filter.until)
+ return false;
+ return true;
+ }
+ function matchFilters(filters, event) {
+ for (let i = 0; i < filters.length; i++) {
+ if (matchFilter(filters[i], event))
+ return true;
+ }
+ return false;
+ }
+
+ // fakejson.ts
+ var fakejson_exports = {};
+ __export(fakejson_exports, {
+ getHex64: () => getHex64,
+ getInt: () => getInt,
+ getSubscriptionId: () => getSubscriptionId,
+ matchEventId: () => matchEventId,
+ matchEventKind: () => matchEventKind,
+ matchEventPubkey: () => matchEventPubkey
+ });
+ function getHex64(json, field) {
+ let len = field.length + 3;
+ let idx = json.indexOf(`"${field}":`) + len;
+ let s = json.slice(idx).indexOf(`"`) + idx + 1;
+ return json.slice(s, s + 64);
+ }
+ function getInt(json, field) {
+ let len = field.length;
+ let idx = json.indexOf(`"${field}":`) + len + 3;
+ let sliced = json.slice(idx);
+ let end = Math.min(sliced.indexOf(","), sliced.indexOf("}"));
+ return parseInt(sliced.slice(0, end), 10);
+ }
+ function getSubscriptionId(json) {
+ let idx = json.slice(0, 22).indexOf(`"EVENT"`);
+ if (idx === -1)
+ return null;
+ let pstart = json.slice(idx + 7 + 1).indexOf(`"`);
+ if (pstart === -1)
+ return null;
+ let start = idx + 7 + 1 + pstart;
+ let pend = json.slice(start + 1, 80).indexOf(`"`);
+ if (pend === -1)
+ return null;
+ let end = start + 1 + pend;
+ return json.slice(start + 1, end);
+ }
+ function matchEventId(json, id) {
+ return id === getHex64(json, "id");
+ }
+ function matchEventPubkey(json, pubkey) {
+ return pubkey === getHex64(json, "pubkey");
+ }
+ function matchEventKind(json, kind) {
+ return kind === getInt(json, "kind");
+ }
+
+ // relay.ts
+ function relayInit(url, options = {}) {
+ let { listTimeout = 3e3, getTimeout = 3e3 } = options;
+ var ws;
+ var openSubs = {};
+ var listeners = {
+ connect: [],
+ disconnect: [],
+ error: [],
+ notice: []
+ };
+ var subListeners = {};
+ var pubListeners = {};
+ async function connectRelay() {
+ return new Promise((resolve, reject) => {
+ ws = new WebSocket(url);
+ ws.onopen = () => {
+ listeners.connect.forEach((cb) => cb());
+ resolve();
+ };
+ ws.onerror = () => {
+ listeners.error.forEach((cb) => cb());
+ reject();
+ };
+ ws.onclose = async () => {
+ listeners.disconnect.forEach((cb) => cb());
+ };
+ let incomingMessageQueue = [];
+ let handleNextInterval;
+ ws.onmessage = (e) => {
+ incomingMessageQueue.push(e.data);
+ if (!handleNextInterval) {
+ handleNextInterval = setInterval(handleNext, 0);
+ }
+ };
+ function handleNext() {
+ if (incomingMessageQueue.length === 0) {
+ clearInterval(handleNextInterval);
+ handleNextInterval = null;
+ return;
+ }
+ var json = incomingMessageQueue.shift();
+ if (!json)
+ return;
+ let subid = getSubscriptionId(json);
+ if (subid) {
+ let so = openSubs[subid];
+ if (so && so.alreadyHaveEvent && so.alreadyHaveEvent(getHex64(json, "id"), url)) {
+ return;
+ }
+ }
+ try {
+ let data = JSON.parse(json);
+ switch (data[0]) {
+ case "EVENT":
+ let id = data[1];
+ let event = data[2];
+ if (validateEvent(event) && openSubs[id] && (openSubs[id].skipVerification || verifySignature(event)) && matchFilters(openSubs[id].filters, event)) {
+ openSubs[id];
+ (subListeners[id]?.event || []).forEach((cb) => cb(event));
+ }
+ return;
+ case "EOSE": {
+ let id2 = data[1];
+ if (id2 in subListeners) {
+ subListeners[id2].eose.forEach((cb) => cb());
+ subListeners[id2].eose = [];
+ }
+ return;
+ }
+ case "OK": {
+ let id2 = data[1];
+ let ok = data[2];
+ let reason = data[3] || "";
+ if (id2 in pubListeners) {
+ if (ok)
+ pubListeners[id2].ok.forEach((cb) => cb());
+ else
+ pubListeners[id2].failed.forEach((cb) => cb(reason));
+ pubListeners[id2].ok = [];
+ pubListeners[id2].failed = [];
+ }
+ return;
+ }
+ case "NOTICE":
+ let notice = data[1];
+ listeners.notice.forEach((cb) => cb(notice));
+ return;
+ }
+ } catch (err) {
+ return;
+ }
+ }
+ });
+ }
+ function connected() {
+ return ws?.readyState === 1;
+ }
+ async function connect() {
+ if (connected())
+ return;
+ await connectRelay();
+ }
+ async function trySend(params) {
+ let msg = JSON.stringify(params);
+ if (!connected()) {
+ await new Promise((resolve) => setTimeout(resolve, 1e3));
+ if (!connected()) {
+ return;
+ }
+ }
+ try {
+ ws.send(msg);
+ } catch (err) {
+ console.log(err);
+ }
+ }
+ const sub = (filters, {
+ skipVerification = false,
+ alreadyHaveEvent = null,
+ id = Math.random().toString().slice(2)
+ } = {}) => {
+ let subid = id;
+ openSubs[subid] = {
+ id: subid,
+ filters,
+ skipVerification,
+ alreadyHaveEvent
+ };
+ trySend(["REQ", subid, ...filters]);
+ return {
+ sub: (newFilters, newOpts = {}) => sub(newFilters || filters, {
+ skipVerification: newOpts.skipVerification || skipVerification,
+ alreadyHaveEvent: newOpts.alreadyHaveEvent || alreadyHaveEvent,
+ id: subid
+ }),
+ unsub: () => {
+ delete openSubs[subid];
+ delete subListeners[subid];
+ trySend(["CLOSE", subid]);
+ },
+ on: (type, cb) => {
+ subListeners[subid] = subListeners[subid] || {
+ event: [],
+ eose: []
+ };
+ subListeners[subid][type].push(cb);
+ },
+ off: (type, cb) => {
+ let listeners2 = subListeners[subid];
+ let idx = listeners2[type].indexOf(cb);
+ if (idx >= 0)
+ listeners2[type].splice(idx, 1);
+ }
+ };
+ };
+ return {
+ url,
+ sub,
+ on: (type, cb) => {
+ listeners[type].push(cb);
+ if (type === "connect" && ws?.readyState === 1) {
+ cb();
+ }
+ },
+ off: (type, cb) => {
+ let index = listeners[type].indexOf(cb);
+ if (index !== -1)
+ listeners[type].splice(index, 1);
+ },
+ list: (filters, opts) => new Promise((resolve) => {
+ let s = sub(filters, opts);
+ let events = [];
+ let timeout = setTimeout(() => {
+ s.unsub();
+ resolve(events);
+ }, listTimeout);
+ s.on("eose", () => {
+ s.unsub();
+ clearTimeout(timeout);
+ resolve(events);
+ });
+ s.on("event", (event) => {
+ events.push(event);
+ });
+ }),
+ get: (filter, opts) => new Promise((resolve) => {
+ let s = sub([filter], opts);
+ let timeout = setTimeout(() => {
+ s.unsub();
+ resolve(null);
+ }, getTimeout);
+ s.on("event", (event) => {
+ s.unsub();
+ clearTimeout(timeout);
+ resolve(event);
+ });
+ }),
+ publish(event) {
+ if (!event.id)
+ throw new Error(`event ${event} has no id`);
+ let id = event.id;
+ trySend(["EVENT", event]);
+ return {
+ on: (type, cb) => {
+ pubListeners[id] = pubListeners[id] || {
+ ok: [],
+ failed: []
+ };
+ pubListeners[id][type].push(cb);
+ },
+ off: (type, cb) => {
+ let listeners2 = pubListeners[id];
+ if (!listeners2)
+ return;
+ let idx = listeners2[type].indexOf(cb);
+ if (idx >= 0)
+ listeners2[type].splice(idx, 1);
+ }
+ };
+ },
+ connect,
+ close() {
+ listeners = { connect: [], disconnect: [], error: [], notice: [] };
+ subListeners = {};
+ pubListeners = {};
+ ws?.close();
+ },
+ get status() {
+ return ws?.readyState ?? 3;
+ }
+ };
+ }
+
+ // nip04.ts
+ var nip04_exports = {};
+ __export(nip04_exports, {
+ decrypt: () => decrypt,
+ encrypt: () => encrypt
+ });
+ async function encrypt(privkey, pubkey, text) {
+ const key = getSharedSecret(privkey, "02" + pubkey);
+ const normalizedKey = getNormalizedX(key);
+ let iv = Uint8Array.from(randomBytes(16));
+ let plaintext = utf8Encoder.encode(text);
+ let cryptoKey = await crypto.subtle.importKey(
+ "raw",
+ normalizedKey,
+ { name: "AES-CBC" },
+ false,
+ ["encrypt"]
+ );
+ let ciphertext = await crypto.subtle.encrypt(
+ { name: "AES-CBC", iv },
+ cryptoKey,
+ plaintext
+ );
+ let ctb64 = base64.encode(new Uint8Array(ciphertext));
+ let ivb64 = base64.encode(new Uint8Array(iv.buffer));
+ return `${ctb64}?iv=${ivb64}`;
+ }
+ async function decrypt(privkey, pubkey, data) {
+ let [ctb64, ivb64] = data.split("?iv=");
+ let key = getSharedSecret(privkey, "02" + pubkey);
+ let normalizedKey = getNormalizedX(key);
+ let cryptoKey = await crypto.subtle.importKey(
+ "raw",
+ normalizedKey,
+ { name: "AES-CBC" },
+ false,
+ ["decrypt"]
+ );
+ let ciphertext = base64.decode(ctb64);
+ let iv = base64.decode(ivb64);
+ let plaintext = await crypto.subtle.decrypt(
+ { name: "AES-CBC", iv },
+ cryptoKey,
+ ciphertext
+ );
+ let text = utf8Decoder.decode(plaintext);
+ return text;
+ }
+ function getNormalizedX(key) {
+ return key.slice(1, 33);
+ }
+
+ // nip05.ts
+ var nip05_exports = {};
+ __export(nip05_exports, {
+ queryProfile: () => queryProfile,
+ searchDomain: () => searchDomain,
+ useFetchImplementation: () => useFetchImplementation
+ });
+ var _fetch;
+ try {
+ _fetch = fetch;
+ } catch {
+ }
+ function useFetchImplementation(fetchImplementation) {
+ _fetch = fetchImplementation;
+ }
+ async function searchDomain(domain, query = "") {
+ try {
+ let res = await (await _fetch(`https://${domain}/.well-known/nostr.json?name=${query}`)).json();
+ return res.names;
+ } catch (_) {
+ return {};
+ }
+ }
+ async function queryProfile(fullname) {
+ let [name, domain] = fullname.split("@");
+ if (!domain) {
+ domain = name;
+ name = "_";
+ }
+ if (!name.match(/^[A-Za-z0-9-_]+$/))
+ return null;
+ let res;
+ try {
+ res = await (await _fetch(`https://${domain}/.well-known/nostr.json?name=${name}`)).json();
+ } catch (err) {
+ return null;
+ }
+ if (!res?.names?.[name])
+ return null;
+ let pubkey = res.names[name];
+ let relays = res.relays?.[pubkey] || [];
+ return {
+ pubkey,
+ relays
+ };
+ }
+
+ // nip06.ts
+ var nip06_exports = {};
+ __export(nip06_exports, {
+ generateSeedWords: () => generateSeedWords,
+ privateKeyFromSeedWords: () => privateKeyFromSeedWords,
+ validateWords: () => validateWords
+ });
+ function privateKeyFromSeedWords(mnemonic, passphrase) {
+ let root = HDKey.fromMasterSeed(mnemonicToSeedSync_1(mnemonic, passphrase));
+ let privateKey = root.derive(`m/44'/1237'/0'/0/0`).privateKey;
+ if (!privateKey)
+ throw new Error("could not derive private key");
+ return utils$1.bytesToHex(privateKey);
+ }
+ function generateSeedWords() {
+ return generateMnemonic_1(wordlist);
+ }
+ function validateWords(words) {
+ return validateMnemonic_1(words, wordlist);
+ }
+
+ // nip19.ts
+ var nip19_exports = {};
+ __export(nip19_exports, {
+ decode: () => decode,
+ naddrEncode: () => naddrEncode,
+ neventEncode: () => neventEncode,
+ noteEncode: () => noteEncode,
+ nprofileEncode: () => nprofileEncode,
+ npubEncode: () => npubEncode,
+ nsecEncode: () => nsecEncode
+ });
+ var Bech32MaxSize = 5e3;
+ function decode(nip19) {
+ let { prefix, words } = bech32.decode(nip19, Bech32MaxSize);
+ let data = new Uint8Array(bech32.fromWords(words));
+ switch (prefix) {
+ case "nprofile": {
+ let tlv = parseTLV(data);
+ if (!tlv[0]?.[0])
+ throw new Error("missing TLV 0 for nprofile");
+ if (tlv[0][0].length !== 32)
+ throw new Error("TLV 0 should be 32 bytes");
+ return {
+ type: "nprofile",
+ data: {
+ pubkey: utils$1.bytesToHex(tlv[0][0]),
+ relays: tlv[1] ? tlv[1].map((d) => utf8Decoder.decode(d)) : []
+ }
+ };
+ }
+ case "nevent": {
+ let tlv = parseTLV(data);
+ if (!tlv[0]?.[0])
+ throw new Error("missing TLV 0 for nevent");
+ if (tlv[0][0].length !== 32)
+ throw new Error("TLV 0 should be 32 bytes");
+ return {
+ type: "nevent",
+ data: {
+ id: utils$1.bytesToHex(tlv[0][0]),
+ relays: tlv[1] ? tlv[1].map((d) => utf8Decoder.decode(d)) : []
+ }
+ };
+ }
+ case "naddr": {
+ let tlv = parseTLV(data);
+ if (!tlv[0]?.[0])
+ throw new Error("missing TLV 0 for naddr");
+ if (!tlv[2]?.[0])
+ throw new Error("missing TLV 2 for naddr");
+ if (tlv[2][0].length !== 32)
+ throw new Error("TLV 2 should be 32 bytes");
+ if (!tlv[3]?.[0])
+ throw new Error("missing TLV 3 for naddr");
+ if (tlv[3][0].length !== 4)
+ throw new Error("TLV 3 should be 4 bytes");
+ return {
+ type: "naddr",
+ data: {
+ identifier: utf8Decoder.decode(tlv[0][0]),
+ pubkey: utils$1.bytesToHex(tlv[2][0]),
+ kind: parseInt(utils$1.bytesToHex(tlv[3][0]), 16),
+ relays: tlv[1] ? tlv[1].map((d) => utf8Decoder.decode(d)) : []
+ }
+ };
+ }
+ case "nsec":
+ case "npub":
+ case "note":
+ return { type: prefix, data: utils$1.bytesToHex(data) };
+ default:
+ throw new Error(`unknown prefix ${prefix}`);
+ }
+ }
+ function parseTLV(data) {
+ let result = {};
+ let rest = data;
+ while (rest.length > 0) {
+ let t = rest[0];
+ let l = rest[1];
+ let v = rest.slice(2, 2 + l);
+ rest = rest.slice(2 + l);
+ if (v.length < l)
+ continue;
+ result[t] = result[t] || [];
+ result[t].push(v);
+ }
+ return result;
+ }
+ function nsecEncode(hex) {
+ return encodeBytes("nsec", hex);
+ }
+ function npubEncode(hex) {
+ return encodeBytes("npub", hex);
+ }
+ function noteEncode(hex) {
+ return encodeBytes("note", hex);
+ }
+ function encodeBytes(prefix, hex) {
+ let data = utils$1.hexToBytes(hex);
+ let words = bech32.toWords(data);
+ return bech32.encode(prefix, words, Bech32MaxSize);
+ }
+ function nprofileEncode(profile) {
+ let data = encodeTLV({
+ 0: [utils$1.hexToBytes(profile.pubkey)],
+ 1: (profile.relays || []).map((url) => utf8Encoder.encode(url))
+ });
+ let words = bech32.toWords(data);
+ return bech32.encode("nprofile", words, Bech32MaxSize);
+ }
+ function neventEncode(event) {
+ let data = encodeTLV({
+ 0: [utils$1.hexToBytes(event.id)],
+ 1: (event.relays || []).map((url) => utf8Encoder.encode(url))
+ });
+ let words = bech32.toWords(data);
+ return bech32.encode("nevent", words, Bech32MaxSize);
+ }
+ function naddrEncode(addr) {
+ let kind = new ArrayBuffer(4);
+ new DataView(kind).setUint32(0, addr.kind, false);
+ let data = encodeTLV({
+ 0: [utf8Encoder.encode(addr.identifier)],
+ 1: (addr.relays || []).map((url) => utf8Encoder.encode(url)),
+ 2: [utils$1.hexToBytes(addr.pubkey)],
+ 3: [new Uint8Array(kind)]
+ });
+ let words = bech32.toWords(data);
+ return bech32.encode("naddr", words, Bech32MaxSize);
+ }
+ function encodeTLV(tlv) {
+ let entries = [];
+ Object.entries(tlv).forEach(([t, vs]) => {
+ vs.forEach((v) => {
+ let entry = new Uint8Array(v.length + 2);
+ entry.set([parseInt(t)], 0);
+ entry.set([v.length], 1);
+ entry.set(v, 2);
+ entries.push(entry);
+ });
+ });
+ return utils$1.concatBytes(...entries);
+ }
+
+ // nip26.ts
+ var nip26_exports = {};
+ __export(nip26_exports, {
+ createDelegation: () => createDelegation,
+ getDelegator: () => getDelegator
+ });
+ function createDelegation(privateKey, parameters) {
+ let conditions = [];
+ if ((parameters.kind || -1) >= 0)
+ conditions.push(`kind=${parameters.kind}`);
+ if (parameters.until)
+ conditions.push(`created_at<${parameters.until}`);
+ if (parameters.since)
+ conditions.push(`created_at>${parameters.since}`);
+ let cond = conditions.join("&");
+ if (cond === "")
+ throw new Error("refusing to create a delegation without any conditions");
+ let sighash = sha256$2(
+ utf8Encoder.encode(`nostr:delegation:${parameters.pubkey}:${cond}`)
+ );
+ let sig = utils$1.bytesToHex(
+ schnorr.signSync(sighash, privateKey)
+ );
+ return {
+ from: getPublicKey(privateKey),
+ to: parameters.pubkey,
+ cond,
+ sig
+ };
+ }
+ function getDelegator(event) {
+ let tag = event.tags.find((tag2) => tag2[0] === "delegation" && tag2.length >= 4);
+ if (!tag)
+ return null;
+ let pubkey = tag[1];
+ let cond = tag[2];
+ let sig = tag[3];
+ let conditions = cond.split("&");
+ for (let i = 0; i < conditions.length; i++) {
+ let [key, operator, value] = conditions[i].split(/\b/);
+ if (key === "kind" && operator === "=" && event.kind === parseInt(value))
+ continue;
+ else if (key === "created_at" && operator === "<" && event.created_at < parseInt(value))
+ continue;
+ else if (key === "created_at" && operator === ">" && event.created_at > parseInt(value))
+ continue;
+ else
+ return null;
+ }
+ let sighash = sha256$2(
+ utf8Encoder.encode(`nostr:delegation:${event.pubkey}:${cond}`)
+ );
+ if (!schnorr.verifySync(sig, sighash, pubkey))
+ return null;
+ return pubkey;
+ }
+
+ // nip57.ts
+ var nip57_exports = {};
+ __export(nip57_exports, {
+ getZapEndpoint: () => getZapEndpoint,
+ makeZapReceipt: () => makeZapReceipt,
+ makeZapRequest: () => makeZapRequest,
+ useFetchImplementation: () => useFetchImplementation2,
+ validateZapRequest: () => validateZapRequest
+ });
+ var _fetch2;
+ try {
+ _fetch2 = fetch;
+ } catch {
+ }
+ function useFetchImplementation2(fetchImplementation) {
+ _fetch2 = fetchImplementation;
+ }
+ async function getZapEndpoint(metadata) {
+ try {
+ let lnurl = "";
+ let { lud06, lud16 } = JSON.parse(metadata.content);
+ if (lud06) {
+ let { words } = bech32.decode(lud06, 1e3);
+ let data = bech32.fromWords(words);
+ lnurl = utf8Decoder.decode(data);
+ } else if (lud16) {
+ let [name, domain] = lud16.split("@");
+ lnurl = `https://${domain}/.well-known/lnurlp/${name}`;
+ } else {
+ return null;
+ }
+ let res = await _fetch2(lnurl);
+ let body = await res.json();
+ if (body.allowsNostr && body.nostrPubkey) {
+ return body.callback;
+ }
+ } catch (err) {
+ }
+ return null;
+ }
+ function makeZapRequest({
+ profile,
+ event,
+ amount,
+ relays,
+ comment = ""
+ }) {
+ if (!amount)
+ throw new Error("amount not given");
+ if (!profile)
+ throw new Error("profile not given");
+ let zr = {
+ kind: 9734,
+ created_at: Math.round(Date.now() / 1e3),
+ content: comment,
+ tags: [
+ ["p", profile],
+ ["amount", amount.toString()],
+ ["relays", ...relays]
+ ]
+ };
+ if (event) {
+ zr.tags.push(["e", event]);
+ }
+ return zr;
+ }
+ function validateZapRequest(zapRequestString) {
+ let zapRequest;
+ try {
+ zapRequest = JSON.parse(zapRequestString);
+ } catch (err) {
+ return "Invalid zap request JSON.";
+ }
+ if (!validateEvent(zapRequest))
+ return "Zap request is not a valid Nostr event.";
+ if (!verifySignature(zapRequest))
+ return "Invalid signature on zap request.";
+ let p = zapRequest.tags.find(([t, v]) => t === "p" && v);
+ if (!p)
+ return "Zap request doesn't have a 'p' tag.";
+ if (!p[1].match(/^[a-f0-9]{64}$/))
+ return "Zap request 'p' tag is not valid hex.";
+ let e = zapRequest.tags.find(([t, v]) => t === "e" && v);
+ if (e && !e[1].match(/^[a-f0-9]{64}$/))
+ return "Zap request 'e' tag is not valid hex.";
+ let relays = zapRequest.tags.find(([t, v]) => t === "relays" && v);
+ if (!relays)
+ return "Zap request doesn't have a 'relays' tag.";
+ return null;
+ }
+ function makeZapReceipt({
+ zapRequest,
+ preimage,
+ bolt11,
+ paidAt
+ }) {
+ let zr = JSON.parse(zapRequest);
+ let tagsFromZapRequest = zr.tags.filter(
+ ([t]) => t === "e" || t === "p" || t === "a"
+ );
+ let zap = {
+ kind: 9735,
+ created_at: Math.round(paidAt.getTime() / 1e3),
+ content: "",
+ tags: [
+ ...tagsFromZapRequest,
+ ["bolt11", bolt11],
+ ["description", zapRequest]
+ ]
+ };
+ if (preimage) {
+ zap.tags.push(["preimage", preimage]);
+ }
+ return zap;
+ }
+ utils$1.hmacSha256Sync = (key, ...msgs) => hmac(sha256$2, key, utils$1.concatBytes(...msgs));
+ utils$1.sha256Sync = (...msgs) => sha256$2(utils$1.concatBytes(...msgs));
+
+ const WS = WebSocket;// typeof WebSocket !== 'undefined' ? WebSocket : require('ws')
+
+ Relay$1.prototype.wait_connected = async function relay_wait_connected(data) {
+ let retry = 1000;
+ while (true) {
+ if (this.ws.readyState !== 1) {
+ await sleep(retry);
+ retry *= 1.5;
+ }
+ else {
+ return
+ }
+ }
+ };
+
+
+ function Relay$1(relay, opts={})
+ {
+ if (!(this instanceof Relay$1))
+ return new Relay$1(relay, opts)
+
+ this.url = relay;
+ this.opts = opts;
+
+ if (opts.reconnect == null)
+ opts.reconnect = true;
+
+ const me = this;
+ me.onfn = {};
+
+ init_websocket(me)
+ .catch(e => {
+ if (me.onfn.error)
+ me.onfn.error(e);
+ });
+
+ return this
+ }
+
+ function init_websocket(me) {
+ return new Promise((resolve, reject) => {
+ const ws = me.ws = new WS(me.url);
+
+ let resolved = false;
+ ws.onmessage = (m) => {
+ handle_nostr_message(me, m);
+ if (me.onfn.message)
+ me.onfn.message(m);
+ };
+ ws.onclose = (e) => {
+ if (me.onfn.close)
+ me.onfn.close(e);
+ if (me.reconnecting)
+ return reject(new Error("close during reconnect"))
+ if (!me.manualClose && me.opts.reconnect)
+ reconnect(me);
+ };
+ ws.onerror = (e) => {
+ if (me.onfn.error)
+ me.onfn.error(e);
+ if (me.reconnecting)
+ return reject(new Error("error during reconnect"))
+ if (me.opts.reconnect)
+ reconnect(me);
+ };
+ ws.onopen = (e) => {
+ if (me.onfn.open)
+ me.onfn.open(e);
+
+ if (resolved) return
+
+ resolved = true;
+ resolve(me);
+ };
+ });
+ }
+
+ function sleep(ms) {
+ return new Promise(resolve => setTimeout(resolve, ms));
+ }
+
+ async function reconnect(me)
+ {
+ let n = 100;
+ try {
+ me.reconnecting = true;
+ await init_websocket(me);
+ me.reconnecting = false;
+ } catch {
+ //console.error(`error thrown during reconnect... trying again in ${n} ms`)
+ await sleep(n);
+ n *= 1.5;
+ }
+ }
+
+ Relay$1.prototype.on = function relayOn(method, fn) {
+ this.onfn[method] = fn;
+ return this
+ };
+
+ Relay$1.prototype.close = function relayClose() {
+ if (this.ws) {
+ this.manualClose = true;
+ this.ws.close();
+ }
+ };
+
+ Relay$1.prototype.subscribe = function relay_subscribe(sub_id, filters) {
+ if (Array.isArray(filters))
+ this.send(["REQ", sub_id, ...filters]);
+ else
+ this.send(["REQ", sub_id, filters]);
+ };
+
+ Relay$1.prototype.unsubscribe = function relay_unsubscribe(sub_id) {
+ this.send(["CLOSE", sub_id]);
+ };
+
+ Relay$1.prototype.send = async function relay_send(data) {
+ await this.wait_connected();
+ this.ws.send(JSON.stringify(data));
+ };
+
+ function handle_nostr_message(relay, msg)
+ {
+ let data;
+ try {
+ data = JSON.parse(msg.data);
+ } catch (e) {
+ console.error("handle_nostr_message", e);
+ return
+ }
+ if (data.length >= 2) {
+ switch (data[0]) {
+ case "EVENT":
+ if (data.length < 3)
+ return
+ return relay.onfn.event && relay.onfn.event(data[1], data[2])
+ case "EOSE":
+ return relay.onfn.eose && relay.onfn.eose(data[1])
+ case "NOTICE":
+ return relay.onfn.notice && relay.onfn.notice(...data.slice(1))
+ case "OK":
+ return relay.onfn.ok && relay.onfn.ok(...data.slice(1))
+ }
+ }
+ }
+
+ var relay = Relay$1;
+
+ const Relay = relay;
+
+ function RelayPool(relays, opts)
+ {
+ if (!(this instanceof RelayPool))
+ return new RelayPool(relays, opts)
+
+ this.onfn = {};
+ this.relays = [];
+ this.opts = opts;
+
+ for (const relay of relays) {
+ this.add(relay);
+ }
+
+ return this
+ }
+
+ RelayPool.prototype.close = function relayPoolClose() {
+ for (const relay of this.relays) {
+ relay.close();
+ }
+ };
+
+ RelayPool.prototype.on = function relayPoolOn(method, fn) {
+ for (const relay of this.relays) {
+ this.onfn[method] = fn;
+ relay.onfn[method] = fn.bind(null, relay);
+ }
+ return this
+ };
+
+ RelayPool.prototype.has = function relayPoolHas(relayUrl) {
+ for (const relay of this.relays) {
+ if (relay.url === relayUrl)
+ return true
+ }
+
+ return false
+ };
+
+ RelayPool.prototype.send = function relayPoolSend(payload, relay_ids) {
+ const relays = relay_ids ? this.find_relays(relay_ids) : this.relays;
+ for (const relay of relays) {
+ relay.send(payload);
+ }
+ };
+
+ RelayPool.prototype.setupHandlers = function relayPoolSetupHandlers()
+ {
+ // setup its message handlers with the ones we have already
+ const keys = Object.keys(this.onfn);
+ for (const handler of keys) {
+ for (const relay of this.relays) {
+ relay.onfn[handler] = this.onfn[handler].bind(null, relay);
+ }
+ }
+ };
+
+ RelayPool.prototype.remove = function relayPoolRemove(url) {
+ let i = 0;
+
+ for (const relay of this.relays) {
+ if (relay.url === url) {
+ relay.ws && relay.ws.close();
+ this.relays = this.replays.splice(i, 1);
+ return true
+ }
+
+ i += 1;
+ }
+
+ return false
+ };
+
+ RelayPool.prototype.subscribe = function relayPoolSubscribe(sub_id, filters, relay_ids) {
+ const relays = relay_ids ? this.find_relays(relay_ids) : this.relays;
+ for (const relay of relays) {
+ relay.subscribe(sub_id, filters);
+ }
+ };
+
+ RelayPool.prototype.unsubscribe = function relayPoolUnsubscibe(sub_id, relay_ids) {
+ const relays = relay_ids ? this.find_relays(relay_ids) : this.relays;
+ for (const relay of relays) {
+ relay.unsubscribe(sub_id);
+ }
+ };
+
+
+ RelayPool.prototype.add = function relayPoolAdd(relay) {
+ if (relay instanceof Relay) {
+ if (this.has(relay.url))
+ return false
+
+ this.relays.push(relay);
+ this.setupHandlers();
+ return true
+ }
+
+ if (this.has(relay))
+ return false
+
+ const r = Relay(relay, this.opts);
+ this.relays.push(r);
+ this.setupHandlers();
+ return true
+ };
+
+ RelayPool.prototype.find_relays = function relayPoolFindRelays(relay_ids) {
+ if (relay_ids instanceof Relay)
+ return [relay_ids]
+
+ if (relay_ids.length === 0)
+ return []
+
+ if (!relay_ids[0])
+ throw new Error("what!?")
+
+ if (relay_ids[0] instanceof Relay)
+ return relay_ids
+
+ return this.relays.reduce((acc, relay) => {
+ if (relay_ids.some((rid) => relay.url === rid))
+ acc.push(relay);
+ return acc
+ }, [])
+ };
+
+ var relayPool = RelayPool;
+
+ var eventsExports = {};
+ var events = {
+ get exports(){ return eventsExports; },
+ set exports(v){ eventsExports = v; },
+ };
+
+ var R = typeof Reflect === 'object' ? Reflect : null;
+ var ReflectApply = R && typeof R.apply === 'function'
+ ? R.apply
+ : function ReflectApply(target, receiver, args) {
+ return Function.prototype.apply.call(target, receiver, args);
+ };
+
+ var ReflectOwnKeys;
+ if (R && typeof R.ownKeys === 'function') {
+ ReflectOwnKeys = R.ownKeys;
+ } else if (Object.getOwnPropertySymbols) {
+ ReflectOwnKeys = function ReflectOwnKeys(target) {
+ return Object.getOwnPropertyNames(target)
+ .concat(Object.getOwnPropertySymbols(target));
+ };
+ } else {
+ ReflectOwnKeys = function ReflectOwnKeys(target) {
+ return Object.getOwnPropertyNames(target);
+ };
+ }
+
+ function ProcessEmitWarning(warning) {
+ if (console && console.warn) console.warn(warning);
+ }
+
+ var NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {
+ return value !== value;
+ };
+
+ function EventEmitter() {
+ EventEmitter.init.call(this);
+ }
+ events.exports = EventEmitter;
+ eventsExports.once = once;
+
+ // Backwards-compat with node 0.10.x
+ EventEmitter.EventEmitter = EventEmitter;
+
+ EventEmitter.prototype._events = undefined;
+ EventEmitter.prototype._eventsCount = 0;
+ EventEmitter.prototype._maxListeners = undefined;
+
+ // By default EventEmitters will print a warning if more than 10 listeners are
+ // added to it. This is a useful default which helps finding memory leaks.
+ var defaultMaxListeners = 10;
+
+ function checkListener(listener) {
+ if (typeof listener !== 'function') {
+ throw new TypeError('The "listener" argument must be of type Function. Received type ' + typeof listener);
+ }
+ }
+
+ Object.defineProperty(EventEmitter, 'defaultMaxListeners', {
+ enumerable: true,
+ get: function() {
+ return defaultMaxListeners;
+ },
+ set: function(arg) {
+ if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {
+ throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received ' + arg + '.');
+ }
+ defaultMaxListeners = arg;
+ }
+ });
+
+ EventEmitter.init = function() {
+
+ if (this._events === undefined ||
+ this._events === Object.getPrototypeOf(this)._events) {
+ this._events = Object.create(null);
+ this._eventsCount = 0;
+ }
+
+ this._maxListeners = this._maxListeners || undefined;
+ };
+
+ // Obviously not all Emitters should be limited to 10. This function allows
+ // that to be increased. Set to zero for unlimited.
+ EventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {
+ if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {
+ throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received ' + n + '.');
+ }
+ this._maxListeners = n;
+ return this;
+ };
+
+ function _getMaxListeners(that) {
+ if (that._maxListeners === undefined)
+ return EventEmitter.defaultMaxListeners;
+ return that._maxListeners;
+ }
+
+ EventEmitter.prototype.getMaxListeners = function getMaxListeners() {
+ return _getMaxListeners(this);
+ };
+
+ EventEmitter.prototype.emit = function emit(type) {
+ var args = [];
+ for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);
+ var doError = (type === 'error');
+
+ var events = this._events;
+ if (events !== undefined)
+ doError = (doError && events.error === undefined);
+ else if (!doError)
+ return false;
+
+ // If there is no 'error' event listener then throw.
+ if (doError) {
+ var er;
+ if (args.length > 0)
+ er = args[0];
+ if (er instanceof Error) {
+ // Note: The comments on the `throw` lines are intentional, they show
+ // up in Node's output if this results in an unhandled exception.
+ throw er; // Unhandled 'error' event
+ }
+ // At least give some kind of context to the user
+ var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));
+ err.context = er;
+ throw err; // Unhandled 'error' event
+ }
+
+ var handler = events[type];
+
+ if (handler === undefined)
+ return false;
+
+ if (typeof handler === 'function') {
+ ReflectApply(handler, this, args);
+ } else {
+ var len = handler.length;
+ var listeners = arrayClone(handler, len);
+ for (var i = 0; i < len; ++i)
+ ReflectApply(listeners[i], this, args);
+ }
+
+ return true;
+ };
+
+ function _addListener(target, type, listener, prepend) {
+ var m;
+ var events;
+ var existing;
+
+ checkListener(listener);
+
+ events = target._events;
+ if (events === undefined) {
+ events = target._events = Object.create(null);
+ target._eventsCount = 0;
+ } else {
+ // To avoid recursion in the case that type === "newListener"! Before
+ // adding it to the listeners, first emit "newListener".
+ if (events.newListener !== undefined) {
+ target.emit('newListener', type,
+ listener.listener ? listener.listener : listener);
+
+ // Re-assign `events` because a newListener handler could have caused the
+ // this._events to be assigned to a new object
+ events = target._events;
+ }
+ existing = events[type];
+ }
+
+ if (existing === undefined) {
+ // Optimize the case of one listener. Don't need the extra array object.
+ existing = events[type] = listener;
+ ++target._eventsCount;
+ } else {
+ if (typeof existing === 'function') {
+ // Adding the second element, need to change to array.
+ existing = events[type] =
+ prepend ? [listener, existing] : [existing, listener];
+ // If we've already got an array, just append.
+ } else if (prepend) {
+ existing.unshift(listener);
+ } else {
+ existing.push(listener);
+ }
+
+ // Check for listener leak
+ m = _getMaxListeners(target);
+ if (m > 0 && existing.length > m && !existing.warned) {
+ existing.warned = true;
+ // No error code for this since it is a Warning
+ // eslint-disable-next-line no-restricted-syntax
+ var w = new Error('Possible EventEmitter memory leak detected. ' +
+ existing.length + ' ' + String(type) + ' listeners ' +
+ 'added. Use emitter.setMaxListeners() to ' +
+ 'increase limit');
+ w.name = 'MaxListenersExceededWarning';
+ w.emitter = target;
+ w.type = type;
+ w.count = existing.length;
+ ProcessEmitWarning(w);
+ }
+ }
+
+ return target;
+ }
+
+ EventEmitter.prototype.addListener = function addListener(type, listener) {
+ return _addListener(this, type, listener, false);
+ };
+
+ EventEmitter.prototype.on = EventEmitter.prototype.addListener;
+
+ EventEmitter.prototype.prependListener =
+ function prependListener(type, listener) {
+ return _addListener(this, type, listener, true);
+ };
+
+ function onceWrapper() {
+ if (!this.fired) {
+ this.target.removeListener(this.type, this.wrapFn);
+ this.fired = true;
+ if (arguments.length === 0)
+ return this.listener.call(this.target);
+ return this.listener.apply(this.target, arguments);
+ }
+ }
+
+ function _onceWrap(target, type, listener) {
+ var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };
+ var wrapped = onceWrapper.bind(state);
+ wrapped.listener = listener;
+ state.wrapFn = wrapped;
+ return wrapped;
+ }
+
+ EventEmitter.prototype.once = function once(type, listener) {
+ checkListener(listener);
+ this.on(type, _onceWrap(this, type, listener));
+ return this;
+ };
+
+ EventEmitter.prototype.prependOnceListener =
+ function prependOnceListener(type, listener) {
+ checkListener(listener);
+ this.prependListener(type, _onceWrap(this, type, listener));
+ return this;
+ };
+
+ // Emits a 'removeListener' event if and only if the listener was removed.
+ EventEmitter.prototype.removeListener =
+ function removeListener(type, listener) {
+ var list, events, position, i, originalListener;
+
+ checkListener(listener);
+
+ events = this._events;
+ if (events === undefined)
+ return this;
+
+ list = events[type];
+ if (list === undefined)
+ return this;
+
+ if (list === listener || list.listener === listener) {
+ if (--this._eventsCount === 0)
+ this._events = Object.create(null);
+ else {
+ delete events[type];
+ if (events.removeListener)
+ this.emit('removeListener', type, list.listener || listener);
+ }
+ } else if (typeof list !== 'function') {
+ position = -1;
+
+ for (i = list.length - 1; i >= 0; i--) {
+ if (list[i] === listener || list[i].listener === listener) {
+ originalListener = list[i].listener;
+ position = i;
+ break;
+ }
+ }
+
+ if (position < 0)
+ return this;
+
+ if (position === 0)
+ list.shift();
+ else {
+ spliceOne(list, position);
+ }
+
+ if (list.length === 1)
+ events[type] = list[0];
+
+ if (events.removeListener !== undefined)
+ this.emit('removeListener', type, originalListener || listener);
+ }
+
+ return this;
+ };
+
+ EventEmitter.prototype.off = EventEmitter.prototype.removeListener;
+
+ EventEmitter.prototype.removeAllListeners =
+ function removeAllListeners(type) {
+ var listeners, events, i;
+
+ events = this._events;
+ if (events === undefined)
+ return this;
+
+ // not listening for removeListener, no need to emit
+ if (events.removeListener === undefined) {
+ if (arguments.length === 0) {
+ this._events = Object.create(null);
+ this._eventsCount = 0;
+ } else if (events[type] !== undefined) {
+ if (--this._eventsCount === 0)
+ this._events = Object.create(null);
+ else
+ delete events[type];
+ }
+ return this;
+ }
+
+ // emit removeListener for all listeners on all events
+ if (arguments.length === 0) {
+ var keys = Object.keys(events);
+ var key;
+ for (i = 0; i < keys.length; ++i) {
+ key = keys[i];
+ if (key === 'removeListener') continue;
+ this.removeAllListeners(key);
+ }
+ this.removeAllListeners('removeListener');
+ this._events = Object.create(null);
+ this._eventsCount = 0;
+ return this;
+ }
+
+ listeners = events[type];
+
+ if (typeof listeners === 'function') {
+ this.removeListener(type, listeners);
+ } else if (listeners !== undefined) {
+ // LIFO order
+ for (i = listeners.length - 1; i >= 0; i--) {
+ this.removeListener(type, listeners[i]);
+ }
+ }
+
+ return this;
+ };
+
+ function _listeners(target, type, unwrap) {
+ var events = target._events;
+
+ if (events === undefined)
+ return [];
+
+ var evlistener = events[type];
+ if (evlistener === undefined)
+ return [];
+
+ if (typeof evlistener === 'function')
+ return unwrap ? [evlistener.listener || evlistener] : [evlistener];
+
+ return unwrap ?
+ unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);
+ }
+
+ EventEmitter.prototype.listeners = function listeners(type) {
+ return _listeners(this, type, true);
+ };
+
+ EventEmitter.prototype.rawListeners = function rawListeners(type) {
+ return _listeners(this, type, false);
+ };
+
+ EventEmitter.listenerCount = function(emitter, type) {
+ if (typeof emitter.listenerCount === 'function') {
+ return emitter.listenerCount(type);
+ } else {
+ return listenerCount.call(emitter, type);
+ }
+ };
+
+ EventEmitter.prototype.listenerCount = listenerCount;
+ function listenerCount(type) {
+ var events = this._events;
+
+ if (events !== undefined) {
+ var evlistener = events[type];
+
+ if (typeof evlistener === 'function') {
+ return 1;
+ } else if (evlistener !== undefined) {
+ return evlistener.length;
+ }
+ }
+
+ return 0;
+ }
+
+ EventEmitter.prototype.eventNames = function eventNames() {
+ return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];
+ };
+
+ function arrayClone(arr, n) {
+ var copy = new Array(n);
+ for (var i = 0; i < n; ++i)
+ copy[i] = arr[i];
+ return copy;
+ }
+
+ function spliceOne(list, index) {
+ for (; index + 1 < list.length; index++)
+ list[index] = list[index + 1];
+ list.pop();
+ }
+
+ function unwrapListeners(arr) {
+ var ret = new Array(arr.length);
+ for (var i = 0; i < ret.length; ++i) {
+ ret[i] = arr[i].listener || arr[i];
+ }
+ return ret;
+ }
+
+ function once(emitter, name) {
+ return new Promise(function (resolve, reject) {
+ function errorListener(err) {
+ emitter.removeListener(name, resolver);
+ reject(err);
+ }
+
+ function resolver() {
+ if (typeof emitter.removeListener === 'function') {
+ emitter.removeListener('error', errorListener);
+ }
+ resolve([].slice.call(arguments));
+ }
+ eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });
+ if (name !== 'error') {
+ addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });
+ }
+ });
+ }
+
+ function addErrorHandlerIfEventEmitter(emitter, handler, flags) {
+ if (typeof emitter.on === 'function') {
+ eventTargetAgnosticAddListener(emitter, 'error', handler, flags);
+ }
+ }
+
+ function eventTargetAgnosticAddListener(emitter, name, listener, flags) {
+ if (typeof emitter.on === 'function') {
+ if (flags.once) {
+ emitter.once(name, listener);
+ } else {
+ emitter.on(name, listener);
+ }
+ } else if (typeof emitter.addEventListener === 'function') {
+ // EventTarget does not have `error` event semantics like Node
+ // EventEmitters, we do not listen for `error` events here.
+ emitter.addEventListener(name, function wrapListener(arg) {
+ // IE does not have builtin `{ once: true }` support so we
+ // have to do it manually.
+ if (flags.once) {
+ emitter.removeEventListener(name, wrapListener);
+ }
+ listener(arg);
+ });
+ } else {
+ throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type ' + typeof emitter);
+ }
+ }
+
+ // Unique ID creation requires a high quality random # generator. In the browser we therefore
+ // require the crypto API and do not support built-in fallback to lower quality random number
+ // generators (like Math.random()).
+ let getRandomValues;
+ const rnds8 = new Uint8Array(16);
+ function rng() {
+ // lazy load so that environments that need to polyfill have a chance to do so
+ if (!getRandomValues) {
+ // getRandomValues needs to be invoked in a context where "this" is a Crypto implementation.
+ getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);
+
+ if (!getRandomValues) {
+ throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');
+ }
+ }
+
+ return getRandomValues(rnds8);
+ }
+
+ /**
+ * Convert array of 16 byte values to UUID string format of the form:
+ * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
+ */
+
+ const byteToHex = [];
+
+ for (let i = 0; i < 256; ++i) {
+ byteToHex.push((i + 0x100).toString(16).slice(1));
+ }
+
+ function unsafeStringify(arr, offset = 0) {
+ // Note: Be careful editing this code! It's been tuned for performance
+ // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434
+ return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();
+ }
+
+ const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);
+ var native = {
+ randomUUID
+ };
+
+ function v4(options, buf, offset) {
+ if (native.randomUUID && !buf && !options) {
+ return native.randomUUID();
+ }
+
+ options = options || {};
+ const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`
+
+ rnds[6] = rnds[6] & 0x0f | 0x40;
+ rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided
+
+ if (buf) {
+ offset = offset || 0;
+
+ for (let i = 0; i < 16; ++i) {
+ buf[offset + i] = rnds[i];
+ }
+
+ return buf;
+ }
+
+ return unsafeStringify(rnds);
+ }
+
+ var browserExports = {};
+ var browser = {
+ get exports(){ return browserExports; },
+ set exports(v){ browserExports = v; },
+ };
+
+ /**
+ * Helpers.
+ */
+
+ var ms;
+ var hasRequiredMs;
+
+ function requireMs () {
+ if (hasRequiredMs) return ms;
+ hasRequiredMs = 1;
+ var s = 1000;
+ var m = s * 60;
+ var h = m * 60;
+ var d = h * 24;
+ var w = d * 7;
+ var y = d * 365.25;
+
+ /**
+ * Parse or format the given `val`.
+ *
+ * Options:
+ *
+ * - `long` verbose formatting [false]
+ *
+ * @param {String|Number} val
+ * @param {Object} [options]
+ * @throws {Error} throw an error if val is not a non-empty string or a number
+ * @return {String|Number}
+ * @api public
+ */
+
+ ms = function(val, options) {
+ options = options || {};
+ var type = typeof val;
+ if (type === 'string' && val.length > 0) {
+ return parse(val);
+ } else if (type === 'number' && isFinite(val)) {
+ return options.long ? fmtLong(val) : fmtShort(val);
+ }
+ throw new Error(
+ 'val is not a non-empty string or a valid number. val=' +
+ JSON.stringify(val)
+ );
+ };
+
+ /**
+ * Parse the given `str` and return milliseconds.
+ *
+ * @param {String} str
+ * @return {Number}
+ * @api private
+ */
+
+ function parse(str) {
+ str = String(str);
+ if (str.length > 100) {
+ return;
+ }
+ var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(
+ str
+ );
+ if (!match) {
+ return;
+ }
+ var n = parseFloat(match[1]);
+ var type = (match[2] || 'ms').toLowerCase();
+ switch (type) {
+ case 'years':
+ case 'year':
+ case 'yrs':
+ case 'yr':
+ case 'y':
+ return n * y;
+ case 'weeks':
+ case 'week':
+ case 'w':
+ return n * w;
+ case 'days':
+ case 'day':
+ case 'd':
+ return n * d;
+ case 'hours':
+ case 'hour':
+ case 'hrs':
+ case 'hr':
+ case 'h':
+ return n * h;
+ case 'minutes':
+ case 'minute':
+ case 'mins':
+ case 'min':
+ case 'm':
+ return n * m;
+ case 'seconds':
+ case 'second':
+ case 'secs':
+ case 'sec':
+ case 's':
+ return n * s;
+ case 'milliseconds':
+ case 'millisecond':
+ case 'msecs':
+ case 'msec':
+ case 'ms':
+ return n;
+ default:
+ return undefined;
+ }
+ }
+
+ /**
+ * Short format for `ms`.
+ *
+ * @param {Number} ms
+ * @return {String}
+ * @api private
+ */
+
+ function fmtShort(ms) {
+ var msAbs = Math.abs(ms);
+ if (msAbs >= d) {
+ return Math.round(ms / d) + 'd';
+ }
+ if (msAbs >= h) {
+ return Math.round(ms / h) + 'h';
+ }
+ if (msAbs >= m) {
+ return Math.round(ms / m) + 'm';
+ }
+ if (msAbs >= s) {
+ return Math.round(ms / s) + 's';
+ }
+ return ms + 'ms';
+ }
+
+ /**
+ * Long format for `ms`.
+ *
+ * @param {Number} ms
+ * @return {String}
+ * @api private
+ */
+
+ function fmtLong(ms) {
+ var msAbs = Math.abs(ms);
+ if (msAbs >= d) {
+ return plural(ms, msAbs, d, 'day');
+ }
+ if (msAbs >= h) {
+ return plural(ms, msAbs, h, 'hour');
+ }
+ if (msAbs >= m) {
+ return plural(ms, msAbs, m, 'minute');
+ }
+ if (msAbs >= s) {
+ return plural(ms, msAbs, s, 'second');
+ }
+ return ms + ' ms';
+ }
+
+ /**
+ * Pluralization helper.
+ */
+
+ function plural(ms, msAbs, n, name) {
+ var isPlural = msAbs >= n * 1.5;
+ return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');
+ }
+ return ms;
+ }
+
+ /**
+ * This is the common logic for both the Node.js and web browser
+ * implementations of `debug()`.
+ */
+
+ function setup(env) {
+ createDebug.debug = createDebug;
+ createDebug.default = createDebug;
+ createDebug.coerce = coerce;
+ createDebug.disable = disable;
+ createDebug.enable = enable;
+ createDebug.enabled = enabled;
+ createDebug.humanize = requireMs();
+ createDebug.destroy = destroy;
+
+ Object.keys(env).forEach(key => {
+ createDebug[key] = env[key];
+ });
+
+ /**
+ * The currently active debug mode names, and names to skip.
+ */
+
+ createDebug.names = [];
+ createDebug.skips = [];
+
+ /**
+ * Map of special "%n" handling functions, for the debug "format" argument.
+ *
+ * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N".
+ */
+ createDebug.formatters = {};
+
+ /**
+ * Selects a color for a debug namespace
+ * @param {String} namespace The namespace string for the debug instance to be colored
+ * @return {Number|String} An ANSI color code for the given namespace
+ * @api private
+ */
+ function selectColor(namespace) {
+ let hash = 0;
+
+ for (let i = 0; i < namespace.length; i++) {
+ hash = ((hash << 5) - hash) + namespace.charCodeAt(i);
+ hash |= 0; // Convert to 32bit integer
+ }
+
+ return createDebug.colors[Math.abs(hash) % createDebug.colors.length];
+ }
+ createDebug.selectColor = selectColor;
+
+ /**
+ * Create a debugger with the given `namespace`.
+ *
+ * @param {String} namespace
+ * @return {Function}
+ * @api public
+ */
+ function createDebug(namespace) {
+ let prevTime;
+ let enableOverride = null;
+ let namespacesCache;
+ let enabledCache;
+
+ function debug(...args) {
+ // Disabled?
+ if (!debug.enabled) {
+ return;
+ }
+
+ const self = debug;
+
+ // Set `diff` timestamp
+ const curr = Number(new Date());
+ const ms = curr - (prevTime || curr);
+ self.diff = ms;
+ self.prev = prevTime;
+ self.curr = curr;
+ prevTime = curr;
+
+ args[0] = createDebug.coerce(args[0]);
+
+ if (typeof args[0] !== 'string') {
+ // Anything else let's inspect with %O
+ args.unshift('%O');
+ }
+
+ // Apply any `formatters` transformations
+ let index = 0;
+ args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {
+ // If we encounter an escaped % then don't increase the array index
+ if (match === '%%') {
+ return '%';
+ }
+ index++;
+ const formatter = createDebug.formatters[format];
+ if (typeof formatter === 'function') {
+ const val = args[index];
+ match = formatter.call(self, val);
+
+ // Now we need to remove `args[index]` since it's inlined in the `format`
+ args.splice(index, 1);
+ index--;
+ }
+ return match;
+ });
+
+ // Apply env-specific formatting (colors, etc.)
+ createDebug.formatArgs.call(self, args);
+
+ const logFn = self.log || createDebug.log;
+ logFn.apply(self, args);
+ }
+
+ debug.namespace = namespace;
+ debug.useColors = createDebug.useColors();
+ debug.color = createDebug.selectColor(namespace);
+ debug.extend = extend;
+ debug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.
+
+ Object.defineProperty(debug, 'enabled', {
+ enumerable: true,
+ configurable: false,
+ get: () => {
+ if (enableOverride !== null) {
+ return enableOverride;
+ }
+ if (namespacesCache !== createDebug.namespaces) {
+ namespacesCache = createDebug.namespaces;
+ enabledCache = createDebug.enabled(namespace);
+ }
+
+ return enabledCache;
+ },
+ set: v => {
+ enableOverride = v;
+ }
+ });
+
+ // Env-specific initialization logic for debug instances
+ if (typeof createDebug.init === 'function') {
+ createDebug.init(debug);
+ }
+
+ return debug;
+ }
+
+ function extend(namespace, delimiter) {
+ const newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);
+ newDebug.log = this.log;
+ return newDebug;
+ }
+
+ /**
+ * Enables a debug mode by namespaces. This can include modes
+ * separated by a colon and wildcards.
+ *
+ * @param {String} namespaces
+ * @api public
+ */
+ function enable(namespaces) {
+ createDebug.save(namespaces);
+ createDebug.namespaces = namespaces;
+
+ createDebug.names = [];
+ createDebug.skips = [];
+
+ let i;
+ const split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/);
+ const len = split.length;
+
+ for (i = 0; i < len; i++) {
+ if (!split[i]) {
+ // ignore empty strings
+ continue;
+ }
+
+ namespaces = split[i].replace(/\*/g, '.*?');
+
+ if (namespaces[0] === '-') {
+ createDebug.skips.push(new RegExp('^' + namespaces.slice(1) + '$'));
+ } else {
+ createDebug.names.push(new RegExp('^' + namespaces + '$'));
+ }
+ }
+ }
+
+ /**
+ * Disable debug output.
+ *
+ * @return {String} namespaces
+ * @api public
+ */
+ function disable() {
+ const namespaces = [
+ ...createDebug.names.map(toNamespace),
+ ...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)
+ ].join(',');
+ createDebug.enable('');
+ return namespaces;
+ }
+
+ /**
+ * Returns true if the given mode name is enabled, false otherwise.
+ *
+ * @param {String} name
+ * @return {Boolean}
+ * @api public
+ */
+ function enabled(name) {
+ if (name[name.length - 1] === '*') {
+ return true;
+ }
+
+ let i;
+ let len;
+
+ for (i = 0, len = createDebug.skips.length; i < len; i++) {
+ if (createDebug.skips[i].test(name)) {
+ return false;
+ }
+ }
+
+ for (i = 0, len = createDebug.names.length; i < len; i++) {
+ if (createDebug.names[i].test(name)) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * Convert regexp to namespace
+ *
+ * @param {RegExp} regxep
+ * @return {String} namespace
+ * @api private
+ */
+ function toNamespace(regexp) {
+ return regexp.toString()
+ .substring(2, regexp.toString().length - 2)
+ .replace(/\.\*\?$/, '*');
+ }
+
+ /**
+ * Coerce `val`.
+ *
+ * @param {Mixed} val
+ * @return {Mixed}
+ * @api private
+ */
+ function coerce(val) {
+ if (val instanceof Error) {
+ return val.stack || val.message;
+ }
+ return val;
+ }
+
+ /**
+ * XXX DO NOT USE. This is a temporary stub function.
+ * XXX It WILL be removed in the next major release.
+ */
+ function destroy() {
+ console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');
+ }
+
+ createDebug.enable(createDebug.load());
+
+ return createDebug;
+ }
+
+ var common = setup;
+
+ /* eslint-env browser */
+
+ (function (module, exports) {
+ /**
+ * This is the web browser implementation of `debug()`.
+ */
+
+ exports.formatArgs = formatArgs;
+ exports.save = save;
+ exports.load = load;
+ exports.useColors = useColors;
+ exports.storage = localstorage();
+ exports.destroy = (() => {
+ let warned = false;
+
+ return () => {
+ if (!warned) {
+ warned = true;
+ console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');
+ }
+ };
+ })();
+
+ /**
+ * Colors.
+ */
+
+ exports.colors = [
+ '#0000CC',
+ '#0000FF',
+ '#0033CC',
+ '#0033FF',
+ '#0066CC',
+ '#0066FF',
+ '#0099CC',
+ '#0099FF',
+ '#00CC00',
+ '#00CC33',
+ '#00CC66',
+ '#00CC99',
+ '#00CCCC',
+ '#00CCFF',
+ '#3300CC',
+ '#3300FF',
+ '#3333CC',
+ '#3333FF',
+ '#3366CC',
+ '#3366FF',
+ '#3399CC',
+ '#3399FF',
+ '#33CC00',
+ '#33CC33',
+ '#33CC66',
+ '#33CC99',
+ '#33CCCC',
+ '#33CCFF',
+ '#6600CC',
+ '#6600FF',
+ '#6633CC',
+ '#6633FF',
+ '#66CC00',
+ '#66CC33',
+ '#9900CC',
+ '#9900FF',
+ '#9933CC',
+ '#9933FF',
+ '#99CC00',
+ '#99CC33',
+ '#CC0000',
+ '#CC0033',
+ '#CC0066',
+ '#CC0099',
+ '#CC00CC',
+ '#CC00FF',
+ '#CC3300',
+ '#CC3333',
+ '#CC3366',
+ '#CC3399',
+ '#CC33CC',
+ '#CC33FF',
+ '#CC6600',
+ '#CC6633',
+ '#CC9900',
+ '#CC9933',
+ '#CCCC00',
+ '#CCCC33',
+ '#FF0000',
+ '#FF0033',
+ '#FF0066',
+ '#FF0099',
+ '#FF00CC',
+ '#FF00FF',
+ '#FF3300',
+ '#FF3333',
+ '#FF3366',
+ '#FF3399',
+ '#FF33CC',
+ '#FF33FF',
+ '#FF6600',
+ '#FF6633',
+ '#FF9900',
+ '#FF9933',
+ '#FFCC00',
+ '#FFCC33'
+ ];
+
+ /**
+ * Currently only WebKit-based Web Inspectors, Firefox >= v31,
+ * and the Firebug extension (any Firefox version) are known
+ * to support "%c" CSS customizations.
+ *
+ * TODO: add a `localStorage` variable to explicitly enable/disable colors
+ */
+
+ // eslint-disable-next-line complexity
+ function useColors() {
+ // NB: In an Electron preload script, document will be defined but not fully
+ // initialized. Since we know we're in Chrome, we'll just detect this case
+ // explicitly
+ if (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {
+ return true;
+ }
+
+ // Internet Explorer and Edge do not support colors.
+ if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) {
+ return false;
+ }
+
+ // Is webkit? http://stackoverflow.com/a/16459606/376773
+ // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632
+ return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||
+ // Is firebug? http://stackoverflow.com/a/398120/376773
+ (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||
+ // Is firefox >= v31?
+ // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
+ (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||
+ // Double check webkit in userAgent just in case we are in a worker
+ (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/));
+ }
+
+ /**
+ * Colorize log arguments if enabled.
+ *
+ * @api public
+ */
+
+ function formatArgs(args) {
+ args[0] = (this.useColors ? '%c' : '') +
+ this.namespace +
+ (this.useColors ? ' %c' : ' ') +
+ args[0] +
+ (this.useColors ? '%c ' : ' ') +
+ '+' + module.exports.humanize(this.diff);
+
+ if (!this.useColors) {
+ return;
+ }
+
+ const c = 'color: ' + this.color;
+ args.splice(1, 0, c, 'color: inherit');
+
+ // The final "%c" is somewhat tricky, because there could be other
+ // arguments passed either before or after the %c, so we need to
+ // figure out the correct index to insert the CSS into
+ let index = 0;
+ let lastC = 0;
+ args[0].replace(/%[a-zA-Z%]/g, match => {
+ if (match === '%%') {
+ return;
+ }
+ index++;
+ if (match === '%c') {
+ // We only are interested in the *last* %c
+ // (the user may have provided their own)
+ lastC = index;
+ }
+ });
+
+ args.splice(lastC, 0, c);
+ }
+
+ /**
+ * Invokes `console.debug()` when available.
+ * No-op when `console.debug` is not a "function".
+ * If `console.debug` is not available, falls back
+ * to `console.log`.
+ *
+ * @api public
+ */
+ exports.log = console.debug || console.log || (() => {});
+
+ /**
+ * Save `namespaces`.
+ *
+ * @param {String} namespaces
+ * @api private
+ */
+ function save(namespaces) {
+ try {
+ if (namespaces) {
+ exports.storage.setItem('debug', namespaces);
+ } else {
+ exports.storage.removeItem('debug');
+ }
+ } catch (error) {
+ // Swallow
+ // XXX (@Qix-) should we be logging these?
+ }
+ }
+
+ /**
+ * Load `namespaces`.
+ *
+ * @return {String} returns the previously persisted debug modes
+ * @api private
+ */
+ function load() {
+ let r;
+ try {
+ r = exports.storage.getItem('debug');
+ } catch (error) {
+ // Swallow
+ // XXX (@Qix-) should we be logging these?
+ }
+
+ // If debug isn't set in LS, and we're in Electron, try to load $DEBUG
+ if (!r && typeof process !== 'undefined' && 'env' in process) {
+ r = process.env.DEBUG;
+ }
+
+ return r;
+ }
+
+ /**
+ * Localstorage attempts to return the localstorage.
+ *
+ * This is necessary because safari throws
+ * when a user disables cookies/localstorage
+ * and you attempt to access it.
+ *
+ * @return {LocalStorage}
+ * @api private
+ */
+
+ function localstorage() {
+ try {
+ // TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context
+ // The Browser also has localStorage in the global context.
+ return localStorage;
+ } catch (error) {
+ // Swallow
+ // XXX (@Qix-) should we be logging these?
+ }
+ }
+
+ module.exports = common(exports);
+
+ const {formatters} = module.exports;
+
+ /**
+ * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.
+ */
+
+ formatters.j = function (v) {
+ try {
+ return JSON.stringify(v);
+ } catch (error) {
+ return '[UnexpectedJSONParseError]: ' + error.message;
+ }
+ };
+ } (browser, browserExports));
+
+ var debug = browserExports;
+
+ const log = new debug('nostr:adapter');
+ const profilesLog = new debug('nostr:adapter:profiles');
+ const writeLog = new debug('nostr:adapter:write');
+
+ class NstrAdapter {
+ relayStatus = {};
+ #pool = null;
+ #messages = {};
+ #eventEmitter = new eventsExports();
+ #handlers = {}
+ tags;
+ referenceTags;
+ type;
+ #websiteOwnerPubkey;
+ relayUrls = [];
+
+ #profileRequestQueue = [];
+ #requestedProfiles = [];
+ #profileRequestTimer;
+ #delayedSubscriptions = {};
+ #delayedSubscriptionTimeouts = {};
+
+ constructor(clientPubkey, {tags, referenceTags, type='DM', websiteOwnerPubkey, relays} = {}) {
+ this.pubkey = clientPubkey;
+ this.#websiteOwnerPubkey = websiteOwnerPubkey;
+ this.relayUrls = relays;
+
+ if (type) {
+ this.setChatConfiguration(type, tags, referenceTags);
+ }
+ }
+
+ setChatConfiguration(type, tags, referenceTags) {
+ log('chatConfiguration', {type, tags, referenceTags});
+ this.type = type;
+ this.tags = tags;
+ this.referenceTags = referenceTags;
+
+ // handle connection
+ if (this.#pool) { this.#disconnect(); }
+ this.#connect();
+
+ let filters = [];
+
+ // handle subscriptions
+ // if this is DM type then subscribe to chats with this website owner
+ switch (this.type) {
+ case 'DM':
+ filters.push({
+ kinds: [4],
+ '#p': [this.pubkey, this.#websiteOwnerPubkey],
+ 'authors': [this.pubkey, this.#websiteOwnerPubkey]
+ });
+ break;
+ case 'GLOBAL':
+ if (this.tags && this.tags.length > 0) {
+ filters.push({kinds: [1], '#t': this.tags, limit: 20});
+ }
+ if (this.referenceTags && this.referenceTags.length > 0) {
+ filters.push({kinds: [1], '#r': this.referenceTags, limit: 20});
+ }
+
+ break;
+ }
+
+ if (filters && filters.length > 0) {
+ this.subscribe(filters, (e) => { this.#emitMessage(e); });
+ }
+ }
+
+ async getPubKey() {
+ return this.pubkey;
+ }
+
+ on(event, callback) {
+ this.#eventEmitter.on(event, callback);
+ }
+
+ /**
+ * Send a message to the relay
+ * @param {String} message - The message to send
+ */
+ async send(message, {tagPubKeys, tags} = {}) {
+ let event;
+
+ if (!tags) { tags = [];}
+
+ if (this.type === 'DM') {
+ event = await this.sendKind4(message, {tagPubKeys, tags});
+ } else {
+ event = await this.sendKind1(message, {tagPubKeys, tags});
+ }
+
+ event.id = getEventHash(event);
+ const signedEvent = await this.signEvent(event);
+
+ this.#_publish(signedEvent);
+
+ return event.id;
+ }
+
+ async sendKind4(message, {tagPubKeys, tags} = {}) {
+ let ciphertext = await this.encrypt(this.#websiteOwnerPubkey, message);
+ let event = {
+ kind: 4,
+ pubkey: this.pubkey,
+ created_at: Math.floor(Date.now() / 1000),
+ content: ciphertext,
+ tags: [
+ ['p', this.#websiteOwnerPubkey],
+ ...tags
+ ],
+ };
+
+ return event;
+ }
+
+ async sendKind1(message, {tagPubKeys, tags} = {}) {
+ if (!tags) { tags = []; }
+
+ if (this.tags) {
+ this.tags.forEach((t) => tags.push(['t', t]));
+ }
+
+ if (this.referenceTags) {
+ this.referenceTags.forEach((t) => tags.push(['r', t]));
+ }
+
+ let event = {
+ kind: 1,
+ created_at: Math.floor(Date.now() / 1000),
+ tags,
+ content: message,
+ pubkey: this.pubkey,
+ };
+
+ if (tagPubKeys) {
+ for (let pubkey of tagPubKeys) {
+ if (pubkey) {
+ event.tags.push(['p', pubkey]);
+ }
+ }
+ }
+
+ event.id = getEventHash(event);
+ this.subscribeToEventAndResponses(event.id);
+
+ return event;
+ }
+
+ async #_publish(event) {
+ writeLog('publish', event);
+ this.#pool.send([ 'EVENT', event ]);
+ }
+
+ async onEvent(event, messageCallback) {
+ this.#addProfileRequest(event.pubkey);
+
+ messageCallback(event);
+ }
+
+ async delayedSubscribe(filters, family, timeout) {
+ this.#delayedSubscriptions[family] = this.#delayedSubscriptions[family] || [];
+ this.#delayedSubscriptions[family].push(filters);
+
+ if (!this.#delayedSubscriptionTimeouts[family]) {
+ this.#delayedSubscriptionTimeouts[family] = setTimeout(() => {
+ delete this.#delayedSubscriptionTimeouts[family];
+ filters = this.#delayedSubscriptions[family];
+ delete this.#delayedSubscriptions[family];
+
+ this.subscribe(filters, (e) => { this.#emitMessage(e);});
+ }, timeout);
+ }
+ }
+
+ async subscribe(filters, messageCallback=null) {
+ if (!messageCallback) { messageCallback = (e) => { this.#emitMessage(e); }; }
+ return this.#_subscribe(filters, messageCallback)
+ }
+
+ async #_subscribe(filters, messageCallback) {
+ const subId = v4();
+ this.#handlers[subId] = messageCallback;
+ if (!Array.isArray(filters)) { filters = [filters]; }
+ this.#pool.subscribe(subId, filters);
+ this.#pool.on('event', (relay, recSubId, e) => {
+ this.onEvent(e, this.#handlers[recSubId]);
+ });
+
+ return subId;
+ }
+
+ async #emitMessage(event) {
+ // has already been emitted
+ if (this.#messages[event.id]) {
+ return;
+ }
+
+ this.#messages[event.id] = true;
+
+ // decrypt
+ if (event.kind === 4) {
+ event.content = await this.decrypt(this.#websiteOwnerPubkey, event.content);
+ }
+
+ if (event.kind === 1) {
+ if (!event.tags.find(t => t[0] === 'e')) {
+ // a top level message that we should subscribe to since responses won't tag the url
+ this.subscribe({ kinds: [1], '#e': [event.id] });
+ }
+ }
+
+ let deletedEvents = [];
+ if (event.kind === 5) {
+ deletedEvents = event.tags.filter(tag => tag[0] === 'e').map(tag => tag[1]);
+ }
+
+ switch (event.kind) {
+ case 1: this.#eventEmitter.emit('message', event); break;
+ case 4: this.#eventEmitter.emit('message', event); break;
+ case 5: this.#eventEmitter.emit('deleted', deletedEvents); break;
+ case 7: this.#eventEmitter.emit('reaction', event); break;
+ default:
+ // alert('unknown event kind ' + event.kind)
+ console.log('unknown event kind', event.kind, event);
+ }
+
+ }
+
+ subscribeToEventAndResponses(eventId) {
+ this.subscribe([
+ {ids: [eventId]},
+ {'#e': [eventId]},
+ ], (e) => {
+ this.#emitMessage(e);
+ // this.subscribeToResponses(e)
+ });
+ }
+
+ subscribeToResponses(event) {
+ this.subscribe([
+ {'#e': [event.id]},
+ ], (e) => {
+ this.#emitMessage(e);
+ this.subscribeToResponses(e);
+ });
+ }
+
+ /**
+ * Connect to the relay
+ */
+ #connect() {
+ this.relayUrls.forEach((url) => {
+ this.relayStatus[url] = 'disconnected';
+ });
+ this.#eventEmitter.emit('connectivity', this.relayStatus);
+
+ // console.log('connecting to relay', this.relayUrls);
+ this.#pool = new relayPool(this.relayUrls);
+ this.#pool.on('open', (relay) => {
+ // console.log(`connected to ${relay.url}`, new Date())
+ this.relayStatus[relay.url] = 'connected';
+ this.#eventEmitter.emit('connectivity', this.relayStatus);
+ });
+
+ this.#pool.on('error', (relay, r, e) => {
+ this.relayStatus[relay.url] = 'error';
+ this.#eventEmitter.emit('connectivity', this.relayStatus);
+ console.log('error from relay', relay.url, r, e);
+ });
+
+ this.#pool.on('close', (relay, r) => {
+ this.relayStatus[relay.url] = 'closed';
+ this.#eventEmitter.emit('connectivity', this.relayStatus);
+ console.log('error from relay', relay.url, r);
+ });
+
+ this.#pool.on('notice', (relay, r) => {
+ console.log('notice', relay.url, r);
+ });
+ }
+
+ #disconnect() {
+ this.relayUrls.forEach((url) => {
+ this.relayStatus[url] = 'disconnected';
+ });
+ this.#eventEmitter.emit('connectivity', this.relayStatus);
+ this.#pool.close();
+ this.#pool = null;
+ }
+
+ //
+ //
+ // Profiles
+ //
+ //
+ reqProfile(pubkey) {
+ this.#addProfileRequest(pubkey);
+ }
+
+ #addProfileRequest(pubkey, event=null) {
+ if (this.#profileRequestQueue.includes(pubkey)) { return; }
+ if (this.#requestedProfiles.includes(pubkey)) { return; }
+ this.#profileRequestQueue.push(pubkey);
+ this.#requestedProfiles.push(pubkey);
+
+ if (!this.#profileRequestTimer) {
+ this.#profileRequestTimer = setTimeout(() => {
+ this.#profileRequestTimer = null;
+ this.#requestProfiles();
+ }, 500);
+ }
+ }
+
+ /**
+ * Send request for all queued profiles
+ */
+ async #requestProfiles() {
+ if (this.#profileRequestQueue.length > 0) {
+ profilesLog('requesting profiles', this.#profileRequestQueue);
+
+ // send request
+ const subId = await this.subscribe({ kinds: [0], authors: this.#profileRequestQueue }, (e) => {
+ this.#processReceivedProfile(e);
+ });
+ profilesLog('subscribed to request', {subId});
+ this.#profileRequestQueue = [];
+
+ setTimeout(() => {
+ profilesLog('unsubscribing from request', {subId});
+ this.#pool.unsubscribe(subId);
+ }, 5000);
+ }
+ }
+
+ #processReceivedProfile(event) {
+ profilesLog('received profile', event);
+ let profile;
+ try {
+ profile = JSON.parse(event.content);
+ } catch (e) {
+ profilesLog('failed to parse profile', event);
+ return;
+ }
+ this.#eventEmitter.emit('profile', {pubkey: event.pubkey, profile});
+ }
+ }
+
+ class NstrAdapterNip07 extends NstrAdapter {
+ constructor(pubkey, adapterConfig={}) {
+ super(pubkey, adapterConfig);
+ }
+
+ async signEvent(event) {
+ return await window.nostr.signEvent(event);
+ }
+
+ async encrypt(destPubkey, message) {
+ return await window.nostr.nip04.encrypt(destPubkey, message);
+ }
+
+ async decrypt(destPubkey, message) {
+ return await window.nostr.nip04.decrypt(destPubkey, message);
+ }
+ }
+
+ function _regeneratorRuntime() {
+ _regeneratorRuntime = function () {
+ return exports;
+ };
+ var exports = {},
+ Op = Object.prototype,
+ hasOwn = Op.hasOwnProperty,
+ defineProperty = Object.defineProperty || function (obj, key, desc) {
+ obj[key] = desc.value;
+ },
+ $Symbol = "function" == typeof Symbol ? Symbol : {},
+ iteratorSymbol = $Symbol.iterator || "@@iterator",
+ asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator",
+ toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag";
+ function define(obj, key, value) {
+ return Object.defineProperty(obj, key, {
+ value: value,
+ enumerable: !0,
+ configurable: !0,
+ writable: !0
+ }), obj[key];
+ }
+ try {
+ define({}, "");
+ } catch (err) {
+ define = function (obj, key, value) {
+ return obj[key] = value;
+ };
+ }
+ function wrap(innerFn, outerFn, self, tryLocsList) {
+ var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,
+ generator = Object.create(protoGenerator.prototype),
+ context = new Context(tryLocsList || []);
+ return defineProperty(generator, "_invoke", {
+ value: makeInvokeMethod(innerFn, self, context)
+ }), generator;
+ }
+ function tryCatch(fn, obj, arg) {
+ try {
+ return {
+ type: "normal",
+ arg: fn.call(obj, arg)
+ };
+ } catch (err) {
+ return {
+ type: "throw",
+ arg: err
+ };
+ }
+ }
+ exports.wrap = wrap;
+ var ContinueSentinel = {};
+ function Generator() {}
+ function GeneratorFunction() {}
+ function GeneratorFunctionPrototype() {}
+ var IteratorPrototype = {};
+ define(IteratorPrototype, iteratorSymbol, function () {
+ return this;
+ });
+ var getProto = Object.getPrototypeOf,
+ NativeIteratorPrototype = getProto && getProto(getProto(values([])));
+ NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);
+ var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);
+ function defineIteratorMethods(prototype) {
+ ["next", "throw", "return"].forEach(function (method) {
+ define(prototype, method, function (arg) {
+ return this._invoke(method, arg);
+ });
+ });
+ }
+ function AsyncIterator(generator, PromiseImpl) {
+ function invoke(method, arg, resolve, reject) {
+ var record = tryCatch(generator[method], generator, arg);
+ if ("throw" !== record.type) {
+ var result = record.arg,
+ value = result.value;
+ return value && "object" == typeof value && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) {
+ invoke("next", value, resolve, reject);
+ }, function (err) {
+ invoke("throw", err, resolve, reject);
+ }) : PromiseImpl.resolve(value).then(function (unwrapped) {
+ result.value = unwrapped, resolve(result);
+ }, function (error) {
+ return invoke("throw", error, resolve, reject);
+ });
+ }
+ reject(record.arg);
+ }
+ var previousPromise;
+ defineProperty(this, "_invoke", {
+ value: function (method, arg) {
+ function callInvokeWithMethodAndArg() {
+ return new PromiseImpl(function (resolve, reject) {
+ invoke(method, arg, resolve, reject);
+ });
+ }
+ return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();
+ }
+ });
+ }
+ function makeInvokeMethod(innerFn, self, context) {
+ var state = "suspendedStart";
+ return function (method, arg) {
+ if ("executing" === state) throw new Error("Generator is already running");
+ if ("completed" === state) {
+ if ("throw" === method) throw arg;
+ return doneResult();
+ }
+ for (context.method = method, context.arg = arg;;) {
+ var delegate = context.delegate;
+ if (delegate) {
+ var delegateResult = maybeInvokeDelegate(delegate, context);
+ if (delegateResult) {
+ if (delegateResult === ContinueSentinel) continue;
+ return delegateResult;
+ }
+ }
+ if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) {
+ if ("suspendedStart" === state) throw state = "completed", context.arg;
+ context.dispatchException(context.arg);
+ } else "return" === context.method && context.abrupt("return", context.arg);
+ state = "executing";
+ var record = tryCatch(innerFn, self, context);
+ if ("normal" === record.type) {
+ if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue;
+ return {
+ value: record.arg,
+ done: context.done
+ };
+ }
+ "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg);
+ }
+ };
+ }
+ function maybeInvokeDelegate(delegate, context) {
+ var methodName = context.method,
+ method = delegate.iterator[methodName];
+ if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator.return && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel;
+ var record = tryCatch(method, delegate.iterator, context.arg);
+ if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel;
+ var info = record.arg;
+ return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel);
+ }
+ function pushTryEntry(locs) {
+ var entry = {
+ tryLoc: locs[0]
+ };
+ 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);
+ }
+ function resetTryEntry(entry) {
+ var record = entry.completion || {};
+ record.type = "normal", delete record.arg, entry.completion = record;
+ }
+ function Context(tryLocsList) {
+ this.tryEntries = [{
+ tryLoc: "root"
+ }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);
+ }
+ function values(iterable) {
+ if (iterable) {
+ var iteratorMethod = iterable[iteratorSymbol];
+ if (iteratorMethod) return iteratorMethod.call(iterable);
+ if ("function" == typeof iterable.next) return iterable;
+ if (!isNaN(iterable.length)) {
+ var i = -1,
+ next = function next() {
+ for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;
+ return next.value = undefined, next.done = !0, next;
+ };
+ return next.next = next;
+ }
+ }
+ return {
+ next: doneResult
+ };
+ }
+ function doneResult() {
+ return {
+ value: undefined,
+ done: !0
+ };
+ }
+ return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", {
+ value: GeneratorFunctionPrototype,
+ configurable: !0
+ }), defineProperty(GeneratorFunctionPrototype, "constructor", {
+ value: GeneratorFunction,
+ configurable: !0
+ }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) {
+ var ctor = "function" == typeof genFun && genFun.constructor;
+ return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name));
+ }, exports.mark = function (genFun) {
+ return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun;
+ }, exports.awrap = function (arg) {
+ return {
+ __await: arg
+ };
+ }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {
+ return this;
+ }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {
+ void 0 === PromiseImpl && (PromiseImpl = Promise);
+ var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);
+ return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {
+ return result.done ? result.value : iter.next();
+ });
+ }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () {
+ return this;
+ }), define(Gp, "toString", function () {
+ return "[object Generator]";
+ }), exports.keys = function (val) {
+ var object = Object(val),
+ keys = [];
+ for (var key in object) keys.push(key);
+ return keys.reverse(), function next() {
+ for (; keys.length;) {
+ var key = keys.pop();
+ if (key in object) return next.value = key, next.done = !1, next;
+ }
+ return next.done = !0, next;
+ };
+ }, exports.values = values, Context.prototype = {
+ constructor: Context,
+ reset: function (skipTempReset) {
+ if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);
+ },
+ stop: function () {
+ this.done = !0;
+ var rootRecord = this.tryEntries[0].completion;
+ if ("throw" === rootRecord.type) throw rootRecord.arg;
+ return this.rval;
+ },
+ dispatchException: function (exception) {
+ if (this.done) throw exception;
+ var context = this;
+ function handle(loc, caught) {
+ return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught;
+ }
+ for (var i = this.tryEntries.length - 1; i >= 0; --i) {
+ var entry = this.tryEntries[i],
+ record = entry.completion;
+ if ("root" === entry.tryLoc) return handle("end");
+ if (entry.tryLoc <= this.prev) {
+ var hasCatch = hasOwn.call(entry, "catchLoc"),
+ hasFinally = hasOwn.call(entry, "finallyLoc");
+ if (hasCatch && hasFinally) {
+ if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);
+ if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);
+ } else if (hasCatch) {
+ if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);
+ } else {
+ if (!hasFinally) throw new Error("try statement without catch or finally");
+ if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);
+ }
+ }
+ }
+ },
+ abrupt: function (type, arg) {
+ for (var i = this.tryEntries.length - 1; i >= 0; --i) {
+ var entry = this.tryEntries[i];
+ if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) {
+ var finallyEntry = entry;
+ break;
+ }
+ }
+ finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);
+ var record = finallyEntry ? finallyEntry.completion : {};
+ return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);
+ },
+ complete: function (record, afterLoc) {
+ if ("throw" === record.type) throw record.arg;
+ return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;
+ },
+ finish: function (finallyLoc) {
+ for (var i = this.tryEntries.length - 1; i >= 0; --i) {
+ var entry = this.tryEntries[i];
+ if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;
+ }
+ },
+ catch: function (tryLoc) {
+ for (var i = this.tryEntries.length - 1; i >= 0; --i) {
+ var entry = this.tryEntries[i];
+ if (entry.tryLoc === tryLoc) {
+ var record = entry.completion;
+ if ("throw" === record.type) {
+ var thrown = record.arg;
+ resetTryEntry(entry);
+ }
+ return thrown;
+ }
+ }
+ throw new Error("illegal catch attempt");
+ },
+ delegateYield: function (iterable, resultName, nextLoc) {
+ return this.delegate = {
+ iterator: values(iterable),
+ resultName: resultName,
+ nextLoc: nextLoc
+ }, "next" === this.method && (this.arg = undefined), ContinueSentinel;
+ }
+ }, exports;
+ }
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
+ try {
+ var info = gen[key](arg);
+ var value = info.value;
+ } catch (error) {
+ reject(error);
+ return;
+ }
+ if (info.done) {
+ resolve(value);
+ } else {
+ Promise.resolve(value).then(_next, _throw);
+ }
+ }
+ function _asyncToGenerator(fn) {
+ return function () {
+ var self = this,
+ args = arguments;
+ return new Promise(function (resolve, reject) {
+ var gen = fn.apply(self, args);
+ function _next(value) {
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
+ }
+ function _throw(err) {
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
+ }
+ _next(undefined);
+ });
+ };
+ }
+ function _extends() {
+ _extends = Object.assign ? Object.assign.bind() : function (target) {
+ for (var i = 1; i < arguments.length; i++) {
+ var source = arguments[i];
+ for (var key in source) {
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
+ target[key] = source[key];
+ }
+ }
+ }
+ return target;
+ };
+ return _extends.apply(this, arguments);
+ }
+
+ var NostrRPC = /*#__PURE__*/function () {
+ function NostrRPC(opts) {
+ // events
+ this.events = new eventsExports();
+ this.relay = opts.relay || 'wss://nostr.vulpem.com';
+ this.self = {
+ pubkey: getPublicKey(opts.secretKey),
+ secret: opts.secretKey
+ };
+ }
+ var _proto = NostrRPC.prototype;
+ _proto.call = /*#__PURE__*/function () {
+ var _call = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(_ref, opts) {
+ var _this = this;
+ var target, _ref$request, _ref$request$id, id, method, _ref$request$params, params, relay, request, event;
+ return _regeneratorRuntime().wrap(function _callee3$(_context3) {
+ while (1) switch (_context3.prev = _context3.next) {
+ case 0:
+ target = _ref.target, _ref$request = _ref.request, _ref$request$id = _ref$request.id, id = _ref$request$id === void 0 ? /*#__PURE__*/randomID() : _ref$request$id, method = _ref$request.method, _ref$request$params = _ref$request.params, params = _ref$request$params === void 0 ? [] : _ref$request$params;
+ _context3.next = 3;
+ return connectToRelay(this.relay);
+ case 3:
+ relay = _context3.sent;
+ // prepare request to be sent
+ request = prepareRequest(id, method, params);
+ _context3.next = 7;
+ return prepareEvent(this.self.secret, target, request);
+ case 7:
+ event = _context3.sent;
+ return _context3.abrupt("return", new Promise( /*#__PURE__*/function () {
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(resolve, reject) {
+ var sub;
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
+ while (1) switch (_context2.prev = _context2.next) {
+ case 0:
+ sub = relay.sub([{
+ kinds: [24133],
+ authors: [target],
+ '#p': [_this.self.pubkey],
+ limit: 1
+ }]);
+ _context2.next = 3;
+ return broadcastToRelay(relay, event, true);
+ case 3:
+ // skip waiting for response from remote
+ if (opts && opts.skipResponse === true) resolve();
+ sub.on('event', /*#__PURE__*/function () {
+ var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(event) {
+ var payload, plaintext;
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
+ while (1) switch (_context.prev = _context.next) {
+ case 0:
+ _context.prev = 0;
+ _context.next = 3;
+ return nip04_exports.decrypt(_this.self.secret, event.pubkey, event.content);
+ case 3:
+ plaintext = _context.sent;
+ if (plaintext) {
+ _context.next = 6;
+ break;
+ }
+ throw new Error('failed to decrypt event');
+ case 6:
+ payload = JSON.parse(plaintext);
+ _context.next = 12;
+ break;
+ case 9:
+ _context.prev = 9;
+ _context.t0 = _context["catch"](0);
+ return _context.abrupt("return");
+ case 12:
+ if (isValidResponse(payload)) {
+ _context.next = 14;
+ break;
+ }
+ return _context.abrupt("return");
+ case 14:
+ if (!(payload.id !== id)) {
+ _context.next = 16;
+ break;
+ }
+ return _context.abrupt("return");
+ case 16:
+ // if the response is an error, reject the promise
+ if (payload.error) {
+ reject(payload.error);
+ }
+ // if the response is a result, resolve the promise
+ if (payload.result) {
+ resolve(payload.result);
+ }
+ case 18:
+ case "end":
+ return _context.stop();
+ }
+ }, _callee, null, [[0, 9]]);
+ }));
+ return function (_x5) {
+ return _ref3.apply(this, arguments);
+ };
+ }());
+ case 5:
+ case "end":
+ return _context2.stop();
+ }
+ }, _callee2);
+ }));
+ return function (_x3, _x4) {
+ return _ref2.apply(this, arguments);
+ };
+ }()));
+ case 9:
+ case "end":
+ return _context3.stop();
+ }
+ }, _callee3, this);
+ }));
+ function call(_x, _x2) {
+ return _call.apply(this, arguments);
+ }
+ return call;
+ }();
+ _proto.listen = /*#__PURE__*/function () {
+ var _listen = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {
+ var _this2 = this;
+ var relay, sub;
+ return _regeneratorRuntime().wrap(function _callee5$(_context5) {
+ while (1) switch (_context5.prev = _context5.next) {
+ case 0:
+ _context5.next = 2;
+ return connectToRelay(this.relay);
+ case 2:
+ relay = _context5.sent;
+ sub = relay.sub([{
+ kinds: [24133],
+ '#p': [this.self.pubkey],
+ since: now()
+ }]);
+ sub.on('event', /*#__PURE__*/function () {
+ var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(event) {
+ var payload, plaintext, response, body, responseEvent;
+ return _regeneratorRuntime().wrap(function _callee4$(_context4) {
+ while (1) switch (_context4.prev = _context4.next) {
+ case 0:
+ _context4.prev = 0;
+ _context4.next = 3;
+ return nip04_exports.decrypt(_this2.self.secret, event.pubkey, event.content);
+ case 3:
+ plaintext = _context4.sent;
+ if (plaintext) {
+ _context4.next = 6;
+ break;
+ }
+ throw new Error('failed to decrypt event');
+ case 6:
+ payload = JSON.parse(plaintext);
+ _context4.next = 12;
+ break;
+ case 9:
+ _context4.prev = 9;
+ _context4.t0 = _context4["catch"](0);
+ return _context4.abrupt("return");
+ case 12:
+ if (isValidRequest(payload)) {
+ _context4.next = 14;
+ break;
+ }
+ return _context4.abrupt("return");
+ case 14:
+ _context4.next = 17;
+ return _this2.handleRequest(payload, event);
+ case 17:
+ response = _context4.sent;
+ body = prepareResponse(response.id, response.result, response.error);
+ _context4.next = 21;
+ return prepareEvent(_this2.self.secret, event.pubkey, body);
+ case 21:
+ responseEvent = _context4.sent;
+ // send response via relay
+ relay.publish(responseEvent);
+ case 23:
+ case "end":
+ return _context4.stop();
+ }
+ }, _callee4, null, [[0, 9]]);
+ }));
+ return function (_x6) {
+ return _ref4.apply(this, arguments);
+ };
+ }());
+ return _context5.abrupt("return", sub);
+ case 6:
+ case "end":
+ return _context5.stop();
+ }
+ }, _callee5, this);
+ }));
+ function listen() {
+ return _listen.apply(this, arguments);
+ }
+ return listen;
+ }();
+ _proto.handleRequest = /*#__PURE__*/function () {
+ var _handleRequest = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(request, event) {
+ var id, method, params, result, error;
+ return _regeneratorRuntime().wrap(function _callee6$(_context6) {
+ while (1) switch (_context6.prev = _context6.next) {
+ case 0:
+ id = request.id, method = request.method, params = request.params;
+ result = null;
+ error = null;
+ _context6.prev = 3;
+ this.event = event;
+ _context6.next = 7;
+ return this[method].apply(this, params);
+ case 7:
+ result = _context6.sent;
+ this.event = undefined;
+ _context6.next = 14;
+ break;
+ case 11:
+ _context6.prev = 11;
+ _context6.t0 = _context6["catch"](3);
+ if (_context6.t0 instanceof Error) {
+ error = _context6.t0.message;
+ } else {
+ error = 'unknown error';
+ }
+ case 14:
+ return _context6.abrupt("return", {
+ id: id,
+ result: result,
+ error: error
+ });
+ case 15:
+ case "end":
+ return _context6.stop();
+ }
+ }, _callee6, this, [[3, 11]]);
+ }));
+ function handleRequest(_x7, _x8) {
+ return _handleRequest.apply(this, arguments);
+ }
+ return handleRequest;
+ }();
+ return NostrRPC;
+ }();
+ function now() {
+ return Math.floor(Date.now() / 1000);
+ }
+ function randomID() {
+ return Math.random().toString().slice(2);
+ }
+ function prepareRequest(id, method, params) {
+ return JSON.stringify({
+ id: id,
+ method: method,
+ params: params
+ });
+ }
+ function prepareResponse(id, result, error) {
+ return JSON.stringify({
+ id: id,
+ result: result,
+ error: error
+ });
+ }
+ function prepareEvent(_x9, _x10, _x11) {
+ return _prepareEvent.apply(this, arguments);
+ }
+ function _prepareEvent() {
+ _prepareEvent = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7(secretKey, pubkey, content) {
+ var cipherText, event, id, sig, signedEvent, ok, veryOk;
+ return _regeneratorRuntime().wrap(function _callee7$(_context7) {
+ while (1) switch (_context7.prev = _context7.next) {
+ case 0:
+ _context7.next = 2;
+ return nip04_exports.encrypt(secretKey, pubkey, content);
+ case 2:
+ cipherText = _context7.sent;
+ event = {
+ kind: 24133,
+ created_at: now(),
+ pubkey: getPublicKey(secretKey),
+ tags: [['p', pubkey]],
+ content: cipherText
+ };
+ id = getEventHash(event);
+ sig = signEvent(event, secretKey);
+ signedEvent = _extends({}, event, {
+ id: id,
+ sig: sig
+ });
+ ok = validateEvent(signedEvent);
+ veryOk = verifySignature(signedEvent);
+ if (!(!ok || !veryOk)) {
+ _context7.next = 11;
+ break;
+ }
+ throw new Error('Event is not valid');
+ case 11:
+ return _context7.abrupt("return", signedEvent);
+ case 12:
+ case "end":
+ return _context7.stop();
+ }
+ }, _callee7);
+ }));
+ return _prepareEvent.apply(this, arguments);
+ }
+ function isValidRequest(payload) {
+ if (!payload) return false;
+ var keys = Object.keys(payload);
+ if (!keys.includes('id') || !keys.includes('method') || !keys.includes('params')) return false;
+ return true;
+ }
+ function isValidResponse(payload) {
+ if (!payload) return false;
+ var keys = Object.keys(payload);
+ if (!keys.includes('id') || !keys.includes('result') || !keys.includes('error')) return false;
+ return true;
+ }
+ function connectToRelay(_x12) {
+ return _connectToRelay.apply(this, arguments);
+ }
+ function _connectToRelay() {
+ _connectToRelay = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8(realayURL) {
+ var relay;
+ return _regeneratorRuntime().wrap(function _callee8$(_context8) {
+ while (1) switch (_context8.prev = _context8.next) {
+ case 0:
+ relay = relayInit(realayURL);
+ _context8.next = 3;
+ return relay.connect();
+ case 3:
+ _context8.next = 5;
+ return new Promise(function (resolve, reject) {
+ relay.on('connect', function () {
+ resolve();
+ });
+ relay.on('error', function () {
+ reject(new Error("not possible to connect to " + relay.url));
+ });
+ });
+ case 5:
+ return _context8.abrupt("return", relay);
+ case 6:
+ case "end":
+ return _context8.stop();
+ }
+ }, _callee8);
+ }));
+ return _connectToRelay.apply(this, arguments);
+ }
+ function broadcastToRelay(_x13, _x14, _x15) {
+ return _broadcastToRelay.apply(this, arguments);
+ }
+ function _broadcastToRelay() {
+ _broadcastToRelay = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee9(relay, event, skipSeen) {
+ return _regeneratorRuntime().wrap(function _callee9$(_context9) {
+ while (1) switch (_context9.prev = _context9.next) {
+ case 0:
+ if (skipSeen === void 0) {
+ skipSeen = false;
+ }
+ _context9.next = 3;
+ return new Promise(function (resolve, reject) {
+ relay.on('error', function () {
+ reject(new Error("failed to connect to " + relay.url));
+ });
+ var pub = relay.publish(event);
+ if (skipSeen) resolve();
+ pub.on('failed', function (reason) {
+ reject(reason);
+ });
+ pub.on('seen', function () {
+ resolve();
+ });
+ });
+ case 3:
+ return _context9.abrupt("return", _context9.sent);
+ case 4:
+ case "end":
+ return _context9.stop();
+ }
+ }, _callee9);
+ }));
+ return _broadcastToRelay.apply(this, arguments);
+ }
+
+ var ConnectURI = /*#__PURE__*/function () {
+ function ConnectURI(_ref) {
+ var target = _ref.target,
+ metadata = _ref.metadata,
+ relay = _ref.relay;
+ this.target = target;
+ this.metadata = metadata;
+ this.relay = relay;
+ }
+ ConnectURI.fromURI = function fromURI(uri) {
+ var url = new URL(uri);
+ var target = url.hostname || url.pathname.substring(2);
+ if (!target) throw new Error('Invalid connect URI: missing target');
+ var relay = url.searchParams.get('relay');
+ if (!relay) {
+ throw new Error('Invalid connect URI: missing relay');
+ }
+ var metadata = url.searchParams.get('metadata');
+ if (!metadata) {
+ throw new Error('Invalid connect URI: missing metadata');
+ }
+ /* eslint-disable @typescript-eslint/no-unused-vars */
+ try {
+ var md = JSON.parse(metadata);
+ return new ConnectURI({
+ target: target,
+ metadata: md,
+ relay: relay
+ });
+ } catch (ignore) {
+ throw new Error('Invalid connect URI: metadata is not valid JSON');
+ }
+ };
+ var _proto = ConnectURI.prototype;
+ _proto.toString = function toString() {
+ return "nostrconnect://" + this.target + "?metadata=" + encodeURIComponent(JSON.stringify(this.metadata)) + "&relay=" + encodeURIComponent(this.relay);
+ };
+ _proto.approve = /*#__PURE__*/function () {
+ var _approve = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(secretKey) {
+ var rpc;
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
+ while (1) switch (_context.prev = _context.next) {
+ case 0:
+ rpc = new NostrRPC({
+ relay: this.relay,
+ secretKey: secretKey
+ });
+ _context.next = 3;
+ return rpc.call({
+ target: this.target,
+ request: {
+ method: 'connect',
+ params: [getPublicKey(secretKey)]
+ }
+ }, {
+ skipResponse: true
+ });
+ case 3:
+ case "end":
+ return _context.stop();
+ }
+ }, _callee, this);
+ }));
+ function approve(_x) {
+ return _approve.apply(this, arguments);
+ }
+ return approve;
+ }();
+ _proto.reject = /*#__PURE__*/function () {
+ var _reject = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(secretKey) {
+ var rpc;
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
+ while (1) switch (_context2.prev = _context2.next) {
+ case 0:
+ rpc = new NostrRPC({
+ relay: this.relay,
+ secretKey: secretKey
+ });
+ _context2.next = 3;
+ return rpc.call({
+ target: this.target,
+ request: {
+ method: 'disconnect',
+ params: []
+ }
+ }, {
+ skipResponse: true
+ });
+ case 3:
+ case "end":
+ return _context2.stop();
+ }
+ }, _callee2, this);
+ }));
+ function reject(_x2) {
+ return _reject.apply(this, arguments);
+ }
+ return reject;
+ }();
+ return ConnectURI;
+ }();
+ var Connect = /*#__PURE__*/function () {
+ function Connect(_ref2) {
+ var target = _ref2.target,
+ relay = _ref2.relay,
+ secretKey = _ref2.secretKey;
+ this.events = new eventsExports();
+ this.nip04 = {
+ encrypt: function () {
+ var _encrypt = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(_pubkey, _plaintext) {
+ return _regeneratorRuntime().wrap(function _callee3$(_context3) {
+ while (1) switch (_context3.prev = _context3.next) {
+ case 0:
+ throw new Error('Not implemented');
+ case 1:
+ case "end":
+ return _context3.stop();
+ }
+ }, _callee3);
+ }));
+ function encrypt(_x3, _x4) {
+ return _encrypt.apply(this, arguments);
+ }
+ return encrypt;
+ }(),
+ decrypt: function () {
+ var _decrypt = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(_pubkey, _ciphertext) {
+ return _regeneratorRuntime().wrap(function _callee4$(_context4) {
+ while (1) switch (_context4.prev = _context4.next) {
+ case 0:
+ throw new Error('Not implemented');
+ case 1:
+ case "end":
+ return _context4.stop();
+ }
+ }, _callee4);
+ }));
+ function decrypt(_x5, _x6) {
+ return _decrypt.apply(this, arguments);
+ }
+ return decrypt;
+ }()
+ };
+ this.rpc = new NostrRPC({
+ relay: relay,
+ secretKey: secretKey
+ });
+ if (target) {
+ this.target = target;
+ }
+ }
+ var _proto2 = Connect.prototype;
+ _proto2.init = /*#__PURE__*/function () {
+ var _init = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {
+ var _this = this;
+ var sub;
+ return _regeneratorRuntime().wrap(function _callee6$(_context6) {
+ while (1) switch (_context6.prev = _context6.next) {
+ case 0:
+ _context6.next = 2;
+ return this.rpc.listen();
+ case 2:
+ sub = _context6.sent;
+ sub.on('event', /*#__PURE__*/function () {
+ var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(event) {
+ var payload, plaintext, _payload$params, pubkey;
+ return _regeneratorRuntime().wrap(function _callee5$(_context5) {
+ while (1) switch (_context5.prev = _context5.next) {
+ case 0:
+ _context5.prev = 0;
+ _context5.next = 3;
+ return nip04_exports.decrypt(_this.rpc.self.secret, event.pubkey, event.content);
+ case 3:
+ plaintext = _context5.sent;
+ if (plaintext) {
+ _context5.next = 6;
+ break;
+ }
+ throw new Error('failed to decrypt event');
+ case 6:
+ payload = JSON.parse(plaintext);
+ _context5.next = 12;
+ break;
+ case 9:
+ _context5.prev = 9;
+ _context5.t0 = _context5["catch"](0);
+ return _context5.abrupt("return");
+ case 12:
+ if (isValidRequest(payload)) {
+ _context5.next = 14;
+ break;
+ }
+ return _context5.abrupt("return");
+ case 14:
+ _context5.t1 = payload.method;
+ _context5.next = _context5.t1 === 'connect' ? 17 : _context5.t1 === 'disconnect' ? 23 : 26;
+ break;
+ case 17:
+ if (!(!payload.params || payload.params.length !== 1)) {
+ _context5.next = 19;
+ break;
+ }
+ throw new Error('connect: missing pubkey');
+ case 19:
+ _payload$params = payload.params, pubkey = _payload$params[0];
+ _this.target = pubkey;
+ _this.events.emit('connect', pubkey);
+ return _context5.abrupt("break", 26);
+ case 23:
+ _this.target = undefined;
+ _this.events.emit('disconnect');
+ return _context5.abrupt("break", 26);
+ case 26:
+ case "end":
+ return _context5.stop();
+ }
+ }, _callee5, null, [[0, 9]]);
+ }));
+ return function (_x7) {
+ return _ref3.apply(this, arguments);
+ };
+ }());
+ case 4:
+ case "end":
+ return _context6.stop();
+ }
+ }, _callee6, this);
+ }));
+ function init() {
+ return _init.apply(this, arguments);
+ }
+ return init;
+ }();
+ _proto2.on = function on(evt, cb) {
+ this.events.on(evt, cb);
+ };
+ _proto2.off = function off(evt, cb) {
+ this.events.off(evt, cb);
+ };
+ _proto2.disconnect = /*#__PURE__*/function () {
+ var _disconnect = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {
+ return _regeneratorRuntime().wrap(function _callee7$(_context7) {
+ while (1) switch (_context7.prev = _context7.next) {
+ case 0:
+ if (this.target) {
+ _context7.next = 2;
+ break;
+ }
+ throw new Error('Not connected');
+ case 2:
+ // notify the UI that we are disconnecting
+ this.events.emit('disconnect');
+ _context7.prev = 3;
+ _context7.next = 6;
+ return this.rpc.call({
+ target: this.target,
+ request: {
+ method: 'disconnect',
+ params: []
+ }
+ }, {
+ skipResponse: true
+ });
+ case 6:
+ _context7.next = 11;
+ break;
+ case 8:
+ _context7.prev = 8;
+ _context7.t0 = _context7["catch"](3);
+ throw new Error('Failed to disconnect');
+ case 11:
+ this.target = undefined;
+ case 12:
+ case "end":
+ return _context7.stop();
+ }
+ }, _callee7, this, [[3, 8]]);
+ }));
+ function disconnect() {
+ return _disconnect.apply(this, arguments);
+ }
+ return disconnect;
+ }();
+ _proto2.getPublicKey = /*#__PURE__*/function () {
+ var _getPublicKey = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {
+ var response;
+ return _regeneratorRuntime().wrap(function _callee8$(_context8) {
+ while (1) switch (_context8.prev = _context8.next) {
+ case 0:
+ if (this.target) {
+ _context8.next = 2;
+ break;
+ }
+ throw new Error('Not connected');
+ case 2:
+ _context8.next = 4;
+ return this.rpc.call({
+ target: this.target,
+ request: {
+ method: 'get_public_key',
+ params: []
+ }
+ });
+ case 4:
+ response = _context8.sent;
+ return _context8.abrupt("return", response);
+ case 6:
+ case "end":
+ return _context8.stop();
+ }
+ }, _callee8, this);
+ }));
+ function getPublicKey() {
+ return _getPublicKey.apply(this, arguments);
+ }
+ return getPublicKey;
+ }();
+ _proto2.signEvent = /*#__PURE__*/function () {
+ var _signEvent = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee9(event) {
+ var signature;
+ return _regeneratorRuntime().wrap(function _callee9$(_context9) {
+ while (1) switch (_context9.prev = _context9.next) {
+ case 0:
+ if (this.target) {
+ _context9.next = 2;
+ break;
+ }
+ throw new Error('Not connected');
+ case 2:
+ _context9.next = 4;
+ return this.rpc.call({
+ target: this.target,
+ request: {
+ method: 'sign_event',
+ params: [event]
+ }
+ });
+ case 4:
+ signature = _context9.sent;
+ return _context9.abrupt("return", signature);
+ case 6:
+ case "end":
+ return _context9.stop();
+ }
+ }, _callee9, this);
+ }));
+ function signEvent(_x8) {
+ return _signEvent.apply(this, arguments);
+ }
+ return signEvent;
+ }();
+ _proto2.getRelays = /*#__PURE__*/function () {
+ var _getRelays = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee10() {
+ return _regeneratorRuntime().wrap(function _callee10$(_context10) {
+ while (1) switch (_context10.prev = _context10.next) {
+ case 0:
+ throw new Error('Not implemented');
+ case 1:
+ case "end":
+ return _context10.stop();
+ }
+ }, _callee10);
+ }));
+ function getRelays() {
+ return _getRelays.apply(this, arguments);
+ }
+ return getRelays;
+ }();
+ return Connect;
+ }();
+
+ class NstrAdapterNip46 extends NstrAdapter {
+ #secretKey = null;
+
+ constructor(pubkey, secretKey, adapterConfig = {}) {
+ super(pubkey, adapterConfig);
+ this.#secretKey = secretKey;
+ }
+
+ async signEvent(event) {
+ const connect = new Connect({
+ secretKey: this.#secretKey,
+ target: this.pubkey,
+ });
+ await connect.init();
+
+ event.sig = await connect.signEvent('12323423434');
+ return event;
+ }
+ }
+
+ class NstrAdapterDiscadableKeys extends NstrAdapter {
+ #privateKey;
+
+ constructor(adapterConfig={}) {
+ let key = localStorage.getItem('nostrichat-discardable-key');
+ let publicKey = localStorage.getItem('nostrichat-discardable-public-key');
+
+ if (!key) {
+ key = generatePrivateKey();
+ console.log('generated key', key);
+ publicKey = getPublicKey(key);
+ }
+
+ localStorage.setItem('nostrichat-discardable-key', key);
+ localStorage.setItem('nostrichat-discardable-public-key', publicKey);
+
+ super(publicKey, adapterConfig);
+
+ this.#privateKey = key;
+ console.log(key);
+ }
+
+ async signEvent(event) {
+ event.sig = await signEvent(event, this.#privateKey);
+ return event;
+ }
+
+ async encrypt(destPubkey, message) {
+ console.log(this.#privateKey);
+ return await nip04_exports.encrypt(this.#privateKey, destPubkey, message);
+ }
+
+ async decrypt(destPubkey, message) {
+ return await nip04_exports.decrypt(this.#privateKey, destPubkey, message);
+ }
+ }
+
+ /* src/KeyPrompt.svelte generated by Svelte v3.55.1 */
+
+ // (146:21)
+ function create_if_block_1$3(ctx) {
+ let div;
+ let t0;
+ let button0;
+ let t2;
+ let button1;
+ let mounted;
+ let dispose;
+ let if_block = create_if_block_2$1(ctx);
+
+ return {
+ c() {
+ div = element("div");
+ if (if_block) if_block.c();
+ t0 = space();
+ button0 = element("button");
+ button0.textContent = "Nostr Connect (NIP-46)";
+ t2 = space();
+ button1 = element("button");
+
+ button1.innerHTML = `Anonymous
+ (Ephemeral Keys) `;
+
+ attr(button0, "class", "bg-purple-900 hover:bg-purple-700 w-full p-4 rounded-xl text-center font-regular text-gray-200 svelte-117e9f7");
+ attr(button1, "class", "bg-purple-900 hover:bg-purple-700 w-full p-4 rounded-xl text-center font-regular text-gray-200 svelte-117e9f7");
+ attr(div, "class", "flex flex-col gap-1 svelte-117e9f7");
+ },
+ m(target, anchor) {
+ insert(target, div, anchor);
+ if (if_block) if_block.m(div, null);
+ append(div, t0);
+ append(div, button0);
+ append(div, t2);
+ append(div, button1);
+
+ if (!mounted) {
+ dispose = [
+ listen(button0, "click", prevent_default(/*useNip46*/ ctx[3])),
+ listen(button1, "click", prevent_default(/*useDiscardableKeys*/ ctx[2]))
+ ];
+
+ mounted = true;
+ }
+ },
+ p(ctx, dirty) {
+ },
+ i: noop,
+ o: noop,
+ d(detaching) {
+ if (detaching) detach(div);
+ if (if_block) if_block.d();
+ mounted = false;
+ run_all(dispose);
+ }
+ };
+ }
+
+ // (124:0) {#if nip46URI}
+ function create_if_block$4(ctx) {
+ let p;
+ let t1;
+ let div;
+ let qr;
+ let t2;
+ let button;
+ let current;
+ let mounted;
+ let dispose;
+ qr = new QR({ props: { text: /*nip46URI*/ ctx[0] } });
+
+ return {
+ c() {
+ p = element("p");
+ p.textContent = "Scan this with your Nostr Connect (click to copy to clipboard)";
+ t1 = space();
+ div = element("div");
+ create_component(qr.$$.fragment);
+ t2 = space();
+ button = element("button");
+ button.textContent = "Cancel";
+ attr(p, "class", "text-gray-600 mb-3 svelte-117e9f7");
+ attr(div, "class", "bg-white w-full p-3 svelte-117e9f7");
+ attr(button, "class", "bg-purple-900 hover:bg-purple-700 w-full p-2 rounded-xl text-center font-regular text-white svelte-117e9f7");
+ },
+ m(target, anchor) {
+ insert(target, p, anchor);
+ insert(target, t1, anchor);
+ insert(target, div, anchor);
+ mount_component(qr, div, null);
+ insert(target, t2, anchor);
+ insert(target, button, anchor);
+ current = true;
+
+ if (!mounted) {
+ dispose = [
+ listen(div, "click", prevent_default(/*Nip46Copy*/ ctx[4])),
+ listen(button, "click", prevent_default(/*click_handler*/ ctx[8]))
+ ];
+
+ mounted = true;
+ }
+ },
+ p(ctx, dirty) {
+ const qr_changes = {};
+ if (dirty & /*nip46URI*/ 1) qr_changes.text = /*nip46URI*/ ctx[0];
+ qr.$set(qr_changes);
+ },
+ i(local) {
+ if (current) return;
+ transition_in(qr.$$.fragment, local);
+ current = true;
+ },
+ o(local) {
+ transition_out(qr.$$.fragment, local);
+ current = false;
+ },
+ d(detaching) {
+ if (detaching) detach(p);
+ if (detaching) detach(t1);
+ if (detaching) detach(div);
+ destroy_component(qr);
+ if (detaching) detach(t2);
+ if (detaching) detach(button);
+ mounted = false;
+ run_all(dispose);
+ }
+ };
+ }
+
+ // (148:8) {#if hasNostrNip07}
+ function create_if_block_2$1(ctx) {
+ let button;
+ let mounted;
+ let dispose;
+
+ return {
+ c() {
+ button = element("button");
+ button.textContent = "Browser Extension (NIP-07)";
+ attr(button, "class", "bg-purple-900 hover:bg-purple-700 w-full p-4 rounded-xl text-center font-regular text-gray-200 svelte-117e9f7");
+ },
+ m(target, anchor) {
+ insert(target, button, anchor);
+
+ if (!mounted) {
+ dispose = listen(button, "click", prevent_default(/*useNip07*/ ctx[1]));
+ mounted = true;
+ }
+ },
+ p: noop,
+ d(detaching) {
+ if (detaching) detach(button);
+ mounted = false;
+ dispose();
+ }
+ };
+ }
+
+ function create_fragment$4(ctx) {
+ let h1;
+ let t1;
+ let t2;
+ let current_block_type_index;
+ let if_block1;
+ let if_block1_anchor;
+ let current;
+ const if_block_creators = [create_if_block$4, create_if_block_1$3];
+ const if_blocks = [];
+
+ function select_block_type(ctx, dirty) {
+ if (/*nip46URI*/ ctx[0]) return 0;
+ return 1;
+ }
+
+ if (~(current_block_type_index = select_block_type(ctx))) {
+ if_block1 = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx);
+ }
+
+ return {
+ c() {
+ h1 = element("h1");
+ h1.textContent = "How would you like to connect?";
+ t1 = space();
+ t2 = space();
+ if (if_block1) if_block1.c();
+ if_block1_anchor = empty();
+ attr(h1, "class", "font-bold text-xl mb-3 svelte-117e9f7");
+ },
+ m(target, anchor) {
+ insert(target, h1, anchor);
+ insert(target, t1, anchor);
+ insert(target, t2, anchor);
+
+ if (~current_block_type_index) {
+ if_blocks[current_block_type_index].m(target, anchor);
+ }
+
+ insert(target, if_block1_anchor, anchor);
+ current = true;
+ },
+ p(ctx, [dirty]) {
+ let previous_block_index = current_block_type_index;
+ current_block_type_index = select_block_type(ctx);
+
+ if (current_block_type_index === previous_block_index) {
+ if (~current_block_type_index) {
+ if_blocks[current_block_type_index].p(ctx, dirty);
+ }
+ } else {
+ if (if_block1) {
+ group_outros();
+
+ transition_out(if_blocks[previous_block_index], 1, 1, () => {
+ if_blocks[previous_block_index] = null;
+ });
+
+ check_outros();
+ }
+
+ if (~current_block_type_index) {
+ if_block1 = if_blocks[current_block_type_index];
+
+ if (!if_block1) {
+ if_block1 = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx);
+ if_block1.c();
+ } else {
+ if_block1.p(ctx, dirty);
+ }
+
+ transition_in(if_block1, 1);
+ if_block1.m(if_block1_anchor.parentNode, if_block1_anchor);
+ } else {
+ if_block1 = null;
+ }
+ }
+ },
+ i(local) {
+ if (current) return;
+ transition_in(if_block1);
+ current = true;
+ },
+ o(local) {
+ transition_out(if_block1);
+ current = false;
+ },
+ d(detaching) {
+ if (detaching) detach(h1);
+ if (detaching) detach(t1);
+ if (detaching) detach(t2);
+
+ if (~current_block_type_index) {
+ if_blocks[current_block_type_index].d(detaching);
+ }
+
+ if (detaching) detach(if_block1_anchor);
+ }
+ };
+ }
+
+ function instance$4($$self, $$props, $$invalidate) {
+ let { websiteOwnerPubkey } = $$props;
+ let { chatConfiguration } = $$props;
+ let { relays } = $$props;
+ let nip46URI;
+ let adapterConfig;
+
+ onMount(() => {
+ // hasNostrNip07 = !!window.nostr;
+ const type = localStorage.getItem('nostrichat-type');
+
+ if (type === 'nip07') {
+ useNip07();
+ } else if (type === 'nip-46') {
+ useNip46();
+ }
+
+ adapterConfig = {
+ type: chatConfiguration.chatType,
+ tags: chatConfiguration.chatTags,
+ referenceTags: chatConfiguration.chatReferenceTags,
+ websiteOwnerPubkey,
+ relays
+ };
+ });
+
+ function useNip07() {
+ window.nostr.getPublicKey().then(pubkey => {
+ localStorage.setItem('nostrichat-type', 'nip07');
+ chatAdapter.set(new NstrAdapterNip07(pubkey, adapterConfig));
+ });
+ }
+
+ async function useDiscardableKeys() {
+ chatAdapter.set(new NstrAdapterDiscadableKeys(adapterConfig));
+ }
+
+ async function useNip46() {
+ let key = localStorage.getItem('nostrichat-nostr-connect-key');
+ let publicKey = localStorage.getItem('nostrichat-nostr-connect-public-key');
+
+ if (key) {
+ chatAdapter.set(new NstrAdapterNip46(publicKey, key, adapterConfig));
+ return;
+ }
+
+ key = generatePrivateKey();
+
+ const connect = new Connect({
+ secretKey: key,
+ relay: 'wss://nostr.vulpem.com'
+ });
+
+ connect.events.on('connect', connectedPubKey => {
+ localStorage.setItem('nostrichat-nostr-connect-key', key);
+ localStorage.setItem('nostrichat-nostr-connect-public-key', connectedPubKey);
+ localStorage.setItem('nostrichat-type', 'nip-46');
+ console.log('connected to nostr connect relay');
+ publicKey = connectedPubKey;
+ chatAdapter.set(new NstrAdapterNip46(publicKey, key));
+ $$invalidate(0, nip46URI = null);
+ });
+
+ connect.events.on('disconnect', () => {
+ console.log('disconnected from nostr connect relay');
+ });
+
+ await connect.init();
+ let windowTitle, currentUrl, currentDomain;
+
+ try {
+ windowTitle = window.document.title || 'Nostrichat';
+ currentUrl = new URL(window.location.href);
+ currentDomain = currentUrl.hostname;
+ } catch(e) {
+ currentUrl = window.location.href;
+ currentDomain = currentUrl;
+ }
+
+ const connectURI = new ConnectURI({
+ target: getPublicKey(key),
+ relay: 'wss://nostr.vulpem.com',
+ metadata: {
+ name: windowTitle,
+ description: '🔉🔉🔉',
+ url: currentUrl
+ }
+ });
+
+ $$invalidate(0, nip46URI = connectURI.toString());
+ }
+
+ function Nip46Copy() {
+ navigator.clipboard.writeText(nip46URI);
+ }
+
+ const click_handler = () => {
+ $$invalidate(0, nip46URI = null);
+ };
+
+ $$self.$$set = $$props => {
+ if ('websiteOwnerPubkey' in $$props) $$invalidate(5, websiteOwnerPubkey = $$props.websiteOwnerPubkey);
+ if ('chatConfiguration' in $$props) $$invalidate(6, chatConfiguration = $$props.chatConfiguration);
+ if ('relays' in $$props) $$invalidate(7, relays = $$props.relays);
+ };
+
+ return [
+ nip46URI,
+ useNip07,
+ useDiscardableKeys,
+ useNip46,
+ Nip46Copy,
+ websiteOwnerPubkey,
+ chatConfiguration,
+ relays,
+ click_handler
+ ];
+ }
+
+ class KeyPrompt extends SvelteComponent {
+ constructor(options) {
+ super();
+
+ init(this, options, instance$4, create_fragment$4, safe_not_equal, {
+ websiteOwnerPubkey: 5,
+ chatConfiguration: 6,
+ relays: 7
+ });
+ }
+ }
+
+ /* src/NostrNote.svelte generated by Svelte v3.55.1 */
+
+ function get_each_context$1(ctx, list, i) {
+ const child_ctx = ctx.slice();
+ child_ctx[15] = list[i];
+ return child_ctx;
+ }
+
+ // (84:16) {:else}
+ function create_else_block$3(ctx) {
+ let div;
+ let t;
+
+ return {
+ c() {
+ div = element("div");
+ t = text(/*displayName*/ ctx[4]);
+ attr(div, "class", "text-xs text-gray-400 svelte-t9ifgy");
+ },
+ m(target, anchor) {
+ insert(target, div, anchor);
+ append(div, t);
+ },
+ p(ctx, dirty) {
+ if (dirty & /*displayName*/ 16) set_data(t, /*displayName*/ ctx[4]);
+ },
+ d(detaching) {
+ if (detaching) detach(div);
+ }
+ };
+ }
+
+ // (80:16) {#if byWebsiteOwner}
+ function create_if_block_1$2(ctx) {
+ let div;
+
+ return {
+ c() {
+ div = element("div");
+ div.textContent = "Website owner";
+ attr(div, "class", "text-purple-500 text-xs svelte-t9ifgy");
+ },
+ m(target, anchor) {
+ insert(target, div, anchor);
+ },
+ p: noop,
+ d(detaching) {
+ if (detaching) detach(div);
+ }
+ };
+ }
+
+ // (94:0) {#if responses[event.id].length > 0}
+ function create_if_block$3(ctx) {
+ let div;
+ let current;
+ let each_value = /*responses*/ ctx[1][/*event*/ ctx[0].id];
+ let each_blocks = [];
+
+ for (let i = 0; i < each_value.length; i += 1) {
+ each_blocks[i] = create_each_block$1(get_each_context$1(ctx, each_value, i));
+ }
+
+ const out = i => transition_out(each_blocks[i], 1, 1, () => {
+ each_blocks[i] = null;
+ });
+
+ return {
+ c() {
+ div = element("div");
+
+ for (let i = 0; i < each_blocks.length; i += 1) {
+ each_blocks[i].c();
+ }
+
+ attr(div, "class", "pl-5 border-l border-l-gray-400 mb-10 svelte-t9ifgy");
+ },
+ m(target, anchor) {
+ insert(target, div, anchor);
+
+ for (let i = 0; i < each_blocks.length; i += 1) {
+ each_blocks[i].m(div, null);
+ }
+
+ current = true;
+ },
+ p(ctx, dirty) {
+ if (dirty & /*websiteOwnerPubkey, responses, event*/ 7) {
+ each_value = /*responses*/ ctx[1][/*event*/ ctx[0].id];
+ let i;
+
+ for (i = 0; i < each_value.length; i += 1) {
+ const child_ctx = get_each_context$1(ctx, each_value, i);
+
+ if (each_blocks[i]) {
+ each_blocks[i].p(child_ctx, dirty);
+ transition_in(each_blocks[i], 1);
+ } else {
+ each_blocks[i] = create_each_block$1(child_ctx);
+ each_blocks[i].c();
+ transition_in(each_blocks[i], 1);
+ each_blocks[i].m(div, null);
+ }
+ }
+
+ group_outros();
+
+ for (i = each_value.length; i < each_blocks.length; i += 1) {
+ out(i);
+ }
+
+ check_outros();
+ }
+ },
+ i(local) {
+ if (current) return;
+
+ for (let i = 0; i < each_value.length; i += 1) {
+ transition_in(each_blocks[i]);
+ }
+
+ current = true;
+ },
+ o(local) {
+ each_blocks = each_blocks.filter(Boolean);
+
+ for (let i = 0; i < each_blocks.length; i += 1) {
+ transition_out(each_blocks[i]);
+ }
+
+ current = false;
+ },
+ d(detaching) {
+ if (detaching) detach(div);
+ destroy_each(each_blocks, detaching);
+ }
+ };
+ }
+
+ // (96:8) {#each responses[event.id] as response}
+ function create_each_block$1(ctx) {
+ let nostrnote;
+ let current;
+
+ nostrnote = new NostrNote({
+ props: {
+ websiteOwnerPubkey: /*websiteOwnerPubkey*/ ctx[2],
+ event: /*response*/ ctx[15],
+ responses: /*responses*/ ctx[1]
+ }
+ });
+
+ return {
+ c() {
+ create_component(nostrnote.$$.fragment);
+ },
+ m(target, anchor) {
+ mount_component(nostrnote, target, anchor);
+ current = true;
+ },
+ p(ctx, dirty) {
+ const nostrnote_changes = {};
+ if (dirty & /*websiteOwnerPubkey*/ 4) nostrnote_changes.websiteOwnerPubkey = /*websiteOwnerPubkey*/ ctx[2];
+ if (dirty & /*responses, event*/ 3) nostrnote_changes.event = /*response*/ ctx[15];
+ if (dirty & /*responses*/ 2) nostrnote_changes.responses = /*responses*/ ctx[1];
+ nostrnote.$set(nostrnote_changes);
+ },
+ i(local) {
+ if (current) return;
+ transition_in(nostrnote.$$.fragment, local);
+ current = true;
+ },
+ o(local) {
+ transition_out(nostrnote.$$.fragment, local);
+ current = false;
+ },
+ d(detaching) {
+ destroy_component(nostrnote, detaching);
+ }
+ };
+ }
+
+ function create_fragment$3(ctx) {
+ let div7;
+ let div6;
+ let div0;
+ let img;
+ let img_src_value;
+ let t0;
+ let div5;
+ let div1;
+ let t1;
+ let div2;
+ let t2_value = /*event*/ ctx[0].content + "";
+ let t2;
+ let div2_class_value;
+ let t3;
+ let div4;
+ let div3;
+ let span;
+ let t5;
+ let t6;
+ let if_block1_anchor;
+ let current;
+ let mounted;
+ let dispose;
+
+ function select_block_type(ctx, dirty) {
+ if (/*byWebsiteOwner*/ ctx[7]) return create_if_block_1$2;
+ return create_else_block$3;
+ }
+
+ let current_block_type = select_block_type(ctx);
+ let if_block0 = current_block_type(ctx);
+ let if_block1 = /*responses*/ ctx[1][/*event*/ ctx[0].id].length > 0 && create_if_block$3(ctx);
+
+ return {
+ c() {
+ div7 = element("div");
+ div6 = element("div");
+ div0 = element("div");
+ img = element("img");
+ t0 = space();
+ div5 = element("div");
+ div1 = element("div");
+ t1 = space();
+ div2 = element("div");
+ t2 = text(t2_value);
+ t3 = space();
+ div4 = element("div");
+ div3 = element("div");
+ span = element("span");
+ span.textContent = `${/*timestamp*/ ctx[8].toLocaleString()}`;
+ t5 = space();
+ if_block0.c();
+ t6 = space();
+ if (if_block1) if_block1.c();
+ if_block1_anchor = empty();
+ if (!src_url_equal(img.src, img_src_value = /*profilePicture*/ ctx[3])) attr(img, "src", img_src_value);
+
+ attr(img, "class", "block w-10 h-10 rounded-full " + (/*byWebsiteOwner*/ ctx[7]
+ ? 'ring-purple-700 ring-4'
+ : 'ring-gray-300 ring-2') + "" + " svelte-t9ifgy");
+
+ attr(img, "alt", "");
+ attr(div0, "class", "min-w-fit svelte-t9ifgy");
+ attr(div1, "class", "flex flex-row justify-between text-center overflow-clip text-clip w-full svelte-t9ifgy");
+
+ attr(div2, "class", div2_class_value = "max-h-64 text-base cursor-pointer border border-slate-200 " + (/*$selectedMessage*/ ctx[5] === /*event*/ ctx[0].id
+ ? 'bg-purple-700 text-white'
+ : 'bg-slate-50 text-gray-500 hover:bg-slate-100') + " p-4 py-2 overflow-auto rounded-2xl" + " svelte-t9ifgy");
+
+ attr(span, "class", "py-2 svelte-t9ifgy");
+ attr(div3, "class", "text-xs text-gray-400 text-ellipsis overflow-clip whitespace-nowrap svelte-t9ifgy");
+ attr(div4, "class", "flex flex-row-reverse justify-between mt-1 overflow-clip items-center svelte-t9ifgy");
+ attr(div5, "class", "w-full overflow-hidden svelte-t9ifgy");
+ attr(div6, "class", "flex flex-row gap-4 svelte-t9ifgy");
+ attr(div7, "class", "block p-2-lg mb-3 text-wrap svelte-t9ifgy");
+ },
+ m(target, anchor) {
+ insert(target, div7, anchor);
+ append(div7, div6);
+ append(div6, div0);
+ append(div0, img);
+ append(div6, t0);
+ append(div6, div5);
+ append(div5, div1);
+ append(div5, t1);
+ append(div5, div2);
+ append(div2, t2);
+ append(div5, t3);
+ append(div5, div4);
+ append(div4, div3);
+ append(div3, span);
+ append(div4, t5);
+ if_block0.m(div4, null);
+ insert(target, t6, anchor);
+ if (if_block1) if_block1.m(target, anchor);
+ insert(target, if_block1_anchor, anchor);
+ current = true;
+
+ if (!mounted) {
+ dispose = listen(div2, "click", prevent_default(/*click_handler*/ ctx[11]));
+ mounted = true;
+ }
+ },
+ p(ctx, [dirty]) {
+ if (!current || dirty & /*profilePicture*/ 8 && !src_url_equal(img.src, img_src_value = /*profilePicture*/ ctx[3])) {
+ attr(img, "src", img_src_value);
+ }
+
+ if ((!current || dirty & /*event*/ 1) && t2_value !== (t2_value = /*event*/ ctx[0].content + "")) set_data(t2, t2_value);
+
+ if (!current || dirty & /*$selectedMessage, event*/ 33 && div2_class_value !== (div2_class_value = "max-h-64 text-base cursor-pointer border border-slate-200 " + (/*$selectedMessage*/ ctx[5] === /*event*/ ctx[0].id
+ ? 'bg-purple-700 text-white'
+ : 'bg-slate-50 text-gray-500 hover:bg-slate-100') + " p-4 py-2 overflow-auto rounded-2xl" + " svelte-t9ifgy")) {
+ attr(div2, "class", div2_class_value);
+ }
+
+ if_block0.p(ctx, dirty);
+
+ if (/*responses*/ ctx[1][/*event*/ ctx[0].id].length > 0) {
+ if (if_block1) {
+ if_block1.p(ctx, dirty);
+
+ if (dirty & /*responses, event*/ 3) {
+ transition_in(if_block1, 1);
+ }
+ } else {
+ if_block1 = create_if_block$3(ctx);
+ if_block1.c();
+ transition_in(if_block1, 1);
+ if_block1.m(if_block1_anchor.parentNode, if_block1_anchor);
+ }
+ } else if (if_block1) {
+ group_outros();
+
+ transition_out(if_block1, 1, 1, () => {
+ if_block1 = null;
+ });
+
+ check_outros();
+ }
+ },
+ i(local) {
+ if (current) return;
+ transition_in(if_block1);
+ current = true;
+ },
+ o(local) {
+ transition_out(if_block1);
+ current = false;
+ },
+ d(detaching) {
+ if (detaching) detach(div7);
+ if_block0.d();
+ if (detaching) detach(t6);
+ if (if_block1) if_block1.d(detaching);
+ if (detaching) detach(if_block1_anchor);
+ mounted = false;
+ dispose();
+ }
+ };
+ }
+
+ function instance$3($$self, $$props, $$invalidate) {
+ let displayName;
+ let $chatData;
+ let $chatAdapter;
+ let $selectedMessage;
+ component_subscribe($$self, chatData, $$value => $$invalidate(10, $chatData = $$value));
+ component_subscribe($$self, chatAdapter, $$value => $$invalidate(13, $chatAdapter = $$value));
+ component_subscribe($$self, selectedMessage, $$value => $$invalidate(5, $selectedMessage = $$value));
+ let { event } = $$props;
+ let { responses } = $$props;
+ let { websiteOwnerPubkey } = $$props;
+ let profiles = {};
+ let profilePicture;
+
+ function selectMessage() {
+ if ($selectedMessage === event.id) {
+ set_store_value(selectedMessage, $selectedMessage = null, $selectedMessage);
+ } else {
+ set_store_value(selectedMessage, $selectedMessage = event.id, $selectedMessage);
+ }
+ }
+
+ // delay-fetch responses
+ onMount(() => {
+ $chatAdapter.delayedSubscribe({ kinds: [1], '#e': [event.id] }, 'responses', 500);
+ });
+
+ const byWebsiteOwner = !!websiteOwnerPubkey === event.pubkey;
+ event.tags.filter(e => e[0] === 'e').map(e => e[1]);
+ let timestamp = new Date(event.created_at * 1000);
+
+ const click_handler = () => {
+ selectMessage(event.id);
+ };
+
+ $$self.$$set = $$props => {
+ if ('event' in $$props) $$invalidate(0, event = $$props.event);
+ if ('responses' in $$props) $$invalidate(1, responses = $$props.responses);
+ if ('websiteOwnerPubkey' in $$props) $$invalidate(2, websiteOwnerPubkey = $$props.websiteOwnerPubkey);
+ };
+
+ $$self.$$.update = () => {
+ if ($$self.$$.dirty & /*$chatData*/ 1024) {
+ $$invalidate(9, profiles = $chatData.profiles);
+ }
+
+ if ($$self.$$.dirty & /*profiles, event*/ 513) {
+ $$invalidate(4, displayName = profiles[event.pubkey] && profiles[event.pubkey].display_name || `[${event.pubkey.slice(0, 6)}]`);
+ }
+
+ if ($$self.$$.dirty & /*profiles, event*/ 513) {
+ profiles[event.pubkey] && profiles[event.pubkey].nip05;
+ }
+
+ if ($$self.$$.dirty & /*profiles, event*/ 513) {
+ $$invalidate(3, profilePicture = profiles[event.pubkey] && profiles[event.pubkey].picture || `https://robohash.org/${event.pubkey.slice(0, 2)}.png?set=set1`);
+ }
+ };
+
+ return [
+ event,
+ responses,
+ websiteOwnerPubkey,
+ profilePicture,
+ displayName,
+ $selectedMessage,
+ selectMessage,
+ byWebsiteOwner,
+ timestamp,
+ profiles,
+ $chatData,
+ click_handler
+ ];
+ }
+
+ class NostrNote extends SvelteComponent {
+ constructor(options) {
+ super();
+
+ init(this, options, instance$3, create_fragment$3, safe_not_equal, {
+ event: 0,
+ responses: 1,
+ websiteOwnerPubkey: 2
+ });
+ }
+ }
+
+ function cubicInOut(t) {
+ return t < 0.5 ? 4.0 * t * t * t : 0.5 * Math.pow(2.0 * t - 2.0, 3.0) + 1.0;
+ }
+
+ var _ = {
+ $(selector) {
+ if (typeof selector === "string") {
+ return document.querySelector(selector);
+ }
+ return selector;
+ },
+ extend(...args) {
+ return Object.assign(...args);
+ },
+ cumulativeOffset(element) {
+ let top = 0;
+ let left = 0;
+
+ do {
+ top += element.offsetTop || 0;
+ left += element.offsetLeft || 0;
+ element = element.offsetParent;
+ } while (element);
+
+ return {
+ top: top,
+ left: left
+ };
+ },
+ directScroll(element) {
+ return element && element !== document && element !== document.body;
+ },
+ scrollTop(element, value) {
+ let inSetter = value !== undefined;
+ if (this.directScroll(element)) {
+ return inSetter ? (element.scrollTop = value) : element.scrollTop;
+ } else {
+ return inSetter
+ ? (document.documentElement.scrollTop = document.body.scrollTop = value)
+ : window.pageYOffset ||
+ document.documentElement.scrollTop ||
+ document.body.scrollTop ||
+ 0;
+ }
+ },
+ scrollLeft(element, value) {
+ let inSetter = value !== undefined;
+ if (this.directScroll(element)) {
+ return inSetter ? (element.scrollLeft = value) : element.scrollLeft;
+ } else {
+ return inSetter
+ ? (document.documentElement.scrollLeft = document.body.scrollLeft = value)
+ : window.pageXOffset ||
+ document.documentElement.scrollLeft ||
+ document.body.scrollLeft ||
+ 0;
+ }
+ }
+ };
+
+ const defaultOptions = {
+ container: "body",
+ duration: 500,
+ delay: 0,
+ offset: 0,
+ easing: cubicInOut,
+ onStart: noop,
+ onDone: noop,
+ onAborting: noop,
+ scrollX: false,
+ scrollY: true
+ };
+
+ const _scrollTo = options => {
+ let {
+ offset,
+ duration,
+ delay,
+ easing,
+ x=0,
+ y=0,
+ scrollX,
+ scrollY,
+ onStart,
+ onDone,
+ container,
+ onAborting,
+ element
+ } = options;
+
+ if (typeof offset === "function") {
+ offset = offset();
+ }
+
+ var cumulativeOffsetContainer = _.cumulativeOffset(container);
+ var cumulativeOffsetTarget = element
+ ? _.cumulativeOffset(element)
+ : { top: y, left: x };
+
+ var initialX = _.scrollLeft(container);
+ var initialY = _.scrollTop(container);
+
+ var targetX =
+ cumulativeOffsetTarget.left - cumulativeOffsetContainer.left + offset;
+ var targetY =
+ cumulativeOffsetTarget.top - cumulativeOffsetContainer.top + offset;
+
+ var diffX = targetX - initialX;
+ var diffY = targetY - initialY;
+
+ let scrolling = true;
+ let started = false;
+ let start_time = now$1() + delay;
+ let end_time = start_time + duration;
+
+ function scrollToTopLeft(element, top, left) {
+ if (scrollX) _.scrollLeft(element, left);
+ if (scrollY) _.scrollTop(element, top);
+ }
+
+ function start(delayStart) {
+ if (!delayStart) {
+ started = true;
+ onStart(element, {x, y});
+ }
+ }
+
+ function tick(progress) {
+ scrollToTopLeft(
+ container,
+ initialY + diffY * progress,
+ initialX + diffX * progress
+ );
+ }
+
+ function stop() {
+ scrolling = false;
+ }
+
+ loop(now => {
+ if (!started && now >= start_time) {
+ start(false);
+ }
+
+ if (started && now >= end_time) {
+ tick(1);
+ stop();
+ onDone(element, {x, y});
+ }
+
+ if (!scrolling) {
+ onAborting(element, {x, y});
+ return false;
+ }
+ if (started) {
+ const p = now - start_time;
+ const t = 0 + 1 * easing(p / duration);
+ tick(t);
+ }
+
+ return true;
+ });
+
+ start(delay);
+
+ tick(0);
+
+ return stop;
+ };
+
+ const proceedOptions = options => {
+ let opts = _.extend({}, defaultOptions, options);
+ opts.container = _.$(opts.container);
+ opts.element = _.$(opts.element);
+ return opts;
+ };
+
+ const scrollContainerHeight = containerElement => {
+ if (
+ containerElement &&
+ containerElement !== document &&
+ containerElement !== document.body
+ ) {
+ return containerElement.scrollHeight - containerElement.offsetHeight;
+ } else {
+ let body = document.body;
+ let html = document.documentElement;
+
+ return Math.max(
+ body.scrollHeight,
+ body.offsetHeight,
+ html.clientHeight,
+ html.scrollHeight,
+ html.offsetHeight
+ );
+ }
+ };
+
+ const scrollToBottom = options => {
+ options = proceedOptions(options);
+
+ return _scrollTo(
+ _.extend(options, {
+ element: null,
+ y: scrollContainerHeight(options.container)
+ })
+ );
+ };
+
+ /* src/ConnectedWidget.svelte generated by Svelte v3.55.1 */
+
+ function get_each_context(ctx, list, i) {
+ const child_ctx = ctx.slice();
+ child_ctx[23] = list[i];
+ return child_ctx;
+ }
+
+ function get_each_context_1(ctx, list, i) {
+ const child_ctx = ctx.slice();
+ child_ctx[26] = list[i];
+ child_ctx[28] = i;
+ return child_ctx;
+ }
+
+ // (227:8) {#if $chatAdapter?.pubkey}
+ function create_if_block_5(ctx) {
+ let t;
+
+ return {
+ c() {
+ t = text(/*ownName*/ ctx[7]);
+ },
+ m(target, anchor) {
+ insert(target, t, anchor);
+ },
+ p(ctx, dirty) {
+ if (dirty & /*ownName*/ 128) set_data(t, /*ownName*/ ctx[7]);
+ },
+ d(detaching) {
+ if (detaching) detach(t);
+ }
+ };
+ }
+
+ // (234:12) {#each Array(totalRelays) as _, i}
+ function create_each_block_1(ctx) {
+ let span;
+ let span_class_value;
+
+ return {
+ c() {
+ span = element("span");
+
+ attr(span, "class", span_class_value = "inline-block rounded-full " + (/*connectedRelays*/ ctx[5] > /*i*/ ctx[28]
+ ? 'bg-green-500'
+ : 'bg-gray-300') + " w-2 h-2" + " svelte-117e9f7");
+ },
+ m(target, anchor) {
+ insert(target, span, anchor);
+ },
+ p(ctx, dirty) {
+ if (dirty & /*connectedRelays*/ 32 && span_class_value !== (span_class_value = "inline-block rounded-full " + (/*connectedRelays*/ ctx[5] > /*i*/ ctx[28]
+ ? 'bg-green-500'
+ : 'bg-gray-300') + " w-2 h-2" + " svelte-117e9f7")) {
+ attr(span, "class", span_class_value);
+ }
+ },
+ d(detaching) {
+ if (detaching) detach(span);
+ }
+ };
+ }
+
+ // (248:0) {#if $selectedMessage}
+ function create_if_block_3(ctx) {
+ let show_if;
+ let if_block_anchor;
+
+ function select_block_type(ctx, dirty) {
+ if (dirty & /*$selectedMessage*/ 256) show_if = null;
+ if (show_if == null) show_if = !!!/*getEventById*/ ctx[9](/*$selectedMessage*/ ctx[8]);
+ if (show_if) return create_if_block_4;
+ return create_else_block_2;
+ }
+
+ let current_block_type = select_block_type(ctx, -1);
+ let if_block = current_block_type(ctx);
+
+ return {
+ c() {
+ if_block.c();
+ if_block_anchor = empty();
+ },
+ m(target, anchor) {
+ if_block.m(target, anchor);
+ insert(target, if_block_anchor, anchor);
+ },
+ p(ctx, dirty) {
+ if (current_block_type === (current_block_type = select_block_type(ctx, dirty)) && if_block) {
+ if_block.p(ctx, dirty);
+ } else {
+ if_block.d(1);
+ if_block = current_block_type(ctx);
+
+ if (if_block) {
+ if_block.c();
+ if_block.m(if_block_anchor.parentNode, if_block_anchor);
+ }
+ }
+ },
+ d(detaching) {
+ if_block.d(detaching);
+ if (detaching) detach(if_block_anchor);
+ }
+ };
+ }
+
+ // (251:4) {:else}
+ function create_else_block_2(ctx) {
+ let div1;
+ let a;
+ let t0;
+ let div0;
+ let span;
+ let t1_value = /*getEventById*/ ctx[9](/*$selectedMessage*/ ctx[8]).content + "";
+ let t1;
+ let mounted;
+ let dispose;
+
+ return {
+ c() {
+ div1 = element("div");
+ a = element("a");
+ a.innerHTML = ` `;
+ t0 = space();
+ div0 = element("div");
+ span = element("span");
+ t1 = text(t1_value);
+ attr(a, "href", "#");
+ attr(a, "class", "svelte-117e9f7");
+ attr(span, "class", "text-lg text-black overflow-hidden whitespace-nowrap text-ellipsis svelte-117e9f7");
+ attr(div0, "class", "flex flex-col ml-2 svelte-117e9f7");
+ attr(div1, "class", "flex flex-row mb-3 svelte-117e9f7");
+ },
+ m(target, anchor) {
+ insert(target, div1, anchor);
+ append(div1, a);
+ append(div1, t0);
+ append(div1, div0);
+ append(div0, span);
+ append(span, t1);
+
+ if (!mounted) {
+ dispose = listen(a, "click", prevent_default(/*selectParent*/ ctx[12]));
+ mounted = true;
+ }
+ },
+ p(ctx, dirty) {
+ if (dirty & /*$selectedMessage*/ 256 && t1_value !== (t1_value = /*getEventById*/ ctx[9](/*$selectedMessage*/ ctx[8]).content + "")) set_data(t1, t1_value);
+ },
+ d(detaching) {
+ if (detaching) detach(div1);
+ mounted = false;
+ dispose();
+ }
+ };
+ }
+
+ // (249:4) {#if !getEventById($selectedMessage)}
+ function create_if_block_4(ctx) {
+ let h1;
+ let t0;
+ let t1;
+
+ return {
+ c() {
+ h1 = element("h1");
+ t0 = text("Couldn't find event with ID ");
+ t1 = text(/*$selectedMessage*/ ctx[8]);
+ attr(h1, "class", "svelte-117e9f7");
+ },
+ m(target, anchor) {
+ insert(target, h1, anchor);
+ append(h1, t0);
+ append(h1, t1);
+ },
+ p(ctx, dirty) {
+ if (dirty & /*$selectedMessage*/ 256) set_data(t1, /*$selectedMessage*/ ctx[8]);
+ },
+ d(detaching) {
+ if (detaching) detach(h1);
+ }
+ };
+ }
+
+ // (272:8) {:else}
+ function create_else_block_1(ctx) {
+ let each_1_anchor;
+ let current;
+ let each_value = /*events*/ ctx[3];
+ let each_blocks = [];
+
+ for (let i = 0; i < each_value.length; i += 1) {
+ each_blocks[i] = create_each_block(get_each_context(ctx, each_value, i));
+ }
+
+ const out = i => transition_out(each_blocks[i], 1, 1, () => {
+ each_blocks[i] = null;
+ });
+
+ return {
+ c() {
+ for (let i = 0; i < each_blocks.length; i += 1) {
+ each_blocks[i].c();
+ }
+
+ each_1_anchor = empty();
+ },
+ m(target, anchor) {
+ for (let i = 0; i < each_blocks.length; i += 1) {
+ each_blocks[i].m(target, anchor);
+ }
+
+ insert(target, each_1_anchor, anchor);
+ current = true;
+ },
+ p(ctx, dirty) {
+ if (dirty & /*events, responses, websiteOwnerPubkey*/ 25) {
+ each_value = /*events*/ ctx[3];
+ let i;
+
+ for (i = 0; i < each_value.length; i += 1) {
+ const child_ctx = get_each_context(ctx, each_value, i);
+
+ if (each_blocks[i]) {
+ each_blocks[i].p(child_ctx, dirty);
+ transition_in(each_blocks[i], 1);
+ } else {
+ each_blocks[i] = create_each_block(child_ctx);
+ each_blocks[i].c();
+ transition_in(each_blocks[i], 1);
+ each_blocks[i].m(each_1_anchor.parentNode, each_1_anchor);
+ }
+ }
+
+ group_outros();
+
+ for (i = each_value.length; i < each_blocks.length; i += 1) {
+ out(i);
+ }
+
+ check_outros();
+ }
+ },
+ i(local) {
+ if (current) return;
+
+ for (let i = 0; i < each_value.length; i += 1) {
+ transition_in(each_blocks[i]);
+ }
+
+ current = true;
+ },
+ o(local) {
+ each_blocks = each_blocks.filter(Boolean);
+
+ for (let i = 0; i < each_blocks.length; i += 1) {
+ transition_out(each_blocks[i]);
+ }
+
+ current = false;
+ },
+ d(detaching) {
+ destroy_each(each_blocks, detaching);
+ if (detaching) detach(each_1_anchor);
+ }
+ };
+ }
+
+ // (270:8) {#if $selectedMessage}
+ function create_if_block_1$1(ctx) {
+ let nostrnote;
+ let current;
+
+ nostrnote = new NostrNote({
+ props: {
+ event: /*getEventById*/ ctx[9](/*$selectedMessage*/ ctx[8]),
+ responses: /*responses*/ ctx[4],
+ websiteOwnerPubkey: /*websiteOwnerPubkey*/ ctx[0]
+ }
+ });
+
+ return {
+ c() {
+ create_component(nostrnote.$$.fragment);
+ },
+ m(target, anchor) {
+ mount_component(nostrnote, target, anchor);
+ current = true;
+ },
+ p(ctx, dirty) {
+ const nostrnote_changes = {};
+ if (dirty & /*$selectedMessage*/ 256) nostrnote_changes.event = /*getEventById*/ ctx[9](/*$selectedMessage*/ ctx[8]);
+ if (dirty & /*responses*/ 16) nostrnote_changes.responses = /*responses*/ ctx[4];
+ if (dirty & /*websiteOwnerPubkey*/ 1) nostrnote_changes.websiteOwnerPubkey = /*websiteOwnerPubkey*/ ctx[0];
+ nostrnote.$set(nostrnote_changes);
+ },
+ i(local) {
+ if (current) return;
+ transition_in(nostrnote.$$.fragment, local);
+ current = true;
+ },
+ o(local) {
+ transition_out(nostrnote.$$.fragment, local);
+ current = false;
+ },
+ d(detaching) {
+ destroy_component(nostrnote, detaching);
+ }
+ };
+ }
+
+ // (275:16) {#if event.deleted}
+ function create_if_block_2(ctx) {
+ let t;
+
+ return {
+ c() {
+ t = text("👆 deleted");
+ },
+ m(target, anchor) {
+ insert(target, t, anchor);
+ },
+ d(detaching) {
+ if (detaching) detach(t);
+ }
+ };
+ }
+
+ // (273:12) {#each events as event}
+ function create_each_block(ctx) {
+ let nostrnote;
+ let t;
+ let if_block_anchor;
+ let current;
+
+ nostrnote = new NostrNote({
+ props: {
+ event: /*event*/ ctx[23],
+ responses: /*responses*/ ctx[4],
+ websiteOwnerPubkey: /*websiteOwnerPubkey*/ ctx[0]
+ }
+ });
+
+ let if_block = /*event*/ ctx[23].deleted && create_if_block_2();
+
+ return {
+ c() {
+ create_component(nostrnote.$$.fragment);
+ t = space();
+ if (if_block) if_block.c();
+ if_block_anchor = empty();
+ },
+ m(target, anchor) {
+ mount_component(nostrnote, target, anchor);
+ insert(target, t, anchor);
+ if (if_block) if_block.m(target, anchor);
+ insert(target, if_block_anchor, anchor);
+ current = true;
+ },
+ p(ctx, dirty) {
+ const nostrnote_changes = {};
+ if (dirty & /*events*/ 8) nostrnote_changes.event = /*event*/ ctx[23];
+ if (dirty & /*responses*/ 16) nostrnote_changes.responses = /*responses*/ ctx[4];
+ if (dirty & /*websiteOwnerPubkey*/ 1) nostrnote_changes.websiteOwnerPubkey = /*websiteOwnerPubkey*/ ctx[0];
+ nostrnote.$set(nostrnote_changes);
+
+ if (/*event*/ ctx[23].deleted) {
+ if (if_block) ; else {
+ if_block = create_if_block_2();
+ if_block.c();
+ if_block.m(if_block_anchor.parentNode, if_block_anchor);
+ }
+ } else if (if_block) {
+ if_block.d(1);
+ if_block = null;
+ }
+ },
+ i(local) {
+ if (current) return;
+ transition_in(nostrnote.$$.fragment, local);
+ current = true;
+ },
+ o(local) {
+ transition_out(nostrnote.$$.fragment, local);
+ current = false;
+ },
+ d(detaching) {
+ destroy_component(nostrnote, detaching);
+ if (detaching) detach(t);
+ if (if_block) if_block.d(detaching);
+ if (detaching) detach(if_block_anchor);
+ }
+ };
+ }
+
+ // (293:8) {:else}
+ function create_else_block$2(ctx) {
+ let b;
+ let t1;
+
+ return {
+ c() {
+ b = element("b");
+ b.textContent = "Public chat:";
+ t1 = text("\n anyone can see these messages.");
+ attr(b, "class", "svelte-117e9f7");
+ },
+ m(target, anchor) {
+ insert(target, b, anchor);
+ insert(target, t1, anchor);
+ },
+ d(detaching) {
+ if (detaching) detach(b);
+ if (detaching) detach(t1);
+ }
+ };
+ }
+
+ // (290:8) {#if chatConfiguration.chatType === 'DM'}
+ function create_if_block$2(ctx) {
+ let b;
+ let t1;
+
+ return {
+ c() {
+ b = element("b");
+ b.textContent = "Encrypted chat:";
+ t1 = text("\n only your chat partner can see these messages.");
+ attr(b, "class", "svelte-117e9f7");
+ },
+ m(target, anchor) {
+ insert(target, b, anchor);
+ insert(target, t1, anchor);
+ },
+ d(detaching) {
+ if (detaching) detach(b);
+ if (detaching) detach(t1);
+ }
+ };
+ }
+
+ function create_fragment$2(ctx) {
+ let div2;
+ let div0;
+ let t0;
+ let span;
+ let div1;
+ let t1;
+ let t2;
+ let t3;
+ let t4;
+ let t5;
+ let t6;
+ let t7;
+ let div4;
+ let div3;
+ let current_block_type_index;
+ let if_block2;
+ let t8;
+ let div7;
+ let div5;
+ let t9;
+ let div6;
+ let textarea;
+ let t10;
+ let button;
+ let current;
+ let mounted;
+ let dispose;
+ let if_block0 = /*$chatAdapter*/ ctx[2]?.pubkey && create_if_block_5(ctx);
+ let each_value_1 = Array(/*totalRelays*/ ctx[6]);
+ let each_blocks = [];
+
+ for (let i = 0; i < each_value_1.length; i += 1) {
+ each_blocks[i] = create_each_block_1(get_each_context_1(ctx, each_value_1, i));
+ }
+
+ let if_block1 = /*$selectedMessage*/ ctx[8] && create_if_block_3(ctx);
+ const if_block_creators = [create_if_block_1$1, create_else_block_1];
+ const if_blocks = [];
+
+ function select_block_type_1(ctx, dirty) {
+ if (/*$selectedMessage*/ ctx[8]) return 0;
+ return 1;
+ }
+
+ current_block_type_index = select_block_type_1(ctx);
+ if_block2 = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx);
+
+ function select_block_type_2(ctx, dirty) {
+ if (/*chatConfiguration*/ ctx[1].chatType === 'DM') return create_if_block$2;
+ return create_else_block$2;
+ }
+
+ let current_block_type = select_block_type_2(ctx);
+ let if_block3 = current_block_type(ctx);
+
+ return {
+ c() {
+ div2 = element("div");
+ div0 = element("div");
+ if (if_block0) if_block0.c();
+ t0 = space();
+ span = element("span");
+ div1 = element("div");
+
+ for (let i = 0; i < each_blocks.length; i += 1) {
+ each_blocks[i].c();
+ }
+
+ t1 = space();
+ t2 = text(/*connectedRelays*/ ctx[5]);
+ t3 = text("/");
+ t4 = text(/*totalRelays*/ ctx[6]);
+ t5 = text(" relays");
+ t6 = space();
+ if (if_block1) if_block1.c();
+ t7 = space();
+ div4 = element("div");
+ div3 = element("div");
+ if_block2.c();
+ t8 = space();
+ div7 = element("div");
+ div5 = element("div");
+ if_block3.c();
+ t9 = space();
+ div6 = element("div");
+ textarea = element("textarea");
+ t10 = space();
+ button = element("button");
+ button.innerHTML = ` `;
+ attr(div0, "class", "text-lg font-semibold svelte-117e9f7");
+ attr(div1, "class", "flex flex-row gap-1 overflow-clip svelte-117e9f7");
+ attr(span, "class", "text-xs flex flex-col items-end mt-2 text-gray-200 gap-1 svelte-117e9f7");
+ attr(div2, "class", "bg-purple-700 text-white -m-5 mb-3 px-5 py-3 overflow-clip flex flex-row justify-between items-center svelte-117e9f7");
+ attr(div3, "id", "messages-container-inner");
+ attr(div3, "class", "svelte-117e9f7");
+ attr(div4, "id", "messages-container");
+ attr(div4, "class", "overflow-auto -mx-4 px-4 svelte-117e9f7");
+ set_style(div4, "height", "50vh");
+ set_style(div4, "min-height", "300px");
+ attr(div5, "class", "border-y border-y-slate-200 -mx-5 my-2 bg-slate-100 text-black text-sm px-5 py-2 svelte-117e9f7");
+ attr(textarea, "type", "text");
+ attr(textarea, "id", "message-input");
+ attr(textarea, "class", "-mb-2 p-2 w-full resize-none rounded-xl text-gray-600 border svelte-117e9f7");
+ attr(textarea, "placeholder", "Say hello!");
+ attr(textarea, "rows", "1");
+ attr(button, "type", "button");
+ attr(button, "class", "inline-flex items-center rounded-full border border-transparent bg-purple-700 p-3 text-white shadow-sm hover:bg-purple-600 focus:outline-none focus:ring-2 focus:ring-purple-500 focus:ring-offset-2 svelte-117e9f7");
+ attr(div6, "class", "flex flex-row gap-2 -mx-1 svelte-117e9f7");
+ attr(div7, "class", "flex flex-col svelte-117e9f7");
+ },
+ m(target, anchor) {
+ insert(target, div2, anchor);
+ append(div2, div0);
+ if (if_block0) if_block0.m(div0, null);
+ append(div2, t0);
+ append(div2, span);
+ append(span, div1);
+
+ for (let i = 0; i < each_blocks.length; i += 1) {
+ each_blocks[i].m(div1, null);
+ }
+
+ append(span, t1);
+ append(span, t2);
+ append(span, t3);
+ append(span, t4);
+ append(span, t5);
+ insert(target, t6, anchor);
+ if (if_block1) if_block1.m(target, anchor);
+ insert(target, t7, anchor);
+ insert(target, div4, anchor);
+ append(div4, div3);
+ if_blocks[current_block_type_index].m(div3, null);
+ insert(target, t8, anchor);
+ insert(target, div7, anchor);
+ append(div7, div5);
+ if_block3.m(div5, null);
+ append(div7, t9);
+ append(div7, div6);
+ append(div6, textarea);
+ append(div6, t10);
+ append(div6, button);
+ current = true;
+
+ if (!mounted) {
+ dispose = [
+ listen(textarea, "keydown", /*inputKeyDown*/ ctx[11]),
+ listen(button, "click", prevent_default(/*sendMessage*/ ctx[10]))
+ ];
+
+ mounted = true;
+ }
+ },
+ p(ctx, [dirty]) {
+ if (/*$chatAdapter*/ ctx[2]?.pubkey) {
+ if (if_block0) {
+ if_block0.p(ctx, dirty);
+ } else {
+ if_block0 = create_if_block_5(ctx);
+ if_block0.c();
+ if_block0.m(div0, null);
+ }
+ } else if (if_block0) {
+ if_block0.d(1);
+ if_block0 = null;
+ }
+
+ if (dirty & /*connectedRelays, totalRelays*/ 96) {
+ each_value_1 = Array(/*totalRelays*/ ctx[6]);
+ let i;
+
+ for (i = 0; i < each_value_1.length; i += 1) {
+ const child_ctx = get_each_context_1(ctx, each_value_1, i);
+
+ if (each_blocks[i]) {
+ each_blocks[i].p(child_ctx, dirty);
+ } else {
+ each_blocks[i] = create_each_block_1(child_ctx);
+ each_blocks[i].c();
+ each_blocks[i].m(div1, null);
+ }
+ }
+
+ for (; i < each_blocks.length; i += 1) {
+ each_blocks[i].d(1);
+ }
+
+ each_blocks.length = each_value_1.length;
+ }
+
+ if (!current || dirty & /*connectedRelays*/ 32) set_data(t2, /*connectedRelays*/ ctx[5]);
+ if (!current || dirty & /*totalRelays*/ 64) set_data(t4, /*totalRelays*/ ctx[6]);
+
+ if (/*$selectedMessage*/ ctx[8]) {
+ if (if_block1) {
+ if_block1.p(ctx, dirty);
+ } else {
+ if_block1 = create_if_block_3(ctx);
+ if_block1.c();
+ if_block1.m(t7.parentNode, t7);
+ }
+ } else if (if_block1) {
+ if_block1.d(1);
+ if_block1 = null;
+ }
+
+ let previous_block_index = current_block_type_index;
+ current_block_type_index = select_block_type_1(ctx);
+
+ if (current_block_type_index === previous_block_index) {
+ if_blocks[current_block_type_index].p(ctx, dirty);
+ } else {
+ group_outros();
+
+ transition_out(if_blocks[previous_block_index], 1, 1, () => {
+ if_blocks[previous_block_index] = null;
+ });
+
+ check_outros();
+ if_block2 = if_blocks[current_block_type_index];
+
+ if (!if_block2) {
+ if_block2 = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx);
+ if_block2.c();
+ } else {
+ if_block2.p(ctx, dirty);
+ }
+
+ transition_in(if_block2, 1);
+ if_block2.m(div3, null);
+ }
+
+ if (current_block_type !== (current_block_type = select_block_type_2(ctx))) {
+ if_block3.d(1);
+ if_block3 = current_block_type(ctx);
+
+ if (if_block3) {
+ if_block3.c();
+ if_block3.m(div5, null);
+ }
+ }
+ },
+ i(local) {
+ if (current) return;
+ transition_in(if_block2);
+ current = true;
+ },
+ o(local) {
+ transition_out(if_block2);
+ current = false;
+ },
+ d(detaching) {
+ if (detaching) detach(div2);
+ if (if_block0) if_block0.d();
+ destroy_each(each_blocks, detaching);
+ if (detaching) detach(t6);
+ if (if_block1) if_block1.d(detaching);
+ if (detaching) detach(t7);
+ if (detaching) detach(div4);
+ if_blocks[current_block_type_index].d();
+ if (detaching) detach(t8);
+ if (detaching) detach(div7);
+ if_block3.d();
+ mounted = false;
+ run_all(dispose);
+ }
+ };
+ }
+
+ function instance$2($$self, $$props, $$invalidate) {
+ let $chatAdapter;
+ let $selectedMessage;
+ let $chatData;
+ component_subscribe($$self, chatAdapter, $$value => $$invalidate(2, $chatAdapter = $$value));
+ component_subscribe($$self, selectedMessage, $$value => $$invalidate(8, $selectedMessage = $$value));
+ component_subscribe($$self, chatData, $$value => $$invalidate(16, $chatData = $$value));
+ let events = [];
+ let responseEvents = [];
+ let responses = {};
+ let profiles = {};
+ let { websiteOwnerPubkey } = $$props;
+ let { chatConfiguration } = $$props;
+ let prevChatConfiguration;
+
+ function getEventById(eventId) {
+ let event = events.find(e => e.id === eventId);
+ event = event || responseEvents.find(e => e.id === eventId);
+ return event;
+ }
+
+ async function sendMessage() {
+ const input = document.getElementById('message-input');
+ const message = input.value;
+ input.value = '';
+ let extraParams = { tags: [], tagPubKeys: [] };
+
+ // if this is the rootLevel we want to tag the owner of the site's pubkey
+ if (!rootNoteId && websiteOwnerPubkey) {
+ extraParams.tagPubKeys = [websiteOwnerPubkey];
+ }
+
+ // if we are responding to an event, we want to tag the event and the pubkey
+ if ($selectedMessage) {
+ extraParams.tags.push(['e', $selectedMessage]);
+ extraParams.tagPubKeys.push(getEventById($selectedMessage).pubkey);
+ }
+
+ // if (rootNoteId) {
+ // // mark it as a response to the most recent event
+ // const mostRecentEvent = events[events.length - 1];
+ // // go through all the tags and add them to the new message
+ // if (mostRecentEvent) {
+ // mostRecentEvent.tags.forEach(tag => {
+ // if (tag[0] === 'e') {
+ // extraParams.tags.push(tag);
+ // }
+ // })
+ // extraParams.tags.push(['e', mostRecentEvent.id]);
+ // extraParams.tags.push(['p', mostRecentEvent.pubkey]);
+ // }
+ // }
+ const noteId = await $chatAdapter.send(message, extraParams);
+
+ if (!rootNoteId) {
+ rootNoteId = noteId;
+ localStorage.setItem('rootNoteId', rootNoteId);
+ }
+ }
+
+ async function inputKeyDown(event) {
+ if (event.key === 'Enter') {
+ sendMessage();
+ event.preventDefault();
+ }
+ }
+
+ function messageReceived(message) {
+ message.tags.filter(tag => tag[0] === 'e').pop();
+ let isThread;
+
+ if (chatConfiguration.chatType === 'GLOBAL') {
+ isThread = message.tags.filter(tag => tag[0] === 'e').length >= 1;
+ } else {
+ const pubkeysTagged = message.tags.filter(tag => tag[0] === 'p').map(tag => tag[1]);
+ isThread = new Set(pubkeysTagged).size >= 2;
+ }
+
+ if (!responses[message.id]) {
+ $$invalidate(4, responses[message.id] = [], responses);
+ }
+
+ if (isThread) {
+ // get the last "e" tag, which is tagging the immediate parent
+ const lastETag = message.tags.filter(tag => tag[0] === 'e').pop();
+
+ if (lastETag && lastETag[1]) {
+ // if there is one, add it to the response
+ if (!responses[lastETag[1]]) {
+ $$invalidate(4, responses[lastETag[1]] = [], responses);
+ }
+
+ responses[lastETag[1]].push(message);
+ }
+
+ responseEvents.push(message);
+ responseEvents = responseEvents;
+ } else {
+ // insert message so that it's chronologically ordered by created_at
+ let index = 0;
+
+ while (index < events.length && events[index].created_at < message.created_at) {
+ index++;
+ }
+
+ events.splice(index, 0, message);
+ ((($$invalidate(3, events), $$invalidate(1, chatConfiguration)), $$invalidate(14, prevChatConfiguration)), $$invalidate(2, $chatAdapter));
+ }
+
+ ((($$invalidate(4, responses), $$invalidate(1, chatConfiguration)), $$invalidate(14, prevChatConfiguration)), $$invalidate(2, $chatAdapter));
+ scrollDown();
+ }
+
+ function scrollDown() {
+ scrollToBottom({
+ container: document.getElementById('messages-container'),
+ offset: 999999, // hack, oh well, browsers suck
+ duration: 50
+ });
+ }
+
+ function reactionReceived(reaction) {
+ const event = events.find(event => event.id === reaction.id);
+
+ if (!event) {
+ return;
+ }
+
+ event.reactions = event.reactions || [];
+ event.reactions.push(reaction);
+ ((($$invalidate(3, events), $$invalidate(1, chatConfiguration)), $$invalidate(14, prevChatConfiguration)), $$invalidate(2, $chatAdapter));
+ }
+
+ let rootNoteId;
+
+ onMount(() => {
+ $chatAdapter.on('message', messageReceived);
+
+ $chatAdapter.on('connectivity', e => {
+ $$invalidate(15, connectivityStatus = e);
+ });
+
+ $chatAdapter.on('reaction', reactionReceived);
+
+ $chatAdapter.on('deleted', deletedEvents => {
+ deletedEvents.forEach(deletedEventId => {
+ const index = events.findIndex(event => event.id === deletedEventId);
+
+ if (index !== -1) {
+ $$invalidate(3, events[index].deleted = true, events);
+ ((($$invalidate(3, events), $$invalidate(1, chatConfiguration)), $$invalidate(14, prevChatConfiguration)), $$invalidate(2, $chatAdapter));
+ }
+ });
+ });
+
+ $chatAdapter.on('profile', ({ pubkey, profile }) => {
+ let profiles = $chatData.profiles;
+ profiles[pubkey] = profile;
+ chatData.set({ profiles, ...$chatData });
+ });
+ });
+
+ let connectivityStatus = {};
+ let connectedRelays = 0;
+ let totalRelays = 0;
+
+ function selectParent() {
+ // get the last tagged event in the tags array of the current $selectedMessage
+ const lastETag = getEventById($selectedMessage).tags.filter(tag => tag[0] === 'e').pop();
+
+ const lastETagId = lastETag && lastETag[1];
+ set_store_value(selectedMessage, $selectedMessage = lastETagId, $selectedMessage);
+ scrollDown();
+ }
+
+ let ownName;
+
+ function pubkeyName(pubkey) {
+ let name;
+
+ if (profiles[$chatAdapter.pubkey]) {
+ let self = profiles[$chatAdapter.pubkey];
+
+ // https://xkcd.com/927/
+ name = self.display_name || self.displayName || self.name || self.nip05;
+ }
+
+ if (!name) {
+ name = `[${pubkey.slice(0, 6)}]`;
+ }
+
+ return name;
+ }
+
+ $$self.$$set = $$props => {
+ if ('websiteOwnerPubkey' in $$props) $$invalidate(0, websiteOwnerPubkey = $$props.websiteOwnerPubkey);
+ if ('chatConfiguration' in $$props) $$invalidate(1, chatConfiguration = $$props.chatConfiguration);
+ };
+
+ $$self.$$.update = () => {
+ if ($$self.$$.dirty & /*chatConfiguration, prevChatConfiguration, $chatAdapter*/ 16390) {
+ {
+ if (chatConfiguration !== prevChatConfiguration && prevChatConfiguration && $chatAdapter) {
+ $chatAdapter.setChatConfiguration(chatConfiguration.chatType, chatConfiguration.chatTags, chatConfiguration.chatReferenceTags);
+ $$invalidate(3, events = []);
+ $$invalidate(4, responses = {});
+ rootNoteId = null;
+ localStorage.removeItem('rootNoteId');
+ } // rootNoteId = localStorage.getItem('rootNoteId');
+ // if (rootNoteId) {
+
+ // $chatAdapter.subscribeToEventAndResponses(rootNoteId);
+ // }
+ $$invalidate(14, prevChatConfiguration = chatConfiguration);
+ }
+ }
+
+ if ($$self.$$.dirty & /*$chatData*/ 65536) {
+ $$invalidate(13, profiles = $chatData.profiles);
+ }
+
+ if ($$self.$$.dirty & /*connectivityStatus, $chatAdapter, profiles*/ 40964) {
+ {
+ $$invalidate(5, connectedRelays = Object.values(connectivityStatus).filter(status => status === 'connected').length);
+ $$invalidate(6, totalRelays = Object.values(connectivityStatus).length);
+
+ if ($chatAdapter?.pubkey && !profiles[$chatAdapter.pubkey]) {
+ $chatAdapter.reqProfile($chatAdapter.pubkey);
+ }
+ }
+ }
+
+ if ($$self.$$.dirty & /*$chatAdapter*/ 4) {
+ $$invalidate(7, ownName = ($chatAdapter?.pubkey)
+ ? pubkeyName($chatAdapter.pubkey)
+ : "");
+ }
+ };
+
+ return [
+ websiteOwnerPubkey,
+ chatConfiguration,
+ $chatAdapter,
+ events,
+ responses,
+ connectedRelays,
+ totalRelays,
+ ownName,
+ $selectedMessage,
+ getEventById,
+ sendMessage,
+ inputKeyDown,
+ selectParent,
+ profiles,
+ prevChatConfiguration,
+ connectivityStatus,
+ $chatData
+ ];
+ }
+
+ class ConnectedWidget extends SvelteComponent {
+ constructor(options) {
+ super();
+
+ init(this, options, instance$2, create_fragment$2, safe_not_equal, {
+ websiteOwnerPubkey: 0,
+ chatConfiguration: 1
+ });
+ }
+ }
+
+ /* src/Container.svelte generated by Svelte v3.55.1 */
+
+ function create_else_block$1(ctx) {
+ let connectedwidget;
+ let current;
+
+ connectedwidget = new ConnectedWidget({
+ props: {
+ websiteOwnerPubkey: /*websiteOwnerPubkey*/ ctx[1],
+ chatConfiguration: /*chatConfiguration*/ ctx[2],
+ relays: /*relays*/ ctx[3]
+ }
+ });
+
+ return {
+ c() {
+ create_component(connectedwidget.$$.fragment);
+ },
+ m(target, anchor) {
+ mount_component(connectedwidget, target, anchor);
+ current = true;
+ },
+ p(ctx, dirty) {
+ const connectedwidget_changes = {};
+ if (dirty & /*websiteOwnerPubkey*/ 2) connectedwidget_changes.websiteOwnerPubkey = /*websiteOwnerPubkey*/ ctx[1];
+ if (dirty & /*chatConfiguration*/ 4) connectedwidget_changes.chatConfiguration = /*chatConfiguration*/ ctx[2];
+ if (dirty & /*relays*/ 8) connectedwidget_changes.relays = /*relays*/ ctx[3];
+ connectedwidget.$set(connectedwidget_changes);
+ },
+ i(local) {
+ if (current) return;
+ transition_in(connectedwidget.$$.fragment, local);
+ current = true;
+ },
+ o(local) {
+ transition_out(connectedwidget.$$.fragment, local);
+ current = false;
+ },
+ d(detaching) {
+ destroy_component(connectedwidget, detaching);
+ }
+ };
+ }
+
+ // (14:0) {#if !chatStarted}
+ function create_if_block$1(ctx) {
+ let keyprompt;
+ let current;
+
+ keyprompt = new KeyPrompt({
+ props: {
+ websiteOwnerPubkey: /*websiteOwnerPubkey*/ ctx[1],
+ chatConfiguration: /*chatConfiguration*/ ctx[2],
+ relays: /*relays*/ ctx[3]
+ }
+ });
+
+ return {
+ c() {
+ create_component(keyprompt.$$.fragment);
+ },
+ m(target, anchor) {
+ mount_component(keyprompt, target, anchor);
+ current = true;
+ },
+ p(ctx, dirty) {
+ const keyprompt_changes = {};
+ if (dirty & /*websiteOwnerPubkey*/ 2) keyprompt_changes.websiteOwnerPubkey = /*websiteOwnerPubkey*/ ctx[1];
+ if (dirty & /*chatConfiguration*/ 4) keyprompt_changes.chatConfiguration = /*chatConfiguration*/ ctx[2];
+ if (dirty & /*relays*/ 8) keyprompt_changes.relays = /*relays*/ ctx[3];
+ keyprompt.$set(keyprompt_changes);
+ },
+ i(local) {
+ if (current) return;
+ transition_in(keyprompt.$$.fragment, local);
+ current = true;
+ },
+ o(local) {
+ transition_out(keyprompt.$$.fragment, local);
+ current = false;
+ },
+ d(detaching) {
+ destroy_component(keyprompt, detaching);
+ }
+ };
+ }
+
+ function create_fragment$1(ctx) {
+ let current_block_type_index;
+ let if_block;
+ let if_block_anchor;
+ let current;
+ const if_block_creators = [create_if_block$1, create_else_block$1];
+ const if_blocks = [];
+
+ function select_block_type(ctx, dirty) {
+ if (!/*chatStarted*/ ctx[0]) return 0;
+ return 1;
+ }
+
+ current_block_type_index = select_block_type(ctx);
+ if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx);
+
+ return {
+ c() {
+ if_block.c();
+ if_block_anchor = empty();
+ },
+ m(target, anchor) {
+ if_blocks[current_block_type_index].m(target, anchor);
+ insert(target, if_block_anchor, anchor);
+ current = true;
+ },
+ p(ctx, [dirty]) {
+ let previous_block_index = current_block_type_index;
+ current_block_type_index = select_block_type(ctx);
+
+ if (current_block_type_index === previous_block_index) {
+ if_blocks[current_block_type_index].p(ctx, dirty);
+ } else {
+ group_outros();
+
+ transition_out(if_blocks[previous_block_index], 1, 1, () => {
+ if_blocks[previous_block_index] = null;
+ });
+
+ check_outros();
+ if_block = if_blocks[current_block_type_index];
+
+ if (!if_block) {
+ if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx);
+ if_block.c();
+ } else {
+ if_block.p(ctx, dirty);
+ }
+
+ transition_in(if_block, 1);
+ if_block.m(if_block_anchor.parentNode, if_block_anchor);
+ }
+ },
+ i(local) {
+ if (current) return;
+ transition_in(if_block);
+ current = true;
+ },
+ o(local) {
+ transition_out(if_block);
+ current = false;
+ },
+ d(detaching) {
+ if_blocks[current_block_type_index].d(detaching);
+ if (detaching) detach(if_block_anchor);
+ }
+ };
+ }
+
+ function instance$1($$self, $$props, $$invalidate) {
+ let $chatAdapter;
+ component_subscribe($$self, chatAdapter, $$value => $$invalidate(4, $chatAdapter = $$value));
+ let { websiteOwnerPubkey } = $$props;
+ let { chatStarted } = $$props;
+ let { chatConfiguration } = $$props;
+ let { relays } = $$props;
+
+ $$self.$$set = $$props => {
+ if ('websiteOwnerPubkey' in $$props) $$invalidate(1, websiteOwnerPubkey = $$props.websiteOwnerPubkey);
+ if ('chatStarted' in $$props) $$invalidate(0, chatStarted = $$props.chatStarted);
+ if ('chatConfiguration' in $$props) $$invalidate(2, chatConfiguration = $$props.chatConfiguration);
+ if ('relays' in $$props) $$invalidate(3, relays = $$props.relays);
+ };
+
+ $$self.$$.update = () => {
+ if ($$self.$$.dirty & /*$chatAdapter*/ 16) {
+ $$invalidate(0, chatStarted = !!$chatAdapter);
+ }
+ };
+
+ return [chatStarted, websiteOwnerPubkey, chatConfiguration, relays, $chatAdapter];
+ }
+
+ class Container extends SvelteComponent {
+ constructor(options) {
+ super();
+
+ init(this, options, instance$1, create_fragment$1, safe_not_equal, {
+ websiteOwnerPubkey: 1,
+ chatStarted: 0,
+ chatConfiguration: 2,
+ relays: 3
+ });
+ }
+ }
+
+ /* src/Widget.svelte generated by Svelte v3.55.1 */
+
+ function create_if_block(ctx) {
+ let div;
+ let current_block_type_index;
+ let if_block;
+ let div_class_value;
+ let current;
+ const if_block_creators = [create_if_block_1, create_else_block];
+ const if_blocks = [];
+
+ function select_block_type(ctx, dirty) {
+ if (!/*dismissedIntro*/ ctx[6]) return 0;
+ return 1;
+ }
+
+ current_block_type_index = select_block_type(ctx);
+ if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx);
+
+ return {
+ c() {
+ div = element("div");
+ if_block.c();
+ attr(div, "class", div_class_value = "shadow-2xl bg-white mb-5 w-96 max-w-screen-sm text-black rounded-xl p-5 " + (/*minimizeChat*/ ctx[7] ? 'hidden' : '') + "" + " svelte-t9ifgy");
+ set_style(div, "max-height", "80vh");
+ },
+ m(target, anchor) {
+ insert(target, div, anchor);
+ if_blocks[current_block_type_index].m(div, null);
+ current = true;
+ },
+ p(ctx, dirty) {
+ let previous_block_index = current_block_type_index;
+ current_block_type_index = select_block_type(ctx);
+
+ if (current_block_type_index === previous_block_index) {
+ if_blocks[current_block_type_index].p(ctx, dirty);
+ } else {
+ group_outros();
+
+ transition_out(if_blocks[previous_block_index], 1, 1, () => {
+ if_blocks[previous_block_index] = null;
+ });
+
+ check_outros();
+ if_block = if_blocks[current_block_type_index];
+
+ if (!if_block) {
+ if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx);
+ if_block.c();
+ } else {
+ if_block.p(ctx, dirty);
+ }
+
+ transition_in(if_block, 1);
+ if_block.m(div, null);
+ }
+
+ if (!current || dirty & /*minimizeChat*/ 128 && div_class_value !== (div_class_value = "shadow-2xl bg-white mb-5 w-96 max-w-screen-sm text-black rounded-xl p-5 " + (/*minimizeChat*/ ctx[7] ? 'hidden' : '') + "" + " svelte-t9ifgy")) {
+ attr(div, "class", div_class_value);
+ }
+ },
+ i(local) {
+ if (current) return;
+ transition_in(if_block);
+ current = true;
+ },
+ o(local) {
+ transition_out(if_block);
+ current = false;
+ },
+ d(detaching) {
+ if (detaching) detach(div);
+ if_blocks[current_block_type_index].d();
+ }
+ };
+ }
+
+ // (80:12) {:else}
+ function create_else_block(ctx) {
+ let container;
+ let current;
+
+ container = new Container({
+ props: {
+ websiteOwnerPubkey: /*websiteOwnerPubkey*/ ctx[0],
+ chatConfiguration: {
+ chatType: /*chatType*/ ctx[1],
+ chatTags: /*chatTags*/ ctx[2],
+ chatReferenceTags: /*chatReferenceTags*/ ctx[3]
+ },
+ relays: /*relays*/ ctx[4]
+ }
+ });
+
+ return {
+ c() {
+ create_component(container.$$.fragment);
+ },
+ m(target, anchor) {
+ mount_component(container, target, anchor);
+ current = true;
+ },
+ p(ctx, dirty) {
+ const container_changes = {};
+ if (dirty & /*websiteOwnerPubkey*/ 1) container_changes.websiteOwnerPubkey = /*websiteOwnerPubkey*/ ctx[0];
+
+ if (dirty & /*chatType, chatTags, chatReferenceTags*/ 14) container_changes.chatConfiguration = {
+ chatType: /*chatType*/ ctx[1],
+ chatTags: /*chatTags*/ ctx[2],
+ chatReferenceTags: /*chatReferenceTags*/ ctx[3]
+ };
+
+ if (dirty & /*relays*/ 16) container_changes.relays = /*relays*/ ctx[4];
+ container.$set(container_changes);
+ },
+ i(local) {
+ if (current) return;
+ transition_in(container.$$.fragment, local);
+ current = true;
+ },
+ o(local) {
+ transition_out(container.$$.fragment, local);
+ current = false;
+ },
+ d(detaching) {
+ destroy_component(container, detaching);
+ }
+ };
+ }
+
+ // (34:12) {#if !dismissedIntro}
+ function create_if_block_1(ctx) {
+ let h1;
+ let t1;
+ let p0;
+ let t3;
+ let p1;
+ let t5;
+ let p2;
+ let t9;
+ let p3;
+ let t11;
+ let button;
+ let mounted;
+ let dispose;
+
+ return {
+ c() {
+ h1 = element("h1");
+ h1.textContent = "NostriChat";
+ t1 = space();
+ p0 = element("p");
+ p0.textContent = "This is a FOSS chat app built on top of the Nostr protocol.";
+ t3 = space();
+ p1 = element("p");
+ p1.textContent = "Choose how you would like to chat:";
+ t5 = space();
+ p2 = element("p");
+
+ p2.innerHTML = `You can use it to ask for help
+ PSBT.io
+ to the creators of this site or to
+ anyone willing to help.`;
+
+ t9 = space();
+ p3 = element("p");
+ p3.textContent = "Keep in mind that this chat is public,\n anyone can read it, so don't exchange\n private information and use common-sense.";
+ t11 = space();
+ button = element("button");
+ button.textContent = "Continue";
+ attr(h1, "class", "font-bold text-2xl text-purple-700 svelte-t9ifgy");
+ attr(p0, "class", "text-gray-700 mb-3 svelte-t9ifgy");
+ attr(p1, "class", "text-gray-700 mb-3 svelte-t9ifgy");
+ attr(p2, "class", "text-gray-700 mb-3 svelte-t9ifgy");
+ attr(p3, "class", "text-gray-700 mb-3 svelte-t9ifgy");
+ attr(button, "class", "bg-purple-900 hover:bg-purple-700 w-full p-2 py-4 text-xl mt-3 rounded-xl text-center font-semibold tracking-wide uppercase text-white svelte-t9ifgy");
+ },
+ m(target, anchor) {
+ insert(target, h1, anchor);
+ insert(target, t1, anchor);
+ insert(target, p0, anchor);
+ insert(target, t3, anchor);
+ insert(target, p1, anchor);
+ insert(target, t5, anchor);
+ insert(target, p2, anchor);
+ insert(target, t9, anchor);
+ insert(target, p3, anchor);
+ insert(target, t11, anchor);
+ insert(target, button, anchor);
+
+ if (!mounted) {
+ dispose = listen(button, "click", /*dismissIntro*/ ctx[9]);
+ mounted = true;
+ }
+ },
+ p: noop,
+ i: noop,
+ o: noop,
+ d(detaching) {
+ if (detaching) detach(h1);
+ if (detaching) detach(t1);
+ if (detaching) detach(p0);
+ if (detaching) detach(t3);
+ if (detaching) detach(p1);
+ if (detaching) detach(t5);
+ if (detaching) detach(p2);
+ if (detaching) detach(t9);
+ if (detaching) detach(p3);
+ if (detaching) detach(t11);
+ if (detaching) detach(button);
+ mounted = false;
+ dispose();
+ }
+ };
+ }
+
+ function create_fragment(ctx) {
+ let div1;
+ let t0;
+ let div0;
+ let a;
+ let current;
+ let mounted;
+ let dispose;
+ let if_block = /*showChat*/ ctx[5] && create_if_block(ctx);
+
+ return {
+ c() {
+ div1 = element("div");
+ if (if_block) if_block.c();
+ t0 = space();
+ div0 = element("div");
+ a = element("a");
+
+ a.innerHTML = `Nostri Chat
+ `;
+
+ attr(a, "href", "#");
+ attr(a, "class", "text-white bg-purple-900 hover:bg-purple-700 w-full p-5 rounded-full flex-shrink-1 text-center font-semibold flex flex-row items-center gap-4 svelte-t9ifgy");
+ attr(div0, "class", "self-end svelte-t9ifgy");
+ attr(div1, "class", "fixed bottom-5 right-5 mb-5 flex flex-col item-end font-sans svelte-t9ifgy");
+ },
+ m(target, anchor) {
+ insert(target, div1, anchor);
+ if (if_block) if_block.m(div1, null);
+ append(div1, t0);
+ append(div1, div0);
+ append(div0, a);
+ current = true;
+
+ if (!mounted) {
+ dispose = listen(a, "click", prevent_default(/*toggleChat*/ ctx[8]));
+ mounted = true;
+ }
+ },
+ p(ctx, [dirty]) {
+ if (/*showChat*/ ctx[5]) {
+ if (if_block) {
+ if_block.p(ctx, dirty);
+
+ if (dirty & /*showChat*/ 32) {
+ transition_in(if_block, 1);
+ }
+ } else {
+ if_block = create_if_block(ctx);
+ if_block.c();
+ transition_in(if_block, 1);
+ if_block.m(div1, t0);
+ }
+ } else if (if_block) {
+ group_outros();
+
+ transition_out(if_block, 1, 1, () => {
+ if_block = null;
+ });
+
+ check_outros();
+ }
+ },
+ i(local) {
+ if (current) return;
+ transition_in(if_block);
+ current = true;
+ },
+ o(local) {
+ transition_out(if_block);
+ current = false;
+ },
+ d(detaching) {
+ if (detaching) detach(div1);
+ if (if_block) if_block.d();
+ mounted = false;
+ dispose();
+ }
+ };
+ }
+
+ function instance($$self, $$props, $$invalidate) {
+ let { websiteOwnerPubkey } = $$props;
+ let { chatType } = $$props;
+ let { chatTags } = $$props;
+ let { chatReferenceTags } = $$props;
+ let { relays } = $$props;
+ let showChat = false;
+ let dismissedIntro = true;
+ let minimizeChat = false;
+
+ function toggleChat() {
+ if (showChat) {
+ $$invalidate(7, minimizeChat = !minimizeChat);
+ } else {
+ $$invalidate(5, showChat = !showChat);
+ }
+ }
+
+ function dismissIntro() {
+ $$invalidate(6, dismissedIntro = true);
+ }
+
+ $$self.$$set = $$props => {
+ if ('websiteOwnerPubkey' in $$props) $$invalidate(0, websiteOwnerPubkey = $$props.websiteOwnerPubkey);
+ if ('chatType' in $$props) $$invalidate(1, chatType = $$props.chatType);
+ if ('chatTags' in $$props) $$invalidate(2, chatTags = $$props.chatTags);
+ if ('chatReferenceTags' in $$props) $$invalidate(3, chatReferenceTags = $$props.chatReferenceTags);
+ if ('relays' in $$props) $$invalidate(4, relays = $$props.relays);
+ };
+
+ return [
+ websiteOwnerPubkey,
+ chatType,
+ chatTags,
+ chatReferenceTags,
+ relays,
+ showChat,
+ dismissedIntro,
+ minimizeChat,
+ toggleChat,
+ dismissIntro
+ ];
+ }
+
+ class Widget extends SvelteComponent {
+ constructor(options) {
+ super();
+
+ init(this, options, instance, create_fragment, safe_not_equal, {
+ websiteOwnerPubkey: 0,
+ chatType: 1,
+ chatTags: 2,
+ chatReferenceTags: 3,
+ relays: 4
+ });
+ }
+ }
+
+ var div = document.createElement('DIV');
+ var script = document.currentScript;
+ const websiteOwnerPubkey = script.getAttribute('data-website-owner-pubkey');
+ const chatType = script.getAttribute('data-chat-type');
+ let chatTags = script.getAttribute('data-chat-tags');
+ let chatReferenceTags = script.getAttribute('data-chat-reference-tags');
+ let relays = script.getAttribute('data-relays');
+ script.parentNode.insertBefore(div, script);
+
+ if (!relays) {
+ relays = 'wss://relay.f7z.io,wss://nos.lol,wss://relay.nostr.info,wss://nostr-pub.wellorder.net,wss://relay.current.fyi,wss://relay.nostr.band';
+ }
+
+ relays = relays.split(',');
+ chatTags = chatTags ? chatTags.split(',') : [];
+ chatReferenceTags = chatReferenceTags ? chatReferenceTags.split(',') : [];
+
+ new Widget({
+ target: div,
+ props: {
+ websiteOwnerPubkey,
+ chatType,
+ chatTags,
+ chatReferenceTags,
+ relays
+ },
+ });
+
+})();
+//# sourceMappingURL=bundle.js.map
diff --git a/public/bundle.js.map b/public/bundle.js.map
new file mode 100644
index 0000000..cd311e4
--- /dev/null
+++ b/public/bundle.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"bundle.js","sources":["../node_modules/svelte/internal/index.mjs","../node_modules/svelte/store/index.mjs","../src/lib/store.js","../node_modules/svelte-qr/src/mode.ts","../node_modules/svelte-qr/src/8BitByte.ts","../node_modules/svelte-qr/src/ErrorCorrectLevel.ts","../node_modules/svelte-qr/src/RSBlock.ts","../node_modules/svelte-qr/src/BitBuffer.ts","../node_modules/svelte-qr/src/math.ts","../node_modules/svelte-qr/src/Polynomial.ts","../node_modules/svelte-qr/src/util.ts","../node_modules/svelte-qr/src/QRCode.ts","../node_modules/svelte-qr/src/QR.svelte","../node_modules/@noble/secp256k1/lib/esm/index.js","../node_modules/@noble/hashes/esm/cryptoBrowser.js","../node_modules/@noble/hashes/esm/utils.js","../node_modules/@noble/hashes/esm/_sha2.js","../node_modules/@noble/hashes/esm/sha256.js","../node_modules/@scure/base/lib/esm/index.js","../node_modules/@scure/bip39/wordlists/english.js","../node_modules/@scure/bip39/node_modules/@noble/hashes/_assert.js","../node_modules/@scure/bip39/node_modules/@noble/hashes/cryptoBrowser.js","../node_modules/@scure/bip39/node_modules/@noble/hashes/utils.js","../node_modules/@scure/bip39/node_modules/@noble/hashes/hmac.js","../node_modules/@scure/bip39/node_modules/@noble/hashes/pbkdf2.js","../node_modules/@scure/bip39/node_modules/@noble/hashes/_sha2.js","../node_modules/@scure/bip39/node_modules/@noble/hashes/sha256.js","../node_modules/@scure/bip39/node_modules/@noble/hashes/_u64.js","../node_modules/@scure/bip39/node_modules/@noble/hashes/sha512.js","../node_modules/@scure/base/lib/index.js","../node_modules/@scure/bip39/index.js","../node_modules/@scure/bip32/node_modules/@noble/hashes/esm/_assert.js","../node_modules/@scure/bip32/node_modules/@noble/hashes/esm/utils.js","../node_modules/@scure/bip32/node_modules/@noble/hashes/esm/hmac.js","../node_modules/@scure/bip32/node_modules/@noble/hashes/esm/_sha2.js","../node_modules/@scure/bip32/node_modules/@noble/hashes/esm/ripemd160.js","../node_modules/@scure/bip32/node_modules/@noble/hashes/esm/sha256.js","../node_modules/@scure/bip32/node_modules/@noble/hashes/esm/_u64.js","../node_modules/@scure/bip32/node_modules/@noble/hashes/esm/sha512.js","../node_modules/@scure/bip32/lib/esm/index.js","../node_modules/@noble/hashes/esm/hmac.js","../node_modules/nostr-tools/lib/esm/nostr.mjs","../node_modules/nostr/lib/relay.js","../node_modules/nostr/lib/relay-pool.js","../node_modules/events/events.js","../node_modules/uuid/dist/esm-browser/rng.js","../node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/uuid/dist/esm-browser/native.js","../node_modules/uuid/dist/esm-browser/v4.js","../node_modules/ms/index.js","../node_modules/debug/src/common.js","../node_modules/debug/src/browser.js","../src/lib/adapters/index.js","../src/lib/adapters/nip07.js","../node_modules/@nostr-connect/connect/dist/connect.esm.js","../src/lib/adapters/nip46.js","../src/lib/adapters/discardable-keys.js","../src/KeyPrompt.svelte","../src/NostrNote.svelte","../node_modules/svelte/easing/index.mjs","../node_modules/svelte-scrollto/src/helper.js","../node_modules/svelte-scrollto/src/index.js","../src/ConnectedWidget.svelte","../src/Container.svelte","../src/Widget.svelte","../src/widget.js"],"sourcesContent":["function noop() { }\nconst identity = x => x;\nfunction assign(tar, src) {\n // @ts-ignore\n for (const k in src)\n tar[k] = src[k];\n return tar;\n}\n// Adapted from https://github.com/then/is-promise/blob/master/index.js\n// Distributed under MIT License https://github.com/then/is-promise/blob/master/LICENSE\nfunction is_promise(value) {\n return !!value && (typeof value === 'object' || typeof value === 'function') && typeof value.then === 'function';\n}\nfunction add_location(element, file, line, column, char) {\n element.__svelte_meta = {\n loc: { file, line, column, char }\n };\n}\nfunction run(fn) {\n return fn();\n}\nfunction blank_object() {\n return Object.create(null);\n}\nfunction run_all(fns) {\n fns.forEach(run);\n}\nfunction is_function(thing) {\n return typeof thing === 'function';\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function');\n}\nlet src_url_equal_anchor;\nfunction src_url_equal(element_src, url) {\n if (!src_url_equal_anchor) {\n src_url_equal_anchor = document.createElement('a');\n }\n src_url_equal_anchor.href = url;\n return element_src === src_url_equal_anchor.href;\n}\nfunction not_equal(a, b) {\n return a != a ? b == b : a !== b;\n}\nfunction is_empty(obj) {\n return Object.keys(obj).length === 0;\n}\nfunction validate_store(store, name) {\n if (store != null && typeof store.subscribe !== 'function') {\n throw new Error(`'${name}' is not a store with a 'subscribe' method`);\n }\n}\nfunction subscribe(store, ...callbacks) {\n if (store == null) {\n return noop;\n }\n const unsub = store.subscribe(...callbacks);\n return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub;\n}\nfunction get_store_value(store) {\n let value;\n subscribe(store, _ => value = _)();\n return value;\n}\nfunction component_subscribe(component, store, callback) {\n component.$$.on_destroy.push(subscribe(store, callback));\n}\nfunction create_slot(definition, ctx, $$scope, fn) {\n if (definition) {\n const slot_ctx = get_slot_context(definition, ctx, $$scope, fn);\n return definition[0](slot_ctx);\n }\n}\nfunction get_slot_context(definition, ctx, $$scope, fn) {\n return definition[1] && fn\n ? assign($$scope.ctx.slice(), definition[1](fn(ctx)))\n : $$scope.ctx;\n}\nfunction get_slot_changes(definition, $$scope, dirty, fn) {\n if (definition[2] && fn) {\n const lets = definition[2](fn(dirty));\n if ($$scope.dirty === undefined) {\n return lets;\n }\n if (typeof lets === 'object') {\n const merged = [];\n const len = Math.max($$scope.dirty.length, lets.length);\n for (let i = 0; i < len; i += 1) {\n merged[i] = $$scope.dirty[i] | lets[i];\n }\n return merged;\n }\n return $$scope.dirty | lets;\n }\n return $$scope.dirty;\n}\nfunction update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn) {\n if (slot_changes) {\n const slot_context = get_slot_context(slot_definition, ctx, $$scope, get_slot_context_fn);\n slot.p(slot_context, slot_changes);\n }\n}\nfunction update_slot(slot, slot_definition, ctx, $$scope, dirty, get_slot_changes_fn, get_slot_context_fn) {\n const slot_changes = get_slot_changes(slot_definition, $$scope, dirty, get_slot_changes_fn);\n update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn);\n}\nfunction get_all_dirty_from_scope($$scope) {\n if ($$scope.ctx.length > 32) {\n const dirty = [];\n const length = $$scope.ctx.length / 32;\n for (let i = 0; i < length; i++) {\n dirty[i] = -1;\n }\n return dirty;\n }\n return -1;\n}\nfunction exclude_internal_props(props) {\n const result = {};\n for (const k in props)\n if (k[0] !== '$')\n result[k] = props[k];\n return result;\n}\nfunction compute_rest_props(props, keys) {\n const rest = {};\n keys = new Set(keys);\n for (const k in props)\n if (!keys.has(k) && k[0] !== '$')\n rest[k] = props[k];\n return rest;\n}\nfunction compute_slots(slots) {\n const result = {};\n for (const key in slots) {\n result[key] = true;\n }\n return result;\n}\nfunction once(fn) {\n let ran = false;\n return function (...args) {\n if (ran)\n return;\n ran = true;\n fn.call(this, ...args);\n };\n}\nfunction null_to_empty(value) {\n return value == null ? '' : value;\n}\nfunction set_store_value(store, ret, value) {\n store.set(value);\n return ret;\n}\nconst has_prop = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);\nfunction action_destroyer(action_result) {\n return action_result && is_function(action_result.destroy) ? action_result.destroy : noop;\n}\n\nconst is_client = typeof window !== 'undefined';\nlet now = is_client\n ? () => window.performance.now()\n : () => Date.now();\nlet raf = is_client ? cb => requestAnimationFrame(cb) : noop;\n// used internally for testing\nfunction set_now(fn) {\n now = fn;\n}\nfunction set_raf(fn) {\n raf = fn;\n}\n\nconst tasks = new Set();\nfunction run_tasks(now) {\n tasks.forEach(task => {\n if (!task.c(now)) {\n tasks.delete(task);\n task.f();\n }\n });\n if (tasks.size !== 0)\n raf(run_tasks);\n}\n/**\n * For testing purposes only!\n */\nfunction clear_loops() {\n tasks.clear();\n}\n/**\n * Creates a new task that runs on each raf frame\n * until it returns a falsy value or is aborted\n */\nfunction loop(callback) {\n let task;\n if (tasks.size === 0)\n raf(run_tasks);\n return {\n promise: new Promise(fulfill => {\n tasks.add(task = { c: callback, f: fulfill });\n }),\n abort() {\n tasks.delete(task);\n }\n };\n}\n\n// Track which nodes are claimed during hydration. Unclaimed nodes can then be removed from the DOM\n// at the end of hydration without touching the remaining nodes.\nlet is_hydrating = false;\nfunction start_hydrating() {\n is_hydrating = true;\n}\nfunction end_hydrating() {\n is_hydrating = false;\n}\nfunction upper_bound(low, high, key, value) {\n // Return first index of value larger than input value in the range [low, high)\n while (low < high) {\n const mid = low + ((high - low) >> 1);\n if (key(mid) <= value) {\n low = mid + 1;\n }\n else {\n high = mid;\n }\n }\n return low;\n}\nfunction init_hydrate(target) {\n if (target.hydrate_init)\n return;\n target.hydrate_init = true;\n // We know that all children have claim_order values since the unclaimed have been detached if target is not
\n let children = target.childNodes;\n // If target is , there may be children without claim_order\n if (target.nodeName === 'HEAD') {\n const myChildren = [];\n for (let i = 0; i < children.length; i++) {\n const node = children[i];\n if (node.claim_order !== undefined) {\n myChildren.push(node);\n }\n }\n children = myChildren;\n }\n /*\n * Reorder claimed children optimally.\n * We can reorder claimed children optimally by finding the longest subsequence of\n * nodes that are already claimed in order and only moving the rest. The longest\n * subsequence of nodes that are claimed in order can be found by\n * computing the longest increasing subsequence of .claim_order values.\n *\n * This algorithm is optimal in generating the least amount of reorder operations\n * possible.\n *\n * Proof:\n * We know that, given a set of reordering operations, the nodes that do not move\n * always form an increasing subsequence, since they do not move among each other\n * meaning that they must be already ordered among each other. Thus, the maximal\n * set of nodes that do not move form a longest increasing subsequence.\n */\n // Compute longest increasing subsequence\n // m: subsequence length j => index k of smallest value that ends an increasing subsequence of length j\n const m = new Int32Array(children.length + 1);\n // Predecessor indices + 1\n const p = new Int32Array(children.length);\n m[0] = -1;\n let longest = 0;\n for (let i = 0; i < children.length; i++) {\n const current = children[i].claim_order;\n // Find the largest subsequence length such that it ends in a value less than our current value\n // upper_bound returns first greater value, so we subtract one\n // with fast path for when we are on the current longest subsequence\n const seqLen = ((longest > 0 && children[m[longest]].claim_order <= current) ? longest + 1 : upper_bound(1, longest, idx => children[m[idx]].claim_order, current)) - 1;\n p[i] = m[seqLen] + 1;\n const newLen = seqLen + 1;\n // We can guarantee that current is the smallest value. Otherwise, we would have generated a longer sequence.\n m[newLen] = i;\n longest = Math.max(newLen, longest);\n }\n // The longest increasing subsequence of nodes (initially reversed)\n const lis = [];\n // The rest of the nodes, nodes that will be moved\n const toMove = [];\n let last = children.length - 1;\n for (let cur = m[longest] + 1; cur != 0; cur = p[cur - 1]) {\n lis.push(children[cur - 1]);\n for (; last >= cur; last--) {\n toMove.push(children[last]);\n }\n last--;\n }\n for (; last >= 0; last--) {\n toMove.push(children[last]);\n }\n lis.reverse();\n // We sort the nodes being moved to guarantee that their insertion order matches the claim order\n toMove.sort((a, b) => a.claim_order - b.claim_order);\n // Finally, we move the nodes\n for (let i = 0, j = 0; i < toMove.length; i++) {\n while (j < lis.length && toMove[i].claim_order >= lis[j].claim_order) {\n j++;\n }\n const anchor = j < lis.length ? lis[j] : null;\n target.insertBefore(toMove[i], anchor);\n }\n}\nfunction append(target, node) {\n target.appendChild(node);\n}\nfunction append_styles(target, style_sheet_id, styles) {\n const append_styles_to = get_root_for_style(target);\n if (!append_styles_to.getElementById(style_sheet_id)) {\n const style = element('style');\n style.id = style_sheet_id;\n style.textContent = styles;\n append_stylesheet(append_styles_to, style);\n }\n}\nfunction get_root_for_style(node) {\n if (!node)\n return document;\n const root = node.getRootNode ? node.getRootNode() : node.ownerDocument;\n if (root && root.host) {\n return root;\n }\n return node.ownerDocument;\n}\nfunction append_empty_stylesheet(node) {\n const style_element = element('style');\n append_stylesheet(get_root_for_style(node), style_element);\n return style_element.sheet;\n}\nfunction append_stylesheet(node, style) {\n append(node.head || node, style);\n return style.sheet;\n}\nfunction append_hydration(target, node) {\n if (is_hydrating) {\n init_hydrate(target);\n if ((target.actual_end_child === undefined) || ((target.actual_end_child !== null) && (target.actual_end_child.parentNode !== target))) {\n target.actual_end_child = target.firstChild;\n }\n // Skip nodes of undefined ordering\n while ((target.actual_end_child !== null) && (target.actual_end_child.claim_order === undefined)) {\n target.actual_end_child = target.actual_end_child.nextSibling;\n }\n if (node !== target.actual_end_child) {\n // We only insert if the ordering of this node should be modified or the parent node is not target\n if (node.claim_order !== undefined || node.parentNode !== target) {\n target.insertBefore(node, target.actual_end_child);\n }\n }\n else {\n target.actual_end_child = node.nextSibling;\n }\n }\n else if (node.parentNode !== target || node.nextSibling !== null) {\n target.appendChild(node);\n }\n}\nfunction insert(target, node, anchor) {\n target.insertBefore(node, anchor || null);\n}\nfunction insert_hydration(target, node, anchor) {\n if (is_hydrating && !anchor) {\n append_hydration(target, node);\n }\n else if (node.parentNode !== target || node.nextSibling != anchor) {\n target.insertBefore(node, anchor || null);\n }\n}\nfunction detach(node) {\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n}\nfunction destroy_each(iterations, detaching) {\n for (let i = 0; i < iterations.length; i += 1) {\n if (iterations[i])\n iterations[i].d(detaching);\n }\n}\nfunction element(name) {\n return document.createElement(name);\n}\nfunction element_is(name, is) {\n return document.createElement(name, { is });\n}\nfunction object_without_properties(obj, exclude) {\n const target = {};\n for (const k in obj) {\n if (has_prop(obj, k)\n // @ts-ignore\n && exclude.indexOf(k) === -1) {\n // @ts-ignore\n target[k] = obj[k];\n }\n }\n return target;\n}\nfunction svg_element(name) {\n return document.createElementNS('http://www.w3.org/2000/svg', name);\n}\nfunction text(data) {\n return document.createTextNode(data);\n}\nfunction space() {\n return text(' ');\n}\nfunction empty() {\n return text('');\n}\nfunction listen(node, event, handler, options) {\n node.addEventListener(event, handler, options);\n return () => node.removeEventListener(event, handler, options);\n}\nfunction prevent_default(fn) {\n return function (event) {\n event.preventDefault();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction stop_propagation(fn) {\n return function (event) {\n event.stopPropagation();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction self(fn) {\n return function (event) {\n // @ts-ignore\n if (event.target === this)\n fn.call(this, event);\n };\n}\nfunction trusted(fn) {\n return function (event) {\n // @ts-ignore\n if (event.isTrusted)\n fn.call(this, event);\n };\n}\nfunction attr(node, attribute, value) {\n if (value == null)\n node.removeAttribute(attribute);\n else if (node.getAttribute(attribute) !== value)\n node.setAttribute(attribute, value);\n}\nfunction set_attributes(node, attributes) {\n // @ts-ignore\n const descriptors = Object.getOwnPropertyDescriptors(node.__proto__);\n for (const key in attributes) {\n if (attributes[key] == null) {\n node.removeAttribute(key);\n }\n else if (key === 'style') {\n node.style.cssText = attributes[key];\n }\n else if (key === '__value') {\n node.value = node[key] = attributes[key];\n }\n else if (descriptors[key] && descriptors[key].set) {\n node[key] = attributes[key];\n }\n else {\n attr(node, key, attributes[key]);\n }\n }\n}\nfunction set_svg_attributes(node, attributes) {\n for (const key in attributes) {\n attr(node, key, attributes[key]);\n }\n}\nfunction set_custom_element_data_map(node, data_map) {\n Object.keys(data_map).forEach((key) => {\n set_custom_element_data(node, key, data_map[key]);\n });\n}\nfunction set_custom_element_data(node, prop, value) {\n if (prop in node) {\n node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value;\n }\n else {\n attr(node, prop, value);\n }\n}\nfunction xlink_attr(node, attribute, value) {\n node.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value);\n}\nfunction get_binding_group_value(group, __value, checked) {\n const value = new Set();\n for (let i = 0; i < group.length; i += 1) {\n if (group[i].checked)\n value.add(group[i].__value);\n }\n if (!checked) {\n value.delete(__value);\n }\n return Array.from(value);\n}\nfunction to_number(value) {\n return value === '' ? null : +value;\n}\nfunction time_ranges_to_array(ranges) {\n const array = [];\n for (let i = 0; i < ranges.length; i += 1) {\n array.push({ start: ranges.start(i), end: ranges.end(i) });\n }\n return array;\n}\nfunction children(element) {\n return Array.from(element.childNodes);\n}\nfunction init_claim_info(nodes) {\n if (nodes.claim_info === undefined) {\n nodes.claim_info = { last_index: 0, total_claimed: 0 };\n }\n}\nfunction claim_node(nodes, predicate, processNode, createNode, dontUpdateLastIndex = false) {\n // Try to find nodes in an order such that we lengthen the longest increasing subsequence\n init_claim_info(nodes);\n const resultNode = (() => {\n // We first try to find an element after the previous one\n for (let i = nodes.claim_info.last_index; i < nodes.length; i++) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n return node;\n }\n }\n // Otherwise, we try to find one before\n // We iterate in reverse so that we don't go too far back\n for (let i = nodes.claim_info.last_index - 1; i >= 0; i--) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n else if (replacement === undefined) {\n // Since we spliced before the last_index, we decrease it\n nodes.claim_info.last_index--;\n }\n return node;\n }\n }\n // If we can't find any matching node, we create a new one\n return createNode();\n })();\n resultNode.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n return resultNode;\n}\nfunction claim_element_base(nodes, name, attributes, create_element) {\n return claim_node(nodes, (node) => node.nodeName === name, (node) => {\n const remove = [];\n for (let j = 0; j < node.attributes.length; j++) {\n const attribute = node.attributes[j];\n if (!attributes[attribute.name]) {\n remove.push(attribute.name);\n }\n }\n remove.forEach(v => node.removeAttribute(v));\n return undefined;\n }, () => create_element(name));\n}\nfunction claim_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, element);\n}\nfunction claim_svg_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, svg_element);\n}\nfunction claim_text(nodes, data) {\n return claim_node(nodes, (node) => node.nodeType === 3, (node) => {\n const dataStr = '' + data;\n if (node.data.startsWith(dataStr)) {\n if (node.data.length !== dataStr.length) {\n return node.splitText(dataStr.length);\n }\n }\n else {\n node.data = dataStr;\n }\n }, () => text(data), true // Text nodes should not update last index since it is likely not worth it to eliminate an increasing subsequence of actual elements\n );\n}\nfunction claim_space(nodes) {\n return claim_text(nodes, ' ');\n}\nfunction find_comment(nodes, text, start) {\n for (let i = start; i < nodes.length; i += 1) {\n const node = nodes[i];\n if (node.nodeType === 8 /* comment node */ && node.textContent.trim() === text) {\n return i;\n }\n }\n return nodes.length;\n}\nfunction claim_html_tag(nodes, is_svg) {\n // find html opening tag\n const start_index = find_comment(nodes, 'HTML_TAG_START', 0);\n const end_index = find_comment(nodes, 'HTML_TAG_END', start_index);\n if (start_index === end_index) {\n return new HtmlTagHydration(undefined, is_svg);\n }\n init_claim_info(nodes);\n const html_tag_nodes = nodes.splice(start_index, end_index - start_index + 1);\n detach(html_tag_nodes[0]);\n detach(html_tag_nodes[html_tag_nodes.length - 1]);\n const claimed_nodes = html_tag_nodes.slice(1, html_tag_nodes.length - 1);\n for (const n of claimed_nodes) {\n n.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n }\n return new HtmlTagHydration(claimed_nodes, is_svg);\n}\nfunction set_data(text, data) {\n data = '' + data;\n if (text.wholeText !== data)\n text.data = data;\n}\nfunction set_input_value(input, value) {\n input.value = value == null ? '' : value;\n}\nfunction set_input_type(input, type) {\n try {\n input.type = type;\n }\n catch (e) {\n // do nothing\n }\n}\nfunction set_style(node, key, value, important) {\n if (value === null) {\n node.style.removeProperty(key);\n }\n else {\n node.style.setProperty(key, value, important ? 'important' : '');\n }\n}\nfunction select_option(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n if (option.__value === value) {\n option.selected = true;\n return;\n }\n }\n select.selectedIndex = -1; // no option should be selected\n}\nfunction select_options(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n option.selected = ~value.indexOf(option.__value);\n }\n}\nfunction select_value(select) {\n const selected_option = select.querySelector(':checked') || select.options[0];\n return selected_option && selected_option.__value;\n}\nfunction select_multiple_value(select) {\n return [].map.call(select.querySelectorAll(':checked'), option => option.__value);\n}\n// unfortunately this can't be a constant as that wouldn't be tree-shakeable\n// so we cache the result instead\nlet crossorigin;\nfunction is_crossorigin() {\n if (crossorigin === undefined) {\n crossorigin = false;\n try {\n if (typeof window !== 'undefined' && window.parent) {\n void window.parent.document;\n }\n }\n catch (error) {\n crossorigin = true;\n }\n }\n return crossorigin;\n}\nfunction add_resize_listener(node, fn) {\n const computed_style = getComputedStyle(node);\n if (computed_style.position === 'static') {\n node.style.position = 'relative';\n }\n const iframe = element('iframe');\n iframe.setAttribute('style', 'display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; ' +\n 'overflow: hidden; border: 0; opacity: 0; pointer-events: none; z-index: -1;');\n iframe.setAttribute('aria-hidden', 'true');\n iframe.tabIndex = -1;\n const crossorigin = is_crossorigin();\n let unsubscribe;\n if (crossorigin) {\n iframe.src = \"data:text/html,\";\n unsubscribe = listen(window, 'message', (event) => {\n if (event.source === iframe.contentWindow)\n fn();\n });\n }\n else {\n iframe.src = 'about:blank';\n iframe.onload = () => {\n unsubscribe = listen(iframe.contentWindow, 'resize', fn);\n };\n }\n append(node, iframe);\n return () => {\n if (crossorigin) {\n unsubscribe();\n }\n else if (unsubscribe && iframe.contentWindow) {\n unsubscribe();\n }\n detach(iframe);\n };\n}\nfunction toggle_class(element, name, toggle) {\n element.classList[toggle ? 'add' : 'remove'](name);\n}\nfunction custom_event(type, detail, { bubbles = false, cancelable = false } = {}) {\n const e = document.createEvent('CustomEvent');\n e.initCustomEvent(type, bubbles, cancelable, detail);\n return e;\n}\nfunction query_selector_all(selector, parent = document.body) {\n return Array.from(parent.querySelectorAll(selector));\n}\nfunction head_selector(nodeId, head) {\n const result = [];\n let started = 0;\n for (const node of head.childNodes) {\n if (node.nodeType === 8 /* comment node */) {\n const comment = node.textContent.trim();\n if (comment === `HEAD_${nodeId}_END`) {\n started -= 1;\n result.push(node);\n }\n else if (comment === `HEAD_${nodeId}_START`) {\n started += 1;\n result.push(node);\n }\n }\n else if (started > 0) {\n result.push(node);\n }\n }\n return result;\n}\nclass HtmlTag {\n constructor(is_svg = false) {\n this.is_svg = false;\n this.is_svg = is_svg;\n this.e = this.n = null;\n }\n c(html) {\n this.h(html);\n }\n m(html, target, anchor = null) {\n if (!this.e) {\n if (this.is_svg)\n this.e = svg_element(target.nodeName);\n else\n this.e = element(target.nodeName);\n this.t = target;\n this.c(html);\n }\n this.i(anchor);\n }\n h(html) {\n this.e.innerHTML = html;\n this.n = Array.from(this.e.childNodes);\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert(this.t, this.n[i], anchor);\n }\n }\n p(html) {\n this.d();\n this.h(html);\n this.i(this.a);\n }\n d() {\n this.n.forEach(detach);\n }\n}\nclass HtmlTagHydration extends HtmlTag {\n constructor(claimed_nodes, is_svg = false) {\n super(is_svg);\n this.e = this.n = null;\n this.l = claimed_nodes;\n }\n c(html) {\n if (this.l) {\n this.n = this.l;\n }\n else {\n super.c(html);\n }\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert_hydration(this.t, this.n[i], anchor);\n }\n }\n}\nfunction attribute_to_object(attributes) {\n const result = {};\n for (const attribute of attributes) {\n result[attribute.name] = attribute.value;\n }\n return result;\n}\nfunction get_custom_elements_slots(element) {\n const result = {};\n element.childNodes.forEach((node) => {\n result[node.slot || 'default'] = true;\n });\n return result;\n}\nfunction construct_svelte_component(component, props) {\n return new component(props);\n}\n\n// we need to store the information for multiple documents because a Svelte application could also contain iframes\n// https://github.com/sveltejs/svelte/issues/3624\nconst managed_styles = new Map();\nlet active = 0;\n// https://github.com/darkskyapp/string-hash/blob/master/index.js\nfunction hash(str) {\n let hash = 5381;\n let i = str.length;\n while (i--)\n hash = ((hash << 5) - hash) ^ str.charCodeAt(i);\n return hash >>> 0;\n}\nfunction create_style_information(doc, node) {\n const info = { stylesheet: append_empty_stylesheet(node), rules: {} };\n managed_styles.set(doc, info);\n return info;\n}\nfunction create_rule(node, a, b, duration, delay, ease, fn, uid = 0) {\n const step = 16.666 / duration;\n let keyframes = '{\\n';\n for (let p = 0; p <= 1; p += step) {\n const t = a + (b - a) * ease(p);\n keyframes += p * 100 + `%{${fn(t, 1 - t)}}\\n`;\n }\n const rule = keyframes + `100% {${fn(b, 1 - b)}}\\n}`;\n const name = `__svelte_${hash(rule)}_${uid}`;\n const doc = get_root_for_style(node);\n const { stylesheet, rules } = managed_styles.get(doc) || create_style_information(doc, node);\n if (!rules[name]) {\n rules[name] = true;\n stylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length);\n }\n const animation = node.style.animation || '';\n node.style.animation = `${animation ? `${animation}, ` : ''}${name} ${duration}ms linear ${delay}ms 1 both`;\n active += 1;\n return name;\n}\nfunction delete_rule(node, name) {\n const previous = (node.style.animation || '').split(', ');\n const next = previous.filter(name\n ? anim => anim.indexOf(name) < 0 // remove specific animation\n : anim => anim.indexOf('__svelte') === -1 // remove all Svelte animations\n );\n const deleted = previous.length - next.length;\n if (deleted) {\n node.style.animation = next.join(', ');\n active -= deleted;\n if (!active)\n clear_rules();\n }\n}\nfunction clear_rules() {\n raf(() => {\n if (active)\n return;\n managed_styles.forEach(info => {\n const { ownerNode } = info.stylesheet;\n // there is no ownerNode if it runs on jsdom.\n if (ownerNode)\n detach(ownerNode);\n });\n managed_styles.clear();\n });\n}\n\nfunction create_animation(node, from, fn, params) {\n if (!from)\n return noop;\n const to = node.getBoundingClientRect();\n if (from.left === to.left && from.right === to.right && from.top === to.top && from.bottom === to.bottom)\n return noop;\n const { delay = 0, duration = 300, easing = identity, \n // @ts-ignore todo: should this be separated from destructuring? Or start/end added to public api and documentation?\n start: start_time = now() + delay, \n // @ts-ignore todo:\n end = start_time + duration, tick = noop, css } = fn(node, { from, to }, params);\n let running = true;\n let started = false;\n let name;\n function start() {\n if (css) {\n name = create_rule(node, 0, 1, duration, delay, easing, css);\n }\n if (!delay) {\n started = true;\n }\n }\n function stop() {\n if (css)\n delete_rule(node, name);\n running = false;\n }\n loop(now => {\n if (!started && now >= start_time) {\n started = true;\n }\n if (started && now >= end) {\n tick(1, 0);\n stop();\n }\n if (!running) {\n return false;\n }\n if (started) {\n const p = now - start_time;\n const t = 0 + 1 * easing(p / duration);\n tick(t, 1 - t);\n }\n return true;\n });\n start();\n tick(0, 1);\n return stop;\n}\nfunction fix_position(node) {\n const style = getComputedStyle(node);\n if (style.position !== 'absolute' && style.position !== 'fixed') {\n const { width, height } = style;\n const a = node.getBoundingClientRect();\n node.style.position = 'absolute';\n node.style.width = width;\n node.style.height = height;\n add_transform(node, a);\n }\n}\nfunction add_transform(node, a) {\n const b = node.getBoundingClientRect();\n if (a.left !== b.left || a.top !== b.top) {\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n node.style.transform = `${transform} translate(${a.left - b.left}px, ${a.top - b.top}px)`;\n }\n}\n\nlet current_component;\nfunction set_current_component(component) {\n current_component = component;\n}\nfunction get_current_component() {\n if (!current_component)\n throw new Error('Function called outside component initialization');\n return current_component;\n}\n/**\n * Schedules a callback to run immediately before the component is updated after any state change.\n *\n * The first time the callback runs will be before the initial `onMount`\n *\n * https://svelte.dev/docs#run-time-svelte-beforeupdate\n */\nfunction beforeUpdate(fn) {\n get_current_component().$$.before_update.push(fn);\n}\n/**\n * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM.\n * It must be called during the component's initialisation (but doesn't need to live *inside* the component;\n * it can be called from an external module).\n *\n * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api).\n *\n * https://svelte.dev/docs#run-time-svelte-onmount\n */\nfunction onMount(fn) {\n get_current_component().$$.on_mount.push(fn);\n}\n/**\n * Schedules a callback to run immediately after the component has been updated.\n *\n * The first time the callback runs will be after the initial `onMount`\n */\nfunction afterUpdate(fn) {\n get_current_component().$$.after_update.push(fn);\n}\n/**\n * Schedules a callback to run immediately before the component is unmounted.\n *\n * Out of `onMount`, `beforeUpdate`, `afterUpdate` and `onDestroy`, this is the\n * only one that runs inside a server-side component.\n *\n * https://svelte.dev/docs#run-time-svelte-ondestroy\n */\nfunction onDestroy(fn) {\n get_current_component().$$.on_destroy.push(fn);\n}\n/**\n * Creates an event dispatcher that can be used to dispatch [component events](/docs#template-syntax-component-directives-on-eventname).\n * Event dispatchers are functions that can take two arguments: `name` and `detail`.\n *\n * Component events created with `createEventDispatcher` create a\n * [CustomEvent](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent).\n * These events do not [bubble](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Building_blocks/Events#Event_bubbling_and_capture).\n * The `detail` argument corresponds to the [CustomEvent.detail](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/detail)\n * property and can contain any type of data.\n *\n * https://svelte.dev/docs#run-time-svelte-createeventdispatcher\n */\nfunction createEventDispatcher() {\n const component = get_current_component();\n return (type, detail, { cancelable = false } = {}) => {\n const callbacks = component.$$.callbacks[type];\n if (callbacks) {\n // TODO are there situations where events could be dispatched\n // in a server (non-DOM) environment?\n const event = custom_event(type, detail, { cancelable });\n callbacks.slice().forEach(fn => {\n fn.call(component, event);\n });\n return !event.defaultPrevented;\n }\n return true;\n };\n}\n/**\n * Associates an arbitrary `context` object with the current component and the specified `key`\n * and returns that object. The context is then available to children of the component\n * (including slotted content) with `getContext`.\n *\n * Like lifecycle functions, this must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-setcontext\n */\nfunction setContext(key, context) {\n get_current_component().$$.context.set(key, context);\n return context;\n}\n/**\n * Retrieves the context that belongs to the closest parent component with the specified `key`.\n * Must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-getcontext\n */\nfunction getContext(key) {\n return get_current_component().$$.context.get(key);\n}\n/**\n * Retrieves the whole context map that belongs to the closest parent component.\n * Must be called during component initialisation. Useful, for example, if you\n * programmatically create a component and want to pass the existing context to it.\n *\n * https://svelte.dev/docs#run-time-svelte-getallcontexts\n */\nfunction getAllContexts() {\n return get_current_component().$$.context;\n}\n/**\n * Checks whether a given `key` has been set in the context of a parent component.\n * Must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-hascontext\n */\nfunction hasContext(key) {\n return get_current_component().$$.context.has(key);\n}\n// TODO figure out if we still want to support\n// shorthand events, or if we want to implement\n// a real bubbling mechanism\nfunction bubble(component, event) {\n const callbacks = component.$$.callbacks[event.type];\n if (callbacks) {\n // @ts-ignore\n callbacks.slice().forEach(fn => fn.call(this, event));\n }\n}\n\nconst dirty_components = [];\nconst intros = { enabled: false };\nconst binding_callbacks = [];\nconst render_callbacks = [];\nconst flush_callbacks = [];\nconst resolved_promise = Promise.resolve();\nlet update_scheduled = false;\nfunction schedule_update() {\n if (!update_scheduled) {\n update_scheduled = true;\n resolved_promise.then(flush);\n }\n}\nfunction tick() {\n schedule_update();\n return resolved_promise;\n}\nfunction add_render_callback(fn) {\n render_callbacks.push(fn);\n}\nfunction add_flush_callback(fn) {\n flush_callbacks.push(fn);\n}\n// flush() calls callbacks in this order:\n// 1. All beforeUpdate callbacks, in order: parents before children\n// 2. All bind:this callbacks, in reverse order: children before parents.\n// 3. All afterUpdate callbacks, in order: parents before children. EXCEPT\n// for afterUpdates called during the initial onMount, which are called in\n// reverse order: children before parents.\n// Since callbacks might update component values, which could trigger another\n// call to flush(), the following steps guard against this:\n// 1. During beforeUpdate, any updated components will be added to the\n// dirty_components array and will cause a reentrant call to flush(). Because\n// the flush index is kept outside the function, the reentrant call will pick\n// up where the earlier call left off and go through all dirty components. The\n// current_component value is saved and restored so that the reentrant call will\n// not interfere with the \"parent\" flush() call.\n// 2. bind:this callbacks cannot trigger new flush() calls.\n// 3. During afterUpdate, any updated components will NOT have their afterUpdate\n// callback called a second time; the seen_callbacks set, outside the flush()\n// function, guarantees this behavior.\nconst seen_callbacks = new Set();\nlet flushidx = 0; // Do *not* move this inside the flush() function\nfunction flush() {\n // Do not reenter flush while dirty components are updated, as this can\n // result in an infinite loop. Instead, let the inner flush handle it.\n // Reentrancy is ok afterwards for bindings etc.\n if (flushidx !== 0) {\n return;\n }\n const saved_component = current_component;\n do {\n // first, call beforeUpdate functions\n // and update components\n try {\n while (flushidx < dirty_components.length) {\n const component = dirty_components[flushidx];\n flushidx++;\n set_current_component(component);\n update(component.$$);\n }\n }\n catch (e) {\n // reset dirty state to not end up in a deadlocked state and then rethrow\n dirty_components.length = 0;\n flushidx = 0;\n throw e;\n }\n set_current_component(null);\n dirty_components.length = 0;\n flushidx = 0;\n while (binding_callbacks.length)\n binding_callbacks.pop()();\n // then, once components are updated, call\n // afterUpdate functions. This may cause\n // subsequent updates...\n for (let i = 0; i < render_callbacks.length; i += 1) {\n const callback = render_callbacks[i];\n if (!seen_callbacks.has(callback)) {\n // ...so guard against infinite loops\n seen_callbacks.add(callback);\n callback();\n }\n }\n render_callbacks.length = 0;\n } while (dirty_components.length);\n while (flush_callbacks.length) {\n flush_callbacks.pop()();\n }\n update_scheduled = false;\n seen_callbacks.clear();\n set_current_component(saved_component);\n}\nfunction update($$) {\n if ($$.fragment !== null) {\n $$.update();\n run_all($$.before_update);\n const dirty = $$.dirty;\n $$.dirty = [-1];\n $$.fragment && $$.fragment.p($$.ctx, dirty);\n $$.after_update.forEach(add_render_callback);\n }\n}\n\nlet promise;\nfunction wait() {\n if (!promise) {\n promise = Promise.resolve();\n promise.then(() => {\n promise = null;\n });\n }\n return promise;\n}\nfunction dispatch(node, direction, kind) {\n node.dispatchEvent(custom_event(`${direction ? 'intro' : 'outro'}${kind}`));\n}\nconst outroing = new Set();\nlet outros;\nfunction group_outros() {\n outros = {\n r: 0,\n c: [],\n p: outros // parent group\n };\n}\nfunction check_outros() {\n if (!outros.r) {\n run_all(outros.c);\n }\n outros = outros.p;\n}\nfunction transition_in(block, local) {\n if (block && block.i) {\n outroing.delete(block);\n block.i(local);\n }\n}\nfunction transition_out(block, local, detach, callback) {\n if (block && block.o) {\n if (outroing.has(block))\n return;\n outroing.add(block);\n outros.c.push(() => {\n outroing.delete(block);\n if (callback) {\n if (detach)\n block.d(1);\n callback();\n }\n });\n block.o(local);\n }\n else if (callback) {\n callback();\n }\n}\nconst null_transition = { duration: 0 };\nfunction create_in_transition(node, fn, params) {\n const options = { direction: 'in' };\n let config = fn(node, params, options);\n let running = false;\n let animation_name;\n let task;\n let uid = 0;\n function cleanup() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 0, 1, duration, delay, easing, css, uid++);\n tick(0, 1);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n if (task)\n task.abort();\n running = true;\n add_render_callback(() => dispatch(node, true, 'start'));\n task = loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(1, 0);\n dispatch(node, true, 'end');\n cleanup();\n return running = false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(t, 1 - t);\n }\n }\n return running;\n });\n }\n let started = false;\n return {\n start() {\n if (started)\n return;\n started = true;\n delete_rule(node);\n if (is_function(config)) {\n config = config(options);\n wait().then(go);\n }\n else {\n go();\n }\n },\n invalidate() {\n started = false;\n },\n end() {\n if (running) {\n cleanup();\n running = false;\n }\n }\n };\n}\nfunction create_out_transition(node, fn, params) {\n const options = { direction: 'out' };\n let config = fn(node, params, options);\n let running = true;\n let animation_name;\n const group = outros;\n group.r += 1;\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 1, 0, duration, delay, easing, css);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n add_render_callback(() => dispatch(node, false, 'start'));\n loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(0, 1);\n dispatch(node, false, 'end');\n if (!--group.r) {\n // this will result in `end()` being called,\n // so we don't need to clean up here\n run_all(group.c);\n }\n return false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(1 - t, t);\n }\n }\n return running;\n });\n }\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config(options);\n go();\n });\n }\n else {\n go();\n }\n return {\n end(reset) {\n if (reset && config.tick) {\n config.tick(1, 0);\n }\n if (running) {\n if (animation_name)\n delete_rule(node, animation_name);\n running = false;\n }\n }\n };\n}\nfunction create_bidirectional_transition(node, fn, params, intro) {\n const options = { direction: 'both' };\n let config = fn(node, params, options);\n let t = intro ? 0 : 1;\n let running_program = null;\n let pending_program = null;\n let animation_name = null;\n function clear_animation() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function init(program, duration) {\n const d = (program.b - t);\n duration *= Math.abs(d);\n return {\n a: t,\n b: program.b,\n d,\n duration,\n start: program.start,\n end: program.start + duration,\n group: program.group\n };\n }\n function go(b) {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n const program = {\n start: now() + delay,\n b\n };\n if (!b) {\n // @ts-ignore todo: improve typings\n program.group = outros;\n outros.r += 1;\n }\n if (running_program || pending_program) {\n pending_program = program;\n }\n else {\n // if this is an intro, and there's a delay, we need to do\n // an initial tick and/or apply CSS animation immediately\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, b, duration, delay, easing, css);\n }\n if (b)\n tick(0, 1);\n running_program = init(program, duration);\n add_render_callback(() => dispatch(node, b, 'start'));\n loop(now => {\n if (pending_program && now > pending_program.start) {\n running_program = init(pending_program, duration);\n pending_program = null;\n dispatch(node, running_program.b, 'start');\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, running_program.b, running_program.duration, 0, easing, config.css);\n }\n }\n if (running_program) {\n if (now >= running_program.end) {\n tick(t = running_program.b, 1 - t);\n dispatch(node, running_program.b, 'end');\n if (!pending_program) {\n // we're done\n if (running_program.b) {\n // intro — we can tidy up immediately\n clear_animation();\n }\n else {\n // outro — needs to be coordinated\n if (!--running_program.group.r)\n run_all(running_program.group.c);\n }\n }\n running_program = null;\n }\n else if (now >= running_program.start) {\n const p = now - running_program.start;\n t = running_program.a + running_program.d * easing(p / running_program.duration);\n tick(t, 1 - t);\n }\n }\n return !!(running_program || pending_program);\n });\n }\n }\n return {\n run(b) {\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config(options);\n go(b);\n });\n }\n else {\n go(b);\n }\n },\n end() {\n clear_animation();\n running_program = pending_program = null;\n }\n };\n}\n\nfunction handle_promise(promise, info) {\n const token = info.token = {};\n function update(type, index, key, value) {\n if (info.token !== token)\n return;\n info.resolved = value;\n let child_ctx = info.ctx;\n if (key !== undefined) {\n child_ctx = child_ctx.slice();\n child_ctx[key] = value;\n }\n const block = type && (info.current = type)(child_ctx);\n let needs_flush = false;\n if (info.block) {\n if (info.blocks) {\n info.blocks.forEach((block, i) => {\n if (i !== index && block) {\n group_outros();\n transition_out(block, 1, 1, () => {\n if (info.blocks[i] === block) {\n info.blocks[i] = null;\n }\n });\n check_outros();\n }\n });\n }\n else {\n info.block.d(1);\n }\n block.c();\n transition_in(block, 1);\n block.m(info.mount(), info.anchor);\n needs_flush = true;\n }\n info.block = block;\n if (info.blocks)\n info.blocks[index] = block;\n if (needs_flush) {\n flush();\n }\n }\n if (is_promise(promise)) {\n const current_component = get_current_component();\n promise.then(value => {\n set_current_component(current_component);\n update(info.then, 1, info.value, value);\n set_current_component(null);\n }, error => {\n set_current_component(current_component);\n update(info.catch, 2, info.error, error);\n set_current_component(null);\n if (!info.hasCatch) {\n throw error;\n }\n });\n // if we previously had a then/catch block, destroy it\n if (info.current !== info.pending) {\n update(info.pending, 0);\n return true;\n }\n }\n else {\n if (info.current !== info.then) {\n update(info.then, 1, info.value, promise);\n return true;\n }\n info.resolved = promise;\n }\n}\nfunction update_await_block_branch(info, ctx, dirty) {\n const child_ctx = ctx.slice();\n const { resolved } = info;\n if (info.current === info.then) {\n child_ctx[info.value] = resolved;\n }\n if (info.current === info.catch) {\n child_ctx[info.error] = resolved;\n }\n info.block.p(child_ctx, dirty);\n}\n\nconst globals = (typeof window !== 'undefined'\n ? window\n : typeof globalThis !== 'undefined'\n ? globalThis\n : global);\n\nfunction destroy_block(block, lookup) {\n block.d(1);\n lookup.delete(block.key);\n}\nfunction outro_and_destroy_block(block, lookup) {\n transition_out(block, 1, 1, () => {\n lookup.delete(block.key);\n });\n}\nfunction fix_and_destroy_block(block, lookup) {\n block.f();\n destroy_block(block, lookup);\n}\nfunction fix_and_outro_and_destroy_block(block, lookup) {\n block.f();\n outro_and_destroy_block(block, lookup);\n}\nfunction update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) {\n let o = old_blocks.length;\n let n = list.length;\n let i = o;\n const old_indexes = {};\n while (i--)\n old_indexes[old_blocks[i].key] = i;\n const new_blocks = [];\n const new_lookup = new Map();\n const deltas = new Map();\n i = n;\n while (i--) {\n const child_ctx = get_context(ctx, list, i);\n const key = get_key(child_ctx);\n let block = lookup.get(key);\n if (!block) {\n block = create_each_block(key, child_ctx);\n block.c();\n }\n else if (dynamic) {\n block.p(child_ctx, dirty);\n }\n new_lookup.set(key, new_blocks[i] = block);\n if (key in old_indexes)\n deltas.set(key, Math.abs(i - old_indexes[key]));\n }\n const will_move = new Set();\n const did_move = new Set();\n function insert(block) {\n transition_in(block, 1);\n block.m(node, next);\n lookup.set(block.key, block);\n next = block.first;\n n--;\n }\n while (o && n) {\n const new_block = new_blocks[n - 1];\n const old_block = old_blocks[o - 1];\n const new_key = new_block.key;\n const old_key = old_block.key;\n if (new_block === old_block) {\n // do nothing\n next = new_block.first;\n o--;\n n--;\n }\n else if (!new_lookup.has(old_key)) {\n // remove old block\n destroy(old_block, lookup);\n o--;\n }\n else if (!lookup.has(new_key) || will_move.has(new_key)) {\n insert(new_block);\n }\n else if (did_move.has(old_key)) {\n o--;\n }\n else if (deltas.get(new_key) > deltas.get(old_key)) {\n did_move.add(new_key);\n insert(new_block);\n }\n else {\n will_move.add(old_key);\n o--;\n }\n }\n while (o--) {\n const old_block = old_blocks[o];\n if (!new_lookup.has(old_block.key))\n destroy(old_block, lookup);\n }\n while (n)\n insert(new_blocks[n - 1]);\n return new_blocks;\n}\nfunction validate_each_keys(ctx, list, get_context, get_key) {\n const keys = new Set();\n for (let i = 0; i < list.length; i++) {\n const key = get_key(get_context(ctx, list, i));\n if (keys.has(key)) {\n throw new Error('Cannot have duplicate keys in a keyed each');\n }\n keys.add(key);\n }\n}\n\nfunction get_spread_update(levels, updates) {\n const update = {};\n const to_null_out = {};\n const accounted_for = { $$scope: 1 };\n let i = levels.length;\n while (i--) {\n const o = levels[i];\n const n = updates[i];\n if (n) {\n for (const key in o) {\n if (!(key in n))\n to_null_out[key] = 1;\n }\n for (const key in n) {\n if (!accounted_for[key]) {\n update[key] = n[key];\n accounted_for[key] = 1;\n }\n }\n levels[i] = n;\n }\n else {\n for (const key in o) {\n accounted_for[key] = 1;\n }\n }\n }\n for (const key in to_null_out) {\n if (!(key in update))\n update[key] = undefined;\n }\n return update;\n}\nfunction get_spread_object(spread_props) {\n return typeof spread_props === 'object' && spread_props !== null ? spread_props : {};\n}\n\n// source: https://html.spec.whatwg.org/multipage/indices.html\nconst boolean_attributes = new Set([\n 'allowfullscreen',\n 'allowpaymentrequest',\n 'async',\n 'autofocus',\n 'autoplay',\n 'checked',\n 'controls',\n 'default',\n 'defer',\n 'disabled',\n 'formnovalidate',\n 'hidden',\n 'inert',\n 'ismap',\n 'itemscope',\n 'loop',\n 'multiple',\n 'muted',\n 'nomodule',\n 'novalidate',\n 'open',\n 'playsinline',\n 'readonly',\n 'required',\n 'reversed',\n 'selected'\n]);\n\n/** regex of all html void element names */\nconst void_element_names = /^(?:area|base|br|col|command|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)$/;\nfunction is_void(name) {\n return void_element_names.test(name) || name.toLowerCase() === '!doctype';\n}\n\nconst invalid_attribute_name_character = /[\\s'\">/=\\u{FDD0}-\\u{FDEF}\\u{FFFE}\\u{FFFF}\\u{1FFFE}\\u{1FFFF}\\u{2FFFE}\\u{2FFFF}\\u{3FFFE}\\u{3FFFF}\\u{4FFFE}\\u{4FFFF}\\u{5FFFE}\\u{5FFFF}\\u{6FFFE}\\u{6FFFF}\\u{7FFFE}\\u{7FFFF}\\u{8FFFE}\\u{8FFFF}\\u{9FFFE}\\u{9FFFF}\\u{AFFFE}\\u{AFFFF}\\u{BFFFE}\\u{BFFFF}\\u{CFFFE}\\u{CFFFF}\\u{DFFFE}\\u{DFFFF}\\u{EFFFE}\\u{EFFFF}\\u{FFFFE}\\u{FFFFF}\\u{10FFFE}\\u{10FFFF}]/u;\n// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n// https://infra.spec.whatwg.org/#noncharacter\nfunction spread(args, attrs_to_add) {\n const attributes = Object.assign({}, ...args);\n if (attrs_to_add) {\n const classes_to_add = attrs_to_add.classes;\n const styles_to_add = attrs_to_add.styles;\n if (classes_to_add) {\n if (attributes.class == null) {\n attributes.class = classes_to_add;\n }\n else {\n attributes.class += ' ' + classes_to_add;\n }\n }\n if (styles_to_add) {\n if (attributes.style == null) {\n attributes.style = style_object_to_string(styles_to_add);\n }\n else {\n attributes.style = style_object_to_string(merge_ssr_styles(attributes.style, styles_to_add));\n }\n }\n }\n let str = '';\n Object.keys(attributes).forEach(name => {\n if (invalid_attribute_name_character.test(name))\n return;\n const value = attributes[name];\n if (value === true)\n str += ' ' + name;\n else if (boolean_attributes.has(name.toLowerCase())) {\n if (value)\n str += ' ' + name;\n }\n else if (value != null) {\n str += ` ${name}=\"${value}\"`;\n }\n });\n return str;\n}\nfunction merge_ssr_styles(style_attribute, style_directive) {\n const style_object = {};\n for (const individual_style of style_attribute.split(';')) {\n const colon_index = individual_style.indexOf(':');\n const name = individual_style.slice(0, colon_index).trim();\n const value = individual_style.slice(colon_index + 1).trim();\n if (!name)\n continue;\n style_object[name] = value;\n }\n for (const name in style_directive) {\n const value = style_directive[name];\n if (value) {\n style_object[name] = value;\n }\n else {\n delete style_object[name];\n }\n }\n return style_object;\n}\nconst ATTR_REGEX = /[&\"]/g;\nconst CONTENT_REGEX = /[&<]/g;\n/**\n * Note: this method is performance sensitive and has been optimized\n * https://github.com/sveltejs/svelte/pull/5701\n */\nfunction escape(value, is_attr = false) {\n const str = String(value);\n const pattern = is_attr ? ATTR_REGEX : CONTENT_REGEX;\n pattern.lastIndex = 0;\n let escaped = '';\n let last = 0;\n while (pattern.test(str)) {\n const i = pattern.lastIndex - 1;\n const ch = str[i];\n escaped += str.substring(last, i) + (ch === '&' ? '&' : (ch === '\"' ? '"' : '<'));\n last = i + 1;\n }\n return escaped + str.substring(last);\n}\nfunction escape_attribute_value(value) {\n // keep booleans, null, and undefined for the sake of `spread`\n const should_escape = typeof value === 'string' || (value && typeof value === 'object');\n return should_escape ? escape(value, true) : value;\n}\nfunction escape_object(obj) {\n const result = {};\n for (const key in obj) {\n result[key] = escape_attribute_value(obj[key]);\n }\n return result;\n}\nfunction each(items, fn) {\n let str = '';\n for (let i = 0; i < items.length; i += 1) {\n str += fn(items[i], i);\n }\n return str;\n}\nconst missing_component = {\n $$render: () => ''\n};\nfunction validate_component(component, name) {\n if (!component || !component.$$render) {\n if (name === 'svelte:component')\n name += ' this={...}';\n throw new Error(`<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules. Otherwise you may need to fix a <${name}>.`);\n }\n return component;\n}\nfunction debug(file, line, column, values) {\n console.log(`{@debug} ${file ? file + ' ' : ''}(${line}:${column})`); // eslint-disable-line no-console\n console.log(values); // eslint-disable-line no-console\n return '';\n}\nlet on_destroy;\nfunction create_ssr_component(fn) {\n function $$render(result, props, bindings, slots, context) {\n const parent_component = current_component;\n const $$ = {\n on_destroy,\n context: new Map(context || (parent_component ? parent_component.$$.context : [])),\n // these will be immediately discarded\n on_mount: [],\n before_update: [],\n after_update: [],\n callbacks: blank_object()\n };\n set_current_component({ $$ });\n const html = fn(result, props, bindings, slots);\n set_current_component(parent_component);\n return html;\n }\n return {\n render: (props = {}, { $$slots = {}, context = new Map() } = {}) => {\n on_destroy = [];\n const result = { title: '', head: '', css: new Set() };\n const html = $$render(result, props, {}, $$slots, context);\n run_all(on_destroy);\n return {\n html,\n css: {\n code: Array.from(result.css).map(css => css.code).join('\\n'),\n map: null // TODO\n },\n head: result.title + result.head\n };\n },\n $$render\n };\n}\nfunction add_attribute(name, value, boolean) {\n if (value == null || (boolean && !value))\n return '';\n const assignment = (boolean && value === true) ? '' : `=\"${escape(value, true)}\"`;\n return ` ${name}${assignment}`;\n}\nfunction add_classes(classes) {\n return classes ? ` class=\"${classes}\"` : '';\n}\nfunction style_object_to_string(style_object) {\n return Object.keys(style_object)\n .filter(key => style_object[key])\n .map(key => `${key}: ${escape_attribute_value(style_object[key])};`)\n .join(' ');\n}\nfunction add_styles(style_object) {\n const styles = style_object_to_string(style_object);\n return styles ? ` style=\"${styles}\"` : '';\n}\n\nfunction bind(component, name, callback) {\n const index = component.$$.props[name];\n if (index !== undefined) {\n component.$$.bound[index] = callback;\n callback(component.$$.ctx[index]);\n }\n}\nfunction create_component(block) {\n block && block.c();\n}\nfunction claim_component(block, parent_nodes) {\n block && block.l(parent_nodes);\n}\nfunction mount_component(component, target, anchor, customElement) {\n const { fragment, after_update } = component.$$;\n fragment && fragment.m(target, anchor);\n if (!customElement) {\n // onMount happens before the initial afterUpdate\n add_render_callback(() => {\n const new_on_destroy = component.$$.on_mount.map(run).filter(is_function);\n // if the component was destroyed immediately\n // it will update the `$$.on_destroy` reference to `null`.\n // the destructured on_destroy may still reference to the old array\n if (component.$$.on_destroy) {\n component.$$.on_destroy.push(...new_on_destroy);\n }\n else {\n // Edge case - component was destroyed immediately,\n // most likely as a result of a binding initialising\n run_all(new_on_destroy);\n }\n component.$$.on_mount = [];\n });\n }\n after_update.forEach(add_render_callback);\n}\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n // TODO null out other refs, including component.$$ (but need to\n // preserve final state?)\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nfunction make_dirty(component, i) {\n if (component.$$.dirty[0] === -1) {\n dirty_components.push(component);\n schedule_update();\n component.$$.dirty.fill(0);\n }\n component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31));\n}\nfunction init(component, options, instance, create_fragment, not_equal, props, append_styles, dirty = [-1]) {\n const parent_component = current_component;\n set_current_component(component);\n const $$ = component.$$ = {\n fragment: null,\n ctx: [],\n // state\n props,\n update: noop,\n not_equal,\n bound: blank_object(),\n // lifecycle\n on_mount: [],\n on_destroy: [],\n on_disconnect: [],\n before_update: [],\n after_update: [],\n context: new Map(options.context || (parent_component ? parent_component.$$.context : [])),\n // everything else\n callbacks: blank_object(),\n dirty,\n skip_bound: false,\n root: options.target || parent_component.$$.root\n };\n append_styles && append_styles($$.root);\n let ready = false;\n $$.ctx = instance\n ? instance(component, options.props || {}, (i, ret, ...rest) => {\n const value = rest.length ? rest[0] : ret;\n if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {\n if (!$$.skip_bound && $$.bound[i])\n $$.bound[i](value);\n if (ready)\n make_dirty(component, i);\n }\n return ret;\n })\n : [];\n $$.update();\n ready = true;\n run_all($$.before_update);\n // `false` as a special case of no DOM component\n $$.fragment = create_fragment ? create_fragment($$.ctx) : false;\n if (options.target) {\n if (options.hydrate) {\n start_hydrating();\n const nodes = children(options.target);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.l(nodes);\n nodes.forEach(detach);\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.c();\n }\n if (options.intro)\n transition_in(component.$$.fragment);\n mount_component(component, options.target, options.anchor, options.customElement);\n end_hydrating();\n flush();\n }\n set_current_component(parent_component);\n}\nlet SvelteElement;\nif (typeof HTMLElement === 'function') {\n SvelteElement = class extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n }\n connectedCallback() {\n const { on_mount } = this.$$;\n this.$$.on_disconnect = on_mount.map(run).filter(is_function);\n // @ts-ignore todo: improve typings\n for (const key in this.$$.slotted) {\n // @ts-ignore todo: improve typings\n this.appendChild(this.$$.slotted[key]);\n }\n }\n attributeChangedCallback(attr, _oldValue, newValue) {\n this[attr] = newValue;\n }\n disconnectedCallback() {\n run_all(this.$$.on_disconnect);\n }\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n // TODO should this delegate to addEventListener?\n if (!is_function(callback)) {\n return noop;\n }\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n };\n}\n/**\n * Base class for Svelte components. Used when dev=false.\n */\nclass SvelteComponent {\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n if (!is_function(callback)) {\n return noop;\n }\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n}\n\nfunction dispatch_dev(type, detail) {\n document.dispatchEvent(custom_event(type, Object.assign({ version: '3.55.1' }, detail), { bubbles: true }));\n}\nfunction append_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append(target, node);\n}\nfunction append_hydration_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append_hydration(target, node);\n}\nfunction insert_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert(target, node, anchor);\n}\nfunction insert_hydration_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert_hydration(target, node, anchor);\n}\nfunction detach_dev(node) {\n dispatch_dev('SvelteDOMRemove', { node });\n detach(node);\n}\nfunction detach_between_dev(before, after) {\n while (before.nextSibling && before.nextSibling !== after) {\n detach_dev(before.nextSibling);\n }\n}\nfunction detach_before_dev(after) {\n while (after.previousSibling) {\n detach_dev(after.previousSibling);\n }\n}\nfunction detach_after_dev(before) {\n while (before.nextSibling) {\n detach_dev(before.nextSibling);\n }\n}\nfunction listen_dev(node, event, handler, options, has_prevent_default, has_stop_propagation) {\n const modifiers = options === true ? ['capture'] : options ? Array.from(Object.keys(options)) : [];\n if (has_prevent_default)\n modifiers.push('preventDefault');\n if (has_stop_propagation)\n modifiers.push('stopPropagation');\n dispatch_dev('SvelteDOMAddEventListener', { node, event, handler, modifiers });\n const dispose = listen(node, event, handler, options);\n return () => {\n dispatch_dev('SvelteDOMRemoveEventListener', { node, event, handler, modifiers });\n dispose();\n };\n}\nfunction attr_dev(node, attribute, value) {\n attr(node, attribute, value);\n if (value == null)\n dispatch_dev('SvelteDOMRemoveAttribute', { node, attribute });\n else\n dispatch_dev('SvelteDOMSetAttribute', { node, attribute, value });\n}\nfunction prop_dev(node, property, value) {\n node[property] = value;\n dispatch_dev('SvelteDOMSetProperty', { node, property, value });\n}\nfunction dataset_dev(node, property, value) {\n node.dataset[property] = value;\n dispatch_dev('SvelteDOMSetDataset', { node, property, value });\n}\nfunction set_data_dev(text, data) {\n data = '' + data;\n if (text.wholeText === data)\n return;\n dispatch_dev('SvelteDOMSetData', { node: text, data });\n text.data = data;\n}\nfunction validate_each_argument(arg) {\n if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) {\n let msg = '{#each} only iterates over array-like objects.';\n if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) {\n msg += ' You can use a spread to convert this iterable into an array.';\n }\n throw new Error(msg);\n }\n}\nfunction validate_slots(name, slot, keys) {\n for (const slot_key of Object.keys(slot)) {\n if (!~keys.indexOf(slot_key)) {\n console.warn(`<${name}> received an unexpected slot \"${slot_key}\".`);\n }\n }\n}\nfunction validate_dynamic_element(tag) {\n const is_string = typeof tag === 'string';\n if (tag && !is_string) {\n throw new Error(' expects \"this\" attribute to be a string.');\n }\n}\nfunction validate_void_dynamic_element(tag) {\n if (tag && is_void(tag)) {\n console.warn(` is self-closing and cannot have content.`);\n }\n}\nfunction construct_svelte_component_dev(component, props) {\n const error_message = 'this={...} of should specify a Svelte component.';\n try {\n const instance = new component(props);\n if (!instance.$$ || !instance.$set || !instance.$on || !instance.$destroy) {\n throw new Error(error_message);\n }\n return instance;\n }\n catch (err) {\n const { message } = err;\n if (typeof message === 'string' && message.indexOf('is not a constructor') !== -1) {\n throw new Error(error_message);\n }\n else {\n throw err;\n }\n }\n}\n/**\n * Base class for Svelte components with some minor dev-enhancements. Used when dev=true.\n */\nclass SvelteComponentDev extends SvelteComponent {\n constructor(options) {\n if (!options || (!options.target && !options.$$inline)) {\n throw new Error(\"'target' is a required option\");\n }\n super();\n }\n $destroy() {\n super.$destroy();\n this.$destroy = () => {\n console.warn('Component was already destroyed'); // eslint-disable-line no-console\n };\n }\n $capture_state() { }\n $inject_state() { }\n}\n/**\n * Base class to create strongly typed Svelte components.\n * This only exists for typing purposes and should be used in `.d.ts` files.\n *\n * ### Example:\n *\n * You have component library on npm called `component-library`, from which\n * you export a component called `MyComponent`. For Svelte+TypeScript users,\n * you want to provide typings. Therefore you create a `index.d.ts`:\n * ```ts\n * import { SvelteComponentTyped } from \"svelte\";\n * export class MyComponent extends SvelteComponentTyped<{foo: string}> {}\n * ```\n * Typing this makes it possible for IDEs like VS Code with the Svelte extension\n * to provide intellisense and to use the component like this in a Svelte file\n * with TypeScript:\n * ```svelte\n * \n * \n * ```\n *\n * #### Why not make this part of `SvelteComponent(Dev)`?\n * Because\n * ```ts\n * class ASubclassOfSvelteComponent extends SvelteComponent<{foo: string}> {}\n * const component: typeof SvelteComponent = ASubclassOfSvelteComponent;\n * ```\n * will throw a type error, so we need to separate the more strictly typed class.\n */\nclass SvelteComponentTyped extends SvelteComponentDev {\n constructor(options) {\n super(options);\n }\n}\nfunction loop_guard(timeout) {\n const start = Date.now();\n return () => {\n if (Date.now() - start > timeout) {\n throw new Error('Infinite loop detected');\n }\n };\n}\n\nexport { HtmlTag, HtmlTagHydration, SvelteComponent, SvelteComponentDev, SvelteComponentTyped, SvelteElement, action_destroyer, add_attribute, add_classes, add_flush_callback, add_location, add_render_callback, add_resize_listener, add_styles, add_transform, afterUpdate, append, append_dev, append_empty_stylesheet, append_hydration, append_hydration_dev, append_styles, assign, attr, attr_dev, attribute_to_object, beforeUpdate, bind, binding_callbacks, blank_object, bubble, check_outros, children, claim_component, claim_element, claim_html_tag, claim_space, claim_svg_element, claim_text, clear_loops, component_subscribe, compute_rest_props, compute_slots, construct_svelte_component, construct_svelte_component_dev, createEventDispatcher, create_animation, create_bidirectional_transition, create_component, create_in_transition, create_out_transition, create_slot, create_ssr_component, current_component, custom_event, dataset_dev, debug, destroy_block, destroy_component, destroy_each, detach, detach_after_dev, detach_before_dev, detach_between_dev, detach_dev, dirty_components, dispatch_dev, each, element, element_is, empty, end_hydrating, escape, escape_attribute_value, escape_object, exclude_internal_props, fix_and_destroy_block, fix_and_outro_and_destroy_block, fix_position, flush, getAllContexts, getContext, get_all_dirty_from_scope, get_binding_group_value, get_current_component, get_custom_elements_slots, get_root_for_style, get_slot_changes, get_spread_object, get_spread_update, get_store_value, globals, group_outros, handle_promise, hasContext, has_prop, head_selector, identity, init, insert, insert_dev, insert_hydration, insert_hydration_dev, intros, invalid_attribute_name_character, is_client, is_crossorigin, is_empty, is_function, is_promise, is_void, listen, listen_dev, loop, loop_guard, merge_ssr_styles, missing_component, mount_component, noop, not_equal, now, null_to_empty, object_without_properties, onDestroy, onMount, once, outro_and_destroy_block, prevent_default, prop_dev, query_selector_all, raf, run, run_all, safe_not_equal, schedule_update, select_multiple_value, select_option, select_options, select_value, self, setContext, set_attributes, set_current_component, set_custom_element_data, set_custom_element_data_map, set_data, set_data_dev, set_input_type, set_input_value, set_now, set_raf, set_store_value, set_style, set_svg_attributes, space, spread, src_url_equal, start_hydrating, stop_propagation, subscribe, svg_element, text, tick, time_ranges_to_array, to_number, toggle_class, transition_in, transition_out, trusted, update_await_block_branch, update_keyed_each, update_slot, update_slot_base, validate_component, validate_dynamic_element, validate_each_argument, validate_each_keys, validate_slots, validate_store, validate_void_dynamic_element, xlink_attr };\n","import { noop, safe_not_equal, subscribe, run_all, is_function } from '../internal/index.mjs';\nexport { get_store_value as get } from '../internal/index.mjs';\n\nconst subscriber_queue = [];\n/**\n * Creates a `Readable` store that allows reading by subscription.\n * @param value initial value\n * @param {StartStopNotifier}start start and stop notifications for subscriptions\n */\nfunction readable(value, start) {\n return {\n subscribe: writable(value, start).subscribe\n };\n}\n/**\n * Create a `Writable` store that allows both updating and reading by subscription.\n * @param {*=}value initial value\n * @param {StartStopNotifier=}start start and stop notifications for subscriptions\n */\nfunction writable(value, start = noop) {\n let stop;\n const subscribers = new Set();\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) { // store is ready\n const run_queue = !subscriber_queue.length;\n for (const subscriber of subscribers) {\n subscriber[1]();\n subscriber_queue.push(subscriber, value);\n }\n if (run_queue) {\n for (let i = 0; i < subscriber_queue.length; i += 2) {\n subscriber_queue[i][0](subscriber_queue[i + 1]);\n }\n subscriber_queue.length = 0;\n }\n }\n }\n }\n function update(fn) {\n set(fn(value));\n }\n function subscribe(run, invalidate = noop) {\n const subscriber = [run, invalidate];\n subscribers.add(subscriber);\n if (subscribers.size === 1) {\n stop = start(set) || noop;\n }\n run(value);\n return () => {\n subscribers.delete(subscriber);\n if (subscribers.size === 0) {\n stop();\n stop = null;\n }\n };\n }\n return { set, update, subscribe };\n}\nfunction derived(stores, fn, initial_value) {\n const single = !Array.isArray(stores);\n const stores_array = single\n ? [stores]\n : stores;\n const auto = fn.length < 2;\n return readable(initial_value, (set) => {\n let inited = false;\n const values = [];\n let pending = 0;\n let cleanup = noop;\n const sync = () => {\n if (pending) {\n return;\n }\n cleanup();\n const result = fn(single ? values[0] : values, set);\n if (auto) {\n set(result);\n }\n else {\n cleanup = is_function(result) ? result : noop;\n }\n };\n const unsubscribers = stores_array.map((store, i) => subscribe(store, (value) => {\n values[i] = value;\n pending &= ~(1 << i);\n if (inited) {\n sync();\n }\n }, () => {\n pending |= (1 << i);\n }));\n inited = true;\n sync();\n return function stop() {\n run_all(unsubscribers);\n cleanup();\n };\n });\n}\n\nexport { derived, readable, writable };\n","import { writable } from 'svelte/store';\n\nexport const chatAdapter = writable(null);\nexport const chatData = writable({ events: [], profiles: {}});\nexport const selectedMessage = writable(null);","export default {\n MODE_NUMBER: 1 << 0,\n MODE_ALPHA_NUM: 1 << 1,\n MODE_8BIT_BYTE: 1 << 2,\n MODE_KANJI: 1 << 3,\n}\n","import mode from './mode.ts'\n\nexport default function QR8bitByte(data) {\n this.mode = mode.MODE_8BIT_BYTE\n this.data = data\n}\n\nQR8bitByte.prototype = {\n getLength: function () {\n return this.data.length\n },\n\n write: function (buffer) {\n for (var i = 0; i < this.data.length; i++) {\n // not JIS ...\n buffer.put(this.data.charCodeAt(i), 8)\n }\n },\n}\n","export default {\n L: 1,\n M: 0,\n Q: 3,\n H: 2,\n}\n","// ErrorCorrectLevel\nimport ECL from './ErrorCorrectLevel.ts'\n\nexport default function QRRSBlock(totalCount, dataCount) {\n this.totalCount = totalCount\n this.dataCount = dataCount\n}\n\nQRRSBlock.RS_BLOCK_TABLE = [\n // L\n // M\n // Q\n // H\n\n // 1\n [1, 26, 19],\n [1, 26, 16],\n [1, 26, 13],\n [1, 26, 9],\n\n // 2\n [1, 44, 34],\n [1, 44, 28],\n [1, 44, 22],\n [1, 44, 16],\n\n // 3\n [1, 70, 55],\n [1, 70, 44],\n [2, 35, 17],\n [2, 35, 13],\n\n // 4\n [1, 100, 80],\n [2, 50, 32],\n [2, 50, 24],\n [4, 25, 9],\n\n // 5\n [1, 134, 108],\n [2, 67, 43],\n [2, 33, 15, 2, 34, 16],\n [2, 33, 11, 2, 34, 12],\n\n // 6\n [2, 86, 68],\n [4, 43, 27],\n [4, 43, 19],\n [4, 43, 15],\n\n // 7\n [2, 98, 78],\n [4, 49, 31],\n [2, 32, 14, 4, 33, 15],\n [4, 39, 13, 1, 40, 14],\n\n // 8\n [2, 121, 97],\n [2, 60, 38, 2, 61, 39],\n [4, 40, 18, 2, 41, 19],\n [4, 40, 14, 2, 41, 15],\n\n // 9\n [2, 146, 116],\n [3, 58, 36, 2, 59, 37],\n [4, 36, 16, 4, 37, 17],\n [4, 36, 12, 4, 37, 13],\n\n // 10\n [2, 86, 68, 2, 87, 69],\n [4, 69, 43, 1, 70, 44],\n [6, 43, 19, 2, 44, 20],\n [6, 43, 15, 2, 44, 16],\n\n // 11\n [4, 101, 81],\n [1, 80, 50, 4, 81, 51],\n [4, 50, 22, 4, 51, 23],\n [3, 36, 12, 8, 37, 13],\n\n // 12\n [2, 116, 92, 2, 117, 93],\n [6, 58, 36, 2, 59, 37],\n [4, 46, 20, 6, 47, 21],\n [7, 42, 14, 4, 43, 15],\n\n // 13\n [4, 133, 107],\n [8, 59, 37, 1, 60, 38],\n [8, 44, 20, 4, 45, 21],\n [12, 33, 11, 4, 34, 12],\n\n // 14\n [3, 145, 115, 1, 146, 116],\n [4, 64, 40, 5, 65, 41],\n [11, 36, 16, 5, 37, 17],\n [11, 36, 12, 5, 37, 13],\n\n // 15\n [5, 109, 87, 1, 110, 88],\n [5, 65, 41, 5, 66, 42],\n [5, 54, 24, 7, 55, 25],\n [11, 36, 12],\n\n // 16\n [5, 122, 98, 1, 123, 99],\n [7, 73, 45, 3, 74, 46],\n [15, 43, 19, 2, 44, 20],\n [3, 45, 15, 13, 46, 16],\n\n // 17\n [1, 135, 107, 5, 136, 108],\n [10, 74, 46, 1, 75, 47],\n [1, 50, 22, 15, 51, 23],\n [2, 42, 14, 17, 43, 15],\n\n // 18\n [5, 150, 120, 1, 151, 121],\n [9, 69, 43, 4, 70, 44],\n [17, 50, 22, 1, 51, 23],\n [2, 42, 14, 19, 43, 15],\n\n // 19\n [3, 141, 113, 4, 142, 114],\n [3, 70, 44, 11, 71, 45],\n [17, 47, 21, 4, 48, 22],\n [9, 39, 13, 16, 40, 14],\n\n // 20\n [3, 135, 107, 5, 136, 108],\n [3, 67, 41, 13, 68, 42],\n [15, 54, 24, 5, 55, 25],\n [15, 43, 15, 10, 44, 16],\n\n // 21\n [4, 144, 116, 4, 145, 117],\n [17, 68, 42],\n [17, 50, 22, 6, 51, 23],\n [19, 46, 16, 6, 47, 17],\n\n // 22\n [2, 139, 111, 7, 140, 112],\n [17, 74, 46],\n [7, 54, 24, 16, 55, 25],\n [34, 37, 13],\n\n // 23\n [4, 151, 121, 5, 152, 122],\n [4, 75, 47, 14, 76, 48],\n [11, 54, 24, 14, 55, 25],\n [16, 45, 15, 14, 46, 16],\n\n // 24\n [6, 147, 117, 4, 148, 118],\n [6, 73, 45, 14, 74, 46],\n [11, 54, 24, 16, 55, 25],\n [30, 46, 16, 2, 47, 17],\n\n // 25\n [8, 132, 106, 4, 133, 107],\n [8, 75, 47, 13, 76, 48],\n [7, 54, 24, 22, 55, 25],\n [22, 45, 15, 13, 46, 16],\n\n // 26\n [10, 142, 114, 2, 143, 115],\n [19, 74, 46, 4, 75, 47],\n [28, 50, 22, 6, 51, 23],\n [33, 46, 16, 4, 47, 17],\n\n // 27\n [8, 152, 122, 4, 153, 123],\n [22, 73, 45, 3, 74, 46],\n [8, 53, 23, 26, 54, 24],\n [12, 45, 15, 28, 46, 16],\n\n // 28\n [3, 147, 117, 10, 148, 118],\n [3, 73, 45, 23, 74, 46],\n [4, 54, 24, 31, 55, 25],\n [11, 45, 15, 31, 46, 16],\n\n // 29\n [7, 146, 116, 7, 147, 117],\n [21, 73, 45, 7, 74, 46],\n [1, 53, 23, 37, 54, 24],\n [19, 45, 15, 26, 46, 16],\n\n // 30\n [5, 145, 115, 10, 146, 116],\n [19, 75, 47, 10, 76, 48],\n [15, 54, 24, 25, 55, 25],\n [23, 45, 15, 25, 46, 16],\n\n // 31\n [13, 145, 115, 3, 146, 116],\n [2, 74, 46, 29, 75, 47],\n [42, 54, 24, 1, 55, 25],\n [23, 45, 15, 28, 46, 16],\n\n // 32\n [17, 145, 115],\n [10, 74, 46, 23, 75, 47],\n [10, 54, 24, 35, 55, 25],\n [19, 45, 15, 35, 46, 16],\n\n // 33\n [17, 145, 115, 1, 146, 116],\n [14, 74, 46, 21, 75, 47],\n [29, 54, 24, 19, 55, 25],\n [11, 45, 15, 46, 46, 16],\n\n // 34\n [13, 145, 115, 6, 146, 116],\n [14, 74, 46, 23, 75, 47],\n [44, 54, 24, 7, 55, 25],\n [59, 46, 16, 1, 47, 17],\n\n // 35\n [12, 151, 121, 7, 152, 122],\n [12, 75, 47, 26, 76, 48],\n [39, 54, 24, 14, 55, 25],\n [22, 45, 15, 41, 46, 16],\n\n // 36\n [6, 151, 121, 14, 152, 122],\n [6, 75, 47, 34, 76, 48],\n [46, 54, 24, 10, 55, 25],\n [2, 45, 15, 64, 46, 16],\n\n // 37\n [17, 152, 122, 4, 153, 123],\n [29, 74, 46, 14, 75, 47],\n [49, 54, 24, 10, 55, 25],\n [24, 45, 15, 46, 46, 16],\n\n // 38\n [4, 152, 122, 18, 153, 123],\n [13, 74, 46, 32, 75, 47],\n [48, 54, 24, 14, 55, 25],\n [42, 45, 15, 32, 46, 16],\n\n // 39\n [20, 147, 117, 4, 148, 118],\n [40, 75, 47, 7, 76, 48],\n [43, 54, 24, 22, 55, 25],\n [10, 45, 15, 67, 46, 16],\n\n // 40\n [19, 148, 118, 6, 149, 119],\n [18, 75, 47, 31, 76, 48],\n [34, 54, 24, 34, 55, 25],\n [20, 45, 15, 61, 46, 16],\n]\n\nQRRSBlock.getRSBlocks = function (typeNumber, errorCorrectLevel) {\n var rsBlock = QRRSBlock.getRsBlockTable(typeNumber, errorCorrectLevel)\n\n if (rsBlock == undefined) {\n throw new Error(\n 'bad rs block @ typeNumber:' + typeNumber + '/errorCorrectLevel:' + errorCorrectLevel\n )\n }\n\n var length = rsBlock.length / 3\n\n var list = new Array()\n\n for (var i = 0; i < length; i++) {\n var count = rsBlock[i * 3 + 0]\n var totalCount = rsBlock[i * 3 + 1]\n var dataCount = rsBlock[i * 3 + 2]\n\n for (var j = 0; j < count; j++) {\n list.push(new QRRSBlock(totalCount, dataCount))\n }\n }\n\n return list\n}\n\nQRRSBlock.getRsBlockTable = function (typeNumber, errorCorrectLevel) {\n switch (errorCorrectLevel) {\n case ECL.L:\n return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 0]\n case ECL.M:\n return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 1]\n case ECL.Q:\n return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 2]\n case ECL.H:\n return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 3]\n default:\n return undefined\n }\n}\n","export default function QRBitBuffer() {\n this.buffer = new Array()\n this.length = 0\n}\n\nQRBitBuffer.prototype = {\n get: function (index) {\n var bufIndex = Math.floor(index / 8)\n return ((this.buffer[bufIndex] >>> (7 - (index % 8))) & 1) == 1\n },\n\n put: function (num, length) {\n for (var i = 0; i < length; i++) {\n this.putBit(((num >>> (length - i - 1)) & 1) == 1)\n }\n },\n\n getLengthInBits: function () {\n return this.length\n },\n\n putBit: function (bit) {\n var bufIndex = Math.floor(this.length / 8)\n if (this.buffer.length <= bufIndex) {\n this.buffer.push(0)\n }\n\n if (bit) {\n this.buffer[bufIndex] |= 0x80 >>> this.length % 8\n }\n\n this.length++\n },\n}\n","const QRMath = {\n glog: function (n) {\n if (n < 1) {\n throw new Error('glog(' + n + ')')\n }\n\n return QRMath.LOG_TABLE[n]\n },\n\n gexp: function (n) {\n while (n < 0) {\n n += 255\n }\n\n while (n >= 256) {\n n -= 255\n }\n\n return QRMath.EXP_TABLE[n]\n },\n\n EXP_TABLE: new Array(256),\n\n LOG_TABLE: new Array(256),\n}\n\nfor (var i = 0; i < 8; i++) {\n QRMath.EXP_TABLE[i] = 1 << i\n}\nfor (var i = 8; i < 256; i++) {\n QRMath.EXP_TABLE[i] =\n QRMath.EXP_TABLE[i - 4] ^\n QRMath.EXP_TABLE[i - 5] ^\n QRMath.EXP_TABLE[i - 6] ^\n QRMath.EXP_TABLE[i - 8]\n}\nfor (var i = 0; i < 255; i++) {\n QRMath.LOG_TABLE[QRMath.EXP_TABLE[i]] = i\n}\n\nexport default QRMath\n","import math from './math.ts'\n\nexport default function QRPolynomial(num, shift) {\n if (num.length == undefined) {\n throw new Error(num.length + '/' + shift)\n }\n\n var offset = 0\n\n while (offset < num.length && num[offset] == 0) {\n offset++\n }\n\n this.num = new Array(num.length - offset + shift)\n for (var i = 0; i < num.length - offset; i++) {\n this.num[i] = num[i + offset]\n }\n}\n\nQRPolynomial.prototype = {\n get: function (index) {\n return this.num[index]\n },\n\n getLength: function () {\n return this.num.length\n },\n\n multiply: function (e) {\n var num = new Array(this.getLength() + e.getLength() - 1)\n\n for (var i = 0; i < this.getLength(); i++) {\n for (var j = 0; j < e.getLength(); j++) {\n num[i + j] ^= math.gexp(math.glog(this.get(i)) + math.glog(e.get(j)))\n }\n }\n\n return new QRPolynomial(num, 0)\n },\n\n mod: function (e) {\n if (this.getLength() - e.getLength() < 0) {\n return this\n }\n\n var ratio = math.glog(this.get(0)) - math.glog(e.get(0))\n\n var num = new Array(this.getLength())\n\n for (var i = 0; i < this.getLength(); i++) {\n num[i] = this.get(i)\n }\n\n for (var i = 0; i < e.getLength(); i++) {\n num[i] ^= math.gexp(math.glog(e.get(i)) + ratio)\n }\n\n // recursive call\n return new QRPolynomial(num, 0).mod(e)\n },\n}\n","import Mode from './mode.ts'\nimport Polynomial from './Polynomial.ts'\nimport math from './math.ts'\n\nexport const QRMaskPattern = {\n PATTERN000: 0,\n PATTERN001: 1,\n PATTERN010: 2,\n PATTERN011: 3,\n PATTERN100: 4,\n PATTERN101: 5,\n PATTERN110: 6,\n PATTERN111: 7,\n}\n\nconst QRUtil = {\n PATTERN_POSITION_TABLE: [\n [],\n [6, 18],\n [6, 22],\n [6, 26],\n [6, 30],\n [6, 34],\n [6, 22, 38],\n [6, 24, 42],\n [6, 26, 46],\n [6, 28, 50],\n [6, 30, 54],\n [6, 32, 58],\n [6, 34, 62],\n [6, 26, 46, 66],\n [6, 26, 48, 70],\n [6, 26, 50, 74],\n [6, 30, 54, 78],\n [6, 30, 56, 82],\n [6, 30, 58, 86],\n [6, 34, 62, 90],\n [6, 28, 50, 72, 94],\n [6, 26, 50, 74, 98],\n [6, 30, 54, 78, 102],\n [6, 28, 54, 80, 106],\n [6, 32, 58, 84, 110],\n [6, 30, 58, 86, 114],\n [6, 34, 62, 90, 118],\n [6, 26, 50, 74, 98, 122],\n [6, 30, 54, 78, 102, 126],\n [6, 26, 52, 78, 104, 130],\n [6, 30, 56, 82, 108, 134],\n [6, 34, 60, 86, 112, 138],\n [6, 30, 58, 86, 114, 142],\n [6, 34, 62, 90, 118, 146],\n [6, 30, 54, 78, 102, 126, 150],\n [6, 24, 50, 76, 102, 128, 154],\n [6, 28, 54, 80, 106, 132, 158],\n [6, 32, 58, 84, 110, 136, 162],\n [6, 26, 54, 82, 110, 138, 166],\n [6, 30, 58, 86, 114, 142, 170],\n ],\n\n G15: (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0),\n G18: (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0),\n G15_MASK: (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1),\n\n getBCHTypeInfo: function (data) {\n var d = data << 10\n while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15) >= 0) {\n d ^= QRUtil.G15 << (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15))\n }\n return ((data << 10) | d) ^ QRUtil.G15_MASK\n },\n\n getBCHTypeNumber: function (data) {\n var d = data << 12\n while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18) >= 0) {\n d ^= QRUtil.G18 << (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18))\n }\n return (data << 12) | d\n },\n\n getBCHDigit: function (data) {\n var digit = 0\n\n while (data != 0) {\n digit++\n data >>>= 1\n }\n\n return digit\n },\n\n getPatternPosition: function (typeNumber) {\n return QRUtil.PATTERN_POSITION_TABLE[typeNumber - 1]\n },\n\n getMask: function (maskPattern, i, j) {\n switch (maskPattern) {\n case QRMaskPattern.PATTERN000:\n return (i + j) % 2 == 0\n case QRMaskPattern.PATTERN001:\n return i % 2 == 0\n case QRMaskPattern.PATTERN010:\n return j % 3 == 0\n case QRMaskPattern.PATTERN011:\n return (i + j) % 3 == 0\n case QRMaskPattern.PATTERN100:\n return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 == 0\n case QRMaskPattern.PATTERN101:\n return ((i * j) % 2) + ((i * j) % 3) == 0\n case QRMaskPattern.PATTERN110:\n return (((i * j) % 2) + ((i * j) % 3)) % 2 == 0\n case QRMaskPattern.PATTERN111:\n return (((i * j) % 3) + ((i + j) % 2)) % 2 == 0\n\n default:\n throw new Error('bad maskPattern:' + maskPattern)\n }\n },\n\n getErrorCorrectPolynomial: function (errorCorrectLength) {\n var a = new Polynomial([1], 0)\n\n for (var i = 0; i < errorCorrectLength; i++) {\n a = a.multiply(new Polynomial([1, math.gexp(i)], 0))\n }\n\n return a\n },\n\n getLengthInBits: function (mode, type) {\n if (1 <= type && type < 10) {\n // 1 - 9\n\n switch (mode) {\n case Mode.MODE_NUMBER:\n return 10\n case Mode.MODE_ALPHA_NUM:\n return 9\n case Mode.MODE_8BIT_BYTE:\n return 8\n case Mode.MODE_KANJI:\n return 8\n default:\n throw new Error('mode:' + mode)\n }\n } else if (type < 27) {\n // 10 - 26\n\n switch (mode) {\n case Mode.MODE_NUMBER:\n return 12\n case Mode.MODE_ALPHA_NUM:\n return 11\n case Mode.MODE_8BIT_BYTE:\n return 16\n case Mode.MODE_KANJI:\n return 10\n default:\n throw new Error('mode:' + mode)\n }\n } else if (type < 41) {\n // 27 - 40\n\n switch (mode) {\n case Mode.MODE_NUMBER:\n return 14\n case Mode.MODE_ALPHA_NUM:\n return 13\n case Mode.MODE_8BIT_BYTE:\n return 16\n case Mode.MODE_KANJI:\n return 12\n default:\n throw new Error('mode:' + mode)\n }\n } else {\n throw new Error('type:' + type)\n }\n },\n\n getLostPoint: function (qrCode) {\n var moduleCount = qrCode.getModuleCount()\n\n var lostPoint = 0\n\n // LEVEL1\n\n for (var row = 0; row < moduleCount; row++) {\n for (var col = 0; col < moduleCount; col++) {\n var sameCount = 0\n var dark = qrCode.isDark(row, col)\n\n for (var r = -1; r <= 1; r++) {\n if (row + r < 0 || moduleCount <= row + r) {\n continue\n }\n\n for (var c = -1; c <= 1; c++) {\n if (col + c < 0 || moduleCount <= col + c) {\n continue\n }\n\n if (r == 0 && c == 0) {\n continue\n }\n\n if (dark == qrCode.isDark(row + r, col + c)) {\n sameCount++\n }\n }\n }\n\n if (sameCount > 5) {\n lostPoint += 3 + sameCount - 5\n }\n }\n }\n\n // LEVEL2\n\n for (var row = 0; row < moduleCount - 1; row++) {\n for (var col = 0; col < moduleCount - 1; col++) {\n var count = 0\n if (qrCode.isDark(row, col)) count++\n if (qrCode.isDark(row + 1, col)) count++\n if (qrCode.isDark(row, col + 1)) count++\n if (qrCode.isDark(row + 1, col + 1)) count++\n if (count == 0 || count == 4) {\n lostPoint += 3\n }\n }\n }\n\n // LEVEL3\n\n for (var row = 0; row < moduleCount; row++) {\n for (var col = 0; col < moduleCount - 6; col++) {\n if (\n qrCode.isDark(row, col) &&\n !qrCode.isDark(row, col + 1) &&\n qrCode.isDark(row, col + 2) &&\n qrCode.isDark(row, col + 3) &&\n qrCode.isDark(row, col + 4) &&\n !qrCode.isDark(row, col + 5) &&\n qrCode.isDark(row, col + 6)\n ) {\n lostPoint += 40\n }\n }\n }\n\n for (var col = 0; col < moduleCount; col++) {\n for (var row = 0; row < moduleCount - 6; row++) {\n if (\n qrCode.isDark(row, col) &&\n !qrCode.isDark(row + 1, col) &&\n qrCode.isDark(row + 2, col) &&\n qrCode.isDark(row + 3, col) &&\n qrCode.isDark(row + 4, col) &&\n !qrCode.isDark(row + 5, col) &&\n qrCode.isDark(row + 6, col)\n ) {\n lostPoint += 40\n }\n }\n }\n\n // LEVEL4\n\n var darkCount = 0\n\n for (var col = 0; col < moduleCount; col++) {\n for (var row = 0; row < moduleCount; row++) {\n if (qrCode.isDark(row, col)) {\n darkCount++\n }\n }\n }\n\n var ratio = Math.abs((100 * darkCount) / moduleCount / moduleCount - 50) / 5\n lostPoint += ratio * 10\n\n return lostPoint\n },\n}\n\nexport default QRUtil\n","import BitByte from './8BitByte.ts'\nimport RSBlock from './RSBlock.ts'\nimport BitBuffer from './BitBuffer.ts'\nimport util from './util.ts'\nimport Polynomial from './Polynomial.ts'\n\nexport default function QRCode(typeNumber, errorCorrectLevel) {\n this.typeNumber = typeNumber\n this.errorCorrectLevel = errorCorrectLevel\n this.modules = null\n this.moduleCount = 0\n this.dataCache = null\n this.dataList = []\n}\n\n// for client side minification\nvar proto = QRCode.prototype\n\nproto.addData = function (data) {\n var newData = new BitByte(data)\n this.dataList.push(newData)\n this.dataCache = null\n}\n\nproto.isDark = function (row, col) {\n if (row < 0 || this.moduleCount <= row || col < 0 || this.moduleCount <= col) {\n throw new Error(row + ',' + col)\n }\n return this.modules[row][col]\n}\n\nproto.getModuleCount = function () {\n return this.moduleCount\n}\n\nproto.make = function () {\n // Calculate automatically typeNumber if provided is < 1\n if (this.typeNumber < 1) {\n var typeNumber = 1\n for (typeNumber = 1; typeNumber < 40; typeNumber++) {\n var rsBlocks = RSBlock.getRSBlocks(typeNumber, this.errorCorrectLevel)\n\n var buffer = new BitBuffer()\n var totalDataCount = 0\n for (var i = 0; i < rsBlocks.length; i++) {\n totalDataCount += rsBlocks[i].dataCount\n }\n\n for (var i = 0; i < this.dataList.length; i++) {\n var data = this.dataList[i]\n buffer.put(data.mode, 4)\n buffer.put(data.getLength(), util.getLengthInBits(data.mode, typeNumber))\n data.write(buffer)\n }\n if (buffer.getLengthInBits() <= totalDataCount * 8) break\n }\n this.typeNumber = typeNumber\n }\n this.makeImpl(false, this.getBestMaskPattern())\n}\n\nproto.makeImpl = function (test, maskPattern) {\n this.moduleCount = this.typeNumber * 4 + 17\n this.modules = new Array(this.moduleCount)\n\n for (var row = 0; row < this.moduleCount; row++) {\n this.modules[row] = new Array(this.moduleCount)\n\n for (var col = 0; col < this.moduleCount; col++) {\n this.modules[row][col] = null //(col + row) % 3;\n }\n }\n\n this.setupPositionProbePattern(0, 0)\n this.setupPositionProbePattern(this.moduleCount - 7, 0)\n this.setupPositionProbePattern(0, this.moduleCount - 7)\n this.setupPositionAdjustPattern()\n this.setupTimingPattern()\n this.setupTypeInfo(test, maskPattern)\n\n if (this.typeNumber >= 7) {\n this.setupTypeNumber(test)\n }\n\n if (this.dataCache == null) {\n this.dataCache = QRCode.createData(this.typeNumber, this.errorCorrectLevel, this.dataList)\n }\n\n this.mapData(this.dataCache, maskPattern)\n}\n\nproto.setupPositionProbePattern = function (row, col) {\n for (var r = -1; r <= 7; r++) {\n if (row + r <= -1 || this.moduleCount <= row + r) continue\n\n for (var c = -1; c <= 7; c++) {\n if (col + c <= -1 || this.moduleCount <= col + c) continue\n\n if (\n (0 <= r && r <= 6 && (c == 0 || c == 6)) ||\n (0 <= c && c <= 6 && (r == 0 || r == 6)) ||\n (2 <= r && r <= 4 && 2 <= c && c <= 4)\n ) {\n this.modules[row + r][col + c] = true\n } else {\n this.modules[row + r][col + c] = false\n }\n }\n }\n}\n\nproto.getBestMaskPattern = function () {\n var minLostPoint = 0\n var pattern = 0\n\n for (var i = 0; i < 8; i++) {\n this.makeImpl(true, i)\n\n var lostPoint = util.getLostPoint(this)\n\n if (i == 0 || minLostPoint > lostPoint) {\n minLostPoint = lostPoint\n pattern = i\n }\n }\n\n return pattern\n}\n\nproto.setupTimingPattern = function () {\n for (var r = 8; r < this.moduleCount - 8; r++) {\n if (this.modules[r][6] != null) {\n continue\n }\n this.modules[r][6] = r % 2 == 0\n }\n\n for (var c = 8; c < this.moduleCount - 8; c++) {\n if (this.modules[6][c] != null) {\n continue\n }\n this.modules[6][c] = c % 2 == 0\n }\n}\n\nproto.setupPositionAdjustPattern = function () {\n var pos = util.getPatternPosition(this.typeNumber)\n\n for (var i = 0; i < pos.length; i++) {\n for (var j = 0; j < pos.length; j++) {\n var row = pos[i]\n var col = pos[j]\n\n if (this.modules[row][col] != null) {\n continue\n }\n\n for (var r = -2; r <= 2; r++) {\n for (var c = -2; c <= 2; c++) {\n if (r == -2 || r == 2 || c == -2 || c == 2 || (r == 0 && c == 0)) {\n this.modules[row + r][col + c] = true\n } else {\n this.modules[row + r][col + c] = false\n }\n }\n }\n }\n }\n}\n\nproto.setupTypeNumber = function (test) {\n var bits = util.getBCHTypeNumber(this.typeNumber)\n\n for (var i = 0; i < 18; i++) {\n var mod = !test && ((bits >> i) & 1) == 1\n this.modules[Math.floor(i / 3)][(i % 3) + this.moduleCount - 8 - 3] = mod\n }\n\n for (var i = 0; i < 18; i++) {\n var mod = !test && ((bits >> i) & 1) == 1\n this.modules[(i % 3) + this.moduleCount - 8 - 3][Math.floor(i / 3)] = mod\n }\n}\n\nproto.setupTypeInfo = function (test, maskPattern) {\n var data = (this.errorCorrectLevel << 3) | maskPattern\n var bits = util.getBCHTypeInfo(data)\n\n // vertical\n for (var i = 0; i < 15; i++) {\n var mod = !test && ((bits >> i) & 1) == 1\n\n if (i < 6) {\n this.modules[i][8] = mod\n } else if (i < 8) {\n this.modules[i + 1][8] = mod\n } else {\n this.modules[this.moduleCount - 15 + i][8] = mod\n }\n }\n\n // horizontal\n for (var i = 0; i < 15; i++) {\n var mod = !test && ((bits >> i) & 1) == 1\n\n if (i < 8) {\n this.modules[8][this.moduleCount - i - 1] = mod\n } else if (i < 9) {\n this.modules[8][15 - i - 1 + 1] = mod\n } else {\n this.modules[8][15 - i - 1] = mod\n }\n }\n\n // fixed module\n this.modules[this.moduleCount - 8][8] = !test\n}\n\nproto.mapData = function (data, maskPattern) {\n var inc = -1\n var row = this.moduleCount - 1\n var bitIndex = 7\n var byteIndex = 0\n\n for (var col = this.moduleCount - 1; col > 0; col -= 2) {\n if (col == 6) col--\n\n while (true) {\n for (var c = 0; c < 2; c++) {\n if (this.modules[row][col - c] == null) {\n var dark = false\n\n if (byteIndex < data.length) {\n dark = ((data[byteIndex] >>> bitIndex) & 1) == 1\n }\n\n var mask = util.getMask(maskPattern, row, col - c)\n\n if (mask) {\n dark = !dark\n }\n\n this.modules[row][col - c] = dark\n bitIndex--\n\n if (bitIndex == -1) {\n byteIndex++\n bitIndex = 7\n }\n }\n }\n\n row += inc\n\n if (row < 0 || this.moduleCount <= row) {\n row -= inc\n inc = -inc\n break\n }\n }\n }\n}\n\nQRCode.PAD0 = 0xec\nQRCode.PAD1 = 0x11\n\nQRCode.createData = function (typeNumber, errorCorrectLevel, dataList) {\n var rsBlocks = RSBlock.getRSBlocks(typeNumber, errorCorrectLevel)\n\n var buffer = new BitBuffer()\n\n for (var i = 0; i < dataList.length; i++) {\n var data = dataList[i]\n buffer.put(data.mode, 4)\n buffer.put(data.getLength(), util.getLengthInBits(data.mode, typeNumber))\n data.write(buffer)\n }\n\n // calc num max data.\n var totalDataCount = 0\n for (var i = 0; i < rsBlocks.length; i++) {\n totalDataCount += rsBlocks[i].dataCount\n }\n\n if (buffer.getLengthInBits() > totalDataCount * 8) {\n throw new Error(\n 'code length overflow. (' + buffer.getLengthInBits() + '>' + totalDataCount * 8 + ')'\n )\n }\n\n // end code\n if (buffer.getLengthInBits() + 4 <= totalDataCount * 8) {\n buffer.put(0, 4)\n }\n\n // padding\n while (buffer.getLengthInBits() % 8 != 0) {\n buffer.putBit(false)\n }\n\n // padding\n while (true) {\n if (buffer.getLengthInBits() >= totalDataCount * 8) {\n break\n }\n buffer.put(QRCode.PAD0, 8)\n\n if (buffer.getLengthInBits() >= totalDataCount * 8) {\n break\n }\n buffer.put(QRCode.PAD1, 8)\n }\n\n return QRCode.createBytes(buffer, rsBlocks)\n}\n\nQRCode.createBytes = function (buffer, rsBlocks) {\n var offset = 0\n\n var maxDcCount = 0\n var maxEcCount = 0\n\n var dcdata = new Array(rsBlocks.length)\n var ecdata = new Array(rsBlocks.length)\n\n for (var r = 0; r < rsBlocks.length; r++) {\n var dcCount = rsBlocks[r].dataCount\n var ecCount = rsBlocks[r].totalCount - dcCount\n\n maxDcCount = Math.max(maxDcCount, dcCount)\n maxEcCount = Math.max(maxEcCount, ecCount)\n\n dcdata[r] = new Array(dcCount)\n\n for (var i = 0; i < dcdata[r].length; i++) {\n dcdata[r][i] = 0xff & buffer.buffer[i + offset]\n }\n offset += dcCount\n\n var rsPoly = util.getErrorCorrectPolynomial(ecCount)\n var rawPoly = new Polynomial(dcdata[r], rsPoly.getLength() - 1)\n\n var modPoly = rawPoly.mod(rsPoly)\n ecdata[r] = new Array(rsPoly.getLength() - 1)\n for (var i = 0; i < ecdata[r].length; i++) {\n var modIndex = i + modPoly.getLength() - ecdata[r].length\n ecdata[r][i] = modIndex >= 0 ? modPoly.get(modIndex) : 0\n }\n }\n\n var totalCodeCount = 0\n for (var i = 0; i < rsBlocks.length; i++) {\n totalCodeCount += rsBlocks[i].totalCount\n }\n\n var data = new Array(totalCodeCount)\n var index = 0\n\n for (var i = 0; i < maxDcCount; i++) {\n for (var r = 0; r < rsBlocks.length; r++) {\n if (i < dcdata[r].length) {\n data[index++] = dcdata[r][i]\n }\n }\n }\n\n for (var i = 0; i < maxEcCount; i++) {\n for (var r = 0; r < rsBlocks.length; r++) {\n if (i < ecdata[r].length) {\n data[index++] = ecdata[r][i]\n }\n }\n }\n\n return data\n}\n","\n\n\n\n\n {#each rects as rect}\n \n {/each}\n \n","/*! noble-secp256k1 - MIT License (c) 2019 Paul Miller (paulmillr.com) */\nimport * as nodeCrypto from 'crypto';\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\nconst _2n = BigInt(2);\nconst _3n = BigInt(3);\nconst _8n = BigInt(8);\nconst CURVE = Object.freeze({\n a: _0n,\n b: BigInt(7),\n P: BigInt('0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f'),\n n: BigInt('0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141'),\n h: _1n,\n Gx: BigInt('55066263022277343669578718895168534326250603453777594175500187360389116729240'),\n Gy: BigInt('32670510020758816978083085130507043184471273380659243275938904335757337482424'),\n beta: BigInt('0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee'),\n});\nconst divNearest = (a, b) => (a + b / _2n) / b;\nconst endo = {\n beta: BigInt('0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee'),\n splitScalar(k) {\n const { n } = CURVE;\n const a1 = BigInt('0x3086d221a7d46bcde86c90e49284eb15');\n const b1 = -_1n * BigInt('0xe4437ed6010e88286f547fa90abfe4c3');\n const a2 = BigInt('0x114ca50f7a8e2f3f657c1108d9d44cfd8');\n const b2 = a1;\n const POW_2_128 = BigInt('0x100000000000000000000000000000000');\n const c1 = divNearest(b2 * k, n);\n const c2 = divNearest(-b1 * k, n);\n let k1 = mod(k - c1 * a1 - c2 * a2, n);\n let k2 = mod(-c1 * b1 - c2 * b2, n);\n const k1neg = k1 > POW_2_128;\n const k2neg = k2 > POW_2_128;\n if (k1neg)\n k1 = n - k1;\n if (k2neg)\n k2 = n - k2;\n if (k1 > POW_2_128 || k2 > POW_2_128) {\n throw new Error('splitScalarEndo: Endomorphism failed, k=' + k);\n }\n return { k1neg, k1, k2neg, k2 };\n },\n};\nconst fieldLen = 32;\nconst groupLen = 32;\nconst hashLen = 32;\nconst compressedLen = fieldLen + 1;\nconst uncompressedLen = 2 * fieldLen + 1;\nexport { CURVE };\nfunction weierstrass(x) {\n const { a, b } = CURVE;\n const x2 = mod(x * x);\n const x3 = mod(x2 * x);\n return mod(x3 + a * x + b);\n}\nconst USE_ENDOMORPHISM = CURVE.a === _0n;\nclass ShaError extends Error {\n constructor(message) {\n super(message);\n }\n}\nfunction assertJacPoint(other) {\n if (!(other instanceof JacobianPoint))\n throw new TypeError('JacobianPoint expected');\n}\nclass JacobianPoint {\n constructor(x, y, z) {\n this.x = x;\n this.y = y;\n this.z = z;\n }\n static fromAffine(p) {\n if (!(p instanceof Point)) {\n throw new TypeError('JacobianPoint#fromAffine: expected Point');\n }\n if (p.equals(Point.ZERO))\n return JacobianPoint.ZERO;\n return new JacobianPoint(p.x, p.y, _1n);\n }\n static toAffineBatch(points) {\n const toInv = invertBatch(points.map((p) => p.z));\n return points.map((p, i) => p.toAffine(toInv[i]));\n }\n static normalizeZ(points) {\n return JacobianPoint.toAffineBatch(points).map(JacobianPoint.fromAffine);\n }\n equals(other) {\n assertJacPoint(other);\n const { x: X1, y: Y1, z: Z1 } = this;\n const { x: X2, y: Y2, z: Z2 } = other;\n const Z1Z1 = mod(Z1 * Z1);\n const Z2Z2 = mod(Z2 * Z2);\n const U1 = mod(X1 * Z2Z2);\n const U2 = mod(X2 * Z1Z1);\n const S1 = mod(mod(Y1 * Z2) * Z2Z2);\n const S2 = mod(mod(Y2 * Z1) * Z1Z1);\n return U1 === U2 && S1 === S2;\n }\n negate() {\n return new JacobianPoint(this.x, mod(-this.y), this.z);\n }\n double() {\n const { x: X1, y: Y1, z: Z1 } = this;\n const A = mod(X1 * X1);\n const B = mod(Y1 * Y1);\n const C = mod(B * B);\n const x1b = X1 + B;\n const D = mod(_2n * (mod(x1b * x1b) - A - C));\n const E = mod(_3n * A);\n const F = mod(E * E);\n const X3 = mod(F - _2n * D);\n const Y3 = mod(E * (D - X3) - _8n * C);\n const Z3 = mod(_2n * Y1 * Z1);\n return new JacobianPoint(X3, Y3, Z3);\n }\n add(other) {\n assertJacPoint(other);\n const { x: X1, y: Y1, z: Z1 } = this;\n const { x: X2, y: Y2, z: Z2 } = other;\n if (X2 === _0n || Y2 === _0n)\n return this;\n if (X1 === _0n || Y1 === _0n)\n return other;\n const Z1Z1 = mod(Z1 * Z1);\n const Z2Z2 = mod(Z2 * Z2);\n const U1 = mod(X1 * Z2Z2);\n const U2 = mod(X2 * Z1Z1);\n const S1 = mod(mod(Y1 * Z2) * Z2Z2);\n const S2 = mod(mod(Y2 * Z1) * Z1Z1);\n const H = mod(U2 - U1);\n const r = mod(S2 - S1);\n if (H === _0n) {\n if (r === _0n) {\n return this.double();\n }\n else {\n return JacobianPoint.ZERO;\n }\n }\n const HH = mod(H * H);\n const HHH = mod(H * HH);\n const V = mod(U1 * HH);\n const X3 = mod(r * r - HHH - _2n * V);\n const Y3 = mod(r * (V - X3) - S1 * HHH);\n const Z3 = mod(Z1 * Z2 * H);\n return new JacobianPoint(X3, Y3, Z3);\n }\n subtract(other) {\n return this.add(other.negate());\n }\n multiplyUnsafe(scalar) {\n const P0 = JacobianPoint.ZERO;\n if (typeof scalar === 'bigint' && scalar === _0n)\n return P0;\n let n = normalizeScalar(scalar);\n if (n === _1n)\n return this;\n if (!USE_ENDOMORPHISM) {\n let p = P0;\n let d = this;\n while (n > _0n) {\n if (n & _1n)\n p = p.add(d);\n d = d.double();\n n >>= _1n;\n }\n return p;\n }\n let { k1neg, k1, k2neg, k2 } = endo.splitScalar(n);\n let k1p = P0;\n let k2p = P0;\n let d = this;\n while (k1 > _0n || k2 > _0n) {\n if (k1 & _1n)\n k1p = k1p.add(d);\n if (k2 & _1n)\n k2p = k2p.add(d);\n d = d.double();\n k1 >>= _1n;\n k2 >>= _1n;\n }\n if (k1neg)\n k1p = k1p.negate();\n if (k2neg)\n k2p = k2p.negate();\n k2p = new JacobianPoint(mod(k2p.x * endo.beta), k2p.y, k2p.z);\n return k1p.add(k2p);\n }\n precomputeWindow(W) {\n const windows = USE_ENDOMORPHISM ? 128 / W + 1 : 256 / W + 1;\n const points = [];\n let p = this;\n let base = p;\n for (let window = 0; window < windows; window++) {\n base = p;\n points.push(base);\n for (let i = 1; i < 2 ** (W - 1); i++) {\n base = base.add(p);\n points.push(base);\n }\n p = base.double();\n }\n return points;\n }\n wNAF(n, affinePoint) {\n if (!affinePoint && this.equals(JacobianPoint.BASE))\n affinePoint = Point.BASE;\n const W = (affinePoint && affinePoint._WINDOW_SIZE) || 1;\n if (256 % W) {\n throw new Error('Point#wNAF: Invalid precomputation window, must be power of 2');\n }\n let precomputes = affinePoint && pointPrecomputes.get(affinePoint);\n if (!precomputes) {\n precomputes = this.precomputeWindow(W);\n if (affinePoint && W !== 1) {\n precomputes = JacobianPoint.normalizeZ(precomputes);\n pointPrecomputes.set(affinePoint, precomputes);\n }\n }\n let p = JacobianPoint.ZERO;\n let f = JacobianPoint.BASE;\n const windows = 1 + (USE_ENDOMORPHISM ? 128 / W : 256 / W);\n const windowSize = 2 ** (W - 1);\n const mask = BigInt(2 ** W - 1);\n const maxNumber = 2 ** W;\n const shiftBy = BigInt(W);\n for (let window = 0; window < windows; window++) {\n const offset = window * windowSize;\n let wbits = Number(n & mask);\n n >>= shiftBy;\n if (wbits > windowSize) {\n wbits -= maxNumber;\n n += _1n;\n }\n const offset1 = offset;\n const offset2 = offset + Math.abs(wbits) - 1;\n const cond1 = window % 2 !== 0;\n const cond2 = wbits < 0;\n if (wbits === 0) {\n f = f.add(constTimeNegate(cond1, precomputes[offset1]));\n }\n else {\n p = p.add(constTimeNegate(cond2, precomputes[offset2]));\n }\n }\n return { p, f };\n }\n multiply(scalar, affinePoint) {\n let n = normalizeScalar(scalar);\n let point;\n let fake;\n if (USE_ENDOMORPHISM) {\n const { k1neg, k1, k2neg, k2 } = endo.splitScalar(n);\n let { p: k1p, f: f1p } = this.wNAF(k1, affinePoint);\n let { p: k2p, f: f2p } = this.wNAF(k2, affinePoint);\n k1p = constTimeNegate(k1neg, k1p);\n k2p = constTimeNegate(k2neg, k2p);\n k2p = new JacobianPoint(mod(k2p.x * endo.beta), k2p.y, k2p.z);\n point = k1p.add(k2p);\n fake = f1p.add(f2p);\n }\n else {\n const { p, f } = this.wNAF(n, affinePoint);\n point = p;\n fake = f;\n }\n return JacobianPoint.normalizeZ([point, fake])[0];\n }\n toAffine(invZ) {\n const { x, y, z } = this;\n const is0 = this.equals(JacobianPoint.ZERO);\n if (invZ == null)\n invZ = is0 ? _8n : invert(z);\n const iz1 = invZ;\n const iz2 = mod(iz1 * iz1);\n const iz3 = mod(iz2 * iz1);\n const ax = mod(x * iz2);\n const ay = mod(y * iz3);\n const zz = mod(z * iz1);\n if (is0)\n return Point.ZERO;\n if (zz !== _1n)\n throw new Error('invZ was invalid');\n return new Point(ax, ay);\n }\n}\nJacobianPoint.BASE = new JacobianPoint(CURVE.Gx, CURVE.Gy, _1n);\nJacobianPoint.ZERO = new JacobianPoint(_0n, _1n, _0n);\nfunction constTimeNegate(condition, item) {\n const neg = item.negate();\n return condition ? neg : item;\n}\nconst pointPrecomputes = new WeakMap();\nexport class Point {\n constructor(x, y) {\n this.x = x;\n this.y = y;\n }\n _setWindowSize(windowSize) {\n this._WINDOW_SIZE = windowSize;\n pointPrecomputes.delete(this);\n }\n hasEvenY() {\n return this.y % _2n === _0n;\n }\n static fromCompressedHex(bytes) {\n const isShort = bytes.length === 32;\n const x = bytesToNumber(isShort ? bytes : bytes.subarray(1));\n if (!isValidFieldElement(x))\n throw new Error('Point is not on curve');\n const y2 = weierstrass(x);\n let y = sqrtMod(y2);\n const isYOdd = (y & _1n) === _1n;\n if (isShort) {\n if (isYOdd)\n y = mod(-y);\n }\n else {\n const isFirstByteOdd = (bytes[0] & 1) === 1;\n if (isFirstByteOdd !== isYOdd)\n y = mod(-y);\n }\n const point = new Point(x, y);\n point.assertValidity();\n return point;\n }\n static fromUncompressedHex(bytes) {\n const x = bytesToNumber(bytes.subarray(1, fieldLen + 1));\n const y = bytesToNumber(bytes.subarray(fieldLen + 1, fieldLen * 2 + 1));\n const point = new Point(x, y);\n point.assertValidity();\n return point;\n }\n static fromHex(hex) {\n const bytes = ensureBytes(hex);\n const len = bytes.length;\n const header = bytes[0];\n if (len === fieldLen)\n return this.fromCompressedHex(bytes);\n if (len === compressedLen && (header === 0x02 || header === 0x03)) {\n return this.fromCompressedHex(bytes);\n }\n if (len === uncompressedLen && header === 0x04)\n return this.fromUncompressedHex(bytes);\n throw new Error(`Point.fromHex: received invalid point. Expected 32-${compressedLen} compressed bytes or ${uncompressedLen} uncompressed bytes, not ${len}`);\n }\n static fromPrivateKey(privateKey) {\n return Point.BASE.multiply(normalizePrivateKey(privateKey));\n }\n static fromSignature(msgHash, signature, recovery) {\n const { r, s } = normalizeSignature(signature);\n if (![0, 1, 2, 3].includes(recovery))\n throw new Error('Cannot recover: invalid recovery bit');\n const h = truncateHash(ensureBytes(msgHash));\n const { n } = CURVE;\n const radj = recovery === 2 || recovery === 3 ? r + n : r;\n const rinv = invert(radj, n);\n const u1 = mod(-h * rinv, n);\n const u2 = mod(s * rinv, n);\n const prefix = recovery & 1 ? '03' : '02';\n const R = Point.fromHex(prefix + numTo32bStr(radj));\n const Q = Point.BASE.multiplyAndAddUnsafe(R, u1, u2);\n if (!Q)\n throw new Error('Cannot recover signature: point at infinify');\n Q.assertValidity();\n return Q;\n }\n toRawBytes(isCompressed = false) {\n return hexToBytes(this.toHex(isCompressed));\n }\n toHex(isCompressed = false) {\n const x = numTo32bStr(this.x);\n if (isCompressed) {\n const prefix = this.hasEvenY() ? '02' : '03';\n return `${prefix}${x}`;\n }\n else {\n return `04${x}${numTo32bStr(this.y)}`;\n }\n }\n toHexX() {\n return this.toHex(true).slice(2);\n }\n toRawX() {\n return this.toRawBytes(true).slice(1);\n }\n assertValidity() {\n const msg = 'Point is not on elliptic curve';\n const { x, y } = this;\n if (!isValidFieldElement(x) || !isValidFieldElement(y))\n throw new Error(msg);\n const left = mod(y * y);\n const right = weierstrass(x);\n if (mod(left - right) !== _0n)\n throw new Error(msg);\n }\n equals(other) {\n return this.x === other.x && this.y === other.y;\n }\n negate() {\n return new Point(this.x, mod(-this.y));\n }\n double() {\n return JacobianPoint.fromAffine(this).double().toAffine();\n }\n add(other) {\n return JacobianPoint.fromAffine(this).add(JacobianPoint.fromAffine(other)).toAffine();\n }\n subtract(other) {\n return this.add(other.negate());\n }\n multiply(scalar) {\n return JacobianPoint.fromAffine(this).multiply(scalar, this).toAffine();\n }\n multiplyAndAddUnsafe(Q, a, b) {\n const P = JacobianPoint.fromAffine(this);\n const aP = a === _0n || a === _1n || this !== Point.BASE ? P.multiplyUnsafe(a) : P.multiply(a);\n const bQ = JacobianPoint.fromAffine(Q).multiplyUnsafe(b);\n const sum = aP.add(bQ);\n return sum.equals(JacobianPoint.ZERO) ? undefined : sum.toAffine();\n }\n}\nPoint.BASE = new Point(CURVE.Gx, CURVE.Gy);\nPoint.ZERO = new Point(_0n, _0n);\nfunction sliceDER(s) {\n return Number.parseInt(s[0], 16) >= 8 ? '00' + s : s;\n}\nfunction parseDERInt(data) {\n if (data.length < 2 || data[0] !== 0x02) {\n throw new Error(`Invalid signature integer tag: ${bytesToHex(data)}`);\n }\n const len = data[1];\n const res = data.subarray(2, len + 2);\n if (!len || res.length !== len) {\n throw new Error(`Invalid signature integer: wrong length`);\n }\n if (res[0] === 0x00 && res[1] <= 0x7f) {\n throw new Error('Invalid signature integer: trailing length');\n }\n return { data: bytesToNumber(res), left: data.subarray(len + 2) };\n}\nfunction parseDERSignature(data) {\n if (data.length < 2 || data[0] != 0x30) {\n throw new Error(`Invalid signature tag: ${bytesToHex(data)}`);\n }\n if (data[1] !== data.length - 2) {\n throw new Error('Invalid signature: incorrect length');\n }\n const { data: r, left: sBytes } = parseDERInt(data.subarray(2));\n const { data: s, left: rBytesLeft } = parseDERInt(sBytes);\n if (rBytesLeft.length) {\n throw new Error(`Invalid signature: left bytes after parsing: ${bytesToHex(rBytesLeft)}`);\n }\n return { r, s };\n}\nexport class Signature {\n constructor(r, s) {\n this.r = r;\n this.s = s;\n this.assertValidity();\n }\n static fromCompact(hex) {\n const arr = hex instanceof Uint8Array;\n const name = 'Signature.fromCompact';\n if (typeof hex !== 'string' && !arr)\n throw new TypeError(`${name}: Expected string or Uint8Array`);\n const str = arr ? bytesToHex(hex) : hex;\n if (str.length !== 128)\n throw new Error(`${name}: Expected 64-byte hex`);\n return new Signature(hexToNumber(str.slice(0, 64)), hexToNumber(str.slice(64, 128)));\n }\n static fromDER(hex) {\n const arr = hex instanceof Uint8Array;\n if (typeof hex !== 'string' && !arr)\n throw new TypeError(`Signature.fromDER: Expected string or Uint8Array`);\n const { r, s } = parseDERSignature(arr ? hex : hexToBytes(hex));\n return new Signature(r, s);\n }\n static fromHex(hex) {\n return this.fromDER(hex);\n }\n assertValidity() {\n const { r, s } = this;\n if (!isWithinCurveOrder(r))\n throw new Error('Invalid Signature: r must be 0 < r < n');\n if (!isWithinCurveOrder(s))\n throw new Error('Invalid Signature: s must be 0 < s < n');\n }\n hasHighS() {\n const HALF = CURVE.n >> _1n;\n return this.s > HALF;\n }\n normalizeS() {\n return this.hasHighS() ? new Signature(this.r, mod(-this.s, CURVE.n)) : this;\n }\n toDERRawBytes() {\n return hexToBytes(this.toDERHex());\n }\n toDERHex() {\n const sHex = sliceDER(numberToHexUnpadded(this.s));\n const rHex = sliceDER(numberToHexUnpadded(this.r));\n const sHexL = sHex.length / 2;\n const rHexL = rHex.length / 2;\n const sLen = numberToHexUnpadded(sHexL);\n const rLen = numberToHexUnpadded(rHexL);\n const length = numberToHexUnpadded(rHexL + sHexL + 4);\n return `30${length}02${rLen}${rHex}02${sLen}${sHex}`;\n }\n toRawBytes() {\n return this.toDERRawBytes();\n }\n toHex() {\n return this.toDERHex();\n }\n toCompactRawBytes() {\n return hexToBytes(this.toCompactHex());\n }\n toCompactHex() {\n return numTo32bStr(this.r) + numTo32bStr(this.s);\n }\n}\nfunction concatBytes(...arrays) {\n if (!arrays.every((b) => b instanceof Uint8Array))\n throw new Error('Uint8Array list expected');\n if (arrays.length === 1)\n return arrays[0];\n const length = arrays.reduce((a, arr) => a + arr.length, 0);\n const result = new Uint8Array(length);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const arr = arrays[i];\n result.set(arr, pad);\n pad += arr.length;\n }\n return result;\n}\nconst hexes = Array.from({ length: 256 }, (v, i) => i.toString(16).padStart(2, '0'));\nfunction bytesToHex(uint8a) {\n if (!(uint8a instanceof Uint8Array))\n throw new Error('Expected Uint8Array');\n let hex = '';\n for (let i = 0; i < uint8a.length; i++) {\n hex += hexes[uint8a[i]];\n }\n return hex;\n}\nconst POW_2_256 = BigInt('0x10000000000000000000000000000000000000000000000000000000000000000');\nfunction numTo32bStr(num) {\n if (typeof num !== 'bigint')\n throw new Error('Expected bigint');\n if (!(_0n <= num && num < POW_2_256))\n throw new Error('Expected number 0 <= n < 2^256');\n return num.toString(16).padStart(64, '0');\n}\nfunction numTo32b(num) {\n const b = hexToBytes(numTo32bStr(num));\n if (b.length !== 32)\n throw new Error('Error: expected 32 bytes');\n return b;\n}\nfunction numberToHexUnpadded(num) {\n const hex = num.toString(16);\n return hex.length & 1 ? `0${hex}` : hex;\n}\nfunction hexToNumber(hex) {\n if (typeof hex !== 'string') {\n throw new TypeError('hexToNumber: expected string, got ' + typeof hex);\n }\n return BigInt(`0x${hex}`);\n}\nfunction hexToBytes(hex) {\n if (typeof hex !== 'string') {\n throw new TypeError('hexToBytes: expected string, got ' + typeof hex);\n }\n if (hex.length % 2)\n throw new Error('hexToBytes: received invalid unpadded hex' + hex.length);\n const array = new Uint8Array(hex.length / 2);\n for (let i = 0; i < array.length; i++) {\n const j = i * 2;\n const hexByte = hex.slice(j, j + 2);\n const byte = Number.parseInt(hexByte, 16);\n if (Number.isNaN(byte) || byte < 0)\n throw new Error('Invalid byte sequence');\n array[i] = byte;\n }\n return array;\n}\nfunction bytesToNumber(bytes) {\n return hexToNumber(bytesToHex(bytes));\n}\nfunction ensureBytes(hex) {\n return hex instanceof Uint8Array ? Uint8Array.from(hex) : hexToBytes(hex);\n}\nfunction normalizeScalar(num) {\n if (typeof num === 'number' && Number.isSafeInteger(num) && num > 0)\n return BigInt(num);\n if (typeof num === 'bigint' && isWithinCurveOrder(num))\n return num;\n throw new TypeError('Expected valid private scalar: 0 < scalar < curve.n');\n}\nfunction mod(a, b = CURVE.P) {\n const result = a % b;\n return result >= _0n ? result : b + result;\n}\nfunction pow2(x, power) {\n const { P } = CURVE;\n let res = x;\n while (power-- > _0n) {\n res *= res;\n res %= P;\n }\n return res;\n}\nfunction sqrtMod(x) {\n const { P } = CURVE;\n const _6n = BigInt(6);\n const _11n = BigInt(11);\n const _22n = BigInt(22);\n const _23n = BigInt(23);\n const _44n = BigInt(44);\n const _88n = BigInt(88);\n const b2 = (x * x * x) % P;\n const b3 = (b2 * b2 * x) % P;\n const b6 = (pow2(b3, _3n) * b3) % P;\n const b9 = (pow2(b6, _3n) * b3) % P;\n const b11 = (pow2(b9, _2n) * b2) % P;\n const b22 = (pow2(b11, _11n) * b11) % P;\n const b44 = (pow2(b22, _22n) * b22) % P;\n const b88 = (pow2(b44, _44n) * b44) % P;\n const b176 = (pow2(b88, _88n) * b88) % P;\n const b220 = (pow2(b176, _44n) * b44) % P;\n const b223 = (pow2(b220, _3n) * b3) % P;\n const t1 = (pow2(b223, _23n) * b22) % P;\n const t2 = (pow2(t1, _6n) * b2) % P;\n const rt = pow2(t2, _2n);\n const xc = (rt * rt) % P;\n if (xc !== x)\n throw new Error('Cannot find square root');\n return rt;\n}\nfunction invert(number, modulo = CURVE.P) {\n if (number === _0n || modulo <= _0n) {\n throw new Error(`invert: expected positive integers, got n=${number} mod=${modulo}`);\n }\n let a = mod(number, modulo);\n let b = modulo;\n let x = _0n, y = _1n, u = _1n, v = _0n;\n while (a !== _0n) {\n const q = b / a;\n const r = b % a;\n const m = x - u * q;\n const n = y - v * q;\n b = a, a = r, x = u, y = v, u = m, v = n;\n }\n const gcd = b;\n if (gcd !== _1n)\n throw new Error('invert: does not exist');\n return mod(x, modulo);\n}\nfunction invertBatch(nums, p = CURVE.P) {\n const scratch = new Array(nums.length);\n const lastMultiplied = nums.reduce((acc, num, i) => {\n if (num === _0n)\n return acc;\n scratch[i] = acc;\n return mod(acc * num, p);\n }, _1n);\n const inverted = invert(lastMultiplied, p);\n nums.reduceRight((acc, num, i) => {\n if (num === _0n)\n return acc;\n scratch[i] = mod(acc * scratch[i], p);\n return mod(acc * num, p);\n }, inverted);\n return scratch;\n}\nfunction bits2int_2(bytes) {\n const delta = bytes.length * 8 - groupLen * 8;\n const num = bytesToNumber(bytes);\n return delta > 0 ? num >> BigInt(delta) : num;\n}\nfunction truncateHash(hash, truncateOnly = false) {\n const h = bits2int_2(hash);\n if (truncateOnly)\n return h;\n const { n } = CURVE;\n return h >= n ? h - n : h;\n}\nlet _sha256Sync;\nlet _hmacSha256Sync;\nclass HmacDrbg {\n constructor(hashLen, qByteLen) {\n this.hashLen = hashLen;\n this.qByteLen = qByteLen;\n if (typeof hashLen !== 'number' || hashLen < 2)\n throw new Error('hashLen must be a number');\n if (typeof qByteLen !== 'number' || qByteLen < 2)\n throw new Error('qByteLen must be a number');\n this.v = new Uint8Array(hashLen).fill(1);\n this.k = new Uint8Array(hashLen).fill(0);\n this.counter = 0;\n }\n hmac(...values) {\n return utils.hmacSha256(this.k, ...values);\n }\n hmacSync(...values) {\n return _hmacSha256Sync(this.k, ...values);\n }\n checkSync() {\n if (typeof _hmacSha256Sync !== 'function')\n throw new ShaError('hmacSha256Sync needs to be set');\n }\n incr() {\n if (this.counter >= 1000)\n throw new Error('Tried 1,000 k values for sign(), all were invalid');\n this.counter += 1;\n }\n async reseed(seed = new Uint8Array()) {\n this.k = await this.hmac(this.v, Uint8Array.from([0x00]), seed);\n this.v = await this.hmac(this.v);\n if (seed.length === 0)\n return;\n this.k = await this.hmac(this.v, Uint8Array.from([0x01]), seed);\n this.v = await this.hmac(this.v);\n }\n reseedSync(seed = new Uint8Array()) {\n this.checkSync();\n this.k = this.hmacSync(this.v, Uint8Array.from([0x00]), seed);\n this.v = this.hmacSync(this.v);\n if (seed.length === 0)\n return;\n this.k = this.hmacSync(this.v, Uint8Array.from([0x01]), seed);\n this.v = this.hmacSync(this.v);\n }\n async generate() {\n this.incr();\n let len = 0;\n const out = [];\n while (len < this.qByteLen) {\n this.v = await this.hmac(this.v);\n const sl = this.v.slice();\n out.push(sl);\n len += this.v.length;\n }\n return concatBytes(...out);\n }\n generateSync() {\n this.checkSync();\n this.incr();\n let len = 0;\n const out = [];\n while (len < this.qByteLen) {\n this.v = this.hmacSync(this.v);\n const sl = this.v.slice();\n out.push(sl);\n len += this.v.length;\n }\n return concatBytes(...out);\n }\n}\nfunction isWithinCurveOrder(num) {\n return _0n < num && num < CURVE.n;\n}\nfunction isValidFieldElement(num) {\n return _0n < num && num < CURVE.P;\n}\nfunction kmdToSig(kBytes, m, d, lowS = true) {\n const { n } = CURVE;\n const k = truncateHash(kBytes, true);\n if (!isWithinCurveOrder(k))\n return;\n const kinv = invert(k, n);\n const q = Point.BASE.multiply(k);\n const r = mod(q.x, n);\n if (r === _0n)\n return;\n const s = mod(kinv * mod(m + d * r, n), n);\n if (s === _0n)\n return;\n let sig = new Signature(r, s);\n let recovery = (q.x === sig.r ? 0 : 2) | Number(q.y & _1n);\n if (lowS && sig.hasHighS()) {\n sig = sig.normalizeS();\n recovery ^= 1;\n }\n return { sig, recovery };\n}\nfunction normalizePrivateKey(key) {\n let num;\n if (typeof key === 'bigint') {\n num = key;\n }\n else if (typeof key === 'number' && Number.isSafeInteger(key) && key > 0) {\n num = BigInt(key);\n }\n else if (typeof key === 'string') {\n if (key.length !== 2 * groupLen)\n throw new Error('Expected 32 bytes of private key');\n num = hexToNumber(key);\n }\n else if (key instanceof Uint8Array) {\n if (key.length !== groupLen)\n throw new Error('Expected 32 bytes of private key');\n num = bytesToNumber(key);\n }\n else {\n throw new TypeError('Expected valid private key');\n }\n if (!isWithinCurveOrder(num))\n throw new Error('Expected private key: 0 < key < n');\n return num;\n}\nfunction normalizePublicKey(publicKey) {\n if (publicKey instanceof Point) {\n publicKey.assertValidity();\n return publicKey;\n }\n else {\n return Point.fromHex(publicKey);\n }\n}\nfunction normalizeSignature(signature) {\n if (signature instanceof Signature) {\n signature.assertValidity();\n return signature;\n }\n try {\n return Signature.fromDER(signature);\n }\n catch (error) {\n return Signature.fromCompact(signature);\n }\n}\nexport function getPublicKey(privateKey, isCompressed = false) {\n return Point.fromPrivateKey(privateKey).toRawBytes(isCompressed);\n}\nexport function recoverPublicKey(msgHash, signature, recovery, isCompressed = false) {\n return Point.fromSignature(msgHash, signature, recovery).toRawBytes(isCompressed);\n}\nfunction isProbPub(item) {\n const arr = item instanceof Uint8Array;\n const str = typeof item === 'string';\n const len = (arr || str) && item.length;\n if (arr)\n return len === compressedLen || len === uncompressedLen;\n if (str)\n return len === compressedLen * 2 || len === uncompressedLen * 2;\n if (item instanceof Point)\n return true;\n return false;\n}\nexport function getSharedSecret(privateA, publicB, isCompressed = false) {\n if (isProbPub(privateA))\n throw new TypeError('getSharedSecret: first arg must be private key');\n if (!isProbPub(publicB))\n throw new TypeError('getSharedSecret: second arg must be public key');\n const b = normalizePublicKey(publicB);\n b.assertValidity();\n return b.multiply(normalizePrivateKey(privateA)).toRawBytes(isCompressed);\n}\nfunction bits2int(bytes) {\n const slice = bytes.length > fieldLen ? bytes.slice(0, fieldLen) : bytes;\n return bytesToNumber(slice);\n}\nfunction bits2octets(bytes) {\n const z1 = bits2int(bytes);\n const z2 = mod(z1, CURVE.n);\n return int2octets(z2 < _0n ? z1 : z2);\n}\nfunction int2octets(num) {\n return numTo32b(num);\n}\nfunction initSigArgs(msgHash, privateKey, extraEntropy) {\n if (msgHash == null)\n throw new Error(`sign: expected valid message hash, not \"${msgHash}\"`);\n const h1 = ensureBytes(msgHash);\n const d = normalizePrivateKey(privateKey);\n const seedArgs = [int2octets(d), bits2octets(h1)];\n if (extraEntropy != null) {\n if (extraEntropy === true)\n extraEntropy = utils.randomBytes(fieldLen);\n const e = ensureBytes(extraEntropy);\n if (e.length !== fieldLen)\n throw new Error(`sign: Expected ${fieldLen} bytes of extra data`);\n seedArgs.push(e);\n }\n const seed = concatBytes(...seedArgs);\n const m = bits2int(h1);\n return { seed, m, d };\n}\nfunction finalizeSig(recSig, opts) {\n const { sig, recovery } = recSig;\n const { der, recovered } = Object.assign({ canonical: true, der: true }, opts);\n const hashed = der ? sig.toDERRawBytes() : sig.toCompactRawBytes();\n return recovered ? [hashed, recovery] : hashed;\n}\nasync function sign(msgHash, privKey, opts = {}) {\n const { seed, m, d } = initSigArgs(msgHash, privKey, opts.extraEntropy);\n const drbg = new HmacDrbg(hashLen, groupLen);\n await drbg.reseed(seed);\n let sig;\n while (!(sig = kmdToSig(await drbg.generate(), m, d, opts.canonical)))\n await drbg.reseed();\n return finalizeSig(sig, opts);\n}\nfunction signSync(msgHash, privKey, opts = {}) {\n const { seed, m, d } = initSigArgs(msgHash, privKey, opts.extraEntropy);\n const drbg = new HmacDrbg(hashLen, groupLen);\n drbg.reseedSync(seed);\n let sig;\n while (!(sig = kmdToSig(drbg.generateSync(), m, d, opts.canonical)))\n drbg.reseedSync();\n return finalizeSig(sig, opts);\n}\nexport { sign, signSync };\nconst vopts = { strict: true };\nexport function verify(signature, msgHash, publicKey, opts = vopts) {\n let sig;\n try {\n sig = normalizeSignature(signature);\n msgHash = ensureBytes(msgHash);\n }\n catch (error) {\n return false;\n }\n const { r, s } = sig;\n if (opts.strict && sig.hasHighS())\n return false;\n const h = truncateHash(msgHash);\n let P;\n try {\n P = normalizePublicKey(publicKey);\n }\n catch (error) {\n return false;\n }\n const { n } = CURVE;\n const sinv = invert(s, n);\n const u1 = mod(h * sinv, n);\n const u2 = mod(r * sinv, n);\n const R = Point.BASE.multiplyAndAddUnsafe(P, u1, u2);\n if (!R)\n return false;\n const v = mod(R.x, n);\n return v === r;\n}\nfunction schnorrChallengeFinalize(ch) {\n return mod(bytesToNumber(ch), CURVE.n);\n}\nclass SchnorrSignature {\n constructor(r, s) {\n this.r = r;\n this.s = s;\n this.assertValidity();\n }\n static fromHex(hex) {\n const bytes = ensureBytes(hex);\n if (bytes.length !== 64)\n throw new TypeError(`SchnorrSignature.fromHex: expected 64 bytes, not ${bytes.length}`);\n const r = bytesToNumber(bytes.subarray(0, 32));\n const s = bytesToNumber(bytes.subarray(32, 64));\n return new SchnorrSignature(r, s);\n }\n assertValidity() {\n const { r, s } = this;\n if (!isValidFieldElement(r) || !isWithinCurveOrder(s))\n throw new Error('Invalid signature');\n }\n toHex() {\n return numTo32bStr(this.r) + numTo32bStr(this.s);\n }\n toRawBytes() {\n return hexToBytes(this.toHex());\n }\n}\nfunction schnorrGetPublicKey(privateKey) {\n return Point.fromPrivateKey(privateKey).toRawX();\n}\nclass InternalSchnorrSignature {\n constructor(message, privateKey, auxRand = utils.randomBytes()) {\n if (message == null)\n throw new TypeError(`sign: Expected valid message, not \"${message}\"`);\n this.m = ensureBytes(message);\n const { x, scalar } = this.getScalar(normalizePrivateKey(privateKey));\n this.px = x;\n this.d = scalar;\n this.rand = ensureBytes(auxRand);\n if (this.rand.length !== 32)\n throw new TypeError('sign: Expected 32 bytes of aux randomness');\n }\n getScalar(priv) {\n const point = Point.fromPrivateKey(priv);\n const scalar = point.hasEvenY() ? priv : CURVE.n - priv;\n return { point, scalar, x: point.toRawX() };\n }\n initNonce(d, t0h) {\n return numTo32b(d ^ bytesToNumber(t0h));\n }\n finalizeNonce(k0h) {\n const k0 = mod(bytesToNumber(k0h), CURVE.n);\n if (k0 === _0n)\n throw new Error('sign: Creation of signature failed. k is zero');\n const { point: R, x: rx, scalar: k } = this.getScalar(k0);\n return { R, rx, k };\n }\n finalizeSig(R, k, e, d) {\n return new SchnorrSignature(R.x, mod(k + e * d, CURVE.n)).toRawBytes();\n }\n error() {\n throw new Error('sign: Invalid signature produced');\n }\n async calc() {\n const { m, d, px, rand } = this;\n const tag = utils.taggedHash;\n const t = this.initNonce(d, await tag(TAGS.aux, rand));\n const { R, rx, k } = this.finalizeNonce(await tag(TAGS.nonce, t, px, m));\n const e = schnorrChallengeFinalize(await tag(TAGS.challenge, rx, px, m));\n const sig = this.finalizeSig(R, k, e, d);\n if (!(await schnorrVerify(sig, m, px)))\n this.error();\n return sig;\n }\n calcSync() {\n const { m, d, px, rand } = this;\n const tag = utils.taggedHashSync;\n const t = this.initNonce(d, tag(TAGS.aux, rand));\n const { R, rx, k } = this.finalizeNonce(tag(TAGS.nonce, t, px, m));\n const e = schnorrChallengeFinalize(tag(TAGS.challenge, rx, px, m));\n const sig = this.finalizeSig(R, k, e, d);\n if (!schnorrVerifySync(sig, m, px))\n this.error();\n return sig;\n }\n}\nasync function schnorrSign(msg, privKey, auxRand) {\n return new InternalSchnorrSignature(msg, privKey, auxRand).calc();\n}\nfunction schnorrSignSync(msg, privKey, auxRand) {\n return new InternalSchnorrSignature(msg, privKey, auxRand).calcSync();\n}\nfunction initSchnorrVerify(signature, message, publicKey) {\n const raw = signature instanceof SchnorrSignature;\n const sig = raw ? signature : SchnorrSignature.fromHex(signature);\n if (raw)\n sig.assertValidity();\n return {\n ...sig,\n m: ensureBytes(message),\n P: normalizePublicKey(publicKey),\n };\n}\nfunction finalizeSchnorrVerify(r, P, s, e) {\n const R = Point.BASE.multiplyAndAddUnsafe(P, normalizePrivateKey(s), mod(-e, CURVE.n));\n if (!R || !R.hasEvenY() || R.x !== r)\n return false;\n return true;\n}\nasync function schnorrVerify(signature, message, publicKey) {\n try {\n const { r, s, m, P } = initSchnorrVerify(signature, message, publicKey);\n const e = schnorrChallengeFinalize(await utils.taggedHash(TAGS.challenge, numTo32b(r), P.toRawX(), m));\n return finalizeSchnorrVerify(r, P, s, e);\n }\n catch (error) {\n return false;\n }\n}\nfunction schnorrVerifySync(signature, message, publicKey) {\n try {\n const { r, s, m, P } = initSchnorrVerify(signature, message, publicKey);\n const e = schnorrChallengeFinalize(utils.taggedHashSync(TAGS.challenge, numTo32b(r), P.toRawX(), m));\n return finalizeSchnorrVerify(r, P, s, e);\n }\n catch (error) {\n if (error instanceof ShaError)\n throw error;\n return false;\n }\n}\nexport const schnorr = {\n Signature: SchnorrSignature,\n getPublicKey: schnorrGetPublicKey,\n sign: schnorrSign,\n verify: schnorrVerify,\n signSync: schnorrSignSync,\n verifySync: schnorrVerifySync,\n};\nPoint.BASE._setWindowSize(8);\nconst crypto = {\n node: nodeCrypto,\n web: typeof self === 'object' && 'crypto' in self ? self.crypto : undefined,\n};\nconst TAGS = {\n challenge: 'BIP0340/challenge',\n aux: 'BIP0340/aux',\n nonce: 'BIP0340/nonce',\n};\nconst TAGGED_HASH_PREFIXES = {};\nexport const utils = {\n bytesToHex,\n hexToBytes,\n concatBytes,\n mod,\n invert,\n isValidPrivateKey(privateKey) {\n try {\n normalizePrivateKey(privateKey);\n return true;\n }\n catch (error) {\n return false;\n }\n },\n _bigintTo32Bytes: numTo32b,\n _normalizePrivateKey: normalizePrivateKey,\n hashToPrivateKey: (hash) => {\n hash = ensureBytes(hash);\n const minLen = groupLen + 8;\n if (hash.length < minLen || hash.length > 1024) {\n throw new Error(`Expected valid bytes of private key as per FIPS 186`);\n }\n const num = mod(bytesToNumber(hash), CURVE.n - _1n) + _1n;\n return numTo32b(num);\n },\n randomBytes: (bytesLength = 32) => {\n if (crypto.web) {\n return crypto.web.getRandomValues(new Uint8Array(bytesLength));\n }\n else if (crypto.node) {\n const { randomBytes } = crypto.node;\n return Uint8Array.from(randomBytes(bytesLength));\n }\n else {\n throw new Error(\"The environment doesn't have randomBytes function\");\n }\n },\n randomPrivateKey: () => utils.hashToPrivateKey(utils.randomBytes(groupLen + 8)),\n precompute(windowSize = 8, point = Point.BASE) {\n const cached = point === Point.BASE ? point : new Point(point.x, point.y);\n cached._setWindowSize(windowSize);\n cached.multiply(_3n);\n return cached;\n },\n sha256: async (...messages) => {\n if (crypto.web) {\n const buffer = await crypto.web.subtle.digest('SHA-256', concatBytes(...messages));\n return new Uint8Array(buffer);\n }\n else if (crypto.node) {\n const { createHash } = crypto.node;\n const hash = createHash('sha256');\n messages.forEach((m) => hash.update(m));\n return Uint8Array.from(hash.digest());\n }\n else {\n throw new Error(\"The environment doesn't have sha256 function\");\n }\n },\n hmacSha256: async (key, ...messages) => {\n if (crypto.web) {\n const ckey = await crypto.web.subtle.importKey('raw', key, { name: 'HMAC', hash: { name: 'SHA-256' } }, false, ['sign']);\n const message = concatBytes(...messages);\n const buffer = await crypto.web.subtle.sign('HMAC', ckey, message);\n return new Uint8Array(buffer);\n }\n else if (crypto.node) {\n const { createHmac } = crypto.node;\n const hash = createHmac('sha256', key);\n messages.forEach((m) => hash.update(m));\n return Uint8Array.from(hash.digest());\n }\n else {\n throw new Error(\"The environment doesn't have hmac-sha256 function\");\n }\n },\n sha256Sync: undefined,\n hmacSha256Sync: undefined,\n taggedHash: async (tag, ...messages) => {\n let tagP = TAGGED_HASH_PREFIXES[tag];\n if (tagP === undefined) {\n const tagH = await utils.sha256(Uint8Array.from(tag, (c) => c.charCodeAt(0)));\n tagP = concatBytes(tagH, tagH);\n TAGGED_HASH_PREFIXES[tag] = tagP;\n }\n return utils.sha256(tagP, ...messages);\n },\n taggedHashSync: (tag, ...messages) => {\n if (typeof _sha256Sync !== 'function')\n throw new ShaError('sha256Sync is undefined, you need to set it');\n let tagP = TAGGED_HASH_PREFIXES[tag];\n if (tagP === undefined) {\n const tagH = _sha256Sync(Uint8Array.from(tag, (c) => c.charCodeAt(0)));\n tagP = concatBytes(tagH, tagH);\n TAGGED_HASH_PREFIXES[tag] = tagP;\n }\n return _sha256Sync(tagP, ...messages);\n },\n _JacobianPoint: JacobianPoint,\n};\nObject.defineProperties(utils, {\n sha256Sync: {\n configurable: false,\n get() {\n return _sha256Sync;\n },\n set(val) {\n if (!_sha256Sync)\n _sha256Sync = val;\n },\n },\n hmacSha256Sync: {\n configurable: false,\n get() {\n return _hmacSha256Sync;\n },\n set(val) {\n if (!_hmacSha256Sync)\n _hmacSha256Sync = val;\n },\n },\n});\n","export const crypto = {\n node: undefined,\n web: typeof self === 'object' && 'crypto' in self ? self.crypto : undefined,\n};\n","/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// The import here is via the package name. This is to ensure\n// that exports mapping/resolution does fall into place.\nimport { crypto } from '@noble/hashes/crypto';\n// Cast array to different type\nexport const u8 = (arr) => new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\nexport const u32 = (arr) => new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\n// Cast array to view\nexport const createView = (arr) => new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n// The rotate right (circular right shift) operation for uint32\nexport const rotr = (word, shift) => (word << (32 - shift)) | (word >>> shift);\nexport const isLE = new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44;\n// There is almost no big endian hardware, but js typed arrays uses platform specific endianess.\n// So, just to be sure not to corrupt anything.\nif (!isLE)\n throw new Error('Non little-endian hardware is not supported');\nconst hexes = Array.from({ length: 256 }, (v, i) => i.toString(16).padStart(2, '0'));\n/**\n * @example bytesToHex(Uint8Array.from([0xde, 0xad, 0xbe, 0xef]))\n */\nexport function bytesToHex(uint8a) {\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < uint8a.length; i++) {\n hex += hexes[uint8a[i]];\n }\n return hex;\n}\n/**\n * @example hexToBytes('deadbeef')\n */\nexport function hexToBytes(hex) {\n if (typeof hex !== 'string') {\n throw new TypeError('hexToBytes: expected string, got ' + typeof hex);\n }\n if (hex.length % 2)\n throw new Error('hexToBytes: received invalid unpadded hex');\n const array = new Uint8Array(hex.length / 2);\n for (let i = 0; i < array.length; i++) {\n const j = i * 2;\n const hexByte = hex.slice(j, j + 2);\n const byte = Number.parseInt(hexByte, 16);\n if (Number.isNaN(byte))\n throw new Error('Invalid byte sequence');\n array[i] = byte;\n }\n return array;\n}\n// Currently avoid insertion of polyfills with packers (browserify/webpack/etc)\n// But setTimeout is pretty slow, maybe worth to investigate howto do minimal polyfill here\nexport const nextTick = (() => {\n const nodeRequire = typeof module !== 'undefined' &&\n typeof module.require === 'function' &&\n module.require.bind(module);\n try {\n if (nodeRequire) {\n const { setImmediate } = nodeRequire('timers');\n return () => new Promise((resolve) => setImmediate(resolve));\n }\n }\n catch (e) { }\n return () => new Promise((resolve) => setTimeout(resolve, 0));\n})();\n// Returns control to thread each 'tick' ms to avoid blocking\nexport async function asyncLoop(iters, tick, cb) {\n let ts = Date.now();\n for (let i = 0; i < iters; i++) {\n cb(i);\n // Date.now() is not monotonic, so in case if clock goes backwards we return return control too\n const diff = Date.now() - ts;\n if (diff >= 0 && diff < tick)\n continue;\n await nextTick();\n ts += diff;\n }\n}\nexport function utf8ToBytes(str) {\n if (typeof str !== 'string') {\n throw new TypeError(`utf8ToBytes expected string, got ${typeof str}`);\n }\n return new TextEncoder().encode(str);\n}\nexport function toBytes(data) {\n if (typeof data === 'string')\n data = utf8ToBytes(data);\n if (!(data instanceof Uint8Array))\n throw new TypeError(`Expected input type is Uint8Array (got ${typeof data})`);\n return data;\n}\n/**\n * Concats Uint8Array-s into one; like `Buffer.concat([buf1, buf2])`\n * @example concatBytes(buf1, buf2)\n */\nexport function concatBytes(...arrays) {\n if (!arrays.every((a) => a instanceof Uint8Array))\n throw new Error('Uint8Array list expected');\n if (arrays.length === 1)\n return arrays[0];\n const length = arrays.reduce((a, arr) => a + arr.length, 0);\n const result = new Uint8Array(length);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const arr = arrays[i];\n result.set(arr, pad);\n pad += arr.length;\n }\n return result;\n}\nexport function assertNumber(n) {\n if (!Number.isSafeInteger(n) || n < 0)\n throw new Error(`Wrong positive integer: ${n}`);\n}\nexport function assertBool(b) {\n if (typeof b !== 'boolean') {\n throw new Error(`Expected boolean, not ${b}`);\n }\n}\nexport function assertBytes(bytes, ...lengths) {\n if (bytes instanceof Uint8Array && (!lengths.length || lengths.includes(bytes.length))) {\n return;\n }\n throw new TypeError(`Expected ${lengths} bytes, not ${typeof bytes} with length=${bytes.length}`);\n}\nexport function assertHash(hash) {\n if (typeof hash !== 'function' || typeof hash.create !== 'function')\n throw new Error('Hash should be wrapped by utils.wrapConstructor');\n assertNumber(hash.outputLen);\n assertNumber(hash.blockLen);\n}\n// For runtime check if class implements interface\nexport class Hash {\n // Safe version that clones internal state\n clone() {\n return this._cloneInto();\n }\n}\n// Check if object doens't have custom constructor (like Uint8Array/Array)\nconst isPlainObject = (obj) => Object.prototype.toString.call(obj) === '[object Object]' && obj.constructor === Object;\nexport function checkOpts(def, _opts) {\n if (_opts !== undefined && (typeof _opts !== 'object' || !isPlainObject(_opts)))\n throw new TypeError('Options should be object or undefined');\n const opts = Object.assign(def, _opts);\n return opts;\n}\nexport function wrapConstructor(hashConstructor) {\n const hashC = (message) => hashConstructor().update(toBytes(message)).digest();\n const tmp = hashConstructor();\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = () => hashConstructor();\n return hashC;\n}\nexport function wrapConstructorWithOpts(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\n/**\n * Secure PRNG\n */\nexport function randomBytes(bytesLength = 32) {\n if (crypto.web) {\n return crypto.web.getRandomValues(new Uint8Array(bytesLength));\n }\n else if (crypto.node) {\n return new Uint8Array(crypto.node.randomBytes(bytesLength).buffer);\n }\n else {\n throw new Error(\"The environment doesn't have randomBytes function\");\n }\n}\n","import { Hash, createView, toBytes } from './utils.js';\n// Polyfill for Safari 14\nfunction setBigUint64(view, byteOffset, value, isLE) {\n if (typeof view.setBigUint64 === 'function')\n return view.setBigUint64(byteOffset, value, isLE);\n const _32n = BigInt(32);\n const _u32_max = BigInt(0xffffffff);\n const wh = Number((value >> _32n) & _u32_max);\n const wl = Number(value & _u32_max);\n const h = isLE ? 4 : 0;\n const l = isLE ? 0 : 4;\n view.setUint32(byteOffset + h, wh, isLE);\n view.setUint32(byteOffset + l, wl, isLE);\n}\n// Base SHA2 class (RFC 6234)\nexport class SHA2 extends Hash {\n constructor(blockLen, outputLen, padOffset, isLE) {\n super();\n this.blockLen = blockLen;\n this.outputLen = outputLen;\n this.padOffset = padOffset;\n this.isLE = isLE;\n this.finished = false;\n this.length = 0;\n this.pos = 0;\n this.destroyed = false;\n this.buffer = new Uint8Array(blockLen);\n this.view = createView(this.buffer);\n }\n update(data) {\n if (this.destroyed)\n throw new Error('instance is destroyed');\n const { view, buffer, blockLen, finished } = this;\n if (finished)\n throw new Error('digest() was already called');\n data = toBytes(data);\n const len = data.length;\n for (let pos = 0; pos < len;) {\n const take = Math.min(blockLen - this.pos, len - pos);\n // Fast path: we have at least one block in input, cast it to view and process\n if (take === blockLen) {\n const dataView = createView(data);\n for (; blockLen <= len - pos; pos += blockLen)\n this.process(dataView, pos);\n continue;\n }\n buffer.set(data.subarray(pos, pos + take), this.pos);\n this.pos += take;\n pos += take;\n if (this.pos === blockLen) {\n this.process(view, 0);\n this.pos = 0;\n }\n }\n this.length += data.length;\n this.roundClean();\n return this;\n }\n digestInto(out) {\n if (this.destroyed)\n throw new Error('instance is destroyed');\n if (!(out instanceof Uint8Array) || out.length < this.outputLen)\n throw new Error('_Sha2: Invalid output buffer');\n if (this.finished)\n throw new Error('digest() was already called');\n this.finished = true;\n // Padding\n // We can avoid allocation of buffer for padding completely if it\n // was previously not allocated here. But it won't change performance.\n const { buffer, view, blockLen, isLE } = this;\n let { pos } = this;\n // append the bit '1' to the message\n buffer[pos++] = 0b10000000;\n this.buffer.subarray(pos).fill(0);\n // we have less than padOffset left in buffer, so we cannot put length in current block, need process it and pad again\n if (this.padOffset > blockLen - pos) {\n this.process(view, 0);\n pos = 0;\n }\n // Pad until full block byte with zeros\n for (let i = pos; i < blockLen; i++)\n buffer[i] = 0;\n // NOTE: sha512 requires length to be 128bit integer, but length in JS will overflow before that\n // You need to write around 2 exabytes (u64_max / 8 / (1024**6)) for this to happen.\n // So we just write lowest 64bit of that value.\n setBigUint64(view, blockLen - 8, BigInt(this.length * 8), isLE);\n this.process(view, 0);\n const oview = createView(out);\n this.get().forEach((v, i) => oview.setUint32(4 * i, v, isLE));\n }\n digest() {\n const { buffer, outputLen } = this;\n this.digestInto(buffer);\n const res = buffer.slice(0, outputLen);\n this.destroy();\n return res;\n }\n _cloneInto(to) {\n to || (to = new this.constructor());\n to.set(...this.get());\n const { blockLen, buffer, length, finished, destroyed, pos } = this;\n to.length = length;\n to.pos = pos;\n to.finished = finished;\n to.destroyed = destroyed;\n if (length % blockLen)\n to.buffer.set(buffer);\n return to;\n }\n}\n","import { SHA2 } from './_sha2.js';\nimport { rotr, wrapConstructor } from './utils.js';\n// Choice: a ? b : c\nconst Chi = (a, b, c) => (a & b) ^ (~a & c);\n// Majority function, true if any two inpust is true\nconst Maj = (a, b, c) => (a & b) ^ (a & c) ^ (b & c);\n// Round constants:\n// first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311)\n// prettier-ignore\nconst SHA256_K = new Uint32Array([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n]);\n// Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):\n// prettier-ignore\nconst IV = new Uint32Array([\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n]);\n// Temporary buffer, not used to store anything between runs\n// Named this way because it matches specification.\nconst SHA256_W = new Uint32Array(64);\nclass SHA256 extends SHA2 {\n constructor() {\n super(64, 32, 8, false);\n // We cannot use array here since array allows indexing by variable\n // which means optimizer/compiler cannot use registers.\n this.A = IV[0] | 0;\n this.B = IV[1] | 0;\n this.C = IV[2] | 0;\n this.D = IV[3] | 0;\n this.E = IV[4] | 0;\n this.F = IV[5] | 0;\n this.G = IV[6] | 0;\n this.H = IV[7] | 0;\n }\n get() {\n const { A, B, C, D, E, F, G, H } = this;\n return [A, B, C, D, E, F, G, H];\n }\n // prettier-ignore\n set(A, B, C, D, E, F, G, H) {\n this.A = A | 0;\n this.B = B | 0;\n this.C = C | 0;\n this.D = D | 0;\n this.E = E | 0;\n this.F = F | 0;\n this.G = G | 0;\n this.H = H | 0;\n }\n process(view, offset) {\n // Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4)\n SHA256_W[i] = view.getUint32(offset, false);\n for (let i = 16; i < 64; i++) {\n const W15 = SHA256_W[i - 15];\n const W2 = SHA256_W[i - 2];\n const s0 = rotr(W15, 7) ^ rotr(W15, 18) ^ (W15 >>> 3);\n const s1 = rotr(W2, 17) ^ rotr(W2, 19) ^ (W2 >>> 10);\n SHA256_W[i] = (s1 + SHA256_W[i - 7] + s0 + SHA256_W[i - 16]) | 0;\n }\n // Compression function main loop, 64 rounds\n let { A, B, C, D, E, F, G, H } = this;\n for (let i = 0; i < 64; i++) {\n const sigma1 = rotr(E, 6) ^ rotr(E, 11) ^ rotr(E, 25);\n const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const sigma0 = rotr(A, 2) ^ rotr(A, 13) ^ rotr(A, 22);\n const T2 = (sigma0 + Maj(A, B, C)) | 0;\n H = G;\n G = F;\n F = E;\n E = (D + T1) | 0;\n D = C;\n C = B;\n B = A;\n A = (T1 + T2) | 0;\n }\n // Add the compressed chunk to the current hash value\n A = (A + this.A) | 0;\n B = (B + this.B) | 0;\n C = (C + this.C) | 0;\n D = (D + this.D) | 0;\n E = (E + this.E) | 0;\n F = (F + this.F) | 0;\n G = (G + this.G) | 0;\n H = (H + this.H) | 0;\n this.set(A, B, C, D, E, F, G, H);\n }\n roundClean() {\n SHA256_W.fill(0);\n }\n destroy() {\n this.set(0, 0, 0, 0, 0, 0, 0, 0);\n this.buffer.fill(0);\n }\n}\n/**\n * SHA2-256 hash function\n * @param message - data that would be hashed\n */\nexport const sha256 = wrapConstructor(() => new SHA256());\n","/*! scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nexport function assertNumber(n) {\n if (!Number.isSafeInteger(n))\n throw new Error(`Wrong integer: ${n}`);\n}\nfunction chain(...args) {\n const wrap = (a, b) => (c) => a(b(c));\n const encode = Array.from(args)\n .reverse()\n .reduce((acc, i) => (acc ? wrap(acc, i.encode) : i.encode), undefined);\n const decode = args.reduce((acc, i) => (acc ? wrap(acc, i.decode) : i.decode), undefined);\n return { encode, decode };\n}\nfunction alphabet(alphabet) {\n return {\n encode: (digits) => {\n if (!Array.isArray(digits) || (digits.length && typeof digits[0] !== 'number'))\n throw new Error('alphabet.encode input should be an array of numbers');\n return digits.map((i) => {\n assertNumber(i);\n if (i < 0 || i >= alphabet.length)\n throw new Error(`Digit index outside alphabet: ${i} (alphabet: ${alphabet.length})`);\n return alphabet[i];\n });\n },\n decode: (input) => {\n if (!Array.isArray(input) || (input.length && typeof input[0] !== 'string'))\n throw new Error('alphabet.decode input should be array of strings');\n return input.map((letter) => {\n if (typeof letter !== 'string')\n throw new Error(`alphabet.decode: not string element=${letter}`);\n const index = alphabet.indexOf(letter);\n if (index === -1)\n throw new Error(`Unknown letter: \"${letter}\". Allowed: ${alphabet}`);\n return index;\n });\n },\n };\n}\nfunction join(separator = '') {\n if (typeof separator !== 'string')\n throw new Error('join separator should be string');\n return {\n encode: (from) => {\n if (!Array.isArray(from) || (from.length && typeof from[0] !== 'string'))\n throw new Error('join.encode input should be array of strings');\n for (let i of from)\n if (typeof i !== 'string')\n throw new Error(`join.encode: non-string input=${i}`);\n return from.join(separator);\n },\n decode: (to) => {\n if (typeof to !== 'string')\n throw new Error('join.decode input should be string');\n return to.split(separator);\n },\n };\n}\nfunction padding(bits, chr = '=') {\n assertNumber(bits);\n if (typeof chr !== 'string')\n throw new Error('padding chr should be string');\n return {\n encode(data) {\n if (!Array.isArray(data) || (data.length && typeof data[0] !== 'string'))\n throw new Error('padding.encode input should be array of strings');\n for (let i of data)\n if (typeof i !== 'string')\n throw new Error(`padding.encode: non-string input=${i}`);\n while ((data.length * bits) % 8)\n data.push(chr);\n return data;\n },\n decode(input) {\n if (!Array.isArray(input) || (input.length && typeof input[0] !== 'string'))\n throw new Error('padding.encode input should be array of strings');\n for (let i of input)\n if (typeof i !== 'string')\n throw new Error(`padding.decode: non-string input=${i}`);\n let end = input.length;\n if ((end * bits) % 8)\n throw new Error('Invalid padding: string should have whole number of bytes');\n for (; end > 0 && input[end - 1] === chr; end--) {\n if (!(((end - 1) * bits) % 8))\n throw new Error('Invalid padding: string has too much padding');\n }\n return input.slice(0, end);\n },\n };\n}\nfunction normalize(fn) {\n if (typeof fn !== 'function')\n throw new Error('normalize fn should be function');\n return { encode: (from) => from, decode: (to) => fn(to) };\n}\nfunction convertRadix(data, from, to) {\n if (from < 2)\n throw new Error(`convertRadix: wrong from=${from}, base cannot be less than 2`);\n if (to < 2)\n throw new Error(`convertRadix: wrong to=${to}, base cannot be less than 2`);\n if (!Array.isArray(data))\n throw new Error('convertRadix: data should be array');\n if (!data.length)\n return [];\n let pos = 0;\n const res = [];\n const digits = Array.from(data);\n digits.forEach((d) => {\n assertNumber(d);\n if (d < 0 || d >= from)\n throw new Error(`Wrong integer: ${d}`);\n });\n while (true) {\n let carry = 0;\n let done = true;\n for (let i = pos; i < digits.length; i++) {\n const digit = digits[i];\n const digitBase = from * carry + digit;\n if (!Number.isSafeInteger(digitBase) ||\n (from * carry) / from !== carry ||\n digitBase - digit !== from * carry) {\n throw new Error('convertRadix: carry overflow');\n }\n carry = digitBase % to;\n digits[i] = Math.floor(digitBase / to);\n if (!Number.isSafeInteger(digits[i]) || digits[i] * to + carry !== digitBase)\n throw new Error('convertRadix: carry overflow');\n if (!done)\n continue;\n else if (!digits[i])\n pos = i;\n else\n done = false;\n }\n res.push(carry);\n if (done)\n break;\n }\n for (let i = 0; i < data.length - 1 && data[i] === 0; i++)\n res.push(0);\n return res.reverse();\n}\nconst gcd = (a, b) => (!b ? a : gcd(b, a % b));\nconst radix2carry = (from, to) => from + (to - gcd(from, to));\nfunction convertRadix2(data, from, to, padding) {\n if (!Array.isArray(data))\n throw new Error('convertRadix2: data should be array');\n if (from <= 0 || from > 32)\n throw new Error(`convertRadix2: wrong from=${from}`);\n if (to <= 0 || to > 32)\n throw new Error(`convertRadix2: wrong to=${to}`);\n if (radix2carry(from, to) > 32) {\n throw new Error(`convertRadix2: carry overflow from=${from} to=${to} carryBits=${radix2carry(from, to)}`);\n }\n let carry = 0;\n let pos = 0;\n const mask = 2 ** to - 1;\n const res = [];\n for (const n of data) {\n assertNumber(n);\n if (n >= 2 ** from)\n throw new Error(`convertRadix2: invalid data word=${n} from=${from}`);\n carry = (carry << from) | n;\n if (pos + from > 32)\n throw new Error(`convertRadix2: carry overflow pos=${pos} from=${from}`);\n pos += from;\n for (; pos >= to; pos -= to)\n res.push(((carry >> (pos - to)) & mask) >>> 0);\n carry &= 2 ** pos - 1;\n }\n carry = (carry << (to - pos)) & mask;\n if (!padding && pos >= from)\n throw new Error('Excess padding');\n if (!padding && carry)\n throw new Error(`Non-zero padding: ${carry}`);\n if (padding && pos > 0)\n res.push(carry >>> 0);\n return res;\n}\nfunction radix(num) {\n assertNumber(num);\n return {\n encode: (bytes) => {\n if (!(bytes instanceof Uint8Array))\n throw new Error('radix.encode input should be Uint8Array');\n return convertRadix(Array.from(bytes), 2 ** 8, num);\n },\n decode: (digits) => {\n if (!Array.isArray(digits) || (digits.length && typeof digits[0] !== 'number'))\n throw new Error('radix.decode input should be array of strings');\n return Uint8Array.from(convertRadix(digits, num, 2 ** 8));\n },\n };\n}\nfunction radix2(bits, revPadding = false) {\n assertNumber(bits);\n if (bits <= 0 || bits > 32)\n throw new Error('radix2: bits should be in (0..32]');\n if (radix2carry(8, bits) > 32 || radix2carry(bits, 8) > 32)\n throw new Error('radix2: carry overflow');\n return {\n encode: (bytes) => {\n if (!(bytes instanceof Uint8Array))\n throw new Error('radix2.encode input should be Uint8Array');\n return convertRadix2(Array.from(bytes), 8, bits, !revPadding);\n },\n decode: (digits) => {\n if (!Array.isArray(digits) || (digits.length && typeof digits[0] !== 'number'))\n throw new Error('radix2.decode input should be array of strings');\n return Uint8Array.from(convertRadix2(digits, bits, 8, revPadding));\n },\n };\n}\nfunction unsafeWrapper(fn) {\n if (typeof fn !== 'function')\n throw new Error('unsafeWrapper fn should be function');\n return function (...args) {\n try {\n return fn.apply(null, args);\n }\n catch (e) { }\n };\n}\nfunction checksum(len, fn) {\n assertNumber(len);\n if (typeof fn !== 'function')\n throw new Error('checksum fn should be function');\n return {\n encode(data) {\n if (!(data instanceof Uint8Array))\n throw new Error('checksum.encode: input should be Uint8Array');\n const checksum = fn(data).slice(0, len);\n const res = new Uint8Array(data.length + len);\n res.set(data);\n res.set(checksum, data.length);\n return res;\n },\n decode(data) {\n if (!(data instanceof Uint8Array))\n throw new Error('checksum.decode: input should be Uint8Array');\n const payload = data.slice(0, -len);\n const newChecksum = fn(payload).slice(0, len);\n const oldChecksum = data.slice(-len);\n for (let i = 0; i < len; i++)\n if (newChecksum[i] !== oldChecksum[i])\n throw new Error('Invalid checksum');\n return payload;\n },\n };\n}\nexport const utils = { alphabet, chain, checksum, radix, radix2, join, padding };\nexport const base16 = chain(radix2(4), alphabet('0123456789ABCDEF'), join(''));\nexport const base32 = chain(radix2(5), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZ234567'), padding(5), join(''));\nexport const base32hex = chain(radix2(5), alphabet('0123456789ABCDEFGHIJKLMNOPQRSTUV'), padding(5), join(''));\nexport const base32crockford = chain(radix2(5), alphabet('0123456789ABCDEFGHJKMNPQRSTVWXYZ'), join(''), normalize((s) => s.toUpperCase().replace(/O/g, '0').replace(/[IL]/g, '1')));\nexport const base64 = chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'), padding(6), join(''));\nexport const base64url = chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_'), padding(6), join(''));\nconst genBase58 = (abc) => chain(radix(58), alphabet(abc), join(''));\nexport const base58 = genBase58('123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz');\nexport const base58flickr = genBase58('123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ');\nexport const base58xrp = genBase58('rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz');\nconst XMR_BLOCK_LEN = [0, 2, 3, 5, 6, 7, 9, 10, 11];\nexport const base58xmr = {\n encode(data) {\n let res = '';\n for (let i = 0; i < data.length; i += 8) {\n const block = data.subarray(i, i + 8);\n res += base58.encode(block).padStart(XMR_BLOCK_LEN[block.length], '1');\n }\n return res;\n },\n decode(str) {\n let res = [];\n for (let i = 0; i < str.length; i += 11) {\n const slice = str.slice(i, i + 11);\n const blockLen = XMR_BLOCK_LEN.indexOf(slice.length);\n const block = base58.decode(slice);\n for (let j = 0; j < block.length - blockLen; j++) {\n if (block[j] !== 0)\n throw new Error('base58xmr: wrong padding');\n }\n res = res.concat(Array.from(block.slice(block.length - blockLen)));\n }\n return Uint8Array.from(res);\n },\n};\nexport const base58check = (sha256) => chain(checksum(4, (data) => sha256(sha256(data))), base58);\nconst BECH_ALPHABET = chain(alphabet('qpzry9x8gf2tvdw0s3jn54khce6mua7l'), join(''));\nconst POLYMOD_GENERATORS = [0x3b6a57b2, 0x26508e6d, 0x1ea119fa, 0x3d4233dd, 0x2a1462b3];\nfunction bech32Polymod(pre) {\n const b = pre >> 25;\n let chk = (pre & 0x1ffffff) << 5;\n for (let i = 0; i < POLYMOD_GENERATORS.length; i++) {\n if (((b >> i) & 1) === 1)\n chk ^= POLYMOD_GENERATORS[i];\n }\n return chk;\n}\nfunction bechChecksum(prefix, words, encodingConst = 1) {\n const len = prefix.length;\n let chk = 1;\n for (let i = 0; i < len; i++) {\n const c = prefix.charCodeAt(i);\n if (c < 33 || c > 126)\n throw new Error(`Invalid prefix (${prefix})`);\n chk = bech32Polymod(chk) ^ (c >> 5);\n }\n chk = bech32Polymod(chk);\n for (let i = 0; i < len; i++)\n chk = bech32Polymod(chk) ^ (prefix.charCodeAt(i) & 0x1f);\n for (let v of words)\n chk = bech32Polymod(chk) ^ v;\n for (let i = 0; i < 6; i++)\n chk = bech32Polymod(chk);\n chk ^= encodingConst;\n return BECH_ALPHABET.encode(convertRadix2([chk % 2 ** 30], 30, 5, false));\n}\nfunction genBech32(encoding) {\n const ENCODING_CONST = encoding === 'bech32' ? 1 : 0x2bc830a3;\n const _words = radix2(5);\n const fromWords = _words.decode;\n const toWords = _words.encode;\n const fromWordsUnsafe = unsafeWrapper(fromWords);\n function encode(prefix, words, limit = 90) {\n if (typeof prefix !== 'string')\n throw new Error(`bech32.encode prefix should be string, not ${typeof prefix}`);\n if (!Array.isArray(words) || (words.length && typeof words[0] !== 'number'))\n throw new Error(`bech32.encode words should be array of numbers, not ${typeof words}`);\n const actualLength = prefix.length + 7 + words.length;\n if (limit !== false && actualLength > limit)\n throw new TypeError(`Length ${actualLength} exceeds limit ${limit}`);\n prefix = prefix.toLowerCase();\n return `${prefix}1${BECH_ALPHABET.encode(words)}${bechChecksum(prefix, words, ENCODING_CONST)}`;\n }\n function decode(str, limit = 90) {\n if (typeof str !== 'string')\n throw new Error(`bech32.decode input should be string, not ${typeof str}`);\n if (str.length < 8 || (limit !== false && str.length > limit))\n throw new TypeError(`Wrong string length: ${str.length} (${str}). Expected (8..${limit})`);\n const lowered = str.toLowerCase();\n if (str !== lowered && str !== str.toUpperCase())\n throw new Error(`String must be lowercase or uppercase`);\n str = lowered;\n const sepIndex = str.lastIndexOf('1');\n if (sepIndex === 0 || sepIndex === -1)\n throw new Error(`Letter \"1\" must be present between prefix and data only`);\n const prefix = str.slice(0, sepIndex);\n const _words = str.slice(sepIndex + 1);\n if (_words.length < 6)\n throw new Error('Data must be at least 6 characters long');\n const words = BECH_ALPHABET.decode(_words).slice(0, -6);\n const sum = bechChecksum(prefix, words, ENCODING_CONST);\n if (!_words.endsWith(sum))\n throw new Error(`Invalid checksum in ${str}: expected \"${sum}\"`);\n return { prefix, words };\n }\n const decodeUnsafe = unsafeWrapper(decode);\n function decodeToBytes(str) {\n const { prefix, words } = decode(str, false);\n return { prefix, words, bytes: fromWords(words) };\n }\n return { encode, decode, decodeToBytes, decodeUnsafe, fromWords, fromWordsUnsafe, toWords };\n}\nexport const bech32 = genBech32('bech32');\nexport const bech32m = genBech32('bech32m');\nexport const utf8 = {\n encode: (data) => new TextDecoder().decode(data),\n decode: (str) => new TextEncoder().encode(str),\n};\nexport const hex = chain(radix2(4), alphabet('0123456789abcdef'), join(''), normalize((s) => {\n if (typeof s !== 'string' || s.length % 2)\n throw new TypeError(`hex.decode: expected string, got ${typeof s} with length ${s.length}`);\n return s.toLowerCase();\n}));\nconst CODERS = {\n utf8, hex, base16, base32, base64, base64url, base58, base58xmr\n};\nconst coderTypeError = `Invalid encoding type. Available types: ${Object.keys(CODERS).join(', ')}`;\nexport const bytesToString = (type, bytes) => {\n if (typeof type !== 'string' || !CODERS.hasOwnProperty(type))\n throw new TypeError(coderTypeError);\n if (!(bytes instanceof Uint8Array))\n throw new TypeError('bytesToString() expects Uint8Array');\n return CODERS[type].encode(bytes);\n};\nexport const str = bytesToString;\nexport const stringToBytes = (type, str) => {\n if (!CODERS.hasOwnProperty(type))\n throw new TypeError(coderTypeError);\n if (typeof str !== 'string')\n throw new TypeError('stringToBytes() expects string');\n return CODERS[type].decode(str);\n};\nexport const bytes = stringToBytes;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.wordlist = void 0;\nexports.wordlist = `abandon\nability\nable\nabout\nabove\nabsent\nabsorb\nabstract\nabsurd\nabuse\naccess\naccident\naccount\naccuse\nachieve\nacid\nacoustic\nacquire\nacross\nact\naction\nactor\nactress\nactual\nadapt\nadd\naddict\naddress\nadjust\nadmit\nadult\nadvance\nadvice\naerobic\naffair\nafford\nafraid\nagain\nage\nagent\nagree\nahead\naim\nair\nairport\naisle\nalarm\nalbum\nalcohol\nalert\nalien\nall\nalley\nallow\nalmost\nalone\nalpha\nalready\nalso\nalter\nalways\namateur\namazing\namong\namount\namused\nanalyst\nanchor\nancient\nanger\nangle\nangry\nanimal\nankle\nannounce\nannual\nanother\nanswer\nantenna\nantique\nanxiety\nany\napart\napology\nappear\napple\napprove\napril\narch\narctic\narea\narena\nargue\narm\narmed\narmor\narmy\naround\narrange\narrest\narrive\narrow\nart\nartefact\nartist\nartwork\nask\naspect\nassault\nasset\nassist\nassume\nasthma\nathlete\natom\nattack\nattend\nattitude\nattract\nauction\naudit\naugust\naunt\nauthor\nauto\nautumn\naverage\navocado\navoid\nawake\naware\naway\nawesome\nawful\nawkward\naxis\nbaby\nbachelor\nbacon\nbadge\nbag\nbalance\nbalcony\nball\nbamboo\nbanana\nbanner\nbar\nbarely\nbargain\nbarrel\nbase\nbasic\nbasket\nbattle\nbeach\nbean\nbeauty\nbecause\nbecome\nbeef\nbefore\nbegin\nbehave\nbehind\nbelieve\nbelow\nbelt\nbench\nbenefit\nbest\nbetray\nbetter\nbetween\nbeyond\nbicycle\nbid\nbike\nbind\nbiology\nbird\nbirth\nbitter\nblack\nblade\nblame\nblanket\nblast\nbleak\nbless\nblind\nblood\nblossom\nblouse\nblue\nblur\nblush\nboard\nboat\nbody\nboil\nbomb\nbone\nbonus\nbook\nboost\nborder\nboring\nborrow\nboss\nbottom\nbounce\nbox\nboy\nbracket\nbrain\nbrand\nbrass\nbrave\nbread\nbreeze\nbrick\nbridge\nbrief\nbright\nbring\nbrisk\nbroccoli\nbroken\nbronze\nbroom\nbrother\nbrown\nbrush\nbubble\nbuddy\nbudget\nbuffalo\nbuild\nbulb\nbulk\nbullet\nbundle\nbunker\nburden\nburger\nburst\nbus\nbusiness\nbusy\nbutter\nbuyer\nbuzz\ncabbage\ncabin\ncable\ncactus\ncage\ncake\ncall\ncalm\ncamera\ncamp\ncan\ncanal\ncancel\ncandy\ncannon\ncanoe\ncanvas\ncanyon\ncapable\ncapital\ncaptain\ncar\ncarbon\ncard\ncargo\ncarpet\ncarry\ncart\ncase\ncash\ncasino\ncastle\ncasual\ncat\ncatalog\ncatch\ncategory\ncattle\ncaught\ncause\ncaution\ncave\nceiling\ncelery\ncement\ncensus\ncentury\ncereal\ncertain\nchair\nchalk\nchampion\nchange\nchaos\nchapter\ncharge\nchase\nchat\ncheap\ncheck\ncheese\nchef\ncherry\nchest\nchicken\nchief\nchild\nchimney\nchoice\nchoose\nchronic\nchuckle\nchunk\nchurn\ncigar\ncinnamon\ncircle\ncitizen\ncity\ncivil\nclaim\nclap\nclarify\nclaw\nclay\nclean\nclerk\nclever\nclick\nclient\ncliff\nclimb\nclinic\nclip\nclock\nclog\nclose\ncloth\ncloud\nclown\nclub\nclump\ncluster\nclutch\ncoach\ncoast\ncoconut\ncode\ncoffee\ncoil\ncoin\ncollect\ncolor\ncolumn\ncombine\ncome\ncomfort\ncomic\ncommon\ncompany\nconcert\nconduct\nconfirm\ncongress\nconnect\nconsider\ncontrol\nconvince\ncook\ncool\ncopper\ncopy\ncoral\ncore\ncorn\ncorrect\ncost\ncotton\ncouch\ncountry\ncouple\ncourse\ncousin\ncover\ncoyote\ncrack\ncradle\ncraft\ncram\ncrane\ncrash\ncrater\ncrawl\ncrazy\ncream\ncredit\ncreek\ncrew\ncricket\ncrime\ncrisp\ncritic\ncrop\ncross\ncrouch\ncrowd\ncrucial\ncruel\ncruise\ncrumble\ncrunch\ncrush\ncry\ncrystal\ncube\nculture\ncup\ncupboard\ncurious\ncurrent\ncurtain\ncurve\ncushion\ncustom\ncute\ncycle\ndad\ndamage\ndamp\ndance\ndanger\ndaring\ndash\ndaughter\ndawn\nday\ndeal\ndebate\ndebris\ndecade\ndecember\ndecide\ndecline\ndecorate\ndecrease\ndeer\ndefense\ndefine\ndefy\ndegree\ndelay\ndeliver\ndemand\ndemise\ndenial\ndentist\ndeny\ndepart\ndepend\ndeposit\ndepth\ndeputy\nderive\ndescribe\ndesert\ndesign\ndesk\ndespair\ndestroy\ndetail\ndetect\ndevelop\ndevice\ndevote\ndiagram\ndial\ndiamond\ndiary\ndice\ndiesel\ndiet\ndiffer\ndigital\ndignity\ndilemma\ndinner\ndinosaur\ndirect\ndirt\ndisagree\ndiscover\ndisease\ndish\ndismiss\ndisorder\ndisplay\ndistance\ndivert\ndivide\ndivorce\ndizzy\ndoctor\ndocument\ndog\ndoll\ndolphin\ndomain\ndonate\ndonkey\ndonor\ndoor\ndose\ndouble\ndove\ndraft\ndragon\ndrama\ndrastic\ndraw\ndream\ndress\ndrift\ndrill\ndrink\ndrip\ndrive\ndrop\ndrum\ndry\nduck\ndumb\ndune\nduring\ndust\ndutch\nduty\ndwarf\ndynamic\neager\neagle\nearly\nearn\nearth\neasily\neast\neasy\necho\necology\neconomy\nedge\nedit\neducate\neffort\negg\neight\neither\nelbow\nelder\nelectric\nelegant\nelement\nelephant\nelevator\nelite\nelse\nembark\nembody\nembrace\nemerge\nemotion\nemploy\nempower\nempty\nenable\nenact\nend\nendless\nendorse\nenemy\nenergy\nenforce\nengage\nengine\nenhance\nenjoy\nenlist\nenough\nenrich\nenroll\nensure\nenter\nentire\nentry\nenvelope\nepisode\nequal\nequip\nera\nerase\nerode\nerosion\nerror\nerupt\nescape\nessay\nessence\nestate\neternal\nethics\nevidence\nevil\nevoke\nevolve\nexact\nexample\nexcess\nexchange\nexcite\nexclude\nexcuse\nexecute\nexercise\nexhaust\nexhibit\nexile\nexist\nexit\nexotic\nexpand\nexpect\nexpire\nexplain\nexpose\nexpress\nextend\nextra\neye\neyebrow\nfabric\nface\nfaculty\nfade\nfaint\nfaith\nfall\nfalse\nfame\nfamily\nfamous\nfan\nfancy\nfantasy\nfarm\nfashion\nfat\nfatal\nfather\nfatigue\nfault\nfavorite\nfeature\nfebruary\nfederal\nfee\nfeed\nfeel\nfemale\nfence\nfestival\nfetch\nfever\nfew\nfiber\nfiction\nfield\nfigure\nfile\nfilm\nfilter\nfinal\nfind\nfine\nfinger\nfinish\nfire\nfirm\nfirst\nfiscal\nfish\nfit\nfitness\nfix\nflag\nflame\nflash\nflat\nflavor\nflee\nflight\nflip\nfloat\nflock\nfloor\nflower\nfluid\nflush\nfly\nfoam\nfocus\nfog\nfoil\nfold\nfollow\nfood\nfoot\nforce\nforest\nforget\nfork\nfortune\nforum\nforward\nfossil\nfoster\nfound\nfox\nfragile\nframe\nfrequent\nfresh\nfriend\nfringe\nfrog\nfront\nfrost\nfrown\nfrozen\nfruit\nfuel\nfun\nfunny\nfurnace\nfury\nfuture\ngadget\ngain\ngalaxy\ngallery\ngame\ngap\ngarage\ngarbage\ngarden\ngarlic\ngarment\ngas\ngasp\ngate\ngather\ngauge\ngaze\ngeneral\ngenius\ngenre\ngentle\ngenuine\ngesture\nghost\ngiant\ngift\ngiggle\nginger\ngiraffe\ngirl\ngive\nglad\nglance\nglare\nglass\nglide\nglimpse\nglobe\ngloom\nglory\nglove\nglow\nglue\ngoat\ngoddess\ngold\ngood\ngoose\ngorilla\ngospel\ngossip\ngovern\ngown\ngrab\ngrace\ngrain\ngrant\ngrape\ngrass\ngravity\ngreat\ngreen\ngrid\ngrief\ngrit\ngrocery\ngroup\ngrow\ngrunt\nguard\nguess\nguide\nguilt\nguitar\ngun\ngym\nhabit\nhair\nhalf\nhammer\nhamster\nhand\nhappy\nharbor\nhard\nharsh\nharvest\nhat\nhave\nhawk\nhazard\nhead\nhealth\nheart\nheavy\nhedgehog\nheight\nhello\nhelmet\nhelp\nhen\nhero\nhidden\nhigh\nhill\nhint\nhip\nhire\nhistory\nhobby\nhockey\nhold\nhole\nholiday\nhollow\nhome\nhoney\nhood\nhope\nhorn\nhorror\nhorse\nhospital\nhost\nhotel\nhour\nhover\nhub\nhuge\nhuman\nhumble\nhumor\nhundred\nhungry\nhunt\nhurdle\nhurry\nhurt\nhusband\nhybrid\nice\nicon\nidea\nidentify\nidle\nignore\nill\nillegal\nillness\nimage\nimitate\nimmense\nimmune\nimpact\nimpose\nimprove\nimpulse\ninch\ninclude\nincome\nincrease\nindex\nindicate\nindoor\nindustry\ninfant\ninflict\ninform\ninhale\ninherit\ninitial\ninject\ninjury\ninmate\ninner\ninnocent\ninput\ninquiry\ninsane\ninsect\ninside\ninspire\ninstall\nintact\ninterest\ninto\ninvest\ninvite\ninvolve\niron\nisland\nisolate\nissue\nitem\nivory\njacket\njaguar\njar\njazz\njealous\njeans\njelly\njewel\njob\njoin\njoke\njourney\njoy\njudge\njuice\njump\njungle\njunior\njunk\njust\nkangaroo\nkeen\nkeep\nketchup\nkey\nkick\nkid\nkidney\nkind\nkingdom\nkiss\nkit\nkitchen\nkite\nkitten\nkiwi\nknee\nknife\nknock\nknow\nlab\nlabel\nlabor\nladder\nlady\nlake\nlamp\nlanguage\nlaptop\nlarge\nlater\nlatin\nlaugh\nlaundry\nlava\nlaw\nlawn\nlawsuit\nlayer\nlazy\nleader\nleaf\nlearn\nleave\nlecture\nleft\nleg\nlegal\nlegend\nleisure\nlemon\nlend\nlength\nlens\nleopard\nlesson\nletter\nlevel\nliar\nliberty\nlibrary\nlicense\nlife\nlift\nlight\nlike\nlimb\nlimit\nlink\nlion\nliquid\nlist\nlittle\nlive\nlizard\nload\nloan\nlobster\nlocal\nlock\nlogic\nlonely\nlong\nloop\nlottery\nloud\nlounge\nlove\nloyal\nlucky\nluggage\nlumber\nlunar\nlunch\nluxury\nlyrics\nmachine\nmad\nmagic\nmagnet\nmaid\nmail\nmain\nmajor\nmake\nmammal\nman\nmanage\nmandate\nmango\nmansion\nmanual\nmaple\nmarble\nmarch\nmargin\nmarine\nmarket\nmarriage\nmask\nmass\nmaster\nmatch\nmaterial\nmath\nmatrix\nmatter\nmaximum\nmaze\nmeadow\nmean\nmeasure\nmeat\nmechanic\nmedal\nmedia\nmelody\nmelt\nmember\nmemory\nmention\nmenu\nmercy\nmerge\nmerit\nmerry\nmesh\nmessage\nmetal\nmethod\nmiddle\nmidnight\nmilk\nmillion\nmimic\nmind\nminimum\nminor\nminute\nmiracle\nmirror\nmisery\nmiss\nmistake\nmix\nmixed\nmixture\nmobile\nmodel\nmodify\nmom\nmoment\nmonitor\nmonkey\nmonster\nmonth\nmoon\nmoral\nmore\nmorning\nmosquito\nmother\nmotion\nmotor\nmountain\nmouse\nmove\nmovie\nmuch\nmuffin\nmule\nmultiply\nmuscle\nmuseum\nmushroom\nmusic\nmust\nmutual\nmyself\nmystery\nmyth\nnaive\nname\nnapkin\nnarrow\nnasty\nnation\nnature\nnear\nneck\nneed\nnegative\nneglect\nneither\nnephew\nnerve\nnest\nnet\nnetwork\nneutral\nnever\nnews\nnext\nnice\nnight\nnoble\nnoise\nnominee\nnoodle\nnormal\nnorth\nnose\nnotable\nnote\nnothing\nnotice\nnovel\nnow\nnuclear\nnumber\nnurse\nnut\noak\nobey\nobject\noblige\nobscure\nobserve\nobtain\nobvious\noccur\nocean\noctober\nodor\noff\noffer\noffice\noften\noil\nokay\nold\nolive\nolympic\nomit\nonce\none\nonion\nonline\nonly\nopen\nopera\nopinion\noppose\noption\norange\norbit\norchard\norder\nordinary\norgan\norient\noriginal\norphan\nostrich\nother\noutdoor\nouter\noutput\noutside\noval\noven\nover\nown\nowner\noxygen\noyster\nozone\npact\npaddle\npage\npair\npalace\npalm\npanda\npanel\npanic\npanther\npaper\nparade\nparent\npark\nparrot\nparty\npass\npatch\npath\npatient\npatrol\npattern\npause\npave\npayment\npeace\npeanut\npear\npeasant\npelican\npen\npenalty\npencil\npeople\npepper\nperfect\npermit\nperson\npet\nphone\nphoto\nphrase\nphysical\npiano\npicnic\npicture\npiece\npig\npigeon\npill\npilot\npink\npioneer\npipe\npistol\npitch\npizza\nplace\nplanet\nplastic\nplate\nplay\nplease\npledge\npluck\nplug\nplunge\npoem\npoet\npoint\npolar\npole\npolice\npond\npony\npool\npopular\nportion\nposition\npossible\npost\npotato\npottery\npoverty\npowder\npower\npractice\npraise\npredict\nprefer\nprepare\npresent\npretty\nprevent\nprice\npride\nprimary\nprint\npriority\nprison\nprivate\nprize\nproblem\nprocess\nproduce\nprofit\nprogram\nproject\npromote\nproof\nproperty\nprosper\nprotect\nproud\nprovide\npublic\npudding\npull\npulp\npulse\npumpkin\npunch\npupil\npuppy\npurchase\npurity\npurpose\npurse\npush\nput\npuzzle\npyramid\nquality\nquantum\nquarter\nquestion\nquick\nquit\nquiz\nquote\nrabbit\nraccoon\nrace\nrack\nradar\nradio\nrail\nrain\nraise\nrally\nramp\nranch\nrandom\nrange\nrapid\nrare\nrate\nrather\nraven\nraw\nrazor\nready\nreal\nreason\nrebel\nrebuild\nrecall\nreceive\nrecipe\nrecord\nrecycle\nreduce\nreflect\nreform\nrefuse\nregion\nregret\nregular\nreject\nrelax\nrelease\nrelief\nrely\nremain\nremember\nremind\nremove\nrender\nrenew\nrent\nreopen\nrepair\nrepeat\nreplace\nreport\nrequire\nrescue\nresemble\nresist\nresource\nresponse\nresult\nretire\nretreat\nreturn\nreunion\nreveal\nreview\nreward\nrhythm\nrib\nribbon\nrice\nrich\nride\nridge\nrifle\nright\nrigid\nring\nriot\nripple\nrisk\nritual\nrival\nriver\nroad\nroast\nrobot\nrobust\nrocket\nromance\nroof\nrookie\nroom\nrose\nrotate\nrough\nround\nroute\nroyal\nrubber\nrude\nrug\nrule\nrun\nrunway\nrural\nsad\nsaddle\nsadness\nsafe\nsail\nsalad\nsalmon\nsalon\nsalt\nsalute\nsame\nsample\nsand\nsatisfy\nsatoshi\nsauce\nsausage\nsave\nsay\nscale\nscan\nscare\nscatter\nscene\nscheme\nschool\nscience\nscissors\nscorpion\nscout\nscrap\nscreen\nscript\nscrub\nsea\nsearch\nseason\nseat\nsecond\nsecret\nsection\nsecurity\nseed\nseek\nsegment\nselect\nsell\nseminar\nsenior\nsense\nsentence\nseries\nservice\nsession\nsettle\nsetup\nseven\nshadow\nshaft\nshallow\nshare\nshed\nshell\nsheriff\nshield\nshift\nshine\nship\nshiver\nshock\nshoe\nshoot\nshop\nshort\nshoulder\nshove\nshrimp\nshrug\nshuffle\nshy\nsibling\nsick\nside\nsiege\nsight\nsign\nsilent\nsilk\nsilly\nsilver\nsimilar\nsimple\nsince\nsing\nsiren\nsister\nsituate\nsix\nsize\nskate\nsketch\nski\nskill\nskin\nskirt\nskull\nslab\nslam\nsleep\nslender\nslice\nslide\nslight\nslim\nslogan\nslot\nslow\nslush\nsmall\nsmart\nsmile\nsmoke\nsmooth\nsnack\nsnake\nsnap\nsniff\nsnow\nsoap\nsoccer\nsocial\nsock\nsoda\nsoft\nsolar\nsoldier\nsolid\nsolution\nsolve\nsomeone\nsong\nsoon\nsorry\nsort\nsoul\nsound\nsoup\nsource\nsouth\nspace\nspare\nspatial\nspawn\nspeak\nspecial\nspeed\nspell\nspend\nsphere\nspice\nspider\nspike\nspin\nspirit\nsplit\nspoil\nsponsor\nspoon\nsport\nspot\nspray\nspread\nspring\nspy\nsquare\nsqueeze\nsquirrel\nstable\nstadium\nstaff\nstage\nstairs\nstamp\nstand\nstart\nstate\nstay\nsteak\nsteel\nstem\nstep\nstereo\nstick\nstill\nsting\nstock\nstomach\nstone\nstool\nstory\nstove\nstrategy\nstreet\nstrike\nstrong\nstruggle\nstudent\nstuff\nstumble\nstyle\nsubject\nsubmit\nsubway\nsuccess\nsuch\nsudden\nsuffer\nsugar\nsuggest\nsuit\nsummer\nsun\nsunny\nsunset\nsuper\nsupply\nsupreme\nsure\nsurface\nsurge\nsurprise\nsurround\nsurvey\nsuspect\nsustain\nswallow\nswamp\nswap\nswarm\nswear\nsweet\nswift\nswim\nswing\nswitch\nsword\nsymbol\nsymptom\nsyrup\nsystem\ntable\ntackle\ntag\ntail\ntalent\ntalk\ntank\ntape\ntarget\ntask\ntaste\ntattoo\ntaxi\nteach\nteam\ntell\nten\ntenant\ntennis\ntent\nterm\ntest\ntext\nthank\nthat\ntheme\nthen\ntheory\nthere\nthey\nthing\nthis\nthought\nthree\nthrive\nthrow\nthumb\nthunder\nticket\ntide\ntiger\ntilt\ntimber\ntime\ntiny\ntip\ntired\ntissue\ntitle\ntoast\ntobacco\ntoday\ntoddler\ntoe\ntogether\ntoilet\ntoken\ntomato\ntomorrow\ntone\ntongue\ntonight\ntool\ntooth\ntop\ntopic\ntopple\ntorch\ntornado\ntortoise\ntoss\ntotal\ntourist\ntoward\ntower\ntown\ntoy\ntrack\ntrade\ntraffic\ntragic\ntrain\ntransfer\ntrap\ntrash\ntravel\ntray\ntreat\ntree\ntrend\ntrial\ntribe\ntrick\ntrigger\ntrim\ntrip\ntrophy\ntrouble\ntruck\ntrue\ntruly\ntrumpet\ntrust\ntruth\ntry\ntube\ntuition\ntumble\ntuna\ntunnel\nturkey\nturn\nturtle\ntwelve\ntwenty\ntwice\ntwin\ntwist\ntwo\ntype\ntypical\nugly\numbrella\nunable\nunaware\nuncle\nuncover\nunder\nundo\nunfair\nunfold\nunhappy\nuniform\nunique\nunit\nuniverse\nunknown\nunlock\nuntil\nunusual\nunveil\nupdate\nupgrade\nuphold\nupon\nupper\nupset\nurban\nurge\nusage\nuse\nused\nuseful\nuseless\nusual\nutility\nvacant\nvacuum\nvague\nvalid\nvalley\nvalve\nvan\nvanish\nvapor\nvarious\nvast\nvault\nvehicle\nvelvet\nvendor\nventure\nvenue\nverb\nverify\nversion\nvery\nvessel\nveteran\nviable\nvibrant\nvicious\nvictory\nvideo\nview\nvillage\nvintage\nviolin\nvirtual\nvirus\nvisa\nvisit\nvisual\nvital\nvivid\nvocal\nvoice\nvoid\nvolcano\nvolume\nvote\nvoyage\nwage\nwagon\nwait\nwalk\nwall\nwalnut\nwant\nwarfare\nwarm\nwarrior\nwash\nwasp\nwaste\nwater\nwave\nway\nwealth\nweapon\nwear\nweasel\nweather\nweb\nwedding\nweekend\nweird\nwelcome\nwest\nwet\nwhale\nwhat\nwheat\nwheel\nwhen\nwhere\nwhip\nwhisper\nwide\nwidth\nwife\nwild\nwill\nwin\nwindow\nwine\nwing\nwink\nwinner\nwinter\nwire\nwisdom\nwise\nwish\nwitness\nwolf\nwoman\nwonder\nwood\nwool\nword\nwork\nworld\nworry\nworth\nwrap\nwreck\nwrestle\nwrist\nwrite\nwrong\nyard\nyear\nyellow\nyou\nyoung\nyouth\nzebra\nzero\nzone\nzoo`.split('\\n');\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.output = exports.exists = exports.hash = exports.bytes = exports.bool = exports.number = void 0;\nfunction number(n) {\n if (!Number.isSafeInteger(n) || n < 0)\n throw new Error(`Wrong positive integer: ${n}`);\n}\nexports.number = number;\nfunction bool(b) {\n if (typeof b !== 'boolean')\n throw new Error(`Expected boolean, not ${b}`);\n}\nexports.bool = bool;\nfunction bytes(b, ...lengths) {\n if (!(b instanceof Uint8Array))\n throw new TypeError('Expected Uint8Array');\n if (lengths.length > 0 && !lengths.includes(b.length))\n throw new TypeError(`Expected Uint8Array of length ${lengths}, not of length=${b.length}`);\n}\nexports.bytes = bytes;\nfunction hash(hash) {\n if (typeof hash !== 'function' || typeof hash.create !== 'function')\n throw new Error('Hash should be wrapped by utils.wrapConstructor');\n number(hash.outputLen);\n number(hash.blockLen);\n}\nexports.hash = hash;\nfunction exists(instance, checkFinished = true) {\n if (instance.destroyed)\n throw new Error('Hash instance has been destroyed');\n if (checkFinished && instance.finished)\n throw new Error('Hash#digest() has already been called');\n}\nexports.exists = exists;\nfunction output(out, instance) {\n bytes(out);\n const min = instance.outputLen;\n if (out.length < min) {\n throw new Error(`digestInto() expects output buffer of length at least ${min}`);\n }\n}\nexports.output = output;\nconst assert = {\n number,\n bool,\n bytes,\n hash,\n exists,\n output,\n};\nexports.default = assert;\n//# sourceMappingURL=_assert.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.crypto = void 0;\nexports.crypto = {\n node: undefined,\n web: typeof self === 'object' && 'crypto' in self ? self.crypto : undefined,\n};\n//# sourceMappingURL=cryptoBrowser.js.map","\"use strict\";\n/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.randomBytes = exports.wrapConstructorWithOpts = exports.wrapConstructor = exports.checkOpts = exports.Hash = exports.concatBytes = exports.toBytes = exports.utf8ToBytes = exports.asyncLoop = exports.nextTick = exports.hexToBytes = exports.bytesToHex = exports.isLE = exports.rotr = exports.createView = exports.u32 = exports.u8 = void 0;\n// The import here is via the package name. This is to ensure\n// that exports mapping/resolution does fall into place.\nconst crypto_1 = require(\"@noble/hashes/crypto\");\n// Cast array to different type\nconst u8 = (arr) => new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\nexports.u8 = u8;\nconst u32 = (arr) => new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\nexports.u32 = u32;\n// Cast array to view\nconst createView = (arr) => new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\nexports.createView = createView;\n// The rotate right (circular right shift) operation for uint32\nconst rotr = (word, shift) => (word << (32 - shift)) | (word >>> shift);\nexports.rotr = rotr;\nexports.isLE = new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44;\n// There is almost no big endian hardware, but js typed arrays uses platform specific endianness.\n// So, just to be sure not to corrupt anything.\nif (!exports.isLE)\n throw new Error('Non little-endian hardware is not supported');\nconst hexes = Array.from({ length: 256 }, (v, i) => i.toString(16).padStart(2, '0'));\n/**\n * @example bytesToHex(Uint8Array.from([0xde, 0xad, 0xbe, 0xef]))\n */\nfunction bytesToHex(uint8a) {\n // pre-caching improves the speed 6x\n if (!(uint8a instanceof Uint8Array))\n throw new Error('Uint8Array expected');\n let hex = '';\n for (let i = 0; i < uint8a.length; i++) {\n hex += hexes[uint8a[i]];\n }\n return hex;\n}\nexports.bytesToHex = bytesToHex;\n/**\n * @example hexToBytes('deadbeef')\n */\nfunction hexToBytes(hex) {\n if (typeof hex !== 'string') {\n throw new TypeError('hexToBytes: expected string, got ' + typeof hex);\n }\n if (hex.length % 2)\n throw new Error('hexToBytes: received invalid unpadded hex');\n const array = new Uint8Array(hex.length / 2);\n for (let i = 0; i < array.length; i++) {\n const j = i * 2;\n const hexByte = hex.slice(j, j + 2);\n const byte = Number.parseInt(hexByte, 16);\n if (Number.isNaN(byte) || byte < 0)\n throw new Error('Invalid byte sequence');\n array[i] = byte;\n }\n return array;\n}\nexports.hexToBytes = hexToBytes;\n// There is no setImmediate in browser and setTimeout is slow. However, call to async function will return Promise\n// which will be fullfiled only on next scheduler queue processing step and this is exactly what we need.\nconst nextTick = async () => { };\nexports.nextTick = nextTick;\n// Returns control to thread each 'tick' ms to avoid blocking\nasync function asyncLoop(iters, tick, cb) {\n let ts = Date.now();\n for (let i = 0; i < iters; i++) {\n cb(i);\n // Date.now() is not monotonic, so in case if clock goes backwards we return return control too\n const diff = Date.now() - ts;\n if (diff >= 0 && diff < tick)\n continue;\n await (0, exports.nextTick)();\n ts += diff;\n }\n}\nexports.asyncLoop = asyncLoop;\nfunction utf8ToBytes(str) {\n if (typeof str !== 'string') {\n throw new TypeError(`utf8ToBytes expected string, got ${typeof str}`);\n }\n return new TextEncoder().encode(str);\n}\nexports.utf8ToBytes = utf8ToBytes;\nfunction toBytes(data) {\n if (typeof data === 'string')\n data = utf8ToBytes(data);\n if (!(data instanceof Uint8Array))\n throw new TypeError(`Expected input type is Uint8Array (got ${typeof data})`);\n return data;\n}\nexports.toBytes = toBytes;\n/**\n * Concats Uint8Array-s into one; like `Buffer.concat([buf1, buf2])`\n * @example concatBytes(buf1, buf2)\n */\nfunction concatBytes(...arrays) {\n if (!arrays.every((a) => a instanceof Uint8Array))\n throw new Error('Uint8Array list expected');\n if (arrays.length === 1)\n return arrays[0];\n const length = arrays.reduce((a, arr) => a + arr.length, 0);\n const result = new Uint8Array(length);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const arr = arrays[i];\n result.set(arr, pad);\n pad += arr.length;\n }\n return result;\n}\nexports.concatBytes = concatBytes;\n// For runtime check if class implements interface\nclass Hash {\n // Safe version that clones internal state\n clone() {\n return this._cloneInto();\n }\n}\nexports.Hash = Hash;\n// Check if object doens't have custom constructor (like Uint8Array/Array)\nconst isPlainObject = (obj) => Object.prototype.toString.call(obj) === '[object Object]' && obj.constructor === Object;\nfunction checkOpts(defaults, opts) {\n if (opts !== undefined && (typeof opts !== 'object' || !isPlainObject(opts)))\n throw new TypeError('Options should be object or undefined');\n const merged = Object.assign(defaults, opts);\n return merged;\n}\nexports.checkOpts = checkOpts;\nfunction wrapConstructor(hashConstructor) {\n const hashC = (message) => hashConstructor().update(toBytes(message)).digest();\n const tmp = hashConstructor();\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = () => hashConstructor();\n return hashC;\n}\nexports.wrapConstructor = wrapConstructor;\nfunction wrapConstructorWithOpts(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\nexports.wrapConstructorWithOpts = wrapConstructorWithOpts;\n/**\n * Secure PRNG\n */\nfunction randomBytes(bytesLength = 32) {\n if (crypto_1.crypto.web) {\n return crypto_1.crypto.web.getRandomValues(new Uint8Array(bytesLength));\n }\n else if (crypto_1.crypto.node) {\n return new Uint8Array(crypto_1.crypto.node.randomBytes(bytesLength).buffer);\n }\n else {\n throw new Error(\"The environment doesn't have randomBytes function\");\n }\n}\nexports.randomBytes = randomBytes;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hmac = void 0;\nconst _assert_js_1 = require(\"./_assert.js\");\nconst utils_js_1 = require(\"./utils.js\");\n// HMAC (RFC 2104)\nclass HMAC extends utils_js_1.Hash {\n constructor(hash, _key) {\n super();\n this.finished = false;\n this.destroyed = false;\n _assert_js_1.default.hash(hash);\n const key = (0, utils_js_1.toBytes)(_key);\n this.iHash = hash.create();\n if (typeof this.iHash.update !== 'function')\n throw new TypeError('Expected instance of class which extends utils.Hash');\n this.blockLen = this.iHash.blockLen;\n this.outputLen = this.iHash.outputLen;\n const blockLen = this.blockLen;\n const pad = new Uint8Array(blockLen);\n // blockLen can be bigger than outputLen\n pad.set(key.length > blockLen ? hash.create().update(key).digest() : key);\n for (let i = 0; i < pad.length; i++)\n pad[i] ^= 0x36;\n this.iHash.update(pad);\n // By doing update (processing of first block) of outer hash here we can re-use it between multiple calls via clone\n this.oHash = hash.create();\n // Undo internal XOR && apply outer XOR\n for (let i = 0; i < pad.length; i++)\n pad[i] ^= 0x36 ^ 0x5c;\n this.oHash.update(pad);\n pad.fill(0);\n }\n update(buf) {\n _assert_js_1.default.exists(this);\n this.iHash.update(buf);\n return this;\n }\n digestInto(out) {\n _assert_js_1.default.exists(this);\n _assert_js_1.default.bytes(out, this.outputLen);\n this.finished = true;\n this.iHash.digestInto(out);\n this.oHash.update(out);\n this.oHash.digestInto(out);\n this.destroy();\n }\n digest() {\n const out = new Uint8Array(this.oHash.outputLen);\n this.digestInto(out);\n return out;\n }\n _cloneInto(to) {\n // Create new instance without calling constructor since key already in state and we don't know it.\n to || (to = Object.create(Object.getPrototypeOf(this), {}));\n const { oHash, iHash, finished, destroyed, blockLen, outputLen } = this;\n to = to;\n to.finished = finished;\n to.destroyed = destroyed;\n to.blockLen = blockLen;\n to.outputLen = outputLen;\n to.oHash = oHash._cloneInto(to.oHash);\n to.iHash = iHash._cloneInto(to.iHash);\n return to;\n }\n destroy() {\n this.destroyed = true;\n this.oHash.destroy();\n this.iHash.destroy();\n }\n}\n/**\n * HMAC: RFC2104 message authentication code.\n * @param hash - function that would be used e.g. sha256\n * @param key - message key\n * @param message - message data\n */\nconst hmac = (hash, key, message) => new HMAC(hash, key).update(message).digest();\nexports.hmac = hmac;\nexports.hmac.create = (hash, key) => new HMAC(hash, key);\n//# sourceMappingURL=hmac.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.pbkdf2Async = exports.pbkdf2 = void 0;\nconst _assert_js_1 = require(\"./_assert.js\");\nconst hmac_js_1 = require(\"./hmac.js\");\nconst utils_js_1 = require(\"./utils.js\");\n// Common prologue and epilogue for sync/async functions\nfunction pbkdf2Init(hash, _password, _salt, _opts) {\n _assert_js_1.default.hash(hash);\n const opts = (0, utils_js_1.checkOpts)({ dkLen: 32, asyncTick: 10 }, _opts);\n const { c, dkLen, asyncTick } = opts;\n _assert_js_1.default.number(c);\n _assert_js_1.default.number(dkLen);\n _assert_js_1.default.number(asyncTick);\n if (c < 1)\n throw new Error('PBKDF2: iterations (c) should be >= 1');\n const password = (0, utils_js_1.toBytes)(_password);\n const salt = (0, utils_js_1.toBytes)(_salt);\n // DK = PBKDF2(PRF, Password, Salt, c, dkLen);\n const DK = new Uint8Array(dkLen);\n // U1 = PRF(Password, Salt + INT_32_BE(i))\n const PRF = hmac_js_1.hmac.create(hash, password);\n const PRFSalt = PRF._cloneInto().update(salt);\n return { c, dkLen, asyncTick, DK, PRF, PRFSalt };\n}\nfunction pbkdf2Output(PRF, PRFSalt, DK, prfW, u) {\n PRF.destroy();\n PRFSalt.destroy();\n if (prfW)\n prfW.destroy();\n u.fill(0);\n return DK;\n}\n/**\n * PBKDF2-HMAC: RFC 2898 key derivation function\n * @param hash - hash function that would be used e.g. sha256\n * @param password - password from which a derived key is generated\n * @param salt - cryptographic salt\n * @param opts - {c, dkLen} where c is work factor and dkLen is output message size\n */\nfunction pbkdf2(hash, password, salt, opts) {\n const { c, dkLen, DK, PRF, PRFSalt } = pbkdf2Init(hash, password, salt, opts);\n let prfW; // Working copy\n const arr = new Uint8Array(4);\n const view = (0, utils_js_1.createView)(arr);\n const u = new Uint8Array(PRF.outputLen);\n // DK = T1 + T2 + ⋯ + Tdklen/hlen\n for (let ti = 1, pos = 0; pos < dkLen; ti++, pos += PRF.outputLen) {\n // Ti = F(Password, Salt, c, i)\n const Ti = DK.subarray(pos, pos + PRF.outputLen);\n view.setInt32(0, ti, false);\n // F(Password, Salt, c, i) = U1 ^ U2 ^ ⋯ ^ Uc\n // U1 = PRF(Password, Salt + INT_32_BE(i))\n (prfW = PRFSalt._cloneInto(prfW)).update(arr).digestInto(u);\n Ti.set(u.subarray(0, Ti.length));\n for (let ui = 1; ui < c; ui++) {\n // Uc = PRF(Password, Uc−1)\n PRF._cloneInto(prfW).update(u).digestInto(u);\n for (let i = 0; i < Ti.length; i++)\n Ti[i] ^= u[i];\n }\n }\n return pbkdf2Output(PRF, PRFSalt, DK, prfW, u);\n}\nexports.pbkdf2 = pbkdf2;\nasync function pbkdf2Async(hash, password, salt, opts) {\n const { c, dkLen, asyncTick, DK, PRF, PRFSalt } = pbkdf2Init(hash, password, salt, opts);\n let prfW; // Working copy\n const arr = new Uint8Array(4);\n const view = (0, utils_js_1.createView)(arr);\n const u = new Uint8Array(PRF.outputLen);\n // DK = T1 + T2 + ⋯ + Tdklen/hlen\n for (let ti = 1, pos = 0; pos < dkLen; ti++, pos += PRF.outputLen) {\n // Ti = F(Password, Salt, c, i)\n const Ti = DK.subarray(pos, pos + PRF.outputLen);\n view.setInt32(0, ti, false);\n // F(Password, Salt, c, i) = U1 ^ U2 ^ ⋯ ^ Uc\n // U1 = PRF(Password, Salt + INT_32_BE(i))\n (prfW = PRFSalt._cloneInto(prfW)).update(arr).digestInto(u);\n Ti.set(u.subarray(0, Ti.length));\n await (0, utils_js_1.asyncLoop)(c - 1, asyncTick, (i) => {\n // Uc = PRF(Password, Uc−1)\n PRF._cloneInto(prfW).update(u).digestInto(u);\n for (let i = 0; i < Ti.length; i++)\n Ti[i] ^= u[i];\n });\n }\n return pbkdf2Output(PRF, PRFSalt, DK, prfW, u);\n}\nexports.pbkdf2Async = pbkdf2Async;\n//# sourceMappingURL=pbkdf2.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SHA2 = void 0;\nconst _assert_js_1 = require(\"./_assert.js\");\nconst utils_js_1 = require(\"./utils.js\");\n// Polyfill for Safari 14\nfunction setBigUint64(view, byteOffset, value, isLE) {\n if (typeof view.setBigUint64 === 'function')\n return view.setBigUint64(byteOffset, value, isLE);\n const _32n = BigInt(32);\n const _u32_max = BigInt(0xffffffff);\n const wh = Number((value >> _32n) & _u32_max);\n const wl = Number(value & _u32_max);\n const h = isLE ? 4 : 0;\n const l = isLE ? 0 : 4;\n view.setUint32(byteOffset + h, wh, isLE);\n view.setUint32(byteOffset + l, wl, isLE);\n}\n// Base SHA2 class (RFC 6234)\nclass SHA2 extends utils_js_1.Hash {\n constructor(blockLen, outputLen, padOffset, isLE) {\n super();\n this.blockLen = blockLen;\n this.outputLen = outputLen;\n this.padOffset = padOffset;\n this.isLE = isLE;\n this.finished = false;\n this.length = 0;\n this.pos = 0;\n this.destroyed = false;\n this.buffer = new Uint8Array(blockLen);\n this.view = (0, utils_js_1.createView)(this.buffer);\n }\n update(data) {\n _assert_js_1.default.exists(this);\n const { view, buffer, blockLen } = this;\n data = (0, utils_js_1.toBytes)(data);\n const len = data.length;\n for (let pos = 0; pos < len;) {\n const take = Math.min(blockLen - this.pos, len - pos);\n // Fast path: we have at least one block in input, cast it to view and process\n if (take === blockLen) {\n const dataView = (0, utils_js_1.createView)(data);\n for (; blockLen <= len - pos; pos += blockLen)\n this.process(dataView, pos);\n continue;\n }\n buffer.set(data.subarray(pos, pos + take), this.pos);\n this.pos += take;\n pos += take;\n if (this.pos === blockLen) {\n this.process(view, 0);\n this.pos = 0;\n }\n }\n this.length += data.length;\n this.roundClean();\n return this;\n }\n digestInto(out) {\n _assert_js_1.default.exists(this);\n _assert_js_1.default.output(out, this);\n this.finished = true;\n // Padding\n // We can avoid allocation of buffer for padding completely if it\n // was previously not allocated here. But it won't change performance.\n const { buffer, view, blockLen, isLE } = this;\n let { pos } = this;\n // append the bit '1' to the message\n buffer[pos++] = 0b10000000;\n this.buffer.subarray(pos).fill(0);\n // we have less than padOffset left in buffer, so we cannot put length in current block, need process it and pad again\n if (this.padOffset > blockLen - pos) {\n this.process(view, 0);\n pos = 0;\n }\n // Pad until full block byte with zeros\n for (let i = pos; i < blockLen; i++)\n buffer[i] = 0;\n // Note: sha512 requires length to be 128bit integer, but length in JS will overflow before that\n // You need to write around 2 exabytes (u64_max / 8 / (1024**6)) for this to happen.\n // So we just write lowest 64 bits of that value.\n setBigUint64(view, blockLen - 8, BigInt(this.length * 8), isLE);\n this.process(view, 0);\n const oview = (0, utils_js_1.createView)(out);\n const len = this.outputLen;\n // NOTE: we do division by 4 later, which should be fused in single op with modulo by JIT\n if (len % 4)\n throw new Error('_sha2: outputLen should be aligned to 32bit');\n const outLen = len / 4;\n const state = this.get();\n if (outLen > state.length)\n throw new Error('_sha2: outputLen bigger than state');\n for (let i = 0; i < outLen; i++)\n oview.setUint32(4 * i, state[i], isLE);\n }\n digest() {\n const { buffer, outputLen } = this;\n this.digestInto(buffer);\n const res = buffer.slice(0, outputLen);\n this.destroy();\n return res;\n }\n _cloneInto(to) {\n to || (to = new this.constructor());\n to.set(...this.get());\n const { blockLen, buffer, length, finished, destroyed, pos } = this;\n to.length = length;\n to.pos = pos;\n to.finished = finished;\n to.destroyed = destroyed;\n if (length % blockLen)\n to.buffer.set(buffer);\n return to;\n }\n}\nexports.SHA2 = SHA2;\n//# sourceMappingURL=_sha2.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sha224 = exports.sha256 = void 0;\nconst _sha2_js_1 = require(\"./_sha2.js\");\nconst utils_js_1 = require(\"./utils.js\");\n// Choice: a ? b : c\nconst Chi = (a, b, c) => (a & b) ^ (~a & c);\n// Majority function, true if any two inpust is true\nconst Maj = (a, b, c) => (a & b) ^ (a & c) ^ (b & c);\n// Round constants:\n// first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311)\n// prettier-ignore\nconst SHA256_K = new Uint32Array([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n]);\n// Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):\n// prettier-ignore\nconst IV = new Uint32Array([\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n]);\n// Temporary buffer, not used to store anything between runs\n// Named this way because it matches specification.\nconst SHA256_W = new Uint32Array(64);\nclass SHA256 extends _sha2_js_1.SHA2 {\n constructor() {\n super(64, 32, 8, false);\n // We cannot use array here since array allows indexing by variable\n // which means optimizer/compiler cannot use registers.\n this.A = IV[0] | 0;\n this.B = IV[1] | 0;\n this.C = IV[2] | 0;\n this.D = IV[3] | 0;\n this.E = IV[4] | 0;\n this.F = IV[5] | 0;\n this.G = IV[6] | 0;\n this.H = IV[7] | 0;\n }\n get() {\n const { A, B, C, D, E, F, G, H } = this;\n return [A, B, C, D, E, F, G, H];\n }\n // prettier-ignore\n set(A, B, C, D, E, F, G, H) {\n this.A = A | 0;\n this.B = B | 0;\n this.C = C | 0;\n this.D = D | 0;\n this.E = E | 0;\n this.F = F | 0;\n this.G = G | 0;\n this.H = H | 0;\n }\n process(view, offset) {\n // Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4)\n SHA256_W[i] = view.getUint32(offset, false);\n for (let i = 16; i < 64; i++) {\n const W15 = SHA256_W[i - 15];\n const W2 = SHA256_W[i - 2];\n const s0 = (0, utils_js_1.rotr)(W15, 7) ^ (0, utils_js_1.rotr)(W15, 18) ^ (W15 >>> 3);\n const s1 = (0, utils_js_1.rotr)(W2, 17) ^ (0, utils_js_1.rotr)(W2, 19) ^ (W2 >>> 10);\n SHA256_W[i] = (s1 + SHA256_W[i - 7] + s0 + SHA256_W[i - 16]) | 0;\n }\n // Compression function main loop, 64 rounds\n let { A, B, C, D, E, F, G, H } = this;\n for (let i = 0; i < 64; i++) {\n const sigma1 = (0, utils_js_1.rotr)(E, 6) ^ (0, utils_js_1.rotr)(E, 11) ^ (0, utils_js_1.rotr)(E, 25);\n const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const sigma0 = (0, utils_js_1.rotr)(A, 2) ^ (0, utils_js_1.rotr)(A, 13) ^ (0, utils_js_1.rotr)(A, 22);\n const T2 = (sigma0 + Maj(A, B, C)) | 0;\n H = G;\n G = F;\n F = E;\n E = (D + T1) | 0;\n D = C;\n C = B;\n B = A;\n A = (T1 + T2) | 0;\n }\n // Add the compressed chunk to the current hash value\n A = (A + this.A) | 0;\n B = (B + this.B) | 0;\n C = (C + this.C) | 0;\n D = (D + this.D) | 0;\n E = (E + this.E) | 0;\n F = (F + this.F) | 0;\n G = (G + this.G) | 0;\n H = (H + this.H) | 0;\n this.set(A, B, C, D, E, F, G, H);\n }\n roundClean() {\n SHA256_W.fill(0);\n }\n destroy() {\n this.set(0, 0, 0, 0, 0, 0, 0, 0);\n this.buffer.fill(0);\n }\n}\n// Constants from https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf\nclass SHA224 extends SHA256 {\n constructor() {\n super();\n this.A = 0xc1059ed8 | 0;\n this.B = 0x367cd507 | 0;\n this.C = 0x3070dd17 | 0;\n this.D = 0xf70e5939 | 0;\n this.E = 0xffc00b31 | 0;\n this.F = 0x68581511 | 0;\n this.G = 0x64f98fa7 | 0;\n this.H = 0xbefa4fa4 | 0;\n this.outputLen = 28;\n }\n}\n/**\n * SHA2-256 hash function\n * @param message - data that would be hashed\n */\nexports.sha256 = (0, utils_js_1.wrapConstructor)(() => new SHA256());\nexports.sha224 = (0, utils_js_1.wrapConstructor)(() => new SHA224());\n//# sourceMappingURL=sha256.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.add = exports.toBig = exports.split = exports.fromBig = void 0;\nconst U32_MASK64 = BigInt(2 ** 32 - 1);\nconst _32n = BigInt(32);\n// We are not using BigUint64Array, because they are extremely slow as per 2022\nfunction fromBig(n, le = false) {\n if (le)\n return { h: Number(n & U32_MASK64), l: Number((n >> _32n) & U32_MASK64) };\n return { h: Number((n >> _32n) & U32_MASK64) | 0, l: Number(n & U32_MASK64) | 0 };\n}\nexports.fromBig = fromBig;\nfunction split(lst, le = false) {\n let Ah = new Uint32Array(lst.length);\n let Al = new Uint32Array(lst.length);\n for (let i = 0; i < lst.length; i++) {\n const { h, l } = fromBig(lst[i], le);\n [Ah[i], Al[i]] = [h, l];\n }\n return [Ah, Al];\n}\nexports.split = split;\nconst toBig = (h, l) => (BigInt(h >>> 0) << _32n) | BigInt(l >>> 0);\nexports.toBig = toBig;\n// for Shift in [0, 32)\nconst shrSH = (h, l, s) => h >>> s;\nconst shrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in [1, 32)\nconst rotrSH = (h, l, s) => (h >>> s) | (l << (32 - s));\nconst rotrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotrBH = (h, l, s) => (h << (64 - s)) | (l >>> (s - 32));\nconst rotrBL = (h, l, s) => (h >>> (s - 32)) | (l << (64 - s));\n// Right rotate for shift===32 (just swaps l&h)\nconst rotr32H = (h, l) => l;\nconst rotr32L = (h, l) => h;\n// Left rotate for Shift in [1, 32)\nconst rotlSH = (h, l, s) => (h << s) | (l >>> (32 - s));\nconst rotlSL = (h, l, s) => (l << s) | (h >>> (32 - s));\n// Left rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotlBH = (h, l, s) => (l << (s - 32)) | (h >>> (64 - s));\nconst rotlBL = (h, l, s) => (h << (s - 32)) | (l >>> (64 - s));\n// JS uses 32-bit signed integers for bitwise operations which means we cannot\n// simple take carry out of low bit sum by shift, we need to use division.\n// Removing \"export\" has 5% perf penalty -_-\nfunction add(Ah, Al, Bh, Bl) {\n const l = (Al >>> 0) + (Bl >>> 0);\n return { h: (Ah + Bh + ((l / 2 ** 32) | 0)) | 0, l: l | 0 };\n}\nexports.add = add;\n// Addition with more than 2 elements\nconst add3L = (Al, Bl, Cl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0);\nconst add3H = (low, Ah, Bh, Ch) => (Ah + Bh + Ch + ((low / 2 ** 32) | 0)) | 0;\nconst add4L = (Al, Bl, Cl, Dl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0);\nconst add4H = (low, Ah, Bh, Ch, Dh) => (Ah + Bh + Ch + Dh + ((low / 2 ** 32) | 0)) | 0;\nconst add5L = (Al, Bl, Cl, Dl, El) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0) + (El >>> 0);\nconst add5H = (low, Ah, Bh, Ch, Dh, Eh) => (Ah + Bh + Ch + Dh + Eh + ((low / 2 ** 32) | 0)) | 0;\n// prettier-ignore\nconst u64 = {\n fromBig, split, toBig: exports.toBig,\n shrSH, shrSL,\n rotrSH, rotrSL, rotrBH, rotrBL,\n rotr32H, rotr32L,\n rotlSH, rotlSL, rotlBH, rotlBL,\n add, add3L, add3H, add4L, add4H, add5H, add5L,\n};\nexports.default = u64;\n//# sourceMappingURL=_u64.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sha384 = exports.sha512_256 = exports.sha512_224 = exports.sha512 = exports.SHA512 = void 0;\nconst _sha2_js_1 = require(\"./_sha2.js\");\nconst _u64_js_1 = require(\"./_u64.js\");\nconst utils_js_1 = require(\"./utils.js\");\n// Round contants (first 32 bits of the fractional parts of the cube roots of the first 80 primes 2..409):\n// prettier-ignore\nconst [SHA512_Kh, SHA512_Kl] = _u64_js_1.default.split([\n '0x428a2f98d728ae22', '0x7137449123ef65cd', '0xb5c0fbcfec4d3b2f', '0xe9b5dba58189dbbc',\n '0x3956c25bf348b538', '0x59f111f1b605d019', '0x923f82a4af194f9b', '0xab1c5ed5da6d8118',\n '0xd807aa98a3030242', '0x12835b0145706fbe', '0x243185be4ee4b28c', '0x550c7dc3d5ffb4e2',\n '0x72be5d74f27b896f', '0x80deb1fe3b1696b1', '0x9bdc06a725c71235', '0xc19bf174cf692694',\n '0xe49b69c19ef14ad2', '0xefbe4786384f25e3', '0x0fc19dc68b8cd5b5', '0x240ca1cc77ac9c65',\n '0x2de92c6f592b0275', '0x4a7484aa6ea6e483', '0x5cb0a9dcbd41fbd4', '0x76f988da831153b5',\n '0x983e5152ee66dfab', '0xa831c66d2db43210', '0xb00327c898fb213f', '0xbf597fc7beef0ee4',\n '0xc6e00bf33da88fc2', '0xd5a79147930aa725', '0x06ca6351e003826f', '0x142929670a0e6e70',\n '0x27b70a8546d22ffc', '0x2e1b21385c26c926', '0x4d2c6dfc5ac42aed', '0x53380d139d95b3df',\n '0x650a73548baf63de', '0x766a0abb3c77b2a8', '0x81c2c92e47edaee6', '0x92722c851482353b',\n '0xa2bfe8a14cf10364', '0xa81a664bbc423001', '0xc24b8b70d0f89791', '0xc76c51a30654be30',\n '0xd192e819d6ef5218', '0xd69906245565a910', '0xf40e35855771202a', '0x106aa07032bbd1b8',\n '0x19a4c116b8d2d0c8', '0x1e376c085141ab53', '0x2748774cdf8eeb99', '0x34b0bcb5e19b48a8',\n '0x391c0cb3c5c95a63', '0x4ed8aa4ae3418acb', '0x5b9cca4f7763e373', '0x682e6ff3d6b2b8a3',\n '0x748f82ee5defb2fc', '0x78a5636f43172f60', '0x84c87814a1f0ab72', '0x8cc702081a6439ec',\n '0x90befffa23631e28', '0xa4506cebde82bde9', '0xbef9a3f7b2c67915', '0xc67178f2e372532b',\n '0xca273eceea26619c', '0xd186b8c721c0c207', '0xeada7dd6cde0eb1e', '0xf57d4f7fee6ed178',\n '0x06f067aa72176fba', '0x0a637dc5a2c898a6', '0x113f9804bef90dae', '0x1b710b35131c471b',\n '0x28db77f523047d84', '0x32caab7b40c72493', '0x3c9ebe0a15c9bebc', '0x431d67c49c100d4c',\n '0x4cc5d4becb3e42b6', '0x597f299cfc657e2a', '0x5fcb6fab3ad6faec', '0x6c44198c4a475817'\n].map(n => BigInt(n)));\n// Temporary buffer, not used to store anything between runs\nconst SHA512_W_H = new Uint32Array(80);\nconst SHA512_W_L = new Uint32Array(80);\nclass SHA512 extends _sha2_js_1.SHA2 {\n constructor() {\n super(128, 64, 16, false);\n // We cannot use array here since array allows indexing by variable which means optimizer/compiler cannot use registers.\n // Also looks cleaner and easier to verify with spec.\n // Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = 0x6a09e667 | 0;\n this.Al = 0xf3bcc908 | 0;\n this.Bh = 0xbb67ae85 | 0;\n this.Bl = 0x84caa73b | 0;\n this.Ch = 0x3c6ef372 | 0;\n this.Cl = 0xfe94f82b | 0;\n this.Dh = 0xa54ff53a | 0;\n this.Dl = 0x5f1d36f1 | 0;\n this.Eh = 0x510e527f | 0;\n this.El = 0xade682d1 | 0;\n this.Fh = 0x9b05688c | 0;\n this.Fl = 0x2b3e6c1f | 0;\n this.Gh = 0x1f83d9ab | 0;\n this.Gl = 0xfb41bd6b | 0;\n this.Hh = 0x5be0cd19 | 0;\n this.Hl = 0x137e2179 | 0;\n }\n // prettier-ignore\n get() {\n const { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n return [Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl];\n }\n // prettier-ignore\n set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl) {\n this.Ah = Ah | 0;\n this.Al = Al | 0;\n this.Bh = Bh | 0;\n this.Bl = Bl | 0;\n this.Ch = Ch | 0;\n this.Cl = Cl | 0;\n this.Dh = Dh | 0;\n this.Dl = Dl | 0;\n this.Eh = Eh | 0;\n this.El = El | 0;\n this.Fh = Fh | 0;\n this.Fl = Fl | 0;\n this.Gh = Gh | 0;\n this.Gl = Gl | 0;\n this.Hh = Hh | 0;\n this.Hl = Hl | 0;\n }\n process(view, offset) {\n // Extend the first 16 words into the remaining 64 words w[16..79] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4) {\n SHA512_W_H[i] = view.getUint32(offset);\n SHA512_W_L[i] = view.getUint32((offset += 4));\n }\n for (let i = 16; i < 80; i++) {\n // s0 := (w[i-15] rightrotate 1) xor (w[i-15] rightrotate 8) xor (w[i-15] rightshift 7)\n const W15h = SHA512_W_H[i - 15] | 0;\n const W15l = SHA512_W_L[i - 15] | 0;\n const s0h = _u64_js_1.default.rotrSH(W15h, W15l, 1) ^ _u64_js_1.default.rotrSH(W15h, W15l, 8) ^ _u64_js_1.default.shrSH(W15h, W15l, 7);\n const s0l = _u64_js_1.default.rotrSL(W15h, W15l, 1) ^ _u64_js_1.default.rotrSL(W15h, W15l, 8) ^ _u64_js_1.default.shrSL(W15h, W15l, 7);\n // s1 := (w[i-2] rightrotate 19) xor (w[i-2] rightrotate 61) xor (w[i-2] rightshift 6)\n const W2h = SHA512_W_H[i - 2] | 0;\n const W2l = SHA512_W_L[i - 2] | 0;\n const s1h = _u64_js_1.default.rotrSH(W2h, W2l, 19) ^ _u64_js_1.default.rotrBH(W2h, W2l, 61) ^ _u64_js_1.default.shrSH(W2h, W2l, 6);\n const s1l = _u64_js_1.default.rotrSL(W2h, W2l, 19) ^ _u64_js_1.default.rotrBL(W2h, W2l, 61) ^ _u64_js_1.default.shrSL(W2h, W2l, 6);\n // SHA256_W[i] = s0 + s1 + SHA256_W[i - 7] + SHA256_W[i - 16];\n const SUMl = _u64_js_1.default.add4L(s0l, s1l, SHA512_W_L[i - 7], SHA512_W_L[i - 16]);\n const SUMh = _u64_js_1.default.add4H(SUMl, s0h, s1h, SHA512_W_H[i - 7], SHA512_W_H[i - 16]);\n SHA512_W_H[i] = SUMh | 0;\n SHA512_W_L[i] = SUMl | 0;\n }\n let { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n // Compression function main loop, 80 rounds\n for (let i = 0; i < 80; i++) {\n // S1 := (e rightrotate 14) xor (e rightrotate 18) xor (e rightrotate 41)\n const sigma1h = _u64_js_1.default.rotrSH(Eh, El, 14) ^ _u64_js_1.default.rotrSH(Eh, El, 18) ^ _u64_js_1.default.rotrBH(Eh, El, 41);\n const sigma1l = _u64_js_1.default.rotrSL(Eh, El, 14) ^ _u64_js_1.default.rotrSL(Eh, El, 18) ^ _u64_js_1.default.rotrBL(Eh, El, 41);\n //const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const CHIh = (Eh & Fh) ^ (~Eh & Gh);\n const CHIl = (El & Fl) ^ (~El & Gl);\n // T1 = H + sigma1 + Chi(E, F, G) + SHA512_K[i] + SHA512_W[i]\n // prettier-ignore\n const T1ll = _u64_js_1.default.add5L(Hl, sigma1l, CHIl, SHA512_Kl[i], SHA512_W_L[i]);\n const T1h = _u64_js_1.default.add5H(T1ll, Hh, sigma1h, CHIh, SHA512_Kh[i], SHA512_W_H[i]);\n const T1l = T1ll | 0;\n // S0 := (a rightrotate 28) xor (a rightrotate 34) xor (a rightrotate 39)\n const sigma0h = _u64_js_1.default.rotrSH(Ah, Al, 28) ^ _u64_js_1.default.rotrBH(Ah, Al, 34) ^ _u64_js_1.default.rotrBH(Ah, Al, 39);\n const sigma0l = _u64_js_1.default.rotrSL(Ah, Al, 28) ^ _u64_js_1.default.rotrBL(Ah, Al, 34) ^ _u64_js_1.default.rotrBL(Ah, Al, 39);\n const MAJh = (Ah & Bh) ^ (Ah & Ch) ^ (Bh & Ch);\n const MAJl = (Al & Bl) ^ (Al & Cl) ^ (Bl & Cl);\n Hh = Gh | 0;\n Hl = Gl | 0;\n Gh = Fh | 0;\n Gl = Fl | 0;\n Fh = Eh | 0;\n Fl = El | 0;\n ({ h: Eh, l: El } = _u64_js_1.default.add(Dh | 0, Dl | 0, T1h | 0, T1l | 0));\n Dh = Ch | 0;\n Dl = Cl | 0;\n Ch = Bh | 0;\n Cl = Bl | 0;\n Bh = Ah | 0;\n Bl = Al | 0;\n const All = _u64_js_1.default.add3L(T1l, sigma0l, MAJl);\n Ah = _u64_js_1.default.add3H(All, T1h, sigma0h, MAJh);\n Al = All | 0;\n }\n // Add the compressed chunk to the current hash value\n ({ h: Ah, l: Al } = _u64_js_1.default.add(this.Ah | 0, this.Al | 0, Ah | 0, Al | 0));\n ({ h: Bh, l: Bl } = _u64_js_1.default.add(this.Bh | 0, this.Bl | 0, Bh | 0, Bl | 0));\n ({ h: Ch, l: Cl } = _u64_js_1.default.add(this.Ch | 0, this.Cl | 0, Ch | 0, Cl | 0));\n ({ h: Dh, l: Dl } = _u64_js_1.default.add(this.Dh | 0, this.Dl | 0, Dh | 0, Dl | 0));\n ({ h: Eh, l: El } = _u64_js_1.default.add(this.Eh | 0, this.El | 0, Eh | 0, El | 0));\n ({ h: Fh, l: Fl } = _u64_js_1.default.add(this.Fh | 0, this.Fl | 0, Fh | 0, Fl | 0));\n ({ h: Gh, l: Gl } = _u64_js_1.default.add(this.Gh | 0, this.Gl | 0, Gh | 0, Gl | 0));\n ({ h: Hh, l: Hl } = _u64_js_1.default.add(this.Hh | 0, this.Hl | 0, Hh | 0, Hl | 0));\n this.set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl);\n }\n roundClean() {\n SHA512_W_H.fill(0);\n SHA512_W_L.fill(0);\n }\n destroy() {\n this.buffer.fill(0);\n this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);\n }\n}\nexports.SHA512 = SHA512;\nclass SHA512_224 extends SHA512 {\n constructor() {\n super();\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = 0x8c3d37c8 | 0;\n this.Al = 0x19544da2 | 0;\n this.Bh = 0x73e19966 | 0;\n this.Bl = 0x89dcd4d6 | 0;\n this.Ch = 0x1dfab7ae | 0;\n this.Cl = 0x32ff9c82 | 0;\n this.Dh = 0x679dd514 | 0;\n this.Dl = 0x582f9fcf | 0;\n this.Eh = 0x0f6d2b69 | 0;\n this.El = 0x7bd44da8 | 0;\n this.Fh = 0x77e36f73 | 0;\n this.Fl = 0x04c48942 | 0;\n this.Gh = 0x3f9d85a8 | 0;\n this.Gl = 0x6a1d36c8 | 0;\n this.Hh = 0x1112e6ad | 0;\n this.Hl = 0x91d692a1 | 0;\n this.outputLen = 28;\n }\n}\nclass SHA512_256 extends SHA512 {\n constructor() {\n super();\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = 0x22312194 | 0;\n this.Al = 0xfc2bf72c | 0;\n this.Bh = 0x9f555fa3 | 0;\n this.Bl = 0xc84c64c2 | 0;\n this.Ch = 0x2393b86b | 0;\n this.Cl = 0x6f53b151 | 0;\n this.Dh = 0x96387719 | 0;\n this.Dl = 0x5940eabd | 0;\n this.Eh = 0x96283ee2 | 0;\n this.El = 0xa88effe3 | 0;\n this.Fh = 0xbe5e1e25 | 0;\n this.Fl = 0x53863992 | 0;\n this.Gh = 0x2b0199fc | 0;\n this.Gl = 0x2c85b8aa | 0;\n this.Hh = 0x0eb72ddc | 0;\n this.Hl = 0x81c52ca2 | 0;\n this.outputLen = 32;\n }\n}\nclass SHA384 extends SHA512 {\n constructor() {\n super();\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = 0xcbbb9d5d | 0;\n this.Al = 0xc1059ed8 | 0;\n this.Bh = 0x629a292a | 0;\n this.Bl = 0x367cd507 | 0;\n this.Ch = 0x9159015a | 0;\n this.Cl = 0x3070dd17 | 0;\n this.Dh = 0x152fecd8 | 0;\n this.Dl = 0xf70e5939 | 0;\n this.Eh = 0x67332667 | 0;\n this.El = 0xffc00b31 | 0;\n this.Fh = 0x8eb44a87 | 0;\n this.Fl = 0x68581511 | 0;\n this.Gh = 0xdb0c2e0d | 0;\n this.Gl = 0x64f98fa7 | 0;\n this.Hh = 0x47b5481d | 0;\n this.Hl = 0xbefa4fa4 | 0;\n this.outputLen = 48;\n }\n}\nexports.sha512 = (0, utils_js_1.wrapConstructor)(() => new SHA512());\nexports.sha512_224 = (0, utils_js_1.wrapConstructor)(() => new SHA512_224());\nexports.sha512_256 = (0, utils_js_1.wrapConstructor)(() => new SHA512_256());\nexports.sha384 = (0, utils_js_1.wrapConstructor)(() => new SHA384());\n//# sourceMappingURL=sha512.js.map","\"use strict\";\n/*! scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bytes = exports.stringToBytes = exports.str = exports.bytesToString = exports.hex = exports.utf8 = exports.bech32m = exports.bech32 = exports.base58check = exports.base58xmr = exports.base58xrp = exports.base58flickr = exports.base58 = exports.base64url = exports.base64 = exports.base32crockford = exports.base32hex = exports.base32 = exports.base16 = exports.utils = exports.assertNumber = void 0;\nfunction assertNumber(n) {\n if (!Number.isSafeInteger(n))\n throw new Error(`Wrong integer: ${n}`);\n}\nexports.assertNumber = assertNumber;\nfunction chain(...args) {\n const wrap = (a, b) => (c) => a(b(c));\n const encode = Array.from(args)\n .reverse()\n .reduce((acc, i) => (acc ? wrap(acc, i.encode) : i.encode), undefined);\n const decode = args.reduce((acc, i) => (acc ? wrap(acc, i.decode) : i.decode), undefined);\n return { encode, decode };\n}\nfunction alphabet(alphabet) {\n return {\n encode: (digits) => {\n if (!Array.isArray(digits) || (digits.length && typeof digits[0] !== 'number'))\n throw new Error('alphabet.encode input should be an array of numbers');\n return digits.map((i) => {\n assertNumber(i);\n if (i < 0 || i >= alphabet.length)\n throw new Error(`Digit index outside alphabet: ${i} (alphabet: ${alphabet.length})`);\n return alphabet[i];\n });\n },\n decode: (input) => {\n if (!Array.isArray(input) || (input.length && typeof input[0] !== 'string'))\n throw new Error('alphabet.decode input should be array of strings');\n return input.map((letter) => {\n if (typeof letter !== 'string')\n throw new Error(`alphabet.decode: not string element=${letter}`);\n const index = alphabet.indexOf(letter);\n if (index === -1)\n throw new Error(`Unknown letter: \"${letter}\". Allowed: ${alphabet}`);\n return index;\n });\n },\n };\n}\nfunction join(separator = '') {\n if (typeof separator !== 'string')\n throw new Error('join separator should be string');\n return {\n encode: (from) => {\n if (!Array.isArray(from) || (from.length && typeof from[0] !== 'string'))\n throw new Error('join.encode input should be array of strings');\n for (let i of from)\n if (typeof i !== 'string')\n throw new Error(`join.encode: non-string input=${i}`);\n return from.join(separator);\n },\n decode: (to) => {\n if (typeof to !== 'string')\n throw new Error('join.decode input should be string');\n return to.split(separator);\n },\n };\n}\nfunction padding(bits, chr = '=') {\n assertNumber(bits);\n if (typeof chr !== 'string')\n throw new Error('padding chr should be string');\n return {\n encode(data) {\n if (!Array.isArray(data) || (data.length && typeof data[0] !== 'string'))\n throw new Error('padding.encode input should be array of strings');\n for (let i of data)\n if (typeof i !== 'string')\n throw new Error(`padding.encode: non-string input=${i}`);\n while ((data.length * bits) % 8)\n data.push(chr);\n return data;\n },\n decode(input) {\n if (!Array.isArray(input) || (input.length && typeof input[0] !== 'string'))\n throw new Error('padding.encode input should be array of strings');\n for (let i of input)\n if (typeof i !== 'string')\n throw new Error(`padding.decode: non-string input=${i}`);\n let end = input.length;\n if ((end * bits) % 8)\n throw new Error('Invalid padding: string should have whole number of bytes');\n for (; end > 0 && input[end - 1] === chr; end--) {\n if (!(((end - 1) * bits) % 8))\n throw new Error('Invalid padding: string has too much padding');\n }\n return input.slice(0, end);\n },\n };\n}\nfunction normalize(fn) {\n if (typeof fn !== 'function')\n throw new Error('normalize fn should be function');\n return { encode: (from) => from, decode: (to) => fn(to) };\n}\nfunction convertRadix(data, from, to) {\n if (from < 2)\n throw new Error(`convertRadix: wrong from=${from}, base cannot be less than 2`);\n if (to < 2)\n throw new Error(`convertRadix: wrong to=${to}, base cannot be less than 2`);\n if (!Array.isArray(data))\n throw new Error('convertRadix: data should be array');\n if (!data.length)\n return [];\n let pos = 0;\n const res = [];\n const digits = Array.from(data);\n digits.forEach((d) => {\n assertNumber(d);\n if (d < 0 || d >= from)\n throw new Error(`Wrong integer: ${d}`);\n });\n while (true) {\n let carry = 0;\n let done = true;\n for (let i = pos; i < digits.length; i++) {\n const digit = digits[i];\n const digitBase = from * carry + digit;\n if (!Number.isSafeInteger(digitBase) ||\n (from * carry) / from !== carry ||\n digitBase - digit !== from * carry) {\n throw new Error('convertRadix: carry overflow');\n }\n carry = digitBase % to;\n digits[i] = Math.floor(digitBase / to);\n if (!Number.isSafeInteger(digits[i]) || digits[i] * to + carry !== digitBase)\n throw new Error('convertRadix: carry overflow');\n if (!done)\n continue;\n else if (!digits[i])\n pos = i;\n else\n done = false;\n }\n res.push(carry);\n if (done)\n break;\n }\n for (let i = 0; i < data.length - 1 && data[i] === 0; i++)\n res.push(0);\n return res.reverse();\n}\nconst gcd = (a, b) => (!b ? a : gcd(b, a % b));\nconst radix2carry = (from, to) => from + (to - gcd(from, to));\nfunction convertRadix2(data, from, to, padding) {\n if (!Array.isArray(data))\n throw new Error('convertRadix2: data should be array');\n if (from <= 0 || from > 32)\n throw new Error(`convertRadix2: wrong from=${from}`);\n if (to <= 0 || to > 32)\n throw new Error(`convertRadix2: wrong to=${to}`);\n if (radix2carry(from, to) > 32) {\n throw new Error(`convertRadix2: carry overflow from=${from} to=${to} carryBits=${radix2carry(from, to)}`);\n }\n let carry = 0;\n let pos = 0;\n const mask = 2 ** to - 1;\n const res = [];\n for (const n of data) {\n assertNumber(n);\n if (n >= 2 ** from)\n throw new Error(`convertRadix2: invalid data word=${n} from=${from}`);\n carry = (carry << from) | n;\n if (pos + from > 32)\n throw new Error(`convertRadix2: carry overflow pos=${pos} from=${from}`);\n pos += from;\n for (; pos >= to; pos -= to)\n res.push(((carry >> (pos - to)) & mask) >>> 0);\n carry &= 2 ** pos - 1;\n }\n carry = (carry << (to - pos)) & mask;\n if (!padding && pos >= from)\n throw new Error('Excess padding');\n if (!padding && carry)\n throw new Error(`Non-zero padding: ${carry}`);\n if (padding && pos > 0)\n res.push(carry >>> 0);\n return res;\n}\nfunction radix(num) {\n assertNumber(num);\n return {\n encode: (bytes) => {\n if (!(bytes instanceof Uint8Array))\n throw new Error('radix.encode input should be Uint8Array');\n return convertRadix(Array.from(bytes), 2 ** 8, num);\n },\n decode: (digits) => {\n if (!Array.isArray(digits) || (digits.length && typeof digits[0] !== 'number'))\n throw new Error('radix.decode input should be array of strings');\n return Uint8Array.from(convertRadix(digits, num, 2 ** 8));\n },\n };\n}\nfunction radix2(bits, revPadding = false) {\n assertNumber(bits);\n if (bits <= 0 || bits > 32)\n throw new Error('radix2: bits should be in (0..32]');\n if (radix2carry(8, bits) > 32 || radix2carry(bits, 8) > 32)\n throw new Error('radix2: carry overflow');\n return {\n encode: (bytes) => {\n if (!(bytes instanceof Uint8Array))\n throw new Error('radix2.encode input should be Uint8Array');\n return convertRadix2(Array.from(bytes), 8, bits, !revPadding);\n },\n decode: (digits) => {\n if (!Array.isArray(digits) || (digits.length && typeof digits[0] !== 'number'))\n throw new Error('radix2.decode input should be array of strings');\n return Uint8Array.from(convertRadix2(digits, bits, 8, revPadding));\n },\n };\n}\nfunction unsafeWrapper(fn) {\n if (typeof fn !== 'function')\n throw new Error('unsafeWrapper fn should be function');\n return function (...args) {\n try {\n return fn.apply(null, args);\n }\n catch (e) { }\n };\n}\nfunction checksum(len, fn) {\n assertNumber(len);\n if (typeof fn !== 'function')\n throw new Error('checksum fn should be function');\n return {\n encode(data) {\n if (!(data instanceof Uint8Array))\n throw new Error('checksum.encode: input should be Uint8Array');\n const checksum = fn(data).slice(0, len);\n const res = new Uint8Array(data.length + len);\n res.set(data);\n res.set(checksum, data.length);\n return res;\n },\n decode(data) {\n if (!(data instanceof Uint8Array))\n throw new Error('checksum.decode: input should be Uint8Array');\n const payload = data.slice(0, -len);\n const newChecksum = fn(payload).slice(0, len);\n const oldChecksum = data.slice(-len);\n for (let i = 0; i < len; i++)\n if (newChecksum[i] !== oldChecksum[i])\n throw new Error('Invalid checksum');\n return payload;\n },\n };\n}\nexports.utils = { alphabet, chain, checksum, radix, radix2, join, padding };\nexports.base16 = chain(radix2(4), alphabet('0123456789ABCDEF'), join(''));\nexports.base32 = chain(radix2(5), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZ234567'), padding(5), join(''));\nexports.base32hex = chain(radix2(5), alphabet('0123456789ABCDEFGHIJKLMNOPQRSTUV'), padding(5), join(''));\nexports.base32crockford = chain(radix2(5), alphabet('0123456789ABCDEFGHJKMNPQRSTVWXYZ'), join(''), normalize((s) => s.toUpperCase().replace(/O/g, '0').replace(/[IL]/g, '1')));\nexports.base64 = chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'), padding(6), join(''));\nexports.base64url = chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_'), padding(6), join(''));\nconst genBase58 = (abc) => chain(radix(58), alphabet(abc), join(''));\nexports.base58 = genBase58('123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz');\nexports.base58flickr = genBase58('123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ');\nexports.base58xrp = genBase58('rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz');\nconst XMR_BLOCK_LEN = [0, 2, 3, 5, 6, 7, 9, 10, 11];\nexports.base58xmr = {\n encode(data) {\n let res = '';\n for (let i = 0; i < data.length; i += 8) {\n const block = data.subarray(i, i + 8);\n res += exports.base58.encode(block).padStart(XMR_BLOCK_LEN[block.length], '1');\n }\n return res;\n },\n decode(str) {\n let res = [];\n for (let i = 0; i < str.length; i += 11) {\n const slice = str.slice(i, i + 11);\n const blockLen = XMR_BLOCK_LEN.indexOf(slice.length);\n const block = exports.base58.decode(slice);\n for (let j = 0; j < block.length - blockLen; j++) {\n if (block[j] !== 0)\n throw new Error('base58xmr: wrong padding');\n }\n res = res.concat(Array.from(block.slice(block.length - blockLen)));\n }\n return Uint8Array.from(res);\n },\n};\nconst base58check = (sha256) => chain(checksum(4, (data) => sha256(sha256(data))), exports.base58);\nexports.base58check = base58check;\nconst BECH_ALPHABET = chain(alphabet('qpzry9x8gf2tvdw0s3jn54khce6mua7l'), join(''));\nconst POLYMOD_GENERATORS = [0x3b6a57b2, 0x26508e6d, 0x1ea119fa, 0x3d4233dd, 0x2a1462b3];\nfunction bech32Polymod(pre) {\n const b = pre >> 25;\n let chk = (pre & 0x1ffffff) << 5;\n for (let i = 0; i < POLYMOD_GENERATORS.length; i++) {\n if (((b >> i) & 1) === 1)\n chk ^= POLYMOD_GENERATORS[i];\n }\n return chk;\n}\nfunction bechChecksum(prefix, words, encodingConst = 1) {\n const len = prefix.length;\n let chk = 1;\n for (let i = 0; i < len; i++) {\n const c = prefix.charCodeAt(i);\n if (c < 33 || c > 126)\n throw new Error(`Invalid prefix (${prefix})`);\n chk = bech32Polymod(chk) ^ (c >> 5);\n }\n chk = bech32Polymod(chk);\n for (let i = 0; i < len; i++)\n chk = bech32Polymod(chk) ^ (prefix.charCodeAt(i) & 0x1f);\n for (let v of words)\n chk = bech32Polymod(chk) ^ v;\n for (let i = 0; i < 6; i++)\n chk = bech32Polymod(chk);\n chk ^= encodingConst;\n return BECH_ALPHABET.encode(convertRadix2([chk % 2 ** 30], 30, 5, false));\n}\nfunction genBech32(encoding) {\n const ENCODING_CONST = encoding === 'bech32' ? 1 : 0x2bc830a3;\n const _words = radix2(5);\n const fromWords = _words.decode;\n const toWords = _words.encode;\n const fromWordsUnsafe = unsafeWrapper(fromWords);\n function encode(prefix, words, limit = 90) {\n if (typeof prefix !== 'string')\n throw new Error(`bech32.encode prefix should be string, not ${typeof prefix}`);\n if (!Array.isArray(words) || (words.length && typeof words[0] !== 'number'))\n throw new Error(`bech32.encode words should be array of numbers, not ${typeof words}`);\n const actualLength = prefix.length + 7 + words.length;\n if (limit !== false && actualLength > limit)\n throw new TypeError(`Length ${actualLength} exceeds limit ${limit}`);\n prefix = prefix.toLowerCase();\n return `${prefix}1${BECH_ALPHABET.encode(words)}${bechChecksum(prefix, words, ENCODING_CONST)}`;\n }\n function decode(str, limit = 90) {\n if (typeof str !== 'string')\n throw new Error(`bech32.decode input should be string, not ${typeof str}`);\n if (str.length < 8 || (limit !== false && str.length > limit))\n throw new TypeError(`Wrong string length: ${str.length} (${str}). Expected (8..${limit})`);\n const lowered = str.toLowerCase();\n if (str !== lowered && str !== str.toUpperCase())\n throw new Error(`String must be lowercase or uppercase`);\n str = lowered;\n const sepIndex = str.lastIndexOf('1');\n if (sepIndex === 0 || sepIndex === -1)\n throw new Error(`Letter \"1\" must be present between prefix and data only`);\n const prefix = str.slice(0, sepIndex);\n const _words = str.slice(sepIndex + 1);\n if (_words.length < 6)\n throw new Error('Data must be at least 6 characters long');\n const words = BECH_ALPHABET.decode(_words).slice(0, -6);\n const sum = bechChecksum(prefix, words, ENCODING_CONST);\n if (!_words.endsWith(sum))\n throw new Error(`Invalid checksum in ${str}: expected \"${sum}\"`);\n return { prefix, words };\n }\n const decodeUnsafe = unsafeWrapper(decode);\n function decodeToBytes(str) {\n const { prefix, words } = decode(str, false);\n return { prefix, words, bytes: fromWords(words) };\n }\n return { encode, decode, decodeToBytes, decodeUnsafe, fromWords, fromWordsUnsafe, toWords };\n}\nexports.bech32 = genBech32('bech32');\nexports.bech32m = genBech32('bech32m');\nexports.utf8 = {\n encode: (data) => new TextDecoder().decode(data),\n decode: (str) => new TextEncoder().encode(str),\n};\nexports.hex = chain(radix2(4), alphabet('0123456789abcdef'), join(''), normalize((s) => {\n if (typeof s !== 'string' || s.length % 2)\n throw new TypeError(`hex.decode: expected string, got ${typeof s} with length ${s.length}`);\n return s.toLowerCase();\n}));\nconst CODERS = {\n utf8: exports.utf8, hex: exports.hex, base16: exports.base16, base32: exports.base32, base64: exports.base64, base64url: exports.base64url, base58: exports.base58, base58xmr: exports.base58xmr\n};\nconst coderTypeError = `Invalid encoding type. Available types: ${Object.keys(CODERS).join(', ')}`;\nconst bytesToString = (type, bytes) => {\n if (typeof type !== 'string' || !CODERS.hasOwnProperty(type))\n throw new TypeError(coderTypeError);\n if (!(bytes instanceof Uint8Array))\n throw new TypeError('bytesToString() expects Uint8Array');\n return CODERS[type].encode(bytes);\n};\nexports.bytesToString = bytesToString;\nexports.str = exports.bytesToString;\nconst stringToBytes = (type, str) => {\n if (!CODERS.hasOwnProperty(type))\n throw new TypeError(coderTypeError);\n if (typeof str !== 'string')\n throw new TypeError('stringToBytes() expects string');\n return CODERS[type].decode(str);\n};\nexports.stringToBytes = stringToBytes;\nexports.bytes = exports.stringToBytes;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.mnemonicToSeedSync = exports.mnemonicToSeed = exports.validateMnemonic = exports.entropyToMnemonic = exports.mnemonicToEntropy = exports.generateMnemonic = void 0;\n/*! scure-bip39 - MIT License (c) 2022 Patricio Palladino, Paul Miller (paulmillr.com) */\nconst _assert_1 = require(\"@noble/hashes/_assert\");\nconst pbkdf2_1 = require(\"@noble/hashes/pbkdf2\");\nconst sha256_1 = require(\"@noble/hashes/sha256\");\nconst sha512_1 = require(\"@noble/hashes/sha512\");\nconst utils_1 = require(\"@noble/hashes/utils\");\nconst base_1 = require(\"@scure/base\");\n// Japanese wordlist\nconst isJapanese = (wordlist) => wordlist[0] === '\\u3042\\u3044\\u3053\\u304f\\u3057\\u3093';\n// Normalization replaces equivalent sequences of characters\n// so that any two texts that are equivalent will be reduced\n// to the same sequence of code points, called the normal form of the original text.\nfunction nfkd(str) {\n if (typeof str !== 'string')\n throw new TypeError(`Invalid mnemonic type: ${typeof str}`);\n return str.normalize('NFKD');\n}\nfunction normalize(str) {\n const norm = nfkd(str);\n const words = norm.split(' ');\n if (![12, 15, 18, 21, 24].includes(words.length))\n throw new Error('Invalid mnemonic');\n return { nfkd: norm, words };\n}\nfunction assertEntropy(entropy) {\n _assert_1.default.bytes(entropy, 16, 20, 24, 28, 32);\n}\n/**\n * Generate x random words. Uses Cryptographically-Secure Random Number Generator.\n * @param wordlist imported wordlist for specific language\n * @param strength mnemonic strength 128-256 bits\n * @example\n * generateMnemonic(wordlist, 128)\n * // 'legal winner thank year wave sausage worth useful legal winner thank yellow'\n */\nfunction generateMnemonic(wordlist, strength = 128) {\n _assert_1.default.number(strength);\n if (strength % 32 !== 0 || strength > 256)\n throw new TypeError('Invalid entropy');\n return entropyToMnemonic((0, utils_1.randomBytes)(strength / 8), wordlist);\n}\nexports.generateMnemonic = generateMnemonic;\nconst calcChecksum = (entropy) => {\n // Checksum is ent.length/4 bits long\n const bitsLeft = 8 - entropy.length / 4;\n // Zero rightmost \"bitsLeft\" bits in byte\n // For example: bitsLeft=4 val=10111101 -> 10110000\n return new Uint8Array([((0, sha256_1.sha256)(entropy)[0] >> bitsLeft) << bitsLeft]);\n};\nfunction getCoder(wordlist) {\n if (!Array.isArray(wordlist) || wordlist.length !== 2048 || typeof wordlist[0] !== 'string')\n throw new Error('Worlist: expected array of 2048 strings');\n wordlist.forEach((i) => {\n if (typeof i !== 'string')\n throw new Error(`Wordlist: non-string element: ${i}`);\n });\n return base_1.utils.chain(base_1.utils.checksum(1, calcChecksum), base_1.utils.radix2(11, true), base_1.utils.alphabet(wordlist));\n}\n/**\n * Reversible: Converts mnemonic string to raw entropy in form of byte array.\n * @param mnemonic 12-24 words\n * @param wordlist imported wordlist for specific language\n * @example\n * const mnem = 'legal winner thank year wave sausage worth useful legal winner thank yellow';\n * mnemonicToEntropy(mnem, wordlist)\n * // Produces\n * new Uint8Array([\n * 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,\n * 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f\n * ])\n */\nfunction mnemonicToEntropy(mnemonic, wordlist) {\n const { words } = normalize(mnemonic);\n const entropy = getCoder(wordlist).decode(words);\n assertEntropy(entropy);\n return entropy;\n}\nexports.mnemonicToEntropy = mnemonicToEntropy;\n/**\n * Reversible: Converts raw entropy in form of byte array to mnemonic string.\n * @param entropy byte array\n * @param wordlist imported wordlist for specific language\n * @returns 12-24 words\n * @example\n * const ent = new Uint8Array([\n * 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,\n * 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f\n * ]);\n * entropyToMnemonic(ent, wordlist);\n * // 'legal winner thank year wave sausage worth useful legal winner thank yellow'\n */\nfunction entropyToMnemonic(entropy, wordlist) {\n assertEntropy(entropy);\n const words = getCoder(wordlist).encode(entropy);\n return words.join(isJapanese(wordlist) ? '\\u3000' : ' ');\n}\nexports.entropyToMnemonic = entropyToMnemonic;\n/**\n * Validates mnemonic for being 12-24 words contained in `wordlist`.\n */\nfunction validateMnemonic(mnemonic, wordlist) {\n try {\n mnemonicToEntropy(mnemonic, wordlist);\n }\n catch (e) {\n return false;\n }\n return true;\n}\nexports.validateMnemonic = validateMnemonic;\nconst salt = (passphrase) => nfkd(`mnemonic${passphrase}`);\n/**\n * Irreversible: Uses KDF to derive 64 bytes of key data from mnemonic + optional password.\n * @param mnemonic 12-24 words\n * @param passphrase string that will additionally protect the key\n * @returns 64 bytes of key data\n * @example\n * const mnem = 'legal winner thank year wave sausage worth useful legal winner thank yellow';\n * await mnemonicToSeed(mnem, 'password');\n * // new Uint8Array([...64 bytes])\n */\nfunction mnemonicToSeed(mnemonic, passphrase = '') {\n return (0, pbkdf2_1.pbkdf2Async)(sha512_1.sha512, normalize(mnemonic).nfkd, salt(passphrase), { c: 2048, dkLen: 64 });\n}\nexports.mnemonicToSeed = mnemonicToSeed;\n/**\n * Irreversible: Uses KDF to derive 64 bytes of key data from mnemonic + optional password.\n * @param mnemonic 12-24 words\n * @param passphrase string that will additionally protect the key\n * @returns 64 bytes of key data\n * @example\n * const mnem = 'legal winner thank year wave sausage worth useful legal winner thank yellow';\n * mnemonicToSeedSync(mnem, 'password');\n * // new Uint8Array([...64 bytes])\n */\nfunction mnemonicToSeedSync(mnemonic, passphrase = '') {\n return (0, pbkdf2_1.pbkdf2)(sha512_1.sha512, normalize(mnemonic).nfkd, salt(passphrase), { c: 2048, dkLen: 64 });\n}\nexports.mnemonicToSeedSync = mnemonicToSeedSync;\n","export function number(n) {\n if (!Number.isSafeInteger(n) || n < 0)\n throw new Error(`Wrong positive integer: ${n}`);\n}\nexport function bool(b) {\n if (typeof b !== 'boolean')\n throw new Error(`Expected boolean, not ${b}`);\n}\nexport function bytes(b, ...lengths) {\n if (!(b instanceof Uint8Array))\n throw new TypeError('Expected Uint8Array');\n if (lengths.length > 0 && !lengths.includes(b.length))\n throw new TypeError(`Expected Uint8Array of length ${lengths}, not of length=${b.length}`);\n}\nexport function hash(hash) {\n if (typeof hash !== 'function' || typeof hash.create !== 'function')\n throw new Error('Hash should be wrapped by utils.wrapConstructor');\n number(hash.outputLen);\n number(hash.blockLen);\n}\nexport function exists(instance, checkFinished = true) {\n if (instance.destroyed)\n throw new Error('Hash instance has been destroyed');\n if (checkFinished && instance.finished)\n throw new Error('Hash#digest() has already been called');\n}\nexport function output(out, instance) {\n bytes(out);\n const min = instance.outputLen;\n if (out.length < min) {\n throw new Error(`digestInto() expects output buffer of length at least ${min}`);\n }\n}\nconst assert = {\n number,\n bool,\n bytes,\n hash,\n exists,\n output,\n};\nexport default assert;\n//# sourceMappingURL=_assert.js.map","/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// The import here is via the package name. This is to ensure\n// that exports mapping/resolution does fall into place.\nimport { crypto } from '@noble/hashes/crypto';\n// Cast array to different type\nexport const u8 = (arr) => new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\nexport const u32 = (arr) => new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\n// Cast array to view\nexport const createView = (arr) => new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n// The rotate right (circular right shift) operation for uint32\nexport const rotr = (word, shift) => (word << (32 - shift)) | (word >>> shift);\nexport const isLE = new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44;\n// There is almost no big endian hardware, but js typed arrays uses platform specific endianness.\n// So, just to be sure not to corrupt anything.\nif (!isLE)\n throw new Error('Non little-endian hardware is not supported');\nconst hexes = Array.from({ length: 256 }, (v, i) => i.toString(16).padStart(2, '0'));\n/**\n * @example bytesToHex(Uint8Array.from([0xde, 0xad, 0xbe, 0xef]))\n */\nexport function bytesToHex(uint8a) {\n // pre-caching improves the speed 6x\n if (!(uint8a instanceof Uint8Array))\n throw new Error('Uint8Array expected');\n let hex = '';\n for (let i = 0; i < uint8a.length; i++) {\n hex += hexes[uint8a[i]];\n }\n return hex;\n}\n/**\n * @example hexToBytes('deadbeef')\n */\nexport function hexToBytes(hex) {\n if (typeof hex !== 'string') {\n throw new TypeError('hexToBytes: expected string, got ' + typeof hex);\n }\n if (hex.length % 2)\n throw new Error('hexToBytes: received invalid unpadded hex');\n const array = new Uint8Array(hex.length / 2);\n for (let i = 0; i < array.length; i++) {\n const j = i * 2;\n const hexByte = hex.slice(j, j + 2);\n const byte = Number.parseInt(hexByte, 16);\n if (Number.isNaN(byte) || byte < 0)\n throw new Error('Invalid byte sequence');\n array[i] = byte;\n }\n return array;\n}\n// There is no setImmediate in browser and setTimeout is slow. However, call to async function will return Promise\n// which will be fullfiled only on next scheduler queue processing step and this is exactly what we need.\nexport const nextTick = async () => { };\n// Returns control to thread each 'tick' ms to avoid blocking\nexport async function asyncLoop(iters, tick, cb) {\n let ts = Date.now();\n for (let i = 0; i < iters; i++) {\n cb(i);\n // Date.now() is not monotonic, so in case if clock goes backwards we return return control too\n const diff = Date.now() - ts;\n if (diff >= 0 && diff < tick)\n continue;\n await nextTick();\n ts += diff;\n }\n}\nexport function utf8ToBytes(str) {\n if (typeof str !== 'string') {\n throw new TypeError(`utf8ToBytes expected string, got ${typeof str}`);\n }\n return new TextEncoder().encode(str);\n}\nexport function toBytes(data) {\n if (typeof data === 'string')\n data = utf8ToBytes(data);\n if (!(data instanceof Uint8Array))\n throw new TypeError(`Expected input type is Uint8Array (got ${typeof data})`);\n return data;\n}\n/**\n * Concats Uint8Array-s into one; like `Buffer.concat([buf1, buf2])`\n * @example concatBytes(buf1, buf2)\n */\nexport function concatBytes(...arrays) {\n if (!arrays.every((a) => a instanceof Uint8Array))\n throw new Error('Uint8Array list expected');\n if (arrays.length === 1)\n return arrays[0];\n const length = arrays.reduce((a, arr) => a + arr.length, 0);\n const result = new Uint8Array(length);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const arr = arrays[i];\n result.set(arr, pad);\n pad += arr.length;\n }\n return result;\n}\n// For runtime check if class implements interface\nexport class Hash {\n // Safe version that clones internal state\n clone() {\n return this._cloneInto();\n }\n}\n// Check if object doens't have custom constructor (like Uint8Array/Array)\nconst isPlainObject = (obj) => Object.prototype.toString.call(obj) === '[object Object]' && obj.constructor === Object;\nexport function checkOpts(defaults, opts) {\n if (opts !== undefined && (typeof opts !== 'object' || !isPlainObject(opts)))\n throw new TypeError('Options should be object or undefined');\n const merged = Object.assign(defaults, opts);\n return merged;\n}\nexport function wrapConstructor(hashConstructor) {\n const hashC = (message) => hashConstructor().update(toBytes(message)).digest();\n const tmp = hashConstructor();\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = () => hashConstructor();\n return hashC;\n}\nexport function wrapConstructorWithOpts(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\n/**\n * Secure PRNG\n */\nexport function randomBytes(bytesLength = 32) {\n if (crypto.web) {\n return crypto.web.getRandomValues(new Uint8Array(bytesLength));\n }\n else if (crypto.node) {\n return new Uint8Array(crypto.node.randomBytes(bytesLength).buffer);\n }\n else {\n throw new Error(\"The environment doesn't have randomBytes function\");\n }\n}\n//# sourceMappingURL=utils.js.map","import assert from './_assert.js';\nimport { Hash, toBytes } from './utils.js';\n// HMAC (RFC 2104)\nclass HMAC extends Hash {\n constructor(hash, _key) {\n super();\n this.finished = false;\n this.destroyed = false;\n assert.hash(hash);\n const key = toBytes(_key);\n this.iHash = hash.create();\n if (typeof this.iHash.update !== 'function')\n throw new TypeError('Expected instance of class which extends utils.Hash');\n this.blockLen = this.iHash.blockLen;\n this.outputLen = this.iHash.outputLen;\n const blockLen = this.blockLen;\n const pad = new Uint8Array(blockLen);\n // blockLen can be bigger than outputLen\n pad.set(key.length > blockLen ? hash.create().update(key).digest() : key);\n for (let i = 0; i < pad.length; i++)\n pad[i] ^= 0x36;\n this.iHash.update(pad);\n // By doing update (processing of first block) of outer hash here we can re-use it between multiple calls via clone\n this.oHash = hash.create();\n // Undo internal XOR && apply outer XOR\n for (let i = 0; i < pad.length; i++)\n pad[i] ^= 0x36 ^ 0x5c;\n this.oHash.update(pad);\n pad.fill(0);\n }\n update(buf) {\n assert.exists(this);\n this.iHash.update(buf);\n return this;\n }\n digestInto(out) {\n assert.exists(this);\n assert.bytes(out, this.outputLen);\n this.finished = true;\n this.iHash.digestInto(out);\n this.oHash.update(out);\n this.oHash.digestInto(out);\n this.destroy();\n }\n digest() {\n const out = new Uint8Array(this.oHash.outputLen);\n this.digestInto(out);\n return out;\n }\n _cloneInto(to) {\n // Create new instance without calling constructor since key already in state and we don't know it.\n to || (to = Object.create(Object.getPrototypeOf(this), {}));\n const { oHash, iHash, finished, destroyed, blockLen, outputLen } = this;\n to = to;\n to.finished = finished;\n to.destroyed = destroyed;\n to.blockLen = blockLen;\n to.outputLen = outputLen;\n to.oHash = oHash._cloneInto(to.oHash);\n to.iHash = iHash._cloneInto(to.iHash);\n return to;\n }\n destroy() {\n this.destroyed = true;\n this.oHash.destroy();\n this.iHash.destroy();\n }\n}\n/**\n * HMAC: RFC2104 message authentication code.\n * @param hash - function that would be used e.g. sha256\n * @param key - message key\n * @param message - message data\n */\nexport const hmac = (hash, key, message) => new HMAC(hash, key).update(message).digest();\nhmac.create = (hash, key) => new HMAC(hash, key);\n//# sourceMappingURL=hmac.js.map","import assert from './_assert.js';\nimport { Hash, createView, toBytes } from './utils.js';\n// Polyfill for Safari 14\nfunction setBigUint64(view, byteOffset, value, isLE) {\n if (typeof view.setBigUint64 === 'function')\n return view.setBigUint64(byteOffset, value, isLE);\n const _32n = BigInt(32);\n const _u32_max = BigInt(0xffffffff);\n const wh = Number((value >> _32n) & _u32_max);\n const wl = Number(value & _u32_max);\n const h = isLE ? 4 : 0;\n const l = isLE ? 0 : 4;\n view.setUint32(byteOffset + h, wh, isLE);\n view.setUint32(byteOffset + l, wl, isLE);\n}\n// Base SHA2 class (RFC 6234)\nexport class SHA2 extends Hash {\n constructor(blockLen, outputLen, padOffset, isLE) {\n super();\n this.blockLen = blockLen;\n this.outputLen = outputLen;\n this.padOffset = padOffset;\n this.isLE = isLE;\n this.finished = false;\n this.length = 0;\n this.pos = 0;\n this.destroyed = false;\n this.buffer = new Uint8Array(blockLen);\n this.view = createView(this.buffer);\n }\n update(data) {\n assert.exists(this);\n const { view, buffer, blockLen } = this;\n data = toBytes(data);\n const len = data.length;\n for (let pos = 0; pos < len;) {\n const take = Math.min(blockLen - this.pos, len - pos);\n // Fast path: we have at least one block in input, cast it to view and process\n if (take === blockLen) {\n const dataView = createView(data);\n for (; blockLen <= len - pos; pos += blockLen)\n this.process(dataView, pos);\n continue;\n }\n buffer.set(data.subarray(pos, pos + take), this.pos);\n this.pos += take;\n pos += take;\n if (this.pos === blockLen) {\n this.process(view, 0);\n this.pos = 0;\n }\n }\n this.length += data.length;\n this.roundClean();\n return this;\n }\n digestInto(out) {\n assert.exists(this);\n assert.output(out, this);\n this.finished = true;\n // Padding\n // We can avoid allocation of buffer for padding completely if it\n // was previously not allocated here. But it won't change performance.\n const { buffer, view, blockLen, isLE } = this;\n let { pos } = this;\n // append the bit '1' to the message\n buffer[pos++] = 0b10000000;\n this.buffer.subarray(pos).fill(0);\n // we have less than padOffset left in buffer, so we cannot put length in current block, need process it and pad again\n if (this.padOffset > blockLen - pos) {\n this.process(view, 0);\n pos = 0;\n }\n // Pad until full block byte with zeros\n for (let i = pos; i < blockLen; i++)\n buffer[i] = 0;\n // Note: sha512 requires length to be 128bit integer, but length in JS will overflow before that\n // You need to write around 2 exabytes (u64_max / 8 / (1024**6)) for this to happen.\n // So we just write lowest 64 bits of that value.\n setBigUint64(view, blockLen - 8, BigInt(this.length * 8), isLE);\n this.process(view, 0);\n const oview = createView(out);\n const len = this.outputLen;\n // NOTE: we do division by 4 later, which should be fused in single op with modulo by JIT\n if (len % 4)\n throw new Error('_sha2: outputLen should be aligned to 32bit');\n const outLen = len / 4;\n const state = this.get();\n if (outLen > state.length)\n throw new Error('_sha2: outputLen bigger than state');\n for (let i = 0; i < outLen; i++)\n oview.setUint32(4 * i, state[i], isLE);\n }\n digest() {\n const { buffer, outputLen } = this;\n this.digestInto(buffer);\n const res = buffer.slice(0, outputLen);\n this.destroy();\n return res;\n }\n _cloneInto(to) {\n to || (to = new this.constructor());\n to.set(...this.get());\n const { blockLen, buffer, length, finished, destroyed, pos } = this;\n to.length = length;\n to.pos = pos;\n to.finished = finished;\n to.destroyed = destroyed;\n if (length % blockLen)\n to.buffer.set(buffer);\n return to;\n }\n}\n//# sourceMappingURL=_sha2.js.map","import { SHA2 } from './_sha2.js';\nimport { wrapConstructor } from './utils.js';\n// https://homes.esat.kuleuven.be/~bosselae/ripemd160.html\n// https://homes.esat.kuleuven.be/~bosselae/ripemd160/pdf/AB-9601/AB-9601.pdf\nconst Rho = new Uint8Array([7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8]);\nconst Id = Uint8Array.from({ length: 16 }, (_, i) => i);\nconst Pi = Id.map((i) => (9 * i + 5) % 16);\nlet idxL = [Id];\nlet idxR = [Pi];\nfor (let i = 0; i < 4; i++)\n for (let j of [idxL, idxR])\n j.push(j[i].map((k) => Rho[k]));\nconst shifts = [\n [11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8],\n [12, 13, 11, 15, 6, 9, 9, 7, 12, 15, 11, 13, 7, 8, 7, 7],\n [13, 15, 14, 11, 7, 7, 6, 8, 13, 14, 13, 12, 5, 5, 6, 9],\n [14, 11, 12, 14, 8, 6, 5, 5, 15, 12, 15, 14, 9, 9, 8, 6],\n [15, 12, 13, 13, 9, 5, 8, 6, 14, 11, 12, 11, 8, 6, 5, 5],\n].map((i) => new Uint8Array(i));\nconst shiftsL = idxL.map((idx, i) => idx.map((j) => shifts[i][j]));\nconst shiftsR = idxR.map((idx, i) => idx.map((j) => shifts[i][j]));\nconst Kl = new Uint32Array([0x00000000, 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xa953fd4e]);\nconst Kr = new Uint32Array([0x50a28be6, 0x5c4dd124, 0x6d703ef3, 0x7a6d76e9, 0x00000000]);\n// The rotate left (circular left shift) operation for uint32\nconst rotl = (word, shift) => (word << shift) | (word >>> (32 - shift));\n// It's called f() in spec.\nfunction f(group, x, y, z) {\n if (group === 0)\n return x ^ y ^ z;\n else if (group === 1)\n return (x & y) | (~x & z);\n else if (group === 2)\n return (x | ~y) ^ z;\n else if (group === 3)\n return (x & z) | (y & ~z);\n else\n return x ^ (y | ~z);\n}\n// Temporary buffer, not used to store anything between runs\nconst BUF = new Uint32Array(16);\nexport class RIPEMD160 extends SHA2 {\n constructor() {\n super(64, 20, 8, true);\n this.h0 = 0x67452301 | 0;\n this.h1 = 0xefcdab89 | 0;\n this.h2 = 0x98badcfe | 0;\n this.h3 = 0x10325476 | 0;\n this.h4 = 0xc3d2e1f0 | 0;\n }\n get() {\n const { h0, h1, h2, h3, h4 } = this;\n return [h0, h1, h2, h3, h4];\n }\n set(h0, h1, h2, h3, h4) {\n this.h0 = h0 | 0;\n this.h1 = h1 | 0;\n this.h2 = h2 | 0;\n this.h3 = h3 | 0;\n this.h4 = h4 | 0;\n }\n process(view, offset) {\n for (let i = 0; i < 16; i++, offset += 4)\n BUF[i] = view.getUint32(offset, true);\n // prettier-ignore\n let al = this.h0 | 0, ar = al, bl = this.h1 | 0, br = bl, cl = this.h2 | 0, cr = cl, dl = this.h3 | 0, dr = dl, el = this.h4 | 0, er = el;\n // Instead of iterating 0 to 80, we split it into 5 groups\n // And use the groups in constants, functions, etc. Much simpler\n for (let group = 0; group < 5; group++) {\n const rGroup = 4 - group;\n const hbl = Kl[group], hbr = Kr[group]; // prettier-ignore\n const rl = idxL[group], rr = idxR[group]; // prettier-ignore\n const sl = shiftsL[group], sr = shiftsR[group]; // prettier-ignore\n for (let i = 0; i < 16; i++) {\n const tl = (rotl(al + f(group, bl, cl, dl) + BUF[rl[i]] + hbl, sl[i]) + el) | 0;\n al = el, el = dl, dl = rotl(cl, 10) | 0, cl = bl, bl = tl; // prettier-ignore\n }\n // 2 loops are 10% faster\n for (let i = 0; i < 16; i++) {\n const tr = (rotl(ar + f(rGroup, br, cr, dr) + BUF[rr[i]] + hbr, sr[i]) + er) | 0;\n ar = er, er = dr, dr = rotl(cr, 10) | 0, cr = br, br = tr; // prettier-ignore\n }\n }\n // Add the compressed chunk to the current hash value\n this.set((this.h1 + cl + dr) | 0, (this.h2 + dl + er) | 0, (this.h3 + el + ar) | 0, (this.h4 + al + br) | 0, (this.h0 + bl + cr) | 0);\n }\n roundClean() {\n BUF.fill(0);\n }\n destroy() {\n this.destroyed = true;\n this.buffer.fill(0);\n this.set(0, 0, 0, 0, 0);\n }\n}\n/**\n * RIPEMD-160 - a hash function from 1990s.\n * @param message - msg that would be hashed\n */\nexport const ripemd160 = wrapConstructor(() => new RIPEMD160());\n//# sourceMappingURL=ripemd160.js.map","import { SHA2 } from './_sha2.js';\nimport { rotr, wrapConstructor } from './utils.js';\n// Choice: a ? b : c\nconst Chi = (a, b, c) => (a & b) ^ (~a & c);\n// Majority function, true if any two inpust is true\nconst Maj = (a, b, c) => (a & b) ^ (a & c) ^ (b & c);\n// Round constants:\n// first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311)\n// prettier-ignore\nconst SHA256_K = new Uint32Array([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n]);\n// Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):\n// prettier-ignore\nconst IV = new Uint32Array([\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n]);\n// Temporary buffer, not used to store anything between runs\n// Named this way because it matches specification.\nconst SHA256_W = new Uint32Array(64);\nclass SHA256 extends SHA2 {\n constructor() {\n super(64, 32, 8, false);\n // We cannot use array here since array allows indexing by variable\n // which means optimizer/compiler cannot use registers.\n this.A = IV[0] | 0;\n this.B = IV[1] | 0;\n this.C = IV[2] | 0;\n this.D = IV[3] | 0;\n this.E = IV[4] | 0;\n this.F = IV[5] | 0;\n this.G = IV[6] | 0;\n this.H = IV[7] | 0;\n }\n get() {\n const { A, B, C, D, E, F, G, H } = this;\n return [A, B, C, D, E, F, G, H];\n }\n // prettier-ignore\n set(A, B, C, D, E, F, G, H) {\n this.A = A | 0;\n this.B = B | 0;\n this.C = C | 0;\n this.D = D | 0;\n this.E = E | 0;\n this.F = F | 0;\n this.G = G | 0;\n this.H = H | 0;\n }\n process(view, offset) {\n // Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4)\n SHA256_W[i] = view.getUint32(offset, false);\n for (let i = 16; i < 64; i++) {\n const W15 = SHA256_W[i - 15];\n const W2 = SHA256_W[i - 2];\n const s0 = rotr(W15, 7) ^ rotr(W15, 18) ^ (W15 >>> 3);\n const s1 = rotr(W2, 17) ^ rotr(W2, 19) ^ (W2 >>> 10);\n SHA256_W[i] = (s1 + SHA256_W[i - 7] + s0 + SHA256_W[i - 16]) | 0;\n }\n // Compression function main loop, 64 rounds\n let { A, B, C, D, E, F, G, H } = this;\n for (let i = 0; i < 64; i++) {\n const sigma1 = rotr(E, 6) ^ rotr(E, 11) ^ rotr(E, 25);\n const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const sigma0 = rotr(A, 2) ^ rotr(A, 13) ^ rotr(A, 22);\n const T2 = (sigma0 + Maj(A, B, C)) | 0;\n H = G;\n G = F;\n F = E;\n E = (D + T1) | 0;\n D = C;\n C = B;\n B = A;\n A = (T1 + T2) | 0;\n }\n // Add the compressed chunk to the current hash value\n A = (A + this.A) | 0;\n B = (B + this.B) | 0;\n C = (C + this.C) | 0;\n D = (D + this.D) | 0;\n E = (E + this.E) | 0;\n F = (F + this.F) | 0;\n G = (G + this.G) | 0;\n H = (H + this.H) | 0;\n this.set(A, B, C, D, E, F, G, H);\n }\n roundClean() {\n SHA256_W.fill(0);\n }\n destroy() {\n this.set(0, 0, 0, 0, 0, 0, 0, 0);\n this.buffer.fill(0);\n }\n}\n// Constants from https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf\nclass SHA224 extends SHA256 {\n constructor() {\n super();\n this.A = 0xc1059ed8 | 0;\n this.B = 0x367cd507 | 0;\n this.C = 0x3070dd17 | 0;\n this.D = 0xf70e5939 | 0;\n this.E = 0xffc00b31 | 0;\n this.F = 0x68581511 | 0;\n this.G = 0x64f98fa7 | 0;\n this.H = 0xbefa4fa4 | 0;\n this.outputLen = 28;\n }\n}\n/**\n * SHA2-256 hash function\n * @param message - data that would be hashed\n */\nexport const sha256 = wrapConstructor(() => new SHA256());\nexport const sha224 = wrapConstructor(() => new SHA224());\n//# sourceMappingURL=sha256.js.map","const U32_MASK64 = BigInt(2 ** 32 - 1);\nconst _32n = BigInt(32);\n// We are not using BigUint64Array, because they are extremely slow as per 2022\nexport function fromBig(n, le = false) {\n if (le)\n return { h: Number(n & U32_MASK64), l: Number((n >> _32n) & U32_MASK64) };\n return { h: Number((n >> _32n) & U32_MASK64) | 0, l: Number(n & U32_MASK64) | 0 };\n}\nexport function split(lst, le = false) {\n let Ah = new Uint32Array(lst.length);\n let Al = new Uint32Array(lst.length);\n for (let i = 0; i < lst.length; i++) {\n const { h, l } = fromBig(lst[i], le);\n [Ah[i], Al[i]] = [h, l];\n }\n return [Ah, Al];\n}\nexport const toBig = (h, l) => (BigInt(h >>> 0) << _32n) | BigInt(l >>> 0);\n// for Shift in [0, 32)\nconst shrSH = (h, l, s) => h >>> s;\nconst shrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in [1, 32)\nconst rotrSH = (h, l, s) => (h >>> s) | (l << (32 - s));\nconst rotrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotrBH = (h, l, s) => (h << (64 - s)) | (l >>> (s - 32));\nconst rotrBL = (h, l, s) => (h >>> (s - 32)) | (l << (64 - s));\n// Right rotate for shift===32 (just swaps l&h)\nconst rotr32H = (h, l) => l;\nconst rotr32L = (h, l) => h;\n// Left rotate for Shift in [1, 32)\nconst rotlSH = (h, l, s) => (h << s) | (l >>> (32 - s));\nconst rotlSL = (h, l, s) => (l << s) | (h >>> (32 - s));\n// Left rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotlBH = (h, l, s) => (l << (s - 32)) | (h >>> (64 - s));\nconst rotlBL = (h, l, s) => (h << (s - 32)) | (l >>> (64 - s));\n// JS uses 32-bit signed integers for bitwise operations which means we cannot\n// simple take carry out of low bit sum by shift, we need to use division.\n// Removing \"export\" has 5% perf penalty -_-\nexport function add(Ah, Al, Bh, Bl) {\n const l = (Al >>> 0) + (Bl >>> 0);\n return { h: (Ah + Bh + ((l / 2 ** 32) | 0)) | 0, l: l | 0 };\n}\n// Addition with more than 2 elements\nconst add3L = (Al, Bl, Cl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0);\nconst add3H = (low, Ah, Bh, Ch) => (Ah + Bh + Ch + ((low / 2 ** 32) | 0)) | 0;\nconst add4L = (Al, Bl, Cl, Dl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0);\nconst add4H = (low, Ah, Bh, Ch, Dh) => (Ah + Bh + Ch + Dh + ((low / 2 ** 32) | 0)) | 0;\nconst add5L = (Al, Bl, Cl, Dl, El) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0) + (El >>> 0);\nconst add5H = (low, Ah, Bh, Ch, Dh, Eh) => (Ah + Bh + Ch + Dh + Eh + ((low / 2 ** 32) | 0)) | 0;\n// prettier-ignore\nconst u64 = {\n fromBig, split, toBig,\n shrSH, shrSL,\n rotrSH, rotrSL, rotrBH, rotrBL,\n rotr32H, rotr32L,\n rotlSH, rotlSL, rotlBH, rotlBL,\n add, add3L, add3H, add4L, add4H, add5H, add5L,\n};\nexport default u64;\n//# sourceMappingURL=_u64.js.map","import { SHA2 } from './_sha2.js';\nimport u64 from './_u64.js';\nimport { wrapConstructor } from './utils.js';\n// Round contants (first 32 bits of the fractional parts of the cube roots of the first 80 primes 2..409):\n// prettier-ignore\nconst [SHA512_Kh, SHA512_Kl] = u64.split([\n '0x428a2f98d728ae22', '0x7137449123ef65cd', '0xb5c0fbcfec4d3b2f', '0xe9b5dba58189dbbc',\n '0x3956c25bf348b538', '0x59f111f1b605d019', '0x923f82a4af194f9b', '0xab1c5ed5da6d8118',\n '0xd807aa98a3030242', '0x12835b0145706fbe', '0x243185be4ee4b28c', '0x550c7dc3d5ffb4e2',\n '0x72be5d74f27b896f', '0x80deb1fe3b1696b1', '0x9bdc06a725c71235', '0xc19bf174cf692694',\n '0xe49b69c19ef14ad2', '0xefbe4786384f25e3', '0x0fc19dc68b8cd5b5', '0x240ca1cc77ac9c65',\n '0x2de92c6f592b0275', '0x4a7484aa6ea6e483', '0x5cb0a9dcbd41fbd4', '0x76f988da831153b5',\n '0x983e5152ee66dfab', '0xa831c66d2db43210', '0xb00327c898fb213f', '0xbf597fc7beef0ee4',\n '0xc6e00bf33da88fc2', '0xd5a79147930aa725', '0x06ca6351e003826f', '0x142929670a0e6e70',\n '0x27b70a8546d22ffc', '0x2e1b21385c26c926', '0x4d2c6dfc5ac42aed', '0x53380d139d95b3df',\n '0x650a73548baf63de', '0x766a0abb3c77b2a8', '0x81c2c92e47edaee6', '0x92722c851482353b',\n '0xa2bfe8a14cf10364', '0xa81a664bbc423001', '0xc24b8b70d0f89791', '0xc76c51a30654be30',\n '0xd192e819d6ef5218', '0xd69906245565a910', '0xf40e35855771202a', '0x106aa07032bbd1b8',\n '0x19a4c116b8d2d0c8', '0x1e376c085141ab53', '0x2748774cdf8eeb99', '0x34b0bcb5e19b48a8',\n '0x391c0cb3c5c95a63', '0x4ed8aa4ae3418acb', '0x5b9cca4f7763e373', '0x682e6ff3d6b2b8a3',\n '0x748f82ee5defb2fc', '0x78a5636f43172f60', '0x84c87814a1f0ab72', '0x8cc702081a6439ec',\n '0x90befffa23631e28', '0xa4506cebde82bde9', '0xbef9a3f7b2c67915', '0xc67178f2e372532b',\n '0xca273eceea26619c', '0xd186b8c721c0c207', '0xeada7dd6cde0eb1e', '0xf57d4f7fee6ed178',\n '0x06f067aa72176fba', '0x0a637dc5a2c898a6', '0x113f9804bef90dae', '0x1b710b35131c471b',\n '0x28db77f523047d84', '0x32caab7b40c72493', '0x3c9ebe0a15c9bebc', '0x431d67c49c100d4c',\n '0x4cc5d4becb3e42b6', '0x597f299cfc657e2a', '0x5fcb6fab3ad6faec', '0x6c44198c4a475817'\n].map(n => BigInt(n)));\n// Temporary buffer, not used to store anything between runs\nconst SHA512_W_H = new Uint32Array(80);\nconst SHA512_W_L = new Uint32Array(80);\nexport class SHA512 extends SHA2 {\n constructor() {\n super(128, 64, 16, false);\n // We cannot use array here since array allows indexing by variable which means optimizer/compiler cannot use registers.\n // Also looks cleaner and easier to verify with spec.\n // Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = 0x6a09e667 | 0;\n this.Al = 0xf3bcc908 | 0;\n this.Bh = 0xbb67ae85 | 0;\n this.Bl = 0x84caa73b | 0;\n this.Ch = 0x3c6ef372 | 0;\n this.Cl = 0xfe94f82b | 0;\n this.Dh = 0xa54ff53a | 0;\n this.Dl = 0x5f1d36f1 | 0;\n this.Eh = 0x510e527f | 0;\n this.El = 0xade682d1 | 0;\n this.Fh = 0x9b05688c | 0;\n this.Fl = 0x2b3e6c1f | 0;\n this.Gh = 0x1f83d9ab | 0;\n this.Gl = 0xfb41bd6b | 0;\n this.Hh = 0x5be0cd19 | 0;\n this.Hl = 0x137e2179 | 0;\n }\n // prettier-ignore\n get() {\n const { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n return [Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl];\n }\n // prettier-ignore\n set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl) {\n this.Ah = Ah | 0;\n this.Al = Al | 0;\n this.Bh = Bh | 0;\n this.Bl = Bl | 0;\n this.Ch = Ch | 0;\n this.Cl = Cl | 0;\n this.Dh = Dh | 0;\n this.Dl = Dl | 0;\n this.Eh = Eh | 0;\n this.El = El | 0;\n this.Fh = Fh | 0;\n this.Fl = Fl | 0;\n this.Gh = Gh | 0;\n this.Gl = Gl | 0;\n this.Hh = Hh | 0;\n this.Hl = Hl | 0;\n }\n process(view, offset) {\n // Extend the first 16 words into the remaining 64 words w[16..79] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4) {\n SHA512_W_H[i] = view.getUint32(offset);\n SHA512_W_L[i] = view.getUint32((offset += 4));\n }\n for (let i = 16; i < 80; i++) {\n // s0 := (w[i-15] rightrotate 1) xor (w[i-15] rightrotate 8) xor (w[i-15] rightshift 7)\n const W15h = SHA512_W_H[i - 15] | 0;\n const W15l = SHA512_W_L[i - 15] | 0;\n const s0h = u64.rotrSH(W15h, W15l, 1) ^ u64.rotrSH(W15h, W15l, 8) ^ u64.shrSH(W15h, W15l, 7);\n const s0l = u64.rotrSL(W15h, W15l, 1) ^ u64.rotrSL(W15h, W15l, 8) ^ u64.shrSL(W15h, W15l, 7);\n // s1 := (w[i-2] rightrotate 19) xor (w[i-2] rightrotate 61) xor (w[i-2] rightshift 6)\n const W2h = SHA512_W_H[i - 2] | 0;\n const W2l = SHA512_W_L[i - 2] | 0;\n const s1h = u64.rotrSH(W2h, W2l, 19) ^ u64.rotrBH(W2h, W2l, 61) ^ u64.shrSH(W2h, W2l, 6);\n const s1l = u64.rotrSL(W2h, W2l, 19) ^ u64.rotrBL(W2h, W2l, 61) ^ u64.shrSL(W2h, W2l, 6);\n // SHA256_W[i] = s0 + s1 + SHA256_W[i - 7] + SHA256_W[i - 16];\n const SUMl = u64.add4L(s0l, s1l, SHA512_W_L[i - 7], SHA512_W_L[i - 16]);\n const SUMh = u64.add4H(SUMl, s0h, s1h, SHA512_W_H[i - 7], SHA512_W_H[i - 16]);\n SHA512_W_H[i] = SUMh | 0;\n SHA512_W_L[i] = SUMl | 0;\n }\n let { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n // Compression function main loop, 80 rounds\n for (let i = 0; i < 80; i++) {\n // S1 := (e rightrotate 14) xor (e rightrotate 18) xor (e rightrotate 41)\n const sigma1h = u64.rotrSH(Eh, El, 14) ^ u64.rotrSH(Eh, El, 18) ^ u64.rotrBH(Eh, El, 41);\n const sigma1l = u64.rotrSL(Eh, El, 14) ^ u64.rotrSL(Eh, El, 18) ^ u64.rotrBL(Eh, El, 41);\n //const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const CHIh = (Eh & Fh) ^ (~Eh & Gh);\n const CHIl = (El & Fl) ^ (~El & Gl);\n // T1 = H + sigma1 + Chi(E, F, G) + SHA512_K[i] + SHA512_W[i]\n // prettier-ignore\n const T1ll = u64.add5L(Hl, sigma1l, CHIl, SHA512_Kl[i], SHA512_W_L[i]);\n const T1h = u64.add5H(T1ll, Hh, sigma1h, CHIh, SHA512_Kh[i], SHA512_W_H[i]);\n const T1l = T1ll | 0;\n // S0 := (a rightrotate 28) xor (a rightrotate 34) xor (a rightrotate 39)\n const sigma0h = u64.rotrSH(Ah, Al, 28) ^ u64.rotrBH(Ah, Al, 34) ^ u64.rotrBH(Ah, Al, 39);\n const sigma0l = u64.rotrSL(Ah, Al, 28) ^ u64.rotrBL(Ah, Al, 34) ^ u64.rotrBL(Ah, Al, 39);\n const MAJh = (Ah & Bh) ^ (Ah & Ch) ^ (Bh & Ch);\n const MAJl = (Al & Bl) ^ (Al & Cl) ^ (Bl & Cl);\n Hh = Gh | 0;\n Hl = Gl | 0;\n Gh = Fh | 0;\n Gl = Fl | 0;\n Fh = Eh | 0;\n Fl = El | 0;\n ({ h: Eh, l: El } = u64.add(Dh | 0, Dl | 0, T1h | 0, T1l | 0));\n Dh = Ch | 0;\n Dl = Cl | 0;\n Ch = Bh | 0;\n Cl = Bl | 0;\n Bh = Ah | 0;\n Bl = Al | 0;\n const All = u64.add3L(T1l, sigma0l, MAJl);\n Ah = u64.add3H(All, T1h, sigma0h, MAJh);\n Al = All | 0;\n }\n // Add the compressed chunk to the current hash value\n ({ h: Ah, l: Al } = u64.add(this.Ah | 0, this.Al | 0, Ah | 0, Al | 0));\n ({ h: Bh, l: Bl } = u64.add(this.Bh | 0, this.Bl | 0, Bh | 0, Bl | 0));\n ({ h: Ch, l: Cl } = u64.add(this.Ch | 0, this.Cl | 0, Ch | 0, Cl | 0));\n ({ h: Dh, l: Dl } = u64.add(this.Dh | 0, this.Dl | 0, Dh | 0, Dl | 0));\n ({ h: Eh, l: El } = u64.add(this.Eh | 0, this.El | 0, Eh | 0, El | 0));\n ({ h: Fh, l: Fl } = u64.add(this.Fh | 0, this.Fl | 0, Fh | 0, Fl | 0));\n ({ h: Gh, l: Gl } = u64.add(this.Gh | 0, this.Gl | 0, Gh | 0, Gl | 0));\n ({ h: Hh, l: Hl } = u64.add(this.Hh | 0, this.Hl | 0, Hh | 0, Hl | 0));\n this.set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl);\n }\n roundClean() {\n SHA512_W_H.fill(0);\n SHA512_W_L.fill(0);\n }\n destroy() {\n this.buffer.fill(0);\n this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);\n }\n}\nclass SHA512_224 extends SHA512 {\n constructor() {\n super();\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = 0x8c3d37c8 | 0;\n this.Al = 0x19544da2 | 0;\n this.Bh = 0x73e19966 | 0;\n this.Bl = 0x89dcd4d6 | 0;\n this.Ch = 0x1dfab7ae | 0;\n this.Cl = 0x32ff9c82 | 0;\n this.Dh = 0x679dd514 | 0;\n this.Dl = 0x582f9fcf | 0;\n this.Eh = 0x0f6d2b69 | 0;\n this.El = 0x7bd44da8 | 0;\n this.Fh = 0x77e36f73 | 0;\n this.Fl = 0x04c48942 | 0;\n this.Gh = 0x3f9d85a8 | 0;\n this.Gl = 0x6a1d36c8 | 0;\n this.Hh = 0x1112e6ad | 0;\n this.Hl = 0x91d692a1 | 0;\n this.outputLen = 28;\n }\n}\nclass SHA512_256 extends SHA512 {\n constructor() {\n super();\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = 0x22312194 | 0;\n this.Al = 0xfc2bf72c | 0;\n this.Bh = 0x9f555fa3 | 0;\n this.Bl = 0xc84c64c2 | 0;\n this.Ch = 0x2393b86b | 0;\n this.Cl = 0x6f53b151 | 0;\n this.Dh = 0x96387719 | 0;\n this.Dl = 0x5940eabd | 0;\n this.Eh = 0x96283ee2 | 0;\n this.El = 0xa88effe3 | 0;\n this.Fh = 0xbe5e1e25 | 0;\n this.Fl = 0x53863992 | 0;\n this.Gh = 0x2b0199fc | 0;\n this.Gl = 0x2c85b8aa | 0;\n this.Hh = 0x0eb72ddc | 0;\n this.Hl = 0x81c52ca2 | 0;\n this.outputLen = 32;\n }\n}\nclass SHA384 extends SHA512 {\n constructor() {\n super();\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = 0xcbbb9d5d | 0;\n this.Al = 0xc1059ed8 | 0;\n this.Bh = 0x629a292a | 0;\n this.Bl = 0x367cd507 | 0;\n this.Ch = 0x9159015a | 0;\n this.Cl = 0x3070dd17 | 0;\n this.Dh = 0x152fecd8 | 0;\n this.Dl = 0xf70e5939 | 0;\n this.Eh = 0x67332667 | 0;\n this.El = 0xffc00b31 | 0;\n this.Fh = 0x8eb44a87 | 0;\n this.Fl = 0x68581511 | 0;\n this.Gh = 0xdb0c2e0d | 0;\n this.Gl = 0x64f98fa7 | 0;\n this.Hh = 0x47b5481d | 0;\n this.Hl = 0xbefa4fa4 | 0;\n this.outputLen = 48;\n }\n}\nexport const sha512 = wrapConstructor(() => new SHA512());\nexport const sha512_224 = wrapConstructor(() => new SHA512_224());\nexport const sha512_256 = wrapConstructor(() => new SHA512_256());\nexport const sha384 = wrapConstructor(() => new SHA384());\n//# sourceMappingURL=sha512.js.map","import { hmac } from '@noble/hashes/hmac';\nimport { ripemd160 } from '@noble/hashes/ripemd160';\nimport { sha256 } from '@noble/hashes/sha256';\nimport { sha512 } from '@noble/hashes/sha512';\nimport { bytes as assertBytes } from '@noble/hashes/_assert';\nimport { bytesToHex, concatBytes, createView, hexToBytes, utf8ToBytes } from '@noble/hashes/utils';\nimport * as secp from '@noble/secp256k1';\nimport { base58check as base58checker } from '@scure/base';\nsecp.utils.hmacSha256Sync = (key, ...msgs) => hmac(sha256, key, secp.utils.concatBytes(...msgs));\nconst base58check = base58checker(sha256);\nfunction bytesToNumber(bytes) {\n return BigInt(`0x${bytesToHex(bytes)}`);\n}\nfunction numberToBytes(num) {\n return hexToBytes(num.toString(16).padStart(64, '0'));\n}\nconst MASTER_SECRET = utf8ToBytes('Bitcoin seed');\nconst BITCOIN_VERSIONS = { private: 0x0488ade4, public: 0x0488b21e };\nexport const HARDENED_OFFSET = 0x80000000;\nconst hash160 = (data) => ripemd160(sha256(data));\nconst fromU32 = (data) => createView(data).getUint32(0, false);\nconst toU32 = (n) => {\n if (!Number.isSafeInteger(n) || n < 0 || n > 2 ** 32 - 1) {\n throw new Error(`Invalid number=${n}. Should be from 0 to 2 ** 32 - 1`);\n }\n const buf = new Uint8Array(4);\n createView(buf).setUint32(0, n, false);\n return buf;\n};\nexport class HDKey {\n constructor(opt) {\n this.depth = 0;\n this.index = 0;\n this.chainCode = null;\n this.parentFingerprint = 0;\n if (!opt || typeof opt !== 'object') {\n throw new Error('HDKey.constructor must not be called directly');\n }\n this.versions = opt.versions || BITCOIN_VERSIONS;\n this.depth = opt.depth || 0;\n this.chainCode = opt.chainCode;\n this.index = opt.index || 0;\n this.parentFingerprint = opt.parentFingerprint || 0;\n if (!this.depth) {\n if (this.parentFingerprint || this.index) {\n throw new Error('HDKey: zero depth with non-zero index/parent fingerprint');\n }\n }\n if (opt.publicKey && opt.privateKey) {\n throw new Error('HDKey: publicKey and privateKey at same time.');\n }\n if (opt.privateKey) {\n if (!secp.utils.isValidPrivateKey(opt.privateKey)) {\n throw new Error('Invalid private key');\n }\n this.privKey =\n typeof opt.privateKey === 'bigint' ? opt.privateKey : bytesToNumber(opt.privateKey);\n this.privKeyBytes = numberToBytes(this.privKey);\n this.pubKey = secp.getPublicKey(opt.privateKey, true);\n }\n else if (opt.publicKey) {\n this.pubKey = secp.Point.fromHex(opt.publicKey).toRawBytes(true);\n }\n else {\n throw new Error('HDKey: no public or private key provided');\n }\n this.pubHash = hash160(this.pubKey);\n }\n get fingerprint() {\n if (!this.pubHash) {\n throw new Error('No publicKey set!');\n }\n return fromU32(this.pubHash);\n }\n get identifier() {\n return this.pubHash;\n }\n get pubKeyHash() {\n return this.pubHash;\n }\n get privateKey() {\n return this.privKeyBytes || null;\n }\n get publicKey() {\n return this.pubKey || null;\n }\n get privateExtendedKey() {\n const priv = this.privateKey;\n if (!priv) {\n throw new Error('No private key');\n }\n return base58check.encode(this.serialize(this.versions.private, concatBytes(new Uint8Array([0]), priv)));\n }\n get publicExtendedKey() {\n if (!this.pubKey) {\n throw new Error('No public key');\n }\n return base58check.encode(this.serialize(this.versions.public, this.pubKey));\n }\n static fromMasterSeed(seed, versions = BITCOIN_VERSIONS) {\n assertBytes(seed);\n if (8 * seed.length < 128 || 8 * seed.length > 512) {\n throw new Error(`HDKey: wrong seed length=${seed.length}. Should be between 128 and 512 bits; 256 bits is advised)`);\n }\n const I = hmac(sha512, MASTER_SECRET, seed);\n return new HDKey({\n versions,\n chainCode: I.slice(32),\n privateKey: I.slice(0, 32),\n });\n }\n static fromExtendedKey(base58key, versions = BITCOIN_VERSIONS) {\n const keyBuffer = base58check.decode(base58key);\n const keyView = createView(keyBuffer);\n const version = keyView.getUint32(0, false);\n const opt = {\n versions,\n depth: keyBuffer[4],\n parentFingerprint: keyView.getUint32(5, false),\n index: keyView.getUint32(9, false),\n chainCode: keyBuffer.slice(13, 45),\n };\n const key = keyBuffer.slice(45);\n const isPriv = key[0] === 0;\n if (version !== versions[isPriv ? 'private' : 'public']) {\n throw new Error('Version mismatch');\n }\n if (isPriv) {\n return new HDKey({ ...opt, privateKey: key.slice(1) });\n }\n else {\n return new HDKey({ ...opt, publicKey: key });\n }\n }\n static fromJSON(json) {\n return HDKey.fromExtendedKey(json.xpriv);\n }\n derive(path) {\n if (!/^[mM]'?/.test(path)) {\n throw new Error('Path must start with \"m\" or \"M\"');\n }\n if (/^[mM]'?$/.test(path)) {\n return this;\n }\n const parts = path.replace(/^[mM]'?\\//, '').split('/');\n let child = this;\n for (const c of parts) {\n const m = /^(\\d+)('?)$/.exec(c);\n if (!m || m.length !== 3) {\n throw new Error(`Invalid child index: ${c}`);\n }\n let idx = +m[1];\n if (!Number.isSafeInteger(idx) || idx >= HARDENED_OFFSET) {\n throw new Error('Invalid index');\n }\n if (m[2] === \"'\") {\n idx += HARDENED_OFFSET;\n }\n child = child.deriveChild(idx);\n }\n return child;\n }\n deriveChild(index) {\n if (!this.pubKey || !this.chainCode) {\n throw new Error('No publicKey or chainCode set');\n }\n let data = toU32(index);\n if (index >= HARDENED_OFFSET) {\n const priv = this.privateKey;\n if (!priv) {\n throw new Error('Could not derive hardened child key');\n }\n data = concatBytes(new Uint8Array([0]), priv, data);\n }\n else {\n data = concatBytes(this.pubKey, data);\n }\n const I = hmac(sha512, this.chainCode, data);\n const childTweak = bytesToNumber(I.slice(0, 32));\n const chainCode = I.slice(32);\n if (!secp.utils.isValidPrivateKey(childTweak)) {\n throw new Error('Tweak bigger than curve order');\n }\n const opt = {\n versions: this.versions,\n chainCode,\n depth: this.depth + 1,\n parentFingerprint: this.fingerprint,\n index,\n };\n try {\n if (this.privateKey) {\n const added = secp.utils.mod(this.privKey + childTweak, secp.CURVE.n);\n if (!secp.utils.isValidPrivateKey(added)) {\n throw new Error('The tweak was out of range or the resulted private key is invalid');\n }\n opt.privateKey = added;\n }\n else {\n const added = secp.Point.fromHex(this.pubKey).add(secp.Point.fromPrivateKey(childTweak));\n if (added.equals(secp.Point.ZERO)) {\n throw new Error('The tweak was equal to negative P, which made the result key invalid');\n }\n opt.publicKey = added.toRawBytes(true);\n }\n return new HDKey(opt);\n }\n catch (err) {\n return this.deriveChild(index + 1);\n }\n }\n sign(hash) {\n if (!this.privateKey) {\n throw new Error('No privateKey set!');\n }\n assertBytes(hash, 32);\n return secp.signSync(hash, this.privKey, {\n canonical: true,\n der: false,\n });\n }\n verify(hash, signature) {\n assertBytes(hash, 32);\n assertBytes(signature, 64);\n if (!this.publicKey) {\n throw new Error('No publicKey set!');\n }\n let sig;\n try {\n sig = secp.Signature.fromCompact(signature);\n }\n catch (error) {\n return false;\n }\n return secp.verify(sig, hash, this.publicKey);\n }\n wipePrivateData() {\n this.privKey = undefined;\n if (this.privKeyBytes) {\n this.privKeyBytes.fill(0);\n this.privKeyBytes = undefined;\n }\n return this;\n }\n toJSON() {\n return {\n xpriv: this.privateExtendedKey,\n xpub: this.publicExtendedKey,\n };\n }\n serialize(version, key) {\n if (!this.chainCode) {\n throw new Error('No chainCode set');\n }\n assertBytes(key, 33);\n return concatBytes(toU32(version), new Uint8Array([this.depth]), toU32(this.parentFingerprint), toU32(this.index), this.chainCode, key);\n }\n}\n//# sourceMappingURL=index.js.map","import { assertHash, Hash, toBytes } from './utils.js';\n// HMAC (RFC 2104)\nclass HMAC extends Hash {\n constructor(hash, _key) {\n super();\n this.finished = false;\n this.destroyed = false;\n assertHash(hash);\n const key = toBytes(_key);\n this.iHash = hash.create();\n if (!(this.iHash instanceof Hash))\n throw new TypeError('Expected instance of class which extends utils.Hash');\n const blockLen = (this.blockLen = this.iHash.blockLen);\n this.outputLen = this.iHash.outputLen;\n const pad = new Uint8Array(blockLen);\n // blockLen can be bigger than outputLen\n pad.set(key.length > this.iHash.blockLen ? hash.create().update(key).digest() : key);\n for (let i = 0; i < pad.length; i++)\n pad[i] ^= 0x36;\n this.iHash.update(pad);\n // By doing update (processing of first block) of outer hash here we can re-use it between multiple calls via clone\n this.oHash = hash.create();\n // Undo internal XOR && apply outer XOR\n for (let i = 0; i < pad.length; i++)\n pad[i] ^= 0x36 ^ 0x5c;\n this.oHash.update(pad);\n pad.fill(0);\n }\n update(buf) {\n if (this.destroyed)\n throw new Error('instance is destroyed');\n this.iHash.update(buf);\n return this;\n }\n digestInto(out) {\n if (this.destroyed)\n throw new Error('instance is destroyed');\n if (!(out instanceof Uint8Array) || out.length !== this.outputLen)\n throw new Error('HMAC: Invalid output buffer');\n if (this.finished)\n throw new Error('digest() was already called');\n this.finished = true;\n this.iHash.digestInto(out);\n this.oHash.update(out);\n this.oHash.digestInto(out);\n this.destroy();\n }\n digest() {\n const out = new Uint8Array(this.oHash.outputLen);\n this.digestInto(out);\n return out;\n }\n _cloneInto(to) {\n // Create new instance without calling constructor since key already in state and we don't know it.\n to || (to = Object.create(Object.getPrototypeOf(this), {}));\n const { oHash, iHash, finished, destroyed, blockLen, outputLen } = this;\n to = to;\n to.finished = finished;\n to.destroyed = destroyed;\n to.blockLen = blockLen;\n to.outputLen = outputLen;\n to.oHash = oHash._cloneInto(to.oHash);\n to.iHash = iHash._cloneInto(to.iHash);\n return to;\n }\n destroy() {\n this.destroyed = true;\n this.oHash.destroy();\n this.iHash.destroy();\n }\n}\n/**\n * HMAC: RFC2104 message authentication code.\n * @param hash - function that would be used e.g. sha256\n * @param key - message key\n * @param message - message data\n */\nexport const hmac = (hash, key, message) => new HMAC(hash, key).update(message).digest();\nhmac.create = (hash, key) => new HMAC(hash, key);\n","var __defProp = Object.defineProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\n\n// keys.ts\nimport * as secp256k1 from \"@noble/secp256k1\";\nfunction generatePrivateKey() {\n return secp256k1.utils.bytesToHex(secp256k1.utils.randomPrivateKey());\n}\nfunction getPublicKey(privateKey) {\n return secp256k1.utils.bytesToHex(secp256k1.schnorr.getPublicKey(privateKey));\n}\n\n// event.ts\nimport * as secp256k12 from \"@noble/secp256k1\";\nimport { sha256 } from \"@noble/hashes/sha256\";\n\n// utils.ts\nvar utils_exports = {};\n__export(utils_exports, {\n insertEventIntoAscendingList: () => insertEventIntoAscendingList,\n insertEventIntoDescendingList: () => insertEventIntoDescendingList,\n normalizeURL: () => normalizeURL,\n utf8Decoder: () => utf8Decoder,\n utf8Encoder: () => utf8Encoder\n});\nvar utf8Decoder = new TextDecoder(\"utf-8\");\nvar utf8Encoder = new TextEncoder();\nfunction normalizeURL(url) {\n let p = new URL(url);\n p.pathname = p.pathname.replace(/\\/+/g, \"/\");\n if (p.pathname.endsWith(\"/\"))\n p.pathname = p.pathname.slice(0, -1);\n if (p.port === \"80\" && p.protocol === \"ws:\" || p.port === \"443\" && p.protocol === \"wss:\")\n p.port = \"\";\n p.searchParams.sort();\n p.hash = \"\";\n return p.toString();\n}\nfunction insertEventIntoDescendingList(sortedArray, event) {\n let start = 0;\n let end = sortedArray.length - 1;\n let midPoint;\n let position = start;\n if (end < 0) {\n position = 0;\n } else if (event.created_at < sortedArray[end].created_at) {\n position = end + 1;\n } else if (event.created_at >= sortedArray[start].created_at) {\n position = start;\n } else\n while (true) {\n if (end <= start + 1) {\n position = end;\n break;\n }\n midPoint = Math.floor(start + (end - start) / 2);\n if (sortedArray[midPoint].created_at > event.created_at) {\n start = midPoint;\n } else if (sortedArray[midPoint].created_at < event.created_at) {\n end = midPoint;\n } else {\n position = midPoint;\n break;\n }\n }\n if (sortedArray[position]?.id !== event.id) {\n return [\n ...sortedArray.slice(0, position),\n event,\n ...sortedArray.slice(position)\n ];\n }\n return sortedArray;\n}\nfunction insertEventIntoAscendingList(sortedArray, event) {\n let start = 0;\n let end = sortedArray.length - 1;\n let midPoint;\n let position = start;\n if (end < 0) {\n position = 0;\n } else if (event.created_at > sortedArray[end].created_at) {\n position = end + 1;\n } else if (event.created_at <= sortedArray[start].created_at) {\n position = start;\n } else\n while (true) {\n if (end <= start + 1) {\n position = end;\n break;\n }\n midPoint = Math.floor(start + (end - start) / 2);\n if (sortedArray[midPoint].created_at < event.created_at) {\n start = midPoint;\n } else if (sortedArray[midPoint].created_at > event.created_at) {\n end = midPoint;\n } else {\n position = midPoint;\n break;\n }\n }\n if (sortedArray[position]?.id !== event.id) {\n return [\n ...sortedArray.slice(0, position),\n event,\n ...sortedArray.slice(position)\n ];\n }\n return sortedArray;\n}\n\n// event.ts\nvar Kind = /* @__PURE__ */ ((Kind2) => {\n Kind2[Kind2[\"Metadata\"] = 0] = \"Metadata\";\n Kind2[Kind2[\"Text\"] = 1] = \"Text\";\n Kind2[Kind2[\"RecommendRelay\"] = 2] = \"RecommendRelay\";\n Kind2[Kind2[\"Contacts\"] = 3] = \"Contacts\";\n Kind2[Kind2[\"EncryptedDirectMessage\"] = 4] = \"EncryptedDirectMessage\";\n Kind2[Kind2[\"EventDeletion\"] = 5] = \"EventDeletion\";\n Kind2[Kind2[\"Reaction\"] = 7] = \"Reaction\";\n Kind2[Kind2[\"ChannelCreation\"] = 40] = \"ChannelCreation\";\n Kind2[Kind2[\"ChannelMetadata\"] = 41] = \"ChannelMetadata\";\n Kind2[Kind2[\"ChannelMessage\"] = 42] = \"ChannelMessage\";\n Kind2[Kind2[\"ChannelHideMessage\"] = 43] = \"ChannelHideMessage\";\n Kind2[Kind2[\"ChannelMuteUser\"] = 44] = \"ChannelMuteUser\";\n Kind2[Kind2[\"Report\"] = 1984] = \"Report\";\n Kind2[Kind2[\"ZapRequest\"] = 9734] = \"ZapRequest\";\n Kind2[Kind2[\"Zap\"] = 9735] = \"Zap\";\n Kind2[Kind2[\"RelayList\"] = 10002] = \"RelayList\";\n Kind2[Kind2[\"ClientAuth\"] = 22242] = \"ClientAuth\";\n Kind2[Kind2[\"Article\"] = 30023] = \"Article\";\n return Kind2;\n})(Kind || {});\nfunction getBlankEvent() {\n return {\n kind: 255,\n content: \"\",\n tags: [],\n created_at: 0\n };\n}\nfunction finishEvent(t, privateKey) {\n let event = t;\n event.pubkey = getPublicKey(privateKey);\n event.id = getEventHash(event);\n event.sig = signEvent(event, privateKey);\n return event;\n}\nfunction serializeEvent(evt) {\n if (!validateEvent(evt))\n throw new Error(\"can't serialize event with wrong or missing properties\");\n return JSON.stringify([\n 0,\n evt.pubkey,\n evt.created_at,\n evt.kind,\n evt.tags,\n evt.content\n ]);\n}\nfunction getEventHash(event) {\n let eventHash = sha256(utf8Encoder.encode(serializeEvent(event)));\n return secp256k12.utils.bytesToHex(eventHash);\n}\nfunction validateEvent(event) {\n if (typeof event !== \"object\")\n return false;\n if (typeof event.kind !== \"number\")\n return false;\n if (typeof event.content !== \"string\")\n return false;\n if (typeof event.created_at !== \"number\")\n return false;\n if (typeof event.pubkey !== \"string\")\n return false;\n if (!event.pubkey.match(/^[a-f0-9]{64}$/))\n return false;\n if (!Array.isArray(event.tags))\n return false;\n for (let i = 0; i < event.tags.length; i++) {\n let tag = event.tags[i];\n if (!Array.isArray(tag))\n return false;\n for (let j = 0; j < tag.length; j++) {\n if (typeof tag[j] === \"object\")\n return false;\n }\n }\n return true;\n}\nfunction verifySignature(event) {\n return secp256k12.schnorr.verifySync(\n event.sig,\n getEventHash(event),\n event.pubkey\n );\n}\nfunction signEvent(event, key) {\n return secp256k12.utils.bytesToHex(\n secp256k12.schnorr.signSync(getEventHash(event), key)\n );\n}\n\n// filter.ts\nfunction matchFilter(filter, event) {\n if (filter.ids && filter.ids.indexOf(event.id) === -1)\n return false;\n if (filter.kinds && filter.kinds.indexOf(event.kind) === -1)\n return false;\n if (filter.authors && filter.authors.indexOf(event.pubkey) === -1)\n return false;\n for (let f in filter) {\n if (f[0] === \"#\") {\n let tagName = f.slice(1);\n let values = filter[`#${tagName}`];\n if (values && !event.tags.find(\n ([t, v]) => t === f.slice(1) && values.indexOf(v) !== -1\n ))\n return false;\n }\n }\n if (filter.since && event.created_at < filter.since)\n return false;\n if (filter.until && event.created_at >= filter.until)\n return false;\n return true;\n}\nfunction matchFilters(filters, event) {\n for (let i = 0; i < filters.length; i++) {\n if (matchFilter(filters[i], event))\n return true;\n }\n return false;\n}\n\n// fakejson.ts\nvar fakejson_exports = {};\n__export(fakejson_exports, {\n getHex64: () => getHex64,\n getInt: () => getInt,\n getSubscriptionId: () => getSubscriptionId,\n matchEventId: () => matchEventId,\n matchEventKind: () => matchEventKind,\n matchEventPubkey: () => matchEventPubkey\n});\nfunction getHex64(json, field) {\n let len = field.length + 3;\n let idx = json.indexOf(`\"${field}\":`) + len;\n let s = json.slice(idx).indexOf(`\"`) + idx + 1;\n return json.slice(s, s + 64);\n}\nfunction getInt(json, field) {\n let len = field.length;\n let idx = json.indexOf(`\"${field}\":`) + len + 3;\n let sliced = json.slice(idx);\n let end = Math.min(sliced.indexOf(\",\"), sliced.indexOf(\"}\"));\n return parseInt(sliced.slice(0, end), 10);\n}\nfunction getSubscriptionId(json) {\n let idx = json.slice(0, 22).indexOf(`\"EVENT\"`);\n if (idx === -1)\n return null;\n let pstart = json.slice(idx + 7 + 1).indexOf(`\"`);\n if (pstart === -1)\n return null;\n let start = idx + 7 + 1 + pstart;\n let pend = json.slice(start + 1, 80).indexOf(`\"`);\n if (pend === -1)\n return null;\n let end = start + 1 + pend;\n return json.slice(start + 1, end);\n}\nfunction matchEventId(json, id) {\n return id === getHex64(json, \"id\");\n}\nfunction matchEventPubkey(json, pubkey) {\n return pubkey === getHex64(json, \"pubkey\");\n}\nfunction matchEventKind(json, kind) {\n return kind === getInt(json, \"kind\");\n}\n\n// relay.ts\nfunction relayInit(url, options = {}) {\n let { listTimeout = 3e3, getTimeout = 3e3 } = options;\n var ws;\n var openSubs = {};\n var listeners = {\n connect: [],\n disconnect: [],\n error: [],\n notice: []\n };\n var subListeners = {};\n var pubListeners = {};\n async function connectRelay() {\n return new Promise((resolve, reject) => {\n ws = new WebSocket(url);\n ws.onopen = () => {\n listeners.connect.forEach((cb) => cb());\n resolve();\n };\n ws.onerror = () => {\n listeners.error.forEach((cb) => cb());\n reject();\n };\n ws.onclose = async () => {\n listeners.disconnect.forEach((cb) => cb());\n };\n let incomingMessageQueue = [];\n let handleNextInterval;\n ws.onmessage = (e) => {\n incomingMessageQueue.push(e.data);\n if (!handleNextInterval) {\n handleNextInterval = setInterval(handleNext, 0);\n }\n };\n function handleNext() {\n if (incomingMessageQueue.length === 0) {\n clearInterval(handleNextInterval);\n handleNextInterval = null;\n return;\n }\n var json = incomingMessageQueue.shift();\n if (!json)\n return;\n let subid = getSubscriptionId(json);\n if (subid) {\n let so = openSubs[subid];\n if (so && so.alreadyHaveEvent && so.alreadyHaveEvent(getHex64(json, \"id\"), url)) {\n return;\n }\n }\n try {\n let data = JSON.parse(json);\n switch (data[0]) {\n case \"EVENT\":\n let id = data[1];\n let event = data[2];\n if (validateEvent(event) && openSubs[id] && (openSubs[id].skipVerification || verifySignature(event)) && matchFilters(openSubs[id].filters, event)) {\n openSubs[id];\n (subListeners[id]?.event || []).forEach((cb) => cb(event));\n }\n return;\n case \"EOSE\": {\n let id2 = data[1];\n if (id2 in subListeners) {\n subListeners[id2].eose.forEach((cb) => cb());\n subListeners[id2].eose = [];\n }\n return;\n }\n case \"OK\": {\n let id2 = data[1];\n let ok = data[2];\n let reason = data[3] || \"\";\n if (id2 in pubListeners) {\n if (ok)\n pubListeners[id2].ok.forEach((cb) => cb());\n else\n pubListeners[id2].failed.forEach((cb) => cb(reason));\n pubListeners[id2].ok = [];\n pubListeners[id2].failed = [];\n }\n return;\n }\n case \"NOTICE\":\n let notice = data[1];\n listeners.notice.forEach((cb) => cb(notice));\n return;\n }\n } catch (err) {\n return;\n }\n }\n });\n }\n function connected() {\n return ws?.readyState === 1;\n }\n async function connect() {\n if (connected())\n return;\n await connectRelay();\n }\n async function trySend(params) {\n let msg = JSON.stringify(params);\n if (!connected()) {\n await new Promise((resolve) => setTimeout(resolve, 1e3));\n if (!connected()) {\n return;\n }\n }\n try {\n ws.send(msg);\n } catch (err) {\n console.log(err);\n }\n }\n const sub = (filters, {\n skipVerification = false,\n alreadyHaveEvent = null,\n id = Math.random().toString().slice(2)\n } = {}) => {\n let subid = id;\n openSubs[subid] = {\n id: subid,\n filters,\n skipVerification,\n alreadyHaveEvent\n };\n trySend([\"REQ\", subid, ...filters]);\n return {\n sub: (newFilters, newOpts = {}) => sub(newFilters || filters, {\n skipVerification: newOpts.skipVerification || skipVerification,\n alreadyHaveEvent: newOpts.alreadyHaveEvent || alreadyHaveEvent,\n id: subid\n }),\n unsub: () => {\n delete openSubs[subid];\n delete subListeners[subid];\n trySend([\"CLOSE\", subid]);\n },\n on: (type, cb) => {\n subListeners[subid] = subListeners[subid] || {\n event: [],\n eose: []\n };\n subListeners[subid][type].push(cb);\n },\n off: (type, cb) => {\n let listeners2 = subListeners[subid];\n let idx = listeners2[type].indexOf(cb);\n if (idx >= 0)\n listeners2[type].splice(idx, 1);\n }\n };\n };\n return {\n url,\n sub,\n on: (type, cb) => {\n listeners[type].push(cb);\n if (type === \"connect\" && ws?.readyState === 1) {\n cb();\n }\n },\n off: (type, cb) => {\n let index = listeners[type].indexOf(cb);\n if (index !== -1)\n listeners[type].splice(index, 1);\n },\n list: (filters, opts) => new Promise((resolve) => {\n let s = sub(filters, opts);\n let events = [];\n let timeout = setTimeout(() => {\n s.unsub();\n resolve(events);\n }, listTimeout);\n s.on(\"eose\", () => {\n s.unsub();\n clearTimeout(timeout);\n resolve(events);\n });\n s.on(\"event\", (event) => {\n events.push(event);\n });\n }),\n get: (filter, opts) => new Promise((resolve) => {\n let s = sub([filter], opts);\n let timeout = setTimeout(() => {\n s.unsub();\n resolve(null);\n }, getTimeout);\n s.on(\"event\", (event) => {\n s.unsub();\n clearTimeout(timeout);\n resolve(event);\n });\n }),\n publish(event) {\n if (!event.id)\n throw new Error(`event ${event} has no id`);\n let id = event.id;\n trySend([\"EVENT\", event]);\n return {\n on: (type, cb) => {\n pubListeners[id] = pubListeners[id] || {\n ok: [],\n failed: []\n };\n pubListeners[id][type].push(cb);\n },\n off: (type, cb) => {\n let listeners2 = pubListeners[id];\n if (!listeners2)\n return;\n let idx = listeners2[type].indexOf(cb);\n if (idx >= 0)\n listeners2[type].splice(idx, 1);\n }\n };\n },\n connect,\n close() {\n listeners = { connect: [], disconnect: [], error: [], notice: [] };\n subListeners = {};\n pubListeners = {};\n ws?.close();\n },\n get status() {\n return ws?.readyState ?? 3;\n }\n };\n}\n\n// pool.ts\nvar SimplePool = class {\n _conn;\n _seenOn = {};\n eoseSubTimeout;\n getTimeout;\n constructor(options = {}) {\n this._conn = {};\n this.eoseSubTimeout = options.eoseSubTimeout || 3400;\n this.getTimeout = options.getTimeout || 3400;\n }\n close(relays) {\n relays.forEach((url) => {\n let relay = this._conn[normalizeURL(url)];\n if (relay)\n relay.close();\n });\n }\n async ensureRelay(url) {\n const nm = normalizeURL(url);\n const existing = this._conn[nm];\n if (existing)\n return existing;\n const relay = relayInit(nm, {\n getTimeout: this.getTimeout * 0.9,\n listTimeout: this.getTimeout * 0.9\n });\n this._conn[nm] = relay;\n await relay.connect();\n return relay;\n }\n sub(relays, filters, opts) {\n let _knownIds = /* @__PURE__ */ new Set();\n let modifiedOpts = opts || {};\n modifiedOpts.alreadyHaveEvent = (id, url) => {\n let set = this._seenOn[id] || /* @__PURE__ */ new Set();\n set.add(url);\n this._seenOn[id] = set;\n return _knownIds.has(id);\n };\n let subs = [];\n let eventListeners = /* @__PURE__ */ new Set();\n let eoseListeners = /* @__PURE__ */ new Set();\n let eosesMissing = relays.length;\n let eoseSent = false;\n let eoseTimeout = setTimeout(() => {\n eoseSent = true;\n for (let cb of eoseListeners.values())\n cb();\n }, this.eoseSubTimeout);\n relays.forEach(async (relay) => {\n let r;\n try {\n r = await this.ensureRelay(relay);\n } catch (err) {\n handleEose();\n return;\n }\n if (!r)\n return;\n let s = r.sub(filters, modifiedOpts);\n s.on(\"event\", (event) => {\n _knownIds.add(event.id);\n for (let cb of eventListeners.values())\n cb(event);\n });\n s.on(\"eose\", () => {\n if (eoseSent)\n return;\n handleEose();\n });\n subs.push(s);\n function handleEose() {\n eosesMissing--;\n if (eosesMissing === 0) {\n clearTimeout(eoseTimeout);\n for (let cb of eoseListeners.values())\n cb();\n }\n }\n });\n let greaterSub = {\n sub(filters2, opts2) {\n subs.forEach((sub) => sub.sub(filters2, opts2));\n return greaterSub;\n },\n unsub() {\n subs.forEach((sub) => sub.unsub());\n },\n on(type, cb) {\n switch (type) {\n case \"event\":\n eventListeners.add(cb);\n break;\n case \"eose\":\n eoseListeners.add(cb);\n break;\n }\n },\n off(type, cb) {\n if (type === \"event\") {\n eventListeners.delete(cb);\n } else if (type === \"eose\")\n eoseListeners.delete(cb);\n }\n };\n return greaterSub;\n }\n get(relays, filter, opts) {\n return new Promise((resolve) => {\n let sub = this.sub(relays, [filter], opts);\n let timeout = setTimeout(() => {\n sub.unsub();\n resolve(null);\n }, this.getTimeout);\n sub.on(\"event\", (event) => {\n resolve(event);\n clearTimeout(timeout);\n sub.unsub();\n });\n });\n }\n list(relays, filters, opts) {\n return new Promise((resolve) => {\n let events = [];\n let sub = this.sub(relays, filters, opts);\n sub.on(\"event\", (event) => {\n events.push(event);\n });\n sub.on(\"eose\", () => {\n sub.unsub();\n resolve(events);\n });\n });\n }\n publish(relays, event) {\n let pubs = relays.map((relay) => {\n let r = this._conn[normalizeURL(relay)];\n if (!r)\n return badPub(relay);\n return r.publish(event);\n });\n return {\n on(type, cb) {\n pubs.forEach((pub, i) => {\n pub.on(type, () => cb(relays[i]));\n });\n },\n off() {\n }\n };\n }\n seenOn(id) {\n return Array.from(this._seenOn[id]?.values?.() || []);\n }\n};\nfunction badPub(relay) {\n return {\n on(typ, cb) {\n if (typ === \"failed\")\n cb(`relay ${relay} not connected`);\n },\n off() {\n }\n };\n}\n\n// nip04.ts\nvar nip04_exports = {};\n__export(nip04_exports, {\n decrypt: () => decrypt,\n encrypt: () => encrypt\n});\nimport { randomBytes } from \"@noble/hashes/utils\";\nimport * as secp256k13 from \"@noble/secp256k1\";\nimport { base64 } from \"@scure/base\";\nasync function encrypt(privkey, pubkey, text) {\n const key = secp256k13.getSharedSecret(privkey, \"02\" + pubkey);\n const normalizedKey = getNormalizedX(key);\n let iv = Uint8Array.from(randomBytes(16));\n let plaintext = utf8Encoder.encode(text);\n let cryptoKey = await crypto.subtle.importKey(\n \"raw\",\n normalizedKey,\n { name: \"AES-CBC\" },\n false,\n [\"encrypt\"]\n );\n let ciphertext = await crypto.subtle.encrypt(\n { name: \"AES-CBC\", iv },\n cryptoKey,\n plaintext\n );\n let ctb64 = base64.encode(new Uint8Array(ciphertext));\n let ivb64 = base64.encode(new Uint8Array(iv.buffer));\n return `${ctb64}?iv=${ivb64}`;\n}\nasync function decrypt(privkey, pubkey, data) {\n let [ctb64, ivb64] = data.split(\"?iv=\");\n let key = secp256k13.getSharedSecret(privkey, \"02\" + pubkey);\n let normalizedKey = getNormalizedX(key);\n let cryptoKey = await crypto.subtle.importKey(\n \"raw\",\n normalizedKey,\n { name: \"AES-CBC\" },\n false,\n [\"decrypt\"]\n );\n let ciphertext = base64.decode(ctb64);\n let iv = base64.decode(ivb64);\n let plaintext = await crypto.subtle.decrypt(\n { name: \"AES-CBC\", iv },\n cryptoKey,\n ciphertext\n );\n let text = utf8Decoder.decode(plaintext);\n return text;\n}\nfunction getNormalizedX(key) {\n return key.slice(1, 33);\n}\n\n// nip05.ts\nvar nip05_exports = {};\n__export(nip05_exports, {\n queryProfile: () => queryProfile,\n searchDomain: () => searchDomain,\n useFetchImplementation: () => useFetchImplementation\n});\nvar _fetch;\ntry {\n _fetch = fetch;\n} catch {\n}\nfunction useFetchImplementation(fetchImplementation) {\n _fetch = fetchImplementation;\n}\nasync function searchDomain(domain, query = \"\") {\n try {\n let res = await (await _fetch(`https://${domain}/.well-known/nostr.json?name=${query}`)).json();\n return res.names;\n } catch (_) {\n return {};\n }\n}\nasync function queryProfile(fullname) {\n let [name, domain] = fullname.split(\"@\");\n if (!domain) {\n domain = name;\n name = \"_\";\n }\n if (!name.match(/^[A-Za-z0-9-_]+$/))\n return null;\n let res;\n try {\n res = await (await _fetch(`https://${domain}/.well-known/nostr.json?name=${name}`)).json();\n } catch (err) {\n return null;\n }\n if (!res?.names?.[name])\n return null;\n let pubkey = res.names[name];\n let relays = res.relays?.[pubkey] || [];\n return {\n pubkey,\n relays\n };\n}\n\n// nip06.ts\nvar nip06_exports = {};\n__export(nip06_exports, {\n generateSeedWords: () => generateSeedWords,\n privateKeyFromSeedWords: () => privateKeyFromSeedWords,\n validateWords: () => validateWords\n});\nimport * as secp256k14 from \"@noble/secp256k1\";\nimport { wordlist } from \"@scure/bip39/wordlists/english.js\";\nimport {\n generateMnemonic,\n mnemonicToSeedSync,\n validateMnemonic\n} from \"@scure/bip39\";\nimport { HDKey } from \"@scure/bip32\";\nfunction privateKeyFromSeedWords(mnemonic, passphrase) {\n let root = HDKey.fromMasterSeed(mnemonicToSeedSync(mnemonic, passphrase));\n let privateKey = root.derive(`m/44'/1237'/0'/0/0`).privateKey;\n if (!privateKey)\n throw new Error(\"could not derive private key\");\n return secp256k14.utils.bytesToHex(privateKey);\n}\nfunction generateSeedWords() {\n return generateMnemonic(wordlist);\n}\nfunction validateWords(words) {\n return validateMnemonic(words, wordlist);\n}\n\n// nip19.ts\nvar nip19_exports = {};\n__export(nip19_exports, {\n decode: () => decode,\n naddrEncode: () => naddrEncode,\n neventEncode: () => neventEncode,\n noteEncode: () => noteEncode,\n nprofileEncode: () => nprofileEncode,\n npubEncode: () => npubEncode,\n nsecEncode: () => nsecEncode\n});\nimport * as secp256k15 from \"@noble/secp256k1\";\nimport { bech32 } from \"@scure/base\";\nvar Bech32MaxSize = 5e3;\nfunction decode(nip19) {\n let { prefix, words } = bech32.decode(nip19, Bech32MaxSize);\n let data = new Uint8Array(bech32.fromWords(words));\n switch (prefix) {\n case \"nprofile\": {\n let tlv = parseTLV(data);\n if (!tlv[0]?.[0])\n throw new Error(\"missing TLV 0 for nprofile\");\n if (tlv[0][0].length !== 32)\n throw new Error(\"TLV 0 should be 32 bytes\");\n return {\n type: \"nprofile\",\n data: {\n pubkey: secp256k15.utils.bytesToHex(tlv[0][0]),\n relays: tlv[1] ? tlv[1].map((d) => utf8Decoder.decode(d)) : []\n }\n };\n }\n case \"nevent\": {\n let tlv = parseTLV(data);\n if (!tlv[0]?.[0])\n throw new Error(\"missing TLV 0 for nevent\");\n if (tlv[0][0].length !== 32)\n throw new Error(\"TLV 0 should be 32 bytes\");\n return {\n type: \"nevent\",\n data: {\n id: secp256k15.utils.bytesToHex(tlv[0][0]),\n relays: tlv[1] ? tlv[1].map((d) => utf8Decoder.decode(d)) : []\n }\n };\n }\n case \"naddr\": {\n let tlv = parseTLV(data);\n if (!tlv[0]?.[0])\n throw new Error(\"missing TLV 0 for naddr\");\n if (!tlv[2]?.[0])\n throw new Error(\"missing TLV 2 for naddr\");\n if (tlv[2][0].length !== 32)\n throw new Error(\"TLV 2 should be 32 bytes\");\n if (!tlv[3]?.[0])\n throw new Error(\"missing TLV 3 for naddr\");\n if (tlv[3][0].length !== 4)\n throw new Error(\"TLV 3 should be 4 bytes\");\n return {\n type: \"naddr\",\n data: {\n identifier: utf8Decoder.decode(tlv[0][0]),\n pubkey: secp256k15.utils.bytesToHex(tlv[2][0]),\n kind: parseInt(secp256k15.utils.bytesToHex(tlv[3][0]), 16),\n relays: tlv[1] ? tlv[1].map((d) => utf8Decoder.decode(d)) : []\n }\n };\n }\n case \"nsec\":\n case \"npub\":\n case \"note\":\n return { type: prefix, data: secp256k15.utils.bytesToHex(data) };\n default:\n throw new Error(`unknown prefix ${prefix}`);\n }\n}\nfunction parseTLV(data) {\n let result = {};\n let rest = data;\n while (rest.length > 0) {\n let t = rest[0];\n let l = rest[1];\n let v = rest.slice(2, 2 + l);\n rest = rest.slice(2 + l);\n if (v.length < l)\n continue;\n result[t] = result[t] || [];\n result[t].push(v);\n }\n return result;\n}\nfunction nsecEncode(hex) {\n return encodeBytes(\"nsec\", hex);\n}\nfunction npubEncode(hex) {\n return encodeBytes(\"npub\", hex);\n}\nfunction noteEncode(hex) {\n return encodeBytes(\"note\", hex);\n}\nfunction encodeBytes(prefix, hex) {\n let data = secp256k15.utils.hexToBytes(hex);\n let words = bech32.toWords(data);\n return bech32.encode(prefix, words, Bech32MaxSize);\n}\nfunction nprofileEncode(profile) {\n let data = encodeTLV({\n 0: [secp256k15.utils.hexToBytes(profile.pubkey)],\n 1: (profile.relays || []).map((url) => utf8Encoder.encode(url))\n });\n let words = bech32.toWords(data);\n return bech32.encode(\"nprofile\", words, Bech32MaxSize);\n}\nfunction neventEncode(event) {\n let data = encodeTLV({\n 0: [secp256k15.utils.hexToBytes(event.id)],\n 1: (event.relays || []).map((url) => utf8Encoder.encode(url))\n });\n let words = bech32.toWords(data);\n return bech32.encode(\"nevent\", words, Bech32MaxSize);\n}\nfunction naddrEncode(addr) {\n let kind = new ArrayBuffer(4);\n new DataView(kind).setUint32(0, addr.kind, false);\n let data = encodeTLV({\n 0: [utf8Encoder.encode(addr.identifier)],\n 1: (addr.relays || []).map((url) => utf8Encoder.encode(url)),\n 2: [secp256k15.utils.hexToBytes(addr.pubkey)],\n 3: [new Uint8Array(kind)]\n });\n let words = bech32.toWords(data);\n return bech32.encode(\"naddr\", words, Bech32MaxSize);\n}\nfunction encodeTLV(tlv) {\n let entries = [];\n Object.entries(tlv).forEach(([t, vs]) => {\n vs.forEach((v) => {\n let entry = new Uint8Array(v.length + 2);\n entry.set([parseInt(t)], 0);\n entry.set([v.length], 1);\n entry.set(v, 2);\n entries.push(entry);\n });\n });\n return secp256k15.utils.concatBytes(...entries);\n}\n\n// nip26.ts\nvar nip26_exports = {};\n__export(nip26_exports, {\n createDelegation: () => createDelegation,\n getDelegator: () => getDelegator\n});\nimport * as secp256k16 from \"@noble/secp256k1\";\nimport { sha256 as sha2562 } from \"@noble/hashes/sha256\";\nfunction createDelegation(privateKey, parameters) {\n let conditions = [];\n if ((parameters.kind || -1) >= 0)\n conditions.push(`kind=${parameters.kind}`);\n if (parameters.until)\n conditions.push(`created_at<${parameters.until}`);\n if (parameters.since)\n conditions.push(`created_at>${parameters.since}`);\n let cond = conditions.join(\"&\");\n if (cond === \"\")\n throw new Error(\"refusing to create a delegation without any conditions\");\n let sighash = sha2562(\n utf8Encoder.encode(`nostr:delegation:${parameters.pubkey}:${cond}`)\n );\n let sig = secp256k16.utils.bytesToHex(\n secp256k16.schnorr.signSync(sighash, privateKey)\n );\n return {\n from: getPublicKey(privateKey),\n to: parameters.pubkey,\n cond,\n sig\n };\n}\nfunction getDelegator(event) {\n let tag = event.tags.find((tag2) => tag2[0] === \"delegation\" && tag2.length >= 4);\n if (!tag)\n return null;\n let pubkey = tag[1];\n let cond = tag[2];\n let sig = tag[3];\n let conditions = cond.split(\"&\");\n for (let i = 0; i < conditions.length; i++) {\n let [key, operator, value] = conditions[i].split(/\\b/);\n if (key === \"kind\" && operator === \"=\" && event.kind === parseInt(value))\n continue;\n else if (key === \"created_at\" && operator === \"<\" && event.created_at < parseInt(value))\n continue;\n else if (key === \"created_at\" && operator === \">\" && event.created_at > parseInt(value))\n continue;\n else\n return null;\n }\n let sighash = sha2562(\n utf8Encoder.encode(`nostr:delegation:${event.pubkey}:${cond}`)\n );\n if (!secp256k16.schnorr.verifySync(sig, sighash, pubkey))\n return null;\n return pubkey;\n}\n\n// nip57.ts\nvar nip57_exports = {};\n__export(nip57_exports, {\n getZapEndpoint: () => getZapEndpoint,\n makeZapReceipt: () => makeZapReceipt,\n makeZapRequest: () => makeZapRequest,\n useFetchImplementation: () => useFetchImplementation2,\n validateZapRequest: () => validateZapRequest\n});\nimport { bech32 as bech322 } from \"@scure/base\";\nvar _fetch2;\ntry {\n _fetch2 = fetch;\n} catch {\n}\nfunction useFetchImplementation2(fetchImplementation) {\n _fetch2 = fetchImplementation;\n}\nasync function getZapEndpoint(metadata) {\n try {\n let lnurl = \"\";\n let { lud06, lud16 } = JSON.parse(metadata.content);\n if (lud06) {\n let { words } = bech322.decode(lud06, 1e3);\n let data = bech322.fromWords(words);\n lnurl = utf8Decoder.decode(data);\n } else if (lud16) {\n let [name, domain] = lud16.split(\"@\");\n lnurl = `https://${domain}/.well-known/lnurlp/${name}`;\n } else {\n return null;\n }\n let res = await _fetch2(lnurl);\n let body = await res.json();\n if (body.allowsNostr && body.nostrPubkey) {\n return body.callback;\n }\n } catch (err) {\n }\n return null;\n}\nfunction makeZapRequest({\n profile,\n event,\n amount,\n relays,\n comment = \"\"\n}) {\n if (!amount)\n throw new Error(\"amount not given\");\n if (!profile)\n throw new Error(\"profile not given\");\n let zr = {\n kind: 9734,\n created_at: Math.round(Date.now() / 1e3),\n content: comment,\n tags: [\n [\"p\", profile],\n [\"amount\", amount.toString()],\n [\"relays\", ...relays]\n ]\n };\n if (event) {\n zr.tags.push([\"e\", event]);\n }\n return zr;\n}\nfunction validateZapRequest(zapRequestString) {\n let zapRequest;\n try {\n zapRequest = JSON.parse(zapRequestString);\n } catch (err) {\n return \"Invalid zap request JSON.\";\n }\n if (!validateEvent(zapRequest))\n return \"Zap request is not a valid Nostr event.\";\n if (!verifySignature(zapRequest))\n return \"Invalid signature on zap request.\";\n let p = zapRequest.tags.find(([t, v]) => t === \"p\" && v);\n if (!p)\n return \"Zap request doesn't have a 'p' tag.\";\n if (!p[1].match(/^[a-f0-9]{64}$/))\n return \"Zap request 'p' tag is not valid hex.\";\n let e = zapRequest.tags.find(([t, v]) => t === \"e\" && v);\n if (e && !e[1].match(/^[a-f0-9]{64}$/))\n return \"Zap request 'e' tag is not valid hex.\";\n let relays = zapRequest.tags.find(([t, v]) => t === \"relays\" && v);\n if (!relays)\n return \"Zap request doesn't have a 'relays' tag.\";\n return null;\n}\nfunction makeZapReceipt({\n zapRequest,\n preimage,\n bolt11,\n paidAt\n}) {\n let zr = JSON.parse(zapRequest);\n let tagsFromZapRequest = zr.tags.filter(\n ([t]) => t === \"e\" || t === \"p\" || t === \"a\"\n );\n let zap = {\n kind: 9735,\n created_at: Math.round(paidAt.getTime() / 1e3),\n content: \"\",\n tags: [\n ...tagsFromZapRequest,\n [\"bolt11\", bolt11],\n [\"description\", zapRequest]\n ]\n };\n if (preimage) {\n zap.tags.push([\"preimage\", preimage]);\n }\n return zap;\n}\n\n// index.ts\nimport * as secp256k17 from \"@noble/secp256k1\";\nimport { hmac } from \"@noble/hashes/hmac\";\nimport { sha256 as sha2563 } from \"@noble/hashes/sha256\";\nsecp256k17.utils.hmacSha256Sync = (key, ...msgs) => hmac(sha2563, key, secp256k17.utils.concatBytes(...msgs));\nsecp256k17.utils.sha256Sync = (...msgs) => sha2563(secp256k17.utils.concatBytes(...msgs));\nexport {\n Kind,\n SimplePool,\n finishEvent,\n fakejson_exports as fj,\n generatePrivateKey,\n getBlankEvent,\n getEventHash,\n getPublicKey,\n matchFilter,\n matchFilters,\n nip04_exports as nip04,\n nip05_exports as nip05,\n nip06_exports as nip06,\n nip19_exports as nip19,\n nip26_exports as nip26,\n nip57_exports as nip57,\n relayInit,\n serializeEvent,\n signEvent,\n utils_exports as utils,\n validateEvent,\n verifySignature\n};\n","const WS = WebSocket// typeof WebSocket !== 'undefined' ? WebSocket : require('ws')\n\nRelay.prototype.wait_connected = async function relay_wait_connected(data) {\n\tlet retry = 1000\n\twhile (true) {\n\t\tif (this.ws.readyState !== 1) {\n\t\t\tawait sleep(retry)\n\t\t\tretry *= 1.5\n\t\t}\n\t\telse {\n\t\t\treturn\n\t\t}\n\t}\n}\n\n\nfunction Relay(relay, opts={})\n{\n\tif (!(this instanceof Relay))\n\t\treturn new Relay(relay, opts)\n\n\tthis.url = relay\n\tthis.opts = opts\n\n\tif (opts.reconnect == null)\n\t\topts.reconnect = true\n\n\tconst me = this\n\tme.onfn = {}\n\n\tinit_websocket(me)\n\t\t.catch(e => {\n\t\t\tif (me.onfn.error)\n\t\t\t\tme.onfn.error(e)\n\t\t})\n\n\treturn this\n}\n\nfunction init_websocket(me) {\n\treturn new Promise((resolve, reject) => {\n\t\tconst ws = me.ws = new WS(me.url);\n\n\t\tlet resolved = false\n\t\tws.onmessage = (m) => {\n\t\t\thandle_nostr_message(me, m)\n\t\t\tif (me.onfn.message)\n\t\t\t\tme.onfn.message(m)\n\t\t}\n\t\tws.onclose = (e) => {\n\t\t\tif (me.onfn.close)\n\t\t\t\tme.onfn.close(e)\n\t\t\tif (me.reconnecting)\n\t\t\t\treturn reject(new Error(\"close during reconnect\"))\n\t\t\tif (!me.manualClose && me.opts.reconnect)\n\t\t\t\treconnect(me)\n\t\t}\n\t\tws.onerror = (e) => {\n\t\t\tif (me.onfn.error)\n\t\t\t\tme.onfn.error(e)\n\t\t\tif (me.reconnecting)\n\t\t\t\treturn reject(new Error(\"error during reconnect\"))\n\t\t\tif (me.opts.reconnect)\n\t\t\t\treconnect(me)\n\t\t}\n\t\tws.onopen = (e) => {\n\t\t\tif (me.onfn.open)\n\t\t\t\tme.onfn.open(e)\n\n\t\t\tif (resolved) return\n\n\t\t\tresolved = true\n\t\t\tresolve(me)\n\t\t}\n\t});\n}\n\nfunction sleep(ms) {\n return new Promise(resolve => setTimeout(resolve, ms));\n}\n\nasync function reconnect(me)\n{\n\tconst reconnecting = true\n\tlet n = 100\n\ttry {\n\t\tme.reconnecting = true\n\t\tawait init_websocket(me)\n\t\tme.reconnecting = false\n\t} catch {\n\t\t//console.error(`error thrown during reconnect... trying again in ${n} ms`)\n\t\tawait sleep(n)\n\t\tn *= 1.5\n\t}\n}\n\nRelay.prototype.on = function relayOn(method, fn) {\n\tthis.onfn[method] = fn\n\treturn this\n}\n\nRelay.prototype.close = function relayClose() {\n\tif (this.ws) {\n\t\tthis.manualClose = true\n\t\tthis.ws.close()\n\t}\n}\n\nRelay.prototype.subscribe = function relay_subscribe(sub_id, filters) {\n\tif (Array.isArray(filters))\n\t\tthis.send([\"REQ\", sub_id, ...filters])\n\telse\n\t\tthis.send([\"REQ\", sub_id, filters])\n}\n\nRelay.prototype.unsubscribe = function relay_unsubscribe(sub_id) {\n\tthis.send([\"CLOSE\", sub_id])\n}\n\nRelay.prototype.send = async function relay_send(data) {\n\tawait this.wait_connected()\n\tthis.ws.send(JSON.stringify(data))\n}\n\nfunction handle_nostr_message(relay, msg)\n{\n\tlet data\n\ttry {\n\t\tdata = JSON.parse(msg.data)\n\t} catch (e) {\n\t\tconsole.error(\"handle_nostr_message\", e)\n\t\treturn\n\t}\n\tif (data.length >= 2) {\n\t\tswitch (data[0]) {\n\t\tcase \"EVENT\":\n\t\t\tif (data.length < 3)\n\t\t\t\treturn\n\t\t\treturn relay.onfn.event && relay.onfn.event(data[1], data[2])\n\t\tcase \"EOSE\":\n\t\t\treturn relay.onfn.eose && relay.onfn.eose(data[1])\n\t\tcase \"NOTICE\":\n\t\t\treturn relay.onfn.notice && relay.onfn.notice(...data.slice(1))\n\t\tcase \"OK\":\n\t\t\treturn relay.onfn.ok && relay.onfn.ok(...data.slice(1))\n\t\t}\n\t}\n}\n\nmodule.exports = Relay\n","\nconst Relay = require('./relay')\n\nfunction RelayPool(relays, opts)\n{\n\tif (!(this instanceof RelayPool))\n\t\treturn new RelayPool(relays, opts)\n\n\tthis.onfn = {}\n\tthis.relays = []\n\tthis.opts = opts\n\n\tfor (const relay of relays) {\n\t\tthis.add(relay)\n\t}\n\n\treturn this\n}\n\nRelayPool.prototype.close = function relayPoolClose() {\n\tfor (const relay of this.relays) {\n\t\trelay.close()\n\t}\n}\n\nRelayPool.prototype.on = function relayPoolOn(method, fn) {\n\tfor (const relay of this.relays) {\n\t\tthis.onfn[method] = fn\n\t\trelay.onfn[method] = fn.bind(null, relay)\n\t}\n\treturn this\n}\n\nRelayPool.prototype.has = function relayPoolHas(relayUrl) {\n\tfor (const relay of this.relays) {\n\t\tif (relay.url === relayUrl)\n\t\t\treturn true\n\t}\n\n\treturn false\n}\n\nRelayPool.prototype.send = function relayPoolSend(payload, relay_ids) {\n\tconst relays = relay_ids ? this.find_relays(relay_ids) : this.relays\n\tfor (const relay of relays) {\n\t\trelay.send(payload)\n\t}\n}\n\nRelayPool.prototype.setupHandlers = function relayPoolSetupHandlers()\n{\n\t// setup its message handlers with the ones we have already\n\tconst keys = Object.keys(this.onfn)\n\tfor (const handler of keys) {\n\t\tfor (const relay of this.relays) {\n\t\t\trelay.onfn[handler] = this.onfn[handler].bind(null, relay)\n\t\t}\n\t}\n}\n\nRelayPool.prototype.remove = function relayPoolRemove(url) {\n\tlet i = 0\n\n\tfor (const relay of this.relays) {\n\t\tif (relay.url === url) {\n\t\t\trelay.ws && relay.ws.close()\n\t\t\tthis.relays = this.replays.splice(i, 1)\n\t\t\treturn true\n\t\t}\n\n\t\ti += 1\n\t}\n\n\treturn false\n}\n\nRelayPool.prototype.subscribe = function relayPoolSubscribe(sub_id, filters, relay_ids) {\n\tconst relays = relay_ids ? this.find_relays(relay_ids) : this.relays\n\tfor (const relay of relays) {\n\t\trelay.subscribe(sub_id, filters)\n\t}\n}\n\nRelayPool.prototype.unsubscribe = function relayPoolUnsubscibe(sub_id, relay_ids) {\n\tconst relays = relay_ids ? this.find_relays(relay_ids) : this.relays\n\tfor (const relay of relays) {\n\t\trelay.unsubscribe(sub_id)\n\t}\n}\n\n\nRelayPool.prototype.add = function relayPoolAdd(relay) {\n\tif (relay instanceof Relay) {\n\t\tif (this.has(relay.url))\n\t\t\treturn false\n\n\t\tthis.relays.push(relay)\n\t\tthis.setupHandlers()\n\t\treturn true\n\t}\n\n\tif (this.has(relay))\n\t\treturn false\n\n\tconst r = Relay(relay, this.opts)\n\tthis.relays.push(r)\n\tthis.setupHandlers()\n\treturn true\n}\n\nRelayPool.prototype.find_relays = function relayPoolFindRelays(relay_ids) {\n\tif (relay_ids instanceof Relay)\n\t\treturn [relay_ids]\n\n\tif (relay_ids.length === 0)\n\t\treturn []\n\n\tif (!relay_ids[0])\n\t\tthrow new Error(\"what!?\")\n\n\tif (relay_ids[0] instanceof Relay)\n\t\treturn relay_ids\n\n\treturn this.relays.reduce((acc, relay) => {\n\t\tif (relay_ids.some((rid) => relay.url === rid))\n\t\t\tacc.push(relay)\n\t\treturn acc\n\t}, [])\n}\n\nmodule.exports = RelayPool\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\t\tlet namespacesCache;\n\t\tlet enabledCache;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => {\n\t\t\t\tif (enableOverride !== null) {\n\t\t\t\t\treturn enableOverride;\n\t\t\t\t}\n\t\t\t\tif (namespacesCache !== createDebug.namespaces) {\n\t\t\t\t\tnamespacesCache = createDebug.namespaces;\n\t\t\t\t\tenabledCache = createDebug.enabled(namespace);\n\t\t\t\t}\n\n\t\t\t\treturn enabledCache;\n\t\t\t},\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\t\tcreateDebug.namespaces = namespaces;\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tlet i;\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n\t\tconst len = split.length;\n\n\t\tfor (i = 0; i < len; i++) {\n\t\t\tif (!split[i]) {\n\t\t\t\t// ignore empty strings\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tnamespaces = split[i].replace(/\\*/g, '.*?');\n\n\t\t\tif (namespaces[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(new RegExp('^' + namespaces.slice(1) + '$'));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(new RegExp('^' + namespaces + '$'));\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names.map(toNamespace),\n\t\t\t...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tif (name[name.length - 1] === '*') {\n\t\t\treturn true;\n\t\t}\n\n\t\tlet i;\n\t\tlet len;\n\n\t\tfor (i = 0, len = createDebug.skips.length; i < len; i++) {\n\t\t\tif (createDebug.skips[i].test(name)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0, len = createDebug.names.length; i < len; i++) {\n\t\t\tif (createDebug.names[i].test(name)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Convert regexp to namespace\n\t*\n\t* @param {RegExp} regxep\n\t* @return {String} namespace\n\t* @api private\n\t*/\n\tfunction toNamespace(regexp) {\n\t\treturn regexp.toString()\n\t\t\t.substring(2, regexp.toString().length - 2)\n\t\t\t.replace(/\\.\\*\\?$/, '*');\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n","/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug');\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n","import { chatData } from '../store';\nimport { getEventHash, relayInit } from 'nostr-tools';\nimport RelayPool from 'nostr/lib/relay-pool';\nimport { createEventDispatcher } from 'svelte';\nimport EventEmitter from 'events';\nimport * as uuid from 'uuid';\nimport debug from 'debug';\n\nconst log = new debug('nostr:adapter');\nconst profilesLog = new debug('nostr:adapter:profiles');\nconst writeLog = new debug('nostr:adapter:write');\n\nclass NstrAdapter {\n relayStatus = {};\n #pool = null;\n #messages = {};\n #eventEmitter = new EventEmitter();\n #handlers = {}\n tags;\n referenceTags;\n type;\n #websiteOwnerPubkey;\n relayUrls = [];\n\n #profileRequestQueue = [];\n #requestedProfiles = [];\n #profileRequestTimer;\n #delayedSubscriptions = {};\n #delayedSubscriptionTimeouts = {};\n\n constructor(clientPubkey, {tags, referenceTags, type='DM', websiteOwnerPubkey, relays} = {}) {\n this.pubkey = clientPubkey;\n this.#websiteOwnerPubkey = websiteOwnerPubkey;\n this.relayUrls = relays\n\n if (type) {\n this.setChatConfiguration(type, tags, referenceTags);\n }\n }\n\n setChatConfiguration(type, tags, referenceTags) {\n log('chatConfiguration', {type, tags, referenceTags});\n this.type = type;\n this.tags = tags;\n this.referenceTags = referenceTags;\n\n // handle connection\n if (this.#pool) { this.#disconnect() }\n this.#connect()\n\n let filters = [];\n\n // handle subscriptions\n // if this is DM type then subscribe to chats with this website owner\n switch (this.type) {\n case 'DM':\n filters.push({\n kinds: [4],\n '#p': [this.pubkey, this.#websiteOwnerPubkey],\n 'authors': [this.pubkey, this.#websiteOwnerPubkey]\n });\n break;\n case 'GLOBAL':\n if (this.tags && this.tags.length > 0) {\n filters.push({kinds: [1], '#t': this.tags, limit: 20});\n }\n if (this.referenceTags && this.referenceTags.length > 0) {\n filters.push({kinds: [1], '#r': this.referenceTags, limit: 20});\n }\n\n break;\n }\n\n if (filters && filters.length > 0) {\n this.subscribe(filters, (e) => { this.#emitMessage(e) })\n }\n }\n\n async getPubKey() {\n return this.pubkey;\n }\n\n on(event, callback) {\n this.#eventEmitter.on(event, callback);\n }\n\n /**\n * Send a message to the relay\n * @param {String} message - The message to send\n */\n async send(message, {tagPubKeys, tags} = {}) {\n let event;\n\n if (!tags) { tags = []}\n\n if (this.type === 'DM') {\n event = await this.sendKind4(message, {tagPubKeys, tags});\n } else {\n event = await this.sendKind1(message, {tagPubKeys, tags});\n }\n\n event.id = getEventHash(event)\n const signedEvent = await this.signEvent(event)\n\n this.#_publish(signedEvent);\n\n return event.id;\n }\n\n async sendKind4(message, {tagPubKeys, tags} = {}) {\n let ciphertext = await this.encrypt(this.#websiteOwnerPubkey, message);\n let event = {\n kind: 4,\n pubkey: this.pubkey,\n created_at: Math.floor(Date.now() / 1000),\n content: ciphertext,\n tags: [\n ['p', this.#websiteOwnerPubkey],\n ...tags\n ],\n }\n\n return event;\n }\n\n async sendKind1(message, {tagPubKeys, tags} = {}) {\n if (!tags) { tags = []; }\n\n if (this.tags) {\n this.tags.forEach((t) => tags.push(['t', t]));\n }\n\n if (this.referenceTags) {\n this.referenceTags.forEach((t) => tags.push(['r', t]));\n }\n\n let event = {\n kind: 1,\n created_at: Math.floor(Date.now() / 1000),\n tags,\n content: message,\n pubkey: this.pubkey,\n }\n\n if (tagPubKeys) {\n for (let pubkey of tagPubKeys) {\n if (pubkey) {\n event.tags.push(['p', pubkey]);\n }\n }\n }\n\n event.id = getEventHash(event)\n this.subscribeToEventAndResponses(event.id);\n\n return event;\n }\n\n async #_publish(event) {\n writeLog('publish', event);\n this.#pool.send([ 'EVENT', event ]);\n }\n\n async onEvent(event, messageCallback) {\n this.#addProfileRequest(event.pubkey);\n\n messageCallback(event)\n }\n\n async delayedSubscribe(filters, family, timeout) {\n this.#delayedSubscriptions[family] = this.#delayedSubscriptions[family] || []\n this.#delayedSubscriptions[family].push(filters);\n\n if (!this.#delayedSubscriptionTimeouts[family]) {\n this.#delayedSubscriptionTimeouts[family] = setTimeout(() => {\n delete this.#delayedSubscriptionTimeouts[family];\n filters = this.#delayedSubscriptions[family];\n delete this.#delayedSubscriptions[family];\n\n this.subscribe(filters, (e) => { this.#emitMessage(e)});\n }, timeout)\n }\n }\n\n async subscribe(filters, messageCallback=null) {\n if (!messageCallback) { messageCallback = (e) => { this.#emitMessage(e) } }\n return this.#_subscribe(filters, messageCallback)\n }\n\n async #_subscribe(filters, messageCallback) {\n const subId = uuid.v4();\n this.#handlers[subId] = messageCallback;\n if (!Array.isArray(filters)) { filters = [filters] }\n this.#pool.subscribe(subId, filters);\n this.#pool.on('event', (relay, recSubId, e) => {\n this.onEvent(e, this.#handlers[recSubId])\n });\n\n return subId;\n }\n\n async #emitMessage(event) {\n // has already been emitted\n if (this.#messages[event.id]) {\n return;\n }\n\n this.#messages[event.id] = true;\n\n // decrypt\n if (event.kind === 4) {\n event.content = await this.decrypt(this.#websiteOwnerPubkey, event.content);\n }\n\n if (event.kind === 1) {\n if (!event.tags.find(t => t[0] === 'e')) {\n // a top level message that we should subscribe to since responses won't tag the url\n this.subscribe({ kinds: [1], '#e': [event.id] })\n }\n }\n\n let deletedEvents = []\n if (event.kind === 5) {\n deletedEvents = event.tags.filter(tag => tag[0] === 'e').map(tag => tag[1]);\n }\n\n switch (event.kind) {\n case 1: this.#eventEmitter.emit('message', event); break;\n case 4: this.#eventEmitter.emit('message', event); break;\n case 5: this.#eventEmitter.emit('deleted', deletedEvents); break;\n case 7: this.#eventEmitter.emit('reaction', event); break;\n default:\n // alert('unknown event kind ' + event.kind)\n console.log('unknown event kind', event.kind, event);\n }\n\n }\n\n subscribeToEventAndResponses(eventId) {\n this.subscribe([\n {ids: [eventId]},\n {'#e': [eventId]},\n ], (e) => {\n this.#emitMessage(e);\n // this.subscribeToResponses(e)\n })\n }\n\n subscribeToResponses(event) {\n this.subscribe([\n {'#e': [event.id]},\n ], (e) => {\n this.#emitMessage(e);\n this.subscribeToResponses(e)\n })\n }\n\n /**\n * Connect to the relay\n */\n #connect() {\n this.relayUrls.forEach((url) => {\n this.relayStatus[url] = 'disconnected';\n });\n this.#eventEmitter.emit('connectivity', this.relayStatus);\n\n // console.log('connecting to relay', this.relayUrls);\n this.#pool = new RelayPool(this.relayUrls)\n this.#pool.on('open', (relay) => {\n // console.log(`connected to ${relay.url}`, new Date())\n this.relayStatus[relay.url] = 'connected';\n this.#eventEmitter.emit('connectivity', this.relayStatus);\n })\n\n this.#pool.on('error', (relay, r, e) => {\n this.relayStatus[relay.url] = 'error';\n this.#eventEmitter.emit('connectivity', this.relayStatus);\n console.log('error from relay', relay.url, r, e)\n })\n\n this.#pool.on('close', (relay, r) => {\n this.relayStatus[relay.url] = 'closed';\n this.#eventEmitter.emit('connectivity', this.relayStatus);\n console.log('error from relay', relay.url, r)\n })\n\n this.#pool.on('notice', (relay, r) => {\n console.log('notice', relay.url, r)\n })\n }\n\n #disconnect() {\n this.relayUrls.forEach((url) => {\n this.relayStatus[url] = 'disconnected';\n });\n this.#eventEmitter.emit('connectivity', this.relayStatus);\n this.#pool.close();\n this.#pool = null;\n }\n\n //\n //\n // Profiles\n //\n //\n reqProfile(pubkey) {\n this.#addProfileRequest(pubkey);\n }\n\n #addProfileRequest(pubkey, event=null) {\n if (this.#profileRequestQueue.includes(pubkey)) { return; }\n if (this.#requestedProfiles.includes(pubkey)) { return; }\n this.#profileRequestQueue.push(pubkey);\n this.#requestedProfiles.push(pubkey);\n\n if (!this.#profileRequestTimer) {\n this.#profileRequestTimer = setTimeout(() => {\n this.#profileRequestTimer = null;\n this.#requestProfiles();\n }, 500);\n }\n }\n\n /**\n * Send request for all queued profiles\n */\n async #requestProfiles() {\n if (this.#profileRequestQueue.length > 0) {\n profilesLog('requesting profiles', this.#profileRequestQueue);\n\n // send request\n const subId = await this.subscribe({ kinds: [0], authors: this.#profileRequestQueue }, (e) => {\n this.#processReceivedProfile(e);\n });\n profilesLog('subscribed to request', {subId})\n this.#profileRequestQueue = [];\n\n setTimeout(() => {\n profilesLog('unsubscribing from request', {subId})\n this.#pool.unsubscribe(subId);\n }, 5000);\n }\n }\n\n #processReceivedProfile(event) {\n profilesLog('received profile', event)\n let profile;\n try {\n profile = JSON.parse(event.content);\n } catch (e) {\n profilesLog('failed to parse profile', event);\n return;\n }\n this.#eventEmitter.emit('profile', {pubkey: event.pubkey, profile});\n }\n}\n\nexport default NstrAdapter;","import NstrAdapter from './index.js';\n\nclass NstrAdapterNip07 extends NstrAdapter {\n constructor(pubkey, adapterConfig={}) {\n super(pubkey, adapterConfig);\n }\n\n async signEvent(event) {\n return await window.nostr.signEvent(event);\n }\n\n async encrypt(destPubkey, message) {\n return await window.nostr.nip04.encrypt(destPubkey, message);\n }\n\n async decrypt(destPubkey, message) {\n return await window.nostr.nip04.decrypt(destPubkey, message);\n }\n}\n\nexport default NstrAdapterNip07;\n","import EventEmitter from 'events';\nimport { relayInit, getPublicKey, getEventHash, signEvent, validateEvent, verifySignature, nip04 } from 'nostr-tools';\n\nfunction _regeneratorRuntime() {\n _regeneratorRuntime = function () {\n return exports;\n };\n var exports = {},\n Op = Object.prototype,\n hasOwn = Op.hasOwnProperty,\n defineProperty = Object.defineProperty || function (obj, key, desc) {\n obj[key] = desc.value;\n },\n $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n function define(obj, key, value) {\n return Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), obj[key];\n }\n try {\n define({}, \"\");\n } catch (err) {\n define = function (obj, key, value) {\n return obj[key] = value;\n };\n }\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n generator = Object.create(protoGenerator.prototype),\n context = new Context(tryLocsList || []);\n return defineProperty(generator, \"_invoke\", {\n value: makeInvokeMethod(innerFn, self, context)\n }), generator;\n }\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n exports.wrap = wrap;\n var ContinueSentinel = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf,\n NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (\"throw\" !== record.type) {\n var result = record.arg,\n value = result.value;\n return value && \"object\" == typeof value && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n result.value = unwrapped, resolve(result);\n }, function (error) {\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n reject(record.arg);\n }\n var previousPromise;\n defineProperty(this, \"_invoke\", {\n value: function (method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(innerFn, self, context) {\n var state = \"suspendedStart\";\n return function (method, arg) {\n if (\"executing\" === state) throw new Error(\"Generator is already running\");\n if (\"completed\" === state) {\n if (\"throw\" === method) throw arg;\n return doneResult();\n }\n for (context.method = method, context.arg = arg;;) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n context.dispatchException(context.arg);\n } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n state = \"executing\";\n var record = tryCatch(innerFn, self, context);\n if (\"normal\" === record.type) {\n if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n return {\n value: record.arg,\n done: context.done\n };\n }\n \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n }\n };\n }\n function maybeInvokeDelegate(delegate, context) {\n var methodName = context.method,\n method = delegate.iterator[methodName];\n if (undefined === method) return context.delegate = null, \"throw\" === methodName && delegate.iterator.return && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method) || \"return\" !== methodName && (context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a '\" + methodName + \"' method\")), ContinueSentinel;\n var record = tryCatch(method, delegate.iterator, context.arg);\n if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n var info = record.arg;\n return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n }\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n }\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\", delete record.arg, entry.completion = record;\n }\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) return iteratorMethod.call(iterable);\n if (\"function\" == typeof iterable.next) return iterable;\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n return next.value = undefined, next.done = !0, next;\n };\n return next.next = next;\n }\n }\n return {\n next: doneResult\n };\n }\n function doneResult() {\n return {\n value: undefined,\n done: !0\n };\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), defineProperty(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n var ctor = \"function\" == typeof genFun && genFun.constructor;\n return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n }, exports.mark = function (genFun) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n }, exports.awrap = function (arg) {\n return {\n __await: arg\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n void 0 === PromiseImpl && (PromiseImpl = Promise);\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n return this;\n }), define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n }), exports.keys = function (val) {\n var object = Object(val),\n keys = [];\n for (var key in object) keys.push(key);\n return keys.reverse(), function next() {\n for (; keys.length;) {\n var key = keys.pop();\n if (key in object) return next.value = key, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, exports.values = values, Context.prototype = {\n constructor: Context,\n reset: function (skipTempReset) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n },\n stop: function () {\n this.done = !0;\n var rootRecord = this.tryEntries[0].completion;\n if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n return this.rval;\n },\n dispatchException: function (exception) {\n if (this.done) throw exception;\n var context = this;\n function handle(loc, caught) {\n return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n }\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i],\n record = entry.completion;\n if (\"root\" === entry.tryLoc) return handle(\"end\");\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n hasFinally = hasOwn.call(entry, \"finallyLoc\");\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n } else {\n if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n }\n }\n }\n },\n abrupt: function (type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n var record = finallyEntry ? finallyEntry.completion : {};\n return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n },\n complete: function (record, afterLoc) {\n if (\"throw\" === record.type) throw record.arg;\n return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n },\n finish: function (finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n }\n },\n catch: function (tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (\"throw\" === record.type) {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function (iterable, resultName, nextLoc) {\n return this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n }\n }, exports;\n}\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n _setPrototypeOf(subClass, superClass);\n}\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\n\nvar NostrRPC = /*#__PURE__*/function () {\n function NostrRPC(opts) {\n // events\n this.events = new EventEmitter();\n this.relay = opts.relay || 'wss://nostr.vulpem.com';\n this.self = {\n pubkey: getPublicKey(opts.secretKey),\n secret: opts.secretKey\n };\n }\n var _proto = NostrRPC.prototype;\n _proto.call = /*#__PURE__*/function () {\n var _call = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(_ref, opts) {\n var _this = this;\n var target, _ref$request, _ref$request$id, id, method, _ref$request$params, params, relay, request, event;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n target = _ref.target, _ref$request = _ref.request, _ref$request$id = _ref$request.id, id = _ref$request$id === void 0 ? /*#__PURE__*/randomID() : _ref$request$id, method = _ref$request.method, _ref$request$params = _ref$request.params, params = _ref$request$params === void 0 ? [] : _ref$request$params;\n _context3.next = 3;\n return connectToRelay(this.relay);\n case 3:\n relay = _context3.sent;\n // prepare request to be sent\n request = prepareRequest(id, method, params);\n _context3.next = 7;\n return prepareEvent(this.self.secret, target, request);\n case 7:\n event = _context3.sent;\n return _context3.abrupt(\"return\", new Promise( /*#__PURE__*/function () {\n var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(resolve, reject) {\n var sub;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n sub = relay.sub([{\n kinds: [24133],\n authors: [target],\n '#p': [_this.self.pubkey],\n limit: 1\n }]);\n _context2.next = 3;\n return broadcastToRelay(relay, event, true);\n case 3:\n // skip waiting for response from remote\n if (opts && opts.skipResponse === true) resolve();\n sub.on('event', /*#__PURE__*/function () {\n var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(event) {\n var payload, plaintext;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.prev = 0;\n _context.next = 3;\n return nip04.decrypt(_this.self.secret, event.pubkey, event.content);\n case 3:\n plaintext = _context.sent;\n if (plaintext) {\n _context.next = 6;\n break;\n }\n throw new Error('failed to decrypt event');\n case 6:\n payload = JSON.parse(plaintext);\n _context.next = 12;\n break;\n case 9:\n _context.prev = 9;\n _context.t0 = _context[\"catch\"](0);\n return _context.abrupt(\"return\");\n case 12:\n if (isValidResponse(payload)) {\n _context.next = 14;\n break;\n }\n return _context.abrupt(\"return\");\n case 14:\n if (!(payload.id !== id)) {\n _context.next = 16;\n break;\n }\n return _context.abrupt(\"return\");\n case 16:\n // if the response is an error, reject the promise\n if (payload.error) {\n reject(payload.error);\n }\n // if the response is a result, resolve the promise\n if (payload.result) {\n resolve(payload.result);\n }\n case 18:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[0, 9]]);\n }));\n return function (_x5) {\n return _ref3.apply(this, arguments);\n };\n }());\n case 5:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n return function (_x3, _x4) {\n return _ref2.apply(this, arguments);\n };\n }()));\n case 9:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3, this);\n }));\n function call(_x, _x2) {\n return _call.apply(this, arguments);\n }\n return call;\n }();\n _proto.listen = /*#__PURE__*/function () {\n var _listen = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {\n var _this2 = this;\n var relay, sub;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n _context5.next = 2;\n return connectToRelay(this.relay);\n case 2:\n relay = _context5.sent;\n sub = relay.sub([{\n kinds: [24133],\n '#p': [this.self.pubkey],\n since: now()\n }]);\n sub.on('event', /*#__PURE__*/function () {\n var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(event) {\n var payload, plaintext, response, body, responseEvent;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n _context4.prev = 0;\n _context4.next = 3;\n return nip04.decrypt(_this2.self.secret, event.pubkey, event.content);\n case 3:\n plaintext = _context4.sent;\n if (plaintext) {\n _context4.next = 6;\n break;\n }\n throw new Error('failed to decrypt event');\n case 6:\n payload = JSON.parse(plaintext);\n _context4.next = 12;\n break;\n case 9:\n _context4.prev = 9;\n _context4.t0 = _context4[\"catch\"](0);\n return _context4.abrupt(\"return\");\n case 12:\n if (isValidRequest(payload)) {\n _context4.next = 14;\n break;\n }\n return _context4.abrupt(\"return\");\n case 14:\n _context4.next = 17;\n return _this2.handleRequest(payload, event);\n case 17:\n response = _context4.sent;\n body = prepareResponse(response.id, response.result, response.error);\n _context4.next = 21;\n return prepareEvent(_this2.self.secret, event.pubkey, body);\n case 21:\n responseEvent = _context4.sent;\n // send response via relay\n relay.publish(responseEvent);\n case 23:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4, null, [[0, 9]]);\n }));\n return function (_x6) {\n return _ref4.apply(this, arguments);\n };\n }());\n return _context5.abrupt(\"return\", sub);\n case 6:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5, this);\n }));\n function listen() {\n return _listen.apply(this, arguments);\n }\n return listen;\n }();\n _proto.handleRequest = /*#__PURE__*/function () {\n var _handleRequest = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(request, event) {\n var id, method, params, result, error;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n id = request.id, method = request.method, params = request.params;\n result = null;\n error = null;\n _context6.prev = 3;\n this.event = event;\n _context6.next = 7;\n return this[method].apply(this, params);\n case 7:\n result = _context6.sent;\n this.event = undefined;\n _context6.next = 14;\n break;\n case 11:\n _context6.prev = 11;\n _context6.t0 = _context6[\"catch\"](3);\n if (_context6.t0 instanceof Error) {\n error = _context6.t0.message;\n } else {\n error = 'unknown error';\n }\n case 14:\n return _context6.abrupt(\"return\", {\n id: id,\n result: result,\n error: error\n });\n case 15:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6, this, [[3, 11]]);\n }));\n function handleRequest(_x7, _x8) {\n return _handleRequest.apply(this, arguments);\n }\n return handleRequest;\n }();\n return NostrRPC;\n}();\nfunction now() {\n return Math.floor(Date.now() / 1000);\n}\nfunction randomID() {\n return Math.random().toString().slice(2);\n}\nfunction prepareRequest(id, method, params) {\n return JSON.stringify({\n id: id,\n method: method,\n params: params\n });\n}\nfunction prepareResponse(id, result, error) {\n return JSON.stringify({\n id: id,\n result: result,\n error: error\n });\n}\nfunction prepareEvent(_x9, _x10, _x11) {\n return _prepareEvent.apply(this, arguments);\n}\nfunction _prepareEvent() {\n _prepareEvent = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7(secretKey, pubkey, content) {\n var cipherText, event, id, sig, signedEvent, ok, veryOk;\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n _context7.next = 2;\n return nip04.encrypt(secretKey, pubkey, content);\n case 2:\n cipherText = _context7.sent;\n event = {\n kind: 24133,\n created_at: now(),\n pubkey: getPublicKey(secretKey),\n tags: [['p', pubkey]],\n content: cipherText\n };\n id = getEventHash(event);\n sig = signEvent(event, secretKey);\n signedEvent = _extends({}, event, {\n id: id,\n sig: sig\n });\n ok = validateEvent(signedEvent);\n veryOk = verifySignature(signedEvent);\n if (!(!ok || !veryOk)) {\n _context7.next = 11;\n break;\n }\n throw new Error('Event is not valid');\n case 11:\n return _context7.abrupt(\"return\", signedEvent);\n case 12:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7);\n }));\n return _prepareEvent.apply(this, arguments);\n}\nfunction isValidRequest(payload) {\n if (!payload) return false;\n var keys = Object.keys(payload);\n if (!keys.includes('id') || !keys.includes('method') || !keys.includes('params')) return false;\n return true;\n}\nfunction isValidResponse(payload) {\n if (!payload) return false;\n var keys = Object.keys(payload);\n if (!keys.includes('id') || !keys.includes('result') || !keys.includes('error')) return false;\n return true;\n}\nfunction connectToRelay(_x12) {\n return _connectToRelay.apply(this, arguments);\n}\nfunction _connectToRelay() {\n _connectToRelay = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8(realayURL) {\n var relay;\n return _regeneratorRuntime().wrap(function _callee8$(_context8) {\n while (1) switch (_context8.prev = _context8.next) {\n case 0:\n relay = relayInit(realayURL);\n _context8.next = 3;\n return relay.connect();\n case 3:\n _context8.next = 5;\n return new Promise(function (resolve, reject) {\n relay.on('connect', function () {\n resolve();\n });\n relay.on('error', function () {\n reject(new Error(\"not possible to connect to \" + relay.url));\n });\n });\n case 5:\n return _context8.abrupt(\"return\", relay);\n case 6:\n case \"end\":\n return _context8.stop();\n }\n }, _callee8);\n }));\n return _connectToRelay.apply(this, arguments);\n}\nfunction broadcastToRelay(_x13, _x14, _x15) {\n return _broadcastToRelay.apply(this, arguments);\n}\nfunction _broadcastToRelay() {\n _broadcastToRelay = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee9(relay, event, skipSeen) {\n return _regeneratorRuntime().wrap(function _callee9$(_context9) {\n while (1) switch (_context9.prev = _context9.next) {\n case 0:\n if (skipSeen === void 0) {\n skipSeen = false;\n }\n _context9.next = 3;\n return new Promise(function (resolve, reject) {\n relay.on('error', function () {\n reject(new Error(\"failed to connect to \" + relay.url));\n });\n var pub = relay.publish(event);\n if (skipSeen) resolve();\n pub.on('failed', function (reason) {\n reject(reason);\n });\n pub.on('seen', function () {\n resolve();\n });\n });\n case 3:\n return _context9.abrupt(\"return\", _context9.sent);\n case 4:\n case \"end\":\n return _context9.stop();\n }\n }, _callee9);\n }));\n return _broadcastToRelay.apply(this, arguments);\n}\n\nvar ConnectURI = /*#__PURE__*/function () {\n function ConnectURI(_ref) {\n var target = _ref.target,\n metadata = _ref.metadata,\n relay = _ref.relay;\n this.target = target;\n this.metadata = metadata;\n this.relay = relay;\n }\n ConnectURI.fromURI = function fromURI(uri) {\n var url = new URL(uri);\n var target = url.hostname || url.pathname.substring(2);\n if (!target) throw new Error('Invalid connect URI: missing target');\n var relay = url.searchParams.get('relay');\n if (!relay) {\n throw new Error('Invalid connect URI: missing relay');\n }\n var metadata = url.searchParams.get('metadata');\n if (!metadata) {\n throw new Error('Invalid connect URI: missing metadata');\n }\n /* eslint-disable @typescript-eslint/no-unused-vars */\n try {\n var md = JSON.parse(metadata);\n return new ConnectURI({\n target: target,\n metadata: md,\n relay: relay\n });\n } catch (ignore) {\n throw new Error('Invalid connect URI: metadata is not valid JSON');\n }\n };\n var _proto = ConnectURI.prototype;\n _proto.toString = function toString() {\n return \"nostrconnect://\" + this.target + \"?metadata=\" + encodeURIComponent(JSON.stringify(this.metadata)) + \"&relay=\" + encodeURIComponent(this.relay);\n };\n _proto.approve = /*#__PURE__*/function () {\n var _approve = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(secretKey) {\n var rpc;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n rpc = new NostrRPC({\n relay: this.relay,\n secretKey: secretKey\n });\n _context.next = 3;\n return rpc.call({\n target: this.target,\n request: {\n method: 'connect',\n params: [getPublicKey(secretKey)]\n }\n }, {\n skipResponse: true\n });\n case 3:\n case \"end\":\n return _context.stop();\n }\n }, _callee, this);\n }));\n function approve(_x) {\n return _approve.apply(this, arguments);\n }\n return approve;\n }();\n _proto.reject = /*#__PURE__*/function () {\n var _reject = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(secretKey) {\n var rpc;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n rpc = new NostrRPC({\n relay: this.relay,\n secretKey: secretKey\n });\n _context2.next = 3;\n return rpc.call({\n target: this.target,\n request: {\n method: 'disconnect',\n params: []\n }\n }, {\n skipResponse: true\n });\n case 3:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, this);\n }));\n function reject(_x2) {\n return _reject.apply(this, arguments);\n }\n return reject;\n }();\n return ConnectURI;\n}();\nvar Connect = /*#__PURE__*/function () {\n function Connect(_ref2) {\n var target = _ref2.target,\n relay = _ref2.relay,\n secretKey = _ref2.secretKey;\n this.events = new EventEmitter();\n this.nip04 = {\n encrypt: function () {\n var _encrypt = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(_pubkey, _plaintext) {\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n throw new Error('Not implemented');\n case 1:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n function encrypt(_x3, _x4) {\n return _encrypt.apply(this, arguments);\n }\n return encrypt;\n }(),\n decrypt: function () {\n var _decrypt = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(_pubkey, _ciphertext) {\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n throw new Error('Not implemented');\n case 1:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n function decrypt(_x5, _x6) {\n return _decrypt.apply(this, arguments);\n }\n return decrypt;\n }()\n };\n this.rpc = new NostrRPC({\n relay: relay,\n secretKey: secretKey\n });\n if (target) {\n this.target = target;\n }\n }\n var _proto2 = Connect.prototype;\n _proto2.init = /*#__PURE__*/function () {\n var _init = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {\n var _this = this;\n var sub;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n _context6.next = 2;\n return this.rpc.listen();\n case 2:\n sub = _context6.sent;\n sub.on('event', /*#__PURE__*/function () {\n var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(event) {\n var payload, plaintext, _payload$params, pubkey;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n _context5.prev = 0;\n _context5.next = 3;\n return nip04.decrypt(_this.rpc.self.secret, event.pubkey, event.content);\n case 3:\n plaintext = _context5.sent;\n if (plaintext) {\n _context5.next = 6;\n break;\n }\n throw new Error('failed to decrypt event');\n case 6:\n payload = JSON.parse(plaintext);\n _context5.next = 12;\n break;\n case 9:\n _context5.prev = 9;\n _context5.t0 = _context5[\"catch\"](0);\n return _context5.abrupt(\"return\");\n case 12:\n if (isValidRequest(payload)) {\n _context5.next = 14;\n break;\n }\n return _context5.abrupt(\"return\");\n case 14:\n _context5.t1 = payload.method;\n _context5.next = _context5.t1 === 'connect' ? 17 : _context5.t1 === 'disconnect' ? 23 : 26;\n break;\n case 17:\n if (!(!payload.params || payload.params.length !== 1)) {\n _context5.next = 19;\n break;\n }\n throw new Error('connect: missing pubkey');\n case 19:\n _payload$params = payload.params, pubkey = _payload$params[0];\n _this.target = pubkey;\n _this.events.emit('connect', pubkey);\n return _context5.abrupt(\"break\", 26);\n case 23:\n _this.target = undefined;\n _this.events.emit('disconnect');\n return _context5.abrupt(\"break\", 26);\n case 26:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5, null, [[0, 9]]);\n }));\n return function (_x7) {\n return _ref3.apply(this, arguments);\n };\n }());\n case 4:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6, this);\n }));\n function init() {\n return _init.apply(this, arguments);\n }\n return init;\n }();\n _proto2.on = function on(evt, cb) {\n this.events.on(evt, cb);\n };\n _proto2.off = function off(evt, cb) {\n this.events.off(evt, cb);\n };\n _proto2.disconnect = /*#__PURE__*/function () {\n var _disconnect = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n if (this.target) {\n _context7.next = 2;\n break;\n }\n throw new Error('Not connected');\n case 2:\n // notify the UI that we are disconnecting\n this.events.emit('disconnect');\n _context7.prev = 3;\n _context7.next = 6;\n return this.rpc.call({\n target: this.target,\n request: {\n method: 'disconnect',\n params: []\n }\n }, {\n skipResponse: true\n });\n case 6:\n _context7.next = 11;\n break;\n case 8:\n _context7.prev = 8;\n _context7.t0 = _context7[\"catch\"](3);\n throw new Error('Failed to disconnect');\n case 11:\n this.target = undefined;\n case 12:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7, this, [[3, 8]]);\n }));\n function disconnect() {\n return _disconnect.apply(this, arguments);\n }\n return disconnect;\n }();\n _proto2.getPublicKey = /*#__PURE__*/function () {\n var _getPublicKey = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {\n var response;\n return _regeneratorRuntime().wrap(function _callee8$(_context8) {\n while (1) switch (_context8.prev = _context8.next) {\n case 0:\n if (this.target) {\n _context8.next = 2;\n break;\n }\n throw new Error('Not connected');\n case 2:\n _context8.next = 4;\n return this.rpc.call({\n target: this.target,\n request: {\n method: 'get_public_key',\n params: []\n }\n });\n case 4:\n response = _context8.sent;\n return _context8.abrupt(\"return\", response);\n case 6:\n case \"end\":\n return _context8.stop();\n }\n }, _callee8, this);\n }));\n function getPublicKey() {\n return _getPublicKey.apply(this, arguments);\n }\n return getPublicKey;\n }();\n _proto2.signEvent = /*#__PURE__*/function () {\n var _signEvent = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee9(event) {\n var signature;\n return _regeneratorRuntime().wrap(function _callee9$(_context9) {\n while (1) switch (_context9.prev = _context9.next) {\n case 0:\n if (this.target) {\n _context9.next = 2;\n break;\n }\n throw new Error('Not connected');\n case 2:\n _context9.next = 4;\n return this.rpc.call({\n target: this.target,\n request: {\n method: 'sign_event',\n params: [event]\n }\n });\n case 4:\n signature = _context9.sent;\n return _context9.abrupt(\"return\", signature);\n case 6:\n case \"end\":\n return _context9.stop();\n }\n }, _callee9, this);\n }));\n function signEvent(_x8) {\n return _signEvent.apply(this, arguments);\n }\n return signEvent;\n }();\n _proto2.getRelays = /*#__PURE__*/function () {\n var _getRelays = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee10() {\n return _regeneratorRuntime().wrap(function _callee10$(_context10) {\n while (1) switch (_context10.prev = _context10.next) {\n case 0:\n throw new Error('Not implemented');\n case 1:\n case \"end\":\n return _context10.stop();\n }\n }, _callee10);\n }));\n function getRelays() {\n return _getRelays.apply(this, arguments);\n }\n return getRelays;\n }();\n return Connect;\n}();\n\nvar NostrSigner = /*#__PURE__*/function (_NostrRPC) {\n _inheritsLoose(NostrSigner, _NostrRPC);\n function NostrSigner() {\n return _NostrRPC.apply(this, arguments) || this;\n }\n var _proto = NostrSigner.prototype;\n _proto.disconnect = /*#__PURE__*/function () {\n var _disconnect = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n this.events.emit('disconnect');\n return _context.abrupt(\"return\", null);\n case 2:\n case \"end\":\n return _context.stop();\n }\n }, _callee, this);\n }));\n function disconnect() {\n return _disconnect.apply(this, arguments);\n }\n return disconnect;\n }();\n _proto.isConnected = function isConnected() {\n throw new Error('Method not implemented yet.');\n };\n return NostrSigner;\n}(NostrRPC);\n\nexport { Connect, ConnectURI, NostrRPC, NostrSigner, broadcastToRelay, connectToRelay, isValidRequest, isValidResponse, now, prepareEvent, prepareRequest, prepareResponse, randomID };\n//# sourceMappingURL=connect.esm.js.map\n","import NstrAdapter from './index.js';\nimport { Connect } from '@nostr-connect/connect';\n\nclass NstrAdapterNip46 extends NstrAdapter {\n #secretKey = null;\n \n constructor(pubkey, secretKey, adapterConfig = {}) {\n super(pubkey, adapterConfig);\n this.#secretKey = secretKey;\n }\n\n async signEvent(event) {\n const connect = new Connect({\n secretKey: this.#secretKey,\n target: this.pubkey,\n });\n await connect.init();\n \n event.sig = await connect.signEvent('12323423434');\n return event;\n }\n}\n\nexport default NstrAdapterNip46;\n","import { generatePrivateKey, signEvent, getPublicKey, nip04 } from 'nostr-tools';\nimport NstrAdapter from './index.js';\n\nclass NstrAdapterDiscadableKeys extends NstrAdapter {\n #privateKey;\n\n constructor(adapterConfig={}) {\n let key = localStorage.getItem('nostrichat-discardable-key');\n let publicKey = localStorage.getItem('nostrichat-discardable-public-key');\n\n if (!key) {\n key = generatePrivateKey();\n console.log('generated key', key);\n publicKey = getPublicKey(key);\n }\n\n localStorage.setItem('nostrichat-discardable-key', key);\n localStorage.setItem('nostrichat-discardable-public-key', publicKey);\n\n super(publicKey, adapterConfig);\n \n this.#privateKey = key;\n console.log(key);\n }\n\n async signEvent(event) {\n event.sig = await signEvent(event, this.#privateKey);\n return event;\n }\n\n async encrypt(destPubkey, message) {\n console.log(this.#privateKey);\n return await nip04.encrypt(this.#privateKey, destPubkey, message);\n }\n\n async decrypt(destPubkey, message) {\n return await nip04.decrypt(this.#privateKey, destPubkey, message);\n }\n}\n\nexport default NstrAdapterDiscadableKeys;\n","\n\n\n How would you like to connect?\n \n\n{#if publicKey}\n \n Nostr Connect is a WIP, not fully implemented yet!\n
\n\n \n You are currently connected with the following public key:\n {publicKey} \n
\n{/if}\n\n{#if nip46URI}\n \n Scan this with your Nostr Connect (click to copy to clipboard)\n
\n\n \n \n
\n\n { nip46URI = null; }}>\n Cancel\n \n{:else if !publicKey}\n \n {#if hasNostrNip07}\n \n Browser Extension (NIP-07)\n \n {/if}\n\n\n \n Nostr Connect (NIP-46)\n \n\n \n Anonymous\n \n (Ephemeral Keys)\n \n \n
\n{/if}\n\n","\n\n\n
\n
\n
\n \n
\n\n
\n
\n
\n\n
{selectMessage(event.id)}}>\n {event.content}\n
\n\n
\n
\n \n {timestamp.toLocaleString()}\n \n
\n\n {#if byWebsiteOwner}\n
\n Website owner\n
\n {:else}\n
\n {displayName}\n
\n {/if}\n
\n
\n
\n
\n\n{#if responses[event.id].length > 0}\n \n {#each responses[event.id] as response}\n \n {/each}\n
\n{/if}\n\n","export { identity as linear } from '../internal/index.mjs';\n\n/*\nAdapted from https://github.com/mattdesl\nDistributed under MIT License https://github.com/mattdesl/eases/blob/master/LICENSE.md\n*/\nfunction backInOut(t) {\n const s = 1.70158 * 1.525;\n if ((t *= 2) < 1)\n return 0.5 * (t * t * ((s + 1) * t - s));\n return 0.5 * ((t -= 2) * t * ((s + 1) * t + s) + 2);\n}\nfunction backIn(t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n}\nfunction backOut(t) {\n const s = 1.70158;\n return --t * t * ((s + 1) * t + s) + 1;\n}\nfunction bounceOut(t) {\n const a = 4.0 / 11.0;\n const b = 8.0 / 11.0;\n const c = 9.0 / 10.0;\n const ca = 4356.0 / 361.0;\n const cb = 35442.0 / 1805.0;\n const cc = 16061.0 / 1805.0;\n const t2 = t * t;\n return t < a\n ? 7.5625 * t2\n : t < b\n ? 9.075 * t2 - 9.9 * t + 3.4\n : t < c\n ? ca * t2 - cb * t + cc\n : 10.8 * t * t - 20.52 * t + 10.72;\n}\nfunction bounceInOut(t) {\n return t < 0.5\n ? 0.5 * (1.0 - bounceOut(1.0 - t * 2.0))\n : 0.5 * bounceOut(t * 2.0 - 1.0) + 0.5;\n}\nfunction bounceIn(t) {\n return 1.0 - bounceOut(1.0 - t);\n}\nfunction circInOut(t) {\n if ((t *= 2) < 1)\n return -0.5 * (Math.sqrt(1 - t * t) - 1);\n return 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n}\nfunction circIn(t) {\n return 1.0 - Math.sqrt(1.0 - t * t);\n}\nfunction circOut(t) {\n return Math.sqrt(1 - --t * t);\n}\nfunction cubicInOut(t) {\n return t < 0.5 ? 4.0 * t * t * t : 0.5 * Math.pow(2.0 * t - 2.0, 3.0) + 1.0;\n}\nfunction cubicIn(t) {\n return t * t * t;\n}\nfunction cubicOut(t) {\n const f = t - 1.0;\n return f * f * f + 1.0;\n}\nfunction elasticInOut(t) {\n return t < 0.5\n ? 0.5 *\n Math.sin(((+13.0 * Math.PI) / 2) * 2.0 * t) *\n Math.pow(2.0, 10.0 * (2.0 * t - 1.0))\n : 0.5 *\n Math.sin(((-13.0 * Math.PI) / 2) * (2.0 * t - 1.0 + 1.0)) *\n Math.pow(2.0, -10.0 * (2.0 * t - 1.0)) +\n 1.0;\n}\nfunction elasticIn(t) {\n return Math.sin((13.0 * t * Math.PI) / 2) * Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction elasticOut(t) {\n return (Math.sin((-13.0 * (t + 1.0) * Math.PI) / 2) * Math.pow(2.0, -10.0 * t) + 1.0);\n}\nfunction expoInOut(t) {\n return t === 0.0 || t === 1.0\n ? t\n : t < 0.5\n ? +0.5 * Math.pow(2.0, 20.0 * t - 10.0)\n : -0.5 * Math.pow(2.0, 10.0 - t * 20.0) + 1.0;\n}\nfunction expoIn(t) {\n return t === 0.0 ? t : Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction expoOut(t) {\n return t === 1.0 ? t : 1.0 - Math.pow(2.0, -10.0 * t);\n}\nfunction quadInOut(t) {\n t /= 0.5;\n if (t < 1)\n return 0.5 * t * t;\n t--;\n return -0.5 * (t * (t - 2) - 1);\n}\nfunction quadIn(t) {\n return t * t;\n}\nfunction quadOut(t) {\n return -t * (t - 2.0);\n}\nfunction quartInOut(t) {\n return t < 0.5\n ? +8.0 * Math.pow(t, 4.0)\n : -8.0 * Math.pow(t - 1.0, 4.0) + 1.0;\n}\nfunction quartIn(t) {\n return Math.pow(t, 4.0);\n}\nfunction quartOut(t) {\n return Math.pow(t - 1.0, 3.0) * (1.0 - t) + 1.0;\n}\nfunction quintInOut(t) {\n if ((t *= 2) < 1)\n return 0.5 * t * t * t * t * t;\n return 0.5 * ((t -= 2) * t * t * t * t + 2);\n}\nfunction quintIn(t) {\n return t * t * t * t * t;\n}\nfunction quintOut(t) {\n return --t * t * t * t * t + 1;\n}\nfunction sineInOut(t) {\n return -0.5 * (Math.cos(Math.PI * t) - 1);\n}\nfunction sineIn(t) {\n const v = Math.cos(t * Math.PI * 0.5);\n if (Math.abs(v) < 1e-14)\n return 1;\n else\n return 1 - v;\n}\nfunction sineOut(t) {\n return Math.sin((t * Math.PI) / 2);\n}\n\nexport { backIn, backInOut, backOut, bounceIn, bounceInOut, bounceOut, circIn, circInOut, circOut, cubicIn, cubicInOut, cubicOut, elasticIn, elasticInOut, elasticOut, expoIn, expoInOut, expoOut, quadIn, quadInOut, quadOut, quartIn, quartInOut, quartOut, quintIn, quintInOut, quintOut, sineIn, sineInOut, sineOut };\n","export default {\n $(selector) {\n if (typeof selector === \"string\") {\n return document.querySelector(selector);\n }\n return selector;\n },\n extend(...args) {\n return Object.assign(...args);\n },\n cumulativeOffset(element) {\n let top = 0;\n let left = 0;\n\n do {\n top += element.offsetTop || 0;\n left += element.offsetLeft || 0;\n element = element.offsetParent;\n } while (element);\n\n return {\n top: top,\n left: left\n };\n },\n directScroll(element) {\n return element && element !== document && element !== document.body;\n },\n scrollTop(element, value) {\n let inSetter = value !== undefined;\n if (this.directScroll(element)) {\n return inSetter ? (element.scrollTop = value) : element.scrollTop;\n } else {\n return inSetter\n ? (document.documentElement.scrollTop = document.body.scrollTop = value)\n : window.pageYOffset ||\n document.documentElement.scrollTop ||\n document.body.scrollTop ||\n 0;\n }\n },\n scrollLeft(element, value) {\n let inSetter = value !== undefined;\n if (this.directScroll(element)) {\n return inSetter ? (element.scrollLeft = value) : element.scrollLeft;\n } else {\n return inSetter\n ? (document.documentElement.scrollLeft = document.body.scrollLeft = value)\n : window.pageXOffset ||\n document.documentElement.scrollLeft ||\n document.body.scrollLeft ||\n 0;\n }\n }\n};\n","import { cubicInOut } from \"svelte/easing\";\nimport { noop, loop, now } from \"svelte/internal\";\nimport _ from \"./helper\";\n\nconst defaultOptions = {\n container: \"body\",\n duration: 500,\n delay: 0,\n offset: 0,\n easing: cubicInOut,\n onStart: noop,\n onDone: noop,\n onAborting: noop,\n scrollX: false,\n scrollY: true\n};\n\nconst _scrollTo = options => {\n let {\n offset,\n duration,\n delay,\n easing,\n x=0,\n y=0,\n scrollX,\n scrollY,\n onStart,\n onDone,\n container,\n onAborting,\n element\n } = options;\n\n if (typeof offset === \"function\") {\n offset = offset();\n }\n\n var cumulativeOffsetContainer = _.cumulativeOffset(container);\n var cumulativeOffsetTarget = element\n ? _.cumulativeOffset(element)\n : { top: y, left: x };\n\n var initialX = _.scrollLeft(container);\n var initialY = _.scrollTop(container);\n\n var targetX =\n cumulativeOffsetTarget.left - cumulativeOffsetContainer.left + offset;\n var targetY =\n cumulativeOffsetTarget.top - cumulativeOffsetContainer.top + offset;\n\n var diffX = targetX - initialX;\n\tvar diffY = targetY - initialY;\n\n let scrolling = true;\n let started = false;\n let start_time = now() + delay;\n let end_time = start_time + duration;\n\n function scrollToTopLeft(element, top, left) {\n if (scrollX) _.scrollLeft(element, left);\n if (scrollY) _.scrollTop(element, top);\n }\n\n function start(delayStart) {\n if (!delayStart) {\n started = true;\n onStart(element, {x, y});\n }\n }\n\n function tick(progress) {\n scrollToTopLeft(\n container,\n initialY + diffY * progress,\n initialX + diffX * progress\n );\n }\n\n function stop() {\n scrolling = false;\n }\n\n loop(now => {\n if (!started && now >= start_time) {\n start(false)\n }\n\n if (started && now >= end_time) {\n tick(1);\n stop();\n onDone(element, {x, y});\n }\n\n if (!scrolling) {\n onAborting(element, {x, y});\n return false;\n }\n if (started) {\n const p = now - start_time;\n const t = 0 + 1 * easing(p / duration);\n tick(t);\n }\n\n return true;\n });\n\n start(delay);\n\n tick(0);\n\n return stop;\n};\n\nconst proceedOptions = options => {\n\tlet opts = _.extend({}, defaultOptions, options);\n opts.container = _.$(opts.container);\n opts.element = _.$(opts.element);\n return opts;\n};\n\nconst scrollContainerHeight = containerElement => {\n if (\n containerElement &&\n containerElement !== document &&\n containerElement !== document.body\n ) {\n return containerElement.scrollHeight - containerElement.offsetHeight;\n } else {\n let body = document.body;\n let html = document.documentElement;\n\n return Math.max(\n body.scrollHeight,\n body.offsetHeight,\n html.clientHeight,\n html.scrollHeight,\n html.offsetHeight\n );\n }\n};\n\nexport const setGlobalOptions = options => {\n\t_.extend(defaultOptions, options || {});\n};\n\nexport const scrollTo = options => {\n return _scrollTo(proceedOptions(options));\n};\n\nexport const scrollToBottom = options => {\n options = proceedOptions(options);\n\n return _scrollTo(\n _.extend(options, {\n element: null,\n y: scrollContainerHeight(options.container)\n })\n );\n};\n\nexport const scrollToTop = options => {\n options = proceedOptions(options);\n\n return _scrollTo(\n _.extend(options, {\n element: null,\n y: 0\n })\n );\n};\n\nexport const makeScrollToAction = scrollToFunc => {\n return (node, options) => {\n let current = options;\n const handle = e => {\n e.preventDefault();\n scrollToFunc(\n typeof current === \"string\" ? { element: current } : current\n );\n };\n node.addEventListener(\"click\", handle);\n node.addEventListener(\"touchstart\", handle);\n return {\n update(options) {\n current = options;\n },\n destroy() {\n node.removeEventListener(\"click\", handle);\n node.removeEventListener(\"touchstart\", handle);\n }\n };\n };\n};\n\nexport const scrollto = makeScrollToAction(scrollTo);\nexport const scrolltotop = makeScrollToAction(scrollToTop);\nexport const scrolltobottom = makeScrollToAction(scrollToBottom);\n","\n\n\n\n
\n {#if $chatAdapter?.pubkey}\n {ownName}\n {/if}\n
\n\n
\n \n {#each Array(totalRelays) as _, i}\n i ? 'bg-green-500' : 'bg-gray-300'}\n w-2 h-2\n \"> \n {/each}\n
\n\n {connectedRelays}/{totalRelays} relays\n \n
\n\n{#if $selectedMessage}\n {#if !getEventById($selectedMessage)}\n Couldn't find event with ID {$selectedMessage} \n {:else}\n \n
\n \n \n \n \n\n
\n \n {getEventById($selectedMessage).content}\n \n
\n
\n {/if}\n{/if}\n\n\n
\n {#if $selectedMessage}\n \n {:else}\n {#each events as event}\n \n {#if event.deleted}\n 👆 deleted\n {/if}\n {/each}\n {/if}\n
\n
\n\n\n\n
\n {#if chatConfiguration.chatType === 'DM'}\n Encrypted chat: \n only your chat partner can see these messages.\n {:else}\n Public chat: \n anyone can see these messages.\n {/if}\n
\n\n
\n
\n\n","\n\n{#if !chatStarted}\n \n{:else}\n \n{/if}\n\n","\n\n\n {#if showChat}\n
\n {#if !dismissedIntro}\n
\n NostriChat\n \n\n
\n This is a FOSS chat app built on top of the Nostr protocol.\n
\n\n
\n Choose how you would like to chat:\n
\n\n
\n You can use it to ask for help\n PSBT.io \n to the creators of this site or to\n anyone willing to help.\n
\n\n
\n Keep in mind that this chat is public,\n anyone can read it, so don't exchange\n private information and use common-sense.\n
\n\n
\n Continue\n \n {:else}\n
\n {/if}\n
\n {/if}\n\n\n
\n
\n\n","import Widget from './Widget.svelte';\n\nvar div = document.createElement('DIV');\nvar script = document.currentScript;\nconst websiteOwnerPubkey = script.getAttribute('data-website-owner-pubkey');\nconst chatType = script.getAttribute('data-chat-type');\nlet chatTags = script.getAttribute('data-chat-tags');\nlet chatReferenceTags = script.getAttribute('data-chat-reference-tags');\nlet relays = script.getAttribute('data-relays');\nscript.parentNode.insertBefore(div, script);\n\nif (!relays) {\n\trelays = 'wss://relay.f7z.io,wss://nos.lol,wss://relay.nostr.info,wss://nostr-pub.wellorder.net,wss://relay.current.fyi,wss://relay.nostr.band'\n}\n\nrelays = relays.split(',');\nchatTags = chatTags ? chatTags.split(',') : [];\nchatReferenceTags = chatReferenceTags ? chatReferenceTags.split(',') : [];\n\nconst embed = new Widget({\n\ttarget: div,\n\tprops: {\n\t\twebsiteOwnerPubkey,\n\t\tchatType,\n\t\tchatTags,\n\t\tchatReferenceTags,\n\t\trelays\n\t},\n});\n"],"names":["now","mode","ECL","math","Polynomial","BitByte","RSBlock","BitBuffer","util","bytesToNumber","hexToBytes","bytesToHex","concatBytes","hexes","utils","getPublicKey","crypto","createView","rotr","isLE","utf8ToBytes","toBytes","assertNumber","wrapConstructor","setBigUint64","Hash","Chi","Maj","SHA256_K","IV","SHA256_W","SHA2","sha256","SHA256","normalize","base58check","number","bool","bytes","hash","exists","output","assert","require$$0","require$$1","pbkdf2_1","_assert_js_1","utils_js_1","require$$2","_sha2_js_1","SHA224","sha512","SHA512_Kh","SHA512_Kl","SHA512_W_H","SHA512_W_L","SHA512","SHA512_224","SHA512_256","SHA384","require$$3","require$$4","require$$5","hmac","HMAC","secp.utils","base58checker","secp.getPublicKey","secp.Point","assertBytes","secp.CURVE","secp.signSync","secp.Signature","secp.verify","secp256k1.utils","secp256k1.schnorr","secp256k12.utils","secp256k12.schnorr","secp256k13.getSharedSecret","mnemonicToSeedSync","secp256k14.utils","generateMnemonic","validateMnemonic","secp256k15.utils","sha2562","secp256k16.utils","secp256k16.schnorr","bech322","secp256k17.utils","sha2563","Relay","eventsModule","events","EventEmitter","uuid.v4","RelayPool","nip04","create_if_block_2","create_if_block_1","create_if_block","animateScroll.scrollToBottom"],"mappings":"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Cf,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACvB,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACvB,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACvB,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACvB,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACvB,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACvB,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACvB,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IAC3B,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IAC3B,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IAC5B,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IAC5B,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IAC5B,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IAC5B,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IAC5B,QAAQ,CAAC,CAAC,EAAE,E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AAA,CAAA,QAAA,GAAG,KAAK,CAAC,CAAC;IAC1B,QAAA,GAAA,OAAA,CAAA,QAAgB,GAAG,CAAC;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;;;;;;ICjgEhB,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9D,OAAA,CAAA,MAAc,GAAG,OAAA,CAAA,MAAc,GAAG,OAAA,CAAA,IAAY,GAAG,OAAA,CAAA,KAAa,GAAG,OAAA,CAAA,IAAY,GAAG,OAAA,CAAA,MAAc,GAAG,KAAK,EAAE;IACxG,SAASE,QAAM,CAAC,CAAC,EAAE;IACnB,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;IACzC,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACxD,CAAC;IACa,OAAA,CAAA,MAAA,GAAGA,SAAO;IACxB,SAASC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"}
\ No newline at end of file
diff --git a/src/ZapAmountButton.svelte b/src/ZapAmountButton.svelte
index 8b76005..1e30ef9 100644
--- a/src/ZapAmountButton.svelte
+++ b/src/ZapAmountButton.svelte
@@ -1,14 +1,13 @@
\";\n unsubscribe = listen(window, 'message', (event) => {\n if (event.source === iframe.contentWindow)\n fn();\n });\n }\n else {\n iframe.src = 'about:blank';\n iframe.onload = () => {\n unsubscribe = listen(iframe.contentWindow, 'resize', fn);\n };\n }\n append(node, iframe);\n return () => {\n if (crossorigin) {\n unsubscribe();\n }\n else if (unsubscribe && iframe.contentWindow) {\n unsubscribe();\n }\n detach(iframe);\n };\n}\nfunction toggle_class(element, name, toggle) {\n element.classList[toggle ? 'add' : 'remove'](name);\n}\nfunction custom_event(type, detail, { bubbles = false, cancelable = false } = {}) {\n const e = document.createEvent('CustomEvent');\n e.initCustomEvent(type, bubbles, cancelable, detail);\n return e;\n}\nfunction query_selector_all(selector, parent = document.body) {\n return Array.from(parent.querySelectorAll(selector));\n}\nfunction head_selector(nodeId, head) {\n const result = [];\n let started = 0;\n for (const node of head.childNodes) {\n if (node.nodeType === 8 /* comment node */) {\n const comment = node.textContent.trim();\n if (comment === `HEAD_${nodeId}_END`) {\n started -= 1;\n result.push(node);\n }\n else if (comment === `HEAD_${nodeId}_START`) {\n started += 1;\n result.push(node);\n }\n }\n else if (started > 0) {\n result.push(node);\n }\n }\n return result;\n}\nclass HtmlTag {\n constructor(is_svg = false) {\n this.is_svg = false;\n this.is_svg = is_svg;\n this.e = this.n = null;\n }\n c(html) {\n this.h(html);\n }\n m(html, target, anchor = null) {\n if (!this.e) {\n if (this.is_svg)\n this.e = svg_element(target.nodeName);\n else\n this.e = element(target.nodeName);\n this.t = target;\n this.c(html);\n }\n this.i(anchor);\n }\n h(html) {\n this.e.innerHTML = html;\n this.n = Array.from(this.e.childNodes);\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert(this.t, this.n[i], anchor);\n }\n }\n p(html) {\n this.d();\n this.h(html);\n this.i(this.a);\n }\n d() {\n this.n.forEach(detach);\n }\n}\nclass HtmlTagHydration extends HtmlTag {\n constructor(claimed_nodes, is_svg = false) {\n super(is_svg);\n this.e = this.n = null;\n this.l = claimed_nodes;\n }\n c(html) {\n if (this.l) {\n this.n = this.l;\n }\n else {\n super.c(html);\n }\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert_hydration(this.t, this.n[i], anchor);\n }\n }\n}\nfunction attribute_to_object(attributes) {\n const result = {};\n for (const attribute of attributes) {\n result[attribute.name] = attribute.value;\n }\n return result;\n}\nfunction get_custom_elements_slots(element) {\n const result = {};\n element.childNodes.forEach((node) => {\n result[node.slot || 'default'] = true;\n });\n return result;\n}\nfunction construct_svelte_component(component, props) {\n return new component(props);\n}\n\n// we need to store the information for multiple documents because a Svelte application could also contain iframes\n// https://github.com/sveltejs/svelte/issues/3624\nconst managed_styles = new Map();\nlet active = 0;\n// https://github.com/darkskyapp/string-hash/blob/master/index.js\nfunction hash(str) {\n let hash = 5381;\n let i = str.length;\n while (i--)\n hash = ((hash << 5) - hash) ^ str.charCodeAt(i);\n return hash >>> 0;\n}\nfunction create_style_information(doc, node) {\n const info = { stylesheet: append_empty_stylesheet(node), rules: {} };\n managed_styles.set(doc, info);\n return info;\n}\nfunction create_rule(node, a, b, duration, delay, ease, fn, uid = 0) {\n const step = 16.666 / duration;\n let keyframes = '{\\n';\n for (let p = 0; p <= 1; p += step) {\n const t = a + (b - a) * ease(p);\n keyframes += p * 100 + `%{${fn(t, 1 - t)}}\\n`;\n }\n const rule = keyframes + `100% {${fn(b, 1 - b)}}\\n}`;\n const name = `__svelte_${hash(rule)}_${uid}`;\n const doc = get_root_for_style(node);\n const { stylesheet, rules } = managed_styles.get(doc) || create_style_information(doc, node);\n if (!rules[name]) {\n rules[name] = true;\n stylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length);\n }\n const animation = node.style.animation || '';\n node.style.animation = `${animation ? `${animation}, ` : ''}${name} ${duration}ms linear ${delay}ms 1 both`;\n active += 1;\n return name;\n}\nfunction delete_rule(node, name) {\n const previous = (node.style.animation || '').split(', ');\n const next = previous.filter(name\n ? anim => anim.indexOf(name) < 0 // remove specific animation\n : anim => anim.indexOf('__svelte') === -1 // remove all Svelte animations\n );\n const deleted = previous.length - next.length;\n if (deleted) {\n node.style.animation = next.join(', ');\n active -= deleted;\n if (!active)\n clear_rules();\n }\n}\nfunction clear_rules() {\n raf(() => {\n if (active)\n return;\n managed_styles.forEach(info => {\n const { ownerNode } = info.stylesheet;\n // there is no ownerNode if it runs on jsdom.\n if (ownerNode)\n detach(ownerNode);\n });\n managed_styles.clear();\n });\n}\n\nfunction create_animation(node, from, fn, params) {\n if (!from)\n return noop;\n const to = node.getBoundingClientRect();\n if (from.left === to.left && from.right === to.right && from.top === to.top && from.bottom === to.bottom)\n return noop;\n const { delay = 0, duration = 300, easing = identity, \n // @ts-ignore todo: should this be separated from destructuring? Or start/end added to public api and documentation?\n start: start_time = now() + delay, \n // @ts-ignore todo:\n end = start_time + duration, tick = noop, css } = fn(node, { from, to }, params);\n let running = true;\n let started = false;\n let name;\n function start() {\n if (css) {\n name = create_rule(node, 0, 1, duration, delay, easing, css);\n }\n if (!delay) {\n started = true;\n }\n }\n function stop() {\n if (css)\n delete_rule(node, name);\n running = false;\n }\n loop(now => {\n if (!started && now >= start_time) {\n started = true;\n }\n if (started && now >= end) {\n tick(1, 0);\n stop();\n }\n if (!running) {\n return false;\n }\n if (started) {\n const p = now - start_time;\n const t = 0 + 1 * easing(p / duration);\n tick(t, 1 - t);\n }\n return true;\n });\n start();\n tick(0, 1);\n return stop;\n}\nfunction fix_position(node) {\n const style = getComputedStyle(node);\n if (style.position !== 'absolute' && style.position !== 'fixed') {\n const { width, height } = style;\n const a = node.getBoundingClientRect();\n node.style.position = 'absolute';\n node.style.width = width;\n node.style.height = height;\n add_transform(node, a);\n }\n}\nfunction add_transform(node, a) {\n const b = node.getBoundingClientRect();\n if (a.left !== b.left || a.top !== b.top) {\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n node.style.transform = `${transform} translate(${a.left - b.left}px, ${a.top - b.top}px)`;\n }\n}\n\nlet current_component;\nfunction set_current_component(component) {\n current_component = component;\n}\nfunction get_current_component() {\n if (!current_component)\n throw new Error('Function called outside component initialization');\n return current_component;\n}\n/**\n * Schedules a callback to run immediately before the component is updated after any state change.\n *\n * The first time the callback runs will be before the initial `onMount`\n *\n * https://svelte.dev/docs#run-time-svelte-beforeupdate\n */\nfunction beforeUpdate(fn) {\n get_current_component().$$.before_update.push(fn);\n}\n/**\n * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM.\n * It must be called during the component's initialisation (but doesn't need to live *inside* the component;\n * it can be called from an external module).\n *\n * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api).\n *\n * https://svelte.dev/docs#run-time-svelte-onmount\n */\nfunction onMount(fn) {\n get_current_component().$$.on_mount.push(fn);\n}\n/**\n * Schedules a callback to run immediately after the component has been updated.\n *\n * The first time the callback runs will be after the initial `onMount`\n */\nfunction afterUpdate(fn) {\n get_current_component().$$.after_update.push(fn);\n}\n/**\n * Schedules a callback to run immediately before the component is unmounted.\n *\n * Out of `onMount`, `beforeUpdate`, `afterUpdate` and `onDestroy`, this is the\n * only one that runs inside a server-side component.\n *\n * https://svelte.dev/docs#run-time-svelte-ondestroy\n */\nfunction onDestroy(fn) {\n get_current_component().$$.on_destroy.push(fn);\n}\n/**\n * Creates an event dispatcher that can be used to dispatch [component events](/docs#template-syntax-component-directives-on-eventname).\n * Event dispatchers are functions that can take two arguments: `name` and `detail`.\n *\n * Component events created with `createEventDispatcher` create a\n * [CustomEvent](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent).\n * These events do not [bubble](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Building_blocks/Events#Event_bubbling_and_capture).\n * The `detail` argument corresponds to the [CustomEvent.detail](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/detail)\n * property and can contain any type of data.\n *\n * https://svelte.dev/docs#run-time-svelte-createeventdispatcher\n */\nfunction createEventDispatcher() {\n const component = get_current_component();\n return (type, detail, { cancelable = false } = {}) => {\n const callbacks = component.$$.callbacks[type];\n if (callbacks) {\n // TODO are there situations where events could be dispatched\n // in a server (non-DOM) environment?\n const event = custom_event(type, detail, { cancelable });\n callbacks.slice().forEach(fn => {\n fn.call(component, event);\n });\n return !event.defaultPrevented;\n }\n return true;\n };\n}\n/**\n * Associates an arbitrary `context` object with the current component and the specified `key`\n * and returns that object. The context is then available to children of the component\n * (including slotted content) with `getContext`.\n *\n * Like lifecycle functions, this must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-setcontext\n */\nfunction setContext(key, context) {\n get_current_component().$$.context.set(key, context);\n return context;\n}\n/**\n * Retrieves the context that belongs to the closest parent component with the specified `key`.\n * Must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-getcontext\n */\nfunction getContext(key) {\n return get_current_component().$$.context.get(key);\n}\n/**\n * Retrieves the whole context map that belongs to the closest parent component.\n * Must be called during component initialisation. Useful, for example, if you\n * programmatically create a component and want to pass the existing context to it.\n *\n * https://svelte.dev/docs#run-time-svelte-getallcontexts\n */\nfunction getAllContexts() {\n return get_current_component().$$.context;\n}\n/**\n * Checks whether a given `key` has been set in the context of a parent component.\n * Must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-hascontext\n */\nfunction hasContext(key) {\n return get_current_component().$$.context.has(key);\n}\n// TODO figure out if we still want to support\n// shorthand events, or if we want to implement\n// a real bubbling mechanism\nfunction bubble(component, event) {\n const callbacks = component.$$.callbacks[event.type];\n if (callbacks) {\n // @ts-ignore\n callbacks.slice().forEach(fn => fn.call(this, event));\n }\n}\n\nconst dirty_components = [];\nconst intros = { enabled: false };\nconst binding_callbacks = [];\nconst render_callbacks = [];\nconst flush_callbacks = [];\nconst resolved_promise = Promise.resolve();\nlet update_scheduled = false;\nfunction schedule_update() {\n if (!update_scheduled) {\n update_scheduled = true;\n resolved_promise.then(flush);\n }\n}\nfunction tick() {\n schedule_update();\n return resolved_promise;\n}\nfunction add_render_callback(fn) {\n render_callbacks.push(fn);\n}\nfunction add_flush_callback(fn) {\n flush_callbacks.push(fn);\n}\n// flush() calls callbacks in this order:\n// 1. All beforeUpdate callbacks, in order: parents before children\n// 2. All bind:this callbacks, in reverse order: children before parents.\n// 3. All afterUpdate callbacks, in order: parents before children. EXCEPT\n// for afterUpdates called during the initial onMount, which are called in\n// reverse order: children before parents.\n// Since callbacks might update component values, which could trigger another\n// call to flush(), the following steps guard against this:\n// 1. During beforeUpdate, any updated components will be added to the\n// dirty_components array and will cause a reentrant call to flush(). Because\n// the flush index is kept outside the function, the reentrant call will pick\n// up where the earlier call left off and go through all dirty components. The\n// current_component value is saved and restored so that the reentrant call will\n// not interfere with the \"parent\" flush() call.\n// 2. bind:this callbacks cannot trigger new flush() calls.\n// 3. During afterUpdate, any updated components will NOT have their afterUpdate\n// callback called a second time; the seen_callbacks set, outside the flush()\n// function, guarantees this behavior.\nconst seen_callbacks = new Set();\nlet flushidx = 0; // Do *not* move this inside the flush() function\nfunction flush() {\n // Do not reenter flush while dirty components are updated, as this can\n // result in an infinite loop. Instead, let the inner flush handle it.\n // Reentrancy is ok afterwards for bindings etc.\n if (flushidx !== 0) {\n return;\n }\n const saved_component = current_component;\n do {\n // first, call beforeUpdate functions\n // and update components\n try {\n while (flushidx < dirty_components.length) {\n const component = dirty_components[flushidx];\n flushidx++;\n set_current_component(component);\n update(component.$$);\n }\n }\n catch (e) {\n // reset dirty state to not end up in a deadlocked state and then rethrow\n dirty_components.length = 0;\n flushidx = 0;\n throw e;\n }\n set_current_component(null);\n dirty_components.length = 0;\n flushidx = 0;\n while (binding_callbacks.length)\n binding_callbacks.pop()();\n // then, once components are updated, call\n // afterUpdate functions. This may cause\n // subsequent updates...\n for (let i = 0; i < render_callbacks.length; i += 1) {\n const callback = render_callbacks[i];\n if (!seen_callbacks.has(callback)) {\n // ...so guard against infinite loops\n seen_callbacks.add(callback);\n callback();\n }\n }\n render_callbacks.length = 0;\n } while (dirty_components.length);\n while (flush_callbacks.length) {\n flush_callbacks.pop()();\n }\n update_scheduled = false;\n seen_callbacks.clear();\n set_current_component(saved_component);\n}\nfunction update($$) {\n if ($$.fragment !== null) {\n $$.update();\n run_all($$.before_update);\n const dirty = $$.dirty;\n $$.dirty = [-1];\n $$.fragment && $$.fragment.p($$.ctx, dirty);\n $$.after_update.forEach(add_render_callback);\n }\n}\n\nlet promise;\nfunction wait() {\n if (!promise) {\n promise = Promise.resolve();\n promise.then(() => {\n promise = null;\n });\n }\n return promise;\n}\nfunction dispatch(node, direction, kind) {\n node.dispatchEvent(custom_event(`${direction ? 'intro' : 'outro'}${kind}`));\n}\nconst outroing = new Set();\nlet outros;\nfunction group_outros() {\n outros = {\n r: 0,\n c: [],\n p: outros // parent group\n };\n}\nfunction check_outros() {\n if (!outros.r) {\n run_all(outros.c);\n }\n outros = outros.p;\n}\nfunction transition_in(block, local) {\n if (block && block.i) {\n outroing.delete(block);\n block.i(local);\n }\n}\nfunction transition_out(block, local, detach, callback) {\n if (block && block.o) {\n if (outroing.has(block))\n return;\n outroing.add(block);\n outros.c.push(() => {\n outroing.delete(block);\n if (callback) {\n if (detach)\n block.d(1);\n callback();\n }\n });\n block.o(local);\n }\n else if (callback) {\n callback();\n }\n}\nconst null_transition = { duration: 0 };\nfunction create_in_transition(node, fn, params) {\n const options = { direction: 'in' };\n let config = fn(node, params, options);\n let running = false;\n let animation_name;\n let task;\n let uid = 0;\n function cleanup() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 0, 1, duration, delay, easing, css, uid++);\n tick(0, 1);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n if (task)\n task.abort();\n running = true;\n add_render_callback(() => dispatch(node, true, 'start'));\n task = loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(1, 0);\n dispatch(node, true, 'end');\n cleanup();\n return running = false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(t, 1 - t);\n }\n }\n return running;\n });\n }\n let started = false;\n return {\n start() {\n if (started)\n return;\n started = true;\n delete_rule(node);\n if (is_function(config)) {\n config = config(options);\n wait().then(go);\n }\n else {\n go();\n }\n },\n invalidate() {\n started = false;\n },\n end() {\n if (running) {\n cleanup();\n running = false;\n }\n }\n };\n}\nfunction create_out_transition(node, fn, params) {\n const options = { direction: 'out' };\n let config = fn(node, params, options);\n let running = true;\n let animation_name;\n const group = outros;\n group.r += 1;\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 1, 0, duration, delay, easing, css);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n add_render_callback(() => dispatch(node, false, 'start'));\n loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(0, 1);\n dispatch(node, false, 'end');\n if (!--group.r) {\n // this will result in `end()` being called,\n // so we don't need to clean up here\n run_all(group.c);\n }\n return false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(1 - t, t);\n }\n }\n return running;\n });\n }\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config(options);\n go();\n });\n }\n else {\n go();\n }\n return {\n end(reset) {\n if (reset && config.tick) {\n config.tick(1, 0);\n }\n if (running) {\n if (animation_name)\n delete_rule(node, animation_name);\n running = false;\n }\n }\n };\n}\nfunction create_bidirectional_transition(node, fn, params, intro) {\n const options = { direction: 'both' };\n let config = fn(node, params, options);\n let t = intro ? 0 : 1;\n let running_program = null;\n let pending_program = null;\n let animation_name = null;\n function clear_animation() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function init(program, duration) {\n const d = (program.b - t);\n duration *= Math.abs(d);\n return {\n a: t,\n b: program.b,\n d,\n duration,\n start: program.start,\n end: program.start + duration,\n group: program.group\n };\n }\n function go(b) {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n const program = {\n start: now() + delay,\n b\n };\n if (!b) {\n // @ts-ignore todo: improve typings\n program.group = outros;\n outros.r += 1;\n }\n if (running_program || pending_program) {\n pending_program = program;\n }\n else {\n // if this is an intro, and there's a delay, we need to do\n // an initial tick and/or apply CSS animation immediately\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, b, duration, delay, easing, css);\n }\n if (b)\n tick(0, 1);\n running_program = init(program, duration);\n add_render_callback(() => dispatch(node, b, 'start'));\n loop(now => {\n if (pending_program && now > pending_program.start) {\n running_program = init(pending_program, duration);\n pending_program = null;\n dispatch(node, running_program.b, 'start');\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, running_program.b, running_program.duration, 0, easing, config.css);\n }\n }\n if (running_program) {\n if (now >= running_program.end) {\n tick(t = running_program.b, 1 - t);\n dispatch(node, running_program.b, 'end');\n if (!pending_program) {\n // we're done\n if (running_program.b) {\n // intro — we can tidy up immediately\n clear_animation();\n }\n else {\n // outro — needs to be coordinated\n if (!--running_program.group.r)\n run_all(running_program.group.c);\n }\n }\n running_program = null;\n }\n else if (now >= running_program.start) {\n const p = now - running_program.start;\n t = running_program.a + running_program.d * easing(p / running_program.duration);\n tick(t, 1 - t);\n }\n }\n return !!(running_program || pending_program);\n });\n }\n }\n return {\n run(b) {\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config(options);\n go(b);\n });\n }\n else {\n go(b);\n }\n },\n end() {\n clear_animation();\n running_program = pending_program = null;\n }\n };\n}\n\nfunction handle_promise(promise, info) {\n const token = info.token = {};\n function update(type, index, key, value) {\n if (info.token !== token)\n return;\n info.resolved = value;\n let child_ctx = info.ctx;\n if (key !== undefined) {\n child_ctx = child_ctx.slice();\n child_ctx[key] = value;\n }\n const block = type && (info.current = type)(child_ctx);\n let needs_flush = false;\n if (info.block) {\n if (info.blocks) {\n info.blocks.forEach((block, i) => {\n if (i !== index && block) {\n group_outros();\n transition_out(block, 1, 1, () => {\n if (info.blocks[i] === block) {\n info.blocks[i] = null;\n }\n });\n check_outros();\n }\n });\n }\n else {\n info.block.d(1);\n }\n block.c();\n transition_in(block, 1);\n block.m(info.mount(), info.anchor);\n needs_flush = true;\n }\n info.block = block;\n if (info.blocks)\n info.blocks[index] = block;\n if (needs_flush) {\n flush();\n }\n }\n if (is_promise(promise)) {\n const current_component = get_current_component();\n promise.then(value => {\n set_current_component(current_component);\n update(info.then, 1, info.value, value);\n set_current_component(null);\n }, error => {\n set_current_component(current_component);\n update(info.catch, 2, info.error, error);\n set_current_component(null);\n if (!info.hasCatch) {\n throw error;\n }\n });\n // if we previously had a then/catch block, destroy it\n if (info.current !== info.pending) {\n update(info.pending, 0);\n return true;\n }\n }\n else {\n if (info.current !== info.then) {\n update(info.then, 1, info.value, promise);\n return true;\n }\n info.resolved = promise;\n }\n}\nfunction update_await_block_branch(info, ctx, dirty) {\n const child_ctx = ctx.slice();\n const { resolved } = info;\n if (info.current === info.then) {\n child_ctx[info.value] = resolved;\n }\n if (info.current === info.catch) {\n child_ctx[info.error] = resolved;\n }\n info.block.p(child_ctx, dirty);\n}\n\nconst globals = (typeof window !== 'undefined'\n ? window\n : typeof globalThis !== 'undefined'\n ? globalThis\n : global);\n\nfunction destroy_block(block, lookup) {\n block.d(1);\n lookup.delete(block.key);\n}\nfunction outro_and_destroy_block(block, lookup) {\n transition_out(block, 1, 1, () => {\n lookup.delete(block.key);\n });\n}\nfunction fix_and_destroy_block(block, lookup) {\n block.f();\n destroy_block(block, lookup);\n}\nfunction fix_and_outro_and_destroy_block(block, lookup) {\n block.f();\n outro_and_destroy_block(block, lookup);\n}\nfunction update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) {\n let o = old_blocks.length;\n let n = list.length;\n let i = o;\n const old_indexes = {};\n while (i--)\n old_indexes[old_blocks[i].key] = i;\n const new_blocks = [];\n const new_lookup = new Map();\n const deltas = new Map();\n i = n;\n while (i--) {\n const child_ctx = get_context(ctx, list, i);\n const key = get_key(child_ctx);\n let block = lookup.get(key);\n if (!block) {\n block = create_each_block(key, child_ctx);\n block.c();\n }\n else if (dynamic) {\n block.p(child_ctx, dirty);\n }\n new_lookup.set(key, new_blocks[i] = block);\n if (key in old_indexes)\n deltas.set(key, Math.abs(i - old_indexes[key]));\n }\n const will_move = new Set();\n const did_move = new Set();\n function insert(block) {\n transition_in(block, 1);\n block.m(node, next);\n lookup.set(block.key, block);\n next = block.first;\n n--;\n }\n while (o && n) {\n const new_block = new_blocks[n - 1];\n const old_block = old_blocks[o - 1];\n const new_key = new_block.key;\n const old_key = old_block.key;\n if (new_block === old_block) {\n // do nothing\n next = new_block.first;\n o--;\n n--;\n }\n else if (!new_lookup.has(old_key)) {\n // remove old block\n destroy(old_block, lookup);\n o--;\n }\n else if (!lookup.has(new_key) || will_move.has(new_key)) {\n insert(new_block);\n }\n else if (did_move.has(old_key)) {\n o--;\n }\n else if (deltas.get(new_key) > deltas.get(old_key)) {\n did_move.add(new_key);\n insert(new_block);\n }\n else {\n will_move.add(old_key);\n o--;\n }\n }\n while (o--) {\n const old_block = old_blocks[o];\n if (!new_lookup.has(old_block.key))\n destroy(old_block, lookup);\n }\n while (n)\n insert(new_blocks[n - 1]);\n return new_blocks;\n}\nfunction validate_each_keys(ctx, list, get_context, get_key) {\n const keys = new Set();\n for (let i = 0; i < list.length; i++) {\n const key = get_key(get_context(ctx, list, i));\n if (keys.has(key)) {\n throw new Error('Cannot have duplicate keys in a keyed each');\n }\n keys.add(key);\n }\n}\n\nfunction get_spread_update(levels, updates) {\n const update = {};\n const to_null_out = {};\n const accounted_for = { $$scope: 1 };\n let i = levels.length;\n while (i--) {\n const o = levels[i];\n const n = updates[i];\n if (n) {\n for (const key in o) {\n if (!(key in n))\n to_null_out[key] = 1;\n }\n for (const key in n) {\n if (!accounted_for[key]) {\n update[key] = n[key];\n accounted_for[key] = 1;\n }\n }\n levels[i] = n;\n }\n else {\n for (const key in o) {\n accounted_for[key] = 1;\n }\n }\n }\n for (const key in to_null_out) {\n if (!(key in update))\n update[key] = undefined;\n }\n return update;\n}\nfunction get_spread_object(spread_props) {\n return typeof spread_props === 'object' && spread_props !== null ? spread_props : {};\n}\n\n// source: https://html.spec.whatwg.org/multipage/indices.html\nconst boolean_attributes = new Set([\n 'allowfullscreen',\n 'allowpaymentrequest',\n 'async',\n 'autofocus',\n 'autoplay',\n 'checked',\n 'controls',\n 'default',\n 'defer',\n 'disabled',\n 'formnovalidate',\n 'hidden',\n 'inert',\n 'ismap',\n 'itemscope',\n 'loop',\n 'multiple',\n 'muted',\n 'nomodule',\n 'novalidate',\n 'open',\n 'playsinline',\n 'readonly',\n 'required',\n 'reversed',\n 'selected'\n]);\n\n/** regex of all html void element names */\nconst void_element_names = /^(?:area|base|br|col|command|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)$/;\nfunction is_void(name) {\n return void_element_names.test(name) || name.toLowerCase() === '!doctype';\n}\n\nconst invalid_attribute_name_character = /[\\s'\">/=\\u{FDD0}-\\u{FDEF}\\u{FFFE}\\u{FFFF}\\u{1FFFE}\\u{1FFFF}\\u{2FFFE}\\u{2FFFF}\\u{3FFFE}\\u{3FFFF}\\u{4FFFE}\\u{4FFFF}\\u{5FFFE}\\u{5FFFF}\\u{6FFFE}\\u{6FFFF}\\u{7FFFE}\\u{7FFFF}\\u{8FFFE}\\u{8FFFF}\\u{9FFFE}\\u{9FFFF}\\u{AFFFE}\\u{AFFFF}\\u{BFFFE}\\u{BFFFF}\\u{CFFFE}\\u{CFFFF}\\u{DFFFE}\\u{DFFFF}\\u{EFFFE}\\u{EFFFF}\\u{FFFFE}\\u{FFFFF}\\u{10FFFE}\\u{10FFFF}]/u;\n// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n// https://infra.spec.whatwg.org/#noncharacter\nfunction spread(args, attrs_to_add) {\n const attributes = Object.assign({}, ...args);\n if (attrs_to_add) {\n const classes_to_add = attrs_to_add.classes;\n const styles_to_add = attrs_to_add.styles;\n if (classes_to_add) {\n if (attributes.class == null) {\n attributes.class = classes_to_add;\n }\n else {\n attributes.class += ' ' + classes_to_add;\n }\n }\n if (styles_to_add) {\n if (attributes.style == null) {\n attributes.style = style_object_to_string(styles_to_add);\n }\n else {\n attributes.style = style_object_to_string(merge_ssr_styles(attributes.style, styles_to_add));\n }\n }\n }\n let str = '';\n Object.keys(attributes).forEach(name => {\n if (invalid_attribute_name_character.test(name))\n return;\n const value = attributes[name];\n if (value === true)\n str += ' ' + name;\n else if (boolean_attributes.has(name.toLowerCase())) {\n if (value)\n str += ' ' + name;\n }\n else if (value != null) {\n str += ` ${name}=\"${value}\"`;\n }\n });\n return str;\n}\nfunction merge_ssr_styles(style_attribute, style_directive) {\n const style_object = {};\n for (const individual_style of style_attribute.split(';')) {\n const colon_index = individual_style.indexOf(':');\n const name = individual_style.slice(0, colon_index).trim();\n const value = individual_style.slice(colon_index + 1).trim();\n if (!name)\n continue;\n style_object[name] = value;\n }\n for (const name in style_directive) {\n const value = style_directive[name];\n if (value) {\n style_object[name] = value;\n }\n else {\n delete style_object[name];\n }\n }\n return style_object;\n}\nconst ATTR_REGEX = /[&\"]/g;\nconst CONTENT_REGEX = /[&<]/g;\n/**\n * Note: this method is performance sensitive and has been optimized\n * https://github.com/sveltejs/svelte/pull/5701\n */\nfunction escape(value, is_attr = false) {\n const str = String(value);\n const pattern = is_attr ? ATTR_REGEX : CONTENT_REGEX;\n pattern.lastIndex = 0;\n let escaped = '';\n let last = 0;\n while (pattern.test(str)) {\n const i = pattern.lastIndex - 1;\n const ch = str[i];\n escaped += str.substring(last, i) + (ch === '&' ? '&' : (ch === '\"' ? '"' : '<'));\n last = i + 1;\n }\n return escaped + str.substring(last);\n}\nfunction escape_attribute_value(value) {\n // keep booleans, null, and undefined for the sake of `spread`\n const should_escape = typeof value === 'string' || (value && typeof value === 'object');\n return should_escape ? escape(value, true) : value;\n}\nfunction escape_object(obj) {\n const result = {};\n for (const key in obj) {\n result[key] = escape_attribute_value(obj[key]);\n }\n return result;\n}\nfunction each(items, fn) {\n let str = '';\n for (let i = 0; i < items.length; i += 1) {\n str += fn(items[i], i);\n }\n return str;\n}\nconst missing_component = {\n $$render: () => ''\n};\nfunction validate_component(component, name) {\n if (!component || !component.$$render) {\n if (name === 'svelte:component')\n name += ' this={...}';\n throw new Error(`<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules. Otherwise you may need to fix a <${name}>.`);\n }\n return component;\n}\nfunction debug(file, line, column, values) {\n console.log(`{@debug} ${file ? file + ' ' : ''}(${line}:${column})`); // eslint-disable-line no-console\n console.log(values); // eslint-disable-line no-console\n return '';\n}\nlet on_destroy;\nfunction create_ssr_component(fn) {\n function $$render(result, props, bindings, slots, context) {\n const parent_component = current_component;\n const $$ = {\n on_destroy,\n context: new Map(context || (parent_component ? parent_component.$$.context : [])),\n // these will be immediately discarded\n on_mount: [],\n before_update: [],\n after_update: [],\n callbacks: blank_object()\n };\n set_current_component({ $$ });\n const html = fn(result, props, bindings, slots);\n set_current_component(parent_component);\n return html;\n }\n return {\n render: (props = {}, { $$slots = {}, context = new Map() } = {}) => {\n on_destroy = [];\n const result = { title: '', head: '', css: new Set() };\n const html = $$render(result, props, {}, $$slots, context);\n run_all(on_destroy);\n return {\n html,\n css: {\n code: Array.from(result.css).map(css => css.code).join('\\n'),\n map: null // TODO\n },\n head: result.title + result.head\n };\n },\n $$render\n };\n}\nfunction add_attribute(name, value, boolean) {\n if (value == null || (boolean && !value))\n return '';\n const assignment = (boolean && value === true) ? '' : `=\"${escape(value, true)}\"`;\n return ` ${name}${assignment}`;\n}\nfunction add_classes(classes) {\n return classes ? ` class=\"${classes}\"` : '';\n}\nfunction style_object_to_string(style_object) {\n return Object.keys(style_object)\n .filter(key => style_object[key])\n .map(key => `${key}: ${escape_attribute_value(style_object[key])};`)\n .join(' ');\n}\nfunction add_styles(style_object) {\n const styles = style_object_to_string(style_object);\n return styles ? ` style=\"${styles}\"` : '';\n}\n\nfunction bind(component, name, callback) {\n const index = component.$$.props[name];\n if (index !== undefined) {\n component.$$.bound[index] = callback;\n callback(component.$$.ctx[index]);\n }\n}\nfunction create_component(block) {\n block && block.c();\n}\nfunction claim_component(block, parent_nodes) {\n block && block.l(parent_nodes);\n}\nfunction mount_component(component, target, anchor, customElement) {\n const { fragment, after_update } = component.$$;\n fragment && fragment.m(target, anchor);\n if (!customElement) {\n // onMount happens before the initial afterUpdate\n add_render_callback(() => {\n const new_on_destroy = component.$$.on_mount.map(run).filter(is_function);\n // if the component was destroyed immediately\n // it will update the `$$.on_destroy` reference to `null`.\n // the destructured on_destroy may still reference to the old array\n if (component.$$.on_destroy) {\n component.$$.on_destroy.push(...new_on_destroy);\n }\n else {\n // Edge case - component was destroyed immediately,\n // most likely as a result of a binding initialising\n run_all(new_on_destroy);\n }\n component.$$.on_mount = [];\n });\n }\n after_update.forEach(add_render_callback);\n}\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n // TODO null out other refs, including component.$$ (but need to\n // preserve final state?)\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nfunction make_dirty(component, i) {\n if (component.$$.dirty[0] === -1) {\n dirty_components.push(component);\n schedule_update();\n component.$$.dirty.fill(0);\n }\n component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31));\n}\nfunction init(component, options, instance, create_fragment, not_equal, props, append_styles, dirty = [-1]) {\n const parent_component = current_component;\n set_current_component(component);\n const $$ = component.$$ = {\n fragment: null,\n ctx: [],\n // state\n props,\n update: noop,\n not_equal,\n bound: blank_object(),\n // lifecycle\n on_mount: [],\n on_destroy: [],\n on_disconnect: [],\n before_update: [],\n after_update: [],\n context: new Map(options.context || (parent_component ? parent_component.$$.context : [])),\n // everything else\n callbacks: blank_object(),\n dirty,\n skip_bound: false,\n root: options.target || parent_component.$$.root\n };\n append_styles && append_styles($$.root);\n let ready = false;\n $$.ctx = instance\n ? instance(component, options.props || {}, (i, ret, ...rest) => {\n const value = rest.length ? rest[0] : ret;\n if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {\n if (!$$.skip_bound && $$.bound[i])\n $$.bound[i](value);\n if (ready)\n make_dirty(component, i);\n }\n return ret;\n })\n : [];\n $$.update();\n ready = true;\n run_all($$.before_update);\n // `false` as a special case of no DOM component\n $$.fragment = create_fragment ? create_fragment($$.ctx) : false;\n if (options.target) {\n if (options.hydrate) {\n start_hydrating();\n const nodes = children(options.target);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.l(nodes);\n nodes.forEach(detach);\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.c();\n }\n if (options.intro)\n transition_in(component.$$.fragment);\n mount_component(component, options.target, options.anchor, options.customElement);\n end_hydrating();\n flush();\n }\n set_current_component(parent_component);\n}\nlet SvelteElement;\nif (typeof HTMLElement === 'function') {\n SvelteElement = class extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n }\n connectedCallback() {\n const { on_mount } = this.$$;\n this.$$.on_disconnect = on_mount.map(run).filter(is_function);\n // @ts-ignore todo: improve typings\n for (const key in this.$$.slotted) {\n // @ts-ignore todo: improve typings\n this.appendChild(this.$$.slotted[key]);\n }\n }\n attributeChangedCallback(attr, _oldValue, newValue) {\n this[attr] = newValue;\n }\n disconnectedCallback() {\n run_all(this.$$.on_disconnect);\n }\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n // TODO should this delegate to addEventListener?\n if (!is_function(callback)) {\n return noop;\n }\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n };\n}\n/**\n * Base class for Svelte components. Used when dev=false.\n */\nclass SvelteComponent {\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n if (!is_function(callback)) {\n return noop;\n }\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n}\n\nfunction dispatch_dev(type, detail) {\n document.dispatchEvent(custom_event(type, Object.assign({ version: '3.55.1' }, detail), { bubbles: true }));\n}\nfunction append_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append(target, node);\n}\nfunction append_hydration_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append_hydration(target, node);\n}\nfunction insert_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert(target, node, anchor);\n}\nfunction insert_hydration_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert_hydration(target, node, anchor);\n}\nfunction detach_dev(node) {\n dispatch_dev('SvelteDOMRemove', { node });\n detach(node);\n}\nfunction detach_between_dev(before, after) {\n while (before.nextSibling && before.nextSibling !== after) {\n detach_dev(before.nextSibling);\n }\n}\nfunction detach_before_dev(after) {\n while (after.previousSibling) {\n detach_dev(after.previousSibling);\n }\n}\nfunction detach_after_dev(before) {\n while (before.nextSibling) {\n detach_dev(before.nextSibling);\n }\n}\nfunction listen_dev(node, event, handler, options, has_prevent_default, has_stop_propagation) {\n const modifiers = options === true ? ['capture'] : options ? Array.from(Object.keys(options)) : [];\n if (has_prevent_default)\n modifiers.push('preventDefault');\n if (has_stop_propagation)\n modifiers.push('stopPropagation');\n dispatch_dev('SvelteDOMAddEventListener', { node, event, handler, modifiers });\n const dispose = listen(node, event, handler, options);\n return () => {\n dispatch_dev('SvelteDOMRemoveEventListener', { node, event, handler, modifiers });\n dispose();\n };\n}\nfunction attr_dev(node, attribute, value) {\n attr(node, attribute, value);\n if (value == null)\n dispatch_dev('SvelteDOMRemoveAttribute', { node, attribute });\n else\n dispatch_dev('SvelteDOMSetAttribute', { node, attribute, value });\n}\nfunction prop_dev(node, property, value) {\n node[property] = value;\n dispatch_dev('SvelteDOMSetProperty', { node, property, value });\n}\nfunction dataset_dev(node, property, value) {\n node.dataset[property] = value;\n dispatch_dev('SvelteDOMSetDataset', { node, property, value });\n}\nfunction set_data_dev(text, data) {\n data = '' + data;\n if (text.wholeText === data)\n return;\n dispatch_dev('SvelteDOMSetData', { node: text, data });\n text.data = data;\n}\nfunction validate_each_argument(arg) {\n if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) {\n let msg = '{#each} only iterates over array-like objects.';\n if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) {\n msg += ' You can use a spread to convert this iterable into an array.';\n }\n throw new Error(msg);\n }\n}\nfunction validate_slots(name, slot, keys) {\n for (const slot_key of Object.keys(slot)) {\n if (!~keys.indexOf(slot_key)) {\n console.warn(`<${name}> received an unexpected slot \"${slot_key}\".`);\n }\n }\n}\nfunction validate_dynamic_element(tag) {\n const is_string = typeof tag === 'string';\n if (tag && !is_string) {\n throw new Error(' expects \"this\" attribute to be a string.');\n }\n}\nfunction validate_void_dynamic_element(tag) {\n if (tag && is_void(tag)) {\n console.warn(` is self-closing and cannot have content.`);\n }\n}\nfunction construct_svelte_component_dev(component, props) {\n const error_message = 'this={...} of should specify a Svelte component.';\n try {\n const instance = new component(props);\n if (!instance.$$ || !instance.$set || !instance.$on || !instance.$destroy) {\n throw new Error(error_message);\n }\n return instance;\n }\n catch (err) {\n const { message } = err;\n if (typeof message === 'string' && message.indexOf('is not a constructor') !== -1) {\n throw new Error(error_message);\n }\n else {\n throw err;\n }\n }\n}\n/**\n * Base class for Svelte components with some minor dev-enhancements. Used when dev=true.\n */\nclass SvelteComponentDev extends SvelteComponent {\n constructor(options) {\n if (!options || (!options.target && !options.$$inline)) {\n throw new Error(\"'target' is a required option\");\n }\n super();\n }\n $destroy() {\n super.$destroy();\n this.$destroy = () => {\n console.warn('Component was already destroyed'); // eslint-disable-line no-console\n };\n }\n $capture_state() { }\n $inject_state() { }\n}\n/**\n * Base class to create strongly typed Svelte components.\n * This only exists for typing purposes and should be used in `.d.ts` files.\n *\n * ### Example:\n *\n * You have component library on npm called `component-library`, from which\n * you export a component called `MyComponent`. For Svelte+TypeScript users,\n * you want to provide typings. Therefore you create a `index.d.ts`:\n * ```ts\n * import { SvelteComponentTyped } from \"svelte\";\n * export class MyComponent extends SvelteComponentTyped<{foo: string}> {}\n * ```\n * Typing this makes it possible for IDEs like VS Code with the Svelte extension\n * to provide intellisense and to use the component like this in a Svelte file\n * with TypeScript:\n * ```svelte\n * \n * \n * ```\n *\n * #### Why not make this part of `SvelteComponent(Dev)`?\n * Because\n * ```ts\n * class ASubclassOfSvelteComponent extends SvelteComponent<{foo: string}> {}\n * const component: typeof SvelteComponent = ASubclassOfSvelteComponent;\n * ```\n * will throw a type error, so we need to separate the more strictly typed class.\n */\nclass SvelteComponentTyped extends SvelteComponentDev {\n constructor(options) {\n super(options);\n }\n}\nfunction loop_guard(timeout) {\n const start = Date.now();\n return () => {\n if (Date.now() - start > timeout) {\n throw new Error('Infinite loop detected');\n }\n };\n}\n\nexport { HtmlTag, HtmlTagHydration, SvelteComponent, SvelteComponentDev, SvelteComponentTyped, SvelteElement, action_destroyer, add_attribute, add_classes, add_flush_callback, add_location, add_render_callback, add_resize_listener, add_styles, add_transform, afterUpdate, append, append_dev, append_empty_stylesheet, append_hydration, append_hydration_dev, append_styles, assign, attr, attr_dev, attribute_to_object, beforeUpdate, bind, binding_callbacks, blank_object, bubble, check_outros, children, claim_component, claim_element, claim_html_tag, claim_space, claim_svg_element, claim_text, clear_loops, component_subscribe, compute_rest_props, compute_slots, construct_svelte_component, construct_svelte_component_dev, createEventDispatcher, create_animation, create_bidirectional_transition, create_component, create_in_transition, create_out_transition, create_slot, create_ssr_component, current_component, custom_event, dataset_dev, debug, destroy_block, destroy_component, destroy_each, detach, detach_after_dev, detach_before_dev, detach_between_dev, detach_dev, dirty_components, dispatch_dev, each, element, element_is, empty, end_hydrating, escape, escape_attribute_value, escape_object, exclude_internal_props, fix_and_destroy_block, fix_and_outro_and_destroy_block, fix_position, flush, getAllContexts, getContext, get_all_dirty_from_scope, get_binding_group_value, get_current_component, get_custom_elements_slots, get_root_for_style, get_slot_changes, get_spread_object, get_spread_update, get_store_value, globals, group_outros, handle_promise, hasContext, has_prop, head_selector, identity, init, insert, insert_dev, insert_hydration, insert_hydration_dev, intros, invalid_attribute_name_character, is_client, is_crossorigin, is_empty, is_function, is_promise, is_void, listen, listen_dev, loop, loop_guard, merge_ssr_styles, missing_component, mount_component, noop, not_equal, now, null_to_empty, object_without_properties, onDestroy, onMount, once, outro_and_destroy_block, prevent_default, prop_dev, query_selector_all, raf, run, run_all, safe_not_equal, schedule_update, select_multiple_value, select_option, select_options, select_value, self, setContext, set_attributes, set_current_component, set_custom_element_data, set_custom_element_data_map, set_data, set_data_dev, set_input_type, set_input_value, set_now, set_raf, set_store_value, set_style, set_svg_attributes, space, spread, src_url_equal, start_hydrating, stop_propagation, subscribe, svg_element, text, tick, time_ranges_to_array, to_number, toggle_class, transition_in, transition_out, trusted, update_await_block_branch, update_keyed_each, update_slot, update_slot_base, validate_component, validate_dynamic_element, validate_each_argument, validate_each_keys, validate_slots, validate_store, validate_void_dynamic_element, xlink_attr };\n","import { noop, safe_not_equal, subscribe, run_all, is_function } from '../internal/index.mjs';\nexport { get_store_value as get } from '../internal/index.mjs';\n\nconst subscriber_queue = [];\n/**\n * Creates a `Readable` store that allows reading by subscription.\n * @param value initial value\n * @param {StartStopNotifier}start start and stop notifications for subscriptions\n */\nfunction readable(value, start) {\n return {\n subscribe: writable(value, start).subscribe\n };\n}\n/**\n * Create a `Writable` store that allows both updating and reading by subscription.\n * @param {*=}value initial value\n * @param {StartStopNotifier=}start start and stop notifications for subscriptions\n */\nfunction writable(value, start = noop) {\n let stop;\n const subscribers = new Set();\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) { // store is ready\n const run_queue = !subscriber_queue.length;\n for (const subscriber of subscribers) {\n subscriber[1]();\n subscriber_queue.push(subscriber, value);\n }\n if (run_queue) {\n for (let i = 0; i < subscriber_queue.length; i += 2) {\n subscriber_queue[i][0](subscriber_queue[i + 1]);\n }\n subscriber_queue.length = 0;\n }\n }\n }\n }\n function update(fn) {\n set(fn(value));\n }\n function subscribe(run, invalidate = noop) {\n const subscriber = [run, invalidate];\n subscribers.add(subscriber);\n if (subscribers.size === 1) {\n stop = start(set) || noop;\n }\n run(value);\n return () => {\n subscribers.delete(subscriber);\n if (subscribers.size === 0) {\n stop();\n stop = null;\n }\n };\n }\n return { set, update, subscribe };\n}\nfunction derived(stores, fn, initial_value) {\n const single = !Array.isArray(stores);\n const stores_array = single\n ? [stores]\n : stores;\n const auto = fn.length < 2;\n return readable(initial_value, (set) => {\n let inited = false;\n const values = [];\n let pending = 0;\n let cleanup = noop;\n const sync = () => {\n if (pending) {\n return;\n }\n cleanup();\n const result = fn(single ? values[0] : values, set);\n if (auto) {\n set(result);\n }\n else {\n cleanup = is_function(result) ? result : noop;\n }\n };\n const unsubscribers = stores_array.map((store, i) => subscribe(store, (value) => {\n values[i] = value;\n pending &= ~(1 << i);\n if (inited) {\n sync();\n }\n }, () => {\n pending |= (1 << i);\n }));\n inited = true;\n sync();\n return function stop() {\n run_all(unsubscribers);\n cleanup();\n };\n });\n}\n\nexport { derived, readable, writable };\n","import { writable } from 'svelte/store';\n\nexport const chatAdapter = writable(null);\nexport const chatData = writable({ events: [], profiles: {}});\nexport const selectedMessage = writable(null);\nexport const zappingMessage = writable(null);\nexport const zapsPerMessage = writable({});","export default {\n MODE_NUMBER: 1 << 0,\n MODE_ALPHA_NUM: 1 << 1,\n MODE_8BIT_BYTE: 1 << 2,\n MODE_KANJI: 1 << 3,\n}\n","import mode from './mode.ts'\n\nexport default function QR8bitByte(data) {\n this.mode = mode.MODE_8BIT_BYTE\n this.data = data\n}\n\nQR8bitByte.prototype = {\n getLength: function () {\n return this.data.length\n },\n\n write: function (buffer) {\n for (var i = 0; i < this.data.length; i++) {\n // not JIS ...\n buffer.put(this.data.charCodeAt(i), 8)\n }\n },\n}\n","export default {\n L: 1,\n M: 0,\n Q: 3,\n H: 2,\n}\n","// ErrorCorrectLevel\nimport ECL from './ErrorCorrectLevel.ts'\n\nexport default function QRRSBlock(totalCount, dataCount) {\n this.totalCount = totalCount\n this.dataCount = dataCount\n}\n\nQRRSBlock.RS_BLOCK_TABLE = [\n // L\n // M\n // Q\n // H\n\n // 1\n [1, 26, 19],\n [1, 26, 16],\n [1, 26, 13],\n [1, 26, 9],\n\n // 2\n [1, 44, 34],\n [1, 44, 28],\n [1, 44, 22],\n [1, 44, 16],\n\n // 3\n [1, 70, 55],\n [1, 70, 44],\n [2, 35, 17],\n [2, 35, 13],\n\n // 4\n [1, 100, 80],\n [2, 50, 32],\n [2, 50, 24],\n [4, 25, 9],\n\n // 5\n [1, 134, 108],\n [2, 67, 43],\n [2, 33, 15, 2, 34, 16],\n [2, 33, 11, 2, 34, 12],\n\n // 6\n [2, 86, 68],\n [4, 43, 27],\n [4, 43, 19],\n [4, 43, 15],\n\n // 7\n [2, 98, 78],\n [4, 49, 31],\n [2, 32, 14, 4, 33, 15],\n [4, 39, 13, 1, 40, 14],\n\n // 8\n [2, 121, 97],\n [2, 60, 38, 2, 61, 39],\n [4, 40, 18, 2, 41, 19],\n [4, 40, 14, 2, 41, 15],\n\n // 9\n [2, 146, 116],\n [3, 58, 36, 2, 59, 37],\n [4, 36, 16, 4, 37, 17],\n [4, 36, 12, 4, 37, 13],\n\n // 10\n [2, 86, 68, 2, 87, 69],\n [4, 69, 43, 1, 70, 44],\n [6, 43, 19, 2, 44, 20],\n [6, 43, 15, 2, 44, 16],\n\n // 11\n [4, 101, 81],\n [1, 80, 50, 4, 81, 51],\n [4, 50, 22, 4, 51, 23],\n [3, 36, 12, 8, 37, 13],\n\n // 12\n [2, 116, 92, 2, 117, 93],\n [6, 58, 36, 2, 59, 37],\n [4, 46, 20, 6, 47, 21],\n [7, 42, 14, 4, 43, 15],\n\n // 13\n [4, 133, 107],\n [8, 59, 37, 1, 60, 38],\n [8, 44, 20, 4, 45, 21],\n [12, 33, 11, 4, 34, 12],\n\n // 14\n [3, 145, 115, 1, 146, 116],\n [4, 64, 40, 5, 65, 41],\n [11, 36, 16, 5, 37, 17],\n [11, 36, 12, 5, 37, 13],\n\n // 15\n [5, 109, 87, 1, 110, 88],\n [5, 65, 41, 5, 66, 42],\n [5, 54, 24, 7, 55, 25],\n [11, 36, 12],\n\n // 16\n [5, 122, 98, 1, 123, 99],\n [7, 73, 45, 3, 74, 46],\n [15, 43, 19, 2, 44, 20],\n [3, 45, 15, 13, 46, 16],\n\n // 17\n [1, 135, 107, 5, 136, 108],\n [10, 74, 46, 1, 75, 47],\n [1, 50, 22, 15, 51, 23],\n [2, 42, 14, 17, 43, 15],\n\n // 18\n [5, 150, 120, 1, 151, 121],\n [9, 69, 43, 4, 70, 44],\n [17, 50, 22, 1, 51, 23],\n [2, 42, 14, 19, 43, 15],\n\n // 19\n [3, 141, 113, 4, 142, 114],\n [3, 70, 44, 11, 71, 45],\n [17, 47, 21, 4, 48, 22],\n [9, 39, 13, 16, 40, 14],\n\n // 20\n [3, 135, 107, 5, 136, 108],\n [3, 67, 41, 13, 68, 42],\n [15, 54, 24, 5, 55, 25],\n [15, 43, 15, 10, 44, 16],\n\n // 21\n [4, 144, 116, 4, 145, 117],\n [17, 68, 42],\n [17, 50, 22, 6, 51, 23],\n [19, 46, 16, 6, 47, 17],\n\n // 22\n [2, 139, 111, 7, 140, 112],\n [17, 74, 46],\n [7, 54, 24, 16, 55, 25],\n [34, 37, 13],\n\n // 23\n [4, 151, 121, 5, 152, 122],\n [4, 75, 47, 14, 76, 48],\n [11, 54, 24, 14, 55, 25],\n [16, 45, 15, 14, 46, 16],\n\n // 24\n [6, 147, 117, 4, 148, 118],\n [6, 73, 45, 14, 74, 46],\n [11, 54, 24, 16, 55, 25],\n [30, 46, 16, 2, 47, 17],\n\n // 25\n [8, 132, 106, 4, 133, 107],\n [8, 75, 47, 13, 76, 48],\n [7, 54, 24, 22, 55, 25],\n [22, 45, 15, 13, 46, 16],\n\n // 26\n [10, 142, 114, 2, 143, 115],\n [19, 74, 46, 4, 75, 47],\n [28, 50, 22, 6, 51, 23],\n [33, 46, 16, 4, 47, 17],\n\n // 27\n [8, 152, 122, 4, 153, 123],\n [22, 73, 45, 3, 74, 46],\n [8, 53, 23, 26, 54, 24],\n [12, 45, 15, 28, 46, 16],\n\n // 28\n [3, 147, 117, 10, 148, 118],\n [3, 73, 45, 23, 74, 46],\n [4, 54, 24, 31, 55, 25],\n [11, 45, 15, 31, 46, 16],\n\n // 29\n [7, 146, 116, 7, 147, 117],\n [21, 73, 45, 7, 74, 46],\n [1, 53, 23, 37, 54, 24],\n [19, 45, 15, 26, 46, 16],\n\n // 30\n [5, 145, 115, 10, 146, 116],\n [19, 75, 47, 10, 76, 48],\n [15, 54, 24, 25, 55, 25],\n [23, 45, 15, 25, 46, 16],\n\n // 31\n [13, 145, 115, 3, 146, 116],\n [2, 74, 46, 29, 75, 47],\n [42, 54, 24, 1, 55, 25],\n [23, 45, 15, 28, 46, 16],\n\n // 32\n [17, 145, 115],\n [10, 74, 46, 23, 75, 47],\n [10, 54, 24, 35, 55, 25],\n [19, 45, 15, 35, 46, 16],\n\n // 33\n [17, 145, 115, 1, 146, 116],\n [14, 74, 46, 21, 75, 47],\n [29, 54, 24, 19, 55, 25],\n [11, 45, 15, 46, 46, 16],\n\n // 34\n [13, 145, 115, 6, 146, 116],\n [14, 74, 46, 23, 75, 47],\n [44, 54, 24, 7, 55, 25],\n [59, 46, 16, 1, 47, 17],\n\n // 35\n [12, 151, 121, 7, 152, 122],\n [12, 75, 47, 26, 76, 48],\n [39, 54, 24, 14, 55, 25],\n [22, 45, 15, 41, 46, 16],\n\n // 36\n [6, 151, 121, 14, 152, 122],\n [6, 75, 47, 34, 76, 48],\n [46, 54, 24, 10, 55, 25],\n [2, 45, 15, 64, 46, 16],\n\n // 37\n [17, 152, 122, 4, 153, 123],\n [29, 74, 46, 14, 75, 47],\n [49, 54, 24, 10, 55, 25],\n [24, 45, 15, 46, 46, 16],\n\n // 38\n [4, 152, 122, 18, 153, 123],\n [13, 74, 46, 32, 75, 47],\n [48, 54, 24, 14, 55, 25],\n [42, 45, 15, 32, 46, 16],\n\n // 39\n [20, 147, 117, 4, 148, 118],\n [40, 75, 47, 7, 76, 48],\n [43, 54, 24, 22, 55, 25],\n [10, 45, 15, 67, 46, 16],\n\n // 40\n [19, 148, 118, 6, 149, 119],\n [18, 75, 47, 31, 76, 48],\n [34, 54, 24, 34, 55, 25],\n [20, 45, 15, 61, 46, 16],\n]\n\nQRRSBlock.getRSBlocks = function (typeNumber, errorCorrectLevel) {\n var rsBlock = QRRSBlock.getRsBlockTable(typeNumber, errorCorrectLevel)\n\n if (rsBlock == undefined) {\n throw new Error(\n 'bad rs block @ typeNumber:' + typeNumber + '/errorCorrectLevel:' + errorCorrectLevel\n )\n }\n\n var length = rsBlock.length / 3\n\n var list = new Array()\n\n for (var i = 0; i < length; i++) {\n var count = rsBlock[i * 3 + 0]\n var totalCount = rsBlock[i * 3 + 1]\n var dataCount = rsBlock[i * 3 + 2]\n\n for (var j = 0; j < count; j++) {\n list.push(new QRRSBlock(totalCount, dataCount))\n }\n }\n\n return list\n}\n\nQRRSBlock.getRsBlockTable = function (typeNumber, errorCorrectLevel) {\n switch (errorCorrectLevel) {\n case ECL.L:\n return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 0]\n case ECL.M:\n return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 1]\n case ECL.Q:\n return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 2]\n case ECL.H:\n return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 3]\n default:\n return undefined\n }\n}\n","export default function QRBitBuffer() {\n this.buffer = new Array()\n this.length = 0\n}\n\nQRBitBuffer.prototype = {\n get: function (index) {\n var bufIndex = Math.floor(index / 8)\n return ((this.buffer[bufIndex] >>> (7 - (index % 8))) & 1) == 1\n },\n\n put: function (num, length) {\n for (var i = 0; i < length; i++) {\n this.putBit(((num >>> (length - i - 1)) & 1) == 1)\n }\n },\n\n getLengthInBits: function () {\n return this.length\n },\n\n putBit: function (bit) {\n var bufIndex = Math.floor(this.length / 8)\n if (this.buffer.length <= bufIndex) {\n this.buffer.push(0)\n }\n\n if (bit) {\n this.buffer[bufIndex] |= 0x80 >>> this.length % 8\n }\n\n this.length++\n },\n}\n","const QRMath = {\n glog: function (n) {\n if (n < 1) {\n throw new Error('glog(' + n + ')')\n }\n\n return QRMath.LOG_TABLE[n]\n },\n\n gexp: function (n) {\n while (n < 0) {\n n += 255\n }\n\n while (n >= 256) {\n n -= 255\n }\n\n return QRMath.EXP_TABLE[n]\n },\n\n EXP_TABLE: new Array(256),\n\n LOG_TABLE: new Array(256),\n}\n\nfor (var i = 0; i < 8; i++) {\n QRMath.EXP_TABLE[i] = 1 << i\n}\nfor (var i = 8; i < 256; i++) {\n QRMath.EXP_TABLE[i] =\n QRMath.EXP_TABLE[i - 4] ^\n QRMath.EXP_TABLE[i - 5] ^\n QRMath.EXP_TABLE[i - 6] ^\n QRMath.EXP_TABLE[i - 8]\n}\nfor (var i = 0; i < 255; i++) {\n QRMath.LOG_TABLE[QRMath.EXP_TABLE[i]] = i\n}\n\nexport default QRMath\n","import math from './math.ts'\n\nexport default function QRPolynomial(num, shift) {\n if (num.length == undefined) {\n throw new Error(num.length + '/' + shift)\n }\n\n var offset = 0\n\n while (offset < num.length && num[offset] == 0) {\n offset++\n }\n\n this.num = new Array(num.length - offset + shift)\n for (var i = 0; i < num.length - offset; i++) {\n this.num[i] = num[i + offset]\n }\n}\n\nQRPolynomial.prototype = {\n get: function (index) {\n return this.num[index]\n },\n\n getLength: function () {\n return this.num.length\n },\n\n multiply: function (e) {\n var num = new Array(this.getLength() + e.getLength() - 1)\n\n for (var i = 0; i < this.getLength(); i++) {\n for (var j = 0; j < e.getLength(); j++) {\n num[i + j] ^= math.gexp(math.glog(this.get(i)) + math.glog(e.get(j)))\n }\n }\n\n return new QRPolynomial(num, 0)\n },\n\n mod: function (e) {\n if (this.getLength() - e.getLength() < 0) {\n return this\n }\n\n var ratio = math.glog(this.get(0)) - math.glog(e.get(0))\n\n var num = new Array(this.getLength())\n\n for (var i = 0; i < this.getLength(); i++) {\n num[i] = this.get(i)\n }\n\n for (var i = 0; i < e.getLength(); i++) {\n num[i] ^= math.gexp(math.glog(e.get(i)) + ratio)\n }\n\n // recursive call\n return new QRPolynomial(num, 0).mod(e)\n },\n}\n","import Mode from './mode.ts'\nimport Polynomial from './Polynomial.ts'\nimport math from './math.ts'\n\nexport const QRMaskPattern = {\n PATTERN000: 0,\n PATTERN001: 1,\n PATTERN010: 2,\n PATTERN011: 3,\n PATTERN100: 4,\n PATTERN101: 5,\n PATTERN110: 6,\n PATTERN111: 7,\n}\n\nconst QRUtil = {\n PATTERN_POSITION_TABLE: [\n [],\n [6, 18],\n [6, 22],\n [6, 26],\n [6, 30],\n [6, 34],\n [6, 22, 38],\n [6, 24, 42],\n [6, 26, 46],\n [6, 28, 50],\n [6, 30, 54],\n [6, 32, 58],\n [6, 34, 62],\n [6, 26, 46, 66],\n [6, 26, 48, 70],\n [6, 26, 50, 74],\n [6, 30, 54, 78],\n [6, 30, 56, 82],\n [6, 30, 58, 86],\n [6, 34, 62, 90],\n [6, 28, 50, 72, 94],\n [6, 26, 50, 74, 98],\n [6, 30, 54, 78, 102],\n [6, 28, 54, 80, 106],\n [6, 32, 58, 84, 110],\n [6, 30, 58, 86, 114],\n [6, 34, 62, 90, 118],\n [6, 26, 50, 74, 98, 122],\n [6, 30, 54, 78, 102, 126],\n [6, 26, 52, 78, 104, 130],\n [6, 30, 56, 82, 108, 134],\n [6, 34, 60, 86, 112, 138],\n [6, 30, 58, 86, 114, 142],\n [6, 34, 62, 90, 118, 146],\n [6, 30, 54, 78, 102, 126, 150],\n [6, 24, 50, 76, 102, 128, 154],\n [6, 28, 54, 80, 106, 132, 158],\n [6, 32, 58, 84, 110, 136, 162],\n [6, 26, 54, 82, 110, 138, 166],\n [6, 30, 58, 86, 114, 142, 170],\n ],\n\n G15: (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0),\n G18: (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0),\n G15_MASK: (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1),\n\n getBCHTypeInfo: function (data) {\n var d = data << 10\n while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15) >= 0) {\n d ^= QRUtil.G15 << (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15))\n }\n return ((data << 10) | d) ^ QRUtil.G15_MASK\n },\n\n getBCHTypeNumber: function (data) {\n var d = data << 12\n while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18) >= 0) {\n d ^= QRUtil.G18 << (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18))\n }\n return (data << 12) | d\n },\n\n getBCHDigit: function (data) {\n var digit = 0\n\n while (data != 0) {\n digit++\n data >>>= 1\n }\n\n return digit\n },\n\n getPatternPosition: function (typeNumber) {\n return QRUtil.PATTERN_POSITION_TABLE[typeNumber - 1]\n },\n\n getMask: function (maskPattern, i, j) {\n switch (maskPattern) {\n case QRMaskPattern.PATTERN000:\n return (i + j) % 2 == 0\n case QRMaskPattern.PATTERN001:\n return i % 2 == 0\n case QRMaskPattern.PATTERN010:\n return j % 3 == 0\n case QRMaskPattern.PATTERN011:\n return (i + j) % 3 == 0\n case QRMaskPattern.PATTERN100:\n return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 == 0\n case QRMaskPattern.PATTERN101:\n return ((i * j) % 2) + ((i * j) % 3) == 0\n case QRMaskPattern.PATTERN110:\n return (((i * j) % 2) + ((i * j) % 3)) % 2 == 0\n case QRMaskPattern.PATTERN111:\n return (((i * j) % 3) + ((i + j) % 2)) % 2 == 0\n\n default:\n throw new Error('bad maskPattern:' + maskPattern)\n }\n },\n\n getErrorCorrectPolynomial: function (errorCorrectLength) {\n var a = new Polynomial([1], 0)\n\n for (var i = 0; i < errorCorrectLength; i++) {\n a = a.multiply(new Polynomial([1, math.gexp(i)], 0))\n }\n\n return a\n },\n\n getLengthInBits: function (mode, type) {\n if (1 <= type && type < 10) {\n // 1 - 9\n\n switch (mode) {\n case Mode.MODE_NUMBER:\n return 10\n case Mode.MODE_ALPHA_NUM:\n return 9\n case Mode.MODE_8BIT_BYTE:\n return 8\n case Mode.MODE_KANJI:\n return 8\n default:\n throw new Error('mode:' + mode)\n }\n } else if (type < 27) {\n // 10 - 26\n\n switch (mode) {\n case Mode.MODE_NUMBER:\n return 12\n case Mode.MODE_ALPHA_NUM:\n return 11\n case Mode.MODE_8BIT_BYTE:\n return 16\n case Mode.MODE_KANJI:\n return 10\n default:\n throw new Error('mode:' + mode)\n }\n } else if (type < 41) {\n // 27 - 40\n\n switch (mode) {\n case Mode.MODE_NUMBER:\n return 14\n case Mode.MODE_ALPHA_NUM:\n return 13\n case Mode.MODE_8BIT_BYTE:\n return 16\n case Mode.MODE_KANJI:\n return 12\n default:\n throw new Error('mode:' + mode)\n }\n } else {\n throw new Error('type:' + type)\n }\n },\n\n getLostPoint: function (qrCode) {\n var moduleCount = qrCode.getModuleCount()\n\n var lostPoint = 0\n\n // LEVEL1\n\n for (var row = 0; row < moduleCount; row++) {\n for (var col = 0; col < moduleCount; col++) {\n var sameCount = 0\n var dark = qrCode.isDark(row, col)\n\n for (var r = -1; r <= 1; r++) {\n if (row + r < 0 || moduleCount <= row + r) {\n continue\n }\n\n for (var c = -1; c <= 1; c++) {\n if (col + c < 0 || moduleCount <= col + c) {\n continue\n }\n\n if (r == 0 && c == 0) {\n continue\n }\n\n if (dark == qrCode.isDark(row + r, col + c)) {\n sameCount++\n }\n }\n }\n\n if (sameCount > 5) {\n lostPoint += 3 + sameCount - 5\n }\n }\n }\n\n // LEVEL2\n\n for (var row = 0; row < moduleCount - 1; row++) {\n for (var col = 0; col < moduleCount - 1; col++) {\n var count = 0\n if (qrCode.isDark(row, col)) count++\n if (qrCode.isDark(row + 1, col)) count++\n if (qrCode.isDark(row, col + 1)) count++\n if (qrCode.isDark(row + 1, col + 1)) count++\n if (count == 0 || count == 4) {\n lostPoint += 3\n }\n }\n }\n\n // LEVEL3\n\n for (var row = 0; row < moduleCount; row++) {\n for (var col = 0; col < moduleCount - 6; col++) {\n if (\n qrCode.isDark(row, col) &&\n !qrCode.isDark(row, col + 1) &&\n qrCode.isDark(row, col + 2) &&\n qrCode.isDark(row, col + 3) &&\n qrCode.isDark(row, col + 4) &&\n !qrCode.isDark(row, col + 5) &&\n qrCode.isDark(row, col + 6)\n ) {\n lostPoint += 40\n }\n }\n }\n\n for (var col = 0; col < moduleCount; col++) {\n for (var row = 0; row < moduleCount - 6; row++) {\n if (\n qrCode.isDark(row, col) &&\n !qrCode.isDark(row + 1, col) &&\n qrCode.isDark(row + 2, col) &&\n qrCode.isDark(row + 3, col) &&\n qrCode.isDark(row + 4, col) &&\n !qrCode.isDark(row + 5, col) &&\n qrCode.isDark(row + 6, col)\n ) {\n lostPoint += 40\n }\n }\n }\n\n // LEVEL4\n\n var darkCount = 0\n\n for (var col = 0; col < moduleCount; col++) {\n for (var row = 0; row < moduleCount; row++) {\n if (qrCode.isDark(row, col)) {\n darkCount++\n }\n }\n }\n\n var ratio = Math.abs((100 * darkCount) / moduleCount / moduleCount - 50) / 5\n lostPoint += ratio * 10\n\n return lostPoint\n },\n}\n\nexport default QRUtil\n","import BitByte from './8BitByte.ts'\nimport RSBlock from './RSBlock.ts'\nimport BitBuffer from './BitBuffer.ts'\nimport util from './util.ts'\nimport Polynomial from './Polynomial.ts'\n\nexport default function QRCode(typeNumber, errorCorrectLevel) {\n this.typeNumber = typeNumber\n this.errorCorrectLevel = errorCorrectLevel\n this.modules = null\n this.moduleCount = 0\n this.dataCache = null\n this.dataList = []\n}\n\n// for client side minification\nvar proto = QRCode.prototype\n\nproto.addData = function (data) {\n var newData = new BitByte(data)\n this.dataList.push(newData)\n this.dataCache = null\n}\n\nproto.isDark = function (row, col) {\n if (row < 0 || this.moduleCount <= row || col < 0 || this.moduleCount <= col) {\n throw new Error(row + ',' + col)\n }\n return this.modules[row][col]\n}\n\nproto.getModuleCount = function () {\n return this.moduleCount\n}\n\nproto.make = function () {\n // Calculate automatically typeNumber if provided is < 1\n if (this.typeNumber < 1) {\n var typeNumber = 1\n for (typeNumber = 1; typeNumber < 40; typeNumber++) {\n var rsBlocks = RSBlock.getRSBlocks(typeNumber, this.errorCorrectLevel)\n\n var buffer = new BitBuffer()\n var totalDataCount = 0\n for (var i = 0; i < rsBlocks.length; i++) {\n totalDataCount += rsBlocks[i].dataCount\n }\n\n for (var i = 0; i < this.dataList.length; i++) {\n var data = this.dataList[i]\n buffer.put(data.mode, 4)\n buffer.put(data.getLength(), util.getLengthInBits(data.mode, typeNumber))\n data.write(buffer)\n }\n if (buffer.getLengthInBits() <= totalDataCount * 8) break\n }\n this.typeNumber = typeNumber\n }\n this.makeImpl(false, this.getBestMaskPattern())\n}\n\nproto.makeImpl = function (test, maskPattern) {\n this.moduleCount = this.typeNumber * 4 + 17\n this.modules = new Array(this.moduleCount)\n\n for (var row = 0; row < this.moduleCount; row++) {\n this.modules[row] = new Array(this.moduleCount)\n\n for (var col = 0; col < this.moduleCount; col++) {\n this.modules[row][col] = null //(col + row) % 3;\n }\n }\n\n this.setupPositionProbePattern(0, 0)\n this.setupPositionProbePattern(this.moduleCount - 7, 0)\n this.setupPositionProbePattern(0, this.moduleCount - 7)\n this.setupPositionAdjustPattern()\n this.setupTimingPattern()\n this.setupTypeInfo(test, maskPattern)\n\n if (this.typeNumber >= 7) {\n this.setupTypeNumber(test)\n }\n\n if (this.dataCache == null) {\n this.dataCache = QRCode.createData(this.typeNumber, this.errorCorrectLevel, this.dataList)\n }\n\n this.mapData(this.dataCache, maskPattern)\n}\n\nproto.setupPositionProbePattern = function (row, col) {\n for (var r = -1; r <= 7; r++) {\n if (row + r <= -1 || this.moduleCount <= row + r) continue\n\n for (var c = -1; c <= 7; c++) {\n if (col + c <= -1 || this.moduleCount <= col + c) continue\n\n if (\n (0 <= r && r <= 6 && (c == 0 || c == 6)) ||\n (0 <= c && c <= 6 && (r == 0 || r == 6)) ||\n (2 <= r && r <= 4 && 2 <= c && c <= 4)\n ) {\n this.modules[row + r][col + c] = true\n } else {\n this.modules[row + r][col + c] = false\n }\n }\n }\n}\n\nproto.getBestMaskPattern = function () {\n var minLostPoint = 0\n var pattern = 0\n\n for (var i = 0; i < 8; i++) {\n this.makeImpl(true, i)\n\n var lostPoint = util.getLostPoint(this)\n\n if (i == 0 || minLostPoint > lostPoint) {\n minLostPoint = lostPoint\n pattern = i\n }\n }\n\n return pattern\n}\n\nproto.setupTimingPattern = function () {\n for (var r = 8; r < this.moduleCount - 8; r++) {\n if (this.modules[r][6] != null) {\n continue\n }\n this.modules[r][6] = r % 2 == 0\n }\n\n for (var c = 8; c < this.moduleCount - 8; c++) {\n if (this.modules[6][c] != null) {\n continue\n }\n this.modules[6][c] = c % 2 == 0\n }\n}\n\nproto.setupPositionAdjustPattern = function () {\n var pos = util.getPatternPosition(this.typeNumber)\n\n for (var i = 0; i < pos.length; i++) {\n for (var j = 0; j < pos.length; j++) {\n var row = pos[i]\n var col = pos[j]\n\n if (this.modules[row][col] != null) {\n continue\n }\n\n for (var r = -2; r <= 2; r++) {\n for (var c = -2; c <= 2; c++) {\n if (r == -2 || r == 2 || c == -2 || c == 2 || (r == 0 && c == 0)) {\n this.modules[row + r][col + c] = true\n } else {\n this.modules[row + r][col + c] = false\n }\n }\n }\n }\n }\n}\n\nproto.setupTypeNumber = function (test) {\n var bits = util.getBCHTypeNumber(this.typeNumber)\n\n for (var i = 0; i < 18; i++) {\n var mod = !test && ((bits >> i) & 1) == 1\n this.modules[Math.floor(i / 3)][(i % 3) + this.moduleCount - 8 - 3] = mod\n }\n\n for (var i = 0; i < 18; i++) {\n var mod = !test && ((bits >> i) & 1) == 1\n this.modules[(i % 3) + this.moduleCount - 8 - 3][Math.floor(i / 3)] = mod\n }\n}\n\nproto.setupTypeInfo = function (test, maskPattern) {\n var data = (this.errorCorrectLevel << 3) | maskPattern\n var bits = util.getBCHTypeInfo(data)\n\n // vertical\n for (var i = 0; i < 15; i++) {\n var mod = !test && ((bits >> i) & 1) == 1\n\n if (i < 6) {\n this.modules[i][8] = mod\n } else if (i < 8) {\n this.modules[i + 1][8] = mod\n } else {\n this.modules[this.moduleCount - 15 + i][8] = mod\n }\n }\n\n // horizontal\n for (var i = 0; i < 15; i++) {\n var mod = !test && ((bits >> i) & 1) == 1\n\n if (i < 8) {\n this.modules[8][this.moduleCount - i - 1] = mod\n } else if (i < 9) {\n this.modules[8][15 - i - 1 + 1] = mod\n } else {\n this.modules[8][15 - i - 1] = mod\n }\n }\n\n // fixed module\n this.modules[this.moduleCount - 8][8] = !test\n}\n\nproto.mapData = function (data, maskPattern) {\n var inc = -1\n var row = this.moduleCount - 1\n var bitIndex = 7\n var byteIndex = 0\n\n for (var col = this.moduleCount - 1; col > 0; col -= 2) {\n if (col == 6) col--\n\n while (true) {\n for (var c = 0; c < 2; c++) {\n if (this.modules[row][col - c] == null) {\n var dark = false\n\n if (byteIndex < data.length) {\n dark = ((data[byteIndex] >>> bitIndex) & 1) == 1\n }\n\n var mask = util.getMask(maskPattern, row, col - c)\n\n if (mask) {\n dark = !dark\n }\n\n this.modules[row][col - c] = dark\n bitIndex--\n\n if (bitIndex == -1) {\n byteIndex++\n bitIndex = 7\n }\n }\n }\n\n row += inc\n\n if (row < 0 || this.moduleCount <= row) {\n row -= inc\n inc = -inc\n break\n }\n }\n }\n}\n\nQRCode.PAD0 = 0xec\nQRCode.PAD1 = 0x11\n\nQRCode.createData = function (typeNumber, errorCorrectLevel, dataList) {\n var rsBlocks = RSBlock.getRSBlocks(typeNumber, errorCorrectLevel)\n\n var buffer = new BitBuffer()\n\n for (var i = 0; i < dataList.length; i++) {\n var data = dataList[i]\n buffer.put(data.mode, 4)\n buffer.put(data.getLength(), util.getLengthInBits(data.mode, typeNumber))\n data.write(buffer)\n }\n\n // calc num max data.\n var totalDataCount = 0\n for (var i = 0; i < rsBlocks.length; i++) {\n totalDataCount += rsBlocks[i].dataCount\n }\n\n if (buffer.getLengthInBits() > totalDataCount * 8) {\n throw new Error(\n 'code length overflow. (' + buffer.getLengthInBits() + '>' + totalDataCount * 8 + ')'\n )\n }\n\n // end code\n if (buffer.getLengthInBits() + 4 <= totalDataCount * 8) {\n buffer.put(0, 4)\n }\n\n // padding\n while (buffer.getLengthInBits() % 8 != 0) {\n buffer.putBit(false)\n }\n\n // padding\n while (true) {\n if (buffer.getLengthInBits() >= totalDataCount * 8) {\n break\n }\n buffer.put(QRCode.PAD0, 8)\n\n if (buffer.getLengthInBits() >= totalDataCount * 8) {\n break\n }\n buffer.put(QRCode.PAD1, 8)\n }\n\n return QRCode.createBytes(buffer, rsBlocks)\n}\n\nQRCode.createBytes = function (buffer, rsBlocks) {\n var offset = 0\n\n var maxDcCount = 0\n var maxEcCount = 0\n\n var dcdata = new Array(rsBlocks.length)\n var ecdata = new Array(rsBlocks.length)\n\n for (var r = 0; r < rsBlocks.length; r++) {\n var dcCount = rsBlocks[r].dataCount\n var ecCount = rsBlocks[r].totalCount - dcCount\n\n maxDcCount = Math.max(maxDcCount, dcCount)\n maxEcCount = Math.max(maxEcCount, ecCount)\n\n dcdata[r] = new Array(dcCount)\n\n for (var i = 0; i < dcdata[r].length; i++) {\n dcdata[r][i] = 0xff & buffer.buffer[i + offset]\n }\n offset += dcCount\n\n var rsPoly = util.getErrorCorrectPolynomial(ecCount)\n var rawPoly = new Polynomial(dcdata[r], rsPoly.getLength() - 1)\n\n var modPoly = rawPoly.mod(rsPoly)\n ecdata[r] = new Array(rsPoly.getLength() - 1)\n for (var i = 0; i < ecdata[r].length; i++) {\n var modIndex = i + modPoly.getLength() - ecdata[r].length\n ecdata[r][i] = modIndex >= 0 ? modPoly.get(modIndex) : 0\n }\n }\n\n var totalCodeCount = 0\n for (var i = 0; i < rsBlocks.length; i++) {\n totalCodeCount += rsBlocks[i].totalCount\n }\n\n var data = new Array(totalCodeCount)\n var index = 0\n\n for (var i = 0; i < maxDcCount; i++) {\n for (var r = 0; r < rsBlocks.length; r++) {\n if (i < dcdata[r].length) {\n data[index++] = dcdata[r][i]\n }\n }\n }\n\n for (var i = 0; i < maxEcCount; i++) {\n for (var r = 0; r < rsBlocks.length; r++) {\n if (i < ecdata[r].length) {\n data[index++] = ecdata[r][i]\n }\n }\n }\n\n return data\n}\n","\n\n\n\n\n {#each rects as rect}\n \n {/each}\n \n","/*! noble-secp256k1 - MIT License (c) 2019 Paul Miller (paulmillr.com) */\nimport * as nodeCrypto from 'crypto';\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\nconst _2n = BigInt(2);\nconst _3n = BigInt(3);\nconst _8n = BigInt(8);\nconst CURVE = Object.freeze({\n a: _0n,\n b: BigInt(7),\n P: BigInt('0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f'),\n n: BigInt('0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141'),\n h: _1n,\n Gx: BigInt('55066263022277343669578718895168534326250603453777594175500187360389116729240'),\n Gy: BigInt('32670510020758816978083085130507043184471273380659243275938904335757337482424'),\n beta: BigInt('0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee'),\n});\nexport { CURVE };\nfunction weistrass(x) {\n const { a, b } = CURVE;\n const x2 = mod(x * x);\n const x3 = mod(x2 * x);\n return mod(x3 + a * x + b);\n}\nconst USE_ENDOMORPHISM = CURVE.a === _0n;\nclass ShaError extends Error {\n constructor(message) {\n super(message);\n }\n}\nclass JacobianPoint {\n constructor(x, y, z) {\n this.x = x;\n this.y = y;\n this.z = z;\n }\n static fromAffine(p) {\n if (!(p instanceof Point)) {\n throw new TypeError('JacobianPoint#fromAffine: expected Point');\n }\n return new JacobianPoint(p.x, p.y, _1n);\n }\n static toAffineBatch(points) {\n const toInv = invertBatch(points.map((p) => p.z));\n return points.map((p, i) => p.toAffine(toInv[i]));\n }\n static normalizeZ(points) {\n return JacobianPoint.toAffineBatch(points).map(JacobianPoint.fromAffine);\n }\n equals(other) {\n if (!(other instanceof JacobianPoint))\n throw new TypeError('JacobianPoint expected');\n const { x: X1, y: Y1, z: Z1 } = this;\n const { x: X2, y: Y2, z: Z2 } = other;\n const Z1Z1 = mod(Z1 * Z1);\n const Z2Z2 = mod(Z2 * Z2);\n const U1 = mod(X1 * Z2Z2);\n const U2 = mod(X2 * Z1Z1);\n const S1 = mod(mod(Y1 * Z2) * Z2Z2);\n const S2 = mod(mod(Y2 * Z1) * Z1Z1);\n return U1 === U2 && S1 === S2;\n }\n negate() {\n return new JacobianPoint(this.x, mod(-this.y), this.z);\n }\n double() {\n const { x: X1, y: Y1, z: Z1 } = this;\n const A = mod(X1 * X1);\n const B = mod(Y1 * Y1);\n const C = mod(B * B);\n const x1b = X1 + B;\n const D = mod(_2n * (mod(x1b * x1b) - A - C));\n const E = mod(_3n * A);\n const F = mod(E * E);\n const X3 = mod(F - _2n * D);\n const Y3 = mod(E * (D - X3) - _8n * C);\n const Z3 = mod(_2n * Y1 * Z1);\n return new JacobianPoint(X3, Y3, Z3);\n }\n add(other) {\n if (!(other instanceof JacobianPoint))\n throw new TypeError('JacobianPoint expected');\n const { x: X1, y: Y1, z: Z1 } = this;\n const { x: X2, y: Y2, z: Z2 } = other;\n if (X2 === _0n || Y2 === _0n)\n return this;\n if (X1 === _0n || Y1 === _0n)\n return other;\n const Z1Z1 = mod(Z1 * Z1);\n const Z2Z2 = mod(Z2 * Z2);\n const U1 = mod(X1 * Z2Z2);\n const U2 = mod(X2 * Z1Z1);\n const S1 = mod(mod(Y1 * Z2) * Z2Z2);\n const S2 = mod(mod(Y2 * Z1) * Z1Z1);\n const H = mod(U2 - U1);\n const r = mod(S2 - S1);\n if (H === _0n) {\n if (r === _0n) {\n return this.double();\n }\n else {\n return JacobianPoint.ZERO;\n }\n }\n const HH = mod(H * H);\n const HHH = mod(H * HH);\n const V = mod(U1 * HH);\n const X3 = mod(r * r - HHH - _2n * V);\n const Y3 = mod(r * (V - X3) - S1 * HHH);\n const Z3 = mod(Z1 * Z2 * H);\n return new JacobianPoint(X3, Y3, Z3);\n }\n subtract(other) {\n return this.add(other.negate());\n }\n multiplyUnsafe(scalar) {\n const P0 = JacobianPoint.ZERO;\n if (typeof scalar === 'bigint' && scalar === _0n)\n return P0;\n let n = normalizeScalar(scalar);\n if (n === _1n)\n return this;\n if (!USE_ENDOMORPHISM) {\n let p = P0;\n let d = this;\n while (n > _0n) {\n if (n & _1n)\n p = p.add(d);\n d = d.double();\n n >>= _1n;\n }\n return p;\n }\n let { k1neg, k1, k2neg, k2 } = splitScalarEndo(n);\n let k1p = P0;\n let k2p = P0;\n let d = this;\n while (k1 > _0n || k2 > _0n) {\n if (k1 & _1n)\n k1p = k1p.add(d);\n if (k2 & _1n)\n k2p = k2p.add(d);\n d = d.double();\n k1 >>= _1n;\n k2 >>= _1n;\n }\n if (k1neg)\n k1p = k1p.negate();\n if (k2neg)\n k2p = k2p.negate();\n k2p = new JacobianPoint(mod(k2p.x * CURVE.beta), k2p.y, k2p.z);\n return k1p.add(k2p);\n }\n precomputeWindow(W) {\n const windows = USE_ENDOMORPHISM ? 128 / W + 1 : 256 / W + 1;\n const points = [];\n let p = this;\n let base = p;\n for (let window = 0; window < windows; window++) {\n base = p;\n points.push(base);\n for (let i = 1; i < 2 ** (W - 1); i++) {\n base = base.add(p);\n points.push(base);\n }\n p = base.double();\n }\n return points;\n }\n wNAF(n, affinePoint) {\n if (!affinePoint && this.equals(JacobianPoint.BASE))\n affinePoint = Point.BASE;\n const W = (affinePoint && affinePoint._WINDOW_SIZE) || 1;\n if (256 % W) {\n throw new Error('Point#wNAF: Invalid precomputation window, must be power of 2');\n }\n let precomputes = affinePoint && pointPrecomputes.get(affinePoint);\n if (!precomputes) {\n precomputes = this.precomputeWindow(W);\n if (affinePoint && W !== 1) {\n precomputes = JacobianPoint.normalizeZ(precomputes);\n pointPrecomputes.set(affinePoint, precomputes);\n }\n }\n let p = JacobianPoint.ZERO;\n let f = JacobianPoint.ZERO;\n const windows = 1 + (USE_ENDOMORPHISM ? 128 / W : 256 / W);\n const windowSize = 2 ** (W - 1);\n const mask = BigInt(2 ** W - 1);\n const maxNumber = 2 ** W;\n const shiftBy = BigInt(W);\n for (let window = 0; window < windows; window++) {\n const offset = window * windowSize;\n let wbits = Number(n & mask);\n n >>= shiftBy;\n if (wbits > windowSize) {\n wbits -= maxNumber;\n n += _1n;\n }\n if (wbits === 0) {\n let pr = precomputes[offset];\n if (window % 2)\n pr = pr.negate();\n f = f.add(pr);\n }\n else {\n let cached = precomputes[offset + Math.abs(wbits) - 1];\n if (wbits < 0)\n cached = cached.negate();\n p = p.add(cached);\n }\n }\n return { p, f };\n }\n multiply(scalar, affinePoint) {\n let n = normalizeScalar(scalar);\n let point;\n let fake;\n if (USE_ENDOMORPHISM) {\n const { k1neg, k1, k2neg, k2 } = splitScalarEndo(n);\n let { p: k1p, f: f1p } = this.wNAF(k1, affinePoint);\n let { p: k2p, f: f2p } = this.wNAF(k2, affinePoint);\n if (k1neg)\n k1p = k1p.negate();\n if (k2neg)\n k2p = k2p.negate();\n k2p = new JacobianPoint(mod(k2p.x * CURVE.beta), k2p.y, k2p.z);\n point = k1p.add(k2p);\n fake = f1p.add(f2p);\n }\n else {\n const { p, f } = this.wNAF(n, affinePoint);\n point = p;\n fake = f;\n }\n return JacobianPoint.normalizeZ([point, fake])[0];\n }\n toAffine(invZ = invert(this.z)) {\n const { x, y, z } = this;\n const iz1 = invZ;\n const iz2 = mod(iz1 * iz1);\n const iz3 = mod(iz2 * iz1);\n const ax = mod(x * iz2);\n const ay = mod(y * iz3);\n const zz = mod(z * iz1);\n if (zz !== _1n)\n throw new Error('invZ was invalid');\n return new Point(ax, ay);\n }\n}\nJacobianPoint.BASE = new JacobianPoint(CURVE.Gx, CURVE.Gy, _1n);\nJacobianPoint.ZERO = new JacobianPoint(_0n, _1n, _0n);\nconst pointPrecomputes = new WeakMap();\nexport class Point {\n constructor(x, y) {\n this.x = x;\n this.y = y;\n }\n _setWindowSize(windowSize) {\n this._WINDOW_SIZE = windowSize;\n pointPrecomputes.delete(this);\n }\n hasEvenY() {\n return this.y % _2n === _0n;\n }\n static fromCompressedHex(bytes) {\n const isShort = bytes.length === 32;\n const x = bytesToNumber(isShort ? bytes : bytes.subarray(1));\n if (!isValidFieldElement(x))\n throw new Error('Point is not on curve');\n const y2 = weistrass(x);\n let y = sqrtMod(y2);\n const isYOdd = (y & _1n) === _1n;\n if (isShort) {\n if (isYOdd)\n y = mod(-y);\n }\n else {\n const isFirstByteOdd = (bytes[0] & 1) === 1;\n if (isFirstByteOdd !== isYOdd)\n y = mod(-y);\n }\n const point = new Point(x, y);\n point.assertValidity();\n return point;\n }\n static fromUncompressedHex(bytes) {\n const x = bytesToNumber(bytes.subarray(1, 33));\n const y = bytesToNumber(bytes.subarray(33, 65));\n const point = new Point(x, y);\n point.assertValidity();\n return point;\n }\n static fromHex(hex) {\n const bytes = ensureBytes(hex);\n const len = bytes.length;\n const header = bytes[0];\n if (len === 32 || (len === 33 && (header === 0x02 || header === 0x03))) {\n return this.fromCompressedHex(bytes);\n }\n if (len === 65 && header === 0x04)\n return this.fromUncompressedHex(bytes);\n throw new Error(`Point.fromHex: received invalid point. Expected 32-33 compressed bytes or 65 uncompressed bytes, not ${len}`);\n }\n static fromPrivateKey(privateKey) {\n return Point.BASE.multiply(normalizePrivateKey(privateKey));\n }\n static fromSignature(msgHash, signature, recovery) {\n msgHash = ensureBytes(msgHash);\n const h = truncateHash(msgHash);\n const { r, s } = normalizeSignature(signature);\n if (recovery !== 0 && recovery !== 1) {\n throw new Error('Cannot recover signature: invalid recovery bit');\n }\n const prefix = recovery & 1 ? '03' : '02';\n const R = Point.fromHex(prefix + numTo32bStr(r));\n const { n } = CURVE;\n const rinv = invert(r, n);\n const u1 = mod(-h * rinv, n);\n const u2 = mod(s * rinv, n);\n const Q = Point.BASE.multiplyAndAddUnsafe(R, u1, u2);\n if (!Q)\n throw new Error('Cannot recover signature: point at infinify');\n Q.assertValidity();\n return Q;\n }\n toRawBytes(isCompressed = false) {\n return hexToBytes(this.toHex(isCompressed));\n }\n toHex(isCompressed = false) {\n const x = numTo32bStr(this.x);\n if (isCompressed) {\n const prefix = this.hasEvenY() ? '02' : '03';\n return `${prefix}${x}`;\n }\n else {\n return `04${x}${numTo32bStr(this.y)}`;\n }\n }\n toHexX() {\n return this.toHex(true).slice(2);\n }\n toRawX() {\n return this.toRawBytes(true).slice(1);\n }\n assertValidity() {\n const msg = 'Point is not on elliptic curve';\n const { x, y } = this;\n if (!isValidFieldElement(x) || !isValidFieldElement(y))\n throw new Error(msg);\n const left = mod(y * y);\n const right = weistrass(x);\n if (mod(left - right) !== _0n)\n throw new Error(msg);\n }\n equals(other) {\n return this.x === other.x && this.y === other.y;\n }\n negate() {\n return new Point(this.x, mod(-this.y));\n }\n double() {\n return JacobianPoint.fromAffine(this).double().toAffine();\n }\n add(other) {\n return JacobianPoint.fromAffine(this).add(JacobianPoint.fromAffine(other)).toAffine();\n }\n subtract(other) {\n return this.add(other.negate());\n }\n multiply(scalar) {\n return JacobianPoint.fromAffine(this).multiply(scalar, this).toAffine();\n }\n multiplyAndAddUnsafe(Q, a, b) {\n const P = JacobianPoint.fromAffine(this);\n const aP = a === _0n || a === _1n || this !== Point.BASE ? P.multiplyUnsafe(a) : P.multiply(a);\n const bQ = JacobianPoint.fromAffine(Q).multiplyUnsafe(b);\n const sum = aP.add(bQ);\n return sum.equals(JacobianPoint.ZERO) ? undefined : sum.toAffine();\n }\n}\nPoint.BASE = new Point(CURVE.Gx, CURVE.Gy);\nPoint.ZERO = new Point(_0n, _0n);\nfunction sliceDER(s) {\n return Number.parseInt(s[0], 16) >= 8 ? '00' + s : s;\n}\nfunction parseDERInt(data) {\n if (data.length < 2 || data[0] !== 0x02) {\n throw new Error(`Invalid signature integer tag: ${bytesToHex(data)}`);\n }\n const len = data[1];\n const res = data.subarray(2, len + 2);\n if (!len || res.length !== len) {\n throw new Error(`Invalid signature integer: wrong length`);\n }\n if (res[0] === 0x00 && res[1] <= 0x7f) {\n throw new Error('Invalid signature integer: trailing length');\n }\n return { data: bytesToNumber(res), left: data.subarray(len + 2) };\n}\nfunction parseDERSignature(data) {\n if (data.length < 2 || data[0] != 0x30) {\n throw new Error(`Invalid signature tag: ${bytesToHex(data)}`);\n }\n if (data[1] !== data.length - 2) {\n throw new Error('Invalid signature: incorrect length');\n }\n const { data: r, left: sBytes } = parseDERInt(data.subarray(2));\n const { data: s, left: rBytesLeft } = parseDERInt(sBytes);\n if (rBytesLeft.length) {\n throw new Error(`Invalid signature: left bytes after parsing: ${bytesToHex(rBytesLeft)}`);\n }\n return { r, s };\n}\nexport class Signature {\n constructor(r, s) {\n this.r = r;\n this.s = s;\n this.assertValidity();\n }\n static fromCompact(hex) {\n const arr = hex instanceof Uint8Array;\n const name = 'Signature.fromCompact';\n if (typeof hex !== 'string' && !arr)\n throw new TypeError(`${name}: Expected string or Uint8Array`);\n const str = arr ? bytesToHex(hex) : hex;\n if (str.length !== 128)\n throw new Error(`${name}: Expected 64-byte hex`);\n return new Signature(hexToNumber(str.slice(0, 64)), hexToNumber(str.slice(64, 128)));\n }\n static fromDER(hex) {\n const arr = hex instanceof Uint8Array;\n if (typeof hex !== 'string' && !arr)\n throw new TypeError(`Signature.fromDER: Expected string or Uint8Array`);\n const { r, s } = parseDERSignature(arr ? hex : hexToBytes(hex));\n return new Signature(r, s);\n }\n static fromHex(hex) {\n return this.fromDER(hex);\n }\n assertValidity() {\n const { r, s } = this;\n if (!isWithinCurveOrder(r))\n throw new Error('Invalid Signature: r must be 0 < r < n');\n if (!isWithinCurveOrder(s))\n throw new Error('Invalid Signature: s must be 0 < s < n');\n }\n hasHighS() {\n const HALF = CURVE.n >> _1n;\n return this.s > HALF;\n }\n normalizeS() {\n return this.hasHighS() ? new Signature(this.r, CURVE.n - this.s) : this;\n }\n toDERRawBytes(isCompressed = false) {\n return hexToBytes(this.toDERHex(isCompressed));\n }\n toDERHex(isCompressed = false) {\n const sHex = sliceDER(numberToHexUnpadded(this.s));\n if (isCompressed)\n return sHex;\n const rHex = sliceDER(numberToHexUnpadded(this.r));\n const rLen = numberToHexUnpadded(rHex.length / 2);\n const sLen = numberToHexUnpadded(sHex.length / 2);\n const length = numberToHexUnpadded(rHex.length / 2 + sHex.length / 2 + 4);\n return `30${length}02${rLen}${rHex}02${sLen}${sHex}`;\n }\n toRawBytes() {\n return this.toDERRawBytes();\n }\n toHex() {\n return this.toDERHex();\n }\n toCompactRawBytes() {\n return hexToBytes(this.toCompactHex());\n }\n toCompactHex() {\n return numTo32bStr(this.r) + numTo32bStr(this.s);\n }\n}\nfunction concatBytes(...arrays) {\n if (!arrays.every((b) => b instanceof Uint8Array))\n throw new Error('Uint8Array list expected');\n if (arrays.length === 1)\n return arrays[0];\n const length = arrays.reduce((a, arr) => a + arr.length, 0);\n const result = new Uint8Array(length);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const arr = arrays[i];\n result.set(arr, pad);\n pad += arr.length;\n }\n return result;\n}\nconst hexes = Array.from({ length: 256 }, (v, i) => i.toString(16).padStart(2, '0'));\nfunction bytesToHex(uint8a) {\n if (!(uint8a instanceof Uint8Array))\n throw new Error('Expected Uint8Array');\n let hex = '';\n for (let i = 0; i < uint8a.length; i++) {\n hex += hexes[uint8a[i]];\n }\n return hex;\n}\nconst POW_2_256 = BigInt('0x10000000000000000000000000000000000000000000000000000000000000000');\nfunction numTo32bStr(num) {\n if (typeof num !== 'bigint')\n throw new Error('Expected bigint');\n if (!(_0n <= num && num < POW_2_256))\n throw new Error('Expected number < 2^256');\n return num.toString(16).padStart(64, '0');\n}\nfunction numTo32b(num) {\n const b = hexToBytes(numTo32bStr(num));\n if (b.length !== 32)\n throw new Error('Error: expected 32 bytes');\n return b;\n}\nfunction numberToHexUnpadded(num) {\n const hex = num.toString(16);\n return hex.length & 1 ? `0${hex}` : hex;\n}\nfunction hexToNumber(hex) {\n if (typeof hex !== 'string') {\n throw new TypeError('hexToNumber: expected string, got ' + typeof hex);\n }\n return BigInt(`0x${hex}`);\n}\nfunction hexToBytes(hex) {\n if (typeof hex !== 'string') {\n throw new TypeError('hexToBytes: expected string, got ' + typeof hex);\n }\n if (hex.length % 2)\n throw new Error('hexToBytes: received invalid unpadded hex' + hex.length);\n const array = new Uint8Array(hex.length / 2);\n for (let i = 0; i < array.length; i++) {\n const j = i * 2;\n const hexByte = hex.slice(j, j + 2);\n const byte = Number.parseInt(hexByte, 16);\n if (Number.isNaN(byte) || byte < 0)\n throw new Error('Invalid byte sequence');\n array[i] = byte;\n }\n return array;\n}\nfunction bytesToNumber(bytes) {\n return hexToNumber(bytesToHex(bytes));\n}\nfunction ensureBytes(hex) {\n return hex instanceof Uint8Array ? Uint8Array.from(hex) : hexToBytes(hex);\n}\nfunction normalizeScalar(num) {\n if (typeof num === 'number' && Number.isSafeInteger(num) && num > 0)\n return BigInt(num);\n if (typeof num === 'bigint' && isWithinCurveOrder(num))\n return num;\n throw new TypeError('Expected valid private scalar: 0 < scalar < curve.n');\n}\nfunction mod(a, b = CURVE.P) {\n const result = a % b;\n return result >= _0n ? result : b + result;\n}\nfunction pow2(x, power) {\n const { P } = CURVE;\n let res = x;\n while (power-- > _0n) {\n res *= res;\n res %= P;\n }\n return res;\n}\nfunction sqrtMod(x) {\n const { P } = CURVE;\n const _6n = BigInt(6);\n const _11n = BigInt(11);\n const _22n = BigInt(22);\n const _23n = BigInt(23);\n const _44n = BigInt(44);\n const _88n = BigInt(88);\n const b2 = (x * x * x) % P;\n const b3 = (b2 * b2 * x) % P;\n const b6 = (pow2(b3, _3n) * b3) % P;\n const b9 = (pow2(b6, _3n) * b3) % P;\n const b11 = (pow2(b9, _2n) * b2) % P;\n const b22 = (pow2(b11, _11n) * b11) % P;\n const b44 = (pow2(b22, _22n) * b22) % P;\n const b88 = (pow2(b44, _44n) * b44) % P;\n const b176 = (pow2(b88, _88n) * b88) % P;\n const b220 = (pow2(b176, _44n) * b44) % P;\n const b223 = (pow2(b220, _3n) * b3) % P;\n const t1 = (pow2(b223, _23n) * b22) % P;\n const t2 = (pow2(t1, _6n) * b2) % P;\n return pow2(t2, _2n);\n}\nfunction invert(number, modulo = CURVE.P) {\n if (number === _0n || modulo <= _0n) {\n throw new Error(`invert: expected positive integers, got n=${number} mod=${modulo}`);\n }\n let a = mod(number, modulo);\n let b = modulo;\n let x = _0n, y = _1n, u = _1n, v = _0n;\n while (a !== _0n) {\n const q = b / a;\n const r = b % a;\n const m = x - u * q;\n const n = y - v * q;\n b = a, a = r, x = u, y = v, u = m, v = n;\n }\n const gcd = b;\n if (gcd !== _1n)\n throw new Error('invert: does not exist');\n return mod(x, modulo);\n}\nfunction invertBatch(nums, p = CURVE.P) {\n const scratch = new Array(nums.length);\n const lastMultiplied = nums.reduce((acc, num, i) => {\n if (num === _0n)\n return acc;\n scratch[i] = acc;\n return mod(acc * num, p);\n }, _1n);\n const inverted = invert(lastMultiplied, p);\n nums.reduceRight((acc, num, i) => {\n if (num === _0n)\n return acc;\n scratch[i] = mod(acc * scratch[i], p);\n return mod(acc * num, p);\n }, inverted);\n return scratch;\n}\nconst divNearest = (a, b) => (a + b / _2n) / b;\nconst ENDO = {\n a1: BigInt('0x3086d221a7d46bcde86c90e49284eb15'),\n b1: -_1n * BigInt('0xe4437ed6010e88286f547fa90abfe4c3'),\n a2: BigInt('0x114ca50f7a8e2f3f657c1108d9d44cfd8'),\n b2: BigInt('0x3086d221a7d46bcde86c90e49284eb15'),\n POW_2_128: BigInt('0x100000000000000000000000000000000'),\n};\nfunction splitScalarEndo(k) {\n const { n } = CURVE;\n const { a1, b1, a2, b2, POW_2_128 } = ENDO;\n const c1 = divNearest(b2 * k, n);\n const c2 = divNearest(-b1 * k, n);\n let k1 = mod(k - c1 * a1 - c2 * a2, n);\n let k2 = mod(-c1 * b1 - c2 * b2, n);\n const k1neg = k1 > POW_2_128;\n const k2neg = k2 > POW_2_128;\n if (k1neg)\n k1 = n - k1;\n if (k2neg)\n k2 = n - k2;\n if (k1 > POW_2_128 || k2 > POW_2_128) {\n throw new Error('splitScalarEndo: Endomorphism failed, k=' + k);\n }\n return { k1neg, k1, k2neg, k2 };\n}\nfunction truncateHash(hash) {\n const { n } = CURVE;\n const byteLength = hash.length;\n const delta = byteLength * 8 - 256;\n let h = bytesToNumber(hash);\n if (delta > 0)\n h = h >> BigInt(delta);\n if (h >= n)\n h -= n;\n return h;\n}\nlet _sha256Sync;\nlet _hmacSha256Sync;\nclass HmacDrbg {\n constructor() {\n this.v = new Uint8Array(32).fill(1);\n this.k = new Uint8Array(32).fill(0);\n this.counter = 0;\n }\n hmac(...values) {\n return utils.hmacSha256(this.k, ...values);\n }\n hmacSync(...values) {\n return _hmacSha256Sync(this.k, ...values);\n }\n checkSync() {\n if (typeof _hmacSha256Sync !== 'function')\n throw new ShaError('hmacSha256Sync needs to be set');\n }\n incr() {\n if (this.counter >= 1000)\n throw new Error('Tried 1,000 k values for sign(), all were invalid');\n this.counter += 1;\n }\n async reseed(seed = new Uint8Array()) {\n this.k = await this.hmac(this.v, Uint8Array.from([0x00]), seed);\n this.v = await this.hmac(this.v);\n if (seed.length === 0)\n return;\n this.k = await this.hmac(this.v, Uint8Array.from([0x01]), seed);\n this.v = await this.hmac(this.v);\n }\n reseedSync(seed = new Uint8Array()) {\n this.checkSync();\n this.k = this.hmacSync(this.v, Uint8Array.from([0x00]), seed);\n this.v = this.hmacSync(this.v);\n if (seed.length === 0)\n return;\n this.k = this.hmacSync(this.v, Uint8Array.from([0x01]), seed);\n this.v = this.hmacSync(this.v);\n }\n async generate() {\n this.incr();\n this.v = await this.hmac(this.v);\n return this.v;\n }\n generateSync() {\n this.checkSync();\n this.incr();\n this.v = this.hmacSync(this.v);\n return this.v;\n }\n}\nfunction isWithinCurveOrder(num) {\n return _0n < num && num < CURVE.n;\n}\nfunction isValidFieldElement(num) {\n return _0n < num && num < CURVE.P;\n}\nfunction kmdToSig(kBytes, m, d) {\n const k = bytesToNumber(kBytes);\n if (!isWithinCurveOrder(k))\n return;\n const { n } = CURVE;\n const q = Point.BASE.multiply(k);\n const r = mod(q.x, n);\n if (r === _0n)\n return;\n const s = mod(invert(k, n) * mod(m + d * r, n), n);\n if (s === _0n)\n return;\n const sig = new Signature(r, s);\n const recovery = (q.x === sig.r ? 0 : 2) | Number(q.y & _1n);\n return { sig, recovery };\n}\nfunction normalizePrivateKey(key) {\n let num;\n if (typeof key === 'bigint') {\n num = key;\n }\n else if (typeof key === 'number' && Number.isSafeInteger(key) && key > 0) {\n num = BigInt(key);\n }\n else if (typeof key === 'string') {\n if (key.length !== 64)\n throw new Error('Expected 32 bytes of private key');\n num = hexToNumber(key);\n }\n else if (key instanceof Uint8Array) {\n if (key.length !== 32)\n throw new Error('Expected 32 bytes of private key');\n num = bytesToNumber(key);\n }\n else {\n throw new TypeError('Expected valid private key');\n }\n if (!isWithinCurveOrder(num))\n throw new Error('Expected private key: 0 < key < n');\n return num;\n}\nfunction normalizePublicKey(publicKey) {\n if (publicKey instanceof Point) {\n publicKey.assertValidity();\n return publicKey;\n }\n else {\n return Point.fromHex(publicKey);\n }\n}\nfunction normalizeSignature(signature) {\n if (signature instanceof Signature) {\n signature.assertValidity();\n return signature;\n }\n try {\n return Signature.fromDER(signature);\n }\n catch (error) {\n return Signature.fromCompact(signature);\n }\n}\nexport function getPublicKey(privateKey, isCompressed = false) {\n return Point.fromPrivateKey(privateKey).toRawBytes(isCompressed);\n}\nexport function recoverPublicKey(msgHash, signature, recovery, isCompressed = false) {\n return Point.fromSignature(msgHash, signature, recovery).toRawBytes(isCompressed);\n}\nfunction isProbPub(item) {\n const arr = item instanceof Uint8Array;\n const str = typeof item === 'string';\n const len = (arr || str) && item.length;\n if (arr)\n return len === 33 || len === 65;\n if (str)\n return len === 66 || len === 130;\n if (item instanceof Point)\n return true;\n return false;\n}\nexport function getSharedSecret(privateA, publicB, isCompressed = false) {\n if (isProbPub(privateA))\n throw new TypeError('getSharedSecret: first arg must be private key');\n if (!isProbPub(publicB))\n throw new TypeError('getSharedSecret: second arg must be public key');\n const b = normalizePublicKey(publicB);\n b.assertValidity();\n return b.multiply(normalizePrivateKey(privateA)).toRawBytes(isCompressed);\n}\nfunction bits2int(bytes) {\n const slice = bytes.length > 32 ? bytes.slice(0, 32) : bytes;\n return bytesToNumber(slice);\n}\nfunction bits2octets(bytes) {\n const z1 = bits2int(bytes);\n const z2 = mod(z1, CURVE.n);\n return int2octets(z2 < _0n ? z1 : z2);\n}\nfunction int2octets(num) {\n return numTo32b(num);\n}\nfunction initSigArgs(msgHash, privateKey, extraEntropy) {\n if (msgHash == null)\n throw new Error(`sign: expected valid message hash, not \"${msgHash}\"`);\n const h1 = ensureBytes(msgHash);\n const d = normalizePrivateKey(privateKey);\n const seedArgs = [int2octets(d), bits2octets(h1)];\n if (extraEntropy != null) {\n if (extraEntropy === true)\n extraEntropy = utils.randomBytes(32);\n const e = ensureBytes(extraEntropy);\n if (e.length !== 32)\n throw new Error('sign: Expected 32 bytes of extra data');\n seedArgs.push(e);\n }\n const seed = concatBytes(...seedArgs);\n const m = bits2int(h1);\n return { seed, m, d };\n}\nfunction finalizeSig(recSig, opts) {\n let { sig, recovery } = recSig;\n const { canonical, der, recovered } = Object.assign({ canonical: true, der: true }, opts);\n if (canonical && sig.hasHighS()) {\n sig = sig.normalizeS();\n recovery ^= 1;\n }\n const hashed = der ? sig.toDERRawBytes() : sig.toCompactRawBytes();\n return recovered ? [hashed, recovery] : hashed;\n}\nasync function sign(msgHash, privKey, opts = {}) {\n const { seed, m, d } = initSigArgs(msgHash, privKey, opts.extraEntropy);\n let sig;\n const drbg = new HmacDrbg();\n await drbg.reseed(seed);\n while (!(sig = kmdToSig(await drbg.generate(), m, d)))\n await drbg.reseed();\n return finalizeSig(sig, opts);\n}\nfunction signSync(msgHash, privKey, opts = {}) {\n const { seed, m, d } = initSigArgs(msgHash, privKey, opts.extraEntropy);\n let sig;\n const drbg = new HmacDrbg();\n drbg.reseedSync(seed);\n while (!(sig = kmdToSig(drbg.generateSync(), m, d)))\n drbg.reseedSync();\n return finalizeSig(sig, opts);\n}\nexport { sign, signSync };\nconst vopts = { strict: true };\nexport function verify(signature, msgHash, publicKey, opts = vopts) {\n let sig;\n try {\n sig = normalizeSignature(signature);\n msgHash = ensureBytes(msgHash);\n }\n catch (error) {\n return false;\n }\n const { r, s } = sig;\n if (opts.strict && sig.hasHighS())\n return false;\n const h = truncateHash(msgHash);\n let P;\n try {\n P = normalizePublicKey(publicKey);\n }\n catch (error) {\n return false;\n }\n const { n } = CURVE;\n const sinv = invert(s, n);\n const u1 = mod(h * sinv, n);\n const u2 = mod(r * sinv, n);\n const R = Point.BASE.multiplyAndAddUnsafe(P, u1, u2);\n if (!R)\n return false;\n const v = mod(R.x, n);\n return v === r;\n}\nfunction schnorrChallengeFinalize(ch) {\n return mod(bytesToNumber(ch), CURVE.n);\n}\nclass SchnorrSignature {\n constructor(r, s) {\n this.r = r;\n this.s = s;\n this.assertValidity();\n }\n static fromHex(hex) {\n const bytes = ensureBytes(hex);\n if (bytes.length !== 64)\n throw new TypeError(`SchnorrSignature.fromHex: expected 64 bytes, not ${bytes.length}`);\n const r = bytesToNumber(bytes.subarray(0, 32));\n const s = bytesToNumber(bytes.subarray(32, 64));\n return new SchnorrSignature(r, s);\n }\n assertValidity() {\n const { r, s } = this;\n if (!isValidFieldElement(r) || !isWithinCurveOrder(s))\n throw new Error('Invalid signature');\n }\n toHex() {\n return numTo32bStr(this.r) + numTo32bStr(this.s);\n }\n toRawBytes() {\n return hexToBytes(this.toHex());\n }\n}\nfunction schnorrGetPublicKey(privateKey) {\n return Point.fromPrivateKey(privateKey).toRawX();\n}\nclass InternalSchnorrSignature {\n constructor(message, privateKey, auxRand = utils.randomBytes()) {\n if (message == null)\n throw new TypeError(`sign: Expected valid message, not \"${message}\"`);\n this.m = ensureBytes(message);\n const { x, scalar } = this.getScalar(normalizePrivateKey(privateKey));\n this.px = x;\n this.d = scalar;\n this.rand = ensureBytes(auxRand);\n if (this.rand.length !== 32)\n throw new TypeError('sign: Expected 32 bytes of aux randomness');\n }\n getScalar(priv) {\n const point = Point.fromPrivateKey(priv);\n const scalar = point.hasEvenY() ? priv : CURVE.n - priv;\n return { point, scalar, x: point.toRawX() };\n }\n initNonce(d, t0h) {\n return numTo32b(d ^ bytesToNumber(t0h));\n }\n finalizeNonce(k0h) {\n const k0 = mod(bytesToNumber(k0h), CURVE.n);\n if (k0 === _0n)\n throw new Error('sign: Creation of signature failed. k is zero');\n const { point: R, x: rx, scalar: k } = this.getScalar(k0);\n return { R, rx, k };\n }\n finalizeSig(R, k, e, d) {\n return new SchnorrSignature(R.x, mod(k + e * d, CURVE.n)).toRawBytes();\n }\n error() {\n throw new Error('sign: Invalid signature produced');\n }\n async calc() {\n const { m, d, px, rand } = this;\n const tag = utils.taggedHash;\n const t = this.initNonce(d, await tag(TAGS.aux, rand));\n const { R, rx, k } = this.finalizeNonce(await tag(TAGS.nonce, t, px, m));\n const e = schnorrChallengeFinalize(await tag(TAGS.challenge, rx, px, m));\n const sig = this.finalizeSig(R, k, e, d);\n if (!(await schnorrVerify(sig, m, px)))\n this.error();\n return sig;\n }\n calcSync() {\n const { m, d, px, rand } = this;\n const tag = utils.taggedHashSync;\n const t = this.initNonce(d, tag(TAGS.aux, rand));\n const { R, rx, k } = this.finalizeNonce(tag(TAGS.nonce, t, px, m));\n const e = schnorrChallengeFinalize(tag(TAGS.challenge, rx, px, m));\n const sig = this.finalizeSig(R, k, e, d);\n if (!schnorrVerifySync(sig, m, px))\n this.error();\n return sig;\n }\n}\nasync function schnorrSign(msg, privKey, auxRand) {\n return new InternalSchnorrSignature(msg, privKey, auxRand).calc();\n}\nfunction schnorrSignSync(msg, privKey, auxRand) {\n return new InternalSchnorrSignature(msg, privKey, auxRand).calcSync();\n}\nfunction initSchnorrVerify(signature, message, publicKey) {\n const raw = signature instanceof SchnorrSignature;\n const sig = raw ? signature : SchnorrSignature.fromHex(signature);\n if (raw)\n sig.assertValidity();\n return {\n ...sig,\n m: ensureBytes(message),\n P: normalizePublicKey(publicKey),\n };\n}\nfunction finalizeSchnorrVerify(r, P, s, e) {\n const R = Point.BASE.multiplyAndAddUnsafe(P, normalizePrivateKey(s), mod(-e, CURVE.n));\n if (!R || !R.hasEvenY() || R.x !== r)\n return false;\n return true;\n}\nasync function schnorrVerify(signature, message, publicKey) {\n try {\n const { r, s, m, P } = initSchnorrVerify(signature, message, publicKey);\n const e = schnorrChallengeFinalize(await utils.taggedHash(TAGS.challenge, numTo32b(r), P.toRawX(), m));\n return finalizeSchnorrVerify(r, P, s, e);\n }\n catch (error) {\n return false;\n }\n}\nfunction schnorrVerifySync(signature, message, publicKey) {\n try {\n const { r, s, m, P } = initSchnorrVerify(signature, message, publicKey);\n const e = schnorrChallengeFinalize(utils.taggedHashSync(TAGS.challenge, numTo32b(r), P.toRawX(), m));\n return finalizeSchnorrVerify(r, P, s, e);\n }\n catch (error) {\n if (error instanceof ShaError)\n throw error;\n return false;\n }\n}\nexport const schnorr = {\n Signature: SchnorrSignature,\n getPublicKey: schnorrGetPublicKey,\n sign: schnorrSign,\n verify: schnorrVerify,\n signSync: schnorrSignSync,\n verifySync: schnorrVerifySync,\n};\nPoint.BASE._setWindowSize(8);\nconst crypto = {\n node: nodeCrypto,\n web: typeof self === 'object' && 'crypto' in self ? self.crypto : undefined,\n};\nconst TAGS = {\n challenge: 'BIP0340/challenge',\n aux: 'BIP0340/aux',\n nonce: 'BIP0340/nonce',\n};\nconst TAGGED_HASH_PREFIXES = {};\nexport const utils = {\n bytesToHex,\n hexToBytes,\n concatBytes,\n mod,\n invert,\n isValidPrivateKey(privateKey) {\n try {\n normalizePrivateKey(privateKey);\n return true;\n }\n catch (error) {\n return false;\n }\n },\n _bigintTo32Bytes: numTo32b,\n _normalizePrivateKey: normalizePrivateKey,\n hashToPrivateKey: (hash) => {\n hash = ensureBytes(hash);\n if (hash.length < 40 || hash.length > 1024)\n throw new Error('Expected 40-1024 bytes of private key as per FIPS 186');\n const num = mod(bytesToNumber(hash), CURVE.n - _1n) + _1n;\n return numTo32b(num);\n },\n randomBytes: (bytesLength = 32) => {\n if (crypto.web) {\n return crypto.web.getRandomValues(new Uint8Array(bytesLength));\n }\n else if (crypto.node) {\n const { randomBytes } = crypto.node;\n return Uint8Array.from(randomBytes(bytesLength));\n }\n else {\n throw new Error(\"The environment doesn't have randomBytes function\");\n }\n },\n randomPrivateKey: () => {\n return utils.hashToPrivateKey(utils.randomBytes(40));\n },\n sha256: async (...messages) => {\n if (crypto.web) {\n const buffer = await crypto.web.subtle.digest('SHA-256', concatBytes(...messages));\n return new Uint8Array(buffer);\n }\n else if (crypto.node) {\n const { createHash } = crypto.node;\n const hash = createHash('sha256');\n messages.forEach((m) => hash.update(m));\n return Uint8Array.from(hash.digest());\n }\n else {\n throw new Error(\"The environment doesn't have sha256 function\");\n }\n },\n hmacSha256: async (key, ...messages) => {\n if (crypto.web) {\n const ckey = await crypto.web.subtle.importKey('raw', key, { name: 'HMAC', hash: { name: 'SHA-256' } }, false, ['sign']);\n const message = concatBytes(...messages);\n const buffer = await crypto.web.subtle.sign('HMAC', ckey, message);\n return new Uint8Array(buffer);\n }\n else if (crypto.node) {\n const { createHmac } = crypto.node;\n const hash = createHmac('sha256', key);\n messages.forEach((m) => hash.update(m));\n return Uint8Array.from(hash.digest());\n }\n else {\n throw new Error(\"The environment doesn't have hmac-sha256 function\");\n }\n },\n sha256Sync: undefined,\n hmacSha256Sync: undefined,\n taggedHash: async (tag, ...messages) => {\n let tagP = TAGGED_HASH_PREFIXES[tag];\n if (tagP === undefined) {\n const tagH = await utils.sha256(Uint8Array.from(tag, (c) => c.charCodeAt(0)));\n tagP = concatBytes(tagH, tagH);\n TAGGED_HASH_PREFIXES[tag] = tagP;\n }\n return utils.sha256(tagP, ...messages);\n },\n taggedHashSync: (tag, ...messages) => {\n if (typeof _sha256Sync !== 'function')\n throw new ShaError('sha256Sync is undefined, you need to set it');\n let tagP = TAGGED_HASH_PREFIXES[tag];\n if (tagP === undefined) {\n const tagH = _sha256Sync(Uint8Array.from(tag, (c) => c.charCodeAt(0)));\n tagP = concatBytes(tagH, tagH);\n TAGGED_HASH_PREFIXES[tag] = tagP;\n }\n return _sha256Sync(tagP, ...messages);\n },\n precompute(windowSize = 8, point = Point.BASE) {\n const cached = point === Point.BASE ? point : new Point(point.x, point.y);\n cached._setWindowSize(windowSize);\n cached.multiply(_3n);\n return cached;\n },\n};\nObject.defineProperties(utils, {\n sha256Sync: {\n configurable: false,\n get() {\n return _sha256Sync;\n },\n set(val) {\n if (!_sha256Sync)\n _sha256Sync = val;\n },\n },\n hmacSha256Sync: {\n configurable: false,\n get() {\n return _hmacSha256Sync;\n },\n set(val) {\n if (!_hmacSha256Sync)\n _hmacSha256Sync = val;\n },\n },\n});\n","export function number(n) {\n if (!Number.isSafeInteger(n) || n < 0)\n throw new Error(`Wrong positive integer: ${n}`);\n}\nexport function bool(b) {\n if (typeof b !== 'boolean')\n throw new Error(`Expected boolean, not ${b}`);\n}\nexport function bytes(b, ...lengths) {\n if (!(b instanceof Uint8Array))\n throw new TypeError('Expected Uint8Array');\n if (lengths.length > 0 && !lengths.includes(b.length))\n throw new TypeError(`Expected Uint8Array of length ${lengths}, not of length=${b.length}`);\n}\nexport function hash(hash) {\n if (typeof hash !== 'function' || typeof hash.create !== 'function')\n throw new Error('Hash should be wrapped by utils.wrapConstructor');\n number(hash.outputLen);\n number(hash.blockLen);\n}\nexport function exists(instance, checkFinished = true) {\n if (instance.destroyed)\n throw new Error('Hash instance has been destroyed');\n if (checkFinished && instance.finished)\n throw new Error('Hash#digest() has already been called');\n}\nexport function output(out, instance) {\n bytes(out);\n const min = instance.outputLen;\n if (out.length < min) {\n throw new Error(`digestInto() expects output buffer of length at least ${min}`);\n }\n}\nconst assert = {\n number,\n bool,\n bytes,\n hash,\n exists,\n output,\n};\nexport default assert;\n//# sourceMappingURL=_assert.js.map","export const crypto = {\n node: undefined,\n web: typeof self === 'object' && 'crypto' in self ? self.crypto : undefined,\n};\n//# sourceMappingURL=cryptoBrowser.js.map","/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// The import here is via the package name. This is to ensure\n// that exports mapping/resolution does fall into place.\nimport { crypto } from '@noble/hashes/crypto';\n// Cast array to different type\nexport const u8 = (arr) => new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\nexport const u32 = (arr) => new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\n// Cast array to view\nexport const createView = (arr) => new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n// The rotate right (circular right shift) operation for uint32\nexport const rotr = (word, shift) => (word << (32 - shift)) | (word >>> shift);\nexport const isLE = new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44;\n// There is almost no big endian hardware, but js typed arrays uses platform specific endianness.\n// So, just to be sure not to corrupt anything.\nif (!isLE)\n throw new Error('Non little-endian hardware is not supported');\nconst hexes = Array.from({ length: 256 }, (v, i) => i.toString(16).padStart(2, '0'));\n/**\n * @example bytesToHex(Uint8Array.from([0xde, 0xad, 0xbe, 0xef]))\n */\nexport function bytesToHex(uint8a) {\n // pre-caching improves the speed 6x\n if (!(uint8a instanceof Uint8Array))\n throw new Error('Uint8Array expected');\n let hex = '';\n for (let i = 0; i < uint8a.length; i++) {\n hex += hexes[uint8a[i]];\n }\n return hex;\n}\n/**\n * @example hexToBytes('deadbeef')\n */\nexport function hexToBytes(hex) {\n if (typeof hex !== 'string') {\n throw new TypeError('hexToBytes: expected string, got ' + typeof hex);\n }\n if (hex.length % 2)\n throw new Error('hexToBytes: received invalid unpadded hex');\n const array = new Uint8Array(hex.length / 2);\n for (let i = 0; i < array.length; i++) {\n const j = i * 2;\n const hexByte = hex.slice(j, j + 2);\n const byte = Number.parseInt(hexByte, 16);\n if (Number.isNaN(byte) || byte < 0)\n throw new Error('Invalid byte sequence');\n array[i] = byte;\n }\n return array;\n}\n// There is no setImmediate in browser and setTimeout is slow. However, call to async function will return Promise\n// which will be fullfiled only on next scheduler queue processing step and this is exactly what we need.\nexport const nextTick = async () => { };\n// Returns control to thread each 'tick' ms to avoid blocking\nexport async function asyncLoop(iters, tick, cb) {\n let ts = Date.now();\n for (let i = 0; i < iters; i++) {\n cb(i);\n // Date.now() is not monotonic, so in case if clock goes backwards we return return control too\n const diff = Date.now() - ts;\n if (diff >= 0 && diff < tick)\n continue;\n await nextTick();\n ts += diff;\n }\n}\nexport function utf8ToBytes(str) {\n if (typeof str !== 'string') {\n throw new TypeError(`utf8ToBytes expected string, got ${typeof str}`);\n }\n return new TextEncoder().encode(str);\n}\nexport function toBytes(data) {\n if (typeof data === 'string')\n data = utf8ToBytes(data);\n if (!(data instanceof Uint8Array))\n throw new TypeError(`Expected input type is Uint8Array (got ${typeof data})`);\n return data;\n}\n/**\n * Concats Uint8Array-s into one; like `Buffer.concat([buf1, buf2])`\n * @example concatBytes(buf1, buf2)\n */\nexport function concatBytes(...arrays) {\n if (!arrays.every((a) => a instanceof Uint8Array))\n throw new Error('Uint8Array list expected');\n if (arrays.length === 1)\n return arrays[0];\n const length = arrays.reduce((a, arr) => a + arr.length, 0);\n const result = new Uint8Array(length);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const arr = arrays[i];\n result.set(arr, pad);\n pad += arr.length;\n }\n return result;\n}\n// For runtime check if class implements interface\nexport class Hash {\n // Safe version that clones internal state\n clone() {\n return this._cloneInto();\n }\n}\n// Check if object doens't have custom constructor (like Uint8Array/Array)\nconst isPlainObject = (obj) => Object.prototype.toString.call(obj) === '[object Object]' && obj.constructor === Object;\nexport function checkOpts(defaults, opts) {\n if (opts !== undefined && (typeof opts !== 'object' || !isPlainObject(opts)))\n throw new TypeError('Options should be object or undefined');\n const merged = Object.assign(defaults, opts);\n return merged;\n}\nexport function wrapConstructor(hashConstructor) {\n const hashC = (message) => hashConstructor().update(toBytes(message)).digest();\n const tmp = hashConstructor();\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = () => hashConstructor();\n return hashC;\n}\nexport function wrapConstructorWithOpts(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\n/**\n * Secure PRNG\n */\nexport function randomBytes(bytesLength = 32) {\n if (crypto.web) {\n return crypto.web.getRandomValues(new Uint8Array(bytesLength));\n }\n else if (crypto.node) {\n return new Uint8Array(crypto.node.randomBytes(bytesLength).buffer);\n }\n else {\n throw new Error(\"The environment doesn't have randomBytes function\");\n }\n}\n//# sourceMappingURL=utils.js.map","import assert from './_assert.js';\nimport { Hash, createView, toBytes } from './utils.js';\n// Polyfill for Safari 14\nfunction setBigUint64(view, byteOffset, value, isLE) {\n if (typeof view.setBigUint64 === 'function')\n return view.setBigUint64(byteOffset, value, isLE);\n const _32n = BigInt(32);\n const _u32_max = BigInt(0xffffffff);\n const wh = Number((value >> _32n) & _u32_max);\n const wl = Number(value & _u32_max);\n const h = isLE ? 4 : 0;\n const l = isLE ? 0 : 4;\n view.setUint32(byteOffset + h, wh, isLE);\n view.setUint32(byteOffset + l, wl, isLE);\n}\n// Base SHA2 class (RFC 6234)\nexport class SHA2 extends Hash {\n constructor(blockLen, outputLen, padOffset, isLE) {\n super();\n this.blockLen = blockLen;\n this.outputLen = outputLen;\n this.padOffset = padOffset;\n this.isLE = isLE;\n this.finished = false;\n this.length = 0;\n this.pos = 0;\n this.destroyed = false;\n this.buffer = new Uint8Array(blockLen);\n this.view = createView(this.buffer);\n }\n update(data) {\n assert.exists(this);\n const { view, buffer, blockLen } = this;\n data = toBytes(data);\n const len = data.length;\n for (let pos = 0; pos < len;) {\n const take = Math.min(blockLen - this.pos, len - pos);\n // Fast path: we have at least one block in input, cast it to view and process\n if (take === blockLen) {\n const dataView = createView(data);\n for (; blockLen <= len - pos; pos += blockLen)\n this.process(dataView, pos);\n continue;\n }\n buffer.set(data.subarray(pos, pos + take), this.pos);\n this.pos += take;\n pos += take;\n if (this.pos === blockLen) {\n this.process(view, 0);\n this.pos = 0;\n }\n }\n this.length += data.length;\n this.roundClean();\n return this;\n }\n digestInto(out) {\n assert.exists(this);\n assert.output(out, this);\n this.finished = true;\n // Padding\n // We can avoid allocation of buffer for padding completely if it\n // was previously not allocated here. But it won't change performance.\n const { buffer, view, blockLen, isLE } = this;\n let { pos } = this;\n // append the bit '1' to the message\n buffer[pos++] = 0b10000000;\n this.buffer.subarray(pos).fill(0);\n // we have less than padOffset left in buffer, so we cannot put length in current block, need process it and pad again\n if (this.padOffset > blockLen - pos) {\n this.process(view, 0);\n pos = 0;\n }\n // Pad until full block byte with zeros\n for (let i = pos; i < blockLen; i++)\n buffer[i] = 0;\n // Note: sha512 requires length to be 128bit integer, but length in JS will overflow before that\n // You need to write around 2 exabytes (u64_max / 8 / (1024**6)) for this to happen.\n // So we just write lowest 64 bits of that value.\n setBigUint64(view, blockLen - 8, BigInt(this.length * 8), isLE);\n this.process(view, 0);\n const oview = createView(out);\n const len = this.outputLen;\n // NOTE: we do division by 4 later, which should be fused in single op with modulo by JIT\n if (len % 4)\n throw new Error('_sha2: outputLen should be aligned to 32bit');\n const outLen = len / 4;\n const state = this.get();\n if (outLen > state.length)\n throw new Error('_sha2: outputLen bigger than state');\n for (let i = 0; i < outLen; i++)\n oview.setUint32(4 * i, state[i], isLE);\n }\n digest() {\n const { buffer, outputLen } = this;\n this.digestInto(buffer);\n const res = buffer.slice(0, outputLen);\n this.destroy();\n return res;\n }\n _cloneInto(to) {\n to || (to = new this.constructor());\n to.set(...this.get());\n const { blockLen, buffer, length, finished, destroyed, pos } = this;\n to.length = length;\n to.pos = pos;\n to.finished = finished;\n to.destroyed = destroyed;\n if (length % blockLen)\n to.buffer.set(buffer);\n return to;\n }\n}\n//# sourceMappingURL=_sha2.js.map","import { SHA2 } from './_sha2.js';\nimport { rotr, wrapConstructor } from './utils.js';\n// Choice: a ? b : c\nconst Chi = (a, b, c) => (a & b) ^ (~a & c);\n// Majority function, true if any two inpust is true\nconst Maj = (a, b, c) => (a & b) ^ (a & c) ^ (b & c);\n// Round constants:\n// first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311)\n// prettier-ignore\nconst SHA256_K = new Uint32Array([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n]);\n// Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):\n// prettier-ignore\nconst IV = new Uint32Array([\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n]);\n// Temporary buffer, not used to store anything between runs\n// Named this way because it matches specification.\nconst SHA256_W = new Uint32Array(64);\nclass SHA256 extends SHA2 {\n constructor() {\n super(64, 32, 8, false);\n // We cannot use array here since array allows indexing by variable\n // which means optimizer/compiler cannot use registers.\n this.A = IV[0] | 0;\n this.B = IV[1] | 0;\n this.C = IV[2] | 0;\n this.D = IV[3] | 0;\n this.E = IV[4] | 0;\n this.F = IV[5] | 0;\n this.G = IV[6] | 0;\n this.H = IV[7] | 0;\n }\n get() {\n const { A, B, C, D, E, F, G, H } = this;\n return [A, B, C, D, E, F, G, H];\n }\n // prettier-ignore\n set(A, B, C, D, E, F, G, H) {\n this.A = A | 0;\n this.B = B | 0;\n this.C = C | 0;\n this.D = D | 0;\n this.E = E | 0;\n this.F = F | 0;\n this.G = G | 0;\n this.H = H | 0;\n }\n process(view, offset) {\n // Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4)\n SHA256_W[i] = view.getUint32(offset, false);\n for (let i = 16; i < 64; i++) {\n const W15 = SHA256_W[i - 15];\n const W2 = SHA256_W[i - 2];\n const s0 = rotr(W15, 7) ^ rotr(W15, 18) ^ (W15 >>> 3);\n const s1 = rotr(W2, 17) ^ rotr(W2, 19) ^ (W2 >>> 10);\n SHA256_W[i] = (s1 + SHA256_W[i - 7] + s0 + SHA256_W[i - 16]) | 0;\n }\n // Compression function main loop, 64 rounds\n let { A, B, C, D, E, F, G, H } = this;\n for (let i = 0; i < 64; i++) {\n const sigma1 = rotr(E, 6) ^ rotr(E, 11) ^ rotr(E, 25);\n const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const sigma0 = rotr(A, 2) ^ rotr(A, 13) ^ rotr(A, 22);\n const T2 = (sigma0 + Maj(A, B, C)) | 0;\n H = G;\n G = F;\n F = E;\n E = (D + T1) | 0;\n D = C;\n C = B;\n B = A;\n A = (T1 + T2) | 0;\n }\n // Add the compressed chunk to the current hash value\n A = (A + this.A) | 0;\n B = (B + this.B) | 0;\n C = (C + this.C) | 0;\n D = (D + this.D) | 0;\n E = (E + this.E) | 0;\n F = (F + this.F) | 0;\n G = (G + this.G) | 0;\n H = (H + this.H) | 0;\n this.set(A, B, C, D, E, F, G, H);\n }\n roundClean() {\n SHA256_W.fill(0);\n }\n destroy() {\n this.set(0, 0, 0, 0, 0, 0, 0, 0);\n this.buffer.fill(0);\n }\n}\n// Constants from https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf\nclass SHA224 extends SHA256 {\n constructor() {\n super();\n this.A = 0xc1059ed8 | 0;\n this.B = 0x367cd507 | 0;\n this.C = 0x3070dd17 | 0;\n this.D = 0xf70e5939 | 0;\n this.E = 0xffc00b31 | 0;\n this.F = 0x68581511 | 0;\n this.G = 0x64f98fa7 | 0;\n this.H = 0xbefa4fa4 | 0;\n this.outputLen = 28;\n }\n}\n/**\n * SHA2-256 hash function\n * @param message - data that would be hashed\n */\nexport const sha256 = wrapConstructor(() => new SHA256());\nexport const sha224 = wrapConstructor(() => new SHA224());\n//# sourceMappingURL=sha256.js.map","/*! scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nexport function assertNumber(n) {\n if (!Number.isSafeInteger(n))\n throw new Error(`Wrong integer: ${n}`);\n}\nfunction chain(...args) {\n const wrap = (a, b) => (c) => a(b(c));\n const encode = Array.from(args)\n .reverse()\n .reduce((acc, i) => (acc ? wrap(acc, i.encode) : i.encode), undefined);\n const decode = args.reduce((acc, i) => (acc ? wrap(acc, i.decode) : i.decode), undefined);\n return { encode, decode };\n}\nfunction alphabet(alphabet) {\n return {\n encode: (digits) => {\n if (!Array.isArray(digits) || (digits.length && typeof digits[0] !== 'number'))\n throw new Error('alphabet.encode input should be an array of numbers');\n return digits.map((i) => {\n assertNumber(i);\n if (i < 0 || i >= alphabet.length)\n throw new Error(`Digit index outside alphabet: ${i} (alphabet: ${alphabet.length})`);\n return alphabet[i];\n });\n },\n decode: (input) => {\n if (!Array.isArray(input) || (input.length && typeof input[0] !== 'string'))\n throw new Error('alphabet.decode input should be array of strings');\n return input.map((letter) => {\n if (typeof letter !== 'string')\n throw new Error(`alphabet.decode: not string element=${letter}`);\n const index = alphabet.indexOf(letter);\n if (index === -1)\n throw new Error(`Unknown letter: \"${letter}\". Allowed: ${alphabet}`);\n return index;\n });\n },\n };\n}\nfunction join(separator = '') {\n if (typeof separator !== 'string')\n throw new Error('join separator should be string');\n return {\n encode: (from) => {\n if (!Array.isArray(from) || (from.length && typeof from[0] !== 'string'))\n throw new Error('join.encode input should be array of strings');\n for (let i of from)\n if (typeof i !== 'string')\n throw new Error(`join.encode: non-string input=${i}`);\n return from.join(separator);\n },\n decode: (to) => {\n if (typeof to !== 'string')\n throw new Error('join.decode input should be string');\n return to.split(separator);\n },\n };\n}\nfunction padding(bits, chr = '=') {\n assertNumber(bits);\n if (typeof chr !== 'string')\n throw new Error('padding chr should be string');\n return {\n encode(data) {\n if (!Array.isArray(data) || (data.length && typeof data[0] !== 'string'))\n throw new Error('padding.encode input should be array of strings');\n for (let i of data)\n if (typeof i !== 'string')\n throw new Error(`padding.encode: non-string input=${i}`);\n while ((data.length * bits) % 8)\n data.push(chr);\n return data;\n },\n decode(input) {\n if (!Array.isArray(input) || (input.length && typeof input[0] !== 'string'))\n throw new Error('padding.encode input should be array of strings');\n for (let i of input)\n if (typeof i !== 'string')\n throw new Error(`padding.decode: non-string input=${i}`);\n let end = input.length;\n if ((end * bits) % 8)\n throw new Error('Invalid padding: string should have whole number of bytes');\n for (; end > 0 && input[end - 1] === chr; end--) {\n if (!(((end - 1) * bits) % 8))\n throw new Error('Invalid padding: string has too much padding');\n }\n return input.slice(0, end);\n },\n };\n}\nfunction normalize(fn) {\n if (typeof fn !== 'function')\n throw new Error('normalize fn should be function');\n return { encode: (from) => from, decode: (to) => fn(to) };\n}\nfunction convertRadix(data, from, to) {\n if (from < 2)\n throw new Error(`convertRadix: wrong from=${from}, base cannot be less than 2`);\n if (to < 2)\n throw new Error(`convertRadix: wrong to=${to}, base cannot be less than 2`);\n if (!Array.isArray(data))\n throw new Error('convertRadix: data should be array');\n if (!data.length)\n return [];\n let pos = 0;\n const res = [];\n const digits = Array.from(data);\n digits.forEach((d) => {\n assertNumber(d);\n if (d < 0 || d >= from)\n throw new Error(`Wrong integer: ${d}`);\n });\n while (true) {\n let carry = 0;\n let done = true;\n for (let i = pos; i < digits.length; i++) {\n const digit = digits[i];\n const digitBase = from * carry + digit;\n if (!Number.isSafeInteger(digitBase) ||\n (from * carry) / from !== carry ||\n digitBase - digit !== from * carry) {\n throw new Error('convertRadix: carry overflow');\n }\n carry = digitBase % to;\n digits[i] = Math.floor(digitBase / to);\n if (!Number.isSafeInteger(digits[i]) || digits[i] * to + carry !== digitBase)\n throw new Error('convertRadix: carry overflow');\n if (!done)\n continue;\n else if (!digits[i])\n pos = i;\n else\n done = false;\n }\n res.push(carry);\n if (done)\n break;\n }\n for (let i = 0; i < data.length - 1 && data[i] === 0; i++)\n res.push(0);\n return res.reverse();\n}\nconst gcd = (a, b) => (!b ? a : gcd(b, a % b));\nconst radix2carry = (from, to) => from + (to - gcd(from, to));\nfunction convertRadix2(data, from, to, padding) {\n if (!Array.isArray(data))\n throw new Error('convertRadix2: data should be array');\n if (from <= 0 || from > 32)\n throw new Error(`convertRadix2: wrong from=${from}`);\n if (to <= 0 || to > 32)\n throw new Error(`convertRadix2: wrong to=${to}`);\n if (radix2carry(from, to) > 32) {\n throw new Error(`convertRadix2: carry overflow from=${from} to=${to} carryBits=${radix2carry(from, to)}`);\n }\n let carry = 0;\n let pos = 0;\n const mask = 2 ** to - 1;\n const res = [];\n for (const n of data) {\n assertNumber(n);\n if (n >= 2 ** from)\n throw new Error(`convertRadix2: invalid data word=${n} from=${from}`);\n carry = (carry << from) | n;\n if (pos + from > 32)\n throw new Error(`convertRadix2: carry overflow pos=${pos} from=${from}`);\n pos += from;\n for (; pos >= to; pos -= to)\n res.push(((carry >> (pos - to)) & mask) >>> 0);\n carry &= 2 ** pos - 1;\n }\n carry = (carry << (to - pos)) & mask;\n if (!padding && pos >= from)\n throw new Error('Excess padding');\n if (!padding && carry)\n throw new Error(`Non-zero padding: ${carry}`);\n if (padding && pos > 0)\n res.push(carry >>> 0);\n return res;\n}\nfunction radix(num) {\n assertNumber(num);\n return {\n encode: (bytes) => {\n if (!(bytes instanceof Uint8Array))\n throw new Error('radix.encode input should be Uint8Array');\n return convertRadix(Array.from(bytes), 2 ** 8, num);\n },\n decode: (digits) => {\n if (!Array.isArray(digits) || (digits.length && typeof digits[0] !== 'number'))\n throw new Error('radix.decode input should be array of strings');\n return Uint8Array.from(convertRadix(digits, num, 2 ** 8));\n },\n };\n}\nfunction radix2(bits, revPadding = false) {\n assertNumber(bits);\n if (bits <= 0 || bits > 32)\n throw new Error('radix2: bits should be in (0..32]');\n if (radix2carry(8, bits) > 32 || radix2carry(bits, 8) > 32)\n throw new Error('radix2: carry overflow');\n return {\n encode: (bytes) => {\n if (!(bytes instanceof Uint8Array))\n throw new Error('radix2.encode input should be Uint8Array');\n return convertRadix2(Array.from(bytes), 8, bits, !revPadding);\n },\n decode: (digits) => {\n if (!Array.isArray(digits) || (digits.length && typeof digits[0] !== 'number'))\n throw new Error('radix2.decode input should be array of strings');\n return Uint8Array.from(convertRadix2(digits, bits, 8, revPadding));\n },\n };\n}\nfunction unsafeWrapper(fn) {\n if (typeof fn !== 'function')\n throw new Error('unsafeWrapper fn should be function');\n return function (...args) {\n try {\n return fn.apply(null, args);\n }\n catch (e) { }\n };\n}\nfunction checksum(len, fn) {\n assertNumber(len);\n if (typeof fn !== 'function')\n throw new Error('checksum fn should be function');\n return {\n encode(data) {\n if (!(data instanceof Uint8Array))\n throw new Error('checksum.encode: input should be Uint8Array');\n const checksum = fn(data).slice(0, len);\n const res = new Uint8Array(data.length + len);\n res.set(data);\n res.set(checksum, data.length);\n return res;\n },\n decode(data) {\n if (!(data instanceof Uint8Array))\n throw new Error('checksum.decode: input should be Uint8Array');\n const payload = data.slice(0, -len);\n const newChecksum = fn(payload).slice(0, len);\n const oldChecksum = data.slice(-len);\n for (let i = 0; i < len; i++)\n if (newChecksum[i] !== oldChecksum[i])\n throw new Error('Invalid checksum');\n return payload;\n },\n };\n}\nexport const utils = { alphabet, chain, checksum, radix, radix2, join, padding };\nexport const base16 = chain(radix2(4), alphabet('0123456789ABCDEF'), join(''));\nexport const base32 = chain(radix2(5), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZ234567'), padding(5), join(''));\nexport const base32hex = chain(radix2(5), alphabet('0123456789ABCDEFGHIJKLMNOPQRSTUV'), padding(5), join(''));\nexport const base32crockford = chain(radix2(5), alphabet('0123456789ABCDEFGHJKMNPQRSTVWXYZ'), join(''), normalize((s) => s.toUpperCase().replace(/O/g, '0').replace(/[IL]/g, '1')));\nexport const base64 = chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'), padding(6), join(''));\nexport const base64url = chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_'), padding(6), join(''));\nconst genBase58 = (abc) => chain(radix(58), alphabet(abc), join(''));\nexport const base58 = genBase58('123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz');\nexport const base58flickr = genBase58('123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ');\nexport const base58xrp = genBase58('rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz');\nconst XMR_BLOCK_LEN = [0, 2, 3, 5, 6, 7, 9, 10, 11];\nexport const base58xmr = {\n encode(data) {\n let res = '';\n for (let i = 0; i < data.length; i += 8) {\n const block = data.subarray(i, i + 8);\n res += base58.encode(block).padStart(XMR_BLOCK_LEN[block.length], '1');\n }\n return res;\n },\n decode(str) {\n let res = [];\n for (let i = 0; i < str.length; i += 11) {\n const slice = str.slice(i, i + 11);\n const blockLen = XMR_BLOCK_LEN.indexOf(slice.length);\n const block = base58.decode(slice);\n for (let j = 0; j < block.length - blockLen; j++) {\n if (block[j] !== 0)\n throw new Error('base58xmr: wrong padding');\n }\n res = res.concat(Array.from(block.slice(block.length - blockLen)));\n }\n return Uint8Array.from(res);\n },\n};\nexport const base58check = (sha256) => chain(checksum(4, (data) => sha256(sha256(data))), base58);\nconst BECH_ALPHABET = chain(alphabet('qpzry9x8gf2tvdw0s3jn54khce6mua7l'), join(''));\nconst POLYMOD_GENERATORS = [0x3b6a57b2, 0x26508e6d, 0x1ea119fa, 0x3d4233dd, 0x2a1462b3];\nfunction bech32Polymod(pre) {\n const b = pre >> 25;\n let chk = (pre & 0x1ffffff) << 5;\n for (let i = 0; i < POLYMOD_GENERATORS.length; i++) {\n if (((b >> i) & 1) === 1)\n chk ^= POLYMOD_GENERATORS[i];\n }\n return chk;\n}\nfunction bechChecksum(prefix, words, encodingConst = 1) {\n const len = prefix.length;\n let chk = 1;\n for (let i = 0; i < len; i++) {\n const c = prefix.charCodeAt(i);\n if (c < 33 || c > 126)\n throw new Error(`Invalid prefix (${prefix})`);\n chk = bech32Polymod(chk) ^ (c >> 5);\n }\n chk = bech32Polymod(chk);\n for (let i = 0; i < len; i++)\n chk = bech32Polymod(chk) ^ (prefix.charCodeAt(i) & 0x1f);\n for (let v of words)\n chk = bech32Polymod(chk) ^ v;\n for (let i = 0; i < 6; i++)\n chk = bech32Polymod(chk);\n chk ^= encodingConst;\n return BECH_ALPHABET.encode(convertRadix2([chk % 2 ** 30], 30, 5, false));\n}\nfunction genBech32(encoding) {\n const ENCODING_CONST = encoding === 'bech32' ? 1 : 0x2bc830a3;\n const _words = radix2(5);\n const fromWords = _words.decode;\n const toWords = _words.encode;\n const fromWordsUnsafe = unsafeWrapper(fromWords);\n function encode(prefix, words, limit = 90) {\n if (typeof prefix !== 'string')\n throw new Error(`bech32.encode prefix should be string, not ${typeof prefix}`);\n if (!Array.isArray(words) || (words.length && typeof words[0] !== 'number'))\n throw new Error(`bech32.encode words should be array of numbers, not ${typeof words}`);\n const actualLength = prefix.length + 7 + words.length;\n if (limit !== false && actualLength > limit)\n throw new TypeError(`Length ${actualLength} exceeds limit ${limit}`);\n prefix = prefix.toLowerCase();\n return `${prefix}1${BECH_ALPHABET.encode(words)}${bechChecksum(prefix, words, ENCODING_CONST)}`;\n }\n function decode(str, limit = 90) {\n if (typeof str !== 'string')\n throw new Error(`bech32.decode input should be string, not ${typeof str}`);\n if (str.length < 8 || (limit !== false && str.length > limit))\n throw new TypeError(`Wrong string length: ${str.length} (${str}). Expected (8..${limit})`);\n const lowered = str.toLowerCase();\n if (str !== lowered && str !== str.toUpperCase())\n throw new Error(`String must be lowercase or uppercase`);\n str = lowered;\n const sepIndex = str.lastIndexOf('1');\n if (sepIndex === 0 || sepIndex === -1)\n throw new Error(`Letter \"1\" must be present between prefix and data only`);\n const prefix = str.slice(0, sepIndex);\n const _words = str.slice(sepIndex + 1);\n if (_words.length < 6)\n throw new Error('Data must be at least 6 characters long');\n const words = BECH_ALPHABET.decode(_words).slice(0, -6);\n const sum = bechChecksum(prefix, words, ENCODING_CONST);\n if (!_words.endsWith(sum))\n throw new Error(`Invalid checksum in ${str}: expected \"${sum}\"`);\n return { prefix, words };\n }\n const decodeUnsafe = unsafeWrapper(decode);\n function decodeToBytes(str) {\n const { prefix, words } = decode(str, false);\n return { prefix, words, bytes: fromWords(words) };\n }\n return { encode, decode, decodeToBytes, decodeUnsafe, fromWords, fromWordsUnsafe, toWords };\n}\nexport const bech32 = genBech32('bech32');\nexport const bech32m = genBech32('bech32m');\nexport const utf8 = {\n encode: (data) => new TextDecoder().decode(data),\n decode: (str) => new TextEncoder().encode(str),\n};\nexport const hex = chain(radix2(4), alphabet('0123456789abcdef'), join(''), normalize((s) => {\n if (typeof s !== 'string' || s.length % 2)\n throw new TypeError(`hex.decode: expected string, got ${typeof s} with length ${s.length}`);\n return s.toLowerCase();\n}));\nconst CODERS = {\n utf8, hex, base16, base32, base64, base64url, base58, base58xmr\n};\nconst coderTypeError = `Invalid encoding type. Available types: ${Object.keys(CODERS).join(', ')}`;\nexport const bytesToString = (type, bytes) => {\n if (typeof type !== 'string' || !CODERS.hasOwnProperty(type))\n throw new TypeError(coderTypeError);\n if (!(bytes instanceof Uint8Array))\n throw new TypeError('bytesToString() expects Uint8Array');\n return CODERS[type].encode(bytes);\n};\nexport const str = bytesToString;\nexport const stringToBytes = (type, str) => {\n if (!CODERS.hasOwnProperty(type))\n throw new TypeError(coderTypeError);\n if (typeof str !== 'string')\n throw new TypeError('stringToBytes() expects string');\n return CODERS[type].decode(str);\n};\nexport const bytes = stringToBytes;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.wordlist = void 0;\nexports.wordlist = `abandon\nability\nable\nabout\nabove\nabsent\nabsorb\nabstract\nabsurd\nabuse\naccess\naccident\naccount\naccuse\nachieve\nacid\nacoustic\nacquire\nacross\nact\naction\nactor\nactress\nactual\nadapt\nadd\naddict\naddress\nadjust\nadmit\nadult\nadvance\nadvice\naerobic\naffair\nafford\nafraid\nagain\nage\nagent\nagree\nahead\naim\nair\nairport\naisle\nalarm\nalbum\nalcohol\nalert\nalien\nall\nalley\nallow\nalmost\nalone\nalpha\nalready\nalso\nalter\nalways\namateur\namazing\namong\namount\namused\nanalyst\nanchor\nancient\nanger\nangle\nangry\nanimal\nankle\nannounce\nannual\nanother\nanswer\nantenna\nantique\nanxiety\nany\napart\napology\nappear\napple\napprove\napril\narch\narctic\narea\narena\nargue\narm\narmed\narmor\narmy\naround\narrange\narrest\narrive\narrow\nart\nartefact\nartist\nartwork\nask\naspect\nassault\nasset\nassist\nassume\nasthma\nathlete\natom\nattack\nattend\nattitude\nattract\nauction\naudit\naugust\naunt\nauthor\nauto\nautumn\naverage\navocado\navoid\nawake\naware\naway\nawesome\nawful\nawkward\naxis\nbaby\nbachelor\nbacon\nbadge\nbag\nbalance\nbalcony\nball\nbamboo\nbanana\nbanner\nbar\nbarely\nbargain\nbarrel\nbase\nbasic\nbasket\nbattle\nbeach\nbean\nbeauty\nbecause\nbecome\nbeef\nbefore\nbegin\nbehave\nbehind\nbelieve\nbelow\nbelt\nbench\nbenefit\nbest\nbetray\nbetter\nbetween\nbeyond\nbicycle\nbid\nbike\nbind\nbiology\nbird\nbirth\nbitter\nblack\nblade\nblame\nblanket\nblast\nbleak\nbless\nblind\nblood\nblossom\nblouse\nblue\nblur\nblush\nboard\nboat\nbody\nboil\nbomb\nbone\nbonus\nbook\nboost\nborder\nboring\nborrow\nboss\nbottom\nbounce\nbox\nboy\nbracket\nbrain\nbrand\nbrass\nbrave\nbread\nbreeze\nbrick\nbridge\nbrief\nbright\nbring\nbrisk\nbroccoli\nbroken\nbronze\nbroom\nbrother\nbrown\nbrush\nbubble\nbuddy\nbudget\nbuffalo\nbuild\nbulb\nbulk\nbullet\nbundle\nbunker\nburden\nburger\nburst\nbus\nbusiness\nbusy\nbutter\nbuyer\nbuzz\ncabbage\ncabin\ncable\ncactus\ncage\ncake\ncall\ncalm\ncamera\ncamp\ncan\ncanal\ncancel\ncandy\ncannon\ncanoe\ncanvas\ncanyon\ncapable\ncapital\ncaptain\ncar\ncarbon\ncard\ncargo\ncarpet\ncarry\ncart\ncase\ncash\ncasino\ncastle\ncasual\ncat\ncatalog\ncatch\ncategory\ncattle\ncaught\ncause\ncaution\ncave\nceiling\ncelery\ncement\ncensus\ncentury\ncereal\ncertain\nchair\nchalk\nchampion\nchange\nchaos\nchapter\ncharge\nchase\nchat\ncheap\ncheck\ncheese\nchef\ncherry\nchest\nchicken\nchief\nchild\nchimney\nchoice\nchoose\nchronic\nchuckle\nchunk\nchurn\ncigar\ncinnamon\ncircle\ncitizen\ncity\ncivil\nclaim\nclap\nclarify\nclaw\nclay\nclean\nclerk\nclever\nclick\nclient\ncliff\nclimb\nclinic\nclip\nclock\nclog\nclose\ncloth\ncloud\nclown\nclub\nclump\ncluster\nclutch\ncoach\ncoast\ncoconut\ncode\ncoffee\ncoil\ncoin\ncollect\ncolor\ncolumn\ncombine\ncome\ncomfort\ncomic\ncommon\ncompany\nconcert\nconduct\nconfirm\ncongress\nconnect\nconsider\ncontrol\nconvince\ncook\ncool\ncopper\ncopy\ncoral\ncore\ncorn\ncorrect\ncost\ncotton\ncouch\ncountry\ncouple\ncourse\ncousin\ncover\ncoyote\ncrack\ncradle\ncraft\ncram\ncrane\ncrash\ncrater\ncrawl\ncrazy\ncream\ncredit\ncreek\ncrew\ncricket\ncrime\ncrisp\ncritic\ncrop\ncross\ncrouch\ncrowd\ncrucial\ncruel\ncruise\ncrumble\ncrunch\ncrush\ncry\ncrystal\ncube\nculture\ncup\ncupboard\ncurious\ncurrent\ncurtain\ncurve\ncushion\ncustom\ncute\ncycle\ndad\ndamage\ndamp\ndance\ndanger\ndaring\ndash\ndaughter\ndawn\nday\ndeal\ndebate\ndebris\ndecade\ndecember\ndecide\ndecline\ndecorate\ndecrease\ndeer\ndefense\ndefine\ndefy\ndegree\ndelay\ndeliver\ndemand\ndemise\ndenial\ndentist\ndeny\ndepart\ndepend\ndeposit\ndepth\ndeputy\nderive\ndescribe\ndesert\ndesign\ndesk\ndespair\ndestroy\ndetail\ndetect\ndevelop\ndevice\ndevote\ndiagram\ndial\ndiamond\ndiary\ndice\ndiesel\ndiet\ndiffer\ndigital\ndignity\ndilemma\ndinner\ndinosaur\ndirect\ndirt\ndisagree\ndiscover\ndisease\ndish\ndismiss\ndisorder\ndisplay\ndistance\ndivert\ndivide\ndivorce\ndizzy\ndoctor\ndocument\ndog\ndoll\ndolphin\ndomain\ndonate\ndonkey\ndonor\ndoor\ndose\ndouble\ndove\ndraft\ndragon\ndrama\ndrastic\ndraw\ndream\ndress\ndrift\ndrill\ndrink\ndrip\ndrive\ndrop\ndrum\ndry\nduck\ndumb\ndune\nduring\ndust\ndutch\nduty\ndwarf\ndynamic\neager\neagle\nearly\nearn\nearth\neasily\neast\neasy\necho\necology\neconomy\nedge\nedit\neducate\neffort\negg\neight\neither\nelbow\nelder\nelectric\nelegant\nelement\nelephant\nelevator\nelite\nelse\nembark\nembody\nembrace\nemerge\nemotion\nemploy\nempower\nempty\nenable\nenact\nend\nendless\nendorse\nenemy\nenergy\nenforce\nengage\nengine\nenhance\nenjoy\nenlist\nenough\nenrich\nenroll\nensure\nenter\nentire\nentry\nenvelope\nepisode\nequal\nequip\nera\nerase\nerode\nerosion\nerror\nerupt\nescape\nessay\nessence\nestate\neternal\nethics\nevidence\nevil\nevoke\nevolve\nexact\nexample\nexcess\nexchange\nexcite\nexclude\nexcuse\nexecute\nexercise\nexhaust\nexhibit\nexile\nexist\nexit\nexotic\nexpand\nexpect\nexpire\nexplain\nexpose\nexpress\nextend\nextra\neye\neyebrow\nfabric\nface\nfaculty\nfade\nfaint\nfaith\nfall\nfalse\nfame\nfamily\nfamous\nfan\nfancy\nfantasy\nfarm\nfashion\nfat\nfatal\nfather\nfatigue\nfault\nfavorite\nfeature\nfebruary\nfederal\nfee\nfeed\nfeel\nfemale\nfence\nfestival\nfetch\nfever\nfew\nfiber\nfiction\nfield\nfigure\nfile\nfilm\nfilter\nfinal\nfind\nfine\nfinger\nfinish\nfire\nfirm\nfirst\nfiscal\nfish\nfit\nfitness\nfix\nflag\nflame\nflash\nflat\nflavor\nflee\nflight\nflip\nfloat\nflock\nfloor\nflower\nfluid\nflush\nfly\nfoam\nfocus\nfog\nfoil\nfold\nfollow\nfood\nfoot\nforce\nforest\nforget\nfork\nfortune\nforum\nforward\nfossil\nfoster\nfound\nfox\nfragile\nframe\nfrequent\nfresh\nfriend\nfringe\nfrog\nfront\nfrost\nfrown\nfrozen\nfruit\nfuel\nfun\nfunny\nfurnace\nfury\nfuture\ngadget\ngain\ngalaxy\ngallery\ngame\ngap\ngarage\ngarbage\ngarden\ngarlic\ngarment\ngas\ngasp\ngate\ngather\ngauge\ngaze\ngeneral\ngenius\ngenre\ngentle\ngenuine\ngesture\nghost\ngiant\ngift\ngiggle\nginger\ngiraffe\ngirl\ngive\nglad\nglance\nglare\nglass\nglide\nglimpse\nglobe\ngloom\nglory\nglove\nglow\nglue\ngoat\ngoddess\ngold\ngood\ngoose\ngorilla\ngospel\ngossip\ngovern\ngown\ngrab\ngrace\ngrain\ngrant\ngrape\ngrass\ngravity\ngreat\ngreen\ngrid\ngrief\ngrit\ngrocery\ngroup\ngrow\ngrunt\nguard\nguess\nguide\nguilt\nguitar\ngun\ngym\nhabit\nhair\nhalf\nhammer\nhamster\nhand\nhappy\nharbor\nhard\nharsh\nharvest\nhat\nhave\nhawk\nhazard\nhead\nhealth\nheart\nheavy\nhedgehog\nheight\nhello\nhelmet\nhelp\nhen\nhero\nhidden\nhigh\nhill\nhint\nhip\nhire\nhistory\nhobby\nhockey\nhold\nhole\nholiday\nhollow\nhome\nhoney\nhood\nhope\nhorn\nhorror\nhorse\nhospital\nhost\nhotel\nhour\nhover\nhub\nhuge\nhuman\nhumble\nhumor\nhundred\nhungry\nhunt\nhurdle\nhurry\nhurt\nhusband\nhybrid\nice\nicon\nidea\nidentify\nidle\nignore\nill\nillegal\nillness\nimage\nimitate\nimmense\nimmune\nimpact\nimpose\nimprove\nimpulse\ninch\ninclude\nincome\nincrease\nindex\nindicate\nindoor\nindustry\ninfant\ninflict\ninform\ninhale\ninherit\ninitial\ninject\ninjury\ninmate\ninner\ninnocent\ninput\ninquiry\ninsane\ninsect\ninside\ninspire\ninstall\nintact\ninterest\ninto\ninvest\ninvite\ninvolve\niron\nisland\nisolate\nissue\nitem\nivory\njacket\njaguar\njar\njazz\njealous\njeans\njelly\njewel\njob\njoin\njoke\njourney\njoy\njudge\njuice\njump\njungle\njunior\njunk\njust\nkangaroo\nkeen\nkeep\nketchup\nkey\nkick\nkid\nkidney\nkind\nkingdom\nkiss\nkit\nkitchen\nkite\nkitten\nkiwi\nknee\nknife\nknock\nknow\nlab\nlabel\nlabor\nladder\nlady\nlake\nlamp\nlanguage\nlaptop\nlarge\nlater\nlatin\nlaugh\nlaundry\nlava\nlaw\nlawn\nlawsuit\nlayer\nlazy\nleader\nleaf\nlearn\nleave\nlecture\nleft\nleg\nlegal\nlegend\nleisure\nlemon\nlend\nlength\nlens\nleopard\nlesson\nletter\nlevel\nliar\nliberty\nlibrary\nlicense\nlife\nlift\nlight\nlike\nlimb\nlimit\nlink\nlion\nliquid\nlist\nlittle\nlive\nlizard\nload\nloan\nlobster\nlocal\nlock\nlogic\nlonely\nlong\nloop\nlottery\nloud\nlounge\nlove\nloyal\nlucky\nluggage\nlumber\nlunar\nlunch\nluxury\nlyrics\nmachine\nmad\nmagic\nmagnet\nmaid\nmail\nmain\nmajor\nmake\nmammal\nman\nmanage\nmandate\nmango\nmansion\nmanual\nmaple\nmarble\nmarch\nmargin\nmarine\nmarket\nmarriage\nmask\nmass\nmaster\nmatch\nmaterial\nmath\nmatrix\nmatter\nmaximum\nmaze\nmeadow\nmean\nmeasure\nmeat\nmechanic\nmedal\nmedia\nmelody\nmelt\nmember\nmemory\nmention\nmenu\nmercy\nmerge\nmerit\nmerry\nmesh\nmessage\nmetal\nmethod\nmiddle\nmidnight\nmilk\nmillion\nmimic\nmind\nminimum\nminor\nminute\nmiracle\nmirror\nmisery\nmiss\nmistake\nmix\nmixed\nmixture\nmobile\nmodel\nmodify\nmom\nmoment\nmonitor\nmonkey\nmonster\nmonth\nmoon\nmoral\nmore\nmorning\nmosquito\nmother\nmotion\nmotor\nmountain\nmouse\nmove\nmovie\nmuch\nmuffin\nmule\nmultiply\nmuscle\nmuseum\nmushroom\nmusic\nmust\nmutual\nmyself\nmystery\nmyth\nnaive\nname\nnapkin\nnarrow\nnasty\nnation\nnature\nnear\nneck\nneed\nnegative\nneglect\nneither\nnephew\nnerve\nnest\nnet\nnetwork\nneutral\nnever\nnews\nnext\nnice\nnight\nnoble\nnoise\nnominee\nnoodle\nnormal\nnorth\nnose\nnotable\nnote\nnothing\nnotice\nnovel\nnow\nnuclear\nnumber\nnurse\nnut\noak\nobey\nobject\noblige\nobscure\nobserve\nobtain\nobvious\noccur\nocean\noctober\nodor\noff\noffer\noffice\noften\noil\nokay\nold\nolive\nolympic\nomit\nonce\none\nonion\nonline\nonly\nopen\nopera\nopinion\noppose\noption\norange\norbit\norchard\norder\nordinary\norgan\norient\noriginal\norphan\nostrich\nother\noutdoor\nouter\noutput\noutside\noval\noven\nover\nown\nowner\noxygen\noyster\nozone\npact\npaddle\npage\npair\npalace\npalm\npanda\npanel\npanic\npanther\npaper\nparade\nparent\npark\nparrot\nparty\npass\npatch\npath\npatient\npatrol\npattern\npause\npave\npayment\npeace\npeanut\npear\npeasant\npelican\npen\npenalty\npencil\npeople\npepper\nperfect\npermit\nperson\npet\nphone\nphoto\nphrase\nphysical\npiano\npicnic\npicture\npiece\npig\npigeon\npill\npilot\npink\npioneer\npipe\npistol\npitch\npizza\nplace\nplanet\nplastic\nplate\nplay\nplease\npledge\npluck\nplug\nplunge\npoem\npoet\npoint\npolar\npole\npolice\npond\npony\npool\npopular\nportion\nposition\npossible\npost\npotato\npottery\npoverty\npowder\npower\npractice\npraise\npredict\nprefer\nprepare\npresent\npretty\nprevent\nprice\npride\nprimary\nprint\npriority\nprison\nprivate\nprize\nproblem\nprocess\nproduce\nprofit\nprogram\nproject\npromote\nproof\nproperty\nprosper\nprotect\nproud\nprovide\npublic\npudding\npull\npulp\npulse\npumpkin\npunch\npupil\npuppy\npurchase\npurity\npurpose\npurse\npush\nput\npuzzle\npyramid\nquality\nquantum\nquarter\nquestion\nquick\nquit\nquiz\nquote\nrabbit\nraccoon\nrace\nrack\nradar\nradio\nrail\nrain\nraise\nrally\nramp\nranch\nrandom\nrange\nrapid\nrare\nrate\nrather\nraven\nraw\nrazor\nready\nreal\nreason\nrebel\nrebuild\nrecall\nreceive\nrecipe\nrecord\nrecycle\nreduce\nreflect\nreform\nrefuse\nregion\nregret\nregular\nreject\nrelax\nrelease\nrelief\nrely\nremain\nremember\nremind\nremove\nrender\nrenew\nrent\nreopen\nrepair\nrepeat\nreplace\nreport\nrequire\nrescue\nresemble\nresist\nresource\nresponse\nresult\nretire\nretreat\nreturn\nreunion\nreveal\nreview\nreward\nrhythm\nrib\nribbon\nrice\nrich\nride\nridge\nrifle\nright\nrigid\nring\nriot\nripple\nrisk\nritual\nrival\nriver\nroad\nroast\nrobot\nrobust\nrocket\nromance\nroof\nrookie\nroom\nrose\nrotate\nrough\nround\nroute\nroyal\nrubber\nrude\nrug\nrule\nrun\nrunway\nrural\nsad\nsaddle\nsadness\nsafe\nsail\nsalad\nsalmon\nsalon\nsalt\nsalute\nsame\nsample\nsand\nsatisfy\nsatoshi\nsauce\nsausage\nsave\nsay\nscale\nscan\nscare\nscatter\nscene\nscheme\nschool\nscience\nscissors\nscorpion\nscout\nscrap\nscreen\nscript\nscrub\nsea\nsearch\nseason\nseat\nsecond\nsecret\nsection\nsecurity\nseed\nseek\nsegment\nselect\nsell\nseminar\nsenior\nsense\nsentence\nseries\nservice\nsession\nsettle\nsetup\nseven\nshadow\nshaft\nshallow\nshare\nshed\nshell\nsheriff\nshield\nshift\nshine\nship\nshiver\nshock\nshoe\nshoot\nshop\nshort\nshoulder\nshove\nshrimp\nshrug\nshuffle\nshy\nsibling\nsick\nside\nsiege\nsight\nsign\nsilent\nsilk\nsilly\nsilver\nsimilar\nsimple\nsince\nsing\nsiren\nsister\nsituate\nsix\nsize\nskate\nsketch\nski\nskill\nskin\nskirt\nskull\nslab\nslam\nsleep\nslender\nslice\nslide\nslight\nslim\nslogan\nslot\nslow\nslush\nsmall\nsmart\nsmile\nsmoke\nsmooth\nsnack\nsnake\nsnap\nsniff\nsnow\nsoap\nsoccer\nsocial\nsock\nsoda\nsoft\nsolar\nsoldier\nsolid\nsolution\nsolve\nsomeone\nsong\nsoon\nsorry\nsort\nsoul\nsound\nsoup\nsource\nsouth\nspace\nspare\nspatial\nspawn\nspeak\nspecial\nspeed\nspell\nspend\nsphere\nspice\nspider\nspike\nspin\nspirit\nsplit\nspoil\nsponsor\nspoon\nsport\nspot\nspray\nspread\nspring\nspy\nsquare\nsqueeze\nsquirrel\nstable\nstadium\nstaff\nstage\nstairs\nstamp\nstand\nstart\nstate\nstay\nsteak\nsteel\nstem\nstep\nstereo\nstick\nstill\nsting\nstock\nstomach\nstone\nstool\nstory\nstove\nstrategy\nstreet\nstrike\nstrong\nstruggle\nstudent\nstuff\nstumble\nstyle\nsubject\nsubmit\nsubway\nsuccess\nsuch\nsudden\nsuffer\nsugar\nsuggest\nsuit\nsummer\nsun\nsunny\nsunset\nsuper\nsupply\nsupreme\nsure\nsurface\nsurge\nsurprise\nsurround\nsurvey\nsuspect\nsustain\nswallow\nswamp\nswap\nswarm\nswear\nsweet\nswift\nswim\nswing\nswitch\nsword\nsymbol\nsymptom\nsyrup\nsystem\ntable\ntackle\ntag\ntail\ntalent\ntalk\ntank\ntape\ntarget\ntask\ntaste\ntattoo\ntaxi\nteach\nteam\ntell\nten\ntenant\ntennis\ntent\nterm\ntest\ntext\nthank\nthat\ntheme\nthen\ntheory\nthere\nthey\nthing\nthis\nthought\nthree\nthrive\nthrow\nthumb\nthunder\nticket\ntide\ntiger\ntilt\ntimber\ntime\ntiny\ntip\ntired\ntissue\ntitle\ntoast\ntobacco\ntoday\ntoddler\ntoe\ntogether\ntoilet\ntoken\ntomato\ntomorrow\ntone\ntongue\ntonight\ntool\ntooth\ntop\ntopic\ntopple\ntorch\ntornado\ntortoise\ntoss\ntotal\ntourist\ntoward\ntower\ntown\ntoy\ntrack\ntrade\ntraffic\ntragic\ntrain\ntransfer\ntrap\ntrash\ntravel\ntray\ntreat\ntree\ntrend\ntrial\ntribe\ntrick\ntrigger\ntrim\ntrip\ntrophy\ntrouble\ntruck\ntrue\ntruly\ntrumpet\ntrust\ntruth\ntry\ntube\ntuition\ntumble\ntuna\ntunnel\nturkey\nturn\nturtle\ntwelve\ntwenty\ntwice\ntwin\ntwist\ntwo\ntype\ntypical\nugly\numbrella\nunable\nunaware\nuncle\nuncover\nunder\nundo\nunfair\nunfold\nunhappy\nuniform\nunique\nunit\nuniverse\nunknown\nunlock\nuntil\nunusual\nunveil\nupdate\nupgrade\nuphold\nupon\nupper\nupset\nurban\nurge\nusage\nuse\nused\nuseful\nuseless\nusual\nutility\nvacant\nvacuum\nvague\nvalid\nvalley\nvalve\nvan\nvanish\nvapor\nvarious\nvast\nvault\nvehicle\nvelvet\nvendor\nventure\nvenue\nverb\nverify\nversion\nvery\nvessel\nveteran\nviable\nvibrant\nvicious\nvictory\nvideo\nview\nvillage\nvintage\nviolin\nvirtual\nvirus\nvisa\nvisit\nvisual\nvital\nvivid\nvocal\nvoice\nvoid\nvolcano\nvolume\nvote\nvoyage\nwage\nwagon\nwait\nwalk\nwall\nwalnut\nwant\nwarfare\nwarm\nwarrior\nwash\nwasp\nwaste\nwater\nwave\nway\nwealth\nweapon\nwear\nweasel\nweather\nweb\nwedding\nweekend\nweird\nwelcome\nwest\nwet\nwhale\nwhat\nwheat\nwheel\nwhen\nwhere\nwhip\nwhisper\nwide\nwidth\nwife\nwild\nwill\nwin\nwindow\nwine\nwing\nwink\nwinner\nwinter\nwire\nwisdom\nwise\nwish\nwitness\nwolf\nwoman\nwonder\nwood\nwool\nword\nwork\nworld\nworry\nworth\nwrap\nwreck\nwrestle\nwrist\nwrite\nwrong\nyard\nyear\nyellow\nyou\nyoung\nyouth\nzebra\nzero\nzone\nzoo`.split('\\n');\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.output = exports.exists = exports.hash = exports.bytes = exports.bool = exports.number = void 0;\nfunction number(n) {\n if (!Number.isSafeInteger(n) || n < 0)\n throw new Error(`Wrong positive integer: ${n}`);\n}\nexports.number = number;\nfunction bool(b) {\n if (typeof b !== 'boolean')\n throw new Error(`Expected boolean, not ${b}`);\n}\nexports.bool = bool;\nfunction bytes(b, ...lengths) {\n if (!(b instanceof Uint8Array))\n throw new TypeError('Expected Uint8Array');\n if (lengths.length > 0 && !lengths.includes(b.length))\n throw new TypeError(`Expected Uint8Array of length ${lengths}, not of length=${b.length}`);\n}\nexports.bytes = bytes;\nfunction hash(hash) {\n if (typeof hash !== 'function' || typeof hash.create !== 'function')\n throw new Error('Hash should be wrapped by utils.wrapConstructor');\n number(hash.outputLen);\n number(hash.blockLen);\n}\nexports.hash = hash;\nfunction exists(instance, checkFinished = true) {\n if (instance.destroyed)\n throw new Error('Hash instance has been destroyed');\n if (checkFinished && instance.finished)\n throw new Error('Hash#digest() has already been called');\n}\nexports.exists = exists;\nfunction output(out, instance) {\n bytes(out);\n const min = instance.outputLen;\n if (out.length < min) {\n throw new Error(`digestInto() expects output buffer of length at least ${min}`);\n }\n}\nexports.output = output;\nconst assert = {\n number,\n bool,\n bytes,\n hash,\n exists,\n output,\n};\nexports.default = assert;\n//# sourceMappingURL=_assert.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.crypto = void 0;\nexports.crypto = {\n node: undefined,\n web: typeof self === 'object' && 'crypto' in self ? self.crypto : undefined,\n};\n//# sourceMappingURL=cryptoBrowser.js.map","\"use strict\";\n/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.randomBytes = exports.wrapConstructorWithOpts = exports.wrapConstructor = exports.checkOpts = exports.Hash = exports.concatBytes = exports.toBytes = exports.utf8ToBytes = exports.asyncLoop = exports.nextTick = exports.hexToBytes = exports.bytesToHex = exports.isLE = exports.rotr = exports.createView = exports.u32 = exports.u8 = void 0;\n// The import here is via the package name. This is to ensure\n// that exports mapping/resolution does fall into place.\nconst crypto_1 = require(\"@noble/hashes/crypto\");\n// Cast array to different type\nconst u8 = (arr) => new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\nexports.u8 = u8;\nconst u32 = (arr) => new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\nexports.u32 = u32;\n// Cast array to view\nconst createView = (arr) => new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\nexports.createView = createView;\n// The rotate right (circular right shift) operation for uint32\nconst rotr = (word, shift) => (word << (32 - shift)) | (word >>> shift);\nexports.rotr = rotr;\nexports.isLE = new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44;\n// There is almost no big endian hardware, but js typed arrays uses platform specific endianness.\n// So, just to be sure not to corrupt anything.\nif (!exports.isLE)\n throw new Error('Non little-endian hardware is not supported');\nconst hexes = Array.from({ length: 256 }, (v, i) => i.toString(16).padStart(2, '0'));\n/**\n * @example bytesToHex(Uint8Array.from([0xde, 0xad, 0xbe, 0xef]))\n */\nfunction bytesToHex(uint8a) {\n // pre-caching improves the speed 6x\n if (!(uint8a instanceof Uint8Array))\n throw new Error('Uint8Array expected');\n let hex = '';\n for (let i = 0; i < uint8a.length; i++) {\n hex += hexes[uint8a[i]];\n }\n return hex;\n}\nexports.bytesToHex = bytesToHex;\n/**\n * @example hexToBytes('deadbeef')\n */\nfunction hexToBytes(hex) {\n if (typeof hex !== 'string') {\n throw new TypeError('hexToBytes: expected string, got ' + typeof hex);\n }\n if (hex.length % 2)\n throw new Error('hexToBytes: received invalid unpadded hex');\n const array = new Uint8Array(hex.length / 2);\n for (let i = 0; i < array.length; i++) {\n const j = i * 2;\n const hexByte = hex.slice(j, j + 2);\n const byte = Number.parseInt(hexByte, 16);\n if (Number.isNaN(byte) || byte < 0)\n throw new Error('Invalid byte sequence');\n array[i] = byte;\n }\n return array;\n}\nexports.hexToBytes = hexToBytes;\n// There is no setImmediate in browser and setTimeout is slow. However, call to async function will return Promise\n// which will be fullfiled only on next scheduler queue processing step and this is exactly what we need.\nconst nextTick = async () => { };\nexports.nextTick = nextTick;\n// Returns control to thread each 'tick' ms to avoid blocking\nasync function asyncLoop(iters, tick, cb) {\n let ts = Date.now();\n for (let i = 0; i < iters; i++) {\n cb(i);\n // Date.now() is not monotonic, so in case if clock goes backwards we return return control too\n const diff = Date.now() - ts;\n if (diff >= 0 && diff < tick)\n continue;\n await (0, exports.nextTick)();\n ts += diff;\n }\n}\nexports.asyncLoop = asyncLoop;\nfunction utf8ToBytes(str) {\n if (typeof str !== 'string') {\n throw new TypeError(`utf8ToBytes expected string, got ${typeof str}`);\n }\n return new TextEncoder().encode(str);\n}\nexports.utf8ToBytes = utf8ToBytes;\nfunction toBytes(data) {\n if (typeof data === 'string')\n data = utf8ToBytes(data);\n if (!(data instanceof Uint8Array))\n throw new TypeError(`Expected input type is Uint8Array (got ${typeof data})`);\n return data;\n}\nexports.toBytes = toBytes;\n/**\n * Concats Uint8Array-s into one; like `Buffer.concat([buf1, buf2])`\n * @example concatBytes(buf1, buf2)\n */\nfunction concatBytes(...arrays) {\n if (!arrays.every((a) => a instanceof Uint8Array))\n throw new Error('Uint8Array list expected');\n if (arrays.length === 1)\n return arrays[0];\n const length = arrays.reduce((a, arr) => a + arr.length, 0);\n const result = new Uint8Array(length);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const arr = arrays[i];\n result.set(arr, pad);\n pad += arr.length;\n }\n return result;\n}\nexports.concatBytes = concatBytes;\n// For runtime check if class implements interface\nclass Hash {\n // Safe version that clones internal state\n clone() {\n return this._cloneInto();\n }\n}\nexports.Hash = Hash;\n// Check if object doens't have custom constructor (like Uint8Array/Array)\nconst isPlainObject = (obj) => Object.prototype.toString.call(obj) === '[object Object]' && obj.constructor === Object;\nfunction checkOpts(defaults, opts) {\n if (opts !== undefined && (typeof opts !== 'object' || !isPlainObject(opts)))\n throw new TypeError('Options should be object or undefined');\n const merged = Object.assign(defaults, opts);\n return merged;\n}\nexports.checkOpts = checkOpts;\nfunction wrapConstructor(hashConstructor) {\n const hashC = (message) => hashConstructor().update(toBytes(message)).digest();\n const tmp = hashConstructor();\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = () => hashConstructor();\n return hashC;\n}\nexports.wrapConstructor = wrapConstructor;\nfunction wrapConstructorWithOpts(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\nexports.wrapConstructorWithOpts = wrapConstructorWithOpts;\n/**\n * Secure PRNG\n */\nfunction randomBytes(bytesLength = 32) {\n if (crypto_1.crypto.web) {\n return crypto_1.crypto.web.getRandomValues(new Uint8Array(bytesLength));\n }\n else if (crypto_1.crypto.node) {\n return new Uint8Array(crypto_1.crypto.node.randomBytes(bytesLength).buffer);\n }\n else {\n throw new Error(\"The environment doesn't have randomBytes function\");\n }\n}\nexports.randomBytes = randomBytes;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hmac = void 0;\nconst _assert_js_1 = require(\"./_assert.js\");\nconst utils_js_1 = require(\"./utils.js\");\n// HMAC (RFC 2104)\nclass HMAC extends utils_js_1.Hash {\n constructor(hash, _key) {\n super();\n this.finished = false;\n this.destroyed = false;\n _assert_js_1.default.hash(hash);\n const key = (0, utils_js_1.toBytes)(_key);\n this.iHash = hash.create();\n if (typeof this.iHash.update !== 'function')\n throw new TypeError('Expected instance of class which extends utils.Hash');\n this.blockLen = this.iHash.blockLen;\n this.outputLen = this.iHash.outputLen;\n const blockLen = this.blockLen;\n const pad = new Uint8Array(blockLen);\n // blockLen can be bigger than outputLen\n pad.set(key.length > blockLen ? hash.create().update(key).digest() : key);\n for (let i = 0; i < pad.length; i++)\n pad[i] ^= 0x36;\n this.iHash.update(pad);\n // By doing update (processing of first block) of outer hash here we can re-use it between multiple calls via clone\n this.oHash = hash.create();\n // Undo internal XOR && apply outer XOR\n for (let i = 0; i < pad.length; i++)\n pad[i] ^= 0x36 ^ 0x5c;\n this.oHash.update(pad);\n pad.fill(0);\n }\n update(buf) {\n _assert_js_1.default.exists(this);\n this.iHash.update(buf);\n return this;\n }\n digestInto(out) {\n _assert_js_1.default.exists(this);\n _assert_js_1.default.bytes(out, this.outputLen);\n this.finished = true;\n this.iHash.digestInto(out);\n this.oHash.update(out);\n this.oHash.digestInto(out);\n this.destroy();\n }\n digest() {\n const out = new Uint8Array(this.oHash.outputLen);\n this.digestInto(out);\n return out;\n }\n _cloneInto(to) {\n // Create new instance without calling constructor since key already in state and we don't know it.\n to || (to = Object.create(Object.getPrototypeOf(this), {}));\n const { oHash, iHash, finished, destroyed, blockLen, outputLen } = this;\n to = to;\n to.finished = finished;\n to.destroyed = destroyed;\n to.blockLen = blockLen;\n to.outputLen = outputLen;\n to.oHash = oHash._cloneInto(to.oHash);\n to.iHash = iHash._cloneInto(to.iHash);\n return to;\n }\n destroy() {\n this.destroyed = true;\n this.oHash.destroy();\n this.iHash.destroy();\n }\n}\n/**\n * HMAC: RFC2104 message authentication code.\n * @param hash - function that would be used e.g. sha256\n * @param key - message key\n * @param message - message data\n */\nconst hmac = (hash, key, message) => new HMAC(hash, key).update(message).digest();\nexports.hmac = hmac;\nexports.hmac.create = (hash, key) => new HMAC(hash, key);\n//# sourceMappingURL=hmac.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.pbkdf2Async = exports.pbkdf2 = void 0;\nconst _assert_js_1 = require(\"./_assert.js\");\nconst hmac_js_1 = require(\"./hmac.js\");\nconst utils_js_1 = require(\"./utils.js\");\n// Common prologue and epilogue for sync/async functions\nfunction pbkdf2Init(hash, _password, _salt, _opts) {\n _assert_js_1.default.hash(hash);\n const opts = (0, utils_js_1.checkOpts)({ dkLen: 32, asyncTick: 10 }, _opts);\n const { c, dkLen, asyncTick } = opts;\n _assert_js_1.default.number(c);\n _assert_js_1.default.number(dkLen);\n _assert_js_1.default.number(asyncTick);\n if (c < 1)\n throw new Error('PBKDF2: iterations (c) should be >= 1');\n const password = (0, utils_js_1.toBytes)(_password);\n const salt = (0, utils_js_1.toBytes)(_salt);\n // DK = PBKDF2(PRF, Password, Salt, c, dkLen);\n const DK = new Uint8Array(dkLen);\n // U1 = PRF(Password, Salt + INT_32_BE(i))\n const PRF = hmac_js_1.hmac.create(hash, password);\n const PRFSalt = PRF._cloneInto().update(salt);\n return { c, dkLen, asyncTick, DK, PRF, PRFSalt };\n}\nfunction pbkdf2Output(PRF, PRFSalt, DK, prfW, u) {\n PRF.destroy();\n PRFSalt.destroy();\n if (prfW)\n prfW.destroy();\n u.fill(0);\n return DK;\n}\n/**\n * PBKDF2-HMAC: RFC 2898 key derivation function\n * @param hash - hash function that would be used e.g. sha256\n * @param password - password from which a derived key is generated\n * @param salt - cryptographic salt\n * @param opts - {c, dkLen} where c is work factor and dkLen is output message size\n */\nfunction pbkdf2(hash, password, salt, opts) {\n const { c, dkLen, DK, PRF, PRFSalt } = pbkdf2Init(hash, password, salt, opts);\n let prfW; // Working copy\n const arr = new Uint8Array(4);\n const view = (0, utils_js_1.createView)(arr);\n const u = new Uint8Array(PRF.outputLen);\n // DK = T1 + T2 + ⋯ + Tdklen/hlen\n for (let ti = 1, pos = 0; pos < dkLen; ti++, pos += PRF.outputLen) {\n // Ti = F(Password, Salt, c, i)\n const Ti = DK.subarray(pos, pos + PRF.outputLen);\n view.setInt32(0, ti, false);\n // F(Password, Salt, c, i) = U1 ^ U2 ^ ⋯ ^ Uc\n // U1 = PRF(Password, Salt + INT_32_BE(i))\n (prfW = PRFSalt._cloneInto(prfW)).update(arr).digestInto(u);\n Ti.set(u.subarray(0, Ti.length));\n for (let ui = 1; ui < c; ui++) {\n // Uc = PRF(Password, Uc−1)\n PRF._cloneInto(prfW).update(u).digestInto(u);\n for (let i = 0; i < Ti.length; i++)\n Ti[i] ^= u[i];\n }\n }\n return pbkdf2Output(PRF, PRFSalt, DK, prfW, u);\n}\nexports.pbkdf2 = pbkdf2;\nasync function pbkdf2Async(hash, password, salt, opts) {\n const { c, dkLen, asyncTick, DK, PRF, PRFSalt } = pbkdf2Init(hash, password, salt, opts);\n let prfW; // Working copy\n const arr = new Uint8Array(4);\n const view = (0, utils_js_1.createView)(arr);\n const u = new Uint8Array(PRF.outputLen);\n // DK = T1 + T2 + ⋯ + Tdklen/hlen\n for (let ti = 1, pos = 0; pos < dkLen; ti++, pos += PRF.outputLen) {\n // Ti = F(Password, Salt, c, i)\n const Ti = DK.subarray(pos, pos + PRF.outputLen);\n view.setInt32(0, ti, false);\n // F(Password, Salt, c, i) = U1 ^ U2 ^ ⋯ ^ Uc\n // U1 = PRF(Password, Salt + INT_32_BE(i))\n (prfW = PRFSalt._cloneInto(prfW)).update(arr).digestInto(u);\n Ti.set(u.subarray(0, Ti.length));\n await (0, utils_js_1.asyncLoop)(c - 1, asyncTick, (i) => {\n // Uc = PRF(Password, Uc−1)\n PRF._cloneInto(prfW).update(u).digestInto(u);\n for (let i = 0; i < Ti.length; i++)\n Ti[i] ^= u[i];\n });\n }\n return pbkdf2Output(PRF, PRFSalt, DK, prfW, u);\n}\nexports.pbkdf2Async = pbkdf2Async;\n//# sourceMappingURL=pbkdf2.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SHA2 = void 0;\nconst _assert_js_1 = require(\"./_assert.js\");\nconst utils_js_1 = require(\"./utils.js\");\n// Polyfill for Safari 14\nfunction setBigUint64(view, byteOffset, value, isLE) {\n if (typeof view.setBigUint64 === 'function')\n return view.setBigUint64(byteOffset, value, isLE);\n const _32n = BigInt(32);\n const _u32_max = BigInt(0xffffffff);\n const wh = Number((value >> _32n) & _u32_max);\n const wl = Number(value & _u32_max);\n const h = isLE ? 4 : 0;\n const l = isLE ? 0 : 4;\n view.setUint32(byteOffset + h, wh, isLE);\n view.setUint32(byteOffset + l, wl, isLE);\n}\n// Base SHA2 class (RFC 6234)\nclass SHA2 extends utils_js_1.Hash {\n constructor(blockLen, outputLen, padOffset, isLE) {\n super();\n this.blockLen = blockLen;\n this.outputLen = outputLen;\n this.padOffset = padOffset;\n this.isLE = isLE;\n this.finished = false;\n this.length = 0;\n this.pos = 0;\n this.destroyed = false;\n this.buffer = new Uint8Array(blockLen);\n this.view = (0, utils_js_1.createView)(this.buffer);\n }\n update(data) {\n _assert_js_1.default.exists(this);\n const { view, buffer, blockLen } = this;\n data = (0, utils_js_1.toBytes)(data);\n const len = data.length;\n for (let pos = 0; pos < len;) {\n const take = Math.min(blockLen - this.pos, len - pos);\n // Fast path: we have at least one block in input, cast it to view and process\n if (take === blockLen) {\n const dataView = (0, utils_js_1.createView)(data);\n for (; blockLen <= len - pos; pos += blockLen)\n this.process(dataView, pos);\n continue;\n }\n buffer.set(data.subarray(pos, pos + take), this.pos);\n this.pos += take;\n pos += take;\n if (this.pos === blockLen) {\n this.process(view, 0);\n this.pos = 0;\n }\n }\n this.length += data.length;\n this.roundClean();\n return this;\n }\n digestInto(out) {\n _assert_js_1.default.exists(this);\n _assert_js_1.default.output(out, this);\n this.finished = true;\n // Padding\n // We can avoid allocation of buffer for padding completely if it\n // was previously not allocated here. But it won't change performance.\n const { buffer, view, blockLen, isLE } = this;\n let { pos } = this;\n // append the bit '1' to the message\n buffer[pos++] = 0b10000000;\n this.buffer.subarray(pos).fill(0);\n // we have less than padOffset left in buffer, so we cannot put length in current block, need process it and pad again\n if (this.padOffset > blockLen - pos) {\n this.process(view, 0);\n pos = 0;\n }\n // Pad until full block byte with zeros\n for (let i = pos; i < blockLen; i++)\n buffer[i] = 0;\n // Note: sha512 requires length to be 128bit integer, but length in JS will overflow before that\n // You need to write around 2 exabytes (u64_max / 8 / (1024**6)) for this to happen.\n // So we just write lowest 64 bits of that value.\n setBigUint64(view, blockLen - 8, BigInt(this.length * 8), isLE);\n this.process(view, 0);\n const oview = (0, utils_js_1.createView)(out);\n const len = this.outputLen;\n // NOTE: we do division by 4 later, which should be fused in single op with modulo by JIT\n if (len % 4)\n throw new Error('_sha2: outputLen should be aligned to 32bit');\n const outLen = len / 4;\n const state = this.get();\n if (outLen > state.length)\n throw new Error('_sha2: outputLen bigger than state');\n for (let i = 0; i < outLen; i++)\n oview.setUint32(4 * i, state[i], isLE);\n }\n digest() {\n const { buffer, outputLen } = this;\n this.digestInto(buffer);\n const res = buffer.slice(0, outputLen);\n this.destroy();\n return res;\n }\n _cloneInto(to) {\n to || (to = new this.constructor());\n to.set(...this.get());\n const { blockLen, buffer, length, finished, destroyed, pos } = this;\n to.length = length;\n to.pos = pos;\n to.finished = finished;\n to.destroyed = destroyed;\n if (length % blockLen)\n to.buffer.set(buffer);\n return to;\n }\n}\nexports.SHA2 = SHA2;\n//# sourceMappingURL=_sha2.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sha224 = exports.sha256 = void 0;\nconst _sha2_js_1 = require(\"./_sha2.js\");\nconst utils_js_1 = require(\"./utils.js\");\n// Choice: a ? b : c\nconst Chi = (a, b, c) => (a & b) ^ (~a & c);\n// Majority function, true if any two inpust is true\nconst Maj = (a, b, c) => (a & b) ^ (a & c) ^ (b & c);\n// Round constants:\n// first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311)\n// prettier-ignore\nconst SHA256_K = new Uint32Array([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n]);\n// Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):\n// prettier-ignore\nconst IV = new Uint32Array([\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n]);\n// Temporary buffer, not used to store anything between runs\n// Named this way because it matches specification.\nconst SHA256_W = new Uint32Array(64);\nclass SHA256 extends _sha2_js_1.SHA2 {\n constructor() {\n super(64, 32, 8, false);\n // We cannot use array here since array allows indexing by variable\n // which means optimizer/compiler cannot use registers.\n this.A = IV[0] | 0;\n this.B = IV[1] | 0;\n this.C = IV[2] | 0;\n this.D = IV[3] | 0;\n this.E = IV[4] | 0;\n this.F = IV[5] | 0;\n this.G = IV[6] | 0;\n this.H = IV[7] | 0;\n }\n get() {\n const { A, B, C, D, E, F, G, H } = this;\n return [A, B, C, D, E, F, G, H];\n }\n // prettier-ignore\n set(A, B, C, D, E, F, G, H) {\n this.A = A | 0;\n this.B = B | 0;\n this.C = C | 0;\n this.D = D | 0;\n this.E = E | 0;\n this.F = F | 0;\n this.G = G | 0;\n this.H = H | 0;\n }\n process(view, offset) {\n // Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4)\n SHA256_W[i] = view.getUint32(offset, false);\n for (let i = 16; i < 64; i++) {\n const W15 = SHA256_W[i - 15];\n const W2 = SHA256_W[i - 2];\n const s0 = (0, utils_js_1.rotr)(W15, 7) ^ (0, utils_js_1.rotr)(W15, 18) ^ (W15 >>> 3);\n const s1 = (0, utils_js_1.rotr)(W2, 17) ^ (0, utils_js_1.rotr)(W2, 19) ^ (W2 >>> 10);\n SHA256_W[i] = (s1 + SHA256_W[i - 7] + s0 + SHA256_W[i - 16]) | 0;\n }\n // Compression function main loop, 64 rounds\n let { A, B, C, D, E, F, G, H } = this;\n for (let i = 0; i < 64; i++) {\n const sigma1 = (0, utils_js_1.rotr)(E, 6) ^ (0, utils_js_1.rotr)(E, 11) ^ (0, utils_js_1.rotr)(E, 25);\n const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const sigma0 = (0, utils_js_1.rotr)(A, 2) ^ (0, utils_js_1.rotr)(A, 13) ^ (0, utils_js_1.rotr)(A, 22);\n const T2 = (sigma0 + Maj(A, B, C)) | 0;\n H = G;\n G = F;\n F = E;\n E = (D + T1) | 0;\n D = C;\n C = B;\n B = A;\n A = (T1 + T2) | 0;\n }\n // Add the compressed chunk to the current hash value\n A = (A + this.A) | 0;\n B = (B + this.B) | 0;\n C = (C + this.C) | 0;\n D = (D + this.D) | 0;\n E = (E + this.E) | 0;\n F = (F + this.F) | 0;\n G = (G + this.G) | 0;\n H = (H + this.H) | 0;\n this.set(A, B, C, D, E, F, G, H);\n }\n roundClean() {\n SHA256_W.fill(0);\n }\n destroy() {\n this.set(0, 0, 0, 0, 0, 0, 0, 0);\n this.buffer.fill(0);\n }\n}\n// Constants from https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf\nclass SHA224 extends SHA256 {\n constructor() {\n super();\n this.A = 0xc1059ed8 | 0;\n this.B = 0x367cd507 | 0;\n this.C = 0x3070dd17 | 0;\n this.D = 0xf70e5939 | 0;\n this.E = 0xffc00b31 | 0;\n this.F = 0x68581511 | 0;\n this.G = 0x64f98fa7 | 0;\n this.H = 0xbefa4fa4 | 0;\n this.outputLen = 28;\n }\n}\n/**\n * SHA2-256 hash function\n * @param message - data that would be hashed\n */\nexports.sha256 = (0, utils_js_1.wrapConstructor)(() => new SHA256());\nexports.sha224 = (0, utils_js_1.wrapConstructor)(() => new SHA224());\n//# sourceMappingURL=sha256.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.add = exports.toBig = exports.split = exports.fromBig = void 0;\nconst U32_MASK64 = BigInt(2 ** 32 - 1);\nconst _32n = BigInt(32);\n// We are not using BigUint64Array, because they are extremely slow as per 2022\nfunction fromBig(n, le = false) {\n if (le)\n return { h: Number(n & U32_MASK64), l: Number((n >> _32n) & U32_MASK64) };\n return { h: Number((n >> _32n) & U32_MASK64) | 0, l: Number(n & U32_MASK64) | 0 };\n}\nexports.fromBig = fromBig;\nfunction split(lst, le = false) {\n let Ah = new Uint32Array(lst.length);\n let Al = new Uint32Array(lst.length);\n for (let i = 0; i < lst.length; i++) {\n const { h, l } = fromBig(lst[i], le);\n [Ah[i], Al[i]] = [h, l];\n }\n return [Ah, Al];\n}\nexports.split = split;\nconst toBig = (h, l) => (BigInt(h >>> 0) << _32n) | BigInt(l >>> 0);\nexports.toBig = toBig;\n// for Shift in [0, 32)\nconst shrSH = (h, l, s) => h >>> s;\nconst shrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in [1, 32)\nconst rotrSH = (h, l, s) => (h >>> s) | (l << (32 - s));\nconst rotrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotrBH = (h, l, s) => (h << (64 - s)) | (l >>> (s - 32));\nconst rotrBL = (h, l, s) => (h >>> (s - 32)) | (l << (64 - s));\n// Right rotate for shift===32 (just swaps l&h)\nconst rotr32H = (h, l) => l;\nconst rotr32L = (h, l) => h;\n// Left rotate for Shift in [1, 32)\nconst rotlSH = (h, l, s) => (h << s) | (l >>> (32 - s));\nconst rotlSL = (h, l, s) => (l << s) | (h >>> (32 - s));\n// Left rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotlBH = (h, l, s) => (l << (s - 32)) | (h >>> (64 - s));\nconst rotlBL = (h, l, s) => (h << (s - 32)) | (l >>> (64 - s));\n// JS uses 32-bit signed integers for bitwise operations which means we cannot\n// simple take carry out of low bit sum by shift, we need to use division.\n// Removing \"export\" has 5% perf penalty -_-\nfunction add(Ah, Al, Bh, Bl) {\n const l = (Al >>> 0) + (Bl >>> 0);\n return { h: (Ah + Bh + ((l / 2 ** 32) | 0)) | 0, l: l | 0 };\n}\nexports.add = add;\n// Addition with more than 2 elements\nconst add3L = (Al, Bl, Cl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0);\nconst add3H = (low, Ah, Bh, Ch) => (Ah + Bh + Ch + ((low / 2 ** 32) | 0)) | 0;\nconst add4L = (Al, Bl, Cl, Dl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0);\nconst add4H = (low, Ah, Bh, Ch, Dh) => (Ah + Bh + Ch + Dh + ((low / 2 ** 32) | 0)) | 0;\nconst add5L = (Al, Bl, Cl, Dl, El) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0) + (El >>> 0);\nconst add5H = (low, Ah, Bh, Ch, Dh, Eh) => (Ah + Bh + Ch + Dh + Eh + ((low / 2 ** 32) | 0)) | 0;\n// prettier-ignore\nconst u64 = {\n fromBig, split, toBig: exports.toBig,\n shrSH, shrSL,\n rotrSH, rotrSL, rotrBH, rotrBL,\n rotr32H, rotr32L,\n rotlSH, rotlSL, rotlBH, rotlBL,\n add, add3L, add3H, add4L, add4H, add5H, add5L,\n};\nexports.default = u64;\n//# sourceMappingURL=_u64.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sha384 = exports.sha512_256 = exports.sha512_224 = exports.sha512 = exports.SHA512 = void 0;\nconst _sha2_js_1 = require(\"./_sha2.js\");\nconst _u64_js_1 = require(\"./_u64.js\");\nconst utils_js_1 = require(\"./utils.js\");\n// Round contants (first 32 bits of the fractional parts of the cube roots of the first 80 primes 2..409):\n// prettier-ignore\nconst [SHA512_Kh, SHA512_Kl] = _u64_js_1.default.split([\n '0x428a2f98d728ae22', '0x7137449123ef65cd', '0xb5c0fbcfec4d3b2f', '0xe9b5dba58189dbbc',\n '0x3956c25bf348b538', '0x59f111f1b605d019', '0x923f82a4af194f9b', '0xab1c5ed5da6d8118',\n '0xd807aa98a3030242', '0x12835b0145706fbe', '0x243185be4ee4b28c', '0x550c7dc3d5ffb4e2',\n '0x72be5d74f27b896f', '0x80deb1fe3b1696b1', '0x9bdc06a725c71235', '0xc19bf174cf692694',\n '0xe49b69c19ef14ad2', '0xefbe4786384f25e3', '0x0fc19dc68b8cd5b5', '0x240ca1cc77ac9c65',\n '0x2de92c6f592b0275', '0x4a7484aa6ea6e483', '0x5cb0a9dcbd41fbd4', '0x76f988da831153b5',\n '0x983e5152ee66dfab', '0xa831c66d2db43210', '0xb00327c898fb213f', '0xbf597fc7beef0ee4',\n '0xc6e00bf33da88fc2', '0xd5a79147930aa725', '0x06ca6351e003826f', '0x142929670a0e6e70',\n '0x27b70a8546d22ffc', '0x2e1b21385c26c926', '0x4d2c6dfc5ac42aed', '0x53380d139d95b3df',\n '0x650a73548baf63de', '0x766a0abb3c77b2a8', '0x81c2c92e47edaee6', '0x92722c851482353b',\n '0xa2bfe8a14cf10364', '0xa81a664bbc423001', '0xc24b8b70d0f89791', '0xc76c51a30654be30',\n '0xd192e819d6ef5218', '0xd69906245565a910', '0xf40e35855771202a', '0x106aa07032bbd1b8',\n '0x19a4c116b8d2d0c8', '0x1e376c085141ab53', '0x2748774cdf8eeb99', '0x34b0bcb5e19b48a8',\n '0x391c0cb3c5c95a63', '0x4ed8aa4ae3418acb', '0x5b9cca4f7763e373', '0x682e6ff3d6b2b8a3',\n '0x748f82ee5defb2fc', '0x78a5636f43172f60', '0x84c87814a1f0ab72', '0x8cc702081a6439ec',\n '0x90befffa23631e28', '0xa4506cebde82bde9', '0xbef9a3f7b2c67915', '0xc67178f2e372532b',\n '0xca273eceea26619c', '0xd186b8c721c0c207', '0xeada7dd6cde0eb1e', '0xf57d4f7fee6ed178',\n '0x06f067aa72176fba', '0x0a637dc5a2c898a6', '0x113f9804bef90dae', '0x1b710b35131c471b',\n '0x28db77f523047d84', '0x32caab7b40c72493', '0x3c9ebe0a15c9bebc', '0x431d67c49c100d4c',\n '0x4cc5d4becb3e42b6', '0x597f299cfc657e2a', '0x5fcb6fab3ad6faec', '0x6c44198c4a475817'\n].map(n => BigInt(n)));\n// Temporary buffer, not used to store anything between runs\nconst SHA512_W_H = new Uint32Array(80);\nconst SHA512_W_L = new Uint32Array(80);\nclass SHA512 extends _sha2_js_1.SHA2 {\n constructor() {\n super(128, 64, 16, false);\n // We cannot use array here since array allows indexing by variable which means optimizer/compiler cannot use registers.\n // Also looks cleaner and easier to verify with spec.\n // Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = 0x6a09e667 | 0;\n this.Al = 0xf3bcc908 | 0;\n this.Bh = 0xbb67ae85 | 0;\n this.Bl = 0x84caa73b | 0;\n this.Ch = 0x3c6ef372 | 0;\n this.Cl = 0xfe94f82b | 0;\n this.Dh = 0xa54ff53a | 0;\n this.Dl = 0x5f1d36f1 | 0;\n this.Eh = 0x510e527f | 0;\n this.El = 0xade682d1 | 0;\n this.Fh = 0x9b05688c | 0;\n this.Fl = 0x2b3e6c1f | 0;\n this.Gh = 0x1f83d9ab | 0;\n this.Gl = 0xfb41bd6b | 0;\n this.Hh = 0x5be0cd19 | 0;\n this.Hl = 0x137e2179 | 0;\n }\n // prettier-ignore\n get() {\n const { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n return [Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl];\n }\n // prettier-ignore\n set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl) {\n this.Ah = Ah | 0;\n this.Al = Al | 0;\n this.Bh = Bh | 0;\n this.Bl = Bl | 0;\n this.Ch = Ch | 0;\n this.Cl = Cl | 0;\n this.Dh = Dh | 0;\n this.Dl = Dl | 0;\n this.Eh = Eh | 0;\n this.El = El | 0;\n this.Fh = Fh | 0;\n this.Fl = Fl | 0;\n this.Gh = Gh | 0;\n this.Gl = Gl | 0;\n this.Hh = Hh | 0;\n this.Hl = Hl | 0;\n }\n process(view, offset) {\n // Extend the first 16 words into the remaining 64 words w[16..79] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4) {\n SHA512_W_H[i] = view.getUint32(offset);\n SHA512_W_L[i] = view.getUint32((offset += 4));\n }\n for (let i = 16; i < 80; i++) {\n // s0 := (w[i-15] rightrotate 1) xor (w[i-15] rightrotate 8) xor (w[i-15] rightshift 7)\n const W15h = SHA512_W_H[i - 15] | 0;\n const W15l = SHA512_W_L[i - 15] | 0;\n const s0h = _u64_js_1.default.rotrSH(W15h, W15l, 1) ^ _u64_js_1.default.rotrSH(W15h, W15l, 8) ^ _u64_js_1.default.shrSH(W15h, W15l, 7);\n const s0l = _u64_js_1.default.rotrSL(W15h, W15l, 1) ^ _u64_js_1.default.rotrSL(W15h, W15l, 8) ^ _u64_js_1.default.shrSL(W15h, W15l, 7);\n // s1 := (w[i-2] rightrotate 19) xor (w[i-2] rightrotate 61) xor (w[i-2] rightshift 6)\n const W2h = SHA512_W_H[i - 2] | 0;\n const W2l = SHA512_W_L[i - 2] | 0;\n const s1h = _u64_js_1.default.rotrSH(W2h, W2l, 19) ^ _u64_js_1.default.rotrBH(W2h, W2l, 61) ^ _u64_js_1.default.shrSH(W2h, W2l, 6);\n const s1l = _u64_js_1.default.rotrSL(W2h, W2l, 19) ^ _u64_js_1.default.rotrBL(W2h, W2l, 61) ^ _u64_js_1.default.shrSL(W2h, W2l, 6);\n // SHA256_W[i] = s0 + s1 + SHA256_W[i - 7] + SHA256_W[i - 16];\n const SUMl = _u64_js_1.default.add4L(s0l, s1l, SHA512_W_L[i - 7], SHA512_W_L[i - 16]);\n const SUMh = _u64_js_1.default.add4H(SUMl, s0h, s1h, SHA512_W_H[i - 7], SHA512_W_H[i - 16]);\n SHA512_W_H[i] = SUMh | 0;\n SHA512_W_L[i] = SUMl | 0;\n }\n let { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n // Compression function main loop, 80 rounds\n for (let i = 0; i < 80; i++) {\n // S1 := (e rightrotate 14) xor (e rightrotate 18) xor (e rightrotate 41)\n const sigma1h = _u64_js_1.default.rotrSH(Eh, El, 14) ^ _u64_js_1.default.rotrSH(Eh, El, 18) ^ _u64_js_1.default.rotrBH(Eh, El, 41);\n const sigma1l = _u64_js_1.default.rotrSL(Eh, El, 14) ^ _u64_js_1.default.rotrSL(Eh, El, 18) ^ _u64_js_1.default.rotrBL(Eh, El, 41);\n //const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const CHIh = (Eh & Fh) ^ (~Eh & Gh);\n const CHIl = (El & Fl) ^ (~El & Gl);\n // T1 = H + sigma1 + Chi(E, F, G) + SHA512_K[i] + SHA512_W[i]\n // prettier-ignore\n const T1ll = _u64_js_1.default.add5L(Hl, sigma1l, CHIl, SHA512_Kl[i], SHA512_W_L[i]);\n const T1h = _u64_js_1.default.add5H(T1ll, Hh, sigma1h, CHIh, SHA512_Kh[i], SHA512_W_H[i]);\n const T1l = T1ll | 0;\n // S0 := (a rightrotate 28) xor (a rightrotate 34) xor (a rightrotate 39)\n const sigma0h = _u64_js_1.default.rotrSH(Ah, Al, 28) ^ _u64_js_1.default.rotrBH(Ah, Al, 34) ^ _u64_js_1.default.rotrBH(Ah, Al, 39);\n const sigma0l = _u64_js_1.default.rotrSL(Ah, Al, 28) ^ _u64_js_1.default.rotrBL(Ah, Al, 34) ^ _u64_js_1.default.rotrBL(Ah, Al, 39);\n const MAJh = (Ah & Bh) ^ (Ah & Ch) ^ (Bh & Ch);\n const MAJl = (Al & Bl) ^ (Al & Cl) ^ (Bl & Cl);\n Hh = Gh | 0;\n Hl = Gl | 0;\n Gh = Fh | 0;\n Gl = Fl | 0;\n Fh = Eh | 0;\n Fl = El | 0;\n ({ h: Eh, l: El } = _u64_js_1.default.add(Dh | 0, Dl | 0, T1h | 0, T1l | 0));\n Dh = Ch | 0;\n Dl = Cl | 0;\n Ch = Bh | 0;\n Cl = Bl | 0;\n Bh = Ah | 0;\n Bl = Al | 0;\n const All = _u64_js_1.default.add3L(T1l, sigma0l, MAJl);\n Ah = _u64_js_1.default.add3H(All, T1h, sigma0h, MAJh);\n Al = All | 0;\n }\n // Add the compressed chunk to the current hash value\n ({ h: Ah, l: Al } = _u64_js_1.default.add(this.Ah | 0, this.Al | 0, Ah | 0, Al | 0));\n ({ h: Bh, l: Bl } = _u64_js_1.default.add(this.Bh | 0, this.Bl | 0, Bh | 0, Bl | 0));\n ({ h: Ch, l: Cl } = _u64_js_1.default.add(this.Ch | 0, this.Cl | 0, Ch | 0, Cl | 0));\n ({ h: Dh, l: Dl } = _u64_js_1.default.add(this.Dh | 0, this.Dl | 0, Dh | 0, Dl | 0));\n ({ h: Eh, l: El } = _u64_js_1.default.add(this.Eh | 0, this.El | 0, Eh | 0, El | 0));\n ({ h: Fh, l: Fl } = _u64_js_1.default.add(this.Fh | 0, this.Fl | 0, Fh | 0, Fl | 0));\n ({ h: Gh, l: Gl } = _u64_js_1.default.add(this.Gh | 0, this.Gl | 0, Gh | 0, Gl | 0));\n ({ h: Hh, l: Hl } = _u64_js_1.default.add(this.Hh | 0, this.Hl | 0, Hh | 0, Hl | 0));\n this.set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl);\n }\n roundClean() {\n SHA512_W_H.fill(0);\n SHA512_W_L.fill(0);\n }\n destroy() {\n this.buffer.fill(0);\n this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);\n }\n}\nexports.SHA512 = SHA512;\nclass SHA512_224 extends SHA512 {\n constructor() {\n super();\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = 0x8c3d37c8 | 0;\n this.Al = 0x19544da2 | 0;\n this.Bh = 0x73e19966 | 0;\n this.Bl = 0x89dcd4d6 | 0;\n this.Ch = 0x1dfab7ae | 0;\n this.Cl = 0x32ff9c82 | 0;\n this.Dh = 0x679dd514 | 0;\n this.Dl = 0x582f9fcf | 0;\n this.Eh = 0x0f6d2b69 | 0;\n this.El = 0x7bd44da8 | 0;\n this.Fh = 0x77e36f73 | 0;\n this.Fl = 0x04c48942 | 0;\n this.Gh = 0x3f9d85a8 | 0;\n this.Gl = 0x6a1d36c8 | 0;\n this.Hh = 0x1112e6ad | 0;\n this.Hl = 0x91d692a1 | 0;\n this.outputLen = 28;\n }\n}\nclass SHA512_256 extends SHA512 {\n constructor() {\n super();\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = 0x22312194 | 0;\n this.Al = 0xfc2bf72c | 0;\n this.Bh = 0x9f555fa3 | 0;\n this.Bl = 0xc84c64c2 | 0;\n this.Ch = 0x2393b86b | 0;\n this.Cl = 0x6f53b151 | 0;\n this.Dh = 0x96387719 | 0;\n this.Dl = 0x5940eabd | 0;\n this.Eh = 0x96283ee2 | 0;\n this.El = 0xa88effe3 | 0;\n this.Fh = 0xbe5e1e25 | 0;\n this.Fl = 0x53863992 | 0;\n this.Gh = 0x2b0199fc | 0;\n this.Gl = 0x2c85b8aa | 0;\n this.Hh = 0x0eb72ddc | 0;\n this.Hl = 0x81c52ca2 | 0;\n this.outputLen = 32;\n }\n}\nclass SHA384 extends SHA512 {\n constructor() {\n super();\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = 0xcbbb9d5d | 0;\n this.Al = 0xc1059ed8 | 0;\n this.Bh = 0x629a292a | 0;\n this.Bl = 0x367cd507 | 0;\n this.Ch = 0x9159015a | 0;\n this.Cl = 0x3070dd17 | 0;\n this.Dh = 0x152fecd8 | 0;\n this.Dl = 0xf70e5939 | 0;\n this.Eh = 0x67332667 | 0;\n this.El = 0xffc00b31 | 0;\n this.Fh = 0x8eb44a87 | 0;\n this.Fl = 0x68581511 | 0;\n this.Gh = 0xdb0c2e0d | 0;\n this.Gl = 0x64f98fa7 | 0;\n this.Hh = 0x47b5481d | 0;\n this.Hl = 0xbefa4fa4 | 0;\n this.outputLen = 48;\n }\n}\nexports.sha512 = (0, utils_js_1.wrapConstructor)(() => new SHA512());\nexports.sha512_224 = (0, utils_js_1.wrapConstructor)(() => new SHA512_224());\nexports.sha512_256 = (0, utils_js_1.wrapConstructor)(() => new SHA512_256());\nexports.sha384 = (0, utils_js_1.wrapConstructor)(() => new SHA384());\n//# sourceMappingURL=sha512.js.map","\"use strict\";\n/*! scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bytes = exports.stringToBytes = exports.str = exports.bytesToString = exports.hex = exports.utf8 = exports.bech32m = exports.bech32 = exports.base58check = exports.base58xmr = exports.base58xrp = exports.base58flickr = exports.base58 = exports.base64url = exports.base64 = exports.base32crockford = exports.base32hex = exports.base32 = exports.base16 = exports.utils = exports.assertNumber = void 0;\nfunction assertNumber(n) {\n if (!Number.isSafeInteger(n))\n throw new Error(`Wrong integer: ${n}`);\n}\nexports.assertNumber = assertNumber;\nfunction chain(...args) {\n const wrap = (a, b) => (c) => a(b(c));\n const encode = Array.from(args)\n .reverse()\n .reduce((acc, i) => (acc ? wrap(acc, i.encode) : i.encode), undefined);\n const decode = args.reduce((acc, i) => (acc ? wrap(acc, i.decode) : i.decode), undefined);\n return { encode, decode };\n}\nfunction alphabet(alphabet) {\n return {\n encode: (digits) => {\n if (!Array.isArray(digits) || (digits.length && typeof digits[0] !== 'number'))\n throw new Error('alphabet.encode input should be an array of numbers');\n return digits.map((i) => {\n assertNumber(i);\n if (i < 0 || i >= alphabet.length)\n throw new Error(`Digit index outside alphabet: ${i} (alphabet: ${alphabet.length})`);\n return alphabet[i];\n });\n },\n decode: (input) => {\n if (!Array.isArray(input) || (input.length && typeof input[0] !== 'string'))\n throw new Error('alphabet.decode input should be array of strings');\n return input.map((letter) => {\n if (typeof letter !== 'string')\n throw new Error(`alphabet.decode: not string element=${letter}`);\n const index = alphabet.indexOf(letter);\n if (index === -1)\n throw new Error(`Unknown letter: \"${letter}\". Allowed: ${alphabet}`);\n return index;\n });\n },\n };\n}\nfunction join(separator = '') {\n if (typeof separator !== 'string')\n throw new Error('join separator should be string');\n return {\n encode: (from) => {\n if (!Array.isArray(from) || (from.length && typeof from[0] !== 'string'))\n throw new Error('join.encode input should be array of strings');\n for (let i of from)\n if (typeof i !== 'string')\n throw new Error(`join.encode: non-string input=${i}`);\n return from.join(separator);\n },\n decode: (to) => {\n if (typeof to !== 'string')\n throw new Error('join.decode input should be string');\n return to.split(separator);\n },\n };\n}\nfunction padding(bits, chr = '=') {\n assertNumber(bits);\n if (typeof chr !== 'string')\n throw new Error('padding chr should be string');\n return {\n encode(data) {\n if (!Array.isArray(data) || (data.length && typeof data[0] !== 'string'))\n throw new Error('padding.encode input should be array of strings');\n for (let i of data)\n if (typeof i !== 'string')\n throw new Error(`padding.encode: non-string input=${i}`);\n while ((data.length * bits) % 8)\n data.push(chr);\n return data;\n },\n decode(input) {\n if (!Array.isArray(input) || (input.length && typeof input[0] !== 'string'))\n throw new Error('padding.encode input should be array of strings');\n for (let i of input)\n if (typeof i !== 'string')\n throw new Error(`padding.decode: non-string input=${i}`);\n let end = input.length;\n if ((end * bits) % 8)\n throw new Error('Invalid padding: string should have whole number of bytes');\n for (; end > 0 && input[end - 1] === chr; end--) {\n if (!(((end - 1) * bits) % 8))\n throw new Error('Invalid padding: string has too much padding');\n }\n return input.slice(0, end);\n },\n };\n}\nfunction normalize(fn) {\n if (typeof fn !== 'function')\n throw new Error('normalize fn should be function');\n return { encode: (from) => from, decode: (to) => fn(to) };\n}\nfunction convertRadix(data, from, to) {\n if (from < 2)\n throw new Error(`convertRadix: wrong from=${from}, base cannot be less than 2`);\n if (to < 2)\n throw new Error(`convertRadix: wrong to=${to}, base cannot be less than 2`);\n if (!Array.isArray(data))\n throw new Error('convertRadix: data should be array');\n if (!data.length)\n return [];\n let pos = 0;\n const res = [];\n const digits = Array.from(data);\n digits.forEach((d) => {\n assertNumber(d);\n if (d < 0 || d >= from)\n throw new Error(`Wrong integer: ${d}`);\n });\n while (true) {\n let carry = 0;\n let done = true;\n for (let i = pos; i < digits.length; i++) {\n const digit = digits[i];\n const digitBase = from * carry + digit;\n if (!Number.isSafeInteger(digitBase) ||\n (from * carry) / from !== carry ||\n digitBase - digit !== from * carry) {\n throw new Error('convertRadix: carry overflow');\n }\n carry = digitBase % to;\n digits[i] = Math.floor(digitBase / to);\n if (!Number.isSafeInteger(digits[i]) || digits[i] * to + carry !== digitBase)\n throw new Error('convertRadix: carry overflow');\n if (!done)\n continue;\n else if (!digits[i])\n pos = i;\n else\n done = false;\n }\n res.push(carry);\n if (done)\n break;\n }\n for (let i = 0; i < data.length - 1 && data[i] === 0; i++)\n res.push(0);\n return res.reverse();\n}\nconst gcd = (a, b) => (!b ? a : gcd(b, a % b));\nconst radix2carry = (from, to) => from + (to - gcd(from, to));\nfunction convertRadix2(data, from, to, padding) {\n if (!Array.isArray(data))\n throw new Error('convertRadix2: data should be array');\n if (from <= 0 || from > 32)\n throw new Error(`convertRadix2: wrong from=${from}`);\n if (to <= 0 || to > 32)\n throw new Error(`convertRadix2: wrong to=${to}`);\n if (radix2carry(from, to) > 32) {\n throw new Error(`convertRadix2: carry overflow from=${from} to=${to} carryBits=${radix2carry(from, to)}`);\n }\n let carry = 0;\n let pos = 0;\n const mask = 2 ** to - 1;\n const res = [];\n for (const n of data) {\n assertNumber(n);\n if (n >= 2 ** from)\n throw new Error(`convertRadix2: invalid data word=${n} from=${from}`);\n carry = (carry << from) | n;\n if (pos + from > 32)\n throw new Error(`convertRadix2: carry overflow pos=${pos} from=${from}`);\n pos += from;\n for (; pos >= to; pos -= to)\n res.push(((carry >> (pos - to)) & mask) >>> 0);\n carry &= 2 ** pos - 1;\n }\n carry = (carry << (to - pos)) & mask;\n if (!padding && pos >= from)\n throw new Error('Excess padding');\n if (!padding && carry)\n throw new Error(`Non-zero padding: ${carry}`);\n if (padding && pos > 0)\n res.push(carry >>> 0);\n return res;\n}\nfunction radix(num) {\n assertNumber(num);\n return {\n encode: (bytes) => {\n if (!(bytes instanceof Uint8Array))\n throw new Error('radix.encode input should be Uint8Array');\n return convertRadix(Array.from(bytes), 2 ** 8, num);\n },\n decode: (digits) => {\n if (!Array.isArray(digits) || (digits.length && typeof digits[0] !== 'number'))\n throw new Error('radix.decode input should be array of strings');\n return Uint8Array.from(convertRadix(digits, num, 2 ** 8));\n },\n };\n}\nfunction radix2(bits, revPadding = false) {\n assertNumber(bits);\n if (bits <= 0 || bits > 32)\n throw new Error('radix2: bits should be in (0..32]');\n if (radix2carry(8, bits) > 32 || radix2carry(bits, 8) > 32)\n throw new Error('radix2: carry overflow');\n return {\n encode: (bytes) => {\n if (!(bytes instanceof Uint8Array))\n throw new Error('radix2.encode input should be Uint8Array');\n return convertRadix2(Array.from(bytes), 8, bits, !revPadding);\n },\n decode: (digits) => {\n if (!Array.isArray(digits) || (digits.length && typeof digits[0] !== 'number'))\n throw new Error('radix2.decode input should be array of strings');\n return Uint8Array.from(convertRadix2(digits, bits, 8, revPadding));\n },\n };\n}\nfunction unsafeWrapper(fn) {\n if (typeof fn !== 'function')\n throw new Error('unsafeWrapper fn should be function');\n return function (...args) {\n try {\n return fn.apply(null, args);\n }\n catch (e) { }\n };\n}\nfunction checksum(len, fn) {\n assertNumber(len);\n if (typeof fn !== 'function')\n throw new Error('checksum fn should be function');\n return {\n encode(data) {\n if (!(data instanceof Uint8Array))\n throw new Error('checksum.encode: input should be Uint8Array');\n const checksum = fn(data).slice(0, len);\n const res = new Uint8Array(data.length + len);\n res.set(data);\n res.set(checksum, data.length);\n return res;\n },\n decode(data) {\n if (!(data instanceof Uint8Array))\n throw new Error('checksum.decode: input should be Uint8Array');\n const payload = data.slice(0, -len);\n const newChecksum = fn(payload).slice(0, len);\n const oldChecksum = data.slice(-len);\n for (let i = 0; i < len; i++)\n if (newChecksum[i] !== oldChecksum[i])\n throw new Error('Invalid checksum');\n return payload;\n },\n };\n}\nexports.utils = { alphabet, chain, checksum, radix, radix2, join, padding };\nexports.base16 = chain(radix2(4), alphabet('0123456789ABCDEF'), join(''));\nexports.base32 = chain(radix2(5), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZ234567'), padding(5), join(''));\nexports.base32hex = chain(radix2(5), alphabet('0123456789ABCDEFGHIJKLMNOPQRSTUV'), padding(5), join(''));\nexports.base32crockford = chain(radix2(5), alphabet('0123456789ABCDEFGHJKMNPQRSTVWXYZ'), join(''), normalize((s) => s.toUpperCase().replace(/O/g, '0').replace(/[IL]/g, '1')));\nexports.base64 = chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'), padding(6), join(''));\nexports.base64url = chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_'), padding(6), join(''));\nconst genBase58 = (abc) => chain(radix(58), alphabet(abc), join(''));\nexports.base58 = genBase58('123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz');\nexports.base58flickr = genBase58('123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ');\nexports.base58xrp = genBase58('rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz');\nconst XMR_BLOCK_LEN = [0, 2, 3, 5, 6, 7, 9, 10, 11];\nexports.base58xmr = {\n encode(data) {\n let res = '';\n for (let i = 0; i < data.length; i += 8) {\n const block = data.subarray(i, i + 8);\n res += exports.base58.encode(block).padStart(XMR_BLOCK_LEN[block.length], '1');\n }\n return res;\n },\n decode(str) {\n let res = [];\n for (let i = 0; i < str.length; i += 11) {\n const slice = str.slice(i, i + 11);\n const blockLen = XMR_BLOCK_LEN.indexOf(slice.length);\n const block = exports.base58.decode(slice);\n for (let j = 0; j < block.length - blockLen; j++) {\n if (block[j] !== 0)\n throw new Error('base58xmr: wrong padding');\n }\n res = res.concat(Array.from(block.slice(block.length - blockLen)));\n }\n return Uint8Array.from(res);\n },\n};\nconst base58check = (sha256) => chain(checksum(4, (data) => sha256(sha256(data))), exports.base58);\nexports.base58check = base58check;\nconst BECH_ALPHABET = chain(alphabet('qpzry9x8gf2tvdw0s3jn54khce6mua7l'), join(''));\nconst POLYMOD_GENERATORS = [0x3b6a57b2, 0x26508e6d, 0x1ea119fa, 0x3d4233dd, 0x2a1462b3];\nfunction bech32Polymod(pre) {\n const b = pre >> 25;\n let chk = (pre & 0x1ffffff) << 5;\n for (let i = 0; i < POLYMOD_GENERATORS.length; i++) {\n if (((b >> i) & 1) === 1)\n chk ^= POLYMOD_GENERATORS[i];\n }\n return chk;\n}\nfunction bechChecksum(prefix, words, encodingConst = 1) {\n const len = prefix.length;\n let chk = 1;\n for (let i = 0; i < len; i++) {\n const c = prefix.charCodeAt(i);\n if (c < 33 || c > 126)\n throw new Error(`Invalid prefix (${prefix})`);\n chk = bech32Polymod(chk) ^ (c >> 5);\n }\n chk = bech32Polymod(chk);\n for (let i = 0; i < len; i++)\n chk = bech32Polymod(chk) ^ (prefix.charCodeAt(i) & 0x1f);\n for (let v of words)\n chk = bech32Polymod(chk) ^ v;\n for (let i = 0; i < 6; i++)\n chk = bech32Polymod(chk);\n chk ^= encodingConst;\n return BECH_ALPHABET.encode(convertRadix2([chk % 2 ** 30], 30, 5, false));\n}\nfunction genBech32(encoding) {\n const ENCODING_CONST = encoding === 'bech32' ? 1 : 0x2bc830a3;\n const _words = radix2(5);\n const fromWords = _words.decode;\n const toWords = _words.encode;\n const fromWordsUnsafe = unsafeWrapper(fromWords);\n function encode(prefix, words, limit = 90) {\n if (typeof prefix !== 'string')\n throw new Error(`bech32.encode prefix should be string, not ${typeof prefix}`);\n if (!Array.isArray(words) || (words.length && typeof words[0] !== 'number'))\n throw new Error(`bech32.encode words should be array of numbers, not ${typeof words}`);\n const actualLength = prefix.length + 7 + words.length;\n if (limit !== false && actualLength > limit)\n throw new TypeError(`Length ${actualLength} exceeds limit ${limit}`);\n prefix = prefix.toLowerCase();\n return `${prefix}1${BECH_ALPHABET.encode(words)}${bechChecksum(prefix, words, ENCODING_CONST)}`;\n }\n function decode(str, limit = 90) {\n if (typeof str !== 'string')\n throw new Error(`bech32.decode input should be string, not ${typeof str}`);\n if (str.length < 8 || (limit !== false && str.length > limit))\n throw new TypeError(`Wrong string length: ${str.length} (${str}). Expected (8..${limit})`);\n const lowered = str.toLowerCase();\n if (str !== lowered && str !== str.toUpperCase())\n throw new Error(`String must be lowercase or uppercase`);\n str = lowered;\n const sepIndex = str.lastIndexOf('1');\n if (sepIndex === 0 || sepIndex === -1)\n throw new Error(`Letter \"1\" must be present between prefix and data only`);\n const prefix = str.slice(0, sepIndex);\n const _words = str.slice(sepIndex + 1);\n if (_words.length < 6)\n throw new Error('Data must be at least 6 characters long');\n const words = BECH_ALPHABET.decode(_words).slice(0, -6);\n const sum = bechChecksum(prefix, words, ENCODING_CONST);\n if (!_words.endsWith(sum))\n throw new Error(`Invalid checksum in ${str}: expected \"${sum}\"`);\n return { prefix, words };\n }\n const decodeUnsafe = unsafeWrapper(decode);\n function decodeToBytes(str) {\n const { prefix, words } = decode(str, false);\n return { prefix, words, bytes: fromWords(words) };\n }\n return { encode, decode, decodeToBytes, decodeUnsafe, fromWords, fromWordsUnsafe, toWords };\n}\nexports.bech32 = genBech32('bech32');\nexports.bech32m = genBech32('bech32m');\nexports.utf8 = {\n encode: (data) => new TextDecoder().decode(data),\n decode: (str) => new TextEncoder().encode(str),\n};\nexports.hex = chain(radix2(4), alphabet('0123456789abcdef'), join(''), normalize((s) => {\n if (typeof s !== 'string' || s.length % 2)\n throw new TypeError(`hex.decode: expected string, got ${typeof s} with length ${s.length}`);\n return s.toLowerCase();\n}));\nconst CODERS = {\n utf8: exports.utf8, hex: exports.hex, base16: exports.base16, base32: exports.base32, base64: exports.base64, base64url: exports.base64url, base58: exports.base58, base58xmr: exports.base58xmr\n};\nconst coderTypeError = `Invalid encoding type. Available types: ${Object.keys(CODERS).join(', ')}`;\nconst bytesToString = (type, bytes) => {\n if (typeof type !== 'string' || !CODERS.hasOwnProperty(type))\n throw new TypeError(coderTypeError);\n if (!(bytes instanceof Uint8Array))\n throw new TypeError('bytesToString() expects Uint8Array');\n return CODERS[type].encode(bytes);\n};\nexports.bytesToString = bytesToString;\nexports.str = exports.bytesToString;\nconst stringToBytes = (type, str) => {\n if (!CODERS.hasOwnProperty(type))\n throw new TypeError(coderTypeError);\n if (typeof str !== 'string')\n throw new TypeError('stringToBytes() expects string');\n return CODERS[type].decode(str);\n};\nexports.stringToBytes = stringToBytes;\nexports.bytes = exports.stringToBytes;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.mnemonicToSeedSync = exports.mnemonicToSeed = exports.validateMnemonic = exports.entropyToMnemonic = exports.mnemonicToEntropy = exports.generateMnemonic = void 0;\n/*! scure-bip39 - MIT License (c) 2022 Patricio Palladino, Paul Miller (paulmillr.com) */\nconst _assert_1 = require(\"@noble/hashes/_assert\");\nconst pbkdf2_1 = require(\"@noble/hashes/pbkdf2\");\nconst sha256_1 = require(\"@noble/hashes/sha256\");\nconst sha512_1 = require(\"@noble/hashes/sha512\");\nconst utils_1 = require(\"@noble/hashes/utils\");\nconst base_1 = require(\"@scure/base\");\n// Japanese wordlist\nconst isJapanese = (wordlist) => wordlist[0] === '\\u3042\\u3044\\u3053\\u304f\\u3057\\u3093';\n// Normalization replaces equivalent sequences of characters\n// so that any two texts that are equivalent will be reduced\n// to the same sequence of code points, called the normal form of the original text.\nfunction nfkd(str) {\n if (typeof str !== 'string')\n throw new TypeError(`Invalid mnemonic type: ${typeof str}`);\n return str.normalize('NFKD');\n}\nfunction normalize(str) {\n const norm = nfkd(str);\n const words = norm.split(' ');\n if (![12, 15, 18, 21, 24].includes(words.length))\n throw new Error('Invalid mnemonic');\n return { nfkd: norm, words };\n}\nfunction assertEntropy(entropy) {\n _assert_1.default.bytes(entropy, 16, 20, 24, 28, 32);\n}\n/**\n * Generate x random words. Uses Cryptographically-Secure Random Number Generator.\n * @param wordlist imported wordlist for specific language\n * @param strength mnemonic strength 128-256 bits\n * @example\n * generateMnemonic(wordlist, 128)\n * // 'legal winner thank year wave sausage worth useful legal winner thank yellow'\n */\nfunction generateMnemonic(wordlist, strength = 128) {\n _assert_1.default.number(strength);\n if (strength % 32 !== 0 || strength > 256)\n throw new TypeError('Invalid entropy');\n return entropyToMnemonic((0, utils_1.randomBytes)(strength / 8), wordlist);\n}\nexports.generateMnemonic = generateMnemonic;\nconst calcChecksum = (entropy) => {\n // Checksum is ent.length/4 bits long\n const bitsLeft = 8 - entropy.length / 4;\n // Zero rightmost \"bitsLeft\" bits in byte\n // For example: bitsLeft=4 val=10111101 -> 10110000\n return new Uint8Array([((0, sha256_1.sha256)(entropy)[0] >> bitsLeft) << bitsLeft]);\n};\nfunction getCoder(wordlist) {\n if (!Array.isArray(wordlist) || wordlist.length !== 2048 || typeof wordlist[0] !== 'string')\n throw new Error('Worlist: expected array of 2048 strings');\n wordlist.forEach((i) => {\n if (typeof i !== 'string')\n throw new Error(`Wordlist: non-string element: ${i}`);\n });\n return base_1.utils.chain(base_1.utils.checksum(1, calcChecksum), base_1.utils.radix2(11, true), base_1.utils.alphabet(wordlist));\n}\n/**\n * Reversible: Converts mnemonic string to raw entropy in form of byte array.\n * @param mnemonic 12-24 words\n * @param wordlist imported wordlist for specific language\n * @example\n * const mnem = 'legal winner thank year wave sausage worth useful legal winner thank yellow';\n * mnemonicToEntropy(mnem, wordlist)\n * // Produces\n * new Uint8Array([\n * 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,\n * 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f\n * ])\n */\nfunction mnemonicToEntropy(mnemonic, wordlist) {\n const { words } = normalize(mnemonic);\n const entropy = getCoder(wordlist).decode(words);\n assertEntropy(entropy);\n return entropy;\n}\nexports.mnemonicToEntropy = mnemonicToEntropy;\n/**\n * Reversible: Converts raw entropy in form of byte array to mnemonic string.\n * @param entropy byte array\n * @param wordlist imported wordlist for specific language\n * @returns 12-24 words\n * @example\n * const ent = new Uint8Array([\n * 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,\n * 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f\n * ]);\n * entropyToMnemonic(ent, wordlist);\n * // 'legal winner thank year wave sausage worth useful legal winner thank yellow'\n */\nfunction entropyToMnemonic(entropy, wordlist) {\n assertEntropy(entropy);\n const words = getCoder(wordlist).encode(entropy);\n return words.join(isJapanese(wordlist) ? '\\u3000' : ' ');\n}\nexports.entropyToMnemonic = entropyToMnemonic;\n/**\n * Validates mnemonic for being 12-24 words contained in `wordlist`.\n */\nfunction validateMnemonic(mnemonic, wordlist) {\n try {\n mnemonicToEntropy(mnemonic, wordlist);\n }\n catch (e) {\n return false;\n }\n return true;\n}\nexports.validateMnemonic = validateMnemonic;\nconst salt = (passphrase) => nfkd(`mnemonic${passphrase}`);\n/**\n * Irreversible: Uses KDF to derive 64 bytes of key data from mnemonic + optional password.\n * @param mnemonic 12-24 words\n * @param passphrase string that will additionally protect the key\n * @returns 64 bytes of key data\n * @example\n * const mnem = 'legal winner thank year wave sausage worth useful legal winner thank yellow';\n * await mnemonicToSeed(mnem, 'password');\n * // new Uint8Array([...64 bytes])\n */\nfunction mnemonicToSeed(mnemonic, passphrase = '') {\n return (0, pbkdf2_1.pbkdf2Async)(sha512_1.sha512, normalize(mnemonic).nfkd, salt(passphrase), { c: 2048, dkLen: 64 });\n}\nexports.mnemonicToSeed = mnemonicToSeed;\n/**\n * Irreversible: Uses KDF to derive 64 bytes of key data from mnemonic + optional password.\n * @param mnemonic 12-24 words\n * @param passphrase string that will additionally protect the key\n * @returns 64 bytes of key data\n * @example\n * const mnem = 'legal winner thank year wave sausage worth useful legal winner thank yellow';\n * mnemonicToSeedSync(mnem, 'password');\n * // new Uint8Array([...64 bytes])\n */\nfunction mnemonicToSeedSync(mnemonic, passphrase = '') {\n return (0, pbkdf2_1.pbkdf2)(sha512_1.sha512, normalize(mnemonic).nfkd, salt(passphrase), { c: 2048, dkLen: 64 });\n}\nexports.mnemonicToSeedSync = mnemonicToSeedSync;\n","import assert from './_assert.js';\nimport { Hash, toBytes } from './utils.js';\n// HMAC (RFC 2104)\nclass HMAC extends Hash {\n constructor(hash, _key) {\n super();\n this.finished = false;\n this.destroyed = false;\n assert.hash(hash);\n const key = toBytes(_key);\n this.iHash = hash.create();\n if (typeof this.iHash.update !== 'function')\n throw new TypeError('Expected instance of class which extends utils.Hash');\n this.blockLen = this.iHash.blockLen;\n this.outputLen = this.iHash.outputLen;\n const blockLen = this.blockLen;\n const pad = new Uint8Array(blockLen);\n // blockLen can be bigger than outputLen\n pad.set(key.length > blockLen ? hash.create().update(key).digest() : key);\n for (let i = 0; i < pad.length; i++)\n pad[i] ^= 0x36;\n this.iHash.update(pad);\n // By doing update (processing of first block) of outer hash here we can re-use it between multiple calls via clone\n this.oHash = hash.create();\n // Undo internal XOR && apply outer XOR\n for (let i = 0; i < pad.length; i++)\n pad[i] ^= 0x36 ^ 0x5c;\n this.oHash.update(pad);\n pad.fill(0);\n }\n update(buf) {\n assert.exists(this);\n this.iHash.update(buf);\n return this;\n }\n digestInto(out) {\n assert.exists(this);\n assert.bytes(out, this.outputLen);\n this.finished = true;\n this.iHash.digestInto(out);\n this.oHash.update(out);\n this.oHash.digestInto(out);\n this.destroy();\n }\n digest() {\n const out = new Uint8Array(this.oHash.outputLen);\n this.digestInto(out);\n return out;\n }\n _cloneInto(to) {\n // Create new instance without calling constructor since key already in state and we don't know it.\n to || (to = Object.create(Object.getPrototypeOf(this), {}));\n const { oHash, iHash, finished, destroyed, blockLen, outputLen } = this;\n to = to;\n to.finished = finished;\n to.destroyed = destroyed;\n to.blockLen = blockLen;\n to.outputLen = outputLen;\n to.oHash = oHash._cloneInto(to.oHash);\n to.iHash = iHash._cloneInto(to.iHash);\n return to;\n }\n destroy() {\n this.destroyed = true;\n this.oHash.destroy();\n this.iHash.destroy();\n }\n}\n/**\n * HMAC: RFC2104 message authentication code.\n * @param hash - function that would be used e.g. sha256\n * @param key - message key\n * @param message - message data\n */\nexport const hmac = (hash, key, message) => new HMAC(hash, key).update(message).digest();\nhmac.create = (hash, key) => new HMAC(hash, key);\n//# sourceMappingURL=hmac.js.map","import { SHA2 } from './_sha2.js';\nimport { wrapConstructor } from './utils.js';\n// https://homes.esat.kuleuven.be/~bosselae/ripemd160.html\n// https://homes.esat.kuleuven.be/~bosselae/ripemd160/pdf/AB-9601/AB-9601.pdf\nconst Rho = new Uint8Array([7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8]);\nconst Id = Uint8Array.from({ length: 16 }, (_, i) => i);\nconst Pi = Id.map((i) => (9 * i + 5) % 16);\nlet idxL = [Id];\nlet idxR = [Pi];\nfor (let i = 0; i < 4; i++)\n for (let j of [idxL, idxR])\n j.push(j[i].map((k) => Rho[k]));\nconst shifts = [\n [11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8],\n [12, 13, 11, 15, 6, 9, 9, 7, 12, 15, 11, 13, 7, 8, 7, 7],\n [13, 15, 14, 11, 7, 7, 6, 8, 13, 14, 13, 12, 5, 5, 6, 9],\n [14, 11, 12, 14, 8, 6, 5, 5, 15, 12, 15, 14, 9, 9, 8, 6],\n [15, 12, 13, 13, 9, 5, 8, 6, 14, 11, 12, 11, 8, 6, 5, 5],\n].map((i) => new Uint8Array(i));\nconst shiftsL = idxL.map((idx, i) => idx.map((j) => shifts[i][j]));\nconst shiftsR = idxR.map((idx, i) => idx.map((j) => shifts[i][j]));\nconst Kl = new Uint32Array([0x00000000, 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xa953fd4e]);\nconst Kr = new Uint32Array([0x50a28be6, 0x5c4dd124, 0x6d703ef3, 0x7a6d76e9, 0x00000000]);\n// The rotate left (circular left shift) operation for uint32\nconst rotl = (word, shift) => (word << shift) | (word >>> (32 - shift));\n// It's called f() in spec.\nfunction f(group, x, y, z) {\n if (group === 0)\n return x ^ y ^ z;\n else if (group === 1)\n return (x & y) | (~x & z);\n else if (group === 2)\n return (x | ~y) ^ z;\n else if (group === 3)\n return (x & z) | (y & ~z);\n else\n return x ^ (y | ~z);\n}\n// Temporary buffer, not used to store anything between runs\nconst BUF = new Uint32Array(16);\nexport class RIPEMD160 extends SHA2 {\n constructor() {\n super(64, 20, 8, true);\n this.h0 = 0x67452301 | 0;\n this.h1 = 0xefcdab89 | 0;\n this.h2 = 0x98badcfe | 0;\n this.h3 = 0x10325476 | 0;\n this.h4 = 0xc3d2e1f0 | 0;\n }\n get() {\n const { h0, h1, h2, h3, h4 } = this;\n return [h0, h1, h2, h3, h4];\n }\n set(h0, h1, h2, h3, h4) {\n this.h0 = h0 | 0;\n this.h1 = h1 | 0;\n this.h2 = h2 | 0;\n this.h3 = h3 | 0;\n this.h4 = h4 | 0;\n }\n process(view, offset) {\n for (let i = 0; i < 16; i++, offset += 4)\n BUF[i] = view.getUint32(offset, true);\n // prettier-ignore\n let al = this.h0 | 0, ar = al, bl = this.h1 | 0, br = bl, cl = this.h2 | 0, cr = cl, dl = this.h3 | 0, dr = dl, el = this.h4 | 0, er = el;\n // Instead of iterating 0 to 80, we split it into 5 groups\n // And use the groups in constants, functions, etc. Much simpler\n for (let group = 0; group < 5; group++) {\n const rGroup = 4 - group;\n const hbl = Kl[group], hbr = Kr[group]; // prettier-ignore\n const rl = idxL[group], rr = idxR[group]; // prettier-ignore\n const sl = shiftsL[group], sr = shiftsR[group]; // prettier-ignore\n for (let i = 0; i < 16; i++) {\n const tl = (rotl(al + f(group, bl, cl, dl) + BUF[rl[i]] + hbl, sl[i]) + el) | 0;\n al = el, el = dl, dl = rotl(cl, 10) | 0, cl = bl, bl = tl; // prettier-ignore\n }\n // 2 loops are 10% faster\n for (let i = 0; i < 16; i++) {\n const tr = (rotl(ar + f(rGroup, br, cr, dr) + BUF[rr[i]] + hbr, sr[i]) + er) | 0;\n ar = er, er = dr, dr = rotl(cr, 10) | 0, cr = br, br = tr; // prettier-ignore\n }\n }\n // Add the compressed chunk to the current hash value\n this.set((this.h1 + cl + dr) | 0, (this.h2 + dl + er) | 0, (this.h3 + el + ar) | 0, (this.h4 + al + br) | 0, (this.h0 + bl + cr) | 0);\n }\n roundClean() {\n BUF.fill(0);\n }\n destroy() {\n this.destroyed = true;\n this.buffer.fill(0);\n this.set(0, 0, 0, 0, 0);\n }\n}\n/**\n * RIPEMD-160 - a hash function from 1990s.\n * @param message - msg that would be hashed\n */\nexport const ripemd160 = wrapConstructor(() => new RIPEMD160());\n//# sourceMappingURL=ripemd160.js.map","const U32_MASK64 = BigInt(2 ** 32 - 1);\nconst _32n = BigInt(32);\n// We are not using BigUint64Array, because they are extremely slow as per 2022\nexport function fromBig(n, le = false) {\n if (le)\n return { h: Number(n & U32_MASK64), l: Number((n >> _32n) & U32_MASK64) };\n return { h: Number((n >> _32n) & U32_MASK64) | 0, l: Number(n & U32_MASK64) | 0 };\n}\nexport function split(lst, le = false) {\n let Ah = new Uint32Array(lst.length);\n let Al = new Uint32Array(lst.length);\n for (let i = 0; i < lst.length; i++) {\n const { h, l } = fromBig(lst[i], le);\n [Ah[i], Al[i]] = [h, l];\n }\n return [Ah, Al];\n}\nexport const toBig = (h, l) => (BigInt(h >>> 0) << _32n) | BigInt(l >>> 0);\n// for Shift in [0, 32)\nconst shrSH = (h, l, s) => h >>> s;\nconst shrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in [1, 32)\nconst rotrSH = (h, l, s) => (h >>> s) | (l << (32 - s));\nconst rotrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotrBH = (h, l, s) => (h << (64 - s)) | (l >>> (s - 32));\nconst rotrBL = (h, l, s) => (h >>> (s - 32)) | (l << (64 - s));\n// Right rotate for shift===32 (just swaps l&h)\nconst rotr32H = (h, l) => l;\nconst rotr32L = (h, l) => h;\n// Left rotate for Shift in [1, 32)\nconst rotlSH = (h, l, s) => (h << s) | (l >>> (32 - s));\nconst rotlSL = (h, l, s) => (l << s) | (h >>> (32 - s));\n// Left rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotlBH = (h, l, s) => (l << (s - 32)) | (h >>> (64 - s));\nconst rotlBL = (h, l, s) => (h << (s - 32)) | (l >>> (64 - s));\n// JS uses 32-bit signed integers for bitwise operations which means we cannot\n// simple take carry out of low bit sum by shift, we need to use division.\n// Removing \"export\" has 5% perf penalty -_-\nexport function add(Ah, Al, Bh, Bl) {\n const l = (Al >>> 0) + (Bl >>> 0);\n return { h: (Ah + Bh + ((l / 2 ** 32) | 0)) | 0, l: l | 0 };\n}\n// Addition with more than 2 elements\nconst add3L = (Al, Bl, Cl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0);\nconst add3H = (low, Ah, Bh, Ch) => (Ah + Bh + Ch + ((low / 2 ** 32) | 0)) | 0;\nconst add4L = (Al, Bl, Cl, Dl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0);\nconst add4H = (low, Ah, Bh, Ch, Dh) => (Ah + Bh + Ch + Dh + ((low / 2 ** 32) | 0)) | 0;\nconst add5L = (Al, Bl, Cl, Dl, El) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0) + (El >>> 0);\nconst add5H = (low, Ah, Bh, Ch, Dh, Eh) => (Ah + Bh + Ch + Dh + Eh + ((low / 2 ** 32) | 0)) | 0;\n// prettier-ignore\nconst u64 = {\n fromBig, split, toBig,\n shrSH, shrSL,\n rotrSH, rotrSL, rotrBH, rotrBL,\n rotr32H, rotr32L,\n rotlSH, rotlSL, rotlBH, rotlBL,\n add, add3L, add3H, add4L, add4H, add5H, add5L,\n};\nexport default u64;\n//# sourceMappingURL=_u64.js.map","import { SHA2 } from './_sha2.js';\nimport u64 from './_u64.js';\nimport { wrapConstructor } from './utils.js';\n// Round contants (first 32 bits of the fractional parts of the cube roots of the first 80 primes 2..409):\n// prettier-ignore\nconst [SHA512_Kh, SHA512_Kl] = u64.split([\n '0x428a2f98d728ae22', '0x7137449123ef65cd', '0xb5c0fbcfec4d3b2f', '0xe9b5dba58189dbbc',\n '0x3956c25bf348b538', '0x59f111f1b605d019', '0x923f82a4af194f9b', '0xab1c5ed5da6d8118',\n '0xd807aa98a3030242', '0x12835b0145706fbe', '0x243185be4ee4b28c', '0x550c7dc3d5ffb4e2',\n '0x72be5d74f27b896f', '0x80deb1fe3b1696b1', '0x9bdc06a725c71235', '0xc19bf174cf692694',\n '0xe49b69c19ef14ad2', '0xefbe4786384f25e3', '0x0fc19dc68b8cd5b5', '0x240ca1cc77ac9c65',\n '0x2de92c6f592b0275', '0x4a7484aa6ea6e483', '0x5cb0a9dcbd41fbd4', '0x76f988da831153b5',\n '0x983e5152ee66dfab', '0xa831c66d2db43210', '0xb00327c898fb213f', '0xbf597fc7beef0ee4',\n '0xc6e00bf33da88fc2', '0xd5a79147930aa725', '0x06ca6351e003826f', '0x142929670a0e6e70',\n '0x27b70a8546d22ffc', '0x2e1b21385c26c926', '0x4d2c6dfc5ac42aed', '0x53380d139d95b3df',\n '0x650a73548baf63de', '0x766a0abb3c77b2a8', '0x81c2c92e47edaee6', '0x92722c851482353b',\n '0xa2bfe8a14cf10364', '0xa81a664bbc423001', '0xc24b8b70d0f89791', '0xc76c51a30654be30',\n '0xd192e819d6ef5218', '0xd69906245565a910', '0xf40e35855771202a', '0x106aa07032bbd1b8',\n '0x19a4c116b8d2d0c8', '0x1e376c085141ab53', '0x2748774cdf8eeb99', '0x34b0bcb5e19b48a8',\n '0x391c0cb3c5c95a63', '0x4ed8aa4ae3418acb', '0x5b9cca4f7763e373', '0x682e6ff3d6b2b8a3',\n '0x748f82ee5defb2fc', '0x78a5636f43172f60', '0x84c87814a1f0ab72', '0x8cc702081a6439ec',\n '0x90befffa23631e28', '0xa4506cebde82bde9', '0xbef9a3f7b2c67915', '0xc67178f2e372532b',\n '0xca273eceea26619c', '0xd186b8c721c0c207', '0xeada7dd6cde0eb1e', '0xf57d4f7fee6ed178',\n '0x06f067aa72176fba', '0x0a637dc5a2c898a6', '0x113f9804bef90dae', '0x1b710b35131c471b',\n '0x28db77f523047d84', '0x32caab7b40c72493', '0x3c9ebe0a15c9bebc', '0x431d67c49c100d4c',\n '0x4cc5d4becb3e42b6', '0x597f299cfc657e2a', '0x5fcb6fab3ad6faec', '0x6c44198c4a475817'\n].map(n => BigInt(n)));\n// Temporary buffer, not used to store anything between runs\nconst SHA512_W_H = new Uint32Array(80);\nconst SHA512_W_L = new Uint32Array(80);\nexport class SHA512 extends SHA2 {\n constructor() {\n super(128, 64, 16, false);\n // We cannot use array here since array allows indexing by variable which means optimizer/compiler cannot use registers.\n // Also looks cleaner and easier to verify with spec.\n // Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = 0x6a09e667 | 0;\n this.Al = 0xf3bcc908 | 0;\n this.Bh = 0xbb67ae85 | 0;\n this.Bl = 0x84caa73b | 0;\n this.Ch = 0x3c6ef372 | 0;\n this.Cl = 0xfe94f82b | 0;\n this.Dh = 0xa54ff53a | 0;\n this.Dl = 0x5f1d36f1 | 0;\n this.Eh = 0x510e527f | 0;\n this.El = 0xade682d1 | 0;\n this.Fh = 0x9b05688c | 0;\n this.Fl = 0x2b3e6c1f | 0;\n this.Gh = 0x1f83d9ab | 0;\n this.Gl = 0xfb41bd6b | 0;\n this.Hh = 0x5be0cd19 | 0;\n this.Hl = 0x137e2179 | 0;\n }\n // prettier-ignore\n get() {\n const { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n return [Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl];\n }\n // prettier-ignore\n set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl) {\n this.Ah = Ah | 0;\n this.Al = Al | 0;\n this.Bh = Bh | 0;\n this.Bl = Bl | 0;\n this.Ch = Ch | 0;\n this.Cl = Cl | 0;\n this.Dh = Dh | 0;\n this.Dl = Dl | 0;\n this.Eh = Eh | 0;\n this.El = El | 0;\n this.Fh = Fh | 0;\n this.Fl = Fl | 0;\n this.Gh = Gh | 0;\n this.Gl = Gl | 0;\n this.Hh = Hh | 0;\n this.Hl = Hl | 0;\n }\n process(view, offset) {\n // Extend the first 16 words into the remaining 64 words w[16..79] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4) {\n SHA512_W_H[i] = view.getUint32(offset);\n SHA512_W_L[i] = view.getUint32((offset += 4));\n }\n for (let i = 16; i < 80; i++) {\n // s0 := (w[i-15] rightrotate 1) xor (w[i-15] rightrotate 8) xor (w[i-15] rightshift 7)\n const W15h = SHA512_W_H[i - 15] | 0;\n const W15l = SHA512_W_L[i - 15] | 0;\n const s0h = u64.rotrSH(W15h, W15l, 1) ^ u64.rotrSH(W15h, W15l, 8) ^ u64.shrSH(W15h, W15l, 7);\n const s0l = u64.rotrSL(W15h, W15l, 1) ^ u64.rotrSL(W15h, W15l, 8) ^ u64.shrSL(W15h, W15l, 7);\n // s1 := (w[i-2] rightrotate 19) xor (w[i-2] rightrotate 61) xor (w[i-2] rightshift 6)\n const W2h = SHA512_W_H[i - 2] | 0;\n const W2l = SHA512_W_L[i - 2] | 0;\n const s1h = u64.rotrSH(W2h, W2l, 19) ^ u64.rotrBH(W2h, W2l, 61) ^ u64.shrSH(W2h, W2l, 6);\n const s1l = u64.rotrSL(W2h, W2l, 19) ^ u64.rotrBL(W2h, W2l, 61) ^ u64.shrSL(W2h, W2l, 6);\n // SHA256_W[i] = s0 + s1 + SHA256_W[i - 7] + SHA256_W[i - 16];\n const SUMl = u64.add4L(s0l, s1l, SHA512_W_L[i - 7], SHA512_W_L[i - 16]);\n const SUMh = u64.add4H(SUMl, s0h, s1h, SHA512_W_H[i - 7], SHA512_W_H[i - 16]);\n SHA512_W_H[i] = SUMh | 0;\n SHA512_W_L[i] = SUMl | 0;\n }\n let { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n // Compression function main loop, 80 rounds\n for (let i = 0; i < 80; i++) {\n // S1 := (e rightrotate 14) xor (e rightrotate 18) xor (e rightrotate 41)\n const sigma1h = u64.rotrSH(Eh, El, 14) ^ u64.rotrSH(Eh, El, 18) ^ u64.rotrBH(Eh, El, 41);\n const sigma1l = u64.rotrSL(Eh, El, 14) ^ u64.rotrSL(Eh, El, 18) ^ u64.rotrBL(Eh, El, 41);\n //const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const CHIh = (Eh & Fh) ^ (~Eh & Gh);\n const CHIl = (El & Fl) ^ (~El & Gl);\n // T1 = H + sigma1 + Chi(E, F, G) + SHA512_K[i] + SHA512_W[i]\n // prettier-ignore\n const T1ll = u64.add5L(Hl, sigma1l, CHIl, SHA512_Kl[i], SHA512_W_L[i]);\n const T1h = u64.add5H(T1ll, Hh, sigma1h, CHIh, SHA512_Kh[i], SHA512_W_H[i]);\n const T1l = T1ll | 0;\n // S0 := (a rightrotate 28) xor (a rightrotate 34) xor (a rightrotate 39)\n const sigma0h = u64.rotrSH(Ah, Al, 28) ^ u64.rotrBH(Ah, Al, 34) ^ u64.rotrBH(Ah, Al, 39);\n const sigma0l = u64.rotrSL(Ah, Al, 28) ^ u64.rotrBL(Ah, Al, 34) ^ u64.rotrBL(Ah, Al, 39);\n const MAJh = (Ah & Bh) ^ (Ah & Ch) ^ (Bh & Ch);\n const MAJl = (Al & Bl) ^ (Al & Cl) ^ (Bl & Cl);\n Hh = Gh | 0;\n Hl = Gl | 0;\n Gh = Fh | 0;\n Gl = Fl | 0;\n Fh = Eh | 0;\n Fl = El | 0;\n ({ h: Eh, l: El } = u64.add(Dh | 0, Dl | 0, T1h | 0, T1l | 0));\n Dh = Ch | 0;\n Dl = Cl | 0;\n Ch = Bh | 0;\n Cl = Bl | 0;\n Bh = Ah | 0;\n Bl = Al | 0;\n const All = u64.add3L(T1l, sigma0l, MAJl);\n Ah = u64.add3H(All, T1h, sigma0h, MAJh);\n Al = All | 0;\n }\n // Add the compressed chunk to the current hash value\n ({ h: Ah, l: Al } = u64.add(this.Ah | 0, this.Al | 0, Ah | 0, Al | 0));\n ({ h: Bh, l: Bl } = u64.add(this.Bh | 0, this.Bl | 0, Bh | 0, Bl | 0));\n ({ h: Ch, l: Cl } = u64.add(this.Ch | 0, this.Cl | 0, Ch | 0, Cl | 0));\n ({ h: Dh, l: Dl } = u64.add(this.Dh | 0, this.Dl | 0, Dh | 0, Dl | 0));\n ({ h: Eh, l: El } = u64.add(this.Eh | 0, this.El | 0, Eh | 0, El | 0));\n ({ h: Fh, l: Fl } = u64.add(this.Fh | 0, this.Fl | 0, Fh | 0, Fl | 0));\n ({ h: Gh, l: Gl } = u64.add(this.Gh | 0, this.Gl | 0, Gh | 0, Gl | 0));\n ({ h: Hh, l: Hl } = u64.add(this.Hh | 0, this.Hl | 0, Hh | 0, Hl | 0));\n this.set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl);\n }\n roundClean() {\n SHA512_W_H.fill(0);\n SHA512_W_L.fill(0);\n }\n destroy() {\n this.buffer.fill(0);\n this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);\n }\n}\nclass SHA512_224 extends SHA512 {\n constructor() {\n super();\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = 0x8c3d37c8 | 0;\n this.Al = 0x19544da2 | 0;\n this.Bh = 0x73e19966 | 0;\n this.Bl = 0x89dcd4d6 | 0;\n this.Ch = 0x1dfab7ae | 0;\n this.Cl = 0x32ff9c82 | 0;\n this.Dh = 0x679dd514 | 0;\n this.Dl = 0x582f9fcf | 0;\n this.Eh = 0x0f6d2b69 | 0;\n this.El = 0x7bd44da8 | 0;\n this.Fh = 0x77e36f73 | 0;\n this.Fl = 0x04c48942 | 0;\n this.Gh = 0x3f9d85a8 | 0;\n this.Gl = 0x6a1d36c8 | 0;\n this.Hh = 0x1112e6ad | 0;\n this.Hl = 0x91d692a1 | 0;\n this.outputLen = 28;\n }\n}\nclass SHA512_256 extends SHA512 {\n constructor() {\n super();\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = 0x22312194 | 0;\n this.Al = 0xfc2bf72c | 0;\n this.Bh = 0x9f555fa3 | 0;\n this.Bl = 0xc84c64c2 | 0;\n this.Ch = 0x2393b86b | 0;\n this.Cl = 0x6f53b151 | 0;\n this.Dh = 0x96387719 | 0;\n this.Dl = 0x5940eabd | 0;\n this.Eh = 0x96283ee2 | 0;\n this.El = 0xa88effe3 | 0;\n this.Fh = 0xbe5e1e25 | 0;\n this.Fl = 0x53863992 | 0;\n this.Gh = 0x2b0199fc | 0;\n this.Gl = 0x2c85b8aa | 0;\n this.Hh = 0x0eb72ddc | 0;\n this.Hl = 0x81c52ca2 | 0;\n this.outputLen = 32;\n }\n}\nclass SHA384 extends SHA512 {\n constructor() {\n super();\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = 0xcbbb9d5d | 0;\n this.Al = 0xc1059ed8 | 0;\n this.Bh = 0x629a292a | 0;\n this.Bl = 0x367cd507 | 0;\n this.Ch = 0x9159015a | 0;\n this.Cl = 0x3070dd17 | 0;\n this.Dh = 0x152fecd8 | 0;\n this.Dl = 0xf70e5939 | 0;\n this.Eh = 0x67332667 | 0;\n this.El = 0xffc00b31 | 0;\n this.Fh = 0x8eb44a87 | 0;\n this.Fl = 0x68581511 | 0;\n this.Gh = 0xdb0c2e0d | 0;\n this.Gl = 0x64f98fa7 | 0;\n this.Hh = 0x47b5481d | 0;\n this.Hl = 0xbefa4fa4 | 0;\n this.outputLen = 48;\n }\n}\nexport const sha512 = wrapConstructor(() => new SHA512());\nexport const sha512_224 = wrapConstructor(() => new SHA512_224());\nexport const sha512_256 = wrapConstructor(() => new SHA512_256());\nexport const sha384 = wrapConstructor(() => new SHA384());\n//# sourceMappingURL=sha512.js.map","import { hmac } from '@noble/hashes/hmac';\nimport { ripemd160 } from '@noble/hashes/ripemd160';\nimport { sha256 } from '@noble/hashes/sha256';\nimport { sha512 } from '@noble/hashes/sha512';\nimport { bytes as assertBytes } from '@noble/hashes/_assert';\nimport { bytesToHex, concatBytes, createView, hexToBytes, utf8ToBytes } from '@noble/hashes/utils';\nimport * as secp from '@noble/secp256k1';\nimport { base58check as base58checker } from '@scure/base';\nsecp.utils.hmacSha256Sync = (key, ...msgs) => hmac(sha256, key, secp.utils.concatBytes(...msgs));\nconst base58check = base58checker(sha256);\nfunction bytesToNumber(bytes) {\n return BigInt(`0x${bytesToHex(bytes)}`);\n}\nfunction numberToBytes(num) {\n return hexToBytes(num.toString(16).padStart(64, '0'));\n}\nconst MASTER_SECRET = utf8ToBytes('Bitcoin seed');\nconst BITCOIN_VERSIONS = { private: 0x0488ade4, public: 0x0488b21e };\nexport const HARDENED_OFFSET = 0x80000000;\nconst hash160 = (data) => ripemd160(sha256(data));\nconst fromU32 = (data) => createView(data).getUint32(0, false);\nconst toU32 = (n) => {\n if (!Number.isSafeInteger(n) || n < 0 || n > 2 ** 32 - 1) {\n throw new Error(`Invalid number=${n}. Should be from 0 to 2 ** 32 - 1`);\n }\n const buf = new Uint8Array(4);\n createView(buf).setUint32(0, n, false);\n return buf;\n};\nexport class HDKey {\n constructor(opt) {\n this.depth = 0;\n this.index = 0;\n this.chainCode = null;\n this.parentFingerprint = 0;\n if (!opt || typeof opt !== 'object') {\n throw new Error('HDKey.constructor must not be called directly');\n }\n this.versions = opt.versions || BITCOIN_VERSIONS;\n this.depth = opt.depth || 0;\n this.chainCode = opt.chainCode;\n this.index = opt.index || 0;\n this.parentFingerprint = opt.parentFingerprint || 0;\n if (!this.depth) {\n if (this.parentFingerprint || this.index) {\n throw new Error('HDKey: zero depth with non-zero index/parent fingerprint');\n }\n }\n if (opt.publicKey && opt.privateKey) {\n throw new Error('HDKey: publicKey and privateKey at same time.');\n }\n if (opt.privateKey) {\n if (!secp.utils.isValidPrivateKey(opt.privateKey)) {\n throw new Error('Invalid private key');\n }\n this.privKey =\n typeof opt.privateKey === 'bigint' ? opt.privateKey : bytesToNumber(opt.privateKey);\n this.privKeyBytes = numberToBytes(this.privKey);\n this.pubKey = secp.getPublicKey(opt.privateKey, true);\n }\n else if (opt.publicKey) {\n this.pubKey = secp.Point.fromHex(opt.publicKey).toRawBytes(true);\n }\n else {\n throw new Error('HDKey: no public or private key provided');\n }\n this.pubHash = hash160(this.pubKey);\n }\n get fingerprint() {\n if (!this.pubHash) {\n throw new Error('No publicKey set!');\n }\n return fromU32(this.pubHash);\n }\n get identifier() {\n return this.pubHash;\n }\n get pubKeyHash() {\n return this.pubHash;\n }\n get privateKey() {\n return this.privKeyBytes || null;\n }\n get publicKey() {\n return this.pubKey || null;\n }\n get privateExtendedKey() {\n const priv = this.privateKey;\n if (!priv) {\n throw new Error('No private key');\n }\n return base58check.encode(this.serialize(this.versions.private, concatBytes(new Uint8Array([0]), priv)));\n }\n get publicExtendedKey() {\n if (!this.pubKey) {\n throw new Error('No public key');\n }\n return base58check.encode(this.serialize(this.versions.public, this.pubKey));\n }\n static fromMasterSeed(seed, versions = BITCOIN_VERSIONS) {\n assertBytes(seed);\n if (8 * seed.length < 128 || 8 * seed.length > 512) {\n throw new Error(`HDKey: wrong seed length=${seed.length}. Should be between 128 and 512 bits; 256 bits is advised)`);\n }\n const I = hmac(sha512, MASTER_SECRET, seed);\n return new HDKey({\n versions,\n chainCode: I.slice(32),\n privateKey: I.slice(0, 32),\n });\n }\n static fromExtendedKey(base58key, versions = BITCOIN_VERSIONS) {\n const keyBuffer = base58check.decode(base58key);\n const keyView = createView(keyBuffer);\n const version = keyView.getUint32(0, false);\n const opt = {\n versions,\n depth: keyBuffer[4],\n parentFingerprint: keyView.getUint32(5, false),\n index: keyView.getUint32(9, false),\n chainCode: keyBuffer.slice(13, 45),\n };\n const key = keyBuffer.slice(45);\n const isPriv = key[0] === 0;\n if (version !== versions[isPriv ? 'private' : 'public']) {\n throw new Error('Version mismatch');\n }\n if (isPriv) {\n return new HDKey({ ...opt, privateKey: key.slice(1) });\n }\n else {\n return new HDKey({ ...opt, publicKey: key });\n }\n }\n static fromJSON(json) {\n return HDKey.fromExtendedKey(json.xpriv);\n }\n derive(path) {\n if (!/^[mM]'?/.test(path)) {\n throw new Error('Path must start with \"m\" or \"M\"');\n }\n if (/^[mM]'?$/.test(path)) {\n return this;\n }\n const parts = path.replace(/^[mM]'?\\//, '').split('/');\n let child = this;\n for (const c of parts) {\n const m = /^(\\d+)('?)$/.exec(c);\n if (!m || m.length !== 3) {\n throw new Error(`Invalid child index: ${c}`);\n }\n let idx = +m[1];\n if (!Number.isSafeInteger(idx) || idx >= HARDENED_OFFSET) {\n throw new Error('Invalid index');\n }\n if (m[2] === \"'\") {\n idx += HARDENED_OFFSET;\n }\n child = child.deriveChild(idx);\n }\n return child;\n }\n deriveChild(index) {\n if (!this.pubKey || !this.chainCode) {\n throw new Error('No publicKey or chainCode set');\n }\n let data = toU32(index);\n if (index >= HARDENED_OFFSET) {\n const priv = this.privateKey;\n if (!priv) {\n throw new Error('Could not derive hardened child key');\n }\n data = concatBytes(new Uint8Array([0]), priv, data);\n }\n else {\n data = concatBytes(this.pubKey, data);\n }\n const I = hmac(sha512, this.chainCode, data);\n const childTweak = bytesToNumber(I.slice(0, 32));\n const chainCode = I.slice(32);\n if (!secp.utils.isValidPrivateKey(childTweak)) {\n throw new Error('Tweak bigger than curve order');\n }\n const opt = {\n versions: this.versions,\n chainCode,\n depth: this.depth + 1,\n parentFingerprint: this.fingerprint,\n index,\n };\n try {\n if (this.privateKey) {\n const added = secp.utils.mod(this.privKey + childTweak, secp.CURVE.n);\n if (!secp.utils.isValidPrivateKey(added)) {\n throw new Error('The tweak was out of range or the resulted private key is invalid');\n }\n opt.privateKey = added;\n }\n else {\n const added = secp.Point.fromHex(this.pubKey).add(secp.Point.fromPrivateKey(childTweak));\n if (added.equals(secp.Point.ZERO)) {\n throw new Error('The tweak was equal to negative P, which made the result key invalid');\n }\n opt.publicKey = added.toRawBytes(true);\n }\n return new HDKey(opt);\n }\n catch (err) {\n return this.deriveChild(index + 1);\n }\n }\n sign(hash) {\n if (!this.privateKey) {\n throw new Error('No privateKey set!');\n }\n assertBytes(hash, 32);\n return secp.signSync(hash, this.privKey, {\n canonical: true,\n der: false,\n });\n }\n verify(hash, signature) {\n assertBytes(hash, 32);\n assertBytes(signature, 64);\n if (!this.publicKey) {\n throw new Error('No publicKey set!');\n }\n let sig;\n try {\n sig = secp.Signature.fromCompact(signature);\n }\n catch (error) {\n return false;\n }\n return secp.verify(sig, hash, this.publicKey);\n }\n wipePrivateData() {\n this.privKey = undefined;\n if (this.privKeyBytes) {\n this.privKeyBytes.fill(0);\n this.privKeyBytes = undefined;\n }\n return this;\n }\n toJSON() {\n return {\n xpriv: this.privateExtendedKey,\n xpub: this.publicExtendedKey,\n };\n }\n serialize(version, key) {\n if (!this.chainCode) {\n throw new Error('No chainCode set');\n }\n assertBytes(key, 33);\n return concatBytes(toU32(version), new Uint8Array([this.depth]), toU32(this.parentFingerprint), toU32(this.index), this.chainCode, key);\n }\n}\n","var __defProp = Object.defineProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\n\n// keys.ts\nimport * as secp256k1 from \"@noble/secp256k1\";\nfunction generatePrivateKey() {\n return secp256k1.utils.bytesToHex(secp256k1.utils.randomPrivateKey());\n}\nfunction getPublicKey(privateKey) {\n return secp256k1.utils.bytesToHex(secp256k1.schnorr.getPublicKey(privateKey));\n}\n\n// event.ts\nimport * as secp256k12 from \"@noble/secp256k1\";\nimport { sha256 } from \"@noble/hashes/sha256\";\n\n// utils.ts\nvar utils_exports = {};\n__export(utils_exports, {\n insertEventIntoAscendingList: () => insertEventIntoAscendingList,\n insertEventIntoDescendingList: () => insertEventIntoDescendingList,\n normalizeURL: () => normalizeURL,\n utf8Decoder: () => utf8Decoder,\n utf8Encoder: () => utf8Encoder\n});\nvar utf8Decoder = new TextDecoder(\"utf-8\");\nvar utf8Encoder = new TextEncoder();\nfunction normalizeURL(url) {\n let p = new URL(url);\n p.pathname = p.pathname.replace(/\\/+/g, \"/\");\n if (p.pathname.endsWith(\"/\"))\n p.pathname = p.pathname.slice(0, -1);\n if (p.port === \"80\" && p.protocol === \"ws:\" || p.port === \"443\" && p.protocol === \"wss:\")\n p.port = \"\";\n p.searchParams.sort();\n p.hash = \"\";\n return p.toString();\n}\nfunction insertEventIntoDescendingList(sortedArray, event) {\n let start = 0;\n let end = sortedArray.length - 1;\n let midPoint;\n let position = start;\n if (end < 0) {\n position = 0;\n } else if (event.created_at < sortedArray[end].created_at) {\n position = end + 1;\n } else if (event.created_at >= sortedArray[start].created_at) {\n position = start;\n } else\n while (true) {\n if (end <= start + 1) {\n position = end;\n break;\n }\n midPoint = Math.floor(start + (end - start) / 2);\n if (sortedArray[midPoint].created_at > event.created_at) {\n start = midPoint;\n } else if (sortedArray[midPoint].created_at < event.created_at) {\n end = midPoint;\n } else {\n position = midPoint;\n break;\n }\n }\n if (sortedArray[position]?.id !== event.id) {\n return [\n ...sortedArray.slice(0, position),\n event,\n ...sortedArray.slice(position)\n ];\n }\n return sortedArray;\n}\nfunction insertEventIntoAscendingList(sortedArray, event) {\n let start = 0;\n let end = sortedArray.length - 1;\n let midPoint;\n let position = start;\n if (end < 0) {\n position = 0;\n } else if (event.created_at > sortedArray[end].created_at) {\n position = end + 1;\n } else if (event.created_at <= sortedArray[start].created_at) {\n position = start;\n } else\n while (true) {\n if (end <= start + 1) {\n position = end;\n break;\n }\n midPoint = Math.floor(start + (end - start) / 2);\n if (sortedArray[midPoint].created_at < event.created_at) {\n start = midPoint;\n } else if (sortedArray[midPoint].created_at > event.created_at) {\n end = midPoint;\n } else {\n position = midPoint;\n break;\n }\n }\n if (sortedArray[position]?.id !== event.id) {\n return [\n ...sortedArray.slice(0, position),\n event,\n ...sortedArray.slice(position)\n ];\n }\n return sortedArray;\n}\n\n// event.ts\nvar Kind = /* @__PURE__ */ ((Kind2) => {\n Kind2[Kind2[\"Metadata\"] = 0] = \"Metadata\";\n Kind2[Kind2[\"Text\"] = 1] = \"Text\";\n Kind2[Kind2[\"RecommendRelay\"] = 2] = \"RecommendRelay\";\n Kind2[Kind2[\"Contacts\"] = 3] = \"Contacts\";\n Kind2[Kind2[\"EncryptedDirectMessage\"] = 4] = \"EncryptedDirectMessage\";\n Kind2[Kind2[\"EventDeletion\"] = 5] = \"EventDeletion\";\n Kind2[Kind2[\"Reaction\"] = 7] = \"Reaction\";\n Kind2[Kind2[\"ChannelCreation\"] = 40] = \"ChannelCreation\";\n Kind2[Kind2[\"ChannelMetadata\"] = 41] = \"ChannelMetadata\";\n Kind2[Kind2[\"ChannelMessage\"] = 42] = \"ChannelMessage\";\n Kind2[Kind2[\"ChannelHideMessage\"] = 43] = \"ChannelHideMessage\";\n Kind2[Kind2[\"ChannelMuteUser\"] = 44] = \"ChannelMuteUser\";\n Kind2[Kind2[\"Report\"] = 1984] = \"Report\";\n Kind2[Kind2[\"ZapRequest\"] = 9734] = \"ZapRequest\";\n Kind2[Kind2[\"Zap\"] = 9735] = \"Zap\";\n Kind2[Kind2[\"RelayList\"] = 10002] = \"RelayList\";\n Kind2[Kind2[\"ClientAuth\"] = 22242] = \"ClientAuth\";\n Kind2[Kind2[\"Article\"] = 30023] = \"Article\";\n return Kind2;\n})(Kind || {});\nfunction getBlankEvent() {\n return {\n kind: 255,\n content: \"\",\n tags: [],\n created_at: 0\n };\n}\nfunction finishEvent(t, privateKey) {\n let event = t;\n event.pubkey = getPublicKey(privateKey);\n event.id = getEventHash(event);\n event.sig = signEvent(event, privateKey);\n return event;\n}\nfunction serializeEvent(evt) {\n if (!validateEvent(evt))\n throw new Error(\"can't serialize event with wrong or missing properties\");\n return JSON.stringify([\n 0,\n evt.pubkey,\n evt.created_at,\n evt.kind,\n evt.tags,\n evt.content\n ]);\n}\nfunction getEventHash(event) {\n let eventHash = sha256(utf8Encoder.encode(serializeEvent(event)));\n return secp256k12.utils.bytesToHex(eventHash);\n}\nfunction validateEvent(event) {\n if (typeof event !== \"object\")\n return false;\n if (typeof event.kind !== \"number\")\n return false;\n if (typeof event.content !== \"string\")\n return false;\n if (typeof event.created_at !== \"number\")\n return false;\n if (typeof event.pubkey !== \"string\")\n return false;\n if (!event.pubkey.match(/^[a-f0-9]{64}$/))\n return false;\n if (!Array.isArray(event.tags))\n return false;\n for (let i = 0; i < event.tags.length; i++) {\n let tag = event.tags[i];\n if (!Array.isArray(tag))\n return false;\n for (let j = 0; j < tag.length; j++) {\n if (typeof tag[j] === \"object\")\n return false;\n }\n }\n return true;\n}\nfunction verifySignature(event) {\n return secp256k12.schnorr.verifySync(\n event.sig,\n getEventHash(event),\n event.pubkey\n );\n}\nfunction signEvent(event, key) {\n return secp256k12.utils.bytesToHex(\n secp256k12.schnorr.signSync(getEventHash(event), key)\n );\n}\n\n// filter.ts\nfunction matchFilter(filter, event) {\n if (filter.ids && filter.ids.indexOf(event.id) === -1) {\n if (!filter.ids.some((prefix) => event.id.startsWith(prefix))) {\n return false;\n }\n }\n if (filter.kinds && filter.kinds.indexOf(event.kind) === -1)\n return false;\n if (filter.authors && filter.authors.indexOf(event.pubkey) === -1) {\n if (!filter.authors.some((prefix) => event.pubkey.startsWith(prefix))) {\n return false;\n }\n }\n for (let f in filter) {\n if (f[0] === \"#\") {\n let tagName = f.slice(1);\n let values = filter[`#${tagName}`];\n if (values && !event.tags.find(\n ([t, v]) => t === f.slice(1) && values.indexOf(v) !== -1\n ))\n return false;\n }\n }\n if (filter.since && event.created_at < filter.since)\n return false;\n if (filter.until && event.created_at >= filter.until)\n return false;\n return true;\n}\nfunction matchFilters(filters, event) {\n for (let i = 0; i < filters.length; i++) {\n if (matchFilter(filters[i], event))\n return true;\n }\n return false;\n}\n\n// fakejson.ts\nvar fakejson_exports = {};\n__export(fakejson_exports, {\n getHex64: () => getHex64,\n getInt: () => getInt,\n getSubscriptionId: () => getSubscriptionId,\n matchEventId: () => matchEventId,\n matchEventKind: () => matchEventKind,\n matchEventPubkey: () => matchEventPubkey\n});\nfunction getHex64(json, field) {\n let len = field.length + 3;\n let idx = json.indexOf(`\"${field}\":`) + len;\n let s = json.slice(idx).indexOf(`\"`) + idx + 1;\n return json.slice(s, s + 64);\n}\nfunction getInt(json, field) {\n let len = field.length;\n let idx = json.indexOf(`\"${field}\":`) + len + 3;\n let sliced = json.slice(idx);\n let end = Math.min(sliced.indexOf(\",\"), sliced.indexOf(\"}\"));\n return parseInt(sliced.slice(0, end), 10);\n}\nfunction getSubscriptionId(json) {\n let idx = json.slice(0, 22).indexOf(`\"EVENT\"`);\n if (idx === -1)\n return null;\n let pstart = json.slice(idx + 7 + 1).indexOf(`\"`);\n if (pstart === -1)\n return null;\n let start = idx + 7 + 1 + pstart;\n let pend = json.slice(start + 1, 80).indexOf(`\"`);\n if (pend === -1)\n return null;\n let end = start + 1 + pend;\n return json.slice(start + 1, end);\n}\nfunction matchEventId(json, id) {\n return id === getHex64(json, \"id\");\n}\nfunction matchEventPubkey(json, pubkey) {\n return pubkey === getHex64(json, \"pubkey\");\n}\nfunction matchEventKind(json, kind) {\n return kind === getInt(json, \"kind\");\n}\n\n// relay.ts\nfunction relayInit(url, options = {}) {\n let { listTimeout = 3e3, getTimeout = 3e3 } = options;\n var ws;\n var openSubs = {};\n var listeners = {\n connect: [],\n disconnect: [],\n error: [],\n notice: []\n };\n var subListeners = {};\n var pubListeners = {};\n var connectionPromise;\n async function connectRelay() {\n if (connectionPromise)\n return connectionPromise;\n connectionPromise = new Promise((resolve, reject) => {\n try {\n ws = new WebSocket(url);\n } catch (err) {\n reject(err);\n }\n ws.onopen = () => {\n listeners.connect.forEach((cb) => cb());\n resolve();\n };\n ws.onerror = () => {\n connectionPromise = void 0;\n listeners.error.forEach((cb) => cb());\n reject();\n };\n ws.onclose = async () => {\n connectionPromise = void 0;\n listeners.disconnect.forEach((cb) => cb());\n };\n let incomingMessageQueue = [];\n let handleNextInterval;\n ws.onmessage = (e) => {\n incomingMessageQueue.push(e.data);\n if (!handleNextInterval) {\n handleNextInterval = setInterval(handleNext, 0);\n }\n };\n function handleNext() {\n if (incomingMessageQueue.length === 0) {\n clearInterval(handleNextInterval);\n handleNextInterval = null;\n return;\n }\n var json = incomingMessageQueue.shift();\n if (!json)\n return;\n let subid = getSubscriptionId(json);\n if (subid) {\n let so = openSubs[subid];\n if (so && so.alreadyHaveEvent && so.alreadyHaveEvent(getHex64(json, \"id\"), url)) {\n return;\n }\n }\n try {\n let data = JSON.parse(json);\n switch (data[0]) {\n case \"EVENT\":\n let id = data[1];\n let event = data[2];\n if (validateEvent(event) && openSubs[id] && (openSubs[id].skipVerification || verifySignature(event)) && matchFilters(openSubs[id].filters, event)) {\n openSubs[id];\n (subListeners[id]?.event || []).forEach((cb) => cb(event));\n }\n return;\n case \"EOSE\": {\n let id2 = data[1];\n if (id2 in subListeners) {\n subListeners[id2].eose.forEach((cb) => cb());\n subListeners[id2].eose = [];\n }\n return;\n }\n case \"OK\": {\n let id2 = data[1];\n let ok = data[2];\n let reason = data[3] || \"\";\n if (id2 in pubListeners) {\n if (ok)\n pubListeners[id2].ok.forEach((cb) => cb());\n else\n pubListeners[id2].failed.forEach((cb) => cb(reason));\n pubListeners[id2].ok = [];\n pubListeners[id2].failed = [];\n }\n return;\n }\n case \"NOTICE\":\n let notice = data[1];\n listeners.notice.forEach((cb) => cb(notice));\n return;\n }\n } catch (err) {\n return;\n }\n }\n });\n return connectionPromise;\n }\n function connected() {\n return ws?.readyState === 1;\n }\n async function connect() {\n if (connected())\n return;\n await connectRelay();\n }\n async function trySend(params) {\n let msg = JSON.stringify(params);\n if (!connected()) {\n await new Promise((resolve) => setTimeout(resolve, 1e3));\n if (!connected()) {\n return;\n }\n }\n try {\n ws.send(msg);\n } catch (err) {\n console.log(err);\n }\n }\n const sub = (filters, {\n skipVerification = false,\n alreadyHaveEvent = null,\n id = Math.random().toString().slice(2)\n } = {}) => {\n let subid = id;\n openSubs[subid] = {\n id: subid,\n filters,\n skipVerification,\n alreadyHaveEvent\n };\n trySend([\"REQ\", subid, ...filters]);\n return {\n sub: (newFilters, newOpts = {}) => sub(newFilters || filters, {\n skipVerification: newOpts.skipVerification || skipVerification,\n alreadyHaveEvent: newOpts.alreadyHaveEvent || alreadyHaveEvent,\n id: subid\n }),\n unsub: () => {\n delete openSubs[subid];\n delete subListeners[subid];\n trySend([\"CLOSE\", subid]);\n },\n on: (type, cb) => {\n subListeners[subid] = subListeners[subid] || {\n event: [],\n eose: []\n };\n subListeners[subid][type].push(cb);\n },\n off: (type, cb) => {\n let listeners2 = subListeners[subid];\n let idx = listeners2[type].indexOf(cb);\n if (idx >= 0)\n listeners2[type].splice(idx, 1);\n }\n };\n };\n return {\n url,\n sub,\n on: (type, cb) => {\n listeners[type].push(cb);\n if (type === \"connect\" && ws?.readyState === 1) {\n ;\n cb();\n }\n },\n off: (type, cb) => {\n let index = listeners[type].indexOf(cb);\n if (index !== -1)\n listeners[type].splice(index, 1);\n },\n list: (filters, opts) => new Promise((resolve) => {\n let s = sub(filters, opts);\n let events = [];\n let timeout = setTimeout(() => {\n s.unsub();\n resolve(events);\n }, listTimeout);\n s.on(\"eose\", () => {\n s.unsub();\n clearTimeout(timeout);\n resolve(events);\n });\n s.on(\"event\", (event) => {\n events.push(event);\n });\n }),\n get: (filter, opts) => new Promise((resolve) => {\n let s = sub([filter], opts);\n let timeout = setTimeout(() => {\n s.unsub();\n resolve(null);\n }, getTimeout);\n s.on(\"event\", (event) => {\n s.unsub();\n clearTimeout(timeout);\n resolve(event);\n });\n }),\n publish(event) {\n if (!event.id)\n throw new Error(`event ${event} has no id`);\n let id = event.id;\n trySend([\"EVENT\", event]);\n return {\n on: (type, cb) => {\n pubListeners[id] = pubListeners[id] || {\n ok: [],\n failed: []\n };\n pubListeners[id][type].push(cb);\n },\n off: (type, cb) => {\n let listeners2 = pubListeners[id];\n if (!listeners2)\n return;\n let idx = listeners2[type].indexOf(cb);\n if (idx >= 0)\n listeners2[type].splice(idx, 1);\n }\n };\n },\n connect,\n close() {\n listeners = { connect: [], disconnect: [], error: [], notice: [] };\n subListeners = {};\n pubListeners = {};\n if (ws.readyState === WebSocket.OPEN) {\n ws?.close();\n }\n },\n get status() {\n return ws?.readyState ?? 3;\n }\n };\n}\n\n// pool.ts\nvar SimplePool = class {\n _conn;\n _seenOn = {};\n eoseSubTimeout;\n getTimeout;\n constructor(options = {}) {\n this._conn = {};\n this.eoseSubTimeout = options.eoseSubTimeout || 3400;\n this.getTimeout = options.getTimeout || 3400;\n }\n close(relays) {\n relays.forEach((url) => {\n let relay = this._conn[normalizeURL(url)];\n if (relay)\n relay.close();\n });\n }\n async ensureRelay(url) {\n const nm = normalizeURL(url);\n if (!this._conn[nm]) {\n this._conn[nm] = relayInit(nm, {\n getTimeout: this.getTimeout * 0.9,\n listTimeout: this.getTimeout * 0.9\n });\n }\n const relay = this._conn[nm];\n await relay.connect();\n return relay;\n }\n sub(relays, filters, opts) {\n let _knownIds = /* @__PURE__ */ new Set();\n let modifiedOpts = { ...opts || {} };\n modifiedOpts.alreadyHaveEvent = (id, url) => {\n if (opts?.alreadyHaveEvent?.(id, url)) {\n return true;\n }\n let set = this._seenOn[id] || /* @__PURE__ */ new Set();\n set.add(url);\n this._seenOn[id] = set;\n return _knownIds.has(id);\n };\n let subs = [];\n let eventListeners = /* @__PURE__ */ new Set();\n let eoseListeners = /* @__PURE__ */ new Set();\n let eosesMissing = relays.length;\n let eoseSent = false;\n let eoseTimeout = setTimeout(() => {\n eoseSent = true;\n for (let cb of eoseListeners.values())\n cb();\n }, this.eoseSubTimeout);\n relays.forEach(async (relay) => {\n let r;\n try {\n r = await this.ensureRelay(relay);\n } catch (err) {\n handleEose();\n return;\n }\n if (!r)\n return;\n let s = r.sub(filters, modifiedOpts);\n s.on(\"event\", (event) => {\n _knownIds.add(event.id);\n for (let cb of eventListeners.values())\n cb(event);\n });\n s.on(\"eose\", () => {\n if (eoseSent)\n return;\n handleEose();\n });\n subs.push(s);\n function handleEose() {\n eosesMissing--;\n if (eosesMissing === 0) {\n clearTimeout(eoseTimeout);\n for (let cb of eoseListeners.values())\n cb();\n }\n }\n });\n let greaterSub = {\n sub(filters2, opts2) {\n subs.forEach((sub) => sub.sub(filters2, opts2));\n return greaterSub;\n },\n unsub() {\n subs.forEach((sub) => sub.unsub());\n },\n on(type, cb) {\n if (type === \"event\") {\n eventListeners.add(cb);\n } else if (type === \"eose\") {\n eoseListeners.add(cb);\n }\n },\n off(type, cb) {\n if (type === \"event\") {\n eventListeners.delete(cb);\n } else if (type === \"eose\")\n eoseListeners.delete(cb);\n }\n };\n return greaterSub;\n }\n get(relays, filter, opts) {\n return new Promise((resolve) => {\n let sub = this.sub(relays, [filter], opts);\n let timeout = setTimeout(() => {\n sub.unsub();\n resolve(null);\n }, this.getTimeout);\n sub.on(\"event\", (event) => {\n resolve(event);\n clearTimeout(timeout);\n sub.unsub();\n });\n });\n }\n list(relays, filters, opts) {\n return new Promise((resolve) => {\n let events = [];\n let sub = this.sub(relays, filters, opts);\n sub.on(\"event\", (event) => {\n events.push(event);\n });\n sub.on(\"eose\", () => {\n sub.unsub();\n resolve(events);\n });\n });\n }\n publish(relays, event) {\n const pubPromises = relays.map(async (relay) => {\n let r;\n try {\n r = await this.ensureRelay(relay);\n return r.publish(event);\n } catch (_) {\n return { on() {\n }, off() {\n } };\n }\n });\n const callbackMap = /* @__PURE__ */ new Map();\n return {\n on(type, cb) {\n relays.forEach(async (relay, i) => {\n let pub = await pubPromises[i];\n let callback = () => cb(relay);\n callbackMap.set(cb, callback);\n pub.on(type, callback);\n });\n },\n off(type, cb) {\n relays.forEach(async (_, i) => {\n let callback = callbackMap.get(cb);\n if (callback) {\n let pub = await pubPromises[i];\n pub.off(type, callback);\n }\n });\n }\n };\n }\n seenOn(id) {\n return Array.from(this._seenOn[id]?.values?.() || []);\n }\n};\n\n// nip19.ts\nvar nip19_exports = {};\n__export(nip19_exports, {\n decode: () => decode,\n naddrEncode: () => naddrEncode,\n neventEncode: () => neventEncode,\n noteEncode: () => noteEncode,\n nprofileEncode: () => nprofileEncode,\n npubEncode: () => npubEncode,\n nsecEncode: () => nsecEncode\n});\nimport * as secp256k13 from \"@noble/secp256k1\";\nimport { bech32 } from \"@scure/base\";\nvar Bech32MaxSize = 5e3;\nfunction decode(nip19) {\n let { prefix, words } = bech32.decode(nip19, Bech32MaxSize);\n let data = new Uint8Array(bech32.fromWords(words));\n switch (prefix) {\n case \"nprofile\": {\n let tlv = parseTLV(data);\n if (!tlv[0]?.[0])\n throw new Error(\"missing TLV 0 for nprofile\");\n if (tlv[0][0].length !== 32)\n throw new Error(\"TLV 0 should be 32 bytes\");\n return {\n type: \"nprofile\",\n data: {\n pubkey: secp256k13.utils.bytesToHex(tlv[0][0]),\n relays: tlv[1] ? tlv[1].map((d) => utf8Decoder.decode(d)) : []\n }\n };\n }\n case \"nevent\": {\n let tlv = parseTLV(data);\n if (!tlv[0]?.[0])\n throw new Error(\"missing TLV 0 for nevent\");\n if (tlv[0][0].length !== 32)\n throw new Error(\"TLV 0 should be 32 bytes\");\n if (tlv[2] && tlv[2][0].length !== 32)\n throw new Error(\"TLV 2 should be 32 bytes\");\n return {\n type: \"nevent\",\n data: {\n id: secp256k13.utils.bytesToHex(tlv[0][0]),\n relays: tlv[1] ? tlv[1].map((d) => utf8Decoder.decode(d)) : [],\n author: tlv[2]?.[0] ? secp256k13.utils.bytesToHex(tlv[2][0]) : void 0\n }\n };\n }\n case \"naddr\": {\n let tlv = parseTLV(data);\n if (!tlv[0]?.[0])\n throw new Error(\"missing TLV 0 for naddr\");\n if (!tlv[2]?.[0])\n throw new Error(\"missing TLV 2 for naddr\");\n if (tlv[2][0].length !== 32)\n throw new Error(\"TLV 2 should be 32 bytes\");\n if (!tlv[3]?.[0])\n throw new Error(\"missing TLV 3 for naddr\");\n if (tlv[3][0].length !== 4)\n throw new Error(\"TLV 3 should be 4 bytes\");\n return {\n type: \"naddr\",\n data: {\n identifier: utf8Decoder.decode(tlv[0][0]),\n pubkey: secp256k13.utils.bytesToHex(tlv[2][0]),\n kind: parseInt(secp256k13.utils.bytesToHex(tlv[3][0]), 16),\n relays: tlv[1] ? tlv[1].map((d) => utf8Decoder.decode(d)) : []\n }\n };\n }\n case \"nsec\":\n case \"npub\":\n case \"note\":\n return { type: prefix, data: secp256k13.utils.bytesToHex(data) };\n default:\n throw new Error(`unknown prefix ${prefix}`);\n }\n}\nfunction parseTLV(data) {\n let result = {};\n let rest = data;\n while (rest.length > 0) {\n let t = rest[0];\n let l = rest[1];\n let v = rest.slice(2, 2 + l);\n rest = rest.slice(2 + l);\n if (v.length < l)\n continue;\n result[t] = result[t] || [];\n result[t].push(v);\n }\n return result;\n}\nfunction nsecEncode(hex) {\n return encodeBytes(\"nsec\", hex);\n}\nfunction npubEncode(hex) {\n return encodeBytes(\"npub\", hex);\n}\nfunction noteEncode(hex) {\n return encodeBytes(\"note\", hex);\n}\nfunction encodeBytes(prefix, hex) {\n let data = secp256k13.utils.hexToBytes(hex);\n let words = bech32.toWords(data);\n return bech32.encode(prefix, words, Bech32MaxSize);\n}\nfunction nprofileEncode(profile) {\n let data = encodeTLV({\n 0: [secp256k13.utils.hexToBytes(profile.pubkey)],\n 1: (profile.relays || []).map((url) => utf8Encoder.encode(url))\n });\n let words = bech32.toWords(data);\n return bech32.encode(\"nprofile\", words, Bech32MaxSize);\n}\nfunction neventEncode(event) {\n let data = encodeTLV({\n 0: [secp256k13.utils.hexToBytes(event.id)],\n 1: (event.relays || []).map((url) => utf8Encoder.encode(url)),\n 2: event.author ? [secp256k13.utils.hexToBytes(event.author)] : []\n });\n let words = bech32.toWords(data);\n return bech32.encode(\"nevent\", words, Bech32MaxSize);\n}\nfunction naddrEncode(addr) {\n let kind = new ArrayBuffer(4);\n new DataView(kind).setUint32(0, addr.kind, false);\n let data = encodeTLV({\n 0: [utf8Encoder.encode(addr.identifier)],\n 1: (addr.relays || []).map((url) => utf8Encoder.encode(url)),\n 2: [secp256k13.utils.hexToBytes(addr.pubkey)],\n 3: [new Uint8Array(kind)]\n });\n let words = bech32.toWords(data);\n return bech32.encode(\"naddr\", words, Bech32MaxSize);\n}\nfunction encodeTLV(tlv) {\n let entries = [];\n Object.entries(tlv).forEach(([t, vs]) => {\n vs.forEach((v) => {\n let entry = new Uint8Array(v.length + 2);\n entry.set([parseInt(t)], 0);\n entry.set([v.length], 1);\n entry.set(v, 2);\n entries.push(entry);\n });\n });\n return secp256k13.utils.concatBytes(...entries);\n}\n\n// references.ts\nvar mentionRegex = /\\bnostr:((note|npub|naddr|nevent|nprofile)1\\w+)\\b|#\\[(\\d+)\\]/g;\nfunction parseReferences(evt) {\n let references = [];\n for (let ref of evt.content.matchAll(mentionRegex)) {\n if (ref[2]) {\n try {\n let { type, data } = decode(ref[1]);\n switch (type) {\n case \"npub\": {\n references.push({\n text: ref[0],\n profile: { pubkey: data, relays: [] }\n });\n break;\n }\n case \"nprofile\": {\n references.push({\n text: ref[0],\n profile: data\n });\n break;\n }\n case \"note\": {\n references.push({\n text: ref[0],\n event: { id: data, relays: [] }\n });\n break;\n }\n case \"nevent\": {\n references.push({\n text: ref[0],\n event: data\n });\n break;\n }\n case \"naddr\": {\n references.push({\n text: ref[0],\n address: data\n });\n break;\n }\n }\n } catch (err) {\n }\n } else if (ref[3]) {\n let idx = parseInt(ref[3], 10);\n let tag = evt.tags[idx];\n if (!tag)\n continue;\n switch (tag[0]) {\n case \"p\": {\n references.push({\n text: ref[0],\n profile: { pubkey: tag[1], relays: tag[2] ? [tag[2]] : [] }\n });\n break;\n }\n case \"e\": {\n references.push({\n text: ref[0],\n event: { id: tag[1], relays: tag[2] ? [tag[2]] : [] }\n });\n break;\n }\n case \"a\": {\n try {\n let [kind, pubkey, identifier] = tag[1].split(\":\");\n references.push({\n text: ref[0],\n address: {\n identifier,\n pubkey,\n kind: parseInt(kind, 10),\n relays: tag[2] ? [tag[2]] : []\n }\n });\n } catch (err) {\n }\n break;\n }\n }\n }\n }\n return references;\n}\n\n// nip04.ts\nvar nip04_exports = {};\n__export(nip04_exports, {\n decrypt: () => decrypt,\n encrypt: () => encrypt\n});\nimport { randomBytes } from \"@noble/hashes/utils\";\nimport * as secp256k14 from \"@noble/secp256k1\";\nimport { base64 } from \"@scure/base\";\nasync function encrypt(privkey, pubkey, text) {\n const key = secp256k14.getSharedSecret(privkey, \"02\" + pubkey);\n const normalizedKey = getNormalizedX(key);\n let iv = Uint8Array.from(randomBytes(16));\n let plaintext = utf8Encoder.encode(text);\n let cryptoKey = await crypto.subtle.importKey(\n \"raw\",\n normalizedKey,\n { name: \"AES-CBC\" },\n false,\n [\"encrypt\"]\n );\n let ciphertext = await crypto.subtle.encrypt(\n { name: \"AES-CBC\", iv },\n cryptoKey,\n plaintext\n );\n let ctb64 = base64.encode(new Uint8Array(ciphertext));\n let ivb64 = base64.encode(new Uint8Array(iv.buffer));\n return `${ctb64}?iv=${ivb64}`;\n}\nasync function decrypt(privkey, pubkey, data) {\n let [ctb64, ivb64] = data.split(\"?iv=\");\n let key = secp256k14.getSharedSecret(privkey, \"02\" + pubkey);\n let normalizedKey = getNormalizedX(key);\n let cryptoKey = await crypto.subtle.importKey(\n \"raw\",\n normalizedKey,\n { name: \"AES-CBC\" },\n false,\n [\"decrypt\"]\n );\n let ciphertext = base64.decode(ctb64);\n let iv = base64.decode(ivb64);\n let plaintext = await crypto.subtle.decrypt(\n { name: \"AES-CBC\", iv },\n cryptoKey,\n ciphertext\n );\n let text = utf8Decoder.decode(plaintext);\n return text;\n}\nfunction getNormalizedX(key) {\n return key.slice(1, 33);\n}\n\n// nip05.ts\nvar nip05_exports = {};\n__export(nip05_exports, {\n queryProfile: () => queryProfile,\n searchDomain: () => searchDomain,\n useFetchImplementation: () => useFetchImplementation\n});\nvar _fetch;\ntry {\n _fetch = fetch;\n} catch {\n}\nfunction useFetchImplementation(fetchImplementation) {\n _fetch = fetchImplementation;\n}\nasync function searchDomain(domain, query = \"\") {\n try {\n let res = await (await _fetch(`https://${domain}/.well-known/nostr.json?name=${query}`)).json();\n return res.names;\n } catch (_) {\n return {};\n }\n}\nasync function queryProfile(fullname) {\n let [name, domain] = fullname.split(\"@\");\n if (!domain) {\n domain = name;\n name = \"_\";\n }\n if (!name.match(/^[A-Za-z0-9-_]+$/))\n return null;\n if (!domain.includes(\".\"))\n return null;\n let res;\n try {\n res = await (await _fetch(`https://${domain}/.well-known/nostr.json?name=${name}`)).json();\n } catch (err) {\n return null;\n }\n if (!res?.names?.[name])\n return null;\n let pubkey = res.names[name];\n let relays = res.relays?.[pubkey] || [];\n return {\n pubkey,\n relays\n };\n}\n\n// nip06.ts\nvar nip06_exports = {};\n__export(nip06_exports, {\n generateSeedWords: () => generateSeedWords,\n privateKeyFromSeedWords: () => privateKeyFromSeedWords,\n validateWords: () => validateWords\n});\nimport * as secp256k15 from \"@noble/secp256k1\";\nimport { wordlist } from \"@scure/bip39/wordlists/english.js\";\nimport {\n generateMnemonic,\n mnemonicToSeedSync,\n validateMnemonic\n} from \"@scure/bip39\";\nimport { HDKey } from \"@scure/bip32\";\nfunction privateKeyFromSeedWords(mnemonic, passphrase) {\n let root = HDKey.fromMasterSeed(mnemonicToSeedSync(mnemonic, passphrase));\n let privateKey = root.derive(`m/44'/1237'/0'/0/0`).privateKey;\n if (!privateKey)\n throw new Error(\"could not derive private key\");\n return secp256k15.utils.bytesToHex(privateKey);\n}\nfunction generateSeedWords() {\n return generateMnemonic(wordlist);\n}\nfunction validateWords(words) {\n return validateMnemonic(words, wordlist);\n}\n\n// nip10.ts\nvar nip10_exports = {};\n__export(nip10_exports, {\n parse: () => parse\n});\nfunction parse(event) {\n const result = {\n reply: void 0,\n root: void 0,\n mentions: [],\n profiles: []\n };\n const eTags = [];\n for (const tag of event.tags) {\n if (tag[0] === \"e\" && tag[1]) {\n eTags.push(tag);\n }\n if (tag[0] === \"p\" && tag[1]) {\n result.profiles.push({\n pubkey: tag[1],\n relays: tag[2] ? [tag[2]] : []\n });\n }\n }\n for (let eTagIndex = 0; eTagIndex < eTags.length; eTagIndex++) {\n const eTag = eTags[eTagIndex];\n const [_, eTagEventId, eTagRelayUrl, eTagMarker] = eTag;\n const eventPointer = {\n id: eTagEventId,\n relays: eTagRelayUrl ? [eTagRelayUrl] : []\n };\n const isFirstETag = eTagIndex === 0;\n const isLastETag = eTagIndex === eTags.length - 1;\n if (eTagMarker === \"root\") {\n result.root = eventPointer;\n continue;\n }\n if (eTagMarker === \"reply\") {\n result.reply = eventPointer;\n continue;\n }\n if (eTagMarker === \"mention\") {\n result.mentions.push(eventPointer);\n continue;\n }\n if (isFirstETag) {\n result.root = eventPointer;\n continue;\n }\n if (isLastETag) {\n result.reply = eventPointer;\n continue;\n }\n result.mentions.push(eventPointer);\n }\n return result;\n}\n\n// nip26.ts\nvar nip26_exports = {};\n__export(nip26_exports, {\n createDelegation: () => createDelegation,\n getDelegator: () => getDelegator\n});\nimport * as secp256k16 from \"@noble/secp256k1\";\nimport { sha256 as sha2562 } from \"@noble/hashes/sha256\";\nfunction createDelegation(privateKey, parameters) {\n let conditions = [];\n if ((parameters.kind || -1) >= 0)\n conditions.push(`kind=${parameters.kind}`);\n if (parameters.until)\n conditions.push(`created_at<${parameters.until}`);\n if (parameters.since)\n conditions.push(`created_at>${parameters.since}`);\n let cond = conditions.join(\"&\");\n if (cond === \"\")\n throw new Error(\"refusing to create a delegation without any conditions\");\n let sighash = sha2562(\n utf8Encoder.encode(`nostr:delegation:${parameters.pubkey}:${cond}`)\n );\n let sig = secp256k16.utils.bytesToHex(\n secp256k16.schnorr.signSync(sighash, privateKey)\n );\n return {\n from: getPublicKey(privateKey),\n to: parameters.pubkey,\n cond,\n sig\n };\n}\nfunction getDelegator(event) {\n let tag = event.tags.find((tag2) => tag2[0] === \"delegation\" && tag2.length >= 4);\n if (!tag)\n return null;\n let pubkey = tag[1];\n let cond = tag[2];\n let sig = tag[3];\n let conditions = cond.split(\"&\");\n for (let i = 0; i < conditions.length; i++) {\n let [key, operator, value] = conditions[i].split(/\\b/);\n if (key === \"kind\" && operator === \"=\" && event.kind === parseInt(value))\n continue;\n else if (key === \"created_at\" && operator === \"<\" && event.created_at < parseInt(value))\n continue;\n else if (key === \"created_at\" && operator === \">\" && event.created_at > parseInt(value))\n continue;\n else\n return null;\n }\n let sighash = sha2562(\n utf8Encoder.encode(`nostr:delegation:${event.pubkey}:${cond}`)\n );\n if (!secp256k16.schnorr.verifySync(sig, sighash, pubkey))\n return null;\n return pubkey;\n}\n\n// nip39.ts\nvar nip39_exports = {};\n__export(nip39_exports, {\n useFetchImplementation: () => useFetchImplementation2,\n validateGithub: () => validateGithub\n});\nvar _fetch2;\ntry {\n _fetch2 = fetch;\n} catch {\n}\nfunction useFetchImplementation2(fetchImplementation) {\n _fetch2 = fetchImplementation;\n}\nasync function validateGithub(pubkey, username, proof) {\n try {\n let res = await (await _fetch2(`https://gist.github.com/${username}/${proof}/raw`)).text();\n return res === `Verifying that I control the following Nostr public key: ${pubkey}`;\n } catch (_) {\n return false;\n }\n}\n\n// nip57.ts\nvar nip57_exports = {};\n__export(nip57_exports, {\n getZapEndpoint: () => getZapEndpoint,\n makeZapReceipt: () => makeZapReceipt,\n makeZapRequest: () => makeZapRequest,\n useFetchImplementation: () => useFetchImplementation3,\n validateZapRequest: () => validateZapRequest\n});\nimport { bech32 as bech322 } from \"@scure/base\";\nvar _fetch3;\ntry {\n _fetch3 = fetch;\n} catch {\n}\nfunction useFetchImplementation3(fetchImplementation) {\n _fetch3 = fetchImplementation;\n}\nasync function getZapEndpoint(metadata) {\n try {\n let lnurl = \"\";\n let { lud06, lud16 } = JSON.parse(metadata.content);\n if (lud06) {\n let { words } = bech322.decode(lud06, 1e3);\n let data = bech322.fromWords(words);\n lnurl = utf8Decoder.decode(data);\n } else if (lud16) {\n let [name, domain] = lud16.split(\"@\");\n lnurl = `https://${domain}/.well-known/lnurlp/${name}`;\n } else {\n return null;\n }\n let res = await _fetch3(lnurl);\n let body = await res.json();\n if (body.allowsNostr && body.nostrPubkey) {\n return body.callback;\n }\n } catch (err) {\n }\n return null;\n}\nfunction makeZapRequest({\n profile,\n event,\n amount,\n relays,\n comment = \"\"\n}) {\n if (!amount)\n throw new Error(\"amount not given\");\n if (!profile)\n throw new Error(\"profile not given\");\n let zr = {\n kind: 9734,\n created_at: Math.round(Date.now() / 1e3),\n content: comment,\n tags: [\n [\"p\", profile],\n [\"amount\", amount.toString()],\n [\"relays\", ...relays]\n ]\n };\n if (event) {\n zr.tags.push([\"e\", event]);\n }\n return zr;\n}\nfunction validateZapRequest(zapRequestString) {\n let zapRequest;\n try {\n zapRequest = JSON.parse(zapRequestString);\n } catch (err) {\n return \"Invalid zap request JSON.\";\n }\n if (!validateEvent(zapRequest))\n return \"Zap request is not a valid Nostr event.\";\n if (!verifySignature(zapRequest))\n return \"Invalid signature on zap request.\";\n let p = zapRequest.tags.find(([t, v]) => t === \"p\" && v);\n if (!p)\n return \"Zap request doesn't have a 'p' tag.\";\n if (!p[1].match(/^[a-f0-9]{64}$/))\n return \"Zap request 'p' tag is not valid hex.\";\n let e = zapRequest.tags.find(([t, v]) => t === \"e\" && v);\n if (e && !e[1].match(/^[a-f0-9]{64}$/))\n return \"Zap request 'e' tag is not valid hex.\";\n let relays = zapRequest.tags.find(([t, v]) => t === \"relays\" && v);\n if (!relays)\n return \"Zap request doesn't have a 'relays' tag.\";\n return null;\n}\nfunction makeZapReceipt({\n zapRequest,\n preimage,\n bolt11,\n paidAt\n}) {\n let zr = JSON.parse(zapRequest);\n let tagsFromZapRequest = zr.tags.filter(\n ([t]) => t === \"e\" || t === \"p\" || t === \"a\"\n );\n let zap = {\n kind: 9735,\n created_at: Math.round(paidAt.getTime() / 1e3),\n content: \"\",\n tags: [\n ...tagsFromZapRequest,\n [\"bolt11\", bolt11],\n [\"description\", zapRequest]\n ]\n };\n if (preimage) {\n zap.tags.push([\"preimage\", preimage]);\n }\n return zap;\n}\n\n// index.ts\nimport * as secp256k17 from \"@noble/secp256k1\";\nimport { hmac } from \"@noble/hashes/hmac\";\nimport { sha256 as sha2563 } from \"@noble/hashes/sha256\";\nsecp256k17.utils.hmacSha256Sync = (key, ...msgs) => hmac(sha2563, key, secp256k17.utils.concatBytes(...msgs));\nsecp256k17.utils.sha256Sync = (...msgs) => sha2563(secp256k17.utils.concatBytes(...msgs));\nexport {\n Kind,\n SimplePool,\n finishEvent,\n fakejson_exports as fj,\n generatePrivateKey,\n getBlankEvent,\n getEventHash,\n getPublicKey,\n matchFilter,\n matchFilters,\n nip04_exports as nip04,\n nip05_exports as nip05,\n nip06_exports as nip06,\n nip10_exports as nip10,\n nip19_exports as nip19,\n nip26_exports as nip26,\n nip39_exports as nip39,\n nip57_exports as nip57,\n parseReferences,\n relayInit,\n serializeEvent,\n signEvent,\n utils_exports as utils,\n validateEvent,\n verifySignature\n};\n","const WS = WebSocket// typeof WebSocket !== 'undefined' ? WebSocket : require('ws')\n\nRelay.prototype.wait_connected = async function relay_wait_connected(data) {\n\tlet retry = 1000\n\twhile (true) {\n\t\tif (this.ws.readyState !== 1) {\n\t\t\tawait sleep(retry)\n\t\t\tretry *= 1.5\n\t\t}\n\t\telse {\n\t\t\treturn\n\t\t}\n\t}\n}\n\n\nfunction Relay(relay, opts={})\n{\n\tif (!(this instanceof Relay))\n\t\treturn new Relay(relay, opts)\n\n\tthis.url = relay\n\tthis.opts = opts\n\n\tif (opts.reconnect == null)\n\t\topts.reconnect = true\n\n\tconst me = this\n\tme.onfn = {}\n\n\tinit_websocket(me)\n\t\t.catch(e => {\n\t\t\tif (me.onfn.error)\n\t\t\t\tme.onfn.error(e)\n\t\t})\n\n\treturn this\n}\n\nfunction init_websocket(me) {\n\treturn new Promise((resolve, reject) => {\n\t\tconst ws = me.ws = new WS(me.url);\n\n\t\tlet resolved = false\n\t\tws.onmessage = (m) => {\n\t\t\thandle_nostr_message(me, m)\n\t\t\tif (me.onfn.message)\n\t\t\t\tme.onfn.message(m)\n\t\t}\n\t\tws.onclose = (e) => {\n\t\t\tif (me.onfn.close)\n\t\t\t\tme.onfn.close(e)\n\t\t\tif (me.reconnecting)\n\t\t\t\treturn reject(new Error(\"close during reconnect\"))\n\t\t\tif (!me.manualClose && me.opts.reconnect)\n\t\t\t\treconnect(me)\n\t\t}\n\t\tws.onerror = (e) => {\n\t\t\tif (me.onfn.error)\n\t\t\t\tme.onfn.error(e)\n\t\t\tif (me.reconnecting)\n\t\t\t\treturn reject(new Error(\"error during reconnect\"))\n\t\t\tif (me.opts.reconnect)\n\t\t\t\treconnect(me)\n\t\t}\n\t\tws.onopen = (e) => {\n\t\t\tif (me.onfn.open)\n\t\t\t\tme.onfn.open(e)\n\n\t\t\tif (resolved) return\n\n\t\t\tresolved = true\n\t\t\tresolve(me)\n\t\t}\n\t});\n}\n\nfunction sleep(ms) {\n return new Promise(resolve => setTimeout(resolve, ms));\n}\n\nasync function reconnect(me)\n{\n\tconst reconnecting = true\n\tlet n = 100\n\ttry {\n\t\tme.reconnecting = true\n\t\tawait init_websocket(me)\n\t\tme.reconnecting = false\n\t} catch {\n\t\t//console.error(`error thrown during reconnect... trying again in ${n} ms`)\n\t\tawait sleep(n)\n\t\tn *= 1.5\n\t}\n}\n\nRelay.prototype.on = function relayOn(method, fn) {\n\tthis.onfn[method] = fn\n\treturn this\n}\n\nRelay.prototype.close = function relayClose() {\n\tif (this.ws) {\n\t\tthis.manualClose = true\n\t\tthis.ws.close()\n\t}\n}\n\nRelay.prototype.subscribe = function relay_subscribe(sub_id, filters) {\n\tif (Array.isArray(filters))\n\t\tthis.send([\"REQ\", sub_id, ...filters])\n\telse\n\t\tthis.send([\"REQ\", sub_id, filters])\n}\n\nRelay.prototype.unsubscribe = function relay_unsubscribe(sub_id) {\n\tthis.send([\"CLOSE\", sub_id])\n}\n\nRelay.prototype.send = async function relay_send(data) {\n\tawait this.wait_connected()\n\tthis.ws.send(JSON.stringify(data))\n}\n\nfunction handle_nostr_message(relay, msg)\n{\n\tlet data\n\ttry {\n\t\tdata = JSON.parse(msg.data)\n\t} catch (e) {\n\t\tconsole.error(\"handle_nostr_message\", e)\n\t\treturn\n\t}\n\tif (data.length >= 2) {\n\t\tswitch (data[0]) {\n\t\tcase \"EVENT\":\n\t\t\tif (data.length < 3)\n\t\t\t\treturn\n\t\t\treturn relay.onfn.event && relay.onfn.event(data[1], data[2])\n\t\tcase \"EOSE\":\n\t\t\treturn relay.onfn.eose && relay.onfn.eose(data[1])\n\t\tcase \"NOTICE\":\n\t\t\treturn relay.onfn.notice && relay.onfn.notice(...data.slice(1))\n\t\tcase \"OK\":\n\t\t\treturn relay.onfn.ok && relay.onfn.ok(...data.slice(1))\n\t\t}\n\t}\n}\n\nmodule.exports = Relay\n","\nconst Relay = require('./relay')\n\nfunction RelayPool(relays, opts)\n{\n\tif (!(this instanceof RelayPool))\n\t\treturn new RelayPool(relays, opts)\n\n\tthis.onfn = {}\n\tthis.relays = []\n\tthis.opts = opts\n\n\tfor (const relay of relays) {\n\t\tthis.add(relay)\n\t}\n\n\treturn this\n}\n\nRelayPool.prototype.close = function relayPoolClose() {\n\tfor (const relay of this.relays) {\n\t\trelay.close()\n\t}\n}\n\nRelayPool.prototype.on = function relayPoolOn(method, fn) {\n\tfor (const relay of this.relays) {\n\t\tthis.onfn[method] = fn\n\t\trelay.onfn[method] = fn.bind(null, relay)\n\t}\n\treturn this\n}\n\nRelayPool.prototype.has = function relayPoolHas(relayUrl) {\n\tfor (const relay of this.relays) {\n\t\tif (relay.url === relayUrl)\n\t\t\treturn true\n\t}\n\n\treturn false\n}\n\nRelayPool.prototype.send = function relayPoolSend(payload, relay_ids) {\n\tconst relays = relay_ids ? this.find_relays(relay_ids) : this.relays\n\tfor (const relay of relays) {\n\t\trelay.send(payload)\n\t}\n}\n\nRelayPool.prototype.setupHandlers = function relayPoolSetupHandlers()\n{\n\t// setup its message handlers with the ones we have already\n\tconst keys = Object.keys(this.onfn)\n\tfor (const handler of keys) {\n\t\tfor (const relay of this.relays) {\n\t\t\trelay.onfn[handler] = this.onfn[handler].bind(null, relay)\n\t\t}\n\t}\n}\n\nRelayPool.prototype.remove = function relayPoolRemove(url) {\n\tlet i = 0\n\n\tfor (const relay of this.relays) {\n\t\tif (relay.url === url) {\n\t\t\trelay.ws && relay.ws.close()\n\t\t\tthis.relays = this.replays.splice(i, 1)\n\t\t\treturn true\n\t\t}\n\n\t\ti += 1\n\t}\n\n\treturn false\n}\n\nRelayPool.prototype.subscribe = function relayPoolSubscribe(sub_id, filters, relay_ids) {\n\tconst relays = relay_ids ? this.find_relays(relay_ids) : this.relays\n\tfor (const relay of relays) {\n\t\trelay.subscribe(sub_id, filters)\n\t}\n}\n\nRelayPool.prototype.unsubscribe = function relayPoolUnsubscibe(sub_id, relay_ids) {\n\tconst relays = relay_ids ? this.find_relays(relay_ids) : this.relays\n\tfor (const relay of relays) {\n\t\trelay.unsubscribe(sub_id)\n\t}\n}\n\n\nRelayPool.prototype.add = function relayPoolAdd(relay) {\n\tif (relay instanceof Relay) {\n\t\tif (this.has(relay.url))\n\t\t\treturn false\n\n\t\tthis.relays.push(relay)\n\t\tthis.setupHandlers()\n\t\treturn true\n\t}\n\n\tif (this.has(relay))\n\t\treturn false\n\n\tconst r = Relay(relay, this.opts)\n\tthis.relays.push(r)\n\tthis.setupHandlers()\n\treturn true\n}\n\nRelayPool.prototype.find_relays = function relayPoolFindRelays(relay_ids) {\n\tif (relay_ids instanceof Relay)\n\t\treturn [relay_ids]\n\n\tif (relay_ids.length === 0)\n\t\treturn []\n\n\tif (!relay_ids[0])\n\t\tthrow new Error(\"what!?\")\n\n\tif (relay_ids[0] instanceof Relay)\n\t\treturn relay_ids\n\n\treturn this.relays.reduce((acc, relay) => {\n\t\tif (relay_ids.some((rid) => relay.url === rid))\n\t\t\tacc.push(relay)\n\t\treturn acc\n\t}, [])\n}\n\nmodule.exports = RelayPool\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\t\tlet namespacesCache;\n\t\tlet enabledCache;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => {\n\t\t\t\tif (enableOverride !== null) {\n\t\t\t\t\treturn enableOverride;\n\t\t\t\t}\n\t\t\t\tif (namespacesCache !== createDebug.namespaces) {\n\t\t\t\t\tnamespacesCache = createDebug.namespaces;\n\t\t\t\t\tenabledCache = createDebug.enabled(namespace);\n\t\t\t\t}\n\n\t\t\t\treturn enabledCache;\n\t\t\t},\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\t\tcreateDebug.namespaces = namespaces;\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tlet i;\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n\t\tconst len = split.length;\n\n\t\tfor (i = 0; i < len; i++) {\n\t\t\tif (!split[i]) {\n\t\t\t\t// ignore empty strings\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tnamespaces = split[i].replace(/\\*/g, '.*?');\n\n\t\t\tif (namespaces[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(new RegExp('^' + namespaces.slice(1) + '$'));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(new RegExp('^' + namespaces + '$'));\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names.map(toNamespace),\n\t\t\t...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tif (name[name.length - 1] === '*') {\n\t\t\treturn true;\n\t\t}\n\n\t\tlet i;\n\t\tlet len;\n\n\t\tfor (i = 0, len = createDebug.skips.length; i < len; i++) {\n\t\t\tif (createDebug.skips[i].test(name)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0, len = createDebug.names.length; i < len; i++) {\n\t\t\tif (createDebug.names[i].test(name)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Convert regexp to namespace\n\t*\n\t* @param {RegExp} regxep\n\t* @return {String} namespace\n\t* @api private\n\t*/\n\tfunction toNamespace(regexp) {\n\t\treturn regexp.toString()\n\t\t\t.substring(2, regexp.toString().length - 2)\n\t\t\t.replace(/\\.\\*\\?$/, '*');\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n","/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug');\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.is_node = void 0;\r\n//================================================================\r\n/**\r\n * @packageDocumentation\r\n * @module std\r\n */\r\n//================================================================\r\nvar is_node_ = null;\r\n/**\r\n * Test whether the code is running on NodeJS.\r\n *\r\n * @return Whether NodeJS or not.\r\n */\r\nfunction is_node() {\r\n if (is_node_ === null)\r\n is_node_ =\r\n typeof global === \"object\" &&\r\n typeof global.process === \"object\" &&\r\n typeof global.process.versions === \"object\" &&\r\n typeof global.process.versions.node !== \"undefined\";\r\n return is_node_;\r\n}\r\nexports.is_node = is_node;\r\n//# sourceMappingURL=node.js.map","var naiveFallback = function () {\n\tif (typeof self === \"object\" && self) return self;\n\tif (typeof window === \"object\" && window) return window;\n\tthrow new Error(\"Unable to resolve global `this`\");\n};\n\nmodule.exports = (function () {\n\tif (this) return this;\n\n\t// Unexpected strict mode (may happen if e.g. bundled into ESM module)\n\n\t// Fallback to standard globalThis if available\n\tif (typeof globalThis === \"object\" && globalThis) return globalThis;\n\n\t// Thanks @mathiasbynens -> https://mathiasbynens.be/notes/globalthis\n\t// In all ES5+ engines global object inherits from Object.prototype\n\t// (if you approached one that doesn't please report)\n\ttry {\n\t\tObject.defineProperty(Object.prototype, \"__global__\", {\n\t\t\tget: function () { return this; },\n\t\t\tconfigurable: true\n\t\t});\n\t} catch (error) {\n\t\t// Unfortunate case of updates to Object.prototype being restricted\n\t\t// via preventExtensions, seal or freeze\n\t\treturn naiveFallback();\n\t}\n\ttry {\n\t\t// Safari case (window.__global__ works, but __global__ does not)\n\t\tif (!__global__) return naiveFallback();\n\t\treturn __global__;\n\t} finally {\n\t\tdelete Object.prototype.__global__;\n\t}\n})();\n","module.exports = require('../package.json').version;\n","var _globalThis;\nif (typeof globalThis === 'object') {\n\t_globalThis = globalThis;\n} else {\n\ttry {\n\t\t_globalThis = require('es5-ext/global');\n\t} catch (error) {\n\t} finally {\n\t\tif (!_globalThis && typeof window !== 'undefined') { _globalThis = window; }\n\t\tif (!_globalThis) { throw new Error('Could not determine global this'); }\n\t}\n}\n\nvar NativeWebSocket = _globalThis.WebSocket || _globalThis.MozWebSocket;\nvar websocket_version = require('./version');\n\n\n/**\n * Expose a W3C WebSocket class with just one or two arguments.\n */\nfunction W3CWebSocket(uri, protocols) {\n\tvar native_instance;\n\n\tif (protocols) {\n\t\tnative_instance = new NativeWebSocket(uri, protocols);\n\t}\n\telse {\n\t\tnative_instance = new NativeWebSocket(uri);\n\t}\n\n\t/**\n\t * 'native_instance' is an instance of nativeWebSocket (the browser's WebSocket\n\t * class). Since it is an Object it will be returned as it is when creating an\n\t * instance of W3CWebSocket via 'new W3CWebSocket()'.\n\t *\n\t * ECMAScript 5: http://bclary.com/2004/11/07/#a-13.2.2\n\t */\n\treturn native_instance;\n}\nif (NativeWebSocket) {\n\t['CONNECTING', 'OPEN', 'CLOSING', 'CLOSED'].forEach(function(prop) {\n\t\tObject.defineProperty(W3CWebSocket, prop, {\n\t\t\tget: function() { return NativeWebSocket[prop]; }\n\t\t});\n\t});\n}\n\n/**\n * Module exports.\n */\nmodule.exports = {\n 'w3cwebsocket' : NativeWebSocket ? W3CWebSocket : null,\n 'version' : websocket_version\n};\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ForOfAdaptor = void 0;\r\n/**\r\n * Adaptor for `for ... of` iteration.\r\n *\r\n * @author Jeongho Nam - https://github.com/samchon\r\n */\r\nvar ForOfAdaptor = /** @class */ (function () {\r\n /**\r\n * Initializer Constructor.\r\n *\r\n * @param first Input iteartor of the first position.\r\n * @param last Input iterator of the last position.\r\n */\r\n function ForOfAdaptor(first, last) {\r\n this.it_ = first;\r\n this.last_ = last;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n ForOfAdaptor.prototype.next = function () {\r\n if (this.it_.equals(this.last_))\r\n return {\r\n done: true,\r\n value: undefined,\r\n };\r\n else {\r\n var it = this.it_;\r\n this.it_ = this.it_.next();\r\n return {\r\n done: false,\r\n value: it.value,\r\n };\r\n }\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n ForOfAdaptor.prototype[Symbol.iterator] = function () {\r\n return this;\r\n };\r\n return ForOfAdaptor;\r\n}());\r\nexports.ForOfAdaptor = ForOfAdaptor;\r\n//# sourceMappingURL=ForOfAdaptor.js.map","\"use strict\";\r\nvar __values = (this && this.__values) || function(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Container = void 0;\r\nvar ForOfAdaptor_1 = require(\"../../internal/iterator/disposable/ForOfAdaptor\");\r\n/**\r\n * Basic container.\r\n *\r\n * @template T Stored elements' type\r\n * @template SourceT Derived type extending this {@link Container}\r\n * @template IteratorT Iterator type\r\n * @template ReverseT Reverse iterator type\r\n * @template PElem Parent type of *T*, used for inserting elements through {@link assign} and {@link insert}.\r\n *\r\n * @author Jeongho Nam - https://github.com/samchon\r\n */\r\nvar Container = /** @class */ (function () {\r\n function Container() {\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n Container.prototype.empty = function () {\r\n return this.size() === 0;\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n Container.prototype.rbegin = function () {\r\n return this.end().reverse();\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n Container.prototype.rend = function () {\r\n return this.begin().reverse();\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n Container.prototype[Symbol.iterator] = function () {\r\n return new ForOfAdaptor_1.ForOfAdaptor(this.begin(), this.end());\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n Container.prototype.toJSON = function () {\r\n var e_1, _a;\r\n var ret = [];\r\n try {\r\n for (var _b = __values(this), _c = _b.next(); !_c.done; _c = _b.next()) {\r\n var elem = _c.value;\r\n ret.push(elem);\r\n }\r\n }\r\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\r\n finally {\r\n try {\r\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\r\n }\r\n finally { if (e_1) throw e_1.error; }\r\n }\r\n return ret;\r\n };\r\n return Container;\r\n}());\r\nexports.Container = Container;\r\n//# sourceMappingURL=Container.js.map","\"use strict\";\r\nvar __read = (this && this.__read) || function (o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.NativeArrayIterator = void 0;\r\nvar NativeArrayIterator = /** @class */ (function () {\r\n /* ---------------------------------------------------------\r\n CONSTRUCTORS\r\n --------------------------------------------------------- */\r\n function NativeArrayIterator(data, index) {\r\n this.data_ = data;\r\n this.index_ = index;\r\n }\r\n /* ---------------------------------------------------------\r\n ACCESSORS\r\n --------------------------------------------------------- */\r\n NativeArrayIterator.prototype.index = function () {\r\n return this.index_;\r\n };\r\n Object.defineProperty(NativeArrayIterator.prototype, \"value\", {\r\n get: function () {\r\n return this.data_[this.index_];\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /* ---------------------------------------------------------\r\n MOVERS\r\n --------------------------------------------------------- */\r\n NativeArrayIterator.prototype.prev = function () {\r\n --this.index_;\r\n return this;\r\n };\r\n NativeArrayIterator.prototype.next = function () {\r\n ++this.index_;\r\n return this;\r\n };\r\n NativeArrayIterator.prototype.advance = function (n) {\r\n this.index_ += n;\r\n return this;\r\n };\r\n /* ---------------------------------------------------------\r\n COMPARES\r\n --------------------------------------------------------- */\r\n NativeArrayIterator.prototype.equals = function (obj) {\r\n return this.data_ === obj.data_ && this.index_ === obj.index_;\r\n };\r\n NativeArrayIterator.prototype.swap = function (obj) {\r\n var _a, _b;\r\n _a = __read([obj.data_, this.data_], 2), this.data_ = _a[0], obj.data_ = _a[1];\r\n _b = __read([obj.index_, this.index_], 2), this.index_ = _b[0], obj.index_ = _b[1];\r\n };\r\n return NativeArrayIterator;\r\n}());\r\nexports.NativeArrayIterator = NativeArrayIterator;\r\n//# sourceMappingURL=NativeArrayIterator.js.map","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SetContainer = void 0;\r\nvar Container_1 = require(\"./Container\");\r\nvar NativeArrayIterator_1 = require(\"../../internal/iterator/disposable/NativeArrayIterator\");\r\n/**\r\n * Basic set container.\r\n *\r\n * @template Key Key type\r\n * @template Unique Whether duplicated key is blocked or not\r\n * @template Source Derived type extending this {@link SetContainer}\r\n * @template IteratorT Iterator type\r\n * @template ReverseT Reverse iterator type\r\n *\r\n * @author Jeongho Nam - https://github.com/samchon\r\n */\r\nvar SetContainer = /** @class */ (function (_super) {\r\n __extends(SetContainer, _super);\r\n /* ---------------------------------------------------------\r\n CONSTURCTORS\r\n --------------------------------------------------------- */\r\n /**\r\n * Default Constructor.\r\n */\r\n function SetContainer(factory) {\r\n var _this = _super.call(this) || this;\r\n _this.data_ = factory(_this);\r\n return _this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n SetContainer.prototype.assign = function (first, last) {\r\n // INSERT\r\n this.clear();\r\n this.insert(first, last);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n SetContainer.prototype.clear = function () {\r\n // TO BE ABSTRACT\r\n this.data_.clear();\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n SetContainer.prototype.begin = function () {\r\n return this.data_.begin();\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n SetContainer.prototype.end = function () {\r\n return this.data_.end();\r\n };\r\n /* ---------------------------------------------------------\r\n ELEMENTS\r\n --------------------------------------------------------- */\r\n /**\r\n * @inheritDoc\r\n */\r\n SetContainer.prototype.has = function (key) {\r\n return !this.find(key).equals(this.end());\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n SetContainer.prototype.size = function () {\r\n return this.data_.size();\r\n };\r\n /* =========================================================\r\n ELEMENTS I/O\r\n - INSERT\r\n - ERASE\r\n - UTILITY\r\n - POST-PROCESS\r\n ============================================================\r\n INSERT\r\n --------------------------------------------------------- */\r\n /**\r\n * @inheritDoc\r\n */\r\n SetContainer.prototype.push = function () {\r\n var items = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n items[_i] = arguments[_i];\r\n }\r\n if (items.length === 0)\r\n return this.size();\r\n // INSERT BY RANGE\r\n var first = new NativeArrayIterator_1.NativeArrayIterator(items, 0);\r\n var last = new NativeArrayIterator_1.NativeArrayIterator(items, items.length);\r\n this._Insert_by_range(first, last);\r\n // RETURN SIZE\r\n return this.size();\r\n };\r\n SetContainer.prototype.insert = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (args.length === 1)\r\n return this._Insert_by_key(args[0]);\r\n else if (args[0].next instanceof Function &&\r\n args[1].next instanceof Function)\r\n return this._Insert_by_range(args[0], args[1]);\r\n else\r\n return this._Insert_by_hint(args[0], args[1]);\r\n };\r\n SetContainer.prototype.erase = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (args.length === 1 &&\r\n !(args[0] instanceof this.end().constructor &&\r\n args[0].source() === this))\r\n return this._Erase_by_val(args[0]);\r\n else if (args.length === 1)\r\n return this._Erase_by_range(args[0]);\r\n else\r\n return this._Erase_by_range(args[0], args[1]);\r\n };\r\n SetContainer.prototype._Erase_by_range = function (first, last) {\r\n if (last === void 0) { last = first.next(); }\r\n // ERASE\r\n var it = this.data_.erase(first, last);\r\n // POST-PROCESS\r\n this._Handle_erase(first, last);\r\n return it;\r\n };\r\n return SetContainer;\r\n}(Container_1.Container));\r\nexports.SetContainer = SetContainer;\r\n//# sourceMappingURL=SetContainer.js.map","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Exception = void 0;\r\n//================================================================\r\n/**\r\n * @packageDocumentation\r\n * @module std\r\n */\r\n//================================================================\r\n/**\r\n * Base Exception.\r\n *\r\n * @author Jeongho Nam - https://github.com/samchon\r\n */\r\nvar Exception = /** @class */ (function (_super) {\r\n __extends(Exception, _super);\r\n /* ---------------------------------------------------------\r\n CONSTRUCTOR\r\n --------------------------------------------------------- */\r\n /**\r\n * Initializer Constructor.\r\n *\r\n * @param message The error messgae.\r\n */\r\n function Exception(message) {\r\n var _newTarget = this.constructor;\r\n var _this = _super.call(this, message) || this;\r\n // INHERITANCE POLYFILL\r\n var proto = _newTarget.prototype;\r\n if (Object.setPrototypeOf)\r\n Object.setPrototypeOf(_this, proto);\r\n else\r\n _this.__proto__ = proto;\r\n return _this;\r\n }\r\n Object.defineProperty(Exception.prototype, \"name\", {\r\n /* ---------------------------------------------------------\r\n ACCESSORS\r\n --------------------------------------------------------- */\r\n /**\r\n * The error name.\r\n */\r\n get: function () {\r\n return this.constructor.name;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Get error message.\r\n *\r\n * @return The error message.\r\n */\r\n Exception.prototype.what = function () {\r\n return this.message;\r\n };\r\n /**\r\n * Native function for `JSON.stringify()`.\r\n *\r\n * The {@link Exception.toJSON} function returns only three properties; ({@link name}, {@link message} and {@link stack}). If you want to define a new sub-class extending the {@link Exception} and const the class to export additional props (or remove some props), override this {@link Exception.toJSON} method.\r\n *\r\n * @return An object for `JSON.stringify()`.\r\n */\r\n Exception.prototype.toJSON = function () {\r\n return {\r\n name: this.name,\r\n message: this.message,\r\n stack: this.stack,\r\n };\r\n };\r\n return Exception;\r\n}(Error));\r\nexports.Exception = Exception;\r\n//# sourceMappingURL=Exception.js.map","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LogicError = void 0;\r\n//================================================================\r\n/**\r\n * @packageDocumentation\r\n * @module std\r\n */\r\n//================================================================\r\nvar Exception_1 = require(\"./Exception\");\r\n/**\r\n * Logic Error.\r\n *\r\n * @author Jeongho Nam - https://github.com/samchon\r\n */\r\nvar LogicError = /** @class */ (function (_super) {\r\n __extends(LogicError, _super);\r\n /**\r\n * Initializer Constructor.\r\n *\r\n * @param message The error messgae.\r\n */\r\n function LogicError(message) {\r\n return _super.call(this, message) || this;\r\n }\r\n return LogicError;\r\n}(Exception_1.Exception));\r\nexports.LogicError = LogicError;\r\n//# sourceMappingURL=LogicError.js.map","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.InvalidArgument = void 0;\r\n//================================================================\r\n/**\r\n * @packageDocumentation\r\n * @module std\r\n */\r\n//================================================================\r\nvar LogicError_1 = require(\"./LogicError\");\r\n/**\r\n * Invalid Argument Exception.\r\n *\r\n * @author Jeongho Nam - https://github.com/samchon\r\n */\r\nvar InvalidArgument = /** @class */ (function (_super) {\r\n __extends(InvalidArgument, _super);\r\n /**\r\n * Initializer Constructor.\r\n *\r\n * @param message The error messgae.\r\n */\r\n function InvalidArgument(message) {\r\n return _super.call(this, message) || this;\r\n }\r\n return InvalidArgument;\r\n}(LogicError_1.LogicError));\r\nexports.InvalidArgument = InvalidArgument;\r\n//# sourceMappingURL=InvalidArgument.js.map","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.OutOfRange = void 0;\r\n//================================================================\r\n/**\r\n * @packageDocumentation\r\n * @module std\r\n */\r\n//================================================================\r\nvar LogicError_1 = require(\"./LogicError\");\r\n/**\r\n * Out-of-range Exception.\r\n *\r\n * @author Jeongho Nam - https://github.com/samchon\r\n */\r\nvar OutOfRange = /** @class */ (function (_super) {\r\n __extends(OutOfRange, _super);\r\n /**\r\n * Initializer Constructor.\r\n *\r\n * @param message The error messgae.\r\n */\r\n function OutOfRange(message) {\r\n return _super.call(this, message) || this;\r\n }\r\n return OutOfRange;\r\n}(LogicError_1.LogicError));\r\nexports.OutOfRange = OutOfRange;\r\n//# sourceMappingURL=OutOfRange.js.map","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ErrorGenerator = void 0;\r\n//================================================================\r\n/**\r\n * @packageDocumentation\r\n * @module std.internal\r\n */\r\n//================================================================\r\nvar InvalidArgument_1 = require(\"../../exception/InvalidArgument\");\r\nvar OutOfRange_1 = require(\"../../exception/OutOfRange\");\r\nvar ErrorGenerator;\r\n(function (ErrorGenerator) {\r\n /* ---------------------------------------------------------\r\n COMMON\r\n --------------------------------------------------------- */\r\n function get_class_name(instance) {\r\n if (typeof instance === \"string\")\r\n return instance;\r\n var ret = instance.constructor.name;\r\n if (instance.constructor.__MODULE)\r\n ret = \"\".concat(instance.constructor.__MODULE, \".\").concat(ret);\r\n return \"std.\".concat(ret);\r\n }\r\n ErrorGenerator.get_class_name = get_class_name;\r\n /* ---------------------------------------------------------\r\n CONTAINERS\r\n --------------------------------------------------------- */\r\n function empty(instance, method) {\r\n return new OutOfRange_1.OutOfRange(\"Error on \".concat(get_class_name(instance), \".\").concat(method, \"(): it's empty container.\"));\r\n }\r\n ErrorGenerator.empty = empty;\r\n function negative_index(instance, method, index) {\r\n return new OutOfRange_1.OutOfRange(\"Error on \".concat(get_class_name(instance), \".\").concat(method, \"(): parametric index is negative -> (index = \").concat(index, \").\"));\r\n }\r\n ErrorGenerator.negative_index = negative_index;\r\n function excessive_index(instance, method, index, size) {\r\n return new OutOfRange_1.OutOfRange(\"Error on \".concat(get_class_name(instance), \".\").concat(method, \"(): parametric index is equal or greater than size -> (index = \").concat(index, \", size: \").concat(size, \").\"));\r\n }\r\n ErrorGenerator.excessive_index = excessive_index;\r\n function not_my_iterator(instance, method) {\r\n return new InvalidArgument_1.InvalidArgument(\"Error on \".concat(get_class_name(instance), \".\").concat(method, \"(): parametric iterator is not this container's own.\"));\r\n }\r\n ErrorGenerator.not_my_iterator = not_my_iterator;\r\n function erased_iterator(instance, method) {\r\n return new InvalidArgument_1.InvalidArgument(\"Error on \".concat(get_class_name(instance), \".\").concat(method, \"(): parametric iterator, it already has been erased.\"));\r\n }\r\n ErrorGenerator.erased_iterator = erased_iterator;\r\n function negative_iterator(instance, method, index) {\r\n return new OutOfRange_1.OutOfRange(\"Error on \".concat(get_class_name(instance), \".\").concat(method, \"(): parametric iterator is directing negative position -> (index = \").concat(index, \").\"));\r\n }\r\n ErrorGenerator.negative_iterator = negative_iterator;\r\n function iterator_end_value(instance, method) {\r\n if (method === void 0) { method = \"end\"; }\r\n var className = get_class_name(instance);\r\n return new OutOfRange_1.OutOfRange(\"Error on \".concat(className, \".Iterator.value: cannot access to the \").concat(className, \".\").concat(method, \"().value.\"));\r\n }\r\n ErrorGenerator.iterator_end_value = iterator_end_value;\r\n function key_nout_found(instance, method, key) {\r\n throw new OutOfRange_1.OutOfRange(\"Error on \".concat(get_class_name(instance), \".\").concat(method, \"(): unable to find the matched key -> \").concat(key));\r\n }\r\n ErrorGenerator.key_nout_found = key_nout_found;\r\n})(ErrorGenerator = exports.ErrorGenerator || (exports.ErrorGenerator = {}));\r\n//# sourceMappingURL=ErrorGenerator.js.map","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __read = (this && this.__read) || function (o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n};\r\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.UniqueSet = void 0;\r\n//================================================================\r\n/**\r\n * @packageDocumentation\r\n * @module std.base\r\n */\r\n//================================================================\r\nvar SetContainer_1 = require(\"./SetContainer\");\r\nvar ErrorGenerator_1 = require(\"../../internal/exception/ErrorGenerator\");\r\n/**\r\n * Basic set container blocking duplicated key.\r\n *\r\n * @template Key Key type\r\n * @template Source Derived type extending this {@link UniqueSet}\r\n * @template IteratorT Iterator type\r\n * @template ReverseT Reverse iterator type\r\n *\r\n * @author Jeongho Nam - https://github.com/samchon\r\n */\r\nvar UniqueSet = /** @class */ (function (_super) {\r\n __extends(UniqueSet, _super);\r\n function UniqueSet() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /* ---------------------------------------------------------\r\n ACCESSOR\r\n --------------------------------------------------------- */\r\n /**\r\n * @inheritDoc\r\n */\r\n UniqueSet.prototype.count = function (key) {\r\n return this.find(key).equals(this.end()) ? 0 : 1;\r\n };\r\n UniqueSet.prototype.insert = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n return _super.prototype.insert.apply(this, __spreadArray([], __read(args), false));\r\n };\r\n UniqueSet.prototype._Insert_by_range = function (first, last) {\r\n for (; !first.equals(last); first = first.next())\r\n this._Insert_by_key(first.value);\r\n };\r\n UniqueSet.prototype.extract = function (param) {\r\n if (param instanceof this.end().constructor)\r\n return this._Extract_by_iterator(param);\r\n else\r\n return this._Extract_by_val(param);\r\n };\r\n UniqueSet.prototype._Extract_by_val = function (key) {\r\n var it = this.find(key);\r\n if (it.equals(this.end()) === true)\r\n throw ErrorGenerator_1.ErrorGenerator.key_nout_found(this, \"extract\", key);\r\n this._Erase_by_range(it);\r\n return key;\r\n };\r\n UniqueSet.prototype._Extract_by_iterator = function (it) {\r\n if (it.equals(this.end()) === true || this.has(it.value) === false)\r\n return this.end();\r\n this._Erase_by_range(it);\r\n return it;\r\n };\r\n UniqueSet.prototype._Erase_by_val = function (key) {\r\n var it = this.find(key);\r\n if (it.equals(this.end()) === true)\r\n return 0;\r\n this._Erase_by_range(it);\r\n return 1;\r\n };\r\n /* ---------------------------------------------------------\r\n UTILITY\r\n --------------------------------------------------------- */\r\n /**\r\n * @inheritDoc\r\n */\r\n UniqueSet.prototype.merge = function (source) {\r\n for (var it = source.begin(); !it.equals(source.end());) {\r\n if (this.has(it.value) === false) {\r\n this.insert(it.value);\r\n it = source.erase(it);\r\n }\r\n else\r\n it = it.next();\r\n }\r\n };\r\n return UniqueSet;\r\n}(SetContainer_1.SetContainer));\r\nexports.UniqueSet = UniqueSet;\r\n//# sourceMappingURL=UniqueSet.js.map","\"use strict\";\r\nvar __read = (this && this.__read) || function (o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n};\r\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.IAssociativeContainer = void 0;\r\nvar IAssociativeContainer;\r\n(function (IAssociativeContainer) {\r\n /**\r\n * @internal\r\n */\r\n function construct(source) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n var ramda;\r\n var tail;\r\n if (args.length >= 1 && args[0] instanceof Array) {\r\n // INITIALIZER LIST CONSTRUCTOR\r\n ramda = function () {\r\n var items = args[0];\r\n source.push.apply(source, __spreadArray([], __read(items), false));\r\n };\r\n tail = args.slice(1);\r\n }\r\n else if (args.length >= 2 &&\r\n args[0].next instanceof Function &&\r\n args[1].next instanceof Function) {\r\n // RANGE CONSTRUCTOR\r\n ramda = function () {\r\n var first = args[0];\r\n var last = args[1];\r\n source.assign(first, last);\r\n };\r\n tail = args.slice(2);\r\n }\r\n else {\r\n // DEFAULT CONSTRUCTOR\r\n ramda = null;\r\n tail = args;\r\n }\r\n return { ramda: ramda, tail: tail };\r\n }\r\n IAssociativeContainer.construct = construct;\r\n})(IAssociativeContainer = exports.IAssociativeContainer || (exports.IAssociativeContainer = {}));\r\n//# sourceMappingURL=IAssociativeContainer.js.map","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports._Get_root = void 0;\r\n//================================================================\r\n/**\r\n * @packageDocumentation\r\n * @module std.internal\r\n */\r\n//================================================================\r\nvar node_1 = require(\"../utility/node\");\r\n/**\r\n * @internal\r\n */\r\nfunction _Get_root() {\r\n if (__s_pRoot === null) {\r\n __s_pRoot = ((0, node_1.is_node)() ? global : self);\r\n if (__s_pRoot.__s_iUID === undefined)\r\n __s_pRoot.__s_iUID = 0;\r\n }\r\n return __s_pRoot;\r\n}\r\nexports._Get_root = _Get_root;\r\n/**\r\n * @internal\r\n */\r\nvar __s_pRoot = null;\r\n//# sourceMappingURL=Global.js.map","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.get_uid = void 0;\r\n//================================================================\r\n/**\r\n * @packageDocumentation\r\n * @module std\r\n */\r\n//================================================================\r\nvar Global_1 = require(\"../internal/Global\");\r\n/**\r\n * Get unique identifier.\r\n *\r\n * @param obj Target object.\r\n * @return The identifier number.\r\n */\r\nfunction get_uid(obj) {\r\n // NO UID EXISTS, THEN ISSUE ONE.\r\n if (obj instanceof Object) {\r\n if (obj.hasOwnProperty(\"__get_m_iUID\") === false) {\r\n var uid_1 = ++(0, Global_1._Get_root)().__s_iUID;\r\n Object.defineProperty(obj, \"__get_m_iUID\", {\r\n value: function () {\r\n return uid_1;\r\n },\r\n });\r\n }\r\n // RETURNS\r\n return obj.__get_m_iUID();\r\n }\r\n else if (obj === undefined)\r\n return -1;\r\n // is null\r\n else\r\n return 0;\r\n}\r\nexports.get_uid = get_uid;\r\n//# sourceMappingURL=uid.js.map","\"use strict\";\r\nvar __values = (this && this.__values) || function(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.hash = void 0;\r\nvar uid_1 = require(\"./uid\");\r\n/**\r\n * Hash function.\r\n *\r\n * @param itemList The items to be hashed.\r\n * @return The hash code.\r\n */\r\nfunction hash() {\r\n var e_1, _a;\r\n var itemList = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n itemList[_i] = arguments[_i];\r\n }\r\n var ret = INIT_VALUE;\r\n try {\r\n for (var itemList_1 = __values(itemList), itemList_1_1 = itemList_1.next(); !itemList_1_1.done; itemList_1_1 = itemList_1.next()) {\r\n var item = itemList_1_1.value;\r\n item = item ? item.valueOf() : item;\r\n var type = typeof item;\r\n if (type === \"boolean\")\r\n // BOOLEAN -> 1 BYTE\r\n ret = _Hash_boolean(item, ret);\r\n else if (type === \"number\" || type === \"bigint\")\r\n // NUMBER -> 8 BYTES\r\n ret = _Hash_number(item, ret);\r\n else if (type === \"string\")\r\n // STRING -> {LENGTH} BYTES\r\n ret = _Hash_string(item, ret);\r\n else if (item instanceof Object &&\r\n item.hashCode instanceof Function) {\r\n var hashed = item.hashCode();\r\n if (itemList.length === 1)\r\n return hashed;\r\n else {\r\n ret = ret ^ hashed;\r\n ret *= MULTIPLIER;\r\n }\r\n } // object | null | undefined\r\n else\r\n ret = _Hash_number((0, uid_1.get_uid)(item), ret);\r\n }\r\n }\r\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\r\n finally {\r\n try {\r\n if (itemList_1_1 && !itemList_1_1.done && (_a = itemList_1.return)) _a.call(itemList_1);\r\n }\r\n finally { if (e_1) throw e_1.error; }\r\n }\r\n return Math.abs(ret);\r\n}\r\nexports.hash = hash;\r\nfunction _Hash_boolean(val, ret) {\r\n ret ^= val ? 1 : 0;\r\n ret *= MULTIPLIER;\r\n return ret;\r\n}\r\nfunction _Hash_number(val, ret) {\r\n return _Hash_string(val.toString(), ret);\r\n // // ------------------------------------------\r\n // // IN C++\r\n // // CONSIDER A NUMBER AS A STRING\r\n // // HASH((CHAR*)&VAL, 8)\r\n // // ------------------------------------------\r\n // // CONSTRUCT BUFFER AND BYTE_ARRAY\r\n // const buffer: ArrayBuffer = new ArrayBuffer(8);\r\n // const byteArray: Int8Array = new Int8Array(buffer);\r\n // const valueArray: Float64Array = new Float64Array(buffer);\r\n // valueArray[0] = val;\r\n // for (let i: number = 0; i < byteArray.length; ++i)\r\n // {\r\n // const byte = (byteArray[i] < 0) ? byteArray[i] + 256 : byteArray[i];\r\n // ret ^= byte;\r\n // ret *= _HASH_MULTIPLIER;\r\n // }\r\n // return Math.abs(ret);\r\n}\r\nfunction _Hash_string(str, ret) {\r\n for (var i = 0; i < str.length; ++i) {\r\n ret ^= str.charCodeAt(i);\r\n ret *= MULTIPLIER;\r\n }\r\n return Math.abs(ret);\r\n}\r\n/* ---------------------------------------------------------\r\n RESERVED ITEMS\r\n--------------------------------------------------------- */\r\nvar INIT_VALUE = 2166136261;\r\nvar MULTIPLIER = 16777619;\r\n//# sourceMappingURL=hash.js.map","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.greater_equal = exports.greater = exports.less_equal = exports.less = exports.not_equal_to = exports.equal_to = void 0;\r\nvar uid_1 = require(\"./uid\");\r\n/**\r\n * Test whether two arguments are equal.\r\n *\r\n * @param x The first argument to compare.\r\n * @param y The second argument to compare.\r\n * @return Whether two arguments are equal or not.\r\n */\r\nfunction equal_to(x, y) {\r\n // CONVERT TO PRIMITIVE TYPE\r\n x = x ? x.valueOf() : x;\r\n y = y ? y.valueOf() : y;\r\n // DO COMPARE\r\n if (x instanceof Object &&\r\n x.equals instanceof Function)\r\n return x.equals(y);\r\n else\r\n return x === y;\r\n}\r\nexports.equal_to = equal_to;\r\n/**\r\n * Test whether two arguments are not equal.\r\n *\r\n * @param x The first argument to compare.\r\n * @param y The second argument to compare.\r\n * @return Returns `true`, if two arguments are not equal, otherwise `false`.\r\n */\r\nfunction not_equal_to(x, y) {\r\n return !equal_to(x, y);\r\n}\r\nexports.not_equal_to = not_equal_to;\r\n/**\r\n * Test whether *x* is less than *y*.\r\n *\r\n * @param x The first argument to compare.\r\n * @param y The second argument to compare.\r\n * @return Whether *x* is less than *y*.\r\n */\r\nfunction less(x, y) {\r\n // CONVERT TO PRIMITIVE TYPE\r\n x = x.valueOf();\r\n y = y.valueOf();\r\n // DO COMPARE\r\n if (x instanceof Object)\r\n if (x.less instanceof Function)\r\n // has less()\r\n return x.less(y);\r\n else\r\n return (0, uid_1.get_uid)(x) < (0, uid_1.get_uid)(y);\r\n else\r\n return x < y;\r\n}\r\nexports.less = less;\r\n/**\r\n * Test whether *x* is less than or equal to *y*.\r\n *\r\n * @param x The first argument to compare.\r\n * @param y The second argument to compare.\r\n * @return Whether *x* is less than or equal to *y*.\r\n */\r\nfunction less_equal(x, y) {\r\n return less(x, y) || equal_to(x, y);\r\n}\r\nexports.less_equal = less_equal;\r\n/**\r\n * Test whether *x* is greater than *y*.\r\n *\r\n * @param x The first argument to compare.\r\n * @param y The second argument to compare.\r\n * @return Whether *x* is greater than *y*.\r\n */\r\nfunction greater(x, y) {\r\n return !less_equal(x, y);\r\n}\r\nexports.greater = greater;\r\n/**\r\n * Test whether *x* is greater than or equal to *y*.\r\n *\r\n * @param x The first argument to compare.\r\n * @param y The second argument to compare.\r\n * @return Whether *x* is greater than or equal to *y*.\r\n */\r\nfunction greater_equal(x, y) {\r\n return !less(x, y);\r\n}\r\nexports.greater_equal = greater_equal;\r\n//# sourceMappingURL=comparators.js.map","\"use strict\";\r\nvar __read = (this && this.__read) || function (o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n};\r\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.IHashContainer = void 0;\r\n//================================================================\r\n/**\r\n * @packageDocumentation\r\n * @module std.internal\r\n */\r\n//================================================================\r\nvar IAssociativeContainer_1 = require(\"./IAssociativeContainer\");\r\nvar hash_1 = require(\"../../../functional/hash\");\r\nvar comparators_1 = require(\"../../../functional/comparators\");\r\nvar IHashContainer;\r\n(function (IHashContainer) {\r\n /**\r\n * @internal\r\n */\r\n function construct(source, Source, bucketFactory) {\r\n var args = [];\r\n for (var _i = 3; _i < arguments.length; _i++) {\r\n args[_i - 3] = arguments[_i];\r\n }\r\n // DECLARE MEMBERS\r\n var post_process = null;\r\n var hash_function = hash_1.hash;\r\n var key_eq = comparators_1.equal_to;\r\n //----\r\n // INITIALIZE MEMBERS AND POST-PROCESS\r\n //----\r\n // BRANCH - METHOD OVERLOADINGS\r\n if (args.length === 1 && args[0] instanceof Source) {\r\n // PARAMETERS\r\n var container_1 = args[0];\r\n hash_function = container_1.hash_function();\r\n key_eq = container_1.key_eq();\r\n // COPY CONSTRUCTOR\r\n post_process = function () {\r\n var first = container_1.begin();\r\n var last = container_1.end();\r\n source.assign(first, last);\r\n };\r\n }\r\n else {\r\n var tuple = IAssociativeContainer_1.IAssociativeContainer.construct.apply(IAssociativeContainer_1.IAssociativeContainer, __spreadArray([source], __read(args), false));\r\n post_process = tuple.ramda;\r\n if (tuple.tail.length >= 1)\r\n hash_function = tuple.tail[0];\r\n if (tuple.tail.length >= 2)\r\n key_eq = tuple.tail[1];\r\n }\r\n //----\r\n // DO PROCESS\r\n //----\r\n // CONSTRUCT BUCKET\r\n bucketFactory(hash_function, key_eq);\r\n // ACT POST-PROCESS\r\n if (post_process !== null)\r\n post_process();\r\n }\r\n IHashContainer.construct = construct;\r\n})(IHashContainer = exports.IHashContainer || (exports.IHashContainer = {}));\r\n//# sourceMappingURL=IHashContainer.js.map","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ListIterator = void 0;\r\nvar ErrorGenerator_1 = require(\"../exception/ErrorGenerator\");\r\n/**\r\n * Basic List Iterator.\r\n *\r\n * @author Jeongho Nam - https://github.com/samchon\r\n */\r\nvar ListIterator = /** @class */ (function () {\r\n /* ---------------------------------------------------------------\r\n CONSTRUCTORS\r\n --------------------------------------------------------------- */\r\n function ListIterator(prev, next, value) {\r\n this.prev_ = prev;\r\n this.next_ = next;\r\n this.value_ = value;\r\n }\r\n /**\r\n * @internal\r\n */\r\n ListIterator._Set_prev = function (it, prev) {\r\n it.prev_ = prev;\r\n };\r\n /**\r\n * @internal\r\n */\r\n ListIterator._Set_next = function (it, next) {\r\n it.next_ = next;\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n ListIterator.prototype.prev = function () {\r\n return this.prev_;\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n ListIterator.prototype.next = function () {\r\n return this.next_;\r\n };\r\n Object.defineProperty(ListIterator.prototype, \"value\", {\r\n /**\r\n * @inheritDoc\r\n */\r\n get: function () {\r\n this._Try_value();\r\n return this.value_;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n ListIterator.prototype._Try_value = function () {\r\n if (this.value_ === undefined &&\r\n this.equals(this.source().end()) === true)\r\n throw ErrorGenerator_1.ErrorGenerator.iterator_end_value(this.source());\r\n };\r\n /* ---------------------------------------------------------------\r\n COMPARISON\r\n --------------------------------------------------------------- */\r\n /**\r\n * @inheritDoc\r\n */\r\n ListIterator.prototype.equals = function (obj) {\r\n return this === obj;\r\n };\r\n return ListIterator;\r\n}());\r\nexports.ListIterator = ListIterator;\r\n//# sourceMappingURL=ListIterator.js.map","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Repeater = void 0;\r\nvar Repeater = /** @class */ (function () {\r\n /* ---------------------------------------------------------\r\n CONSTRUCTORS\r\n --------------------------------------------------------- */\r\n function Repeater(index, value) {\r\n this.index_ = index;\r\n this.value_ = value;\r\n }\r\n /* ---------------------------------------------------------\r\n ACCESSORS\r\n --------------------------------------------------------- */\r\n Repeater.prototype.index = function () {\r\n return this.index_;\r\n };\r\n Object.defineProperty(Repeater.prototype, \"value\", {\r\n get: function () {\r\n return this.value_;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /* ---------------------------------------------------------\r\n MOVERS & COMPARE\r\n --------------------------------------------------------- */\r\n Repeater.prototype.next = function () {\r\n ++this.index_;\r\n return this;\r\n };\r\n Repeater.prototype.equals = function (obj) {\r\n return this.index_ === obj.index_;\r\n };\r\n return Repeater;\r\n}());\r\nexports.Repeater = Repeater;\r\n//# sourceMappingURL=Repeater.js.map","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.next = exports.prev = exports.advance = exports.distance = exports.size = exports.empty = void 0;\r\nvar InvalidArgument_1 = require(\"../exception/InvalidArgument\");\r\n/* =========================================================\r\n GLOBAL FUNCTIONS\r\n - ACCESSORS\r\n - MOVERS\r\n - FACTORIES\r\n============================================================\r\n ACCESSORS\r\n--------------------------------------------------------- */\r\n/**\r\n * Test whether a container is empty.\r\n *\r\n * @param source Target container.\r\n * @return Whether empty or not.\r\n */\r\nfunction empty(source) {\r\n if (source instanceof Array)\r\n return source.length !== 0;\r\n else\r\n return source.empty();\r\n}\r\nexports.empty = empty;\r\n/**\r\n * Get number of elements of a container.\r\n *\r\n * @param source Target container.\r\n * @return The number of elements in the container.\r\n */\r\nfunction size(source) {\r\n if (source instanceof Array)\r\n return source.length;\r\n else\r\n return source.size();\r\n}\r\nexports.size = size;\r\nfunction distance(first, last) {\r\n if (first.index instanceof Function)\r\n return _Distance_via_index(first, last);\r\n var ret = 0;\r\n for (; !first.equals(last); first = first.next())\r\n ++ret;\r\n return ret;\r\n}\r\nexports.distance = distance;\r\nfunction _Distance_via_index(first, last) {\r\n var x = first.index();\r\n var y = last.index();\r\n if (first.base instanceof Function)\r\n return x - y;\r\n else\r\n return y - x;\r\n}\r\nfunction advance(it, n) {\r\n if (n === 0)\r\n return it;\r\n else if (it.advance instanceof Function)\r\n return it.advance(n);\r\n var stepper;\r\n if (n < 0) {\r\n if (!(it.prev instanceof Function))\r\n throw new InvalidArgument_1.InvalidArgument(\"Error on std.advance(): parametric iterator is not a bi-directional iterator, thus advancing to negative direction is not possible.\");\r\n stepper = function (it) { return it.prev(); };\r\n n = -n;\r\n }\r\n else\r\n stepper = function (it) { return it.next(); };\r\n while (n-- > 0)\r\n it = stepper(it);\r\n return it;\r\n}\r\nexports.advance = advance;\r\n/**\r\n * Get previous iterator.\r\n *\r\n * @param it Iterator to move.\r\n * @param n Step to move prev.\r\n * @return An iterator moved to prev *n* steps.\r\n */\r\nfunction prev(it, n) {\r\n if (n === void 0) { n = 1; }\r\n if (n === 1)\r\n return it.prev();\r\n else\r\n return advance(it, -n);\r\n}\r\nexports.prev = prev;\r\n/**\r\n * Get next iterator.\r\n *\r\n * @param it Iterator to move.\r\n * @param n Step to move next.\r\n * @return Iterator moved to next *n* steps.\r\n */\r\nfunction next(it, n) {\r\n if (n === void 0) { n = 1; }\r\n if (n === 1)\r\n return it.next();\r\n else\r\n return advance(it, n);\r\n}\r\nexports.next = next;\r\n//# sourceMappingURL=global.js.map","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __read = (this && this.__read) || function (o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ListContainer = void 0;\r\nvar Container_1 = require(\"../../../base/container/Container\");\r\nvar ListIterator_1 = require(\"../../iterator/ListIterator\");\r\nvar Repeater_1 = require(\"../../iterator/disposable/Repeater\");\r\nvar NativeArrayIterator_1 = require(\"../../iterator/disposable/NativeArrayIterator\");\r\nvar global_1 = require(\"../../../iterator/global\");\r\nvar ErrorGenerator_1 = require(\"../../exception/ErrorGenerator\");\r\n/**\r\n * Basic List Container.\r\n *\r\n * @author Jeongho Nam - https://github.com/samchon\r\n */\r\nvar ListContainer = /** @class */ (function (_super) {\r\n __extends(ListContainer, _super);\r\n /* ---------------------------------------------------------\r\n CONSTRUCTORS\r\n --------------------------------------------------------- */\r\n /**\r\n * Default Constructor.\r\n */\r\n function ListContainer() {\r\n var _this = _super.call(this) || this;\r\n // INIT MEMBERS\r\n _this.end_ = _this._Create_iterator(null, null);\r\n _this.clear();\r\n return _this;\r\n }\r\n ListContainer.prototype.assign = function (par1, par2) {\r\n this.clear();\r\n this.insert(this.end(), par1, par2);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n ListContainer.prototype.clear = function () {\r\n // DISCONNECT NODES\r\n ListIterator_1.ListIterator._Set_prev(this.end_, this.end_);\r\n ListIterator_1.ListIterator._Set_next(this.end_, this.end_);\r\n // RE-SIZE -> 0\r\n this.begin_ = this.end_;\r\n this.size_ = 0;\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n ListContainer.prototype.resize = function (n) {\r\n var expansion = n - this.size();\r\n if (expansion > 0)\r\n this.insert(this.end(), expansion, undefined);\r\n else if (expansion < 0)\r\n this.erase((0, global_1.advance)(this.end(), -expansion), this.end());\r\n };\r\n /* ---------------------------------------------------------\r\n ACCESSORS\r\n --------------------------------------------------------- */\r\n /**\r\n * @inheritDoc\r\n */\r\n ListContainer.prototype.begin = function () {\r\n return this.begin_;\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n ListContainer.prototype.end = function () {\r\n return this.end_;\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n ListContainer.prototype.size = function () {\r\n return this.size_;\r\n };\r\n /* =========================================================\r\n ELEMENTS I/O\r\n - PUSH & POP\r\n - INSERT\r\n - ERASE\r\n - POST-PROCESS\r\n ============================================================\r\n PUSH & POP\r\n --------------------------------------------------------- */\r\n /**\r\n * @inheritDoc\r\n */\r\n ListContainer.prototype.push_front = function (val) {\r\n this.insert(this.begin_, val);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n ListContainer.prototype.push_back = function (val) {\r\n this.insert(this.end_, val);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n ListContainer.prototype.pop_front = function () {\r\n if (this.empty() === true)\r\n throw ErrorGenerator_1.ErrorGenerator.empty(this.end_.source().constructor.name, \"pop_front\");\r\n this.erase(this.begin_);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n ListContainer.prototype.pop_back = function () {\r\n if (this.empty() === true)\r\n throw ErrorGenerator_1.ErrorGenerator.empty(this.end_.source().constructor.name, \"pop_back\");\r\n this.erase(this.end_.prev());\r\n };\r\n /* ---------------------------------------------------------\r\n INSERT\r\n --------------------------------------------------------- */\r\n /**\r\n * @inheritDoc\r\n */\r\n ListContainer.prototype.push = function () {\r\n var items = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n items[_i] = arguments[_i];\r\n }\r\n if (items.length === 0)\r\n return this.size();\r\n // INSERT BY RANGE\r\n var first = new NativeArrayIterator_1.NativeArrayIterator(items, 0);\r\n var last = new NativeArrayIterator_1.NativeArrayIterator(items, items.length);\r\n this._Insert_by_range(this.end(), first, last);\r\n // RETURN SIZE\r\n return this.size();\r\n };\r\n ListContainer.prototype.insert = function (pos) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n // VALIDATION\r\n if (pos.source() !== this.end_.source())\r\n throw ErrorGenerator_1.ErrorGenerator.not_my_iterator(this.end_.source(), \"insert\");\r\n else if (pos.erased_ === true)\r\n throw ErrorGenerator_1.ErrorGenerator.erased_iterator(this.end_.source(), \"insert\");\r\n // BRANCHES\r\n if (args.length === 1)\r\n return this._Insert_by_repeating_val(pos, 1, args[0]);\r\n else if (args.length === 2 && typeof args[0] === \"number\")\r\n return this._Insert_by_repeating_val(pos, args[0], args[1]);\r\n else\r\n return this._Insert_by_range(pos, args[0], args[1]);\r\n };\r\n ListContainer.prototype._Insert_by_repeating_val = function (position, n, val) {\r\n var first = new Repeater_1.Repeater(0, val);\r\n var last = new Repeater_1.Repeater(n);\r\n return this._Insert_by_range(position, first, last);\r\n };\r\n ListContainer.prototype._Insert_by_range = function (position, begin, end) {\r\n var prev = position.prev();\r\n var first = null;\r\n var size = 0;\r\n for (var it = begin; it.equals(end) === false; it = it.next()) {\r\n // CONSTRUCT ITEM, THE NEW ELEMENT\r\n var item = this._Create_iterator(prev, null, it.value);\r\n if (size === 0)\r\n first = item;\r\n // PLACE ITEM ON THE NEXT OF \"PREV\"\r\n ListIterator_1.ListIterator._Set_next(prev, item);\r\n // SHIFT CURRENT ITEM TO PREVIOUS\r\n prev = item;\r\n ++size;\r\n }\r\n // WILL FIRST BE THE BEGIN?\r\n if (position.equals(this.begin()) === true)\r\n this.begin_ = first;\r\n // CONNECT BETWEEN LAST AND POSITION\r\n ListIterator_1.ListIterator._Set_next(prev, position);\r\n ListIterator_1.ListIterator._Set_prev(position, prev);\r\n this.size_ += size;\r\n return first;\r\n };\r\n ListContainer.prototype.erase = function (first, last) {\r\n if (last === void 0) { last = first.next(); }\r\n return this._Erase_by_range(first, last);\r\n };\r\n ListContainer.prototype._Erase_by_range = function (first, last) {\r\n // VALIDATION\r\n if (first.source() !== this.end_.source())\r\n throw ErrorGenerator_1.ErrorGenerator.not_my_iterator(this.end_.source(), \"insert\");\r\n else if (first.erased_ === true)\r\n throw ErrorGenerator_1.ErrorGenerator.erased_iterator(this.end_.source(), \"insert\");\r\n else if (first.equals(this.end_))\r\n return this.end_;\r\n // FIND PREV AND NEXT\r\n var prev = first.prev();\r\n // SHRINK\r\n ListIterator_1.ListIterator._Set_next(prev, last);\r\n ListIterator_1.ListIterator._Set_prev(last, prev);\r\n for (var it = first; !it.equals(last); it = it.next()) {\r\n it.erased_ = true;\r\n --this.size_;\r\n }\r\n if (first.equals(this.begin_))\r\n this.begin_ = last;\r\n return last;\r\n };\r\n /* ---------------------------------------------------------\r\n SWAP\r\n --------------------------------------------------------- */\r\n /**\r\n * @inheritDoc\r\n */\r\n ListContainer.prototype.swap = function (obj) {\r\n var _a, _b, _c;\r\n _a = __read([obj.begin_, this.begin_], 2), this.begin_ = _a[0], obj.begin_ = _a[1];\r\n _b = __read([obj.end_, this.end_], 2), this.end_ = _b[0], obj.end_ = _b[1];\r\n _c = __read([obj.size_, this.size_], 2), this.size_ = _c[0], obj.size_ = _c[1];\r\n };\r\n return ListContainer;\r\n}(Container_1.Container));\r\nexports.ListContainer = ListContainer;\r\n//# sourceMappingURL=ListContainer.js.map","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ReverseIterator = void 0;\r\n/**\r\n * Basic reverse iterator.\r\n *\r\n * @author Jeongho Nam - https://github.com/samchon\r\n */\r\nvar ReverseIterator = /** @class */ (function () {\r\n /* ---------------------------------------------------------\r\n CONSTRUCTORS\r\n --------------------------------------------------------- */\r\n /**\r\n * Initializer Constructor.\r\n *\r\n * @param base The base iterator.\r\n */\r\n function ReverseIterator(base) {\r\n this.base_ = base.prev();\r\n }\r\n /* ---------------------------------------------------------\r\n ACCESSORS\r\n --------------------------------------------------------- */\r\n /**\r\n * Get source container.\r\n *\r\n * @return The source container.\r\n */\r\n ReverseIterator.prototype.source = function () {\r\n return this.base_.source();\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n ReverseIterator.prototype.base = function () {\r\n return this.base_.next();\r\n };\r\n Object.defineProperty(ReverseIterator.prototype, \"value\", {\r\n /**\r\n * @inheritDoc\r\n */\r\n get: function () {\r\n return this.base_.value;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /* ---------------------------------------------------------\r\n MOVERS\r\n --------------------------------------------------------- */\r\n /**\r\n * @inheritDoc\r\n */\r\n ReverseIterator.prototype.prev = function () {\r\n // this.base().next()\r\n return this._Create_neighbor(this.base().next());\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n ReverseIterator.prototype.next = function () {\r\n // this.base().prev()\r\n return this._Create_neighbor(this.base_);\r\n };\r\n /* ---------------------------------------------------------\r\n COMPARES\r\n --------------------------------------------------------- */\r\n /**\r\n * @inheritDoc\r\n */\r\n ReverseIterator.prototype.equals = function (obj) {\r\n return this.base_.equals(obj.base_);\r\n };\r\n return ReverseIterator;\r\n}());\r\nexports.ReverseIterator = ReverseIterator;\r\n//# sourceMappingURL=ReverseIterator.js.map","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __read = (this && this.__read) || function (o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SetElementList = void 0;\r\n//================================================================\r\n/**\r\n * @packageDocumentation\r\n * @module std.internal\r\n */\r\n//================================================================\r\nvar ListContainer_1 = require(\"../linear/ListContainer\");\r\nvar ListIterator_1 = require(\"../../iterator/ListIterator\");\r\nvar ReverseIterator_1 = require(\"../../iterator/ReverseIterator\");\r\n/**\r\n * Doubly Linked List storing set elements.\r\n *\r\n * @template Key Key type\r\n * @template Unique Whether duplicated key is blocked or not\r\n * @template Source Source container type\r\n *\r\n * @author Jeongho Nam - https://github.com/samchon\r\n */\r\nvar SetElementList = /** @class */ (function (_super) {\r\n __extends(SetElementList, _super);\r\n /* ---------------------------------------------------------\r\n CONSTRUCTORS\r\n --------------------------------------------------------- */\r\n function SetElementList(associative) {\r\n var _this = _super.call(this) || this;\r\n _this.associative_ = associative;\r\n return _this;\r\n }\r\n SetElementList.prototype._Create_iterator = function (prev, next, val) {\r\n return SetElementList.Iterator.create(this, prev, next, val);\r\n };\r\n /**\r\n * @internal\r\n */\r\n SetElementList._Swap_associative = function (x, y) {\r\n var _a;\r\n _a = __read([y.associative_, x.associative_], 2), x.associative_ = _a[0], y.associative_ = _a[1];\r\n };\r\n /* ---------------------------------------------------------\r\n ACCESSORS\r\n --------------------------------------------------------- */\r\n SetElementList.prototype.associative = function () {\r\n return this.associative_;\r\n };\r\n return SetElementList;\r\n}(ListContainer_1.ListContainer));\r\nexports.SetElementList = SetElementList;\r\n/**\r\n *\r\n */\r\n(function (SetElementList) {\r\n /**\r\n * Iterator of set container storing elements in a list.\r\n *\r\n * @template Key Key type\r\n * @template Unique Whether duplicated key is blocked or not\r\n * @template Source Source container type\r\n *\r\n * @author Jeongho Nam - https://github.com/samchon\r\n */\r\n var Iterator = /** @class */ (function (_super) {\r\n __extends(Iterator, _super);\r\n /* ---------------------------------------------------------\r\n CONSTRUCTORS\r\n --------------------------------------------------------- */\r\n function Iterator(list, prev, next, val) {\r\n var _this = _super.call(this, prev, next, val) || this;\r\n _this.source_ = list;\r\n return _this;\r\n }\r\n /**\r\n * @internal\r\n */\r\n Iterator.create = function (list, prev, next, val) {\r\n return new Iterator(list, prev, next, val);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n Iterator.prototype.reverse = function () {\r\n return new ReverseIterator(this);\r\n };\r\n /* ---------------------------------------------------------\r\n ACCESSORS\r\n --------------------------------------------------------- */\r\n /**\r\n * @inheritDoc\r\n */\r\n Iterator.prototype.source = function () {\r\n return this.source_.associative();\r\n };\r\n return Iterator;\r\n }(ListIterator_1.ListIterator));\r\n SetElementList.Iterator = Iterator;\r\n /**\r\n * Reverser iterator of set container storing elements in a list.\r\n *\r\n * @template Key Key type\r\n * @template Unique Whether duplicated key is blocked or not\r\n * @template Source Source container type\r\n *\r\n * @author Jeongho Nam - https://github.com/samchon\r\n */\r\n var ReverseIterator = /** @class */ (function (_super) {\r\n __extends(ReverseIterator, _super);\r\n function ReverseIterator() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ReverseIterator.prototype._Create_neighbor = function (base) {\r\n return new ReverseIterator(base);\r\n };\r\n return ReverseIterator;\r\n }(ReverseIterator_1.ReverseIterator));\r\n SetElementList.ReverseIterator = ReverseIterator;\r\n})(SetElementList = exports.SetElementList || (exports.SetElementList = {}));\r\nexports.SetElementList = SetElementList;\r\n//# sourceMappingURL=SetElementList.js.map","\"use strict\";\r\n//================================================================\r\n/**\r\n * @packageDocumentation\r\n * @module std.internal\r\n */\r\n//================================================================\r\nvar __values = (this && this.__values) || function(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.HashBuckets = void 0;\r\n/**\r\n * Hash buckets\r\n *\r\n * @author Jeongho Nam - https://github.com/samchon\r\n */\r\nvar HashBuckets = /** @class */ (function () {\r\n /* ---------------------------------------------------------\r\n CONSTRUCTORS\r\n --------------------------------------------------------- */\r\n function HashBuckets(fetcher, hasher) {\r\n this.fetcher_ = fetcher;\r\n this.hasher_ = hasher;\r\n this.max_load_factor_ = DEFAULT_MAX_FACTOR;\r\n this.data_ = [];\r\n this.size_ = 0;\r\n this.initialize();\r\n }\r\n HashBuckets.prototype.clear = function () {\r\n this.data_ = [];\r\n this.size_ = 0;\r\n this.initialize();\r\n };\r\n HashBuckets.prototype.rehash = function (length) {\r\n var e_1, _a, e_2, _b;\r\n length = Math.max(length, MIN_BUCKET_COUNT);\r\n var data = [];\r\n for (var i = 0; i < length; ++i)\r\n data.push([]);\r\n try {\r\n for (var _c = __values(this.data_), _d = _c.next(); !_d.done; _d = _c.next()) {\r\n var row = _d.value;\r\n try {\r\n for (var row_1 = (e_2 = void 0, __values(row)), row_1_1 = row_1.next(); !row_1_1.done; row_1_1 = row_1.next()) {\r\n var elem = row_1_1.value;\r\n var index = this.hasher_(this.fetcher_(elem)) % data.length;\r\n data[index].push(elem);\r\n }\r\n }\r\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\r\n finally {\r\n try {\r\n if (row_1_1 && !row_1_1.done && (_b = row_1.return)) _b.call(row_1);\r\n }\r\n finally { if (e_2) throw e_2.error; }\r\n }\r\n }\r\n }\r\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\r\n finally {\r\n try {\r\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\r\n }\r\n finally { if (e_1) throw e_1.error; }\r\n }\r\n this.data_ = data;\r\n };\r\n HashBuckets.prototype.reserve = function (length) {\r\n if (length > this.capacity()) {\r\n length = Math.floor(length / this.max_load_factor_);\r\n this.rehash(length);\r\n }\r\n };\r\n HashBuckets.prototype.initialize = function () {\r\n for (var i = 0; i < MIN_BUCKET_COUNT; ++i)\r\n this.data_.push([]);\r\n };\r\n /* ---------------------------------------------------------\r\n ACCESSORS\r\n --------------------------------------------------------- */\r\n HashBuckets.prototype.length = function () {\r\n return this.data_.length;\r\n };\r\n HashBuckets.prototype.capacity = function () {\r\n return this.data_.length * this.max_load_factor_;\r\n };\r\n HashBuckets.prototype.at = function (index) {\r\n return this.data_[index];\r\n };\r\n HashBuckets.prototype.load_factor = function () {\r\n return this.size_ / this.length();\r\n };\r\n HashBuckets.prototype.max_load_factor = function (z) {\r\n if (z === void 0) { z = null; }\r\n if (z === null)\r\n return this.max_load_factor_;\r\n else\r\n this.max_load_factor_ = z;\r\n };\r\n HashBuckets.prototype.hash_function = function () {\r\n return this.hasher_;\r\n };\r\n /* ---------------------------------------------------------\r\n ELEMENTS I/O\r\n --------------------------------------------------------- */\r\n HashBuckets.prototype.index = function (elem) {\r\n return this.hasher_(this.fetcher_(elem)) % this.length();\r\n };\r\n HashBuckets.prototype.insert = function (val) {\r\n var capacity = this.capacity();\r\n if (++this.size_ > capacity)\r\n this.reserve(capacity * 2);\r\n var index = this.index(val);\r\n this.data_[index].push(val);\r\n };\r\n HashBuckets.prototype.erase = function (val) {\r\n var index = this.index(val);\r\n var bucket = this.data_[index];\r\n for (var i = 0; i < bucket.length; ++i)\r\n if (bucket[i] === val) {\r\n bucket.splice(i, 1);\r\n --this.size_;\r\n break;\r\n }\r\n };\r\n return HashBuckets;\r\n}());\r\nexports.HashBuckets = HashBuckets;\r\nvar MIN_BUCKET_COUNT = 10;\r\nvar DEFAULT_MAX_FACTOR = 1.0;\r\n//# sourceMappingURL=HashBuckets.js.map","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __read = (this && this.__read) || function (o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n};\r\nvar __values = (this && this.__values) || function(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SetHashBuckets = void 0;\r\n//================================================================\r\n/**\r\n * @packageDocumentation\r\n * @module std.internal\r\n */\r\n//================================================================\r\nvar HashBuckets_1 = require(\"./HashBuckets\");\r\n/**\r\n * Hash buckets for set containers\r\n *\r\n * @author Jeongho Nam - https://github.com/samchon\r\n */\r\nvar SetHashBuckets = /** @class */ (function (_super) {\r\n __extends(SetHashBuckets, _super);\r\n /* ---------------------------------------------------------\r\n CONSTRUCTORS\r\n --------------------------------------------------------- */\r\n /**\r\n * Initializer Constructor\r\n *\r\n * @param source Source set container\r\n * @param hasher Hash function\r\n * @param pred Equality function\r\n */\r\n function SetHashBuckets(source, hasher, pred) {\r\n var _this = _super.call(this, fetcher, hasher) || this;\r\n _this.source_ = source;\r\n _this.key_eq_ = pred;\r\n return _this;\r\n }\r\n /**\r\n * @internal\r\n */\r\n SetHashBuckets._Swap_source = function (x, y) {\r\n var _a;\r\n _a = __read([y.source_, x.source_], 2), x.source_ = _a[0], y.source_ = _a[1];\r\n };\r\n /* ---------------------------------------------------------\r\n FINDERS\r\n --------------------------------------------------------- */\r\n SetHashBuckets.prototype.key_eq = function () {\r\n return this.key_eq_;\r\n };\r\n SetHashBuckets.prototype.find = function (val) {\r\n var e_1, _a;\r\n var index = this.hash_function()(val) % this.length();\r\n var bucket = this.at(index);\r\n try {\r\n for (var bucket_1 = __values(bucket), bucket_1_1 = bucket_1.next(); !bucket_1_1.done; bucket_1_1 = bucket_1.next()) {\r\n var it = bucket_1_1.value;\r\n if (this.key_eq_(it.value, val))\r\n return it;\r\n }\r\n }\r\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\r\n finally {\r\n try {\r\n if (bucket_1_1 && !bucket_1_1.done && (_a = bucket_1.return)) _a.call(bucket_1);\r\n }\r\n finally { if (e_1) throw e_1.error; }\r\n }\r\n return this.source_.end();\r\n };\r\n return SetHashBuckets;\r\n}(HashBuckets_1.HashBuckets));\r\nexports.SetHashBuckets = SetHashBuckets;\r\nfunction fetcher(elem) {\r\n return elem.value;\r\n}\r\n//# sourceMappingURL=SetHashBuckets.js.map","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.make_pair = exports.Pair = void 0;\r\nvar hash_1 = require(\"../functional/hash\");\r\nvar comparators_1 = require(\"../functional/comparators\");\r\n/**\r\n * Pair of two elements.\r\n *\r\n * @author Jeongho Nam - https://github.com/samchon\r\n */\r\nvar Pair = /** @class */ (function () {\r\n /* ---------------------------------------------------------\r\n CONSTRUCTORS\r\n --------------------------------------------------------- */\r\n /**\r\n * Initializer Constructor.\r\n *\r\n * @param first The first element.\r\n * @param second The second element.\r\n */\r\n function Pair(first, second) {\r\n this.first = first;\r\n this.second = second;\r\n }\r\n /* ---------------------------------------------------------\r\n COMPARISON\r\n --------------------------------------------------------- */\r\n /**\r\n * @inheritDoc\r\n */\r\n Pair.prototype.equals = function (pair) {\r\n return ((0, comparators_1.equal_to)(this.first, pair.first) &&\r\n (0, comparators_1.equal_to)(this.second, pair.second));\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n Pair.prototype.less = function (pair) {\r\n if ((0, comparators_1.equal_to)(this.first, pair.first) === false)\r\n return (0, comparators_1.less)(this.first, pair.first);\r\n else\r\n return (0, comparators_1.less)(this.second, pair.second);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n Pair.prototype.hashCode = function () {\r\n return (0, hash_1.hash)(this.first, this.second);\r\n };\r\n return Pair;\r\n}());\r\nexports.Pair = Pair;\r\n/**\r\n * Create a {@link Pair}.\r\n *\r\n * @param first The 1st element.\r\n * @param second The 2nd element.\r\n *\r\n * @return A {@link Pair} object.\r\n */\r\nfunction make_pair(first, second) {\r\n return new Pair(first, second);\r\n}\r\nexports.make_pair = make_pair;\r\n//# sourceMappingURL=Pair.js.map","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __read = (this && this.__read) || function (o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n};\r\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.HashSet = void 0;\r\n//================================================================\r\n/**\r\n * @packageDocumentation\r\n * @module std\r\n */\r\n//================================================================\r\nvar UniqueSet_1 = require(\"../base/container/UniqueSet\");\r\nvar IHashContainer_1 = require(\"../internal/container/associative/IHashContainer\");\r\nvar SetElementList_1 = require(\"../internal/container/associative/SetElementList\");\r\nvar SetHashBuckets_1 = require(\"../internal/hash/SetHashBuckets\");\r\nvar Pair_1 = require(\"../utility/Pair\");\r\n/**\r\n * Unique-key Set based on Hash buckets.\r\n *\r\n * @author Jeongho Nam - https://github.com/samchon\r\n */\r\nvar HashSet = /** @class */ (function (_super) {\r\n __extends(HashSet, _super);\r\n function HashSet() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var _this = _super.call(this, function (thisArg) { return new SetElementList_1.SetElementList(thisArg); }) || this;\r\n IHashContainer_1.IHashContainer.construct.apply(IHashContainer_1.IHashContainer, __spreadArray([_this,\r\n HashSet,\r\n function (hash, pred) {\r\n _this.buckets_ = new SetHashBuckets_1.SetHashBuckets(_this, hash, pred);\r\n }], __read(args), false));\r\n return _this;\r\n }\r\n /* ---------------------------------------------------------\r\n ASSIGN & CLEAR\r\n --------------------------------------------------------- */\r\n /**\r\n * @inheritDoc\r\n */\r\n HashSet.prototype.clear = function () {\r\n this.buckets_.clear();\r\n _super.prototype.clear.call(this);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n HashSet.prototype.swap = function (obj) {\r\n var _a, _b;\r\n // SWAP CONTENTS\r\n _a = __read([obj.data_, this.data_], 2), this.data_ = _a[0], obj.data_ = _a[1];\r\n SetElementList_1.SetElementList._Swap_associative(this.data_, obj.data_);\r\n // SWAP BUCKETS\r\n SetHashBuckets_1.SetHashBuckets._Swap_source(this.buckets_, obj.buckets_);\r\n _b = __read([obj.buckets_, this.buckets_], 2), this.buckets_ = _b[0], obj.buckets_ = _b[1];\r\n };\r\n /* =========================================================\r\n ACCESSORS\r\n - MEMBER\r\n - HASH\r\n ============================================================\r\n MEMBER\r\n --------------------------------------------------------- */\r\n /**\r\n * @inheritDoc\r\n */\r\n HashSet.prototype.find = function (key) {\r\n return this.buckets_.find(key);\r\n };\r\n HashSet.prototype.begin = function (index) {\r\n if (index === void 0) { index = null; }\r\n if (index === null)\r\n return _super.prototype.begin.call(this);\r\n else\r\n return this.buckets_.at(index)[0];\r\n };\r\n HashSet.prototype.end = function (index) {\r\n if (index === void 0) { index = null; }\r\n if (index === null)\r\n return _super.prototype.end.call(this);\r\n else {\r\n var bucket = this.buckets_.at(index);\r\n return bucket[bucket.length - 1].next();\r\n }\r\n };\r\n HashSet.prototype.rbegin = function (index) {\r\n if (index === void 0) { index = null; }\r\n return this.end(index).reverse();\r\n };\r\n HashSet.prototype.rend = function (index) {\r\n if (index === void 0) { index = null; }\r\n return this.begin(index).reverse();\r\n };\r\n /* ---------------------------------------------------------\r\n HASH\r\n --------------------------------------------------------- */\r\n /**\r\n * @inheritDoc\r\n */\r\n HashSet.prototype.bucket_count = function () {\r\n return this.buckets_.length();\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n HashSet.prototype.bucket_size = function (n) {\r\n return this.buckets_.at(n).length;\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n HashSet.prototype.load_factor = function () {\r\n return this.buckets_.load_factor();\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n HashSet.prototype.hash_function = function () {\r\n return this.buckets_.hash_function();\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n HashSet.prototype.key_eq = function () {\r\n return this.buckets_.key_eq();\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n HashSet.prototype.bucket = function (key) {\r\n return this.hash_function()(key) % this.buckets_.length();\r\n };\r\n HashSet.prototype.max_load_factor = function (z) {\r\n if (z === void 0) { z = null; }\r\n return this.buckets_.max_load_factor(z);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n HashSet.prototype.reserve = function (n) {\r\n this.buckets_.reserve(n);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n HashSet.prototype.rehash = function (n) {\r\n this.buckets_.rehash(n);\r\n };\r\n /* =========================================================\r\n ELEMENTS I/O\r\n - INSERT\r\n - POST-PROCESS\r\n - SWAP\r\n ============================================================\r\n INSERT\r\n --------------------------------------------------------- */\r\n HashSet.prototype._Insert_by_key = function (key) {\r\n // TEST WHETHER EXIST\r\n var it = this.find(key);\r\n if (it.equals(this.end()) === false)\r\n return new Pair_1.Pair(it, false);\r\n // INSERT\r\n this.data_.push(key);\r\n it = it.prev();\r\n // POST-PROCESS\r\n this._Handle_insert(it, it.next());\r\n return new Pair_1.Pair(it, true);\r\n };\r\n HashSet.prototype._Insert_by_hint = function (hint, key) {\r\n // FIND DUPLICATED KEY\r\n var it = this.find(key);\r\n if (it.equals(this.end()) === true) {\r\n // INSERT\r\n it = this.data_.insert(hint, key);\r\n // POST-PROCESS\r\n this._Handle_insert(it, it.next());\r\n }\r\n return it;\r\n };\r\n /* ---------------------------------------------------------\r\n POST-PROCESS\r\n --------------------------------------------------------- */\r\n HashSet.prototype._Handle_insert = function (first, last) {\r\n for (; !first.equals(last); first = first.next())\r\n this.buckets_.insert(first);\r\n };\r\n HashSet.prototype._Handle_erase = function (first, last) {\r\n for (; !first.equals(last); first = first.next())\r\n this.buckets_.erase(first);\r\n };\r\n return HashSet;\r\n}(UniqueSet_1.UniqueSet));\r\nexports.HashSet = HashSet;\r\n/**\r\n *\r\n */\r\n(function (HashSet) {\r\n // BODY\r\n HashSet.Iterator = SetElementList_1.SetElementList.Iterator;\r\n HashSet.ReverseIterator = SetElementList_1.SetElementList.ReverseIterator;\r\n})(HashSet = exports.HashSet || (exports.HashSet = {}));\r\nexports.HashSet = HashSet;\r\n//# sourceMappingURL=HashSet.js.map","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MapContainer = void 0;\r\nvar Container_1 = require(\"./Container\");\r\nvar NativeArrayIterator_1 = require(\"../../internal/iterator/disposable/NativeArrayIterator\");\r\n/**\r\n * Basic map container.\r\n *\r\n * @template Key Key type\r\n * @template T Mapped type\r\n * @template Unique Whether duplicated key is blocked or not\r\n * @template Source Derived type extending this {@link MapContainer}\r\n * @template IteratorT Iterator type\r\n * @template ReverseT Reverse iterator type\r\n *\r\n * @author Jeongho Nam - https://github.com/samchon\r\n */\r\nvar MapContainer = /** @class */ (function (_super) {\r\n __extends(MapContainer, _super);\r\n /* ---------------------------------------------------------\r\n CONSTURCTORS\r\n --------------------------------------------------------- */\r\n /**\r\n * Default Constructor.\r\n */\r\n function MapContainer(factory) {\r\n var _this = _super.call(this) || this;\r\n _this.data_ = factory(_this);\r\n return _this;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n MapContainer.prototype.assign = function (first, last) {\r\n // INSERT\r\n this.clear();\r\n this.insert(first, last);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n MapContainer.prototype.clear = function () {\r\n // TO BE ABSTRACT\r\n this.data_.clear();\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n MapContainer.prototype.begin = function () {\r\n return this.data_.begin();\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n MapContainer.prototype.end = function () {\r\n return this.data_.end();\r\n };\r\n /* ---------------------------------------------------------\r\n ELEMENTS\r\n --------------------------------------------------------- */\r\n /**\r\n * @inheritDoc\r\n */\r\n MapContainer.prototype.has = function (key) {\r\n return !this.find(key).equals(this.end());\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n MapContainer.prototype.size = function () {\r\n return this.data_.size();\r\n };\r\n /* =========================================================\r\n ELEMENTS I/O\r\n - INSERT\r\n - ERASE\r\n - UTILITY\r\n - POST-PROCESS\r\n ============================================================\r\n INSERT\r\n --------------------------------------------------------- */\r\n /**\r\n * @inheritDoc\r\n */\r\n MapContainer.prototype.push = function () {\r\n var items = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n items[_i] = arguments[_i];\r\n }\r\n // INSERT BY RANGE\r\n var first = new NativeArrayIterator_1.NativeArrayIterator(items, 0);\r\n var last = new NativeArrayIterator_1.NativeArrayIterator(items, items.length);\r\n this.insert(first, last);\r\n // RETURN SIZE\r\n return this.size();\r\n };\r\n MapContainer.prototype.insert = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (args.length === 1)\r\n return this.emplace(args[0].first, args[0].second);\r\n else if (args[0].next instanceof Function &&\r\n args[1].next instanceof Function)\r\n return this._Insert_by_range(args[0], args[1]);\r\n else\r\n return this.emplace_hint(args[0], args[1].first, args[1].second);\r\n };\r\n MapContainer.prototype.erase = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (args.length === 1 &&\r\n (args[0] instanceof this.end().constructor === false ||\r\n args[0].source() !== this))\r\n return this._Erase_by_key(args[0]);\r\n else if (args.length === 1)\r\n return this._Erase_by_range(args[0]);\r\n else\r\n return this._Erase_by_range(args[0], args[1]);\r\n };\r\n MapContainer.prototype._Erase_by_range = function (first, last) {\r\n if (last === void 0) { last = first.next(); }\r\n // ERASE\r\n var it = this.data_.erase(first, last);\r\n // POST-PROCESS\r\n this._Handle_erase(first, last);\r\n return it;\r\n };\r\n return MapContainer;\r\n}(Container_1.Container));\r\nexports.MapContainer = MapContainer;\r\n//# sourceMappingURL=MapContainer.js.map","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __read = (this && this.__read) || function (o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n};\r\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.UniqueMap = void 0;\r\n//================================================================\r\n/**\r\n * @packageDocumentation\r\n * @module std.base\r\n */\r\n//================================================================\r\nvar MapContainer_1 = require(\"./MapContainer\");\r\nvar ErrorGenerator_1 = require(\"../../internal/exception/ErrorGenerator\");\r\n/**\r\n * Basic map container blocking duplicated key.\r\n *\r\n * @template Key Key type\r\n * @template T Mapped type\r\n * @template Source Derived type extending this {@link UniqueMap}\r\n * @template IteratorT Iterator type\r\n * @template ReverseT Reverse iterator type\r\n *\r\n * @author Jeongho Nam - https://github.com/samchon\r\n */\r\nvar UniqueMap = /** @class */ (function (_super) {\r\n __extends(UniqueMap, _super);\r\n function UniqueMap() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /* ---------------------------------------------------------\r\n ACCESSORS\r\n --------------------------------------------------------- */\r\n /**\r\n * @inheritDoc\r\n */\r\n UniqueMap.prototype.count = function (key) {\r\n return this.find(key).equals(this.end()) ? 0 : 1;\r\n };\r\n /**\r\n * Get a value.\r\n *\r\n * @param key Key to search for.\r\n * @return The value mapped by the key.\r\n */\r\n UniqueMap.prototype.get = function (key) {\r\n var it = this.find(key);\r\n if (it.equals(this.end()) === true)\r\n throw ErrorGenerator_1.ErrorGenerator.key_nout_found(this, \"get\", key);\r\n return it.second;\r\n };\r\n /**\r\n * Take a value.\r\n *\r\n * Get a value, or set the value and returns it.\r\n *\r\n * @param key Key to search for.\r\n * @param generator Value generator when the matched key not found\r\n * @returns Value, anyway\r\n */\r\n UniqueMap.prototype.take = function (key, generator) {\r\n var it = this.find(key);\r\n return it.equals(this.end())\r\n ? this.emplace(key, generator()).first.second\r\n : it.second;\r\n };\r\n /**\r\n * Set a value with key.\r\n *\r\n * @param key Key to be mapped or search for.\r\n * @param val Value to insert or assign.\r\n */\r\n UniqueMap.prototype.set = function (key, val) {\r\n this.insert_or_assign(key, val);\r\n };\r\n UniqueMap.prototype.insert = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n return _super.prototype.insert.apply(this, __spreadArray([], __read(args), false));\r\n };\r\n UniqueMap.prototype._Insert_by_range = function (first, last) {\r\n for (var it = first; !it.equals(last); it = it.next())\r\n this.emplace(it.value.first, it.value.second);\r\n };\r\n UniqueMap.prototype.insert_or_assign = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (args.length === 2) {\r\n return this._Insert_or_assign_with_key_value(args[0], args[1]);\r\n }\r\n else if (args.length === 3) {\r\n // INSERT OR ASSIGN AN ELEMENT\r\n return this._Insert_or_assign_with_hint(args[0], args[1], args[2]);\r\n }\r\n };\r\n UniqueMap.prototype._Insert_or_assign_with_key_value = function (key, value) {\r\n var ret = this.emplace(key, value);\r\n if (ret.second === false)\r\n ret.first.second = value;\r\n return ret;\r\n };\r\n UniqueMap.prototype._Insert_or_assign_with_hint = function (hint, key, value) {\r\n var ret = this.emplace_hint(hint, key, value);\r\n if (ret.second !== value)\r\n ret.second = value;\r\n return ret;\r\n };\r\n UniqueMap.prototype.extract = function (param) {\r\n if (param instanceof this.end().constructor)\r\n return this._Extract_by_iterator(param);\r\n else\r\n return this._Extract_by_key(param);\r\n };\r\n UniqueMap.prototype._Extract_by_key = function (key) {\r\n var it = this.find(key);\r\n if (it.equals(this.end()) === true)\r\n throw ErrorGenerator_1.ErrorGenerator.key_nout_found(this, \"extract\", key);\r\n var ret = it.value;\r\n this._Erase_by_range(it);\r\n return ret;\r\n };\r\n UniqueMap.prototype._Extract_by_iterator = function (it) {\r\n if (it.equals(this.end()) === true)\r\n return this.end();\r\n this._Erase_by_range(it);\r\n return it;\r\n };\r\n UniqueMap.prototype._Erase_by_key = function (key) {\r\n var it = this.find(key);\r\n if (it.equals(this.end()) === true)\r\n return 0;\r\n this._Erase_by_range(it);\r\n return 1;\r\n };\r\n /* ---------------------------------------------------------\r\n UTILITY\r\n --------------------------------------------------------- */\r\n /**\r\n * @inheritDoc\r\n */\r\n UniqueMap.prototype.merge = function (source) {\r\n for (var it = source.begin(); !it.equals(source.end());)\r\n if (this.has(it.first) === false) {\r\n this.insert(it.value);\r\n it = source.erase(it);\r\n }\r\n else\r\n it = it.next();\r\n };\r\n return UniqueMap;\r\n}(MapContainer_1.MapContainer));\r\nexports.UniqueMap = UniqueMap;\r\n//# sourceMappingURL=UniqueMap.js.map","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __read = (this && this.__read) || function (o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MapElementList = void 0;\r\n//================================================================\r\n/**\r\n * @packageDocumentation\r\n * @module std.internal\r\n */\r\n//================================================================\r\nvar ListContainer_1 = require(\"../linear/ListContainer\");\r\nvar ListIterator_1 = require(\"../../iterator/ListIterator\");\r\nvar ReverseIterator_1 = require(\"../../iterator/ReverseIterator\");\r\n/**\r\n * Doubly Linked List storing map elements.\r\n *\r\n * @template Key Key type\r\n * @template T Mapped type\r\n * @template Unique Whether duplicated key is blocked or not\r\n * @template Source Source type\r\n *\r\n * @author Jeongho Nam - https://github.com/samchon\r\n */\r\nvar MapElementList = /** @class */ (function (_super) {\r\n __extends(MapElementList, _super);\r\n /* ---------------------------------------------------------\r\n CONSTRUCTORS\r\n --------------------------------------------------------- */\r\n function MapElementList(associative) {\r\n var _this = _super.call(this) || this;\r\n _this.associative_ = associative;\r\n return _this;\r\n }\r\n MapElementList.prototype._Create_iterator = function (prev, next, val) {\r\n return MapElementList.Iterator.create(this, prev, next, val);\r\n };\r\n /**\r\n * @internal\r\n */\r\n MapElementList._Swap_associative = function (x, y) {\r\n var _a;\r\n _a = __read([y.associative_, x.associative_], 2), x.associative_ = _a[0], y.associative_ = _a[1];\r\n };\r\n /* ---------------------------------------------------------\r\n ACCESSORS\r\n --------------------------------------------------------- */\r\n MapElementList.prototype.associative = function () {\r\n return this.associative_;\r\n };\r\n return MapElementList;\r\n}(ListContainer_1.ListContainer));\r\nexports.MapElementList = MapElementList;\r\n/**\r\n *\r\n */\r\n(function (MapElementList) {\r\n /**\r\n * Iterator of map container storing elements in a list.\r\n *\r\n * @template Key Key type\r\n * @template T Mapped type\r\n * @template Unique Whether duplicated key is blocked or not\r\n * @template Source Source container type\r\n *\r\n * @author Jeongho Nam - https://github.com/samchon\r\n */\r\n var Iterator = /** @class */ (function (_super) {\r\n __extends(Iterator, _super);\r\n /* ---------------------------------------------------------\r\n CONSTRUCTORS\r\n --------------------------------------------------------- */\r\n function Iterator(list, prev, next, val) {\r\n var _this = _super.call(this, prev, next, val) || this;\r\n _this.list_ = list;\r\n return _this;\r\n }\r\n /**\r\n * @internal\r\n */\r\n Iterator.create = function (list, prev, next, val) {\r\n return new Iterator(list, prev, next, val);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n Iterator.prototype.reverse = function () {\r\n return new ReverseIterator(this);\r\n };\r\n /* ---------------------------------------------------------\r\n ACCESSORS\r\n --------------------------------------------------------- */\r\n /**\r\n * @inheritDoc\r\n */\r\n Iterator.prototype.source = function () {\r\n return this.list_.associative();\r\n };\r\n Object.defineProperty(Iterator.prototype, \"first\", {\r\n /**\r\n * @inheritDoc\r\n */\r\n get: function () {\r\n return this.value.first;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Iterator.prototype, \"second\", {\r\n /**\r\n * @inheritDoc\r\n */\r\n get: function () {\r\n return this.value.second;\r\n },\r\n /**\r\n * @inheritDoc\r\n */\r\n set: function (val) {\r\n this.value.second = val;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return Iterator;\r\n }(ListIterator_1.ListIterator));\r\n MapElementList.Iterator = Iterator;\r\n /**\r\n * Reverse iterator of map container storing elements a list.\r\n *\r\n * @template Key Key type\r\n * @template T Mapped type\r\n * @template Unique Whether duplicated key is blocked or not\r\n * @template Source Source container type\r\n *\r\n * @author Jeongho Nam - https://github.com/samchon\r\n */\r\n var ReverseIterator = /** @class */ (function (_super) {\r\n __extends(ReverseIterator, _super);\r\n function ReverseIterator() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /* ---------------------------------------------------------\r\n CONSTRUCTORS\r\n --------------------------------------------------------- */\r\n ReverseIterator.prototype._Create_neighbor = function (base) {\r\n return new ReverseIterator(base);\r\n };\r\n Object.defineProperty(ReverseIterator.prototype, \"first\", {\r\n /* ---------------------------------------------------------\r\n ACCESSORS\r\n --------------------------------------------------------- */\r\n /**\r\n * Get the first, key element.\r\n *\r\n * @return The first element.\r\n */\r\n get: function () {\r\n return this.base_.first;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReverseIterator.prototype, \"second\", {\r\n /**\r\n * Get the second, stored element.\r\n *\r\n * @return The second element.\r\n */\r\n get: function () {\r\n return this.base_.second;\r\n },\r\n /**\r\n * Set the second, stored element.\r\n *\r\n * @param val The value to set.\r\n */\r\n set: function (val) {\r\n this.base_.second = val;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return ReverseIterator;\r\n }(ReverseIterator_1.ReverseIterator));\r\n MapElementList.ReverseIterator = ReverseIterator;\r\n})(MapElementList = exports.MapElementList || (exports.MapElementList = {}));\r\nexports.MapElementList = MapElementList;\r\n//# sourceMappingURL=MapElementList.js.map","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __read = (this && this.__read) || function (o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n};\r\nvar __values = (this && this.__values) || function(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MapHashBuckets = void 0;\r\n//================================================================\r\n/**\r\n * @packageDocumentation\r\n * @module std.internal\r\n */\r\n//================================================================\r\nvar HashBuckets_1 = require(\"./HashBuckets\");\r\n/**\r\n * Hash buckets for map containers.\r\n *\r\n * @author Jeongho Nam - https://github.com/samchon\r\n */\r\nvar MapHashBuckets = /** @class */ (function (_super) {\r\n __extends(MapHashBuckets, _super);\r\n /* ---------------------------------------------------------\r\n CONSTRUCTORS\r\n --------------------------------------------------------- */\r\n /**\r\n * Initializer Constructor\r\n *\r\n * @param source Source map container\r\n * @param hasher Hash function\r\n * @param pred Equality function\r\n */\r\n function MapHashBuckets(source, hasher, pred) {\r\n var _this = _super.call(this, fetcher, hasher) || this;\r\n _this.source_ = source;\r\n _this.key_eq_ = pred;\r\n return _this;\r\n }\r\n /**\r\n * @internal\r\n */\r\n MapHashBuckets._Swap_source = function (x, y) {\r\n var _a;\r\n _a = __read([y.source_, x.source_], 2), x.source_ = _a[0], y.source_ = _a[1];\r\n };\r\n /* ---------------------------------------------------------\r\n FINDERS\r\n --------------------------------------------------------- */\r\n MapHashBuckets.prototype.key_eq = function () {\r\n return this.key_eq_;\r\n };\r\n MapHashBuckets.prototype.find = function (key) {\r\n var e_1, _a;\r\n var index = this.hash_function()(key) % this.length();\r\n var bucket = this.at(index);\r\n try {\r\n for (var bucket_1 = __values(bucket), bucket_1_1 = bucket_1.next(); !bucket_1_1.done; bucket_1_1 = bucket_1.next()) {\r\n var it = bucket_1_1.value;\r\n if (this.key_eq_(it.first, key))\r\n return it;\r\n }\r\n }\r\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\r\n finally {\r\n try {\r\n if (bucket_1_1 && !bucket_1_1.done && (_a = bucket_1.return)) _a.call(bucket_1);\r\n }\r\n finally { if (e_1) throw e_1.error; }\r\n }\r\n return this.source_.end();\r\n };\r\n return MapHashBuckets;\r\n}(HashBuckets_1.HashBuckets));\r\nexports.MapHashBuckets = MapHashBuckets;\r\nfunction fetcher(elem) {\r\n return elem.first;\r\n}\r\n//# sourceMappingURL=MapHashBuckets.js.map","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Entry = void 0;\r\nvar hash_1 = require(\"../functional/hash\");\r\nvar comparators_1 = require(\"../functional/comparators\");\r\n/**\r\n * Entry for mapping.\r\n *\r\n * @author Jeongho Nam - https://github.com/samchon\r\n */\r\nvar Entry = /** @class */ (function () {\r\n /**\r\n * Intializer Constructor.\r\n *\r\n * @param first The first, key element.\r\n * @param second The second, mapped element.\r\n */\r\n function Entry(first, second) {\r\n this.first = first;\r\n this.second = second;\r\n }\r\n /**\r\n * @inheritDoc\r\n */\r\n Entry.prototype.equals = function (obj) {\r\n return (0, comparators_1.equal_to)(this.first, obj.first);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n Entry.prototype.less = function (obj) {\r\n return (0, comparators_1.less)(this.first, obj.first);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n Entry.prototype.hashCode = function () {\r\n return (0, hash_1.hash)(this.first);\r\n };\r\n return Entry;\r\n}());\r\nexports.Entry = Entry;\r\n//# sourceMappingURL=Entry.js.map","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __read = (this && this.__read) || function (o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n};\r\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.HashMap = void 0;\r\n//================================================================\r\n/**\r\n * @packageDocumentation\r\n * @module std\r\n */\r\n//================================================================\r\nvar UniqueMap_1 = require(\"../base/container/UniqueMap\");\r\nvar IHashContainer_1 = require(\"../internal/container/associative/IHashContainer\");\r\nvar MapElementList_1 = require(\"../internal/container/associative/MapElementList\");\r\nvar MapHashBuckets_1 = require(\"../internal/hash/MapHashBuckets\");\r\nvar Entry_1 = require(\"../utility/Entry\");\r\nvar Pair_1 = require(\"../utility/Pair\");\r\n/**\r\n * Unique-key Map based on Hash buckets.\r\n *\r\n * @author Jeongho Nam - https://github.com/samchon\r\n */\r\nvar HashMap = /** @class */ (function (_super) {\r\n __extends(HashMap, _super);\r\n function HashMap() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var _this = _super.call(this, function (thisArg) { return new MapElementList_1.MapElementList(thisArg); }) || this;\r\n IHashContainer_1.IHashContainer.construct.apply(IHashContainer_1.IHashContainer, __spreadArray([_this,\r\n HashMap,\r\n function (hash, pred) {\r\n _this.buckets_ = new MapHashBuckets_1.MapHashBuckets(_this, hash, pred);\r\n }], __read(args), false));\r\n return _this;\r\n }\r\n /* ---------------------------------------------------------\r\n ASSIGN & CLEAR\r\n --------------------------------------------------------- */\r\n /**\r\n * @inheritDoc\r\n */\r\n HashMap.prototype.clear = function () {\r\n this.buckets_.clear();\r\n _super.prototype.clear.call(this);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n HashMap.prototype.swap = function (obj) {\r\n var _a, _b;\r\n // SWAP CONTENTS\r\n _a = __read([obj.data_, this.data_], 2), this.data_ = _a[0], obj.data_ = _a[1];\r\n MapElementList_1.MapElementList._Swap_associative(this.data_, obj.data_);\r\n // SWAP BUCKETS\r\n MapHashBuckets_1.MapHashBuckets._Swap_source(this.buckets_, obj.buckets_);\r\n _b = __read([obj.buckets_, this.buckets_], 2), this.buckets_ = _b[0], obj.buckets_ = _b[1];\r\n };\r\n /* =========================================================\r\n ACCESSORS\r\n - MEMBER\r\n - HASH\r\n ============================================================\r\n MEMBER\r\n --------------------------------------------------------- */\r\n /**\r\n * @inheritDoc\r\n */\r\n HashMap.prototype.find = function (key) {\r\n return this.buckets_.find(key);\r\n };\r\n HashMap.prototype.begin = function (index) {\r\n if (index === void 0) { index = null; }\r\n if (index === null)\r\n return _super.prototype.begin.call(this);\r\n else\r\n return this.buckets_.at(index)[0];\r\n };\r\n HashMap.prototype.end = function (index) {\r\n if (index === void 0) { index = null; }\r\n if (index === null)\r\n return _super.prototype.end.call(this);\r\n else {\r\n var bucket = this.buckets_.at(index);\r\n return bucket[bucket.length - 1].next();\r\n }\r\n };\r\n HashMap.prototype.rbegin = function (index) {\r\n if (index === void 0) { index = null; }\r\n return this.end(index).reverse();\r\n };\r\n HashMap.prototype.rend = function (index) {\r\n if (index === void 0) { index = null; }\r\n return this.begin(index).reverse();\r\n };\r\n /* ---------------------------------------------------------\r\n HASH\r\n --------------------------------------------------------- */\r\n /**\r\n * @inheritDoc\r\n */\r\n HashMap.prototype.bucket_count = function () {\r\n return this.buckets_.length();\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n HashMap.prototype.bucket_size = function (index) {\r\n return this.buckets_.at(index).length;\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n HashMap.prototype.load_factor = function () {\r\n return this.buckets_.load_factor();\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n HashMap.prototype.hash_function = function () {\r\n return this.buckets_.hash_function();\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n HashMap.prototype.key_eq = function () {\r\n return this.buckets_.key_eq();\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n HashMap.prototype.bucket = function (key) {\r\n return this.hash_function()(key) % this.buckets_.length();\r\n };\r\n HashMap.prototype.max_load_factor = function (z) {\r\n if (z === void 0) { z = null; }\r\n return this.buckets_.max_load_factor(z);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n HashMap.prototype.reserve = function (n) {\r\n this.buckets_.reserve(n);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n HashMap.prototype.rehash = function (n) {\r\n this.buckets_.rehash(n);\r\n };\r\n /* =========================================================\r\n ELEMENTS I/O\r\n - INSERT\r\n - POST-PROCESS\r\n ============================================================\r\n INSERT\r\n --------------------------------------------------------- */\r\n /**\r\n * @inheritDoc\r\n */\r\n HashMap.prototype.emplace = function (key, val) {\r\n // TEST WHETHER EXIST\r\n var it = this.find(key);\r\n if (it.equals(this.end()) === false)\r\n return new Pair_1.Pair(it, false);\r\n // INSERT\r\n this.data_.push(new Entry_1.Entry(key, val));\r\n it = it.prev();\r\n // POST-PROCESS\r\n this._Handle_insert(it, it.next());\r\n return new Pair_1.Pair(it, true);\r\n };\r\n /**\r\n * @inheritDoc\r\n */\r\n HashMap.prototype.emplace_hint = function (hint, key, val) {\r\n // FIND DUPLICATED KEY\r\n var it = this.find(key);\r\n if (it.equals(this.end()) === true) {\r\n // INSERT\r\n it = this.data_.insert(hint, new Entry_1.Entry(key, val));\r\n // POST-PROCESS\r\n this._Handle_insert(it, it.next());\r\n }\r\n return it;\r\n };\r\n /* ---------------------------------------------------------\r\n POST-PROCESS\r\n --------------------------------------------------------- */\r\n HashMap.prototype._Handle_insert = function (first, last) {\r\n for (; !first.equals(last); first = first.next())\r\n this.buckets_.insert(first);\r\n };\r\n HashMap.prototype._Handle_erase = function (first, last) {\r\n for (; !first.equals(last); first = first.next())\r\n this.buckets_.erase(first);\r\n };\r\n return HashMap;\r\n}(UniqueMap_1.UniqueMap));\r\nexports.HashMap = HashMap;\r\n/**\r\n *\r\n */\r\n(function (HashMap) {\r\n // BODY\r\n HashMap.Iterator = MapElementList_1.MapElementList.Iterator;\r\n HashMap.ReverseIterator = MapElementList_1.MapElementList.ReverseIterator;\r\n})(HashMap = exports.HashMap || (exports.HashMap = {}));\r\nexports.HashMap = HashMap;\r\n//# sourceMappingURL=HashMap.js.map","\"use strict\";\r\nvar __values = (this && this.__values) || function (o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar HashSet_1 = require(\"tstl/container/HashSet\");\r\nvar HashMap_1 = require(\"tstl/container/HashMap\");\r\nvar EventTarget = /** @class */ (function () {\r\n function EventTarget() {\r\n this.listeners_ = new HashMap_1.HashMap();\r\n this.created_at_ = new Date();\r\n }\r\n EventTarget.prototype.dispatchEvent = function (event) {\r\n var e_1, _a;\r\n // FIND LISTENERS\r\n var it = this.listeners_.find(event.type);\r\n if (it.equals(this.listeners_.end()))\r\n return;\r\n // SET DEFAULT ARGUMENTS\r\n event.target = this;\r\n event.timeStamp = new Date().getTime() - this.created_at_.getTime();\r\n try {\r\n // CALL THE LISTENERS\r\n for (var _b = __values(it.second), _c = _b.next(); !_c.done; _c = _b.next()) {\r\n var listener = _c.value;\r\n listener(event);\r\n }\r\n }\r\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\r\n finally {\r\n try {\r\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\r\n }\r\n finally { if (e_1) throw e_1.error; }\r\n }\r\n };\r\n EventTarget.prototype.addEventListener = function (type, listener) {\r\n var it = this.listeners_.find(type);\r\n if (it.equals(this.listeners_.end()))\r\n it = this.listeners_.emplace(type, new HashSet_1.HashSet()).first;\r\n it.second.insert(listener);\r\n };\r\n EventTarget.prototype.removeEventListener = function (type, listener) {\r\n var it = this.listeners_.find(type);\r\n if (it.equals(this.listeners_.end()))\r\n return;\r\n it.second.erase(listener);\r\n if (it.second.empty())\r\n this.listeners_.erase(it);\r\n };\r\n return EventTarget;\r\n}());\r\nexports.EventTarget = EventTarget;\r\n//# sourceMappingURL=EventTarget.js.map","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Event = /** @class */ (function () {\r\n function Event(type, init) {\r\n this.type = type;\r\n if (init)\r\n Object.assign(this, init);\r\n }\r\n return Event;\r\n}());\r\nexports.Event = Event;\r\n//# sourceMappingURL=Event.js.map","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n }\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Event_1 = require(\"./Event\");\r\nvar CloseEvent = /** @class */ (function (_super) {\r\n __extends(CloseEvent, _super);\r\n function CloseEvent(type, init) {\r\n return _super.call(this, type, init) || this;\r\n }\r\n return CloseEvent;\r\n}(Event_1.Event));\r\nexports.CloseEvent = CloseEvent;\r\n//# sourceMappingURL=CloseEvent.js.map","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n }\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Event_1 = require(\"./Event\");\r\nvar MessageEvent = /** @class */ (function (_super) {\r\n __extends(MessageEvent, _super);\r\n function MessageEvent(type, init) {\r\n return _super.call(this, type, init) || this;\r\n }\r\n return MessageEvent;\r\n}(Event_1.Event));\r\nexports.MessageEvent = MessageEvent;\r\n//# sourceMappingURL=MessageEvent.js.map","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n }\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Event_1 = require(\"./Event\");\r\nvar ErrorEvent = /** @class */ (function (_super) {\r\n __extends(ErrorEvent, _super);\r\n function ErrorEvent(type, init) {\r\n return _super.call(this, type, init) || this;\r\n }\r\n return ErrorEvent;\r\n}(Event_1.Event));\r\nexports.ErrorEvent = ErrorEvent;\r\n//# sourceMappingURL=ErrorEvent.js.map","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n }\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar websocket_1 = require(\"websocket\");\r\nvar EventTarget_1 = require(\"./events/EventTarget\");\r\nvar Event_1 = require(\"./events/Event\");\r\nvar CloseEvent_1 = require(\"./events/CloseEvent\");\r\nvar MessageEvent_1 = require(\"./events/MessageEvent\");\r\nvar ErrorEvent_1 = require(\"./events/ErrorEvent\");\r\nvar WebSocket = /** @class */ (function (_super) {\r\n __extends(WebSocket, _super);\r\n /* ----------------------------------------------------------------\r\n CONSTRUCTORS\r\n ---------------------------------------------------------------- */\r\n function WebSocket(url, protocols) {\r\n var _this = _super.call(this) || this;\r\n _this.on_ = {};\r\n _this.state_ = WebSocket.CONNECTING;\r\n //----\r\n // CLIENT\r\n //----\r\n // PREPARE SOCKET\r\n _this.client_ = new websocket_1.client();\r\n _this.client_.on(\"connect\", _this._Handle_connect.bind(_this));\r\n _this.client_.on(\"connectFailed\", _this._Handle_error.bind(_this));\r\n if (typeof protocols === \"string\")\r\n protocols = [protocols];\r\n // DO CONNECT\r\n _this.client_.connect(url, protocols);\r\n return _this;\r\n }\r\n WebSocket.prototype.close = function (code, reason) {\r\n this.state_ = WebSocket.CLOSING;\r\n if (code === undefined)\r\n this.connection_.sendCloseFrame();\r\n else\r\n this.connection_.sendCloseFrame(code, reason, true);\r\n };\r\n /* ================================================================\r\n ACCESSORS\r\n - SENDER\r\n - PROPERTIES\r\n - LISTENERS\r\n ===================================================================\r\n SENDER\r\n ---------------------------------------------------------------- */\r\n WebSocket.prototype.send = function (data) {\r\n if (typeof data.valueOf() === \"string\")\r\n this.connection_.sendUTF(data);\r\n else {\r\n var buffer = void 0;\r\n if (data instanceof Buffer)\r\n buffer = data;\r\n else if (data instanceof Blob)\r\n buffer = new Buffer(data, \"blob\");\r\n else if (data.buffer)\r\n buffer = new Buffer(data.buffer);\r\n else\r\n buffer = new Buffer(data);\r\n this.connection_.sendBytes(buffer);\r\n }\r\n };\r\n Object.defineProperty(WebSocket.prototype, \"url\", {\r\n /* ----------------------------------------------------------------\r\n PROPERTIES\r\n ---------------------------------------------------------------- */\r\n get: function () {\r\n return this.client_.url.href;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(WebSocket.prototype, \"protocol\", {\r\n get: function () {\r\n return this.client_.protocols\r\n ? this.client_.protocols[0]\r\n : \"\";\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(WebSocket.prototype, \"extensions\", {\r\n get: function () {\r\n return this.connection_ && this.connection_.extensions\r\n ? this.connection_.extensions[0].name\r\n : \"\";\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(WebSocket.prototype, \"readyState\", {\r\n get: function () {\r\n return this.state_;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(WebSocket.prototype, \"bufferedAmount\", {\r\n get: function () {\r\n return this.connection_.bytesWaitingToFlush;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(WebSocket.prototype, \"binaryType\", {\r\n get: function () {\r\n return \"arraybuffer\";\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(WebSocket.prototype, \"onopen\", {\r\n /* ----------------------------------------------------------------\r\n LISTENERS\r\n ---------------------------------------------------------------- */\r\n get: function () {\r\n return this.on_.open;\r\n },\r\n set: function (listener) {\r\n this._Set_on(\"open\", listener);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(WebSocket.prototype, \"onclose\", {\r\n get: function () {\r\n return this.on_.close;\r\n },\r\n set: function (listener) {\r\n this._Set_on(\"close\", listener);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(WebSocket.prototype, \"onmessage\", {\r\n get: function () {\r\n return this.on_.message;\r\n },\r\n set: function (listener) {\r\n this._Set_on(\"message\", listener);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(WebSocket.prototype, \"onerror\", {\r\n get: function () {\r\n return this.on_.error;\r\n },\r\n set: function (listener) {\r\n this._Set_on(\"error\", listener);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @hidden\r\n */\r\n WebSocket.prototype._Set_on = function (type, listener) {\r\n if (this.on_[type])\r\n this.removeEventListener(type, this.on_[type]);\r\n this.addEventListener(type, listener);\r\n this.on_[type] = listener;\r\n };\r\n /* ----------------------------------------------------------------\r\n SOCKET HANDLERS\r\n ---------------------------------------------------------------- */\r\n /**\r\n * @hidden\r\n */\r\n WebSocket.prototype._Handle_connect = function (connection) {\r\n this.connection_ = connection;\r\n this.state_ = WebSocket.OPEN;\r\n this.connection_.on(\"message\", this._Handle_message.bind(this));\r\n this.connection_.on(\"error\", this._Handle_error.bind(this));\r\n this.connection_.on(\"close\", this._Handle_close.bind(this));\r\n var event = new Event_1.Event(\"open\", EVENT_INIT);\r\n this.dispatchEvent(event);\r\n };\r\n /**\r\n * @hidden\r\n */\r\n WebSocket.prototype._Handle_close = function (code, reason) {\r\n var event = new CloseEvent_1.CloseEvent(\"close\", __assign({}, EVENT_INIT, { code: code, reason: reason }));\r\n this.state_ = WebSocket.CLOSED;\r\n this.dispatchEvent(event);\r\n };\r\n /**\r\n * @hidden\r\n */\r\n WebSocket.prototype._Handle_message = function (message) {\r\n var event = new MessageEvent_1.MessageEvent(\"message\", __assign({}, EVENT_INIT, { data: message.binaryData\r\n ? message.binaryData\r\n : message.utf8Data }));\r\n this.dispatchEvent(event);\r\n };\r\n /**\r\n * @hidden\r\n */\r\n WebSocket.prototype._Handle_error = function (error) {\r\n var event = new ErrorEvent_1.ErrorEvent(\"error\", __assign({}, EVENT_INIT, { error: error, message: error.message }));\r\n if (this.state_ === WebSocket.CONNECTING)\r\n this.state_ = WebSocket.CLOSED;\r\n this.dispatchEvent(event);\r\n };\r\n return WebSocket;\r\n}(EventTarget_1.EventTarget));\r\nexports.WebSocket = WebSocket;\r\n(function (WebSocket) {\r\n WebSocket.CONNECTING = 0;\r\n WebSocket.OPEN = 1;\r\n WebSocket.CLOSING = 2;\r\n WebSocket.CLOSED = 3;\r\n})(WebSocket = exports.WebSocket || (exports.WebSocket = {}));\r\nexports.WebSocket = WebSocket;\r\nvar EVENT_INIT = {\r\n bubbles: false,\r\n cancelable: false\r\n};\r\n//# sourceMappingURL=WebSocket.js.map","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar node_1 = require(\"tstl/utility/node\");\r\nif (node_1.is_node())\r\n global.WebSocket = require(\"./WebSocket\").WebSocket;\r\n//# sourceMappingURL=index.js.map","const {bech32, hex, utf8} = require('@scure/base')\n\n// defaults for encode; default timestamp is current time at call\nconst DEFAULTNETWORK = {\n // default network is bitcoin\n bech32: 'bc',\n pubKeyHash: 0x00,\n scriptHash: 0x05,\n validWitnessVersions: [0]\n}\nconst TESTNETWORK = {\n bech32: 'tb',\n pubKeyHash: 0x6f,\n scriptHash: 0xc4,\n validWitnessVersions: [0]\n}\nconst REGTESTNETWORK = {\n bech32: 'bcrt',\n pubKeyHash: 0x6f,\n scriptHash: 0xc4,\n validWitnessVersions: [0]\n}\nconst SIMNETWORK = {\n bech32: 'sb',\n pubKeyHash: 0x3f,\n scriptHash: 0x7b,\n validWitnessVersions: [0]\n}\n\nconst FEATUREBIT_ORDER = [\n 'option_data_loss_protect',\n 'initial_routing_sync',\n 'option_upfront_shutdown_script',\n 'gossip_queries',\n 'var_onion_optin',\n 'gossip_queries_ex',\n 'option_static_remotekey',\n 'payment_secret',\n 'basic_mpp',\n 'option_support_large_channel'\n]\n\nconst DIVISORS = {\n m: BigInt(1e3),\n u: BigInt(1e6),\n n: BigInt(1e9),\n p: BigInt(1e12)\n}\n\nconst MAX_MILLISATS = BigInt('2100000000000000000')\n\nconst MILLISATS_PER_BTC = BigInt(1e11)\n\nconst TAGCODES = {\n payment_hash: 1,\n payment_secret: 16,\n description: 13,\n payee: 19,\n description_hash: 23, // commit to longer descriptions (used by lnurl-pay)\n expiry: 6, // default: 3600 (1 hour)\n min_final_cltv_expiry: 24, // default: 9\n fallback_address: 9,\n route_hint: 3, // for extra routing info (private etc.)\n feature_bits: 5,\n metadata: 27\n}\n\n// reverse the keys and values of TAGCODES and insert into TAGNAMES\nconst TAGNAMES = {}\nfor (let i = 0, keys = Object.keys(TAGCODES); i < keys.length; i++) {\n const currentName = keys[i]\n const currentCode = TAGCODES[keys[i]].toString()\n TAGNAMES[currentCode] = currentName\n}\n\nconst TAGPARSERS = {\n 1: words => hex.encode(bech32.fromWordsUnsafe(words)), // 256 bits\n 16: words => hex.encode(bech32.fromWordsUnsafe(words)), // 256 bits\n 13: words => utf8.encode(bech32.fromWordsUnsafe(words)), // string variable length\n 19: words => hex.encode(bech32.fromWordsUnsafe(words)), // 264 bits\n 23: words => hex.encode(bech32.fromWordsUnsafe(words)), // 256 bits\n 27: words => hex.encode(bech32.fromWordsUnsafe(words)), // variable\n 6: wordsToIntBE, // default: 3600 (1 hour)\n 24: wordsToIntBE, // default: 9\n 3: routingInfoParser, // for extra routing info (private etc.)\n 5: featureBitsParser // keep feature bits as array of 5 bit words\n}\n\nfunction getUnknownParser(tagCode) {\n return words => ({\n tagCode: parseInt(tagCode),\n words: bech32.encode('unknown', words, Number.MAX_SAFE_INTEGER)\n })\n}\n\nfunction wordsToIntBE(words) {\n return words.reverse().reduce((total, item, index) => {\n return total + item * Math.pow(32, index)\n }, 0)\n}\n\n// first convert from words to buffer, trimming padding where necessary\n// parse in 51 byte chunks. See encoder for details.\nfunction routingInfoParser(words) {\n const routes = []\n let pubkey,\n shortChannelId,\n feeBaseMSats,\n feeProportionalMillionths,\n cltvExpiryDelta\n let routesBuffer = bech32.fromWordsUnsafe(words)\n while (routesBuffer.length > 0) {\n pubkey = hex.encode(routesBuffer.slice(0, 33)) // 33 bytes\n shortChannelId = hex.encode(routesBuffer.slice(33, 41)) // 8 bytes\n feeBaseMSats = parseInt(hex.encode(routesBuffer.slice(41, 45)), 16) // 4 bytes\n feeProportionalMillionths = parseInt(\n hex.encode(routesBuffer.slice(45, 49)),\n 16\n ) // 4 bytes\n cltvExpiryDelta = parseInt(hex.encode(routesBuffer.slice(49, 51)), 16) // 2 bytes\n\n routesBuffer = routesBuffer.slice(51)\n\n routes.push({\n pubkey,\n short_channel_id: shortChannelId,\n fee_base_msat: feeBaseMSats,\n fee_proportional_millionths: feeProportionalMillionths,\n cltv_expiry_delta: cltvExpiryDelta\n })\n }\n return routes\n}\n\nfunction featureBitsParser(words) {\n const bools = words\n .slice()\n .reverse()\n .map(word => [\n !!(word & 0b1),\n !!(word & 0b10),\n !!(word & 0b100),\n !!(word & 0b1000),\n !!(word & 0b10000)\n ])\n .reduce((finalArr, itemArr) => finalArr.concat(itemArr), [])\n while (bools.length < FEATUREBIT_ORDER.length * 2) {\n bools.push(false)\n }\n\n const featureBits = {}\n\n FEATUREBIT_ORDER.forEach((featureName, index) => {\n let status\n if (bools[index * 2]) {\n status = 'required'\n } else if (bools[index * 2 + 1]) {\n status = 'supported'\n } else {\n status = 'unsupported'\n }\n featureBits[featureName] = status\n })\n\n const extraBits = bools.slice(FEATUREBIT_ORDER.length * 2)\n featureBits.extra_bits = {\n start_bit: FEATUREBIT_ORDER.length * 2,\n bits: extraBits,\n has_required: extraBits.reduce(\n (result, bit, index) =>\n index % 2 !== 0 ? result || false : result || bit,\n false\n )\n }\n\n return featureBits\n}\n\nfunction hrpToMillisat(hrpString, outputString) {\n let divisor, value\n if (hrpString.slice(-1).match(/^[munp]$/)) {\n divisor = hrpString.slice(-1)\n value = hrpString.slice(0, -1)\n } else if (hrpString.slice(-1).match(/^[^munp0-9]$/)) {\n throw new Error('Not a valid multiplier for the amount')\n } else {\n value = hrpString\n }\n\n if (!value.match(/^\\d+$/))\n throw new Error('Not a valid human readable amount')\n\n const valueBN = BigInt(value)\n\n const millisatoshisBN = divisor\n ? (valueBN * MILLISATS_PER_BTC) / DIVISORS[divisor]\n : valueBN * MILLISATS_PER_BTC\n\n if (\n (divisor === 'p' && !(valueBN % BigInt(10) === BigInt(0))) ||\n millisatoshisBN > MAX_MILLISATS\n ) {\n throw new Error('Amount is outside of valid range')\n }\n\n return outputString ? millisatoshisBN.toString() : millisatoshisBN\n}\n\n// decode will only have extra comments that aren't covered in encode comments.\n// also if anything is hard to read I'll comment.\nfunction decode(paymentRequest, network) {\n if (typeof paymentRequest !== 'string')\n throw new Error('Lightning Payment Request must be string')\n if (paymentRequest.slice(0, 2).toLowerCase() !== 'ln')\n throw new Error('Not a proper lightning payment request')\n\n const sections = []\n const decoded = bech32.decode(paymentRequest, Number.MAX_SAFE_INTEGER)\n paymentRequest = paymentRequest.toLowerCase()\n const prefix = decoded.prefix\n let words = decoded.words\n let letters = paymentRequest.slice(prefix.length + 1)\n let sigWords = words.slice(-104)\n words = words.slice(0, -104)\n\n // Without reverse lookups, can't say that the multipier at the end must\n // have a number before it, so instead we parse, and if the second group\n // doesn't have anything, there's a good chance the last letter of the\n // coin type got captured by the third group, so just re-regex without\n // the number.\n let prefixMatches = prefix.match(/^ln(\\S+?)(\\d*)([a-zA-Z]?)$/)\n if (prefixMatches && !prefixMatches[2])\n prefixMatches = prefix.match(/^ln(\\S+)$/)\n if (!prefixMatches) {\n throw new Error('Not a proper lightning payment request')\n }\n\n // \"ln\" section\n sections.push({\n name: 'lightning_network',\n letters: 'ln'\n })\n\n // \"bc\" section\n const bech32Prefix = prefixMatches[1]\n let coinNetwork\n if (!network) {\n switch (bech32Prefix) {\n case DEFAULTNETWORK.bech32:\n coinNetwork = DEFAULTNETWORK\n break\n case TESTNETWORK.bech32:\n coinNetwork = TESTNETWORK\n break\n case REGTESTNETWORK.bech32:\n coinNetwork = REGTESTNETWORK\n break\n case SIMNETWORK.bech32:\n coinNetwork = SIMNETWORK\n break\n }\n } else {\n if (\n network.bech32 === undefined ||\n network.pubKeyHash === undefined ||\n network.scriptHash === undefined ||\n !Array.isArray(network.validWitnessVersions)\n )\n throw new Error('Invalid network')\n coinNetwork = network\n }\n if (!coinNetwork || coinNetwork.bech32 !== bech32Prefix) {\n throw new Error('Unknown coin bech32 prefix')\n }\n sections.push({\n name: 'coin_network',\n letters: bech32Prefix,\n value: coinNetwork\n })\n\n // amount section\n const value = prefixMatches[2]\n let millisatoshis\n if (value) {\n const divisor = prefixMatches[3]\n millisatoshis = hrpToMillisat(value + divisor, true)\n sections.push({\n name: 'amount',\n letters: prefixMatches[2] + prefixMatches[3],\n value: millisatoshis\n })\n } else {\n millisatoshis = null\n }\n\n // \"1\" separator\n sections.push({\n name: 'separator',\n letters: '1'\n })\n\n // timestamp\n const timestamp = wordsToIntBE(words.slice(0, 7))\n words = words.slice(7) // trim off the left 7 words\n sections.push({\n name: 'timestamp',\n letters: letters.slice(0, 7),\n value: timestamp\n })\n letters = letters.slice(7)\n\n let tagName, parser, tagLength, tagWords\n // we have no tag count to go on, so just keep hacking off words\n // until we have none.\n while (words.length > 0) {\n const tagCode = words[0].toString()\n tagName = TAGNAMES[tagCode] || 'unknown_tag'\n parser = TAGPARSERS[tagCode] || getUnknownParser(tagCode)\n words = words.slice(1)\n\n tagLength = wordsToIntBE(words.slice(0, 2))\n words = words.slice(2)\n\n tagWords = words.slice(0, tagLength)\n words = words.slice(tagLength)\n\n sections.push({\n name: tagName,\n tag: letters[0],\n letters: letters.slice(0, 1 + 2 + tagLength),\n value: parser(tagWords) // see: parsers for more comments\n })\n letters = letters.slice(1 + 2 + tagLength)\n }\n\n // signature\n sections.push({\n name: 'signature',\n letters: letters.slice(0, 104),\n value: hex.encode(bech32.fromWordsUnsafe(sigWords))\n })\n letters = letters.slice(104)\n\n // checksum\n sections.push({\n name: 'checksum',\n letters: letters\n })\n\n let result = {\n paymentRequest,\n sections,\n\n get expiry() {\n let exp = sections.find(s => s.name === 'expiry')\n if (exp) return getValue('timestamp') + exp.value\n },\n\n get route_hints() {\n return sections.filter(s => s.name === 'route_hint').map(s => s.value)\n }\n }\n\n for (let name in TAGCODES) {\n if (name === 'route_hint') {\n // route hints can be multiple, so this won't work for them\n continue\n }\n\n Object.defineProperty(result, name, {\n get() {\n return getValue(name)\n }\n })\n }\n\n return result\n\n function getValue(name) {\n let section = sections.find(s => s.name === name)\n return section ? section.value : undefined\n }\n}\n\nmodule.exports = {\n decode,\n hrpToMillisat\n}\n","// src/events/index.ts\nimport { getEventHash } from \"nostr-tools\";\nimport EventEmitter2 from \"eventemitter3\";\n\n// src/zap/index.ts\nimport EventEmitter from \"eventemitter3\";\nimport { nip57 } from \"nostr-tools\";\nimport { bech32 } from \"@scure/base\";\nvar Zap = class extends EventEmitter {\n ndk;\n zappedEvent;\n zappedUser;\n constructor(args) {\n super();\n this.ndk = args.ndk;\n this.zappedEvent = args.zappedEvent;\n this.zappedUser = args.zappedUser || this.ndk.getUser({ hexpubkey: this.zappedEvent.pubkey });\n }\n async getZapEndpoint() {\n let lud06;\n let lud16;\n let zapEndpoint;\n let zapEndpointCallback;\n if (this.zappedEvent) {\n const zapTag = (await this.zappedEvent.getMatchingTags(\"zap\"))[0];\n if (zapTag) {\n switch (zapTag[2]) {\n case \"lud06\":\n lud06 = zapTag[1];\n break;\n case \"lud16\":\n lud16 = zapTag[1];\n break;\n default:\n throw new Error(`Unknown zap tag ${zapTag}`);\n }\n }\n }\n if (this.zappedUser) {\n if (!this.zappedUser.profile) {\n await this.zappedUser.fetchProfile();\n }\n lud06 = (this.zappedUser.profile || {}).lud06;\n lud16 = (this.zappedUser.profile || {}).lud16;\n }\n if (lud16) {\n const [name, domain] = lud16.split(\"@\");\n zapEndpoint = `https://${domain}/.well-known/lnurlp/${name}`;\n } else if (lud06) {\n const { words } = bech32.decode(lud06, 1e3);\n const data = bech32.fromWords(words);\n const utf8Decoder = new TextDecoder(\"utf-8\");\n zapEndpoint = utf8Decoder.decode(data);\n }\n if (!zapEndpoint) {\n throw new Error(\"No zap endpoint found\");\n }\n const response = await fetch(zapEndpoint);\n const body = await response.json();\n if (body?.allowsNostr && body?.nostrPubkey) {\n zapEndpointCallback = body.callback;\n }\n return zapEndpointCallback;\n }\n async createZapRequest(amount, comment) {\n const zapEndpoint = await this.getZapEndpoint();\n if (!zapEndpoint) {\n throw new Error(\"No zap endpoint found\");\n }\n if (!this.zappedEvent)\n throw new Error(\"No zapped event found\");\n const zapRequest = nip57.makeZapRequest({\n profile: this.zappedUser.hexpubkey(),\n event: this.zappedEvent?.id,\n amount,\n comment: comment || \"\",\n relays: [\"wss://nos.lol\", \"wss://relay.nostr.band\", \"wss://relay.f7z.io\", \"wss://relay.damus.io\", \"wss://nostr.mom\", \"wss://no.str.cr\"]\n // TODO: fix this\n });\n const zapRequestEvent = new NDKEvent(this.ndk, zapRequest);\n await zapRequestEvent.sign();\n const zapRequestNostrEvent = await zapRequestEvent.toNostrEvent();\n const response = await fetch(\n `${zapEndpoint}?` + new URLSearchParams({\n amount: amount.toString(),\n nostr: JSON.stringify(zapRequestNostrEvent)\n })\n );\n const body = await response.json();\n return body.pr;\n }\n};\n\n// src/events/content-tagger.ts\nimport { nip19 } from \"nostr-tools\";\nfunction generateContentTags(content, tags = []) {\n const tagRegex = /@(npub|nprofile|note)[a-zA-Z0-9]+/g;\n content = content.replace(tagRegex, (tag) => {\n try {\n const { type, data } = nip19.decode(tag.slice(1));\n const tagIndex = tags.length;\n switch (type) {\n case \"npub\":\n tags.push([\"p\", data]);\n break;\n case \"nprofile\":\n tags.push([\"p\", data.pubkey]);\n break;\n case \"nevent\":\n tags.push([\"e\", data.id]);\n break;\n case \"note\":\n tags.push([\"e\", data]);\n break;\n }\n return `#[${tagIndex}]`;\n } catch (error) {\n return tag;\n }\n });\n return { content, tags };\n}\n\n// src/events/kind.ts\nfunction isReplaceable() {\n if (!this.kind)\n throw new Error(\"Kind not set\");\n return this.kind >= 1e4 && this.kind <= 3e4;\n}\nfunction isParamReplaceable() {\n if (!this.kind)\n throw new Error(\"Kind not set\");\n return this.kind >= 3e4 && this.kind <= 4e4;\n}\n\n// src/events/nip19.ts\nimport { nip19 as nip192 } from \"nostr-tools\";\nfunction encode() {\n if (this.isParamReplaceable()) {\n return nip192.naddrEncode({\n kind: this.kind,\n pubkey: this.pubkey,\n identifier: this.tagId()\n });\n }\n}\n\n// src/events/index.ts\nvar NDKEvent = class extends EventEmitter2 {\n ndk;\n created_at;\n content = \"\";\n subject;\n tags = [];\n kind;\n id = \"\";\n sig;\n pubkey = \"\";\n constructor(ndk, event) {\n super();\n this.ndk = ndk;\n this.created_at = event?.created_at;\n this.content = event?.content || \"\";\n this.subject = event?.subject;\n this.tags = event?.tags || [];\n this.id = event?.id || \"\";\n this.sig = event?.sig;\n this.pubkey = event?.pubkey || \"\";\n if (event?.kind)\n this.kind = event?.kind;\n }\n async toNostrEvent(pubkey) {\n if (!pubkey) {\n const user = await this.ndk?.signer?.user();\n pubkey = user?.hexpubkey();\n }\n const nostrEvent = {\n created_at: this.created_at || Math.floor(Date.now() / 1e3),\n content: this.content,\n tags: this.tags,\n kind: this.kind || 0,\n pubkey: pubkey || this.pubkey,\n id: this.id\n };\n this.generateTags();\n if (this.subject)\n nostrEvent.subject = this.subject;\n try {\n nostrEvent.id = getEventHash(nostrEvent);\n } catch (e) {\n }\n if (this.sig)\n nostrEvent.sig = this.sig;\n return nostrEvent;\n }\n isReplaceable = isReplaceable.bind(this);\n isParamReplaceable = isParamReplaceable.bind(this);\n encode = encode.bind(this);\n /**\n * Get all tags with the given name\n */\n getMatchingTags(tagName) {\n return this.tags.filter((tag) => tag[0] === tagName);\n }\n async toString() {\n return await this.toNostrEvent();\n }\n async sign() {\n this.ndk?.assertSigner();\n await this.generateTags();\n const nostrEvent = await this.toNostrEvent();\n this.sig = await this.ndk?.signer?.sign(nostrEvent);\n }\n async publish() {\n if (!this.sig)\n await this.sign();\n return this.ndk?.publish(this);\n }\n async generateTags() {\n if (this.tags.length > 0) {\n const { content, tags } = generateContentTags(this.content, this.tags);\n this.content = content;\n this.tags = tags;\n }\n if (this.kind && this.kind >= 3e4 && this.kind <= 4e4) {\n const dTag = this.getMatchingTags(\"d\")[0];\n if (!dTag) {\n const str = [...Array(16)].map(() => Math.random().toString(36)[2]).join(\"\");\n this.tags.push([\"d\", str]);\n }\n }\n }\n /**\n * @returns the id of the event, or if it's a parameterized event, the id of the event with the d tag\n */\n tagId() {\n if (this.kind && this.kind >= 3e4 && this.kind <= 4e4) {\n const dTag = this.getMatchingTags(\"d\")[0];\n const dTagId = dTag ? dTag[1] : \"\";\n return `${this.kind}:${this.pubkey}:${dTagId}`;\n }\n return this.id;\n }\n /**\n * Get the tag that can be used to reference this event from another event\n * @example\n * event = new NDKEvent(ndk, { kind: 30000, pubkey: 'pubkey', tags: [ [\"d\", \"d-code\"] ] });\n * event.tagReference(); // [\"a\", \"30000:pubkey:d-code\"]\n *\n * event = new NDKEvent(ndk, { kind: 1, pubkey: 'pubkey', id: \"eventid\" });\n * event.tagReference(); // [\"e\", \"eventid\"]\n */\n tagReference() {\n if (this.kind && this.kind >= 3e4 && this.kind <= 4e4) {\n return [\"a\", this.tagId()];\n }\n return [\"e\", this.tagId()];\n }\n /**\n * Create a zap request for an existing event\n */\n async zap(amount, comment) {\n if (!this.ndk)\n throw new Error(\"No NDK instance found\");\n this.ndk.assertSigner();\n const zap = new Zap({\n ndk: this.ndk,\n zappedEvent: this\n });\n const paymentRequest = await zap.createZapRequest(amount, comment);\n return paymentRequest;\n }\n};\n\n// src/relay/pool/index.ts\nimport EventEmitter4 from \"eventemitter3\";\n\n// src/relay/index.ts\nimport \"websocket-polyfill\";\nimport { relayInit } from \"nostr-tools\";\nimport EventEmitter3 from \"eventemitter3\";\nvar NDKRelay = class extends EventEmitter3 {\n url;\n scores;\n relay;\n _status;\n connectedAt;\n _connectionStats = { attempts: 0, success: 0, durations: [] };\n constructor(url) {\n super();\n this.url = url;\n this.relay = relayInit(url);\n this.scores = /* @__PURE__ */ new Map();\n this._status = 3 /* DISCONNECTED */;\n this.relay.on(\"connect\", () => {\n this.updateConnectionStats.connected();\n this.emit(\"connect\");\n this._status = 1 /* CONNECTED */;\n });\n this.relay.on(\"disconnect\", () => {\n this.updateConnectionStats.disconnected();\n this.emit(\"disconnect\");\n if (this._status === 1 /* CONNECTED */) {\n this._status = 3 /* DISCONNECTED */;\n this.handleReconnection();\n }\n });\n this.relay.on(\"notice\", (notice) => this.handleNotice(notice));\n }\n /**\n * Evaluates the connection stats to determine if the relay is flapping.\n */\n isFlapping() {\n const durations = this._connectionStats.durations;\n if (durations.length < 10)\n return false;\n const sum = durations.reduce((a, b) => a + b, 0);\n const avg = sum / durations.length;\n const variance = durations.map((x) => Math.pow(x - avg, 2)).reduce((a, b) => a + b, 0) / durations.length;\n const stdDev = Math.sqrt(variance);\n const isFlapping = stdDev < 1e3;\n console.log(this.relay.url, { sum, avg, variance, stdDev, isFlapping });\n return isFlapping;\n }\n /**\n * Called when the relay is unexpectedly disconnected.\n */\n handleReconnection() {\n if (this.isFlapping()) {\n this.emit(\"flapping\", this, this._connectionStats);\n }\n if (this.connectedAt && Date.now() - this.connectedAt < 5e3) {\n setTimeout(() => this.connect(), 6e4);\n } else {\n this.connect();\n }\n }\n get status() {\n return this._status;\n }\n /**\n * Connects to the relay.\n */\n async connect() {\n try {\n this.updateConnectionStats.attempt();\n this._status = 0 /* CONNECTING */;\n await this.relay.connect();\n } catch (e) {\n }\n }\n /**\n * Disconnects from the relay.\n */\n disconnect() {\n this._status = 2 /* DISCONNECTING */;\n this.relay.close();\n }\n async handleNotice(notice) {\n this.emit(\"notice\", this, notice);\n }\n /**\n * Subscribes to a subscription.\n */\n subscribe(subscription) {\n const { filter } = subscription;\n const sub = this.relay.sub([filter], {\n id: subscription.subId\n });\n sub.on(\"event\", (event) => {\n const e = new NDKEvent(void 0, event);\n subscription.eventReceived(e, this);\n });\n sub.on(\"eose\", () => {\n subscription.eoseReceived(this);\n });\n return sub;\n }\n /**\n * Publishes an event to the relay.\n */\n async publish(event) {\n const nostrEvent = await event.toNostrEvent();\n this.relay.publish(nostrEvent);\n }\n /**\n * Called when this relay has responded with an event but\n * wasn't the fastest one.\n * @param timeDiffInMs The time difference in ms between the fastest and this relay in milliseconds\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n scoreSlowerEvent(timeDiffInMs) {\n }\n /**\n * Utility functions to update the connection stats.\n */\n updateConnectionStats = {\n connected: () => {\n this._connectionStats.success++;\n this._connectionStats.connectedAt = Date.now();\n },\n disconnected: () => {\n if (this._connectionStats.connectedAt) {\n this._connectionStats.durations.push(Date.now() - this._connectionStats.connectedAt);\n if (this._connectionStats.durations.length > 100) {\n this._connectionStats.durations.shift();\n }\n }\n this._connectionStats.connectedAt = void 0;\n },\n attempt: () => {\n this._connectionStats.attempts++;\n }\n };\n /**\n * Returns the connection stats.\n */\n get connectionStats() {\n return this._connectionStats;\n }\n};\n\n// src/relay/pool/index.ts\nvar NDKPool = class extends EventEmitter4 {\n relays = /* @__PURE__ */ new Map();\n debug;\n constructor(relayUrls = [], ndk) {\n super();\n this.debug = ndk.debug.extend(\"pool\");\n relayUrls.forEach((relayUrl) => {\n const relay = new NDKRelay(relayUrl);\n relay.on(\"notice\", (relay2, notice) => this.emit(\"notice\", relay2, notice));\n relay.on(\"connect\", () => this.emit(\"connect\", relay));\n relay.on(\"disconnect\", () => this.emit(\"disconnect\", relay));\n relay.on(\"flapping\", () => this.handleFlapping(relay));\n this.relays.set(relayUrl, relay);\n });\n }\n /**\n * Attempts to establish a connection to each relay in the pool.\n *\n * @async\n * @param {number} [timeoutMs] - Optional timeout in milliseconds for each connection attempt.\n * @returns {Promise} A promise that resolves when all connection attempts have completed.\n * @throws {Error} If any of the connection attempts result in an error or timeout.\n */\n async connect(timeoutMs) {\n const promises = [];\n this.debug(`Connecting to ${this.relays.size} relays${timeoutMs ? `, timeout ${timeoutMs}...` : \"\"}`);\n for (const relay of this.relays.values()) {\n if (timeoutMs) {\n const timeoutPromise = new Promise((_, reject) => {\n setTimeout(() => reject(`Timed out after ${timeoutMs}ms`), timeoutMs);\n });\n promises.push(\n Promise.race([\n relay.connect(),\n timeoutPromise\n ]).catch((e) => {\n this.debug(`Failed to connect to relay ${relay.url}: ${e}`);\n })\n );\n } else {\n promises.push(relay.connect());\n }\n }\n await Promise.all(promises);\n }\n handleFlapping(relay) {\n this.debug(`Relay ${relay.url} is flapping`);\n this.relays.delete(relay.url);\n this.emit(\"flapping\", relay);\n }\n size() {\n return this.relays.size;\n }\n /**\n * Returns the status of each relay in the pool.\n * @returns {NDKPoolStats} An object containing the number of relays in each status.\n */\n stats() {\n const stats = {\n total: 0,\n connected: 0,\n disconnected: 0,\n connecting: 0\n };\n for (const relay of this.relays.values()) {\n stats.total++;\n if (relay.status === 1 /* CONNECTED */) {\n stats.connected++;\n } else if (relay.status === 3 /* DISCONNECTED */) {\n stats.disconnected++;\n } else if (relay.status === 0 /* CONNECTING */) {\n stats.connecting++;\n }\n }\n return stats;\n }\n};\n\n// src/user/index.ts\nimport { nip05, nip19 as nip193 } from \"nostr-tools\";\n\n// src/user/profile.ts\nfunction mergeEvent(event, profile) {\n const payload = JSON.parse(event.content);\n if (payload.name)\n profile.name = payload.name;\n if (payload.display_name)\n profile.displayName = payload.display_name;\n if (payload.displayName)\n profile.displayName = payload.displayName;\n if (payload.image)\n profile.image = payload.image;\n if (payload.picture)\n profile.image = payload.picture;\n if (payload.banner)\n profile.banner = payload.banner;\n if (payload.bio)\n profile.bio = payload.bio;\n if (payload.nip05)\n profile.nip05 = payload.nip05;\n if (payload.lud06)\n profile.lud06 = payload.lud06;\n if (payload.lud16)\n profile.lud16 = payload.lud16;\n if (payload.about)\n profile.about = payload.about;\n if (payload.zapService)\n profile.zapService = payload.zapService;\n return profile;\n}\n\n// src/user/follows.ts\nasync function follows() {\n if (!this.ndk)\n throw new Error(\"NDK not set\");\n const contactListEvents = await this.ndk.fetchEvents({\n kinds: [3],\n authors: [this.hexpubkey()]\n });\n if (contactListEvents) {\n const contactList = /* @__PURE__ */ new Set();\n contactListEvents.forEach((event) => {\n event.tags.forEach((tag) => {\n if (tag[0] === \"p\") {\n try {\n const user = new NDKUser({ hexpubkey: tag[1] });\n user.ndk = this.ndk;\n contactList.add(user);\n } catch (e) {\n }\n }\n });\n });\n return contactList;\n }\n return /* @__PURE__ */ new Set();\n}\n\n// src/user/index.ts\nvar NDKUser = class {\n ndk;\n profile;\n npub = \"\";\n relayUrls = [];\n constructor(opts) {\n if (opts.npub)\n this.npub = opts.npub;\n if (opts.hexpubkey) {\n this.npub = nip193.npubEncode(opts.hexpubkey);\n }\n if (opts.relayUrls) {\n this.relayUrls = opts.relayUrls;\n }\n }\n static async fromNip05(nip05Id) {\n const profile = await nip05.queryProfile(nip05Id);\n if (profile) {\n return new NDKUser({\n hexpubkey: profile.pubkey,\n relayUrls: profile.relays\n });\n }\n }\n hexpubkey() {\n return nip193.decode(this.npub).data;\n }\n async fetchProfile() {\n if (!this.ndk)\n throw new Error(\"NDK not set\");\n if (!this.profile)\n this.profile = {};\n const setMetadataEvents = await this.ndk.fetchEvents({\n kinds: [0],\n authors: [this.hexpubkey()]\n });\n if (setMetadataEvents) {\n const sortedSetMetadataEvents = Array.from(setMetadataEvents).sort(\n (a, b) => a.created_at - b.created_at\n );\n sortedSetMetadataEvents.forEach((event) => {\n try {\n this.profile = mergeEvent(event, this.profile);\n } catch (e) {\n }\n });\n }\n return setMetadataEvents;\n }\n /**\n * Returns a set of users that this user follows.\n */\n follows = follows.bind(this);\n async relayList() {\n if (!this.ndk)\n throw new Error(\"NDK not set\");\n const relayListEvents = await this.ndk.fetchEvents({\n kinds: [10002],\n authors: [this.hexpubkey()]\n });\n if (relayListEvents) {\n return relayListEvents;\n }\n return /* @__PURE__ */ new Set();\n }\n};\n\n// src/subscription/index.ts\nimport EventEmitter5 from \"eventemitter3\";\n\n// src/relay/sets/index.ts\nvar NDKRelaySet = class {\n relays;\n constructor(relays) {\n this.relays = relays;\n }\n subscribeOnRelay(relay, subscription) {\n const sub = relay.subscribe(subscription);\n subscription.relaySubscriptions.set(relay, sub);\n }\n subscribe(subscription) {\n this.relays.forEach((relay) => {\n if (relay.status === 1 /* CONNECTED */) {\n this.subscribeOnRelay(relay, subscription);\n }\n });\n this.relays.forEach((relay) => {\n relay.on(\"connect\", () => this.subscribeOnRelay(relay, subscription));\n });\n return subscription;\n }\n async publish(event) {\n this.relays.forEach(async (relay) => {\n try {\n await relay.publish(event);\n } catch (e) {\n }\n });\n }\n size() {\n return this.relays.size;\n }\n};\n\n// src/relay/sets/calculate.ts\nfunction calculateRelaySetFromEvent(ndk, event) {\n const relays = /* @__PURE__ */ new Set();\n ndk.pool?.relays.forEach((relay) => relays.add(relay));\n return new NDKRelaySet(relays);\n}\nfunction calculateRelaySetFromFilter(ndk, filter) {\n const relays = /* @__PURE__ */ new Set();\n ndk.pool?.relays.forEach((relay) => relays.add(relay));\n return new NDKRelaySet(relays);\n}\n\n// src/subscription/index.ts\nvar NDKSubscription = class extends EventEmitter5 {\n subId;\n filter;\n opts;\n relaySet;\n ndk;\n relaySubscriptions;\n debug;\n constructor(ndk, filter, opts, relaySet, subId) {\n super();\n this.ndk = ndk;\n this.subId = subId || Math.floor(Math.random() * 9999991e3).toString();\n this.filter = filter;\n this.relaySet = relaySet;\n this.opts = opts;\n this.relaySubscriptions = /* @__PURE__ */ new Map();\n this.debug = ndk.debug.extend(\"subscription\");\n if (opts?.cacheUsage === \"ONLY_CACHE\" /* ONLY_CACHE */ || opts?.cacheUsage === \"CACHE_FIRST\" /* CACHE_FIRST */) {\n throw new Error(\n \"Cannot use cache-only options with a persistent subscription\"\n );\n }\n }\n shouldQueryCache() {\n return this.opts?.cacheUsage !== \"ONLY_RELAY\" /* ONLY_RELAY */;\n }\n shouldQueryRelays() {\n return this.opts?.cacheUsage !== \"ONLY_CACHE\" /* ONLY_CACHE */;\n }\n /**\n * Start the subscription. This is the main method that should be called\n * after creating a subscription.\n */\n async start() {\n let cachePromise;\n if (this.shouldQueryCache()) {\n cachePromise = this.startWithCache();\n const shouldWaitForCache = this.ndk.cacheAdapter?.locking && this.shouldQueryRelays() && this.opts?.cacheUsage !== \"PARALLEL\" /* PARALLEL */;\n if (shouldWaitForCache) {\n this.debug(\"waiting for cache to finish\");\n await cachePromise;\n if (this.eventIds.size > 0) {\n this.debug(\"cache hit, skipping relay query\");\n this.emit(\"eose\");\n return;\n }\n }\n }\n if (this.shouldQueryRelays()) {\n this.startWithRelaySet();\n }\n return;\n }\n async startWithCache() {\n if (this.ndk.cacheAdapter?.query) {\n this.debug(\"querying cache\");\n const promise = this.ndk.cacheAdapter.query(this);\n if (this.ndk.cacheAdapter.locking) {\n await promise;\n }\n }\n }\n startWithRelaySet() {\n if (!this.relaySet) {\n this.relaySet = calculateRelaySetFromFilter(this.ndk, this.filter);\n }\n if (this.relaySet) {\n this.debug(\"querying relays\");\n this.relaySet.subscribe(this);\n }\n }\n // EVENT handling\n eventFirstSeen = /* @__PURE__ */ new Map();\n eventIds = /* @__PURE__ */ new Set();\n /**\n * Called when an event is received from a relay or the cache\n * @param event\n * @param relay\n * @param fromCache Whether the event was received from the cache\n */\n eventReceived(event, relay, fromCache = false) {\n if (!fromCache && relay) {\n const eventAlreadySeen = this.eventIds.has(event.id);\n if (eventAlreadySeen) {\n const timeSinceFirstSeen = Date.now() - (this.eventFirstSeen.get(event.id) || 0);\n relay.scoreSlowerEvent(timeSinceFirstSeen);\n this.emit(\"event:dup\", event, relay, timeSinceFirstSeen);\n return;\n }\n if (this.ndk.cacheAdapter) {\n this.ndk.cacheAdapter.setEvent(event, this.filter);\n }\n this.eventFirstSeen.set(event.id, Date.now());\n }\n this.eventIds.add(event.id);\n this.emit(\"event\", event, relay);\n }\n // EOSE handling\n eosesSeen = /* @__PURE__ */ new Set();\n eoseTimeout;\n eoseReceived(relay) {\n if (this.opts?.closeOnEose) {\n this.relaySubscriptions.get(relay)?.unsub();\n }\n this.eosesSeen.add(relay);\n const hasSeenAllEoses = this.eosesSeen.size === this.relaySet?.size();\n if (hasSeenAllEoses) {\n this.emit(\"eose\");\n } else {\n if (this.eoseTimeout) {\n clearTimeout(this.eoseTimeout);\n }\n this.eoseTimeout = setTimeout(() => {\n this.emit(\"eose\");\n }, 500);\n }\n }\n};\n\n// src/events/dedup.ts\nfunction dedup(event1, event2) {\n if (event1.created_at > event2.created_at) {\n return event1;\n }\n return event2;\n}\n\n// src/index.ts\nimport EventEmitter6 from \"eventemitter3\";\nimport debug from \"debug\";\n\n// src/signers/nip07/index.ts\nvar NDKNip07Signer = class {\n _userPromise;\n constructor() {\n if (!window.nostr) {\n throw new Error(\"NIP-07 extension not available\");\n }\n }\n async blockUntilReady() {\n const pubkey = await window.nostr?.getPublicKey();\n if (!pubkey) {\n throw new Error(\"User rejected access\");\n }\n return new NDKUser({ hexpubkey: pubkey });\n }\n /**\n * Getter for the user property.\n * @returns The NDKUser instance.\n */\n async user() {\n if (!this._userPromise) {\n this._userPromise = this.blockUntilReady();\n }\n return this._userPromise;\n }\n /**\n * Signs the given Nostr event.\n * @param event - The Nostr event to be signed.\n * @returns The signature of the signed event.\n * @throws Error if the NIP-07 is not available on the window object.\n */\n async sign(event) {\n if (!window.nostr) {\n throw new Error(\"NIP-07 extension not available\");\n }\n const signedEvent = await window.nostr.signEvent(event);\n return signedEvent.sig;\n }\n};\n\n// src/zap/invoice.ts\nimport { decode } from \"light-bolt11-decoder\";\nfunction zapInvoiceFromEvent(event) {\n const description = event.getMatchingTags(\"description\")[0];\n const bolt11 = event.getMatchingTags(\"bolt11\")[0];\n let decodedInvoice;\n let zapRequest;\n if (!description || !bolt11 || !bolt11[1]) {\n return null;\n }\n try {\n let zapRequestPayload = description[1];\n if (zapRequestPayload.startsWith(\"%\")) {\n zapRequestPayload = decodeURIComponent(zapRequestPayload);\n }\n if (zapRequestPayload === \"\") {\n return null;\n }\n zapRequest = JSON.parse(zapRequestPayload);\n decodedInvoice = decode(bolt11[1]);\n } catch (e) {\n return null;\n }\n const amountSection = decodedInvoice.sections.find((s) => s.name === \"amount\");\n if (!amountSection) {\n return null;\n }\n const amount = parseInt(amountSection.value) / 1e3;\n if (!amount) {\n return null;\n }\n const content = zapRequest.content;\n const sender = zapRequest.pubkey;\n const recipientTag = event.getMatchingTags(\"p\")[0];\n const recipient = recipientTag[1];\n const zappedEvent = event.getMatchingTags(\"e\")[0];\n const zappedEventId = zappedEvent ? zappedEvent[1] : void 0;\n const zapInvoice = {\n id: event.id,\n zapper: event.pubkey,\n zappee: sender,\n zapped: recipient,\n zappedEvent: zappedEventId,\n amount,\n comment: content\n };\n return zapInvoice;\n}\n\n// src/index.ts\nvar NDK = class extends EventEmitter6 {\n pool;\n signer;\n cacheAdapter;\n debug;\n constructor(opts = {}) {\n super();\n this.debug = opts.debug || debug(\"ndk\");\n this.pool = new NDKPool(opts.explicitRelayUrls || [], this);\n this.signer = opts.signer;\n this.cacheAdapter = opts.cacheAdapter;\n this.debug(\"initialized\", {\n relays: opts.explicitRelayUrls,\n signer: opts.signer?.constructor.name || \"none\",\n cacheAdapter: opts.cacheAdapter?.constructor.name || \"none\"\n });\n }\n /**\n * Connect to relays with optional timeout.\n * If the timeout is reached, the connection will be continued to be established in the background.\n */\n async connect(timeoutMs) {\n this.debug(\"Connecting to relays\");\n return this.pool.connect(timeoutMs);\n }\n /**\n * Get a NDKUser object\n *\n * @param opts\n * @returns\n */\n getUser(opts) {\n const user = new NDKUser(opts);\n user.ndk = this;\n return user;\n }\n subscribe(filter, opts) {\n const subscription = new NDKSubscription(this, filter, opts);\n subscription.start();\n return subscription;\n }\n async publish(event) {\n const relaySet = calculateRelaySetFromEvent(this, event);\n return relaySet.publish(event);\n }\n /**\n * Fetch a single event\n */\n async fetchEvent(filter, opts = {}) {\n return new Promise((resolve) => {\n const s = this.subscribe(filter, { ...opts, closeOnEose: true });\n s.on(\"event\", (event) => {\n event.ndk = this;\n resolve(event);\n });\n });\n }\n /**\n * Fetch events\n */\n async fetchEvents(filter, opts = {}) {\n return new Promise((resolve) => {\n const events = /* @__PURE__ */ new Map();\n const relaySetSubscription = this.subscribe(filter, { ...opts, closeOnEose: true });\n relaySetSubscription.on(\"event\", (event) => {\n const existingEvent = events.get(event.tagId());\n if (existingEvent) {\n event = dedup(existingEvent, event);\n }\n event.ndk = this;\n events.set(event.tagId(), event);\n });\n relaySetSubscription.on(\"eose\", () => {\n resolve(new Set(events.values()));\n });\n });\n }\n /**\n * Ensures that a signer is available to sign an event.\n */\n async assertSigner() {\n if (!this.signer) {\n this.emit(\"signerRequired\");\n throw new Error(\"Signer required\");\n }\n }\n};\nexport {\n NDKEvent,\n NDKNip07Signer,\n NDKRelay,\n NDKSubscription,\n NDKUser,\n NDK as default,\n zapInvoiceFromEvent\n};\n","import { chatData } from '../store';\nimport { getEventHash, relayInit } from 'nostr-tools';\nimport RelayPool from 'nostr/lib/relay-pool';\nimport { createEventDispatcher } from 'svelte';\nimport EventEmitter from 'events';\nimport * as uuid from 'uuid';\nimport debug from 'debug';\nimport { NDKEvent, zapInvoiceFromEvent } from '@nostr-dev-kit/ndk';\n\nconst log = new debug('nostr:adapter');\nconst profilesLog = new debug('nostr:adapter:profiles');\nconst writeLog = new debug('nostr:adapter:write');\n\nclass NstrAdapter {\n relayStatus = {};\n #pool = null;\n #messages = {};\n #eventEmitter = new EventEmitter();\n #handlers = {}\n tags;\n referenceTags;\n type;\n #websiteOwnerPubkey;\n relayUrls = [];\n\n #profileRequestQueue = [];\n #requestedProfiles = [];\n #profileRequestTimer;\n #delayedSubscriptions = {};\n #delayedSubscriptionTimeouts = {};\n\n constructor(clientPubkey, {tags, referenceTags, type='DM', websiteOwnerPubkey, relays} = {}) {\n this.pubkey = clientPubkey;\n this.#websiteOwnerPubkey = websiteOwnerPubkey;\n this.relayUrls = relays\n\n if (type) {\n this.setChatConfiguration(type, tags, referenceTags);\n }\n }\n\n setChatConfiguration(type, tags, referenceTags) {\n log('chatConfiguration', {type, tags, referenceTags});\n this.type = type;\n this.tags = tags;\n this.referenceTags = referenceTags;\n\n // handle connection\n if (this.#pool) { this.#disconnect() }\n this.#connect()\n\n let filters = [];\n\n // handle subscriptions\n // if this is DM type then subscribe to chats with this website owner\n switch (this.type) {\n case 'DM':\n filters.push({\n kinds: [4],\n '#p': [this.pubkey, this.#websiteOwnerPubkey],\n 'authors': [this.pubkey, this.#websiteOwnerPubkey]\n });\n break;\n case 'GLOBAL':\n if (this.tags && this.tags.length > 0) {\n filters.push({kinds: [1], '#t': this.tags, limit: 20});\n }\n if (this.referenceTags && this.referenceTags.length > 0) {\n filters.push({kinds: [1], '#r': this.referenceTags, limit: 20});\n }\n\n break;\n }\n\n if (filters && filters.length > 0) {\n this.subscribe(filters, (e) => { this.#emitMessage(e) })\n }\n }\n\n async getPubKey() {\n return this.pubkey;\n }\n\n on(event, callback) {\n this.#eventEmitter.on(event, callback);\n }\n\n /**\n * Send a message to the relay\n * @param {String} message - The message to send\n */\n async send(message, {tagPubKeys, tags} = {}) {\n let event;\n\n if (!tags) { tags = []}\n\n if (this.type === 'DM') {\n event = await this.sendKind4(message, {tagPubKeys, tags});\n } else {\n event = await this.sendKind1(message, {tagPubKeys, tags});\n }\n\n event.id = getEventHash(event)\n const signedEvent = await this.signEvent(event)\n\n this.#_publish(signedEvent);\n\n return event.id;\n }\n\n async sendKind4(message, {tagPubKeys, tags} = {}) {\n let ciphertext = await this.encrypt(this.#websiteOwnerPubkey, message);\n let event = {\n kind: 4,\n pubkey: this.pubkey,\n created_at: Math.floor(Date.now() / 1000),\n content: ciphertext,\n tags: [\n ['p', this.#websiteOwnerPubkey],\n ...tags\n ],\n }\n\n return event;\n }\n\n async sendKind1(message, {tagPubKeys, tags} = {}) {\n if (!tags) { tags = []; }\n\n if (this.tags) {\n this.tags.forEach((t) => tags.push(['t', t]));\n }\n\n if (this.referenceTags) {\n this.referenceTags.forEach((t) => tags.push(['r', t]));\n }\n\n let event = {\n kind: 1,\n created_at: Math.floor(Date.now() / 1000),\n tags,\n content: message,\n pubkey: this.pubkey,\n }\n\n if (tagPubKeys) {\n for (let pubkey of tagPubKeys) {\n if (pubkey) {\n event.tags.push(['p', pubkey]);\n }\n }\n }\n\n event.id = getEventHash(event)\n this.subscribeToEventAndResponses(event.id);\n\n return event;\n }\n\n async #_publish(event) {\n writeLog('publish', event);\n this.#pool.send([ 'EVENT', event ]);\n }\n\n async onEvent(event, messageCallback) {\n this.#addProfileRequest(event.pubkey);\n\n messageCallback(event)\n }\n\n async delayedSubscribe(filters, family, timeout) {\n this.#delayedSubscriptions[family] = this.#delayedSubscriptions[family] || []\n this.#delayedSubscriptions[family].push(filters);\n\n if (!this.#delayedSubscriptionTimeouts[family]) {\n this.#delayedSubscriptionTimeouts[family] = setTimeout(() => {\n delete this.#delayedSubscriptionTimeouts[family];\n\n // if there are more than 10 filters then we need to split them up\n // into multiple subscriptions\n let filters = this.#delayedSubscriptions[family];\n delete this.#delayedSubscriptions[family];\n\n // split filters into groups of 10\n let groups = [];\n groups = filters.reduce((groups, filter, index) => {\n if (index % 10 === 0) {\n groups.push([]);\n }\n groups[groups.length - 1].push(filter);\n return groups;\n }, groups);\n\n console.log(`turned ${filters.length} filters into ${groups.length} groups`);\n\n groups.forEach((filters) => {\n this.subscribe(filters, (e) => { this.#emitMessage(e)});\n });\n }, timeout)\n }\n }\n\n async subscribe(filters, messageCallback=null) {\n if (!messageCallback) { messageCallback = (e) => { this.#emitMessage(e) } }\n return this.#_subscribe(filters, messageCallback)\n }\n\n async #_subscribe(filters, messageCallback) {\n const subId = uuid.v4();\n this.#handlers[subId] = messageCallback;\n if (!Array.isArray(filters)) { filters = [filters] }\n\n\n\n this.#pool.subscribe(subId, filters);\n this.#pool.on('event', (relay, recSubId, e) => {\n this.onEvent(e, this.#handlers[recSubId])\n });\n\n return subId;\n }\n\n async #emitMessage(event) {\n // has already been emitted\n if (this.#messages[event.id]) {\n return;\n }\n\n this.#messages[event.id] = true;\n\n // decrypt\n if (event.kind === 4) {\n event.content = await this.decrypt(this.#websiteOwnerPubkey, event.content);\n }\n\n let deletedEvents = []\n if (event.kind === 5) {\n deletedEvents = event.tags.filter(tag => tag[0] === 'e').map(tag => tag[1]);\n }\n\n let zap;\n if (event.kind === 9735) {\n const ndkEvent = new NDKEvent(null, event);\n zap = zapInvoiceFromEvent(ndkEvent);\n console.log(`received a zap invoice: ${zap}`, event);\n }\n\n switch (event.kind) {\n case 1: this.#eventEmitter.emit('message', event); break;\n case 4: this.#eventEmitter.emit('message', event); break;\n case 5: this.#eventEmitter.emit('deleted', deletedEvents); break;\n case 7: this.#eventEmitter.emit('reaction', event); break;\n case 9735: this.#eventEmitter.emit('zap', zap); break;\n default:\n // alert('unknown event kind ' + event.kind)\n console.log('unknown event kind', event.kind, event);\n }\n\n }\n\n subscribeToEventAndResponses(eventId) {\n this.subscribe([\n {ids: [eventId]},\n {'#e': [eventId]},\n ], (e) => {\n this.#emitMessage(e);\n // this.subscribeToResponses(e)\n })\n }\n\n subscribeToResponses(event) {\n this.subscribe([\n {'#e': [event.id]},\n ], (e) => {\n this.#emitMessage(e);\n this.subscribeToResponses(e)\n })\n }\n\n /**\n * Connect to the relay\n */\n #connect() {\n this.relayUrls.forEach((url) => {\n this.relayStatus[url] = 'disconnected';\n });\n this.#eventEmitter.emit('connectivity', this.relayStatus);\n\n // console.log('connecting to relay', this.relayUrls);\n this.#pool = new RelayPool(this.relayUrls)\n this.#pool.on('open', (relay) => {\n // console.log(`connected to ${relay.url}`, new Date())\n this.relayStatus[relay.url] = 'connected';\n this.#eventEmitter.emit('connectivity', this.relayStatus);\n })\n\n this.#pool.on('error', (relay, r, e) => {\n this.relayStatus[relay.url] = 'error';\n this.#eventEmitter.emit('connectivity', this.relayStatus);\n console.log('error from relay', relay.url, r, e)\n })\n\n this.#pool.on('close', (relay, r) => {\n this.relayStatus[relay.url] = 'closed';\n this.#eventEmitter.emit('connectivity', this.relayStatus);\n console.log('error from relay', relay.url, r)\n })\n\n this.#pool.on('notice', (relay, r) => {\n console.log('notice', relay.url, r)\n })\n }\n\n #disconnect() {\n this.relayUrls.forEach((url) => {\n this.relayStatus[url] = 'disconnected';\n });\n this.#eventEmitter.emit('connectivity', this.relayStatus);\n this.#pool.close();\n this.#pool = null;\n }\n\n //\n //\n // Profiles\n //\n //\n reqProfile(pubkey) {\n this.#addProfileRequest(pubkey);\n }\n\n #addProfileRequest(pubkey, event=null) {\n if (this.#profileRequestQueue.includes(pubkey)) { return; }\n if (this.#requestedProfiles.includes(pubkey)) { return; }\n this.#profileRequestQueue.push(pubkey);\n this.#requestedProfiles.push(pubkey);\n\n if (!this.#profileRequestTimer) {\n this.#profileRequestTimer = setTimeout(() => {\n this.#profileRequestTimer = null;\n this.#requestProfiles();\n }, 500);\n }\n }\n\n /**\n * Send request for all queued profiles\n */\n async #requestProfiles() {\n if (this.#profileRequestQueue.length > 0) {\n profilesLog('requesting profiles', this.#profileRequestQueue);\n\n // send request\n const subId = await this.subscribe({ kinds: [0], authors: this.#profileRequestQueue }, (e) => {\n this.#processReceivedProfile(e);\n });\n profilesLog('subscribed to request', {subId})\n this.#profileRequestQueue = [];\n\n setTimeout(() => {\n profilesLog('unsubscribing from request', {subId})\n this.#pool.unsubscribe(subId);\n }, 5000);\n }\n }\n\n #processReceivedProfile(event) {\n profilesLog('received profile', event)\n let profile;\n try {\n profile = JSON.parse(event.content);\n } catch (e) {\n profilesLog('failed to parse profile', event);\n return;\n }\n this.#eventEmitter.emit('profile', {pubkey: event.pubkey, profile});\n }\n}\n\nexport default NstrAdapter;","import NstrAdapter from './index.js';\n\nclass NstrAdapterNip07 extends NstrAdapter {\n constructor(pubkey, adapterConfig={}) {\n super(pubkey, adapterConfig);\n }\n\n async signEvent(event) {\n return await window.nostr.signEvent(event);\n }\n\n async encrypt(destPubkey, message) {\n return await window.nostr.nip04.encrypt(destPubkey, message);\n }\n\n async decrypt(destPubkey, message) {\n return await window.nostr.nip04.decrypt(destPubkey, message);\n }\n}\n\nexport default NstrAdapterNip07;\n","import EventEmitter from 'events';\nimport { relayInit, getPublicKey, getEventHash, signEvent, validateEvent, verifySignature, nip04 } from 'nostr-tools';\n\nfunction _regeneratorRuntime() {\n _regeneratorRuntime = function () {\n return exports;\n };\n var exports = {},\n Op = Object.prototype,\n hasOwn = Op.hasOwnProperty,\n defineProperty = Object.defineProperty || function (obj, key, desc) {\n obj[key] = desc.value;\n },\n $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n function define(obj, key, value) {\n return Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), obj[key];\n }\n try {\n define({}, \"\");\n } catch (err) {\n define = function (obj, key, value) {\n return obj[key] = value;\n };\n }\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n generator = Object.create(protoGenerator.prototype),\n context = new Context(tryLocsList || []);\n return defineProperty(generator, \"_invoke\", {\n value: makeInvokeMethod(innerFn, self, context)\n }), generator;\n }\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n exports.wrap = wrap;\n var ContinueSentinel = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf,\n NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (\"throw\" !== record.type) {\n var result = record.arg,\n value = result.value;\n return value && \"object\" == typeof value && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n result.value = unwrapped, resolve(result);\n }, function (error) {\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n reject(record.arg);\n }\n var previousPromise;\n defineProperty(this, \"_invoke\", {\n value: function (method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(innerFn, self, context) {\n var state = \"suspendedStart\";\n return function (method, arg) {\n if (\"executing\" === state) throw new Error(\"Generator is already running\");\n if (\"completed\" === state) {\n if (\"throw\" === method) throw arg;\n return doneResult();\n }\n for (context.method = method, context.arg = arg;;) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n context.dispatchException(context.arg);\n } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n state = \"executing\";\n var record = tryCatch(innerFn, self, context);\n if (\"normal\" === record.type) {\n if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n return {\n value: record.arg,\n done: context.done\n };\n }\n \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n }\n };\n }\n function maybeInvokeDelegate(delegate, context) {\n var methodName = context.method,\n method = delegate.iterator[methodName];\n if (undefined === method) return context.delegate = null, \"throw\" === methodName && delegate.iterator.return && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method) || \"return\" !== methodName && (context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a '\" + methodName + \"' method\")), ContinueSentinel;\n var record = tryCatch(method, delegate.iterator, context.arg);\n if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n var info = record.arg;\n return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n }\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n }\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\", delete record.arg, entry.completion = record;\n }\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) return iteratorMethod.call(iterable);\n if (\"function\" == typeof iterable.next) return iterable;\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n return next.value = undefined, next.done = !0, next;\n };\n return next.next = next;\n }\n }\n return {\n next: doneResult\n };\n }\n function doneResult() {\n return {\n value: undefined,\n done: !0\n };\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), defineProperty(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n var ctor = \"function\" == typeof genFun && genFun.constructor;\n return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n }, exports.mark = function (genFun) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n }, exports.awrap = function (arg) {\n return {\n __await: arg\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n void 0 === PromiseImpl && (PromiseImpl = Promise);\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n return this;\n }), define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n }), exports.keys = function (val) {\n var object = Object(val),\n keys = [];\n for (var key in object) keys.push(key);\n return keys.reverse(), function next() {\n for (; keys.length;) {\n var key = keys.pop();\n if (key in object) return next.value = key, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, exports.values = values, Context.prototype = {\n constructor: Context,\n reset: function (skipTempReset) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n },\n stop: function () {\n this.done = !0;\n var rootRecord = this.tryEntries[0].completion;\n if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n return this.rval;\n },\n dispatchException: function (exception) {\n if (this.done) throw exception;\n var context = this;\n function handle(loc, caught) {\n return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n }\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i],\n record = entry.completion;\n if (\"root\" === entry.tryLoc) return handle(\"end\");\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n hasFinally = hasOwn.call(entry, \"finallyLoc\");\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n } else {\n if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n }\n }\n }\n },\n abrupt: function (type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n var record = finallyEntry ? finallyEntry.completion : {};\n return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n },\n complete: function (record, afterLoc) {\n if (\"throw\" === record.type) throw record.arg;\n return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n },\n finish: function (finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n }\n },\n catch: function (tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (\"throw\" === record.type) {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function (iterable, resultName, nextLoc) {\n return this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n }\n }, exports;\n}\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n _setPrototypeOf(subClass, superClass);\n}\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\n\nvar NostrRPC = /*#__PURE__*/function () {\n function NostrRPC(opts) {\n // events\n this.events = new EventEmitter();\n this.relay = opts.relay || 'wss://nostr.vulpem.com';\n this.self = {\n pubkey: getPublicKey(opts.secretKey),\n secret: opts.secretKey\n };\n }\n var _proto = NostrRPC.prototype;\n _proto.call = /*#__PURE__*/function () {\n var _call = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(_ref, opts) {\n var _this = this;\n var target, _ref$request, _ref$request$id, id, method, _ref$request$params, params, relay, request, event;\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n target = _ref.target, _ref$request = _ref.request, _ref$request$id = _ref$request.id, id = _ref$request$id === void 0 ? /*#__PURE__*/randomID() : _ref$request$id, method = _ref$request.method, _ref$request$params = _ref$request.params, params = _ref$request$params === void 0 ? [] : _ref$request$params;\n _context3.next = 3;\n return connectToRelay(this.relay);\n case 3:\n relay = _context3.sent;\n // prepare request to be sent\n request = prepareRequest(id, method, params);\n _context3.next = 7;\n return prepareEvent(this.self.secret, target, request);\n case 7:\n event = _context3.sent;\n return _context3.abrupt(\"return\", new Promise( /*#__PURE__*/function () {\n var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(resolve, reject) {\n var sub;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n sub = relay.sub([{\n kinds: [24133],\n authors: [target],\n '#p': [_this.self.pubkey],\n limit: 1\n }]);\n _context2.next = 3;\n return broadcastToRelay(relay, event, true);\n case 3:\n // skip waiting for response from remote\n if (opts && opts.skipResponse === true) resolve();\n sub.on('event', /*#__PURE__*/function () {\n var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(event) {\n var payload, plaintext;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.prev = 0;\n _context.next = 3;\n return nip04.decrypt(_this.self.secret, event.pubkey, event.content);\n case 3:\n plaintext = _context.sent;\n if (plaintext) {\n _context.next = 6;\n break;\n }\n throw new Error('failed to decrypt event');\n case 6:\n payload = JSON.parse(plaintext);\n _context.next = 12;\n break;\n case 9:\n _context.prev = 9;\n _context.t0 = _context[\"catch\"](0);\n return _context.abrupt(\"return\");\n case 12:\n if (isValidResponse(payload)) {\n _context.next = 14;\n break;\n }\n return _context.abrupt(\"return\");\n case 14:\n if (!(payload.id !== id)) {\n _context.next = 16;\n break;\n }\n return _context.abrupt(\"return\");\n case 16:\n // if the response is an error, reject the promise\n if (payload.error) {\n reject(payload.error);\n }\n // if the response is a result, resolve the promise\n if (payload.result) {\n resolve(payload.result);\n }\n case 18:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[0, 9]]);\n }));\n return function (_x5) {\n return _ref3.apply(this, arguments);\n };\n }());\n case 5:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n return function (_x3, _x4) {\n return _ref2.apply(this, arguments);\n };\n }()));\n case 9:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3, this);\n }));\n function call(_x, _x2) {\n return _call.apply(this, arguments);\n }\n return call;\n }();\n _proto.listen = /*#__PURE__*/function () {\n var _listen = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {\n var _this2 = this;\n var relay, sub;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n _context5.next = 2;\n return connectToRelay(this.relay);\n case 2:\n relay = _context5.sent;\n sub = relay.sub([{\n kinds: [24133],\n '#p': [this.self.pubkey],\n since: now()\n }]);\n sub.on('event', /*#__PURE__*/function () {\n var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(event) {\n var payload, plaintext, response, body, responseEvent;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n _context4.prev = 0;\n _context4.next = 3;\n return nip04.decrypt(_this2.self.secret, event.pubkey, event.content);\n case 3:\n plaintext = _context4.sent;\n if (plaintext) {\n _context4.next = 6;\n break;\n }\n throw new Error('failed to decrypt event');\n case 6:\n payload = JSON.parse(plaintext);\n _context4.next = 12;\n break;\n case 9:\n _context4.prev = 9;\n _context4.t0 = _context4[\"catch\"](0);\n return _context4.abrupt(\"return\");\n case 12:\n if (isValidRequest(payload)) {\n _context4.next = 14;\n break;\n }\n return _context4.abrupt(\"return\");\n case 14:\n _context4.next = 17;\n return _this2.handleRequest(payload, event);\n case 17:\n response = _context4.sent;\n body = prepareResponse(response.id, response.result, response.error);\n _context4.next = 21;\n return prepareEvent(_this2.self.secret, event.pubkey, body);\n case 21:\n responseEvent = _context4.sent;\n // send response via relay\n relay.publish(responseEvent);\n case 23:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4, null, [[0, 9]]);\n }));\n return function (_x6) {\n return _ref4.apply(this, arguments);\n };\n }());\n return _context5.abrupt(\"return\", sub);\n case 6:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5, this);\n }));\n function listen() {\n return _listen.apply(this, arguments);\n }\n return listen;\n }();\n _proto.handleRequest = /*#__PURE__*/function () {\n var _handleRequest = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(request, event) {\n var id, method, params, result, error;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n id = request.id, method = request.method, params = request.params;\n result = null;\n error = null;\n _context6.prev = 3;\n this.event = event;\n _context6.next = 7;\n return this[method].apply(this, params);\n case 7:\n result = _context6.sent;\n this.event = undefined;\n _context6.next = 14;\n break;\n case 11:\n _context6.prev = 11;\n _context6.t0 = _context6[\"catch\"](3);\n if (_context6.t0 instanceof Error) {\n error = _context6.t0.message;\n } else {\n error = 'unknown error';\n }\n case 14:\n return _context6.abrupt(\"return\", {\n id: id,\n result: result,\n error: error\n });\n case 15:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6, this, [[3, 11]]);\n }));\n function handleRequest(_x7, _x8) {\n return _handleRequest.apply(this, arguments);\n }\n return handleRequest;\n }();\n return NostrRPC;\n}();\nfunction now() {\n return Math.floor(Date.now() / 1000);\n}\nfunction randomID() {\n return Math.random().toString().slice(2);\n}\nfunction prepareRequest(id, method, params) {\n return JSON.stringify({\n id: id,\n method: method,\n params: params\n });\n}\nfunction prepareResponse(id, result, error) {\n return JSON.stringify({\n id: id,\n result: result,\n error: error\n });\n}\nfunction prepareEvent(_x9, _x10, _x11) {\n return _prepareEvent.apply(this, arguments);\n}\nfunction _prepareEvent() {\n _prepareEvent = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7(secretKey, pubkey, content) {\n var cipherText, event, id, sig, signedEvent, ok, veryOk;\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n _context7.next = 2;\n return nip04.encrypt(secretKey, pubkey, content);\n case 2:\n cipherText = _context7.sent;\n event = {\n kind: 24133,\n created_at: now(),\n pubkey: getPublicKey(secretKey),\n tags: [['p', pubkey]],\n content: cipherText\n };\n id = getEventHash(event);\n sig = signEvent(event, secretKey);\n signedEvent = _extends({}, event, {\n id: id,\n sig: sig\n });\n ok = validateEvent(signedEvent);\n veryOk = verifySignature(signedEvent);\n if (!(!ok || !veryOk)) {\n _context7.next = 11;\n break;\n }\n throw new Error('Event is not valid');\n case 11:\n return _context7.abrupt(\"return\", signedEvent);\n case 12:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7);\n }));\n return _prepareEvent.apply(this, arguments);\n}\nfunction isValidRequest(payload) {\n if (!payload) return false;\n var keys = Object.keys(payload);\n if (!keys.includes('id') || !keys.includes('method') || !keys.includes('params')) return false;\n return true;\n}\nfunction isValidResponse(payload) {\n if (!payload) return false;\n var keys = Object.keys(payload);\n if (!keys.includes('id') || !keys.includes('result') || !keys.includes('error')) return false;\n return true;\n}\nfunction connectToRelay(_x12) {\n return _connectToRelay.apply(this, arguments);\n}\nfunction _connectToRelay() {\n _connectToRelay = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8(realayURL) {\n var relay;\n return _regeneratorRuntime().wrap(function _callee8$(_context8) {\n while (1) switch (_context8.prev = _context8.next) {\n case 0:\n relay = relayInit(realayURL);\n _context8.next = 3;\n return relay.connect();\n case 3:\n _context8.next = 5;\n return new Promise(function (resolve, reject) {\n relay.on('connect', function () {\n resolve();\n });\n relay.on('error', function () {\n reject(new Error(\"not possible to connect to \" + relay.url));\n });\n });\n case 5:\n return _context8.abrupt(\"return\", relay);\n case 6:\n case \"end\":\n return _context8.stop();\n }\n }, _callee8);\n }));\n return _connectToRelay.apply(this, arguments);\n}\nfunction broadcastToRelay(_x13, _x14, _x15) {\n return _broadcastToRelay.apply(this, arguments);\n}\nfunction _broadcastToRelay() {\n _broadcastToRelay = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee9(relay, event, skipSeen) {\n return _regeneratorRuntime().wrap(function _callee9$(_context9) {\n while (1) switch (_context9.prev = _context9.next) {\n case 0:\n if (skipSeen === void 0) {\n skipSeen = false;\n }\n _context9.next = 3;\n return new Promise(function (resolve, reject) {\n relay.on('error', function () {\n reject(new Error(\"failed to connect to \" + relay.url));\n });\n var pub = relay.publish(event);\n if (skipSeen) resolve();\n pub.on('failed', function (reason) {\n reject(reason);\n });\n pub.on('seen', function () {\n resolve();\n });\n });\n case 3:\n return _context9.abrupt(\"return\", _context9.sent);\n case 4:\n case \"end\":\n return _context9.stop();\n }\n }, _callee9);\n }));\n return _broadcastToRelay.apply(this, arguments);\n}\n\nvar ConnectURI = /*#__PURE__*/function () {\n function ConnectURI(_ref) {\n var target = _ref.target,\n metadata = _ref.metadata,\n relay = _ref.relay;\n this.target = target;\n this.metadata = metadata;\n this.relay = relay;\n }\n ConnectURI.fromURI = function fromURI(uri) {\n var url = new URL(uri);\n var target = url.hostname || url.pathname.substring(2);\n if (!target) throw new Error('Invalid connect URI: missing target');\n var relay = url.searchParams.get('relay');\n if (!relay) {\n throw new Error('Invalid connect URI: missing relay');\n }\n var metadata = url.searchParams.get('metadata');\n if (!metadata) {\n throw new Error('Invalid connect URI: missing metadata');\n }\n /* eslint-disable @typescript-eslint/no-unused-vars */\n try {\n var md = JSON.parse(metadata);\n return new ConnectURI({\n target: target,\n metadata: md,\n relay: relay\n });\n } catch (ignore) {\n throw new Error('Invalid connect URI: metadata is not valid JSON');\n }\n };\n var _proto = ConnectURI.prototype;\n _proto.toString = function toString() {\n return \"nostrconnect://\" + this.target + \"?metadata=\" + encodeURIComponent(JSON.stringify(this.metadata)) + \"&relay=\" + encodeURIComponent(this.relay);\n };\n _proto.approve = /*#__PURE__*/function () {\n var _approve = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(secretKey) {\n var rpc;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n rpc = new NostrRPC({\n relay: this.relay,\n secretKey: secretKey\n });\n _context.next = 3;\n return rpc.call({\n target: this.target,\n request: {\n method: 'connect',\n params: [getPublicKey(secretKey)]\n }\n }, {\n skipResponse: true\n });\n case 3:\n case \"end\":\n return _context.stop();\n }\n }, _callee, this);\n }));\n function approve(_x) {\n return _approve.apply(this, arguments);\n }\n return approve;\n }();\n _proto.reject = /*#__PURE__*/function () {\n var _reject = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(secretKey) {\n var rpc;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n rpc = new NostrRPC({\n relay: this.relay,\n secretKey: secretKey\n });\n _context2.next = 3;\n return rpc.call({\n target: this.target,\n request: {\n method: 'disconnect',\n params: []\n }\n }, {\n skipResponse: true\n });\n case 3:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, this);\n }));\n function reject(_x2) {\n return _reject.apply(this, arguments);\n }\n return reject;\n }();\n return ConnectURI;\n}();\nvar Connect = /*#__PURE__*/function () {\n function Connect(_ref2) {\n var target = _ref2.target,\n relay = _ref2.relay,\n secretKey = _ref2.secretKey;\n this.events = new EventEmitter();\n this.nip04 = {\n encrypt: function () {\n var _encrypt = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(_pubkey, _plaintext) {\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n throw new Error('Not implemented');\n case 1:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n function encrypt(_x3, _x4) {\n return _encrypt.apply(this, arguments);\n }\n return encrypt;\n }(),\n decrypt: function () {\n var _decrypt = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(_pubkey, _ciphertext) {\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n throw new Error('Not implemented');\n case 1:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n function decrypt(_x5, _x6) {\n return _decrypt.apply(this, arguments);\n }\n return decrypt;\n }()\n };\n this.rpc = new NostrRPC({\n relay: relay,\n secretKey: secretKey\n });\n if (target) {\n this.target = target;\n }\n }\n var _proto2 = Connect.prototype;\n _proto2.init = /*#__PURE__*/function () {\n var _init = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {\n var _this = this;\n var sub;\n return _regeneratorRuntime().wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n _context6.next = 2;\n return this.rpc.listen();\n case 2:\n sub = _context6.sent;\n sub.on('event', /*#__PURE__*/function () {\n var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(event) {\n var payload, plaintext, _payload$params, pubkey;\n return _regeneratorRuntime().wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n _context5.prev = 0;\n _context5.next = 3;\n return nip04.decrypt(_this.rpc.self.secret, event.pubkey, event.content);\n case 3:\n plaintext = _context5.sent;\n if (plaintext) {\n _context5.next = 6;\n break;\n }\n throw new Error('failed to decrypt event');\n case 6:\n payload = JSON.parse(plaintext);\n _context5.next = 12;\n break;\n case 9:\n _context5.prev = 9;\n _context5.t0 = _context5[\"catch\"](0);\n return _context5.abrupt(\"return\");\n case 12:\n if (isValidRequest(payload)) {\n _context5.next = 14;\n break;\n }\n return _context5.abrupt(\"return\");\n case 14:\n _context5.t1 = payload.method;\n _context5.next = _context5.t1 === 'connect' ? 17 : _context5.t1 === 'disconnect' ? 23 : 26;\n break;\n case 17:\n if (!(!payload.params || payload.params.length !== 1)) {\n _context5.next = 19;\n break;\n }\n throw new Error('connect: missing pubkey');\n case 19:\n _payload$params = payload.params, pubkey = _payload$params[0];\n _this.target = pubkey;\n _this.events.emit('connect', pubkey);\n return _context5.abrupt(\"break\", 26);\n case 23:\n _this.target = undefined;\n _this.events.emit('disconnect');\n return _context5.abrupt(\"break\", 26);\n case 26:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5, null, [[0, 9]]);\n }));\n return function (_x7) {\n return _ref3.apply(this, arguments);\n };\n }());\n case 4:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6, this);\n }));\n function init() {\n return _init.apply(this, arguments);\n }\n return init;\n }();\n _proto2.on = function on(evt, cb) {\n this.events.on(evt, cb);\n };\n _proto2.off = function off(evt, cb) {\n this.events.off(evt, cb);\n };\n _proto2.disconnect = /*#__PURE__*/function () {\n var _disconnect = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {\n return _regeneratorRuntime().wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n if (this.target) {\n _context7.next = 2;\n break;\n }\n throw new Error('Not connected');\n case 2:\n // notify the UI that we are disconnecting\n this.events.emit('disconnect');\n _context7.prev = 3;\n _context7.next = 6;\n return this.rpc.call({\n target: this.target,\n request: {\n method: 'disconnect',\n params: []\n }\n }, {\n skipResponse: true\n });\n case 6:\n _context7.next = 11;\n break;\n case 8:\n _context7.prev = 8;\n _context7.t0 = _context7[\"catch\"](3);\n throw new Error('Failed to disconnect');\n case 11:\n this.target = undefined;\n case 12:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7, this, [[3, 8]]);\n }));\n function disconnect() {\n return _disconnect.apply(this, arguments);\n }\n return disconnect;\n }();\n _proto2.getPublicKey = /*#__PURE__*/function () {\n var _getPublicKey = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {\n var response;\n return _regeneratorRuntime().wrap(function _callee8$(_context8) {\n while (1) switch (_context8.prev = _context8.next) {\n case 0:\n if (this.target) {\n _context8.next = 2;\n break;\n }\n throw new Error('Not connected');\n case 2:\n _context8.next = 4;\n return this.rpc.call({\n target: this.target,\n request: {\n method: 'get_public_key',\n params: []\n }\n });\n case 4:\n response = _context8.sent;\n return _context8.abrupt(\"return\", response);\n case 6:\n case \"end\":\n return _context8.stop();\n }\n }, _callee8, this);\n }));\n function getPublicKey() {\n return _getPublicKey.apply(this, arguments);\n }\n return getPublicKey;\n }();\n _proto2.signEvent = /*#__PURE__*/function () {\n var _signEvent = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee9(event) {\n var signature;\n return _regeneratorRuntime().wrap(function _callee9$(_context9) {\n while (1) switch (_context9.prev = _context9.next) {\n case 0:\n if (this.target) {\n _context9.next = 2;\n break;\n }\n throw new Error('Not connected');\n case 2:\n _context9.next = 4;\n return this.rpc.call({\n target: this.target,\n request: {\n method: 'sign_event',\n params: [event]\n }\n });\n case 4:\n signature = _context9.sent;\n return _context9.abrupt(\"return\", signature);\n case 6:\n case \"end\":\n return _context9.stop();\n }\n }, _callee9, this);\n }));\n function signEvent(_x8) {\n return _signEvent.apply(this, arguments);\n }\n return signEvent;\n }();\n _proto2.getRelays = /*#__PURE__*/function () {\n var _getRelays = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee10() {\n return _regeneratorRuntime().wrap(function _callee10$(_context10) {\n while (1) switch (_context10.prev = _context10.next) {\n case 0:\n throw new Error('Not implemented');\n case 1:\n case \"end\":\n return _context10.stop();\n }\n }, _callee10);\n }));\n function getRelays() {\n return _getRelays.apply(this, arguments);\n }\n return getRelays;\n }();\n return Connect;\n}();\n\nvar NostrSigner = /*#__PURE__*/function (_NostrRPC) {\n _inheritsLoose(NostrSigner, _NostrRPC);\n function NostrSigner() {\n return _NostrRPC.apply(this, arguments) || this;\n }\n var _proto = NostrSigner.prototype;\n _proto.disconnect = /*#__PURE__*/function () {\n var _disconnect = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n this.events.emit('disconnect');\n return _context.abrupt(\"return\", null);\n case 2:\n case \"end\":\n return _context.stop();\n }\n }, _callee, this);\n }));\n function disconnect() {\n return _disconnect.apply(this, arguments);\n }\n return disconnect;\n }();\n _proto.isConnected = function isConnected() {\n throw new Error('Method not implemented yet.');\n };\n return NostrSigner;\n}(NostrRPC);\n\nexport { Connect, ConnectURI, NostrRPC, NostrSigner, broadcastToRelay, connectToRelay, isValidRequest, isValidResponse, now, prepareEvent, prepareRequest, prepareResponse, randomID };\n//# sourceMappingURL=connect.esm.js.map\n","import NstrAdapter from './index.js';\nimport { Connect } from '@nostr-connect/connect';\n\nclass NstrAdapterNip46 extends NstrAdapter {\n #secretKey = null;\n \n constructor(pubkey, secretKey, adapterConfig = {}) {\n super(pubkey, adapterConfig);\n this.#secretKey = secretKey;\n }\n\n async signEvent(event) {\n const connect = new Connect({\n secretKey: this.#secretKey,\n target: this.pubkey,\n });\n await connect.init();\n \n event.sig = await connect.signEvent('12323423434');\n return event;\n }\n}\n\nexport default NstrAdapterNip46;\n","import { generatePrivateKey, signEvent, getPublicKey, nip04 } from 'nostr-tools';\nimport NstrAdapter from './index.js';\n\nclass NstrAdapterDiscadableKeys extends NstrAdapter {\n #privateKey;\n\n constructor(adapterConfig={}) {\n let key = localStorage.getItem('nostrichat-discardable-key');\n let publicKey = localStorage.getItem('nostrichat-discardable-public-key');\n\n if (!key) {\n key = generatePrivateKey();\n console.log('generated key', key);\n publicKey = getPublicKey(key);\n }\n\n localStorage.setItem('nostrichat-discardable-key', key);\n localStorage.setItem('nostrichat-discardable-public-key', publicKey);\n\n super(publicKey, adapterConfig);\n \n this.#privateKey = key;\n console.log(key);\n }\n\n async signEvent(event) {\n event.sig = await signEvent(event, this.#privateKey);\n return event;\n }\n\n async encrypt(destPubkey, message) {\n console.log(this.#privateKey);\n return await nip04.encrypt(this.#privateKey, destPubkey, message);\n }\n\n async decrypt(destPubkey, message) {\n return await nip04.decrypt(this.#privateKey, destPubkey, message);\n }\n}\n\nexport default NstrAdapterDiscadableKeys;\n","\n\n\n How would you like to connect?\n \n\n{#if publicKey}\n \n Nostr Connect is a WIP, not fully implemented yet!\n
\n\n \n You are currently connected with the following public key:\n {publicKey} \n
\n{/if}\n\n{#if nip46URI}\n \n Scan this with your Nostr Connect (click to copy to clipboard)\n
\n\n \n \n
\n\n { nip46URI = null; }}>\n Cancel\n \n{:else if !publicKey}\n \n {#if hasNostrNip07}\n \n Browser Extension (NIP-07)\n \n {/if}\n\n\n \n Nostr Connect (NIP-46)\n \n\n \n Anonymous\n \n (Ephemeral Keys)\n \n \n
\n{/if}\n\n","\"use strict\";\n/* tslint:disable:max-classes-per-file */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InternalError = exports.InvalidDataError = exports.RoutingError = exports.UnsupportedMethodError = exports.ConnectionError = exports.RejectionError = exports.MissingProviderError = void 0;\n/**\n * Workaround for custom errors when compiling typescript targeting 'ES5'.\n * see: https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes#extending-built-ins-like-error-array-and-map-may-no-longer-work\n * @param {CustomError} error\n * @param newTarget the value of `new.target`\n * @param {Function} errorType\n */\nfunction fixError(error, newTarget, errorType) {\n Object.setPrototypeOf(error, errorType.prototype);\n // when an error constructor is invoked with the `new` operator\n if (newTarget === errorType) {\n error.name = newTarget.name;\n // exclude the constructor call of the error type from the stack trace.\n if (Error.captureStackTrace) {\n Error.captureStackTrace(error, errorType);\n }\n else {\n var stack = new Error(error.message).stack;\n if (stack) {\n error.stack = fixStack(stack, \"new \".concat(newTarget.name));\n }\n }\n }\n}\nfunction fixStack(stack, functionName) {\n if (!stack)\n return stack;\n if (!functionName)\n return stack;\n // exclude lines starts with: \" at functionName \"\n var exclusion = new RegExp(\"\\\\s+at\\\\s\".concat(functionName, \"\\\\s\"));\n var lines = stack.split(\"\\n\");\n var resultLines = lines.filter(function (line) { return !line.match(exclusion); });\n return resultLines.join(\"\\n\");\n}\n/// CUSTOM ERRORS ///\n// When no WebLN provider is available\nvar MissingProviderError = /** @class */ (function (_super) {\n __extends(MissingProviderError, _super);\n function MissingProviderError(message) {\n var _newTarget = this.constructor;\n var _this = _super.call(this, message) || this;\n fixError(_this, _newTarget, MissingProviderError);\n return _this;\n }\n return MissingProviderError;\n}(Error));\nexports.MissingProviderError = MissingProviderError;\n// When the user rejects a request\nvar RejectionError = /** @class */ (function (_super) {\n __extends(RejectionError, _super);\n function RejectionError(message) {\n var _newTarget = this.constructor;\n var _this = _super.call(this, message) || this;\n fixError(_this, _newTarget, RejectionError);\n return _this;\n }\n return RejectionError;\n}(Error));\nexports.RejectionError = RejectionError;\n// When the node can't be connected to (i.e. the app did nothing wrong)\nvar ConnectionError = /** @class */ (function (_super) {\n __extends(ConnectionError, _super);\n function ConnectionError(message) {\n var _newTarget = this.constructor;\n var _this = _super.call(this, message) || this;\n fixError(_this, _newTarget, ConnectionError);\n return _this;\n }\n return ConnectionError;\n}(Error));\nexports.ConnectionError = ConnectionError;\n// The WebLN provider doesn't support this method\nvar UnsupportedMethodError = /** @class */ (function (_super) {\n __extends(UnsupportedMethodError, _super);\n function UnsupportedMethodError(message) {\n var _newTarget = this.constructor;\n var _this = _super.call(this, message) || this;\n fixError(_this, _newTarget, UnsupportedMethodError);\n return _this;\n }\n return UnsupportedMethodError;\n}(Error));\nexports.UnsupportedMethodError = UnsupportedMethodError;\n// The desired node couldn't be routed to\nvar RoutingError = /** @class */ (function (_super) {\n __extends(RoutingError, _super);\n function RoutingError(message) {\n var _newTarget = this.constructor;\n var _this = _super.call(this, message) || this;\n fixError(_this, _newTarget, RoutingError);\n return _this;\n }\n return RoutingError;\n}(Error));\nexports.RoutingError = RoutingError;\n// An argument passed was somehow invalid (e.g. malformed invoice)\nvar InvalidDataError = /** @class */ (function (_super) {\n __extends(InvalidDataError, _super);\n function InvalidDataError(message) {\n var _newTarget = this.constructor;\n var _this = _super.call(this, message) || this;\n fixError(_this, _newTarget, InvalidDataError);\n return _this;\n }\n return InvalidDataError;\n}(Error));\nexports.InvalidDataError = InvalidDataError;\n// Something broke in the WebLN provider internally, nothing to do with the app\nvar InternalError = /** @class */ (function (_super) {\n __extends(InternalError, _super);\n function InternalError(message) {\n var _newTarget = this.constructor;\n var _this = _super.call(this, message) || this;\n fixError(_this, _newTarget, InternalError);\n return _this;\n }\n return InternalError;\n}(Error));\nexports.InternalError = InternalError;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.requestProvider = void 0;\nvar errors_1 = require(\"./errors\");\nfunction requestProvider(_) {\n if (_ === void 0) { _ = {}; }\n return new Promise(function (resolve, reject) {\n if (typeof window === 'undefined') {\n return reject(new Error('Must be called in a browser context'));\n }\n var webln = window.webln;\n if (!webln) {\n return reject(new errors_1.MissingProviderError('Your browser has no WebLN provider'));\n }\n webln.enable()\n .then(function () { return resolve(webln); })\n .catch(function (err) { return reject(err); });\n });\n}\nexports.requestProvider = requestProvider;\n","\"use strict\";\n/**\n * Everything needed to implement your own provider.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./client\"), exports);\n__exportStar(require(\"./provider\"), exports);\n__exportStar(require(\"./errors\"), exports);\n","\n\n\n (hover = true)}\n on:mouseleave={() => (hover = false)}\n on:click|preventDefault={zap}\n>\n {#if !hover}\n {icon} \n {:else}\n \n {amountDisplay||amount}\n \n {/if}\n
","\n\n (hovering = true)}\n on:mouseleave={() => (hovering = false)}\n>\n
\n
\n
\n \n \n\n
0 ? 'opacity-100 text-base' : 'bg-orange-500 opacity-10 text-xl'}\n w-8 h-8\n flex items-center\n justify-center\n hover:opacity-100\n \"\n on:click|preventDefault={() => $zappingMessage = $zappingMessage === event.id ? null : event.id}\n >\n {#if zappedAmount > 0}\n \n ⚡️\n \n {zappedAmount}\n \n
\n {:else}\n ⚡️\n {/if}\n \n\n
\n {#if zappingIt}\n {#if mobilePR}\n
\n {:else}\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n {/if}\n {/if}\n
\n\n \n
\n\n
\n
\n
\n\n
{selectMessage(event.id)}}\n on:keydown|preventDefault={()=>{selectMessage(event.id)}}\n on:keyup|preventDefault={()=>{selectMessage(event.id)}}\n >\n {event.content}\n
\n\n
\n
\n \n {timestamp.toLocaleString()}\n \n
\n\n {#if byWebsiteOwner}\n
\n Website owner\n
\n {:else}\n
\n {displayName}\n
\n {/if}\n
\n
\n
\n
\n\n{#if responses[event.id].length > 0}\n \n {#each responses[event.id] as response}\n \n {/each}\n
\n{/if}\n\n","export { identity as linear } from '../internal/index.mjs';\n\n/*\nAdapted from https://github.com/mattdesl\nDistributed under MIT License https://github.com/mattdesl/eases/blob/master/LICENSE.md\n*/\nfunction backInOut(t) {\n const s = 1.70158 * 1.525;\n if ((t *= 2) < 1)\n return 0.5 * (t * t * ((s + 1) * t - s));\n return 0.5 * ((t -= 2) * t * ((s + 1) * t + s) + 2);\n}\nfunction backIn(t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n}\nfunction backOut(t) {\n const s = 1.70158;\n return --t * t * ((s + 1) * t + s) + 1;\n}\nfunction bounceOut(t) {\n const a = 4.0 / 11.0;\n const b = 8.0 / 11.0;\n const c = 9.0 / 10.0;\n const ca = 4356.0 / 361.0;\n const cb = 35442.0 / 1805.0;\n const cc = 16061.0 / 1805.0;\n const t2 = t * t;\n return t < a\n ? 7.5625 * t2\n : t < b\n ? 9.075 * t2 - 9.9 * t + 3.4\n : t < c\n ? ca * t2 - cb * t + cc\n : 10.8 * t * t - 20.52 * t + 10.72;\n}\nfunction bounceInOut(t) {\n return t < 0.5\n ? 0.5 * (1.0 - bounceOut(1.0 - t * 2.0))\n : 0.5 * bounceOut(t * 2.0 - 1.0) + 0.5;\n}\nfunction bounceIn(t) {\n return 1.0 - bounceOut(1.0 - t);\n}\nfunction circInOut(t) {\n if ((t *= 2) < 1)\n return -0.5 * (Math.sqrt(1 - t * t) - 1);\n return 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n}\nfunction circIn(t) {\n return 1.0 - Math.sqrt(1.0 - t * t);\n}\nfunction circOut(t) {\n return Math.sqrt(1 - --t * t);\n}\nfunction cubicInOut(t) {\n return t < 0.5 ? 4.0 * t * t * t : 0.5 * Math.pow(2.0 * t - 2.0, 3.0) + 1.0;\n}\nfunction cubicIn(t) {\n return t * t * t;\n}\nfunction cubicOut(t) {\n const f = t - 1.0;\n return f * f * f + 1.0;\n}\nfunction elasticInOut(t) {\n return t < 0.5\n ? 0.5 *\n Math.sin(((+13.0 * Math.PI) / 2) * 2.0 * t) *\n Math.pow(2.0, 10.0 * (2.0 * t - 1.0))\n : 0.5 *\n Math.sin(((-13.0 * Math.PI) / 2) * (2.0 * t - 1.0 + 1.0)) *\n Math.pow(2.0, -10.0 * (2.0 * t - 1.0)) +\n 1.0;\n}\nfunction elasticIn(t) {\n return Math.sin((13.0 * t * Math.PI) / 2) * Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction elasticOut(t) {\n return (Math.sin((-13.0 * (t + 1.0) * Math.PI) / 2) * Math.pow(2.0, -10.0 * t) + 1.0);\n}\nfunction expoInOut(t) {\n return t === 0.0 || t === 1.0\n ? t\n : t < 0.5\n ? +0.5 * Math.pow(2.0, 20.0 * t - 10.0)\n : -0.5 * Math.pow(2.0, 10.0 - t * 20.0) + 1.0;\n}\nfunction expoIn(t) {\n return t === 0.0 ? t : Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction expoOut(t) {\n return t === 1.0 ? t : 1.0 - Math.pow(2.0, -10.0 * t);\n}\nfunction quadInOut(t) {\n t /= 0.5;\n if (t < 1)\n return 0.5 * t * t;\n t--;\n return -0.5 * (t * (t - 2) - 1);\n}\nfunction quadIn(t) {\n return t * t;\n}\nfunction quadOut(t) {\n return -t * (t - 2.0);\n}\nfunction quartInOut(t) {\n return t < 0.5\n ? +8.0 * Math.pow(t, 4.0)\n : -8.0 * Math.pow(t - 1.0, 4.0) + 1.0;\n}\nfunction quartIn(t) {\n return Math.pow(t, 4.0);\n}\nfunction quartOut(t) {\n return Math.pow(t - 1.0, 3.0) * (1.0 - t) + 1.0;\n}\nfunction quintInOut(t) {\n if ((t *= 2) < 1)\n return 0.5 * t * t * t * t * t;\n return 0.5 * ((t -= 2) * t * t * t * t + 2);\n}\nfunction quintIn(t) {\n return t * t * t * t * t;\n}\nfunction quintOut(t) {\n return --t * t * t * t * t + 1;\n}\nfunction sineInOut(t) {\n return -0.5 * (Math.cos(Math.PI * t) - 1);\n}\nfunction sineIn(t) {\n const v = Math.cos(t * Math.PI * 0.5);\n if (Math.abs(v) < 1e-14)\n return 1;\n else\n return 1 - v;\n}\nfunction sineOut(t) {\n return Math.sin((t * Math.PI) / 2);\n}\n\nexport { backIn, backInOut, backOut, bounceIn, bounceInOut, bounceOut, circIn, circInOut, circOut, cubicIn, cubicInOut, cubicOut, elasticIn, elasticInOut, elasticOut, expoIn, expoInOut, expoOut, quadIn, quadInOut, quadOut, quartIn, quartInOut, quartOut, quintIn, quintInOut, quintOut, sineIn, sineInOut, sineOut };\n","export default {\n $(selector) {\n if (typeof selector === \"string\") {\n return document.querySelector(selector);\n }\n return selector;\n },\n extend(...args) {\n return Object.assign(...args);\n },\n cumulativeOffset(element) {\n let top = 0;\n let left = 0;\n\n do {\n top += element.offsetTop || 0;\n left += element.offsetLeft || 0;\n element = element.offsetParent;\n } while (element);\n\n return {\n top: top,\n left: left\n };\n },\n directScroll(element) {\n return element && element !== document && element !== document.body;\n },\n scrollTop(element, value) {\n let inSetter = value !== undefined;\n if (this.directScroll(element)) {\n return inSetter ? (element.scrollTop = value) : element.scrollTop;\n } else {\n return inSetter\n ? (document.documentElement.scrollTop = document.body.scrollTop = value)\n : window.pageYOffset ||\n document.documentElement.scrollTop ||\n document.body.scrollTop ||\n 0;\n }\n },\n scrollLeft(element, value) {\n let inSetter = value !== undefined;\n if (this.directScroll(element)) {\n return inSetter ? (element.scrollLeft = value) : element.scrollLeft;\n } else {\n return inSetter\n ? (document.documentElement.scrollLeft = document.body.scrollLeft = value)\n : window.pageXOffset ||\n document.documentElement.scrollLeft ||\n document.body.scrollLeft ||\n 0;\n }\n }\n};\n","import { cubicInOut } from \"svelte/easing\";\nimport { noop, loop, now } from \"svelte/internal\";\nimport _ from \"./helper\";\n\nconst defaultOptions = {\n container: \"body\",\n duration: 500,\n delay: 0,\n offset: 0,\n easing: cubicInOut,\n onStart: noop,\n onDone: noop,\n onAborting: noop,\n scrollX: false,\n scrollY: true\n};\n\nconst _scrollTo = options => {\n let {\n offset,\n duration,\n delay,\n easing,\n x=0,\n y=0,\n scrollX,\n scrollY,\n onStart,\n onDone,\n container,\n onAborting,\n element\n } = options;\n\n if (typeof offset === \"function\") {\n offset = offset();\n }\n\n var cumulativeOffsetContainer = _.cumulativeOffset(container);\n var cumulativeOffsetTarget = element\n ? _.cumulativeOffset(element)\n : { top: y, left: x };\n\n var initialX = _.scrollLeft(container);\n var initialY = _.scrollTop(container);\n\n var targetX =\n cumulativeOffsetTarget.left - cumulativeOffsetContainer.left + offset;\n var targetY =\n cumulativeOffsetTarget.top - cumulativeOffsetContainer.top + offset;\n\n var diffX = targetX - initialX;\n\tvar diffY = targetY - initialY;\n\n let scrolling = true;\n let started = false;\n let start_time = now() + delay;\n let end_time = start_time + duration;\n\n function scrollToTopLeft(element, top, left) {\n if (scrollX) _.scrollLeft(element, left);\n if (scrollY) _.scrollTop(element, top);\n }\n\n function start(delayStart) {\n if (!delayStart) {\n started = true;\n onStart(element, {x, y});\n }\n }\n\n function tick(progress) {\n scrollToTopLeft(\n container,\n initialY + diffY * progress,\n initialX + diffX * progress\n );\n }\n\n function stop() {\n scrolling = false;\n }\n\n loop(now => {\n if (!started && now >= start_time) {\n start(false)\n }\n\n if (started && now >= end_time) {\n tick(1);\n stop();\n onDone(element, {x, y});\n }\n\n if (!scrolling) {\n onAborting(element, {x, y});\n return false;\n }\n if (started) {\n const p = now - start_time;\n const t = 0 + 1 * easing(p / duration);\n tick(t);\n }\n\n return true;\n });\n\n start(delay);\n\n tick(0);\n\n return stop;\n};\n\nconst proceedOptions = options => {\n\tlet opts = _.extend({}, defaultOptions, options);\n opts.container = _.$(opts.container);\n opts.element = _.$(opts.element);\n return opts;\n};\n\nconst scrollContainerHeight = containerElement => {\n if (\n containerElement &&\n containerElement !== document &&\n containerElement !== document.body\n ) {\n return containerElement.scrollHeight - containerElement.offsetHeight;\n } else {\n let body = document.body;\n let html = document.documentElement;\n\n return Math.max(\n body.scrollHeight,\n body.offsetHeight,\n html.clientHeight,\n html.scrollHeight,\n html.offsetHeight\n );\n }\n};\n\nexport const setGlobalOptions = options => {\n\t_.extend(defaultOptions, options || {});\n};\n\nexport const scrollTo = options => {\n return _scrollTo(proceedOptions(options));\n};\n\nexport const scrollToBottom = options => {\n options = proceedOptions(options);\n\n return _scrollTo(\n _.extend(options, {\n element: null,\n y: scrollContainerHeight(options.container)\n })\n );\n};\n\nexport const scrollToTop = options => {\n options = proceedOptions(options);\n\n return _scrollTo(\n _.extend(options, {\n element: null,\n y: 0\n })\n );\n};\n\nexport const makeScrollToAction = scrollToFunc => {\n return (node, options) => {\n let current = options;\n const handle = e => {\n e.preventDefault();\n scrollToFunc(\n typeof current === \"string\" ? { element: current } : current\n );\n };\n node.addEventListener(\"click\", handle);\n node.addEventListener(\"touchstart\", handle);\n return {\n update(options) {\n current = options;\n },\n destroy() {\n node.removeEventListener(\"click\", handle);\n node.removeEventListener(\"touchstart\", handle);\n }\n };\n };\n};\n\nexport const scrollto = makeScrollToAction(scrollTo);\nexport const scrolltotop = makeScrollToAction(scrollToTop);\nexport const scrolltobottom = makeScrollToAction(scrollToBottom);\n","\n\n\n\n
\n {#if $chatAdapter?.pubkey}\n {ownName}\n {/if}\n
\n\n
\n \n {#each Array(totalRelays) as _, i}\n i ? 'bg-green-500' : 'bg-gray-300'}\n w-2 h-2\n \"> \n {/each}\n
\n\n {connectedRelays}/{totalRelays} relays\n \n
\n\n{#if $selectedMessage}\n {#if !getEventById($selectedMessage)}\n Couldn't find event with ID {$selectedMessage} \n {:else}\n \n
\n \n \n \n \n\n
\n \n {getEventById($selectedMessage).content}\n \n
\n
\n {/if}\n{/if}\n\n\n
\n {#if $selectedMessage}\n \n {:else}\n {#each events as event}\n \n {#if event.deleted}\n 👆 deleted\n {/if}\n {/each}\n {/if}\n
\n
\n\n\n\n
\n {#if chatConfiguration.chatType === 'DM'}\n Encrypted chat: \n only your chat partner can see these messages.\n {:else}\n Public chat: \n anyone can see these messages.\n {/if}\n
\n\n
\n
\n\n","\n\n{#if !chatStarted}\n \n{:else}\n \n{/if}\n\n","\n\n\n {#if showChat}\n
\n {#if !dismissedIntro}\n
\n NostriChat\n \n\n
\n This is a FOSS chat app built on top of the Nostr protocol.\n
\n\n
\n Choose how you would like to chat:\n
\n\n
\n You can use it to ask for help\n PSBT.io \n to the creators of this site or to\n anyone willing to help.\n
\n\n
\n Keep in mind that this chat is public,\n anyone can read it, so don't exchange\n private information and use common-sense.\n
\n\n
\n Continue\n \n {:else}\n
\n {/if}\n
\n {/if}\n\n\n
\n
\n\n","import Widget from './Widget.svelte';\n\nvar div = document.createElement('DIV');\nvar script = document.currentScript;\nconst websiteOwnerPubkey = script.getAttribute('data-website-owner-pubkey');\nconst chatType = script.getAttribute('data-chat-type');\nlet chatTags = script.getAttribute('data-chat-tags');\nlet chatReferenceTags = script.getAttribute('data-chat-reference-tags');\nlet relays = script.getAttribute('data-relays');\nscript.parentNode.insertBefore(div, script);\n\nif (!relays) {\n\trelays = 'wss://relay.f7z.io,wss://nos.lol,wss://relay.nostr.info,wss://nostr-pub.wellorder.net,wss://relay.current.fyi,wss://relay.nostr.band'\n}\n\nrelays = relays.split(',');\nchatTags = chatTags ? chatTags.split(',') : [];\nchatReferenceTags = chatReferenceTags ? chatReferenceTags.split(',') : [];\n\nconst embed = new Widget({\n\ttarget: div,\n\tprops: {\n\t\twebsiteOwnerPubkey,\n\t\tchatType,\n\t\tchatTags,\n\t\tchatReferenceTags,\n\t\trelays\n\t},\n});\n"],"names":["now","mode","ECL","math","Polynomial","BitByte","RSBlock","BitBuffer","util","bytesToNumber","hexToBytes","bytesToHex","concatBytes","hexes","utils","getPublicKey","crypto","number","bool","bytes","hash","exists","output","assert","setBigUint64","Chi","Maj","SHA256_K","IV","SHA256_W","SHA2","SHA256","sha256","SHA224","normalize","base58check","bech32","utf8","hex","require$$0","require$$1","pbkdf2_1","_assert_js_1","utils_js_1","require$$2","_sha2_js_1","sha512","SHA512_Kh","SHA512_Kl","SHA512_W_H","SHA512_W_L","SHA512","SHA512_224","SHA512_256","SHA384","require$$3","require$$4","require$$5","secp.utils","base58checker","secp.getPublicKey","secp.Point","assertBytes","secp.CURVE","secp.signSync","secp.Signature","secp.verify","secp256k1.utils","secp256k1.schnorr","secp256k12.utils","secp256k12.schnorr","decode","secp256k13.utils","secp256k14.getSharedSecret","mnemonicToSeedSync","secp256k15.utils","generateMnemonic","validateMnemonic","sha2562","secp256k16.utils","secp256k16.schnorr","bech322","secp256k17.utils","sha2563","Relay","EventEmitter","eventsModule","events","global","ForOfAdaptor_1","ForOfAdaptor","this","Container_1","NativeArrayIterator_1","NativeArrayIterator","SetContainer_1","SetContainer","Exception_1","Exception","LogicError_1","LogicError","InvalidArgument_1","InvalidArgument","OutOfRange_1","OutOfRange","UniqueSet_1","UniqueSet","hash_1","ListIterator_1","ListIterator","Repeater_1","Repeater","ListContainer_1","ListContainer","ReverseIterator_1","ReverseIterator","HashBuckets_1","HashBuckets","SetHashBuckets_1","SetHashBuckets","Pair_1","Pair","MapContainer_1","MapContainer","UniqueMap_1","UniqueMap","MapHashBuckets_1","MapHashBuckets","Entry_1","Entry","EventTarget_1","EventTarget","Event_1","Event","CloseEvent_1","CloseEvent","MessageEvent_1","MessageEvent","ErrorEvent_1","ErrorEvent","nip57","nip19","nip192","EventEmitter2","EventEmitter3","EventEmitter4","nip193","nip05","EventEmitter5","bolt11","EventEmitter6","debug","uuid.v4","RelayPool","nip04","create_if_block_2","create_if_block","requestProvider","create_if_block_4","create_if_block_1","animateScroll.scrollToBottom"],"mappings":"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AAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACvB,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACvB,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACvB,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IAC3B,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IAC3B,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IAC5B,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IAC5B,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IAC5B,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IAC5B,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IAC5B,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IAChC,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;IACjC,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;IACjC,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;IACjC,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;IACjC,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;IACjC,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;IACjC,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE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C;IACpG,IAAI,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;IAC3B,CAAC,CAAC,CAAC,CAAC;IACJ,MAAM,MAAM,GAAG;IACf,UAAIG,MAAI,OAAEC,KAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS;IACnE,CAAC,CAAC;AACqB,CAAC,wCAAwC,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;;;;;ICxXjG,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9D,IAAgB,QAAA,GAAA,OAAA,CAAA,QAAA,GAAG,KAAK,CAAC,CAAC;IAC1B,QAAA,GAAA,OAAA,CAAA,QAAgB,GAAG,CAAC;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;;;;;;ICjgEhB,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,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"}
\ No newline at end of file