mirror of
https://github.com/aljazceru/mutiny-web.git
synced 2026-02-23 15:14:19 +01:00
13
package.json
13
package.json
@@ -9,21 +9,21 @@
|
||||
},
|
||||
"type": "module",
|
||||
"devDependencies": {
|
||||
"@types/node": "^18.15.11",
|
||||
"@types/node": "^18.15.13",
|
||||
"@typescript-eslint/eslint-plugin": "^5.59.0",
|
||||
"@typescript-eslint/parser": "^5.59.0",
|
||||
"autoprefixer": "^10.4.14",
|
||||
"esbuild": "^0.14.54",
|
||||
"eslint": "^8.38.0",
|
||||
"eslint": "^8.39.0",
|
||||
"eslint-import-resolver-typescript": "2.7.1",
|
||||
"eslint-plugin-import": "2.27.5",
|
||||
"eslint-plugin-prettier": "4.2.1",
|
||||
"eslint-plugin-solid": "0.11.0",
|
||||
"postcss": "^8.4.22",
|
||||
"postcss": "^8.4.23",
|
||||
"solid-start-node": "^0.2.26",
|
||||
"tailwindcss": "^3.3.1",
|
||||
"typescript": "^4.9.5",
|
||||
"vite": "^4.2.1",
|
||||
"vite": "^4.3.1",
|
||||
"vite-plugin-pwa": "^0.14.7",
|
||||
"vite-plugin-wasm": "^3.2.2",
|
||||
"workbox-window": "^6.5.4"
|
||||
@@ -34,16 +34,17 @@
|
||||
"@modular-forms/solid": "^0.12.0",
|
||||
"@motionone/solid": "^10.16.0",
|
||||
"@mutinywallet/mutiny-wasm": "^0.2.5",
|
||||
"@mutinywallet/waila-wasm": "^0.1.5",
|
||||
"@nostr-dev-kit/ndk": "^0.0.13",
|
||||
"@solidjs/meta": "^0.28.4",
|
||||
"@solidjs/router": "^0.8.2",
|
||||
"class-variance-authority": "^0.4.0",
|
||||
"nostr-tools": "^1.9.0",
|
||||
"nostr-tools": "^1.10.0",
|
||||
"qr-scanner": "^1.4.2",
|
||||
"solid-js": "^1.7.3",
|
||||
"solid-qr-code": "^0.0.8",
|
||||
"solid-start": "^0.2.26",
|
||||
"undici": "^5.21.2"
|
||||
"undici": "^5.22.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=16.8"
|
||||
|
||||
394
pnpm-lock.yaml
generated
394
pnpm-lock.yaml
generated
@@ -16,6 +16,9 @@ dependencies:
|
||||
'@mutinywallet/mutiny-wasm':
|
||||
specifier: ^0.2.5
|
||||
version: 0.2.5
|
||||
'@mutinywallet/waila-wasm':
|
||||
specifier: ^0.1.5
|
||||
version: 0.1.5
|
||||
'@nostr-dev-kit/ndk':
|
||||
specifier: ^0.0.13
|
||||
version: 0.0.13(eslint-import-resolver-typescript@2.7.1)(typescript@4.9.5)
|
||||
@@ -29,8 +32,8 @@ dependencies:
|
||||
specifier: ^0.4.0
|
||||
version: 0.4.0(typescript@4.9.5)
|
||||
nostr-tools:
|
||||
specifier: ^1.9.0
|
||||
version: 1.9.0
|
||||
specifier: ^1.10.0
|
||||
version: 1.10.0
|
||||
qr-scanner:
|
||||
specifier: ^1.4.2
|
||||
version: 1.4.2
|
||||
@@ -42,63 +45,63 @@ dependencies:
|
||||
version: 0.0.8(qr.js@0.0.0)(solid-js@1.7.3)
|
||||
solid-start:
|
||||
specifier: ^0.2.26
|
||||
version: 0.2.26(@solidjs/meta@0.28.4)(@solidjs/router@0.8.2)(solid-js@1.7.3)(solid-start-node@0.2.26)(vite@4.2.1)
|
||||
version: 0.2.26(@solidjs/meta@0.28.4)(@solidjs/router@0.8.2)(solid-js@1.7.3)(solid-start-node@0.2.26)(vite@4.3.1)
|
||||
undici:
|
||||
specifier: ^5.21.2
|
||||
version: 5.21.2
|
||||
specifier: ^5.22.0
|
||||
version: 5.22.0
|
||||
|
||||
devDependencies:
|
||||
'@types/node':
|
||||
specifier: ^18.15.11
|
||||
version: 18.15.11
|
||||
specifier: ^18.15.13
|
||||
version: 18.15.13
|
||||
'@typescript-eslint/eslint-plugin':
|
||||
specifier: ^5.59.0
|
||||
version: 5.59.0(@typescript-eslint/parser@5.59.0)(eslint@8.38.0)(typescript@4.9.5)
|
||||
version: 5.59.0(@typescript-eslint/parser@5.59.0)(eslint@8.39.0)(typescript@4.9.5)
|
||||
'@typescript-eslint/parser':
|
||||
specifier: ^5.59.0
|
||||
version: 5.59.0(eslint@8.38.0)(typescript@4.9.5)
|
||||
version: 5.59.0(eslint@8.39.0)(typescript@4.9.5)
|
||||
autoprefixer:
|
||||
specifier: ^10.4.14
|
||||
version: 10.4.14(postcss@8.4.22)
|
||||
version: 10.4.14(postcss@8.4.23)
|
||||
esbuild:
|
||||
specifier: ^0.14.54
|
||||
version: 0.14.54
|
||||
eslint:
|
||||
specifier: ^8.38.0
|
||||
version: 8.38.0
|
||||
specifier: ^8.39.0
|
||||
version: 8.39.0
|
||||
eslint-import-resolver-typescript:
|
||||
specifier: 2.7.1
|
||||
version: 2.7.1(eslint-plugin-import@2.27.5)(eslint@8.38.0)
|
||||
version: 2.7.1(eslint-plugin-import@2.27.5)(eslint@8.39.0)
|
||||
eslint-plugin-import:
|
||||
specifier: 2.27.5
|
||||
version: 2.27.5(@typescript-eslint/parser@5.59.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.38.0)
|
||||
version: 2.27.5(@typescript-eslint/parser@5.59.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.39.0)
|
||||
eslint-plugin-prettier:
|
||||
specifier: 4.2.1
|
||||
version: 4.2.1(eslint@8.38.0)(prettier@2.8.7)
|
||||
version: 4.2.1(eslint@8.39.0)(prettier@2.8.7)
|
||||
eslint-plugin-solid:
|
||||
specifier: 0.11.0
|
||||
version: 0.11.0(eslint@8.38.0)(typescript@4.9.5)
|
||||
version: 0.11.0(eslint@8.39.0)(typescript@4.9.5)
|
||||
postcss:
|
||||
specifier: ^8.4.22
|
||||
version: 8.4.22
|
||||
specifier: ^8.4.23
|
||||
version: 8.4.23
|
||||
solid-start-node:
|
||||
specifier: ^0.2.26
|
||||
version: 0.2.26(solid-start@0.2.26)(undici@5.21.2)(vite@4.2.1)
|
||||
version: 0.2.26(solid-start@0.2.26)(undici@5.22.0)(vite@4.3.1)
|
||||
tailwindcss:
|
||||
specifier: ^3.3.1
|
||||
version: 3.3.1(postcss@8.4.22)
|
||||
version: 3.3.1(postcss@8.4.23)
|
||||
typescript:
|
||||
specifier: ^4.9.5
|
||||
version: 4.9.5
|
||||
vite:
|
||||
specifier: ^4.2.1
|
||||
version: 4.2.1(@types/node@18.15.11)
|
||||
specifier: ^4.3.1
|
||||
version: 4.3.1(@types/node@18.15.13)
|
||||
vite-plugin-pwa:
|
||||
specifier: ^0.14.7
|
||||
version: 0.14.7(vite@4.2.1)(workbox-build@6.5.4)(workbox-window@6.5.4)
|
||||
version: 0.14.7(vite@4.3.1)(workbox-build@6.5.4)(workbox-window@6.5.4)
|
||||
vite-plugin-wasm:
|
||||
specifier: ^3.2.2
|
||||
version: 3.2.2(vite@4.2.1)
|
||||
version: 3.2.2(vite@4.3.1)
|
||||
workbox-window:
|
||||
specifier: ^6.5.4
|
||||
version: 6.5.4
|
||||
@@ -1409,13 +1412,13 @@ packages:
|
||||
requiresBuild: true
|
||||
optional: true
|
||||
|
||||
/@eslint-community/eslint-utils@4.4.0(eslint@8.38.0):
|
||||
/@eslint-community/eslint-utils@4.4.0(eslint@8.39.0):
|
||||
resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
peerDependencies:
|
||||
eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
|
||||
dependencies:
|
||||
eslint: 8.38.0
|
||||
eslint: 8.39.0
|
||||
eslint-visitor-keys: 3.4.0
|
||||
|
||||
/@eslint-community/regexpp@4.5.0:
|
||||
@@ -1438,8 +1441,8 @@ packages:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
/@eslint/js@8.38.0:
|
||||
resolution: {integrity: sha512-IoD2MfUnOV58ghIHCiil01PcohxjbYR/qCxsoC+xNgUwh1EY8jOOrYmu3d3a71+tJJ23uscEV4X2HJWMsPJu4g==}
|
||||
/@eslint/js@8.39.0:
|
||||
resolution: {integrity: sha512-kf9RB0Fg7NZfap83B3QOqOGg9QmD9yBudqQXzzOtn3i4y7ZUXe5ONeW34Gwi+TxhH4mvj72R1Zc300KUMa9Bng==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
|
||||
/@floating-ui/core@1.2.6:
|
||||
@@ -1547,7 +1550,7 @@ packages:
|
||||
peerDependencies:
|
||||
tailwindcss: ^3.2.7
|
||||
dependencies:
|
||||
tailwindcss: 3.3.1(postcss@8.4.22)
|
||||
tailwindcss: 3.3.1(postcss@8.4.23)
|
||||
dev: false
|
||||
|
||||
/@kobalte/utils@0.6.1(solid-js@1.7.3):
|
||||
@@ -1616,7 +1619,7 @@ packages:
|
||||
'@motionone/utils': 10.15.1
|
||||
'@solid-primitives/props': 3.1.4(solid-js@1.7.3)
|
||||
'@solid-primitives/refs': 1.0.2(solid-js@1.7.3)
|
||||
'@solid-primitives/transition-group': 1.0.1(solid-js@1.7.3)
|
||||
'@solid-primitives/transition-group': 1.0.2(solid-js@1.7.3)
|
||||
solid-js: 1.7.3
|
||||
dev: false
|
||||
|
||||
@@ -1636,14 +1639,16 @@ packages:
|
||||
resolution: {integrity: sha512-tszk0H77+nG+dPi2m0w0NXo4yXciTQVTGW3qvW+/JIrrcduWaAbiKqeTgGNDnXJNjen+t44nypj4iDlKzRV1fg==}
|
||||
dev: false
|
||||
|
||||
/@noble/curves@1.0.0:
|
||||
resolution: {integrity: sha512-2upgEu0iLiDVDZkNLeFV2+ht0BAVgQnEmCk6JsOch9Rp8xfkMCbvbAZlA2pBHQc73dbl+vFOXfqkf4uemdn0bw==}
|
||||
dependencies:
|
||||
'@noble/hashes': 1.3.0
|
||||
/@mutinywallet/waila-wasm@0.1.5:
|
||||
resolution: {integrity: sha512-kBy20W9D8urhx1GyZd8N4nq61p7PTQOQ0W+4zWCPbuLOBZ08AFQ6LBYmjHKFwOLZPIHgmsK3dcOXbhxZWS1lSw==}
|
||||
dev: false
|
||||
|
||||
/@noble/hashes@1.3.0:
|
||||
resolution: {integrity: sha512-ilHEACi9DwqJB0pw7kv+Apvh50jiiSyR/cQ3y4W7lOR5mhvn/50FLUfsnfJz0BDZtl/RR16kXvptiv6q1msYZg==}
|
||||
/@noble/hashes@1.2.0:
|
||||
resolution: {integrity: sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==}
|
||||
dev: false
|
||||
|
||||
/@noble/secp256k1@1.7.1:
|
||||
resolution: {integrity: sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==}
|
||||
dev: false
|
||||
|
||||
/@nodelib/fs.scandir@2.1.5:
|
||||
@@ -1668,16 +1673,16 @@ packages:
|
||||
resolution: {integrity: sha512-14oVsreLiafhHRBBMF7YcgBk8HBciPyFVSRkpAw9or9N9xRbWYmg4HVNrYWnFsD7b2tlOxwz3uIU4iH6T2Bjdw==}
|
||||
dependencies:
|
||||
'@scure/base': 1.1.1
|
||||
'@typescript-eslint/eslint-plugin': 5.59.0(@typescript-eslint/parser@5.59.0)(eslint@8.38.0)(typescript@4.9.5)
|
||||
'@typescript-eslint/parser': 5.59.0(eslint@8.38.0)(typescript@4.9.5)
|
||||
'@typescript-eslint/eslint-plugin': 5.59.0(@typescript-eslint/parser@5.59.0)(eslint@8.39.0)(typescript@4.9.5)
|
||||
'@typescript-eslint/parser': 5.59.0(eslint@8.39.0)(typescript@4.9.5)
|
||||
debug: 4.3.4
|
||||
eslint: 8.38.0
|
||||
eslint-config-prettier: 8.8.0(eslint@8.38.0)
|
||||
eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.38.0)
|
||||
eslint: 8.39.0
|
||||
eslint-config-prettier: 8.8.0(eslint@8.39.0)
|
||||
eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.39.0)
|
||||
eventemitter3: 5.0.0
|
||||
light-bolt11-decoder: 3.0.0
|
||||
node-fetch: 3.3.1
|
||||
nostr-tools: 1.9.0
|
||||
nostr-tools: 1.10.0
|
||||
utf8-buffer: 1.0.0
|
||||
websocket-polyfill: 0.0.3
|
||||
transitivePeerDependencies:
|
||||
@@ -1707,7 +1712,7 @@ packages:
|
||||
rollup: 2.79.1
|
||||
dev: true
|
||||
|
||||
/@rollup/plugin-commonjs@24.1.0(rollup@3.20.4):
|
||||
/@rollup/plugin-commonjs@24.1.0(rollup@3.20.7):
|
||||
resolution: {integrity: sha512-eSL45hjhCWI0jCCXcNtLVqM5N1JlBGvlFfY0m6oOYnLCJ6N0qEXoZql4sY2MOUArzhH4SA/qBpTxvvZp2Sc+DQ==}
|
||||
engines: {node: '>=14.0.0'}
|
||||
peerDependencies:
|
||||
@@ -1716,15 +1721,15 @@ packages:
|
||||
rollup:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@rollup/pluginutils': 5.0.2(rollup@3.20.4)
|
||||
'@rollup/pluginutils': 5.0.2(rollup@3.20.7)
|
||||
commondir: 1.0.1
|
||||
estree-walker: 2.0.2
|
||||
glob: 8.1.0
|
||||
is-reference: 1.2.1
|
||||
magic-string: 0.27.0
|
||||
rollup: 3.20.4
|
||||
rollup: 3.20.7
|
||||
|
||||
/@rollup/plugin-json@6.0.0(rollup@3.20.4):
|
||||
/@rollup/plugin-json@6.0.0(rollup@3.20.7):
|
||||
resolution: {integrity: sha512-i/4C5Jrdr1XUarRhVu27EEwjt4GObltD7c+MkCIpO2QIbojw8MUs+CCTqOphQi3Qtg1FLmYt+l+6YeoIf51J7w==}
|
||||
engines: {node: '>=14.0.0'}
|
||||
peerDependencies:
|
||||
@@ -1733,8 +1738,8 @@ packages:
|
||||
rollup:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@rollup/pluginutils': 5.0.2(rollup@3.20.4)
|
||||
rollup: 3.20.4
|
||||
'@rollup/pluginutils': 5.0.2(rollup@3.20.7)
|
||||
rollup: 3.20.7
|
||||
|
||||
/@rollup/plugin-node-resolve@11.2.1(rollup@2.79.1):
|
||||
resolution: {integrity: sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==}
|
||||
@@ -1751,7 +1756,7 @@ packages:
|
||||
rollup: 2.79.1
|
||||
dev: true
|
||||
|
||||
/@rollup/plugin-node-resolve@15.0.2(rollup@3.20.4):
|
||||
/@rollup/plugin-node-resolve@15.0.2(rollup@3.20.7):
|
||||
resolution: {integrity: sha512-Y35fRGUjC3FaurG722uhUuG8YHOJRJQbI6/CkbRkdPotSpDj9NtIN85z1zrcyDcCQIW4qp5mgG72U+gJ0TAFEg==}
|
||||
engines: {node: '>=14.0.0'}
|
||||
peerDependencies:
|
||||
@@ -1760,13 +1765,13 @@ packages:
|
||||
rollup:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@rollup/pluginutils': 5.0.2(rollup@3.20.4)
|
||||
'@rollup/pluginutils': 5.0.2(rollup@3.20.7)
|
||||
'@types/resolve': 1.20.2
|
||||
deepmerge: 4.3.1
|
||||
is-builtin-module: 3.2.1
|
||||
is-module: 1.0.0
|
||||
resolve: 1.22.2
|
||||
rollup: 3.20.4
|
||||
rollup: 3.20.7
|
||||
|
||||
/@rollup/plugin-replace@2.4.2(rollup@2.79.1):
|
||||
resolution: {integrity: sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==}
|
||||
@@ -1778,7 +1783,7 @@ packages:
|
||||
rollup: 2.79.1
|
||||
dev: true
|
||||
|
||||
/@rollup/plugin-replace@5.0.2(rollup@3.20.4):
|
||||
/@rollup/plugin-replace@5.0.2(rollup@3.20.7):
|
||||
resolution: {integrity: sha512-M9YXNekv/C/iHHK+cvORzfRYfPbq0RDD8r0G+bMiTXjNGKulPnCT9O3Ss46WfhI6ZOCgApOP7xAdmCQJ+U2LAA==}
|
||||
engines: {node: '>=14.0.0'}
|
||||
peerDependencies:
|
||||
@@ -1787,9 +1792,9 @@ packages:
|
||||
rollup:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@rollup/pluginutils': 5.0.2(rollup@3.20.4)
|
||||
'@rollup/pluginutils': 5.0.2(rollup@3.20.7)
|
||||
magic-string: 0.27.0
|
||||
rollup: 3.20.4
|
||||
rollup: 3.20.7
|
||||
dev: true
|
||||
|
||||
/@rollup/pluginutils@3.1.0(rollup@2.79.1):
|
||||
@@ -1804,7 +1809,7 @@ packages:
|
||||
rollup: 2.79.1
|
||||
dev: true
|
||||
|
||||
/@rollup/pluginutils@5.0.2(rollup@3.20.4):
|
||||
/@rollup/pluginutils@5.0.2(rollup@3.20.7):
|
||||
resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==}
|
||||
engines: {node: '>=14.0.0'}
|
||||
peerDependencies:
|
||||
@@ -1813,27 +1818,27 @@ packages:
|
||||
rollup:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@types/estree': 1.0.0
|
||||
'@types/estree': 1.0.1
|
||||
estree-walker: 2.0.2
|
||||
picomatch: 2.3.1
|
||||
rollup: 3.20.4
|
||||
rollup: 3.20.7
|
||||
|
||||
/@scure/base@1.1.1:
|
||||
resolution: {integrity: sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA==}
|
||||
dev: false
|
||||
|
||||
/@scure/bip32@1.3.0:
|
||||
resolution: {integrity: sha512-bcKpo1oj54hGholplGLpqPHRbIsnbixFtc06nwuNM5/dwSXOq/AAYoIBRsBmnZJSdfeNW5rnff7NTAz3ZCqR9Q==}
|
||||
/@scure/bip32@1.1.4:
|
||||
resolution: {integrity: sha512-m925ACYK0wPELsF7Z/VdLGmKj1StIeHraPMYB9xiAFiq/PnvqWd/99I0TQ2OZhjjlMDsDJeZlyXMWi0beaA7NA==}
|
||||
dependencies:
|
||||
'@noble/curves': 1.0.0
|
||||
'@noble/hashes': 1.3.0
|
||||
'@noble/hashes': 1.2.0
|
||||
'@noble/secp256k1': 1.7.1
|
||||
'@scure/base': 1.1.1
|
||||
dev: false
|
||||
|
||||
/@scure/bip39@1.2.0:
|
||||
resolution: {integrity: sha512-SX/uKq52cuxm4YFXWFaVByaSHJh2w3BnokVSeUJVCv6K7WulT9u2BuNRBhuFl8vAuYnzx9bEu9WgpcNYTrYieg==}
|
||||
/@scure/bip39@1.1.1:
|
||||
resolution: {integrity: sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg==}
|
||||
dependencies:
|
||||
'@noble/hashes': 1.3.0
|
||||
'@noble/hashes': 1.2.0
|
||||
'@scure/base': 1.1.1
|
||||
dev: false
|
||||
|
||||
@@ -1913,8 +1918,8 @@ packages:
|
||||
solid-js: 1.7.3
|
||||
dev: false
|
||||
|
||||
/@solid-primitives/transition-group@1.0.1(solid-js@1.7.3):
|
||||
resolution: {integrity: sha512-StVQs7BVGQa1uo6dD19wqOgfGMxu3gL/bvPHUV/NBJaiNX5R5e7dPb6lz6zR1RdTho3M+3Mv8jUHKd/aKuhL4w==}
|
||||
/@solid-primitives/transition-group@1.0.2(solid-js@1.7.3):
|
||||
resolution: {integrity: sha512-+o3J7TnU0/Sok+LKA0z0wvhim88dpd2eFBk8/05adE6wVypVlME8sKqTMO+xRv8HoT4Kq3sczmvwV07FKg2n+g==}
|
||||
peerDependencies:
|
||||
solid-js: ^1.6.12
|
||||
dependencies:
|
||||
@@ -1998,8 +2003,8 @@ packages:
|
||||
resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==}
|
||||
dev: true
|
||||
|
||||
/@types/estree@1.0.0:
|
||||
resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==}
|
||||
/@types/estree@1.0.1:
|
||||
resolution: {integrity: sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==}
|
||||
|
||||
/@types/json-schema@7.0.11:
|
||||
resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==}
|
||||
@@ -2007,8 +2012,8 @@ packages:
|
||||
/@types/json5@0.0.29:
|
||||
resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
|
||||
|
||||
/@types/node@18.15.11:
|
||||
resolution: {integrity: sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==}
|
||||
/@types/node@18.15.13:
|
||||
resolution: {integrity: sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==}
|
||||
|
||||
/@types/offscreencanvas@2019.7.0:
|
||||
resolution: {integrity: sha512-PGcyveRIpL1XIqK8eBsmRBt76eFgtzuPiSTyKHZxnGemp2yzGzWpjYKAfK3wIMiU7eH+851yEpiuP8JZerTmWg==}
|
||||
@@ -2017,7 +2022,7 @@ packages:
|
||||
/@types/resolve@1.17.1:
|
||||
resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==}
|
||||
dependencies:
|
||||
'@types/node': 18.15.11
|
||||
'@types/node': 18.15.13
|
||||
dev: true
|
||||
|
||||
/@types/resolve@1.20.2:
|
||||
@@ -2030,7 +2035,7 @@ packages:
|
||||
resolution: {integrity: sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g==}
|
||||
dev: true
|
||||
|
||||
/@typescript-eslint/eslint-plugin@5.59.0(@typescript-eslint/parser@5.59.0)(eslint@8.38.0)(typescript@4.9.5):
|
||||
/@typescript-eslint/eslint-plugin@5.59.0(@typescript-eslint/parser@5.59.0)(eslint@8.39.0)(typescript@4.9.5):
|
||||
resolution: {integrity: sha512-p0QgrEyrxAWBecR56gyn3wkG15TJdI//eetInP3zYRewDh0XS+DhB3VUAd3QqvziFsfaQIoIuZMxZRB7vXYaYw==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
peerDependencies:
|
||||
@@ -2042,12 +2047,12 @@ packages:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@eslint-community/regexpp': 4.5.0
|
||||
'@typescript-eslint/parser': 5.59.0(eslint@8.38.0)(typescript@4.9.5)
|
||||
'@typescript-eslint/parser': 5.59.0(eslint@8.39.0)(typescript@4.9.5)
|
||||
'@typescript-eslint/scope-manager': 5.59.0
|
||||
'@typescript-eslint/type-utils': 5.59.0(eslint@8.38.0)(typescript@4.9.5)
|
||||
'@typescript-eslint/utils': 5.59.0(eslint@8.38.0)(typescript@4.9.5)
|
||||
'@typescript-eslint/type-utils': 5.59.0(eslint@8.39.0)(typescript@4.9.5)
|
||||
'@typescript-eslint/utils': 5.59.0(eslint@8.39.0)(typescript@4.9.5)
|
||||
debug: 4.3.4
|
||||
eslint: 8.38.0
|
||||
eslint: 8.39.0
|
||||
grapheme-splitter: 1.0.4
|
||||
ignore: 5.2.4
|
||||
natural-compare-lite: 1.4.0
|
||||
@@ -2057,7 +2062,7 @@ packages:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
/@typescript-eslint/parser@5.59.0(eslint@8.38.0)(typescript@4.9.5):
|
||||
/@typescript-eslint/parser@5.59.0(eslint@8.39.0)(typescript@4.9.5):
|
||||
resolution: {integrity: sha512-qK9TZ70eJtjojSUMrrEwA9ZDQ4N0e/AuoOIgXuNBorXYcBDk397D2r5MIe1B3cok/oCtdNC5j+lUUpVB+Dpb+w==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
peerDependencies:
|
||||
@@ -2071,7 +2076,7 @@ packages:
|
||||
'@typescript-eslint/types': 5.59.0
|
||||
'@typescript-eslint/typescript-estree': 5.59.0(typescript@4.9.5)
|
||||
debug: 4.3.4
|
||||
eslint: 8.38.0
|
||||
eslint: 8.39.0
|
||||
typescript: 4.9.5
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
@@ -2083,7 +2088,7 @@ packages:
|
||||
'@typescript-eslint/types': 5.59.0
|
||||
'@typescript-eslint/visitor-keys': 5.59.0
|
||||
|
||||
/@typescript-eslint/type-utils@5.59.0(eslint@8.38.0)(typescript@4.9.5):
|
||||
/@typescript-eslint/type-utils@5.59.0(eslint@8.39.0)(typescript@4.9.5):
|
||||
resolution: {integrity: sha512-d/B6VSWnZwu70kcKQSCqjcXpVH+7ABKH8P1KNn4K7j5PXXuycZTPXF44Nui0TEm6rbWGi8kc78xRgOC4n7xFgA==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
peerDependencies:
|
||||
@@ -2094,9 +2099,9 @@ packages:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@typescript-eslint/typescript-estree': 5.59.0(typescript@4.9.5)
|
||||
'@typescript-eslint/utils': 5.59.0(eslint@8.38.0)(typescript@4.9.5)
|
||||
'@typescript-eslint/utils': 5.59.0(eslint@8.39.0)(typescript@4.9.5)
|
||||
debug: 4.3.4
|
||||
eslint: 8.38.0
|
||||
eslint: 8.39.0
|
||||
tsutils: 3.21.0(typescript@4.9.5)
|
||||
typescript: 4.9.5
|
||||
transitivePeerDependencies:
|
||||
@@ -2126,19 +2131,19 @@ packages:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
/@typescript-eslint/utils@5.59.0(eslint@8.38.0)(typescript@4.9.5):
|
||||
/@typescript-eslint/utils@5.59.0(eslint@8.39.0)(typescript@4.9.5):
|
||||
resolution: {integrity: sha512-GGLFd+86drlHSvPgN/el6dRQNYYGOvRSDVydsUaQluwIW3HvbXuxyuD5JETvBt/9qGYe+lOrDk6gRrWOHb/FvA==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
peerDependencies:
|
||||
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
|
||||
dependencies:
|
||||
'@eslint-community/eslint-utils': 4.4.0(eslint@8.38.0)
|
||||
'@eslint-community/eslint-utils': 4.4.0(eslint@8.39.0)
|
||||
'@types/json-schema': 7.0.11
|
||||
'@types/semver': 7.3.13
|
||||
'@typescript-eslint/scope-manager': 5.59.0
|
||||
'@typescript-eslint/types': 5.59.0
|
||||
'@typescript-eslint/typescript-estree': 5.59.0(typescript@4.9.5)
|
||||
eslint: 8.38.0
|
||||
eslint: 8.39.0
|
||||
eslint-scope: 5.1.1
|
||||
semver: 7.5.0
|
||||
transitivePeerDependencies:
|
||||
@@ -2267,7 +2272,7 @@ packages:
|
||||
engines: {node: '>= 4.0.0'}
|
||||
dev: true
|
||||
|
||||
/autoprefixer@10.4.14(postcss@8.4.22):
|
||||
/autoprefixer@10.4.14(postcss@8.4.23):
|
||||
resolution: {integrity: sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==}
|
||||
engines: {node: ^10 || ^12 || >=14}
|
||||
hasBin: true
|
||||
@@ -2275,11 +2280,11 @@ packages:
|
||||
postcss: ^8.1.0
|
||||
dependencies:
|
||||
browserslist: 4.21.5
|
||||
caniuse-lite: 1.0.30001480
|
||||
caniuse-lite: 1.0.30001481
|
||||
fraction.js: 4.2.0
|
||||
normalize-range: 0.1.2
|
||||
picocolors: 1.0.0
|
||||
postcss: 8.4.22
|
||||
postcss: 8.4.23
|
||||
postcss-value-parser: 4.2.0
|
||||
dev: true
|
||||
|
||||
@@ -2376,8 +2381,8 @@ packages:
|
||||
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
caniuse-lite: 1.0.30001480
|
||||
electron-to-chromium: 1.4.367
|
||||
caniuse-lite: 1.0.30001481
|
||||
electron-to-chromium: 1.4.369
|
||||
node-releases: 2.0.10
|
||||
update-browserslist-db: 1.0.11(browserslist@4.21.5)
|
||||
|
||||
@@ -2420,8 +2425,8 @@ packages:
|
||||
resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
|
||||
engines: {node: '>= 6'}
|
||||
|
||||
/caniuse-lite@1.0.30001480:
|
||||
resolution: {integrity: sha512-q7cpoPPvZYgtyC4VaBSN0Bt+PJ4c4EYRf0DrduInOz2SkFpHD5p3LnvEpqBp7UnJn+8x1Ogl1s38saUxe+ihQQ==}
|
||||
/caniuse-lite@1.0.30001481:
|
||||
resolution: {integrity: sha512-KCqHwRnaa1InZBtqXzP98LPg0ajCVujMKjqKDhZEthIpAsJl/YEIa3YvXjGXPVqzZVguccuu7ga9KOE1J9rKPQ==}
|
||||
|
||||
/chalk@2.4.2:
|
||||
resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
|
||||
@@ -2670,8 +2675,8 @@ packages:
|
||||
jake: 10.8.5
|
||||
dev: true
|
||||
|
||||
/electron-to-chromium@1.4.367:
|
||||
resolution: {integrity: sha512-mNuDxb+HpLhPGUKrg0hSxbTjHWw8EziwkwlJNkFUj3W60ypigLDRVz04vU+VRsJPi8Gub+FDhYUpuTm9xiEwRQ==}
|
||||
/electron-to-chromium@1.4.369:
|
||||
resolution: {integrity: sha512-LfxbHXdA/S+qyoTEA4EbhxGjrxx7WK2h6yb5K2v0UCOufUKX+VZaHbl3svlzZfv9sGseym/g3Ne4DpsgRULmqg==}
|
||||
|
||||
/emoji-regex@8.0.0:
|
||||
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
|
||||
@@ -2710,7 +2715,7 @@ packages:
|
||||
object-inspect: 1.12.3
|
||||
object-keys: 1.1.1
|
||||
object.assign: 4.1.4
|
||||
regexp.prototype.flags: 1.4.3
|
||||
regexp.prototype.flags: 1.5.0
|
||||
safe-regex-test: 1.0.0
|
||||
string.prototype.trim: 1.2.7
|
||||
string.prototype.trimend: 1.0.6
|
||||
@@ -3035,13 +3040,13 @@ packages:
|
||||
resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
|
||||
engines: {node: '>=10'}
|
||||
|
||||
/eslint-config-prettier@8.8.0(eslint@8.38.0):
|
||||
/eslint-config-prettier@8.8.0(eslint@8.39.0):
|
||||
resolution: {integrity: sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
eslint: '>=7.0.0'
|
||||
dependencies:
|
||||
eslint: 8.38.0
|
||||
eslint: 8.39.0
|
||||
dev: false
|
||||
|
||||
/eslint-import-resolver-node@0.3.7:
|
||||
@@ -3053,7 +3058,7 @@ packages:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
/eslint-import-resolver-typescript@2.7.1(eslint-plugin-import@2.27.5)(eslint@8.38.0):
|
||||
/eslint-import-resolver-typescript@2.7.1(eslint-plugin-import@2.27.5)(eslint@8.39.0):
|
||||
resolution: {integrity: sha512-00UbgGwV8bSgUv34igBDbTOtKhqoRMy9bFjNehT40bXg6585PNIct8HhXZ0SybqB9rWtXj9crcku8ndDn/gIqQ==}
|
||||
engines: {node: '>=4'}
|
||||
peerDependencies:
|
||||
@@ -3061,8 +3066,8 @@ packages:
|
||||
eslint-plugin-import: '*'
|
||||
dependencies:
|
||||
debug: 4.3.4
|
||||
eslint: 8.38.0
|
||||
eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.38.0)
|
||||
eslint: 8.39.0
|
||||
eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.39.0)
|
||||
glob: 7.2.3
|
||||
is-glob: 4.0.3
|
||||
resolve: 1.22.2
|
||||
@@ -3070,7 +3075,7 @@ packages:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
/eslint-module-utils@2.8.0(@typescript-eslint/parser@5.59.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@2.7.1)(eslint@8.38.0):
|
||||
/eslint-module-utils@2.8.0(@typescript-eslint/parser@5.59.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@2.7.1)(eslint@8.39.0):
|
||||
resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==}
|
||||
engines: {node: '>=4'}
|
||||
peerDependencies:
|
||||
@@ -3091,15 +3096,15 @@ packages:
|
||||
eslint-import-resolver-webpack:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@typescript-eslint/parser': 5.59.0(eslint@8.38.0)(typescript@4.9.5)
|
||||
'@typescript-eslint/parser': 5.59.0(eslint@8.39.0)(typescript@4.9.5)
|
||||
debug: 3.2.7
|
||||
eslint: 8.38.0
|
||||
eslint: 8.39.0
|
||||
eslint-import-resolver-node: 0.3.7
|
||||
eslint-import-resolver-typescript: 2.7.1(eslint-plugin-import@2.27.5)(eslint@8.38.0)
|
||||
eslint-import-resolver-typescript: 2.7.1(eslint-plugin-import@2.27.5)(eslint@8.39.0)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
/eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.59.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.38.0):
|
||||
/eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.59.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.39.0):
|
||||
resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==}
|
||||
engines: {node: '>=4'}
|
||||
peerDependencies:
|
||||
@@ -3109,15 +3114,15 @@ packages:
|
||||
'@typescript-eslint/parser':
|
||||
optional: true
|
||||
dependencies:
|
||||
'@typescript-eslint/parser': 5.59.0(eslint@8.38.0)(typescript@4.9.5)
|
||||
'@typescript-eslint/parser': 5.59.0(eslint@8.39.0)(typescript@4.9.5)
|
||||
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: 8.38.0
|
||||
eslint: 8.39.0
|
||||
eslint-import-resolver-node: 0.3.7
|
||||
eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.59.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@2.7.1)(eslint@8.38.0)
|
||||
eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.59.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@2.7.1)(eslint@8.39.0)
|
||||
has: 1.0.3
|
||||
is-core-module: 2.12.0
|
||||
is-glob: 4.0.3
|
||||
@@ -3131,7 +3136,7 @@ packages:
|
||||
- eslint-import-resolver-webpack
|
||||
- supports-color
|
||||
|
||||
/eslint-plugin-prettier@4.2.1(eslint@8.38.0)(prettier@2.8.7):
|
||||
/eslint-plugin-prettier@4.2.1(eslint@8.39.0)(prettier@2.8.7):
|
||||
resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==}
|
||||
engines: {node: '>=12.0.0'}
|
||||
peerDependencies:
|
||||
@@ -3142,19 +3147,19 @@ packages:
|
||||
eslint-config-prettier:
|
||||
optional: true
|
||||
dependencies:
|
||||
eslint: 8.38.0
|
||||
eslint: 8.39.0
|
||||
prettier: 2.8.7
|
||||
prettier-linter-helpers: 1.0.0
|
||||
dev: true
|
||||
|
||||
/eslint-plugin-solid@0.11.0(eslint@8.38.0)(typescript@4.9.5):
|
||||
/eslint-plugin-solid@0.11.0(eslint@8.39.0)(typescript@4.9.5):
|
||||
resolution: {integrity: sha512-3ve6IpEtl8nOvJnjaJACqlBmv449l6dMMhMczjQWvvLlRqkzLemgsJ9H+Isu8GLSBTNxDIm5oSKx/lO2j8vKbA==}
|
||||
engines: {node: '>=12.0.0'}
|
||||
peerDependencies:
|
||||
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
|
||||
dependencies:
|
||||
'@typescript-eslint/utils': 5.59.0(eslint@8.38.0)(typescript@4.9.5)
|
||||
eslint: 8.38.0
|
||||
'@typescript-eslint/utils': 5.59.0(eslint@8.39.0)(typescript@4.9.5)
|
||||
eslint: 8.39.0
|
||||
is-html: 2.0.0
|
||||
jsx-ast-utils: 3.3.3
|
||||
kebab-case: 1.0.2
|
||||
@@ -3183,15 +3188,15 @@ packages:
|
||||
resolution: {integrity: sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
|
||||
/eslint@8.38.0:
|
||||
resolution: {integrity: sha512-pIdsD2jwlUGf/U38Jv97t8lq6HpaU/G9NKbYmpWpZGw3LdTNhZLbJePqxOXGB5+JEKfOPU/XLxYxFh03nr1KTg==}
|
||||
/eslint@8.39.0:
|
||||
resolution: {integrity: sha512-mwiok6cy7KTW7rBpo05k6+p4YVZByLNjAZ/ACB9DRCu4YDRwjXI01tWHp6KAUWelsBetTxKK/2sHB0vdS8Z2Og==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
'@eslint-community/eslint-utils': 4.4.0(eslint@8.38.0)
|
||||
'@eslint-community/eslint-utils': 4.4.0(eslint@8.39.0)
|
||||
'@eslint-community/regexpp': 4.5.0
|
||||
'@eslint/eslintrc': 2.0.2
|
||||
'@eslint/js': 8.38.0
|
||||
'@eslint/js': 8.39.0
|
||||
'@humanwhocodes/config-array': 0.11.8
|
||||
'@humanwhocodes/module-importer': 1.0.1
|
||||
'@nodelib/fs.walk': 1.2.8
|
||||
@@ -3734,7 +3739,7 @@ packages:
|
||||
/is-reference@1.2.1:
|
||||
resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==}
|
||||
dependencies:
|
||||
'@types/estree': 1.0.0
|
||||
'@types/estree': 1.0.1
|
||||
|
||||
/is-regex@1.1.4:
|
||||
resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==}
|
||||
@@ -3817,7 +3822,7 @@ packages:
|
||||
resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==}
|
||||
engines: {node: '>= 10.13.0'}
|
||||
dependencies:
|
||||
'@types/node': 18.15.11
|
||||
'@types/node': 18.15.13
|
||||
merge-stream: 2.0.0
|
||||
supports-color: 7.2.0
|
||||
dev: true
|
||||
@@ -4095,14 +4100,14 @@ packages:
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: true
|
||||
|
||||
/nostr-tools@1.9.0:
|
||||
resolution: {integrity: sha512-ZvFf1uiBqWLWhLBHD2nY0KsdSdNWKb3PrQUmYMWxSzfT4k48cDrDJu2qgULkOhQbFX7oty8IpaKnLvixhqefqA==}
|
||||
/nostr-tools@1.10.0:
|
||||
resolution: {integrity: sha512-Bbkucv25M69TaV+slqz1Vfce8G5O3dqSQOqqOZd/LwhooBJp62qt5V3JvlCV55OUqxaucC2brggeIER5Wliy1w==}
|
||||
dependencies:
|
||||
'@noble/curves': 1.0.0
|
||||
'@noble/hashes': 1.3.0
|
||||
'@noble/hashes': 1.2.0
|
||||
'@noble/secp256k1': 1.7.1
|
||||
'@scure/base': 1.1.1
|
||||
'@scure/bip32': 1.3.0
|
||||
'@scure/bip39': 1.2.0
|
||||
'@scure/bip32': 1.1.4
|
||||
'@scure/bip39': 1.1.1
|
||||
dev: false
|
||||
|
||||
/object-assign@4.1.1:
|
||||
@@ -4237,27 +4242,27 @@ packages:
|
||||
'@polka/url': 1.0.0-next.21
|
||||
trouter: 3.2.1
|
||||
|
||||
/postcss-import@14.1.0(postcss@8.4.22):
|
||||
/postcss-import@14.1.0(postcss@8.4.23):
|
||||
resolution: {integrity: sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==}
|
||||
engines: {node: '>=10.0.0'}
|
||||
peerDependencies:
|
||||
postcss: ^8.0.0
|
||||
dependencies:
|
||||
postcss: 8.4.22
|
||||
postcss: 8.4.23
|
||||
postcss-value-parser: 4.2.0
|
||||
read-cache: 1.0.0
|
||||
resolve: 1.22.2
|
||||
|
||||
/postcss-js@4.0.1(postcss@8.4.22):
|
||||
/postcss-js@4.0.1(postcss@8.4.23):
|
||||
resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==}
|
||||
engines: {node: ^12 || ^14 || >= 16}
|
||||
peerDependencies:
|
||||
postcss: ^8.4.21
|
||||
dependencies:
|
||||
camelcase-css: 2.0.1
|
||||
postcss: 8.4.22
|
||||
postcss: 8.4.23
|
||||
|
||||
/postcss-load-config@3.1.4(postcss@8.4.22):
|
||||
/postcss-load-config@3.1.4(postcss@8.4.23):
|
||||
resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==}
|
||||
engines: {node: '>= 10'}
|
||||
peerDependencies:
|
||||
@@ -4270,16 +4275,16 @@ packages:
|
||||
optional: true
|
||||
dependencies:
|
||||
lilconfig: 2.1.0
|
||||
postcss: 8.4.22
|
||||
postcss: 8.4.23
|
||||
yaml: 1.10.2
|
||||
|
||||
/postcss-nested@6.0.0(postcss@8.4.22):
|
||||
/postcss-nested@6.0.0(postcss@8.4.23):
|
||||
resolution: {integrity: sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==}
|
||||
engines: {node: '>=12.0'}
|
||||
peerDependencies:
|
||||
postcss: ^8.2.14
|
||||
dependencies:
|
||||
postcss: 8.4.22
|
||||
postcss: 8.4.23
|
||||
postcss-selector-parser: 6.0.11
|
||||
|
||||
/postcss-selector-parser@6.0.11:
|
||||
@@ -4292,8 +4297,8 @@ packages:
|
||||
/postcss-value-parser@4.2.0:
|
||||
resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
|
||||
|
||||
/postcss@8.4.22:
|
||||
resolution: {integrity: sha512-XseknLAfRHzVWjCEtdviapiBtfLdgyzExD50Rg2ePaucEesyh8Wv4VPdW0nbyDa1ydbrAxV19jvMT4+LFmcNUA==}
|
||||
/postcss@8.4.23:
|
||||
resolution: {integrity: sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==}
|
||||
engines: {node: ^10 || ^12 || >=14}
|
||||
dependencies:
|
||||
nanoid: 3.3.6
|
||||
@@ -4382,8 +4387,8 @@ packages:
|
||||
dependencies:
|
||||
'@babel/runtime': 7.21.0
|
||||
|
||||
/regexp.prototype.flags@1.4.3:
|
||||
resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==}
|
||||
/regexp.prototype.flags@1.5.0:
|
||||
resolution: {integrity: sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==}
|
||||
engines: {node: '>= 0.4'}
|
||||
dependencies:
|
||||
call-bind: 1.0.2
|
||||
@@ -4452,10 +4457,10 @@ packages:
|
||||
jest-worker: 26.6.2
|
||||
rollup: 2.79.1
|
||||
serialize-javascript: 4.0.0
|
||||
terser: 5.16.9
|
||||
terser: 5.17.1
|
||||
dev: true
|
||||
|
||||
/rollup-plugin-visualizer@5.9.0(rollup@3.20.4):
|
||||
/rollup-plugin-visualizer@5.9.0(rollup@3.20.7):
|
||||
resolution: {integrity: sha512-bbDOv47+Bw4C/cgs0czZqfm8L82xOZssk4ayZjG40y9zbXclNk7YikrZTDao6p7+HDiGxrN0b65SgZiVm9k1Cg==}
|
||||
engines: {node: '>=14'}
|
||||
hasBin: true
|
||||
@@ -4467,17 +4472,17 @@ packages:
|
||||
dependencies:
|
||||
open: 8.4.2
|
||||
picomatch: 2.3.1
|
||||
rollup: 3.20.4
|
||||
rollup: 3.20.7
|
||||
source-map: 0.7.4
|
||||
yargs: 17.7.1
|
||||
|
||||
/rollup-route-manifest@1.0.0(rollup@3.20.4):
|
||||
/rollup-route-manifest@1.0.0(rollup@3.20.7):
|
||||
resolution: {integrity: sha512-3CmcMmCLAzJDUXiO3z6386/Pt8/k9xTZv8gIHyXI8hYGoAInnYdOsFXiGGzQRMy6TXR1jUZme2qbdwjH2nFMjg==}
|
||||
engines: {node: '>=8'}
|
||||
peerDependencies:
|
||||
rollup: '>=2.0.0'
|
||||
dependencies:
|
||||
rollup: 3.20.4
|
||||
rollup: 3.20.7
|
||||
route-sort: 1.0.0
|
||||
|
||||
/rollup@2.79.1:
|
||||
@@ -4488,8 +4493,8 @@ packages:
|
||||
fsevents: 2.3.2
|
||||
dev: true
|
||||
|
||||
/rollup@3.20.4:
|
||||
resolution: {integrity: sha512-n7J4tuctZXUErM9Uc916httwqmTc63zzCr2+TLCiSCpfO/Xuk3g/marGN1IlRJZi+QF3XMYx75PxXRfZDVgaRw==}
|
||||
/rollup@3.20.7:
|
||||
resolution: {integrity: sha512-P7E2zezKSLhWnTz46XxjSmInrbOCiul1yf+kJccMxT56vxjHwCbDfoLbiqFgu+WQoo9ij2PkraYaBstgB2prBA==}
|
||||
engines: {node: '>=14.18.0', npm: '>=8.0.0'}
|
||||
hasBin: true
|
||||
optionalDependencies:
|
||||
@@ -4609,28 +4614,28 @@ packages:
|
||||
'@babel/types': 7.21.4
|
||||
solid-js: 1.7.3
|
||||
|
||||
/solid-start-node@0.2.26(solid-start@0.2.26)(undici@5.21.2)(vite@4.2.1):
|
||||
/solid-start-node@0.2.26(solid-start@0.2.26)(undici@5.22.0)(vite@4.3.1):
|
||||
resolution: {integrity: sha512-8vciTGoQV+lIlCUSVHJPazlaoKDRfBowDkPeBr/EZdmtbcMOKoJYf/APPQWFspylF+nhzunMf0+zJP90VtMEYg==}
|
||||
peerDependencies:
|
||||
solid-start: '*'
|
||||
undici: ^5.8.0
|
||||
vite: '*'
|
||||
dependencies:
|
||||
'@rollup/plugin-commonjs': 24.1.0(rollup@3.20.4)
|
||||
'@rollup/plugin-json': 6.0.0(rollup@3.20.4)
|
||||
'@rollup/plugin-node-resolve': 15.0.2(rollup@3.20.4)
|
||||
'@rollup/plugin-commonjs': 24.1.0(rollup@3.20.7)
|
||||
'@rollup/plugin-json': 6.0.0(rollup@3.20.7)
|
||||
'@rollup/plugin-node-resolve': 15.0.2(rollup@3.20.7)
|
||||
compression: 1.7.4
|
||||
polka: 1.0.0-next.22
|
||||
rollup: 3.20.4
|
||||
rollup: 3.20.7
|
||||
sirv: 2.0.2
|
||||
solid-start: 0.2.26(@solidjs/meta@0.28.4)(@solidjs/router@0.8.2)(solid-js@1.7.3)(solid-start-node@0.2.26)(vite@4.2.1)
|
||||
terser: 5.16.9
|
||||
undici: 5.21.2
|
||||
vite: 4.2.1(@types/node@18.15.11)
|
||||
solid-start: 0.2.26(@solidjs/meta@0.28.4)(@solidjs/router@0.8.2)(solid-js@1.7.3)(solid-start-node@0.2.26)(vite@4.3.1)
|
||||
terser: 5.17.1
|
||||
undici: 5.22.0
|
||||
vite: 4.3.1(@types/node@18.15.13)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
/solid-start@0.2.26(@solidjs/meta@0.28.4)(@solidjs/router@0.8.2)(solid-js@1.7.3)(solid-start-node@0.2.26)(vite@4.2.1):
|
||||
/solid-start@0.2.26(@solidjs/meta@0.28.4)(@solidjs/router@0.8.2)(solid-js@1.7.3)(solid-start-node@0.2.26)(vite@4.3.1):
|
||||
resolution: {integrity: sha512-kne2HZlnSMzsirdnvNs1CsDqBl0L0uvKKt1t4de1CH7JIngyqoMcER97jTE0Ejr84KknANaKAdvJAzZcL7Ueng==}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
@@ -4686,19 +4691,19 @@ packages:
|
||||
get-port: 6.1.2
|
||||
parse-multipart-data: 1.5.0
|
||||
picocolors: 1.0.0
|
||||
rollup: 3.20.4
|
||||
rollup-plugin-visualizer: 5.9.0(rollup@3.20.4)
|
||||
rollup-route-manifest: 1.0.0(rollup@3.20.4)
|
||||
rollup: 3.20.7
|
||||
rollup-plugin-visualizer: 5.9.0(rollup@3.20.7)
|
||||
rollup-route-manifest: 1.0.0(rollup@3.20.7)
|
||||
sade: 1.8.1
|
||||
set-cookie-parser: 2.6.0
|
||||
sirv: 2.0.2
|
||||
solid-js: 1.7.3
|
||||
solid-start-node: 0.2.26(solid-start@0.2.26)(undici@5.21.2)(vite@4.2.1)
|
||||
terser: 5.16.9
|
||||
undici: 5.21.2
|
||||
vite: 4.2.1(@types/node@18.15.11)
|
||||
vite-plugin-inspect: 0.7.22(rollup@3.20.4)(vite@4.2.1)
|
||||
vite-plugin-solid: 2.7.0(solid-js@1.7.3)(vite@4.2.1)
|
||||
solid-start-node: 0.2.26(solid-start@0.2.26)(undici@5.22.0)(vite@4.3.1)
|
||||
terser: 5.17.1
|
||||
undici: 5.22.0
|
||||
vite: 4.3.1(@types/node@18.15.13)
|
||||
vite-plugin-inspect: 0.7.24(rollup@3.20.7)(vite@4.3.1)
|
||||
vite-plugin-solid: 2.7.0(solid-js@1.7.3)(vite@4.3.1)
|
||||
wait-on: 6.0.1(debug@4.3.4)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
@@ -4758,7 +4763,7 @@ packages:
|
||||
get-intrinsic: 1.2.0
|
||||
has-symbols: 1.0.3
|
||||
internal-slot: 1.0.5
|
||||
regexp.prototype.flags: 1.4.3
|
||||
regexp.prototype.flags: 1.5.0
|
||||
side-channel: 1.0.4
|
||||
dev: true
|
||||
|
||||
@@ -4847,7 +4852,7 @@ packages:
|
||||
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
|
||||
engines: {node: '>= 0.4'}
|
||||
|
||||
/tailwindcss@3.3.1(postcss@8.4.22):
|
||||
/tailwindcss@3.3.1(postcss@8.4.23):
|
||||
resolution: {integrity: sha512-Vkiouc41d4CEq0ujXl6oiGFQ7bA3WEhUZdTgXAhtKxSy49OmKs8rEfQmupsfF0IGW8fv2iQkp1EVUuapCFrZ9g==}
|
||||
engines: {node: '>=12.13.0'}
|
||||
hasBin: true
|
||||
@@ -4868,11 +4873,11 @@ packages:
|
||||
normalize-path: 3.0.0
|
||||
object-hash: 3.0.0
|
||||
picocolors: 1.0.0
|
||||
postcss: 8.4.22
|
||||
postcss-import: 14.1.0(postcss@8.4.22)
|
||||
postcss-js: 4.0.1(postcss@8.4.22)
|
||||
postcss-load-config: 3.1.4(postcss@8.4.22)
|
||||
postcss-nested: 6.0.0(postcss@8.4.22)
|
||||
postcss: 8.4.23
|
||||
postcss-import: 14.1.0(postcss@8.4.23)
|
||||
postcss-js: 4.0.1(postcss@8.4.23)
|
||||
postcss-load-config: 3.1.4(postcss@8.4.23)
|
||||
postcss-nested: 6.0.0(postcss@8.4.23)
|
||||
postcss-selector-parser: 6.0.11
|
||||
postcss-value-parser: 4.2.0
|
||||
quick-lru: 5.1.1
|
||||
@@ -4896,8 +4901,8 @@ packages:
|
||||
unique-string: 2.0.0
|
||||
dev: true
|
||||
|
||||
/terser@5.16.9:
|
||||
resolution: {integrity: sha512-HPa/FdTB9XGI2H1/keLFZHxl6WNvAI4YalHGtDQTlMnJcoqSab1UwL4l1hGEhs6/GmLHBZIg/YgB++jcbzoOEg==}
|
||||
/terser@5.17.1:
|
||||
resolution: {integrity: sha512-hVl35zClmpisy6oaoKALOpS0rDYLxRFLHhRuDlEGTKey9qHjS1w9GMORjuwIMt70Wan4lwsLYyWDVnWgF+KUEw==}
|
||||
engines: {node: '>=10'}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
@@ -5025,9 +5030,9 @@ packages:
|
||||
has-symbols: 1.0.3
|
||||
which-boxed-primitive: 1.0.2
|
||||
|
||||
/undici@5.21.2:
|
||||
resolution: {integrity: sha512-f6pTQ9RF4DQtwoWSaC42P/NKlUjvezVvd9r155ohqkwFNRyBKM3f3pcty3ouusefNRyM25XhIQEbeQ46sZDJfQ==}
|
||||
engines: {node: '>=12.18'}
|
||||
/undici@5.22.0:
|
||||
resolution: {integrity: sha512-fR9RXCc+6Dxav4P9VV/sp5w3eFiSdOjJYsbtWfd4s5L5C4ogyuVpdKIVHeW0vV1MloM65/f7W45nR9ZxwVdyiA==}
|
||||
engines: {node: '>=14.0'}
|
||||
dependencies:
|
||||
busboy: 1.6.0
|
||||
|
||||
@@ -5112,43 +5117,43 @@ packages:
|
||||
resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
|
||||
engines: {node: '>= 0.8'}
|
||||
|
||||
/vite-plugin-inspect@0.7.22(rollup@3.20.4)(vite@4.2.1):
|
||||
resolution: {integrity: sha512-Z4y3MPuvn//0/XcpNLwTBqjfSt+c2utIFZu8Dw+nbR2HrPoIrKHedvSuqC8mLzxOpRKRoW60HWvZUDz8J2zRIA==}
|
||||
/vite-plugin-inspect@0.7.24(rollup@3.20.7)(vite@4.3.1):
|
||||
resolution: {integrity: sha512-XyrhTxYF+5X8CH0PFmYJhs8WGJMOa2UxwUftTaT0FiMm24VfUp+UsAh7xDZI3doPOiB5GxKEizDGxdU98Ay+Vg==}
|
||||
engines: {node: '>=14'}
|
||||
peerDependencies:
|
||||
vite: ^3.1.0 || ^4.0.0
|
||||
dependencies:
|
||||
'@antfu/utils': 0.7.2
|
||||
'@rollup/pluginutils': 5.0.2(rollup@3.20.4)
|
||||
'@rollup/pluginutils': 5.0.2(rollup@3.20.7)
|
||||
debug: 4.3.4
|
||||
fs-extra: 11.1.1
|
||||
picocolors: 1.0.0
|
||||
sirv: 2.0.2
|
||||
vite: 4.2.1(@types/node@18.15.11)
|
||||
vite: 4.3.1(@types/node@18.15.13)
|
||||
transitivePeerDependencies:
|
||||
- rollup
|
||||
- supports-color
|
||||
|
||||
/vite-plugin-pwa@0.14.7(vite@4.2.1)(workbox-build@6.5.4)(workbox-window@6.5.4):
|
||||
/vite-plugin-pwa@0.14.7(vite@4.3.1)(workbox-build@6.5.4)(workbox-window@6.5.4):
|
||||
resolution: {integrity: sha512-dNJaf0fYOWncmjxv9HiSa2xrSjipjff7IkYE5oIUJ2x5HKu3cXgA8LRgzOwTc5MhwyFYRSU0xyN0Phbx3NsQYw==}
|
||||
peerDependencies:
|
||||
vite: ^3.1.0 || ^4.0.0
|
||||
workbox-build: ^6.5.4
|
||||
workbox-window: ^6.5.4
|
||||
dependencies:
|
||||
'@rollup/plugin-replace': 5.0.2(rollup@3.20.4)
|
||||
'@rollup/plugin-replace': 5.0.2(rollup@3.20.7)
|
||||
debug: 4.3.4
|
||||
fast-glob: 3.2.12
|
||||
pretty-bytes: 6.1.0
|
||||
rollup: 3.20.4
|
||||
vite: 4.2.1(@types/node@18.15.11)
|
||||
rollup: 3.20.7
|
||||
vite: 4.3.1(@types/node@18.15.13)
|
||||
workbox-build: 6.5.4
|
||||
workbox-window: 6.5.4
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/vite-plugin-solid@2.7.0(solid-js@1.7.3)(vite@4.2.1):
|
||||
/vite-plugin-solid@2.7.0(solid-js@1.7.3)(vite@4.3.1):
|
||||
resolution: {integrity: sha512-avp/Jl5zOp/Itfo67xtDB2O61U7idviaIp4mLsjhCa13PjKNasz+IID0jYTyqUp9SFx6/PmBr6v4KgDppqompg==}
|
||||
peerDependencies:
|
||||
solid-js: ^1.7.2
|
||||
@@ -5161,21 +5166,21 @@ packages:
|
||||
merge-anything: 5.1.4
|
||||
solid-js: 1.7.3
|
||||
solid-refresh: 0.5.2(solid-js@1.7.3)
|
||||
vite: 4.2.1(@types/node@18.15.11)
|
||||
vitefu: 0.2.4(vite@4.2.1)
|
||||
vite: 4.3.1(@types/node@18.15.13)
|
||||
vitefu: 0.2.4(vite@4.3.1)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
/vite-plugin-wasm@3.2.2(vite@4.2.1):
|
||||
/vite-plugin-wasm@3.2.2(vite@4.3.1):
|
||||
resolution: {integrity: sha512-cdbBUNR850AEoMd5nvLmnyeq63CSfoP1ctD/L2vLk/5+wsgAPlAVAzUK5nGKWO/jtehNlrSSHLteN+gFQw7VOA==}
|
||||
peerDependencies:
|
||||
vite: ^2 || ^3 || ^4
|
||||
dependencies:
|
||||
vite: 4.2.1(@types/node@18.15.11)
|
||||
vite: 4.3.1(@types/node@18.15.13)
|
||||
dev: true
|
||||
|
||||
/vite@4.2.1(@types/node@18.15.11):
|
||||
resolution: {integrity: sha512-7MKhqdy0ISo4wnvwtqZkjke6XN4taqQ2TBaTccLIpOKv7Vp2h4Y+NpmWCnGDeSvvn45KxvWgGyb0MkHvY1vgbg==}
|
||||
/vite@4.3.1(@types/node@18.15.13):
|
||||
resolution: {integrity: sha512-EPmfPLAI79Z/RofuMvkIS0Yr091T2ReUoXQqc5ppBX/sjFRhHKiPPF/R46cTdoci/XgeQpB23diiJxq5w30vdg==}
|
||||
engines: {node: ^14.18.0 || >=16.0.0}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
@@ -5199,15 +5204,14 @@ packages:
|
||||
terser:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@types/node': 18.15.11
|
||||
'@types/node': 18.15.13
|
||||
esbuild: 0.17.17
|
||||
postcss: 8.4.22
|
||||
resolve: 1.22.2
|
||||
rollup: 3.20.4
|
||||
postcss: 8.4.23
|
||||
rollup: 3.20.7
|
||||
optionalDependencies:
|
||||
fsevents: 2.3.2
|
||||
|
||||
/vitefu@0.2.4(vite@4.2.1):
|
||||
/vitefu@0.2.4(vite@4.3.1):
|
||||
resolution: {integrity: sha512-fanAXjSaf9xXtOOeno8wZXIhgia+CZury481LsDaV++lSvcU2R9Ch2bPh3PYFyoHW+w9LqAeYRISVQjUIew14g==}
|
||||
peerDependencies:
|
||||
vite: ^3.0.0 || ^4.0.0
|
||||
@@ -5215,7 +5219,7 @@ packages:
|
||||
vite:
|
||||
optional: true
|
||||
dependencies:
|
||||
vite: 4.2.1(@types/node@18.15.11)
|
||||
vite: 4.3.1(@types/node@18.15.13)
|
||||
|
||||
/wait-on@6.0.1(debug@4.3.4):
|
||||
resolution: {integrity: sha512-zht+KASY3usTY5u2LgaNqn/Cd8MukxLGjdcZxT2ns5QzDmTFc4XoWBgC+C/na+sMRZTuVygQoMYwdcVjHnYIVw==}
|
||||
|
||||
BIN
src/assets/handshake.png
Normal file
BIN
src/assets/handshake.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 130 KiB |
@@ -1,37 +0,0 @@
|
||||
import { Dialog } from "@kobalte/core";
|
||||
import { ButtonLink, SmallHeader } from "~/components/layout";
|
||||
import close from "~/assets/icons/close.svg";
|
||||
|
||||
const OVERLAY = "fixed inset-0 z-50 bg-black/50 backdrop-blur-sm"
|
||||
const DIALOG_POSITIONER = "fixed inset-0 z-50 flex items-center justify-center"
|
||||
const DIALOG_CONTENT = "w-[80vw] max-w-[400px] p-4 bg-gray/50 backdrop-blur-md shadow-xl rounded-xl border border-white/10"
|
||||
|
||||
export function SentModal(props: { details?: { nice: string } }) {
|
||||
return (
|
||||
<Dialog.Root isOpen={!!props.details}>
|
||||
<Dialog.Portal>
|
||||
<Dialog.Overlay class={OVERLAY} />
|
||||
<div class={DIALOG_POSITIONER}>
|
||||
<Dialog.Content class={DIALOG_CONTENT}>
|
||||
<div class="flex justify-between mb-2 items-center">
|
||||
<Dialog.Title>
|
||||
<SmallHeader>
|
||||
Sent!
|
||||
</SmallHeader>
|
||||
</Dialog.Title>
|
||||
<Dialog.CloseButton class="p-2 hover:bg-white/10 rounded-lg active:bg-m-blue">
|
||||
<img src={close} alt="Close" />
|
||||
</Dialog.CloseButton>
|
||||
</div>
|
||||
<Dialog.Description class="flex flex-col gap-4">
|
||||
<pre>
|
||||
{JSON.stringify(props.details)}
|
||||
</pre>
|
||||
<ButtonLink href="/">Nice</ButtonLink>
|
||||
</Dialog.Description>
|
||||
</Dialog.Content>
|
||||
</div>
|
||||
</Dialog.Portal>
|
||||
</Dialog.Root >
|
||||
)
|
||||
}
|
||||
@@ -66,7 +66,7 @@ export function SettingsStringsEditor() {
|
||||
<div class="flex flex-col gap-2">
|
||||
<label class="text-sm font-semibold uppercase">Network</label>
|
||||
<select {...field} {...props} class="bg-black rounded-xl border border-white px-4 py-2">
|
||||
<option value="mainnet">Mainnet</option>
|
||||
<option value="bitcoin">Mainnet</option>
|
||||
<option value="testnet">Testnet</option>
|
||||
<option value="regtest">Regtest</option>
|
||||
<option value="signet">Signet</option>
|
||||
|
||||
@@ -7,8 +7,16 @@ import close from "~/assets/icons/close.svg";
|
||||
const DIALOG_POSITIONER = "fixed inset-0 safe-top safe-bottom z-50"
|
||||
const DIALOG_CONTENT = "h-screen-safe p-4 bg-gray/50 backdrop-blur-md bg-black/80"
|
||||
|
||||
type FullscreenModalProps = {
|
||||
title: string,
|
||||
open: boolean,
|
||||
setOpen: (open: boolean) => void,
|
||||
children?: JSX.Element,
|
||||
onConfirm?: () => void
|
||||
confirmText?: string
|
||||
}
|
||||
|
||||
export function ReceiveSuccessModal(props: { title: string, open: boolean, setOpen: (open: boolean) => void, children?: JSX.Element }) {
|
||||
export function FullscreenModal(props: FullscreenModalProps) {
|
||||
return (
|
||||
<Dialog.Root isOpen={props.open} onOpenChange={(isOpen) => props.setOpen(isOpen)}>
|
||||
<Dialog.Portal>
|
||||
@@ -26,7 +34,7 @@ export function ReceiveSuccessModal(props: { title: string, open: boolean, setOp
|
||||
</div>
|
||||
<Dialog.Description class="flex flex-col gap-4">
|
||||
{props.children}
|
||||
<Button onClick={(_) => props.setOpen(false)}>Nice</Button>
|
||||
<Button onClick={(_) => props.onConfirm ? props.onConfirm() : props.setOpen(false)}>{props.confirmText ?? "Nice"}</Button>
|
||||
</Dialog.Description>
|
||||
</Dialog.Content>
|
||||
</div>
|
||||
@@ -5,7 +5,7 @@ import init, { NodeManager } from '@mutinywallet/mutiny-wasm';
|
||||
// network?: string, proxy?: string, esplora?: string, rgs?: string, lsp?: string,
|
||||
// }
|
||||
|
||||
type Network = "mainnet" | "testnet" | "regtest" | "signet";
|
||||
type Network = "bitcoin" | "testnet" | "regtest" | "signet";
|
||||
export type NodeManagerSettingStrings = {
|
||||
network?: Network, proxy?: string, esplora?: string, rgs?: string, lsp?: string,
|
||||
}
|
||||
|
||||
@@ -10,10 +10,10 @@ import { satsToUsd } from "~/utils/conversions";
|
||||
import { objectToSearchParams } from "~/utils/objectToSearchParams";
|
||||
import { useCopy } from "~/utils/useCopy";
|
||||
import mempoolTxUrl from "~/utils/mempoolTxUrl";
|
||||
import { ReceiveSuccessModal } from "~/components/ReceiveSuccessModal";
|
||||
|
||||
import party from '~/assets/party.gif';
|
||||
import { Amount } from "~/components/Amount";
|
||||
import { FullscreenModal } from "~/components/layout/FullscreenModal";
|
||||
|
||||
type OnChainTx = {
|
||||
transaction: {
|
||||
@@ -226,15 +226,15 @@ export default function Receive() {
|
||||
</Card>
|
||||
</Match>
|
||||
<Match when={receiveState() === "paid" && paidState() === "lightning_paid"}>
|
||||
<ReceiveSuccessModal title="Payment Received!" open={!!paidState()} setOpen={(open: boolean) => { if (!open) clearAll() }}>
|
||||
<FullscreenModal title="Payment Received!" open={!!paidState()} setOpen={(open: boolean) => { if (!open) clearAll() }}>
|
||||
<div class="flex flex-col items-center gap-8">
|
||||
<img src={party} alt="party" class="w-1/2 mx-auto max-w-[50vh] aspect-square" />
|
||||
<Amount amountSats={paymentInvoice()?.amount_sats} showFiat />
|
||||
</div>
|
||||
</ReceiveSuccessModal>
|
||||
</FullscreenModal>
|
||||
</Match>
|
||||
<Match when={receiveState() === "paid" && paidState() === "onchain_paid"}>
|
||||
<ReceiveSuccessModal title="Payment Received!" open={!!paidState()} setOpen={(open: boolean) => { if (!open) clearAll() }}>
|
||||
<FullscreenModal title="Payment Received!" open={!!paidState()} setOpen={(open: boolean) => { if (!open) clearAll() }}>
|
||||
<div class="flex flex-col items-center gap-8">
|
||||
<img src={party} alt="party" class="w-1/2 mx-auto max-w-[50vh] aspect-square" />
|
||||
<Amount amountSats={paymentTx()?.received} showFiat />
|
||||
@@ -242,7 +242,7 @@ export default function Receive() {
|
||||
Mempool Link
|
||||
</a>
|
||||
</div>
|
||||
</ReceiveSuccessModal>
|
||||
</FullscreenModal>
|
||||
</Match>
|
||||
</Switch>
|
||||
</DefaultMain>
|
||||
|
||||
@@ -1,9 +1,48 @@
|
||||
import Reader from "~/components/Reader";
|
||||
import { createEffect, createSignal, Show } from "solid-js";
|
||||
import { createEffect, createSignal, onMount, Show } from "solid-js";
|
||||
import { useNavigate } from "solid-start";
|
||||
import { Button } from "~/components/layout";
|
||||
import init, { PaymentParams } from "@mutinywallet/waila-wasm";
|
||||
import { showToast } from "~/components/Toaster";
|
||||
import { useMegaStore } from "~/state/megaStore";
|
||||
import { Result } from "~/utils/typescript";
|
||||
|
||||
export type ParsedParams = {
|
||||
address?: string;
|
||||
invoice?: string;
|
||||
amount_sats?: bigint;
|
||||
network?: string;
|
||||
memo?: string;
|
||||
}
|
||||
|
||||
export function toParsedParams(str: string, ourNetwork: string): Result<ParsedParams> {
|
||||
const params = new PaymentParams(str || "")
|
||||
|
||||
console.log("params network:", params.network)
|
||||
console.log("our network:", ourNetwork)
|
||||
|
||||
// TODO: "testnet" and "signet" are encoded the same I guess?
|
||||
if (params.network === "testnet" || params.network === "signet") {
|
||||
if (ourNetwork === "signet") {
|
||||
// noop
|
||||
}
|
||||
} else if (params.network !== ourNetwork) {
|
||||
return { ok: false, error: new Error(`Destination is for ${params.network} but you're on ${ourNetwork}`) }
|
||||
}
|
||||
|
||||
return {
|
||||
ok: true, value: {
|
||||
address: params.address,
|
||||
invoice: params.invoice,
|
||||
amount_sats: params.amount_sats,
|
||||
network: params.network,
|
||||
memo: params.memo
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export default function Scanner() {
|
||||
const [state, actions] = useMegaStore();
|
||||
const [scanResult, setScanResult] = createSignal<string>();
|
||||
const navigate = useNavigate();
|
||||
|
||||
@@ -22,36 +61,39 @@ export default function Scanner() {
|
||||
});
|
||||
}
|
||||
|
||||
let waila;
|
||||
|
||||
onMount(() => {
|
||||
init().then((w) => {
|
||||
waila = w;
|
||||
});
|
||||
})
|
||||
|
||||
// When we have a nice result we can head over to the send screen
|
||||
createEffect(() => {
|
||||
if (scanResult()) {
|
||||
navigate("/send", { state: { destination: scanResult() } })
|
||||
const network = state.node_manager?.get_network() || "signet";
|
||||
const result = toParsedParams(scanResult() || "", network);
|
||||
if (!result.ok) {
|
||||
showToast(result.error);
|
||||
return;
|
||||
} else {
|
||||
if (result.value?.address || result.value?.invoice) {
|
||||
actions.setScanResult(result.value);
|
||||
navigate("/send")
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
return (
|
||||
<div class="safe-top safe-left safe-right safe-bottom h-screen-safe">
|
||||
<Show when={scanResult()} fallback={<Reader onResult={onResult} />}>
|
||||
<div class="w-full p-8">
|
||||
<div class="mt-[20vw] rounded-xl p-4 flex flex-col gap-2 bg-[rgba(0,0,0,0.5)]">
|
||||
<header class='text-sm font-semibold uppercase'>
|
||||
Scan Result
|
||||
</header>
|
||||
<code class="break-all">{scanResult()}</code>
|
||||
</div>
|
||||
</div>
|
||||
</Show>
|
||||
<Reader onResult={onResult} />
|
||||
<div class="w-full flex flex-col items-center fixed bottom-[2rem] gap-8 px-8">
|
||||
<Show when={scanResult()}
|
||||
fallback={
|
||||
<div class="w-full max-w-[800px] flex flex-col gap-2">
|
||||
<Button intent="blue" onClick={handlePaste}>Paste Something</Button>
|
||||
<Button onClick={exit}>Cancel</Button>
|
||||
</div>
|
||||
}>
|
||||
<Button intent="red" onClick={() => setScanResult(undefined)}>Try Again</Button>
|
||||
<div class="w-full max-w-[800px] flex flex-col gap-2">
|
||||
<Button intent="blue" onClick={handlePaste}>Paste Something</Button>
|
||||
<Button onClick={exit}>Cancel</Button>
|
||||
</Show>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
|
||||
@@ -1,17 +1,21 @@
|
||||
import { TextField } from "@kobalte/core";
|
||||
import { Show, createMemo, createResource, createSignal, onMount } from "solid-js";
|
||||
import { Match, Show, Switch, createEffect, createMemo, createResource, createSignal, onCleanup, onMount } from "solid-js";
|
||||
import { Amount } from "~/components/Amount";
|
||||
import NavBar from "~/components/NavBar";
|
||||
import { Button, ButtonLink, DefaultMain, LargeHeader, SafeArea, SmallHeader } from "~/components/layout";
|
||||
import { Button, ButtonLink, DefaultMain, LargeHeader, NodeManagerGuard, SafeArea, SmallHeader } from "~/components/layout";
|
||||
import { Paste } from "~/assets/svg/Paste";
|
||||
import { Scan } from "~/assets/svg/Scan";
|
||||
import { useMegaStore } from "~/state/megaStore";
|
||||
import { MutinyInvoice, NodeManager } from "@mutinywallet/mutiny-wasm";
|
||||
import { bip21decode } from "~/utils/TEMPbip21";
|
||||
import { MutinyInvoice } from "@mutinywallet/mutiny-wasm";
|
||||
import { AmountEditable } from "~/components/AmountEditable";
|
||||
import { useLocation } from "solid-start";
|
||||
import { StyledRadioGroup } from "~/components/layout/Radio";
|
||||
import { SentModal } from "~/components/Sent";
|
||||
import { ParsedParams, toParsedParams } from "./Scanner";
|
||||
import init from "@mutinywallet/waila-wasm";
|
||||
import { showToast } from "~/components/Toaster";
|
||||
import eify from "~/utils/eify";
|
||||
import { FullscreenModal } from "~/components/layout/FullscreenModal";
|
||||
import handshake from "~/assets/handshake.png";
|
||||
import mempoolTxUrl from "~/utils/mempoolTxUrl";
|
||||
|
||||
type SendSource = "lightning" | "onchain";
|
||||
|
||||
@@ -20,13 +24,27 @@ const PAYMENT_METHODS = [{ value: "lightning", label: "Lightning", caption: "Fas
|
||||
// const TEST_DEST = "bitcoin:tb1pdh43en28jmhnsrhxkusja46aufdlae5qnfrhucw5jvefw9flce3sdxfcwe?amount=0.00001&label=heyo&lightning=lntbs10u1pjrwrdedq8dpjhjmcnp4qd60w268ve0jencwzhz048ruprkxefhj0va2uspgj4q42azdg89uupp5gngy2pqte5q5uvnwcxwl2t8fsdlla5s6xl8aar4xcsvxeus2w2pqsp5n5jp3pz3vpu92p3uswttxmw79a5lc566herwh3f2amwz2sp6f9tq9qyysgqcqpcxqrpwugv5m534ww5ukcf6sdw2m75f2ntjfh3gzeqay649256yvtecgnhjyugf74zakaf56sdh66ec9fqep2kvu6xv09gcwkv36rrkm38ylqsgpw3yfjl"
|
||||
// const TEST_DEST_ADDRESS = "tb1pdh43en28jmhnsrhxkusja46aufdlae5qnfrhucw5jvefw9flce3sdxfcwe"
|
||||
|
||||
type SentDetails = { nice: string }
|
||||
type SentDetails = { amount: bigint, destination: string, txid?: string }
|
||||
|
||||
export default function Send() {
|
||||
let waila;
|
||||
|
||||
onMount(() => {
|
||||
init().then((w) => {
|
||||
waila = w;
|
||||
});
|
||||
|
||||
})
|
||||
|
||||
// TODO: Is this just implied?
|
||||
onCleanup(() => {
|
||||
waila = undefined;
|
||||
})
|
||||
|
||||
const [state, actions] = useMegaStore();
|
||||
|
||||
// These can only be set by the user
|
||||
const [destination, setDestination] = createSignal("");
|
||||
const [destination, setDestination] = createSignal<ParsedParams>();
|
||||
const [privateLabel, setPrivateLabel] = createSignal("");
|
||||
|
||||
// These can be derived from the "destination" signal or set by the user
|
||||
@@ -43,7 +61,7 @@ export default function Send() {
|
||||
const [sentDetails, setSentDetails] = createSignal<SentDetails>();
|
||||
|
||||
function clearAll() {
|
||||
setDestination("");
|
||||
setDestination(undefined);
|
||||
setPrivateLabel("");
|
||||
setAmountSats(0n);
|
||||
setSource("lightning");
|
||||
@@ -52,9 +70,6 @@ export default function Send() {
|
||||
setDescription(undefined);
|
||||
}
|
||||
|
||||
// If we were routed to by the scanner we can get the state from there
|
||||
const location = useLocation();
|
||||
|
||||
const fakeFee = createMemo(() => {
|
||||
if (source() === "lightning") return 69n;
|
||||
if (source() === "onchain") return 420n;
|
||||
@@ -62,57 +77,54 @@ export default function Send() {
|
||||
})
|
||||
|
||||
onMount(() => {
|
||||
// TODO: probably a cleaner way to make typescript happy
|
||||
const routerInfo = location as { state?: { destination?: string } };
|
||||
if (routerInfo.state?.destination && typeof routerInfo.state.destination === "string") {
|
||||
setDestination(routerInfo.state.destination);
|
||||
if (state.scan_result) {
|
||||
setDestination(state.scan_result);
|
||||
}
|
||||
})
|
||||
|
||||
// TODO: this is pretty temp until we have WAILA
|
||||
async function decode(source: string) {
|
||||
if (!source) return;
|
||||
// Rerun every time the destination changes
|
||||
createEffect(() => {
|
||||
const source = destination();
|
||||
console.log(source)
|
||||
if (!source) return undefined;
|
||||
try {
|
||||
const { address, label, lightning, amount } = bip21decode(source);
|
||||
if (source.address) setAddress(source.address)
|
||||
if (source.memo) setDescription(source.memo);
|
||||
|
||||
setAddress(address)
|
||||
|
||||
if (lightning) {
|
||||
const invoice = await state.node_manager?.decode_invoice(lightning);
|
||||
if (invoice?.amount_sats) setAmountSats(invoice.amount_sats);
|
||||
setInvoice(invoice)
|
||||
// We can stick with default lightning because there's an invoice
|
||||
setSource("lightning")
|
||||
if (source.invoice) {
|
||||
state.node_manager?.decode_invoice(source.invoice).then(invoice => {
|
||||
if (invoice?.amount_sats) setAmountSats(invoice.amount_sats);
|
||||
setInvoice(invoice)
|
||||
setSource("lightning")
|
||||
});
|
||||
} else {
|
||||
// If we can't use the lightning amount we have to use the float btc amount
|
||||
const amt = NodeManager.convert_btc_to_sats(amount || 0);
|
||||
setAmountSats(amt);
|
||||
|
||||
// We use onchain because there's no invoice
|
||||
setAmountSats(source.amount_sats || 0n);
|
||||
setSource("onchain")
|
||||
}
|
||||
|
||||
if (label) setDescription(label);
|
||||
|
||||
setInvoice(invoice)
|
||||
|
||||
return invoice
|
||||
|
||||
// Return the source just to trigger `decodedDestination` as not undefined
|
||||
return source
|
||||
} catch (e) {
|
||||
console.error("error", e)
|
||||
clearAll();
|
||||
}
|
||||
}
|
||||
|
||||
// IMPORTANT: pass the signal but don't "call" the signal (`destination`, not `destination()`)
|
||||
const [decodedDestination] = createResource(destination, decode);
|
||||
|
||||
let labelInput!: HTMLInputElement;
|
||||
})
|
||||
|
||||
function handlePaste() {
|
||||
navigator.clipboard.readText().then(text => {
|
||||
setDestination(text);
|
||||
labelInput.focus();
|
||||
if (text) {
|
||||
const network = state.node_manager?.get_network() || "signet";
|
||||
const result = toParsedParams(text || "", network);
|
||||
if (!result.ok) {
|
||||
showToast(result.error);
|
||||
return;
|
||||
} else {
|
||||
if (result.value?.address || result.value?.invoice) {
|
||||
setDestination(result.value);
|
||||
// Important! we need to clear the scan result once we've used it
|
||||
actions.setScanResult(undefined);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -120,27 +132,32 @@ export default function Send() {
|
||||
try {
|
||||
setSending(true);
|
||||
const bolt11 = invoice()?.bolt11;
|
||||
let sentDetails: Partial<SentDetails> = {};
|
||||
if (source() === "lightning" && invoice() && bolt11) {
|
||||
const nodes = await state.node_manager?.list_nodes();
|
||||
const firstNode = nodes[0] as string || ""
|
||||
sentDetails.destination = bolt11;
|
||||
// If the invoice has sats use that, otherwise we pass the user-defined amount
|
||||
if (invoice()?.amount_sats) {
|
||||
await state.node_manager?.pay_invoice(firstNode, bolt11);
|
||||
sentDetails.amount = invoice()?.amount_sats;
|
||||
} else {
|
||||
await state.node_manager?.pay_invoice(firstNode, bolt11, amountSats());
|
||||
sentDetails.amount = amountSats();
|
||||
}
|
||||
} else {
|
||||
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
||||
const txid = await state.node_manager?.send_to_address(address()!, amountSats());
|
||||
sentDetails.amount = amountSats();
|
||||
sentDetails.destination = address();
|
||||
// TODO: figure out if this is necessary, it takes forever
|
||||
await actions.sync();
|
||||
console.error(txid)
|
||||
sentDetails.txid = txid;
|
||||
}
|
||||
|
||||
setSentDetails({ nice: "nice" });
|
||||
setSentDetails(sentDetails as SentDetails);
|
||||
clearAll();
|
||||
console.error("SENT");
|
||||
} catch (e) {
|
||||
showToast(eify(e))
|
||||
console.error(e);
|
||||
} finally {
|
||||
setSending(false);
|
||||
@@ -148,105 +165,122 @@ export default function Send() {
|
||||
}
|
||||
|
||||
return (
|
||||
<SafeArea>
|
||||
<DefaultMain>
|
||||
<LargeHeader>Send Bitcoin</LargeHeader>
|
||||
<SentModal details={sentDetails()} />
|
||||
<dl>
|
||||
<dt>
|
||||
<SmallHeader>Destination</SmallHeader>
|
||||
</dt>
|
||||
<dd>
|
||||
<Show when={decodedDestination()} fallback={<div class="flex flex-row gap-4">
|
||||
<Button onClick={handlePaste}>
|
||||
<div class="flex flex-col gap-2 items-center">
|
||||
<Paste />
|
||||
<span>Paste</span>
|
||||
</div>
|
||||
</Button>
|
||||
<ButtonLink href="/scanner">
|
||||
<div class="flex flex-col gap-2 items-center">
|
||||
<Scan />
|
||||
<span>Scan QR</span>
|
||||
</div>
|
||||
</ButtonLink>
|
||||
</div>}>
|
||||
<div class="flex gap-2 items-center">
|
||||
<Show when={address() && source() === "onchain"}>
|
||||
<code class="truncate text-sm break-all">{"Address: "} {address()}
|
||||
<Show when={description()}>
|
||||
<br />
|
||||
{"Description:"} {description()}
|
||||
</Show>
|
||||
</code>
|
||||
</Show>
|
||||
<Show when={invoice() && source() === "lightning"}>
|
||||
<code class="truncate text-sm break-all">{"Invoice: "} {invoice()?.bolt11}
|
||||
<Show when={description()}>
|
||||
<br />
|
||||
{"Description:"} {description()}
|
||||
</Show>
|
||||
</code>
|
||||
</Show>
|
||||
<Button class="flex-0" intent="glowy" layout="xs" onClick={clearAll}>Clear</Button>
|
||||
</div>
|
||||
<div class="my-8 flex gap-4 w-full items-center justify-around">
|
||||
{/* if the amount came with the invoice we can't allow setting it */}
|
||||
<Show when={!(invoice()?.amount_sats)} fallback={<Amount amountSats={amountSats() || 0} showFiat />}>
|
||||
<AmountEditable initialAmountSats={amountSats().toString() || "0"} setAmountSats={setAmountSats} />
|
||||
</Show>
|
||||
<div class="bg-white/10 px-4 py-2 rounded-xl">
|
||||
<div class="flex gap-2 items-center">
|
||||
<h2 class="text-neutral-400 font-semibold uppercase">+ Fee</h2>
|
||||
<h3 class="text-xl font-light text-neutral-300">
|
||||
{fakeFee().toLocaleString()} <span class='text-lg'>SATS</span>
|
||||
</h3>
|
||||
</div>
|
||||
<div class="flex gap-2 items-center">
|
||||
<h2 class="font-semibold uppercase text-white">Total</h2>
|
||||
<h3 class="text-xl font-light text-white">
|
||||
{(amountSats().valueOf() + fakeFee().valueOf()).toLocaleString()} <span class='text-lg'>SATS</span>
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</Show>
|
||||
</dd>
|
||||
<Show when={address() && invoice()}>
|
||||
<NodeManagerGuard>
|
||||
<SafeArea>
|
||||
<DefaultMain>
|
||||
<LargeHeader>Send Bitcoin</LargeHeader>
|
||||
{/* <SentModal details={sentDetails()} /> */}
|
||||
<FullscreenModal title="Sent!" open={!!sentDetails()} setOpen={(open: boolean) => { if (!open) setSentDetails(undefined) }} onConfirm={() => setSentDetails(undefined)}>
|
||||
<div class="flex flex-col items-center gap-8">
|
||||
<img src={handshake} alt="party" class="w-1/2 mx-auto max-w-[50vh] zoom-image" />
|
||||
<Amount amountSats={sentDetails()?.amount} showFiat />
|
||||
<Show when={sentDetails()?.txid}>
|
||||
<a href={mempoolTxUrl(sentDetails()?.txid, state.node_manager?.get_network())} target="_blank" rel="noreferrer">
|
||||
Mempool Link
|
||||
</a>
|
||||
</Show>
|
||||
</div>
|
||||
</FullscreenModal>
|
||||
<dl>
|
||||
<dt>
|
||||
<SmallHeader>
|
||||
Payment Method
|
||||
</SmallHeader>
|
||||
<SmallHeader>Destination</SmallHeader>
|
||||
</dt>
|
||||
<dd>
|
||||
<StyledRadioGroup value={source()} onValueChange={setSource} choices={PAYMENT_METHODS} />
|
||||
<Switch>
|
||||
<Match when={address() || invoice()}>
|
||||
<div class="flex gap-2 items-center">
|
||||
<Show when={address() && source() === "onchain"}>
|
||||
<code class="truncate text-sm break-all">{"Address: "} {address()}
|
||||
<Show when={description()}>
|
||||
<br />
|
||||
{"Description:"} {description()}
|
||||
</Show>
|
||||
</code>
|
||||
</Show>
|
||||
<Show when={invoice() && source() === "lightning"}>
|
||||
<code class="truncate text-sm break-all">{"Invoice: "} {invoice()?.bolt11}
|
||||
<Show when={description()}>
|
||||
<br />
|
||||
{"Description:"} {description()}
|
||||
</Show>
|
||||
</code>
|
||||
</Show>
|
||||
<Button class="flex-0" intent="glowy" layout="xs" onClick={clearAll}>Clear</Button>
|
||||
</div>
|
||||
<div class="my-8 flex gap-4 w-full items-center justify-around">
|
||||
{/* if the amount came with the invoice we can't allow setting it */}
|
||||
<Show when={!(invoice()?.amount_sats)} fallback={<Amount amountSats={amountSats() || 0} showFiat />}>
|
||||
<AmountEditable initialAmountSats={amountSats().toString() || "0"} setAmountSats={setAmountSats} />
|
||||
</Show>
|
||||
<div class="bg-white/10 px-4 py-2 rounded-xl">
|
||||
<div class="flex gap-2 items-center">
|
||||
<h2 class="text-neutral-400 font-semibold uppercase">+ Fee</h2>
|
||||
<h3 class="text-xl font-light text-neutral-300">
|
||||
{fakeFee().toLocaleString()} <span class='text-lg'>SATS</span>
|
||||
</h3>
|
||||
</div>
|
||||
<div class="flex gap-2 items-center">
|
||||
<h2 class="font-semibold uppercase text-white">Total</h2>
|
||||
<h3 class="text-xl font-light text-white">
|
||||
{(amountSats().valueOf() + fakeFee().valueOf()).toLocaleString()} <span class='text-lg'>SATS</span>
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</Match>
|
||||
<Match when={true}>
|
||||
<div class="flex flex-row gap-4">
|
||||
<Button onClick={handlePaste}>
|
||||
<div class="flex flex-col gap-2 items-center">
|
||||
<Paste />
|
||||
<span>Paste</span>
|
||||
</div>
|
||||
</Button>
|
||||
<ButtonLink href="/scanner">
|
||||
<div class="flex flex-col gap-2 items-center">
|
||||
<Scan />
|
||||
<span>Scan QR</span>
|
||||
</div>
|
||||
</ButtonLink>
|
||||
</div>
|
||||
</Match>
|
||||
</Switch>
|
||||
</dd>
|
||||
</Show>
|
||||
<Show when={destination()}>
|
||||
<TextField.Root
|
||||
value={privateLabel()}
|
||||
onValueChange={setPrivateLabel}
|
||||
class="flex flex-col gap-2"
|
||||
>
|
||||
<Show when={address() && invoice()}>
|
||||
<dt>
|
||||
<SmallHeader>
|
||||
<TextField.Label>Label (private)</TextField.Label>
|
||||
Payment Method
|
||||
</SmallHeader>
|
||||
</dt>
|
||||
<dd>
|
||||
<TextField.Input
|
||||
autofocus
|
||||
ref={el => labelInput = el}
|
||||
class="w-full p-2 rounded-lg bg-white/10"
|
||||
placeholder="A helpful reminder of why you spent bitcoin"
|
||||
/>
|
||||
<StyledRadioGroup value={source()} onValueChange={setSource} choices={PAYMENT_METHODS} />
|
||||
</dd>
|
||||
</TextField.Root>
|
||||
</Show>
|
||||
</dl>
|
||||
<Button disabled={!destination() || sending()} intent="blue" onClick={handleSend} loading={sending()}>{sending() ? "Sending..." : "Confirm Send"}</Button>
|
||||
</DefaultMain>
|
||||
<NavBar activeTab="send" />
|
||||
</SafeArea >
|
||||
</Show>
|
||||
<Show when={destination()}>
|
||||
<TextField.Root
|
||||
value={privateLabel()}
|
||||
onValueChange={setPrivateLabel}
|
||||
class="flex flex-col gap-2"
|
||||
>
|
||||
<dt>
|
||||
<SmallHeader>
|
||||
<TextField.Label>Label (private)</TextField.Label>
|
||||
</SmallHeader>
|
||||
</dt>
|
||||
<dd>
|
||||
<TextField.Input
|
||||
autofocus
|
||||
class="w-full p-2 rounded-lg bg-white/10"
|
||||
placeholder="A helpful reminder of why you spent bitcoin"
|
||||
/>
|
||||
</dd>
|
||||
</TextField.Root>
|
||||
</Show>
|
||||
</dl>
|
||||
<Button disabled={!destination() || sending()} intent="blue" onClick={handleSend} loading={sending()}>{sending() ? "Sending..." : "Confirm Send"}</Button>
|
||||
</DefaultMain>
|
||||
<NavBar activeTab="send" />
|
||||
</SafeArea >
|
||||
</NodeManagerGuard>
|
||||
)
|
||||
}
|
||||
@@ -4,6 +4,7 @@ import { ParentComponent, createContext, createEffect, onCleanup, onMount, useCo
|
||||
import { createStore } from "solid-js/store";
|
||||
import { NodeManagerSettingStrings, setupNodeManager } from "~/logic/nodeManagerSetup";
|
||||
import { MutinyBalance, NodeManager } from "@mutinywallet/mutiny-wasm";
|
||||
import { ParsedParams } from "~/routes/Scanner";
|
||||
|
||||
const MegaStoreContext = createContext<MegaStore>();
|
||||
|
||||
@@ -13,7 +14,7 @@ export type MegaStore = [{
|
||||
waitlist_id?: string;
|
||||
node_manager?: NodeManager;
|
||||
user_status: UserStatus;
|
||||
scan_result?: string;
|
||||
scan_result?: ParsedParams;
|
||||
balance?: MutinyBalance;
|
||||
last_sync?: number;
|
||||
price: number
|
||||
@@ -21,6 +22,7 @@ export type MegaStore = [{
|
||||
fetchUserStatus(): Promise<UserStatus>;
|
||||
setupNodeManager(settings?: NodeManagerSettingStrings): Promise<void>;
|
||||
setWaitlistId(waitlist_id: string): void;
|
||||
setScanResult(scan_result: ParsedParams | undefined): void;
|
||||
sync(): Promise<void>;
|
||||
}];
|
||||
|
||||
@@ -29,6 +31,7 @@ export const Provider: ParentComponent = (props) => {
|
||||
waitlist_id: localStorage.getItem("waitlist_id"),
|
||||
node_manager: undefined as NodeManager | undefined,
|
||||
user_status: undefined as UserStatus,
|
||||
scan_result: undefined as ParsedParams | undefined,
|
||||
// TODO: wire this up to real price once we have caching
|
||||
price: 30000
|
||||
});
|
||||
@@ -73,6 +76,9 @@ export const Provider: ParentComponent = (props) => {
|
||||
}
|
||||
console.groupEnd();
|
||||
console.timeEnd("BDK Sync Time")
|
||||
},
|
||||
setScanResult(scan_result: ParsedParams) {
|
||||
setState({ scan_result })
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ export default function mempoolTxUrl(txid?: string, network?: string) {
|
||||
|
||||
if (network) {
|
||||
switch (network) {
|
||||
case "mainnet":
|
||||
case "bitcoin":
|
||||
return `https://mempool.space/tx/${txid}`
|
||||
case "testnet":
|
||||
return `https://mempool.space/testnet/tx/${txid}`
|
||||
|
||||
3
src/utils/typescript.ts
Normal file
3
src/utils/typescript.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
export type Result<T, E = Error> =
|
||||
| { ok: true; value: T }
|
||||
| { ok: false; error: E };
|
||||
@@ -48,6 +48,6 @@ export default defineConfig({
|
||||
},
|
||||
optimizeDeps: {
|
||||
// This is necessary because otherwise `vite dev` can't find the wasm
|
||||
exclude: ["@mutinywallet/mutiny-wasm"],
|
||||
exclude: ["@mutinywallet/mutiny-wasm", "@mutinywallet/waila-wasm"],
|
||||
},
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user