Merge branch 'main' into the-federation-layer-v0.6.0

This commit is contained in:
Reckless_Satoshi 2023-12-25 14:04:13 +00:00 committed by GitHub
commit 1724fb2074
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
18 changed files with 973 additions and 519 deletions

View File

@ -23,7 +23,7 @@ jobs:
- name: 'Download Android Web.bundle Artifact (built frontend)' - name: 'Download Android Web.bundle Artifact (built frontend)'
if: inputs.semver == '' # Only if workflow fired from frontend-build.yml if: inputs.semver == '' # Only if workflow fired from frontend-build.yml
uses: dawidd6/action-download-artifact@v2 uses: dawidd6/action-download-artifact@v3
with: with:
workflow: frontend-build.yml workflow: frontend-build.yml
workflow_conclusion: success workflow_conclusion: success
@ -32,7 +32,7 @@ jobs:
- name: 'Download main.js Artifact for a release' - name: 'Download main.js Artifact for a release'
if: inputs.semver != '' # Only if fired as job in release.yml if: inputs.semver != '' # Only if fired as job in release.yml
uses: actions/download-artifact@v3 uses: actions/download-artifact@v4
with: with:
name: mobile-web.bundle name: mobile-web.bundle
path: mobile/html/Web.bundle path: mobile/html/Web.bundle
@ -66,7 +66,7 @@ jobs:
# Create artifacts (only for Release) # Create artifacts (only for Release)
# Create app-universal-release APK artifact asset for Release # Create app-universal-release APK artifact asset for Release
- name: 'Upload universal .apk Release Artifact (for Release)' - name: 'Upload universal .apk Release Artifact (for Release)'
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v4
if: inputs.semver != '' # If this workflow is called from release.yml if: inputs.semver != '' # If this workflow is called from release.yml
with: with:
name: robosats-${{ inputs.semver }}-universal.apk name: robosats-${{ inputs.semver }}-universal.apk
@ -74,7 +74,7 @@ jobs:
# Create app-arm64-v8a-release APK artifact asset for Release # Create app-arm64-v8a-release APK artifact asset for Release
- name: 'Upload arm64-v8a .apk Release Artifact (for Release)' - name: 'Upload arm64-v8a .apk Release Artifact (for Release)'
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v4
if: inputs.semver != '' # If this workflow is called from release.yml if: inputs.semver != '' # If this workflow is called from release.yml
with: with:
name: robosats-${{ inputs.semver }}-arm64-v8a.apk name: robosats-${{ inputs.semver }}-arm64-v8a.apk
@ -82,7 +82,7 @@ jobs:
# Create app-armeabi-v7a-release APK artifact asset for Release # Create app-armeabi-v7a-release APK artifact asset for Release
- name: 'Upload armeabi-v7a .apk Release Artifact (for Release)' - name: 'Upload armeabi-v7a .apk Release Artifact (for Release)'
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v4
if: inputs.semver != '' # If this workflow is called from release.yml if: inputs.semver != '' # If this workflow is called from release.yml
with: with:
name: robosats-${{ inputs.semver }}-armeabi-v7a.apk name: robosats-${{ inputs.semver }}-armeabi-v7a.apk
@ -90,7 +90,7 @@ jobs:
# Create app-x86_64-release APK artifact asset for Release # Create app-x86_64-release APK artifact asset for Release
- name: 'Upload x86_64 .apk Release Artifact (for Release)' - name: 'Upload x86_64 .apk Release Artifact (for Release)'
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v4
if: inputs.semver != '' # If this workflow is called from release.yml if: inputs.semver != '' # If this workflow is called from release.yml
with: with:
name: robosats-${{ inputs.semver }}-x86_64.apk name: robosats-${{ inputs.semver }}-x86_64.apk
@ -98,7 +98,7 @@ jobs:
# Create app-x86-release APK artifact asset for Release # Create app-x86-release APK artifact asset for Release
- name: 'Upload x86 .apk Release Artifact (for Release)' - name: 'Upload x86 .apk Release Artifact (for Release)'
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v4
if: inputs.semver != '' # If this workflow is called from release.yml if: inputs.semver != '' # If this workflow is called from release.yml
with: with:
name: robosats-${{ inputs.semver }}-x86.apk name: robosats-${{ inputs.semver }}-x86.apk

View File

@ -26,7 +26,7 @@ jobs:
- name: 'Download basic.selfhosted.js Artifact' - name: 'Download basic.selfhosted.js Artifact'
if: inputs.semver == '' # Only if workflow fired from frontend-build.yml if: inputs.semver == '' # Only if workflow fired from frontend-build.yml
uses: dawidd6/action-download-artifact@v2 uses: dawidd6/action-download-artifact@v3
with: with:
workflow: frontend-build.yml workflow: frontend-build.yml
workflow_conclusion: success workflow_conclusion: success
@ -35,14 +35,14 @@ jobs:
- name: 'Download main.js Artifact for a release' - name: 'Download main.js Artifact for a release'
if: inputs.semver != '' # Only if fired as job in release.yml if: inputs.semver != '' # Only if fired as job in release.yml
uses: actions/download-artifact@v3 uses: actions/download-artifact@v4
with: with:
name: web-basic-selfhosted-js name: web-basic-selfhosted-js
path: nodeapp/static/frontend/ path: nodeapp/static/frontend/
- name: 'Download pro.selfhosted.js Artifact' - name: 'Download pro.selfhosted.js Artifact'
if: inputs.semver == '' # Only if workflow fired from frontend-build.yml if: inputs.semver == '' # Only if workflow fired from frontend-build.yml
uses: dawidd6/action-download-artifact@v2 uses: dawidd6/action-download-artifact@v3
with: with:
workflow: frontend-build.yml workflow: frontend-build.yml
workflow_conclusion: success workflow_conclusion: success
@ -51,7 +51,7 @@ jobs:
- name: 'Download pro.js Artifact for a release' - name: 'Download pro.js Artifact for a release'
if: inputs.semver != '' # Only if fired as job in release.yml if: inputs.semver != '' # Only if fired as job in release.yml
uses: actions/download-artifact@v3 uses: actions/download-artifact@v4
with: with:
name: web-pro-selfhosted-js name: web-pro-selfhosted-js
path: nodeapp/static/frontend/ path: nodeapp/static/frontend/

View File

@ -17,7 +17,7 @@ jobs:
- name: 'Download Basic main.js Artifact' - name: 'Download Basic main.js Artifact'
if: inputs.semver == '' # Only if workflow fired from frontend-build.yml if: inputs.semver == '' # Only if workflow fired from frontend-build.yml
uses: dawidd6/action-download-artifact@v2 uses: dawidd6/action-download-artifact@v3
with: with:
workflow: frontend-build.yml workflow: frontend-build.yml
workflow_conclusion: success workflow_conclusion: success
@ -26,14 +26,14 @@ jobs:
- name: 'Download Basic main.js Artifact for a release' - name: 'Download Basic main.js Artifact for a release'
if: inputs.semver != '' # Only if fired as job in release.yml if: inputs.semver != '' # Only if fired as job in release.yml
uses: actions/download-artifact@v3 uses: actions/download-artifact@v4
with: with:
name: web-main-js name: web-main-js
path: frontend/static/frontend/ path: frontend/static/frontend/
- name: 'Download pro.js Artifact' - name: 'Download pro.js Artifact'
if: inputs.semver == '' # Only if workflow fired from frontend-build.yml if: inputs.semver == '' # Only if workflow fired from frontend-build.yml
uses: dawidd6/action-download-artifact@v2 uses: dawidd6/action-download-artifact@v3
with: with:
workflow: frontend-build.yml workflow: frontend-build.yml
workflow_conclusion: success workflow_conclusion: success
@ -42,7 +42,7 @@ jobs:
- name: 'Download pro.js Artifact for a release' - name: 'Download pro.js Artifact for a release'
if: inputs.semver != '' # Only if fired as job in release.yml if: inputs.semver != '' # Only if fired as job in release.yml
uses: actions/download-artifact@v3 uses: actions/download-artifact@v4
with: with:
name: web-pro-js name: web-pro-js
path: frontend/static/frontend/ path: frontend/static/frontend/

View File

@ -50,27 +50,27 @@ jobs:
cd frontend cd frontend
npm run build npm run build
- name: 'Archive Web Basic Build Results' - name: 'Archive Web Basic Build Results'
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v4
with: with:
name: web-main-js name: web-main-js
path: frontend/static/frontend/main.js path: frontend/static/frontend/main.js
- name: 'Archive Web Basic SelfhostedBuild Results' - name: 'Archive Web Basic SelfhostedBuild Results'
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v4
with: with:
name: web-basic-selfhosted-js name: web-basic-selfhosted-js
path: frontend/static/frontend/basic.selfhosted.js path: frontend/static/frontend/basic.selfhosted.js
- name: 'Archive Web PRO Build Results' - name: 'Archive Web PRO Build Results'
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v4
with: with:
name: web-pro-js name: web-pro-js
path: frontend/static/frontend/pro.js path: frontend/static/frontend/pro.js
- name: 'Archive Web PRO SelhostedBuild Results' - name: 'Archive Web PRO SelhostedBuild Results'
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v4
with: with:
name: web-pro-selfhosted-js name: web-pro-selfhosted-js
path: frontend/static/frontend/pro.selfhosted.js path: frontend/static/frontend/pro.selfhosted.js
- name: 'Archive Mobile Build Results' - name: 'Archive Mobile Build Results'
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v4
with: with:
name: mobile-web.bundle name: mobile-web.bundle
path: mobile/html/Web.bundle path: mobile/html/Web.bundle

View File

@ -77,7 +77,7 @@ jobs:
USE_TOR: False USE_TOR: False
- name: 'Upload coverage report' - name: 'Upload coverage report'
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v4
with: with:
name: coverage-report-${{ matrix.python-tag }}-${{ matrix.ln-vendor }} name: coverage-report-${{ matrix.python-tag }}-${{ matrix.ln-vendor }}
path: htmlcov/ path: htmlcov/

View File

@ -22,7 +22,7 @@ jobs:
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- uses: actions/setup-python@v4 - uses: actions/setup-python@v5
with: with:
python-version: '3.12' python-version: '3.12'
cache: pip cache: pip

View File

@ -83,7 +83,7 @@ jobs:
# Upload app-universal-release APK artifact asset # Upload app-universal-release APK artifact asset
- name: 'Download universal APK Artifact' - name: 'Download universal APK Artifact'
uses: actions/download-artifact@v3 uses: actions/download-artifact@v4
with: with:
name: robosats-${{ needs.check-versions.outputs.semver }}-universal.apk name: robosats-${{ needs.check-versions.outputs.semver }}-universal.apk
path: . path: .
@ -100,7 +100,7 @@ jobs:
# Upload app-arm64-v8a-release APK artifact asset # Upload app-arm64-v8a-release APK artifact asset
- name: 'Download arm64-v8a APK Artifact' - name: 'Download arm64-v8a APK Artifact'
uses: actions/download-artifact@v3 uses: actions/download-artifact@v4
with: with:
name: robosats-${{ needs.check-versions.outputs.semver }}-arm64-v8a.apk name: robosats-${{ needs.check-versions.outputs.semver }}-arm64-v8a.apk
path: . path: .
@ -117,7 +117,7 @@ jobs:
# Upload app-armeabi-v7a-release APK artifact asset # Upload app-armeabi-v7a-release APK artifact asset
- name: 'Download armeabi-v7a APK Artifact' - name: 'Download armeabi-v7a APK Artifact'
uses: actions/download-artifact@v3 uses: actions/download-artifact@v4
with: with:
name: robosats-${{ needs.check-versions.outputs.semver }}-armeabi-v7a.apk name: robosats-${{ needs.check-versions.outputs.semver }}-armeabi-v7a.apk
path: . path: .
@ -134,7 +134,7 @@ jobs:
# Upload app-x86_64-release APK artifact asset # Upload app-x86_64-release APK artifact asset
- name: 'Download x86_64 APK Artifact' - name: 'Download x86_64 APK Artifact'
uses: actions/download-artifact@v3 uses: actions/download-artifact@v4
with: with:
name: robosats-${{ needs.check-versions.outputs.semver }}-x86_64.apk name: robosats-${{ needs.check-versions.outputs.semver }}-x86_64.apk
path: . path: .
@ -151,7 +151,7 @@ jobs:
# Upload app-x86-release APK artifact asset # Upload app-x86-release APK artifact asset
- name: 'Download x86 APK Artifact' - name: 'Download x86 APK Artifact'
uses: actions/download-artifact@v3 uses: actions/download-artifact@v4
with: with:
name: robosats-${{ needs.check-versions.outputs.semver }}-x86.apk name: robosats-${{ needs.check-versions.outputs.semver }}-x86.apk
path: . path: .

View File

@ -68,6 +68,7 @@ Check out the [Developer Rewards Panel](https://github.com/users/Reckless-Satosh
- **[Bitcoin Magazine](https://bitcoinmagazine.com/business/robosats-private-bitcoin-exchange)** - **[Bitcoin Magazine](https://bitcoinmagazine.com/business/robosats-private-bitcoin-exchange)**
- **[KYC? Not Me!](https://kycnot.me/service/robosats)** - **[KYC? Not Me!](https://kycnot.me/service/robosats)**
- **[H17N Bitcoin](https://h17n.com/exchange/robosats/)** - **[H17N Bitcoin](https://h17n.com/exchange/robosats/)**
- **[blockdyor](https://blockdyor.com/robosats/)**
## Inspiration ## Inspiration
The concept of a simple custody-minimized lightning exchange with hold invoices is inspired in [P2PLNBOT](https://github.com/grunch/p2plnbot) by @grunch The concept of a simple custody-minimized lightning exchange with hold invoices is inspired in [P2PLNBOT](https://github.com/grunch/p2plnbot) by @grunch

View File

@ -36,6 +36,8 @@ class ChatRoomConsumer(AsyncWebsocketConsumer):
defaults={ defaults={
"maker": self.user, "maker": self.user,
"maker_connected": True, "maker_connected": True,
"taker": order.taker,
"taker_connected": True,
}, },
) )
@ -47,6 +49,8 @@ class ChatRoomConsumer(AsyncWebsocketConsumer):
defaults={ defaults={
"taker": self.user, "taker": self.user,
"taker_connected": True, "taker_connected": True,
"maker": order.maker,
"maker_connected": False,
}, },
) )

View File

@ -77,7 +77,7 @@ class ChatView(viewsets.ViewSet):
}, },
) )
# Poor idea: is_peer_connected() mockup. Update connection status based on last time a GET request was sent # is_peer_connected() mockup. Update connection status based on last time a GET request was sent
if chatroom.maker == request.user: if chatroom.maker == request.user:
chatroom.taker_connected = order.taker.last_login > ( chatroom.taker_connected = order.taker.last_login > (
timezone.now() - timedelta(minutes=1) timezone.now() - timedelta(minutes=1)

View File

@ -31,6 +31,7 @@ This is a non-exhaustive compilation based on past experience of users. We have
|[Blink](#blink-mobile-former-bitcoin-beach-wallet)|[2.2.73](https://www.blink.sv/)|{{page.phone}}|{{page.good}}|{{page.good}}|{{page.good}}|{{page.good}} |{{page.thumbsup}}| |[Blink](#blink-mobile-former-bitcoin-beach-wallet)|[2.2.73](https://www.blink.sv/)|{{page.phone}}|{{page.good}}|{{page.good}}|{{page.good}}|{{page.good}} |{{page.thumbsup}}|
|[Blixt](#blixt-androidios-lnd-light-backend-on-device)|[v0.4.1](https://github.com/hsjoberg/blixt-wallet)|{{page.phone}}|{{page.soso}}|{{page.good}}|{{page.good}}|{{page.good}}|{{page.thumbsup}}| |[Blixt](#blixt-androidios-lnd-light-backend-on-device)|[v0.4.1](https://github.com/hsjoberg/blixt-wallet)|{{page.phone}}|{{page.soso}}|{{page.good}}|{{page.good}}|{{page.good}}|{{page.thumbsup}}|
|[Blue](#bluewallet-mobile)|[1.4.4](https://bluewallet.io/)|{{page.phone}}|{{page.good}}|{{page.unclear}}|{{page.unclear}}|{{page.good}}|{{page.unclear}}| |[Blue](#bluewallet-mobile)|[1.4.4](https://bluewallet.io/)|{{page.phone}}|{{page.good}}|{{page.unclear}}|{{page.unclear}}|{{page.good}}|{{page.unclear}}|
|[Breez](#breez-mobile)|[0.16](https://breez.technology/mobile/)|{{page.phone}}|{{page.good}}|{{page.good}}|{{page.good}}|{{page.good}}|{{page.thumbsup}}|
|[Cash App](#cash-app-mobile)|[4.7](https://cash.app/)|{{page.phone}}|{{page.good}}|{{page.good}}|{{page.good}}|{{page.good}} |{{page.thumbsup}}| |[Cash App](#cash-app-mobile)|[4.7](https://cash.app/)|{{page.phone}}|{{page.good}}|{{page.good}}|{{page.good}}|{{page.good}} |{{page.thumbsup}}|
|[Core Lightning](#core-lightning--cln-cli-interface)|[v0.11.1](https://github.com/ElementsProject/lightning)|{{page.cli}}|{{page.good}}|{{page.good}}|{{page.good}}|{{page.good}}|{{page.thumbsup}}| |[Core Lightning](#core-lightning--cln-cli-interface)|[v0.11.1](https://github.com/ElementsProject/lightning)|{{page.cli}}|{{page.good}}|{{page.good}}|{{page.good}}|{{page.good}}|{{page.thumbsup}}|
|[Electrum](#electrum-desktop)|[4.1.4](https://github.com/spesmilo/electrum)|{{page.laptop}}|{{page.good}}|{{page.good}}|{{page.good}}|{{page.good}}|{{page.thumbsup}}|| |[Electrum](#electrum-desktop)|[4.1.4](https://github.com/spesmilo/electrum)|{{page.laptop}}|{{page.good}}|{{page.good}}|{{page.good}}|{{page.good}}|{{page.thumbsup}}||
@ -65,6 +66,9 @@ Most development testing for RoboSats has been done using Blixt. This is one of
### Bluewallet (Mobile) ### Bluewallet (Mobile)
It works well. Bluewallet has discontinued their custodial service. Previously, the custodial service would cause issues where escrows that RoboSats returns are charged to users and where slashed bonds are charged twice by Bluewallet! This was a known bug for long time in Bluewallet, so they shut down their LN custodial service (which ended up making RoboSats a smoother experience for users). It works well. Bluewallet has discontinued their custodial service. Previously, the custodial service would cause issues where escrows that RoboSats returns are charged to users and where slashed bonds are charged twice by Bluewallet! This was a known bug for long time in Bluewallet, so they shut down their LN custodial service (which ended up making RoboSats a smoother experience for users).
### Breez (Mobile)
It works well with RoboSats. Breez is a non-custodial wallet. So keep in mind channels managment and stuff like that. It's a versatile and easy-to-use interface.
### Cash App (Mobile) ### Cash App (Mobile)
Works well with RoboSats. Hodl invoices (Bonds) show as "Pending" in the transaction history. Payouts to the Cash App wallet function as intended. Custodial wallet by Block, Inc., formerly known as Square, Inc., which is led by Jack Dorsey. Works well with RoboSats. Hodl invoices (Bonds) show as "Pending" in the transaction history. Payouts to the Cash App wallet function as intended. Custodial wallet by Block, Inc., formerly known as Square, Inc., which is led by Jack Dorsey.

View File

@ -14,9 +14,9 @@
"@emotion/react": "^11.11.1", "@emotion/react": "^11.11.1",
"@emotion/styled": "^11.11.0", "@emotion/styled": "^11.11.0",
"@mui/base": "^5.0.0-beta.7", "@mui/base": "^5.0.0-beta.7",
"@mui/icons-material": "^5.14.0", "@mui/icons-material": "^5.15.0",
"@mui/lab": "^5.0.0-alpha.136", "@mui/lab": "^5.0.0-alpha.136",
"@mui/material": "^5.14.0", "@mui/material": "^5.15.1",
"@mui/system": "^5.14.0", "@mui/system": "^5.14.0",
"@mui/x-data-grid": "^6.17.0", "@mui/x-data-grid": "^6.17.0",
"@mui/x-date-pickers": "^6.17.0", "@mui/x-date-pickers": "^6.17.0",
@ -33,7 +33,7 @@
"js-sha256": "^0.10.1", "js-sha256": "^0.10.1",
"leaflet": "^1.9.4", "leaflet": "^1.9.4",
"light-bolt11-decoder": "^3.0.0", "light-bolt11-decoder": "^3.0.0",
"npm": "^10.2.4", "npm": "^10.2.5",
"openpgp": "^5.11.0", "openpgp": "^5.11.0",
"react": "^18.2.0", "react": "^18.2.0",
"react-countdown": "^2.3.5", "react-countdown": "^2.3.5",
@ -43,7 +43,7 @@
"react-image": "^4.1.0", "react-image": "^4.1.0",
"react-leaflet": "^4.2.1", "react-leaflet": "^4.2.1",
"react-qr-code": "^2.0.11", "react-qr-code": "^2.0.11",
"react-router-dom": "^6.20.0", "react-router-dom": "^6.21.1",
"react-smooth-image": "^1.1.0", "react-smooth-image": "^1.1.0",
"react-world-flags": "^1.6.0", "react-world-flags": "^1.6.0",
"reconnecting-websocket": "^4.4.0", "reconnecting-websocket": "^4.4.0",
@ -69,7 +69,7 @@
"babel-loader": "^9.1.3", "babel-loader": "^9.1.3",
"copy-webpack-plugin": "^11.0.0", "copy-webpack-plugin": "^11.0.0",
"eslint": "^8.45.0", "eslint": "^8.45.0",
"eslint-config-prettier": "^9.0.0", "eslint-config-prettier": "^9.1.0",
"eslint-config-standard-with-typescript": "^36.1.0", "eslint-config-standard-with-typescript": "^36.1.0",
"eslint-import-resolver-typescript": "^3.6.0", "eslint-import-resolver-typescript": "^3.6.0",
"eslint-plugin-import": "^2.27.5", "eslint-plugin-import": "^2.27.5",
@ -79,9 +79,9 @@
"eslint-plugin-react": "^7.32.2", "eslint-plugin-react": "^7.32.2",
"eslint-plugin-react-hooks": "^4.6.0", "eslint-plugin-react-hooks": "^4.6.0",
"jest": "^29.6.1", "jest": "^29.6.1",
"prettier": "^3.1.0", "prettier": "^3.1.1",
"ts-node": "^10.9.1", "ts-node": "^10.9.2",
"typescript": "^5.3.2", "typescript": "^5.3.3",
"webpack": "^5.89.0", "webpack": "^5.89.0",
"webpack-cli": "^5.1.4" "webpack-cli": "^5.1.4"
} }
@ -1880,9 +1880,9 @@
"dev": true "dev": true
}, },
"node_modules/@babel/runtime": { "node_modules/@babel/runtime": {
"version": "7.23.2", "version": "7.23.6",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.2.tgz", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.6.tgz",
"integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==", "integrity": "sha512-zHd0eUrf5GZoOWVCXp6koAKQTfZV07eit6bGPmJgnZdnSAvvZee6zniW2XMF7Cmc4ISOOnPy3QaSiIJGJkVEDQ==",
"dependencies": { "dependencies": {
"regenerator-runtime": "^0.14.0" "regenerator-runtime": "^0.14.0"
}, },
@ -2224,9 +2224,9 @@
} }
}, },
"node_modules/@floating-ui/react-dom": { "node_modules/@floating-ui/react-dom": {
"version": "2.0.2", "version": "2.0.4",
"resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.0.2.tgz", "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.0.4.tgz",
"integrity": "sha512-5qhlDvjaLmAst/rKb3VdlCinwTF4EYMiVxuuc/HVUjs46W0zgtbMmAZ1UTsDrRTxRmUEzl92mOtWbeeXL26lSQ==", "integrity": "sha512-CF8k2rgKeh/49UrnIBs4BdxPUV6vize/Db1d/YbCLyp9GiVZ0BEwf5AiDSxJRCr6yOkGqTFHtmrULxkEfYZ7dQ==",
"dependencies": { "dependencies": {
"@floating-ui/dom": "^1.5.1" "@floating-ui/dom": "^1.5.1"
}, },
@ -3106,27 +3106,27 @@
} }
}, },
"node_modules/@mui/core-downloads-tracker": { "node_modules/@mui/core-downloads-tracker": {
"version": "5.14.0", "version": "5.15.1",
"resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.14.0.tgz", "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.15.1.tgz",
"integrity": "sha512-SYBOVCatVDUf/lbrLGah09bHhX5WfUXg7kSskfLILr6SvKRni0NLp0aonxQ0SMALVVK3Qwa6cW4CdWuwS0gC1w==", "integrity": "sha512-y/nUEsWHyBzaKYp9zLtqJKrLod/zMNEWpMj488FuQY9QTmqBiyUhI2uh7PVaLqLewXRtdmG6JV0b6T5exyuYRw==",
"funding": { "funding": {
"type": "opencollective", "type": "opencollective",
"url": "https://opencollective.com/mui" "url": "https://opencollective.com/mui-org"
} }
}, },
"node_modules/@mui/icons-material": { "node_modules/@mui/icons-material": {
"version": "5.14.0", "version": "5.15.0",
"resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.14.0.tgz", "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.15.0.tgz",
"integrity": "sha512-z7lYNteDi1GMkF9JP/m2RWuCYK1M/FlaeBSUK7/IhIYzIXNhAVjfD8jRq5vFBV31qkEi2aGBS2z5SfLXwH6U0A==", "integrity": "sha512-zHY6fOkaK7VfhWeyxO8MjO3IAjEYpYMXuqUhX7TkUZJ9+TSH/9dn4ClG4K2j6hdgBU5Yrq2Z/89Bo6BHHp7AdQ==",
"dependencies": { "dependencies": {
"@babel/runtime": "^7.22.5" "@babel/runtime": "^7.23.5"
}, },
"engines": { "engines": {
"node": ">=12.0.0" "node": ">=12.0.0"
}, },
"funding": { "funding": {
"type": "opencollective", "type": "opencollective",
"url": "https://opencollective.com/mui" "url": "https://opencollective.com/mui-org"
}, },
"peerDependencies": { "peerDependencies": {
"@mui/material": "^5.0.0", "@mui/material": "^5.0.0",
@ -3181,18 +3181,18 @@
} }
}, },
"node_modules/@mui/material": { "node_modules/@mui/material": {
"version": "5.14.0", "version": "5.15.1",
"resolved": "https://registry.npmjs.org/@mui/material/-/material-5.14.0.tgz", "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.15.1.tgz",
"integrity": "sha512-HP7CP71NhMkui2HUIEKl2/JfuHMuoarSUWAKlNw6s17bl/Num9rN61EM6uUzc2A2zHjj/00A66GnvDnmixEJEw==", "integrity": "sha512-WA5DVyvacxDakVyAhNqu/rRT28ppuuUFFw1bLpmRzrCJ4uw/zLTATcd4WB3YbB+7MdZNEGG/SJNWTDLEIyn3xQ==",
"dependencies": { "dependencies": {
"@babel/runtime": "^7.22.5", "@babel/runtime": "^7.23.5",
"@mui/base": "5.0.0-beta.7", "@mui/base": "5.0.0-beta.28",
"@mui/core-downloads-tracker": "^5.14.0", "@mui/core-downloads-tracker": "^5.15.1",
"@mui/system": "^5.14.0", "@mui/system": "^5.15.1",
"@mui/types": "^7.2.4", "@mui/types": "^7.2.11",
"@mui/utils": "^5.13.7", "@mui/utils": "^5.15.1",
"@types/react-transition-group": "^4.4.6", "@types/react-transition-group": "^4.4.10",
"clsx": "^1.2.1", "clsx": "^2.0.0",
"csstype": "^3.1.2", "csstype": "^3.1.2",
"prop-types": "^15.8.1", "prop-types": "^15.8.1",
"react-is": "^18.2.0", "react-is": "^18.2.0",
@ -3203,7 +3203,7 @@
}, },
"funding": { "funding": {
"type": "opencollective", "type": "opencollective",
"url": "https://opencollective.com/mui" "url": "https://opencollective.com/mui-org"
}, },
"peerDependencies": { "peerDependencies": {
"@emotion/react": "^11.5.0", "@emotion/react": "^11.5.0",
@ -3224,13 +3224,17 @@
} }
} }
}, },
"node_modules/@mui/private-theming": { "node_modules/@mui/material/node_modules/@mui/base": {
"version": "5.13.7", "version": "5.0.0-beta.28",
"resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.13.7.tgz", "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-beta.28.tgz",
"integrity": "sha512-qbSr+udcij5F9dKhGX7fEdx2drXchq7htLNr2Qg2Ma+WJ6q0ERlEqGSBiPiVDJkptcjeVL4DGmcf1wl5+vD4EA==", "integrity": "sha512-KIoSc5sUFceeCaZTq5MQBapFzhHqMo4kj+4azWaCAjorduhcRQtN+BCgVHmo+gvEjix74bUfxwTqGifnu2fNTg==",
"dependencies": { "dependencies": {
"@babel/runtime": "^7.22.5", "@babel/runtime": "^7.23.5",
"@mui/utils": "^5.13.7", "@floating-ui/react-dom": "^2.0.4",
"@mui/types": "^7.2.11",
"@mui/utils": "^5.15.1",
"@popperjs/core": "^2.11.8",
"clsx": "^2.0.0",
"prop-types": "^15.8.1" "prop-types": "^15.8.1"
}, },
"engines": { "engines": {
@ -3238,7 +3242,42 @@
}, },
"funding": { "funding": {
"type": "opencollective", "type": "opencollective",
"url": "https://opencollective.com/mui" "url": "https://opencollective.com/mui-org"
},
"peerDependencies": {
"@types/react": "^17.0.0 || ^18.0.0",
"react": "^17.0.0 || ^18.0.0",
"react-dom": "^17.0.0 || ^18.0.0"
},
"peerDependenciesMeta": {
"@types/react": {
"optional": true
}
}
},
"node_modules/@mui/material/node_modules/clsx": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/clsx/-/clsx-2.0.0.tgz",
"integrity": "sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==",
"engines": {
"node": ">=6"
}
},
"node_modules/@mui/private-theming": {
"version": "5.15.1",
"resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.15.1.tgz",
"integrity": "sha512-wTbzuy5KjSvCPE9UVJktWHJ0b/tD5biavY9wvF+OpYDLPpdXK52vc1hTDxSbdkHIFMkJExzrwO9GvpVAHZBnFQ==",
"dependencies": {
"@babel/runtime": "^7.23.5",
"@mui/utils": "^5.15.1",
"prop-types": "^15.8.1"
},
"engines": {
"node": ">=12.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/mui-org"
}, },
"peerDependencies": { "peerDependencies": {
"@types/react": "^17.0.0 || ^18.0.0", "@types/react": "^17.0.0 || ^18.0.0",
@ -3251,11 +3290,11 @@
} }
}, },
"node_modules/@mui/styled-engine": { "node_modules/@mui/styled-engine": {
"version": "5.13.2", "version": "5.15.1",
"resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.13.2.tgz", "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.15.1.tgz",
"integrity": "sha512-VCYCU6xVtXOrIN8lcbuPmoG+u7FYuOERG++fpY74hPpEWkyFQG97F+/XfTQVYzlR2m7nPjnwVUgATcTCMEaMvw==", "integrity": "sha512-7WDZTJLqGexWDjqE9oAgjU8ak6hEtUw2yQU7SIYID5kLVO2Nj/Wi/KicbLsXnTsJNvSqePIlUIWTBSXwWJCPZw==",
"dependencies": { "dependencies": {
"@babel/runtime": "^7.21.0", "@babel/runtime": "^7.23.5",
"@emotion/cache": "^11.11.0", "@emotion/cache": "^11.11.0",
"csstype": "^3.1.2", "csstype": "^3.1.2",
"prop-types": "^15.8.1" "prop-types": "^15.8.1"
@ -3265,7 +3304,7 @@
}, },
"funding": { "funding": {
"type": "opencollective", "type": "opencollective",
"url": "https://opencollective.com/mui" "url": "https://opencollective.com/mui-org"
}, },
"peerDependencies": { "peerDependencies": {
"@emotion/react": "^11.4.1", "@emotion/react": "^11.4.1",
@ -3282,16 +3321,16 @@
} }
}, },
"node_modules/@mui/system": { "node_modules/@mui/system": {
"version": "5.14.0", "version": "5.15.1",
"resolved": "https://registry.npmjs.org/@mui/system/-/system-5.14.0.tgz", "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.15.1.tgz",
"integrity": "sha512-0HZGkX8miJbiNw+rjlZ9l0Cfkz1bSqfSHQH0EH9J+nx0aAm5cBleg9piOlLdCNIWGgecCqsw4x62erGrGjjcJg==", "integrity": "sha512-LAnP0ls69rqW9eBgI29phIx/lppv+WDGI7b3EJN7VZIqw0RezA0GD7NRpV12BgEYJABEii6z5Q9B5tg7dsX0Iw==",
"dependencies": { "dependencies": {
"@babel/runtime": "^7.22.5", "@babel/runtime": "^7.23.5",
"@mui/private-theming": "^5.13.7", "@mui/private-theming": "^5.15.1",
"@mui/styled-engine": "^5.13.2", "@mui/styled-engine": "^5.15.1",
"@mui/types": "^7.2.4", "@mui/types": "^7.2.11",
"@mui/utils": "^5.13.7", "@mui/utils": "^5.15.1",
"clsx": "^1.2.1", "clsx": "^2.0.0",
"csstype": "^3.1.2", "csstype": "^3.1.2",
"prop-types": "^15.8.1" "prop-types": "^15.8.1"
}, },
@ -3300,7 +3339,7 @@
}, },
"funding": { "funding": {
"type": "opencollective", "type": "opencollective",
"url": "https://opencollective.com/mui" "url": "https://opencollective.com/mui-org"
}, },
"peerDependencies": { "peerDependencies": {
"@emotion/react": "^11.5.0", "@emotion/react": "^11.5.0",
@ -3320,10 +3359,18 @@
} }
} }
}, },
"node_modules/@mui/system/node_modules/clsx": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/clsx/-/clsx-2.0.0.tgz",
"integrity": "sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==",
"engines": {
"node": ">=6"
}
},
"node_modules/@mui/types": { "node_modules/@mui/types": {
"version": "7.2.7", "version": "7.2.11",
"resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.7.tgz", "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.11.tgz",
"integrity": "sha512-sofpWmcBqOlTzRbr1cLQuUDKaUYVZTw8ENQrtL39TECRNENEzwgnNPh6WMfqMZlMvf1Aj9DLg74XPjnLr0izUQ==", "integrity": "sha512-KWe/QTEsFFlFSH+qRYf3zoFEj3z67s+qAuSnMMg+gFwbxG7P96Hm6g300inQL1Wy///gSRb8juX7Wafvp93m3w==",
"peerDependencies": { "peerDependencies": {
"@types/react": "^17.0.0 || ^18.0.0" "@types/react": "^17.0.0 || ^18.0.0"
}, },
@ -3334,12 +3381,12 @@
} }
}, },
"node_modules/@mui/utils": { "node_modules/@mui/utils": {
"version": "5.14.15", "version": "5.15.1",
"resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.14.15.tgz", "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.15.1.tgz",
"integrity": "sha512-QBfHovAvTa0J1jXuYDaXGk+Yyp7+Fm8GSqx6nK2JbezGqzCFfirNdop/+bL9Flh/OQ/64PeXcW4HGDdOge+n3A==", "integrity": "sha512-V1/d0E3Bju5YdB59HJf2G0tnHrFEvWLN+f8hAXp9+JSNy/LC2zKyqUfPPahflR6qsI681P8G9r4mEZte/SrrYA==",
"dependencies": { "dependencies": {
"@babel/runtime": "^7.23.2", "@babel/runtime": "^7.23.5",
"@types/prop-types": "^15.7.8", "@types/prop-types": "^15.7.11",
"prop-types": "^15.8.1", "prop-types": "^15.8.1",
"react-is": "^18.2.0" "react-is": "^18.2.0"
}, },
@ -3348,7 +3395,7 @@
}, },
"funding": { "funding": {
"type": "opencollective", "type": "opencollective",
"url": "https://opencollective.com/mui" "url": "https://opencollective.com/mui-org"
}, },
"peerDependencies": { "peerDependencies": {
"@types/react": "^17.0.0 || ^18.0.0", "@types/react": "^17.0.0 || ^18.0.0",
@ -3840,9 +3887,9 @@
} }
}, },
"node_modules/@remix-run/router": { "node_modules/@remix-run/router": {
"version": "1.13.0", "version": "1.14.1",
"resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.13.0.tgz", "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.14.1.tgz",
"integrity": "sha512-5dMOnVnefRsl4uRnAdoWjtVTdh8e6aZqgM4puy9nmEADH72ck+uXwzpJLEKE9Q6F8ZljNewLgmTfkxUrBdv4WA==", "integrity": "sha512-Qg4DMQsfPNAs88rb2xkdk03N3bjK4jgX5fR24eHCTR9q6PrhZQZ4UJBPzCHJkIpTRN1UKxx2DzjZmnC+7Lj0Ow==",
"engines": { "engines": {
"node": ">=14.0.0" "node": ">=14.0.0"
} }
@ -4145,9 +4192,9 @@
"dev": true "dev": true
}, },
"node_modules/@types/prop-types": { "node_modules/@types/prop-types": {
"version": "15.7.8", "version": "15.7.11",
"resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.8.tgz", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz",
"integrity": "sha512-kMpQpfZKSCBqltAJwskgePRaYRFukDkm1oItcAbC3gNELR20XIBcN9VRgg4+m8DKsTfkWeA4m4Imp4DDuWy7FQ==" "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng=="
}, },
"node_modules/@types/react": { "node_modules/@types/react": {
"version": "18.2.21", "version": "18.2.21",
@ -4177,9 +4224,9 @@
} }
}, },
"node_modules/@types/react-transition-group": { "node_modules/@types/react-transition-group": {
"version": "4.4.8", "version": "4.4.10",
"resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.8.tgz", "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.10.tgz",
"integrity": "sha512-QmQ22q+Pb+HQSn04NL3HtrqHwYMf4h3QKArOy5F8U5nEVMaihBs3SR10WiOM1iwPz5jIo8x/u11al+iEGZZrvg==", "integrity": "sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q==",
"dependencies": { "dependencies": {
"@types/react": "*" "@types/react": "*"
} }
@ -6599,9 +6646,9 @@
} }
}, },
"node_modules/eslint-config-prettier": { "node_modules/eslint-config-prettier": {
"version": "9.0.0", "version": "9.1.0",
"resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz", "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz",
"integrity": "sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==", "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==",
"dev": true, "dev": true,
"bin": { "bin": {
"eslint-config-prettier": "bin/cli.js" "eslint-config-prettier": "bin/cli.js"
@ -10468,9 +10515,9 @@
} }
}, },
"node_modules/npm": { "node_modules/npm": {
"version": "10.2.4", "version": "10.2.5",
"resolved": "https://registry.npmjs.org/npm/-/npm-10.2.4.tgz", "resolved": "https://registry.npmjs.org/npm/-/npm-10.2.5.tgz",
"integrity": "sha512-umEuYneVEYO9KoEEI8n2sSGmNQeqco/3BSeacRlqIkCzw4E7XGtYSWMeJobxzr6hZ2n9cM+u5TsMTcC5bAgoWA==", "integrity": "sha512-lXdZ7titEN8CH5YJk9C/aYRU9JeDxQ4d8rwIIDsvH3SMjLjHTukB2CFstMiB30zXs4vCrPN2WH6cDq1yHBeJAw==",
"bundleDependencies": [ "bundleDependencies": [
"@isaacs/string-locale-compare", "@isaacs/string-locale-compare",
"@npmcli/arborist", "@npmcli/arborist",
@ -10556,7 +10603,7 @@
"@sigstore/tuf": "^2.2.0", "@sigstore/tuf": "^2.2.0",
"abbrev": "^2.0.0", "abbrev": "^2.0.0",
"archy": "~1.0.0", "archy": "~1.0.0",
"cacache": "^18.0.0", "cacache": "^18.0.1",
"chalk": "^5.3.0", "chalk": "^5.3.0",
"ci-info": "^4.0.0", "ci-info": "^4.0.0",
"cli-columns": "^4.0.0", "cli-columns": "^4.0.0",
@ -10570,7 +10617,7 @@
"ini": "^4.1.1", "ini": "^4.1.1",
"init-package-json": "^6.0.0", "init-package-json": "^6.0.0",
"is-cidr": "^5.0.3", "is-cidr": "^5.0.3",
"json-parse-even-better-errors": "^3.0.0", "json-parse-even-better-errors": "^3.0.1",
"libnpmaccess": "^8.0.1", "libnpmaccess": "^8.0.1",
"libnpmdiff": "^6.0.3", "libnpmdiff": "^6.0.3",
"libnpmexec": "^7.0.4", "libnpmexec": "^7.0.4",
@ -10599,7 +10646,7 @@
"npm-user-validate": "^2.0.0", "npm-user-validate": "^2.0.0",
"npmlog": "^7.0.1", "npmlog": "^7.0.1",
"p-map": "^4.0.0", "p-map": "^4.0.0",
"pacote": "^17.0.4", "pacote": "^17.0.5",
"parse-conflict-json": "^3.0.1", "parse-conflict-json": "^3.0.1",
"proc-log": "^3.0.0", "proc-log": "^3.0.0",
"qrcode-terminal": "^0.12.0", "qrcode-terminal": "^0.12.0",
@ -10704,7 +10751,7 @@
} }
}, },
"node_modules/npm/node_modules/@npmcli/arborist": { "node_modules/npm/node_modules/@npmcli/arborist": {
"version": "7.2.1", "version": "7.2.2",
"inBundle": true, "inBundle": true,
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
@ -10750,7 +10797,7 @@
} }
}, },
"node_modules/npm/node_modules/@npmcli/config": { "node_modules/npm/node_modules/@npmcli/config": {
"version": "8.0.2", "version": "8.0.3",
"inBundle": true, "inBundle": true,
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
@ -11179,7 +11226,7 @@
} }
}, },
"node_modules/npm/node_modules/cacache": { "node_modules/npm/node_modules/cacache": {
"version": "18.0.0", "version": "18.0.1",
"inBundle": true, "inBundle": true,
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
@ -11188,7 +11235,7 @@
"glob": "^10.2.2", "glob": "^10.2.2",
"lru-cache": "^10.0.1", "lru-cache": "^10.0.1",
"minipass": "^7.0.3", "minipass": "^7.0.3",
"minipass-collect": "^1.0.2", "minipass-collect": "^2.0.1",
"minipass-flush": "^1.0.5", "minipass-flush": "^1.0.5",
"minipass-pipeline": "^1.2.4", "minipass-pipeline": "^1.2.4",
"p-map": "^4.0.0", "p-map": "^4.0.0",
@ -11707,7 +11754,7 @@
"license": "BSD-3-Clause" "license": "BSD-3-Clause"
}, },
"node_modules/npm/node_modules/ignore-walk": { "node_modules/npm/node_modules/ignore-walk": {
"version": "6.0.3", "version": "6.0.4",
"inBundle": true, "inBundle": true,
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
@ -11832,7 +11879,7 @@
} }
}, },
"node_modules/npm/node_modules/json-parse-even-better-errors": { "node_modules/npm/node_modules/json-parse-even-better-errors": {
"version": "3.0.0", "version": "3.0.1",
"inBundle": true, "inBundle": true,
"license": "MIT", "license": "MIT",
"engines": { "engines": {
@ -11866,7 +11913,7 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/npm/node_modules/libnpmaccess": { "node_modules/npm/node_modules/libnpmaccess": {
"version": "8.0.1", "version": "8.0.2",
"inBundle": true, "inBundle": true,
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
@ -11878,7 +11925,7 @@
} }
}, },
"node_modules/npm/node_modules/libnpmdiff": { "node_modules/npm/node_modules/libnpmdiff": {
"version": "6.0.3", "version": "6.0.4",
"inBundle": true, "inBundle": true,
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
@ -11897,7 +11944,7 @@
} }
}, },
"node_modules/npm/node_modules/libnpmexec": { "node_modules/npm/node_modules/libnpmexec": {
"version": "7.0.4", "version": "7.0.5",
"inBundle": true, "inBundle": true,
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
@ -11918,7 +11965,7 @@
} }
}, },
"node_modules/npm/node_modules/libnpmfund": { "node_modules/npm/node_modules/libnpmfund": {
"version": "5.0.1", "version": "5.0.2",
"inBundle": true, "inBundle": true,
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
@ -11929,7 +11976,7 @@
} }
}, },
"node_modules/npm/node_modules/libnpmhook": { "node_modules/npm/node_modules/libnpmhook": {
"version": "10.0.0", "version": "10.0.1",
"inBundle": true, "inBundle": true,
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
@ -11941,7 +11988,7 @@
} }
}, },
"node_modules/npm/node_modules/libnpmorg": { "node_modules/npm/node_modules/libnpmorg": {
"version": "6.0.1", "version": "6.0.2",
"inBundle": true, "inBundle": true,
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
@ -11953,7 +12000,7 @@
} }
}, },
"node_modules/npm/node_modules/libnpmpack": { "node_modules/npm/node_modules/libnpmpack": {
"version": "6.0.3", "version": "6.0.4",
"inBundle": true, "inBundle": true,
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
@ -11967,7 +12014,7 @@
} }
}, },
"node_modules/npm/node_modules/libnpmpublish": { "node_modules/npm/node_modules/libnpmpublish": {
"version": "9.0.2", "version": "9.0.3",
"inBundle": true, "inBundle": true,
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
@ -11985,7 +12032,7 @@
} }
}, },
"node_modules/npm/node_modules/libnpmsearch": { "node_modules/npm/node_modules/libnpmsearch": {
"version": "7.0.0", "version": "7.0.1",
"inBundle": true, "inBundle": true,
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
@ -11996,7 +12043,7 @@
} }
}, },
"node_modules/npm/node_modules/libnpmteam": { "node_modules/npm/node_modules/libnpmteam": {
"version": "6.0.0", "version": "6.0.1",
"inBundle": true, "inBundle": true,
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
@ -12008,7 +12055,7 @@
} }
}, },
"node_modules/npm/node_modules/libnpmversion": { "node_modules/npm/node_modules/libnpmversion": {
"version": "5.0.1", "version": "5.0.2",
"inBundle": true, "inBundle": true,
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
@ -12023,12 +12070,9 @@
} }
}, },
"node_modules/npm/node_modules/lru-cache": { "node_modules/npm/node_modules/lru-cache": {
"version": "10.0.2", "version": "10.1.0",
"inBundle": true, "inBundle": true,
"license": "ISC", "license": "ISC",
"dependencies": {
"semver": "^7.3.5"
},
"engines": { "engines": {
"node": "14 || >=16.14" "node": "14 || >=16.14"
} }
@ -12077,25 +12121,14 @@
} }
}, },
"node_modules/npm/node_modules/minipass-collect": { "node_modules/npm/node_modules/minipass-collect": {
"version": "1.0.2", "version": "2.0.1",
"inBundle": true, "inBundle": true,
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"minipass": "^3.0.0" "minipass": "^7.0.3"
}, },
"engines": { "engines": {
"node": ">= 8" "node": ">=16 || 14 >=14.17"
}
},
"node_modules/npm/node_modules/minipass-collect/node_modules/minipass": {
"version": "3.3.6",
"inBundle": true,
"license": "ISC",
"dependencies": {
"yallist": "^4.0.0"
},
"engines": {
"node": ">=8"
} }
}, },
"node_modules/npm/node_modules/minipass-fetch": { "node_modules/npm/node_modules/minipass-fetch": {
@ -12359,11 +12392,11 @@
} }
}, },
"node_modules/npm/node_modules/npm-packlist": { "node_modules/npm/node_modules/npm-packlist": {
"version": "8.0.0", "version": "8.0.1",
"inBundle": true, "inBundle": true,
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"ignore-walk": "^6.0.0" "ignore-walk": "^6.0.4"
}, },
"engines": { "engines": {
"node": "^14.17.0 || ^16.13.0 || >=18.0.0" "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
@ -12449,7 +12482,7 @@
} }
}, },
"node_modules/npm/node_modules/pacote": { "node_modules/npm/node_modules/pacote": {
"version": "17.0.4", "version": "17.0.5",
"inBundle": true, "inBundle": true,
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
@ -13699,9 +13732,9 @@
} }
}, },
"node_modules/prettier": { "node_modules/prettier": {
"version": "3.1.0", "version": "3.1.1",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.0.tgz", "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.1.tgz",
"integrity": "sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==", "integrity": "sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==",
"dev": true, "dev": true,
"bin": { "bin": {
"prettier": "bin/prettier.cjs" "prettier": "bin/prettier.cjs"
@ -13995,11 +14028,11 @@
} }
}, },
"node_modules/react-router": { "node_modules/react-router": {
"version": "6.20.0", "version": "6.21.1",
"resolved": "https://registry.npmjs.org/react-router/-/react-router-6.20.0.tgz", "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.21.1.tgz",
"integrity": "sha512-pVvzsSsgUxxtuNfTHC4IxjATs10UaAtvLGVSA1tbUE4GDaOSU1Esu2xF5nWLz7KPiMuW8BJWuPFdlGYJ7/rW0w==", "integrity": "sha512-W0l13YlMTm1YrpVIOpjCADJqEUpz1vm+CMo47RuFX4Ftegwm6KOYsL5G3eiE52jnJpKvzm6uB/vTKTPKM8dmkA==",
"dependencies": { "dependencies": {
"@remix-run/router": "1.13.0" "@remix-run/router": "1.14.1"
}, },
"engines": { "engines": {
"node": ">=14.0.0" "node": ">=14.0.0"
@ -14009,12 +14042,12 @@
} }
}, },
"node_modules/react-router-dom": { "node_modules/react-router-dom": {
"version": "6.20.0", "version": "6.21.1",
"resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.20.0.tgz", "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.21.1.tgz",
"integrity": "sha512-CbcKjEyiSVpA6UtCHOIYLUYn/UJfwzp55va4yEfpk7JBN3GPqWfHrdLkAvNCcpXr8QoihcDMuk0dzWZxtlB/mQ==", "integrity": "sha512-QCNrtjtDPwHDO+AO21MJd7yIcr41UetYt5jzaB9Y1UYaPTCnVuJq6S748g1dE11OQlCFIQg+RtAA1SEZIyiBeA==",
"dependencies": { "dependencies": {
"@remix-run/router": "1.13.0", "@remix-run/router": "1.14.1",
"react-router": "6.20.0" "react-router": "6.21.1"
}, },
"engines": { "engines": {
"node": ">=14.0.0" "node": ">=14.0.0"
@ -15019,9 +15052,9 @@
"integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
}, },
"node_modules/ts-node": { "node_modules/ts-node": {
"version": "10.9.1", "version": "10.9.2",
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz",
"integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@cspotcode/source-map-support": "^0.8.0", "@cspotcode/source-map-support": "^0.8.0",
@ -15233,9 +15266,9 @@
} }
}, },
"node_modules/typescript": { "node_modules/typescript": {
"version": "5.3.2", "version": "5.3.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.2.tgz", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz",
"integrity": "sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ==", "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==",
"dev": true, "dev": true,
"bin": { "bin": {
"tsc": "bin/tsc", "tsc": "bin/tsc",

View File

@ -31,7 +31,7 @@
"babel-loader": "^9.1.3", "babel-loader": "^9.1.3",
"copy-webpack-plugin": "^11.0.0", "copy-webpack-plugin": "^11.0.0",
"eslint": "^8.45.0", "eslint": "^8.45.0",
"eslint-config-prettier": "^9.0.0", "eslint-config-prettier": "^9.1.0",
"eslint-config-standard-with-typescript": "^36.1.0", "eslint-config-standard-with-typescript": "^36.1.0",
"eslint-import-resolver-typescript": "^3.6.0", "eslint-import-resolver-typescript": "^3.6.0",
"eslint-plugin-import": "^2.27.5", "eslint-plugin-import": "^2.27.5",
@ -41,9 +41,9 @@
"eslint-plugin-react": "^7.32.2", "eslint-plugin-react": "^7.32.2",
"eslint-plugin-react-hooks": "^4.6.0", "eslint-plugin-react-hooks": "^4.6.0",
"jest": "^29.6.1", "jest": "^29.6.1",
"prettier": "^3.1.0", "prettier": "^3.1.1",
"ts-node": "^10.9.1", "ts-node": "^10.9.2",
"typescript": "^5.3.2", "typescript": "^5.3.3",
"webpack": "^5.89.0", "webpack": "^5.89.0",
"webpack-cli": "^5.1.4" "webpack-cli": "^5.1.4"
}, },
@ -53,9 +53,9 @@
"@emotion/react": "^11.11.1", "@emotion/react": "^11.11.1",
"@emotion/styled": "^11.11.0", "@emotion/styled": "^11.11.0",
"@mui/base": "^5.0.0-beta.7", "@mui/base": "^5.0.0-beta.7",
"@mui/icons-material": "^5.14.0", "@mui/icons-material": "^5.15.0",
"@mui/lab": "^5.0.0-alpha.136", "@mui/lab": "^5.0.0-alpha.136",
"@mui/material": "^5.14.0", "@mui/material": "^5.15.1",
"@mui/system": "^5.14.0", "@mui/system": "^5.14.0",
"@mui/x-data-grid": "^6.17.0", "@mui/x-data-grid": "^6.17.0",
"@mui/x-date-pickers": "^6.17.0", "@mui/x-date-pickers": "^6.17.0",
@ -72,7 +72,7 @@
"js-sha256": "^0.10.1", "js-sha256": "^0.10.1",
"leaflet": "^1.9.4", "leaflet": "^1.9.4",
"light-bolt11-decoder": "^3.0.0", "light-bolt11-decoder": "^3.0.0",
"npm": "^10.2.4", "npm": "^10.2.5",
"openpgp": "^5.11.0", "openpgp": "^5.11.0",
"react": "^18.2.0", "react": "^18.2.0",
"react-countdown": "^2.3.5", "react-countdown": "^2.3.5",
@ -82,7 +82,7 @@
"react-image": "^4.1.0", "react-image": "^4.1.0",
"react-leaflet": "^4.2.1", "react-leaflet": "^4.2.1",
"react-qr-code": "^2.0.11", "react-qr-code": "^2.0.11",
"react-router-dom": "^6.20.0", "react-router-dom": "^6.21.1",
"react-smooth-image": "^1.1.0", "react-smooth-image": "^1.1.0",
"react-world-flags": "^1.6.0", "react-world-flags": "^1.6.0",
"reconnecting-websocket": "^4.4.0", "reconnecting-websocket": "^4.4.0",

View File

@ -1,109 +1,109 @@
{ {
"#1": "Phrases in basic/Main.tsx", "#1": "Phrases in basic/Main.tsx",
"Using Testnet Bitcoin": "Using Testnet Bitcoin", "Using Testnet Bitcoin": "Использование тестнет Биткойна",
"#2": "Phrases in basic/BookPage/index.tsx", "#2": "Phrases in basic/BookPage/index.tsx",
"Chart": "Схемами", "Chart": "График",
"Create": "Create", "Create": "Создать",
"List": "List", "List": "Список",
"Map": "Карта", "Map": "Карта",
"#3": "Phrases in basic/MakerPage/index.tsx", "#3": "Phrases in basic/MakerPage/index.tsx",
"Existing orders match yours!": "Existing orders match yours!", "Existing orders match yours!": "Существующие ордеры совпадают с вашими!",
"#4": "Phrases in basic/NavBar/MoreTooltip.tsx", "#4": "Phrases in basic/NavBar/MoreTooltip.tsx",
"Community and public support": "Community and public support", "Community and public support": "Поддержка сообщества",
"Exchange summary": "Exchange summary", "Coordinator summary": "Сводка координатора",
"Learn RoboSats": "Изучить RoboSats", "Learn RoboSats": "Изучить RoboSats",
"RoboSats information": "RoboSats information", "RoboSats information": "Информация о RoboSats",
"client for nerds": "client for nerds", "Stats for nerds": "Статистика для умников",
"#5": "Phrases in basic/NavBar/NavBar.tsx", "#5": "Phrases in basic/NavBar/NavBar.tsx",
"More": "More", "More": "Больше",
"Offers": "Offers", "Offers": "Оферы",
"Order": "Ордер", "Order": "Ордер",
"Robot": "Робот", "Robot": "Робот",
"Settings": "Settings", "Settings": "Настройки",
"#6": "Phrases in basic/OrderPage/index.tsx", "#6": "Phrases in basic/OrderPage/index.tsx",
"Contract": "Контракт", "Contract": "Контракт",
"#7": "Phrases in basic/RobotPage/Onboarding.tsx", "#7": "Phrases in basic/RobotPage/Onboarding.tsx",
"1. Generate a token": "1. Generate a token", "1. Generate a token": "1. Создайте токен",
"2. Meet your robot identity": "2. Meet your robot identity", "2. Meet your robot identity": "2. Познакомьтесь со своей личностью робота",
"3. Browse or create an order": "3. Browse or create an order", "3. Browse or create an order": "3. Просмотрите или создайте заказ",
"Building your robot!": "Building your robot!", "Building your robot!": "Постройте своего робота!",
"Continue": "Continue", "Continue": "Продолжить",
"Generate token": "Generate token", "Generate token": "Сгенерировать токен",
"Hi! My name is": "Hi! My name is", "Hi! My name is": "Привет! Меня зовут",
"If you need help on your RoboSats journey join our public support": "If you need help on your RoboSats journey join our public support", "If you need help on your RoboSats journey join our public support": "Если вам нужна помощь в путешествии по RoboSats, присоединяйтесь к поддержке нашего сообщества",
"RoboSats is a peer-to-peer marketplace. You can browse the public offers or create a new one.": "RoboSats is a peer-to-peer marketplace. You can browse the public offers or create a new one.", "RoboSats is a peer-to-peer marketplace. You can browse the public offers or create a new one.": "RoboSats — это P2P торговая площадка. Вы можете просматривать публичные предложения или создавать новые.",
"See profile": "See profile", "See profile": "Посмотреть профиль",
"Store it somewhere safe!": "Store it somewhere safe!", "Store it somewhere safe!": "Храните его в безопасном месте!",
"Telegram group": "Telegram group", "Telegram group": "Телеграмм группа",
"This is your trading avatar": "Это Ваш торговый аватар", "This is your trading avatar": "Это Ваш торговый аватар",
"This temporary key gives you access to a unique and private robot identity for your trade.": "This temporary key gives you access to a unique and private robot identity for your trade.", "This temporary key gives you access to a unique and private robot identity for your trade.": "Этот временный ключ дает вам доступ к уникальному и личному идентификатору робота для вашей сделки.",
"You can also add your own random characters into the token or": "You can also add your own random characters into the token or", "You can also add your own random characters into the token or": "Вы также можете добавить в токен свои собственные случайные символы или",
"or visit the robot school for documentation.": "or visit the robot school for documentation.", "or visit the robot school for documentation.": "или посетить школу роботов для документации.",
"roll again": "roll again", "roll again": "ещё раз",
"#8": "Phrases in basic/RobotPage/Recovery.tsx", "#8": "Phrases in basic/RobotPage/Recovery.tsx",
"Enter your robot token to re-build your robot and gain access to its trades.": "Enter your robot token to re-build your robot and gain access to its trades.", "Enter your robot token to re-build your robot and gain access to its trades.": "Введите токен своего робота, чтобы восстанавить своего робота и получить доступ к его сделкам.",
"Paste token here": "Paste token here", "Paste token here": "Вставте токен сюда",
"Recover": "Recover", "Recover": "Восстановить",
"Robot recovery": "Robot recovery", "Robot recovery": "Восстановление робота",
"#9": "Phrases in basic/RobotPage/RobotProfile.tsx", "#9": "Phrases in basic/RobotPage/RobotProfile.tsx",
"Active order #{{orderID}}": "Active order #{{orderID}}", "Active order #{{orderID}}": "Активный ордер #{{orderID}}",
"Add Robot": "Add Robot", "Add Robot": "Добавить робота",
"Add a new Robot": "Add a new Robot", "Add a new Robot": "Добавить нового робота",
"Building...": "Building...", "Building...": "Строим...",
"Delete Garage": "Delete Garage", "Delete Garage": "Удалить гараж",
"Last order #{{orderID}}": "Last order #{{orderID}}", "Last order #{{orderID}}": "Последний ордер #{{orderID}}",
"Logout": "Logout", "Logout": "Выйти",
"Reusing trading identity degrades your privacy against other users, coordinators and observers.": "Reusing trading identity degrades your privacy against other users, coordinators and observers.", "Reusing trading identity degrades your privacy against other users, coordinators and observers.": "Повторное использование торговых данных ухудшает вашу конфиденциальность по отношению к другим пользователям, координаторам и наблюдателям.",
"Robot Garage": "Robot Garage", "Robot Garage": "Гараж роботов",
"Store your token safely": "Храните Ваш токен в безопасности", "Store your token safely": "Храните Ваш токен в безопасности",
"Welcome back!": "Welcome back!", "Welcome back!": "С возвращением!",
"#10": "Phrases in basic/RobotPage/TokenInput.tsx", "#10": "Phrases in basic/RobotPage/TokenInput.tsx",
"Copied!": "Скопировано!", "Copied!": "Скопировано!",
"#11": "Phrases in basic/RobotPage/Welcome.tsx", "#11": "Phrases in basic/RobotPage/Welcome.tsx",
"A Simple and Private LN P2P Exchange": "A Simple and Private LN P2P Exchange", "A Simple and Private LN P2P Exchange": "Простой и приватный LN P2P обменник",
"Create a new robot and learn to use RoboSats": "Create a new robot and learn to use RoboSats", "Create a new robot and learn to use RoboSats": "Создайте нового робота и научитесь использовать RoboSats",
"Fast Generate Robot": "Fast Generate Robot", "Fast Generate Robot": "Быстрое создание робота",
"Recover an existing robot using your token": "Recover an existing robot using your token", "Recover an existing robot using your token": "Восстановить существующего робота с помощью вашего токена",
"Recovery": "Recovery", "Recovery": "Восстановление",
"Start": "Start", "Start": "Старт",
"#12": "Phrases in basic/RobotPage/index.tsx", "#12": "Phrases in basic/RobotPage/index.tsx",
"Connecting to TOR": "Connecting to TOR", "Connecting to TOR": "Подключение к TOR",
"Connection encrypted and anonymized using TOR.": "Connection encrypted and anonymized using TOR.", "Connection encrypted and anonymized using TOR.": "Соединение зашифровано и анонимизировано с помощью TOR.",
"Not enough entropy, make it more complex": "Not enough entropy, make it more complex", "Not enough entropy, make it more complex": "Недостаточно энтропии, усложните",
"The token is too short": "The token is too short", "The token is too short": "Токен слишком короткий",
"This ensures maximum privacy, however you might feel the app behaves slow. If connection is lost, restart the app.": "This ensures maximum privacy, however you might feel the app behaves slow. If connection is lost, restart the app.", "This ensures maximum privacy, however you might feel the app behaves slow. If connection is lost, restart the app.": "Это обеспечивает максимальную конфиденциальность, однако вы можете почувствовать, что приложение работает медленно. Если соединение потеряно, перезапустите приложение.",
"#13": "Phrases in components/TorConnection.tsx", "#13": "Phrases in components/TorConnection.tsx",
"Connected to TOR network": "Connected to TOR network", "Connected to TOR network": "Подключено к сети TOR",
"Connecting to TOR network": "Connecting to TOR network", "Connecting to TOR network": "Подключение к сети TOR",
"Connection error": "Connection error", "Connection error": "Ошибка подключения",
"Initializing TOR daemon": "Initializing TOR daemon", "Initializing TOR daemon": "Инициализация TOR daemon",
"#14": "Phrases in components/BookTable/BookControl.tsx", "#14": "Phrases in components/BookTable/BookControl.tsx",
"ANY": "Любую валюту", "ANY": "Любой",
"Buy": "Купить", "Buy": "Купить",
"DESTINATION": "DESTINATION", "DESTINATION": "МЕСТО НАЗНАЧЕНИЯ",
"I want to": "Я хочу", "I want to": "Я хочу",
"METHOD": "METHOD", "METHOD": "МЕТОД",
"Select Payment Currency": "Выбрать Валюту", "Select Payment Currency": "Выбрать Валюту",
"Select Payment Method": "Select Payment Method", "Select Payment Method": "Выбрать способ оплаты",
"Sell": "Продать", "Sell": "Продать",
"Show Lightning swaps": "Show Lightning swaps", "Show Lightning swaps": "Показать Лайтнинг свопы",
"Swap In": "Swap In", "Swap In": "Своп в",
"Swap Out": "Swap Out", "Swap Out": "Своп из",
"and use": "и использовать", "and use": "и использовать",
"pay with": "pay with", "pay with": "оплатить",
"#15": "Phrases in components/BookTable/index.tsx", "#15": "Phrases in components/BookTable/index.tsx",
"Add filter": "Добавить фильтр", "Add filter": "Добавить фильтр",
"Amount": "Сумма", "Amount": "Сумма",
"An error occurred.": "Произошла ошибка.", "An error occurred.": "Произошла ошибка.",
"And": "И", "And": "И",
"Be the first one to create an order": "Будьте первым, кто создаст ордер", "Be the first one to create an order": "Будьте первым, кто создаст ордер",
"Bond": "Bond", "Bond": "Залог",
"Column title": "Заголовок столбца", "Column title": "Заголовок столбца",
"Columns": "Столбцы", "Columns": "Столбцы",
"Currency": "Валюта", "Currency": "Валюта",
"Delete": "Удалить", "Delete": "Удалить",
"Destination": "Destination", "Destination": "Место назначения",
"Expiry": "Expiry", "Expiry": "Истечение",
"Filter": "Фильтр", "Filter": "Фильтр",
"Filter value": "Значение фильтра", "Filter value": "Значение фильтра",
"Find column": "Найти столбец", "Find column": "Найти столбец",
@ -112,7 +112,7 @@
"Host": "Host", "Host": "Host",
"Is": "Кто", "Is": "Кто",
"Logic operator": "Логический оператор", "Logic operator": "Логический оператор",
"Manage columns": "Manage columns", "Manage columns": "Управление столбцами",
"Menu": "Меню", "Menu": "Меню",
"No orders found to buy BTC for {{currencyCode}}": "Не найдено ордеров на покупку BTC за {{currencyCode}}", "No orders found to buy BTC for {{currencyCode}}": "Не найдено ордеров на покупку BTC за {{currencyCode}}",
"No orders found to sell BTC for {{currencyCode}}": "Не найдено ордеров на продажу BTC за {{currencyCode}}", "No orders found to sell BTC for {{currencyCode}}": "Не найдено ордеров на продажу BTC за {{currencyCode}}",
@ -126,7 +126,7 @@
"Premium": "Наценка", "Premium": "Наценка",
"Price": "Цена", "Price": "Цена",
"Reorder column": "Изменить порядок столбца", "Reorder column": "Изменить порядок столбца",
"Sats now": "Sats now", "Sats now": "Сатох сейчас ",
"Select columns": "Выбрать столбцы", "Select columns": "Выбрать столбцы",
"Show all": "Показать все", "Show all": "Показать все",
"Show columns": "Показать столбцы", "Show columns": "Показать столбцы",
@ -134,7 +134,7 @@
"Sort": "Сортировать", "Sort": "Сортировать",
"Sort by ASC": "Сортировать по ВОСХ", "Sort by ASC": "Сортировать по ВОСХ",
"Sort by DESC": "Сортировать по НИСХ", "Sort by DESC": "Сортировать по НИСХ",
"Timer": "Timer", "Timer": "Таймер",
"Unsort": "Несортировать", "Unsort": "Несортировать",
"Value": "Значение", "Value": "Значение",
"any": "любой", "any": "любой",
@ -157,11 +157,11 @@
"yes": "да", "yes": "да",
"#16": "Phrases in components/Charts/DepthChart/index.tsx", "#16": "Phrases in components/Charts/DepthChart/index.tsx",
"#17": "Phrases in components/Charts/MapChart/index.tsx", "#17": "Phrases in components/Charts/MapChart/index.tsx",
"Accept": "Accept", "Accept": "Принять",
"By doing so, you will be fetching map tiles from a third-party provider. Depending on your setup, private information might be leaked to servers outside the RoboSats federation.": "By doing so, you will be fetching map tiles from a third-party provider. Depending on your setup, private information might be leaked to servers outside the RoboSats federation.", "By doing so, you will be fetching map tiles from a third-party provider. Depending on your setup, private information might be leaked to servers outside the RoboSats federation.": "Поступая таким образом вы будете получать фрагменты карты от стороннего поставщика. В зависимости от ваших настроек личная информация может попасть на серверы за пределами федерации RoboSats.",
"Close": "Закрыть", "Close": "Закрыть",
"Download high resolution map?": "Download high resolution map?", "Download high resolution map?": "Загрузить карту в высоком разрешении?",
"Show tiles": "Show tiles", "Show tiles": "Показать карту",
"#18": "Phrases in components/Charts/helpers/OrderTooltip/index.tsx", "#18": "Phrases in components/Charts/helpers/OrderTooltip/index.tsx",
"#19": "Phrases in components/Dialogs/About.tsx", "#19": "Phrases in components/Dialogs/About.tsx",
"(GitHub).": "(GitHub).", "(GitHub).": "(GitHub).",
@ -227,16 +227,16 @@
"and": "и", "and": "и",
"#22": "Phrases in components/Dialogs/Community.tsx", "#22": "Phrases in components/Dialogs/Community.tsx",
"Community": "Сообщество", "Community": "Сообщество",
"Follow RoboSats in Nostr": "Follow RoboSats in Nostr", "Follow RoboSats in Nostr": "Подпиcаться на RoboSats в Nostr",
"Follow RoboSats in X": "Follow RoboSats in X", "Follow RoboSats in Twitter": одпиcаться на RoboSats в Twitter",
"Github Issues - The Robotic Satoshis Open Source Project": "Github Issues - The Robotic Satoshis проект с открытым исходным кодом", "Github Issues - The Robotic Satoshis Open Source Project": "Github Issues - The Robotic Satoshis проект с открытым исходным кодом",
"Join RoboSats English speaking community!": "Присоединиться к англоязычному сообществу RoboSats!", "Join RoboSats English speaking community!": "Присоединиться к англоязычному сообществу RoboSats!",
"Join RoboSats SimpleX group": "Join RoboSats SimpleX group", "Join RoboSats SimpleX group": "Присоединиться к групе RoboSats на SimpleX",
"Join RoboSats Spanish speaking community!": "Присоединиться к испаноязычному сообществу RoboSats!", "Join RoboSats Spanish speaking community!": "Присоединиться к испаноязычному сообществу RoboSats!",
"Nostr Official Account": "Nostr Official Account", "Nostr Official Account": " Официальный акаунт Nostr",
"RoboSats in Reddit": "RoboSats в Reddit", "RoboSats in Reddit": "RoboSats на Reddit",
"RoboSats main public support": "RoboSats main public support", "RoboSats main public support": "Основная общественная поддержка RoboSats",
"Support is only offered via SimpleX. Join our community if you have questions or want to hang out with other cool robots. Please, use our Github Issues if you find a bug or want to see new features!": "Support is only offered via SimpleX. Join our community if you have questions or want to hang out with other cool robots. Please, use our Github Issues if you find a bug or want to see new features!", "Support is only offered via SimpleX. Join our community if you have questions or want to hang out with other cool robots. Please, use our Github Issues if you find a bug or want to see new features!": "Поддержка предоставляется только через SimpleX. Присоединяйтесь к нашему сообществу, если у вас есть вопросы или вы хотите пообщаться с другими крутыми роботами. Пожалуйста, воспользуйтесь нашим Github issues, если вы обнаружили ошибку или хотите увидеть новые функции!",
"Tell us about a new feature or a bug": "Расскажите нам о новой функции или ошибке", "Tell us about a new feature or a bug": "Расскажите нам о новой функции или ошибке",
"We are abandoning Telegram! Our old TG groups": "We are abandoning Telegram! Our old TG groups", "We are abandoning Telegram! Our old TG groups": "We are abandoning Telegram! Our old TG groups",
"X Official Account": "X Official Account", "X Official Account": "X Official Account",
@ -264,6 +264,13 @@
"Lifetime contracted volume": "Объём контрактов за всё время", "Lifetime contracted volume": "Объём контрактов за всё время",
"Loved by robots: receives positive comments by robots over the internet.": "Loved by robots: receives positive comments by robots over the internet.", "Loved by robots: receives positive comments by robots over the internet.": "Loved by robots: receives positive comments by robots over the internet.",
"Mainnet LN Node": "Mainnet LN Node", "Mainnet LN Node": "Mainnet LN Node",
"Twitter Official Account": "Официальный аккаунт в Twitter",
"We are abandoning Telegram! Our old TG groups": "Мы отказываемся от Telegram! Наши старые группы ТГ",
"#21": "Phrases in components/Dialogs/CoordinatorSummary.tsx",
"Book liquidity": "Ликвидность книги ордеров",
"Coordinator Summary": "Описание координатора",
"Current onchain payout fee": "Текущая комиссия за выплату ончейн",
"Last 24h mean premium": "Средняя наценка за последние 24 часа",
"Maker fee": "Комиссия мейкера", "Maker fee": "Комиссия мейкера",
"Matrix channel copied! {{matrix}}": "Matrix channel copied! {{matrix}}", "Matrix channel copied! {{matrix}}": "Matrix channel copied! {{matrix}}",
"Not a federation founder": "Not a federation founder", "Not a federation founder": "Not a federation founder",
@ -282,54 +289,109 @@
"The coordinator does not seem to receive exceptional love from robots over the internet": "The coordinator does not seem to receive exceptional love from robots over the internet", "The coordinator does not seem to receive exceptional love from robots over the internet": "The coordinator does not seem to receive exceptional love from robots over the internet",
"The privacy practices of this coordinator could improve": "The privacy practices of this coordinator could improve", "The privacy practices of this coordinator could improve": "The privacy practices of this coordinator could improve",
"Today active robots": "Сегодня активных роботов", "Today active robots": "Сегодня активных роботов",
"Website": "Website", "#22": "Phrases in components/Dialogs/EnableTelegram.tsx",
"X": "X", "Browser": "Браузер",
"#24": "Phrases in components/Dialogs/EnableTelegram.tsx",
"Browser": "Browser",
"Enable": "Включить", "Enable": "Включить",
"Enable TG Notifications": "Включить уведомления TG", "Enable TG Notifications": "Включить уведомления TG",
"You will be taken to a conversation with RoboSats telegram bot. Simply open the chat and press Start. Note that by enabling telegram notifications you might lower your level of anonymity.": "Вы перейдёте к разговору с Telegram ботом RoboSats. Просто откройте чат и нажмите Старт. Обратите внимание, что включив уведомления Telegram, Вы можете снизить уровень анонимности.", "You will be taken to a conversation with RoboSats telegram bot. Simply open the chat and press Start. Note that by enabling telegram notifications you might lower your level of anonymity.": "Вы перейдёте к разговору с Telegram ботом RoboSats. Просто откройте чат и нажмите Старт. Обратите внимание, что включив уведомления Telegram, Вы можете снизить уровень анонимности.",
"#25": "Phrases in components/Dialogs/Exchange.tsx", "#23": "Phrases in components/Dialogs/F2fMap.tsx",
"Enabled RoboSats coordinators": "Enabled RoboSats coordinators", "Choose a location": "Выберите местоположение",
"Exchange Summary": "Exchange Summary", "Save": "Сохранить",
"Online RoboSats coordinators": "Online RoboSats coordinators", "#24": "Phrases in components/Dialogs/Info.tsx",
"#26": "Phrases in components/Dialogs/F2fMap.tsx", "(GitHub).": "(GitHub).",
"Choose a location": "Choose a location", "(Telegram)": "(Telegram)",
"Save": "Save", ". RoboSats will never contact you. RoboSats will definitely never ask for your robot token.": ". RoboSats никогда не будет связыватся с Вами первым. RoboSats никогда не попросит Ваш токен робота.",
"#27": "Phrases in components/Dialogs/Learn.tsx", "All of them as long as they are fast. You can write down your preferred payment method(s). You will have to match with a peer who also accepts that method. The step to exchange fiat has a expiry time of 24 hours before a dispute is automatically open. We highly recommend using instant fiat payment rails.": "Все, если они быстрые. Вы можете записать свой предпочитаемый способ(ы) оплаты. Ваш метод оплаты должен совпасть с методом оплаты Вашего партнёра. Этап по обмену фиатной валюты составляет 24 часа, перед тем как автоматически откроется диспут. Мы настоятельно рекомендуем использовать мгновенные фиатные платёжные системы.",
"Are there trade limits?": "Существуют ли ограничения торговли?",
"At no point, AnonymousAlice01 and BafflingBob02 have to entrust the bitcoin funds to each other. In case they have a conflict, RoboSats staff will help resolving the dispute.": "Алиса01 и Боб02 не доверяют Биткойн средства друг другу ни на каком из этапов сделки. В случае возникновения конфликта персонал RoboSats поможет разрешить диспут.",
"Be aware your fiat payment provider might charge extra fees. In any case, the buyer bears the costs of sending fiat. That includes banking charges, transfer fees and foreign exchange spreads. The seller must receive exactly the amount stated in the order details.": "Имейте в виду, что ваш поставщик фиатных платежей может взимать дополнительную комиссию. В любом случае расходы по отправке фиата несет покупатель. Сюда входят банковские сборы, комиссии за перевод и разница курсов валют. Продавец должен получить ровно ту сумму, которая указана в деталях ордера.",
"Disclaimer": "Дисклеймер",
"How does it work?": "Как это работает?",
"How it works": "Как это работает",
"How to use": "Как использовать",
"In many countries using RoboSats is no different than using Ebay or Craiglist. Your regulation may vary. It is your responsibility to comply.": "Во многих странах использование RoboSats не отличается от использования Ebay или Craiglist. Ваше законодательство может отличаться. Вы обязаны его соблюдать.",
"Is RoboSats legal in my country?": "Легален ли RoboSats в моей стране?",
"Is RoboSats private?": "Является ли RoboSats конфиденциальным?",
"It is a BTC/FIAT peer-to-peer exchange over lightning.": "Это P2P обмен BTC/Фиат через Lightning.",
"It simplifies matchmaking and minimizes the need of trust. RoboSats focuses in privacy and speed.": "Он упрощает поиск партнёров и сводит к минимуму потребность в доверии. RoboSats фокусируется на конфиденциальности и скорости.",
"Maximum single trade size is {{maxAmount}} Satoshis to minimize lightning routing failure. There is no limits to the number of trades per day. A robot can only have one order at a time. However, you can use multiple robots simultaneously in different browsers (remember to back up your robot tokens!).": "Максимальный размер одной сделки составляет {{maxAmount}} Сатоши, чтобы свести к минимуму сбои Lightning раутинга. Количество сделок в день не ограничено. Робот может иметь только один ордер за раз. Однако Вы можете использовать несколько роботов одновременно в разных браузерах (не забудьте сделать резервную копию токенов робота!).",
"Project source code": "Исходный код проекта",
"RoboSats is an open source project ": "RoboSats — это проект с открытым исходным кодом.",
"RoboSats total fee for an order is {{tradeFee}}%. This fee is split to be covered by both: the order maker ({{makerFee}}%) and the order taker ({{takerFee}}%). In case an onchain address is used to received the Sats a variable swap fee applies. Check the exchange details by tapping on the bottom bar icon to see the current swap fee.": "Общая комиссия RoboSats за заказ составляет {{tradeFee}}%. Эта комиссия делится между: и создателем ордера ({{makerFee}}%), и получателем ордера ({{takerFee}}%). В случае, если для получения Сатох используется ончейн-адрес, взимается переменная комиссия за своп. Проверьте детали обмена, нажав на значок нижней панели, чтобы увидеть текущую комиссию за своп.",
"RoboSats will never ask you for your name, country or ID. RoboSats does not custody your funds and does not care who you are. RoboSats does not collect or custody any personal data. For best anonymity use Tor Browser and access the .onion hidden service.": "RoboSats никогда не спросит Ваше имя, страну или идентификацию личности. RoboSats не хранит Ваши средства и не заботится о том, кто Вы. RoboSats не собирает и не хранит никаких личных данных. Для максимальной анонимности используйте браузер Tor и доступ к скрытому сервису .onion.",
"The seller faces the same charge-back risk as with any other peer-to-peer service. Paypal or credit cards are not recommended.": "Продавец сталкивается с тем же риском возврата платежа, что и в случае с любым другим P2P сервисом. Paypal или кредитные карты не рекомендуются.",
"This is an experimental application, things could go wrong. Trade small amounts!": "Это экспериментальное приложение, что-то может пойти не так. Торгуйте небольшими суммами!",
"This lightning application is provided as is. It is in active development: trade with the utmost caution. There is no private support. Support is only offered via public channels ": "Это приложение Lightning предоставляется как есть. Оно находится в активной разработке: торгуйте с максимальной осторожностью. Частной поддержки нет. Поддержка предлагается только по публичным каналам ",
"What are the fees?": "Какова кописсия?",
"What are the risks?": "Каковы риски?",
"What happens if RoboSats suddenly disappears?": "Что произойдёт, если RoboSats внезапно исчезнет?",
"What is RoboSats?": "Что такое RoboSats?",
"What is the trust model?": "Какова модель доверия?",
"What payment methods are accepted?": "Какие способы оплаты принимаются?",
"You can also check the full guide in ": "Вы также можете ознакомиться с полным руководством в ",
"You can build more trust on RoboSats by inspecting the source code.": "Вы можете повысить доверие к RoboSats, проверив исходный код.",
"You can find a step-by-step description of the trade pipeline in ": "Вы можете найти пошаговое описание этапов сделки в ",
"Your sats will return to you. Any hold invoice that is not settled would be automatically returned even if RoboSats goes down forever. This is true for both, locked bonds and trading escrows. However, there is a small window between the seller confirms FIAT RECEIVED and the moment the buyer receives the satoshis when the funds could be permanently lost if RoboSats disappears. This window is about 1 second long. Make sure to have enough inbound liquidity to avoid routing failures. If you have any problem, reach out trough the RoboSats public channels.": "Ваши Сатоши вернутся к Вам. Любой неоплаченный инвойс будет автоматически возвращён, даже если RoboSats выйдет из строя навсегда. Это верно как для заблокированных залогов, так и для эскроу. Однако, есть небольшой промежуток времени между тем как продавец подтверждает ПОЛУЧЕНИЕ ФИАТА и тем как покупатель получает Cатоши, когда средства могут быть безвозвратно потеряны если RoboSats исчезнет. Это окно длится около 1ой секунды. Убедитесь, что у Вас достаточно входящей ликвидности, чтобы избежать сбоев раутинга. Если у Вас есть какие-либо проблемы, обратитесь к нам через публичные каналы RoboSats.",
"Your trading peer is the only one who can potentially guess anything about you. Keep your chat short and concise. Avoid providing non-essential information other than strictly necessary for the fiat payment.": "Ваш торговый партнёр — единственный, кто потенциально может узнать что-либо о Вас. Будьте краткими и лаконичными в чате. Избегайте предоставления второстепенной информации, кроме необходимой для платежа в фиатной валюте.",
"#25": "Phrases in components/Dialogs/Learn.tsx",
"Back": "Назад", "Back": "Назад",
"You are about to visit Learn RoboSats. It hosts tutorials and documentation to help you learn how to use RoboSats and understand how it works.": "Вы собираетесь посетить Learn RoboSats. На нём размещены учебные пособия и документация, которые помогут Вам научиться использовать RoboSats и понять, как он работает.", "You are about to visit Learn RoboSats. It hosts tutorials and documentation to help you learn how to use RoboSats and understand how it works.": "Вы собираетесь посетить Learn RoboSats. На нём размещены учебные пособия и документация, которые помогут Вам научиться использовать RoboSats и понять, как он работает.",
"#28": "Phrases in components/Dialogs/NoRobot.tsx", "#28": "Phrases in components/Dialogs/NoRobot.tsx",
"Generate Robot": "Создать Робота", "Generate Robot": "Создать Робота",
"Generate a robot avatar first. Then create your own order.": "Generate a robot avatar first. Then create your own order.", "Generate a robot avatar first. Then create your own order.": "Сначала создайте аватар робота. Затем создайте свой ордер.",
"You do not have a robot avatar": "У Вас нет аватара робота", "You do not have a robot avatar": "У Вас нет аватара робота",
"#29": "Phrases in components/Dialogs/Profile.tsx", "#27": "Phrases in components/Dialogs/Notice.tsx",
"Coordinators that know your robots": "Coordinators that know your robots", "Coordinator Notice": "Уведомление координатора",
"Your Robot": "Your Robot", "#28": "Phrases in components/Dialogs/Profile.tsx",
"Claim": "Запросить",
"Enable Telegram Notifications": "Включить уведомления Telegram",
"Generate with Webln": "Генерировать с помощью Webln",
"Inactive order": "Неактивный ордер",
"Invoice for {{amountSats}} Sats": "Инвойс на {{amountSats}} Сатоши",
"No active orders": "Нет активных ордеров",
"One active order #{{orderID}}": "Один активный ордер #{{orderID}}",
"Submit": "Отправить",
"Telegram enabled": "Telegram включен",
"There it goes, thank you!🥇": "Вот так вот, спасибо!🥇",
"Use stealth invoices": "Использовать стелс инвойсы",
"You do not have previous orders": "У Вас нет предыдущих ордеров",
"Your Robot": "Ваш Robot",
"Your current order": "Ваш текущий ордер",
"Your earned rewards": "Ваши заработанные награды",
"Your last order #{{orderID}}": "Ваш последний ордер #{{orderID}}",
"Your robot": "Ваш Робот", "Your robot": "Ваш Робот",
"#29": "Phrases in components/Dialogs/Stats.tsx",
"... somewhere on Earth!": "... где-то на земле!",
"24h contracted volume": "Объём контрактов за 24 часа",
"CLN version": "CLN верися",
"Client": "Клиент",
"Coordinator": "Координатор",
"Coordinator commit hash": "Хеш коммита координатора",
"LN Node": "LN Нода",
"LND version": "LND версия",
"Lifetime contracted volume": "Объём контрактов за всё время",
"Made with": "Сделано с",
"RoboSats version": "Версия RoboSats",
"Stats For Nerds": "Cтатистика для умников",
"and": "и",
"#30": "Phrases in components/Dialogs/StoreToken.tsx", "#30": "Phrases in components/Dialogs/StoreToken.tsx",
"Back it up!": "Сохраните его!", "Back it up!": "Сохраните его!",
"Done": "Готово", "Done": "Готово",
"Store your robot token": "Сохранить токен робота", "Store your robot token": "Сохранить токен робота",
"You might need to recover your robot avatar in the future: store it safely. You can simply copy it into another application.": "В будущем Вам может понадобиться восстановить аватар робота: сохраните его в безопасном месте. Вы можете просто скопировать его в другое приложение.", "You might need to recover your robot avatar in the future: store it safely. You can simply copy it into another application.": "В будущем Вам может понадобиться восстановить аватар робота: сохраните его в безопасном месте. Вы можете просто скопировать его в другое приложение.",
"#31": "Phrases in components/Dialogs/Update.tsx", "#31": "Phrases in components/Dialogs/UpdateClient.tsx",
"Download RoboSats {{coordinatorVersion}} APK from Github releases": "Download RoboSats {{coordinatorVersion}} APK from Github releases", "Download RoboSats {{coordinatorVersion}} APK from Github releases": "Скачать RoboSats {{coordinatorVersion}} APK из Github releases",
"Go away!": "Go away!", "Go away!": "Уходите!",
"On Android RoboSats app ": "On Android RoboSats app ", "On Android RoboSats app ": "На Android RoboSats апликации ",
"On Tor Browser client simply refresh your tab (click here or press Ctrl+Shift+R)": "On Tor Browser client simply refresh your tab (click here or press Ctrl+Shift+R)", "On Tor Browser client simply refresh your tab (click here or press Ctrl+Shift+R)": "В клиенте Tor Browser просто обновите вкладку (нажмите здесь или нажмите Ctrl+Shift+R).",
"On remotely served browser client": "On remotely served browser client", "On remotely served browser client": "На удаленно обслуживаемом клиенте браузера",
"On your own soverign node": "On your own soverign node", "On your own soverign node": "На вашем собственном суверенном ноде",
"The RoboSats coordinator is on version {{coordinatorVersion}}, but your client app is {{clientVersion}}. This version mismatch might lead to a bad user experience.": "The RoboSats coordinator is on version {{coordinatorVersion}}, but your client app is {{clientVersion}}. This version mismatch might lead to a bad user experience.", "The RoboSats coordinator is on version {{coordinatorVersion}}, but your client app is {{clientVersion}}. This version mismatch might lead to a bad user experience.": "Версия координатора RoboSats {{coordinatorVersion}}, но ваше клиентское приложение — {{clientVersion}}. Это несоответствие версий может привести к ухудшению пользовательского опыта.",
"Update your RoboSats client": "Update your RoboSats client", "Update your RoboSats client": "Обновите свой клиент RoboSats",
"#32": "Phrases in components/FederationTable/index.tsx", "#32": "Phrases in components/HostAlert/SelfhostedAlert.tsx",
"Coordinators per page:": "Coordinators per page:", "RoboSats client is served from your own node granting you the strongest security and privacy.": "Клиент RoboSats обслуживается с вашего собственного нода, что обеспечивает максимальную безопасность и конфиденциальность.",
"Enabled": "Enabled", "You are self-hosting RoboSats": "Вы самостоятельно размещаете RoboSats",
"No coordinators found.": "No coordinators found.", "#33": "Phrases in components/HostAlert/UnsafeAlert.tsx",
"Up": "Up",
"#33": "Phrases in components/HostAlert/SelfhostedAlert.tsx",
"RoboSats client is served from your own node granting you the strongest security and privacy.": "RoboSats client is served from your own node granting you the strongest security and privacy.",
"You are self-hosting RoboSats": "You are self-hosting RoboSats",
"#34": "Phrases in components/HostAlert/UnsafeAlert.tsx",
"You are not using RoboSats privately": "Вы не используете RoboSats приватно", "You are not using RoboSats privately": "Вы не используете RoboSats приватно",
"#35": "Phrases in components/MakerForm/AmountRange.tsx", "#35": "Phrases in components/MakerForm/AmountRange.tsx",
"From": "От", "From": "От",
@ -337,107 +399,103 @@
"#36": "Phrases in components/MakerForm/MakerForm.tsx", "#36": "Phrases in components/MakerForm/MakerForm.tsx",
" at a {{discount}}% discount": " со скидкой {{discount}}%", " at a {{discount}}% discount": " со скидкой {{discount}}%",
" at a {{premium}}% premium": " с наценкой {{premium}}%", " at a {{premium}}% premium": " с наценкой {{premium}}%",
" at market price": " at market price", " at market price": " по рыночной цене",
" of {{satoshis}} Satoshis": " {{satoshis}} Сатоши", " of {{satoshis}} Satoshis": " {{satoshis}} Сатоши",
"Add New": "Добавить новый", "Add New": "Добавить новый",
"Add geolocation for a face to face trade": "Add geolocation for a face to face trade", "Add geolocation for a face to face trade": "Добавьте геолокацию для торговли лицом к лицу",
"Amount Range": "Amount Range", "Amount Range": "Диапазон сумм",
"Amount of BTC to swap for LN Sats": "Amount of BTC to swap for LN Sats", "Amount of BTC to swap for LN Sats": "Сумма BTC для обмена на LN Сатоши",
"Amount of fiat to exchange for bitcoin": "Количество фиата для обмена на Биткойн", "Amount of fiat to exchange for bitcoin": "Количество фиата для обмена на Биткойн",
"Buy BTC for ": "Buy BTC for ", "Buy BTC for ": "Купить BTC за ",
"Buy or Sell Bitcoin?": "Купить или Продать Биткойн?", "Buy or Sell Bitcoin?": "Купить или Продать Биткойн?",
"Choose a Pricing Method": "Выберите метод расчёта цен", "Choose a Pricing Method": "Выберите метод расчёта цен",
"Clear form": "Clear form", "Clear form": "Очистить форму",
"Edit order": "Edit order", "Edit order": "Изменить ордер",
"Enable advanced options": "Enable advanced options", "Enable advanced options": "Включить дополнительные параметры",
"Enter the destination of the Lightning swap": "Enter the destination of the Lightning swap", "Enter the destination of the Lightning swap": "Введите пункт назначения обмена Lightning",
"Escrow/Invoice Timer (HH:mm)": "Escrow/Invoice Timer (HH:mm)", "Escrow/Invoice Timer (HH:mm)": "Таймер эскроу/инвойса (ЧЧ:мм)",
"Escrow/invoice step length": "Escrow/invoice step length", "Escrow/invoice step length": "Длина шага эскроу/инвойса",
"Exact": "Exact", "Exact": "Точно",
"Exact Amount": "Exact Amount", "Exact Amount": "Точное количество",
"Face to Face Location": "Face to Face Location", "Face to Face Location": "Место встречи лицом к лицу",
"Fiat Payment Method(s)": "Способ(ы) оплаты", "Fiat Payment Method(s)": "Способ(ы) оплаты",
"Fidelity Bond Size": "Размер залога", "Fidelity Bond Size": "Размер залога",
"In or Out of Lightning?": "In or Out of Lightning?", "In or Out of Lightning?": "В или из Lightning?",
"Let the price move with the market": "Пусть цена движется вместе с рынком", "Let the price move with the market": "Пусть цена движется вместе с рынком",
"Must be less than {{maxAmount}}": "Must be less than {{maxAmount}}", "Must be less than {{maxAmount}}": "Должна быть меньше чем {{maxAmount}}",
"Must be less than {{maxSats}": "Должно быть меньше чем {{maxSats}}", "Must be less than {{maxSats}": "Должна быть меньше чем {{maxSats}}",
"Must be less than {{max}}%": "Должно быть меньше чем {{max}}%", "Must be less than {{max}}%": "Должна быть меньше чем {{max}}%",
"Must be more than {{minAmount}}": "Must be more than {{minAmount}}", "Must be more than {{minAmount}}": "Должна быть больше чем {{minAmount}}",
"Must be more than {{minSats}}": "Должно быть больше чем {{minSats}}", "Must be more than {{minSats}}": "Должна быть больше чем {{minSats}}",
"Must be more than {{min}}%": "Должно быть больше чем {{min}}%", "Must be more than {{min}}%": "Должна быть больше чем {{min}}%",
"Must be shorter than 65 characters": "Должно быть короче 65и символов", "Must be shorter than 65 characters": "Должно быть короче 65и символов",
"Onchain amount to receive (BTC)": "Onchain amount to receive (BTC)", "Onchain amount to receive (BTC)": "Сумма для получения на ончейн (BTC)",
"Onchain amount to send (BTC)": "Onchain amount to send (BTC)", "Onchain amount to send (BTC)": "Сумма для отправки на ончейн (BTC)",
"Order current rate:": "Текущий курс ордера:", "Order current rate:": "Текущий курс ордера:",
"Order for ": "Order for ", "Order for ": "Ордер на ",
"Order rate:": "Order rate:", "Order rate:": "Ставка ордера:",
"Premium over Market (%)": "Наценка по сравнению с рынком (%)", "Premium over Market (%)": "Наценка по сравнению с рынком (%)",
"Public Duration (HH:mm)": "Публичная продолжительность (ЧЧ: мм)", "Public Duration (HH:mm)": "Публичная продолжительность (ЧЧ: мм)",
"Public order length": "Public order length", "Public order length": "Длина общественного ордера",
"Relative": "Относительный", "Relative": "Относительный",
"Satoshis": "Сатоши", "Satoshis": "Сатоши",
"Sell BTC for ": "Sell BTC for ", "Sell BTC for ": "Продать BTC за ",
"Set a fix amount of satoshis": "Установить фиксированное количество Сатоши", "Set a fix amount of satoshis": "Установить фиксированное количество Сатоши",
"Set the skin-in-the-game, increase for higher safety assurance": "Установите залог, увеличьте для большей безопасности.", "Set the skin-in-the-game, increase for higher safety assurance": "Установите залог, увеличьте для большей безопасности.",
"Swap Destination(s)": "Поменять место(а) назначения", "Swap Destination(s)": "Поменять место(а) назначения",
"Swap into LN ": "Swap into LN ", "Swap into LN ": "Обмен на LN ",
"Swap of ": "Swap of ", "Swap of ": "Обмен ",
"Swap out of LN ": "Swap out of LN ", "Swap out of LN ": "Обмен из LN ",
"Swap?": "Swap?", "Swap?": "Менять?",
"To protect your privacy, the exact location you pin will be slightly randomized.": "To protect your privacy, the exact location you pin will be slightly randomized.", "To protect your privacy, the exact location you pin will be slightly randomized.": "Чтобы защитить вашу конфиденциальность, точное местоположение, которое вы закрепите, будет слегка рандомизировано.",
"You are already maker of an active order": "У Вас уже есть активный ордер", "You can add new methods": "Вы можете добавить новые методы",
"You can add new methods": "You can add new methods", "You must fill the form correctly": "Вы должны правильно заполнить форму",
"You must fill the form correctly": "You must fill the form correctly", "You receive approx {{swapSats}} LN Sats (fees might vary)": "Вы получаете примерно {{swapSats}} LN Sats (комиссия может различаться)",
"You receive approx {{swapSats}} LN Sats (fees might vary)": "You receive approx {{swapSats}} LN Sats (fees might vary)", "You send approx {{swapSats}} LN Sats (fees might vary)": "Вы отправляете примерно {{swapSats}} спутников LN (комиссия может различаться)",
"You send approx {{swapSats}} LN Sats (fees might vary)": "You send approx {{swapSats}} LN Sats (fees might vary)",
"Your order fixed exchange rate": "Фиксированный курс обмена Вашего ордера", "Your order fixed exchange rate": "Фиксированный курс обмена Вашего ордера",
"#37": "Phrases in components/MakerForm/SelectCoordinator.tsx", "#36": "Phrases in components/Notifications/index.tsx",
"Order Host": "Order Host", "Lightning routing failed": "Маршрутизация Lightning не удалась",
"The provider the lightning and communication infrastructure. The host will be in charge of providing support and solving disputes. The trade fees are set by the host. Make sure to only select order hosts that you trust!": "The provider the lightning and communication infrastructure. The host will be in charge of providing support and solving disputes. The trade fees are set by the host. Make sure to only select order hosts that you trust!", "New chat message": "Новое сообщение в чате",
"#38": "Phrases in components/Notifications/index.tsx", "Order chat is open": "Чат ордера открыт",
"Lightning routing failed": "Lightning routing failed", "Order has been disputed": "Ордер оспорен",
"New chat message": "New chat message", "Order has been taken!": "Ордер был взят!",
"Order chat is open": "Order chat is open", "Order has expired": "Ордер истёк",
"Order has been disputed": "Order has been disputed", "RoboSats - Simple and Private Bitcoin Exchange": "RoboSats — простая и приватная биржа биткойнов",
"Order has been taken!": "Order has been taken!", "Trade finished successfully!": "Торговля завершилась успешно!",
"Order has expired": "Order has expired", "You can claim Sats!": "Вы можете заклеймить Сатоши!",
"RoboSats - Simple and Private Bitcoin Exchange": "RoboSats - Simple and Private Bitcoin Exchange", "You lost the dispute": "Вы проиграли диспут",
"Trade finished successfully!": "Trade finished successfully!", "You won the dispute": "Вы выиграли диспут",
"You can claim Sats!": "You can claim Sats!", "₿ Rewards!": "₿ Награды!",
"You lost the dispute": "You lost the dispute", "⚖️ Disputed!": "⚖️ Оспаривается!",
"You won the dispute": "You won the dispute", "✅ Bond!": "✅ Залог!",
"₿ Rewards!": "₿ Rewards!", "✅ Escrow!": "✅ Эскроу!",
"⚖️ Disputed!": "⚖️ Disputed!", "❗⚡ Routing Failed": "❗⚡ Маршрутизация не удалась",
"✅ Bond!": "✅ Bond!", "👍 dispute": "👍 диспут",
"✅ Escrow!": "✅ Escrow!", "👎 dispute": "👎 диспут",
"❗⚡ Routing Failed": "❗⚡ Routing Failed", "💬 Chat!": "💬 Чат!",
"👍 dispute": "👍 dispute", "💬 message!": "💬 сообщение!",
"👎 dispute": "👎 dispute", "😪 Expired!": "😪 Истёк!",
"💬 Chat!": "💬 Chat!", "🙌 Funished!": "🙌 Запершён!",
"💬 message!": "💬 message!", "🥳 Taken!": "🥳 Взят!",
"😪 Expired!": "😪 Expired!", "#37": "Phrases in components/OrderDetails/TakeButton.tsx",
"🙌 Funished!": "🙌 Funished!",
"🥳 Taken!": "🥳 Taken!",
"#39": "Phrases in components/OrderDetails/TakeButton.tsx",
"Amount {{currencyCode}}": "Сумма {{currencyCode}}", "Amount {{currencyCode}}": "Сумма {{currencyCode}}",
"By taking this order you risk wasting your time. If the maker does not proceed in time, you will be compensated in satoshis for 50% of the maker bond.": "Взяв этот ордер, Вы рискуете потратить своё время впустую. Если мейкер не появится вовремя, Вы получите компенсацию в Сатоши в размере 50% от залога мейкера", "By taking this order you risk wasting your time. If the maker does not proceed in time, you will be compensated in satoshis for 50% of the maker bond.": "Взяв этот ордер, Вы рискуете потратить своё время впустую. Если мейкер не появится вовремя, Вы получите компенсацию в Сатоши в размере 50% от залога мейкера",
"Enter amount of fiat to exchange for bitcoin": "Введите количество фиата для обмена на Биткойн", "Enter amount of fiat to exchange for bitcoin": "Введите количество фиата для обмена на Биткойн",
"Sounds fine": "Sounds fine", "Sounds fine": "Звучит неплохо",
"Take Order": "Взять ордер", "Take Order": "Взять ордер",
"The maker is away": "Мейкера нет на месте", "The maker is away": "Мейкера нет на месте",
"Too high": "Слишком много", "Too high": "Слишком много",
"Too low": "Слишком мало", "Too low": "Слишком мало",
"Wait until you can take an order": "Подождите, пока Вы сможете взять ордер", "Wait until you can take an order": "Подождите, пока Вы сможете взять ордер",
"You must specify an amount first": "Сначала необходимо указать сумму", "You must specify an amount first": "Сначала необходимо указать сумму",
"You will receive {{satoshis}} Sats (Approx)": "You will receive {{satoshis}} Sats (Approx)", "You will receive {{satoshis}} Sats (Approx)": "Вы получите {{satoshis}} Сатоши (приблизительно)",
"You will send {{satoshis}} Sats (Approx)": "You will send {{satoshis}} Sats (Approx)", "You will send {{satoshis}} Sats (Approx)": "Вы отправите {{satoshis}} Сатоши (приблизительно)",
"#40": "Phrases in components/OrderDetails/index.tsx", "#38": "Phrases in components/OrderDetails/index.tsx",
"Accepted payment methods": "Способ(ы) оплаты", "Accepted payment methods": "Способ(ы) оплаты",
"Amount of Satoshis": "Количество Сатоши", "Amount of Satoshis": "Количество Сатоши",
"Deposit timer": "Таймер депозита", "Deposit timer": "Таймер депозита",
"Expires in": "Истекает через", "Expires in": "Истекает через",
"F2F location": "F2F location", "F2F location": "F2F локация",
"Order Details": "Детали ордера", "Order Details": "Детали ордера",
"Order ID": "ID ордера", "Order ID": "ID ордера",
"Order host": "Order host", "Order host": "Order host",
@ -449,60 +507,40 @@
"Price and Premium": "Цена и Наценка", "Price and Premium": "Цена и Наценка",
"Swap destination": "Поменять место назначения", "Swap destination": "Поменять место назначения",
"The order has expired": "Срок действия ордера истёк", "The order has expired": "Срок действия ордера истёк",
"The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.": "The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.", "The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.": "Закрепленное местоположение является приблизительным. Точное местоположение места встречи необходимо сообщить в зашифрованном чате.",
"You cannot take an order yet! Wait {{timeMin}}m {{timeSec}}s": "Вы ещё не можете взять ордер! Подождите {{timeMin}}м {{timeSec}}с", "You cannot take an order yet! Wait {{timeMin}}m {{timeSec}}s": "Вы ещё не можете взять ордер! Подождите {{timeMin}}м {{timeSec}}с",
"You receive via Lightning {{amount}} Sats (Approx)": "You receive via Lightning {{amount}} Sats (Approx)", "You receive via Lightning {{amount}} Sats (Approx)": "Вы получаете через Lightning {{amount}} Сатоши (приблизительно)",
"You receive via {{method}} {{amount}}": "You receive via {{method}} {{amount}}", "You receive via {{method}} {{amount}}": "Вы получаете через {{method}} {{amount}}",
"You send via Lightning {{amount}} Sats (Approx)": "You send via Lightning {{amount}} Sats (Approx)", "You send via Lightning {{amount}} Sats (Approx)": "Вы отправляете через Lightning {{amount}} Сатоши (приблизительно)",
"You send via {{method}} {{amount}}": "You send via {{method}} {{amount}}", "You send via {{method}} {{amount}}": "Вы отправляете через {{method}} {{amount}}",
"{{price}} {{currencyCode}}/BTC - Premium: {{premium}}%": "{{price}} {{currencyCode}}/BTC - Наценка: {{premium}}%", "{{price}} {{currencyCode}}/BTC - Premium: {{premium}}%": "{{price}} {{currencyCode}}/BTC - Наценка: {{premium}}%",
"#41": "Phrases in components/RobotInfo/index.tsx", "#39": "Phrases in components/SettingsForm/index.tsx",
"Active order!": "Active order!", "Dark": "Темный",
"Claim": "Запросить", "Fiat": "Фиат",
"Claim Sats!": "Claim Sats!", "Light": "Светлый",
"Enable Telegram Notifications": "Включить уведомления Telegram", "Mainnet": "Основная сеть",
"Generate with Webln": "Generate with Webln", "Swaps": "Обмен",
"Inactive order": "Неактивный ордер", "Testnet": "Тестовая сеть",
"Invoice for {{amountSats}} Sats": "Инвойс на {{amountSats}} Сатоши", "#40": "Phrases in components/TradeBox/CancelButton.tsx",
"No active orders": "Нет активных ордеров",
"One active order #{{orderID}}": "Один активный ордер #{{orderID}}",
"Submit": "Отправить",
"Telegram enabled": "Telegram включен",
"There it goes!": "There it goes!",
"Use stealth invoices": "Использовать стелс инвойсы",
"You do not have previous orders": "У Вас нет предыдущих ордеров",
"Your compensations": "Your compensations",
"Your current order": "Ваш текущий ордер",
"Your last order #{{orderID}}": "Ваш последний ордер #{{orderID}}",
"finished order": "finished order",
"#42": "Phrases in components/SettingsForm/index.tsx",
"Dark": "Dark",
"Fiat": "Fiat",
"Light": "Light",
"Mainnet": "Mainnet",
"Swaps": "Swaps",
"Testnet": "Testnet",
"#43": "Phrases in components/TorConnection/index.tsx",
"#44": "Phrases in components/TradeBox/CancelButton.tsx",
"Cancel": "Отменить", "Cancel": "Отменить",
"Cancel order and unlock bond instantly": "Cancel order and unlock bond instantly", "Cancel order and unlock bond instantly": "Отменить ордер и мгновенно разблокировать залог",
"Collaborative Cancel": "Совместная отмена", "Collaborative Cancel": "Совместная отмена",
"Unilateral cancelation (bond at risk!)": "Unilateral cancelation (bond at risk!)", "Unilateral cancelation (bond at risk!)": "Одностороннее аннулирование (залог под угрозой!)",
"#45": "Phrases in components/TradeBox/CollabCancelAlert.tsx", "#41": "Phrases in components/TradeBox/CollabCancelAlert.tsx",
"You asked for a collaborative cancellation": "Вы запросили совместную отмену", "You asked for a collaborative cancellation": "Вы запросили совместную отмену",
"{{nickname}} is asking for a collaborative cancel": "{{nickname}} запрашивает совместную отмену", "{{nickname}} is asking for a collaborative cancel": "{{nickname}} запрашивает совместную отмену",
"#46": "Phrases in components/TradeBox/TradeSummary.tsx", "#46": "Phrases in components/TradeBox/TradeSummary.tsx",
"Buyer": "Покупатель", "Buyer": "Покупатель",
"Completed in": "Завершено за", "Completed in": "Завершено за",
"Contract exchange rate": "Курс обмена контракта", "Contract exchange rate": "Курс обмена контракта",
"Coordinator trade revenue": "Coordinator trade revenue", "Coordinator trade revenue": "Доход координатора сделки",
"Export trade summary": "Export trade summary", "Export trade summary": "Экспортировать сводку торговли",
"Maker": "Мейкер", "Maker": "Мейкер",
"Maker bond": "Залог мейкера", "Maker bond": "Залог мейкера",
"Mining fee": "Комиссия майнерам", "Mining fee": "Комиссия майнерам",
"Onchain swap fee": "Комиссия за ончйн своп", "Onchain swap fee": "Комиссия за ончйн обмен",
"Received": "Получено", "Received": "Получено",
"Routing budget": "Routing budget", "Routing budget": "Бюджет маршрутизации",
"Seller": "Продавец", "Seller": "Продавец",
"Sent": "Отправлено", "Sent": "Отправлено",
"Taker": "Тейкер", "Taker": "Тейкер",
@ -523,13 +561,13 @@
"Cancel the order?": "Отменить ордер?", "Cancel the order?": "Отменить ордер?",
"Confirm Cancel": "Подтвердить отмену", "Confirm Cancel": "Подтвердить отмену",
"If the order is cancelled now you will lose your bond.": "Если ордер будет отменён сейчас, Вы потеряете залог.", "If the order is cancelled now you will lose your bond.": "Если ордер будет отменён сейчас, Вы потеряете залог.",
"#49": "Phrases in components/TradeBox/Dialogs/ConfirmCollabCancel.tsx", "#45": "Phrases in components/TradeBox/Dialogs/ConfirmCollabCancel.tsx",
"Accept Cancelation": "Accept Cancelation", "Accept Cancelation": "Принять отмену",
"Ask for Cancel": "Запросить отмену", "Ask for Cancel": "Запросить отмену",
"Collaborative cancel the order?": "Совместно отменить ордер?", "Collaborative cancel the order?": "Совместно отменить ордер?",
"The trade escrow has been posted. The order can be cancelled only if both, maker and taker, agree to cancel.": "Эскроу сделки был опубликован. Ордер может быть отменен только в том случае, если оба, мейкер и тейкер, согласны на отмену.", "The trade escrow has been posted. The order can be cancelled only if both, maker and taker, agree to cancel.": "Эскроу сделки был опубликован. Ордер может быть отменен только в том случае, если оба, мейкер и тейкер, согласны на отмену.",
"Your peer has asked for cancellation": "Your peer has asked for cancellation", "Your peer has asked for cancellation": "Ваш партнёр запросил отмену",
"#50": "Phrases in components/TradeBox/Dialogs/ConfirmDispute.tsx", "#46": "Phrases in components/TradeBox/Dialogs/ConfirmDispute.tsx",
"Agree and open dispute": "Согласиться и открыть диспут", "Agree and open dispute": "Согласиться и открыть диспут",
"Disagree": "Не согласиться", "Disagree": "Не согласиться",
"Do you want to open a dispute?": "Хотите ли Вы открыть диспут?", "Do you want to open a dispute?": "Хотите ли Вы открыть диспут?",
@ -538,17 +576,17 @@
"#51": "Phrases in components/TradeBox/Dialogs/ConfirmFiatReceived.tsx", "#51": "Phrases in components/TradeBox/Dialogs/ConfirmFiatReceived.tsx",
"Confirm": "Подтвердить", "Confirm": "Подтвердить",
"Confirm you received {{amount}} {{currencyCode}}?": "Подтвердить получение {{amount}} {{currencyCode}}?", "Confirm you received {{amount}} {{currencyCode}}?": "Подтвердить получение {{amount}} {{currencyCode}}?",
"Confirming that you received {{amount}} {{currencyCode}} will finalize the trade. The satoshis in the escrow will be released to the buyer. Only confirm after {{amount}} {{currencyCode}} have arrived to your account. Note that if you have received the payment and do not click confirm, you risk losing your bond.": "Confirming that you received {{amount}} {{currencyCode}} will finalize the trade. The satoshis in the escrow will be released to the buyer. Only confirm after {{amount}} {{currencyCode}} have arrived to your account. Note that if you have received the payment and do not click confirm, you risk losing your bond.", "Confirming that you received {{amount}} {{currencyCode}} will finalize the trade. The satoshis in the escrow will be released to the buyer. Only confirm after {{amount}} {{currencyCode}} have arrived to your account. Note that if you have received the payment and do not click confirm, you risk losing your bond.": "Подтвердив, что вы получили {{amount}} {{currencyCode}}, сделка будет завершена. Сатоши на эскроу будут переданы покупателю. Подтверждайте только после того, как {{amount}} {{currencyCode}} поступит на ваш счёт. Обратите внимание: если вы получили платеж и не нажали «Подтвердить», вы рискуете потерять залог.",
"#52": "Phrases in components/TradeBox/Dialogs/ConfirmFiatSent.tsx", "#48": "Phrases in components/TradeBox/Dialogs/ConfirmFiatSent.tsx",
"Confirm you sent {{amount}} {{currencyCode}}?": "Confirm you sent {{amount}} {{currencyCode}}?", "Confirm you sent {{amount}} {{currencyCode}}?": "Подтвердите, что отправили {{amount}} {{currencyCode}}?",
"Confirming that you sent {{amount}} {{currencyCode}} will allow your peer to finalize the trade. If you have not yet sent it and you still proceed to falsely confirm, you risk losing your bond.": "Confirming that you sent {{amount}} {{currencyCode}} will allow your peer to finalize the trade. If you have not yet sent it and you still proceed to falsely confirm, you risk losing your bond.", "Confirming that you sent {{amount}} {{currencyCode}} will allow your peer to finalize the trade. If you have not yet sent it and you still proceed to falsely confirm, you risk losing your bond.": "Подтверждение того, что вы отправили {{amount}} {{currencyCode}}, позволит вашему партнеру завершить сделку. Если вы ещё не отправили его и все равно продолжите ложное подтверждение, вы рискуете потерять залог.",
"#53": "Phrases in components/TradeBox/Dialogs/ConfirmUndoFiatSent.tsx", "#49": "Phrases in components/TradeBox/Dialogs/ConfirmUndoFiatSent.tsx",
"READ. In case your payment to the seller has been blocked and it is absolutely impossible to finish the trade, you can revert your confirmation of \"Fiat sent\". Do so only if you and the seller have ALREADY AGREED in the chat to proceed to a collaborative cancellation. After confirming, the \"Collaborative cancel\" button will be visible again. Only click this button if you know what you are doing. First time users of RoboSats are highly discouraged from performing this action! Make 100% sure your payment has failed and the amount is in your account.": "READ. In case your payment to the seller has been blocked and it is absolutely impossible to finish the trade, you can revert your confirmation of \"Fiat sent\". Do so only if you and the seller have ALREADY AGREED in the chat to proceed to a collaborative cancellation. After confirming, the \"Collaborative cancel\" button will be visible again. Only click this button if you know what you are doing. First time users of RoboSats are highly discouraged from performing this action! Make 100% sure your payment has failed and the amount is in your account.", "READ. In case your payment to the seller has been blocked and it is absolutely impossible to finish the trade, you can revert your confirmation of \"Fiat sent\". Do so only if you and the seller have ALREADY AGREED in the chat to proceed to a collaborative cancellation. After confirming, the \"Collaborative cancel\" button will be visible again. Only click this button if you know what you are doing. First time users of RoboSats are highly discouraged from performing this action! Make 100% sure your payment has failed and the amount is in your account.": "ЧИТАЙТЕ. В случае, если ваш платёж продавцу заблокирован и завершить сделку абсолютно невозможно, вы можете отменить подтверждение \"Fiat sent\". Делайте это только в том случае, если вы и продавец УЖЕ ДОГОВОРИЛИСЬ в чате о совместной отмене. После подтверждения кнопка \"Collaborative cancel\" снова станет видна. Нажимайте эту кнопку только в том случае, если вы знаете, что делаете. Пользователям впервые использующим RoboSats, крайне не рекомендуется выполнять это действие! Убедитесь на 100 %, что ваш платёж не прошел и сумма поступила на ваш счет.",
"Revert the confirmation of fiat sent?": "Revert the confirmation of fiat sent?", "Revert the confirmation of fiat sent?": "Отменить подтверждение отправленного распоряжения?",
"Wait ({{time}})": "Wait ({{time}})", "Wait ({{time}})": "Ждать ({{time}})",
"#54": "Phrases in components/TradeBox/Dialogs/WebLN.tsx", "#50": "Phrases in components/TradeBox/Dialogs/WebLN.tsx",
"Amount not yet locked, please check your WebLN wallet.": "Amount not yet locked, please check your WebLN wallet.", "Amount not yet locked, please check your WebLN wallet.": "Сумма еще не заблокирована, проверьте свой кошелёк WebLN.",
"Invoice not received, please check your WebLN wallet.": "Платёж не получен. Пожалуйста, проверьте Ваш WebLN Кошелёк.", "Invoice not received, please check your WebLN wallet.": "Платёж не получен. Пожалуйста, проверьте Ваш WebLN кошелёк.",
"WebLN": "WebLN", "WebLN": "WebLN",
"You can close now your WebLN wallet popup.": "Вы можете закрыть всплывающее окно WebLN Кошелька", "You can close now your WebLN wallet popup.": "Вы можете закрыть всплывающее окно WebLN Кошелька",
"#55": "Phrases in components/TradeBox/EncryptedChat/ChatBottom/index.tsx", "#55": "Phrases in components/TradeBox/EncryptedChat/ChatBottom/index.tsx",
@ -556,9 +594,9 @@
"Export": "Экспортировать", "Export": "Экспортировать",
"Save full log as a JSON file (messages and credentials)": "Сохранить все логи в виде JSON файла (сообщения и учётные данные)", "Save full log as a JSON file (messages and credentials)": "Сохранить все логи в виде JSON файла (сообщения и учётные данные)",
"Verify your privacy": "Проверьте свою конфиденциальность", "Verify your privacy": "Проверьте свою конфиденциальность",
"#56": "Phrases in components/TradeBox/EncryptedChat/ChatHeader/index.tsx", "#52": "Phrases in components/TradeBox/EncryptedChat/ChatHeader/index.tsx",
"...waiting": "...waiting", "...waiting": "...ожидание",
"Activate slow mode (use it when the connection is slow)": "Activate slow mode (use it when the connection is slow)", "Activate slow mode (use it when the connection is slow)": "Активировать медленный режим (используйте его, когда соединение медленное)",
"Peer": "Партнёр", "Peer": "Партнёр",
"You": "Вы", "You": "Вы",
"connected": "подключен", "connected": "подключен",
@ -567,38 +605,38 @@
"Connecting...": "Подключаем...", "Connecting...": "Подключаем...",
"Send": "Отправить", "Send": "Отправить",
"Type a message": "Введите сообщение", "Type a message": "Введите сообщение",
"Waiting for peer public key...": "Waiting for peer public key...", "Waiting for peer public key...": "Ожидание публичного ключа партнёра...",
"#58": "Phrases in components/TradeBox/EncryptedChat/EncryptedTurtleChat/index.tsx", "#54": "Phrases in components/TradeBox/EncryptedChat/EncryptedTurtleChat/index.tsx",
"#59": "Phrases in components/TradeBox/EncryptedChat/MessageCard/index.tsx", "#55": "Phrases in components/TradeBox/EncryptedChat/MessageCard/index.tsx",
"#60": "Phrases in components/TradeBox/Forms/Dispute.tsx", "#56": "Phrases in components/TradeBox/Forms/Dispute.tsx",
"Attach chat logs": "Attach chat logs", "Attach chat logs": "Прикрепите журналы чата",
"Attaching chat logs helps the dispute resolution process and adds transparency. However, it might compromise your privacy.": "Attaching chat logs helps the dispute resolution process and adds transparency. However, it might compromise your privacy.", "Attaching chat logs helps the dispute resolution process and adds transparency. However, it might compromise your privacy.": "Прикрепление журналов чата помогает процессу разрешения споров и повышает прозрачность. Однако это может поставить под угрозу вашу конфиденциальность.",
"Submit dispute statement": "Отправить заявление о диспуте", "Submit dispute statement": "Отправить заявление о диспуте",
"#61": "Phrases in components/TradeBox/Forms/LightningPayout.tsx", "#57": "Phrases in components/TradeBox/Forms/LightningPayout.tsx",
"Advanced options": "Advanced options", "Advanced options": "Расширенные настройки",
"Invoice to wrap": "Invoice to wrap", "Invoice to wrap": "Обернуть инвойс",
"Payout Lightning Invoice": "Счет на выплату Лайтнинг", "Payout Lightning Invoice": "Счет на выплату Лайтнинг",
"Proxy Budget": "Proxy Budget", "Proxy Budget": "Прокси-бюджет",
"Routing Budget": "Routing Budget", "Routing Budget": "Бюджет маршрутизации",
"Server": "Server", "Server": "Сервер",
"Submit invoice for {{amountSats}} Sats": "Submit invoice for {{amountSats}} Sats", "Submit invoice for {{amountSats}} Sats": "Отправьте счет на {{amountSats}} Сатоши",
"Use Lnproxy": "Use Lnproxy", "Use Lnproxy": "Использовать Lnproxy",
"Wrap": "Wrap", "Wrap": "Обернуть",
"Wrapped invoice": "Wrapped invoice", "Wrapped invoice": "Обернутый инвойс",
"#62": "Phrases in components/TradeBox/Forms/OnchainPayout.tsx", "#58": "Phrases in components/TradeBox/Forms/OnchainPayout.tsx",
"Bitcoin Address": "Биткойн Адрес", "Bitcoin Address": "Биткойн Адрес",
"Final amount you will receive": "Окончательная сумма, которую Вы получите", "Final amount you will receive": "Окончательная сумма, которую Вы получите",
"Invalid": "Неверно", "Invalid": "Неверно",
"Mining Fee": "Комиссия Майнерам", "Mining Fee": "Комиссия Майнерам",
"RoboSats coordinator will do a swap and send the Sats to your onchain address.": "RoboSats coordinator will do a swap and send the Sats to your onchain address.", "RoboSats coordinator will do a swap and send the Sats to your onchain address.": "Координатор RoboSats выполнит своп и отправит Сатоши на ваш ончейн адрес.",
"Swap fee": "Комиссия за своп", "Swap fee": "Комиссия за обмен",
"#63": "Phrases in components/TradeBox/Prompts/Chat.tsx", "#59": "Phrases in components/TradeBox/Prompts/Chat.tsx",
"Confirm {{amount}} {{currencyCode}} received": "Подтвердить получение {{amount}} {{currencyCode}}", "Confirm {{amount}} {{currencyCode}} received": "Подтвердить получение {{amount}} {{currencyCode}}",
"Confirm {{amount}} {{currencyCode}} sent": "Подтвердить отправку {{amount}} {{currencyCode}}", "Confirm {{amount}} {{currencyCode}} sent": "Подтвердить отправку {{amount}} {{currencyCode}}",
"Open Dispute": "Открыть диспут", "Open Dispute": "Открыть диспут",
"Payment failed?": "Payment failed?", "Payment failed?": "Платеж не прошел?",
"Say hi! Be helpful and concise. Let them know how to send you {{amount}} {{currencyCode}}.": "Скажите привет! Будьте доброжелательны и кратки. Сообщите, как отправить Вам {{amount}} {{currencyCode}}.", "Say hi! Be helpful and concise. Let them know how to send you {{amount}} {{currencyCode}}.": "Скажите привет! Будьте доброжелательны и кратки. Сообщите, как отправить Вам {{amount}} {{currencyCode}}.",
"To open a dispute you need to wait": "To open a dispute you need to wait", "To open a dispute you need to wait": "Чтобы открыть диспут нужно подождать",
"Wait for the seller to confirm he has received the payment.": "Подождите, пока продавец подтвердит, что он получил платёж.", "Wait for the seller to confirm he has received the payment.": "Подождите, пока продавец подтвердит, что он получил платёж.",
"#64": "Phrases in components/TradeBox/Prompts/Dispute.tsx", "#64": "Phrases in components/TradeBox/Prompts/Dispute.tsx",
"Please, submit your statement. Be clear and specific about what happened and provide the necessary evidence. You MUST provide a contact method: burner email, SimpleX incognito link or telegram (make sure to create a searcheable username) to follow up with the dispute solver (your trade host/coordinator). Disputes are solved at the discretion of real robots (aka humans), so be as helpful as possible to ensure a fair outcome.": "Please, submit your statement. Be clear and specific about what happened and provide the necessary evidence. You MUST provide a contact method: burner email, SimpleX incognito link or telegram (make sure to create a searcheable username) to follow up with the dispute solver (your trade host/coordinator). Disputes are solved at the discretion of real robots (aka humans), so be as helpful as possible to ensure a fair outcome.", "Please, submit your statement. Be clear and specific about what happened and provide the necessary evidence. You MUST provide a contact method: burner email, SimpleX incognito link or telegram (make sure to create a searcheable username) to follow up with the dispute solver (your trade host/coordinator). Disputes are solved at the discretion of real robots (aka humans), so be as helpful as possible to ensure a fair outcome.": "Please, submit your statement. Be clear and specific about what happened and provide the necessary evidence. You MUST provide a contact method: burner email, SimpleX incognito link or telegram (make sure to create a searcheable username) to follow up with the dispute solver (your trade host/coordinator). Disputes are solved at the discretion of real robots (aka humans), so be as helpful as possible to ensure a fair outcome.",
@ -648,49 +686,49 @@
"#78": "Phrases in components/TradeBox/Prompts/Successful.tsx", "#78": "Phrases in components/TradeBox/Prompts/Successful.tsx",
"Renew": "Renew", "Renew": "Renew",
"RoboSats gets better with more liquidity and users. Tell a bitcoiner friend about Robosats!": "RoboSats становится лучше с большей ликвидностью и пользователями. Расскажите другу-биткойнеру о Robosat!", "RoboSats gets better with more liquidity and users. Tell a bitcoiner friend about Robosats!": "RoboSats становится лучше с большей ликвидностью и пользователями. Расскажите другу-биткойнеру о Robosat!",
"Sending coins to": "Sending coins to", "Sending coins to": "Отправка монет на",
"Start Again": "Начать Снова", "Start Again": "Начать Снова",
"Thank you for using Robosats!": "Спасибо за использование Robosats!", "Thank you for using Robosats!": "Спасибо за использование Robosats!",
"Thank you! RoboSats loves you too": "Thank you! RoboSats loves you too", "Thank you! RoboSats loves you too": "Спасибо! RoboSats тоже Вас любит",
"Your TXID": "Ваш TXID", "Your TXID": "Ваш TXID",
"#79": "Phrases in components/TradeBox/Prompts/TakerFound.tsx", "#79": "Phrases in components/TradeBox/Prompts/TakerFound.tsx",
"Please wait for the taker to lock a bond. If the taker does not lock a bond in time, the order will be made public again.": "Пожалуйста, подождите, пока тейкер заблокирует залог. Если тейкер не заблокирует залог вовремя, ордер будет снова опубликован", "Please wait for the taker to lock a bond. If the taker does not lock a bond in time, the order will be made public again.": "Пожалуйста, подождите, пока тейкер заблокирует залог. Если тейкер не заблокирует залог вовремя, ордер будет снова опубликован",
"#80": "Phrases in pro/LandingDialog/index.tsx", "#76": "Phrases in pro/LandingDialog/index.tsx",
"A robot technician has arrived!": "A robot technician has arrived!", "A robot technician has arrived!": "Прибыл робот-техник!",
"I bring my own robots, here they are. (Drag and drop workspace.json)": "I bring my own robots, here they are. (Drag and drop workspace.json)", "I bring my own robots, here they are. (Drag and drop workspace.json)": "Я привожу своих роботов, вот они. (Перетащите workspace.json)",
"My first time here. Generate a new Robot Garage and extended robot token (xToken).": "My first time here. Generate a new Robot Garage and extended robot token (xToken).", "My first time here. Generate a new Robot Garage and extended robot token (xToken).": "Я здесь впервые. Создайте новый гараж роботов и расширенный токен робота (xToken).",
"#81": "Phrases in pro/ToolBar/index.tsx", "#77": "Phrases in pro/ToolBar/index.tsx",
"Customize viewports": "Customize viewports", "Customize viewports": "Настройка видовых экранов",
"Freeze viewports": "Freeze viewports", "Freeze viewports": "Заморозить видовые экраны",
"desktop_unsafe_alert": "Некоторые функции отключены для Вашей безопасности (чат) и без них у Вас не будет возможности завершить сделку. Чтобы защитить Вашу конфиденциальность и полностью включить RoboSats, используйте <1>Tor Browser</1> и посетите <3>Onion</3> сайт.", "desktop_unsafe_alert": "Некоторые функции отключены для Вашей безопасности (чат) и без них у Вас не будет возможности завершить сделку. Чтобы защитить Вашу конфиденциальность и полностью включить RoboSats, используйте <1>Tor Browser</1> и посетите <3>Onion</3> сайт.",
"phone_unsafe_alert": "У Вас не будет возможности завершить сделку. Используйте <1>Tor Browser</1> и посетите <3>Onion</3> сайт.", "phone_unsafe_alert": "У Вас не будет возможности завершить сделку. Используйте <1>Tor Browser</1> и посетите <3>Onion</3> сайт.",
"rate_robosats": "Что Вы думаете о <1>RoboSats</1>?", "rate_robosats": "Что Вы думаете о <1>RoboSats</1>?",
"let_us_know_hot_to_improve": "Сообщите нам, как можно улучшить платформу (<1>Telegram</1> / <3>Github</3>)", "let_us_know_hot_to_improve": "Сообщите нам, как можно улучшить платформу (<1>Telegram</1> / <3>Github</3>)",
"open_dispute": "Для открытия диспута нужно подождать <1><1/>", "open_dispute": "Для открытия диспута нужно подождать <1><1/>",
"Waiting for maker bond": "Waiting for maker bond", "Waiting for maker bond": "Ожидание залога мейкера",
"Public": "Public", "Public": "Публичный",
"Waiting for taker bond": "Waiting for taker bond", "Waiting for taker bond": "Ожидание залога тейкера",
"Cancelled": "Cancelled", "Cancelled": "Отменён",
"Expired": "Expired", "Expired": "Истёк",
"Waiting for trade collateral and buyer invoice": "Waiting for trade collateral and buyer invoice", "Waiting for trade collateral and buyer invoice": "Ожидание залога и инвойса покупателя",
"Waiting only for seller trade collateral": "Waiting only for seller trade collateral", "Waiting only for seller trade collateral": "Ожидание только залога от продавца",
"Waiting only for buyer invoice": "Waiting only for buyer invoice", "Waiting only for buyer invoice": "Ожидание только залога от покупателя",
"Sending fiat - In chatroom": "Sending fiat - In chatroom", "Sending fiat - In chatroom": "Отправка фиата - В чат",
"Fiat sent - In chatroom": "Fiat sent - In chatroom", "Fiat sent - In chatroom": "Фиат отправлен - В чат",
"In dispute": "In dispute", "In dispute": "В диспуте",
"Collaboratively cancelled": "Collaboratively cancelled", "Collaboratively cancelled": "Совместно отменено",
"Sending satoshis to buyer": "Sending satoshis to buyer", "Sending satoshis to buyer": "Отправка Сатоши покупателю",
"Sucessful trade": "Successful trade", "Sucessful trade": "Успешная торговля",
"Failed lightning network routing": "Failed lightning network routing", "Failed lightning network routing": "Неудачная маршрутизация сети Lightning",
"Wait for dispute resolution": "Wait for dispute resolution", "Wait for dispute resolution": "Дождитесь разрешения диспута",
"Maker lost dispute": "Maker lost dispute", "Maker lost dispute": "Мейкер проиграл диспут",
"Taker lost dispute": "Taker lost dispute", "Taker lost dispute": "Тейкер проиграл диспут",
"Invoice expired. You did not confirm publishing the order in time. Make a new order.": "Invoice expired. You did not confirm publishing the order in time. Make a new order.", "Invoice expired. You did not confirm publishing the order in time. Make a new order.": "Срок действия инвойса истёк. Вы не подтвердили публикацию ордера вовремя. Сделайте новый ордер.",
"This order has been cancelled by the maker": "This order has been cancelled by the maker", "This order has been cancelled by the maker": "Этот ордер был отменён производителем",
"Invoice expired. You did not confirm taking the order in time.": "Invoice expired. You did not confirm taking the order in time.", "Invoice expired. You did not confirm taking the order in time.": "Срок действия инвойса истёк. Вы не подтвердили принятие ордера вовремя.",
"Invalid Order Id": "Invalid Order Id", "Invalid Order Id": "Неверный ID ордера",
"You must have a robot avatar to see the order details": "You must have a robot avatar to see the order details", "You must have a robot avatar to see the order details": "Чтобы увидеть детали ордера, у вас должен быть аватар-робот.",
"This order has been cancelled collaborativelly": "This order has been cancelled collaboratively", "This order has been cancelled collaborativelly": "Этот ордер был отменен совместно.",
"This order is not available": "This order is not available", "This order is not available": "Этот ордер недоступен",
"The Robotic Satoshis working in the warehouse did not understand you. Please, fill a Bug Issue in Github https://github.com/RoboSats/robosats/issues": "The Robotic Satoshis working in the warehouse did not understand you. Please, fill a Bug Issue in Github https://github.com/RoboSats/robosats/issues" "The Robotic Satoshis working in the warehouse did not understand you. Please, fill a Bug Issue in Github https://github.com/RoboSats/robosats/issues": "Роботы-сатоши, работающие на складе, вас не поняли. Пожалуйста, заполните сообщение об ошибке в Github https://github.com/RoboSats/robosats/issues."
} }

432
mobile/package-lock.json generated
View File

@ -8,8 +8,8 @@
"name": "robosats", "name": "robosats",
"version": "0.6.0", "version": "0.6.0",
"dependencies": { "dependencies": {
"@react-native-clipboard/clipboard": "^1.12.1", "@react-native-clipboard/clipboard": "^1.13.2",
"@react-native-community/netinfo": "^11.1.1", "@react-native-community/netinfo": "^11.2.1",
"react": "18.2.0", "react": "18.2.0",
"react-native": "^0.71.8", "react-native": "^0.71.8",
"react-native-encrypted-storage": "^4.0.3", "react-native-encrypted-storage": "^4.0.3",
@ -27,20 +27,20 @@
"@typescript-eslint/parser": "^5.59.6", "@typescript-eslint/parser": "^5.59.6",
"babel-jest": "^29.7.0", "babel-jest": "^29.7.0",
"eslint": "^8.39.0", "eslint": "^8.39.0",
"eslint-config-prettier": "^9.0.0", "eslint-config-prettier": "^9.1.0",
"eslint-config-standard-with-typescript": "^34.0.1", "eslint-config-standard-with-typescript": "^34.0.1",
"eslint-import-resolver-typescript": "^3.6.0", "eslint-import-resolver-typescript": "^3.6.0",
"eslint-plugin-import": "^2.27.5", "eslint-plugin-import": "^2.27.5",
"eslint-plugin-n": "^15.7.0", "eslint-plugin-n": "^15.7.0",
"eslint-plugin-prettier": "^4.2.1", "eslint-plugin-prettier": "^5.1.1",
"eslint-plugin-promise": "^6.1.1", "eslint-plugin-promise": "^6.1.1",
"eslint-plugin-react": "^7.32.2", "eslint-plugin-react": "^7.32.2",
"eslint-plugin-react-hooks": "^4.6.0", "eslint-plugin-react-hooks": "^4.6.0",
"jest": "^29.5.0", "jest": "^29.5.0",
"metro-react-native-babel-preset": "^0.75.1", "metro-react-native-babel-preset": "^0.75.1",
"prettier": "^3.1.0", "prettier": "^3.1.1",
"react-test-renderer": "18.2.0", "react-test-renderer": "18.2.0",
"typescript": "^5.3.2" "typescript": "^5.3.3"
} }
}, },
"node_modules/@ampproject/remapping": { "node_modules/@ampproject/remapping": {
@ -2588,10 +2588,75 @@
"node": ">= 8" "node": ">= 8"
} }
}, },
"node_modules/@pkgr/utils": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/@pkgr/utils/-/utils-2.4.2.tgz",
"integrity": "sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==",
"dev": true,
"dependencies": {
"cross-spawn": "^7.0.3",
"fast-glob": "^3.3.0",
"is-glob": "^4.0.3",
"open": "^9.1.0",
"picocolors": "^1.0.0",
"tslib": "^2.6.0"
},
"engines": {
"node": "^12.20.0 || ^14.18.0 || >=16.0.0"
},
"funding": {
"url": "https://opencollective.com/unts"
}
},
"node_modules/@pkgr/utils/node_modules/is-docker": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
"integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==",
"dev": true,
"bin": {
"is-docker": "cli.js"
},
"engines": {
"node": ">=8"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/@pkgr/utils/node_modules/is-wsl": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
"integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
"dev": true,
"dependencies": {
"is-docker": "^2.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/@pkgr/utils/node_modules/open": {
"version": "9.1.0",
"resolved": "https://registry.npmjs.org/open/-/open-9.1.0.tgz",
"integrity": "sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==",
"dev": true,
"dependencies": {
"default-browser": "^4.0.0",
"define-lazy-prop": "^3.0.0",
"is-inside-container": "^1.0.0",
"is-wsl": "^2.2.0"
},
"engines": {
"node": ">=14.16"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/@react-native-clipboard/clipboard": { "node_modules/@react-native-clipboard/clipboard": {
"version": "1.12.1", "version": "1.13.2",
"resolved": "https://registry.npmjs.org/@react-native-clipboard/clipboard/-/clipboard-1.12.1.tgz", "resolved": "https://registry.npmjs.org/@react-native-clipboard/clipboard/-/clipboard-1.13.2.tgz",
"integrity": "sha512-+PNk8kflpGte0W1Nz61/Dp8gHTxyuRjkVyRYBawymSIGTDHCC/zOJSbig6kGIkD8MeaGHC2vGYQJyUyCrgVPBQ==", "integrity": "sha512-uVM55oEGc6a6ZmSATDeTcMm55A/C1km5X47g0xaoF0Zagv7N/8RGvLceA5L/izPwflIy78t7XQeJUcnGSib0nA==",
"peerDependencies": { "peerDependencies": {
"react": ">=16.0", "react": ">=16.0",
"react-native": ">=0.57.0" "react-native": ">=0.57.0"
@ -4090,15 +4155,36 @@
"eslint": ">=7.0.0" "eslint": ">=7.0.0"
} }
}, },
"node_modules/@react-native-community/eslint-config/node_modules/eslint-plugin-prettier": {
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz",
"integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==",
"dev": true,
"dependencies": {
"prettier-linter-helpers": "^1.0.0"
},
"engines": {
"node": ">=12.0.0"
},
"peerDependencies": {
"eslint": ">=7.28.0",
"prettier": ">=2.0.0"
},
"peerDependenciesMeta": {
"eslint-config-prettier": {
"optional": true
}
}
},
"node_modules/@react-native-community/eslint-plugin": { "node_modules/@react-native-community/eslint-plugin": {
"version": "1.3.0", "version": "1.3.0",
"dev": true, "dev": true,
"license": "MIT" "license": "MIT"
}, },
"node_modules/@react-native-community/netinfo": { "node_modules/@react-native-community/netinfo": {
"version": "11.1.1", "version": "11.2.1",
"resolved": "https://registry.npmjs.org/@react-native-community/netinfo/-/netinfo-11.1.1.tgz", "resolved": "https://registry.npmjs.org/@react-native-community/netinfo/-/netinfo-11.2.1.tgz",
"integrity": "sha512-AoIcGL7WeXobSxMUz0ukXXCaQgIReR3xLfZJ/GTd3HN/iceuN6UvqAddfjxgqQWMcb6t2SfrjQnbUPfvattp/A==", "integrity": "sha512-n9kgmH7vLaU7Cdo8vGfJGGwhrlgppaOSq5zKj9I7H4k5iRM3aNtwURw83mgrc22Ip7nSye2afZV2xDiIyvHttQ==",
"peerDependencies": { "peerDependencies": {
"react-native": ">=0.59" "react-native": ">=0.59"
} }
@ -5184,6 +5270,15 @@
], ],
"license": "MIT" "license": "MIT"
}, },
"node_modules/big-integer": {
"version": "1.6.52",
"resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz",
"integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==",
"dev": true,
"engines": {
"node": ">=0.6"
}
},
"node_modules/bl": { "node_modules/bl": {
"version": "4.1.0", "version": "4.1.0",
"license": "MIT", "license": "MIT",
@ -5193,6 +5288,18 @@
"readable-stream": "^3.4.0" "readable-stream": "^3.4.0"
} }
}, },
"node_modules/bplist-parser": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz",
"integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==",
"dev": true,
"dependencies": {
"big-integer": "^1.6.44"
},
"engines": {
"node": ">= 5.10.0"
}
},
"node_modules/brace-expansion": { "node_modules/brace-expansion": {
"version": "1.1.11", "version": "1.1.11",
"license": "MIT", "license": "MIT",
@ -5308,6 +5415,21 @@
"dev": true, "dev": true,
"license": "ISC" "license": "ISC"
}, },
"node_modules/bundle-name": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-3.0.0.tgz",
"integrity": "sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==",
"dev": true,
"dependencies": {
"run-applescript": "^5.0.0"
},
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/bytes": { "node_modules/bytes": {
"version": "3.0.0", "version": "3.0.0",
"license": "MIT", "license": "MIT",
@ -5837,6 +5959,150 @@
"node": ">=0.10.0" "node": ">=0.10.0"
} }
}, },
"node_modules/default-browser": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/default-browser/-/default-browser-4.0.0.tgz",
"integrity": "sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==",
"dev": true,
"dependencies": {
"bundle-name": "^3.0.0",
"default-browser-id": "^3.0.0",
"execa": "^7.1.1",
"titleize": "^3.0.0"
},
"engines": {
"node": ">=14.16"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/default-browser-id": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz",
"integrity": "sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==",
"dev": true,
"dependencies": {
"bplist-parser": "^0.2.0",
"untildify": "^4.0.0"
},
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/default-browser/node_modules/execa": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz",
"integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==",
"dev": true,
"dependencies": {
"cross-spawn": "^7.0.3",
"get-stream": "^6.0.1",
"human-signals": "^4.3.0",
"is-stream": "^3.0.0",
"merge-stream": "^2.0.0",
"npm-run-path": "^5.1.0",
"onetime": "^6.0.0",
"signal-exit": "^3.0.7",
"strip-final-newline": "^3.0.0"
},
"engines": {
"node": "^14.18.0 || ^16.14.0 || >=18.0.0"
},
"funding": {
"url": "https://github.com/sindresorhus/execa?sponsor=1"
}
},
"node_modules/default-browser/node_modules/human-signals": {
"version": "4.3.1",
"resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz",
"integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==",
"dev": true,
"engines": {
"node": ">=14.18.0"
}
},
"node_modules/default-browser/node_modules/is-stream": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
"integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
"dev": true,
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/default-browser/node_modules/mimic-fn": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz",
"integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==",
"dev": true,
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/default-browser/node_modules/npm-run-path": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.2.0.tgz",
"integrity": "sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==",
"dev": true,
"dependencies": {
"path-key": "^4.0.0"
},
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/default-browser/node_modules/onetime": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz",
"integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==",
"dev": true,
"dependencies": {
"mimic-fn": "^4.0.0"
},
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/default-browser/node_modules/path-key": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz",
"integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
"dev": true,
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/default-browser/node_modules/strip-final-newline": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz",
"integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==",
"dev": true,
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/defaults": { "node_modules/defaults": {
"version": "1.0.4", "version": "1.0.4",
"license": "MIT", "license": "MIT",
@ -5847,6 +6113,18 @@
"url": "https://github.com/sponsors/sindresorhus" "url": "https://github.com/sponsors/sindresorhus"
} }
}, },
"node_modules/define-lazy-prop": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz",
"integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==",
"dev": true,
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/define-properties": { "node_modules/define-properties": {
"version": "1.2.0", "version": "1.2.0",
"dev": true, "dev": true,
@ -6181,9 +6459,9 @@
} }
}, },
"node_modules/eslint-config-prettier": { "node_modules/eslint-config-prettier": {
"version": "9.0.0", "version": "9.1.0",
"resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz", "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz",
"integrity": "sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==", "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==",
"dev": true, "dev": true,
"bin": { "bin": {
"eslint-config-prettier": "bin/cli.js" "eslint-config-prettier": "bin/cli.js"
@ -6500,20 +6778,30 @@
"license": "ISC" "license": "ISC"
}, },
"node_modules/eslint-plugin-prettier": { "node_modules/eslint-plugin-prettier": {
"version": "4.2.1", "version": "5.1.1",
"resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.1.tgz",
"integrity": "sha512-WQpV3mSmIobb77s4qiCZu3dBrZZ0rj8ckSfBtRrgNK9Wnh2s3eiaxNTWloz1LJ1WtvqZES/PAI7PLvsrGt/CEA==",
"dev": true, "dev": true,
"license": "MIT",
"dependencies": { "dependencies": {
"prettier-linter-helpers": "^1.0.0" "prettier-linter-helpers": "^1.0.0",
"synckit": "^0.8.5"
}, },
"engines": { "engines": {
"node": ">=12.0.0" "node": "^14.18.0 || >=16.0.0"
},
"funding": {
"url": "https://opencollective.com/prettier"
}, },
"peerDependencies": { "peerDependencies": {
"eslint": ">=7.28.0", "@types/eslint": ">=8.0.0",
"prettier": ">=2.0.0" "eslint": ">=8.0.0",
"eslint-config-prettier": "*",
"prettier": ">=3.0.0"
}, },
"peerDependenciesMeta": { "peerDependenciesMeta": {
"@types/eslint": {
"optional": true
},
"eslint-config-prettier": { "eslint-config-prettier": {
"optional": true "optional": true
} }
@ -8090,6 +8378,21 @@
"node": ">=0.10.0" "node": ">=0.10.0"
} }
}, },
"node_modules/is-docker": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz",
"integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==",
"dev": true,
"bin": {
"is-docker": "cli.js"
},
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/is-extendable": { "node_modules/is-extendable": {
"version": "1.0.1", "version": "1.0.1",
"license": "MIT", "license": "MIT",
@ -8134,6 +8437,24 @@
"node": ">=0.10.0" "node": ">=0.10.0"
} }
}, },
"node_modules/is-inside-container": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz",
"integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==",
"dev": true,
"dependencies": {
"is-docker": "^3.0.0"
},
"bin": {
"is-inside-container": "cli.js"
},
"engines": {
"node": ">=14.16"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/is-interactive": { "node_modules/is-interactive": {
"version": "1.0.0", "version": "1.0.0",
"license": "MIT", "license": "MIT",
@ -12048,9 +12369,9 @@
} }
}, },
"node_modules/prettier": { "node_modules/prettier": {
"version": "3.1.0", "version": "3.1.1",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.0.tgz", "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.1.tgz",
"integrity": "sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==", "integrity": "sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==",
"dev": true, "dev": true,
"bin": { "bin": {
"prettier": "bin/prettier.cjs" "prettier": "bin/prettier.cjs"
@ -12693,6 +13014,21 @@
"url": "https://github.com/sponsors/isaacs" "url": "https://github.com/sponsors/isaacs"
} }
}, },
"node_modules/run-applescript": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz",
"integrity": "sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==",
"dev": true,
"dependencies": {
"execa": "^5.0.0"
},
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/run-parallel": { "node_modules/run-parallel": {
"version": "1.2.0", "version": "1.2.0",
"dev": true, "dev": true,
@ -13477,6 +13813,22 @@
"url": "https://github.com/sponsors/ljharb" "url": "https://github.com/sponsors/ljharb"
} }
}, },
"node_modules/synckit": {
"version": "0.8.6",
"resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.6.tgz",
"integrity": "sha512-laHF2savN6sMeHCjLRkheIU4wo3Zg9Ln5YOjOo7sZ5dVQW8yF5pPE5SIw1dsPhq3TRp1jisKRCdPhfs/1WMqDA==",
"dev": true,
"dependencies": {
"@pkgr/utils": "^2.4.2",
"tslib": "^2.6.2"
},
"engines": {
"node": "^14.18.0 || >=16.0.0"
},
"funding": {
"url": "https://opencollective.com/unts"
}
},
"node_modules/tapable": { "node_modules/tapable": {
"version": "2.2.1", "version": "2.2.1",
"dev": true, "dev": true,
@ -13581,6 +13933,18 @@
"safe-buffer": "~5.1.0" "safe-buffer": "~5.1.0"
} }
}, },
"node_modules/titleize": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz",
"integrity": "sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==",
"dev": true,
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/tmpl": { "node_modules/tmpl": {
"version": "1.0.5", "version": "1.0.5",
"license": "BSD-3-Clause" "license": "BSD-3-Clause"
@ -13677,8 +14041,9 @@
} }
}, },
"node_modules/tslib": { "node_modules/tslib": {
"version": "2.5.2", "version": "2.6.2",
"license": "0BSD" "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
"integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
}, },
"node_modules/tsutils": { "node_modules/tsutils": {
"version": "3.21.0", "version": "3.21.0",
@ -13742,9 +14107,9 @@
} }
}, },
"node_modules/typescript": { "node_modules/typescript": {
"version": "5.3.2", "version": "5.3.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.2.tgz", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz",
"integrity": "sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ==", "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==",
"dev": true, "dev": true,
"bin": { "bin": {
"tsc": "bin/tsc", "tsc": "bin/tsc",
@ -13892,6 +14257,15 @@
"node": ">=0.10.0" "node": ">=0.10.0"
} }
}, },
"node_modules/untildify": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz",
"integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==",
"dev": true,
"engines": {
"node": ">=8"
}
},
"node_modules/update-browserslist-db": { "node_modules/update-browserslist-db": {
"version": "1.0.11", "version": "1.0.11",
"funding": [ "funding": [

View File

@ -12,8 +12,8 @@
"format": "prettier --write '**/**/*.{js,jsx,ts,tsx,css,md,json}' --config ./.prettierrc" "format": "prettier --write '**/**/*.{js,jsx,ts,tsx,css,md,json}' --config ./.prettierrc"
}, },
"dependencies": { "dependencies": {
"@react-native-clipboard/clipboard": "^1.12.1", "@react-native-clipboard/clipboard": "^1.13.2",
"@react-native-community/netinfo": "^11.1.1", "@react-native-community/netinfo": "^11.2.1",
"react": "18.2.0", "react": "18.2.0",
"react-native": "^0.71.8", "react-native": "^0.71.8",
"react-native-encrypted-storage": "^4.0.3", "react-native-encrypted-storage": "^4.0.3",
@ -31,20 +31,20 @@
"@typescript-eslint/parser": "^5.59.6", "@typescript-eslint/parser": "^5.59.6",
"babel-jest": "^29.7.0", "babel-jest": "^29.7.0",
"eslint": "^8.39.0", "eslint": "^8.39.0",
"eslint-config-prettier": "^9.0.0", "eslint-config-prettier": "^9.1.0",
"eslint-config-standard-with-typescript": "^34.0.1", "eslint-config-standard-with-typescript": "^34.0.1",
"eslint-import-resolver-typescript": "^3.6.0", "eslint-import-resolver-typescript": "^3.6.0",
"eslint-plugin-import": "^2.27.5", "eslint-plugin-import": "^2.27.5",
"eslint-plugin-n": "^15.7.0", "eslint-plugin-n": "^15.7.0",
"eslint-plugin-prettier": "^4.2.1", "eslint-plugin-prettier": "^5.1.1",
"eslint-plugin-promise": "^6.1.1", "eslint-plugin-promise": "^6.1.1",
"eslint-plugin-react": "^7.32.2", "eslint-plugin-react": "^7.32.2",
"eslint-plugin-react-hooks": "^4.6.0", "eslint-plugin-react-hooks": "^4.6.0",
"jest": "^29.5.0", "jest": "^29.5.0",
"metro-react-native-babel-preset": "^0.75.1", "metro-react-native-babel-preset": "^0.75.1",
"prettier": "^3.1.0", "prettier": "^3.1.1",
"react-test-renderer": "18.2.0", "react-test-renderer": "18.2.0",
"typescript": "^5.3.2" "typescript": "^5.3.3"
}, },
"resolutions": { "resolutions": {
"@types/react": "^18" "@types/react": "^18"

View File

@ -8,8 +8,8 @@ djangorestframework==3.14.0
channels==4.0.0 channels==4.0.0
channels-redis==4.1.0 channels-redis==4.1.0
celery==5.3.6 celery==5.3.6
grpcio==1.59.2 grpcio==1.60.0
googleapis-common-protos==1.61.0 googleapis-common-protos==1.62.0
grpcio-tools==1.59.2 grpcio-tools==1.59.2
numpy==1.26.0 numpy==1.26.0
Pillow==10.1.0 Pillow==10.1.0
@ -20,11 +20,11 @@ git+https://github.com/RoboSats/Robohash.git
gunicorn==21.2.0 gunicorn==21.2.0
psycopg2==2.9.9 psycopg2==2.9.9
SQLAlchemy==2.0.16 SQLAlchemy==2.0.16
django-import-export==3.3.3 django-import-export==3.3.5
requests[socks] requests[socks]
python-gnupg==0.5.1 python-gnupg==0.5.2
daphne==4.0.0 daphne==4.0.0
drf-spectacular==0.26.2 drf-spectacular==0.27.0
drf-spectacular-sidecar==2023.5.1 drf-spectacular-sidecar==2023.5.1
django-cors-headers==4.3.1 django-cors-headers==4.3.1
base91==1.0.1 base91==1.0.1

View File

@ -1,7 +1,7 @@
coverage==7.3.2 coverage==7.3.2
black==23.3.0 black==23.3.0
isort==5.12.0 isort==5.13.2
flake8==6.1.0 flake8==6.1.0
pyflakes==3.1.0 pyflakes==3.1.0
drf-openapi-tester==2.3.3 drf-openapi-tester==2.3.3
pre-commit==3.5.0 pre-commit==3.6.0