mirror of
https://github.com/aljazceru/mutiny-web.git
synced 2025-12-26 10:24:20 +01:00
@@ -4,20 +4,45 @@ module.exports = {
|
||||
"es2021": true
|
||||
},
|
||||
"extends": [
|
||||
"prettier",
|
||||
"eslint:recommended",
|
||||
"plugin:@typescript-eslint/recommended"
|
||||
"plugin:@typescript-eslint/recommended",
|
||||
"plugin:solid/typescript",
|
||||
"plugin:import/typescript",
|
||||
"plugin:import/recommended"
|
||||
],
|
||||
"overrides": [
|
||||
],
|
||||
"parser": "@typescript-eslint/parser",
|
||||
"parserOptions": {
|
||||
"tsconfigRootDir": "./",
|
||||
"project": ["./tsconfig.json"],
|
||||
"ecmaVersion": "latest",
|
||||
"sourceType": "module"
|
||||
"sourceType": "module",
|
||||
"ecmaFeatures": {
|
||||
"jsx": true
|
||||
}
|
||||
},
|
||||
"plugins": [
|
||||
"@typescript-eslint"
|
||||
"@typescript-eslint",
|
||||
"solid",
|
||||
"import"
|
||||
],
|
||||
"rules": {
|
||||
"@typescript-eslint/no-unused-vars": ["warn", { argsIgnorePattern: "^_", destructuredArrayIgnorePattern: "^_", varsIgnorePattern: "^_" }],
|
||||
"solid/reactivity": "warn",
|
||||
"solid/no-destructure": "warn",
|
||||
"solid/jsx-no-undef": "error",
|
||||
},
|
||||
"settings": {
|
||||
"import/parsers": {
|
||||
"@typescript-eslint/parser": [".ts", ".tsx"]
|
||||
},
|
||||
"import/resolver": {
|
||||
"typescript": {
|
||||
"project": ["./tsconfig.json"],
|
||||
"alwaysTryTypes": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,11 +9,15 @@
|
||||
"type": "module",
|
||||
"devDependencies": {
|
||||
"@types/node": "^18.15.11",
|
||||
"@typescript-eslint/eslint-plugin": "^5.57.1",
|
||||
"@typescript-eslint/parser": "^5.57.1",
|
||||
"@typescript-eslint/eslint-plugin": "^5.58.0",
|
||||
"@typescript-eslint/parser": "^5.58.0",
|
||||
"autoprefixer": "^10.4.14",
|
||||
"esbuild": "^0.14.54",
|
||||
"eslint": "^8.38.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.21",
|
||||
"solid-start-node": "^0.2.26",
|
||||
"tailwindcss": "^3.3.1",
|
||||
|
||||
406
pnpm-lock.yaml
generated
406
pnpm-lock.yaml
generated
@@ -12,7 +12,7 @@ dependencies:
|
||||
version: 0.2.3
|
||||
'@nostr-dev-kit/ndk':
|
||||
specifier: ^0.0.13
|
||||
version: 0.0.13(typescript@4.9.5)
|
||||
version: 0.0.13(eslint-import-resolver-typescript@2.7.1)(typescript@4.9.5)
|
||||
'@solidjs/meta':
|
||||
specifier: ^0.28.4
|
||||
version: 0.28.4(solid-js@1.7.3)
|
||||
@@ -36,7 +36,7 @@ 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.2.1)(vue@3.2.47)
|
||||
undici:
|
||||
specifier: ^5.21.2
|
||||
version: 5.21.2
|
||||
@@ -46,11 +46,11 @@ devDependencies:
|
||||
specifier: ^18.15.11
|
||||
version: 18.15.11
|
||||
'@typescript-eslint/eslint-plugin':
|
||||
specifier: ^5.57.1
|
||||
version: 5.57.1(@typescript-eslint/parser@5.57.1)(eslint@8.38.0)(typescript@4.9.5)
|
||||
specifier: ^5.58.0
|
||||
version: 5.58.0(@typescript-eslint/parser@5.58.0)(eslint@8.38.0)(typescript@4.9.5)
|
||||
'@typescript-eslint/parser':
|
||||
specifier: ^5.57.1
|
||||
version: 5.57.1(eslint@8.38.0)(typescript@4.9.5)
|
||||
specifier: ^5.58.0
|
||||
version: 5.58.0(eslint@8.38.0)(typescript@4.9.5)
|
||||
autoprefixer:
|
||||
specifier: ^10.4.14
|
||||
version: 10.4.14(postcss@8.4.21)
|
||||
@@ -60,6 +60,18 @@ devDependencies:
|
||||
eslint:
|
||||
specifier: ^8.38.0
|
||||
version: 8.38.0
|
||||
eslint-import-resolver-typescript:
|
||||
specifier: 2.7.1
|
||||
version: 2.7.1(eslint-plugin-import@2.27.5)(eslint@8.38.0)
|
||||
eslint-plugin-import:
|
||||
specifier: 2.27.5
|
||||
version: 2.27.5(@typescript-eslint/parser@5.58.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.38.0)
|
||||
eslint-plugin-prettier:
|
||||
specifier: 4.2.1
|
||||
version: 4.2.1(eslint@8.38.0)(prettier@2.8.7)
|
||||
eslint-plugin-solid:
|
||||
specifier: 0.11.0
|
||||
version: 0.11.0(eslint@8.38.0)(typescript@4.9.5)
|
||||
postcss:
|
||||
specifier: ^8.4.21
|
||||
version: 8.4.21
|
||||
@@ -1628,16 +1640,16 @@ packages:
|
||||
'@nodelib/fs.scandir': 2.1.5
|
||||
fastq: 1.15.0
|
||||
|
||||
/@nostr-dev-kit/ndk@0.0.13(typescript@4.9.5):
|
||||
/@nostr-dev-kit/ndk@0.0.13(eslint-import-resolver-typescript@2.7.1)(typescript@4.9.5):
|
||||
resolution: {integrity: sha512-14oVsreLiafhHRBBMF7YcgBk8HBciPyFVSRkpAw9or9N9xRbWYmg4HVNrYWnFsD7b2tlOxwz3uIU4iH6T2Bjdw==}
|
||||
dependencies:
|
||||
'@scure/base': 1.1.1
|
||||
'@typescript-eslint/eslint-plugin': 5.57.1(@typescript-eslint/parser@5.57.1)(eslint@8.38.0)(typescript@4.9.5)
|
||||
'@typescript-eslint/parser': 5.57.1(eslint@8.38.0)(typescript@4.9.5)
|
||||
'@typescript-eslint/eslint-plugin': 5.58.0(@typescript-eslint/parser@5.58.0)(eslint@8.38.0)(typescript@4.9.5)
|
||||
'@typescript-eslint/parser': 5.58.0(eslint@8.38.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.57.1)(eslint@8.38.0)
|
||||
eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.58.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.38.0)
|
||||
eventemitter3: 5.0.0
|
||||
light-bolt11-decoder: 3.0.0
|
||||
node-fetch: 3.3.1
|
||||
@@ -1970,7 +1982,6 @@ packages:
|
||||
|
||||
/@types/json5@0.0.29:
|
||||
resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
|
||||
dev: false
|
||||
|
||||
/@types/node@18.15.11:
|
||||
resolution: {integrity: sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==}
|
||||
@@ -1995,8 +2006,8 @@ packages:
|
||||
resolution: {integrity: sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g==}
|
||||
dev: true
|
||||
|
||||
/@typescript-eslint/eslint-plugin@5.57.1(@typescript-eslint/parser@5.57.1)(eslint@8.38.0)(typescript@4.9.5):
|
||||
resolution: {integrity: sha512-1MeobQkQ9tztuleT3v72XmY0XuKXVXusAhryoLuU5YZ+mXoYKZP9SQ7Flulh1NX4DTjpGTc2b/eMu4u7M7dhnQ==}
|
||||
/@typescript-eslint/eslint-plugin@5.58.0(@typescript-eslint/parser@5.58.0)(eslint@8.38.0)(typescript@4.9.5):
|
||||
resolution: {integrity: sha512-vxHvLhH0qgBd3/tW6/VccptSfc8FxPQIkmNTVLWcCOVqSBvqpnKkBTYrhcGlXfSnd78azwe+PsjYFj0X34/njA==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
peerDependencies:
|
||||
'@typescript-eslint/parser': ^5.0.0
|
||||
@@ -2007,23 +2018,23 @@ packages:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@eslint-community/regexpp': 4.5.0
|
||||
'@typescript-eslint/parser': 5.57.1(eslint@8.38.0)(typescript@4.9.5)
|
||||
'@typescript-eslint/scope-manager': 5.57.1
|
||||
'@typescript-eslint/type-utils': 5.57.1(eslint@8.38.0)(typescript@4.9.5)
|
||||
'@typescript-eslint/utils': 5.57.1(eslint@8.38.0)(typescript@4.9.5)
|
||||
'@typescript-eslint/parser': 5.58.0(eslint@8.38.0)(typescript@4.9.5)
|
||||
'@typescript-eslint/scope-manager': 5.58.0
|
||||
'@typescript-eslint/type-utils': 5.58.0(eslint@8.38.0)(typescript@4.9.5)
|
||||
'@typescript-eslint/utils': 5.58.0(eslint@8.38.0)(typescript@4.9.5)
|
||||
debug: 4.3.4
|
||||
eslint: 8.38.0
|
||||
grapheme-splitter: 1.0.4
|
||||
ignore: 5.2.4
|
||||
natural-compare-lite: 1.4.0
|
||||
semver: 7.3.8
|
||||
semver: 7.4.0
|
||||
tsutils: 3.21.0(typescript@4.9.5)
|
||||
typescript: 4.9.5
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
/@typescript-eslint/parser@5.57.1(eslint@8.38.0)(typescript@4.9.5):
|
||||
resolution: {integrity: sha512-hlA0BLeVSA/wBPKdPGxoVr9Pp6GutGoY380FEhbVi0Ph4WNe8kLvqIRx76RSQt1lynZKfrXKs0/XeEk4zZycuA==}
|
||||
/@typescript-eslint/parser@5.58.0(eslint@8.38.0)(typescript@4.9.5):
|
||||
resolution: {integrity: sha512-ixaM3gRtlfrKzP8N6lRhBbjTow1t6ztfBvQNGuRM8qH1bjFFXIJ35XY+FC0RRBKn3C6cT+7VW1y8tNm7DwPHDQ==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
peerDependencies:
|
||||
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
|
||||
@@ -2032,24 +2043,24 @@ packages:
|
||||
typescript:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@typescript-eslint/scope-manager': 5.57.1
|
||||
'@typescript-eslint/types': 5.57.1
|
||||
'@typescript-eslint/typescript-estree': 5.57.1(typescript@4.9.5)
|
||||
'@typescript-eslint/scope-manager': 5.58.0
|
||||
'@typescript-eslint/types': 5.58.0
|
||||
'@typescript-eslint/typescript-estree': 5.58.0(typescript@4.9.5)
|
||||
debug: 4.3.4
|
||||
eslint: 8.38.0
|
||||
typescript: 4.9.5
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
/@typescript-eslint/scope-manager@5.57.1:
|
||||
resolution: {integrity: sha512-N/RrBwEUKMIYxSKl0oDK5sFVHd6VI7p9K5MyUlVYAY6dyNb/wHUqndkTd3XhpGlXgnQsBkRZuu4f9kAHghvgPw==}
|
||||
/@typescript-eslint/scope-manager@5.58.0:
|
||||
resolution: {integrity: sha512-b+w8ypN5CFvrXWQb9Ow9T4/6LC2MikNf1viLkYTiTbkQl46CnR69w7lajz1icW0TBsYmlpg+mRzFJ4LEJ8X9NA==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
dependencies:
|
||||
'@typescript-eslint/types': 5.57.1
|
||||
'@typescript-eslint/visitor-keys': 5.57.1
|
||||
'@typescript-eslint/types': 5.58.0
|
||||
'@typescript-eslint/visitor-keys': 5.58.0
|
||||
|
||||
/@typescript-eslint/type-utils@5.57.1(eslint@8.38.0)(typescript@4.9.5):
|
||||
resolution: {integrity: sha512-/RIPQyx60Pt6ga86hKXesXkJ2WOS4UemFrmmq/7eOyiYjYv/MUSHPlkhU6k9T9W1ytnTJueqASW+wOmW4KrViw==}
|
||||
/@typescript-eslint/type-utils@5.58.0(eslint@8.38.0)(typescript@4.9.5):
|
||||
resolution: {integrity: sha512-FF5vP/SKAFJ+LmR9PENql7fQVVgGDOS+dq3j+cKl9iW/9VuZC/8CFmzIP0DLKXfWKpRHawJiG70rVH+xZZbp8w==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
peerDependencies:
|
||||
eslint: '*'
|
||||
@@ -2058,8 +2069,8 @@ packages:
|
||||
typescript:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@typescript-eslint/typescript-estree': 5.57.1(typescript@4.9.5)
|
||||
'@typescript-eslint/utils': 5.57.1(eslint@8.38.0)(typescript@4.9.5)
|
||||
'@typescript-eslint/typescript-estree': 5.58.0(typescript@4.9.5)
|
||||
'@typescript-eslint/utils': 5.58.0(eslint@8.38.0)(typescript@4.9.5)
|
||||
debug: 4.3.4
|
||||
eslint: 8.38.0
|
||||
tsutils: 3.21.0(typescript@4.9.5)
|
||||
@@ -2067,12 +2078,12 @@ packages:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
/@typescript-eslint/types@5.57.1:
|
||||
resolution: {integrity: sha512-bSs4LOgyV3bJ08F5RDqO2KXqg3WAdwHCu06zOqcQ6vqbTJizyBhuh1o1ImC69X4bV2g1OJxbH71PJqiO7Y1RuA==}
|
||||
/@typescript-eslint/types@5.58.0:
|
||||
resolution: {integrity: sha512-JYV4eITHPzVQMnHZcYJXl2ZloC7thuUHrcUmxtzvItyKPvQ50kb9QXBkgNAt90OYMqwaodQh2kHutWZl1fc+1g==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
|
||||
/@typescript-eslint/typescript-estree@5.57.1(typescript@4.9.5):
|
||||
resolution: {integrity: sha512-A2MZqD8gNT0qHKbk2wRspg7cHbCDCk2tcqt6ScCFLr5Ru8cn+TCfM786DjPhqwseiS+PrYwcXht5ztpEQ6TFTw==}
|
||||
/@typescript-eslint/typescript-estree@5.58.0(typescript@4.9.5):
|
||||
resolution: {integrity: sha512-cRACvGTodA+UxnYM2uwA2KCwRL7VAzo45syNysqlMyNyjw0Z35Icc9ihPJZjIYuA5bXJYiJ2YGUB59BqlOZT1Q==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
peerDependencies:
|
||||
typescript: '*'
|
||||
@@ -2080,19 +2091,19 @@ packages:
|
||||
typescript:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@typescript-eslint/types': 5.57.1
|
||||
'@typescript-eslint/visitor-keys': 5.57.1
|
||||
'@typescript-eslint/types': 5.58.0
|
||||
'@typescript-eslint/visitor-keys': 5.58.0
|
||||
debug: 4.3.4
|
||||
globby: 11.1.0
|
||||
is-glob: 4.0.3
|
||||
semver: 7.3.8
|
||||
semver: 7.4.0
|
||||
tsutils: 3.21.0(typescript@4.9.5)
|
||||
typescript: 4.9.5
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
/@typescript-eslint/utils@5.57.1(eslint@8.38.0)(typescript@4.9.5):
|
||||
resolution: {integrity: sha512-kN6vzzf9NkEtawECqze6v99LtmDiUJCVpvieTFA1uL7/jDghiJGubGZ5csicYHU1Xoqb3oH/R5cN5df6W41Nfg==}
|
||||
/@typescript-eslint/utils@5.58.0(eslint@8.38.0)(typescript@4.9.5):
|
||||
resolution: {integrity: sha512-gAmLOTFXMXOC+zP1fsqm3VceKSBQJNzV385Ok3+yzlavNHZoedajjS4UyS21gabJYcobuigQPs/z71A9MdJFqQ==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
peerDependencies:
|
||||
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
|
||||
@@ -2100,23 +2111,96 @@ packages:
|
||||
'@eslint-community/eslint-utils': 4.4.0(eslint@8.38.0)
|
||||
'@types/json-schema': 7.0.11
|
||||
'@types/semver': 7.3.13
|
||||
'@typescript-eslint/scope-manager': 5.57.1
|
||||
'@typescript-eslint/types': 5.57.1
|
||||
'@typescript-eslint/typescript-estree': 5.57.1(typescript@4.9.5)
|
||||
'@typescript-eslint/scope-manager': 5.58.0
|
||||
'@typescript-eslint/types': 5.58.0
|
||||
'@typescript-eslint/typescript-estree': 5.58.0(typescript@4.9.5)
|
||||
eslint: 8.38.0
|
||||
eslint-scope: 5.1.1
|
||||
semver: 7.3.8
|
||||
semver: 7.4.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
- typescript
|
||||
|
||||
/@typescript-eslint/visitor-keys@5.57.1:
|
||||
resolution: {integrity: sha512-RjQrAniDU0CEk5r7iphkm731zKlFiUjvcBS2yHAg8WWqFMCaCrD0rKEVOMUyMMcbGPZ0bPp56srkGWrgfZqLRA==}
|
||||
/@typescript-eslint/visitor-keys@5.58.0:
|
||||
resolution: {integrity: sha512-/fBraTlPj0jwdyTwLyrRTxv/3lnU2H96pNTVM6z3esTWLtA5MZ9ghSMJ7Rb+TtUAdtEw9EyJzJ0EydIMKxQ9gA==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
dependencies:
|
||||
'@typescript-eslint/types': 5.57.1
|
||||
'@typescript-eslint/types': 5.58.0
|
||||
eslint-visitor-keys: 3.4.0
|
||||
|
||||
/@vue/compiler-core@3.2.47:
|
||||
resolution: {integrity: sha512-p4D7FDnQb7+YJmO2iPEv0SQNeNzcbHdGByJDsT4lynf63AFkOTFN07HsiRSvjGo0QrxR/o3d0hUyNCUnBU2Tig==}
|
||||
dependencies:
|
||||
'@babel/parser': 7.21.4
|
||||
'@vue/shared': 3.2.47
|
||||
estree-walker: 2.0.2
|
||||
source-map: 0.6.1
|
||||
|
||||
/@vue/compiler-dom@3.2.47:
|
||||
resolution: {integrity: sha512-dBBnEHEPoftUiS03a4ggEig74J2YBZ2UIeyfpcRM2tavgMWo4bsEfgCGsu+uJIL/vax9S+JztH8NmQerUo7shQ==}
|
||||
dependencies:
|
||||
'@vue/compiler-core': 3.2.47
|
||||
'@vue/shared': 3.2.47
|
||||
|
||||
/@vue/compiler-sfc@3.2.47:
|
||||
resolution: {integrity: sha512-rog05W+2IFfxjMcFw10tM9+f7i/+FFpZJJ5XHX72NP9eC2uRD+42M3pYcQqDXVYoj74kHMSEdQ/WmCjt8JFksQ==}
|
||||
dependencies:
|
||||
'@babel/parser': 7.21.4
|
||||
'@vue/compiler-core': 3.2.47
|
||||
'@vue/compiler-dom': 3.2.47
|
||||
'@vue/compiler-ssr': 3.2.47
|
||||
'@vue/reactivity-transform': 3.2.47
|
||||
'@vue/shared': 3.2.47
|
||||
estree-walker: 2.0.2
|
||||
magic-string: 0.25.9
|
||||
postcss: 8.4.21
|
||||
source-map: 0.6.1
|
||||
|
||||
/@vue/compiler-ssr@3.2.47:
|
||||
resolution: {integrity: sha512-wVXC+gszhulcMD8wpxMsqSOpvDZ6xKXSVWkf50Guf/S+28hTAXPDYRTbLQ3EDkOP5Xz/+SY37YiwDquKbJOgZw==}
|
||||
dependencies:
|
||||
'@vue/compiler-dom': 3.2.47
|
||||
'@vue/shared': 3.2.47
|
||||
|
||||
/@vue/reactivity-transform@3.2.47:
|
||||
resolution: {integrity: sha512-m8lGXw8rdnPVVIdIFhf0LeQ/ixyHkH5plYuS83yop5n7ggVJU+z5v0zecwEnX7fa7HNLBhh2qngJJkxpwEEmYA==}
|
||||
dependencies:
|
||||
'@babel/parser': 7.21.4
|
||||
'@vue/compiler-core': 3.2.47
|
||||
'@vue/shared': 3.2.47
|
||||
estree-walker: 2.0.2
|
||||
magic-string: 0.25.9
|
||||
|
||||
/@vue/reactivity@3.2.47:
|
||||
resolution: {integrity: sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==}
|
||||
dependencies:
|
||||
'@vue/shared': 3.2.47
|
||||
|
||||
/@vue/runtime-core@3.2.47:
|
||||
resolution: {integrity: sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==}
|
||||
dependencies:
|
||||
'@vue/reactivity': 3.2.47
|
||||
'@vue/shared': 3.2.47
|
||||
|
||||
/@vue/runtime-dom@3.2.47:
|
||||
resolution: {integrity: sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==}
|
||||
dependencies:
|
||||
'@vue/runtime-core': 3.2.47
|
||||
'@vue/shared': 3.2.47
|
||||
csstype: 2.6.21
|
||||
|
||||
/@vue/server-renderer@3.2.47(vue@3.2.47):
|
||||
resolution: {integrity: sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==}
|
||||
peerDependencies:
|
||||
vue: 3.2.47
|
||||
dependencies:
|
||||
'@vue/compiler-ssr': 3.2.47
|
||||
'@vue/shared': 3.2.47
|
||||
vue: 3.2.47
|
||||
|
||||
/@vue/shared@3.2.47:
|
||||
resolution: {integrity: sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ==}
|
||||
|
||||
/accepts@1.3.8:
|
||||
resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==}
|
||||
engines: {node: '>= 0.6'}
|
||||
@@ -2202,7 +2286,6 @@ packages:
|
||||
es-abstract: 1.21.2
|
||||
get-intrinsic: 1.2.0
|
||||
is-string: 1.0.7
|
||||
dev: false
|
||||
|
||||
/array-union@2.1.0:
|
||||
resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
|
||||
@@ -2216,7 +2299,6 @@ packages:
|
||||
define-properties: 1.2.0
|
||||
es-abstract: 1.21.2
|
||||
es-shim-unscopables: 1.0.0
|
||||
dev: false
|
||||
|
||||
/array.prototype.flatmap@1.3.1:
|
||||
resolution: {integrity: sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==}
|
||||
@@ -2226,7 +2308,6 @@ packages:
|
||||
define-properties: 1.2.0
|
||||
es-abstract: 1.21.2
|
||||
es-shim-unscopables: 1.0.0
|
||||
dev: false
|
||||
|
||||
/async@3.2.4:
|
||||
resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==}
|
||||
@@ -2347,7 +2428,7 @@ packages:
|
||||
hasBin: true
|
||||
dependencies:
|
||||
caniuse-lite: 1.0.30001477
|
||||
electron-to-chromium: 1.4.356
|
||||
electron-to-chromium: 1.4.357
|
||||
node-releases: 2.0.10
|
||||
update-browserslist-db: 1.0.10(browserslist@4.21.5)
|
||||
|
||||
@@ -2536,6 +2617,9 @@ packages:
|
||||
hasBin: true
|
||||
dev: true
|
||||
|
||||
/csstype@2.6.21:
|
||||
resolution: {integrity: sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==}
|
||||
|
||||
/csstype@3.1.2:
|
||||
resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==}
|
||||
|
||||
@@ -2570,7 +2654,6 @@ packages:
|
||||
optional: true
|
||||
dependencies:
|
||||
ms: 2.1.3
|
||||
dev: false
|
||||
|
||||
/debug@4.3.4:
|
||||
resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
|
||||
@@ -2624,7 +2707,6 @@ packages:
|
||||
engines: {node: '>=0.10.0'}
|
||||
dependencies:
|
||||
esutils: 2.0.3
|
||||
dev: false
|
||||
|
||||
/doctrine@3.0.0:
|
||||
resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
|
||||
@@ -2636,6 +2718,12 @@ packages:
|
||||
resolution: {integrity: sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==}
|
||||
engines: {node: '>=12'}
|
||||
|
||||
/echarts@5.4.2:
|
||||
resolution: {integrity: sha512-2W3vw3oI2tWJdyAz+b8DuWS0nfXtSDqlDmqgin/lfzbkB01cuMEN66KWBlmur3YMp5nEDEEt5s23pllnAzB4EA==}
|
||||
dependencies:
|
||||
tslib: 2.3.0
|
||||
zrender: 5.4.3
|
||||
|
||||
/ee-first@1.1.1:
|
||||
resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
|
||||
|
||||
@@ -2647,8 +2735,8 @@ packages:
|
||||
jake: 10.8.5
|
||||
dev: true
|
||||
|
||||
/electron-to-chromium@1.4.356:
|
||||
resolution: {integrity: sha512-nEftV1dRX3omlxAj42FwqRZT0i4xd2dIg39sog/CnCJeCcL1TRd2Uh0i9Oebgv8Ou0vzTPw++xc+Z20jzS2B6A==}
|
||||
/electron-to-chromium@1.4.357:
|
||||
resolution: {integrity: sha512-UTkCbNTAcGXABmEnQrGcW4m3cG6fcyBfD4KDF0iyEAlbrGZiY9dmslyDAGOD1Kr5biN2F743Y30aRCOtau35Vw==}
|
||||
|
||||
/emoji-regex@8.0.0:
|
||||
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
|
||||
@@ -2711,7 +2799,6 @@ packages:
|
||||
resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==}
|
||||
dependencies:
|
||||
has: 1.0.3
|
||||
dev: false
|
||||
|
||||
/es-to-primitive@1.2.1:
|
||||
resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==}
|
||||
@@ -3026,13 +3113,29 @@ packages:
|
||||
resolution: {integrity: sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==}
|
||||
dependencies:
|
||||
debug: 3.2.7
|
||||
is-core-module: 2.11.0
|
||||
is-core-module: 2.12.0
|
||||
resolve: 1.22.2
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/eslint-module-utils@2.7.4(@typescript-eslint/parser@5.57.1)(eslint-import-resolver-node@0.3.7)(eslint@8.38.0):
|
||||
/eslint-import-resolver-typescript@2.7.1(eslint-plugin-import@2.27.5)(eslint@8.38.0):
|
||||
resolution: {integrity: sha512-00UbgGwV8bSgUv34igBDbTOtKhqoRMy9bFjNehT40bXg6585PNIct8HhXZ0SybqB9rWtXj9crcku8ndDn/gIqQ==}
|
||||
engines: {node: '>=4'}
|
||||
peerDependencies:
|
||||
eslint: '*'
|
||||
eslint-plugin-import: '*'
|
||||
dependencies:
|
||||
debug: 4.3.4
|
||||
eslint: 8.38.0
|
||||
eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.58.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.38.0)
|
||||
glob: 7.2.3
|
||||
is-glob: 4.0.3
|
||||
resolve: 1.22.2
|
||||
tsconfig-paths: 3.14.2
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
/eslint-module-utils@2.7.4(@typescript-eslint/parser@5.58.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@2.7.1)(eslint@8.38.0):
|
||||
resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==}
|
||||
engines: {node: '>=4'}
|
||||
peerDependencies:
|
||||
@@ -3053,15 +3156,15 @@ packages:
|
||||
eslint-import-resolver-webpack:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@typescript-eslint/parser': 5.57.1(eslint@8.38.0)(typescript@4.9.5)
|
||||
'@typescript-eslint/parser': 5.58.0(eslint@8.38.0)(typescript@4.9.5)
|
||||
debug: 3.2.7
|
||||
eslint: 8.38.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)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.57.1)(eslint@8.38.0):
|
||||
/eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.58.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.38.0):
|
||||
resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==}
|
||||
engines: {node: '>=4'}
|
||||
peerDependencies:
|
||||
@@ -3071,7 +3174,7 @@ packages:
|
||||
'@typescript-eslint/parser':
|
||||
optional: true
|
||||
dependencies:
|
||||
'@typescript-eslint/parser': 5.57.1(eslint@8.38.0)(typescript@4.9.5)
|
||||
'@typescript-eslint/parser': 5.58.0(eslint@8.38.0)(typescript@4.9.5)
|
||||
array-includes: 3.1.6
|
||||
array.prototype.flat: 1.3.1
|
||||
array.prototype.flatmap: 1.3.1
|
||||
@@ -3079,9 +3182,9 @@ packages:
|
||||
doctrine: 2.1.0
|
||||
eslint: 8.38.0
|
||||
eslint-import-resolver-node: 0.3.7
|
||||
eslint-module-utils: 2.7.4(@typescript-eslint/parser@5.57.1)(eslint-import-resolver-node@0.3.7)(eslint@8.38.0)
|
||||
eslint-module-utils: 2.7.4(@typescript-eslint/parser@5.58.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@2.7.1)(eslint@8.38.0)
|
||||
has: 1.0.3
|
||||
is-core-module: 2.11.0
|
||||
is-core-module: 2.12.0
|
||||
is-glob: 4.0.3
|
||||
minimatch: 3.1.2
|
||||
object.values: 1.1.6
|
||||
@@ -3092,7 +3195,40 @@ packages:
|
||||
- eslint-import-resolver-typescript
|
||||
- eslint-import-resolver-webpack
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/eslint-plugin-prettier@4.2.1(eslint@8.38.0)(prettier@2.8.7):
|
||||
resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==}
|
||||
engines: {node: '>=12.0.0'}
|
||||
peerDependencies:
|
||||
eslint: '>=7.28.0'
|
||||
eslint-config-prettier: '*'
|
||||
prettier: '>=2.0.0'
|
||||
peerDependenciesMeta:
|
||||
eslint-config-prettier:
|
||||
optional: true
|
||||
dependencies:
|
||||
eslint: 8.38.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):
|
||||
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.58.0(eslint@8.38.0)(typescript@4.9.5)
|
||||
eslint: 8.38.0
|
||||
is-html: 2.0.0
|
||||
jsx-ast-utils: 3.3.3
|
||||
kebab-case: 1.0.2
|
||||
known-css-properties: 0.24.0
|
||||
style-to-object: 0.3.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
- typescript
|
||||
dev: true
|
||||
|
||||
/eslint-scope@5.1.1:
|
||||
resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
|
||||
@@ -3212,6 +3348,10 @@ packages:
|
||||
/fast-deep-equal@3.1.3:
|
||||
resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
|
||||
|
||||
/fast-diff@1.2.0:
|
||||
resolution: {integrity: sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==}
|
||||
dev: true
|
||||
|
||||
/fast-glob@3.2.12:
|
||||
resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==}
|
||||
engines: {node: '>=8.6.0'}
|
||||
@@ -3514,6 +3654,11 @@ packages:
|
||||
/html-entities@2.3.3:
|
||||
resolution: {integrity: sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==}
|
||||
|
||||
/html-tags@3.3.1:
|
||||
resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==}
|
||||
engines: {node: '>=8'}
|
||||
dev: true
|
||||
|
||||
/idb@7.1.1:
|
||||
resolution: {integrity: sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==}
|
||||
dev: true
|
||||
@@ -3542,6 +3687,10 @@ packages:
|
||||
/inherits@2.0.4:
|
||||
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
|
||||
|
||||
/inline-style-parser@0.1.1:
|
||||
resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==}
|
||||
dev: true
|
||||
|
||||
/internal-slot@1.0.5:
|
||||
resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==}
|
||||
engines: {node: '>= 0.4'}
|
||||
@@ -3585,8 +3734,8 @@ packages:
|
||||
resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
|
||||
engines: {node: '>= 0.4'}
|
||||
|
||||
/is-core-module@2.11.0:
|
||||
resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==}
|
||||
/is-core-module@2.12.0:
|
||||
resolution: {integrity: sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==}
|
||||
dependencies:
|
||||
has: 1.0.3
|
||||
|
||||
@@ -3615,6 +3764,13 @@ packages:
|
||||
dependencies:
|
||||
is-extglob: 2.1.1
|
||||
|
||||
/is-html@2.0.0:
|
||||
resolution: {integrity: sha512-S+OpgB5i7wzIue/YSE5hg0e5ZYfG3hhpNh9KGl6ayJ38p7ED6wxQLd1TV91xHpcTvw90KMJ9EwN3F/iNflHBVg==}
|
||||
engines: {node: '>=8'}
|
||||
dependencies:
|
||||
html-tags: 3.3.1
|
||||
dev: true
|
||||
|
||||
/is-module@1.0.0:
|
||||
resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==}
|
||||
|
||||
@@ -3786,7 +3942,6 @@ packages:
|
||||
hasBin: true
|
||||
dependencies:
|
||||
minimist: 1.2.8
|
||||
dev: false
|
||||
|
||||
/json5@2.2.3:
|
||||
resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
|
||||
@@ -3805,6 +3960,22 @@ packages:
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: true
|
||||
|
||||
/jsx-ast-utils@3.3.3:
|
||||
resolution: {integrity: sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==}
|
||||
engines: {node: '>=4.0'}
|
||||
dependencies:
|
||||
array-includes: 3.1.6
|
||||
object.assign: 4.1.4
|
||||
dev: true
|
||||
|
||||
/kebab-case@1.0.2:
|
||||
resolution: {integrity: sha512-7n6wXq4gNgBELfDCpzKc+mRrZFs7D+wgfF5WRFLNAr4DA/qtr9Js8uOAVAfHhuLMfAcQ0pRKqbpjx+TcJVdE1Q==}
|
||||
dev: true
|
||||
|
||||
/known-css-properties@0.24.0:
|
||||
resolution: {integrity: sha512-RTSoaUAfLvpR357vWzAz/50Q/BmHfmE6ETSWfutT0AJiw10e6CmcdYRQJlLRd95B53D0Y2aD1jSxD3V3ySF+PA==}
|
||||
dev: true
|
||||
|
||||
/kolorist@1.7.0:
|
||||
resolution: {integrity: sha512-ymToLHqL02udwVdbkowNpzjFd6UzozMtshPQKVi5k1EjKRqKqBrOnE9QbLEb0/pV76SAiIT13hdL8R6suc+f3g==}
|
||||
|
||||
@@ -3869,7 +4040,6 @@ packages:
|
||||
resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==}
|
||||
dependencies:
|
||||
sourcemap-codec: 1.4.8
|
||||
dev: true
|
||||
|
||||
/magic-string@0.27.0:
|
||||
resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==}
|
||||
@@ -3938,7 +4108,6 @@ packages:
|
||||
|
||||
/ms@2.1.3:
|
||||
resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
|
||||
dev: false
|
||||
|
||||
/mz@2.7.0:
|
||||
resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
|
||||
@@ -4041,7 +4210,6 @@ packages:
|
||||
call-bind: 1.0.2
|
||||
define-properties: 1.2.0
|
||||
es-abstract: 1.21.2
|
||||
dev: false
|
||||
|
||||
/on-finished@2.3.0:
|
||||
resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==}
|
||||
@@ -4218,6 +4386,19 @@ packages:
|
||||
resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
|
||||
engines: {node: '>= 0.8.0'}
|
||||
|
||||
/prettier-linter-helpers@1.0.0:
|
||||
resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==}
|
||||
engines: {node: '>=6.0.0'}
|
||||
dependencies:
|
||||
fast-diff: 1.2.0
|
||||
dev: true
|
||||
|
||||
/prettier@2.8.7:
|
||||
resolution: {integrity: sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==}
|
||||
engines: {node: '>=10.13.0'}
|
||||
hasBin: true
|
||||
dev: true
|
||||
|
||||
/pretty-bytes@5.6.0:
|
||||
resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==}
|
||||
engines: {node: '>=6'}
|
||||
@@ -4323,6 +4504,9 @@ packages:
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: true
|
||||
|
||||
/resize-detector@0.3.0:
|
||||
resolution: {integrity: sha512-R/tCuvuOHQ8o2boRP6vgx8hXCCy87H1eY9V5imBYeVNyNVpuL9ciReSccLj2gDcax9+2weXy3bc8Vv+NRXeEvQ==}
|
||||
|
||||
/resolve-from@4.0.0:
|
||||
resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
|
||||
engines: {node: '>=4'}
|
||||
@@ -4331,7 +4515,7 @@ packages:
|
||||
resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
is-core-module: 2.11.0
|
||||
is-core-module: 2.12.0
|
||||
path-parse: 1.0.7
|
||||
supports-preserve-symlinks-flag: 1.0.0
|
||||
|
||||
@@ -4436,8 +4620,8 @@ packages:
|
||||
resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==}
|
||||
hasBin: true
|
||||
|
||||
/semver@7.3.8:
|
||||
resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==}
|
||||
/semver@7.4.0:
|
||||
resolution: {integrity: sha512-RgOxM8Mw+7Zus0+zcLEUn8+JfoLpj/huFTItQy2hsM4khuC1HYRDp0cU482Ewn/Fcy6bCjufD8vAj7voC66KQw==}
|
||||
engines: {node: '>=10'}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
@@ -4526,14 +4710,14 @@ packages:
|
||||
polka: 1.0.0-next.22
|
||||
rollup: 3.20.2
|
||||
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)
|
||||
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)(vue@3.2.47)
|
||||
terser: 5.16.9
|
||||
undici: 5.21.2
|
||||
vite: 4.2.1(@types/node@18.15.11)
|
||||
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.2.1)(vue@3.2.47):
|
||||
resolution: {integrity: sha512-kne2HZlnSMzsirdnvNs1CsDqBl0L0uvKKt1t4de1CH7JIngyqoMcER97jTE0Ejr84KknANaKAdvJAzZcL7Ueng==}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
@@ -4600,11 +4784,13 @@ packages:
|
||||
terser: 5.16.9
|
||||
undici: 5.21.2
|
||||
vite: 4.2.1(@types/node@18.15.11)
|
||||
vite-plugin-inspect: 0.7.19(rollup@3.20.2)(vite@4.2.1)
|
||||
vite-plugin-inspect: 0.7.20(rollup@3.20.2)(vite@4.2.1)(vue@3.2.47)
|
||||
vite-plugin-solid: 2.7.0(solid-js@1.7.3)(vite@4.2.1)
|
||||
wait-on: 6.0.1(debug@4.3.4)
|
||||
transitivePeerDependencies:
|
||||
- '@vue/composition-api'
|
||||
- supports-color
|
||||
- vue
|
||||
|
||||
/source-map-js@1.0.2:
|
||||
resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
|
||||
@@ -4634,7 +4820,6 @@ packages:
|
||||
/sourcemap-codec@1.4.8:
|
||||
resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==}
|
||||
deprecated: Please use @jridgewell/sourcemap-codec instead
|
||||
dev: true
|
||||
|
||||
/statuses@1.5.0:
|
||||
resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==}
|
||||
@@ -4705,7 +4890,6 @@ packages:
|
||||
/strip-bom@3.0.0:
|
||||
resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
|
||||
engines: {node: '>=4'}
|
||||
dev: false
|
||||
|
||||
/strip-comments@2.0.1:
|
||||
resolution: {integrity: sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==}
|
||||
@@ -4716,6 +4900,12 @@ packages:
|
||||
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
|
||||
engines: {node: '>=8'}
|
||||
|
||||
/style-to-object@0.3.0:
|
||||
resolution: {integrity: sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==}
|
||||
dependencies:
|
||||
inline-style-parser: 0.1.1
|
||||
dev: true
|
||||
|
||||
/sucrase@3.32.0:
|
||||
resolution: {integrity: sha512-ydQOU34rpSyj2TGyz4D2p8rbktIOZ8QY9s+DGLvFU1i5pWJE8vkpruCjGCMHsdXwnD7JDcS+noSwM/a7zyNFDQ==}
|
||||
engines: {node: '>=8'}
|
||||
@@ -4859,11 +5049,13 @@ packages:
|
||||
json5: 1.0.2
|
||||
minimist: 1.2.8
|
||||
strip-bom: 3.0.0
|
||||
dev: false
|
||||
|
||||
/tslib@1.14.1:
|
||||
resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==}
|
||||
|
||||
/tslib@2.3.0:
|
||||
resolution: {integrity: sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==}
|
||||
|
||||
/tslib@2.5.0:
|
||||
resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==}
|
||||
|
||||
@@ -5020,8 +5212,8 @@ packages:
|
||||
resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
|
||||
engines: {node: '>= 0.8'}
|
||||
|
||||
/vite-plugin-inspect@0.7.19(rollup@3.20.2)(vite@4.2.1):
|
||||
resolution: {integrity: sha512-OdKObJGdzOMR7SuqykN/Rb6rVtMK1wp4EmUTM3xhTCuSR1K/oM7fi4CKeBWhpYSkqop7O4gVB/MOUk7+RO7gIQ==}
|
||||
/vite-plugin-inspect@0.7.20(rollup@3.20.2)(vite@4.2.1)(vue@3.2.47):
|
||||
resolution: {integrity: sha512-vpfIAGtkBtpeEWFWUulxmU9tG/EgLMS37te7zzXnoshH+FxcgO7/kUTHaKTF7gOXkMNpHsVX9+BWMMx4iM5dqg==}
|
||||
engines: {node: '>=14'}
|
||||
peerDependencies:
|
||||
vite: ^3.1.0 || ^4.0.0
|
||||
@@ -5029,14 +5221,18 @@ packages:
|
||||
'@antfu/utils': 0.7.2
|
||||
'@rollup/pluginutils': 5.0.2(rollup@3.20.2)
|
||||
debug: 4.3.4
|
||||
echarts: 5.4.2
|
||||
fs-extra: 11.1.1
|
||||
kolorist: 1.7.0
|
||||
sirv: 2.0.2
|
||||
ufo: 1.1.1
|
||||
vite: 4.2.1(@types/node@18.15.11)
|
||||
vue-echarts: 6.5.4(echarts@5.4.2)(vue@3.2.47)
|
||||
transitivePeerDependencies:
|
||||
- '@vue/composition-api'
|
||||
- rollup
|
||||
- supports-color
|
||||
- vue
|
||||
|
||||
/vite-plugin-pwa@0.14.7(vite@4.2.1)(workbox-build@6.5.4)(workbox-window@6.5.4):
|
||||
resolution: {integrity: sha512-dNJaf0fYOWncmjxv9HiSa2xrSjipjff7IkYE5oIUJ2x5HKu3cXgA8LRgzOwTc5MhwyFYRSU0xyN0Phbx3NsQYw==}
|
||||
@@ -5126,6 +5322,45 @@ packages:
|
||||
dependencies:
|
||||
vite: 4.2.1(@types/node@18.15.11)
|
||||
|
||||
/vue-demi@0.13.11(vue@3.2.47):
|
||||
resolution: {integrity: sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==}
|
||||
engines: {node: '>=12'}
|
||||
hasBin: true
|
||||
requiresBuild: true
|
||||
peerDependencies:
|
||||
'@vue/composition-api': ^1.0.0-rc.1
|
||||
vue: ^3.0.0-0 || ^2.6.0
|
||||
peerDependenciesMeta:
|
||||
'@vue/composition-api':
|
||||
optional: true
|
||||
dependencies:
|
||||
vue: 3.2.47
|
||||
|
||||
/vue-echarts@6.5.4(echarts@5.4.2)(vue@3.2.47):
|
||||
resolution: {integrity: sha512-pLJTk2hfhauoWdmiZGXByAtcO6bpfnAS+jkJqKimSBSV5I5ckh2nka9duLlIVbTvQOEb2tFa0XiXjACQNcEfpA==}
|
||||
requiresBuild: true
|
||||
peerDependencies:
|
||||
'@vue/composition-api': ^1.0.5
|
||||
echarts: ^5.4.1
|
||||
vue: ^2.6.12 || ^3.1.1
|
||||
peerDependenciesMeta:
|
||||
'@vue/composition-api':
|
||||
optional: true
|
||||
dependencies:
|
||||
echarts: 5.4.2
|
||||
resize-detector: 0.3.0
|
||||
vue: 3.2.47
|
||||
vue-demi: 0.13.11(vue@3.2.47)
|
||||
|
||||
/vue@3.2.47:
|
||||
resolution: {integrity: sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==}
|
||||
dependencies:
|
||||
'@vue/compiler-dom': 3.2.47
|
||||
'@vue/compiler-sfc': 3.2.47
|
||||
'@vue/runtime-dom': 3.2.47
|
||||
'@vue/server-renderer': 3.2.47(vue@3.2.47)
|
||||
'@vue/shared': 3.2.47
|
||||
|
||||
/wait-on@6.0.1(debug@4.3.4):
|
||||
resolution: {integrity: sha512-zht+KASY3usTY5u2LgaNqn/Cd8MukxLGjdcZxT2ns5QzDmTFc4XoWBgC+C/na+sMRZTuVygQoMYwdcVjHnYIVw==}
|
||||
engines: {node: '>=10.0.0'}
|
||||
@@ -5406,3 +5641,8 @@ packages:
|
||||
/yocto-queue@0.1.0:
|
||||
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
|
||||
engines: {node: '>=10'}
|
||||
|
||||
/zrender@5.4.3:
|
||||
resolution: {integrity: sha512-DRUM4ZLnoaT0PBVvGBDO9oWIDBKFdAVieNWxWwK0niYzJCMwGchRk21/hsE+RKkIveH3XHCyvXcJDkgLVvfizQ==}
|
||||
dependencies:
|
||||
tslib: 2.3.0
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import logo from '~/assets/icons/mutiny-logo.svg';
|
||||
import { SafeArea } from "~/components/layout";
|
||||
import BalanceBox from "~/components/BalanceBox";
|
||||
import SafeArea from "~/components/SafeArea";
|
||||
import NavBar from "~/components/NavBar";
|
||||
|
||||
// TODO: use this reload prompt for real
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { Motion, Presence } from "@motionone/solid";
|
||||
import { createResource, Show, Suspense } from "solid-js";
|
||||
|
||||
import { ButtonLink } from "~/components/Button";
|
||||
import { ButtonLink } from "~/components/layout";
|
||||
import { useMegaStore } from "~/state/megaStore";
|
||||
|
||||
function prettyPrintAmount(n?: number | bigint): string {
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
import { ParentComponent } from "solid-js"
|
||||
|
||||
const Card: ParentComponent<{ title?: string }> = (props) => {
|
||||
return (
|
||||
<div class='rounded-xl p-4 flex flex-col gap-2 bg-[rgba(0,0,0,0.5)]'>
|
||||
{props.title && <header class='text-sm font-semibold uppercase'>{props.title}</header>}
|
||||
{props.children}
|
||||
</div>
|
||||
|
||||
)
|
||||
}
|
||||
|
||||
export default Card
|
||||
@@ -1,21 +1,198 @@
|
||||
import { useMegaStore } from "~/state/megaStore";
|
||||
import { ButtonLink } from "./Button";
|
||||
import Card from "./Card";
|
||||
import PeerConnectModal from "./PeerConnectModal";
|
||||
import { createResource } from "solid-js";
|
||||
import { ButtonLink, Card, Hr, SmallHeader, Button } from "~/components/layout";
|
||||
import PeerConnectModal from "~/components/PeerConnectModal";
|
||||
import { For, Show, Suspense, createResource, createSignal } from "solid-js";
|
||||
import { MutinyChannel, MutinyPeer } from "@mutinywallet/node-manager";
|
||||
import { TextField } from "@kobalte/core";
|
||||
import mempoolTxUrl from "~/utils/mempoolTxUrl";
|
||||
import eify from "~/utils/eify";
|
||||
|
||||
function PeersList() {
|
||||
const [state, _] = useMegaStore()
|
||||
|
||||
const getPeers = async () => {
|
||||
return await state.node_manager?.list_peers() as Promise<MutinyPeer[]>
|
||||
};
|
||||
|
||||
const [peers, { refetch }] = createResource(getPeers);
|
||||
|
||||
return (
|
||||
<>
|
||||
<SmallHeader>
|
||||
Peers
|
||||
</SmallHeader>
|
||||
{/* By wrapping this in a suspense I don't cause the page to jump to the top */}
|
||||
<Suspense>
|
||||
<For each={peers()} fallback={<code>No peers</code>}>
|
||||
{(peer) => (
|
||||
<pre class="overflow-x-auto whitespace-pre-line break-all">
|
||||
{JSON.stringify(peer, null, 2)}
|
||||
</pre>
|
||||
)}
|
||||
</For>
|
||||
</Suspense>
|
||||
<Button layout="small" onClick={refetch}>Refresh Peers</Button>
|
||||
<ConnectPeer refetchPeers={refetch} />
|
||||
</>
|
||||
)
|
||||
}
|
||||
|
||||
function ConnectPeer(props: { refetchPeers: () => any }) {
|
||||
const [state, _] = useMegaStore()
|
||||
|
||||
const [value, setValue] = createSignal("");
|
||||
|
||||
const onSubmit = async (e: SubmitEvent) => {
|
||||
e.preventDefault();
|
||||
|
||||
const peerConnectString = value().trim();
|
||||
const nodes = await state.node_manager?.list_nodes();
|
||||
const firstNode = nodes[0] as string || ""
|
||||
|
||||
await state.node_manager?.connect_to_peer(firstNode, peerConnectString)
|
||||
|
||||
await props.refetchPeers()
|
||||
|
||||
setValue("");
|
||||
};
|
||||
|
||||
return (
|
||||
<form class="border border-white/20 rounded-xl p-2 flex flex-col gap-4" onSubmit={onSubmit} >
|
||||
<TextField.Root
|
||||
value={value()}
|
||||
onValueChange={setValue}
|
||||
validationState={(value() == "" || value().startsWith("mutiny:")) ? "valid" : "invalid"}
|
||||
class="flex flex-col gap-2"
|
||||
>
|
||||
<TextField.Label class="text-sm font-semibold uppercase" >Connect Peer</TextField.Label>
|
||||
<TextField.Input class="w-full p-2 rounded-lg text-black" placeholder="mutiny:028241..." />
|
||||
<TextField.ErrorMessage class="text-red-500">Expecting something like mutiny:abc123...</TextField.ErrorMessage>
|
||||
</TextField.Root>
|
||||
<Button layout="small" type="submit">Connect</Button>
|
||||
</form >
|
||||
)
|
||||
}
|
||||
|
||||
function ChannelsList() {
|
||||
const [state, _] = useMegaStore()
|
||||
|
||||
const getChannels = async () => {
|
||||
return await state.node_manager?.list_channels() as Promise<MutinyChannel[]>
|
||||
};
|
||||
|
||||
const [channels, { refetch }] = createResource(getChannels);
|
||||
|
||||
const network = state.node_manager?.get_network();
|
||||
|
||||
return (
|
||||
<>
|
||||
<SmallHeader>
|
||||
Channels
|
||||
</SmallHeader>
|
||||
{/* By wrapping this in a suspense I don't cause the page to jump to the top */}
|
||||
<Suspense>
|
||||
<For each={channels()} fallback={<code>No channels</code>}>
|
||||
{(channel) => (
|
||||
<>
|
||||
<pre class="overflow-x-auto whitespace-pre-line break-all">
|
||||
{JSON.stringify(channel, null, 2)}
|
||||
</pre>
|
||||
<a class="text-sm font-light opacity-50 mt-2" href={mempoolTxUrl(channel.outpoint?.split(":")[0], network)} target="_blank" rel="noreferrer">
|
||||
Mempool Link
|
||||
</a>
|
||||
</>
|
||||
)}
|
||||
|
||||
</For>
|
||||
</Suspense>
|
||||
<Button type="button" layout="small" onClick={(e) => { e.preventDefault(); refetch() }}>Refresh Channels</Button>
|
||||
<OpenChannel refetchChannels={refetch} />
|
||||
</>
|
||||
)
|
||||
}
|
||||
|
||||
function OpenChannel(props: { refetchChannels: () => any }) {
|
||||
const [state, _] = useMegaStore()
|
||||
|
||||
const [creationError, setCreationError] = createSignal<Error>();
|
||||
|
||||
const [amount, setAmount] = createSignal("");
|
||||
const [peerPubkey, setPeerPubkey] = createSignal("");
|
||||
|
||||
const [newChannel, setNewChannel] = createSignal<MutinyChannel>();
|
||||
|
||||
const onSubmit = async (e: SubmitEvent) => {
|
||||
e.preventDefault();
|
||||
|
||||
// TODO: figure out why this doesn't catch the rust error
|
||||
// src/logging.rs:29
|
||||
// ERROR: Could not create a signed transaction to open channel with: The invoice or address is on a different network.
|
||||
try {
|
||||
const pubkey = peerPubkey().trim();
|
||||
const bigAmount = BigInt(amount());
|
||||
|
||||
const nodes = await state.node_manager?.list_nodes();
|
||||
const firstNode = nodes[0] as string || ""
|
||||
|
||||
const new_channel = await state.node_manager?.open_channel(firstNode, pubkey, bigAmount)
|
||||
|
||||
setNewChannel(new_channel)
|
||||
|
||||
await props.refetchChannels()
|
||||
|
||||
setAmount("");
|
||||
setPeerPubkey("");
|
||||
|
||||
} catch (e) {
|
||||
setCreationError(eify(e))
|
||||
}
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
<form class="border border-white/20 rounded-xl p-2 flex flex-col gap-4" onSubmit={onSubmit} >
|
||||
<TextField.Root
|
||||
value={peerPubkey()}
|
||||
onValueChange={setPeerPubkey}
|
||||
class="flex flex-col gap-2"
|
||||
>
|
||||
<TextField.Label class="text-sm font-semibold uppercase" >Pubkey</TextField.Label>
|
||||
<TextField.Input class="w-full p-2 rounded-lg text-black" />
|
||||
</TextField.Root>
|
||||
<TextField.Root
|
||||
value={amount()}
|
||||
onValueChange={setAmount}
|
||||
class="flex flex-col gap-2"
|
||||
>
|
||||
<TextField.Label class="text-sm font-semibold uppercase" >Amount</TextField.Label>
|
||||
<TextField.Input
|
||||
type="number"
|
||||
class="w-full p-2 rounded-lg text-black" />
|
||||
</TextField.Root>
|
||||
<Button layout="small" type="submit">Open Channel</Button>
|
||||
</form >
|
||||
<Show when={newChannel()}>
|
||||
<pre class="overflow-x-auto whitespace-pre-line break-all">
|
||||
{JSON.stringify(newChannel()?.outpoint, null, 2)}
|
||||
</pre>
|
||||
<pre>{newChannel()?.outpoint}</pre>
|
||||
<a class="text-sm font-light opacity-50 mt-2" href={mempoolTxUrl(newChannel()?.outpoint?.split(":")[0], "signet")} target="_blank" rel="noreferrer">
|
||||
Mempool Link
|
||||
</a>
|
||||
</Show>
|
||||
<Show when={creationError()}>
|
||||
<pre>{creationError()?.message}</pre>
|
||||
</Show>
|
||||
</>
|
||||
)
|
||||
}
|
||||
|
||||
export default function KitchenSink() {
|
||||
const [state, _] = useMegaStore()
|
||||
|
||||
// TODO: would be nice if this was just newest unused address
|
||||
const getNewAddress = async () => {
|
||||
if (state.node_manager) {
|
||||
console.log("Getting new address");
|
||||
const address = await state.node_manager?.get_new_address();
|
||||
return address
|
||||
} else {
|
||||
return undefined
|
||||
}
|
||||
return await state.node_manager?.get_new_address();
|
||||
};
|
||||
|
||||
const [address] = createResource(getNewAddress);
|
||||
@@ -24,6 +201,10 @@ export default function KitchenSink() {
|
||||
<Card title="Kitchen Sink">
|
||||
<PeerConnectModal />
|
||||
<ButtonLink target="_blank" rel="noopener noreferrer" href={`https://faucet.mutinynet.com/?address=${address()}`}>Tap the Faucet</ButtonLink>
|
||||
<Hr />
|
||||
<PeersList />
|
||||
<Hr />
|
||||
<ChannelsList />
|
||||
</Card>
|
||||
)
|
||||
}
|
||||
@@ -1,7 +1,6 @@
|
||||
import { QRCodeSVG } from "solid-qr-code";
|
||||
import Card from "~/components/Card";
|
||||
import { As, Dialog } from "@kobalte/core";
|
||||
import { Button } from "~/components/Button";
|
||||
import { Button, Card } from "~/components/layout";
|
||||
import { useMegaStore } from "~/state/megaStore";
|
||||
import { Show, createResource } from "solid-js";
|
||||
import { getExistingSettings } from "~/logic/nodeManagerSetup";
|
||||
@@ -12,7 +11,7 @@ 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"
|
||||
const SMALL_HEADER = "text-sm font-semibold uppercase"
|
||||
|
||||
export default function PeerConnectModalKobalte() {
|
||||
export default function PeerConnectModal() {
|
||||
const [state, _] = useMegaStore()
|
||||
|
||||
const getPeerConnectString = async () => {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import QrScanner from 'qr-scanner';
|
||||
import { createSignal, onCleanup, onMount } from 'solid-js';
|
||||
|
||||
export default function Scanner({ onResult }: { onResult: (result: string) => void }) {
|
||||
export default function Scanner(props: { onResult: (result: string) => void }) {
|
||||
let container: HTMLVideoElement | null;
|
||||
|
||||
// TODO: not sure it's appropriate to use a signal for this but it works!
|
||||
@@ -12,7 +12,7 @@ export default function Scanner({ onResult }: { onResult: (result: string) => vo
|
||||
const newScanner = new QrScanner(
|
||||
container,
|
||||
(result: { data: string }) => {
|
||||
onResult(result.data);
|
||||
props.onResult(result.data);
|
||||
},
|
||||
{
|
||||
returnDetailedScanResult: true,
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
import type { Component } from 'solid-js'
|
||||
import { Show } from 'solid-js'
|
||||
import { useRegisterSW } from 'virtual:pwa-register/solid'
|
||||
import Card from './Card'
|
||||
import { Button } from './Button'
|
||||
import { Button, Card } from '~/components/layout'
|
||||
|
||||
const ReloadPrompt: Component = () => {
|
||||
const {
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
import { JSX } from "solid-js";
|
||||
|
||||
export default function SafeArea(props: { children: JSX.Element }) {
|
||||
return (
|
||||
<div class="safe-top safe-left safe-right safe-bottom">
|
||||
<div class="disable-scrollbars max-h-screen h-full overflow-y-scroll md:pl-[8rem] md:pr-[6rem]">
|
||||
{props.children}
|
||||
</div>
|
||||
</div >
|
||||
)
|
||||
}
|
||||
@@ -14,7 +14,8 @@ const button = cva(["p-4", "rounded-xl", "text-xl", "font-semibold"], {
|
||||
},
|
||||
layout: {
|
||||
flex: "flex-1",
|
||||
pad: "px-8"
|
||||
pad: "px-8",
|
||||
small: "p-1 w-auto",
|
||||
},
|
||||
},
|
||||
|
||||
@@ -4,19 +4,17 @@ interface LinkifyProps {
|
||||
text: string;
|
||||
}
|
||||
|
||||
// chat gpt wrote this lol
|
||||
export default function Linkify(props: LinkifyProps): JSX.Element {
|
||||
const { text } = props;
|
||||
const links: (string | JSX.Element)[] = [];
|
||||
|
||||
const pattern = /((https?:\/\/|www\.)\S+)/gi;
|
||||
let lastIndex = 0;
|
||||
let match;
|
||||
|
||||
while ((match = pattern.exec(text)) !== null) {
|
||||
while ((match = pattern.exec(props.text)) !== null) {
|
||||
const link = match[1];
|
||||
const href = link.startsWith('http') ? link : `https://${link}`;
|
||||
const beforeLink = text.slice(lastIndex, match.index);
|
||||
const beforeLink = props.text.slice(lastIndex, match.index);
|
||||
lastIndex = pattern.lastIndex;
|
||||
|
||||
if (beforeLink) {
|
||||
@@ -26,7 +24,7 @@ export default function Linkify(props: LinkifyProps): JSX.Element {
|
||||
links.push(<a href={href} target="_blank" rel="noopener noreferrer">{link}</a>);
|
||||
}
|
||||
|
||||
const remainingText = text.slice(lastIndex);
|
||||
const remainingText = props.text.slice(lastIndex);
|
||||
if (remainingText) {
|
||||
links.push(remainingText);
|
||||
}
|
||||
@@ -1,4 +1,31 @@
|
||||
export default function LoadingSpinner() {
|
||||
import { ParentComponent } from "solid-js"
|
||||
import Linkify from "./Linkify"
|
||||
import { Button, ButtonLink } from "./Button"
|
||||
import { Separator } from "@kobalte/core"
|
||||
|
||||
const SmallHeader: ParentComponent = (props) => <header class='text-sm font-semibold uppercase'>{props.children}</header>
|
||||
|
||||
const Card: ParentComponent<{ title?: string }> = (props) => {
|
||||
return (
|
||||
<div class='rounded-xl p-4 flex flex-col gap-2 bg-[rgba(0,0,0,0.5)]'>
|
||||
{props.title && <SmallHeader>{props.title}</SmallHeader>}
|
||||
{props.children}
|
||||
</div>
|
||||
|
||||
)
|
||||
}
|
||||
|
||||
const SafeArea: ParentComponent = (props) => {
|
||||
return (
|
||||
<div class="safe-top safe-left safe-right safe-bottom">
|
||||
<div class="disable-scrollbars max-h-screen h-full overflow-y-scroll md:pl-[8rem] md:pr-[6rem]">
|
||||
{props.children}
|
||||
</div>
|
||||
</div >
|
||||
)
|
||||
}
|
||||
|
||||
const LoadingSpinner = () => {
|
||||
return (<div role="status" class="w-full h-full grid" >
|
||||
<svg aria-hidden="true" class="w-8 h-8 mr-2 text-gray-200 animate-spin dark:text-gray-600 fill-m-red place-self-center" viewBox="0 0 100 101" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z" fill="currentColor" />
|
||||
@@ -6,4 +33,8 @@ export default function LoadingSpinner() {
|
||||
</svg>
|
||||
<span class="sr-only">Loading...</span>
|
||||
</div>);
|
||||
}
|
||||
}
|
||||
|
||||
const Hr = () => <Separator.Root class="my-4 border-white/20" />
|
||||
|
||||
export { SmallHeader, Card, SafeArea, LoadingSpinner, Button, ButtonLink, Linkify, Hr }
|
||||
@@ -1,7 +1,7 @@
|
||||
import { Component, For } from "solid-js";
|
||||
|
||||
import { Event, nip19 } from "nostr-tools"
|
||||
import Linkify from "~/components/Linkify";
|
||||
import { Linkify } from "~/components/layout";
|
||||
|
||||
type NostrEvent = {
|
||||
"content": string, "created_at": number, id?: string
|
||||
|
||||
@@ -10,7 +10,7 @@ const relayUrls = [
|
||||
]
|
||||
|
||||
import { SimplePool } from 'nostr-tools'
|
||||
import LoadingSpinner from "~/components/LoadingSpinner";
|
||||
import { LoadingSpinner } from "~/components/layout";
|
||||
import Notes from "~/components/waitlist/Notes";
|
||||
|
||||
const pool = new SimplePool()
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import { createSignal } from "solid-js";
|
||||
import { Button } from "~/components/Button";
|
||||
import LoadingSpinner from "../LoadingSpinner";
|
||||
import { Button, LoadingSpinner } from "~/components/layout";
|
||||
|
||||
const INPUT = "w-full mb-4 p-2 rounded-lg text-black"
|
||||
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
import { createResource, Show } from "solid-js";
|
||||
import { QRCodeSVG } from "solid-qr-code";
|
||||
import { Button } from "~/components/Button";
|
||||
import { Button, SafeArea } from "~/components/layout";
|
||||
import NavBar from "~/components/NavBar";
|
||||
import SafeArea from "~/components/SafeArea";
|
||||
import { useMegaStore } from "~/state/megaStore";
|
||||
import { useCopy } from "~/utils/useCopy";
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import Reader from "~/components/Reader";
|
||||
import { createSignal, Show } from "solid-js";
|
||||
import { useNavigate } from "solid-start";
|
||||
import { Button } from "~/components/Button";
|
||||
import { Button } from "~/components/layout";
|
||||
|
||||
export default function Scanner() {
|
||||
const [scanResult, setScanResult] = createSignal<string | null>(null);
|
||||
@@ -27,7 +27,7 @@ export default function Scanner() {
|
||||
</div>
|
||||
</div>
|
||||
</Show>
|
||||
<div class="w-full flex flex-col items-center fixed bottom-[2rem] gap-8 px-8 bg-pink-500">
|
||||
<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">
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import { useNavigate } from "solid-start";
|
||||
import { Button } from "~/components/Button";
|
||||
import { Button, SafeArea } from "~/components/layout";
|
||||
import NavBar from "~/components/NavBar";
|
||||
import SafeArea from "~/components/SafeArea";
|
||||
import { useMegaStore } from "~/state/megaStore";
|
||||
|
||||
export default function Settings() {
|
||||
|
||||
@@ -4,7 +4,7 @@ import { Switch, Match } from "solid-js";
|
||||
import { WaitlistAlreadyIn } from "~/components/waitlist/WaitlistAlreadyIn";
|
||||
import WaitlistForm from "~/components/waitlist/WaitlistForm";
|
||||
import { useMegaStore } from "~/state/megaStore";
|
||||
import LoadingSpinner from "~/components/LoadingSpinner";
|
||||
import { LoadingSpinner } from "~/components/layout";
|
||||
|
||||
function FullscreenLoader() {
|
||||
return (
|
||||
|
||||
@@ -63,16 +63,17 @@ export const Provider: ParentComponent = (props) => {
|
||||
};
|
||||
|
||||
// Fetch status from remote on load
|
||||
createEffect(async () => {
|
||||
const status = await actions.status()
|
||||
setState({ user_status: status })
|
||||
createEffect(() => {
|
||||
actions.status().then(status => {
|
||||
setState({ user_status: status })
|
||||
})
|
||||
})
|
||||
|
||||
// Only node manager when status is approved
|
||||
createEffect(async () => {
|
||||
createEffect(() => {
|
||||
if (state.user_status === "approved" && !state.node_manager) {
|
||||
console.log("running setup node manager...")
|
||||
await actions.setupNodeManager()
|
||||
actions.setupNodeManager().then(() => console.log("node manager setup done"))
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
10
src/utils/eify.ts
Normal file
10
src/utils/eify.ts
Normal file
@@ -0,0 +1,10 @@
|
||||
/// Sometimes we catch an error as `unknown` so this turns it into an Error.
|
||||
export default function eify(e: unknown): Error {
|
||||
if (e instanceof Error) {
|
||||
return e;
|
||||
} else if (typeof e === 'string') {
|
||||
return new Error(e);
|
||||
} else {
|
||||
return new Error('Unknown error');
|
||||
}
|
||||
}
|
||||
21
src/utils/mempoolTxUrl.ts
Normal file
21
src/utils/mempoolTxUrl.ts
Normal file
@@ -0,0 +1,21 @@
|
||||
export default function mempoolTxUrl(txid?: string, network?: string) {
|
||||
if (!txid || !network) {
|
||||
console.error("Problem creating the mempool url")
|
||||
return "#"
|
||||
}
|
||||
|
||||
if (network) {
|
||||
switch (network) {
|
||||
case "mainnet":
|
||||
return `https://mempool.space/tx/${txid}`
|
||||
case "testnet":
|
||||
return `https://mempool.space/testnet/tx/${txid}`
|
||||
case "signet":
|
||||
return `https://mutinynet.com/tx/${txid}`
|
||||
default:
|
||||
return `https://mempool.space/tx/${txid}`
|
||||
}
|
||||
}
|
||||
|
||||
return `https://mempool.space/tx/${txid}`
|
||||
}
|
||||
Reference in New Issue
Block a user