From 9c7128d547091a9b6f1c356fd5bffd5964ed54a3 Mon Sep 17 00:00:00 2001 From: Evgeny Date: Thu, 6 Aug 2026 09:37:10 +0100 Subject: [PATCH 01/62] core: plan for supporter badges (#7325) * core: plan for supporter badges * ledger maths * update plan * language * lines * lists * redeem * badge rpc protocol and draft service schema/plan * update badge service protocol to support upgrades * badge purchase ledger types and schema * type, mvp plan --------- Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com> --- docs/protocol/badges-rpc.md | 64 +++ docs/protocol/badges-rpc.schema.json | 384 +++++++++++++ plans/2026-07-30-supporter-badges-v3-ux.md | 534 ++++++++++++++++++ .../2026-07-31-badges-core-implementation.md | 410 ++++++++++++++ plans/2026-07-31-badges-service-schema.sql | 146 +++++ plans/2026-08-04-badges-mvp-scope.md | 83 +++ simplex-chat.cabal | 2 + src/Simplex/Chat/Badges/Service.hs | 244 ++++++++ src/Simplex/Chat/Badges/Store.hs | 215 +++++++ .../Migrations/M20260731_user_badges.hs | 169 ++++++ 10 files changed, 2251 insertions(+) create mode 100644 docs/protocol/badges-rpc.md create mode 100644 docs/protocol/badges-rpc.schema.json create mode 100644 plans/2026-07-30-supporter-badges-v3-ux.md create mode 100644 plans/2026-07-31-badges-core-implementation.md create mode 100644 plans/2026-07-31-badges-service-schema.sql create mode 100644 plans/2026-08-04-badges-mvp-scope.md create mode 100644 src/Simplex/Chat/Badges/Service.hs create mode 100644 src/Simplex/Chat/Badges/Store.hs create mode 100644 src/Simplex/Chat/Store/SQLite/Migrations/M20260731_user_badges.hs diff --git a/docs/protocol/badges-rpc.md b/docs/protocol/badges-rpc.md new file mode 100644 index 0000000000..635b2d8e7c --- /dev/null +++ b/docs/protocol/badges-rpc.md @@ -0,0 +1,64 @@ +# Badge service RPC protocol + +Schema: `badges-rpc.schema.json`, definitions `request` and `response`. Types: `Simplex.Chat.Badges.Service`. Model: `plans/2026-07-30-supporter-badges-v3-ux.md` §3 — cited below as "model". + +## Transport + +Service RPC (`plans/2026-07-22-service-rpc-chat.md`, branch `rpc`): the request travels in `APISendServiceRequest.request`, the response in `CRServiceResponse.responseData`; one response per request; per-call timeout. + +A request is an envelope: `version` — the client's protocol version; `purchaseKey`; `request` — the command, discriminated on `type`. Responses are discriminated on `type`. The service is deployed ahead of app releases, answers within the client's `version`, and rejects clients older than it supports with `unsupported_version`. + +## Identity + +Each purchase runs under a fresh Ed25519 key pair; `purchaseKey` is its public part and identifies the badge. The service cannot link purchases of one user; the exceptions are the declared upgrades below. `getBadgeCatalog` may omit `purchaseKey`: unsigned, it returns the catalog alone; signed, its response adds the purchase's `badgeStatement` — a client holding a lapsed badge checks for credits in the same request that prices a new purchase, and buys under a fresh key only when the statement shows none. Every other command requires the key and is signed with it. The agent delivers the verified signer key alongside the request; the service rejects a `purchaseKey` that differs from it with `bad_request`, and a key it holds no record of with `unknown_purchase_key`. + +A purchase record is created by `getBadgeInvoice`, or by `purchaseBadge` funded with `apple`, `google`, or `code`; `transferBadge` creates the receiving one (post-MVP). + +## Idempotency + +A timeout hides the outcome, so the client repeats the identical signed request at its next trigger, never on a poll timer. + +- `getBadgeInvoice` — returns the open invoice again; a new invoice is created only when none is open. +- `purchaseBadge` — a payment already credited returns the same `badgeCredential` and writes nothing. +- `upgradeBadgeSubscription` — evidence already applied returns the same result and writes nothing. +- `issueBadge` — repeated within an issued period, returns the cached credential and writes nothing. +- `transferBadge` — a receipt used by the same key returns the same result; used by another key, `receipt_used`. + +## Commands + +`purchaseBadge`, `upgradeBadgeSubscription`, and `issueBadge` carry `badgeRequest`, the signer's input (`BadgeRequest`, `Simplex.Chat.Badges`): the service signs exactly this content or rejects the command. The proposed `badgeExpiry` is capped by the funded coverage (`sundayAfter`, model §3); its absence requests a lifetime credential; `badgeExtra` is reserved and must be empty. + +- `getBadgeCatalog` → `badgeCatalog` — the prices and offers; signed, also the purchase's `badgeStatement`. Store builds never send it: prices come from the store and SKUs from app config. +- `getBadgeInvoice` → `badgeInvoice` — prices the purchase for `badgeInfo` and `paymentVia` (`card` — Stripe; `crypto` — btc, xmr): `badgeType`, `months`, `price`, `discount`, the upgrade `credit`, `amount` = price − discount − credit, `expiresAt`, and `paymentTo` — `url` for card; `address` and `cryptoAmount` for crypto. `priceId` pins the price the client displayed; `offerId` selects a discounted duration, and its absence buys one month at that price. Price and offer status is checked here only: `deprecated` is still accepted, `disabled` is rejected; a badge type with no active price yields `product_unavailable`. +- `purchaseBadge` → `badgeCredential` — verifies the funding (`apple` JWS offline; `google` token via the Publisher API; `invoice` against webhook-confirmed settlement, `payment_pending` until it lands; `code`), records the credit, and issues the first credential, in one round trip. `receipt` is the recovery bearer secret (model § recovery); the service stores its hash; lifetime badges receive none. +- `upgradeBadgeSubscription` → `badgeCredential` — the app-led store subscription change, on the same key: verifies the store evidence of the replaced subscription and records the new plan; an immediate upgrade returns the new credential, a deferred change returns none. +- `issueBadge` → `badgeCredential` — issues the next period from the balance, the only source of issuance. The ledger is advanced first; the credential is signed before the `debit(badge)` and issuance rows are written, in one transaction. An exhausted balance yields no `credential`; the `statement` shows why. Issuing on a paused badge resumes it (model 2.13). +- `pauseBadge` (post-MVP) → `badgeCredential` — suspends issuance and lapse (model 2.13). +- `transferBadge` (post-MVP) → `badgeCredential` — the receipt moves the remaining balance and the provider binding to the signing key; the transferred period's re-issue debits a month, and the response holds a fresh receipt, retiring the presented one. Lifetime badges are not transferable by the command — support handles them. + +## Upgrades + +Always a new purchase under a new key, except store subscriptions, where the store owns the change. + +- Non-store: `getBadgeInvoice.upgrade` — `fromPurchaseKey`, the old purchase's `receipt`, `receiptSignature` binding the old key to the new, and the asserted old `balance`. The invoice returns the conversion `credit`; settlement records `debit(upgrade)` on the old purchase and the credit on the new. +- Store one-time: an upgrade SKU at a fixed discounted price; `purchaseBadge.upgrade` — `fromPurchaseKey`, `receipt`, `receiptSignature` — proves eligibility (an unexpired cheaper badge), because the store cannot gate who buys the SKU. +- Store subscription, app-led: the native subscription-group flow (Apple — immediate, with the store's prorated refund; Google — per replacement mode), then `upgradeBadgeSubscription` with the new evidence. +- Store subscription, sheet-led, and every downgrade: the client sends nothing — the service discovers the change from provider state and notifications, and each renewal credits months of the charged badge type. + +## Catalog + +`prices` — `priceId`, `badgeType`, `monthPrice`, `currency`, `status`, `createdAt`; `offers` — `offerId`, `priceId`? (absent applies to any price), `months`, `discount`, `status`, `createdAt`. An offer states a discount, as free months or a percentage; a duration without one is priced at `months × monthPrice`. Repricing appends a price and deprecates the old, which is still accepted at invoice creation; deprecated prices and offers are sent so that a refresh cannot remove what the client pinned, and disabled ones are omitted. Rendering is app-driven — tiers and durations come from app resources, and one without a price is shown disabled. + +## Statement and balance + +The ledger is written by the service alone (model §3); the client keeps a verbatim replica and computes the effective balance from its last entry and the time. + +`statement` — `entries`, and `previousEntryId` when they attach after an entry the client holds; its absence marks entries that attach to nothing. Each entry states `entryId`, the signed `changeMonths`, the resulting `balanceMonths`, `balanceStartTs`, and `balanceBadgeType`, `wasPausedSince` on the entry ending a pause, `createdAt`, and `entryType` — `credit`: `payment {invoiceId?}`, `charge {chargeId}`, `support`, `transferIn {fromPurchaseKey}`, `opening`; `debit`: `refund`, `upgrade {toPurchaseKey}`, `transferOut {toPurchaseKey}`, `support`, `badge`, `lapse`. An unknown type is stored as received and decoded after an app upgrade. + +`balance` — `lastEntry`, the client's last entry, asserting the position and the months it believes it holds. + +An assertion that names an entry the service holds is a prefix: the service proceeds and returns what follows it. Otherwise the service heals its own ledger first — provider evidence for charges, time for lapses — proceeds, and returns either the complete history or one `opening` credit. An `opening` entry is an absolute restatement: the ledger is reset to the amount it states, without relation to the preceding entry, which also serves a new device and, later, the discarding of old history into a brought-forward balance. + +## Errors + +`retryAfter` marks the transient codes: `payment_pending`, `provider_unavailable`, `rate_limited`. `offer_disabled` calls for a catalog refresh. `code_invalid` covers unknown and revoked codes; `code_used` — redeemed under another key. `receipt_invalid` covers unknown receipts. All other codes are terminal for the attempted command. diff --git a/docs/protocol/badges-rpc.schema.json b/docs/protocol/badges-rpc.schema.json new file mode 100644 index 0000000000..b1c3cf4a66 --- /dev/null +++ b/docs/protocol/badges-rpc.schema.json @@ -0,0 +1,384 @@ +{ + "metadata": { + "description": "JTD schema for badge service RPC requests and responses, see badges-rpc.md." + }, + "definitions": { + "base64url": { + "type": "string", + "metadata": {"format": "base64url encoded string"} + }, + "purchaseKey": { + "ref": "base64url", + "metadata": {"comment": "must match the RPC transport key"} + }, + "currencyAmount": { + "type": "uint32", + "metadata": {"comment": "USD etc. are in minor units, following Stripe etc. convention"} + }, + "badgeInfo": { + "properties": { + "badgeType": {"type": "string"}, + "badgeExtra": {"type": "string"} + }, + "optionalProperties": { + "badgeExpiry": {"type": "timestamp"} + } + }, + "badgeRequest": { + "properties": { + "masterKey": {"ref": "base64url"}, + "badgeInfo": {"ref": "badgeInfo"} + } + }, + "credential": { + "properties": { + "badgeKeyIdx": {"type": "uint16"}, + "masterKey": {"ref": "base64url"}, + "signature": {"ref": "base64url"}, + "badgeInfo": {"ref": "badgeInfo"} + } + }, + "paymentVia": { + "discriminator": "type", + "mapping": { + "card": { + "properties": {"provider": {"enum": ["stripe"]}} + }, + "crypto": { + "properties": {"currency": {"enum": ["btc", "xmr"]}} + } + } + }, + "paymentTo": { + "discriminator": "type", + "mapping": { + "card": { + "properties": { + "provider": {"enum": ["stripe"]}, + "url": {"type": "string"} + } + }, + "crypto": { + "properties": { + "currency": {"enum": ["btc", "xmr"]}, + "address": {"type": "string"}, + "cryptoAmount": {"type": "string"} + } + } + } + }, + "payment": { + "discriminator": "type", + "mapping": { + "apple": { + "properties": {"jws": {"type": "string"}} + }, + "google": { + "properties": {"token": {"type": "string"}} + }, + "invoice": { + "properties": {"invoiceId": {"type": "string"}} + }, + "code": { + "properties": {"code": {"type": "string"}} + } + } + }, + "upgrade": { + "properties": { + "fromPurchaseKey": {"ref": "base64url"}, + "receipt": {"type": "string"}, + "receiptSignature": {"ref": "base64url"}, + "balance": {"ref": "balance"} + } + }, + "catalog": { + "properties": { + "prices": {"elements": {"ref": "badgePrice"}}, + "offers": {"elements": {"ref": "badgeOffer"}} + } + }, + "badgePrice": { + "properties": { + "priceId": {"type": "string"}, + "badgeType": {"type": "string"}, + "monthPrice": {"ref": "currencyAmount"}, + "currency": {"type": "string"}, + "status": {"ref": "badgeItemStatus"}, + "createdAt": {"type": "timestamp"} + } + }, + "badgeOffer": { + "properties": { + "offerId": {"type": "string"}, + "months": {"type": "uint8"}, + "discount": {"ref": "offerDiscount"}, + "status": {"ref": "badgeItemStatus"}, + "createdAt": {"type": "timestamp"} + }, + "optionalProperties": { + "priceId": { + "type": "string", + "metadata": {"comment": "absent applies to any price"} + } + } + }, + "offerDiscount": { + "discriminator": "type", + "mapping": { + "freeMonths": { + "properties": {"freeMonths": {"type": "uint8"}} + }, + "discount": { + "properties": { + "discount": { + "type": "uint8", + "metadata": {"comment": "percent"} + } + } + } + } + }, + "badgeItemStatus": { + "enum": ["active", "deprecated", "disabled"], + "metadata": {"comment": "disabled is not sent"} + }, + "statement": { + "properties": { + "entries": {"elements": {"ref": "ledgerEntry"}} + }, + "optionalProperties": { + "previousEntryId": { + "type": "string", + "metadata": {"comment": "matches the client's asserted entryId, absent for the full ledger"} + } + } + }, + "balance": { + "properties": { + "lastEntry": {"ref": "ledgerEntry"} + } + }, + "ledgerEntry": { + "properties": { + "entryId": {"type": "string"}, + "changeMonths": {"type": "int16"}, + "balanceMonths": {"type": "uint16"}, + "balanceStartTs": {"type": "timestamp"}, + "balanceBadgeType": {"type": "string"}, + "createdAt": {"type": "timestamp"}, + "entryType": {"ref": "ledgerEntryType"} + }, + "optionalProperties": { + "wasPausedSince": {"type": "timestamp"} + } + }, + "ledgerEntryType": { + "discriminator": "type", + "mapping": { + "credit": { + "properties": {"credit": {"ref": "ledgerCredit"}} + }, + "debit": { + "properties": {"debit": {"ref": "ledgerDebit"}} + } + } + }, + "ledgerCredit": { + "discriminator": "type", + "mapping": { + "payment": { + "optionalProperties": { + "invoiceId": { + "type": "string", + "metadata": {"comment": "absent for store and code payments"} + } + } + }, + "charge": { + "properties": {"chargeId": {"type": "string"}} + }, + "support": { + "optionalProperties": {} + }, + "transferIn": { + "properties": {"fromPurchaseKey": {"ref": "base64url"}} + }, + "opening": { + "optionalProperties": {} + } + } + }, + "ledgerDebit": { + "discriminator": "type", + "mapping": { + "refund": { + "optionalProperties": {} + }, + "upgrade": { + "properties": {"toPurchaseKey": {"ref": "base64url"}} + }, + "transferOut": { + "properties": {"toPurchaseKey": {"ref": "base64url"}} + }, + "support": { + "optionalProperties": {} + }, + "badge": { + "optionalProperties": {} + }, + "lapse": { + "optionalProperties": {} + } + } + }, + "request": { + "properties": { + "version": {"type": "uint16"}, + "request": {"ref": "command"} + }, + "optionalProperties": { + "purchaseKey": { + "ref": "purchaseKey", + "metadata": {"comment": "optional for getBadgeCatalog, required for other commands"} + } + } + }, + "command": { + "discriminator": "type", + "mapping": { + "getBadgeCatalog": { + "optionalProperties": {} + }, + "getBadgeInvoice": { + "properties": { + "priceId": {"type": "string"}, + "badgeInfo": {"ref": "badgeInfo"}, + "paymentVia": {"ref": "paymentVia"} + }, + "optionalProperties": { + "offerId": { + "type": "string", + "metadata": {"comment": "absent for 1 month at the badge price"} + }, + "upgrade": { + "ref": "upgrade", + "metadata": {"comment": "upgrade non-store badge"} + } + } + }, + "purchaseBadge": { + "properties": { + "badgeRequest": {"ref": "badgeRequest"}, + "payment": {"ref": "payment"} + }, + "optionalProperties": { + "upgrade": { + "ref": "upgrade", + "metadata": {"comment": "upgrade store 1-time badge"} + } + } + }, + "upgradeBadgeSubscription": { + "properties": { + "badgeRequest": {"ref": "badgeRequest"}, + "payment": { + "ref": "payment", + "metadata": {"comment": "store payments only"} + }, + "balance": {"ref": "balance"} + } + }, + "issueBadge": { + "properties": { + "badgeRequest": {"ref": "badgeRequest"}, + "balance": {"ref": "balance"} + } + }, + "pauseBadge": { + "optionalProperties": {} + }, + "transferBadge": { + "properties": { + "badgeRequest": {"ref": "badgeRequest"}, + "receipt": {"type": "string"} + } + } + } + }, + "response": { + "discriminator": "type", + "mapping": { + "badgeCatalog": { + "properties": { + "catalog": {"ref": "catalog"} + }, + "optionalProperties": { + "badgeStatement": { + "ref": "statement", + "metadata": {"comment": "for signed getBadgeCatalog"} + } + } + }, + "badgeInvoice": { + "properties": { + "invoiceId": {"type": "string"}, + "badgeType": {"type": "string"}, + "months": {"type": "uint8"}, + "price": {"ref": "currencyAmount"}, + "amount": { + "ref": "currencyAmount", + "metadata": {"comment": "price - discount - credit"} + }, + "currency": {"type": "string"}, + "expiresAt": {"type": "timestamp"}, + "paymentTo": {"ref": "paymentTo"} + }, + "optionalProperties": { + "discount": { + "ref": "currencyAmount", + "metadata": {"comment": "discount amount from monthly price"} + }, + "credit": { + "ref": "currencyAmount", + "metadata": {"comment": "credit for upgrade"} + } + } + }, + "badgeCredential": { + "properties": { + "statement": {"ref": "statement"} + }, + "optionalProperties": { + "credential": { + "ref": "credential", + "metadata": {"comment": "absent when no balance to issueBadge or no current credential for pause"} + }, + "receipt": { + "type": "string", + "metadata": {"comment": "not provided for lifetime badges"} + } + } + }, + "error": { + "properties": { + "code": { + "enum": [ + "bad_request", "unsupported_version", "unknown_purchase_key", + "unknown_offer_id", "offer_disabled", "offer_mismatch", "product_unavailable", + "payment_not_entitled", "payment_pending", "provider_unavailable", "rate_limited", + "code_invalid", "code_used", "code_expired", + "receipt_invalid", "receipt_used", + "internal" + ] + } + }, + "optionalProperties": { + "message": {"type": "string"}, + "retryAfter": {"type": "uint32"} + } + } + } + } + } +} diff --git a/plans/2026-07-30-supporter-badges-v3-ux.md b/plans/2026-07-30-supporter-badges-v3-ux.md new file mode 100644 index 0000000000..12b75acf0a --- /dev/null +++ b/plans/2026-07-30-supporter-badges-v3-ux.md @@ -0,0 +1,534 @@ +# Supporter Badges v3 + +**Date:** 2026-07-30 +**Status:** draft +**Transport:** service RPC (`plans/2026-07-22-service-rpc-chat.md`, implemented, branch `rpc`): signed requests (`APISendServiceRequest.signKey`), verified signer key delivered to the service (`CEvtServiceRequest.signerKey`), one response per request, per-call timeout, no transport persistence. The client repeats the same signed request after a timeout; every bot operation is idempotent. +**Designs:** `/code/simplex-chat-art/screens/badges-mobile_15-*.jpg`, `_16-*-dark.jpg` + +## Principles + +- At most one badge is shown per profile. A user holds at most two badges per profile: paid (supporter/legend) and investor (2.7). +- The core engine performs all badge automation and emits events; apps render and call APIs only for user actions (2.9). +- No bot push; the client reads state via its own requests. Bot-initiated messaging, if ever added, is an opt-in SimpleX contact. +- Paid time is a months balance on a single-entry ledger; unconsumed months lapse; credentials are issued monthly for all plans; prepaid time is pausable post-MVP (§3, 2.13). +- One current alert per profile, derived from state; a later state supersedes an unacknowledged earlier alert (2.4). +- Renewal reminders on by default with opt-out; no success screens. +- Credentials expire on Sundays (UTC); profile updates are sent on Mondays, including removal updates for expired badges; the user is shown one date — the payment date (2.11). + +## 1. Existing designs + +| Screen | Covers | +|---|---| +| `banner` | chat-list banner: "Support SimpleX — Get badge + files up to 5GB", dismissable | +| `support-simplex` | intro screen → Choose your level | +| `your-level` | tier choice: Supporter $7/month (2GB) vs Legend $70/month (5GB), profile preview with badge | +| `pay` | plan choice: "1 month" vs "Subscribe", Pay button, renewal date | +| `settings` | "Supporter perks" row in Your settings | +| `whats-new` | v7.0 announcement entry | + +These designs cover the acquisition path for iOS/Play builds only. Missing designs: + +- payment method + duration selector (2.1) +- crypto invoice screen (2.1) +- user-picker badge presence (2.3) +- management screen (2.6) +- start-sharing question (2.5) + +Store builds display store-fetched localized prices; catalog prices apply to Stripe/BTCPay only. + +## 2. UX + +### 2.1 Payment method and duration (non-store builds) + +- Store builds: no method UI. One-time 1 month; monthly/annual subscriptions. +- Non-store builds: method selector (Card / Bitcoin / Monero), all multi-month prepaid; no card subscriptions (§6.11). Plan screen copy: "payments don't renew — you choose how many months to pay for". +- Durations 1 / 3 / 12 months; prices 1× / 2× / 6× monthly (§6.12). Duration selector — new design. +- Unavailable options: disabled offers and inactive products are shown as disabled; when no option is available, the purchase screen shows an unavailable notice; the `product_unavailable` error is displayed the same way. +- Crypto payment screen (new design): + - amount, one-off address, QR, copy, open-in-wallet, countdown (BTCPay fixes the fiat rate at invoice creation; the invoice expires in ~15–60 min); + - states: waiting → processing (transaction seen, unconfirmed) → settled; expired → "Invoice expired" + new invoice (new payment row); + - fiat-first display; + - partial payment: the BTCPay marked state is shown; the user is directed to support. +- After settlement the issue response contains a receipt code (§3 recovery); one-time save prompt at checkout ("keep your receipt — it recovers unused months if you lose this device"); receipts are shown in payment history (2.6). +- Stripe: payment link opened in the system browser; "Waiting for payment…" + open-link-again; the link is stored in the payment row. + +### 2.2 Chat-list banner + +Shown after ≥ 3 conversations and not in the first days after install; hidden for ~6 months after dismissal; not shown while a badge is active or a payment is pending; not re-shown on expiry. Exact thresholds set at implementation. + +### 2.3 User picker (design needed) + +Menu opened from the avatar in the chat-list toolbar (`apps/multiplatform/.../chatlist/UserPicker.kt`, `apps/ios/Shared/Views/ChatList/UserPicker.swift`; the profile bar renders `localBadge` — UserPicker.kt:213). + +- Option A (preferred): badge icon on the right of the profile bar, opens the management screen; indicator dot for the current alert. Icon shown while a badge is held or a payment is pending; acquisition entry remains the banner and the Settings row. +- Option B: full option row (state text: "Supporter · renews Aug 21", "ends Oct 22", "⚠ payment problem"), replacing the Settings row; "Your chat profiles" is moved to Settings. + +### 2.4 Alerts + +| Alert | When | Content / actions | +|---|---|---| +| subscription renewal approaching | 3 days before `renews_at`, once per cycle | price + date; OK · Remind me again (1 day before) · Cancel path | +| payment failed / grace | on provider grace/hold state, once per episode | "Payment problem — perks until {date}. Fix payment." → store fix flow | +| subscription ended | at paid-through, once | "Subscription ended {date}." + Resubscribe | +| prepaid ending | 3 days before paid-through, balance 0, not paused, once | "Your support ends {date}. Renew for {price}?" OK · Remind me again (1 day before) | +| support ended | at paid-through, balance 0, no active subscription, not paused, once | "Your support ended {date}." + Renew / Choose level | +| renewal charged | never — visible in charge history and picker badge state | — | +| credential issued | never | — | + +No alerts for paused badges (2.13). An alert is shown in its profile's context (indicator on the profile row in the picker). + +Persistence: no alerts table. On the badge row: `alert_acked_kind` + `alert_acked_episode` (the episode value, e.g. this cycle's `renews_at`) and `alert_snooze_until`. Core emits `CEvtBadgeAlert` when the derived alert differs from the acknowledged one; on OK the client stores the kind + episode; on snooze it sets `alert_snooze_until`, after which the alert is emitted once more. + +Opt-out toggle "Remind me about renewals and expiry" disables renewal-approaching and prepaid-ending; the other alerts cannot be disabled. + +### 2.5 Start-sharing + +- Default: a newly acquired badge is presented immediately; switching the shown badge takes effect immediately. +- Perks require presentation: the recipient verifies file size against the presented proof (`maxXFTPFileSize` on `PeerBadge`); the sender's client disables the perk at paid-through (2.11). This is stated in the "Now / From Monday" question. +- Management-screen toggle: "Show new badges from Monday" — off by default. +- Global setting "Show advanced privacy questions" (Privacy & security): when on, acquisitions that change the presented badge ask "Start showing: Now / From Monday". Later candidates for the same setting: deletion notifications, rejected contact requests, call questions. +- While presentation is delayed: the previous badge remains presented; the management screen shows "starts Monday {date}"; field `use_from`. + +### 2.6 Management screen (design needed) + +All dates shown are paid-through (2.11): + +1. **Acquiring / payment pending** — method-specific pending UI (2.1); old badge unchanged. +2. **Active prepaid** — "Ends {date}" ({N} months left); payment history (last 12; Stripe/crypto payments with receipts, §3); Pause (2.13); Subscribe; Upgrade. +3. **Active subscription** — "Renews {date} · {price}"; Cancel; Upgrade; charge history (last 12: date, amount, method, in the charged currency); reminders toggle. +4. **Cancelled, still active** — "Ends {date}"; Resubscribe. +5. **Payment issue** — banner over state 3; perks remain enabled during the provider grace period. +6. **Paused** — "Paused · {N} months left"; Resume. +7. **Expired** — "Support ended {date}"; Renew / Choose level. +8. **Held badges** — list of held badges (validity, source); radio for the shown one; pending presentation ("starts Monday {date}"). On a switch the client sends a profile update. +9. **Redeem code** entry (2.8). +10. Settings: reminders toggle (2.4); "Show new badges from Monday" (2.5). + +### 2.7 Held badges and switching + +- Perks apply only from the shown badge, verified against the presented proof. Holding legend while showing investor yields 2 GB (`BTLegend` alone yields 5 GB). Switch UI copy: "Sending 5 GB files requires showing the Legend badge". +- Exactly one shown; on a switch the client sends a profile update with a fresh proof (`setUserBadge` + broadcast; the presentation copy is stored in `contact_profiles`). Timing per 2.5. +- When the shown paid badge expires and an investor badge is held: the client switches the shown badge to investor with the Monday update. + +### 2.8 Redeem codes + +The service grants any badge type for 1/3/12 months per code (investor: lifetime); the response contains badge type + granted months. Granted months are recorded in the ledger; credentials are re-issued monthly. UX: "Have a code?" → paste → signed `redeem` (fresh order) → the badge is shown (2.5). Errors: invalid / used / expired, inline. + +### 2.9 Core engine + +Triggers: + +- chat start +- foreground +- network restore +- profile switch +- timers: renewal, expiry, Monday boundaries + +1. resume: settled payments without issuance; subscription renewals after `renews_at`; monthly re-issue while balance > 0 and not paused; invoiced/pending crypto payments; +2. `advance(now)` + `issue(now)` at each `issue`/`status` request (§3); +3. presentation on/after Monday (UTC): fresh proofs for renewed badges and for badges whose `use_from` was reached; removal updates for badges expired unrenewed; +4. alert derivation (2.4), `CEvtBadgeAlert`; +5. sync: store charges and ledger rows received after the `since` cursor (§3). + +Events to the app: `CEvtBadgeChanged`, `CEvtBadgeAlert`. + +API calls (user actions): + +- get status +- get catalog (purchase-screen open, §3 prices) +- start purchase / get invoice +- issue after store payment (the app passes store evidence to core) +- cancel — opens the store sheet; no bot op +- pause / resume +- switch shown badge / set start date +- acknowledge / snooze alert +- reminder and presentation toggles +- redeem code + +On `ASETimeout` core retries the identical signed envelope on the next trigger; never on a poll timer. + +### 2.10 Upgrades + +- supporter → legend (store subscription): native upgrade flow, same subscription group. New badge row (new keys); old row superseded. +- prepaid upgrades: legend invoice = legend price − full supporter price while the supporter badge is unexpired; remaining supporter months are removed by `debit(conversion)` (§3). Both amounts are displayed. +- one-time → subscription (same tier): same badge row, new payment row; `payment_id` is updated to the new payment. +- Presentation per 2.5, including investor → legend. + +### 2.11 Dates + +- Credential expiry = paid-through of the issued month rounded up to Sunday (end of Sunday, UTC) — `sundayAfter` (§3). +- The user is shown one date — paid-through: "Renews {date}" / "Ends {date}" / "Support ended {date}". "Badge valid until" does not appear anywhere. The sender's client disables perks at paid-through; the recipient's client enforces credential expiry + grace. Small print: "your profile badge may remain visible to contacts for a few days after your support ends." +- Monday send-outs: fresh proofs for renewed badges; removal updates (`setUserBadge Nothing`) for badges expired unrenewed. +- Recipient display: a peer badge with expiry E is displayed as active until E + 7 days; the `BSExpiredOld` boundary (31 days) is shifted by the same 7 days. Both in the recipient's `mkBadgeStatus` derivation. + +### 2.12 Multi-profile + +Badges, payments, charges, ledgers are per `user_id`. No badge is presented for incognito profiles. + +### 2.13 Pause (prepaid only, post-MVP) + +Issued credentials are not pausable (expiry is signed); re-issuance is. Pause suspends issuance and lapse, with no duration limit. + +- Prepaid time only (crypto, Stripe one-time, codes). +- Signed RPC op, recorded bot-side and mirrored (`resume` transition, §3). +- While paused: the current credential remains valid to its expiry; no alerts; management screen state 6. +- On resume: issuance is resumed at the next `issue` request. + +## 3. Model + +### Ownership — two databases + +Bot tables (no private keys, no master keys, no UI state): + +- `orders` — `order_key` PK; pinned `product_id`; timestamps. Order state is derived from the ledger + provider. +- `payments` — user-initiated payments, as opposed to charges: bot-assigned `payment_ref`; per-payment `offer_id`, `provider`, `provider_ref`, receipt hash, status +- `charges` +- `badge_ledger` — authoritative +- `issuances` + cached credentials +- `codes` — code hashes, granted type/months, redemption, batch revocation +- webhook dedup + +Client tables: + +- `products`, `offers` — catalog cache +- `payments` +- `charges` — replica +- `badge_ledger` — replica +- `issuances` — replica +- `badges` — keys, credential, UI state + +Rules: + +- The replicated tables (`badge_ledger`, `issuances`, `charges`) have identical row content on both sides: bot-assigned row ids and refs. Ledger and issuance account column: `order_key` on the bot, `badge_id` on the client — 1:1, one key per badge. Charges reference payments on both sides: `payment_ref` on the bot, `bot_payment_ref` on the client. +- Synced via the `since` cursor; all ledger transitions (§ ledger) are executed by the bot only; the client stores received rows unchanged. +- Not replicated: the client's `payments` row records the local act (evidence, invoice URL, status); the bot's `payments` row records the binding (offer, `provider_ref`, receipt hash); `orders` records the pinned product; `badges` has no bot counterpart. +- Payments are product-agnostic on both sides: keyed by `order_key`, without references to product tables. The product row references its current payment; payment history is the join on `order_key`. + +### `products` + `offers` — two-tier catalog + +Tier 1 — `products`. All builds use it for product structure; display names and localization are app resources. + +- `product_id` PK +- `product_type` — `badge` +- `badge_type` — `supporter|legend|investor` +- `active` + +Tier 2 — `offers`: + +- `offer_id` PK +- `product_id` → products +- `plan` — `one_time|monthly|annual` +- `months` — 1/3/12 for one-time; NULL for subscriptions +- `apple_product_id`, `google_product_id` — store offers +- `price`, `currency` — non-store offers +- `state` — `active|deprecated|disabled` + +Rules: + +- Offers are append-only: repricing = new offer row + deprecation of the old. +- Lifecycle: `active` (rendered + accepted) → `deprecated` (hidden; accepted by `order`; window length is operator policy) → `disabled` (`order` rejects with a refresh-catalog error). +- State is checked at invoice creation only; the amount of an existing invoice does not change; `issue` on a settled payment is always honored. +- For store offers the state controls display only; their sale lifecycle is managed in the store consoles. +- `catalog` response: `active` + `deprecated` offers with state; `disabled` omitted. The client renders `active`, retains `deprecated`, may delete offers absent from the response unless referenced by a payment row. +- The duration selector (2.1) is built from active one-time offers; discounts are per-duration prices. +- Store one-time is 1 month only (§6.12). Seeded from app config; server-authoritative on the bot. +- Forward compatibility: entries with unknown `product_type`/`badge_type` are stored, not rendered, no error. New product types require an app release; new offers of known products do not. +- Products with `active = false` are not offered; an in-flight request on one → `product_unavailable`. + +Prices: + +- The amount at invoice creation is authoritative: BTCPay fixes the fiat amount, the Stripe page shows the charge, the final amount is confirmed at checkout. +- Display prices: the unsigned `catalog` op on purchase-screen open (non-store builds; non-blocking — the screen is rendered from the stored catalog and updated from the response), and the full catalog included in every `issue`/`status` response; the client reconciles received rows against stored rows. +- The catalog shipped with the app is the offline fallback; store builds read prices from StoreKit/Play Billing. +- Repricing applies to future purchases only. + +### `payments` — user-initiated acts + +- `payment_id` PK +- `user_id` +- `order_key` — the order paid for; badge orders are rows in `badges` +- `offer_id` → offers +- `bot_payment_ref` — bot-assigned; recorded from the invoice response or sync rows +- `months`, `amount`, `currency` — copied from the offer at purchase +- `provider` — `apple|google|stripe|btc|xmr|code` +- `provider_ref` — Apple original transaction id / Google purchase token / Stripe intent ref / BTCPay invoice id / code hash +- `invoice_url` +- `evidence` — Apple JWS / Google token, stored for repeat `issue` requests +- `receipt_code` — client-side (§ recovery); the bot stores `receipt_hash` +- `status` — `new|invoiced|pending|settled|failed|expired` +- `renews_at` — subscriptions +- `cancelled` — bot-confirmed renewal-off +- `created_at`, `updated_at` + +One row per act: purchase, subscribe, upgrade, resubscribe, each crypto invoice, code redemption. Abandoned attempts remain as history. On settlement the bot runs `advance` then `grant` (§ ledger). `paidThrough` = last ledger row; `badge_expiry` = last issuance. + +### `charges` — provider-initiated billing events + +- `charge_id` PK +- `payment_id` → payments +- `bot_payment_ref` — the synced ref; the client resolves `payment_id` from it +- `provider_charge_ref` — Stripe invoice id / Apple transaction id / Google order id +- `period_start`, `period_end` +- `amount`, `currency` — as reported by the provider +- `charged_at` +- unique (`payment_id`, `provider_charge_ref`) + +Rules: + +- Sources — the first charge of a subscription is also a row: + - Stripe: invoices by subscription + - Apple: Get Transaction History by original transaction id + - Google: per-renewal order ids +- Synced to the client via the `since` cursor. +- For each settled charge the bot records a `grant` of the charge's period length: +1 monthly, +12 annual. +- Charges are money facts referenced by grants, not ledger rows: a grant is not recorded for every charge (webhook replays are rejected by the unique key before any grant; charges from provider history for consumed, refunded, or re-bound periods are recorded without grants), and `charged_at` differs from the accounting time. + +### `badge_ledger` + `issuances` + +**Operations to support:** + +| # | operation | months | credential | +|---|---|---|---| +| O1 | prepaid settlement (Stripe/BTCPay) | +N | — | +| O2 | subscription charge settled | +1 monthly / +12 annual | — | +| O3 | code redemption | +N | — | +| O4 | goodwill grant | +N | — | +| O5 | transfer in | +M | — | +| O6 | refund / chargeback | −balance | issued credential remains valid | +| O7 | upgrade conversion | −balance | — | +| O8 | transfer out | −balance | — | +| O9 | correction (code abuse) | −balance | — | +| O10 | issue a month | −1 | new credential | +| O11 | lapse elapsed months | −k | — | +| O12 | repeat issue, same month | none | cached credential, no rows | +| O13 | lifetime issuance (investor) | none — no ledger | new credential | +| O14 | pause / resume (post-MVP) | 0 | — | + +**Ledger state** — two values; every row contains the state after it; **the last row is the state**: + +- `months` — unused months. +- `start` — the date the unused balance starts. Not changed by grants (while `months > 0`); advanced by one month per `consume` and by the lapsed count per `lapse`. + +Coverage = `[start, addMonths months start)`. `paidThrough = addMonths months start` — read from the last row alone; not a `badges` column. + +**Row:** + +- `entry_id` PK +- `badge_id` +- `op` — `grant(source) | debit(reason) | consume | lapse | resume` +- `delta` — signed months change +- `months` — state: unused months after this row +- `start` — state: balance start after this row +- ref — bot-assigned payment ref / `charge_id` (grants) +- `created_at` + +Append protocol: lock the badge's ledger → read the last row → compute the next → insert. The client stores rows verbatim from responses (`since` cursor = last `entry_id` held) and can re-verify each row from its predecessor. + +**Transitions** — from the last row `(start, months)`; `advance t` is run before every issue, grant, and debit: + +``` +advance t: -- time bookkeeping only: one lapse row for the fully elapsed months + k = min months (fullMonthsBetween start t) + -- fullMonthsBetween start t: the largest m >= 0 with addMonths m start <= t + if k > 0: append (lapse, −k, months − k, addMonths k start) -- O11, one row + +issue t: -- run after advance t + requires months > 0 && start <= t && no issuance for [start, addMonths 1 start) + sign the credential, expiry sundayAfter (addMonths 1 start) + in one transaction: append (consume, −1, months − 1, addMonths 1 start) -- O10 + + issuance row for [start, addMonths 1 start) + on signing failure: no rows; retried at the next `issue` + +grant t n src: -- O1–O5; t = settlement time, + months == 0 → append (grant src, +n, n, max start t) -- provider period start for O2 + months > 0 → append (grant src, +n, months + n, start) + +debit reason: append (debit reason, −months, 0, start) -- O6–O9 + +resume t: append (resume, 0, months, max start t) -- O14; no row is written on pause +``` + +**Issuances** — separate table; no credential is issued for `grant`/`debit`/`lapse` rows, and no ledger rows are written for lifetime (O13) and cached (O12) issuance events: + +- `issuance_id` PK +- `badge_id` +- `period_start`, `period_end` — NULL for lifetime +- `expiry` — `sundayAfter period_end`; NULL for lifetime +- `entry_id` → the `consume` row; NULL for lifetime +- `created_at` + +`badgeExpiry` = `expiry` of the last issuance — the credential's disclosed field. The current credential is stored in the badge row's credential columns; the issuance rows are the history; the O12 check reads the last issuance's period. + +**Properties:** + +1. Each row's `(months, start)` equals the transition applied to its predecessor — client-verifiable per row. +2. `months ≥ 0`; the sum of `delta` equals `months`; `start` is non-decreasing. +3. `consume` rows ↔ period issuances are 1:1 (`issuances.entry_id`) — written in one transaction, after the credential is signed. +4. Re-running the `issue` op (§4) immediately appends nothing; the response is the cached credential or `status`. + +**Example** — buy 3 months Tue Mar 10, 2026; app off Apr 5 – May 20; issue May 20: + +| # | op | delta | months | start | note | +|---|---|---|---|---|---| +| 1 | grant(payment) | +3 | 3 | Mar 10 | paidThrough = Jun 10 | +| 2 | consume | −1 | 2 | Apr 10 | issuance: Mar 10–Apr 10, expiry Sun Apr 12 | +| 3 | lapse | −1 | 1 | May 10 | Apr 10–May 10 passed unissued; recorded May 20 | +| 4 | consume | −1 | 0 | Jun 10 | issuance: May 10–Jun 10, expiry Sun Jun 14 | + +`paidThrough` after every row = Jun 10. ~Jun 7: prepaid-ending alert. Jun 10: sender-side perk disabled. Sun Jun 14: credential expires. Mon Jun 15: removal update. An additional +3 purchase on Jun 5: `months = 0` → row (grant, +3, 3, max(Jun 10, Jun 5)) → paidThrough = Sep 10. + +**Adjustments:** + +| Case | Rows | +|---|---| +| refund / chargeback (Apple `REFUND` notification; Google voided purchases; Stripe disputes) | `debit(refund)`; issued credentials remain valid to expiry | +| goodwill / outage compensation | `grant(goodwill) +N` with reason text | +| upgrade conversion (2.10) | `debit(conversion)` on the supporter badge; discount on the legend invoice | +| overpaid / duplicate crypto invoice | `grant(goodwill) +N` or refund, per support resolution | +| balance transfer after profile loss | `debit(transfer_out)` old badge / `grant(transfer_in) +M` new badge | +| leaked/abused code batch | `debit(correction)` on affected badges | + +### Recovery and transfer + +- Normal path: `order_priv_key` and `master_key` are part of the profile backup; after restore, a signed `status` request resolves the same order. +- Receipts (Stripe and crypto payments): the bot creates a receipt code for every settled payment — a high-entropy, checksummed, human-copyable bearer secret; only its hash is stored bot-side; redeemable once. Contained in the issue response; stored in the app (payment history, profile backups); save prompt at checkout (2.1). +- Stores: no receipt — the new client presents a fresh store receipt → re-bind, capped per payment and period. +- Transfer: a request signed by the new order key contains the receipt → `debit(transfer_out)` on the old badge, `grant(transfer_in)` on the new; the provider binding is reassigned to the new order. Once per receipt; unissued months only; logged. With a receipt used by another party, only unissued months are transferred, once; disputes are sent to support. +- Support evidence when the receipt is lost: the statement-descriptor ref (~22 chars total incl. prefix, e.g. `SIMPLEX 4F7K2`) and, for crypto, txid + amount/time. Discretionary; sufficient only for cancellation-level actions. +- Both app and receipt lost: no recovery. + +### `badges` — one row per order + +- `badge_id` PK +- `user_id` +- `order_key` — unique; the order identity +- `order_priv_key`, `master_key` +- `badge_type` +- `product_id` → products +- `payment_id` → payments — NOT NULL; the current payment. The badge row and its first payment are created in one transaction +- `status` — `acquiring|issued|superseded|failed` +- credential columns — `key_idx`, `signature`, `badge_expiry` (`BadgeRow` conventions; investor: `badge_expiry` NULL) +- `use_from` — presentation start (2.5) +- `paused_at` (2.13) +- `alert_acked_kind` + `alert_acked_episode`, `alert_snooze_until` (2.4) +- `created_at`, `updated_at` + +- A row is created per manual act (purchase, upgrade, resubscribe, redeem); on subscription renewal and prepaid re-issue the credential is updated in place, with charge and ledger rows added. +- Status is derived at load (`mkBadgeStatus`); the current alert is derived (2.4). Months and `paidThrough`: last ledger row. `badge_expiry`: credential columns / last issuance. +- Get-or-create concurrency: per-user lock (controller `TMap`) + one store transaction + partial unique index — one live (`acquiring|issued`) row per (`user_id`, slot), slot = investor vs paid. +- The shown badge is referenced from the user's record (`users.shown_badge_id`) — at most one, structurally; presentation starts at `use_from`; on a switch the client updates the reference and `contact_profiles` via `setUserBadge`. + +### Storage integration + +`contact_profiles` badge columns remain the presentation copy of the shown badge (`setUserBadge`, Store/Profiles.hs:375). `badges` records what the user has; the profile columns record what the user shows (2.6.8). + +## 4. Wire protocol + +`docs/protocol/badges-rpc.schema.json` + `docs/protocol/badges-rpc.md`. Every request except `catalog` is signed with the order key and contains `orderKey`, its public part; the bot verifies `orderKey` equals the transport signer key. + +| op | request | response | +|---|---|---| +| `catalog` | — | catalog | +| `order` (stripe/btc/xmr) | `offerId`, `provider` | invoice: url/address, amount, expiry | +| `issue` | `masterKey`; store evidence (JWS / token) when settling a store payment; `since` | credential + sync, or status | +| `status` | `since` | status or credential + sync | +| `redeem` | `masterKey`, `code`, `since` | credential + sync | +| `pause` / `resume` (post-MVP, 2.13) | — | status | +| `transfer` (post-MVP, §3 recovery) | `receipt` | status | + +- Offer resolution: by `offerId` at `order`; by the store SKU in the evidence at `issue`; by the code at `redeem`. The order's product is pinned at creation. +- On `issue`: `advance(now)`; then: current month issued → cached credential (O12); `issue` precondition met → `issue(now)`; otherwise `status` (§3). +- Store cancellation is performed in store UI and reflected by the next `status` (§6.11). +- New product types are added in the catalog (`product_type`); the ops are unchanged. + +## 5. Providers + +| | invoice step | pending means | settled evidence | renewal | cancel | +|---|---|---|---|---|---| +| Apple | local: `Product.purchase()` after creating the payment row | `pending` (Ask to Buy / SCA), late result via `Transaction.updates` | signed transaction JWS (verified offline by the bot; contains storefront price + currency) | store auto-renews; issue after `renews_at`; history = Get Transaction History | store management sheet | +| Google | local: `launchBillingFlow` | `purchaseState = PENDING` | purchase token (verified + acknowledged by the bot ≤ 3 days) | store auto-renews; per-renewal order ids | Play subscriptions UI | +| Stripe | RPC `order` → invoice (payment link) | `issue` responds "pending" until the webhook is received | none client-side — signer key + bot webhook state | none — prepaid 1/3/12 months; renewed manually | n/a | +| BTCPay (btc/xmr) | RPC `order` → invoice (address/amount), rate fixed, window ~15–60 min | invoice `Processing` | none client-side — invoice `Settled` at the bot | none — prepaid 1/3/12 months; renewed manually | n/a | + +## 6. Decisions + +Resolved: + +1. Banner thresholds — set at implementation. +2. Alerts — one derived alert per profile; two markers on the badge row; no alerts table. +3. Reminders — 3 days before, once; "Remind me again" 1 day before; opt-out covers reminder kinds only. +4. Start-sharing — immediate by default; "from Monday" toggle; interactive question only under "Show advanced privacy questions". +5. Prepaid upgrade pricing — deduct the full supporter price while the supporter badge is unexpired. +6. Charge history — last 12 in UI. +7. Redeem codes — all badge types; the service response contains type + months. +8. Crypto prices — fiat-first; crypto amount fixed at invoice time. +9. Time accounting — single-entry months ledger (§3); unconsumed months lapse; per-charge grants; pause post-MVP. +10. Receipts — every Stripe/crypto payment; recovery is the receipt's only operation; stores re-bind via the store account. +11. No card (Stripe) subscriptions — multi-month prepaid is the non-store model. Re-add path if ever needed: `cancel` op + bot webhook renewal handling; the schema suffices (`renews_at`/`cancelled`, per-charge grants, receipt re-bind, statement descriptor). +12. Durations and pricing — non-store 1/3/12 months at 1×/2×/6× monthly; store annual at 6× monthly; store offering = 1-month one-time + monthly/annual subscriptions, no store multi-month SKUs; all pricing in offers. +13. Expiry rounding — weekly: badges end Sundays (UTC); Monday presentations + removal updates; payment/issuance cadence stays monthly. +14. One user-facing date — paid-through everywhere; the sender's client disables perks at paid-through; credential expiry is internal. + +Open: + +1. User-picker badge presence: icon (preferred) vs row (2.3) — needs design. +2. Scope of "Show advanced privacy questions" beyond badges — separate initiative. +3. Support tooling at launch: refund clawback is mandatory; transfer is manual (support acts on a presented receipt) until the op is implemented. + +## 7. MVP + +Non-store payments at MVP are multi-month prepaid purchases: one flow (order → pay → issue → grant) for Stripe, BTC, XMR. Subscriptions exist only on stores. The ledger, charges, and receipts are included in the MVP. + +### Launch set + +- Tiers: supporter + legend + investor (redeem codes, 2.8). Store: monthly and annual subscriptions + one-time 1 month. Stripe/BTC/XMR: one-time 1/3/12 months (§6.12). +- Redeem codes for all badge types (2.8) — the reward mechanism; code generation is operator tooling, required at MVP. Held badges with switching (2.7) — a switch takes effect immediately at MVP (`use_from` deferred). +- Ops: `catalog` | `order` | `issue` | `status` | `redeem`. Receipts in issue responses; the full catalog in `issue`/`status` responses. +- Store cancellation: + - the Cancel button opens the store management sheet; the engine sends `status` on return; + - the client renders cancelled-active from local renewal state (StoreKit 2 `RenewalInfo.willAutoRenew`, Play Billing `Purchase.isAutoRenewing`); + - the bot reads cancellation from the provider on every `issue`/`status` (App Store Server API `autoRenewStatus`, Play `subscriptionsv2`) and from store notifications. +- Bot-side provider notifications, required: + - Stripe webhooks + - BTCPay webhooks + - App Store Server Notifications V2 + - Play RTDN + - covering: cancellations, grace/on-hold, refunds/voided purchases + - On a notification the bot updates its records and re-reads provider state; credentials are never issued from a notification payload; nothing is pushed to the client. +- Tables (§3 ownership): + - `products`, `offers` + - `payments` + - `charges` + - `badge_ledger` + - `issuances` + - `badges` — without `use_from`, `paused_at` +- Engine per 2.9: issue requests, monthly re-issue, `advance`/`issue` recording, Monday presentation incl. removal updates, alert derivation. +- Alerts: the full 2.4 set (renewal approaching: store subscriptions only); opt-out toggle. +- Receipts for every Stripe/crypto payment with the checkout save prompt; `transfer` op deferred — support executes recovery manually against a presented receipt. +- Entry points: chat-list banner, Settings "Supporter perks" row, whats-new. Management screen without the Paused state; `charges` recorded from the first release, history UI deferred. +- New designs: + - management screen + - method + duration selector + - crypto invoice screen +- Multi-profile; incognito profiles never present a badge. + +### Required in the first release (or earlier) + +1. +7 day recipient display grace (2.11) — in the earliest release, before purchases. +2. Week-boundary expiry + Monday presentation incl. removal updates (2.11). +3. Order-key-per-badge identity (§4). +4. Apple subscription group containing all subscription SKUs (both tiers × monthly/annual). +5. Refund handling: stop issuance + `debit(refund)`. +6. Stripe statement descriptor with short payment ref. +7. Receipts from the first payment. + +### Deferred + +| Deferred | Returns | Re-add path | +|---|---|---| +| `transfer` op | phase 2 | receipts exist from the first release; support transfers manually until then | +| pause / resume | phase 2 | ledger `resume` transition + `paused_at` column | +| charge history UI | phase 2 | `charges` recorded from the first release | +| upgrades (2.10) | phase 2 | store subscription group in place (item 4 above); bot SKU-change mapping + conversion debits | +| start-sharing question + "Show advanced privacy questions" (`use_from`) | phase 3 | immediate presentation and switching at MVP | +| user-picker badge presence | phase 2 | the Settings row is the entry point until then | diff --git a/plans/2026-07-31-badges-core-implementation.md b/plans/2026-07-31-badges-core-implementation.md new file mode 100644 index 0000000000..4928522b97 --- /dev/null +++ b/plans/2026-07-31-badges-core-implementation.md @@ -0,0 +1,410 @@ +# Supporter Badges v3 — core implementation plan + +**Date:** 2026-07-31 +**Product plan:** `plans/2026-07-30-supporter-badges-v3-ux.md` (referenced below as UX §n) +**Transport:** service RPC (`plans/2026-07-22-service-rpc-chat.md`, implemented, branch `rpc`) +**Scope:** MVP launch set (UX §7): commands `getBadgeCatalog | getBadgeInvoice | purchaseBadge | issueBadge` implemented; `upgradeBadgeSubscription | pauseBadge | transferBadge` are defined in the protocol, post-MVP; no `use_from`, `paused_at`. + +## 1. Client schema + +`src/Simplex/Chat/Store/SQLite/Migrations/M20260731_user_badges.hs` — SQLite only; the Postgres variant is written when the schema is final; registered in the migrations list and cabal at delivery step 2. + +- Table mapping to UX §3: + - `badges` → `badge_purchases` + - `issuances` → `badge_issuances` + - `products` + `offers` → `badge_prices` + `badge_offers` + - `badge_ledger` → `badge_ledger` + - `payments` and `charges` — unprefixed, product-agnostic (UX §3 ownership) +- The payment row is inserted first, the badge row in the same transaction. +- Payment columns beyond the UX §3 list (`invoice_*` client-side; `grace_until` and `exception` on both sides, sent in `paymentState`): + - `invoice_address` — the crypto screen address (UX 2.1) + - `invoice_crypto_amount` — the fixed crypto amount (UX 2.1) + - `invoice_expires_at` — the countdown and the expired state (UX 2.1) + - `grace_until` — the provider grace/hold deadline (UX 2.4 payment failed; 2.6 state 5) + - `exception` — the provider exception state: partial or over payment (UX 2.1) +- The badge–user match for `users.shown_badge_id` is enforced in code. +- `badge_ledger` has one definition — the `badgeLedgerTable` constant in the client migration; the service schema re-uses it literally. +- Settings (reminders opt-out; "Show new badges from Monday", post-MVP) are app settings, not schema. + +### `badge_ledger` + +A verbatim replica of the service ledger: the service is the only author; rows arrive in statements; the last row is the balance; each row is verifiable from its predecessor. + +| column | meaning | +|---|---| +| `entry_id` | local autoincrement; PK; never on the wire | +| `entry_uuid` | service-assigned UUIDv7; sent both ways; UNIQUE index | +| `badge_purchase_id` | FK → `badge_purchases` | +| `change_months` | months added or removed: `+3` credit, `−1` debit | +| `balance_months` | unused months after this entry | +| `balance_start_ts` | start of the unused balance, after this entry | +| `balance_badge_type` | the type of the unused balance, after this entry | +| `was_paused_since` | set on the entry ending a pause: paused from this time until this entry | +| `service_created_at` | service time of the entry | +| `created_at` | local time the row was stored | +| `entry_type` | `credit` \| `debit` | +| `entry_credit_type` | the `type` tag of the `credit` value — any string, known or not | +| `entry_debit_type` | the `type` tag of the `debit` value — any string, known or not | +| `entry_type_unknown` | client only, added via ALTER TABLE after the shared table: 1 when the tag is beyond the client's version; the typed reference columns stay NULL | +| `entry_type_value` | client only, added via ALTER TABLE: the credit/debit object JSON, verbatim; present only for unknown tags; re-decoded after upgrade | +| `invoice_id` | field of `credit(payment)`; FK → `payments` | +| `charge_id` | field of `credit(charge)`; FK → `charges` | +| `from_purchase_id` | field of `credit(transferIn)`; FK → `badge_purchases`, nullable — the source may not exist locally | +| `to_purchase_id` | field of `debit(upgrade)` / `debit(transferOut)`; FK → `badge_purchases` | + +| kind | type | meaning | when | +|---|---|---|---| +| credit | `payment` | months credited: a settled non-recurring payment — card, crypto, code, store one-time | MVP | +| credit | `charge` | months credited: one subscription charge, the first included | MVP | +| credit | `support` | months credited by support — compensation, gift | MVP | +| credit | `transferIn` | months arriving via transfer | post-MVP | +| credit | `opening` | balance restated: the ledger is reset to the stated amount, no relation to the previous row | MVP | +| debit | `refund` | balance removed: refund or chargeback | MVP | +| debit | `upgrade` | balance converted into an upgrade's credit | post-MVP | +| debit | `transferOut` | balance transferred out | post-MVP | +| debit | `support` | balance removed by support — leaked code batch | MVP | +| debit | `badge` | one month spent on the badge — a credential issued | MVP | +| debit | `lapse` | elapsed unissued months removed | MVP | + +``` +entry = credit — creditType: payment {invoiceId} | charge {chargeId} | support | transferIn {fromPurchaseKey} | opening + | debit — debitType: refund | upgrade {toPurchaseKey} | transferOut {toPurchaseKey} | support | badge | lapse +``` + +The protocol entry (`StatementEntry`, §4): `entryId`, `changeMonths`, `balanceMonths`, `balanceStartTs`, `balanceBadgeType`, `wasPausedSince`?, `createdAt`, `entryType` — the same sum with wire references. + +## 2. Badge RPC service schema + +`plans/2026-07-31-badges-service-schema.sql` — SQLite, like the client (the Postgres variant is written when the schema is final); the bot schema, extended with the purchase/ledger layer. + +## 3. Client types + +Domain types — `src/Simplex/Chat/Badges/Store.hs`. Records: + +- `BadgePurchase` +- `BadgePayment` +- `BadgeLedgerEntry` +- `BadgeCharge` +- `BadgeIssuance` +- `BadgeAlert` +- `UserBadgeState` + +Id newtypes: + +- `BadgePriceId` +- `BadgeOfferId` +- `InvoiceId` + +Enums: + +- `BadgePlan` +- `BadgeItemStatus` +- `BadgeProvider` +- `BadgePaymentStatus` +- `BadgePurchaseStatus` +- `BadgeAlertKind` + +Tagged sums: + +- `BadgePaymentMethod` — `apple` | `google` | `card {provider}` | `crypto {currency}`; the last two map to the wire `ServicePaymentMethod` +- `BadgePurchasePayment` — `apple {paymentId, jws}` | `google {paymentId, token}` | `code {code}`; the `APIPurchaseBadge` argument, mapped to the wire `ServicePayment` +- `OfferDiscount` — `discount_type` with `free_months` / `discount` (§2) +- `LedgerEntryType` — `entry_type` with `credit_type` / `debit_type` (§2) +- `LedgerCreditType` +- `LedgerDebitType` + +Reused from `Simplex.Chat.Badges`: + +- `BadgeType` +- `BadgeInfo` +- `BadgeRequest` +- `BadgeCredential` +- `BadgeMasterKey` + +Protocol types — `src/Simplex/Chat/Badges/Service.hs`, one constructor/field per JTD member: + +- `BadgeServiceRequest` +- `BadgeServiceCommand` +- `ServicePaymentMethod` +- `CardProvider` +- `CryptoCurrency` +- `CurrencyAmount` +- `ServicePayment` +- `BadgeUpgrade` +- `BadgeServiceResponse` +- `ServicePaymentDestination` +- `BadgeServiceErrorCode` +- `BadgeCatalog` +- `BadgePrice` — the store type as well +- `BadgeOffer` — the store type as well +- `BadgeStatement` +- `BadgeBalance` +- `StatementEntry` +- `StatementEntryType` +- `StatementCreditType` +- `StatementDebitType` + +Instances — added at implementation; enums follow the `BadgeType` conventions (Badges.hs:114); the unions encode the JTD discriminator `type`: + +- `TextEncoding` +- JSON +- `ToField` / `FromField` + +## 4. RPC protocol + +`docs/protocol/badges-rpc.schema.json` — the JTD schema (definitions `request` and `response`); `docs/protocol/badges-rpc.md` — the protocol description (identity, idempotency, op semantics, statement, errors). + +A request is an envelope: `version`; `purchaseKey`? (optional for `getBadgeCatalog` — signed, the response adds the purchase's `statement`; required for other commands, which are signed with it); `request` — the command, discriminated on `type`. Responses discriminate on `type`; response types are badge-namespaced, fields inside are plain. + +| request `type` | request fields (beyond `purchaseKey`, `version`) | response `type` | response fields | +|---|---|---|---| +| `getBadgeCatalog` (signature optional) | — | `badgeCatalog` | `catalog`
`badgeStatement`? (for signed requests) | +| `getBadgeInvoice` | `priceId`
`offerId`? (absent for 1 month at the badge price)
`badgeInfo {badgeType, badgeExpiry?, badgeExtra}`
`paymentVia` — `card`: `provider`; `crypto`: `currency`
`upgrade`? — `fromPurchaseKey`, `receipt`, `receiptSignature`, `balance` | `badgeInvoice` | `invoiceId`
`badgeType`
`months`
`price`
`discount`?
`credit`?
`amount` (= price − discount − credit)
`currency`
`expiresAt`
`paymentTo` — `card`: `provider`, `url`; `crypto`: `currency`, `address`, `cryptoAmount` | +| `purchaseBadge` | `badgeRequest` — `masterKey`, `badgeInfo`
`payment` — `apple`: `jws`; `google`: `token`; `invoice`: `invoiceId`; `code`: `code`
`upgrade`? — `fromPurchaseKey`, `receipt`, `receiptSignature`, `balance` | `badgeCredential` | `credential`
`receipt`? (not provided for lifetime badges)
`statement` | +| `upgradeBadgeSubscription` | `badgeRequest`
`payment` — `apple`: `jws`; `google`: `token`
`balance` | `badgeCredential` | `credential`?
`statement` | +| `issueBadge` | `badgeRequest`
`balance` | `badgeCredential` | `credential`? (absent when the balance is exhausted)
`statement` | +| `pauseBadge` (post-MVP) | — | `badgeCredential` | `credential`?
`statement` | +| `transferBadge` (post-MVP) | `badgeRequest`
`receipt` | `badgeCredential` | `credential`
`receipt`?
`statement` | +| any, on failure | — | `error` | `code` (incl. `payment_pending`, `code_invalid` / `code_used` / `code_expired`)
`message`?
`retryAfter`? | + +`statement` — record: `entries` — ledger entries; `previousEntryId`? — matches the client's asserted entryId, absent for the full ledger. + +`balance` — record: `lastEntry` — the client's last ledger entry. + +`catalog` — record: `prices`, `offers`. + +| item | fields | +|---|---| +| price | `priceId` — UUID
`badgeType` — `investor` is never priced
`monthPrice`
`currency` — `usd`
`status` — `active` \| `deprecated` \| `disabled`; disabled is not sent
`createdAt` | +| offer | `offerId` — UUID
`priceId`? — absent applies to any price
`months`
`discount` — `freeMonths`: `freeMonths` \| `discount`: `discount` (percent)
`status`
`createdAt` | + +Prices and offers have one type each across the protocol and the store: the UUID is the primary key, `createdAt` gives the sequence, and `payments` and `badge_purchases` reference them by UUID. + +Offer price: `freeMonths` → `(months − freeMonths) × monthPrice`; `discount` → `months × monthPrice × (100 − discount) / 100`, floored. + +Every offer states a discount; a plain 1-month purchase has no offer — its price is `monthPrice`, and `getBadgeInvoice` omits `offerId`. The duration selector is the fixed 1-month entry plus the offers. + +`getBadgeInvoice` pins the price by `priceId`, and the badge type and currency with it; the service validates `badgeInfo.badgeType` against the price. Repricing appends a price and deprecates the old one: a deprecated price is honored at invoice creation, a disabled one rejected. Deprecated prices and offers are sent so that a catalog refresh cannot remove what the client pinned; disabled ones are omitted, since the service rejects them. An offer pinned to a price dies with it; unpinned offers survive repricing. + +Rendering is app-driven: tiers and durations come from app resources, and one without a price is shown disabled. Store SKUs are absent from the catalog — store builds read prices from the store and SKUs from app config, and make no `getBadgeCatalog` requests, `issueBadge` on schedule and on wake keeping the ledger current. The service holds the SKUs for webhook mapping. + +## 5. Commands and events + +`ChatCommand` (Controller.hs; parsers in `chatCommandP`) — the UX 2.9 user actions. UX 2.9 actions without a command: + +- reminder and presentation toggles — app settings (§1) +- pause / resume and the start-sharing date — post-MVP (Scope) +- cancel — the Cancel button opens the store management sheet; on its close the management screen re-reads state via `APIGetBadgeState` (UX §7) + +```haskell +| APIGetBadgeState UserId -- /_badge state +| APIGetBadgeCatalog UserId -- /_badge catalog ; unsigned getBadgeCatalog +| APIGetBadgeInvoice {userId :: UserId, priceId :: BadgePriceId, offerId :: Maybe BadgeOfferId, paymentVia :: BadgePaymentMethod} -- /_badge invoice [] ; via — apple | google | card | crypto +| APIPurchaseBadge {userId :: UserId, payment :: BadgePurchasePayment} -- /_badge purchase +| APISwitchShownBadge {userId :: UserId, badgePurchaseId :: Int64} -- /_badge shown +| APIAckBadgeAlert {userId :: UserId, kind :: BadgeAlertKind, episode :: Text, snooze :: Bool} -- /_badge ack +``` + +| command | UX | called when | +|---|---|---| +| `APIGetBadgeState` | 2.2, 2.3, 2.6, 2.1, §7 | app start — the initial model load; a badge screen is opened or regains focus | +| `APIGetBadgeCatalog` | §3 prices | the purchase screen is opened (non-store builds); non-blocking | +| `APIGetBadgeInvoice` | 2.1 | the user taps Pay on the selected duration | +| `APIPurchaseBadge` | 2.1, 2.8, §5 | the store purchase flow returns evidence; the user submits a code (2.6.9) | +| `APISwitchShownBadge` | 2.6.8, 2.7 | the user selects the shown badge | +| `APIAckBadgeAlert` | 2.4 | the user taps OK or "Remind me again" on an alert | + +Purchase is two commands because the store purchase runs in the app between them: StoreKit and Play Billing are app-platform APIs, which core cannot call, and the store may deliver the result late (`pending` / Ask to Buy — via `Transaction.updates`, including after a restart). `APIGetBadgeInvoice` obtains the invoice for a card or crypto payment; after payment `APIPurchaseBadge` presents the store evidence, and the worker sends `purchaseBadge` — verification, the grant, and the first issuance in one round trip. Issuance has no command — `issueBadge` is core-driven (UX 2.9 engine), from the balance only: settlement credits months, issuance debits them (UX §3 ledger), so the first and every repeat issuance are the same command. + +- `APIGetBadgeInvoice` starts every purchase: core loads or creates the live purchase row for the badge type's slot (per-user lock + `idx_badge_purchases_live`) — a `failed` row of the same slot is reused — creates the payment row, and points the badge row's `payment_id` at it (UX §3: the current payment). For `card` and `crypto` core sends `getBadgeInvoice` with the pinned `priceId` and the `offerId` of the chosen duration, and responds with the invoice — the Stripe link or the crypto screen data (UX 2.1). For `apple` and `google` core writes the rows, generates the invoice id itself, and sends nothing, since prices come from the store and SKUs from app config (§4); the app states the store because core is the same on both platforms. The invoice fields are stored on the payment row (§1), so pending-payment screens re-render after a restart; after invoice expiry a new `APIGetBadgeInvoice` creates a new invoice and payment row (UX 2.1). +- The app passes the invoice id to the store as the account token — Apple `Product.PurchaseOption.appAccountToken` (a UUID, echoed in the signed transaction), Google `BillingFlowParams.setObfuscatedAccountId` — so the store transaction states which payment it settles, and the service reads it from the verified store payload at `purchaseBadge`. +- `APIPurchaseBadge` completes a store purchase — the only payment whose result is delivered to the app: the store hands the app the evidence, and only that evidence ties the store transaction to the purchase, because the store flow knows neither purchase keys nor the service. Core records it on the payment row; the worker sends `purchaseBadge` — the service verifies, records the credit, and issues in one round trip (§6). Card and crypto payments need no completion command and carry no evidence: the service records their settlement from the provider webhook (UX §7 notifications); the worker's next `issueBadge` returns the credential, or `payment_pending` until the webhook arrives (§4). +- `APIPurchaseBadge` with a `code` sends the same `purchaseBadge` under the user lock, and differs only in the order of the writes: keys are generated first, and the badge and payment rows (`provider = code`, `price_id` and `offer_id` NULL) are written on success in one transaction, directly `issued`, because the badge type — and with it the slot — is stated in the response (UX 2.8). A live row of the granted slot is superseded (at most two badges per profile, UX 2.7); its unconsumed months stay on its purchase — purchases are unlinkable, so the service cannot move them; recovery per UX §3 (`transferBadge`, post-MVP). On a timeout the error is surfaced to the user; a code consumed by a lost response is restored by support (codes tooling, delivery 7). +- `APIGetBadgeState` loads the badge state into the app model at start (and on profile switch); events only update the model afterward, so without the initial read it would hold nothing at first render — the 2.2 banner is rendered from it. It reads stored state and sends nothing itself. The same call re-reads state when a badge screen is opened or regains focus, and signals the worker (§6); reconciliation results follow as `CEvtBadgeChanged`. Screen re-focus covers the returns that fire no core trigger: the store cancellation sheet close — UX §7 "the engine sends `status` on return"; the in-app sheet fires no foreground trigger — and return to a pending-payment screen after payment (UX 2.1), which on desktop produces no foreground event either. + +`ChatResponse`: + +```haskell +| CRBadgeState {user :: User, badgeState :: UserBadgeState} +| CRBadgeCatalog {user :: User, prices :: [BadgePrice], offers :: [BadgeOffer]} +| CRBadgeInvoice {user :: User, payment :: BadgePayment} +``` + +- `CRBadgeState` — the state the badge surfaces render (banner 2.2; picker 2.3; management screen 2.6); the response of every command except `APIGetBadgeInvoice` and `APIGetBadgeCatalog`. Worker results follow as `CEvtBadgeChanged`. +- `CRBadgeCatalog` — the refreshed catalog for the open purchase screen (UX §3 prices). +- `CRBadgeInvoice` — the purchase continuation (`APIGetBadgeInvoice`): `payment` holds the invoice fields — the Stripe link, or the crypto address, amount, and expiry (UX 2.1); for a store payment, the locally generated invoice id, which the app passes to the store as the account token. +- Errors: `ChatErrorType` gains `CEBadgeServiceError {badgeError :: BadgeServiceErrorCode, message :: Maybe Text, retryAfter :: Maybe Int}` — the inline code-redemption errors (UX 2.8) and the purchase-screen unavailable notice (UX 2.1). + +`ChatEvent`: + +```haskell +| CEvtBadgeChanged {user :: User, badgeState :: UserBadgeState} +| CEvtBadgeAlert {user :: User, alert :: BadgeAlert} +``` + +- `CEvtBadgeChanged` — emitted by the worker on any state change it applies (UX 2.9 events); open badge surfaces re-render from it. +- `CEvtBadgeAlert` — the derived current alert (UX 2.4); the app displays it and answers with `APIAckBadgeAlert`. + +The reminders opt-out is an app setting: core emits `CEvtBadgeAlert` for all kinds; the app suppresses display of the two reminder kinds (`BARenewalApproaching` and `BAPrepaidEnding`) when reminders are off, and ignores them in `UserBadgeState.alert` for the picker indicator (UX 2.3). + +## 6. BadgeManager + +Runs in core. Controller state; the worker is the agent `Worker` framework the controller already uses (`getAgentWorker` / `hasWorkToDo'` / `cancelWorker`; the `TMap k Worker` fields, Controller.hs:304): + +```haskell +data BadgeManager = BadgeManager + { badgeWorkers :: TMap UserId Worker, -- agent Worker: doWork TMVar, restart on crash + badgeLocks :: TMap UserId Lock, -- one signed badge op per user in flight + badgeReads :: TMap UserId UTCTime, -- read requests from APIGetBadgeState (step B) + badgeBoundaries :: TMap UserId UTCTime, -- next boundary per user + badgeTimerAsync :: TVar (Maybe (Async ())) -- the timer thread; sleeps to the earliest boundary + } +``` + +One worker per user because badge state is per profile (UX 2.12): the worker serializes that profile's RPC ops and row writes, and profiles do not delay one another. The worker holds no task queue: a trigger only signals it, and each pass derives the work from stored state (the reconcile step below). Ops are idempotent (§4), so lost and duplicated signals are harmless. + +Lifecycle: + +1. start — the first signal for a user creates the worker via `getAgentWorker`; the timer thread is started at chat start (`badgeTimerAsync`). +2. signal — every trigger performs `hasWorkToDo'`: the UX 2.9 triggers (chat start, foreground, and network restore signal every user with a badge or payment row; profile switch — the switched-to user), the timer thread, and the commands — `APIGetBadgeState`, which also records the request time in `badgeReads`; `APIPurchaseBadge` after the evidence is recorded, and again for presentation after a code (step E); `APISwitchShownBadge` for presentation. +3. pass — the loop takes the signal and runs the flowchart below once per live badge row (the paid and the investor slots, §5). +4. re-run — a signal that arrives during a pass stays in `doWork`; the loop runs one more pass, so state changed mid-pass is picked up. +5. idle — between passes the loop blocks on `doWork`. +6. stop — workers are stopped with `cancelWorker` at chat stop and on user deletion; the timer thread with them. + +The worker and the commands that send signed requests themselves (`APIGetBadgeInvoice` — `getBadgeInvoice`; `APIPurchaseBadge` with a code — `purchaseBadge`) take the user's lock in `badgeLocks`, so one signed command per user is in flight; the same lock guards get-or-create of the badge row (§5). The unsigned, purchase-independent `getBadgeCatalog` (`APIGetBadgeCatalog`) is sent outside the lock. `badgeLocks` follows the `withEntityLock` discipline (Library/Internal.hs:127) — `chatLock` is waited for first — so the step E broadcast creates no new lock order. + +There is no read command in the protocol: every response carries the `statement`, so state advances with the work. A purchase whose balance has lapsed sends nothing, and service-side credits (support, transfer-in post-MVP) would stay unseen; the signed `getBadgeCatalog` is the check — its response adds `badgeStatement` for the signing key, and it is the same request that prices a new purchase (§4). The pass reads the `badgeReads` entry of `APIGetBadgeState`: a request newer than the last response, a lapsed balance, and no due command → signed `getBadgeCatalog`, then the entry is cleared. It is also sent after a restore (UX §3 recovery). + +Timer — each pass reports the user's next boundary, the earliest of: + +- `renews_at` − 3d — renewal reminder (UX 2.4) +- paid-through − 3d — prepaid ending (UX 2.4) +- paid-through — ended alerts (UX 2.4); sender-side perk cutoff (UX 2.11) +- `alert_snooze_until` — the snoozed alert is emitted once more (UX 2.4) +- next Monday 00:00 UTC — presentation and removal updates (UX 2.11) + +Each pass writes its user's next boundary into `badgeBoundaries`; the timer thread sleeps until the earliest entry and signals the workers whose boundaries elapsed. + +```mermaid +flowchart TD + T[trigger: UX 2.9, timer, command] --> S[hasWorkToDo'] + S --> W{pass running?} + W -- yes --> H[signal held -> one more pass] + W -- no --> A[load badges + payments + last ledger rows] + A --> B[per live badge, reconcile:\nstore evidence unverified -> purchaseBadge\npayment in status new -> getBadgeInvoice re-sent\ninvoiced/pending non-store -> issueBadge\nsubscription past renews_at -> issueBadge\nbalance > 0, month unissued -> issueBadge\nlapsed balance, read requested -> signed getBadgeCatalog] + B --> C[request under the user lock, signed with the purchase key\non ASETimeout the same envelope is retried at the next signal] + C --> D[apply response:\ncatalog -> badge_prices / badge_offers\nstatement: entries -> badge_ledger verbatim, an opening entry restates the balance;\npayments and charges -> the local rows\nverify credential -> update badge_purchases credential columns\nerror: terminal code -> badge failed; transient -> hold the command until retryAfter elapses] + D --> E[presentation:\non/after Monday 00:00 UTC, or immediately on acquisition/switch:\nshown badge credential -> setUserBadge + broadcast, fresh proof per send, incognito connections skipped\nexpired unrenewed -> setUserBadge Nothing + broadcast\npaid expired + investor held -> switch shown to investor] + E --> F[derive alert from state\nif differs from acked/snoozed -> CEvtBadgeAlert] + F --> G[emit CEvtBadgeChanged if state changed\nwrite next boundary to badgeBoundaries] + G --> I[block on doWork] +``` + +Non-store purchase: + +```mermaid +sequenceDiagram + participant UI as app + participant C as core (BadgeManager) + participant B as bot + participant P as Stripe/BTCPay + UI->>C: APIGetBadgeInvoice priceId offerId card|crypto + C->>C: load or create the badge row; create the payment row (lock + unique index) + C->>B: getBadgeInvoice (signed; priceId, offerId, badgeInfo, paymentVia) + B->>P: create intent / invoice + B-->>C: badgeInvoice (invoiceId, price, discount, amount, expiresAt, paymentTo) + C-->>UI: CRBadgeInvoice (url / address, cryptoAmount, expiresAt) + UI->>UI: browser (card) or the in-app invoice screen (crypto); user pays + P-->>B: webhook: settled + B->>B: credit the ledger + UI->>C: APIGetBadgeState (the screen regains focus) + C->>B: issueBadge (signed; badgeRequest, balance) + B->>B: debit the month; issue + B-->>C: badgeCredential (credential, receipt, statement) + C->>C: store rows; verify credential; update badge; presentation + C-->>UI: CEvtBadgeChanged +``` + +Store purchase: + +```mermaid +sequenceDiagram + participant UI as app + participant S as StoreKit / Play Billing + participant C as core (BadgeManager) + participant B as bot + participant PR as store server API + UI->>C: APIGetBadgeInvoice priceId offerId apple|google + C->>C: load or create the badge row; create the payment row with a local invoice id (lock + unique index) + C-->>UI: CRBadgeInvoice (invoice id) + UI->>S: purchase(sku from app config, accountToken = invoice id) + S-->>UI: evidence (JWS / purchase token) + UI->>C: APIPurchaseBadge paymentId evidence + C->>B: purchaseBadge (signed; badgeRequest, payment: apple jws / google token) + B->>B: verify the JWS offline (Apple) + B->>PR: verify + acknowledge the purchase token (Google) + B->>B: credit the ledger; debit the month; issue + B-->>C: badgeCredential (credential, receipt, statement) + C->>C: store rows; verify credential; update badge; presentation + C-->>UI: CEvtBadgeChanged +``` + +Badge row status: + +```mermaid +stateDiagram-v2 + [*] --> acquiring: APIGetBadgeInvoice + [*] --> issued: APIPurchaseBadge with a code, created on success + acquiring --> issued: credential verified and stored + acquiring --> superseded: a new row takes the slot + acquiring --> failed: terminal error (step D) + issued --> issued: renewal / re-issue (credential updated in place) + issued --> superseded: a new row takes the slot (a code; upgrade post-MVP) + failed --> acquiring: get-or-create reuses the slot's failed row; payment_id repointed +``` + +## 7. UX coverage + +Each UX plan point and its implementation home: + +| UX | implementation | +|---|---| +| 2.1 method + duration selector, prices | app UI; `APIGetBadgeCatalog`; `badge_prices` / `badge_offers` (§1); the 1-month entry is priced by `monthPrice` (§4) | +| 2.1 unavailable options | a tier or duration with no price is shown disabled (§4); `offer_disabled` / `product_unavailable` | +| 2.1 crypto and Stripe screens | `APIGetBadgeInvoice` → `CRBadgeInvoice`; invoice columns (§1); payment statuses from the statement's payments; partial/over payment in `payments.exception` | +| 2.1 receipt save prompt | `receipt` in the `badgeCredential` response → `payments.receipt_code`; the prompt is app UI | +| 2.2 banner | app UI over `CRBadgeState` / `CEvtBadgeChanged` | +| 2.3 user picker | post-MVP (UX §7 Deferred); state and `alert` in place; the Settings row is the MVP entry point | +| 2.4 alerts | `BadgeAlertKind`; `alert_acked_kind` / `alert_acked_episode` / `alert_snooze_until` / `grace_until` (§1); worker step F; `CEvtBadgeAlert`; `APIAckBadgeAlert` | +| 2.5 start-sharing | post-MVP (`use_from`, Scope); immediate presentation in worker step E | +| 2.6 management screen | `UserBadgeState`; the commands table (§5) | +| 2.7 held badges, switching | `users.shown_badge_id`; `APISwitchShownBadge`; the investor fallback in step E | +| 2.8 redeem codes | `APIPurchaseBadge` with a code → `purchaseBadge`; payment `provider = code` | +| 2.9 triggers | worker lifecycle item 2 (§6) | +| 2.9 engine | the worker flowchart (§6) | +| 2.9 API calls | the commands table (§5) | +| 2.10 upgrades | post-MVP (UX §7 Deferred); the `superseded` status in place | +| 2.11 dates | bot `sundayAfter` (delivery 7); Monday in step E and the timer; `mkBadgeStatus` grace (delivery 1) | +| 2.12 multi-profile | one worker per user; the incognito skip in step E | +| 2.13 pause | post-MVP; `pauseBadge`, and `issueBadge` resumes (§4) | +| §3 ownership, tables | the §1 mapping; the service schema (§2) | +| §3 catalog rules | `badge_prices` / `badge_offers`; reconciliation (delivery 4) | +| §3 payments, charges | §1; the statement's payments and charges (§4) | +| §3 ledger, issuances | replicas (§1); the `balance` assertion and the `opening` restatement (§4); service transitions (delivery 7); tests (delivery 8) | +| §3 recovery | `payments.receipt_code`; signed `getBadgeCatalog` after restore (worker); capped store re-bind at `purchaseBadge` (delivery 7); `transferBadge` post-MVP | +| §4 wire protocol | `Badges/Service.hs`; `docs/protocol` | +| §5 providers | delivery 7; the §5 command bullets | +| §6 decisions 11–14 | 11 — `renews_at` / `cancelled` / charges kept; 12 — catalog seed (delivery 2); 13 — `sundayAfter`; 14 — `paidThrough` in `UserBadgeState` | +| §7 MVP set | Scope; the delivery order | + +## Delivery order + +1. `mkBadgeStatus`: the +7-day recipient display grace and the shifted `BSExpiredOld` boundary (UX 2.11) — released before purchases (UX §7). +2. Register migration `M20260731_user_badges` (migrations list + cabal + regenerated `chat_schema.sql` / `chat_lint.sql`); the Postgres variant of the migration; the catalog seed from app config (UX §3 prices); store functions (`Store/Badges.hs`): get-or-create with lock; last-ledger-row reads; verbatim replica inserts. +3. Instances for the types in `Badges.hs` and `Badges/Service.hs` (§3) + roundtrip tests. +4. RPC codec: `docs/protocol/badges-rpc.schema.json` packets ↔ `Badges/Service.hs` types; catalog reconciliation on every `badgeCatalog` response. +5. BadgeManager §6: worker, locks, timer; reconcile/apply/presentation/alert steps; events. +6. Commands §5 + parsers + `View.hs` rendering. +7. Bot: schema §2; ledger transitions (UX §3); providers (Apple offline JWS, Google verify+acknowledge, Stripe intents+webhooks, BTCPay invoices+webhooks); codes tooling; notifications endpoints; receipt generation and hashing on settlement (UX §3 recovery); the capped store re-bind on `purchase` (UX §3 recovery); store setup — one Apple subscription group for all subscription SKUs and the Stripe statement descriptor with the short payment ref (UX §7). +8. Tests: ledger properties 1–4 (UX §3); the `balance` assertion and the `opening` restatement; `purchaseBadge` and `issueBadge` idempotency; replica equality service↔client; price and offer lifecycle at `getBadgeInvoice`; alert derivation incl. supersession; Monday presentation incl. removal updates; provider sandbox flows. diff --git a/plans/2026-07-31-badges-service-schema.sql b/plans/2026-07-31-badges-service-schema.sql new file mode 100644 index 0000000000..4cbd872dea --- /dev/null +++ b/plans/2026-07-31-badges-service-schema.sql @@ -0,0 +1,146 @@ +CREATE TABLE badge_prices( + price_id TEXT NOT NULL PRIMARY KEY, + badge_type TEXT NOT NULL, + month_price INTEGER NOT NULL, + currency TEXT NOT NULL, + status TEXT NOT NULL, + created_at TEXT NOT NULL +); + +CREATE TABLE badge_offers( + offer_id TEXT NOT NULL PRIMARY KEY, + price_id TEXT REFERENCES badge_prices, + months INTEGER NOT NULL, + discount_type TEXT NOT NULL, + free_months INTEGER, + discount INTEGER, + status TEXT NOT NULL, + created_at TEXT NOT NULL +); + +CREATE TABLE store_skus( + store_sku_id INTEGER PRIMARY KEY AUTOINCREMENT, + provider TEXT NOT NULL, + sku TEXT NOT NULL, + badge_type TEXT NOT NULL, + plan TEXT NOT NULL, + months INTEGER, + created_at TEXT NOT NULL +); + +CREATE UNIQUE INDEX idx_store_skus_provider_sku ON store_skus(provider, sku); + +CREATE TABLE badge_purchases( + badge_purchase_id INTEGER PRIMARY KEY AUTOINCREMENT, + purchase_key BLOB NOT NULL, + badge_type TEXT NOT NULL, + price_id TEXT REFERENCES badge_prices, + offer_id TEXT REFERENCES badge_offers, + created_at TEXT NOT NULL, + updated_at TEXT NOT NULL, + UNIQUE(purchase_key) +); + +CREATE TABLE payments( + payment_id INTEGER PRIMARY KEY AUTOINCREMENT, + badge_purchase_id INTEGER NOT NULL REFERENCES badge_purchases, + badge_type TEXT NOT NULL, + price_id TEXT REFERENCES badge_prices, + offer_id TEXT REFERENCES badge_offers, + invoice_uuid TEXT, + provider TEXT NOT NULL, + provider_ref TEXT, + months INTEGER, + amount INTEGER, + currency TEXT, + status TEXT NOT NULL, + exception TEXT, + receipt_hash BLOB, + renews_at TEXT, + grace_until TEXT, + cancelled INTEGER NOT NULL DEFAULT 0, + created_at TEXT NOT NULL, + updated_at TEXT NOT NULL +); + +CREATE UNIQUE INDEX idx_payments_invoice_uuid ON payments(invoice_uuid); + +CREATE INDEX idx_payments_purchase ON payments(badge_purchase_id); + +CREATE INDEX idx_payments_provider_ref ON payments(provider, provider_ref); + +CREATE TABLE charges( + charge_id INTEGER PRIMARY KEY, + payment_id INTEGER NOT NULL REFERENCES payments, + provider_charge_ref TEXT NOT NULL, + period_start TEXT NOT NULL, + period_end TEXT NOT NULL, + amount INTEGER NOT NULL, + currency TEXT NOT NULL, + charged_at TEXT NOT NULL, + UNIQUE(payment_id, provider_charge_ref) +); + +-- badgeLedgerTable constant (M20260731_user_badges), re-used literally +CREATE TABLE badge_ledger( + entry_id INTEGER PRIMARY KEY AUTOINCREMENT, + entry_uuid TEXT NOT NULL, + badge_purchase_id INTEGER NOT NULL REFERENCES badge_purchases ON DELETE CASCADE, + change_months INTEGER NOT NULL, + balance_months INTEGER NOT NULL, + balance_start_ts TEXT NOT NULL, + balance_badge_type TEXT NOT NULL, + was_paused_since TEXT, + service_created_at TEXT NOT NULL, + created_at TEXT NOT NULL, + entry_type TEXT NOT NULL, + entry_credit_type TEXT, + entry_debit_type TEXT, + invoice_id INTEGER REFERENCES payments, + charge_id INTEGER REFERENCES charges, + from_purchase_id INTEGER REFERENCES badge_purchases, + to_purchase_id INTEGER REFERENCES badge_purchases +); + +CREATE UNIQUE INDEX idx_badge_ledger_uuid ON badge_ledger(entry_uuid); + +CREATE INDEX idx_badge_ledger_purchase ON badge_ledger(badge_purchase_id, entry_id); + +CREATE INDEX idx_badge_ledger_invoice ON badge_ledger(invoice_id); + +CREATE INDEX idx_badge_ledger_charge ON badge_ledger(charge_id); + +CREATE INDEX idx_badge_ledger_from_purchase ON badge_ledger(from_purchase_id); + +CREATE INDEX idx_badge_ledger_to_purchase ON badge_ledger(to_purchase_id); + +CREATE TABLE issuances( + issuance_id INTEGER PRIMARY KEY, + badge_purchase_id INTEGER NOT NULL REFERENCES badge_purchases, + period_start TEXT, + period_end TEXT, + expiry TEXT, + entry_id INTEGER REFERENCES badge_ledger, + credential BLOB NOT NULL, + created_at TEXT NOT NULL, + UNIQUE(badge_purchase_id, period_start) +); + +CREATE TABLE codes( + code_hash BLOB NOT NULL PRIMARY KEY, + badge_type TEXT NOT NULL, + months INTEGER, + batch TEXT NOT NULL, + redeemed_purchase_id INTEGER REFERENCES badge_purchases, + redeemed_at TEXT, + revoked_at TEXT, + created_at TEXT NOT NULL +); + +CREATE TABLE provider_events( + provider TEXT NOT NULL, + event_id TEXT NOT NULL, + received_at TEXT NOT NULL, + processed_at TEXT, + PRIMARY KEY(provider, event_id) +); diff --git a/plans/2026-08-04-badges-mvp-scope.md b/plans/2026-08-04-badges-mvp-scope.md new file mode 100644 index 0000000000..f10e25f2cf --- /dev/null +++ b/plans/2026-08-04-badges-mvp-scope.md @@ -0,0 +1,83 @@ +# Supporter Badges v3 — MVP scope + +**Date:** 2026-08-04 +**Product plan:** `plans/2026-07-30-supporter-badges-v3-ux.md` — UX §n +**Core plan:** `plans/2026-07-31-badges-core-implementation.md` — §n +**Protocol:** `docs/protocol/badges-rpc.md`, `docs/protocol/badges-rpc.schema.json` +**Service schema:** `plans/2026-07-31-badges-service-schema.sql` + +Order: one path end to end first, then the paths that need external systems. Each milestone ends with passing tests. + +## 1. Badge service + +`apps/simplex-badge-service` — a bot on core as a library, after `apps/simplex-directory-service`. + +- `BadgeService/Options.hs`, `Service.hs` — the RPC handler; `Store.hs`, `Store/SQLite/Migrations.hs` — the schema (§2), with `badgeLedgerTable` imported from the client migration. +- Request handling: envelope version check, signer key against `purchaseKey`, dispatch on the command. +- Ledger writes: one transaction per command; the statement is read back from the written entries. +- Credential signing: the badge key set and `sundayAfter` expiry (UX 2.11). +- Codes: hashes, batch, redemption (UX 2.8). +- HTTP listener for provider webhooks — `warp`, as in `tests/NameResolver.hs`, or simplexmq `getHTTP2Server`. Stripe signature verification reads the raw body. + +## 2. Core badge API + +§5 and §6, minus alerts. + +- Commands: `APIGetBadgeCatalog`, `APIGetBadgeInvoice`, `APIPurchaseBadge`, `APIGetBadgeState`, `APISwitchShownBadge`. +- Responses and events: `CRBadgeState`, `CRBadgeCatalog`, `CRBadgeInvoice`, `CEvtBadgeChanged`. +- Store functions (`Store/Badges.hs`): get-or-create under the user lock, last-entry reads, verbatim replica writes. +- `BadgeManager`: worker, locks, reconcile, apply, presentation. The timer and `CEvtBadgeAlert` follow later. +- JSON instances for `Badges/Service.hs` and `Badges/Store.hs` — `taggedObjectJSON`, with roundtrip tests. +- Register `M20260731_user_badges` in the migrations list and cabal; regenerate `chat_schema.sql` and `chat_lint.sql`. + +## 3. Store integration — iOS, Android + +- App Store Connect: badge products, one subscription group, sandbox testers. +- Play Console: SKUs, an internal track build, licence testers. +- Swift and Kotlin: read prices and SKUs, run the purchase with the invoice id as the account token (`appAccountToken`, `setObfuscatedAccountId`), pass the evidence to `APIPurchaseBadge`, handle late results (`Transaction.updates`, `queryPurchasesAsync`). +- Store SKUs are held in app config and in the service `store_skus` table. + +Console setup starts on day one — its latency is external. + +## 4. Provider integration + +Direct from the service; `http-client-tls` is available through simplexmq. + +| provider | outbound | inbound | +|---|---|---| +| Stripe | checkout session or payment intent | webhook: settled, refunded, subscription charge | +| BTCPay | invoice with address and amount | webhook: settled, partial, expired | +| Apple | — | server notifications v2 | +| Google | Publisher API verify and acknowledge | RTDN | + +Every inbound event is recorded in `provider_events` before processing. + +## 5. Tests + +`tests/Bots/BadgeTests.hs`, after `tests/Bots/DirectoryTests.hs`: the service in-process, chat clients as apps. + +- Provider mock — a Warp app on a free port with a mutable registry, after `tests/NameResolver.hs`: responses and webhook delivery are driven by the test. +- Coverage: code redemption; invoice, settlement, issuance; store evidence; renewal charges; replica equality service to client; idempotency of every command; price and offer lifecycle at `getBadgeInvoice`. + +## 6. Ledger algebra + +After the end-to-end path works. + +- Every entry type against every prior state; the resulting balance, its start, and its badge type. +- Properties: the balance never falls below zero; an `opening` entry restates it absolutely; issuance debits exactly one month; lapse debits only elapsed unissued months. +- The client's balance function against the service ledger, over generated histories. + +## Milestones + +| # | end state | needs | +|---|---|---| +| 1 | code redemption end to end: `purchaseBadge` with a code returns a credential, the client stores the replica and shows the badge | §1 service skeleton, §2 core API, §5 harness | +| 2 | card and crypto: invoice, mocked settlement, issuance, renewal reminder date | §4 Stripe and BTCPay, webhook listener | +| 3 | store purchase on both platforms | §3, console setup | +| 4 | subscriptions: renewal charges, cancellation, grace | charges wire identifier, §4 notifications | +| 5 | ledger algebra, unit tested | §6 | + +## Settle before milestone 4 + +- The wire identifier for charges — the service's local integer cannot be resolved by the client. +- Ledger unification: whether entries reference invoices, charges, and purchases by UUID and key rather than by local id. diff --git a/simplex-chat.cabal b/simplex-chat.cabal index 51f2ac8e91..c5dcf6111e 100644 --- a/simplex-chat.cabal +++ b/simplex-chat.cabal @@ -40,6 +40,8 @@ library Simplex.Chat.AppSettings Simplex.Chat.Badges Simplex.Chat.Badges.CLI + Simplex.Chat.Badges.Service + Simplex.Chat.Badges.Store Simplex.Chat.Names Simplex.Chat.Call Simplex.Chat.Controller diff --git a/src/Simplex/Chat/Badges/Service.hs b/src/Simplex/Chat/Badges/Service.hs new file mode 100644 index 0000000000..70084e70dd --- /dev/null +++ b/src/Simplex/Chat/Badges/Service.hs @@ -0,0 +1,244 @@ +{-# LANGUAGE DataKinds #-} +{-# LANGUAGE DuplicateRecordFields #-} +{-# LANGUAGE PatternSynonyms #-} + +module Simplex.Chat.Badges.Service + ( BadgeServiceRequest (..), + BadgeServiceCommand (..), + BadgeServiceVersion, + VersionBadgeService, + pattern VersionBadgeService, + ServicePaymentMethod (..), + CardProvider (..), + CryptoCurrency (..), + CurrencyAmount (..), + ServicePayment (..), + BadgeUpgrade (..), + BadgeServiceResponse (..), + ServicePaymentDestination (..), + BadgeServiceErrorCode (..), + BadgeCatalog (..), + BadgePrice (..), + BadgeOffer (..), + BadgeStatement (..), + BadgeBalance (..), + StatementEntry (..), + StatementEntryType (..), + StatementCreditType (..), + StatementDebitType (..), + ) where + +import qualified Data.Aeson as J +import Data.Int (Int64) +import Data.Text (Text) +import Data.Time.Clock (UTCTime) +import Data.Word (Word8, Word16, Word32) +import Simplex.Chat.Badges +import Simplex.Chat.Badges.Store +import qualified Simplex.Messaging.Crypto as C +import Simplex.Messaging.Version (VersionScope) +import Simplex.Messaging.Version.Internal (Version (..)) + +data BadgeServiceVersion + +instance VersionScope BadgeServiceVersion + +type VersionBadgeService = Version BadgeServiceVersion + +pattern VersionBadgeService :: Word16 -> VersionBadgeService +pattern VersionBadgeService v = Version v + +data BadgeServiceRequest = BadgeServiceRequest + { version :: VersionBadgeService, + purchaseKey :: Maybe C.PublicKeyEd25519, -- optional for BSCGetBadgeCatalog, required for other commands + request :: BadgeServiceCommand + } + +data BadgeServiceCommand + = BSCGetBadgeCatalog + | BSCGetBadgeInvoice + { priceId :: BadgePriceId, + offerId :: Maybe BadgeOfferId, -- absent for 1 month at the badge price + badgeInfo :: BadgeInfo, + paymentVia :: ServicePaymentMethod, + upgrade :: Maybe BadgeUpgrade -- upgrade non-store badge + } + | BSCPurchaseBadge + { badgeRequest :: BadgeRequest, + payment :: ServicePayment, + upgrade :: Maybe BadgeUpgrade -- upgrade store 1-time badge + } + | BSCUpgradeBadgeSubscription + { badgeRequest :: BadgeRequest, + payment :: ServicePayment, -- store payments only + balance :: BadgeBalance + } + | BSCIssueBadge + { badgeRequest :: BadgeRequest, + balance :: BadgeBalance + } + | BSCPauseBadge + | BSCTransferBadge + { badgeRequest :: BadgeRequest, + receipt :: Text + } + +data ServicePaymentMethod + = SPMCard {provider :: CardProvider} + | SPMCrypto {currency :: CryptoCurrency} + deriving (Eq, Show) + +data CardProvider = CPStripe + deriving (Eq, Show) + +data CryptoCurrency = CCBtc | CCXmr + deriving (Eq, Show) + +-- USD etc. are in minor units, following Stripe etc. convention +newtype CurrencyAmount = CurrencyAmount Word32 + deriving (Eq, Show) + +data ServicePayment + = SPApple {jws :: Text} + | SPGoogle {token :: Text} + | SPInvoice {invoiceId :: InvoiceId} + | SPCode {code :: Text} + deriving (Show) + +data BadgeUpgrade = BadgeUpgrade + { fromPurchaseKey :: C.PublicKeyEd25519, + receipt :: Text, + receiptSignature :: C.Signature 'C.Ed25519, + balance :: BadgeBalance + } + +data BadgeServiceResponse + = BSPBadgeCatalog + { catalog :: BadgeCatalog, + badgeStatement :: Maybe BadgeStatement -- for signed getBadgeCatalog + } + | BSPBadgeInvoice + { invoiceId :: InvoiceId, + badgeType :: BadgeType, + months :: Word8, + price :: CurrencyAmount, + discount :: Maybe CurrencyAmount, -- discount amount from monthly price + credit :: Maybe CurrencyAmount, -- credit for upgrade + amount :: CurrencyAmount, + currency :: Text, + expiresAt :: UTCTime, + paymentTo :: ServicePaymentDestination + } + | BSPBadgeCredential + { credential :: Maybe BadgeCredential, -- Nothing when no balance to issueBadge or no current credential for pause + receipt :: Maybe Text, -- not provided for lifetime badges + statement :: BadgeStatement + } + | BSPError + { code :: BadgeServiceErrorCode, + message :: Maybe Text, + retryAfter :: Maybe Word32 + } + +data ServicePaymentDestination + = SPDCard + { provider :: CardProvider, + url :: Text + } + | SPDCrypto + { currency :: CryptoCurrency, + address :: Text, + cryptoAmount :: Text + } + deriving (Show) + +data BadgeCatalog = BadgeCatalog + { prices :: [BadgePrice], + offers :: [BadgeOffer] + } + deriving (Show) + +data BadgePrice = BadgePrice + { priceId :: BadgePriceId, + badgeType :: BadgeType, + monthPrice :: CurrencyAmount, + currency :: Text, + status :: BadgeItemStatus, + createdAt :: UTCTime + } + deriving (Show) + +data BadgeOffer = BadgeOffer + { offerId :: BadgeOfferId, + priceId :: Maybe BadgePriceId, -- absent applies to any price + months :: Word8, + discount :: OfferDiscount, + status :: BadgeItemStatus, + createdAt :: UTCTime + } + deriving (Show) + +data BadgeStatement = BadgeStatement + { entries :: [StatementEntry], + previousEntryId :: Maybe Text -- matches the client's asserted entryId, absent for the full ledger + } + deriving (Show) + +data BadgeBalance = BadgeBalance + { lastEntry :: StatementEntry + } + deriving (Show) + +data StatementEntry = StatementEntry + { entryId :: Text, + changeMonths :: Int, + balanceMonths :: Int, + balanceStartTs :: UTCTime, + balanceBadgeType :: BadgeType, + wasPausedSince :: Maybe UTCTime, + createdAt :: UTCTime, + entryType :: StatementEntryType + } + deriving (Show) + +data StatementEntryType = SECredit {credit :: StatementCreditType} | SEDebit {debit :: StatementDebitType} + deriving (Show) + +data StatementCreditType + = SCPayment {invoiceId :: Maybe InvoiceId} -- absent for store and code payments + | SCCharge {chargeId :: Int64} + | SCSupport + | SCTransferIn {fromPurchaseKey :: C.PublicKeyEd25519} + | SCOpening + | SCUnknown {tag :: Text, json :: J.Object} + deriving (Show) + +data StatementDebitType + = SDRefund + | SDUpgrade {toPurchaseKey :: C.PublicKeyEd25519} + | SDTransferOut {toPurchaseKey :: C.PublicKeyEd25519} + | SDSupport + | SDBadge + | SDLapse + | SDUnknown {tag :: Text, json :: J.Object} + deriving (Show) + +data BadgeServiceErrorCode + = BSEBadRequest + | BSEUnsupportedVersion + | BSEUnknownPurchaseKey + | BSEUnknownOfferId + | BSEOfferDisabled + | BSEOfferMismatch + | BSEProductUnavailable + | BSEPaymentNotEntitled + | BSEPaymentPending + | BSEProviderUnavailable + | BSERateLimited + | BSECodeInvalid + | BSECodeUsed + | BSECodeExpired + | BSEReceiptInvalid + | BSEReceiptUsed + | BSEInternal + deriving (Eq, Show) diff --git a/src/Simplex/Chat/Badges/Store.hs b/src/Simplex/Chat/Badges/Store.hs new file mode 100644 index 0000000000..88357d1a6f --- /dev/null +++ b/src/Simplex/Chat/Badges/Store.hs @@ -0,0 +1,215 @@ +{-# LANGUAGE DerivingStrategies #-} +{-# LANGUAGE DuplicateRecordFields #-} +{-# LANGUAGE GeneralizedNewtypeDeriving #-} + +module Simplex.Chat.Badges.Store + ( BadgePriceId (..), + BadgeOfferId (..), + InvoiceId (..), + BadgePlan (..), + BadgeItemStatus (..), + OfferDiscount (..), + BadgeProvider (..), + BadgePaymentStatus (..), + BadgePurchaseStatus (..), + LedgerEntryType (..), + LedgerCreditType (..), + LedgerDebitType (..), + BadgeAlertKind (..), + BadgePurchase (..), + BadgePayment (..), + BadgeLedgerEntry (..), + BadgeCharge (..), + BadgeIssuance (..), + BadgeAlert (..), + UserBadgeState (..), + ) where + +import qualified Data.Aeson as J +import Data.ByteString.Char8 (ByteString) +import Data.Int (Int64) +import Data.Text (Text) +import Data.Time.Clock (UTCTime) +import Data.Word (Word8) +import Simplex.Chat.Badges hiding (BadgePurchase (..)) +import Simplex.Messaging.Agent.Protocol (UserId) +import qualified Simplex.Messaging.Crypto as C + +-- confirmed +newtype BadgePriceId = BadgePriceId Text + deriving newtype (Eq, Show) + +-- confirmed +newtype BadgeOfferId = BadgeOfferId Text + deriving newtype (Eq, Show) + +-- to review +newtype InvoiceId = InvoiceId Text + deriving newtype (Eq, Show) + +-- unconfirmed draft +data BadgePlan = BPOneTime | BPMonthly | BPAnnual + deriving (Eq, Show) + +-- confirmed +data BadgeItemStatus = BISActive | BISDeprecated | BISDisabled -- disabled is not sent + deriving (Eq, Show) + +-- confirmed +data OfferDiscount + = ODFreeMonths {freeMonths :: Word8} + | ODDiscount {discount :: Word8} -- percent + deriving (Eq, Show) + +-- unconfirmed draft +data BadgeProvider = BPRApple | BPRGoogle | BPRStripe | BPRBtc | BPRXmr | BPRCode + deriving (Eq, Show) + +-- unconfirmed draft +data BadgePaymentStatus = BPSNew | BPSInvoiced | BPSPending | BPSSettled | BPSFailed | BPSExpired + deriving (Eq, Show) + +-- unconfirmed draft +data BadgePurchaseStatus = PSAcquiring | PSIssued | PSSuperseded | PSFailed + deriving (Eq, Show) + +-- confirmed +data LedgerEntryType = LECredit {credit :: LedgerCreditType} | LEDebit {debit :: LedgerDebitType} + deriving (Eq, Show) + +-- confirmed +data LedgerCreditType + = CTPayment {invoiceId :: Int64} + | CTCharge {chargeId :: Int64} + | CTSupport + | CTTransferIn {fromPurchaseId :: Maybe Int64} + | CTOpening + | CTUnknown {tag :: Text, json :: J.Object} + deriving (Eq, Show) + +-- confirmed +data LedgerDebitType + = DTRefund + | DTUpgrade {toPurchaseId :: Int64} + | DTTransferOut {toPurchaseId :: Int64} + | DTSupport + | DTBadge + | DTLapse + | DTUnknown {tag :: Text, json :: J.Object} + deriving (Eq, Show) + +-- unconfirmed draft +data BadgeAlertKind = BARenewalApproaching | BAPaymentIssue | BASubscriptionEnded | BAPrepaidEnding | BASupportEnded + deriving (Eq, Show) + +-- to review +data BadgePurchase = BadgePurchase + { badgePurchaseId :: Int64, + userId :: UserId, + purchaseKey :: C.PublicKeyEd25519, + purchasePrivKey :: C.PrivateKeyEd25519, + masterKey :: BadgeMasterKey, + badgeType :: BadgeType, + priceId :: Maybe BadgePriceId, + offerId :: Maybe BadgeOfferId, + paymentId :: Int64, + status :: BadgePurchaseStatus, + credential :: Maybe BadgeCredential, + alertAcked :: Maybe (BadgeAlertKind, Text), + alertSnoozeUntil :: Maybe UTCTime, + createdAt :: UTCTime, + updatedAt :: UTCTime + } + +-- to review +data BadgePayment = BadgePayment + { paymentId :: Int64, + userId :: UserId, + purchaseKey :: C.PublicKeyEd25519, + badgeType :: BadgeType, + priceId :: Maybe BadgePriceId, + offerId :: Maybe BadgeOfferId, + invoiceUuid :: Maybe InvoiceId, + months :: Maybe Int, + amount :: Maybe Int64, + currency :: Maybe Text, + provider :: BadgeProvider, + providerRef :: Maybe Text, + invoiceUrl :: Maybe Text, + invoiceAddress :: Maybe Text, + invoiceCryptoAmount :: Maybe Text, + invoiceExpiresAt :: Maybe UTCTime, + evidence :: Maybe ByteString, + receiptCode :: Maybe Text, + status :: BadgePaymentStatus, + exception :: Maybe Text, + renewsAt :: Maybe UTCTime, + graceUntil :: Maybe UTCTime, + cancelled :: Bool, + createdAt :: UTCTime, + updatedAt :: UTCTime + } + deriving (Show) + +-- confirmed +data BadgeLedgerEntry = BadgeLedgerEntry + { entryId :: Int64, + entryUuid :: Text, + badgePurchaseId :: Int64, + changeMonths :: Int, + balanceMonths :: Int, + balanceStartTs :: UTCTime, + balanceBadgeType :: BadgeType, + wasPausedSince :: Maybe UTCTime, + serviceCreatedAt :: UTCTime, + createdAt :: UTCTime, + entryType :: LedgerEntryType + } + deriving (Show) + +-- unconfirmed draft +data BadgeCharge = BadgeCharge + { chargeId :: Int64, + paymentId :: Int64, + invoiceUuid :: InvoiceId, + providerChargeRef :: Text, + periodStart :: UTCTime, + periodEnd :: UTCTime, + amount :: Int64, + currency :: Text, + chargedAt :: UTCTime + } + deriving (Show) + +-- unconfirmed draft +data BadgeIssuance = BadgeIssuance + { issuanceId :: Int64, + badgePurchaseId :: Int64, + periodStart :: Maybe UTCTime, + periodEnd :: Maybe UTCTime, + expiry :: Maybe UTCTime, + entryId :: Maybe Int64, + createdAt :: UTCTime + } + deriving (Show) + +-- unconfirmed draft +data BadgeAlert = BadgeAlert + { kind :: BadgeAlertKind, + episode :: Text, + date :: UTCTime, + price :: Maybe (Int64, Text) + } + deriving (Show) + +-- unconfirmed draft +data UserBadgeState = UserBadgeState + { badges :: [BadgePurchase], + shownBadgeId :: Maybe Int64, + payments :: [BadgePayment], + monthsLeft :: Int, + paidThrough :: Maybe UTCTime, + renewsAt :: Maybe UTCTime, + willRenew :: Bool, + alert :: Maybe BadgeAlert + } diff --git a/src/Simplex/Chat/Store/SQLite/Migrations/M20260731_user_badges.hs b/src/Simplex/Chat/Store/SQLite/Migrations/M20260731_user_badges.hs new file mode 100644 index 0000000000..08db8a49ca --- /dev/null +++ b/src/Simplex/Chat/Store/SQLite/Migrations/M20260731_user_badges.hs @@ -0,0 +1,169 @@ +{-# LANGUAGE QuasiQuotes #-} + +module Simplex.Chat.Store.SQLite.Migrations.M20260731_user_badges where + +import Database.SQLite.Simple (Query) +import Database.SQLite.Simple.QQ (sql) + +m20260731_user_badges :: Query +m20260731_user_badges = + [sql| +CREATE TABLE badge_prices( + price_id TEXT NOT NULL PRIMARY KEY, + badge_type TEXT NOT NULL, + month_price INTEGER NOT NULL, + currency TEXT NOT NULL, + status TEXT NOT NULL, + created_at TEXT NOT NULL +); + +CREATE TABLE badge_offers( + offer_id TEXT NOT NULL PRIMARY KEY, + price_id TEXT REFERENCES badge_prices, + months INTEGER NOT NULL, + discount_type TEXT NOT NULL, + free_months INTEGER, + discount INTEGER, + status TEXT NOT NULL, + created_at TEXT NOT NULL +); + +CREATE TABLE payments( + payment_id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL REFERENCES users ON DELETE CASCADE, + purchase_key BLOB NOT NULL, + badge_type TEXT NOT NULL, + price_id TEXT REFERENCES badge_prices, + offer_id TEXT REFERENCES badge_offers, + invoice_uuid TEXT, + months INTEGER, + amount INTEGER, + currency TEXT, + provider TEXT NOT NULL, + provider_ref TEXT, + invoice_url TEXT, + invoice_address TEXT, + invoice_crypto_amount TEXT, + invoice_expires_at TEXT, + evidence BLOB, + receipt_code TEXT, + status TEXT NOT NULL, + exception TEXT, + renews_at TEXT, + grace_until TEXT, + cancelled INTEGER NOT NULL DEFAULT 0, + created_at TEXT NOT NULL, + updated_at TEXT NOT NULL +); + +CREATE INDEX idx_payments_purchase_key ON payments(purchase_key); + +CREATE UNIQUE INDEX idx_payments_invoice_uuid ON payments(invoice_uuid); + +CREATE TABLE charges( + charge_id INTEGER PRIMARY KEY, + payment_id INTEGER NOT NULL REFERENCES payments, + invoice_uuid TEXT NOT NULL, + provider_charge_ref TEXT NOT NULL, + period_start TEXT NOT NULL, + period_end TEXT NOT NULL, + amount INTEGER NOT NULL, + currency TEXT NOT NULL, + charged_at TEXT NOT NULL, + UNIQUE(payment_id, provider_charge_ref) +); + +CREATE TABLE badge_purchases( + badge_purchase_id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL REFERENCES users ON DELETE CASCADE, + purchase_key BLOB NOT NULL, + purchase_priv_key BLOB NOT NULL, + master_key BLOB NOT NULL, + badge_type TEXT NOT NULL, + price_id TEXT REFERENCES badge_prices, + offer_id TEXT REFERENCES badge_offers, + payment_id INTEGER NOT NULL REFERENCES payments, + status TEXT NOT NULL, + badge_key_idx INTEGER, + badge_signature BLOB, + badge_expiry TEXT, + alert_acked_kind TEXT, + alert_acked_episode TEXT, + alert_snooze_until TEXT, + created_at TEXT NOT NULL, + updated_at TEXT NOT NULL, + UNIQUE(purchase_key) +); + +CREATE UNIQUE INDEX idx_badge_purchases_live ON badge_purchases(user_id, (badge_type = 'investor')) + WHERE status IN ('acquiring', 'issued'); + +ALTER TABLE users ADD COLUMN shown_badge_id INTEGER REFERENCES badge_purchases ON DELETE SET NULL; +|] + <> badgeLedgerTable + <> [sql| +ALTER TABLE badge_ledger ADD COLUMN entry_type_unknown INTEGER NOT NULL DEFAULT 0; + +ALTER TABLE badge_ledger ADD COLUMN entry_type_value TEXT; + +CREATE UNIQUE INDEX idx_badge_ledger_uuid ON badge_ledger(entry_uuid); + +CREATE INDEX idx_badge_ledger_purchase ON badge_ledger(badge_purchase_id, entry_id); + +CREATE INDEX idx_badge_ledger_invoice ON badge_ledger(invoice_id); + +CREATE INDEX idx_badge_ledger_charge ON badge_ledger(charge_id); + +CREATE INDEX idx_badge_ledger_from_purchase ON badge_ledger(from_purchase_id); + +CREATE INDEX idx_badge_ledger_to_purchase ON badge_ledger(to_purchase_id); + +CREATE TABLE badge_issuances( + issuance_id INTEGER PRIMARY KEY, + badge_purchase_id INTEGER NOT NULL REFERENCES badge_purchases ON DELETE CASCADE, + period_start TEXT, + period_end TEXT, + expiry TEXT, + entry_id INTEGER REFERENCES badge_ledger, + created_at TEXT NOT NULL +); + +CREATE INDEX idx_badge_issuances_purchase ON badge_issuances(badge_purchase_id, issuance_id); +|] + +badgeLedgerTable :: Query +badgeLedgerTable = + [sql| +CREATE TABLE badge_ledger( + entry_id INTEGER PRIMARY KEY AUTOINCREMENT, + entry_uuid TEXT NOT NULL, + badge_purchase_id INTEGER NOT NULL REFERENCES badge_purchases ON DELETE CASCADE, + change_months INTEGER NOT NULL, + balance_months INTEGER NOT NULL, + balance_start_ts TEXT NOT NULL, + balance_badge_type TEXT NOT NULL, + was_paused_since TEXT, + service_created_at TEXT NOT NULL, + created_at TEXT NOT NULL, + entry_type TEXT NOT NULL, + entry_credit_type TEXT, + entry_debit_type TEXT, + invoice_id INTEGER REFERENCES payments, + charge_id INTEGER REFERENCES charges, + from_purchase_id INTEGER REFERENCES badge_purchases, + to_purchase_id INTEGER REFERENCES badge_purchases +); +|] + +down_m20260731_user_badges :: Query +down_m20260731_user_badges = + [sql| +DROP TABLE badge_issuances; +DROP TABLE badge_ledger; +ALTER TABLE users DROP COLUMN shown_badge_id; +DROP TABLE badge_purchases; +DROP TABLE charges; +DROP TABLE payments; +DROP TABLE badge_offers; +DROP TABLE badge_prices; +|] From 7ce2e6583e7707de22fbdaeae74ebef1b5b34e74 Mon Sep 17 00:00:00 2001 From: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com> Date: Sat, 8 Aug 2026 20:00:23 +0000 Subject: [PATCH 02/62] core: simplex-badge-service scaffolding (#7353) * core: simplex-badge-service scaffolding * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * clean-up --------- Co-authored-by: Evgeny Poberezkin --- .github/workflows/build.yml | 1 + apps/simplex-badge-service/Main.hs | 14 ++ apps/simplex-badge-service/README.md | 30 +++++ .../src/BadgeService/Options.hs | 93 ++++++++++++++ .../src/BadgeService/Service.hs | 120 ++++++++++++++++++ .../src/BadgeService/Store/Migrate.hs | 40 ++++++ .../BadgeService/Store/Postgres/Migrations.hs | 37 ++++++ .../BadgeService/Store/SQLite/Migrations.hs | 34 +++++ .../src/Directory/Service.hs | 2 +- docs/protocol/badges-rpc.schema.json | 10 +- simplex-chat.cabal | 53 ++++++++ src/Simplex/Chat/Badges/Service.hs | 52 ++++++++ src/Simplex/Chat/Bot.hs | 12 +- tests/Bots/BadgeServiceTests.hs | 81 ++++++++++++ tests/Test.hs | 2 + 15 files changed, 567 insertions(+), 14 deletions(-) create mode 100644 apps/simplex-badge-service/Main.hs create mode 100644 apps/simplex-badge-service/README.md create mode 100644 apps/simplex-badge-service/src/BadgeService/Options.hs create mode 100644 apps/simplex-badge-service/src/BadgeService/Service.hs create mode 100644 apps/simplex-badge-service/src/BadgeService/Store/Migrate.hs create mode 100644 apps/simplex-badge-service/src/BadgeService/Store/Postgres/Migrations.hs create mode 100644 apps/simplex-badge-service/src/BadgeService/Store/SQLite/Migrations.hs create mode 100644 tests/Bots/BadgeServiceTests.hs diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4e5050fe8f..6cc939f866 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -15,6 +15,7 @@ on: - "apps/simplex-chat/**" - "apps/simplex-bot/**" - "apps/simplex-bot-advanced/**" + - "apps/simplex-badge-service/**" - "apps/simplex-broadcast-bot/**" - "apps/simplex-directory-service/**" - "tests/**" diff --git a/apps/simplex-badge-service/Main.hs b/apps/simplex-badge-service/Main.hs new file mode 100644 index 0000000000..b870ea8671 --- /dev/null +++ b/apps/simplex-badge-service/Main.hs @@ -0,0 +1,14 @@ +{-# LANGUAGE NamedFieldPuns #-} + +module Main where + +import BadgeService.Options (BadgeServiceOpts (..)) +import BadgeService.Service +import Simplex.Chat.Terminal (terminalChatConfig) + +main :: IO () +main = do + opts@BadgeServiceOpts {runCLI} <- welcomeGetOpts + if runCLI + then badgeServiceCLI opts + else badgeService opts terminalChatConfig diff --git a/apps/simplex-badge-service/README.md b/apps/simplex-badge-service/README.md new file mode 100644 index 0000000000..2d3c2153f3 --- /dev/null +++ b/apps/simplex-badge-service/README.md @@ -0,0 +1,30 @@ +# SimpleX badge service + +Scaffolding for the SimpleX supporter-badge RPC service. The wire protocol is specified in [`docs/protocol/badges-rpc.md`](../../docs/protocol/badges-rpc.md), and the implementation plans live under [`plans/`](../../plans) (`2026-07-30-supporter-badges-v3-ux.md`, `2026-07-31-badges-core-implementation.md`, `2026-08-04-badges-mvp-scope.md`). + +At this stage the service: + +- creates a double-ratchet contact address on first start (service RPC requires DR, see [`docs/protocol/badges-rpc.md`](../../docs/protocol/badges-rpc.md)), +- listens for service requests (`CEvtServiceRequest`) on that address and responds to every command with `unsupported_version`, +- does not accept contact requests — the address is for RPC only, +- exposes a placeholder schema migration (`sx_badge_service_test`) and its own migrations table (`sx_badge_service_migrations`). + +Business logic — command dispatch, ledger writes, credential signing, provider webhooks — is left for follow-up per the plans. + +## Build + +Build prerequisites and the general contribution flow are in [`docs/CONTRIBUTING.md`](../../docs/CONTRIBUTING.md). + +``` +cabal build exe:simplex-badge-service +``` + +## Run + +``` +simplex-badge-service --help +``` + +- default (no `--run-cli`): background service mode, no interactive terminal. +- `--run-cli`: interactive CLI that also processes service requests (mirrors `simplex-directory-service --run-cli`). +- `--no-address`: skip address creation on start-up (for operators who provision the address themselves). diff --git a/apps/simplex-badge-service/src/BadgeService/Options.hs b/apps/simplex-badge-service/src/BadgeService/Options.hs new file mode 100644 index 0000000000..82d82a454d --- /dev/null +++ b/apps/simplex-badge-service/src/BadgeService/Options.hs @@ -0,0 +1,93 @@ +{-# LANGUAGE ApplicativeDo #-} +{-# LANGUAGE DuplicateRecordFields #-} +{-# LANGUAGE NamedFieldPuns #-} +{-# LANGUAGE OverloadedStrings #-} + +module BadgeService.Options + ( BadgeServiceOpts (..), + getBadgeServiceOpts, + badgeServiceOpts, + mkChatOpts, + ) +where + +import qualified Data.Text as T +import Options.Applicative +import Simplex.Chat.Controller (updateStr, versionNumber, versionString) +import Simplex.Chat.Options (ChatCmdLog (..), ChatOpts (..), CoreChatOpts, CreateBotOpts (..), coreChatOptsP) + +data BadgeServiceOpts = BadgeServiceOpts + { coreOptions :: CoreChatOpts, + serviceName :: T.Text, + clientService :: Bool, + noAddress :: Bool, + runCLI :: Bool, + testing :: Bool + } + +badgeServiceOpts :: FilePath -> FilePath -> Parser BadgeServiceOpts +badgeServiceOpts appDir defaultDbName = do + coreOptions <- coreChatOptsP appDir defaultDbName + serviceName <- + strOption + ( long "service-name" + <> metavar "SERVICE_NAME" + <> help "The display name of the badge service bot, without *'s and spaces (SimpleX Badges)" + <> value "SimpleX Badges" + ) + clientService <- + switch + ( long "client-service" + <> help "Use client service certificate" + ) + noAddress <- + switch + ( long "no-address" + <> help "skip checking and creating service address" + ) + runCLI <- + switch + ( long "run-cli" + <> help "Run badge service as CLI" + ) + pure + BadgeServiceOpts + { coreOptions, + serviceName = T.pack serviceName, + clientService, + noAddress, + runCLI, + testing = False + } + +getBadgeServiceOpts :: FilePath -> FilePath -> IO BadgeServiceOpts +getBadgeServiceOpts appDir defaultDbName = + execParser $ + info + (helper <*> versionOption <*> badgeServiceOpts appDir defaultDbName) + (header versionStr <> fullDesc <> progDesc "Start SimpleX Badge Service with DB_FILE options") + where + versionStr = versionString versionNumber + versionOption = infoOption versionAndUpdate (long "version" <> short 'v' <> help "Show version") + versionAndUpdate = versionStr <> "\n" <> updateStr + +mkChatOpts :: BadgeServiceOpts -> ChatOpts +mkChatOpts BadgeServiceOpts {coreOptions, serviceName, clientService} = + ChatOpts + { coreOptions, + chatCmd = "", + chatCmdDelay = 3, + chatCmdLog = CCLNone, + chatServerPort = Nothing, + optFilesFolder = Nothing, + optTempDirectory = Nothing, + showReactions = False, + showFullLinks = False, + allowInstantFiles = True, + autoAcceptFileSize = 0, + muteNotifications = True, + markRead = False, + createBot = Just CreateBotOpts {botDisplayName = serviceName, allowFiles = False, clientService}, + userDisplayName = Nothing, + userImageFile = Nothing + } diff --git a/apps/simplex-badge-service/src/BadgeService/Service.hs b/apps/simplex-badge-service/src/BadgeService/Service.hs new file mode 100644 index 0000000000..64e934872e --- /dev/null +++ b/apps/simplex-badge-service/src/BadgeService/Service.hs @@ -0,0 +1,120 @@ +{-# LANGUAGE DuplicateRecordFields #-} +{-# LANGUAGE LambdaCase #-} +{-# LANGUAGE NamedFieldPuns #-} +{-# LANGUAGE OverloadedStrings #-} + +module BadgeService.Service + ( welcomeGetOpts, + badgeService, + badgeServiceCLI, + ) +where + +import BadgeService.Options +import BadgeService.Store.Migrate (runBadgeServiceMigrations) +import Control.Concurrent.STM +import Control.Logger.Simple +import Control.Monad +import qualified Data.Aeson as J +import qualified Data.Aeson.KeyMap as KM +import qualified Data.Text as T +import Simplex.Chat.Badges.Service (BadgeServiceErrorCode (..)) +import Simplex.Chat.Bot (initializeBotAddress') +import Simplex.Chat.Controller +import Simplex.Chat.Core (sendChatCmd, simplexChatCore) +import Simplex.Chat.Options (printDbOpts) +import Simplex.Chat.Terminal (terminalChatConfig) +import Simplex.Chat.Terminal.Main (simplexChatCLI') +import Simplex.Chat.Types (AgentInvId (..), User (..)) +import Simplex.Messaging.Encoding.String (strEncode) +import Simplex.Messaging.Util (raceAny_, safeDecodeUtf8, tshow) +import System.Directory (getAppUserDataDirectory) +import System.Exit (exitFailure) + +data ServiceState = ServiceState + { serviceCC :: TMVar ChatController, + serviceRequestQ :: TQueue (User, AgentInvId, J.Object) + } + +newServiceState :: IO ServiceState +newServiceState = do + serviceCC <- newEmptyTMVarIO + serviceRequestQ <- newTQueueIO + pure ServiceState {serviceCC, serviceRequestQ} + +welcomeGetOpts :: IO BadgeServiceOpts +welcomeGetOpts = do + appDir <- getAppUserDataDirectory "simplex" + opts@BadgeServiceOpts {coreOptions, testing, serviceName} <- getBadgeServiceOpts appDir "simplex_badge_service" + unless testing $ do + putStrLn $ "SimpleX Badge Service v" ++ versionNumber + printDbOpts coreOptions + putStrLn $ "Service name: " ++ T.unpack serviceName + pure opts + +badgeService :: BadgeServiceOpts -> ChatConfig -> IO () +badgeService opts cfg = do + env <- newServiceState + let chatHooks = + defaultChatHooks + { preStartHook = Just $ badgePreStartHook opts, + postStartHook = Just $ badgePostStartHook opts env + } + simplexChatCore cfg {chatHooks} (mkChatOpts opts) $ \_ cc -> + forever $ do + (_, event) <- atomically . readTBQueue $ outputQ cc + case event of + -- TODO enforce _sigKey == BadgeServiceRequest.purchaseKey (docs/protocol/badges-rpc.md). + Right (CEvtServiceRequest u reqId _sigKey reqData) -> handleServiceRequest cc u reqId reqData + _ -> pure () + +badgeServiceCLI :: BadgeServiceOpts -> IO () +badgeServiceCLI opts = do + env <- newServiceState + let eventHook _cc ev = do + case ev of + Right (CEvtServiceRequest u reqId _sigKey reqData) -> + atomically $ writeTQueue (serviceRequestQ env) (u, reqId, reqData) + _ -> pure () + pure ev + chatHooks = + defaultChatHooks + { preStartHook = Just $ badgePreStartHook opts, + postStartHook = Just $ badgePostStartHook opts env, + eventHook = Just eventHook + } + raceAny_ + [ simplexChatCLI' terminalChatConfig {chatHooks} (mkChatOpts opts) Nothing, + processQueuedRequests env + ] + +processQueuedRequests :: ServiceState -> IO () +processQueuedRequests env = do + cc <- atomically $ readTMVar $ serviceCC env + forever $ do + (u, reqId, reqData) <- atomically $ readTQueue $ serviceRequestQ env + handleServiceRequest cc u reqId reqData + +badgePreStartHook :: BadgeServiceOpts -> ChatController -> IO () +badgePreStartHook opts ChatController {config, chatStore} = + runBadgeServiceMigrations opts config chatStore + +badgePostStartHook :: BadgeServiceOpts -> ServiceState -> ChatController -> IO () +badgePostStartHook BadgeServiceOpts {noAddress, testing} env cc = do + -- SREQ delivery gates on this flag; Core starts serviceRequests=False, so the hook must set it. + atomically $ writeTVar (processServiceRequests cc) True + readTVarIO (currentUser cc) >>= \case + Nothing -> putStrLn "No current user" >> exitFailure + -- DR required for service RPC; autoAccept off because badge service ignores contact events. + Just _ -> do + unless noAddress $ initializeBotAddress' (not testing) (Just True) False cc + void $ atomically $ tryPutTMVar (serviceCC env) cc + +handleServiceRequest :: ChatController -> User -> AgentInvId -> J.Object -> IO () +handleServiceRequest cc User {userId} reqId _reqData = do + let reqIdT = safeDecodeUtf8 (strEncode reqId) + respObj = KM.fromList [("type", J.String "error"), ("code", J.toJSON BSEUnsupportedVersion)] + logInfo $ "badge service request " <> reqIdT + sendChatCmd cc (APISendServiceResponse userId reqId respObj) >>= \case + Right _ -> pure () + Left e -> logError $ "badge service response failed for " <> reqIdT <> ": " <> tshow e diff --git a/apps/simplex-badge-service/src/BadgeService/Store/Migrate.hs b/apps/simplex-badge-service/src/BadgeService/Store/Migrate.hs new file mode 100644 index 0000000000..506043c262 --- /dev/null +++ b/apps/simplex-badge-service/src/BadgeService/Store/Migrate.hs @@ -0,0 +1,40 @@ +{-# LANGUAGE CPP #-} +{-# LANGUAGE DuplicateRecordFields #-} +{-# LANGUAGE NamedFieldPuns #-} +{-# LANGUAGE OverloadedStrings #-} + +module BadgeService.Store.Migrate + ( runBadgeServiceMigrations, + ) +where + +import BadgeService.Options +import Simplex.Chat.Controller (ChatConfig (..)) +import Simplex.Chat.Options (CoreChatOpts (..)) +import Simplex.Chat.Options.DB +import Simplex.Messaging.Agent.Store.Common +import Simplex.Messaging.Agent.Store.Interface (migrateDBSchema) +import Simplex.Messaging.Agent.Store.Shared (MigrationConfig (..), MigrationConfirmation (..)) +import System.Exit (exitFailure) + +#if defined(dbPostgres) +import BadgeService.Store.Postgres.Migrations +#else +import BadgeService.Store.SQLite.Migrations +#endif + +runBadgeServiceMigrations :: BadgeServiceOpts -> ChatConfig -> DBStore -> IO () +runBadgeServiceMigrations opts ChatConfig {confirmMigrations} chatStore = + migrateDBSchema + chatStore + (toDBOpts dbOptions chatSuffix False []) + (Just "sx_badge_service_migrations") + badgeServiceSchemaMigrations + MigrationConfig {confirm, backupPath = Nothing} + >>= either (exit . ("badge service migrations " <>) . show) pure + where + BadgeServiceOpts {coreOptions = CoreChatOpts {dbOptions, yesToUpMigrations}} = opts + confirm = if confirmMigrations == MCConsole && yesToUpMigrations then MCYesUp else confirmMigrations + +exit :: String -> IO a +exit err = putStrLn ("Error: " <> err) >> exitFailure diff --git a/apps/simplex-badge-service/src/BadgeService/Store/Postgres/Migrations.hs b/apps/simplex-badge-service/src/BadgeService/Store/Postgres/Migrations.hs new file mode 100644 index 0000000000..a4bc3396bf --- /dev/null +++ b/apps/simplex-badge-service/src/BadgeService/Store/Postgres/Migrations.hs @@ -0,0 +1,37 @@ +{-# LANGUAGE NamedFieldPuns #-} +{-# LANGUAGE QuasiQuotes #-} + +module BadgeService.Store.Postgres.Migrations (badgeServiceSchemaMigrations) where + +import Data.List (sortOn) +import Data.Text (Text) +import qualified Data.Text as T +import Simplex.Messaging.Agent.Store.Shared (Migration (..)) +import Text.RawString.QQ (r) + +badgeServiceSchemaMigrations :: [Migration] +badgeServiceSchemaMigrations = sortOn name $ map migration schemaMigrations + where + migration (name, up, down) = Migration {name, up, down} + +schemaMigrations :: [(String, Text, Maybe Text)] +schemaMigrations = + [ ("20260806_badge_service_schema", m20260806_badge_service_schema, Just down_m20260806_badge_service_schema) + ] + +m20260806_badge_service_schema :: Text +m20260806_badge_service_schema = + T.pack + [r| +CREATE TABLE sx_badge_service_test( + test_id BIGINT PRIMARY KEY GENERATED ALWAYS AS IDENTITY, + created_at TIMESTAMPTZ NOT NULL DEFAULT (now()) +); + |] + +down_m20260806_badge_service_schema :: Text +down_m20260806_badge_service_schema = + T.pack + [r| +DROP TABLE sx_badge_service_test; + |] diff --git a/apps/simplex-badge-service/src/BadgeService/Store/SQLite/Migrations.hs b/apps/simplex-badge-service/src/BadgeService/Store/SQLite/Migrations.hs new file mode 100644 index 0000000000..8404f135db --- /dev/null +++ b/apps/simplex-badge-service/src/BadgeService/Store/SQLite/Migrations.hs @@ -0,0 +1,34 @@ +{-# LANGUAGE NamedFieldPuns #-} +{-# LANGUAGE QuasiQuotes #-} + +module BadgeService.Store.SQLite.Migrations (badgeServiceSchemaMigrations) where + +import Data.List (sortOn) +import Database.SQLite.Simple (Query (..)) +import Database.SQLite.Simple.QQ (sql) +import Simplex.Messaging.Agent.Store.Shared (Migration (..)) + +badgeServiceSchemaMigrations :: [Migration] +badgeServiceSchemaMigrations = sortOn name $ map migration schemaMigrations + where + migration (name, up, down) = Migration {name, up = fromQuery up, down = fromQuery <$> down} + +schemaMigrations :: [(String, Query, Maybe Query)] +schemaMigrations = + [ ("20260806_badge_service_schema", m20260806_badge_service_schema, Just down_m20260806_badge_service_schema) + ] + +m20260806_badge_service_schema :: Query +m20260806_badge_service_schema = + [sql| +CREATE TABLE sx_badge_service_test( + test_id INTEGER PRIMARY KEY AUTOINCREMENT, + created_at TEXT NOT NULL DEFAULT(datetime('now')) +); + |] + +down_m20260806_badge_service_schema :: Query +down_m20260806_badge_service_schema = + [sql| +DROP TABLE sx_badge_service_test; + |] diff --git a/apps/simplex-directory-service/src/Directory/Service.hs b/apps/simplex-directory-service/src/Directory/Service.hs index 7dc165c4df..0273740cbb 100644 --- a/apps/simplex-directory-service/src/Directory/Service.hs +++ b/apps/simplex-directory-service/src/Directory/Service.hs @@ -220,7 +220,7 @@ directoryPostStartHook opts@DirectoryOpts {noAddress, testing} env cc = readTVarIO (currentUser cc) >>= \case Nothing -> putStrLn "No current user" >> exitFailure Just User {userId, profile = p@LocalProfile {preferences}} -> do - unless noAddress $ initializeBotAddress' (not testing) cc + unless noAddress $ initializeBotAddress' (not testing) Nothing True cc void $ atomically $ tryPutTMVar (serviceCC env) cc listingsUpdated env let cmds = fromMaybe [] $ preferences >>= commands_ diff --git a/docs/protocol/badges-rpc.schema.json b/docs/protocol/badges-rpc.schema.json index b1c3cf4a66..2caa3408e2 100644 --- a/docs/protocol/badges-rpc.schema.json +++ b/docs/protocol/badges-rpc.schema.json @@ -363,14 +363,8 @@ "error": { "properties": { "code": { - "enum": [ - "bad_request", "unsupported_version", "unknown_purchase_key", - "unknown_offer_id", "offer_disabled", "offer_mismatch", "product_unavailable", - "payment_not_entitled", "payment_pending", "provider_unavailable", "rate_limited", - "code_invalid", "code_used", "code_expired", - "receipt_invalid", "receipt_used", - "internal" - ] + "type": "string", + "metadata": {"comment": "BadgeServiceErrorCode"} } }, "optionalProperties": { diff --git a/simplex-chat.cabal b/simplex-chat.cabal index c5dcf6111e..9f23bd9223 100644 --- a/simplex-chat.cabal +++ b/simplex-chat.cabal @@ -398,6 +398,52 @@ library , template-haskell ==2.16.* , text >=1.2.4.0 && <1.3 +executable simplex-badge-service + if flag(client_library) + buildable: False + main-is: Main.hs + hs-source-dirs: + apps/simplex-badge-service + apps/simplex-badge-service/src + default-extensions: + StrictData + other-modules: + BadgeService.Options + BadgeService.Service + BadgeService.Store.Migrate + Paths_simplex_chat + ghc-options: -O2 -Weverything -Wno-missing-exported-signatures -Wno-missing-import-lists -Wno-missed-specialisations -Wno-all-missed-specialisations -Wno-unsafe -Wno-safe -Wno-missing-local-signatures -Wno-missing-kind-signatures -Wno-missing-deriving-strategies -Wno-monomorphism-restriction -Wno-prepositive-qualified-module -Wno-unused-packages -Wno-implicit-prelude -Wno-missing-safe-haskell-mode -Wno-missing-export-lists -Wno-partial-fields -Wcompat -Werror=incomplete-record-updates -Werror=incomplete-patterns -Werror=missing-methods -Werror=incomplete-uni-patterns -Werror=tabs -Wredundant-constraints -Wincomplete-record-updates -Wunused-type-patterns -Werror=name-shadowing -threaded -rtsopts + build-depends: + aeson ==2.2.* + , base >=4.7 && <5 + , directory ==1.3.* + , optparse-applicative >=0.15 && <0.17 + , simple-logger ==0.1.* + , simplex-chat + , simplexmq >=6.3 + , stm ==2.5.* + default-language: Haskell2010 + if flag(client_postgres) + other-modules: + BadgeService.Store.Postgres.Migrations + build-depends: + postgresql-simple ==0.7.* + , raw-strings-qq ==1.1.* + cpp-options: -DdbPostgres + else + other-modules: + BadgeService.Store.SQLite.Migrations + build-depends: + sqlcipher-simple ==0.4.* + if impl(ghc >= 9.6.2) + build-depends: + bytestring ==0.11.* + , text >=2.0.1 && <2.2 + if impl(ghc < 9.6.2) + build-depends: + bytestring ==0.10.* + , text >=1.2.4.0 && <1.3 + executable simplex-bot if flag(client_library) buildable: False @@ -623,6 +669,10 @@ test-suite simplex-chat-test API.Docs.Syntax.Types API.Docs.Types API.TypeInfo + BadgeService.Options + BadgeService.Service + BadgeService.Store.Migrate + Bots.BadgeServiceTests Broadcast.Bot Broadcast.Options Directory.BlockedWords @@ -649,6 +699,7 @@ test-suite simplex-chat-test hs-source-dirs: bots/src tests + apps/simplex-badge-service/src apps/simplex-broadcast-bot/src apps/simplex-directory-service/src default-extensions: @@ -691,6 +742,7 @@ test-suite simplex-chat-test default-language: Haskell2010 if flag(client_postgres) other-modules: + BadgeService.Store.Postgres.Migrations Directory.Store.Postgres.Migrations build-depends: postgresql-simple ==0.7.* @@ -698,6 +750,7 @@ test-suite simplex-chat-test cpp-options: -DdbPostgres else other-modules: + BadgeService.Store.SQLite.Migrations Directory.Store.SQLite.Migrations build-depends: sqlcipher-simple ==0.4.* diff --git a/src/Simplex/Chat/Badges/Service.hs b/src/Simplex/Chat/Badges/Service.hs index 70084e70dd..eb5a556503 100644 --- a/src/Simplex/Chat/Badges/Service.hs +++ b/src/Simplex/Chat/Badges/Service.hs @@ -1,5 +1,7 @@ {-# LANGUAGE DataKinds #-} {-# LANGUAGE DuplicateRecordFields #-} +{-# LANGUAGE LambdaCase #-} +{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE PatternSynonyms #-} module Simplex.Chat.Badges.Service @@ -28,6 +30,7 @@ module Simplex.Chat.Badges.Service StatementDebitType (..), ) where +import Data.Aeson (FromJSON (..), ToJSON (..)) import qualified Data.Aeson as J import Data.Int (Int64) import Data.Text (Text) @@ -36,6 +39,7 @@ import Data.Word (Word8, Word16, Word32) import Simplex.Chat.Badges import Simplex.Chat.Badges.Store import qualified Simplex.Messaging.Crypto as C +import Simplex.Messaging.Encoding.String import Simplex.Messaging.Version (VersionScope) import Simplex.Messaging.Version.Internal (Version (..)) @@ -241,4 +245,52 @@ data BadgeServiceErrorCode | BSEReceiptInvalid | BSEReceiptUsed | BSEInternal + | BSEUnknown Text -- forwards-compatible: service is deployed ahead of clients deriving (Eq, Show) + +instance TextEncoding BadgeServiceErrorCode where + textEncode = \case + BSEBadRequest -> "bad_request" + BSEUnsupportedVersion -> "unsupported_version" + BSEUnknownPurchaseKey -> "unknown_purchase_key" + BSEUnknownOfferId -> "unknown_offer_id" + BSEOfferDisabled -> "offer_disabled" + BSEOfferMismatch -> "offer_mismatch" + BSEProductUnavailable -> "product_unavailable" + BSEPaymentNotEntitled -> "payment_not_entitled" + BSEPaymentPending -> "payment_pending" + BSEProviderUnavailable -> "provider_unavailable" + BSERateLimited -> "rate_limited" + BSECodeInvalid -> "code_invalid" + BSECodeUsed -> "code_used" + BSECodeExpired -> "code_expired" + BSEReceiptInvalid -> "receipt_invalid" + BSEReceiptUsed -> "receipt_used" + BSEInternal -> "internal" + BSEUnknown t -> t + textDecode s = Just $ case s of + "bad_request" -> BSEBadRequest + "unsupported_version" -> BSEUnsupportedVersion + "unknown_purchase_key" -> BSEUnknownPurchaseKey + "unknown_offer_id" -> BSEUnknownOfferId + "offer_disabled" -> BSEOfferDisabled + "offer_mismatch" -> BSEOfferMismatch + "product_unavailable" -> BSEProductUnavailable + "payment_not_entitled" -> BSEPaymentNotEntitled + "payment_pending" -> BSEPaymentPending + "provider_unavailable" -> BSEProviderUnavailable + "rate_limited" -> BSERateLimited + "code_invalid" -> BSECodeInvalid + "code_used" -> BSECodeUsed + "code_expired" -> BSECodeExpired + "receipt_invalid" -> BSEReceiptInvalid + "receipt_used" -> BSEReceiptUsed + "internal" -> BSEInternal + t -> BSEUnknown t + +instance ToJSON BadgeServiceErrorCode where + toJSON = textToJSON + toEncoding = textToEncoding + +instance FromJSON BadgeServiceErrorCode where + parseJSON = textParseJSON "BadgeServiceErrorCode" diff --git a/src/Simplex/Chat/Bot.hs b/src/Simplex/Chat/Bot.hs index dfb7418f3f..3b1c4c6da0 100644 --- a/src/Simplex/Chat/Bot.hs +++ b/src/Simplex/Chat/Bot.hs @@ -47,16 +47,17 @@ chatBotRepl welcome answer _user cc = do contactConnected Contact {localDisplayName} = putStrLn $ T.unpack localDisplayName <> " connected" initializeBotAddress :: ChatController -> IO () -initializeBotAddress = initializeBotAddress' True +initializeBotAddress = initializeBotAddress' True Nothing True -initializeBotAddress' :: Bool -> ChatController -> IO () -initializeBotAddress' logAddress cc = do +-- pqRatchet_ selects the address type when creating: Just True (IKUsePQ) is required for service RPC, Nothing is the legacy non-DR contact address. +initializeBotAddress' :: Bool -> Maybe Bool -> Bool -> ChatController -> IO () +initializeBotAddress' logAddress pqRatchet_ doAutoAccept cc = do sendChatCmd cc ShowMyAddress >>= \case Right (CRUserContactLink _ UserContactLink {connLinkContact}) -> showBotAddress connLinkContact Left (ChatErrorStore SEUserContactLinkNotFound) -> do when logAddress $ putStrLn "No bot address, creating..." -- TODO [short links] create short link by default - sendChatCmd cc (CreateMyAddress Nothing) >>= \case + sendChatCmd cc (CreateMyAddress pqRatchet_) >>= \case Right (CRUserContactLinkCreated _ ccLink) -> showBotAddress ccLink _ -> putStrLn "can't create bot address" >> exitFailure _ -> putStrLn "unexpected response" >> exitFailure @@ -65,7 +66,8 @@ initializeBotAddress' logAddress cc = do when logAddress $ do putStrLn $ "Bot's contact address is: " <> B.unpack (maybe (strEncode uri) strEncode shortUri) when (isJust shortUri) $ putStrLn $ "Full contact address for old clients: " <> B.unpack (strEncode uri) - let settings = AddressSettings {businessAddress = False, autoAccept = Just AutoAccept {acceptIncognito = False}, autoReply = Nothing} + let aa = if doAutoAccept then Just AutoAccept {acceptIncognito = False} else Nothing + settings = AddressSettings {businessAddress = False, autoAccept = aa, autoReply = Nothing} void $ sendChatCmd cc $ SetAddressSettings Nothing settings sendMessage :: ChatController -> Contact -> Text -> IO () diff --git a/tests/Bots/BadgeServiceTests.hs b/tests/Bots/BadgeServiceTests.hs new file mode 100644 index 0000000000..896c603d7f --- /dev/null +++ b/tests/Bots/BadgeServiceTests.hs @@ -0,0 +1,81 @@ +{-# LANGUAGE CPP #-} +{-# LANGUAGE NamedFieldPuns #-} +{-# LANGUAGE OverloadedStrings #-} + +module Bots.BadgeServiceTests where + +import BadgeService.Options +import BadgeService.Service +import ChatClient +import ChatTests.DBUtils +import ChatTests.Utils +import Control.Concurrent (forkIO, killThread, threadDelay) +import Control.Exception (finally) +import Simplex.Chat.Controller (ChatConfig) +import Simplex.Chat.Options (CoreChatOpts (..)) +import Simplex.Chat.Options.DB +import Simplex.Chat.Types (ChatPeerType (..), Profile (..)) +import System.FilePath (()) +import Test.Hspec hiding (it) + +badgeServiceTests :: SpecWith TestParams +badgeServiceTests = do + it "should respond with unsupported_version to redeem" testBadgeServiceRedeemUnsupported + +badgeProfile :: Profile +badgeProfile = Profile {displayName = "SimpleX Badges", fullName = "", shortDescr = Nothing, description = Nothing, image = Nothing, contactLink = Nothing, peerType = Just CPTBot, preferences = Nothing, badge = Nothing, contactDomain = Nothing} + +serviceDbPrefix :: FilePath +serviceDbPrefix = "badge_service" + +mkBadgeServiceOpts :: TestParams -> BadgeServiceOpts +mkBadgeServiceOpts TestParams {tmpPath = ps} = + BadgeServiceOpts + { coreOptions = + testCoreOpts + { dbOptions = + (dbOptions testCoreOpts) +#if defined(dbPostgres) + {dbSchemaPrefix = "client_" <> serviceDbPrefix} +#else + {dbFilePrefix = ps serviceDbPrefix} +#endif + }, + serviceName = "SimpleX Badges", + clientService = True, + noAddress = False, + runCLI = False, + testing = True + } + +withBadgeService :: HasCallStack => TestParams -> (TestCC -> String -> IO ()) -> IO () +withBadgeService ps test = do + let opts = mkBadgeServiceOpts ps + withNewTestChatCfg ps testCfg serviceDbPrefix badgeProfile $ \_ -> pure () + -- First start: badge service takes the CreateMyAddress branch. + runBadgeService testCfg opts (pure ()) + -- Reopen the DB to read the link the service created. + bsLink <- withTestChat ps serviceDbPrefix $ \bs -> do + bs <## "subscribed 1 connections on server localhost" + bs ##> "/sa" + (sLink, _) <- getContactLinks bs False + bs <## "auto_accept off" + pure sLink + -- Second start: badge service takes the ShowMyAddress branch, then serves the test body. + runBadgeService testCfg opts $ + withNewTestChatCfg ps testCfg "client" bobProfile $ \client -> + test client bsLink + +runBadgeService :: ChatConfig -> BadgeServiceOpts -> IO () -> IO () +runBadgeService cfg opts action = do + t <- forkIO $ badgeService opts cfg + threadDelay 500000 + action `finally` killThread t + +testBadgeServiceRedeemUnsupported :: HasCallStack => TestParams -> IO () +testBadgeServiceRedeemUnsupported ps = + withBadgeService ps $ \client bsLink -> do + let redeemReq = + "{\"version\":1,\"request\":{\"type\":\"purchaseBadge\",\"payment\":{\"type\":\"code\",\"code\":\"TEST-CODE\"}}}" + client ##> ("/_service_request 1 " <> bsLink <> " " <> redeemReq) + client <## "service response: {\"code\":\"unsupported_version\",\"type\":\"error\"}" diff --git a/tests/Test.hs b/tests/Test.hs index 84a019c21c..6d0e299273 100644 --- a/tests/Test.hs +++ b/tests/Test.hs @@ -3,6 +3,7 @@ {-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE TupleSections #-} +import Bots.BadgeServiceTests import Bots.BroadcastTests import Bots.DirectoryTests import ChatClient @@ -88,6 +89,7 @@ main = do describe "SimpleX chat client" chatTests xdescribe'' "SimpleX Broadcast bot" broadcastBotTests xdescribe'' "SimpleX Directory service bot" directoryServiceTests + xdescribe'' "SimpleX Badge service bot" badgeServiceTests describe "Remote session" remoteTests #if !defined(dbPostgres) xdescribe'' "Save query plans" saveQueryPlans From cd670548b9e89e5fad276b40a735c1e728730e12 Mon Sep 17 00:00:00 2001 From: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com> Date: Fri, 14 Aug 2026 07:36:02 +0000 Subject: [PATCH 03/62] ui: badges WIP views (#7321) --- .../Views/Badges/BadgeUserPreview.swift | 39 ++++ .../Views/Badges/BadgesHowItWorksView.swift | 46 +++++ .../Shared/Views/Badges/BadgesPayView.swift | 146 ++++++++++++++ .../Views/Badges/BadgesRedeemCodeView.swift | 36 ++++ .../Badges/BadgesSupportSimplexView.swift | 165 +++++++++++++++ .../Views/Badges/BadgesYourLevelView.swift | 188 ++++++++++++++++++ .../Views/Badges/SupportSimpleXBanner.swift | 129 ++++++++++++ .../Shared/Views/ChatList/ChatListView.swift | 19 ++ apps/ios/Shared/Views/Helpers/NameBadge.swift | 2 +- .../Shared/Views/Onboarding/HowItWorks.swift | 2 + .../Views/Onboarding/WhatsNewView.swift | 48 +++++ .../Views/UserSettings/SettingsView.swift | 20 +- apps/ios/SimpleX.xcodeproj/project.pbxproj | 36 ++++ apps/ios/SimpleXChat/ChatTypes.swift | 11 + .../chat/simplex/common/model/SimpleXAPI.kt | 3 + .../common/views/badges/BadgeUserPreview.kt | 41 ++++ .../views/badges/BadgesHowItWorksView.kt | 34 ++++ .../common/views/badges/BadgesPayView.kt | 154 ++++++++++++++ .../views/badges/BadgesRedeemCodeView.kt | 29 +++ .../views/badges/BadgesSupportSimplexView.kt | 141 +++++++++++++ .../views/badges/BadgesYourLevelView.kt | 157 +++++++++++++++ .../views/badges/SupportSimpleXBanner.kt | 173 ++++++++++++++++ .../common/views/chatlist/ChatListView.kt | 28 ++- .../common/views/helpers/ChatInfoImage.kt | 2 +- .../common/views/onboarding/HowItWorks.kt | 10 +- .../common/views/onboarding/SimpleXInfo.kt | 6 +- .../common/views/onboarding/WhatsNewView.kt | 47 +++++ .../common/views/usersettings/SettingsView.kt | 12 ++ .../commonMain/resources/MR/base/strings.xml | 32 +++ .../default/MR/images/phone_supporter.svg | 4 + .../MR/images/phone_supporter_light.svg | 4 + 31 files changed, 1750 insertions(+), 14 deletions(-) create mode 100644 apps/ios/Shared/Views/Badges/BadgeUserPreview.swift create mode 100644 apps/ios/Shared/Views/Badges/BadgesHowItWorksView.swift create mode 100644 apps/ios/Shared/Views/Badges/BadgesPayView.swift create mode 100644 apps/ios/Shared/Views/Badges/BadgesRedeemCodeView.swift create mode 100644 apps/ios/Shared/Views/Badges/BadgesSupportSimplexView.swift create mode 100644 apps/ios/Shared/Views/Badges/BadgesYourLevelView.swift create mode 100644 apps/ios/Shared/Views/Badges/SupportSimpleXBanner.swift create mode 100644 apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgeUserPreview.kt create mode 100644 apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesHowItWorksView.kt create mode 100644 apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesPayView.kt create mode 100644 apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesRedeemCodeView.kt create mode 100644 apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesSupportSimplexView.kt create mode 100644 apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesYourLevelView.kt create mode 100644 apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/SupportSimpleXBanner.kt create mode 100644 apps/multiplatform/common/src/commonMain/resources/assets/default/MR/images/phone_supporter.svg create mode 100644 apps/multiplatform/common/src/commonMain/resources/assets/default/MR/images/phone_supporter_light.svg diff --git a/apps/ios/Shared/Views/Badges/BadgeUserPreview.swift b/apps/ios/Shared/Views/Badges/BadgeUserPreview.swift new file mode 100644 index 0000000000..3e7216866e --- /dev/null +++ b/apps/ios/Shared/Views/Badges/BadgeUserPreview.swift @@ -0,0 +1,39 @@ +// +// BadgeUserPreview.swift +// SimpleX (iOS) +// +// Created by spaced4ndy on 30.07.2026. +// Copyright © 2026 SimpleX Chat. All rights reserved. +// + +import SwiftUI +import SimpleXChat + +struct BadgeUserPreview: View { + @EnvironmentObject var chatModel: ChatModel + let level: BadgeLevel + let trailing: () -> Trailing + + init(level: BadgeLevel, @ViewBuilder trailing: @escaping () -> Trailing = { EmptyView() }) { + self.level = level + self.trailing = trailing + } + + var body: some View { + let user = chatModel.currentUser + let displayName = user?.displayName ?? NSLocalizedString("My nickname", comment: "badges preview placeholder") + let previewBadge = LocalBadge( + badge: BadgeInfo(badgeType: level.badgeType), + status: .active + ) + return VStack(spacing: 12) { + ProfileImage(imageStr: user?.image, size: 128) + HStack(alignment: .center, spacing: 6) { + NameWithBadge(Text(displayName).font(.largeTitle), previewBadge, .largeTitle) + .lineLimit(1) + .minimumScaleFactor(0.75) + trailing() + } + } + } +} diff --git a/apps/ios/Shared/Views/Badges/BadgesHowItWorksView.swift b/apps/ios/Shared/Views/Badges/BadgesHowItWorksView.swift new file mode 100644 index 0000000000..24836b37f9 --- /dev/null +++ b/apps/ios/Shared/Views/Badges/BadgesHowItWorksView.swift @@ -0,0 +1,46 @@ +// +// BadgesHowItWorksView.swift +// SimpleX (iOS) +// +// Created by spaced4ndy on 28.07.2026. +// Copyright © 2026 SimpleX Chat. All rights reserved. +// + +import SwiftUI +import SimpleXChat + +// TODO [badges]: replace lorem ipsum with the real copy once the badge protocol and privacy properties are documented. +struct BadgesHowItWorksView: View { + @EnvironmentObject var theme: AppTheme + + var body: some View { + VStack(alignment: .leading) { + Text("How private badges work") + .font(.largeTitle) + .bold() + .foregroundColor(theme.colors.primary) + .padding(.top, 8) + .padding(.bottom, 16) + ScrollView { + VStack(alignment: .leading, spacing: 12) { + Text("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.") + Text("Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.") + Text("Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.") + } + .lineLimit(nil) + .fixedSize(horizontal: false, vertical: true) + } + Spacer() + } + .padding(.horizontal, 25) + .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .topLeading) + } +} + +struct BadgesHowItWorksView_Previews: PreviewProvider { + static var previews: some View { + NavigationView { + BadgesHowItWorksView() + } + } +} diff --git a/apps/ios/Shared/Views/Badges/BadgesPayView.swift b/apps/ios/Shared/Views/Badges/BadgesPayView.swift new file mode 100644 index 0000000000..b32c14485f --- /dev/null +++ b/apps/ios/Shared/Views/Badges/BadgesPayView.swift @@ -0,0 +1,146 @@ +// +// BadgesPayView.swift +// SimpleX (iOS) +// +// Created by spaced4ndy on 28.07.2026. +// Copyright © 2026 SimpleX Chat. All rights reserved. +// + +import SwiftUI +import SimpleXChat + +// TODO [badges]: replace with types produced by the badge purchase API when it lands. +enum BadgePeriod: String, CaseIterable, Identifiable { + case oneMonth + case subscribe + + var id: String { rawValue } + + var icon: String { + switch self { + case .oneMonth: "calendar" + case .subscribe: "arrow.clockwise" + } + } + + var label: LocalizedStringKey { + switch self { + case .oneMonth: "1 month" + case .subscribe: "Subscribe" + } + } +} + +struct BadgesPayView: View { + @EnvironmentObject var theme: AppTheme + let level: BadgeLevel + @State private var selectedPeriod: BadgePeriod = .subscribe + + var body: some View { + GeometryReader { g in + ScrollView { + VStack(alignment: .center, spacing: 16) { + Text(level.title) + .font(.largeTitle) + .bold() + .foregroundColor(theme.colors.primary) + .multilineTextAlignment(.center) + .fixedSize(horizontal: false, vertical: true) + + BadgeUserPreview(level: level) + .padding(.top, 4) + + Text(level.tagline) + .font(.body) + .foregroundColor(theme.colors.onBackground) + .multilineTextAlignment(.center) + .fixedSize(horizontal: false, vertical: true) + .padding(.top, 4) + + Spacer(minLength: 20) + + HStack(alignment: .top, spacing: 12) { + periodCard(.oneMonth) + periodCard(.subscribe) + } + + Spacer(minLength: 20) + + VStack(spacing: 10) { + payButton() + .padding(.vertical, 10) + Text(billingFooter) + .font(.footnote) + .foregroundColor(theme.colors.secondary) + .multilineTextAlignment(.center) + .fixedSize(horizontal: false, vertical: true) + .frame(height: 22) + } + .padding(.bottom, g.safeAreaInsets.bottom == 0 ? 20 : 0) + } + .padding(.horizontal, 25) + .padding(.top, 0) + .padding(.bottom, 20) + .frame(minHeight: g.size.height) + } + } + .frame(maxHeight: .infinity) + .navigationBarTitleDisplayMode(.inline) + } + + private func periodCard(_ period: BadgePeriod) -> some View { + let isSelected = period == selectedPeriod + return Button { + selectedPeriod = period + } label: { + VStack(spacing: 12) { + Image(systemName: period.icon) + .resizable() + .scaledToFit() + .frame(width: 32, height: 32) + .foregroundColor(isSelected ? theme.colors.primary : theme.colors.secondary) + .padding(.top, 30) + Text(period.label) + .font(.title3) + .fontWeight(.bold) + .padding(.bottom, 30) + } + .frame(maxWidth: .infinity) + .background(Color(uiColor: .secondarySystemGroupedBackground)) + .clipShape(RoundedRectangle(cornerRadius: 16)) + .overlay( + RoundedRectangle(cornerRadius: 16) + .stroke(isSelected ? theme.colors.primary : Color(uiColor: .secondarySystemFill), lineWidth: 2) + ) + } + .buttonStyle(.plain) + } + + private func payButton() -> some View { + Button { + // TODO [badges] wire to purchase API when it lands. + } label: { + Text(selectedPeriod == .subscribe ? "Pay \(level.priceAmount)/month" : "Pay \(level.priceAmount)") + } + .buttonStyle(OnboardingButtonStyle(isDisabled: false)) + } + + private var billingFooter: LocalizedStringKey { + // TODO [badges] source the actual date from the purchase state machine when wired. + var comps = DateComponents(); comps.year = 2026; comps.month = 7; comps.day = 22 + let stubDate = Calendar.current.date(from: comps) ?? Date() + let date = DateFormatter.localizedString(from: stubDate, dateStyle: .long, timeStyle: .none) + switch selectedPeriod { + case .subscribe: return "Renews on \(date). Cancel anytime." + case .oneMonth: return "Ends on \(date)." + } + } +} + +struct BadgesPayView_Previews: PreviewProvider { + static var previews: some View { + NavigationView { + BadgesPayView(level: .supporter) + } + } +} diff --git a/apps/ios/Shared/Views/Badges/BadgesRedeemCodeView.swift b/apps/ios/Shared/Views/Badges/BadgesRedeemCodeView.swift new file mode 100644 index 0000000000..2101bfa7f0 --- /dev/null +++ b/apps/ios/Shared/Views/Badges/BadgesRedeemCodeView.swift @@ -0,0 +1,36 @@ +// +// BadgesRedeemCodeView.swift +// SimpleX (iOS) +// +// Created by spaced4ndy on 28.07.2026. +// Copyright © 2026 SimpleX Chat. All rights reserved. +// + +import SwiftUI +import SimpleXChat + +// TODO [badges]: implement input field, server verification and success/failure states when the redeem API is defined. +struct BadgesRedeemCodeView: View { + @EnvironmentObject var theme: AppTheme + + var body: some View { + VStack(alignment: .leading) { + Text("Redeem badge code") + .font(.largeTitle) + .bold() + .foregroundColor(theme.colors.primary) + .padding(.top, 8) + Spacer() + } + .padding(.horizontal, 25) + .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .topLeading) + } +} + +struct BadgesRedeemCodeView_Previews: PreviewProvider { + static var previews: some View { + NavigationView { + BadgesRedeemCodeView() + } + } +} diff --git a/apps/ios/Shared/Views/Badges/BadgesSupportSimplexView.swift b/apps/ios/Shared/Views/Badges/BadgesSupportSimplexView.swift new file mode 100644 index 0000000000..6ae3176e85 --- /dev/null +++ b/apps/ios/Shared/Views/Badges/BadgesSupportSimplexView.swift @@ -0,0 +1,165 @@ +// +// BadgesSupportSimplexView.swift +// SimpleX (iOS) +// +// Created by spaced4ndy on 28.07.2026. +// Copyright © 2026 SimpleX Chat. All rights reserved. +// + +import SwiftUI +import SimpleXChat + +struct BadgesSupportSimplexView: View { + @EnvironmentObject var theme: AppTheme + // set true when presented as a sheet root (from the chat-list banner) — that path doesn't + // reserve nav-bar space like a NavigationLink push does, so the title lands too close to the top + var showsAsSheet: Bool = false + @State private var whyBuiltActive = false + @State private var chooseLevelActive = false + @State private var redeemCodeActive = false + + var body: some View { + // TODO [badges] gate on user badge status (no badge → this view, active → "Manage your badge") + GeometryReader { g in + VStack(alignment: .center, spacing: 16) { + Text("Support SimpleX") + .font(.largeTitle) + .bold() + .foregroundColor(theme.colors.primary) + .multilineTextAlignment(.center) + .fixedSize(horizontal: false, vertical: true) + + Text("SimpleX doesn't sell ads or data. It's funded by its users and by investors who share the mission. You can support the project and show a badge on your profile.") + .font(.body) + .multilineTextAlignment(.center) + .fixedSize(horizontal: false, vertical: true) + + whyBuiltButton() + + Spacer(minLength: 0) + + PhoneSupporterHero() + .frame(maxWidth: g.size.width * 0.55) + .layoutPriority(-1) + + Spacer(minLength: 0) + + // Onboarding pattern: nested VStack(spacing: 10) + action button vertical padding 10. + VStack(spacing: 10) { + chooseLevelButton() + .padding(.vertical, 10) + redeemCodeButton() + .frame(height: 22) + } + .padding(.bottom, g.safeAreaInsets.bottom == 0 ? 20 : 0) + } + .padding(.horizontal, 25) + .padding(.top, showsAsSheet ? 48 : 0) + .padding(.bottom, 20) + // .frame(height:) not minHeight — inside the banner sheet's NavigationView minHeight + // would let the VStack expand past the visible area and inflate the hero. + .frame(height: g.size.height) + } + .frame(maxHeight: .infinity) + .navigationBarTitleDisplayMode(.inline) + } + + private func whyBuiltButton() -> some View { + ZStack { + Button { whyBuiltActive = true } label: { + HStack(spacing: 4) { + Image(systemName: "info.circle") + Text("Why SimpleX is built.").fontWeight(.medium) + } + .font(.body) + } + NavigationLink(isActive: $whyBuiltActive) { + WhySimpleX(onboarding: false, titleColor: theme.colors.primary, createProfileNavLinkActive: .constant(false)) + } label: { + EmptyView() + } + .frame(width: 1, height: 1) + .hidden() + } + } + + private func chooseLevelButton() -> some View { + ZStack { + Button { + chooseLevelActive = true + } label: { + Text("Choose your level") + } + .buttonStyle(OnboardingButtonStyle(isDisabled: false)) + + NavigationLink(isActive: $chooseLevelActive) { + BadgesYourLevelView() + .modifier(ThemedBackground()) + } label: { + EmptyView() + } + .frame(width: 1, height: 1) + .hidden() + } + } + + private func redeemCodeButton() -> some View { + ZStack { + Button { + redeemCodeActive = true + } label: { + Text("Redeem badge code") + .font(.body) + .fontWeight(.medium) + .foregroundColor(theme.colors.primary) + } + + NavigationLink(isActive: $redeemCodeActive) { + BadgesRedeemCodeView() + .modifier(ThemedBackground()) + } label: { + EmptyView() + } + .frame(width: 1, height: 1) + .hidden() + } + } +} + +struct PhoneSupporterHero: View { + @EnvironmentObject var theme: AppTheme + @Environment(\.colorScheme) var colorScheme: ColorScheme + + var body: some View { + #if SIMPLEX_ASSETS + Image(colorScheme == .light ? "phone-supporter" : "phone-supporter-light") + .resizable() + .scaledToFit() + .frame(maxWidth: .infinity) + #else + ZStack { + let gp = OnboardingCardView.gradientPoints(aspectRatio: 1.0, scale: colorScheme == .light ? 1.2 : 1.5) + LinearGradient( + stops: colorScheme == .light ? OnboardingCardView.lightStops : OnboardingCardView.darkStops, + startPoint: gp.start, + endPoint: gp.end + ) + Image("badge-supporter") + .resizable() + .scaledToFit() + .frame(width: 96) + } + .aspectRatio(1.0, contentMode: .fit) + .clipShape(RoundedRectangle(cornerRadius: 24)) + .frame(maxWidth: .infinity) + #endif + } +} + +struct BadgesSupportSimplexView_Previews: PreviewProvider { + static var previews: some View { + NavigationView { + BadgesSupportSimplexView() + } + } +} diff --git a/apps/ios/Shared/Views/Badges/BadgesYourLevelView.swift b/apps/ios/Shared/Views/Badges/BadgesYourLevelView.swift new file mode 100644 index 0000000000..3cfd576ea9 --- /dev/null +++ b/apps/ios/Shared/Views/Badges/BadgesYourLevelView.swift @@ -0,0 +1,188 @@ +// +// BadgesYourLevelView.swift +// SimpleX (iOS) +// +// Created by spaced4ndy on 28.07.2026. +// Copyright © 2026 SimpleX Chat. All rights reserved. +// + +import SwiftUI +import SimpleXChat + +// TODO [badges]: replace with types produced by the badge purchase API when it lands. +enum BadgeLevel: String, CaseIterable, Identifiable { + case supporter + case legend + + var id: String { rawValue } + + var title: LocalizedStringKey { + switch self { + case .supporter: "Supporter" + case .legend: "Legend" + } + } + + var filesDescription: LocalizedStringKey { + switch self { + case .supporter: "Send 2GB files" + case .legend: "Send 5GB files" + } + } + + var priceAmount: String { + switch self { + case .supporter: "$7" + case .legend: "$70" + } + } + + var tagline: LocalizedStringKey { + switch self { + case .supporter: "Optional profile badge\nand 2GB files" + case .legend: "Optional profile badge\nand 5GB files" + } + } + + var badgeType: BadgeType { + switch self { + case .supporter: .supporter + case .legend: .legend + } + } +} + +struct BadgesYourLevelView: View { + @EnvironmentObject var theme: AppTheme + @State private var selectedLevel: BadgeLevel = .supporter + @State private var continueActive = false + @State private var howItWorksActive = false + + var body: some View { + GeometryReader { g in + ScrollView { + VStack(alignment: .center, spacing: 16) { + Text("Your level") + .font(.largeTitle) + .bold() + .foregroundColor(theme.colors.primary) + .multilineTextAlignment(.center) + .fixedSize(horizontal: false, vertical: true) + + BadgeUserPreview(level: selectedLevel) { + Image(systemName: "chevron.down") + .font(.body) + .foregroundColor(theme.colors.primary) + } + .padding(.top, 4) + + Spacer(minLength: 20) + + HStack(alignment: .top, spacing: 12) { + levelCard(.supporter) + levelCard(.legend) + } + + Spacer(minLength: 20) + + VStack(spacing: 10) { + continueButton() + .padding(.vertical, 10) + howItWorksButton() + .frame(height: 22) + } + .padding(.bottom, g.safeAreaInsets.bottom == 0 ? 20 : 0) + } + .padding(.horizontal, 25) + .padding(.top, 0) + .padding(.bottom, 20) + .frame(minHeight: g.size.height) + } + } + .frame(maxHeight: .infinity) + .navigationBarTitleDisplayMode(.inline) + } + + private func levelCard(_ level: BadgeLevel) -> some View { + let isSelected = level == selectedLevel + return Button { + selectedLevel = level + } label: { + VStack(spacing: 10) { + Image(badgeImageName(level.badgeType)) + .resizable() + .scaledToFit() + .frame(width: 60, height: 60) + .padding(.top, 20) + Text(level.title) + .font(.title3) + .fontWeight(.bold) + Text(level.filesDescription) + .font(.subheadline) + .foregroundColor(theme.colors.secondary) + Text("\(level.priceAmount)/month") + .font(.body) + .padding(.bottom, 20) + } + .frame(maxWidth: .infinity) + .background(Color(uiColor: .secondarySystemGroupedBackground)) + .clipShape(RoundedRectangle(cornerRadius: 16)) + .overlay( + RoundedRectangle(cornerRadius: 16) + .stroke(isSelected ? theme.colors.primary : Color(uiColor: .secondarySystemFill), lineWidth: 2) + ) + } + .buttonStyle(.plain) + } + + private func continueButton() -> some View { + ZStack { + Button { + continueActive = true + } label: { + Text("Continue") + } + .buttonStyle(OnboardingButtonStyle(isDisabled: false)) + + NavigationLink(isActive: $continueActive) { + BadgesPayView(level: selectedLevel) + .modifier(ThemedBackground()) + } label: { + EmptyView() + } + .frame(width: 1, height: 1) + .hidden() + } + } + + private func howItWorksButton() -> some View { + ZStack { + Button { + howItWorksActive = true + } label: { + HStack(spacing: 4) { + Image(systemName: "info.circle") + Text("How private badges work").fontWeight(.medium) + } + .font(.body) + } + + NavigationLink(isActive: $howItWorksActive) { + BadgesHowItWorksView() + .modifier(ThemedBackground()) + } label: { + EmptyView() + } + .frame(width: 1, height: 1) + .hidden() + } + } +} + +struct BadgesYourLevelView_Previews: PreviewProvider { + static var previews: some View { + NavigationView { + BadgesYourLevelView() + } + } +} diff --git a/apps/ios/Shared/Views/Badges/SupportSimpleXBanner.swift b/apps/ios/Shared/Views/Badges/SupportSimpleXBanner.swift new file mode 100644 index 0000000000..07bf4366d2 --- /dev/null +++ b/apps/ios/Shared/Views/Badges/SupportSimpleXBanner.swift @@ -0,0 +1,129 @@ +// +// SupportSimpleXBanner.swift +// SimpleX (iOS) +// +// Created by spaced4ndy on 28.07.2026. +// Copyright © 2026 SimpleX Chat. All rights reserved. +// + +import SwiftUI +import SimpleXChat + +struct SupportSimpleXBanner: View { + @EnvironmentObject var theme: AppTheme + @Environment(\.colorScheme) var colorScheme: ColorScheme + @State private var showDismissAlert = false + let onTap: () -> Void + let onDismiss: () -> Void + + private let cardCornerRadius: CGFloat = 16 + // grows with Dynamic Type but never shrinks below the default so small-font users see the same + // banner as today; hero stays fixed so its above-card overhang shrinks at very large fonts + @ScaledMetric(relativeTo: .body) private var scaledCardHeight: CGFloat = 72 + private var cardHeight: CGFloat { max(72, scaledCardHeight) } + // matches OneHandUICard's segment icon leading so the text aligns with it in the list + private let cardLeadingPadding: CGFloat = 16 + private let cardTrailingPadding: CGFloat = 8 + private let heroWidth: CGFloat = 110 + // shorter than the natural drawn height so .clipped() slices the phone body at card bottom + private let heroVisibleHeight: CGFloat = 108 + // hero right edge sits exactly at the dismiss X's left edge (X trailing 16 + width 12) + private let heroTrailingPadding: CGFloat = 28 + private let textToHeroGap: CGFloat = 6 + + var body: some View { + // Card is the Button; hero is an overlay so it can extend above the card top without + // affecting layout size. Dismiss X is a ZStack sibling anchored to the card's top-right. + ZStack(alignment: .topTrailing) { + Button(action: onTap) { + HStack(spacing: 0) { + VStack(alignment: .leading, spacing: 4) { + Text("Support SimpleX") + .font(.headline) + .foregroundColor(theme.colors.primary) + .lineLimit(2) + Text("Get badge + files up to 5GB") + .font(.subheadline) + .foregroundColor(theme.colors.onBackground) + .lineLimit(2) + } + Spacer(minLength: heroWidth + heroTrailingPadding + textToHeroGap) + } + .padding(.leading, cardLeadingPadding) + .padding(.trailing, cardTrailingPadding) + .padding(.vertical, 12) + .frame(minHeight: cardHeight) + .background(gradientBackground()) + .clipShape(RoundedRectangle(cornerRadius: cardCornerRadius)) + } + .buttonStyle(.plain) + .overlay(alignment: .bottomTrailing) { + heroThumbnail() + .padding(.trailing, heroTrailingPadding) + .allowsHitTesting(false) + } + + Image(systemName: "multiply") + .foregroundColor(colorScheme == .dark ? theme.colors.onBackground : theme.colors.secondary) + .frame(width: 12, height: 12) + .padding(.top, 12) + .padding(.bottom, 4) + .padding(.trailing, 16) + .padding(.leading, 4) + .contentShape(Rectangle()) + .onTapGesture { showDismissAlert = true } + } + .alert(isPresented: $showDismissAlert) { + Alert( + title: Text("Support SimpleX"), + message: Text("You can support SimpleX later in Settings."), + dismissButton: .default(Text("Ok"), action: onDismiss) + ) + } + } + + @ViewBuilder + private func heroThumbnail() -> some View { + #if SIMPLEX_ASSETS + // draws at natural aspect, top-aligned in a shorter slot; .clipped() cuts the overflow at card bottom + Image(colorScheme == .light ? "phone-supporter" : "phone-supporter-light") + .resizable() + .aspectRatio(contentMode: .fill) + .frame(width: heroWidth, height: heroVisibleHeight, alignment: .top) + .clipped() + #else + Image("badge-supporter") + .resizable() + .scaledToFit() + .frame(width: 48, height: 48) + .padding(.vertical, (cardHeight - 48) / 2) + .padding(.trailing, 12) + #endif + } + + private func gradientBackground() -> some View { + // Asymmetric scale: start (dark end) pushed further below the card than the end (warm) is + // above, so the card's middle lands at the bright/mid-transition stop instead of the dark + // navy region. Keeps the small warm accent at top-right. + GeometryReader { geo in + let aspect = max(geo.size.height, 1) / max(geo.size.width, 1) + let startScale: CGFloat = colorScheme == .light ? 2.5 : 3.0 + let endScale: CGFloat = colorScheme == .light ? 1.7 : 2.1 + let gp = OnboardingCardView.gradientPoints(aspectRatio: aspect, scale: 1.0) + let start = UnitPoint(x: 0.5 + (gp.start.x - 0.5) * startScale, y: 0.5 + (gp.start.y - 0.5) * startScale) + let end = UnitPoint(x: 0.5 + (gp.end.x - 0.5) * endScale, y: 0.5 + (gp.end.y - 0.5) * endScale) + return LinearGradient( + stops: colorScheme == .light ? OnboardingCardView.lightStops : OnboardingCardView.darkStops, + startPoint: start, + endPoint: end + ) + } + } +} + +struct SupportSimpleXBanner_Previews: PreviewProvider { + static var previews: some View { + SupportSimpleXBanner(onTap: {}, onDismiss: {}) + .padding() + } +} diff --git a/apps/ios/Shared/Views/ChatList/ChatListView.swift b/apps/ios/Shared/Views/ChatList/ChatListView.swift index b05e0696e3..f8745a7eaf 100644 --- a/apps/ios/Shared/Views/ChatList/ChatListView.swift +++ b/apps/ios/Shared/Views/ChatList/ChatListView.swift @@ -174,7 +174,9 @@ struct ChatListView: View { @AppStorage(GROUP_DEFAULT_ONE_HAND_UI, store: groupDefaults) private var oneHandUI = true @AppStorage(DEFAULT_ONE_HAND_UI_CARD_SHOWN) private var oneHandUICardShown = false @AppStorage(DEFAULT_ADDRESS_CREATION_CARD_SHOWN) private var addressCreationCardShown = false + @AppStorage(DEFAULT_SUPPORTER_BANNER_SHOWN) private var supporterBannerShown = false @AppStorage(DEFAULT_TOOLBAR_MATERIAL) private var toolbarMaterial = ToolbarMaterial.defaultMaterial + @State private var showBadgesSheet = false // Spec: spec/client/chat-list.md#body var body: some View { @@ -211,6 +213,12 @@ struct ChatListView: View { NewChatSheet() .environment(\EnvironmentValues.refresh as! WritableKeyPath, nil) } + .appSheet(isPresented: $showBadgesSheet) { + NavigationView { + BadgesSupportSimplexView(showsAsSheet: true) + .modifier(ThemedBackground()) + } + } .onChange(of: activeUserPickerSheet) { if $0 != nil { DispatchQueue.main.asyncAfter(deadline: .now() + 0.3) { @@ -418,6 +426,17 @@ struct ChatListView: View { .listRowSeparator(.hidden) .listRowBackground(Color.clear) } + if !supporterBannerShown && chatModel.chats.count > 3 { + SupportSimpleXBanner( + onTap: { showBadgesSheet = true }, + onDismiss: { withAnimation { supporterBannerShown = true } } + ) + .padding(.vertical, 3) + .scaleEffect(x: 1, y: oneHandUI ? -1 : 1, anchor: .center) + .listRowSeparator(.hidden) + .listRowBackground(Color.clear) + .zIndex(1) + } if #available(iOS 16.0, *) { ForEach(cs, id: \.viewId) { chat in ChatListNavLink(chat: chat, parentSheet: $sheet) diff --git a/apps/ios/Shared/Views/Helpers/NameBadge.swift b/apps/ios/Shared/Views/Helpers/NameBadge.swift index 67f6d6d6b2..11a4dafd2f 100644 --- a/apps/ios/Shared/Views/Helpers/NameBadge.swift +++ b/apps/ios/Shared/Views/Helpers/NameBadge.swift @@ -95,7 +95,7 @@ struct NameBadge: View { } } -private func badgeImageName(_ t: BadgeType) -> String { +func badgeImageName(_ t: BadgeType) -> String { switch t { case .legend: "badge-legend" case .investor: "badge-investor" diff --git a/apps/ios/Shared/Views/Onboarding/HowItWorks.swift b/apps/ios/Shared/Views/Onboarding/HowItWorks.swift index e9b9c6b970..dd01534dfb 100644 --- a/apps/ios/Shared/Views/Onboarding/HowItWorks.swift +++ b/apps/ios/Shared/Views/Onboarding/HowItWorks.swift @@ -65,6 +65,7 @@ struct WhySimpleX: View { @Environment(\.dismiss) var dismiss: DismissAction @EnvironmentObject var m: ChatModel var onboarding: Bool + var titleColor: Color? = nil @Binding var createProfileNavLinkActive: Bool var body: some View { @@ -74,6 +75,7 @@ struct WhySimpleX: View { Text("You were born without an account") .font(.title) .bold() + .foregroundColor(titleColor) .padding(.top) Text("Nobody tracked your conversations. No one drew a map of where you'd been. Privacy was never a feature - it was the way of life.") Text("Then we moved online, and every platform asked for a piece of you - your name, your number, your friends. We accepted that the price of talking to others is letting someone know who we talk to. Every generation, people and tech, had it this way - telephone, email, messengers, social media. It seemed the only way possible.") diff --git a/apps/ios/Shared/Views/Onboarding/WhatsNewView.swift b/apps/ios/Shared/Views/Onboarding/WhatsNewView.swift index 6ea24ec91c..9271566676 100644 --- a/apps/ios/Shared/Views/Onboarding/WhatsNewView.swift +++ b/apps/ios/Shared/Views/Onboarding/WhatsNewView.swift @@ -695,6 +695,18 @@ private let versionDescriptions: [VersionDescription] = [ )) ] ), + // TODO [badges] finalise copy + Read more link before v7.1 ships. + VersionDescription( + version: "v7.1", + post: nil, + features: [ + .view(FeatureView( + icon: nil, + title: "Supporter badge", + view: { SupporterBadgeWhatsNew() } + )) + ] + ), ] private let lastVersion = versionDescriptions.last!.version @@ -709,6 +721,42 @@ func shouldShowWhatsNew() -> Bool { return v != lastVersion } +fileprivate struct SupporterBadgeWhatsNew: View { + @Environment(\.colorScheme) var colorScheme: ColorScheme + @EnvironmentObject var theme: AppTheme + + var body: some View { + HStack(alignment: .top, spacing: 12) { + VStack(alignment: .leading, spacing: 6) { + Text("Supporter badge ❤️") + .font(.title3) + .bold() + Text("Help keep the network running — send files up to 2 GB.") + .multilineTextAlignment(.leading) + .lineLimit(10) + } + .frame(maxWidth: .infinity, alignment: .leading) + + heroThumbnail() + } + } + + @ViewBuilder + private func heroThumbnail() -> some View { + #if SIMPLEX_ASSETS + Image(colorScheme == .light ? "phone-supporter" : "phone-supporter-light") + .resizable() + .scaledToFit() + .frame(width: 110, height: 110) + #else + Image("badge-supporter") + .resizable() + .scaledToFit() + .frame(width: 72, height: 72) + #endif + } +} + fileprivate struct NewOperatorsView: View { var body: some View { VStack(alignment: .leading) { diff --git a/apps/ios/Shared/Views/UserSettings/SettingsView.swift b/apps/ios/Shared/Views/UserSettings/SettingsView.swift index 4bd5f7db1b..012142d9ba 100644 --- a/apps/ios/Shared/Views/UserSettings/SettingsView.swift +++ b/apps/ios/Shared/Views/UserSettings/SettingsView.swift @@ -56,6 +56,7 @@ let DEFAULT_CHAT_ITEM_ROUNDNESS = "chatItemRoundness" let DEFAULT_CHAT_ITEM_TAIL = "chatItemTail" let DEFAULT_ONE_HAND_UI_CARD_SHOWN = "oneHandUICardShown" let DEFAULT_ADDRESS_CREATION_CARD_SHOWN = "addressCreationCardShown" +let DEFAULT_SUPPORTER_BANNER_SHOWN = "supporterBannerShown" let DEFAULT_TOOLBAR_MATERIAL = "toolbarMaterial" let DEFAULT_CONNECT_VIA_LINK_TAB = "connectViaLinkTab" let DEFAULT_LIVE_MESSAGE_ALERT_SHOWN = "liveMessageAlertShown" @@ -117,6 +118,7 @@ let appDefaults: [String: Any] = [ DEFAULT_CHAT_ITEM_TAIL: true, DEFAULT_ONE_HAND_UI_CARD_SHOWN: false, DEFAULT_ADDRESS_CREATION_CARD_SHOWN: false, + DEFAULT_SUPPORTER_BANNER_SHOWN: false, DEFAULT_TOOLBAR_MATERIAL: ToolbarMaterial.defaultMaterial, DEFAULT_CONNECT_VIA_LINK_TAB: ConnectViaLinkTab.scan.rawValue, DEFAULT_LIVE_MESSAGE_ALERT_SHOWN: false, @@ -148,6 +150,7 @@ let hintDefaults = [ DEFAULT_LA_NOTICE_SHOWN, DEFAULT_ONE_HAND_UI_CARD_SHOWN, DEFAULT_ADDRESS_CREATION_CARD_SHOWN, + DEFAULT_SUPPORTER_BANNER_SHOWN, DEFAULT_LIVE_MESSAGE_ALERT_SHOWN, DEFAULT_SIGN_MESSAGE_ALERT_SHOWN, DEFAULT_SHOW_HIDDEN_PROFILES_NOTICE, @@ -341,6 +344,21 @@ struct SettingsView: View { } } + Section { + NavigationLink { + BadgesSupportSimplexView() + .modifier(ThemedBackground()) + } label: { + ZStack(alignment: .leading) { + Image("badge-supporter") + .resizable() + .scaledToFit() + .frame(width: 24, height: 24) + Text("Supporter perks").padding(.leading, indent) + } + } + } + Section(header: Text("Advanced settings").foregroundColor(theme.colors.secondary)) { NavigationLink { NetworkAndServers() @@ -375,7 +393,7 @@ struct SettingsView: View { NavigationLink { VersionView() .navigationBarTitle("App version") - .modifier(ThemedBackground()) + .modifier(ThemedBackground(grouped: true)) } label: { Text(verbatim: "v\(appVersion ?? "?")") } diff --git a/apps/ios/SimpleX.xcodeproj/project.pbxproj b/apps/ios/SimpleX.xcodeproj/project.pbxproj index 3b0c6ed57d..211b53e4f7 100644 --- a/apps/ios/SimpleX.xcodeproj/project.pbxproj +++ b/apps/ios/SimpleX.xcodeproj/project.pbxproj @@ -145,6 +145,13 @@ 640417CE2B29B8C200CCB412 /* NewChatView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 640417CC2B29B8C200CCB412 /* NewChatView.swift */; }; 640743612CD360E600158442 /* ChooseServerOperators.swift in Sources */ = {isa = PBXBuildFile; fileRef = 640743602CD360E600158442 /* ChooseServerOperators.swift */; }; 6407BA83295DA85D0082BA18 /* CIInvalidJSONView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6407BA82295DA85D0082BA18 /* CIInvalidJSONView.swift */; }; + 641378013020A5AD0056E083 /* BadgesRedeemCodeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 641377FC3020A5AD0056E083 /* BadgesRedeemCodeView.swift */; }; + 641378023020A5AD0056E083 /* SupportSimpleXBanner.swift in Sources */ = {isa = PBXBuildFile; fileRef = 641378003020A5AD0056E083 /* SupportSimpleXBanner.swift */; }; + 641378033020A5AD0056E083 /* BadgesHowItWorksView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 641377FA3020A5AD0056E083 /* BadgesHowItWorksView.swift */; }; + 641378043020A5AD0056E083 /* BadgesSupportSimplexView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 641377FD3020A5AD0056E083 /* BadgesSupportSimplexView.swift */; }; + 641378053020A5AD0056E083 /* BadgesYourLevelView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 641377FE3020A5AD0056E083 /* BadgesYourLevelView.swift */; }; + 641378063020A5AD0056E083 /* BadgeUserPreview.swift in Sources */ = {isa = PBXBuildFile; fileRef = 641377FF3020A5AD0056E083 /* BadgeUserPreview.swift */; }; + 641378073020A5AD0056E083 /* BadgesPayView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 641377FB3020A5AD0056E083 /* BadgesPayView.swift */; }; 6419EC582AB97507004A607A /* CIMemberCreatedContactView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6419EC572AB97507004A607A /* CIMemberCreatedContactView.swift */; }; 642BA82D2CE50495005E9412 /* NewServerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 642BA82C2CE50495005E9412 /* NewServerView.swift */; }; 6432857C2925443C00FBE5C8 /* GroupPreferencesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6432857B2925443C00FBE5C8 /* GroupPreferencesView.swift */; }; @@ -524,6 +531,13 @@ 640417CC2B29B8C200CCB412 /* NewChatView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NewChatView.swift; sourceTree = ""; }; 640743602CD360E600158442 /* ChooseServerOperators.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChooseServerOperators.swift; sourceTree = ""; }; 6407BA82295DA85D0082BA18 /* CIInvalidJSONView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CIInvalidJSONView.swift; sourceTree = ""; }; + 641377FA3020A5AD0056E083 /* BadgesHowItWorksView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BadgesHowItWorksView.swift; sourceTree = ""; }; + 641377FB3020A5AD0056E083 /* BadgesPayView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BadgesPayView.swift; sourceTree = ""; }; + 641377FC3020A5AD0056E083 /* BadgesRedeemCodeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BadgesRedeemCodeView.swift; sourceTree = ""; }; + 641377FD3020A5AD0056E083 /* BadgesSupportSimplexView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BadgesSupportSimplexView.swift; sourceTree = ""; }; + 641377FE3020A5AD0056E083 /* BadgesYourLevelView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BadgesYourLevelView.swift; sourceTree = ""; }; + 641377FF3020A5AD0056E083 /* BadgeUserPreview.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BadgeUserPreview.swift; sourceTree = ""; }; + 641378003020A5AD0056E083 /* SupportSimpleXBanner.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SupportSimpleXBanner.swift; sourceTree = ""; }; 6419EC572AB97507004A607A /* CIMemberCreatedContactView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CIMemberCreatedContactView.swift; sourceTree = ""; }; 642BA82C2CE50495005E9412 /* NewServerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewServerView.swift; sourceTree = ""; }; 6432857B2925443C00FBE5C8 /* GroupPreferencesView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GroupPreferencesView.swift; sourceTree = ""; }; @@ -784,6 +798,7 @@ 8C7D94982B8894D300B7B9E1 /* Migration */, 5CA8D01B2AD9B076001FD661 /* RemoteAccess */, 5CB924DF27A8678B00ACCCDD /* UserSettings */, + E5BADE0100000000BADE0000 /* Badges */, 5C2E261127A30FEA00F70299 /* TerminalView.swift */, ); path = Views; @@ -1238,6 +1253,20 @@ path = "SimpleX SE"; sourceTree = ""; }; + E5BADE0100000000BADE0000 /* Badges */ = { + isa = PBXGroup; + children = ( + 641377FA3020A5AD0056E083 /* BadgesHowItWorksView.swift */, + 641377FB3020A5AD0056E083 /* BadgesPayView.swift */, + 641377FC3020A5AD0056E083 /* BadgesRedeemCodeView.swift */, + 641377FD3020A5AD0056E083 /* BadgesSupportSimplexView.swift */, + 641377FE3020A5AD0056E083 /* BadgesYourLevelView.swift */, + 641377FF3020A5AD0056E083 /* BadgeUserPreview.swift */, + 641378003020A5AD0056E083 /* SupportSimpleXBanner.swift */, + ); + path = Badges; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ @@ -1693,6 +1722,13 @@ 1841538E296606C74533367C /* UserPicker.swift in Sources */, 18415B0585EB5A9A0A7CA8CD /* PressedButtonStyle.swift in Sources */, 1841560FD1CD447955474C1D /* UserProfilesView.swift in Sources */, + 641378013020A5AD0056E083 /* BadgesRedeemCodeView.swift in Sources */, + 641378023020A5AD0056E083 /* SupportSimpleXBanner.swift in Sources */, + 641378033020A5AD0056E083 /* BadgesHowItWorksView.swift in Sources */, + 641378043020A5AD0056E083 /* BadgesSupportSimplexView.swift in Sources */, + 641378053020A5AD0056E083 /* BadgesYourLevelView.swift in Sources */, + 641378063020A5AD0056E083 /* BadgeUserPreview.swift in Sources */, + 641378073020A5AD0056E083 /* BadgesPayView.swift in Sources */, 64C3B0212A0D359700E19930 /* CustomTimePicker.swift in Sources */, 8CC4ED902BD7B8530078AEE8 /* CallAudioDeviceManager.swift in Sources */, 64A779F62DBFB9F200FDEF2F /* MemberAdmissionView.swift in Sources */, diff --git a/apps/ios/SimpleXChat/ChatTypes.swift b/apps/ios/SimpleXChat/ChatTypes.swift index ddc9454b86..fae43f9069 100644 --- a/apps/ios/SimpleXChat/ChatTypes.swift +++ b/apps/ios/SimpleXChat/ChatTypes.swift @@ -302,11 +302,22 @@ public struct BadgeInfo: Codable, Hashable { public var badgeType: BadgeType public var badgeExpiry: Date? public var badgeExtra: String + + public init(badgeType: BadgeType, badgeExpiry: Date? = nil, badgeExtra: String = "") { + self.badgeType = badgeType + self.badgeExpiry = badgeExpiry + self.badgeExtra = badgeExtra + } } public struct LocalBadge: Codable, Hashable { public var badge: BadgeInfo public var status: BadgeStatus + + public init(badge: BadgeInfo, status: BadgeStatus) { + self.badge = badge + self.status = status + } } // the wire proof carried on a profile - opaque to the UI, only round-tripped back to the core (apiPrepareContact) diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/model/SimpleXAPI.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/model/SimpleXAPI.kt index 037c02b1c2..436d7e8059 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/model/SimpleXAPI.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/model/SimpleXAPI.kt @@ -192,6 +192,7 @@ class AppPreferences { val showHiddenProfilesNotice = mkBoolPreference(SHARED_PREFS_SHOW_HIDDEN_PROFILES_NOTICE, true) val oneHandUICardShown = mkBoolPreference(SHARED_PREFS_ONE_HAND_UI_CARD_SHOWN, false) val addressCreationCardShown = mkBoolPreference(SHARED_PREFS_ADDRESS_CREATION_CARD_SHOWN, false) + val supporterBannerShown = mkBoolPreference(SHARED_PREFS_SUPPORTER_BANNER_SHOWN, false) val showMuteProfileAlert = mkBoolPreference(SHARED_PREFS_SHOW_MUTE_PROFILE_ALERT, true) val showReportsInSupportChatAlert = mkBoolPreference(SHARED_PREFS_SHOW_REPORTS_IN_SUPPORT_CHAT_ALERT, true) val appLanguage = mkStrPreference(SHARED_PREFS_APP_LANGUAGE, null) @@ -273,6 +274,7 @@ class AppPreferences { hintPref(laNoticeShown, false), hintPref(oneHandUICardShown, false), hintPref(addressCreationCardShown, false), + hintPref(supporterBannerShown, false), hintPref(liveMessageAlertShown, false), hintPref(signMessageAlertShown, false), hintPref(showHiddenProfilesNotice, true), @@ -464,6 +466,7 @@ class AppPreferences { private const val SHARED_PREFS_SHOW_HIDDEN_PROFILES_NOTICE = "ShowHiddenProfilesNotice" private const val SHARED_PREFS_ONE_HAND_UI_CARD_SHOWN = "OneHandUICardShown" private const val SHARED_PREFS_ADDRESS_CREATION_CARD_SHOWN = "AddressCreationCardShown" + private const val SHARED_PREFS_SUPPORTER_BANNER_SHOWN = "SupporterBannerShown" private const val SHARED_PREFS_SHOW_MUTE_PROFILE_ALERT = "ShowMuteProfileAlert" private const val SHARED_PREFS_SHOW_REPORTS_IN_SUPPORT_CHAT_ALERT = "ShowReportsInSupportChatAlert" private const val SHARED_PREFS_STORE_DB_PASSPHRASE = "StoreDBPassphrase" diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgeUserPreview.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgeUserPreview.kt new file mode 100644 index 0000000000..6380e5cf79 --- /dev/null +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgeUserPreview.kt @@ -0,0 +1,41 @@ +package chat.simplex.common.views.badges + +import androidx.compose.foundation.layout.* +import androidx.compose.material.MaterialTheme +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextOverflow +import androidx.compose.ui.unit.dp +import dev.icerock.moko.resources.compose.stringResource +import chat.simplex.common.model.BadgeInfo +import chat.simplex.common.model.BadgeStatus +import chat.simplex.common.model.LocalBadge +import chat.simplex.common.platform.chatModel +import chat.simplex.common.views.helpers.NameWithBadge +import chat.simplex.common.views.helpers.ProfileImage +import chat.simplex.res.MR + +@Composable +fun BadgeUserPreview(level: BadgeLevel, modifier: Modifier = Modifier, trailing: @Composable () -> Unit = {}) { + val user = chatModel.currentUser.value + val displayName = user?.displayName ?: stringResource(MR.strings.badges_preview_my_nickname) + val previewBadge = LocalBadge( + badge = BadgeInfo(badgeType = level.badgeType), + status = BadgeStatus.Active + ) + Column(modifier, horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.spacedBy(12.dp)) { + ProfileImage(size = 128.dp, image = user?.image) + Row(verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.spacedBy(6.dp)) { + NameWithBadge( + name = displayName, + badge = previewBadge, + style = MaterialTheme.typography.h1.copy(fontWeight = FontWeight.Normal), + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) + trailing() + } + } +} diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesHowItWorksView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesHowItWorksView.kt new file mode 100644 index 0000000000..7c16bee763 --- /dev/null +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesHowItWorksView.kt @@ -0,0 +1,34 @@ +package chat.simplex.common.views.badges + +import androidx.compose.foundation.layout.* +import androidx.compose.material.MaterialTheme +import androidx.compose.material.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.unit.dp +import dev.icerock.moko.resources.compose.stringResource +import chat.simplex.common.platform.ColumnWithScrollBar +import chat.simplex.res.MR + +// TODO [badges]: replace lorem ipsum with the real copy once the badge protocol and privacy properties are documented. +@Composable +fun BadgesHowItWorksView() { + ColumnWithScrollBar( + Modifier.padding(horizontal = 25.dp).padding(top = 8.dp), + horizontalAlignment = Alignment.Start, + verticalArrangement = Arrangement.spacedBy(12.dp) + ) { + Text( + stringResource(MR.strings.badges_how_it_works_title), + style = MaterialTheme.typography.h1, + fontWeight = FontWeight.Bold, + color = MaterialTheme.colors.primary, + modifier = Modifier.padding(bottom = 16.dp) + ) + Text(stringResource(MR.strings.badges_how_it_works_p1), style = MaterialTheme.typography.body1) + Text(stringResource(MR.strings.badges_how_it_works_p2), style = MaterialTheme.typography.body1) + Text(stringResource(MR.strings.badges_how_it_works_p3), style = MaterialTheme.typography.body1) + } +} diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesPayView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesPayView.kt new file mode 100644 index 0000000000..742b03e2bd --- /dev/null +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesPayView.kt @@ -0,0 +1,154 @@ +package chat.simplex.common.views.badges + +import androidx.compose.foundation.background +import androidx.compose.foundation.border +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.* +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material.* +import androidx.compose.runtime.* +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.dp +import dev.icerock.moko.resources.StringResource +import dev.icerock.moko.resources.compose.painterResource +import dev.icerock.moko.resources.compose.stringResource +import chat.simplex.common.platform.* +import chat.simplex.common.ui.theme.* +import chat.simplex.common.views.helpers.* +import chat.simplex.common.views.onboarding.OnboardingActionButton +import chat.simplex.res.MR + +// TODO [badges]: replace with types produced by the badge purchase API when it lands. +enum class BadgePeriod { + OneMonth, + Subscribe; + + val icon: dev.icerock.moko.resources.ImageResource + get() = when (this) { + OneMonth -> MR.images.ic_calendar + Subscribe -> MR.images.ic_refresh + } + + val label: StringResource + get() = when (this) { + OneMonth -> MR.strings.badges_period_one_month + Subscribe -> MR.strings.badges_period_subscribe + } +} + +@Composable +fun BadgesPayView(level: BadgeLevel) { + var selectedPeriod by remember { mutableStateOf(BadgePeriod.Subscribe) } + + ColumnWithScrollBar( + Modifier.background(MaterialTheme.colors.background).padding(horizontal = 25.dp).padding(top = 8.dp, bottom = 20.dp), + verticalArrangement = Arrangement.spacedBy(16.dp), + horizontalAlignment = Alignment.CenterHorizontally, + maxIntrinsicSize = true, + ) { + Text( + stringResource(level.title), + style = MaterialTheme.typography.h1, + fontWeight = FontWeight.Bold, + color = MaterialTheme.colors.primary, + textAlign = TextAlign.Center, + modifier = Modifier.fillMaxWidth() + ) + + BadgeUserPreview(level = level, modifier = Modifier.padding(top = 4.dp)) + + Text( + stringResource(level.tagline), + style = MaterialTheme.typography.body1, + color = MaterialTheme.colors.onBackground, + textAlign = TextAlign.Center, + modifier = Modifier.fillMaxWidth().padding(top = 4.dp) + ) + + Spacer(Modifier.weight(1f).heightIn(min = 20.dp)) + + // IntrinsicSize.Max + fillMaxHeight on children so both cards match the taller card's height + // when 2-line labels at large fonts would otherwise size them differently. + Row( + Modifier.fillMaxWidth().height(IntrinsicSize.Max), + horizontalArrangement = Arrangement.spacedBy(12.dp) + ) { + PeriodCard(BadgePeriod.OneMonth, selectedPeriod, Modifier.weight(1f).fillMaxHeight()) { selectedPeriod = it } + PeriodCard(BadgePeriod.Subscribe, selectedPeriod, Modifier.weight(1f).fillMaxHeight()) { selectedPeriod = it } + } + + Spacer(Modifier.weight(1f).heightIn(min = 20.dp)) + + // Replicates TextButtonBelowOnboardingButton spacing (7.5dp outer + 5dp inner) without a + // TextButton so the footer has no hover/click affordance. + Column(horizontalAlignment = Alignment.CenterHorizontally) { + PayButton(level, selectedPeriod) + Box(Modifier.padding(top = 7.5.dp, bottom = 7.5.dp).padding(horizontal = 16.dp, vertical = 8.dp)) { + Text( + stringResource(billingFooter(selectedPeriod)).format(stubBillingDate()), + Modifier.padding(vertical = 5.dp), + style = MaterialTheme.typography.body2, + color = MaterialTheme.colors.secondary, + textAlign = TextAlign.Center + ) + } + } + } +} + +@Composable +private fun PeriodCard(period: BadgePeriod, selectedPeriod: BadgePeriod, modifier: Modifier, onSelect: (BadgePeriod) -> Unit) { + val isSelected = period == selectedPeriod + val borderColor = if (isSelected) MaterialTheme.colors.primary else MaterialTheme.colors.background.mixWith(MaterialTheme.colors.onBackground, 0.92f) + // Light: transparent so card matches page background. Dark: subtle gray tint for visible contrast. + val cardBackground = if (isInDarkTheme()) MaterialTheme.colors.background.mixWith(MaterialTheme.colors.onBackground, 0.97f) + else MaterialTheme.colors.background + val shape = RoundedCornerShape(16.dp) + Column( + modifier + .clip(shape) + .background(cardBackground, shape) + .border(2.dp, borderColor, shape) + .clickable { onSelect(period) } + .padding(vertical = 30.dp, horizontal = 12.dp), + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.spacedBy(12.dp) + ) { + Icon( + painterResource(period.icon), + contentDescription = null, + tint = if (isSelected) MaterialTheme.colors.primary else MaterialTheme.colors.secondary, + modifier = Modifier.size(32.dp) + ) + Text(stringResource(period.label), style = MaterialTheme.typography.h3, fontWeight = FontWeight.Bold, textAlign = TextAlign.Center) + } +} + +@Composable +private fun PayButton(level: BadgeLevel, selectedPeriod: BadgePeriod) { + OnboardingActionButton( + modifier = if (appPlatform.isAndroid) Modifier.padding(horizontal = DEFAULT_ONBOARDING_HORIZONTAL_PADDING).fillMaxWidth() else Modifier.widthIn(min = 300.dp), + labelId = if (selectedPeriod == BadgePeriod.Subscribe) MR.strings.badges_pay_monthly else MR.strings.badges_pay_once, + labelArg = level.priceAmount, + onboarding = null, + onclick = { + // TODO [badges] wire to purchase API when it lands. + } + ) +} + +private fun billingFooter(period: BadgePeriod): StringResource = when (period) { + BadgePeriod.Subscribe -> MR.strings.badges_billing_footer_subscribe + BadgePeriod.OneMonth -> MR.strings.badges_billing_footer_one_month +} + +// TODO [badges] source the actual date from the purchase state machine when wired. +private fun stubBillingDate(): String { + val date = java.time.LocalDate.of(2026, 7, 22) + val formatter = java.time.format.DateTimeFormatter.ofLocalizedDate(java.time.format.FormatStyle.LONG) + return date.format(formatter) +} diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesRedeemCodeView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesRedeemCodeView.kt new file mode 100644 index 0000000000..8a1069c536 --- /dev/null +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesRedeemCodeView.kt @@ -0,0 +1,29 @@ +package chat.simplex.common.views.badges + +import androidx.compose.foundation.layout.* +import androidx.compose.material.MaterialTheme +import androidx.compose.material.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.unit.dp +import dev.icerock.moko.resources.compose.stringResource +import chat.simplex.common.platform.ColumnWithScrollBar +import chat.simplex.res.MR + +// TODO [badges]: implement input field, server verification and success/failure states when the redeem API is defined. +@Composable +fun BadgesRedeemCodeView() { + ColumnWithScrollBar( + Modifier.padding(horizontal = 25.dp).padding(top = 8.dp), + horizontalAlignment = Alignment.Start + ) { + Text( + stringResource(MR.strings.badges_redeem_code_button), + style = MaterialTheme.typography.h1, + fontWeight = FontWeight.Bold, + color = MaterialTheme.colors.primary + ) + } +} diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesSupportSimplexView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesSupportSimplexView.kt new file mode 100644 index 0000000000..aa8100519b --- /dev/null +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesSupportSimplexView.kt @@ -0,0 +1,141 @@ +package chat.simplex.common.views.badges + +import androidx.compose.foundation.* +import androidx.compose.foundation.layout.* +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material.* +import androidx.compose.runtime.* +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.geometry.Offset +import androidx.compose.ui.graphics.Brush +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.layout.onSizeChanged +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.IntSize +import androidx.compose.ui.unit.dp +import dev.icerock.moko.resources.compose.painterResource +import dev.icerock.moko.resources.compose.stringResource +import chat.simplex.common.BuildConfigCommon +import chat.simplex.common.platform.* +import chat.simplex.common.ui.theme.* +import chat.simplex.common.views.helpers.* +import chat.simplex.common.views.newchat.darkStops +import chat.simplex.common.views.newchat.gradientPoints +import chat.simplex.common.views.newchat.lightStops +import chat.simplex.common.views.onboarding.HowItWorks +import chat.simplex.common.views.onboarding.OnboardingActionButton +import chat.simplex.common.views.onboarding.TextButtonBelowOnboardingButton +import chat.simplex.res.MR + +@Composable +fun BadgesSupportSimplexView() { + // TODO [badges] gate on user badge status (no badge → this view, active → "Manage your badge") + ColumnWithScrollBar( + Modifier.background(MaterialTheme.colors.background).padding(horizontal = 25.dp).padding(top = 8.dp, bottom = 20.dp), + verticalArrangement = Arrangement.spacedBy(16.dp), + horizontalAlignment = Alignment.CenterHorizontally, + maxIntrinsicSize = true, + ) { + Text( + stringResource(MR.strings.badges_support_simplex_title), + style = MaterialTheme.typography.h1, + fontWeight = FontWeight.Bold, + color = MaterialTheme.colors.primary, + textAlign = TextAlign.Center, + modifier = Modifier.fillMaxWidth() + ) + + Text( + stringResource(MR.strings.badges_support_simplex_body), + style = MaterialTheme.typography.body1, + textAlign = TextAlign.Center, + modifier = Modifier.fillMaxWidth() + ) + + val primary = MaterialTheme.colors.primary + TextButton({ + ModalManager.start.showModal { HowItWorks(user = chatModel.currentUser.value, onboardingStage = null, titleColor = primary) } + }) { + Row(verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.spacedBy(6.dp)) { + Icon(painterResource(MR.images.ic_info), null, tint = MaterialTheme.colors.primary) + Text(stringResource(MR.strings.badges_why_simplex_is_built), color = MaterialTheme.colors.primary, fontWeight = FontWeight.Medium) + } + } + + Spacer(Modifier.weight(1f)) + + PhoneSupporterHero(Modifier.fillMaxWidth(0.55f)) + + Spacer(Modifier.weight(1f)) + + Column(horizontalAlignment = Alignment.CenterHorizontally) { + ChooseLevelButton() + TextButtonBelowOnboardingButton( + text = stringResource(MR.strings.badges_redeem_code_button), + onClick = { ModalManager.start.showModal { BadgesRedeemCodeView() } } + ) + } + } +} + +@Composable +private fun ChooseLevelButton() { + OnboardingActionButton( + modifier = if (appPlatform.isAndroid) Modifier.padding(horizontal = DEFAULT_ONBOARDING_HORIZONTAL_PADDING).fillMaxWidth() else Modifier.widthIn(min = 300.dp), + labelId = MR.strings.badges_choose_your_level, + onboarding = null, + onclick = { + ModalManager.start.showModal { BadgesYourLevelView() } + } + ) +} + + +@Composable +fun PhoneSupporterHero(modifier: Modifier = Modifier) { + val isDark = isInDarkTheme() + if (BuildConfigCommon.SIMPLEX_ASSETS) { + Image( + painterResource(if (isDark) MR.images.phone_supporter_light else MR.images.phone_supporter), + contentDescription = null, + contentScale = ContentScale.Fit, + modifier = modifier.fillMaxWidth() + ) + } else { + var size by remember { mutableStateOf(IntSize.Zero) } + val stops = if (isDark) darkStops else lightStops + val scale = if (isDark) 1.5f else 1.2f + val brush = remember(size, isDark) { + if (size.width > 0 && size.height > 0) { + val aspect = size.height.toFloat() / size.width.toFloat() + val gp = gradientPoints(aspect, scale) + Brush.linearGradient( + colorStops = stops, + start = Offset(gp.startX * size.width, gp.startY * size.height), + end = Offset(gp.endX * size.width, gp.endY * size.height) + ) + } else { + Brush.linearGradient(colorStops = stops) + } + } + Box( + modifier + .fillMaxWidth() + .aspectRatio(1f) + .clip(RoundedCornerShape(24.dp)) + .background(brush) + .onSizeChanged { size = it }, + contentAlignment = Alignment.Center + ) { + Image( + painterResource(MR.images.badge_supporter), + contentDescription = null, + contentScale = ContentScale.Fit, + modifier = Modifier.size(96.dp) + ) + } + } +} diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesYourLevelView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesYourLevelView.kt new file mode 100644 index 0000000000..03082526a0 --- /dev/null +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesYourLevelView.kt @@ -0,0 +1,157 @@ +package chat.simplex.common.views.badges + +import androidx.compose.foundation.* +import androidx.compose.foundation.layout.* +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material.* +import androidx.compose.runtime.* +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.dp +import dev.icerock.moko.resources.StringResource +import dev.icerock.moko.resources.compose.painterResource +import dev.icerock.moko.resources.compose.stringResource +import chat.simplex.common.model.BadgeType +import chat.simplex.common.platform.* +import chat.simplex.common.ui.theme.* +import chat.simplex.common.views.helpers.* +import chat.simplex.common.views.onboarding.OnboardingActionButton +import chat.simplex.common.views.onboarding.TextButtonBelowOnboardingButton +import chat.simplex.res.MR + +// TODO [badges]: replace with types produced by the badge purchase API when it lands. +enum class BadgeLevel { + Supporter, + Legend; + + val title: StringResource + get() = when (this) { + Supporter -> MR.strings.badges_level_supporter + Legend -> MR.strings.badges_level_legend + } + + val filesDescription: StringResource + get() = when (this) { + Supporter -> MR.strings.badges_level_supporter_files + Legend -> MR.strings.badges_level_legend_files + } + + val priceAmount: String + get() = when (this) { + Supporter -> "$7" + Legend -> "$70" + } + + val tagline: StringResource + get() = when (this) { + Supporter -> MR.strings.badges_level_supporter_tagline + Legend -> MR.strings.badges_level_legend_tagline + } + + val badgeType: BadgeType + get() = when (this) { + Supporter -> BadgeType.Supporter + Legend -> BadgeType.Legend + } +} + +@Composable +fun BadgesYourLevelView() { + var selectedLevel by remember { mutableStateOf(BadgeLevel.Supporter) } + + ColumnWithScrollBar( + Modifier.background(MaterialTheme.colors.background).padding(horizontal = 25.dp).padding(top = 8.dp, bottom = 20.dp), + verticalArrangement = Arrangement.spacedBy(16.dp), + horizontalAlignment = Alignment.CenterHorizontally, + maxIntrinsicSize = true, + ) { + Text( + stringResource(MR.strings.badges_your_level_title), + style = MaterialTheme.typography.h1, + fontWeight = FontWeight.Bold, + color = MaterialTheme.colors.primary, + textAlign = TextAlign.Center, + modifier = Modifier.fillMaxWidth() + ) + + BadgeUserPreview(level = selectedLevel, modifier = Modifier.padding(top = 4.dp)) { + Icon( + painterResource(MR.images.ic_keyboard_arrow_down), + contentDescription = null, + tint = MaterialTheme.colors.primary + ) + } + + Spacer(Modifier.weight(1f).heightIn(min = 20.dp)) + + // IntrinsicSize.Max + fillMaxHeight on children so both cards match the taller card's height + // when 2-line labels at large fonts would otherwise size them differently. + Row( + Modifier.fillMaxWidth().height(IntrinsicSize.Max), + horizontalArrangement = Arrangement.spacedBy(12.dp) + ) { + LevelCard(BadgeLevel.Supporter, selectedLevel, Modifier.weight(1f).fillMaxHeight()) { selectedLevel = it } + LevelCard(BadgeLevel.Legend, selectedLevel, Modifier.weight(1f).fillMaxHeight()) { selectedLevel = it } + } + + Spacer(Modifier.weight(1f).heightIn(min = 20.dp)) + + // Nested Column with no spacing so the TextButtonBelowOnboardingButton sits directly under + // the action button (matches onboarding pattern where its own 7.5dp top padding is the gap). + Column(horizontalAlignment = Alignment.CenterHorizontally) { + ContinueButton(selectedLevel) + TextButtonBelowOnboardingButton( + text = stringResource(MR.strings.badges_how_it_works_button), + icon = painterResource(MR.images.ic_info), + onClick = { ModalManager.start.showModal { BadgesHowItWorksView() } } + ) + } + } +} + +@Composable +private fun LevelCard(level: BadgeLevel, selectedLevel: BadgeLevel, modifier: Modifier, onSelect: (BadgeLevel) -> Unit) { + val isSelected = level == selectedLevel + val borderColor = if (isSelected) MaterialTheme.colors.primary else MaterialTheme.colors.background.mixWith(MaterialTheme.colors.onBackground, 0.92f) + // Light: transparent so card matches page background. Dark: subtle gray tint for visible contrast. + val cardBackground = if (isInDarkTheme()) MaterialTheme.colors.background.mixWith(MaterialTheme.colors.onBackground, 0.97f) + else MaterialTheme.colors.background + val shape = RoundedCornerShape(16.dp) + Column( + modifier + .clip(shape) + .background(cardBackground, shape) + .border(2.dp, borderColor, shape) + .clickable { onSelect(level) } + .padding(vertical = 20.dp, horizontal = 12.dp), + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.spacedBy(10.dp) + ) { + Image( + painterResource(badgeImage(level.badgeType)), + contentDescription = null, + contentScale = ContentScale.Fit, + modifier = Modifier.size(60.dp) + ) + Text(stringResource(level.title), style = MaterialTheme.typography.h3, fontWeight = FontWeight.Bold, textAlign = TextAlign.Center) + Text(stringResource(level.filesDescription), style = MaterialTheme.typography.body2, color = MaterialTheme.colors.secondary, textAlign = TextAlign.Center) + Text(stringResource(MR.strings.badges_price_monthly).format(level.priceAmount), style = MaterialTheme.typography.body1, textAlign = TextAlign.Center) + } +} + +@Composable +private fun ContinueButton(selectedLevel: BadgeLevel) { + OnboardingActionButton( + modifier = if (appPlatform.isAndroid) Modifier.padding(horizontal = DEFAULT_ONBOARDING_HORIZONTAL_PADDING).fillMaxWidth() else Modifier.widthIn(min = 300.dp), + labelId = MR.strings.badges_continue, + onboarding = null, + onclick = { + ModalManager.start.showModal { BadgesPayView(selectedLevel) } + } + ) +} + diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/SupportSimpleXBanner.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/SupportSimpleXBanner.kt new file mode 100644 index 0000000000..55a8cef525 --- /dev/null +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/SupportSimpleXBanner.kt @@ -0,0 +1,173 @@ +package chat.simplex.common.views.badges + +import androidx.compose.foundation.* +import androidx.compose.foundation.layout.* +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material.* +import androidx.compose.runtime.* +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.geometry.Offset +import androidx.compose.ui.graphics.Brush +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.layout.Layout +import androidx.compose.ui.layout.onSizeChanged +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextOverflow +import androidx.compose.ui.unit.Dp +import androidx.compose.ui.unit.IntSize +import androidx.compose.ui.unit.dp +import dev.icerock.moko.resources.compose.painterResource +import dev.icerock.moko.resources.compose.stringResource +import chat.simplex.common.BuildConfigCommon +import chat.simplex.common.platform.* +import chat.simplex.common.ui.theme.* +import chat.simplex.common.views.helpers.* +import chat.simplex.common.views.newchat.darkStops +import chat.simplex.common.views.newchat.gradientPoints +import chat.simplex.common.views.newchat.lightStops +import chat.simplex.res.MR + +@Composable +fun SupportSimpleXBanner(onTap: () -> Unit, onDismiss: () -> Unit) { + val cardCornerRadius = 16.dp + // grows linearly with system font but never shrinks below the default so small-font users see the + // same baseline; the card Row uses heightIn(min = cardHeight) and grows further when 2-line text + // wraps at very large fonts. Hero stays fixed so its above-card overhang shrinks at very large fonts. + val cardHeight = (72.dp * fontSizeMultiplier).coerceAtLeast(72.dp) + // matches OneHandUICard's segment icon leading so the text aligns with it in the list + val cardLeadingPadding = 16.dp + val cardTrailingPadding = 8.dp + val heroWidth = 110.dp + // shorter than the natural drawn height so ContentScale.Crop slices the phone body at card bottom + val heroVisibleHeight = 108.dp + // hero right edge sits at the dismiss X's icon left edge (X: outer 4pt + inner-pad 8 + half of 16pt icon) + val heroTrailingPadding = 28.dp + val textToHeroGap = 6.dp + + val isDark = isInDarkTheme() + var cardSize by remember { mutableStateOf(IntSize.Zero) } + val brush = remember(isDark, cardSize) { gradientBrush(isDark, cardSize) } + + // Layout sizes to the card; hero is placed at y = cardHeight - heroHeight (negative → hero + // overhangs above card at normal fonts, 0/positive → hero fits inside card at large fonts). + Layout(content = { + Box(Modifier.fillMaxWidth()) { + Row( + Modifier + .fillMaxWidth() + .heightIn(min = cardHeight) + .clip(RoundedCornerShape(cardCornerRadius)) + .background(brush) + .clickable(onClick = onTap) + .onSizeChanged { cardSize = it } + .padding( + start = cardLeadingPadding, + end = cardTrailingPadding + heroWidth + heroTrailingPadding + textToHeroGap, + top = 12.dp, + bottom = 12.dp + ), + verticalAlignment = Alignment.CenterVertically + ) { + Column(verticalArrangement = Arrangement.spacedBy(4.dp)) { + Text( + stringResource(MR.strings.badges_banner_title), + style = MaterialTheme.typography.body1, + fontWeight = FontWeight.SemiBold, + color = MaterialTheme.colors.primary, + maxLines = 2, + overflow = TextOverflow.Ellipsis + ) + Text( + stringResource(MR.strings.badges_banner_subtitle), + style = MaterialTheme.typography.body2, + color = MaterialTheme.colors.onBackground, + maxLines = 2, + overflow = TextOverflow.Ellipsis + ) + } + } + + // Same X pattern as OneHandUICard: circle-clipped clickable region with inner padding for hit area. + Icon( + painterResource(MR.images.ic_close), + contentDescription = stringResource(MR.strings.icon_descr_close_button), + tint = if (isDark) MaterialTheme.colors.onBackground else MaterialTheme.colors.secondary, + modifier = Modifier + .align(Alignment.TopEnd) + .padding(end = 4.dp, top = 4.dp) + .clip(CircleShape) + .clickable { + AlertManager.shared.showAlertMsg( + title = generalGetString(MR.strings.badges_banner_title), + text = generalGetString(MR.strings.badges_banner_dismiss_message), + onConfirm = onDismiss + ) + } + .padding(8.dp) + .size(16.dp) + ) + } + + HeroThumbnail( + heroWidth = heroWidth, + heroVisibleHeight = heroVisibleHeight, + cardHeight = cardHeight, + trailingPadding = heroTrailingPadding + ) + }) { measurables, constraints -> + val cardPlaceable = measurables[0].measure(constraints) + val heroPlaceable = measurables[1].measure(constraints.copy(minWidth = 0, minHeight = 0)) + layout(cardPlaceable.width, cardPlaceable.height) { + cardPlaceable.place(0, 0) + heroPlaceable.place(cardPlaceable.width - heroPlaceable.width, cardPlaceable.height - heroPlaceable.height) + } + } +} + +@Composable +private fun HeroThumbnail(heroWidth: Dp, heroVisibleHeight: Dp, cardHeight: Dp, trailingPadding: Dp) { + if (BuildConfigCommon.SIMPLEX_ASSETS) { + // draws at natural aspect, top-aligned in a shorter slot; ContentScale.Crop cuts the overflow at card bottom + Image( + painterResource(if (isInDarkTheme()) MR.images.phone_supporter_light else MR.images.phone_supporter), + contentDescription = null, + contentScale = ContentScale.Crop, + alignment = Alignment.TopCenter, + modifier = Modifier.padding(end = trailingPadding).size(width = heroWidth, height = heroVisibleHeight) + ) + } else { + val badgeSize = 48.dp + Image( + painterResource(MR.images.badge_supporter), + contentDescription = null, + contentScale = ContentScale.Fit, + modifier = Modifier + .padding(end = trailingPadding + 12.dp, top = (cardHeight - badgeSize) / 2, bottom = (cardHeight - badgeSize) / 2) + .size(badgeSize) + ) + } +} + +// Geometry-aware gradient with asymmetric scale: start (dark) pushed further below the card than +// end (warm) is above, so card-middle lands at the bright/mid-transition stop, not the dark region. +private fun gradientBrush(isDark: Boolean, size: IntSize): Brush { + val stops = if (isDark) darkStops else lightStops + if (size.width == 0 || size.height == 0) return Brush.linearGradient(colorStops = stops) + val w = size.width.toFloat() + val h = size.height.toFloat() + val startScale = if (isDark) 3.0f else 2.5f + val endScale = if (isDark) 2.1f else 1.7f + val gp = gradientPoints(h / w, 1.0f) + val sx = 0.5f + (gp.startX - 0.5f) * startScale + val sy = 0.5f + (gp.startY - 0.5f) * startScale + val ex = 0.5f + (gp.endX - 0.5f) * endScale + val ey = 0.5f + (gp.endY - 0.5f) * endScale + return Brush.linearGradient( + colorStops = stops, + start = Offset(sx * w, sy * h), + end = Offset(ex * w, ey * h) + ) +} diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chatlist/ChatListView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chatlist/ChatListView.kt index 68fa25d553..19f50de743 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chatlist/ChatListView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chatlist/ChatListView.kt @@ -41,6 +41,7 @@ import chat.simplex.common.platform.* import chat.simplex.common.views.call.Call import chat.simplex.common.views.chat.item.* import chat.simplex.common.views.chat.topPaddingToContent +import chat.simplex.common.views.badges.* import chat.simplex.common.views.newchat.* import chat.simplex.common.views.onboarding.* import chat.simplex.common.views.usersettings.* @@ -912,6 +913,7 @@ private fun BoxScope.ChatList(searchText: MutableState, listStat val oneHandUI = remember { appPrefs.oneHandUI.state } val oneHandUICardShown = remember { appPrefs.oneHandUICardShown.state } val addressCreationCardShown = remember { appPrefs.addressCreationCardShown.state } + val supporterBannerShown = remember { appPrefs.supporterBannerShown.state } val activeFilter = remember { chatModel.activeChatTagFilter } LaunchedEffect(listState.firstVisibleItemIndex, listState.firstVisibleItemScrollOffset) { @@ -1000,6 +1002,16 @@ private fun BoxScope.ChatList(searchText: MutableState, listStat ToggleChatListCard() } } + if (!supporterBannerShown.value && chatModel.chats.value.size > 3) { + item { + Box(Modifier.zIndex(1f).padding(16.dp)) { + SupportSimpleXBanner( + onTap = { ModalManager.start.showModal { BadgesSupportSimplexView() } }, + onDismiss = { appPrefs.supporterBannerShown.set(true) } + ) + } + } + } itemsIndexed(chats, key = { _, chat -> chat.remoteHostId to chat.id }) { index, chat -> val nextChatSelected = remember(chat.id, chats) { derivedStateOf { chatModel.chatId.value != null && chats.getOrNull(index + 1)?.id == chatModel.chatId.value @@ -1025,13 +1037,15 @@ private fun BoxScope.ChatList(searchText: MutableState, listStat } else { NavigationBarBackground(oneHandUI.value, true) } - if (!oneHandUICardShown.value) { - LaunchedEffect(chats.size) { - if (chats.size >= 3) { - appPrefs.oneHandUICardShown.set(true) - } - } - } + // TEMP-DISABLED-FOR-BADGES-QA: auto-hide of ToggleChatListCard at 3+ chats blocks visual QA of + // the SupportSimpleXBanner alongside it. Restore before merging. + // if (!oneHandUICardShown.value) { + // LaunchedEffect(chats.size) { + // if (chats.size >= 3) { + // appPrefs.oneHandUICardShown.set(true) + // } + // } + // } LaunchedEffect(activeFilter.value) { searchText.value = TextFieldValue("") diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/helpers/ChatInfoImage.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/helpers/ChatInfoImage.kt index d2ee1db09c..567e575bbd 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/helpers/ChatInfoImage.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/helpers/ChatInfoImage.kt @@ -245,7 +245,7 @@ fun showBadgeInfoAlert(name: String, badge: LocalBadge, uriHandler: UriHandler) } } -private fun badgeImage(t: BadgeType): ImageResource = when (t) { +fun badgeImage(t: BadgeType): ImageResource = when (t) { is BadgeType.Legend -> MR.images.badge_legend is BadgeType.Investor -> MR.images.badge_investor else -> MR.images.badge_supporter // Supporter + Unknown diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/onboarding/HowItWorks.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/onboarding/HowItWorks.kt index 703d295523..9d82395740 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/onboarding/HowItWorks.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/onboarding/HowItWorks.kt @@ -7,6 +7,7 @@ import androidx.compose.material.* import androidx.compose.runtime.* import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalUriHandler import dev.icerock.moko.resources.compose.stringResource import androidx.compose.ui.text.* @@ -22,12 +23,12 @@ import chat.simplex.res.MR import dev.icerock.moko.resources.StringResource @Composable -fun HowItWorks(user: User?, onboardingStage: SharedPreference? = null) { +fun HowItWorks(user: User?, onboardingStage: SharedPreference? = null, titleColor: Color = Color.Unspecified) { Column(Modifier.fillMaxSize().padding(horizontal = if (appPlatform.isDesktop) DEFAULT_PADDING * 2 else DEFAULT_PADDING)) { Spacer(Modifier.statusBarsPadding().padding(top = AppBarHeight * fontSizeSqrtMultiplier)) val paraPadding = PaddingValues(bottom = if (appPlatform.isDesktop) 10.dp else 12.dp) Column(Modifier.weight(1f).padding(bottom = DEFAULT_PADDING).verticalScroll(rememberScrollState())) { - Text(stringResource(MR.strings.why_built_heading), style = MaterialTheme.typography.h1, modifier = Modifier.padding(bottom = DEFAULT_PADDING)) + Text(stringResource(MR.strings.why_built_heading), style = MaterialTheme.typography.h1, color = titleColor, modifier = Modifier.padding(bottom = DEFAULT_PADDING)) ReadableText(MR.strings.why_built_p1, padding = paraPadding) ReadableText(MR.strings.why_built_p2, padding = paraPadding) ReadableText(MR.strings.why_built_p3, padding = paraPadding) @@ -45,6 +46,11 @@ fun HowItWorks(user: User?, onboardingStage: SharedPreference? OnboardingActionButton(user, onboardingStage, onclick = { ModalManager.fullscreen.closeModal() }) TextButtonBelowOnboardingButton("", null) } + } else { + // No button below — add breathing room at the bottom on both platforms. + // Android also gets nav-bar inset so content doesn't run under the gesture bar. + Spacer(Modifier.height(DEFAULT_PADDING)) + if (appPlatform.isAndroid) Spacer(Modifier.navigationBarsPadding()) } } } diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/onboarding/SimpleXInfo.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/onboarding/SimpleXInfo.kt index 74dadcd671..d97d709953 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/onboarding/SimpleXInfo.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/onboarding/SimpleXInfo.kt @@ -190,12 +190,14 @@ expect fun OnboardingActionButton(user: User?, onboardingStage: SharedPreference fun OnboardingActionButton( modifier: Modifier = Modifier, labelId: StringResource, + labelArg: String? = null, onboarding: OnboardingStage?, enabled: Boolean = true, icon: Painter? = null, iconColor: Color = Color.White, onclick: (() -> Unit)? ) { + val label = if (labelArg != null) stringResource(labelId).format(labelArg) else stringResource(labelId) Button( onClick = { onclick?.invoke() @@ -211,9 +213,9 @@ fun OnboardingActionButton( colors = ButtonDefaults.buttonColors(MaterialTheme.colors.primary, disabledBackgroundColor = MaterialTheme.colors.secondary) ) { if (icon != null) { - Icon(icon, stringResource(labelId), Modifier.padding(end = DEFAULT_PADDING_HALF), tint = iconColor) + Icon(icon, label, Modifier.padding(end = DEFAULT_PADDING_HALF), tint = iconColor) } - Text(stringResource(labelId), style = MaterialTheme.typography.h2, color = Color.White, fontSize = 18.sp, fontWeight = FontWeight.Medium) + Text(label, style = MaterialTheme.typography.h2, color = Color.White, fontSize = 18.sp, fontWeight = FontWeight.Medium) } } diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/onboarding/WhatsNewView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/onboarding/WhatsNewView.kt index ea95bc2045..d3e1376af0 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/onboarding/WhatsNewView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/onboarding/WhatsNewView.kt @@ -8,6 +8,7 @@ import androidx.compose.runtime.* import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip +import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.platform.LocalUriHandler import dev.icerock.moko.resources.compose.painterResource import dev.icerock.moko.resources.compose.stringResource @@ -940,8 +941,54 @@ private val versionDescriptions: List = listOf( ), ) ), + // TODO [badges] finalise copy + Read more link before v7.1 ships. + VersionDescription( + version = "v7.1", + post = null, + features = listOf( + VersionFeature.FeatureView( + icon = null, + titleId = MR.strings.v7_1_supporter_badge_title, + view = { SupporterBadgeWhatsNew() } + ) + ) + ), ) +@Composable +private fun SupporterBadgeWhatsNew() { + Row(horizontalArrangement = Arrangement.spacedBy(12.dp), verticalAlignment = Alignment.Top) { + Column(Modifier.weight(1f), verticalArrangement = Arrangement.spacedBy(6.dp)) { + Text( + stringResource(MR.strings.v7_1_supporter_badge_title), + style = MaterialTheme.typography.h3, + fontWeight = FontWeight.Bold + ) + Text( + stringResource(MR.strings.v7_1_supporter_badge_body), + style = MaterialTheme.typography.body1, + maxLines = 10 + ) + } + val isDark = isInDarkTheme() + if (BuildConfigCommon.SIMPLEX_ASSETS) { + Image( + painterResource(if (isDark) MR.images.phone_supporter_light else MR.images.phone_supporter), + contentDescription = null, + contentScale = ContentScale.Fit, + modifier = Modifier.size(110.dp) + ) + } else { + Image( + painterResource(MR.images.badge_supporter), + contentDescription = null, + contentScale = ContentScale.Fit, + modifier = Modifier.size(72.dp) + ) + } + } +} + private val lastVersion = versionDescriptions.last().version fun setLastVersionDefault(m: ChatModel) { diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/usersettings/SettingsView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/usersettings/SettingsView.kt index 96f36da6d7..e398a1b2fe 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/usersettings/SettingsView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/usersettings/SettingsView.kt @@ -26,6 +26,7 @@ import chat.simplex.common.model.* import chat.simplex.common.model.ChatController.appPrefs import chat.simplex.common.platform.* import chat.simplex.common.ui.theme.* +import chat.simplex.common.views.badges.BadgesSupportSimplexView import chat.simplex.common.views.database.DatabaseView import chat.simplex.common.views.helpers.* import chat.simplex.common.views.migration.MigrateFromDeviceView @@ -101,6 +102,17 @@ fun SettingsLayout( } SectionDividerSpaced() + SectionView { + // Direct showModal (no settings / cardScreen flags) — settings-style card chrome would render + // a gray top bar / back button that badges views don't want (they have their own inline titles). + SectionItemView(click = { ModalManager.start.showModal { BadgesSupportSimplexView() } }) { + Image(painterResource(MR.images.badge_supporter), stringResource(MR.strings.supporter_perks), Modifier.size(24.dp)) + TextIconSpaced() + Text(stringResource(MR.strings.supporter_perks)) + } + } + SectionDividerSpaced() + SectionView(stringResource(MR.strings.advanced_settings)) { SettingsActionItem(painterResource(MR.images.ic_wifi_tethering), stringResource(MR.strings.network_and_servers), showCustomModal { _, close -> NetworkAndServersView(close) }, disabled = stopped) if (appPlatform == AppPlatform.ANDROID) { diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/base/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/base/strings.xml index ead51b31ea..8683af1705 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/base/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/base/strings.xml @@ -3201,4 +3201,36 @@ This badge could not be verified and may not be genuine. Badge cannot be verified The badge is signed with a key that this version of the app does not recognize. Update the app to verify this badge. + Supporter + Legend + Send 2GB files + Send 5GB files + %1$s/month + Pay %1$s/month + Pay %1$s + Optional profile badge\nand 2GB files + Optional profile badge\nand 5GB files + 1 month + Subscribe + Renews on %1$s. Cancel anytime. + Ends on %1$s. + Your level + Support SimpleX + SimpleX doesn\'t sell ads or data. It\'s funded by its users and by investors who share the mission. You can support the project and show a badge on your profile. + Why SimpleX is built. + Choose your level + Redeem badge code + Continue + How private badges work + How private badges work + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. + Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. + Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. + My nickname + Support SimpleX + Get badge + files up to 5GB + You can support SimpleX later in Settings. + Supporter perks + Supporter badge ❤️ + Help keep the network running — send files up to 2 GB. \ No newline at end of file diff --git a/apps/multiplatform/common/src/commonMain/resources/assets/default/MR/images/phone_supporter.svg b/apps/multiplatform/common/src/commonMain/resources/assets/default/MR/images/phone_supporter.svg new file mode 100644 index 0000000000..cd6f033c62 --- /dev/null +++ b/apps/multiplatform/common/src/commonMain/resources/assets/default/MR/images/phone_supporter.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/multiplatform/common/src/commonMain/resources/assets/default/MR/images/phone_supporter_light.svg b/apps/multiplatform/common/src/commonMain/resources/assets/default/MR/images/phone_supporter_light.svg new file mode 100644 index 0000000000..cd6f033c62 --- /dev/null +++ b/apps/multiplatform/common/src/commonMain/resources/assets/default/MR/images/phone_supporter_light.svg @@ -0,0 +1,4 @@ + + + + From 9c845222e4a528d229ef0b8b90f36f1d97805296 Mon Sep 17 00:00:00 2001 From: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com> Date: Mon, 17 Aug 2026 16:12:09 +0000 Subject: [PATCH 04/62] ui: badges app store integration (#7374) --- apps/ios/BadgeTestProducts.storekit | 230 ++++++++++++++++++ apps/ios/Shared/Views/Badges/BadgeStore.swift | 183 ++++++++++++++ .../Shared/Views/Badges/BadgesPayView.swift | 149 +++++++++++- .../Badges/BadgesSupportSimplexView.swift | 2 + .../Views/Badges/BadgesYourLevelView.swift | 18 +- apps/ios/SimpleX.xcodeproj/project.pbxproj | 78 +++--- .../foss/java/chat/simplex/app/PlayStore.kt | 18 ++ .../google/java/chat/simplex/app/PlayStore.kt | 190 +++++++++++++++ .../main/java/chat/simplex/app/SimplexApp.kt | 7 + .../chat/simplex/common/platform/Platform.kt | 12 + .../simplex/common/views/badges/BadgeStore.kt | 187 ++++++++++++++ .../common/views/badges/BadgesPayView.kt | 143 +++++++++-- .../views/badges/BadgesSupportSimplexView.kt | 3 + .../views/badges/BadgesYourLevelView.kt | 10 +- .../commonMain/resources/MR/base/strings.xml | 12 +- 15 files changed, 1157 insertions(+), 85 deletions(-) create mode 100644 apps/ios/BadgeTestProducts.storekit create mode 100644 apps/ios/Shared/Views/Badges/BadgeStore.swift create mode 100644 apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgeStore.kt diff --git a/apps/ios/BadgeTestProducts.storekit b/apps/ios/BadgeTestProducts.storekit new file mode 100644 index 0000000000..f32c2c8dc3 --- /dev/null +++ b/apps/ios/BadgeTestProducts.storekit @@ -0,0 +1,230 @@ +{ + "appPolicies" : { + "eula" : "", + "policies" : [ + { + "locale" : "en_US", + "policyText" : "", + "policyURL" : "" + } + ] + }, + "identifier" : "B4D6E1A0", + "nonRenewingSubscriptions" : [ + + ], + "products" : [ + { + "displayPrice" : "7.00", + "familyShareable" : false, + "internalID" : "3010000001", + "localizations" : [ + { + "description" : "Supporter badge for one month", + "displayName" : "SimpleX Supporter Badge", + "locale" : "en_US" + } + ], + "productID" : "BADGE_SUPPORTER_01", + "referenceName" : "SimpleX Supporter Badge", + "type" : "Consumable" + }, + { + "displayPrice" : "70.00", + "familyShareable" : false, + "internalID" : "3010000002", + "localizations" : [ + { + "description" : "Legend badge for one month", + "displayName" : "SimpleX Legend Badge", + "locale" : "en_US" + } + ], + "productID" : "BADGE_LEGEND_01", + "referenceName" : "SimpleX Legend Badge", + "type" : "Consumable" + } + ], + "settings" : { + "_applicationInternalID" : "", + "_developerTeamID" : "", + "_failTransactionsEnabled" : false, + "_lastSynchronizedDate" : 0, + "_locale" : "en_US", + "_storefront" : "USA", + "_storeKitErrors" : [ + { + "current" : null, + "enabled" : false, + "name" : "Load Products" + }, + { + "current" : null, + "enabled" : false, + "name" : "Purchase" + }, + { + "current" : null, + "enabled" : false, + "name" : "Verification" + }, + { + "current" : null, + "enabled" : false, + "name" : "App Store Sync" + }, + { + "current" : null, + "enabled" : false, + "name" : "Subscription Status" + }, + { + "current" : null, + "enabled" : false, + "name" : "App Transaction" + }, + { + "current" : null, + "enabled" : false, + "name" : "Manage Subscriptions Sheet" + }, + { + "current" : null, + "enabled" : false, + "name" : "Refund Request Sheet" + }, + { + "current" : null, + "enabled" : false, + "name" : "Offer Code Redeem Sheet" + } + ] + }, + "subscriptionGroups" : [ + { + "id" : "3020000001", + "localizations" : [ + + ], + "name" : "SimpleX Badge Subscription", + "subscriptions" : [ + { + "adHocOffers" : [ + + ], + "codeOffers" : [ + + ], + "displayPrice" : "7.00", + "familyShareable" : false, + "groupNumber" : 2, + "internalID" : "3020000011", + "introductoryOffer" : null, + "localizations" : [ + { + "description" : "Supporter badge, renews monthly", + "displayName" : "SimpleX Supporter Badge (Month)", + "locale" : "en_US" + } + ], + "productID" : "SUBSCR_BADGE_SUPPORTER_MONTH_01", + "recurringSubscriptionPeriod" : "P1M", + "referenceName" : "SimpleX Supporter Badge (Month)", + "subscriptionGroupID" : "3020000001", + "type" : "RecurringSubscription", + "winbackOffers" : [ + + ] + }, + { + "adHocOffers" : [ + + ], + "codeOffers" : [ + + ], + "displayPrice" : "42.00", + "familyShareable" : false, + "groupNumber" : 2, + "internalID" : "3020000012", + "introductoryOffer" : null, + "localizations" : [ + { + "description" : "Supporter badge, renews yearly", + "displayName" : "SimpleX Supporter Badge (Year)", + "locale" : "en_US" + } + ], + "productID" : "SUBSCR_BADGE_SUPPORTER_YEAR_01", + "recurringSubscriptionPeriod" : "P1Y", + "referenceName" : "SimpleX Supporter Badge (Year)", + "subscriptionGroupID" : "3020000001", + "type" : "RecurringSubscription", + "winbackOffers" : [ + + ] + }, + { + "adHocOffers" : [ + + ], + "codeOffers" : [ + + ], + "displayPrice" : "70.00", + "familyShareable" : false, + "groupNumber" : 1, + "internalID" : "3020000013", + "introductoryOffer" : null, + "localizations" : [ + { + "description" : "Legend badge, renews monthly", + "displayName" : "SimpleX Legend Badge (Month)", + "locale" : "en_US" + } + ], + "productID" : "SUBSCR_BADGE_LEGEND_MONTH_01", + "recurringSubscriptionPeriod" : "P1M", + "referenceName" : "SimpleX Legend Badge (Month)", + "subscriptionGroupID" : "3020000001", + "type" : "RecurringSubscription", + "winbackOffers" : [ + + ] + }, + { + "adHocOffers" : [ + + ], + "codeOffers" : [ + + ], + "displayPrice" : "420.00", + "familyShareable" : false, + "groupNumber" : 1, + "internalID" : "3020000014", + "introductoryOffer" : null, + "localizations" : [ + { + "description" : "Legend badge, renews yearly", + "displayName" : "SimpleX Legend Badge (Year)", + "locale" : "en_US" + } + ], + "productID" : "SUBSCR_BADGE_LEGEND_YEAR_01", + "recurringSubscriptionPeriod" : "P1Y", + "referenceName" : "SimpleX Legend Badge (Year)", + "subscriptionGroupID" : "3020000001", + "type" : "RecurringSubscription", + "winbackOffers" : [ + + ] + } + ] + } + ], + "version" : { + "major" : 4, + "minor" : 0 + } +} diff --git a/apps/ios/Shared/Views/Badges/BadgeStore.swift b/apps/ios/Shared/Views/Badges/BadgeStore.swift new file mode 100644 index 0000000000..8d092bbc19 --- /dev/null +++ b/apps/ios/Shared/Views/Badges/BadgeStore.swift @@ -0,0 +1,183 @@ +// +// BadgeStore.swift +// SimpleX (iOS) +// +// Created by spaced4ndy on 14.08.2026. +// Copyright © 2026 SimpleX Chat. All rights reserved. +// + +import Foundation +import Combine +import StoreKit + +// TODO [badges] product ids will come from app config and prices from the badge service catalog; +// hardcoded here so the App Store integration can be tested before the purchase API lands. +func badgeProductId(_ level: BadgeLevel, _ period: BadgePeriod) -> String { + switch (level, period) { + case (.supporter, .oneMonth): "BADGE_SUPPORTER_01" + case (.supporter, .monthly): "SUBSCR_BADGE_SUPPORTER_MONTH_01" + case (.supporter, .annual): "SUBSCR_BADGE_SUPPORTER_YEAR_01" + case (.legend, .oneMonth): "BADGE_LEGEND_01" + case (.legend, .monthly): "SUBSCR_BADGE_LEGEND_MONTH_01" + case (.legend, .annual): "SUBSCR_BADGE_LEGEND_YEAR_01" + } +} + +let badgeProductIds: [String] = BadgeLevel.allCases.flatMap { level in + BadgePeriod.allCases.map { badgeProductId(level, $0) } +} + +// TODO [badges] replaced by APIGetBadgeInvoice, which creates the invoice row and returns its id. +// Apple requires a UUID - it is sent as appAccountToken and echoed back in the signed transaction, +// which is how the service learns which invoice a store transaction settles. +func newBadgeInvoiceId() -> UUID { UUID() } + +enum BadgePrice { + case loading + case price(String) + case unavailable + + var canPurchase: Bool { + switch self { + case .price: true + case .loading, .unavailable: false + } + } +} + +struct BadgeStoreReceipt { + // the signed token the badge service verifies - never transaction.jsonRepresentation + let jws: String + let productId: String + let transactionId: UInt64 + let invoiceId: UUID? + let environment: String? + let signatureVerified: Bool +} + +enum BadgePurchaseOutcome { + case purchased(BadgeStoreReceipt) + case pending + case cancelled +} + +enum BadgeStoreError: Error { + case productUnavailable(productId: String) + case unknownPurchaseResult +} + +final class BadgeStore: ObservableObject { + static let shared = BadgeStore() + + private enum LoadState { case notLoaded, loading, loaded, failed } + + @Published private var state: LoadState = .notLoaded + private var products: [String: Product] = [:] + + private init() {} + + func price(_ level: BadgeLevel, _ period: BadgePeriod) -> BadgePrice { + switch state { + case .notLoaded, .loading: return .loading + case .loaded, .failed: + if let p = products[badgeProductId(level, period)] { return .price(compactPrice(p)) } + return .unavailable + } + } + + // percentage the annual subscription saves against 12 monthly payments + func annualSavings(_ level: BadgeLevel) -> Int? { + guard let monthly = products[badgeProductId(level, .monthly)], + let annual = products[badgeProductId(level, .annual)] + else { return nil } + let year = monthly.price * 12 + guard year > 0, annual.price < year else { return nil } + let saved = (year - annual.price) / year * 100 + let percent = Int(NSDecimalNumber(decimal: saved).doubleValue.rounded()) + return percent > 0 ? percent : nil + } + + func load() async { + guard await startLoading() else { return } + do { + let loaded = try await Product.products(for: badgeProductIds) + let byId = Dictionary(loaded.map { ($0.id, $0) }, uniquingKeysWith: { p, _ in p }) + let missing = badgeProductIds.filter { byId[$0] == nil } + if !missing.isEmpty { + // the store drops ids it cannot resolve without saying why, so the storefront and + // the bundle the request was made for are logged with them + let storefront = await Storefront.current + logger.warning("BadgeStore.load: no product returned for \(missing.joined(separator: ", ")) - bundle \(Bundle.main.bundleIdentifier ?? "?"), storefront \(storefront?.countryCode ?? "none"), canMakePayments \(AppStore.canMakePayments)") + } + await MainActor.run { + products = byId + state = .loaded + } + } catch let error { + logger.error("BadgeStore.load: \(String(describing: error))") + await MainActor.run { state = .failed } + } + } + + func purchase(_ level: BadgeLevel, _ period: BadgePeriod, invoiceId: UUID) async throws -> BadgePurchaseOutcome { + let productId = badgeProductId(level, period) + guard let product = await MainActor.run(body: { products[productId] }) else { + throw BadgeStoreError.productUnavailable(productId: productId) + } + switch try await product.purchase(options: [.appAccountToken(invoiceId)]) { + case let .success(verification): + let transaction: Transaction + let signatureVerified: Bool + switch verification { + case let .verified(t): + transaction = t + signatureVerified = true + case let .unverified(t, _): + transaction = t + signatureVerified = false + } + // nothing is delivered in this build, so the transaction is finished right away; once the + // service issues credentials it must only be finished after the credential is stored + await transaction.finish() + return .purchased(storeReceipt(verification.jwsRepresentation, transaction, signatureVerified)) + case .pending: return .pending + case .userCancelled: return .cancelled + @unknown default: throw BadgeStoreError.unknownPurchaseResult + } + } + + @MainActor + private func startLoading() -> Bool { + switch state { + case .notLoaded, .failed: + state = .loading + return true + case .loading, .loaded: + return false + } + } +} + +// drops the fraction from whole amounts ("$7", not "$7.00") in the product's own currency style; +// Product.displayPrice remains the exact form for views that need the cents +private func compactPrice(_ product: Product) -> String { + var whole = Decimal() + var price = product.price + NSDecimalRound(&whole, &price, 0, .plain) + return whole == product.price + ? product.price.formatted(product.priceFormatStyle.precision(.fractionLength(0))) + : product.displayPrice +} + +private func storeReceipt(_ jws: String, _ t: Transaction, _ signatureVerified: Bool) -> BadgeStoreReceipt { + var environment: String? = nil + if #available(iOS 16.0, *) { environment = t.environment.rawValue } + return BadgeStoreReceipt( + jws: jws, + productId: t.productID, + transactionId: t.id, + invoiceId: t.appAccountToken, + environment: environment, + signatureVerified: signatureVerified + ) +} diff --git a/apps/ios/Shared/Views/Badges/BadgesPayView.swift b/apps/ios/Shared/Views/Badges/BadgesPayView.swift index b32c14485f..707bdb3059 100644 --- a/apps/ios/Shared/Views/Badges/BadgesPayView.swift +++ b/apps/ios/Shared/Views/Badges/BadgesPayView.swift @@ -12,29 +12,62 @@ import SimpleXChat // TODO [badges]: replace with types produced by the badge purchase API when it lands. enum BadgePeriod: String, CaseIterable, Identifiable { case oneMonth - case subscribe + case monthly + case annual var id: String { rawValue } var icon: String { switch self { case .oneMonth: "calendar" - case .subscribe: "arrow.clockwise" + case .monthly: "arrow.clockwise" + case .annual: "arrow.clockwise" } } var label: LocalizedStringKey { switch self { case .oneMonth: "1 month" - case .subscribe: "Subscribe" + case .monthly: "Monthly" + case .annual: "Annual" + } + } + + func priceText(_ price: BadgePrice) -> Text { + switch price { + case .loading: return Text(verbatim: "…") + case .unavailable: return Text(verbatim: "—") + case let .price(p): + switch self { + case .oneMonth: return Text(verbatim: p) + case .monthly: return Text("\(p)/month") + case .annual: return Text("\(p)/year") + } + } + } + + func payText(_ price: BadgePrice) -> Text { + switch price { + case .loading: return Text("Loading…") + case .unavailable: return Text("Not available") + case let .price(p): + switch self { + case .oneMonth: return Text("Pay \(p)") + case .monthly: return Text("Pay \(p)/month") + case .annual: return Text("Pay \(p)/year") + } } } } struct BadgesPayView: View { @EnvironmentObject var theme: AppTheme + @ObservedObject private var store = BadgeStore.shared let level: BadgeLevel - @State private var selectedPeriod: BadgePeriod = .subscribe + @State private var selectedPeriod: BadgePeriod = .monthly + @State private var purchasing = false + // presented from this view, not AlertManager: its host is behind the sheet these views open in + @State private var alert: SomeAlert? var body: some View { GeometryReader { g in @@ -59,10 +92,14 @@ struct BadgesPayView: View { Spacer(minLength: 20) + // fixedSize + maxHeight on the cards so all three match the tallest one - + // only Annual carries a savings line, and prices wrap at large fonts HStack(alignment: .top, spacing: 12) { periodCard(.oneMonth) - periodCard(.subscribe) + periodCard(.monthly) + periodCard(.annual) } + .fixedSize(horizontal: false, vertical: true) Spacer(minLength: 20) @@ -86,6 +123,8 @@ struct BadgesPayView: View { } .frame(maxHeight: .infinity) .navigationBarTitleDisplayMode(.inline) + .task { await store.load() } + .alert(item: $alert) { $0.alert } } private func periodCard(_ period: BadgePeriod) -> some View { @@ -99,13 +138,21 @@ struct BadgesPayView: View { .scaledToFit() .frame(width: 32, height: 32) .foregroundColor(isSelected ? theme.colors.primary : theme.colors.secondary) - .padding(.top, 30) Text(period.label) .font(.title3) .fontWeight(.bold) - .padding(.bottom, 30) + period.priceText(store.price(level, period)) + .font(.body) + if let percent = savingsPercent(period) { + Text("Save \(percent)%") + .font(.footnote) + .foregroundColor(isSelected ? theme.colors.primary : theme.colors.secondary) + } } - .frame(maxWidth: .infinity) + .multilineTextAlignment(.center) + .padding(.vertical, 25) + .padding(.horizontal, 12) + .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .top) .background(Color(uiColor: .secondarySystemGroupedBackground)) .clipShape(RoundedRectangle(cornerRadius: 16)) .overlay( @@ -116,13 +163,89 @@ struct BadgesPayView: View { .buttonStyle(.plain) } + private func savingsPercent(_ period: BadgePeriod) -> Int? { + period == .annual ? store.annualSavings(level) : nil + } + private func payButton() -> some View { - Button { - // TODO [badges] wire to purchase API when it lands. + let price = store.price(level, selectedPeriod) + let disabled = !price.canPurchase || purchasing + return Button { + purchase() } label: { - Text(selectedPeriod == .subscribe ? "Pay \(level.priceAmount)/month" : "Pay \(level.priceAmount)") + selectedPeriod.payText(price) } - .buttonStyle(OnboardingButtonStyle(isDisabled: false)) + .buttonStyle(OnboardingButtonStyle(isDisabled: disabled)) + .disabled(disabled) + } + + private func purchase() { + let period = selectedPeriod + let invoiceId = newBadgeInvoiceId() + purchasing = true + Task { + do { + let outcome = try await store.purchase(level, period, invoiceId: invoiceId) + await MainActor.run { + purchasing = false + switch outcome { + case let .purchased(receipt): showPurchasedAlert(receipt, invoiceId) + case .pending: + alert = SomeAlert( + alert: mkAlert( + title: "Purchase pending", + message: "The purchase is awaiting approval. This build does not deliver purchases approved later." + ), + id: "badgePurchasePending" + ) + case .cancelled: break + } + } + } catch let error { + logger.error("BadgesPayView.purchase: \(String(describing: error))") + await MainActor.run { + purchasing = false + alert = SomeAlert( + alert: Alert( + title: Text("Purchase error"), + message: Text(verbatim: String(describing: error)) + ), + id: "badgePurchaseError" + ) + } + } + } + } + + // TODO [badges] store integration diagnostics - replaced by the issued badge once the service lands. + private func showPurchasedAlert(_ receipt: BadgeStoreReceipt, _ invoiceId: UUID) { + let returnedInvoice: String + if let returned = receipt.invoiceId { + returnedInvoice = returned == invoiceId ? "yes" : "mismatch: \(returned.uuidString)" + } else { + returnedInvoice = "none" + } + var lines = [ + "Product: \(receipt.productId)", + "Invoice: \(invoiceId.uuidString)", + "Invoice returned by Apple: \(returnedInvoice)", + "Transaction: \(receipt.transactionId)" + ] + if let environment = receipt.environment { lines.append("Environment: \(environment)") } + lines.append("Signature: \(receipt.signatureVerified ? "verified" : "unverified")") + lines.append("Token: \(receipt.jws.count) bytes") + let summary = lines.joined(separator: "\n") + // logged as well as shown: the alert races StoreKit's own sheets, the log always lands + logger.debug("badge purchase succeeded\n\(summary)") + alert = SomeAlert( + alert: Alert( + title: Text("Purchase successful"), + message: Text(verbatim: summary), + primaryButton: .default(Text(verbatim: "Copy token")) { UIPasteboard.general.string = receipt.jws }, + secondaryButton: .cancel(Text("Ok")) + ), + id: "badgePurchased" + ) } private var billingFooter: LocalizedStringKey { @@ -131,7 +254,7 @@ struct BadgesPayView: View { let stubDate = Calendar.current.date(from: comps) ?? Date() let date = DateFormatter.localizedString(from: stubDate, dateStyle: .long, timeStyle: .none) switch selectedPeriod { - case .subscribe: return "Renews on \(date). Cancel anytime." + case .monthly, .annual: return "Renews on \(date). Cancel anytime." case .oneMonth: return "Ends on \(date)." } } diff --git a/apps/ios/Shared/Views/Badges/BadgesSupportSimplexView.swift b/apps/ios/Shared/Views/Badges/BadgesSupportSimplexView.swift index 6ae3176e85..2538d874a1 100644 --- a/apps/ios/Shared/Views/Badges/BadgesSupportSimplexView.swift +++ b/apps/ios/Shared/Views/Badges/BadgesSupportSimplexView.swift @@ -62,6 +62,8 @@ struct BadgesSupportSimplexView: View { } .frame(maxHeight: .infinity) .navigationBarTitleDisplayMode(.inline) + // preloaded here so the level screen shows store prices without a placeholder pass + .task { await BadgeStore.shared.load() } } private func whyBuiltButton() -> some View { diff --git a/apps/ios/Shared/Views/Badges/BadgesYourLevelView.swift b/apps/ios/Shared/Views/Badges/BadgesYourLevelView.swift index 3cfd576ea9..eb2396c655 100644 --- a/apps/ios/Shared/Views/Badges/BadgesYourLevelView.swift +++ b/apps/ios/Shared/Views/Badges/BadgesYourLevelView.swift @@ -30,13 +30,6 @@ enum BadgeLevel: String, CaseIterable, Identifiable { } } - var priceAmount: String { - switch self { - case .supporter: "$7" - case .legend: "$70" - } - } - var tagline: LocalizedStringKey { switch self { case .supporter: "Optional profile badge\nand 2GB files" @@ -54,6 +47,7 @@ enum BadgeLevel: String, CaseIterable, Identifiable { struct BadgesYourLevelView: View { @EnvironmentObject var theme: AppTheme + @ObservedObject private var store = BadgeStore.shared @State private var selectedLevel: BadgeLevel = .supporter @State private var continueActive = false @State private var howItWorksActive = false @@ -78,10 +72,13 @@ struct BadgesYourLevelView: View { Spacer(minLength: 20) + // fixedSize + maxHeight on the cards so both match the taller one when a + // store price wraps in one of them HStack(alignment: .top, spacing: 12) { levelCard(.supporter) levelCard(.legend) } + .fixedSize(horizontal: false, vertical: true) Spacer(minLength: 20) @@ -101,6 +98,7 @@ struct BadgesYourLevelView: View { } .frame(maxHeight: .infinity) .navigationBarTitleDisplayMode(.inline) + .task { await store.load() } } private func levelCard(_ level: BadgeLevel) -> some View { @@ -120,11 +118,13 @@ struct BadgesYourLevelView: View { Text(level.filesDescription) .font(.subheadline) .foregroundColor(theme.colors.secondary) - Text("\(level.priceAmount)/month") + BadgePeriod.monthly.priceText(store.price(level, .monthly)) .font(.body) .padding(.bottom, 20) } - .frame(maxWidth: .infinity) + .multilineTextAlignment(.center) + .padding(.horizontal, 12) + .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .top) .background(Color(uiColor: .secondarySystemGroupedBackground)) .clipShape(RoundedRectangle(cornerRadius: 16)) .overlay( diff --git a/apps/ios/SimpleX.xcodeproj/project.pbxproj b/apps/ios/SimpleX.xcodeproj/project.pbxproj index 211b53e4f7..a9a1fa180e 100644 --- a/apps/ios/SimpleX.xcodeproj/project.pbxproj +++ b/apps/ios/SimpleX.xcodeproj/project.pbxproj @@ -145,13 +145,6 @@ 640417CE2B29B8C200CCB412 /* NewChatView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 640417CC2B29B8C200CCB412 /* NewChatView.swift */; }; 640743612CD360E600158442 /* ChooseServerOperators.swift in Sources */ = {isa = PBXBuildFile; fileRef = 640743602CD360E600158442 /* ChooseServerOperators.swift */; }; 6407BA83295DA85D0082BA18 /* CIInvalidJSONView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6407BA82295DA85D0082BA18 /* CIInvalidJSONView.swift */; }; - 641378013020A5AD0056E083 /* BadgesRedeemCodeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 641377FC3020A5AD0056E083 /* BadgesRedeemCodeView.swift */; }; - 641378023020A5AD0056E083 /* SupportSimpleXBanner.swift in Sources */ = {isa = PBXBuildFile; fileRef = 641378003020A5AD0056E083 /* SupportSimpleXBanner.swift */; }; - 641378033020A5AD0056E083 /* BadgesHowItWorksView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 641377FA3020A5AD0056E083 /* BadgesHowItWorksView.swift */; }; - 641378043020A5AD0056E083 /* BadgesSupportSimplexView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 641377FD3020A5AD0056E083 /* BadgesSupportSimplexView.swift */; }; - 641378053020A5AD0056E083 /* BadgesYourLevelView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 641377FE3020A5AD0056E083 /* BadgesYourLevelView.swift */; }; - 641378063020A5AD0056E083 /* BadgeUserPreview.swift in Sources */ = {isa = PBXBuildFile; fileRef = 641377FF3020A5AD0056E083 /* BadgeUserPreview.swift */; }; - 641378073020A5AD0056E083 /* BadgesPayView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 641377FB3020A5AD0056E083 /* BadgesPayView.swift */; }; 6419EC582AB97507004A607A /* CIMemberCreatedContactView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6419EC572AB97507004A607A /* CIMemberCreatedContactView.swift */; }; 642BA82D2CE50495005E9412 /* NewServerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 642BA82C2CE50495005E9412 /* NewServerView.swift */; }; 6432857C2925443C00FBE5C8 /* GroupPreferencesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6432857B2925443C00FBE5C8 /* GroupPreferencesView.swift */; }; @@ -186,6 +179,14 @@ 64A77A022DC4AD6100FDEF2F /* ContextPendingMemberActionsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64A77A012DC4AD6100FDEF2F /* ContextPendingMemberActionsView.swift */; }; 64AA1C6927EE10C800AC7277 /* ContextItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64AA1C6827EE10C800AC7277 /* ContextItemView.swift */; }; 64AA1C6C27F3537400AC7277 /* DeletedItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64AA1C6B27F3537400AC7277 /* DeletedItemView.swift */; }; + 64C03BF9302F423300072BDE /* BadgesPayView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64C03BF1302F423300072BDE /* BadgesPayView.swift */; }; + 64C03BFA302F423300072BDE /* BadgesRedeemCodeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64C03BF2302F423300072BDE /* BadgesRedeemCodeView.swift */; }; + 64C03BFB302F423300072BDE /* BadgesHowItWorksView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64C03BF0302F423300072BDE /* BadgesHowItWorksView.swift */; }; + 64C03BFC302F423300072BDE /* BadgeUserPreview.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64C03BF6302F423300072BDE /* BadgeUserPreview.swift */; }; + 64C03BFD302F423300072BDE /* BadgeStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64C03BF4302F423300072BDE /* BadgeStore.swift */; }; + 64C03BFE302F423300072BDE /* SupportSimpleXBanner.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64C03BF7302F423300072BDE /* SupportSimpleXBanner.swift */; }; + 64C03BFF302F423300072BDE /* BadgesYourLevelView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64C03BF5302F423300072BDE /* BadgesYourLevelView.swift */; }; + 64C03C00302F423300072BDE /* BadgesSupportSimplexView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64C03BF3302F423300072BDE /* BadgesSupportSimplexView.swift */; }; 64C06EB52A0A4A7C00792D4D /* ChatItemInfoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64C06EB42A0A4A7C00792D4D /* ChatItemInfoView.swift */; }; 64C3B0212A0D359700E19930 /* CustomTimePicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64C3B0202A0D359700E19930 /* CustomTimePicker.swift */; }; 64C8299D2D54AEEE006B9E89 /* libgmp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C829982D54AEED006B9E89 /* libgmp.a */; }; @@ -531,15 +532,9 @@ 640417CC2B29B8C200CCB412 /* NewChatView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NewChatView.swift; sourceTree = ""; }; 640743602CD360E600158442 /* ChooseServerOperators.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChooseServerOperators.swift; sourceTree = ""; }; 6407BA82295DA85D0082BA18 /* CIInvalidJSONView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CIInvalidJSONView.swift; sourceTree = ""; }; - 641377FA3020A5AD0056E083 /* BadgesHowItWorksView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BadgesHowItWorksView.swift; sourceTree = ""; }; - 641377FB3020A5AD0056E083 /* BadgesPayView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BadgesPayView.swift; sourceTree = ""; }; - 641377FC3020A5AD0056E083 /* BadgesRedeemCodeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BadgesRedeemCodeView.swift; sourceTree = ""; }; - 641377FD3020A5AD0056E083 /* BadgesSupportSimplexView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BadgesSupportSimplexView.swift; sourceTree = ""; }; - 641377FE3020A5AD0056E083 /* BadgesYourLevelView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BadgesYourLevelView.swift; sourceTree = ""; }; - 641377FF3020A5AD0056E083 /* BadgeUserPreview.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BadgeUserPreview.swift; sourceTree = ""; }; - 641378003020A5AD0056E083 /* SupportSimpleXBanner.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SupportSimpleXBanner.swift; sourceTree = ""; }; 6419EC572AB97507004A607A /* CIMemberCreatedContactView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CIMemberCreatedContactView.swift; sourceTree = ""; }; 642BA82C2CE50495005E9412 /* NewServerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewServerView.swift; sourceTree = ""; }; + 642E412B3033084000F04EE1 /* BadgeTestProducts.storekit */ = {isa = PBXFileReference; lastKnownFileType = text; path = BadgeTestProducts.storekit; sourceTree = ""; }; 6432857B2925443C00FBE5C8 /* GroupPreferencesView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GroupPreferencesView.swift; sourceTree = ""; }; 643B3B4D2CCFD6400083A2CF /* OperatorView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OperatorView.swift; sourceTree = ""; }; 6440C9FF288857A10062C672 /* CIEventView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CIEventView.swift; sourceTree = ""; }; @@ -573,6 +568,14 @@ 64A77A012DC4AD6100FDEF2F /* ContextPendingMemberActionsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContextPendingMemberActionsView.swift; sourceTree = ""; }; 64AA1C6827EE10C800AC7277 /* ContextItemView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContextItemView.swift; sourceTree = ""; }; 64AA1C6B27F3537400AC7277 /* DeletedItemView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeletedItemView.swift; sourceTree = ""; }; + 64C03BF0302F423300072BDE /* BadgesHowItWorksView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BadgesHowItWorksView.swift; sourceTree = ""; }; + 64C03BF1302F423300072BDE /* BadgesPayView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BadgesPayView.swift; sourceTree = ""; }; + 64C03BF2302F423300072BDE /* BadgesRedeemCodeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BadgesRedeemCodeView.swift; sourceTree = ""; }; + 64C03BF3302F423300072BDE /* BadgesSupportSimplexView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BadgesSupportSimplexView.swift; sourceTree = ""; }; + 64C03BF4302F423300072BDE /* BadgeStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BadgeStore.swift; sourceTree = ""; }; + 64C03BF5302F423300072BDE /* BadgesYourLevelView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BadgesYourLevelView.swift; sourceTree = ""; }; + 64C03BF6302F423300072BDE /* BadgeUserPreview.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BadgeUserPreview.swift; sourceTree = ""; }; + 64C03BF7302F423300072BDE /* SupportSimpleXBanner.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SupportSimpleXBanner.swift; sourceTree = ""; }; 64C06EB42A0A4A7C00792D4D /* ChatItemInfoView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatItemInfoView.swift; sourceTree = ""; }; 64C3B0202A0D359700E19930 /* CustomTimePicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomTimePicker.swift; sourceTree = ""; }; 64C829982D54AEED006B9E89 /* libgmp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmp.a; sourceTree = ""; }; @@ -786,6 +789,7 @@ 5C2E260D27A30E2400F70299 /* Views */ = { isa = PBXGroup; children = ( + 64C03BF8302F423300072BDE /* Badges */, B76E6C2F2C5C41C300EC11AA /* Contacts */, 5CB0BA8C282711BC00B3292C /* Onboarding */, 3C714775281C080100CB4D4B /* Call */, @@ -798,7 +802,6 @@ 8C7D94982B8894D300B7B9E1 /* Migration */, 5CA8D01B2AD9B076001FD661 /* RemoteAccess */, 5CB924DF27A8678B00ACCCDD /* UserSettings */, - E5BADE0100000000BADE0000 /* Badges */, 5C2E261127A30FEA00F70299 /* TerminalView.swift */, ); path = Views; @@ -907,6 +910,7 @@ 5CA059BD279559F40002BEB4 = { isa = PBXGroup; children = ( + 642E412B3033084000F04EE1 /* BadgeTestProducts.storekit */, E5C0BBFD2F82BBC000EA7527 /* Debug.xcconfig */, E5C0BBFE2F82BBC900EA7527 /* Release.xcconfig */, 5C55A92D283D0FDE00C4E99E /* sounds */, @@ -1201,6 +1205,21 @@ path = Group; sourceTree = ""; }; + 64C03BF8302F423300072BDE /* Badges */ = { + isa = PBXGroup; + children = ( + 64C03BF0302F423300072BDE /* BadgesHowItWorksView.swift */, + 64C03BF1302F423300072BDE /* BadgesPayView.swift */, + 64C03BF2302F423300072BDE /* BadgesRedeemCodeView.swift */, + 64C03BF3302F423300072BDE /* BadgesSupportSimplexView.swift */, + 64C03BF4302F423300072BDE /* BadgeStore.swift */, + 64C03BF5302F423300072BDE /* BadgesYourLevelView.swift */, + 64C03BF6302F423300072BDE /* BadgeUserPreview.swift */, + 64C03BF7302F423300072BDE /* SupportSimpleXBanner.swift */, + ); + path = Badges; + sourceTree = ""; + }; 8C74C3E92C1B909200039E77 /* Theme */ = { isa = PBXGroup; children = ( @@ -1253,20 +1272,6 @@ path = "SimpleX SE"; sourceTree = ""; }; - E5BADE0100000000BADE0000 /* Badges */ = { - isa = PBXGroup; - children = ( - 641377FA3020A5AD0056E083 /* BadgesHowItWorksView.swift */, - 641377FB3020A5AD0056E083 /* BadgesPayView.swift */, - 641377FC3020A5AD0056E083 /* BadgesRedeemCodeView.swift */, - 641377FD3020A5AD0056E083 /* BadgesSupportSimplexView.swift */, - 641377FE3020A5AD0056E083 /* BadgesYourLevelView.swift */, - 641377FF3020A5AD0056E083 /* BadgeUserPreview.swift */, - 641378003020A5AD0056E083 /* SupportSimpleXBanner.swift */, - ); - path = Badges; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ @@ -1631,6 +1636,14 @@ 640417CD2B29B8C200CCB412 /* NewChatMenuButton.swift in Sources */, 5CFE0921282EEAF60002594B /* ZoomableScrollView.swift in Sources */, 5C3A88CE27DF50170060F1C2 /* DetermineWidth.swift in Sources */, + 64C03BF9302F423300072BDE /* BadgesPayView.swift in Sources */, + 64C03BFA302F423300072BDE /* BadgesRedeemCodeView.swift in Sources */, + 64C03BFB302F423300072BDE /* BadgesHowItWorksView.swift in Sources */, + 64C03BFC302F423300072BDE /* BadgeUserPreview.swift in Sources */, + 64C03BFD302F423300072BDE /* BadgeStore.swift in Sources */, + 64C03BFE302F423300072BDE /* SupportSimpleXBanner.swift in Sources */, + 64C03BFF302F423300072BDE /* BadgesYourLevelView.swift in Sources */, + 64C03C00302F423300072BDE /* BadgesSupportSimplexView.swift in Sources */, 5C7505A527B679EE00BE3227 /* NavLinkPlain.swift in Sources */, 5C58BCD6292BEBE600AF9E4F /* CIChatFeatureView.swift in Sources */, 5CB346E72868D76D001FD2EF /* NotificationsView.swift in Sources */, @@ -1722,13 +1735,6 @@ 1841538E296606C74533367C /* UserPicker.swift in Sources */, 18415B0585EB5A9A0A7CA8CD /* PressedButtonStyle.swift in Sources */, 1841560FD1CD447955474C1D /* UserProfilesView.swift in Sources */, - 641378013020A5AD0056E083 /* BadgesRedeemCodeView.swift in Sources */, - 641378023020A5AD0056E083 /* SupportSimpleXBanner.swift in Sources */, - 641378033020A5AD0056E083 /* BadgesHowItWorksView.swift in Sources */, - 641378043020A5AD0056E083 /* BadgesSupportSimplexView.swift in Sources */, - 641378053020A5AD0056E083 /* BadgesYourLevelView.swift in Sources */, - 641378063020A5AD0056E083 /* BadgeUserPreview.swift in Sources */, - 641378073020A5AD0056E083 /* BadgesPayView.swift in Sources */, 64C3B0212A0D359700E19930 /* CustomTimePicker.swift in Sources */, 8CC4ED902BD7B8530078AEE8 /* CallAudioDeviceManager.swift in Sources */, 64A779F62DBFB9F200FDEF2F /* MemberAdmissionView.swift in Sources */, diff --git a/apps/multiplatform/android/src/foss/java/chat/simplex/app/PlayStore.kt b/apps/multiplatform/android/src/foss/java/chat/simplex/app/PlayStore.kt index 181fe42389..bf4a3fb71d 100644 --- a/apps/multiplatform/android/src/foss/java/chat/simplex/app/PlayStore.kt +++ b/apps/multiplatform/android/src/foss/java/chat/simplex/app/PlayStore.kt @@ -1,4 +1,22 @@ package chat.simplex.app +import chat.simplex.common.platform.Log +import chat.simplex.common.views.badges.BadgeProduct +import chat.simplex.common.views.badges.BadgePurchaseOutcome +import chat.simplex.common.views.badges.BadgeStoreError +import chat.simplex.common.views.badges.BadgeStoreProductId + // Play Billing is only in the google flavor, so the Play country stays unknown here fun loadPlayStoreCountry() {} + +// No store in this flavor: no product is offered, so the purchase screen shows nothing to buy +// TODO [badges] this build pays via Stripe/crypto - the badge service catalog replaces these +@Suppress("UNUSED_PARAMETER") +suspend fun loadBadgeProducts(oneTimeIds: List, subscriptionIds: List): List { + Log.w(TAG, "loadBadgeProducts: no store in the foss build, use the google variant to buy from Play") + return emptyList() +} + +@Suppress("UNUSED_PARAMETER") +suspend fun purchaseBadge(id: BadgeStoreProductId, invoiceId: String): BadgePurchaseOutcome = + throw BadgeStoreError.StoreUnavailable diff --git a/apps/multiplatform/android/src/google/java/chat/simplex/app/PlayStore.kt b/apps/multiplatform/android/src/google/java/chat/simplex/app/PlayStore.kt index a0e7734ff0..14e8fc470c 100644 --- a/apps/multiplatform/android/src/google/java/chat/simplex/app/PlayStore.kt +++ b/apps/multiplatform/android/src/google/java/chat/simplex/app/PlayStore.kt @@ -1,8 +1,14 @@ package chat.simplex.app +import chat.simplex.common.platform.Log import chat.simplex.common.platform.androidAppContext import chat.simplex.common.platform.androidPlayStoreCountry +import chat.simplex.common.platform.mainActivity +import chat.simplex.common.views.badges.* import com.android.billingclient.api.* +import kotlinx.coroutines.CompletableDeferred +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.withContext // Requests the country of the Google Play account into [androidPlayStoreCountry]. // It stays null when Play is unavailable or the user is not signed in. @@ -29,3 +35,187 @@ fun loadPlayStoreCountry() { override fun onBillingServiceDisconnected() = client.endConnection() }) } + +// One long-lived client for badges: ProductDetails obtained from it are passed back to it when the +// purchase is launched, and the purchase result arrives on its listener rather than as a return value. +// volatile: the listener is called on the main thread, the purchase runs on a background dispatcher +@Volatile private var badgeBillingClient: BillingClient? = null +@Volatile private var badgeOffers: Map = emptyMap() +@Volatile private var badgePurchase: CompletableDeferred? = null + +// offerToken is null for one-time products, which have no base plan to choose +private class BadgeOffer( + val id: BadgeStoreProductId, + val product: BadgeProduct, + val details: ProductDetails, + val offerToken: String? +) + +suspend fun loadBadgeProducts(oneTimeIds: List, subscriptionIds: List): List { + val client = connectedBadgeBillingClient() + val details = queryBadgeProducts(client, oneTimeIds, BillingClient.ProductType.INAPP) + + queryBadgeProducts(client, subscriptionIds, BillingClient.ProductType.SUBS) + val detailsByProductId = details.associateBy { it.productId } + val ids = oneTimeIds + subscriptionIds + val offers = ids.mapNotNull { id -> + val productDetails = detailsByProductId[id.productId] + if (productDetails == null) { + Log.w(TAG, "loadBadgeProducts: Play returned no product ${id.productId}") + null + } else { + productDetails.badgeOffer(id) + } + } + if (offers.size < ids.size) { + // a debug build's applicationIdSuffix is a common cause of Play not knowing the package + Log.w(TAG, "loadBadgeProducts: ${offers.size} of ${ids.size} resolved - package ${androidAppContext.packageName}, country ${androidPlayStoreCountry.value ?: "none"}") + } + badgeOffers = offers.associateBy { it.id } + return offers.map { it.product } +} + +suspend fun purchaseBadge(id: BadgeStoreProductId, invoiceId: String): BadgePurchaseOutcome { + val activity = mainActivity.get() ?: throw BadgeStoreError.StoreUnavailable + val client = connectedBadgeBillingClient() + val offer = badgeOffers[id] ?: throw BadgeStoreError.ProductUnavailable(id.productId) + val details = offer.details + val productParams = BillingFlowParams.ProductDetailsParams.newBuilder().setProductDetails(details) + offer.offerToken?.let { productParams.setOfferToken(it) } + val params = BillingFlowParams.newBuilder() + .setProductDetailsParamsList(listOf(productParams.build())) + .setObfuscatedAccountId(invoiceId) + .build() + val purchase = CompletableDeferred() + badgePurchase = purchase + try { + val launched = withContext(Dispatchers.Main) { client.launchBillingFlow(activity, params) } + if (launched.responseCode != BillingClient.BillingResponseCode.OK) { + throw BadgeStoreError.BillingError(launched.responseCode, launched.debugMessage) + } + val outcome = purchase.await() + if (outcome is BadgePurchaseOutcome.Purchased) finishBadgePurchase(client, details, outcome.receipt) + return outcome + } finally { + badgePurchase = null + } +} + +private val badgePurchasesUpdatedListener = PurchasesUpdatedListener { result, purchases -> + val pending = badgePurchase ?: return@PurchasesUpdatedListener + when { + result.responseCode == BillingClient.BillingResponseCode.OK && purchases != null -> + pending.complete(badgePurchaseOutcome(purchases)) + result.responseCode == BillingClient.BillingResponseCode.USER_CANCELED -> + pending.complete(BadgePurchaseOutcome.Cancelled) + else -> + pending.completeExceptionally(BadgeStoreError.BillingError(result.responseCode, result.debugMessage)) + } +} + +private fun badgePurchaseOutcome(purchases: List): BadgePurchaseOutcome { + val purchase = purchases.firstOrNull() ?: return BadgePurchaseOutcome.Cancelled + if (purchase.purchaseState == Purchase.PurchaseState.PENDING) return BadgePurchaseOutcome.Pending + return BadgePurchaseOutcome.Purchased( + BadgeStoreReceipt( + token = purchase.purchaseToken, + productId = purchase.products.firstOrNull() ?: "", + orderId = purchase.orderId, + invoiceId = purchase.accountIdentifiers?.obfuscatedAccountId + ) + ) +} + +private suspend fun connectedBadgeBillingClient(): BillingClient { + badgeBillingClient?.let { if (it.isReady) return it } + val client = BillingClient.newBuilder(androidAppContext) + .setListener(badgePurchasesUpdatedListener) + .enablePendingPurchases(PendingPurchasesParams.newBuilder().enableOneTimeProducts().build()) + .build() + val connected = CompletableDeferred() + client.startConnection(object : BillingClientStateListener { + override fun onBillingSetupFinished(result: BillingResult) { + connected.complete(result) + } + + override fun onBillingServiceDisconnected() { + badgeBillingClient = null + connected.complete( + BillingResult.newBuilder().setResponseCode(BillingClient.BillingResponseCode.SERVICE_DISCONNECTED).build() + ) + } + }) + val result = connected.await() + if (result.responseCode != BillingClient.BillingResponseCode.OK) { + client.endConnection() + throw BadgeStoreError.BillingError(result.responseCode, result.debugMessage) + } + badgeBillingClient = client + return client +} + +private suspend fun queryBadgeProducts(client: BillingClient, ids: List, productType: String): List { + // durations of one subscription share a product id, so the same product is queried once + val requested = ids.map { it.productId }.distinct() + val params = QueryProductDetailsParams.newBuilder() + .setProductList( + requested.map { + QueryProductDetailsParams.Product.newBuilder().setProductId(it).setProductType(productType).build() + } + ) + .build() + val queried = CompletableDeferred>() + client.queryProductDetailsAsync(params) { result, productDetailsResult -> + if (result.responseCode == BillingClient.BillingResponseCode.OK) { + queried.complete(productDetailsResult.productDetailsList) + } else { + Log.w(TAG, "queryBadgeProducts: $productType requested $requested, failed ${result.responseCode} ${result.debugMessage}") + queried.complete(emptyList()) + } + } + return queried.await() +} + +private fun ProductDetails.badgeOffer(id: BadgeStoreProductId): BadgeOffer? { + if (id.basePlanId == null) { + val purchase = oneTimePurchaseOfferDetails + if (purchase == null) { + Log.w(TAG, "badgeOffer: ${id.productId} has no one-time purchase price, type is $productType") + return null + } + val product = BadgeProduct(id, purchase.formattedPrice, purchase.priceAmountMicros, purchase.priceCurrencyCode) + return BadgeOffer(id, product, this, offerToken = null) + } + val offer = subscriptionOfferDetails?.firstOrNull { it.basePlanId == id.basePlanId } + if (offer == null) { + Log.w(TAG, "badgeOffer: ${id.productId} has no base plan ${id.basePlanId}, Play has ${subscriptionOfferDetails?.map { it.basePlanId }}") + return null + } + val phase = offer.pricingPhases.pricingPhaseList.firstOrNull { + it.recurrenceMode == ProductDetails.RecurrenceMode.INFINITE_RECURRING + } + if (phase == null) { + Log.w(TAG, "badgeOffer: ${id.productId} base plan ${id.basePlanId} has no recurring price") + return null + } + val product = BadgeProduct(id, phase.formattedPrice, phase.priceAmountMicros, phase.priceCurrencyCode) + return BadgeOffer(id, product, this, offer.offerToken) +} + +// nothing is delivered in this build, so the purchase is finished right away; once the service issues +// credentials it must only be finished after the credential is stored. One-time products are consumed +// so they can be bought again, subscriptions are acknowledged - Play refunds an unacknowledged +// purchase after 3 days. +private suspend fun finishBadgePurchase(client: BillingClient, details: ProductDetails, receipt: BadgeStoreReceipt) { + val done = CompletableDeferred() + if (details.productType == BillingClient.ProductType.SUBS) { + val params = AcknowledgePurchaseParams.newBuilder().setPurchaseToken(receipt.token).build() + client.acknowledgePurchase(params) { done.complete(it) } + } else { + val params = ConsumeParams.newBuilder().setPurchaseToken(receipt.token).build() + client.consumeAsync(params) { result, _ -> done.complete(result) } + } + val result = done.await() + if (result.responseCode != BillingClient.BillingResponseCode.OK) { + Log.e(TAG, "finishBadgePurchase: ${result.responseCode} ${result.debugMessage}") + } +} diff --git a/apps/multiplatform/android/src/main/java/chat/simplex/app/SimplexApp.kt b/apps/multiplatform/android/src/main/java/chat/simplex/app/SimplexApp.kt index ce47d2c5de..9826908e77 100644 --- a/apps/multiplatform/android/src/main/java/chat/simplex/app/SimplexApp.kt +++ b/apps/multiplatform/android/src/main/java/chat/simplex/app/SimplexApp.kt @@ -26,6 +26,9 @@ import chat.simplex.common.model.* import chat.simplex.common.model.ChatController.appPrefs import chat.simplex.common.platform.* import chat.simplex.common.ui.theme.* +import chat.simplex.common.views.badges.BadgeProduct +import chat.simplex.common.views.badges.BadgePurchaseOutcome +import chat.simplex.common.views.badges.BadgeStoreProductId import chat.simplex.common.views.call.* import chat.simplex.common.views.database.deleteOldChatArchive import chat.simplex.common.views.helpers.* @@ -343,6 +346,10 @@ class SimplexApp: Application(), LifecycleEventObserver { override fun androidLoadPlayStoreCountry() = loadPlayStoreCountry() + override suspend fun androidLoadBadgeProducts(oneTimeIds: List, subscriptionIds: List): List = loadBadgeProducts(oneTimeIds, subscriptionIds) + + override suspend fun androidPurchaseBadge(id: BadgeStoreProductId, invoiceId: String): BadgePurchaseOutcome = purchaseBadge(id, invoiceId) + @SuppressLint("SourceLockedOrientationActivity") @Composable override fun androidLockPortraitOrientation() { diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/platform/Platform.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/platform/Platform.kt index b46123c9cf..d857ab974c 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/platform/Platform.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/platform/Platform.kt @@ -9,6 +9,10 @@ import androidx.compose.ui.graphics.Color import chat.simplex.common.model.ChatId import chat.simplex.common.model.NotificationsMode import chat.simplex.common.ui.theme.CurrentColors +import chat.simplex.common.views.badges.BadgeProduct +import chat.simplex.common.views.badges.BadgePurchaseOutcome +import chat.simplex.common.views.badges.BadgeStoreError +import chat.simplex.common.views.badges.BadgeStoreProductId import kotlinx.coroutines.Job import java.io.Closeable @@ -31,6 +35,14 @@ interface PlatformInterface { fun androidIsXiaomiDevice(): Boolean = false // Requests the Google Play account country into [androidPlayStoreCountry] fun androidLoadPlayStoreCountry() {} + // Play Billing, only implemented in the google flavor + // TODO [badges] desktop and foss pay via Stripe/crypto - these defaults leave them without any + // product until that path is implemented + suspend fun androidLoadBadgeProducts(oneTimeIds: List, subscriptionIds: List): List { + Log.w(TAG, "androidLoadBadgeProducts: no store on this platform") + return emptyList() + } + suspend fun androidPurchaseBadge(id: BadgeStoreProductId, invoiceId: String): BadgePurchaseOutcome = throw BadgeStoreError.StoreUnavailable val androidApiLevel: Int? get() = null // The build distributed via Google Play, which has to follow its policies val androidIsPlayStoreBuild: Boolean get() = false diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgeStore.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgeStore.kt new file mode 100644 index 0000000000..f8a37c39a7 --- /dev/null +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgeStore.kt @@ -0,0 +1,187 @@ +package chat.simplex.common.views.badges + +import androidx.compose.runtime.mutableStateOf +import chat.simplex.common.platform.* +import java.text.NumberFormat +import java.util.Currency +import java.util.UUID + +// a subscription is one store product containing a base plan per duration, so a purchasable badge +// is identified by both; one-time products have no base plan +data class BadgeStoreProductId(val productId: String, val basePlanId: String? = null) + +// TODO [badges] ids will come from app config and prices from the badge service catalog; +// hardcoded here so the Play Store integration can be tested before the purchase API lands. +fun badgeStoreProductId(level: BadgeLevel, period: BadgePeriod): BadgeStoreProductId = when (level) { + BadgeLevel.Supporter -> when (period) { + BadgePeriod.OneMonth -> BadgeStoreProductId("badge_supporter_01") + BadgePeriod.Monthly -> BadgeStoreProductId("subscr_badge_supporter_01", "subscr-badge-supporter-month-02") + BadgePeriod.Annual -> BadgeStoreProductId("subscr_badge_supporter_01", "subscr-badge-supporter-year-01") + } + BadgeLevel.Legend -> when (period) { + BadgePeriod.OneMonth -> BadgeStoreProductId("badge_legend_01") + BadgePeriod.Monthly -> BadgeStoreProductId("subscr_badge_legend_01", "subscr-badge-legend-month-01") + BadgePeriod.Annual -> BadgeStoreProductId("subscr_badge_legend_01", "subscr-badge-legend-year-01") + } +} + +val badgeStoreProductIds: List = BadgeLevel.entries.flatMap { level -> + BadgePeriod.entries.map { badgeStoreProductId(level, it) } +} + +// TODO [badges] replaced by APIGetBadgeInvoice, which creates the invoice row and returns its id. +// Sent to Play as obfuscatedAccountId and echoed back on the purchase, which is how the service +// learns which invoice a store transaction settles. +fun newBadgeInvoiceId(): String = UUID.randomUUID().toString() + +// what the platform store knows about one product; ProductDetails cannot cross into commonMain +data class BadgeProduct( + val id: BadgeStoreProductId, + val displayPrice: String, + val priceMicros: Long, + val currencyCode: String +) + +sealed class BadgePrice { + object Loading: BadgePrice() + class Price(val price: String): BadgePrice() + object Unavailable: BadgePrice() + + val canPurchase: Boolean + get() = when (this) { + is Price -> true + is Loading, is Unavailable -> false + } +} + +data class BadgeStoreReceipt( + // the token the badge service verifies with the Publisher API + val token: String, + val productId: String, + val orderId: String?, + val invoiceId: String?, + // only set for test products - a real Play purchase has no environment to report + val environment: String? = null +) + +// TODO [badges] Play Billing has no offline product configuration. Set to true to price the screens +// and walk the purchase flow without Play Console products; the purchase is simulated and its +// receipt says so. +const val useBadgeTestProducts = false + +private fun testProduct(level: BadgeLevel, period: BadgePeriod, priceMicros: Long) = + BadgeProduct(badgeStoreProductId(level, period), "\$${priceMicros / 1_000_000}.00", priceMicros, "USD") + +private val testBadgeProducts: List = listOf( + testProduct(BadgeLevel.Supporter, BadgePeriod.OneMonth, 7_000_000), + testProduct(BadgeLevel.Supporter, BadgePeriod.Monthly, 7_000_000), + testProduct(BadgeLevel.Supporter, BadgePeriod.Annual, 42_000_000), + testProduct(BadgeLevel.Legend, BadgePeriod.OneMonth, 70_000_000), + testProduct(BadgeLevel.Legend, BadgePeriod.Monthly, 70_000_000), + testProduct(BadgeLevel.Legend, BadgePeriod.Annual, 420_000_000) +) + +sealed class BadgePurchaseOutcome { + class Purchased(val receipt: BadgeStoreReceipt): BadgePurchaseOutcome() + object Pending: BadgePurchaseOutcome() + object Cancelled: BadgePurchaseOutcome() +} + +sealed class BadgeStoreError: Exception() { + class ProductUnavailable(val productId: String): BadgeStoreError() + class BillingError(val responseCode: Int, val debugMessage: String): BadgeStoreError() + object StoreUnavailable: BadgeStoreError() + + override val message: String + get() = when (this) { + is ProductUnavailable -> "productUnavailable(productId: $productId)" + is BillingError -> "billingError(responseCode: $responseCode, $debugMessage)" + is StoreUnavailable -> "storeUnavailable" + } +} + +object BadgeStore { + private enum class LoadState { NotLoaded, Loading, Loaded, Failed } + + private val state = mutableStateOf(LoadState.NotLoaded) + // snapshot state so a composable reading only the products still recomposes when they arrive + private val products = mutableStateOf>(emptyMap()) + + fun price(level: BadgeLevel, period: BadgePeriod): BadgePrice = when (state.value) { + LoadState.NotLoaded, LoadState.Loading -> BadgePrice.Loading + LoadState.Loaded, LoadState.Failed -> { + val p = products.value[badgeStoreProductId(level, period)] + if (p != null) BadgePrice.Price(compactPrice(p)) else BadgePrice.Unavailable + } + } + + fun annualSavings(level: BadgeLevel): Int? { + val monthly = products.value[badgeStoreProductId(level, BadgePeriod.Monthly)] ?: return null + val annual = products.value[badgeStoreProductId(level, BadgePeriod.Annual)] ?: return null + val year = monthly.priceMicros * 12 + if (year <= 0 || annual.priceMicros >= year) return null + val percent = Math.round((year - annual.priceMicros).toDouble() / year * 100).toInt() + return if (percent > 0) percent else null + } + + suspend fun load() { + if (!startLoading()) return + try { + // TODO [badges] desktop and the foss build will price from the badge service catalog and pay + // via Stripe/crypto instead of a store; only the google build reaches the platform store + val loaded = if (useBadgeTestProducts) testBadgeProducts else platform.androidLoadBadgeProducts( + oneTimeIds = badgeStoreProductIds.filter { it.basePlanId == null }, + subscriptionIds = badgeStoreProductIds.filter { it.basePlanId != null } + ) + val byId = loaded.associateBy { it.id } + val missing = badgeStoreProductIds.filter { !byId.containsKey(it) } + if (missing.isNotEmpty()) { + Log.w(TAG, "BadgeStore.load: no product returned for ${missing.joinToString(", ")}") + } + products.value = byId + state.value = LoadState.Loaded + } catch (e: Exception) { + Log.e(TAG, "BadgeStore.load: ${e.stackTraceToString()}") + state.value = LoadState.Failed + } + } + + suspend fun purchase(level: BadgeLevel, period: BadgePeriod, invoiceId: String): BadgePurchaseOutcome { + val id = badgeStoreProductId(level, period) + if (!products.value.containsKey(id)) throw BadgeStoreError.ProductUnavailable(id.productId) + if (useBadgeTestProducts) { + return BadgePurchaseOutcome.Purchased( + BadgeStoreReceipt( + token = "test-${UUID.randomUUID()}", + productId = id.productId, + orderId = null, + invoiceId = invoiceId, + environment = "test products" + ) + ) + } + return platform.androidPurchaseBadge(id, invoiceId) + } + + private fun startLoading(): Boolean = when (state.value) { + LoadState.NotLoaded, LoadState.Failed -> { + state.value = LoadState.Loading + true + } + LoadState.Loading, LoadState.Loaded -> false + } +} + +// drops the fraction from whole amounts ("$7", not "$7.00") in the product's own currency; +// BadgeProduct.displayPrice remains the exact form for views that need the cents +private fun compactPrice(product: BadgeProduct): String { + if (product.priceMicros % 1_000_000L != 0L) return product.displayPrice + return try { + val format = NumberFormat.getCurrencyInstance() + format.currency = Currency.getInstance(product.currencyCode) + format.maximumFractionDigits = 0 + format.format(product.priceMicros / 1_000_000L) + } catch (e: Exception) { + product.displayPrice + } +} diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesPayView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesPayView.kt index 742b03e2bd..d7a10f38f7 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesPayView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesPayView.kt @@ -10,6 +10,9 @@ import androidx.compose.runtime.* import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip +import androidx.compose.ui.platform.ClipboardManager +import androidx.compose.ui.platform.LocalClipboardManager +import androidx.compose.ui.text.AnnotatedString import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp @@ -25,24 +28,52 @@ import chat.simplex.res.MR // TODO [badges]: replace with types produced by the badge purchase API when it lands. enum class BadgePeriod { OneMonth, - Subscribe; + Monthly, + Annual; val icon: dev.icerock.moko.resources.ImageResource get() = when (this) { OneMonth -> MR.images.ic_calendar - Subscribe -> MR.images.ic_refresh + Monthly -> MR.images.ic_refresh + Annual -> MR.images.ic_refresh } val label: StringResource get() = when (this) { OneMonth -> MR.strings.badges_period_one_month - Subscribe -> MR.strings.badges_period_subscribe + Monthly -> MR.strings.badges_period_monthly + Annual -> MR.strings.badges_period_annual } + + @Composable + fun priceText(price: BadgePrice): String = when (price) { + is BadgePrice.Loading -> "…" + is BadgePrice.Unavailable -> "—" + is BadgePrice.Price -> when (this) { + OneMonth -> price.price + Monthly -> stringResource(MR.strings.badges_price_monthly).format(price.price) + Annual -> stringResource(MR.strings.badges_price_annual).format(price.price) + } + } + + fun payLabel(price: BadgePrice): Pair = when (price) { + is BadgePrice.Loading -> MR.strings.badges_price_loading to null + is BadgePrice.Unavailable -> MR.strings.badges_price_unavailable to null + is BadgePrice.Price -> when (this) { + OneMonth -> MR.strings.badges_pay_once to price.price + Monthly -> MR.strings.badges_pay_monthly to price.price + Annual -> MR.strings.badges_pay_annual to price.price + } + } } @Composable fun BadgesPayView(level: BadgeLevel) { - var selectedPeriod by remember { mutableStateOf(BadgePeriod.Subscribe) } + var selectedPeriod by remember { mutableStateOf(BadgePeriod.Monthly) } + val purchasing = remember { mutableStateOf(false) } + val clipboard = LocalClipboardManager.current + + LaunchedEffect(Unit) { BadgeStore.load() } ColumnWithScrollBar( Modifier.background(MaterialTheme.colors.background).padding(horizontal = 25.dp).padding(top = 8.dp, bottom = 20.dp), @@ -69,24 +100,25 @@ fun BadgesPayView(level: BadgeLevel) { modifier = Modifier.fillMaxWidth().padding(top = 4.dp) ) - Spacer(Modifier.weight(1f).heightIn(min = 20.dp)) + Spacer(Modifier.weight(1f).heightIn(min = 8.dp)) - // IntrinsicSize.Max + fillMaxHeight on children so both cards match the taller card's height - // when 2-line labels at large fonts would otherwise size them differently. + // IntrinsicSize.Max + fillMaxHeight on children so all three cards match the tallest one - + // only Annual carries a savings line, and prices wrap at large fonts. Row( Modifier.fillMaxWidth().height(IntrinsicSize.Max), horizontalArrangement = Arrangement.spacedBy(12.dp) ) { - PeriodCard(BadgePeriod.OneMonth, selectedPeriod, Modifier.weight(1f).fillMaxHeight()) { selectedPeriod = it } - PeriodCard(BadgePeriod.Subscribe, selectedPeriod, Modifier.weight(1f).fillMaxHeight()) { selectedPeriod = it } + PeriodCard(level, BadgePeriod.OneMonth, selectedPeriod, Modifier.weight(1f).fillMaxHeight()) { selectedPeriod = it } + PeriodCard(level, BadgePeriod.Monthly, selectedPeriod, Modifier.weight(1f).fillMaxHeight()) { selectedPeriod = it } + PeriodCard(level, BadgePeriod.Annual, selectedPeriod, Modifier.weight(1f).fillMaxHeight()) { selectedPeriod = it } } - Spacer(Modifier.weight(1f).heightIn(min = 20.dp)) + Spacer(Modifier.weight(1f).heightIn(min = 8.dp)) // Replicates TextButtonBelowOnboardingButton spacing (7.5dp outer + 5dp inner) without a // TextButton so the footer has no hover/click affordance. Column(horizontalAlignment = Alignment.CenterHorizontally) { - PayButton(level, selectedPeriod) + PayButton(level, selectedPeriod, purchasing, clipboard) Box(Modifier.padding(top = 7.5.dp, bottom = 7.5.dp).padding(horizontal = 16.dp, vertical = 8.dp)) { Text( stringResource(billingFooter(selectedPeriod)).format(stubBillingDate()), @@ -101,7 +133,7 @@ fun BadgesPayView(level: BadgeLevel) { } @Composable -private fun PeriodCard(period: BadgePeriod, selectedPeriod: BadgePeriod, modifier: Modifier, onSelect: (BadgePeriod) -> Unit) { +private fun PeriodCard(level: BadgeLevel, period: BadgePeriod, selectedPeriod: BadgePeriod, modifier: Modifier, onSelect: (BadgePeriod) -> Unit) { val isSelected = period == selectedPeriod val borderColor = if (isSelected) MaterialTheme.colors.primary else MaterialTheme.colors.background.mixWith(MaterialTheme.colors.onBackground, 0.92f) // Light: transparent so card matches page background. Dark: subtle gray tint for visible contrast. @@ -114,7 +146,7 @@ private fun PeriodCard(period: BadgePeriod, selectedPeriod: BadgePeriod, modifie .background(cardBackground, shape) .border(2.dp, borderColor, shape) .clickable { onSelect(period) } - .padding(vertical = 30.dp, horizontal = 12.dp), + .padding(vertical = 20.dp, horizontal = 12.dp), horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.spacedBy(12.dp) ) { @@ -125,24 +157,97 @@ private fun PeriodCard(period: BadgePeriod, selectedPeriod: BadgePeriod, modifie modifier = Modifier.size(32.dp) ) Text(stringResource(period.label), style = MaterialTheme.typography.h3, fontWeight = FontWeight.Bold, textAlign = TextAlign.Center) + Text(period.priceText(BadgeStore.price(level, period)), style = MaterialTheme.typography.body1, textAlign = TextAlign.Center) + val percent = savingsPercent(level, period) + if (percent != null) { + Text( + stringResource(MR.strings.badges_savings).format("${percent}%"), + style = MaterialTheme.typography.body2, + color = if (isSelected) MaterialTheme.colors.primary else MaterialTheme.colors.secondary, + textAlign = TextAlign.Center + ) + } } } +private fun savingsPercent(level: BadgeLevel, period: BadgePeriod): Int? = + if (period == BadgePeriod.Annual) BadgeStore.annualSavings(level) else null + +// TODO [badges] on desktop and the foss build there is no store, so every price is Unavailable and +// this button stays disabled - it will offer Stripe/crypto payment instead @Composable -private fun PayButton(level: BadgeLevel, selectedPeriod: BadgePeriod) { +private fun PayButton(level: BadgeLevel, selectedPeriod: BadgePeriod, purchasing: MutableState, clipboard: ClipboardManager) { + val price = BadgeStore.price(level, selectedPeriod) + val (labelId, labelArg) = selectedPeriod.payLabel(price) OnboardingActionButton( modifier = if (appPlatform.isAndroid) Modifier.padding(horizontal = DEFAULT_ONBOARDING_HORIZONTAL_PADDING).fillMaxWidth() else Modifier.widthIn(min = 300.dp), - labelId = if (selectedPeriod == BadgePeriod.Subscribe) MR.strings.badges_pay_monthly else MR.strings.badges_pay_once, - labelArg = level.priceAmount, + labelId = labelId, + labelArg = labelArg, onboarding = null, - onclick = { - // TODO [badges] wire to purchase API when it lands. + enabled = price.canPurchase && !purchasing.value, + onclick = { purchase(level, selectedPeriod, purchasing, clipboard) } + ) +} + +private fun purchase(level: BadgeLevel, period: BadgePeriod, purchasing: MutableState, clipboard: ClipboardManager) { + val invoiceId = newBadgeInvoiceId() + purchasing.value = true + // not withBGApi: the purchase waits for the user in the Play sheet and would block chat API calls + withLongRunningApi { + try { + val outcome = BadgeStore.purchase(level, period, invoiceId) + purchasing.value = false + when (outcome) { + is BadgePurchaseOutcome.Purchased -> showPurchasedAlert(outcome.receipt, invoiceId, clipboard) + is BadgePurchaseOutcome.Pending -> AlertManager.shared.showAlertMsg( + title = generalGetString(MR.strings.badges_purchase_pending), + text = generalGetString(MR.strings.badges_purchase_pending_desc) + ) + is BadgePurchaseOutcome.Cancelled -> {} + } + } catch (e: Exception) { + Log.e(TAG, "BadgesPayView.purchase: ${e.stackTraceToString()}") + purchasing.value = false + AlertManager.shared.showAlertMsg( + title = generalGetString(MR.strings.badges_purchase_error), + text = e.toString() + ) } + } +} + +// TODO [badges] store integration diagnostics - replaced by the issued badge once the service lands. +private fun showPurchasedAlert(receipt: BadgeStoreReceipt, invoiceId: String, clipboard: ClipboardManager) { + val returnedInvoice = when (receipt.invoiceId) { + null -> "none" + invoiceId -> "yes" + else -> "mismatch: ${receipt.invoiceId}" + } + val lines = mutableListOf( + "Product: ${receipt.productId}", + "Invoice: $invoiceId", + "Invoice returned by Google: $returnedInvoice", + "Order: ${receipt.orderId ?: "none"}" + ) + if (receipt.environment != null) lines.add("Environment: ${receipt.environment}") + lines.add("Token: ${receipt.token.length} bytes") + val summary = lines.joinToString("\n") + Log.d(TAG, "badge purchase succeeded\n$summary") + AlertManager.shared.showAlertDialog( + title = generalGetString(MR.strings.badges_purchase_successful), + text = summary, + confirmText = "Copy token", + onConfirm = { + clipboard.setText(AnnotatedString(receipt.token)) + showToast(generalGetString(MR.strings.copied)) + }, + dismissText = generalGetString(MR.strings.ok), + parseHtml = false ) } private fun billingFooter(period: BadgePeriod): StringResource = when (period) { - BadgePeriod.Subscribe -> MR.strings.badges_billing_footer_subscribe + BadgePeriod.Monthly, BadgePeriod.Annual -> MR.strings.badges_billing_footer_subscribe BadgePeriod.OneMonth -> MR.strings.badges_billing_footer_one_month } diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesSupportSimplexView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesSupportSimplexView.kt index aa8100519b..099954a4f1 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesSupportSimplexView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesSupportSimplexView.kt @@ -33,6 +33,9 @@ import chat.simplex.res.MR @Composable fun BadgesSupportSimplexView() { // TODO [badges] gate on user badge status (no badge → this view, active → "Manage your badge") + // preloaded here so the level screen shows store prices without a placeholder pass + LaunchedEffect(Unit) { BadgeStore.load() } + ColumnWithScrollBar( Modifier.background(MaterialTheme.colors.background).padding(horizontal = 25.dp).padding(top = 8.dp, bottom = 20.dp), verticalArrangement = Arrangement.spacedBy(16.dp), diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesYourLevelView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesYourLevelView.kt index 03082526a0..c77e4dd61e 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesYourLevelView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesYourLevelView.kt @@ -40,12 +40,6 @@ enum class BadgeLevel { Legend -> MR.strings.badges_level_legend_files } - val priceAmount: String - get() = when (this) { - Supporter -> "$7" - Legend -> "$70" - } - val tagline: StringResource get() = when (this) { Supporter -> MR.strings.badges_level_supporter_tagline @@ -63,6 +57,8 @@ enum class BadgeLevel { fun BadgesYourLevelView() { var selectedLevel by remember { mutableStateOf(BadgeLevel.Supporter) } + LaunchedEffect(Unit) { BadgeStore.load() } + ColumnWithScrollBar( Modifier.background(MaterialTheme.colors.background).padding(horizontal = 25.dp).padding(top = 8.dp, bottom = 20.dp), verticalArrangement = Arrangement.spacedBy(16.dp), @@ -139,7 +135,7 @@ private fun LevelCard(level: BadgeLevel, selectedLevel: BadgeLevel, modifier: Mo ) Text(stringResource(level.title), style = MaterialTheme.typography.h3, fontWeight = FontWeight.Bold, textAlign = TextAlign.Center) Text(stringResource(level.filesDescription), style = MaterialTheme.typography.body2, color = MaterialTheme.colors.secondary, textAlign = TextAlign.Center) - Text(stringResource(MR.strings.badges_price_monthly).format(level.priceAmount), style = MaterialTheme.typography.body1, textAlign = TextAlign.Center) + Text(BadgePeriod.Monthly.priceText(BadgeStore.price(level, BadgePeriod.Monthly)), style = MaterialTheme.typography.body1, textAlign = TextAlign.Center) } } diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/base/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/base/strings.xml index 8683af1705..046d490863 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/base/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/base/strings.xml @@ -3206,12 +3206,18 @@ Send 2GB files Send 5GB files %1$s/month + %1$s/year Pay %1$s/month + Pay %1$s/year Pay %1$s + Loading… + Not available + Save %1$s Optional profile badge\nand 2GB files Optional profile badge\nand 5GB files 1 month - Subscribe + Monthly + Annual Renews on %1$s. Cancel anytime. Ends on %1$s. Your level @@ -3230,6 +3236,10 @@ Support SimpleX Get badge + files up to 5GB You can support SimpleX later in Settings. + Purchase successful + Purchase pending + The purchase is awaiting approval. This build does not deliver purchases approved later. + Purchase error Supporter perks Supporter badge ❤️ Help keep the network running — send files up to 2 GB. From 352550089ff533655c93638e65851c0eb8f213c3 Mon Sep 17 00:00:00 2001 From: Evgeny Date: Mon, 17 Aug 2026 19:25:18 +0100 Subject: [PATCH 05/62] core: client and service schema for badge purchases (#7358) * core: client and service schema for badge purchases * simplify api, receipt is payment type * split invoice * update --------- Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com> --- .../BadgeService/Store/Postgres/Migrations.hs | 26 +- .../BadgeService/Store/SQLite/Migrations.hs | 24 +- docs/protocol/badges-rpc.md | 10 +- docs/protocol/badges-rpc.schema.json | 59 ++-- .../2026-07-31-badges-core-implementation.md | 14 +- simplex-chat.cabal | 6 +- src/Simplex/Chat/Badges/Service.hs | 58 +--- .../Chat/Badges/{Store.hs => Types.hs} | 15 +- src/Simplex/Chat/PaymentService.hs | 31 ++ src/Simplex/Chat/PaymentService/Types.hs | 74 +++++ .../Migrations/M20260731_user_badges.hs | 227 ++++++++++++++ .../Migrations/M20260731_user_badges.hs | 281 +++++++++++------- 12 files changed, 586 insertions(+), 239 deletions(-) rename src/Simplex/Chat/Badges/{Store.hs => Types.hs} (94%) create mode 100644 src/Simplex/Chat/PaymentService.hs create mode 100644 src/Simplex/Chat/PaymentService/Types.hs create mode 100644 src/Simplex/Chat/Store/Postgres/Migrations/M20260731_user_badges.hs diff --git a/apps/simplex-badge-service/src/BadgeService/Store/Postgres/Migrations.hs b/apps/simplex-badge-service/src/BadgeService/Store/Postgres/Migrations.hs index a4bc3396bf..1ff157f70c 100644 --- a/apps/simplex-badge-service/src/BadgeService/Store/Postgres/Migrations.hs +++ b/apps/simplex-badge-service/src/BadgeService/Store/Postgres/Migrations.hs @@ -1,11 +1,12 @@ {-# LANGUAGE NamedFieldPuns #-} +{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE QuasiQuotes #-} module BadgeService.Store.Postgres.Migrations (badgeServiceSchemaMigrations) where import Data.List (sortOn) import Data.Text (Text) -import qualified Data.Text as T +import Simplex.Chat.Store.Postgres.Migrations.M20260731_user_badges (badgeSchema, badgeSchemaDown, withPrefix) import Simplex.Messaging.Agent.Store.Shared (Migration (..)) import Text.RawString.QQ (r) @@ -19,19 +20,18 @@ schemaMigrations = [ ("20260806_badge_service_schema", m20260806_badge_service_schema, Just down_m20260806_badge_service_schema) ] +-- the client tables are in the same database, so the service tables are the same names with this prefix +servicePrefix :: Text +servicePrefix = "sx_badge_service_" + m20260806_badge_service_schema :: Text m20260806_badge_service_schema = - T.pack - [r| -CREATE TABLE sx_badge_service_test( - test_id BIGINT PRIMARY KEY GENERATED ALWAYS AS IDENTITY, - created_at TIMESTAMPTZ NOT NULL DEFAULT (now()) -); - |] + badgeSchema servicePrefix + <> withPrefix + servicePrefix + [r| +ALTER TABLE @payments ADD COLUMN receipt_hash BYTEA; +|] down_m20260806_badge_service_schema :: Text -down_m20260806_badge_service_schema = - T.pack - [r| -DROP TABLE sx_badge_service_test; - |] +down_m20260806_badge_service_schema = badgeSchemaDown servicePrefix diff --git a/apps/simplex-badge-service/src/BadgeService/Store/SQLite/Migrations.hs b/apps/simplex-badge-service/src/BadgeService/Store/SQLite/Migrations.hs index 8404f135db..eb3d5a0e64 100644 --- a/apps/simplex-badge-service/src/BadgeService/Store/SQLite/Migrations.hs +++ b/apps/simplex-badge-service/src/BadgeService/Store/SQLite/Migrations.hs @@ -1,11 +1,14 @@ {-# LANGUAGE NamedFieldPuns #-} +{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE QuasiQuotes #-} module BadgeService.Store.SQLite.Migrations (badgeServiceSchemaMigrations) where import Data.List (sortOn) +import Data.Text (Text) import Database.SQLite.Simple (Query (..)) import Database.SQLite.Simple.QQ (sql) +import Simplex.Chat.Store.SQLite.Migrations.M20260731_user_badges (badgeSchema, badgeSchemaDown, withPrefix) import Simplex.Messaging.Agent.Store.Shared (Migration (..)) badgeServiceSchemaMigrations :: [Migration] @@ -18,17 +21,18 @@ schemaMigrations = [ ("20260806_badge_service_schema", m20260806_badge_service_schema, Just down_m20260806_badge_service_schema) ] +-- the client tables are in the same database, so the service tables are the same names with this prefix +servicePrefix :: Text +servicePrefix = "sx_badge_service_" + m20260806_badge_service_schema :: Query m20260806_badge_service_schema = - [sql| -CREATE TABLE sx_badge_service_test( - test_id INTEGER PRIMARY KEY AUTOINCREMENT, - created_at TEXT NOT NULL DEFAULT(datetime('now')) -); - |] + badgeSchema servicePrefix + <> withPrefix + servicePrefix + [sql| +ALTER TABLE @payments ADD COLUMN receipt_hash BLOB; +|] down_m20260806_badge_service_schema :: Query -down_m20260806_badge_service_schema = - [sql| -DROP TABLE sx_badge_service_test; - |] +down_m20260806_badge_service_schema = badgeSchemaDown servicePrefix diff --git a/docs/protocol/badges-rpc.md b/docs/protocol/badges-rpc.md index 635b2d8e7c..7ce3b78b34 100644 --- a/docs/protocol/badges-rpc.md +++ b/docs/protocol/badges-rpc.md @@ -12,7 +12,7 @@ A request is an envelope: `version` — the client's protocol version; `purchase Each purchase runs under a fresh Ed25519 key pair; `purchaseKey` is its public part and identifies the badge. The service cannot link purchases of one user; the exceptions are the declared upgrades below. `getBadgeCatalog` may omit `purchaseKey`: unsigned, it returns the catalog alone; signed, its response adds the purchase's `badgeStatement` — a client holding a lapsed badge checks for credits in the same request that prices a new purchase, and buys under a fresh key only when the statement shows none. Every other command requires the key and is signed with it. The agent delivers the verified signer key alongside the request; the service rejects a `purchaseKey` that differs from it with `bad_request`, and a key it holds no record of with `unknown_purchase_key`. -A purchase record is created by `getBadgeInvoice`, or by `purchaseBadge` funded with `apple`, `google`, or `code`; `transferBadge` creates the receiving one (post-MVP). +A purchase record is created by `getBadgeInvoice`, or by `purchaseBadge` funded with `apple`, `google`, `code`, or `receipt`. ## Idempotency @@ -22,19 +22,19 @@ A timeout hides the outcome, so the client repeats the identical signed request - `purchaseBadge` — a payment already credited returns the same `badgeCredential` and writes nothing. - `upgradeBadgeSubscription` — evidence already applied returns the same result and writes nothing. - `issueBadge` — repeated within an issued period, returns the cached credential and writes nothing. -- `transferBadge` — a receipt used by the same key returns the same result; used by another key, `receipt_used`. +- `purchaseBadge` with a `receipt` — presented again by the same key it returns the same result; presented by another key, `receipt_used`. ## Commands `purchaseBadge`, `upgradeBadgeSubscription`, and `issueBadge` carry `badgeRequest`, the signer's input (`BadgeRequest`, `Simplex.Chat.Badges`): the service signs exactly this content or rejects the command. The proposed `badgeExpiry` is capped by the funded coverage (`sundayAfter`, model §3); its absence requests a lifetime credential; `badgeExtra` is reserved and must be empty. - `getBadgeCatalog` → `badgeCatalog` — the prices and offers; signed, also the purchase's `badgeStatement`. Store builds never send it: prices come from the store and SKUs from app config. -- `getBadgeInvoice` → `badgeInvoice` — prices the purchase for `badgeInfo` and `paymentVia` (`card` — Stripe; `crypto` — btc, xmr): `badgeType`, `months`, `price`, `discount`, the upgrade `credit`, `amount` = price − discount − credit, `expiresAt`, and `paymentTo` — `url` for card; `address` and `cryptoAmount` for crypto. `priceId` pins the price the client displayed; `offerId` selects a discounted duration, and its absence buys one month at that price. Price and offer status is checked here only: `deprecated` is still accepted, `disabled` is rejected; a badge type with no active price yields `product_unavailable`. -- `purchaseBadge` → `badgeCredential` — verifies the funding (`apple` JWS offline; `google` token via the Publisher API; `invoice` against webhook-confirmed settlement, `payment_pending` until it lands; `code`), records the credit, and issues the first credential, in one round trip. `receipt` is the recovery bearer secret (model § recovery); the service stores its hash; lifetime badges receive none. +- `getBadgeInvoice` → `badgeInvoice` — prices the purchase for `badgeInfo` and `paymentVia` (`card` — Stripe; `crypto` — btc, xmr). The response holds the generic `invoice` — `invoiceId`, `price`, `discount`, the upgrade `credit`, `amount` = price − discount − credit, `currency`, `expiresAt`, and `paymentTo` (`url` for card; `address` and `cryptoAmount` for crypto) — beside the badge part, `badgeType` and `months`. `priceId` pins the price the client displayed; `offerId` selects a discounted duration, and its absence buys one month at that price. Price and offer status is checked here only: `deprecated` is still accepted, `disabled` is rejected; a badge type with no active price yields `product_unavailable`. +- `purchaseBadge` → `badgeCredential` — verifies the funding (`apple` JWS offline; `google` token via the Publisher API; `invoice` against webhook-confirmed settlement, `payment_pending` until it lands; `code`; `receipt`), records the credit, and issues the first credential, in one round trip. The response `receipt` is the recovery bearer secret (model § recovery); the service stores its hash; lifetime badges receive none. + - Funding by `receipt` is a transfer (post-MVP): the unissued months of the purchase that receipt belongs to move to the signing key, recorded as `debit(transferOut)` on the source and `credit(transferIn)` on the new purchase, and the presented receipt is retired for a fresh one. The transferred period's issuance debits a month like any other. Lifetime badges hold no receipt, so support handles them. - `upgradeBadgeSubscription` → `badgeCredential` — the app-led store subscription change, on the same key: verifies the store evidence of the replaced subscription and records the new plan; an immediate upgrade returns the new credential, a deferred change returns none. - `issueBadge` → `badgeCredential` — issues the next period from the balance, the only source of issuance. The ledger is advanced first; the credential is signed before the `debit(badge)` and issuance rows are written, in one transaction. An exhausted balance yields no `credential`; the `statement` shows why. Issuing on a paused badge resumes it (model 2.13). - `pauseBadge` (post-MVP) → `badgeCredential` — suspends issuance and lapse (model 2.13). -- `transferBadge` (post-MVP) → `badgeCredential` — the receipt moves the remaining balance and the provider binding to the signing key; the transferred period's re-issue debits a month, and the response holds a fresh receipt, retiring the presented one. Lifetime badges are not transferable by the command — support handles them. ## Upgrades diff --git a/docs/protocol/badges-rpc.schema.json b/docs/protocol/badges-rpc.schema.json index 2caa3408e2..00ecc69874 100644 --- a/docs/protocol/badges-rpc.schema.json +++ b/docs/protocol/badges-rpc.schema.json @@ -67,6 +67,29 @@ } } }, + "invoice": { + "properties": { + "invoiceId": {"type": "string"}, + "price": {"ref": "currencyAmount"}, + "amount": { + "ref": "currencyAmount", + "metadata": {"comment": "price - discount - credit"} + }, + "currency": {"type": "string"}, + "expiresAt": {"type": "timestamp"}, + "paymentTo": {"ref": "paymentTo"} + }, + "optionalProperties": { + "discount": { + "ref": "currencyAmount", + "metadata": {"comment": "discount amount from the price"} + }, + "credit": { + "ref": "currencyAmount", + "metadata": {"comment": "credit for upgrade"} + } + } + }, "payment": { "discriminator": "type", "mapping": { @@ -81,6 +104,14 @@ }, "code": { "properties": {"code": {"type": "string"}} + }, + "receipt": { + "properties": { + "receipt": { + "type": "string", + "metadata": {"comment": "transfer of unissued months"} + } + } } } }, @@ -297,12 +328,6 @@ }, "pauseBadge": { "optionalProperties": {} - }, - "transferBadge": { - "properties": { - "badgeRequest": {"ref": "badgeRequest"}, - "receipt": {"type": "string"} - } } } }, @@ -322,27 +347,9 @@ }, "badgeInvoice": { "properties": { - "invoiceId": {"type": "string"}, + "invoice": {"ref": "invoice"}, "badgeType": {"type": "string"}, - "months": {"type": "uint8"}, - "price": {"ref": "currencyAmount"}, - "amount": { - "ref": "currencyAmount", - "metadata": {"comment": "price - discount - credit"} - }, - "currency": {"type": "string"}, - "expiresAt": {"type": "timestamp"}, - "paymentTo": {"ref": "paymentTo"} - }, - "optionalProperties": { - "discount": { - "ref": "currencyAmount", - "metadata": {"comment": "discount amount from monthly price"} - }, - "credit": { - "ref": "currencyAmount", - "metadata": {"comment": "credit for upgrade"} - } + "months": {"type": "uint8"} } }, "badgeCredential": { diff --git a/plans/2026-07-31-badges-core-implementation.md b/plans/2026-07-31-badges-core-implementation.md index 4928522b97..6a143cd022 100644 --- a/plans/2026-07-31-badges-core-implementation.md +++ b/plans/2026-07-31-badges-core-implementation.md @@ -3,7 +3,7 @@ **Date:** 2026-07-31 **Product plan:** `plans/2026-07-30-supporter-badges-v3-ux.md` (referenced below as UX §n) **Transport:** service RPC (`plans/2026-07-22-service-rpc-chat.md`, implemented, branch `rpc`) -**Scope:** MVP launch set (UX §7): commands `getBadgeCatalog | getBadgeInvoice | purchaseBadge | issueBadge` implemented; `upgradeBadgeSubscription | pauseBadge | transferBadge` are defined in the protocol, post-MVP; no `use_from`, `paused_at`. +**Scope:** MVP launch set (UX §7): commands `getBadgeCatalog | getBadgeInvoice | purchaseBadge | issueBadge` implemented; `upgradeBadgeSubscription | pauseBadge` and the `receipt` payment are defined in the protocol, post-MVP; no `use_from`, `paused_at`. ## 1. Client schema @@ -79,7 +79,7 @@ The protocol entry (`StatementEntry`, §4): `entryId`, `changeMonths`, `balanceM ## 3. Client types -Domain types — `src/Simplex/Chat/Badges/Store.hs`. Records: +Domain types — `src/Simplex/Chat/Badges/Types.hs`. Records: - `BadgePurchase` - `BadgePayment` @@ -126,6 +126,7 @@ Protocol types — `src/Simplex/Chat/Badges/Service.hs`, one constructor/field p - `BadgeServiceRequest` - `BadgeServiceCommand` - `ServicePaymentMethod` +- `ServiceInvoice` - `CardProvider` - `CryptoCurrency` - `CurrencyAmount` @@ -159,12 +160,11 @@ A request is an envelope: `version`; `purchaseKey`? (optional for `getBadgeCatal | request `type` | request fields (beyond `purchaseKey`, `version`) | response `type` | response fields | |---|---|---|---| | `getBadgeCatalog` (signature optional) | — | `badgeCatalog` | `catalog`
`badgeStatement`? (for signed requests) | -| `getBadgeInvoice` | `priceId`
`offerId`? (absent for 1 month at the badge price)
`badgeInfo {badgeType, badgeExpiry?, badgeExtra}`
`paymentVia` — `card`: `provider`; `crypto`: `currency`
`upgrade`? — `fromPurchaseKey`, `receipt`, `receiptSignature`, `balance` | `badgeInvoice` | `invoiceId`
`badgeType`
`months`
`price`
`discount`?
`credit`?
`amount` (= price − discount − credit)
`currency`
`expiresAt`
`paymentTo` — `card`: `provider`, `url`; `crypto`: `currency`, `address`, `cryptoAmount` | -| `purchaseBadge` | `badgeRequest` — `masterKey`, `badgeInfo`
`payment` — `apple`: `jws`; `google`: `token`; `invoice`: `invoiceId`; `code`: `code`
`upgrade`? — `fromPurchaseKey`, `receipt`, `receiptSignature`, `balance` | `badgeCredential` | `credential`
`receipt`? (not provided for lifetime badges)
`statement` | +| `getBadgeInvoice` | `priceId`
`offerId`? (absent for 1 month at the badge price)
`badgeInfo {badgeType, badgeExpiry?, badgeExtra}`
`paymentVia` — `card`: `provider`; `crypto`: `currency`
`upgrade`? — `fromPurchaseKey`, `receipt`, `receiptSignature`, `balance` | `badgeInvoice` | `invoice` — `invoiceId`, `price`, `discount`?, `credit`?, `amount` (= price − discount − credit), `currency`, `expiresAt`, `paymentTo` — `card`: `provider`, `url`; `crypto`: `currency`, `address`, `cryptoAmount`
`badgeType`
`months` | +| `purchaseBadge` | `badgeRequest` — `masterKey`, `badgeInfo`
`payment` — `apple`: `jws`; `google`: `token`; `invoice`: `invoiceId`; `code`: `code`; `receipt`: `receipt` (transfer, post-MVP)
`upgrade`? — `fromPurchaseKey`, `receipt`, `receiptSignature`, `balance` | `badgeCredential` | `credential`
`receipt`? (not provided for lifetime badges)
`statement` | | `upgradeBadgeSubscription` | `badgeRequest`
`payment` — `apple`: `jws`; `google`: `token`
`balance` | `badgeCredential` | `credential`?
`statement` | | `issueBadge` | `badgeRequest`
`balance` | `badgeCredential` | `credential`? (absent when the balance is exhausted)
`statement` | | `pauseBadge` (post-MVP) | — | `badgeCredential` | `credential`?
`statement` | -| `transferBadge` (post-MVP) | `badgeRequest`
`receipt` | `badgeCredential` | `credential`
`receipt`?
`statement` | | any, on failure | — | `error` | `code` (incl. `payment_pending`, `code_invalid` / `code_used` / `code_expired`)
`message`?
`retryAfter`? | `statement` — record: `entries` — ledger entries; `previousEntryId`? — matches the client's asserted entryId, absent for the full ledger. @@ -219,7 +219,7 @@ Purchase is two commands because the store purchase runs in the app between them - `APIGetBadgeInvoice` starts every purchase: core loads or creates the live purchase row for the badge type's slot (per-user lock + `idx_badge_purchases_live`) — a `failed` row of the same slot is reused — creates the payment row, and points the badge row's `payment_id` at it (UX §3: the current payment). For `card` and `crypto` core sends `getBadgeInvoice` with the pinned `priceId` and the `offerId` of the chosen duration, and responds with the invoice — the Stripe link or the crypto screen data (UX 2.1). For `apple` and `google` core writes the rows, generates the invoice id itself, and sends nothing, since prices come from the store and SKUs from app config (§4); the app states the store because core is the same on both platforms. The invoice fields are stored on the payment row (§1), so pending-payment screens re-render after a restart; after invoice expiry a new `APIGetBadgeInvoice` creates a new invoice and payment row (UX 2.1). - The app passes the invoice id to the store as the account token — Apple `Product.PurchaseOption.appAccountToken` (a UUID, echoed in the signed transaction), Google `BillingFlowParams.setObfuscatedAccountId` — so the store transaction states which payment it settles, and the service reads it from the verified store payload at `purchaseBadge`. - `APIPurchaseBadge` completes a store purchase — the only payment whose result is delivered to the app: the store hands the app the evidence, and only that evidence ties the store transaction to the purchase, because the store flow knows neither purchase keys nor the service. Core records it on the payment row; the worker sends `purchaseBadge` — the service verifies, records the credit, and issues in one round trip (§6). Card and crypto payments need no completion command and carry no evidence: the service records their settlement from the provider webhook (UX §7 notifications); the worker's next `issueBadge` returns the credential, or `payment_pending` until the webhook arrives (§4). -- `APIPurchaseBadge` with a `code` sends the same `purchaseBadge` under the user lock, and differs only in the order of the writes: keys are generated first, and the badge and payment rows (`provider = code`, `price_id` and `offer_id` NULL) are written on success in one transaction, directly `issued`, because the badge type — and with it the slot — is stated in the response (UX 2.8). A live row of the granted slot is superseded (at most two badges per profile, UX 2.7); its unconsumed months stay on its purchase — purchases are unlinkable, so the service cannot move them; recovery per UX §3 (`transferBadge`, post-MVP). On a timeout the error is surfaced to the user; a code consumed by a lost response is restored by support (codes tooling, delivery 7). +- `APIPurchaseBadge` with a `code` sends the same `purchaseBadge` under the user lock, and differs only in the order of the writes: keys are generated first, and the badge and payment rows (`provider = code`, `price_id` and `offer_id` NULL) are written on success in one transaction, directly `issued`, because the badge type — and with it the slot — is stated in the response (UX 2.8). A live row of the granted slot is superseded (at most two badges per profile, UX 2.7); its unconsumed months stay on its purchase — purchases are unlinkable, so the service cannot move them; recovery per UX §3 (the `receipt` payment, post-MVP). On a timeout the error is surfaced to the user; a code consumed by a lost response is restored by support (codes tooling, delivery 7). - `APIGetBadgeState` loads the badge state into the app model at start (and on profile switch); events only update the model afterward, so without the initial read it would hold nothing at first render — the 2.2 banner is rendered from it. It reads stored state and sends nothing itself. The same call re-reads state when a badge screen is opened or regains focus, and signals the worker (§6); reconciliation results follow as `CEvtBadgeChanged`. Screen re-focus covers the returns that fire no core trigger: the store cancellation sheet close — UX §7 "the engine sends `status` on return"; the in-app sheet fires no foreground trigger — and return to a pending-payment screen after payment (UX 2.1), which on desktop produces no foreground event either. `ChatResponse`: @@ -392,7 +392,7 @@ Each UX plan point and its implementation home: | §3 catalog rules | `badge_prices` / `badge_offers`; reconciliation (delivery 4) | | §3 payments, charges | §1; the statement's payments and charges (§4) | | §3 ledger, issuances | replicas (§1); the `balance` assertion and the `opening` restatement (§4); service transitions (delivery 7); tests (delivery 8) | -| §3 recovery | `payments.receipt_code`; signed `getBadgeCatalog` after restore (worker); capped store re-bind at `purchaseBadge` (delivery 7); `transferBadge` post-MVP | +| §3 recovery | `payments.receipt_code`; signed `getBadgeCatalog` after restore (worker); capped store re-bind at `purchaseBadge` (delivery 7); the `receipt` payment post-MVP | | §4 wire protocol | `Badges/Service.hs`; `docs/protocol` | | §5 providers | delivery 7; the §5 command bullets | | §6 decisions 11–14 | 11 — `renews_at` / `cancelled` / charges kept; 12 — catalog seed (delivery 2); 13 — `sundayAfter`; 14 — `paidThrough` in `UserBadgeState` | diff --git a/simplex-chat.cabal b/simplex-chat.cabal index 183b77d332..6a5bfc2d26 100644 --- a/simplex-chat.cabal +++ b/simplex-chat.cabal @@ -41,7 +41,7 @@ library Simplex.Chat.Badges Simplex.Chat.Badges.CLI Simplex.Chat.Badges.Service - Simplex.Chat.Badges.Store + Simplex.Chat.Badges.Types Simplex.Chat.Names Simplex.Chat.Call Simplex.Chat.Controller @@ -65,6 +65,8 @@ library Simplex.Chat.Operators.Presets Simplex.Chat.Options Simplex.Chat.Options.DB + Simplex.Chat.PaymentService + Simplex.Chat.PaymentService.Types Simplex.Chat.ProfileGenerator Simplex.Chat.Protocol Simplex.Chat.Remote @@ -155,6 +157,7 @@ library Simplex.Chat.Store.Postgres.Migrations.M20260716_signed_history Simplex.Chat.Store.Postgres.Migrations.M20260720_server_roles Simplex.Chat.Store.Postgres.Migrations.M20260723_contact_request_rejection + Simplex.Chat.Store.Postgres.Migrations.M20260731_user_badges else exposed-modules: Simplex.Chat.Archive @@ -325,6 +328,7 @@ library Simplex.Chat.Store.SQLite.Migrations.M20260716_signed_history Simplex.Chat.Store.SQLite.Migrations.M20260720_server_roles Simplex.Chat.Store.SQLite.Migrations.M20260723_contact_request_rejection + Simplex.Chat.Store.SQLite.Migrations.M20260731_user_badges other-modules: Paths_simplex_chat hs-source-dirs: diff --git a/src/Simplex/Chat/Badges/Service.hs b/src/Simplex/Chat/Badges/Service.hs index eb5a556503..6f15d0fa16 100644 --- a/src/Simplex/Chat/Badges/Service.hs +++ b/src/Simplex/Chat/Badges/Service.hs @@ -10,14 +10,8 @@ module Simplex.Chat.Badges.Service BadgeServiceVersion, VersionBadgeService, pattern VersionBadgeService, - ServicePaymentMethod (..), - CardProvider (..), - CryptoCurrency (..), - CurrencyAmount (..), - ServicePayment (..), BadgeUpgrade (..), BadgeServiceResponse (..), - ServicePaymentDestination (..), BadgeServiceErrorCode (..), BadgeCatalog (..), BadgePrice (..), @@ -37,7 +31,8 @@ import Data.Text (Text) import Data.Time.Clock (UTCTime) import Data.Word (Word8, Word16, Word32) import Simplex.Chat.Badges -import Simplex.Chat.Badges.Store +import Simplex.Chat.Badges.Types +import Simplex.Chat.PaymentService import qualified Simplex.Messaging.Crypto as C import Simplex.Messaging.Encoding.String import Simplex.Messaging.Version (VersionScope) @@ -82,32 +77,6 @@ data BadgeServiceCommand balance :: BadgeBalance } | BSCPauseBadge - | BSCTransferBadge - { badgeRequest :: BadgeRequest, - receipt :: Text - } - -data ServicePaymentMethod - = SPMCard {provider :: CardProvider} - | SPMCrypto {currency :: CryptoCurrency} - deriving (Eq, Show) - -data CardProvider = CPStripe - deriving (Eq, Show) - -data CryptoCurrency = CCBtc | CCXmr - deriving (Eq, Show) - --- USD etc. are in minor units, following Stripe etc. convention -newtype CurrencyAmount = CurrencyAmount Word32 - deriving (Eq, Show) - -data ServicePayment - = SPApple {jws :: Text} - | SPGoogle {token :: Text} - | SPInvoice {invoiceId :: InvoiceId} - | SPCode {code :: Text} - deriving (Show) data BadgeUpgrade = BadgeUpgrade { fromPurchaseKey :: C.PublicKeyEd25519, @@ -122,16 +91,9 @@ data BadgeServiceResponse badgeStatement :: Maybe BadgeStatement -- for signed getBadgeCatalog } | BSPBadgeInvoice - { invoiceId :: InvoiceId, + { invoice :: ServiceInvoice, badgeType :: BadgeType, - months :: Word8, - price :: CurrencyAmount, - discount :: Maybe CurrencyAmount, -- discount amount from monthly price - credit :: Maybe CurrencyAmount, -- credit for upgrade - amount :: CurrencyAmount, - currency :: Text, - expiresAt :: UTCTime, - paymentTo :: ServicePaymentDestination + months :: Word8 } | BSPBadgeCredential { credential :: Maybe BadgeCredential, -- Nothing when no balance to issueBadge or no current credential for pause @@ -144,18 +106,6 @@ data BadgeServiceResponse retryAfter :: Maybe Word32 } -data ServicePaymentDestination - = SPDCard - { provider :: CardProvider, - url :: Text - } - | SPDCrypto - { currency :: CryptoCurrency, - address :: Text, - cryptoAmount :: Text - } - deriving (Show) - data BadgeCatalog = BadgeCatalog { prices :: [BadgePrice], offers :: [BadgeOffer] diff --git a/src/Simplex/Chat/Badges/Store.hs b/src/Simplex/Chat/Badges/Types.hs similarity index 94% rename from src/Simplex/Chat/Badges/Store.hs rename to src/Simplex/Chat/Badges/Types.hs index 88357d1a6f..bf9042c944 100644 --- a/src/Simplex/Chat/Badges/Store.hs +++ b/src/Simplex/Chat/Badges/Types.hs @@ -2,14 +2,12 @@ {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} -module Simplex.Chat.Badges.Store +module Simplex.Chat.Badges.Types ( BadgePriceId (..), BadgeOfferId (..), - InvoiceId (..), BadgePlan (..), BadgeItemStatus (..), OfferDiscount (..), - BadgeProvider (..), BadgePaymentStatus (..), BadgePurchaseStatus (..), LedgerEntryType (..), @@ -32,6 +30,7 @@ import Data.Text (Text) import Data.Time.Clock (UTCTime) import Data.Word (Word8) import Simplex.Chat.Badges hiding (BadgePurchase (..)) +import Simplex.Chat.PaymentService.Types (InvoiceId, PaymentProvider) import Simplex.Messaging.Agent.Protocol (UserId) import qualified Simplex.Messaging.Crypto as C @@ -43,10 +42,6 @@ newtype BadgePriceId = BadgePriceId Text newtype BadgeOfferId = BadgeOfferId Text deriving newtype (Eq, Show) --- to review -newtype InvoiceId = InvoiceId Text - deriving newtype (Eq, Show) - -- unconfirmed draft data BadgePlan = BPOneTime | BPMonthly | BPAnnual deriving (Eq, Show) @@ -61,10 +56,6 @@ data OfferDiscount | ODDiscount {discount :: Word8} -- percent deriving (Eq, Show) --- unconfirmed draft -data BadgeProvider = BPRApple | BPRGoogle | BPRStripe | BPRBtc | BPRXmr | BPRCode - deriving (Eq, Show) - -- unconfirmed draft data BadgePaymentStatus = BPSNew | BPSInvoiced | BPSPending | BPSSettled | BPSFailed | BPSExpired deriving (Eq, Show) @@ -133,7 +124,7 @@ data BadgePayment = BadgePayment months :: Maybe Int, amount :: Maybe Int64, currency :: Maybe Text, - provider :: BadgeProvider, + provider :: PaymentProvider, providerRef :: Maybe Text, invoiceUrl :: Maybe Text, invoiceAddress :: Maybe Text, diff --git a/src/Simplex/Chat/PaymentService.hs b/src/Simplex/Chat/PaymentService.hs new file mode 100644 index 0000000000..a4484c469c --- /dev/null +++ b/src/Simplex/Chat/PaymentService.hs @@ -0,0 +1,31 @@ +{-# LANGUAGE DuplicateRecordFields #-} + +module Simplex.Chat.PaymentService + ( ServiceInvoice (..), + ServicePayment (..), + module Simplex.Chat.PaymentService.Types, + ) where + +import Data.Text (Text) +import Data.Time.Clock (UTCTime) +import Simplex.Chat.PaymentService.Types + +data ServiceInvoice = ServiceInvoice + { invoiceId :: InvoiceId, + price :: CurrencyAmount, + discount :: Maybe CurrencyAmount, -- discount amount from the price + credit :: Maybe CurrencyAmount, -- credit for upgrade + amount :: CurrencyAmount, -- price - discount - credit + currency :: Text, + expiresAt :: UTCTime, + paymentTo :: ServicePaymentDestination + } + deriving (Show) + +data ServicePayment + = SPApple {jws :: Text} + | SPGoogle {token :: Text} + | SPInvoice {invoiceId :: InvoiceId} + | SPCode {code :: Text} + | SPReceipt {receipt :: Text} -- transfer of unissued months + deriving (Show) diff --git a/src/Simplex/Chat/PaymentService/Types.hs b/src/Simplex/Chat/PaymentService/Types.hs new file mode 100644 index 0000000000..cb02ae72c2 --- /dev/null +++ b/src/Simplex/Chat/PaymentService/Types.hs @@ -0,0 +1,74 @@ +{-# LANGUAGE DerivingStrategies #-} +{-# LANGUAGE DuplicateRecordFields #-} +{-# LANGUAGE GeneralizedNewtypeDeriving #-} + +module Simplex.Chat.PaymentService.Types + ( CurrencyAmount (..), + InvoiceId (..), + PaymentProvider (..), + CardProvider (..), + CryptoCurrency (..), + ServicePaymentMethod (..), + ServicePaymentDestination (..), + InvoiceStatus (..), + StoredInvoice (..), + ) where + +import Data.Text (Text) +import Data.Time.Clock (UTCTime) +import Data.Word (Word32) + +-- USD etc. are in minor units, following Stripe etc. convention +newtype CurrencyAmount = CurrencyAmount Word32 + deriving (Eq, Show) + +-- confirmed +newtype InvoiceId = InvoiceId Text + deriving newtype (Eq, Show) + +-- confirmed +data PaymentProvider = PPApple | PPGoogle | PPStripe | PPCrypto | PPCode | PPReceipt + deriving (Eq, Show) + +data CardProvider = CPStripe + deriving (Eq, Show) + +data CryptoCurrency = CCBtc | CCXmr + deriving (Eq, Show) + +data ServicePaymentMethod + = SPMCard {provider :: CardProvider} + | SPMCrypto {currency :: CryptoCurrency} + deriving (Eq, Show) + +data ServicePaymentDestination + = SPDCard + { provider :: CardProvider, + url :: Text + } + | SPDCrypto + { currency :: CryptoCurrency, + address :: Text, + cryptoAmount :: Text + } + deriving (Show) + +-- confirmed +data InvoiceStatus = ISOpen | ISPaid | ISExpired + deriving (Eq, Show) + +-- confirmed +data StoredInvoice = StoredInvoice + { invoiceId :: InvoiceId, + price :: CurrencyAmount, + discountAmount :: CurrencyAmount, + creditAmount :: CurrencyAmount, + amount :: CurrencyAmount, -- price - discount - credit + currency :: Text, + paymentTo :: ServicePaymentDestination, + expiresAt :: UTCTime, + status :: InvoiceStatus, + createdAt :: UTCTime, + updatedAt :: UTCTime + } + deriving (Show) diff --git a/src/Simplex/Chat/Store/Postgres/Migrations/M20260731_user_badges.hs b/src/Simplex/Chat/Store/Postgres/Migrations/M20260731_user_badges.hs new file mode 100644 index 0000000000..cecfe4afd1 --- /dev/null +++ b/src/Simplex/Chat/Store/Postgres/Migrations/M20260731_user_badges.hs @@ -0,0 +1,227 @@ +{-# LANGUAGE OverloadedStrings #-} +{-# LANGUAGE QuasiQuotes #-} + +module Simplex.Chat.Store.Postgres.Migrations.M20260731_user_badges where + +import Data.Text (Text) +import qualified Data.Text as T +import Text.RawString.QQ (r) + +-- the same tables in the client and in the badge service; '@' is replaced with the table name prefix +badgeSchema :: Text -> Text +badgeSchema pfx = withPrefix pfx badgeSchemaTables + +badgeSchemaDown :: Text -> Text +badgeSchemaDown pfx = withPrefix pfx badgeSchemaTablesDown + +withPrefix :: Text -> Text -> Text +withPrefix = T.replace "@" + +badgeSchemaTables :: Text +badgeSchemaTables = + [r| +CREATE TABLE @invoices( + invoice_id TEXT NOT NULL PRIMARY KEY, + provider TEXT NOT NULL, + price BIGINT NOT NULL, + discount_amount BIGINT, + credit_amount BIGINT, + amount BIGINT NOT NULL, + currency TEXT NOT NULL, + payment_url TEXT, + payment_address TEXT, + payment_crypto_currency TEXT, + payment_crypto_amount TEXT, + expires_at TIMESTAMPTZ NOT NULL, + status TEXT NOT NULL, + created_at TIMESTAMPTZ NOT NULL, + updated_at TIMESTAMPTZ NOT NULL +); + +CREATE TABLE @payments( + payment_id TEXT NOT NULL PRIMARY KEY, + invoice_id TEXT REFERENCES @invoices, + provider TEXT NOT NULL, + provider_ref TEXT, + amount BIGINT, + currency TEXT, + status TEXT NOT NULL, + exception TEXT, + subscription_renews_at TIMESTAMPTZ, + grace_until TIMESTAMPTZ, + cancelled SMALLINT NOT NULL DEFAULT 0, + created_at TIMESTAMPTZ NOT NULL, + updated_at TIMESTAMPTZ NOT NULL +); + +CREATE INDEX @idx_payments_provider_ref ON @payments(provider, provider_ref); + +CREATE INDEX @idx_payments_invoice ON @payments(invoice_id); + +CREATE TABLE @subscription_charges( + charge_id TEXT NOT NULL PRIMARY KEY, + payment_id TEXT NOT NULL REFERENCES @payments ON DELETE CASCADE, + provider_charge_ref TEXT NOT NULL, + period_start TIMESTAMPTZ NOT NULL, + period_end TIMESTAMPTZ NOT NULL, + amount BIGINT NOT NULL, + currency TEXT NOT NULL, + charged_at TIMESTAMPTZ NOT NULL, + UNIQUE(payment_id, provider_charge_ref) +); + +CREATE TABLE @badge_prices( + price_id TEXT NOT NULL PRIMARY KEY, + badge_type TEXT NOT NULL, + month_price BIGINT NOT NULL, + currency TEXT NOT NULL, + status TEXT NOT NULL, + created_at TIMESTAMPTZ NOT NULL +); + +CREATE TABLE @badge_offers( + offer_id TEXT NOT NULL PRIMARY KEY, + price_id TEXT REFERENCES @badge_prices, + months SMALLINT NOT NULL, + free_months SMALLINT, + discount SMALLINT, + status TEXT NOT NULL, + created_at TIMESTAMPTZ NOT NULL +); + +CREATE TABLE @badge_purchases( + badge_purchase_id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, + purchase_key BYTEA NOT NULL, + master_key BYTEA NOT NULL, + initial_badge_type TEXT NOT NULL, + current_badge_type TEXT NOT NULL, + payment_id TEXT REFERENCES @payments, + status TEXT NOT NULL, + created_at TIMESTAMPTZ NOT NULL, + updated_at TIMESTAMPTZ NOT NULL, + UNIQUE(purchase_key), + UNIQUE(payment_id) +); + +CREATE TABLE @badge_invoices( + invoice_id TEXT NOT NULL PRIMARY KEY REFERENCES @invoices ON DELETE CASCADE, + badge_purchase_id BIGINT NOT NULL REFERENCES @badge_purchases ON DELETE CASCADE, + price_id TEXT NOT NULL REFERENCES @badge_prices, + offer_id TEXT REFERENCES @badge_offers, + months SMALLINT NOT NULL, + created_at TIMESTAMPTZ NOT NULL +); + +CREATE INDEX @idx_badge_invoices_purchase ON @badge_invoices(badge_purchase_id); + +CREATE TABLE @badge_subscription_changes( + change_id TEXT NOT NULL PRIMARY KEY, + badge_purchase_id BIGINT NOT NULL REFERENCES @badge_purchases ON DELETE CASCADE, + from_badge_type TEXT NOT NULL, + to_badge_type TEXT NOT NULL, + from_provider_ref TEXT, + to_provider_ref TEXT, + effective TEXT NOT NULL, + status TEXT NOT NULL, + effective_at TIMESTAMPTZ, + created_at TIMESTAMPTZ NOT NULL, + updated_at TIMESTAMPTZ NOT NULL +); + +CREATE INDEX @idx_badge_subscription_changes_purchase ON @badge_subscription_changes(badge_purchase_id); + +CREATE TABLE @badge_ledger( + entry_id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, + entry_uuid TEXT NOT NULL, + badge_purchase_id BIGINT NOT NULL REFERENCES @badge_purchases ON DELETE CASCADE, + change_months SMALLINT NOT NULL, + balance_months SMALLINT NOT NULL, + balance_start_ts TIMESTAMPTZ NOT NULL, + balance_badge_type TEXT NOT NULL, + was_paused_since TIMESTAMPTZ, + service_created_at TIMESTAMPTZ NOT NULL, + created_at TIMESTAMPTZ NOT NULL, + entry_type TEXT NOT NULL, + entry_credit_type TEXT, + entry_debit_type TEXT, + payment_id TEXT REFERENCES @payments, + charge_id TEXT REFERENCES @subscription_charges, + from_purchase_id BIGINT REFERENCES @badge_purchases, + to_purchase_id BIGINT REFERENCES @badge_purchases +); + +CREATE UNIQUE INDEX @idx_badge_ledger_uuid ON @badge_ledger(entry_uuid); + +CREATE INDEX @idx_badge_ledger_purchase ON @badge_ledger(badge_purchase_id, entry_id); + +CREATE INDEX @idx_badge_ledger_payment ON @badge_ledger(payment_id); + +CREATE INDEX @idx_badge_ledger_charge ON @badge_ledger(charge_id); + +CREATE INDEX @idx_badge_ledger_from_purchase ON @badge_ledger(from_purchase_id); + +CREATE INDEX @idx_badge_ledger_to_purchase ON @badge_ledger(to_purchase_id); + +CREATE TABLE @badge_issuances( + issuance_id TEXT NOT NULL PRIMARY KEY, + badge_purchase_id BIGINT NOT NULL REFERENCES @badge_purchases ON DELETE CASCADE, + entry_id BIGINT REFERENCES @badge_ledger, + badge_type TEXT NOT NULL, + period_start TIMESTAMPTZ NOT NULL, + period_end TIMESTAMPTZ NOT NULL, + expiry TIMESTAMPTZ NOT NULL, + credential BYTEA NOT NULL, + created_at TIMESTAMPTZ NOT NULL +); + +CREATE INDEX @idx_badge_issuances_purchase ON @badge_issuances(badge_purchase_id, issuance_id); +|] + +badgeSchemaTablesDown :: Text +badgeSchemaTablesDown = + [r| +DROP TABLE @badge_issuances; +DROP TABLE @badge_ledger; +DROP TABLE @badge_subscription_changes; +DROP TABLE @badge_invoices; +DROP TABLE @badge_purchases; +DROP TABLE @subscription_charges; +DROP TABLE @payments; +DROP TABLE @invoices; +DROP TABLE @badge_offers; +DROP TABLE @badge_prices; +|] + +m20260731_user_badges :: Text +m20260731_user_badges = + badgeSchema "" + <> [r| +ALTER TABLE badge_purchases ADD COLUMN user_id BIGINT REFERENCES users ON DELETE CASCADE; + +ALTER TABLE badge_purchases ADD COLUMN purchase_priv_key BYTEA; + +ALTER TABLE badge_purchases ADD COLUMN alert_acked_kind TEXT; + +ALTER TABLE badge_purchases ADD COLUMN alert_acked_episode TEXT; + +ALTER TABLE badge_purchases ADD COLUMN alert_snooze_until TIMESTAMPTZ; + +ALTER TABLE payments ADD COLUMN evidence BYTEA; + +ALTER TABLE payments ADD COLUMN receipt_code TEXT; + +ALTER TABLE badge_ledger ADD COLUMN entry_type_unknown SMALLINT NOT NULL DEFAULT 0; + +ALTER TABLE badge_ledger ADD COLUMN entry_type_value TEXT; + +CREATE INDEX idx_badge_purchases_user ON badge_purchases(user_id); + +ALTER TABLE users ADD COLUMN shown_badge_id BIGINT REFERENCES badge_purchases ON DELETE SET NULL; +|] + +down_m20260731_user_badges :: Text +down_m20260731_user_badges = + [r| +ALTER TABLE users DROP COLUMN shown_badge_id; +|] + <> badgeSchemaDown "" diff --git a/src/Simplex/Chat/Store/SQLite/Migrations/M20260731_user_badges.hs b/src/Simplex/Chat/Store/SQLite/Migrations/M20260731_user_badges.hs index 08db8a49ca..e558cb4253 100644 --- a/src/Simplex/Chat/Store/SQLite/Migrations/M20260731_user_badges.hs +++ b/src/Simplex/Chat/Store/SQLite/Migrations/M20260731_user_badges.hs @@ -1,69 +1,67 @@ +{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE QuasiQuotes #-} module Simplex.Chat.Store.SQLite.Migrations.M20260731_user_badges where -import Database.SQLite.Simple (Query) +import Data.Text (Text) +import qualified Data.Text as T +import Database.SQLite.Simple (Query (..)) import Database.SQLite.Simple.QQ (sql) -m20260731_user_badges :: Query -m20260731_user_badges = +-- the same tables in the client and in the badge service; '@' is replaced with the table name prefix +badgeSchema :: Text -> Query +badgeSchema pfx = withPrefix pfx badgeSchemaTables + +badgeSchemaDown :: Text -> Query +badgeSchemaDown pfx = withPrefix pfx badgeSchemaTablesDown + +withPrefix :: Text -> Query -> Query +withPrefix pfx = Query . T.replace "@" pfx . fromQuery + +badgeSchemaTables :: Query +badgeSchemaTables = [sql| -CREATE TABLE badge_prices( - price_id TEXT NOT NULL PRIMARY KEY, - badge_type TEXT NOT NULL, - month_price INTEGER NOT NULL, +CREATE TABLE @invoices( + invoice_id TEXT NOT NULL PRIMARY KEY, + provider TEXT NOT NULL, + price INTEGER NOT NULL, + discount_amount INTEGER, + credit_amount INTEGER, + amount INTEGER NOT NULL, currency TEXT NOT NULL, + payment_url TEXT, + payment_address TEXT, + payment_crypto_currency TEXT, + payment_crypto_amount TEXT, + expires_at TEXT NOT NULL, status TEXT NOT NULL, - created_at TEXT NOT NULL + created_at TEXT NOT NULL, + updated_at TEXT NOT NULL ); -CREATE TABLE badge_offers( - offer_id TEXT NOT NULL PRIMARY KEY, - price_id TEXT REFERENCES badge_prices, - months INTEGER NOT NULL, - discount_type TEXT NOT NULL, - free_months INTEGER, - discount INTEGER, - status TEXT NOT NULL, - created_at TEXT NOT NULL -); - -CREATE TABLE payments( - payment_id INTEGER PRIMARY KEY AUTOINCREMENT, - user_id INTEGER NOT NULL REFERENCES users ON DELETE CASCADE, - purchase_key BLOB NOT NULL, - badge_type TEXT NOT NULL, - price_id TEXT REFERENCES badge_prices, - offer_id TEXT REFERENCES badge_offers, - invoice_uuid TEXT, - months INTEGER, - amount INTEGER, - currency TEXT, +CREATE TABLE @payments( + payment_id TEXT NOT NULL PRIMARY KEY, + invoice_id TEXT REFERENCES @invoices, provider TEXT NOT NULL, provider_ref TEXT, - invoice_url TEXT, - invoice_address TEXT, - invoice_crypto_amount TEXT, - invoice_expires_at TEXT, - evidence BLOB, - receipt_code TEXT, + amount INTEGER, + currency TEXT, status TEXT NOT NULL, exception TEXT, - renews_at TEXT, + subscription_renews_at TEXT, grace_until TEXT, cancelled INTEGER NOT NULL DEFAULT 0, created_at TEXT NOT NULL, updated_at TEXT NOT NULL ); -CREATE INDEX idx_payments_purchase_key ON payments(purchase_key); +CREATE INDEX @idx_payments_provider_ref ON @payments(provider, provider_ref); -CREATE UNIQUE INDEX idx_payments_invoice_uuid ON payments(invoice_uuid); +CREATE INDEX @idx_payments_invoice ON @payments(invoice_id); -CREATE TABLE charges( - charge_id INTEGER PRIMARY KEY, - payment_id INTEGER NOT NULL REFERENCES payments, - invoice_uuid TEXT NOT NULL, +CREATE TABLE @subscription_charges( + charge_id TEXT NOT NULL PRIMARY KEY, + payment_id TEXT NOT NULL REFERENCES @payments ON DELETE CASCADE, provider_charge_ref TEXT NOT NULL, period_start TEXT NOT NULL, period_end TEXT NOT NULL, @@ -73,71 +71,70 @@ CREATE TABLE charges( UNIQUE(payment_id, provider_charge_ref) ); -CREATE TABLE badge_purchases( - badge_purchase_id INTEGER PRIMARY KEY AUTOINCREMENT, - user_id INTEGER NOT NULL REFERENCES users ON DELETE CASCADE, - purchase_key BLOB NOT NULL, - purchase_priv_key BLOB NOT NULL, - master_key BLOB NOT NULL, +CREATE TABLE @badge_prices( + price_id TEXT NOT NULL PRIMARY KEY, badge_type TEXT NOT NULL, - price_id TEXT REFERENCES badge_prices, - offer_id TEXT REFERENCES badge_offers, - payment_id INTEGER NOT NULL REFERENCES payments, + month_price INTEGER NOT NULL, + currency TEXT NOT NULL, status TEXT NOT NULL, - badge_key_idx INTEGER, - badge_signature BLOB, - badge_expiry TEXT, - alert_acked_kind TEXT, - alert_acked_episode TEXT, - alert_snooze_until TEXT, - created_at TEXT NOT NULL, - updated_at TEXT NOT NULL, - UNIQUE(purchase_key) -); - -CREATE UNIQUE INDEX idx_badge_purchases_live ON badge_purchases(user_id, (badge_type = 'investor')) - WHERE status IN ('acquiring', 'issued'); - -ALTER TABLE users ADD COLUMN shown_badge_id INTEGER REFERENCES badge_purchases ON DELETE SET NULL; -|] - <> badgeLedgerTable - <> [sql| -ALTER TABLE badge_ledger ADD COLUMN entry_type_unknown INTEGER NOT NULL DEFAULT 0; - -ALTER TABLE badge_ledger ADD COLUMN entry_type_value TEXT; - -CREATE UNIQUE INDEX idx_badge_ledger_uuid ON badge_ledger(entry_uuid); - -CREATE INDEX idx_badge_ledger_purchase ON badge_ledger(badge_purchase_id, entry_id); - -CREATE INDEX idx_badge_ledger_invoice ON badge_ledger(invoice_id); - -CREATE INDEX idx_badge_ledger_charge ON badge_ledger(charge_id); - -CREATE INDEX idx_badge_ledger_from_purchase ON badge_ledger(from_purchase_id); - -CREATE INDEX idx_badge_ledger_to_purchase ON badge_ledger(to_purchase_id); - -CREATE TABLE badge_issuances( - issuance_id INTEGER PRIMARY KEY, - badge_purchase_id INTEGER NOT NULL REFERENCES badge_purchases ON DELETE CASCADE, - period_start TEXT, - period_end TEXT, - expiry TEXT, - entry_id INTEGER REFERENCES badge_ledger, created_at TEXT NOT NULL ); -CREATE INDEX idx_badge_issuances_purchase ON badge_issuances(badge_purchase_id, issuance_id); -|] +CREATE TABLE @badge_offers( + offer_id TEXT NOT NULL PRIMARY KEY, + price_id TEXT REFERENCES @badge_prices, + months INTEGER NOT NULL, + free_months INTEGER, + discount INTEGER, + status TEXT NOT NULL, + created_at TEXT NOT NULL +); -badgeLedgerTable :: Query -badgeLedgerTable = - [sql| -CREATE TABLE badge_ledger( +CREATE TABLE @badge_purchases( + badge_purchase_id INTEGER PRIMARY KEY AUTOINCREMENT, + purchase_key BLOB NOT NULL, + master_key BLOB NOT NULL, + initial_badge_type TEXT NOT NULL, + current_badge_type TEXT NOT NULL, + payment_id TEXT REFERENCES @payments, + status TEXT NOT NULL, + created_at TEXT NOT NULL, + updated_at TEXT NOT NULL, + UNIQUE(purchase_key), + UNIQUE(payment_id) +); + +CREATE TABLE @badge_invoices( + invoice_id TEXT NOT NULL PRIMARY KEY REFERENCES @invoices ON DELETE CASCADE, + badge_purchase_id INTEGER NOT NULL REFERENCES @badge_purchases ON DELETE CASCADE, + price_id TEXT NOT NULL REFERENCES @badge_prices, + offer_id TEXT REFERENCES @badge_offers, + months INTEGER NOT NULL, + created_at TEXT NOT NULL +); + +CREATE INDEX @idx_badge_invoices_purchase ON @badge_invoices(badge_purchase_id); + +CREATE TABLE @badge_subscription_changes( + change_id TEXT NOT NULL PRIMARY KEY, + badge_purchase_id INTEGER NOT NULL REFERENCES @badge_purchases ON DELETE CASCADE, + from_badge_type TEXT NOT NULL, + to_badge_type TEXT NOT NULL, + from_provider_ref TEXT, + to_provider_ref TEXT, + effective TEXT NOT NULL, + status TEXT NOT NULL, + effective_at TEXT, + created_at TEXT NOT NULL, + updated_at TEXT NOT NULL +); + +CREATE INDEX @idx_badge_subscription_changes_purchase ON @badge_subscription_changes(badge_purchase_id); + +CREATE TABLE @badge_ledger( entry_id INTEGER PRIMARY KEY AUTOINCREMENT, entry_uuid TEXT NOT NULL, - badge_purchase_id INTEGER NOT NULL REFERENCES badge_purchases ON DELETE CASCADE, + badge_purchase_id INTEGER NOT NULL REFERENCES @badge_purchases ON DELETE CASCADE, change_months INTEGER NOT NULL, balance_months INTEGER NOT NULL, balance_start_ts TEXT NOT NULL, @@ -148,22 +145,84 @@ CREATE TABLE badge_ledger( entry_type TEXT NOT NULL, entry_credit_type TEXT, entry_debit_type TEXT, - invoice_id INTEGER REFERENCES payments, - charge_id INTEGER REFERENCES charges, - from_purchase_id INTEGER REFERENCES badge_purchases, - to_purchase_id INTEGER REFERENCES badge_purchases + payment_id TEXT REFERENCES @payments, + charge_id TEXT REFERENCES @subscription_charges, + from_purchase_id INTEGER REFERENCES @badge_purchases, + to_purchase_id INTEGER REFERENCES @badge_purchases ); + +CREATE UNIQUE INDEX @idx_badge_ledger_uuid ON @badge_ledger(entry_uuid); + +CREATE INDEX @idx_badge_ledger_purchase ON @badge_ledger(badge_purchase_id, entry_id); + +CREATE INDEX @idx_badge_ledger_payment ON @badge_ledger(payment_id); + +CREATE INDEX @idx_badge_ledger_charge ON @badge_ledger(charge_id); + +CREATE INDEX @idx_badge_ledger_from_purchase ON @badge_ledger(from_purchase_id); + +CREATE INDEX @idx_badge_ledger_to_purchase ON @badge_ledger(to_purchase_id); + +CREATE TABLE @badge_issuances( + issuance_id TEXT NOT NULL PRIMARY KEY, + badge_purchase_id INTEGER NOT NULL REFERENCES @badge_purchases ON DELETE CASCADE, + entry_id INTEGER REFERENCES @badge_ledger, + badge_type TEXT NOT NULL, + period_start TEXT NOT NULL, + period_end TEXT NOT NULL, + expiry TEXT NOT NULL, + credential BLOB NOT NULL, + created_at TEXT NOT NULL +); + +CREATE INDEX @idx_badge_issuances_purchase ON @badge_issuances(badge_purchase_id, issuance_id); +|] + +badgeSchemaTablesDown :: Query +badgeSchemaTablesDown = + [sql| +DROP TABLE @badge_issuances; +DROP TABLE @badge_ledger; +DROP TABLE @badge_subscription_changes; +DROP TABLE @badge_invoices; +DROP TABLE @badge_purchases; +DROP TABLE @subscription_charges; +DROP TABLE @payments; +DROP TABLE @invoices; +DROP TABLE @badge_offers; +DROP TABLE @badge_prices; +|] + +m20260731_user_badges :: Query +m20260731_user_badges = + badgeSchema "" + <> [sql| +ALTER TABLE badge_purchases ADD COLUMN user_id INTEGER REFERENCES users ON DELETE CASCADE; + +ALTER TABLE badge_purchases ADD COLUMN purchase_priv_key BLOB; + +ALTER TABLE badge_purchases ADD COLUMN alert_acked_kind TEXT; + +ALTER TABLE badge_purchases ADD COLUMN alert_acked_episode TEXT; + +ALTER TABLE badge_purchases ADD COLUMN alert_snooze_until TEXT; + +ALTER TABLE payments ADD COLUMN evidence BLOB; + +ALTER TABLE payments ADD COLUMN receipt_code TEXT; + +ALTER TABLE badge_ledger ADD COLUMN entry_type_unknown INTEGER NOT NULL DEFAULT 0; + +ALTER TABLE badge_ledger ADD COLUMN entry_type_value TEXT; + +CREATE INDEX idx_badge_purchases_user ON badge_purchases(user_id); + +ALTER TABLE users ADD COLUMN shown_badge_id INTEGER REFERENCES badge_purchases ON DELETE SET NULL; |] down_m20260731_user_badges :: Query down_m20260731_user_badges = [sql| -DROP TABLE badge_issuances; -DROP TABLE badge_ledger; ALTER TABLE users DROP COLUMN shown_badge_id; -DROP TABLE badge_purchases; -DROP TABLE charges; -DROP TABLE payments; -DROP TABLE badge_offers; -DROP TABLE badge_prices; |] + <> badgeSchemaDown "" From 1c7bc1aed4f34cee85eeee1ca69e5781e29eb35b Mon Sep 17 00:00:00 2001 From: Evgeny Date: Thu, 27 Aug 2026 08:02:46 +0100 Subject: [PATCH 06/62] core: refactor badge types (#7387) Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com> --- src/Simplex/Chat/Badges/Types.hs | 40 +--------------- src/Simplex/Chat/PaymentService/Types.hs | 60 ++++++++++++++++++++++++ 2 files changed, 62 insertions(+), 38 deletions(-) diff --git a/src/Simplex/Chat/Badges/Types.hs b/src/Simplex/Chat/Badges/Types.hs index bf9042c944..70dd4dfa8c 100644 --- a/src/Simplex/Chat/Badges/Types.hs +++ b/src/Simplex/Chat/Badges/Types.hs @@ -8,14 +8,12 @@ module Simplex.Chat.Badges.Types BadgePlan (..), BadgeItemStatus (..), OfferDiscount (..), - BadgePaymentStatus (..), BadgePurchaseStatus (..), LedgerEntryType (..), LedgerCreditType (..), LedgerDebitType (..), BadgeAlertKind (..), BadgePurchase (..), - BadgePayment (..), BadgeLedgerEntry (..), BadgeCharge (..), BadgeIssuance (..), @@ -30,7 +28,7 @@ import Data.Text (Text) import Data.Time.Clock (UTCTime) import Data.Word (Word8) import Simplex.Chat.Badges hiding (BadgePurchase (..)) -import Simplex.Chat.PaymentService.Types (InvoiceId, PaymentProvider) +import Simplex.Chat.PaymentService.Types (InvoiceId, StoredPayment) import Simplex.Messaging.Agent.Protocol (UserId) import qualified Simplex.Messaging.Crypto as C @@ -56,10 +54,6 @@ data OfferDiscount | ODDiscount {discount :: Word8} -- percent deriving (Eq, Show) --- unconfirmed draft -data BadgePaymentStatus = BPSNew | BPSInvoiced | BPSPending | BPSSettled | BPSFailed | BPSExpired - deriving (Eq, Show) - -- unconfirmed draft data BadgePurchaseStatus = PSAcquiring | PSIssued | PSSuperseded | PSFailed deriving (Eq, Show) @@ -112,36 +106,6 @@ data BadgePurchase = BadgePurchase updatedAt :: UTCTime } --- to review -data BadgePayment = BadgePayment - { paymentId :: Int64, - userId :: UserId, - purchaseKey :: C.PublicKeyEd25519, - badgeType :: BadgeType, - priceId :: Maybe BadgePriceId, - offerId :: Maybe BadgeOfferId, - invoiceUuid :: Maybe InvoiceId, - months :: Maybe Int, - amount :: Maybe Int64, - currency :: Maybe Text, - provider :: PaymentProvider, - providerRef :: Maybe Text, - invoiceUrl :: Maybe Text, - invoiceAddress :: Maybe Text, - invoiceCryptoAmount :: Maybe Text, - invoiceExpiresAt :: Maybe UTCTime, - evidence :: Maybe ByteString, - receiptCode :: Maybe Text, - status :: BadgePaymentStatus, - exception :: Maybe Text, - renewsAt :: Maybe UTCTime, - graceUntil :: Maybe UTCTime, - cancelled :: Bool, - createdAt :: UTCTime, - updatedAt :: UTCTime - } - deriving (Show) - -- confirmed data BadgeLedgerEntry = BadgeLedgerEntry { entryId :: Int64, @@ -197,7 +161,7 @@ data BadgeAlert = BadgeAlert data UserBadgeState = UserBadgeState { badges :: [BadgePurchase], shownBadgeId :: Maybe Int64, - payments :: [BadgePayment], + payments :: [StoredPayment], monthsLeft :: Int, paidThrough :: Maybe UTCTime, renewsAt :: Maybe UTCTime, diff --git a/src/Simplex/Chat/PaymentService/Types.hs b/src/Simplex/Chat/PaymentService/Types.hs index cb02ae72c2..910a5b973f 100644 --- a/src/Simplex/Chat/PaymentService/Types.hs +++ b/src/Simplex/Chat/PaymentService/Types.hs @@ -5,6 +5,7 @@ module Simplex.Chat.PaymentService.Types ( CurrencyAmount (..), InvoiceId (..), + PaymentId (..), PaymentProvider (..), CardProvider (..), CryptoCurrency (..), @@ -12,8 +13,13 @@ module Simplex.Chat.PaymentService.Types ServicePaymentDestination (..), InvoiceStatus (..), StoredInvoice (..), + StoredPayment (..), + PaymentFunding (..), + PaymentTerm (..), + PaymentStatus (..), ) where +import Data.ByteString.Char8 (ByteString) import Data.Text (Text) import Data.Time.Clock (UTCTime) import Data.Word (Word32) @@ -26,6 +32,10 @@ newtype CurrencyAmount = CurrencyAmount Word32 newtype InvoiceId = InvoiceId Text deriving newtype (Eq, Show) +-- confirmed +newtype PaymentId = PaymentId Text + deriving newtype (Eq, Show) + -- confirmed data PaymentProvider = PPApple | PPGoogle | PPStripe | PPCrypto | PPCode | PPReceipt deriving (Eq, Show) @@ -72,3 +82,53 @@ data StoredInvoice = StoredInvoice updatedAt :: UTCTime } deriving (Show) + +-- to review +data StoredPayment = StoredPayment + { paymentId :: PaymentId, + funding :: PaymentFunding, + term :: PaymentTerm, + status :: PaymentStatus, + createdAt :: UTCTime, + updatedAt :: UTCTime + } + deriving (Show) + +-- to review +data PaymentFunding + = PFInvoice + { invoiceId :: InvoiceId, + providerRef :: Text, + amount :: CurrencyAmount, + currency :: Text, + receiptCode :: Maybe Text -- client; the service holds its hash + } + | PFApple + { providerRef :: Text, + amount :: CurrencyAmount, + currency :: Text, + evidence :: Maybe ByteString -- client only + } + | PFGoogle + { providerRef :: Text, + amount :: CurrencyAmount, + currency :: Text, + evidence :: Maybe ByteString -- client only + } + | PFCode + | PFReceipt + deriving (Show) + +-- to review +data PaymentTerm + = PTOneOff + | PTSubscription + { renewsAt :: UTCTime, + graceUntil :: Maybe UTCTime, + cancelled :: Bool + } + deriving (Show) + +-- to review +data PaymentStatus = PSPending | PSSettled | PSFailed {exception :: Text} + deriving (Show) From e80a174f1352bcd7ae29f47468153e7d9d2f39b0 Mon Sep 17 00:00:00 2001 From: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com> Date: Fri, 28 Aug 2026 09:31:24 +0000 Subject: [PATCH 07/62] core: badge codes schema, plan (#7427) --- .../common/views/chatlist/ChatListView.kt | 16 +- .../BadgeService/Store/Postgres/Migrations.hs | 38 +++- .../BadgeService/Store/SQLite/Migrations.hs | 38 +++- docs/protocol/badges-rpc.md | 10 +- docs/protocol/badges-rpc.schema.json | 9 +- plans/2026-08-27-badges-mvp-streams.md | 194 ++++++++++++++++++ src/Simplex/Chat/Badges/Service.hs | 4 + src/Simplex/Chat/Badges/Types.hs | 6 +- src/Simplex/Chat/PaymentService.hs | 1 - .../Migrations/M20261001_user_badges.hs | 34 +++ .../Migrations/M20261001_user_badges.hs | 34 +++ 11 files changed, 364 insertions(+), 20 deletions(-) create mode 100644 plans/2026-08-27-badges-mvp-streams.md diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chatlist/ChatListView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chatlist/ChatListView.kt index 19f50de743..16a944d7bd 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chatlist/ChatListView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chatlist/ChatListView.kt @@ -1037,15 +1037,13 @@ private fun BoxScope.ChatList(searchText: MutableState, listStat } else { NavigationBarBackground(oneHandUI.value, true) } - // TEMP-DISABLED-FOR-BADGES-QA: auto-hide of ToggleChatListCard at 3+ chats blocks visual QA of - // the SupportSimpleXBanner alongside it. Restore before merging. - // if (!oneHandUICardShown.value) { - // LaunchedEffect(chats.size) { - // if (chats.size >= 3) { - // appPrefs.oneHandUICardShown.set(true) - // } - // } - // } + if (!oneHandUICardShown.value) { + LaunchedEffect(chats.size) { + if (chats.size >= 3) { + appPrefs.oneHandUICardShown.set(true) + } + } + } LaunchedEffect(activeFilter.value) { searchText.value = TextFieldValue("") diff --git a/apps/simplex-badge-service/src/BadgeService/Store/Postgres/Migrations.hs b/apps/simplex-badge-service/src/BadgeService/Store/Postgres/Migrations.hs index 04b7674cec..daa6905033 100644 --- a/apps/simplex-badge-service/src/BadgeService/Store/Postgres/Migrations.hs +++ b/apps/simplex-badge-service/src/BadgeService/Store/Postgres/Migrations.hs @@ -31,7 +31,43 @@ m20260806_badge_service_schema = servicePrefix [r| ALTER TABLE @payments ADD COLUMN receipt_hash BYTEA; + +CREATE TABLE @badge_codes( + badge_code_id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, + code_hash BYTEA NOT NULL, + badge_type TEXT NOT NULL, + months SMALLINT NOT NULL, + code_payment_status TEXT NOT NULL, + redeemed_at TIMESTAMPTZ, + created_at TIMESTAMPTZ NOT NULL, + UNIQUE(code_hash) +); + +ALTER TABLE @badge_purchases ADD COLUMN badge_code_id BIGINT REFERENCES @badge_codes; + +CREATE UNIQUE INDEX @idx_badge_purchases_code ON @badge_purchases(badge_code_id); + +CREATE TABLE @badge_code_invoices( + invoice_id TEXT NOT NULL PRIMARY KEY REFERENCES @invoices ON DELETE CASCADE, + price_id TEXT NOT NULL REFERENCES @badge_prices, + offer_id TEXT REFERENCES @badge_offers, + months SMALLINT NOT NULL, + created_at TIMESTAMPTZ NOT NULL +); |] down_m20260806_badge_service_schema :: Text -down_m20260806_badge_service_schema = badgeSchemaDown servicePrefix +down_m20260806_badge_service_schema = + withPrefix + servicePrefix + [r| +DROP TABLE @badge_code_invoices; + +DROP INDEX @idx_badge_purchases_code; +|] + <> badgeSchemaDown servicePrefix + <> withPrefix + servicePrefix + [r| +DROP TABLE @badge_codes; +|] diff --git a/apps/simplex-badge-service/src/BadgeService/Store/SQLite/Migrations.hs b/apps/simplex-badge-service/src/BadgeService/Store/SQLite/Migrations.hs index b0974f177d..d96c779094 100644 --- a/apps/simplex-badge-service/src/BadgeService/Store/SQLite/Migrations.hs +++ b/apps/simplex-badge-service/src/BadgeService/Store/SQLite/Migrations.hs @@ -32,7 +32,43 @@ m20260806_badge_service_schema = servicePrefix [sql| ALTER TABLE @payments ADD COLUMN receipt_hash BLOB; + +CREATE TABLE @badge_codes( + badge_code_id INTEGER PRIMARY KEY AUTOINCREMENT, + code_hash BLOB NOT NULL, + badge_type TEXT NOT NULL, + months INTEGER NOT NULL, + code_payment_status TEXT NOT NULL, + redeemed_at TEXT, + created_at TEXT NOT NULL, + UNIQUE(code_hash) +); + +ALTER TABLE @badge_purchases ADD COLUMN badge_code_id INTEGER REFERENCES @badge_codes; + +CREATE UNIQUE INDEX @idx_badge_purchases_code ON @badge_purchases(badge_code_id); + +CREATE TABLE @badge_code_invoices( + invoice_id TEXT NOT NULL PRIMARY KEY REFERENCES @invoices ON DELETE CASCADE, + price_id TEXT NOT NULL REFERENCES @badge_prices, + offer_id TEXT REFERENCES @badge_offers, + months INTEGER NOT NULL, + created_at TEXT NOT NULL +); |] down_m20260806_badge_service_schema :: Query -down_m20260806_badge_service_schema = badgeSchemaDown servicePrefix +down_m20260806_badge_service_schema = + withPrefix + servicePrefix + [sql| +DROP TABLE @badge_code_invoices; + +DROP INDEX @idx_badge_purchases_code; +|] + <> badgeSchemaDown servicePrefix + <> withPrefix + servicePrefix + [sql| +DROP TABLE @badge_codes; +|] diff --git a/docs/protocol/badges-rpc.md b/docs/protocol/badges-rpc.md index 7ce3b78b34..f3bafec240 100644 --- a/docs/protocol/badges-rpc.md +++ b/docs/protocol/badges-rpc.md @@ -10,15 +10,16 @@ A request is an envelope: `version` — the client's protocol version; `purchase ## Identity -Each purchase runs under a fresh Ed25519 key pair; `purchaseKey` is its public part and identifies the badge. The service cannot link purchases of one user; the exceptions are the declared upgrades below. `getBadgeCatalog` may omit `purchaseKey`: unsigned, it returns the catalog alone; signed, its response adds the purchase's `badgeStatement` — a client holding a lapsed badge checks for credits in the same request that prices a new purchase, and buys under a fresh key only when the statement shows none. Every other command requires the key and is signed with it. The agent delivers the verified signer key alongside the request; the service rejects a `purchaseKey` that differs from it with `bad_request`, and a key it holds no record of with `unknown_purchase_key`. +Each purchase runs under a fresh Ed25519 key pair; `purchaseKey` is its public part and identifies the badge. The service cannot link purchases of one user; the exceptions are the declared upgrades below. `getBadgeCatalog` may omit `purchaseKey`: unsigned, it returns the catalog alone; signed, its response adds the purchase's `badgeStatement` — a client holding a lapsed badge checks for credits in the same request that prices a new purchase, and buys under a fresh key only when the statement shows none. Every other command requires the key and is signed with it. The agent delivers the verified signer key alongside the request; the service rejects a `purchaseKey` that differs from it with `bad_request`. -A purchase record is created by `getBadgeInvoice`, or by `purchaseBadge` funded with `apple`, `google`, `code`, or `receipt`. +A purchase record is created by `redeemBadgeCode`, by `getBadgeInvoice`, or by `purchaseBadge` funded with `apple`, `google`, or `receipt`. Those commands accept a key the service holds no record of — on a first purchase it always will. Every other command answers `unknown_purchase_key` for such a key. ## Idempotency A timeout hides the outcome, so the client repeats the identical signed request at its next trigger, never on a poll timer. - `getBadgeInvoice` — returns the open invoice again; a new invoice is created only when none is open. +- `redeemBadgeCode` — a code already redeemed by the signing key returns the same `badgeCredential` and writes nothing; redeemed by another key, `code_used`. The client must therefore keep the key it first signed with, or a retry cannot be recognised. - `purchaseBadge` — a payment already credited returns the same `badgeCredential` and writes nothing. - `upgradeBadgeSubscription` — evidence already applied returns the same result and writes nothing. - `issueBadge` — repeated within an issued period, returns the cached credential and writes nothing. @@ -30,7 +31,8 @@ A timeout hides the outcome, so the client repeats the identical signed request - `getBadgeCatalog` → `badgeCatalog` — the prices and offers; signed, also the purchase's `badgeStatement`. Store builds never send it: prices come from the store and SKUs from app config. - `getBadgeInvoice` → `badgeInvoice` — prices the purchase for `badgeInfo` and `paymentVia` (`card` — Stripe; `crypto` — btc, xmr). The response holds the generic `invoice` — `invoiceId`, `price`, `discount`, the upgrade `credit`, `amount` = price − discount − credit, `currency`, `expiresAt`, and `paymentTo` (`url` for card; `address` and `cryptoAmount` for crypto) — beside the badge part, `badgeType` and `months`. `priceId` pins the price the client displayed; `offerId` selects a discounted duration, and its absence buys one month at that price. Price and offer status is checked here only: `deprecated` is still accepted, `disabled` is rejected; a badge type with no active price yields `product_unavailable`. -- `purchaseBadge` → `badgeCredential` — verifies the funding (`apple` JWS offline; `google` token via the Publisher API; `invoice` against webhook-confirmed settlement, `payment_pending` until it lands; `code`; `receipt`), records the credit, and issues the first credential, in one round trip. The response `receipt` is the recovery bearer secret (model § recovery); the service stores its hash; lifetime badges receive none. +- `redeemBadgeCode` → `badgeCredential` — redeems a code, records the credit, and issues the first credential, in one round trip. It carries `masterKey` and `code` and no `badgeRequest`: a code states no tier and no expiry, so the credential is what reports them. Errors: `code_invalid` for an unknown or malformed code, `code_used` when another key redeemed it, `code_expired` past a redemption deadline. +- `purchaseBadge` → `badgeCredential` — verifies the funding (`apple` JWS offline; `google` token via the Publisher API; `invoice` against webhook-confirmed settlement, `payment_pending` until it lands; `receipt`), records the credit, and issues the first credential, in one round trip. The response `receipt` is the recovery bearer secret (model § recovery); the service stores its hash; lifetime badges receive none. - Funding by `receipt` is a transfer (post-MVP): the unissued months of the purchase that receipt belongs to move to the signing key, recorded as `debit(transferOut)` on the source and `credit(transferIn)` on the new purchase, and the presented receipt is retired for a fresh one. The transferred period's issuance debits a month like any other. Lifetime badges hold no receipt, so support handles them. - `upgradeBadgeSubscription` → `badgeCredential` — the app-led store subscription change, on the same key: verifies the store evidence of the replaced subscription and records the new plan; an immediate upgrade returns the new credential, a deferred change returns none. - `issueBadge` → `badgeCredential` — issues the next period from the balance, the only source of issuance. The ledger is advanced first; the credential is signed before the `debit(badge)` and issuance rows are written, in one transaction. An exhausted balance yields no `credential`; the `statement` shows why. Issuing on a paused badge resumes it (model 2.13). @@ -61,4 +63,4 @@ An assertion that names an entry the service holds is a prefix: the service proc ## Errors -`retryAfter` marks the transient codes: `payment_pending`, `provider_unavailable`, `rate_limited`. `offer_disabled` calls for a catalog refresh. `code_invalid` covers unknown and revoked codes; `code_used` — redeemed under another key. `receipt_invalid` covers unknown receipts. All other codes are terminal for the attempted command. +`retryAfter` marks the transient codes: `payment_pending`, `provider_unavailable`, `rate_limited`. `offer_disabled` calls for a catalog refresh. `code_invalid` covers unknown, malformed and revoked codes alike, so a guesser learns nothing from the difference; `code_used` — redeemed under another key; `code_expired` — past its redemption deadline. `receipt_invalid` covers unknown receipts. All other codes are terminal for the attempted command. diff --git a/docs/protocol/badges-rpc.schema.json b/docs/protocol/badges-rpc.schema.json index 00ecc69874..6a3b2f81d4 100644 --- a/docs/protocol/badges-rpc.schema.json +++ b/docs/protocol/badges-rpc.schema.json @@ -102,9 +102,6 @@ "invoice": { "properties": {"invoiceId": {"type": "string"}} }, - "code": { - "properties": {"code": {"type": "string"}} - }, "receipt": { "properties": { "receipt": { @@ -298,6 +295,12 @@ } } }, + "redeemBadgeCode": { + "properties": { + "masterKey": {"ref": "base64url"}, + "code": {"type": "string"} + } + }, "purchaseBadge": { "properties": { "badgeRequest": {"ref": "badgeRequest"}, diff --git a/plans/2026-08-27-badges-mvp-streams.md b/plans/2026-08-27-badges-mvp-streams.md new file mode 100644 index 0000000000..444ad73f91 --- /dev/null +++ b/plans/2026-08-27-badges-mvp-streams.md @@ -0,0 +1,194 @@ +# Supporter badges — beta slice and stream plan + +**2026-08-27** · protocol `docs/protocol/badges-rpc.{md,schema.json}` · model and copy rules `plans/2026-07-30-supporter-badges-v3-ux.md` · core API `plans/2026-07-31-badges-core-implementation.md`. The product plan's §4 wire protocol was superseded before implementation; `badges-rpc.md` is the protocol. + +--- + +## 1. The slice + +Beta ships one route to a badge: **buy a code in a browser, redeem it in the app.** The app asks no purchase questions — tier, duration and method are the site's. + +Deferred, still in the protocol: in-app invoices, store purchase, subscriptions, upgrades, transfers, pause, alerts. + +**First, no dependencies:** divert the apps' purchase path so nothing reaches a store charge — it takes real money today and issues no badge. The views and the store code stay in place, uncalled. + +Accepted: a code is a bearer instrument. Whoever sees it can spend it, and this slice has no revocation. + +## 2. State on `badges` + +Other branches may carry work this does not see. + +- **Written** — credential signing, verification, proofs, status, presentation; protocol types, RPC docs, JTD schema; client and service schema incl. this plan's tables; app banner, settings entry, what's-new +- **Scaffold** — badge service answers every request `unsupported_version` +- **Not written** — JSON instances for most protocol types; core client badge API, store, worker; checkout site and providers; app redeem view (title-only stub), badge-state screen, browser hand-off +- **To divert** — the app's tier/duration screens, which today lead to a store purchase + +Registering the client migration needs `STRICT` on all ten SQLite tables; Postgres must not have it. + +--- + +## 3. Contracts between streams + +**The code** — `SXB-` + 20 Crockford chars in four groups, one of them a check character. Normalisation upper-cases and folds `I`/`L`→`1`, `O`→`0`, identically both sides. Only `SHA-256` of the normalised code is stored anywhere. Site codes are `HMAC(secret, orderId)`; operator codes are random. + +**`redeemBadgeCode`** over service RPC — signed with an Ed25519 key generated per code and reused by a retry of it. Carries the badge master key and the code, nothing else. Returns the signed credential and a **statement**, or `code_invalid` | `code_used` | `code_expired` | `rate_limited` | `internal`. + +A *statement* is an extract of the badge's ledger — the months balance, as a list of entries. The ledger is authored by the service alone; the client keeps a verbatim replica and reads its balance from the last entry. + +**The catalog** — one source in the service, one total function. The site renders those totals; the browser never multiplies a price by a month count. The app does not read it this release. + +The code is the only thing crossing site → app. The site never sees a purchase key, credential or ledger; the app never sees an order. + +--- + +## 4. Stream 1 — codes for badges + +### 4.1 Redemption becomes its own command + +`purchaseBadge {badgeRequest, payment:{type:"code"}}` asks the caller for a tier and expiry it cannot know and the service must override. + +- `redeemBadgeCode {masterKey, code}` → `badgeCredential {credential, receipt?, statement}` +- `code` leaves the payment union; `purchaseBadge` keeps the rest — `apple`, `google`, `invoice`, `receipt` — and stays unimplemented +- the tier is stated by the credential, which the client verifies +- client command `APIRedeemBadgeCode {userId, code}` + +One thing here fails quietly. The request envelope carries an optional `purchaseKey`, and the service decides per command whether that key must already name a purchase — most require it and answer `unknown_purchase_key` otherwise. `redeemBadgeCode` is the exception: it *creates* the purchase, so on a first redemption the key is always unknown. Miss the special case and the lookup falls through to the default, every first redemption is refused, and nothing fails to compile because it is a runtime lookup. Worth its own test. + +### 4.2 Schema + +The tables, in layers: + +- **money** — `invoices` (an amount owed), `payments` (an amount paid), `subscription_charges`. Generic: they carry no idea what was bought. +- **catalog** — `badge_prices` (tier → price per month), `badge_offers` (duration discounts). +- **what an invoice bought** — `badge_invoices` for a purchase, `badge_code_invoices` for a voucher. Same shape, except the second names no purchase: at the time of sale none exists, and the buyer may never be the redeemer. +- **the badge** — `badge_purchases` is the anchor: keys, tier, status, and what funded it — `payment_id` for an in-app purchase, or a code. The code column is added separately on each side, each pointing at its own code table. Its balance is `badge_ledger`, its credentials `badge_issuances`, and `users.shown_badge_id` names the one on show. +- **the voucher** — `badge_codes`, service only: the hash, the tier and months it is worth, and `code_payment_status` — paid, unpaid or free — so a minted code is told from a sold one without joining invoices. Never a badge itself. +- **the attempt** — `badge_code_redemptions`, client only. It holds the code in plaintext, because the client sends the code and not its hash, and the keys the redemption is signed with, so a retry can be the same signer (§4.3). + +The beta path: the site writes an invoice and what it bought, then a code. The app redeems that code, which creates the purchase and its first issuance — and, from milestone D, its ledger. + +New here are `badge_code_redemptions` (client) and `badge_codes`, `badge_code_invoices` (service); all are in the migration modules already. Every schema change touches four files — the shared block, the client-only section and the service migrations each exist twice, SQLite and Postgres, unlinked by the build. + +### 4.3 Retry is safe + +A redemption is signed with a key the client generates for it. If that key is generated fresh on every attempt, a timeout is unrecoverable: the service may already have redeemed the code, and the retry arrives as a *different* signer, so it reads as someone else presenting a spent code — `code_used`. The user has paid and cannot get the badge. + +The fix is for a retry to be the **same** signer: + +- the service's replay keys on **(code hash, verified signer)**: the same code from the same key returns the credential it already issued and writes nothing +- so the client writes the signing keys into a `badge_code_redemptions` row **before** sending, found by the code, and a retry reads them back + +That row is a stash for the in-flight attempt. Its fate depends on the outcome: + +| outcome | the row | +|---|---| +| success | kept, and pointed at by the new purchase | +| terminal error — `code_invalid`, `code_used`, `code_expired` | deleted: the code will never work, so the keys are dead | +| timeout | **kept** — this is the case it exists for | + +The keys need a row of their own because **code redemption cannot create its `badge_purchases` row up front.** That row's badge-type columns are `NOT NULL` and a code carries no tier, so there is nowhere to put them until the service answers. An in-app purchase has no such problem — the tier was picked on screen, so it creates its purchase in `acquiring` immediately. + +### 4.4 Service + +Store layer, ledger transitions, credential signing, code minting and classification, RPC dispatcher, then the redeem and issue handlers. + +**Nothing is written until the credential is signed.** Look the code up, compute the ledger changes in memory, sign — and only then open one transaction that writes the purchase, the ledger rows, the issuance and the redemption together. Signing is the step most likely to fail for reasons unrelated to the request. If the code were marked redeemed first, a signing failure would leave it spent with no credential behind it: dead, and revivable only by an operator. Signing first means a failure touches nothing and the user can simply try again. + +**Errors say as little as possible.** An unknown code and a malformed one both answer `code_invalid`, so someone guessing learns nothing from the difference. A code already redeemed answers `code_used` — but only to a *different* key; the key that redeemed it gets its credential back (§4.3). + +### 4.5 Core client + +Badge store, commands and events, re-issue worker, redeem path. + +- verify the credential against the configured issuer keys **before** writing anything +- copy the statement's entries into the ledger replica exactly as received — never compute a balance locally, never edit or invent an entry; one author means client and service cannot disagree +- on success, one transaction: write the purchase and its issuance, copy the ledger entries, complete the code row, retire the profile's previous badge of the same kind, and point the profile at the new one — then release the lock and present to contacts +- split `addUserBadge` first — it verifies, stores and broadcasts under the global chat lock in one function and raises command errors; the redeem path needs a per-user lock and a service error code + +A profile shows one badge at a time and holds at most two: a paid one and an investor one. Redeeming a code fills that kind's place, and the purchase that was there moves to `superseded`. Its unspent months stay with it — purchases are unlinkable, so nothing can move a balance between them. That matters for **Add more months** (§4.6): a second code starts a new balance rather than topping up the old one. + +### 4.6 Apps + +- *Support SimpleX* — **Get the code** (opens the site; absent on store builds) and **Redeem the code** (everywhere) +- *Redeem code* — formats as typed, folds ambiguous characters, verifies the check character before sending, one message per service error +- *Supporter perks* — the badge, that it is shown, the date support **ends**, **Add more months**; plus the ended state +- **Diverted** — tier and duration screens leave the flow, kept compiled and uncalled; store product loading and the catalog command lose their last callers +- **Copy** — one date, the paid-through date from the ledger, never the credential's expiry; *ends*, never *renews* + +### 4.7 Issuing without selling + +Compensation codes need no new mechanism: minted by the operator, random rather than derived, printed once, stored as hashes. + +Investor badges are not a special case: an operator mints a code of that tier and it is redeemed by the same path as any other. `code_payment_status` records that it was minted rather than sold; the redemption path never reads it. + +A badge that never expires is a separate question, and deferred — the ledger holds a month count, so "forever" has no representation. Until it does, a long finite term serves: the count is a byte, so twenty years is expressible. + +### 4.8 Order of work + +**The ledger is stubbed until last** — redemption issues one credential and writes no ledger rows, and the statement comes back empty. Everything before D is a working badge without accounting. + +**First, independent:** divert the apps' purchase path (§1). + +**A — core, redeemable from the CLI.** Migration registered with `STRICT` and both dumps regenerated; code format in the shared library; `redeemBadgeCode` types, JSON, schema and docs; service store, signing, dispatcher and redeem handler; a minimal mint command. + +`APIRedeemBadgeCode` lands here **with its `chatCommandP` parser and `View.hs` rendering**, so a code can be redeemed from the terminal with no app involved. That is what proves the round trip — RPC delivery, signing, credential verification, the profile update — before any UI exists to confuse the picture, and it stays the fastest way to reproduce a redemption afterwards. + +Tests land here too, not later: `tests/Bots/BadgeServiceTests.hs` already starts the service in-process and hands a chat client its address, so a mint-then-redeem case is an extension of the existing harness rather than new scaffolding. Cover the code redeeming into a badge, and an unknown code answering `code_invalid`. That spec sits under `xdescribe''`, which skips when `CI` is set — so it must be run locally; CI green is not evidence for it. + +*Done when* a code minted by that command and redeemed from the terminal puts a badge on the profile and contacts see it, and those tests pass locally. + +**B — apps.** Support screen with its two actions, redeem screen, badge-state screen, copy. Both platforms in step. *Done when* the same works by pasting a code into the app. + +**C — unhappy paths.** Retry idempotency — keys stashed before sending, replay keyed on (code hash, signer). Error mapping for `code_invalid`, `code_used`, `code_expired` and a locally failed verification. + +**D — ledger.** Transitions, credit on redemption, debit on issue, lapse; statement in the response; client replica; monthly re-issue worker. *Done when* a three-month code re-issues at the month boundary and both ledgers match row for row. Property tests here: balance never below zero, issuance debits exactly one month, lapse removes only elapsed unissued months. + +### 4.9 Done means + +- an operator-minted code redeems on desktop, Android and iOS and shows on the profile and in member lists +- the same code twice from one profile returns the same badge and consumes nothing +- a timeout then a retry issues exactly one badge, no operator involved +- every service error renders inline, as does a locally failed credential verification +- an operator-minted code redeems by the same path as one bought on the site, whatever its tier +- client and service ledger rows match row for row; a crossed month boundary re-issues without a restart +- redeeming a code writes no payment row + +--- + +## 5. Stream 2 — selling codes on the web + +Takes money and produces codes: a page, card and crypto payment, and whatever server side that needs. Its only output that stream 1 consumes is a code. + +**What it owes stream 1** + +- codes in §3's format and normalisation, with only their `SHA-256` stored +- prices from the service catalog — one source and one total function, so the site and the app cannot disagree +- `badge_code_invoices` filled with what each invoice bought; the table is already in the schema + +**Its own to settle.** Hosting and deployment, endpoints, which providers, how the browser learns an order settled, how long a code stays retrievable after purchase, and what reference support resolves against. None of it reaches stream 1. + +**Before the tier page ships:** it advertises a storage-duration perk — confirm that perk exists (§6) or drop the claim. + +--- + +## 6. Stream 3 — perks + +What an active badge changes for the user: XFTP file size and storage duration, granted against the badge proof the sender presents. + +Integration points, in dependency order: + +1. a presentation context binding a proof to the operation it authorises, so a proof lifted from a profile cannot authorise an upload *(client)* +2. recipient-side size verification against the presented proof *(client)* +3. carrying the proof to the file server on upload *(simplexmq)* +4. issuer keys in file-server config, so it can verify one *(simplexmq)* +5. per-file size and retention derived from the verified badge type *(simplexmq)* + +1 and 2 are client-side and independent of the rest. Target values: supporter 2GB and 7 days, legend 5GB and 21 days. + +--- + +## 7. Ledger — for information + +The months accounting, and a mechanism inside stream 1 rather than a stream of its own: the service authors every entry, the client keeps a verbatim replica and reads the balance from the last one. + +Beta needs three operations — credit on redemption, debit on issue, lapse on elapsed months — which is milestone D. The rest of the ledger's operations arrive with the features that need them. diff --git a/src/Simplex/Chat/Badges/Service.hs b/src/Simplex/Chat/Badges/Service.hs index 6f15d0fa16..ff06fb7d94 100644 --- a/src/Simplex/Chat/Badges/Service.hs +++ b/src/Simplex/Chat/Badges/Service.hs @@ -62,6 +62,10 @@ data BadgeServiceCommand paymentVia :: ServicePaymentMethod, upgrade :: Maybe BadgeUpgrade -- upgrade non-store badge } + | BSCRedeemBadgeCode + { masterKey :: BadgeMasterKey, + code :: Text -- no badgeRequest: a code carries no tier for the client to state + } | BSCPurchaseBadge { badgeRequest :: BadgeRequest, payment :: ServicePayment, diff --git a/src/Simplex/Chat/Badges/Types.hs b/src/Simplex/Chat/Badges/Types.hs index 70dd4dfa8c..c5289504f0 100644 --- a/src/Simplex/Chat/Badges/Types.hs +++ b/src/Simplex/Chat/Badges/Types.hs @@ -9,6 +9,7 @@ module Simplex.Chat.Badges.Types BadgeItemStatus (..), OfferDiscount (..), BadgePurchaseStatus (..), + BadgeCodePaymentStatus (..), LedgerEntryType (..), LedgerCreditType (..), LedgerDebitType (..), @@ -22,7 +23,6 @@ module Simplex.Chat.Badges.Types ) where import qualified Data.Aeson as J -import Data.ByteString.Char8 (ByteString) import Data.Int (Int64) import Data.Text (Text) import Data.Time.Clock (UTCTime) @@ -58,6 +58,10 @@ data OfferDiscount data BadgePurchaseStatus = PSAcquiring | PSIssued | PSSuperseded | PSFailed deriving (Eq, Show) +-- unconfirmed draft +data BadgeCodePaymentStatus = CPSPaid | CPSUnpaid | CPSFree + deriving (Eq, Show) + -- confirmed data LedgerEntryType = LECredit {credit :: LedgerCreditType} | LEDebit {debit :: LedgerDebitType} deriving (Eq, Show) diff --git a/src/Simplex/Chat/PaymentService.hs b/src/Simplex/Chat/PaymentService.hs index a4484c469c..4cbfc0ef11 100644 --- a/src/Simplex/Chat/PaymentService.hs +++ b/src/Simplex/Chat/PaymentService.hs @@ -26,6 +26,5 @@ data ServicePayment = SPApple {jws :: Text} | SPGoogle {token :: Text} | SPInvoice {invoiceId :: InvoiceId} - | SPCode {code :: Text} | SPReceipt {receipt :: Text} -- transfer of unissued months deriving (Show) diff --git a/src/Simplex/Chat/Store/Postgres/Migrations/M20261001_user_badges.hs b/src/Simplex/Chat/Store/Postgres/Migrations/M20261001_user_badges.hs index 30908cdaf8..fd3024966d 100644 --- a/src/Simplex/Chat/Store/Postgres/Migrations/M20261001_user_badges.hs +++ b/src/Simplex/Chat/Store/Postgres/Migrations/M20261001_user_badges.hs @@ -180,12 +180,23 @@ CREATE INDEX @idx_badge_issuances_purchase ON @badge_issuances(badge_purchase_id badgeSchemaTablesDown :: Text badgeSchemaTablesDown = [r| +DROP INDEX @idx_badge_issuances_purchase; DROP TABLE @badge_issuances; +DROP INDEX @idx_badge_ledger_uuid; +DROP INDEX @idx_badge_ledger_purchase; +DROP INDEX @idx_badge_ledger_payment; +DROP INDEX @idx_badge_ledger_charge; +DROP INDEX @idx_badge_ledger_from_purchase; +DROP INDEX @idx_badge_ledger_to_purchase; DROP TABLE @badge_ledger; +DROP INDEX @idx_badge_subscription_changes_purchase; DROP TABLE @badge_subscription_changes; +DROP INDEX @idx_badge_invoices_purchase; DROP TABLE @badge_invoices; DROP TABLE @badge_purchases; DROP TABLE @subscription_charges; +DROP INDEX @idx_payments_provider_ref; +DROP INDEX @idx_payments_invoice; DROP TABLE @payments; DROP TABLE @invoices; DROP TABLE @badge_offers; @@ -217,11 +228,34 @@ ALTER TABLE badge_ledger ADD COLUMN entry_type_value TEXT; CREATE INDEX idx_badge_purchases_user ON badge_purchases(user_id); ALTER TABLE users ADD COLUMN shown_badge_id BIGINT REFERENCES badge_purchases ON DELETE SET NULL; + +CREATE TABLE badge_code_redemptions( + badge_code_redemption_id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, + user_id BIGINT NOT NULL REFERENCES users ON DELETE CASCADE, + code TEXT NOT NULL, + purchase_key BYTEA NOT NULL, + purchase_priv_key BYTEA NOT NULL, + master_key BYTEA NOT NULL, + created_at TIMESTAMPTZ NOT NULL, + UNIQUE(code) +); + +CREATE INDEX idx_badge_code_redemptions_user ON badge_code_redemptions(user_id); + +ALTER TABLE badge_purchases ADD COLUMN badge_code_redemption_id BIGINT REFERENCES badge_code_redemptions; + +CREATE UNIQUE INDEX idx_badge_purchases_code_redemption ON badge_purchases(badge_code_redemption_id); |] down_m20261001_user_badges :: Text down_m20261001_user_badges = [r| +DROP INDEX idx_badge_purchases_code_redemption; +DROP INDEX idx_badge_purchases_user; ALTER TABLE users DROP COLUMN shown_badge_id; |] <> badgeSchemaDown "" + <> [r| +DROP INDEX idx_badge_code_redemptions_user; +DROP TABLE badge_code_redemptions; +|] diff --git a/src/Simplex/Chat/Store/SQLite/Migrations/M20261001_user_badges.hs b/src/Simplex/Chat/Store/SQLite/Migrations/M20261001_user_badges.hs index f1015ae393..94b2fbc41e 100644 --- a/src/Simplex/Chat/Store/SQLite/Migrations/M20261001_user_badges.hs +++ b/src/Simplex/Chat/Store/SQLite/Migrations/M20261001_user_badges.hs @@ -181,12 +181,23 @@ CREATE INDEX @idx_badge_issuances_purchase ON @badge_issuances(badge_purchase_id badgeSchemaTablesDown :: Query badgeSchemaTablesDown = [sql| +DROP INDEX @idx_badge_issuances_purchase; DROP TABLE @badge_issuances; +DROP INDEX @idx_badge_ledger_uuid; +DROP INDEX @idx_badge_ledger_purchase; +DROP INDEX @idx_badge_ledger_payment; +DROP INDEX @idx_badge_ledger_charge; +DROP INDEX @idx_badge_ledger_from_purchase; +DROP INDEX @idx_badge_ledger_to_purchase; DROP TABLE @badge_ledger; +DROP INDEX @idx_badge_subscription_changes_purchase; DROP TABLE @badge_subscription_changes; +DROP INDEX @idx_badge_invoices_purchase; DROP TABLE @badge_invoices; DROP TABLE @badge_purchases; DROP TABLE @subscription_charges; +DROP INDEX @idx_payments_provider_ref; +DROP INDEX @idx_payments_invoice; DROP TABLE @payments; DROP TABLE @invoices; DROP TABLE @badge_offers; @@ -218,11 +229,34 @@ ALTER TABLE badge_ledger ADD COLUMN entry_type_value TEXT; CREATE INDEX idx_badge_purchases_user ON badge_purchases(user_id); ALTER TABLE users ADD COLUMN shown_badge_id INTEGER REFERENCES badge_purchases ON DELETE SET NULL; + +CREATE TABLE badge_code_redemptions( + badge_code_redemption_id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL REFERENCES users ON DELETE CASCADE, + code TEXT NOT NULL, + purchase_key BLOB NOT NULL, + purchase_priv_key BLOB NOT NULL, + master_key BLOB NOT NULL, + created_at TEXT NOT NULL, + UNIQUE(code) +); + +CREATE INDEX idx_badge_code_redemptions_user ON badge_code_redemptions(user_id); + +ALTER TABLE badge_purchases ADD COLUMN badge_code_redemption_id INTEGER REFERENCES badge_code_redemptions; + +CREATE UNIQUE INDEX idx_badge_purchases_code_redemption ON badge_purchases(badge_code_redemption_id); |] down_m20261001_user_badges :: Query down_m20261001_user_badges = [sql| +DROP INDEX idx_badge_purchases_code_redemption; +DROP INDEX idx_badge_purchases_user; ALTER TABLE users DROP COLUMN shown_badge_id; |] <> badgeSchemaDown "" + <> [sql| +DROP INDEX idx_badge_code_redemptions_user; +DROP TABLE badge_code_redemptions; +|] From 6075ea579731fd859beea76eb0579526b2c0cd00 Mon Sep 17 00:00:00 2001 From: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com> Date: Fri, 28 Aug 2026 10:20:13 +0000 Subject: [PATCH 08/62] core: register badges migration (#7429) --- .../BadgeService/Store/Postgres/Migrations.hs | 6 + .../BadgeService/Store/SQLite/Migrations.hs | 10 +- src/Simplex/Chat/Store/Postgres/Migrations.hs | 4 +- .../Migrations/M20261001_user_badges.hs | 15 + .../Store/Postgres/Migrations/chat_schema.sql | 462 +++++++++++++++++- src/Simplex/Chat/Store/SQLite/Migrations.hs | 4 +- .../Migrations/M20261001_user_badges.hs | 37 +- .../Store/SQLite/Migrations/chat_schema.sql | 180 ++++++- 8 files changed, 700 insertions(+), 18 deletions(-) diff --git a/apps/simplex-badge-service/src/BadgeService/Store/Postgres/Migrations.hs b/apps/simplex-badge-service/src/BadgeService/Store/Postgres/Migrations.hs index daa6905033..18d589b037 100644 --- a/apps/simplex-badge-service/src/BadgeService/Store/Postgres/Migrations.hs +++ b/apps/simplex-badge-service/src/BadgeService/Store/Postgres/Migrations.hs @@ -54,6 +54,10 @@ CREATE TABLE @badge_code_invoices( months SMALLINT NOT NULL, created_at TIMESTAMPTZ NOT NULL ); + +CREATE INDEX @idx_badge_code_invoices_offer ON @badge_code_invoices(offer_id); + +CREATE INDEX @idx_badge_code_invoices_price ON @badge_code_invoices(price_id); |] down_m20260806_badge_service_schema :: Text @@ -61,6 +65,8 @@ down_m20260806_badge_service_schema = withPrefix servicePrefix [r| +DROP INDEX @idx_badge_code_invoices_offer; +DROP INDEX @idx_badge_code_invoices_price; DROP TABLE @badge_code_invoices; DROP INDEX @idx_badge_purchases_code; diff --git a/apps/simplex-badge-service/src/BadgeService/Store/SQLite/Migrations.hs b/apps/simplex-badge-service/src/BadgeService/Store/SQLite/Migrations.hs index d96c779094..2851813c8c 100644 --- a/apps/simplex-badge-service/src/BadgeService/Store/SQLite/Migrations.hs +++ b/apps/simplex-badge-service/src/BadgeService/Store/SQLite/Migrations.hs @@ -42,7 +42,7 @@ CREATE TABLE @badge_codes( redeemed_at TEXT, created_at TEXT NOT NULL, UNIQUE(code_hash) -); +) STRICT; ALTER TABLE @badge_purchases ADD COLUMN badge_code_id INTEGER REFERENCES @badge_codes; @@ -54,7 +54,11 @@ CREATE TABLE @badge_code_invoices( offer_id TEXT REFERENCES @badge_offers, months INTEGER NOT NULL, created_at TEXT NOT NULL -); +) STRICT; + +CREATE INDEX @idx_badge_code_invoices_offer ON @badge_code_invoices(offer_id); + +CREATE INDEX @idx_badge_code_invoices_price ON @badge_code_invoices(price_id); |] down_m20260806_badge_service_schema :: Query @@ -62,6 +66,8 @@ down_m20260806_badge_service_schema = withPrefix servicePrefix [sql| +DROP INDEX @idx_badge_code_invoices_offer; +DROP INDEX @idx_badge_code_invoices_price; DROP TABLE @badge_code_invoices; DROP INDEX @idx_badge_purchases_code; diff --git a/src/Simplex/Chat/Store/Postgres/Migrations.hs b/src/Simplex/Chat/Store/Postgres/Migrations.hs index a8b4958de4..862a604da3 100644 --- a/src/Simplex/Chat/Store/Postgres/Migrations.hs +++ b/src/Simplex/Chat/Store/Postgres/Migrations.hs @@ -48,6 +48,7 @@ import Simplex.Chat.Store.Postgres.Migrations.M20260720_server_roles import Simplex.Chat.Store.Postgres.Migrations.M20260723_contact_request_rejection import Simplex.Chat.Store.Postgres.Migrations.M20260813_auto_accept_group_invitations import Simplex.Chat.Store.Postgres.Migrations.M20260822_forward_link +import Simplex.Chat.Store.Postgres.Migrations.M20261001_user_badges import Simplex.Messaging.Agent.Store.Shared (Migration (..)) schemaMigrations :: [(String, Text, Maybe Text)] @@ -95,7 +96,8 @@ schemaMigrations = ("20260720_server_roles", m20260720_server_roles, Just down_m20260720_server_roles), ("20260723_contact_request_rejection", m20260723_contact_request_rejection, Just down_m20260723_contact_request_rejection), ("20260813_auto_accept_group_invitations", m20260813_auto_accept_group_invitations, Just down_m20260813_auto_accept_group_invitations), - ("20260822_forward_link", m20260822_forward_link, Just down_m20260822_forward_link) + ("20260822_forward_link", m20260822_forward_link, Just down_m20260822_forward_link), + ("20261001_user_badges", m20261001_user_badges, Just down_m20261001_user_badges) ] -- | The list of migrations in ascending order by date diff --git a/src/Simplex/Chat/Store/Postgres/Migrations/M20261001_user_badges.hs b/src/Simplex/Chat/Store/Postgres/Migrations/M20261001_user_badges.hs index fd3024966d..0aa9153b2c 100644 --- a/src/Simplex/Chat/Store/Postgres/Migrations/M20261001_user_badges.hs +++ b/src/Simplex/Chat/Store/Postgres/Migrations/M20261001_user_badges.hs @@ -89,6 +89,8 @@ CREATE TABLE @badge_offers( created_at TIMESTAMPTZ NOT NULL ); +CREATE INDEX @idx_badge_offers_price ON @badge_offers(price_id); + CREATE TABLE @badge_purchases( badge_purchase_id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, purchase_key BYTEA NOT NULL, @@ -114,6 +116,10 @@ CREATE TABLE @badge_invoices( CREATE INDEX @idx_badge_invoices_purchase ON @badge_invoices(badge_purchase_id); +CREATE INDEX @idx_badge_invoices_offer ON @badge_invoices(offer_id); + +CREATE INDEX @idx_badge_invoices_price ON @badge_invoices(price_id); + CREATE TABLE @badge_subscription_changes( change_id TEXT NOT NULL PRIMARY KEY, badge_purchase_id BIGINT NOT NULL REFERENCES @badge_purchases ON DELETE CASCADE, @@ -175,12 +181,15 @@ CREATE TABLE @badge_issuances( ); CREATE INDEX @idx_badge_issuances_purchase ON @badge_issuances(badge_purchase_id, issuance_id); + +CREATE INDEX @idx_badge_issuances_entry ON @badge_issuances(entry_id); |] badgeSchemaTablesDown :: Text badgeSchemaTablesDown = [r| DROP INDEX @idx_badge_issuances_purchase; +DROP INDEX @idx_badge_issuances_entry; DROP TABLE @badge_issuances; DROP INDEX @idx_badge_ledger_uuid; DROP INDEX @idx_badge_ledger_purchase; @@ -192,6 +201,8 @@ DROP TABLE @badge_ledger; DROP INDEX @idx_badge_subscription_changes_purchase; DROP TABLE @badge_subscription_changes; DROP INDEX @idx_badge_invoices_purchase; +DROP INDEX @idx_badge_invoices_offer; +DROP INDEX @idx_badge_invoices_price; DROP TABLE @badge_invoices; DROP TABLE @badge_purchases; DROP TABLE @subscription_charges; @@ -199,6 +210,7 @@ DROP INDEX @idx_payments_provider_ref; DROP INDEX @idx_payments_invoice; DROP TABLE @payments; DROP TABLE @invoices; +DROP INDEX @idx_badge_offers_price; DROP TABLE @badge_offers; DROP TABLE @badge_prices; |] @@ -229,6 +241,8 @@ CREATE INDEX idx_badge_purchases_user ON badge_purchases(user_id); ALTER TABLE users ADD COLUMN shown_badge_id BIGINT REFERENCES badge_purchases ON DELETE SET NULL; +CREATE INDEX idx_users_shown_badge ON users(shown_badge_id); + CREATE TABLE badge_code_redemptions( badge_code_redemption_id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, user_id BIGINT NOT NULL REFERENCES users ON DELETE CASCADE, @@ -252,6 +266,7 @@ down_m20261001_user_badges = [r| DROP INDEX idx_badge_purchases_code_redemption; DROP INDEX idx_badge_purchases_user; +DROP INDEX idx_users_shown_badge; ALTER TABLE users DROP COLUMN shown_badge_id; |] <> badgeSchemaDown "" diff --git a/src/Simplex/Chat/Store/Postgres/Migrations/chat_schema.sql b/src/Simplex/Chat/Store/Postgres/Migrations/chat_schema.sql index ab6384cb29..fbc663f45d 100644 --- a/src/Simplex/Chat/Store/Postgres/Migrations/chat_schema.sql +++ b/src/Simplex/Chat/Store/Postgres/Migrations/chat_schema.sql @@ -168,6 +168,159 @@ CREATE TABLE test_chat_schema.app_settings ( +CREATE TABLE test_chat_schema.badge_code_redemptions ( + badge_code_redemption_id bigint NOT NULL, + user_id bigint NOT NULL, + code text NOT NULL, + purchase_key bytea NOT NULL, + purchase_priv_key bytea NOT NULL, + master_key bytea NOT NULL, + created_at timestamp with time zone NOT NULL +); + + + +ALTER TABLE test_chat_schema.badge_code_redemptions ALTER COLUMN badge_code_redemption_id ADD GENERATED ALWAYS AS IDENTITY ( + SEQUENCE NAME test_chat_schema.badge_code_redemptions_badge_code_redemption_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1 +); + + + +CREATE TABLE test_chat_schema.badge_invoices ( + invoice_id text NOT NULL, + badge_purchase_id bigint NOT NULL, + price_id text NOT NULL, + offer_id text, + months smallint NOT NULL, + created_at timestamp with time zone NOT NULL +); + + + +CREATE TABLE test_chat_schema.badge_issuances ( + issuance_id text NOT NULL, + badge_purchase_id bigint NOT NULL, + entry_id bigint, + badge_type text NOT NULL, + period_start timestamp with time zone NOT NULL, + period_end timestamp with time zone NOT NULL, + expiry timestamp with time zone NOT NULL, + credential bytea NOT NULL, + created_at timestamp with time zone NOT NULL +); + + + +CREATE TABLE test_chat_schema.badge_ledger ( + entry_id bigint NOT NULL, + entry_uuid text NOT NULL, + badge_purchase_id bigint NOT NULL, + change_months smallint NOT NULL, + balance_months smallint NOT NULL, + balance_start_ts timestamp with time zone NOT NULL, + balance_badge_type text NOT NULL, + was_paused_since timestamp with time zone, + service_created_at timestamp with time zone NOT NULL, + created_at timestamp with time zone NOT NULL, + entry_type text NOT NULL, + entry_credit_type text, + entry_debit_type text, + payment_id text, + charge_id text, + from_purchase_id bigint, + to_purchase_id bigint, + entry_type_unknown smallint DEFAULT 0 NOT NULL, + entry_type_value text +); + + + +ALTER TABLE test_chat_schema.badge_ledger ALTER COLUMN entry_id ADD GENERATED ALWAYS AS IDENTITY ( + SEQUENCE NAME test_chat_schema.badge_ledger_entry_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1 +); + + + +CREATE TABLE test_chat_schema.badge_offers ( + offer_id text NOT NULL, + price_id text, + months smallint NOT NULL, + free_months smallint, + discount smallint, + status text NOT NULL, + created_at timestamp with time zone NOT NULL +); + + + +CREATE TABLE test_chat_schema.badge_prices ( + price_id text NOT NULL, + badge_type text NOT NULL, + month_price bigint NOT NULL, + currency text NOT NULL, + status text NOT NULL, + created_at timestamp with time zone NOT NULL +); + + + +CREATE TABLE test_chat_schema.badge_purchases ( + badge_purchase_id bigint NOT NULL, + purchase_key bytea NOT NULL, + master_key bytea NOT NULL, + initial_badge_type text NOT NULL, + current_badge_type text NOT NULL, + payment_id text, + status text NOT NULL, + created_at timestamp with time zone NOT NULL, + updated_at timestamp with time zone NOT NULL, + user_id bigint, + purchase_priv_key bytea, + alert_acked_kind text, + alert_acked_episode text, + alert_snooze_until timestamp with time zone, + badge_code_redemption_id bigint +); + + + +ALTER TABLE test_chat_schema.badge_purchases ALTER COLUMN badge_purchase_id ADD GENERATED ALWAYS AS IDENTITY ( + SEQUENCE NAME test_chat_schema.badge_purchases_badge_purchase_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1 +); + + + +CREATE TABLE test_chat_schema.badge_subscription_changes ( + change_id text NOT NULL, + badge_purchase_id bigint NOT NULL, + from_badge_type text NOT NULL, + to_badge_type text NOT NULL, + from_provider_ref text, + to_provider_ref text, + effective text NOT NULL, + status text NOT NULL, + effective_at timestamp with time zone, + created_at timestamp with time zone NOT NULL, + updated_at timestamp with time zone NOT NULL +); + + + CREATE TABLE test_chat_schema.calls ( call_id bigint NOT NULL, contact_id bigint NOT NULL, @@ -999,7 +1152,7 @@ CREATE TABLE test_chat_schema.groups ( public_member_count bigint, relay_request_retries bigint DEFAULT 0 NOT NULL, relay_request_delay bigint DEFAULT 0 NOT NULL, - relay_request_execute_at timestamp with time zone DEFAULT '1970-01-01 01:00:00+01'::timestamp with time zone NOT NULL, + relay_request_execute_at timestamp with time zone DEFAULT '1970-01-01 04:00:00+04'::timestamp with time zone NOT NULL, relay_inactive_at timestamp with time zone, relay_sent_web_domain text, roster_version bigint, @@ -1027,6 +1180,26 @@ ALTER TABLE test_chat_schema.groups ALTER COLUMN group_id ADD GENERATED ALWAYS A +CREATE TABLE test_chat_schema.invoices ( + invoice_id text NOT NULL, + provider text NOT NULL, + price bigint NOT NULL, + discount_amount bigint, + credit_amount bigint, + amount bigint NOT NULL, + currency text NOT NULL, + payment_url text, + payment_address text, + payment_crypto_currency text, + payment_crypto_amount text, + expires_at timestamp with time zone NOT NULL, + status text NOT NULL, + created_at timestamp with time zone NOT NULL, + updated_at timestamp with time zone NOT NULL +); + + + CREATE TABLE test_chat_schema.known_servers ( server_id bigint NOT NULL, host text NOT NULL, @@ -1160,6 +1333,26 @@ ALTER TABLE test_chat_schema.operator_usage_conditions ALTER COLUMN operator_usa +CREATE TABLE test_chat_schema.payments ( + payment_id text NOT NULL, + invoice_id text, + provider text NOT NULL, + provider_ref text, + amount bigint, + currency text, + status text NOT NULL, + exception text, + subscription_renews_at timestamp with time zone, + grace_until timestamp with time zone, + cancelled smallint DEFAULT 0 NOT NULL, + created_at timestamp with time zone NOT NULL, + updated_at timestamp with time zone NOT NULL, + evidence bytea, + receipt_code text +); + + + CREATE TABLE test_chat_schema.pending_group_messages ( pending_group_message_id bigint NOT NULL, group_member_id bigint NOT NULL, @@ -1454,6 +1647,19 @@ CREATE TABLE test_chat_schema.snd_files ( +CREATE TABLE test_chat_schema.subscription_charges ( + charge_id text NOT NULL, + payment_id text NOT NULL, + provider_charge_ref text NOT NULL, + period_start timestamp with time zone NOT NULL, + period_end timestamp with time zone NOT NULL, + amount bigint NOT NULL, + currency text NOT NULL, + charged_at timestamp with time zone NOT NULL +); + + + CREATE TABLE test_chat_schema.usage_conditions ( usage_conditions_id bigint NOT NULL, conditions_commit text NOT NULL, @@ -1516,7 +1722,8 @@ CREATE TABLE test_chat_schema.users ( auto_accept_member_contacts smallint DEFAULT 0 NOT NULL, is_user_chat_relay smallint DEFAULT 0 NOT NULL, client_service smallint DEFAULT 0 NOT NULL, - auto_accept_group_invitations smallint DEFAULT 0 NOT NULL + auto_accept_group_invitations smallint DEFAULT 0 NOT NULL, + shown_badge_id bigint ); @@ -1555,6 +1762,61 @@ ALTER TABLE test_chat_schema.xftp_file_descriptions ALTER COLUMN file_descr_id A +ALTER TABLE ONLY test_chat_schema.badge_code_redemptions + ADD CONSTRAINT badge_code_redemptions_code_key UNIQUE (code); + + + +ALTER TABLE ONLY test_chat_schema.badge_code_redemptions + ADD CONSTRAINT badge_code_redemptions_pkey PRIMARY KEY (badge_code_redemption_id); + + + +ALTER TABLE ONLY test_chat_schema.badge_invoices + ADD CONSTRAINT badge_invoices_pkey PRIMARY KEY (invoice_id); + + + +ALTER TABLE ONLY test_chat_schema.badge_issuances + ADD CONSTRAINT badge_issuances_pkey PRIMARY KEY (issuance_id); + + + +ALTER TABLE ONLY test_chat_schema.badge_ledger + ADD CONSTRAINT badge_ledger_pkey PRIMARY KEY (entry_id); + + + +ALTER TABLE ONLY test_chat_schema.badge_offers + ADD CONSTRAINT badge_offers_pkey PRIMARY KEY (offer_id); + + + +ALTER TABLE ONLY test_chat_schema.badge_prices + ADD CONSTRAINT badge_prices_pkey PRIMARY KEY (price_id); + + + +ALTER TABLE ONLY test_chat_schema.badge_purchases + ADD CONSTRAINT badge_purchases_payment_id_key UNIQUE (payment_id); + + + +ALTER TABLE ONLY test_chat_schema.badge_purchases + ADD CONSTRAINT badge_purchases_pkey PRIMARY KEY (badge_purchase_id); + + + +ALTER TABLE ONLY test_chat_schema.badge_purchases + ADD CONSTRAINT badge_purchases_purchase_key_key UNIQUE (purchase_key); + + + +ALTER TABLE ONLY test_chat_schema.badge_subscription_changes + ADD CONSTRAINT badge_subscription_changes_pkey PRIMARY KEY (change_id); + + + ALTER TABLE ONLY test_chat_schema.calls ADD CONSTRAINT calls_pkey PRIMARY KEY (call_id); @@ -1745,6 +2007,11 @@ ALTER TABLE ONLY test_chat_schema.groups +ALTER TABLE ONLY test_chat_schema.invoices + ADD CONSTRAINT invoices_pkey PRIMARY KEY (invoice_id); + + + ALTER TABLE ONLY test_chat_schema.known_servers ADD CONSTRAINT known_servers_pkey PRIMARY KEY (server_id); @@ -1780,6 +2047,11 @@ ALTER TABLE ONLY test_chat_schema.operator_usage_conditions +ALTER TABLE ONLY test_chat_schema.payments + ADD CONSTRAINT payments_pkey PRIMARY KEY (payment_id); + + + ALTER TABLE ONLY test_chat_schema.pending_group_messages ADD CONSTRAINT pending_group_messages_pkey PRIMARY KEY (pending_group_message_id); @@ -1855,6 +2127,16 @@ ALTER TABLE ONLY test_chat_schema.snd_files +ALTER TABLE ONLY test_chat_schema.subscription_charges + ADD CONSTRAINT subscription_charges_payment_id_provider_charge_ref_key UNIQUE (payment_id, provider_charge_ref); + + + +ALTER TABLE ONLY test_chat_schema.subscription_charges + ADD CONSTRAINT subscription_charges_pkey PRIMARY KEY (charge_id); + + + ALTER TABLE ONLY test_chat_schema.usage_conditions ADD CONSTRAINT usage_conditions_conditions_commit_key UNIQUE (conditions_commit); @@ -1907,6 +2189,70 @@ CREATE INDEX files_note_folder_id ON test_chat_schema.files USING btree (note_fo +CREATE INDEX idx_badge_code_redemptions_user ON test_chat_schema.badge_code_redemptions USING btree (user_id); + + + +CREATE INDEX idx_badge_invoices_offer ON test_chat_schema.badge_invoices USING btree (offer_id); + + + +CREATE INDEX idx_badge_invoices_price ON test_chat_schema.badge_invoices USING btree (price_id); + + + +CREATE INDEX idx_badge_invoices_purchase ON test_chat_schema.badge_invoices USING btree (badge_purchase_id); + + + +CREATE INDEX idx_badge_issuances_entry ON test_chat_schema.badge_issuances USING btree (entry_id); + + + +CREATE INDEX idx_badge_issuances_purchase ON test_chat_schema.badge_issuances USING btree (badge_purchase_id, issuance_id); + + + +CREATE INDEX idx_badge_ledger_charge ON test_chat_schema.badge_ledger USING btree (charge_id); + + + +CREATE INDEX idx_badge_ledger_from_purchase ON test_chat_schema.badge_ledger USING btree (from_purchase_id); + + + +CREATE INDEX idx_badge_ledger_payment ON test_chat_schema.badge_ledger USING btree (payment_id); + + + +CREATE INDEX idx_badge_ledger_purchase ON test_chat_schema.badge_ledger USING btree (badge_purchase_id, entry_id); + + + +CREATE INDEX idx_badge_ledger_to_purchase ON test_chat_schema.badge_ledger USING btree (to_purchase_id); + + + +CREATE UNIQUE INDEX idx_badge_ledger_uuid ON test_chat_schema.badge_ledger USING btree (entry_uuid); + + + +CREATE INDEX idx_badge_offers_price ON test_chat_schema.badge_offers USING btree (price_id); + + + +CREATE UNIQUE INDEX idx_badge_purchases_code_redemption ON test_chat_schema.badge_purchases USING btree (badge_code_redemption_id); + + + +CREATE INDEX idx_badge_purchases_user ON test_chat_schema.badge_purchases USING btree (user_id); + + + +CREATE INDEX idx_badge_subscription_changes_purchase ON test_chat_schema.badge_subscription_changes USING btree (badge_purchase_id); + + + CREATE INDEX idx_calls_chat_item_id ON test_chat_schema.calls USING btree (chat_item_id); @@ -2511,6 +2857,14 @@ CREATE INDEX idx_operator_usage_conditions_server_operator_id ON test_chat_schem +CREATE INDEX idx_payments_invoice ON test_chat_schema.payments USING btree (invoice_id); + + + +CREATE INDEX idx_payments_provider_ref ON test_chat_schema.payments USING btree (provider, provider_ref); + + + CREATE INDEX idx_pending_group_messages_group_member_id ON test_chat_schema.pending_group_messages USING btree (group_member_id); @@ -2639,6 +2993,10 @@ CREATE UNIQUE INDEX idx_user_contact_links_group_id ON test_chat_schema.user_con +CREATE INDEX idx_users_shown_badge ON test_chat_schema.users USING btree (shown_badge_id); + + + CREATE INDEX idx_xftp_file_descriptions_user_id ON test_chat_schema.xftp_file_descriptions USING btree (user_id); @@ -2659,6 +3017,91 @@ CREATE TRIGGER tr_group_members_update_update_summary AFTER UPDATE ON test_chat_ +ALTER TABLE ONLY test_chat_schema.badge_code_redemptions + ADD CONSTRAINT badge_code_redemptions_user_id_fkey FOREIGN KEY (user_id) REFERENCES test_chat_schema.users(user_id) ON DELETE CASCADE; + + + +ALTER TABLE ONLY test_chat_schema.badge_invoices + ADD CONSTRAINT badge_invoices_badge_purchase_id_fkey FOREIGN KEY (badge_purchase_id) REFERENCES test_chat_schema.badge_purchases(badge_purchase_id) ON DELETE CASCADE; + + + +ALTER TABLE ONLY test_chat_schema.badge_invoices + ADD CONSTRAINT badge_invoices_invoice_id_fkey FOREIGN KEY (invoice_id) REFERENCES test_chat_schema.invoices(invoice_id) ON DELETE CASCADE; + + + +ALTER TABLE ONLY test_chat_schema.badge_invoices + ADD CONSTRAINT badge_invoices_offer_id_fkey FOREIGN KEY (offer_id) REFERENCES test_chat_schema.badge_offers(offer_id); + + + +ALTER TABLE ONLY test_chat_schema.badge_invoices + ADD CONSTRAINT badge_invoices_price_id_fkey FOREIGN KEY (price_id) REFERENCES test_chat_schema.badge_prices(price_id); + + + +ALTER TABLE ONLY test_chat_schema.badge_issuances + ADD CONSTRAINT badge_issuances_badge_purchase_id_fkey FOREIGN KEY (badge_purchase_id) REFERENCES test_chat_schema.badge_purchases(badge_purchase_id) ON DELETE CASCADE; + + + +ALTER TABLE ONLY test_chat_schema.badge_issuances + ADD CONSTRAINT badge_issuances_entry_id_fkey FOREIGN KEY (entry_id) REFERENCES test_chat_schema.badge_ledger(entry_id); + + + +ALTER TABLE ONLY test_chat_schema.badge_ledger + ADD CONSTRAINT badge_ledger_badge_purchase_id_fkey FOREIGN KEY (badge_purchase_id) REFERENCES test_chat_schema.badge_purchases(badge_purchase_id) ON DELETE CASCADE; + + + +ALTER TABLE ONLY test_chat_schema.badge_ledger + ADD CONSTRAINT badge_ledger_charge_id_fkey FOREIGN KEY (charge_id) REFERENCES test_chat_schema.subscription_charges(charge_id); + + + +ALTER TABLE ONLY test_chat_schema.badge_ledger + ADD CONSTRAINT badge_ledger_from_purchase_id_fkey FOREIGN KEY (from_purchase_id) REFERENCES test_chat_schema.badge_purchases(badge_purchase_id); + + + +ALTER TABLE ONLY test_chat_schema.badge_ledger + ADD CONSTRAINT badge_ledger_payment_id_fkey FOREIGN KEY (payment_id) REFERENCES test_chat_schema.payments(payment_id); + + + +ALTER TABLE ONLY test_chat_schema.badge_ledger + ADD CONSTRAINT badge_ledger_to_purchase_id_fkey FOREIGN KEY (to_purchase_id) REFERENCES test_chat_schema.badge_purchases(badge_purchase_id); + + + +ALTER TABLE ONLY test_chat_schema.badge_offers + ADD CONSTRAINT badge_offers_price_id_fkey FOREIGN KEY (price_id) REFERENCES test_chat_schema.badge_prices(price_id); + + + +ALTER TABLE ONLY test_chat_schema.badge_purchases + ADD CONSTRAINT badge_purchases_badge_code_redemption_id_fkey FOREIGN KEY (badge_code_redemption_id) REFERENCES test_chat_schema.badge_code_redemptions(badge_code_redemption_id); + + + +ALTER TABLE ONLY test_chat_schema.badge_purchases + ADD CONSTRAINT badge_purchases_payment_id_fkey FOREIGN KEY (payment_id) REFERENCES test_chat_schema.payments(payment_id); + + + +ALTER TABLE ONLY test_chat_schema.badge_purchases + ADD CONSTRAINT badge_purchases_user_id_fkey FOREIGN KEY (user_id) REFERENCES test_chat_schema.users(user_id) ON DELETE CASCADE; + + + +ALTER TABLE ONLY test_chat_schema.badge_subscription_changes + ADD CONSTRAINT badge_subscription_changes_badge_purchase_id_fkey FOREIGN KEY (badge_purchase_id) REFERENCES test_chat_schema.badge_purchases(badge_purchase_id) ON DELETE CASCADE; + + + ALTER TABLE ONLY test_chat_schema.calls ADD CONSTRAINT calls_chat_item_id_fkey FOREIGN KEY (chat_item_id) REFERENCES test_chat_schema.chat_items(chat_item_id) ON DELETE CASCADE; @@ -3199,6 +3642,11 @@ ALTER TABLE ONLY test_chat_schema.operator_usage_conditions +ALTER TABLE ONLY test_chat_schema.payments + ADD CONSTRAINT payments_invoice_id_fkey FOREIGN KEY (invoice_id) REFERENCES test_chat_schema.invoices(invoice_id); + + + ALTER TABLE ONLY test_chat_schema.pending_group_messages ADD CONSTRAINT pending_group_messages_group_member_id_fkey FOREIGN KEY (group_member_id) REFERENCES test_chat_schema.group_members(group_member_id) ON DELETE CASCADE; @@ -3304,6 +3752,11 @@ ALTER TABLE ONLY test_chat_schema.snd_files +ALTER TABLE ONLY test_chat_schema.subscription_charges + ADD CONSTRAINT subscription_charges_payment_id_fkey FOREIGN KEY (payment_id) REFERENCES test_chat_schema.payments(payment_id) ON DELETE CASCADE; + + + ALTER TABLE ONLY test_chat_schema.user_contact_links ADD CONSTRAINT user_contact_links_group_id_fkey FOREIGN KEY (group_id) REFERENCES test_chat_schema.groups(group_id) ON DELETE CASCADE; @@ -3314,6 +3767,11 @@ ALTER TABLE ONLY test_chat_schema.user_contact_links +ALTER TABLE ONLY test_chat_schema.users + ADD CONSTRAINT users_shown_badge_id_fkey FOREIGN KEY (shown_badge_id) REFERENCES test_chat_schema.badge_purchases(badge_purchase_id) ON DELETE SET NULL; + + + ALTER TABLE ONLY test_chat_schema.xftp_file_descriptions ADD CONSTRAINT xftp_file_descriptions_user_id_fkey FOREIGN KEY (user_id) REFERENCES test_chat_schema.users(user_id) ON DELETE CASCADE; diff --git a/src/Simplex/Chat/Store/SQLite/Migrations.hs b/src/Simplex/Chat/Store/SQLite/Migrations.hs index de5acc3c82..d420af7f4b 100644 --- a/src/Simplex/Chat/Store/SQLite/Migrations.hs +++ b/src/Simplex/Chat/Store/SQLite/Migrations.hs @@ -171,6 +171,7 @@ import Simplex.Chat.Store.SQLite.Migrations.M20260720_server_roles import Simplex.Chat.Store.SQLite.Migrations.M20260723_contact_request_rejection import Simplex.Chat.Store.SQLite.Migrations.M20260813_auto_accept_group_invitations import Simplex.Chat.Store.SQLite.Migrations.M20260822_forward_link +import Simplex.Chat.Store.SQLite.Migrations.M20261001_user_badges import Simplex.Messaging.Agent.Store.Shared (Migration (..)) schemaMigrations :: [(String, Query, Maybe Query)] @@ -341,7 +342,8 @@ schemaMigrations = ("20260720_server_roles", m20260720_server_roles, Just down_m20260720_server_roles), ("20260723_contact_request_rejection", m20260723_contact_request_rejection, Just down_m20260723_contact_request_rejection), ("20260813_auto_accept_group_invitations", m20260813_auto_accept_group_invitations, Just down_m20260813_auto_accept_group_invitations), - ("20260822_forward_link", m20260822_forward_link, Just down_m20260822_forward_link) + ("20260822_forward_link", m20260822_forward_link, Just down_m20260822_forward_link), + ("20261001_user_badges", m20261001_user_badges, Just down_m20261001_user_badges) ] -- | The list of migrations in ascending order by date diff --git a/src/Simplex/Chat/Store/SQLite/Migrations/M20261001_user_badges.hs b/src/Simplex/Chat/Store/SQLite/Migrations/M20261001_user_badges.hs index 94b2fbc41e..af91e24af0 100644 --- a/src/Simplex/Chat/Store/SQLite/Migrations/M20261001_user_badges.hs +++ b/src/Simplex/Chat/Store/SQLite/Migrations/M20261001_user_badges.hs @@ -37,7 +37,7 @@ CREATE TABLE @invoices( status TEXT NOT NULL, created_at TEXT NOT NULL, updated_at TEXT NOT NULL -); +) STRICT; CREATE TABLE @payments( payment_id TEXT NOT NULL PRIMARY KEY, @@ -53,7 +53,7 @@ CREATE TABLE @payments( cancelled INTEGER NOT NULL DEFAULT 0, created_at TEXT NOT NULL, updated_at TEXT NOT NULL -); +) STRICT; CREATE INDEX @idx_payments_provider_ref ON @payments(provider, provider_ref); @@ -69,7 +69,7 @@ CREATE TABLE @subscription_charges( currency TEXT NOT NULL, charged_at TEXT NOT NULL, UNIQUE(payment_id, provider_charge_ref) -); +) STRICT; CREATE TABLE @badge_prices( price_id TEXT NOT NULL PRIMARY KEY, @@ -78,7 +78,7 @@ CREATE TABLE @badge_prices( currency TEXT NOT NULL, status TEXT NOT NULL, created_at TEXT NOT NULL -); +) STRICT; CREATE TABLE @badge_offers( offer_id TEXT NOT NULL PRIMARY KEY, @@ -88,7 +88,9 @@ CREATE TABLE @badge_offers( discount INTEGER, status TEXT NOT NULL, created_at TEXT NOT NULL -); +) STRICT; + +CREATE INDEX @idx_badge_offers_price ON @badge_offers(price_id); CREATE TABLE @badge_purchases( badge_purchase_id INTEGER PRIMARY KEY AUTOINCREMENT, @@ -102,7 +104,7 @@ CREATE TABLE @badge_purchases( updated_at TEXT NOT NULL, UNIQUE(purchase_key), UNIQUE(payment_id) -); +) STRICT; CREATE TABLE @badge_invoices( invoice_id TEXT NOT NULL PRIMARY KEY REFERENCES @invoices ON DELETE CASCADE, @@ -111,10 +113,14 @@ CREATE TABLE @badge_invoices( offer_id TEXT REFERENCES @badge_offers, months INTEGER NOT NULL, created_at TEXT NOT NULL -); +) STRICT; CREATE INDEX @idx_badge_invoices_purchase ON @badge_invoices(badge_purchase_id); +CREATE INDEX @idx_badge_invoices_offer ON @badge_invoices(offer_id); + +CREATE INDEX @idx_badge_invoices_price ON @badge_invoices(price_id); + CREATE TABLE @badge_subscription_changes( change_id TEXT NOT NULL PRIMARY KEY, badge_purchase_id INTEGER NOT NULL REFERENCES @badge_purchases ON DELETE CASCADE, @@ -127,7 +133,7 @@ CREATE TABLE @badge_subscription_changes( effective_at TEXT, created_at TEXT NOT NULL, updated_at TEXT NOT NULL -); +) STRICT; CREATE INDEX @idx_badge_subscription_changes_purchase ON @badge_subscription_changes(badge_purchase_id); @@ -149,7 +155,7 @@ CREATE TABLE @badge_ledger( charge_id TEXT REFERENCES @subscription_charges, from_purchase_id INTEGER REFERENCES @badge_purchases, to_purchase_id INTEGER REFERENCES @badge_purchases -); +) STRICT; CREATE UNIQUE INDEX @idx_badge_ledger_uuid ON @badge_ledger(entry_uuid); @@ -173,15 +179,18 @@ CREATE TABLE @badge_issuances( expiry TEXT NOT NULL, credential BLOB NOT NULL, created_at TEXT NOT NULL -); +) STRICT; CREATE INDEX @idx_badge_issuances_purchase ON @badge_issuances(badge_purchase_id, issuance_id); + +CREATE INDEX @idx_badge_issuances_entry ON @badge_issuances(entry_id); |] badgeSchemaTablesDown :: Query badgeSchemaTablesDown = [sql| DROP INDEX @idx_badge_issuances_purchase; +DROP INDEX @idx_badge_issuances_entry; DROP TABLE @badge_issuances; DROP INDEX @idx_badge_ledger_uuid; DROP INDEX @idx_badge_ledger_purchase; @@ -193,6 +202,8 @@ DROP TABLE @badge_ledger; DROP INDEX @idx_badge_subscription_changes_purchase; DROP TABLE @badge_subscription_changes; DROP INDEX @idx_badge_invoices_purchase; +DROP INDEX @idx_badge_invoices_offer; +DROP INDEX @idx_badge_invoices_price; DROP TABLE @badge_invoices; DROP TABLE @badge_purchases; DROP TABLE @subscription_charges; @@ -200,6 +211,7 @@ DROP INDEX @idx_payments_provider_ref; DROP INDEX @idx_payments_invoice; DROP TABLE @payments; DROP TABLE @invoices; +DROP INDEX @idx_badge_offers_price; DROP TABLE @badge_offers; DROP TABLE @badge_prices; |] @@ -230,6 +242,8 @@ CREATE INDEX idx_badge_purchases_user ON badge_purchases(user_id); ALTER TABLE users ADD COLUMN shown_badge_id INTEGER REFERENCES badge_purchases ON DELETE SET NULL; +CREATE INDEX idx_users_shown_badge ON users(shown_badge_id); + CREATE TABLE badge_code_redemptions( badge_code_redemption_id INTEGER PRIMARY KEY AUTOINCREMENT, user_id INTEGER NOT NULL REFERENCES users ON DELETE CASCADE, @@ -239,7 +253,7 @@ CREATE TABLE badge_code_redemptions( master_key BLOB NOT NULL, created_at TEXT NOT NULL, UNIQUE(code) -); +) STRICT; CREATE INDEX idx_badge_code_redemptions_user ON badge_code_redemptions(user_id); @@ -253,6 +267,7 @@ down_m20261001_user_badges = [sql| DROP INDEX idx_badge_purchases_code_redemption; DROP INDEX idx_badge_purchases_user; +DROP INDEX idx_users_shown_badge; ALTER TABLE users DROP COLUMN shown_badge_id; |] <> badgeSchemaDown "" diff --git a/src/Simplex/Chat/Store/SQLite/Migrations/chat_schema.sql b/src/Simplex/Chat/Store/SQLite/Migrations/chat_schema.sql index a488d7da21..059b39ec89 100644 --- a/src/Simplex/Chat/Store/SQLite/Migrations/chat_schema.sql +++ b/src/Simplex/Chat/Store/SQLite/Migrations/chat_schema.sql @@ -54,7 +54,8 @@ CREATE TABLE users( auto_accept_member_contacts INTEGER NOT NULL DEFAULT 0, is_user_chat_relay INTEGER NOT NULL DEFAULT 0, client_service INTEGER NOT NULL DEFAULT 0, - auto_accept_group_invitations INTEGER NOT NULL DEFAULT 0, -- 1 for active user + auto_accept_group_invitations INTEGER NOT NULL DEFAULT 0, + shown_badge_id INTEGER REFERENCES badge_purchases ON DELETE SET NULL, -- 1 for active user FOREIGN KEY(user_id, local_display_name) REFERENCES display_names(user_id, local_display_name) ON DELETE RESTRICT @@ -851,6 +852,152 @@ CREATE TABLE rcv_roster_transfers( created_at TEXT NOT NULL DEFAULT(datetime('now')), updated_at TEXT NOT NULL DEFAULT(datetime('now')) ) STRICT; +CREATE TABLE invoices( + invoice_id TEXT NOT NULL PRIMARY KEY, + provider TEXT NOT NULL, + price INTEGER NOT NULL, + discount_amount INTEGER, + credit_amount INTEGER, + amount INTEGER NOT NULL, + currency TEXT NOT NULL, + payment_url TEXT, + payment_address TEXT, + payment_crypto_currency TEXT, + payment_crypto_amount TEXT, + expires_at TEXT NOT NULL, + status TEXT NOT NULL, + created_at TEXT NOT NULL, + updated_at TEXT NOT NULL +) STRICT; +CREATE TABLE payments( + payment_id TEXT NOT NULL PRIMARY KEY, + invoice_id TEXT REFERENCES invoices, + provider TEXT NOT NULL, + provider_ref TEXT, + amount INTEGER, + currency TEXT, + status TEXT NOT NULL, + exception TEXT, + subscription_renews_at TEXT, + grace_until TEXT, + cancelled INTEGER NOT NULL DEFAULT 0, + created_at TEXT NOT NULL, + updated_at TEXT NOT NULL + , + evidence BLOB, + receipt_code TEXT +) STRICT; +CREATE TABLE subscription_charges( + charge_id TEXT NOT NULL PRIMARY KEY, + payment_id TEXT NOT NULL REFERENCES payments ON DELETE CASCADE, + provider_charge_ref TEXT NOT NULL, + period_start TEXT NOT NULL, + period_end TEXT NOT NULL, + amount INTEGER NOT NULL, + currency TEXT NOT NULL, + charged_at TEXT NOT NULL, + UNIQUE(payment_id, provider_charge_ref) +) STRICT; +CREATE TABLE badge_prices( + price_id TEXT NOT NULL PRIMARY KEY, + badge_type TEXT NOT NULL, + month_price INTEGER NOT NULL, + currency TEXT NOT NULL, + status TEXT NOT NULL, + created_at TEXT NOT NULL +) STRICT; +CREATE TABLE badge_offers( + offer_id TEXT NOT NULL PRIMARY KEY, + price_id TEXT REFERENCES badge_prices, + months INTEGER NOT NULL, + free_months INTEGER, + discount INTEGER, + status TEXT NOT NULL, + created_at TEXT NOT NULL +) STRICT; +CREATE TABLE badge_purchases( + badge_purchase_id INTEGER PRIMARY KEY AUTOINCREMENT, + purchase_key BLOB NOT NULL, + master_key BLOB NOT NULL, + initial_badge_type TEXT NOT NULL, + current_badge_type TEXT NOT NULL, + payment_id TEXT REFERENCES payments, + status TEXT NOT NULL, + created_at TEXT NOT NULL, + updated_at TEXT NOT NULL, + user_id INTEGER REFERENCES users ON DELETE CASCADE, + purchase_priv_key BLOB, + alert_acked_kind TEXT, + alert_acked_episode TEXT, + alert_snooze_until TEXT, + badge_code_redemption_id INTEGER REFERENCES badge_code_redemptions, + UNIQUE(purchase_key), + UNIQUE(payment_id) +) STRICT; +CREATE TABLE badge_invoices( + invoice_id TEXT NOT NULL PRIMARY KEY REFERENCES invoices ON DELETE CASCADE, + badge_purchase_id INTEGER NOT NULL REFERENCES badge_purchases ON DELETE CASCADE, + price_id TEXT NOT NULL REFERENCES badge_prices, + offer_id TEXT REFERENCES badge_offers, + months INTEGER NOT NULL, + created_at TEXT NOT NULL +) STRICT; +CREATE TABLE badge_subscription_changes( + change_id TEXT NOT NULL PRIMARY KEY, + badge_purchase_id INTEGER NOT NULL REFERENCES badge_purchases ON DELETE CASCADE, + from_badge_type TEXT NOT NULL, + to_badge_type TEXT NOT NULL, + from_provider_ref TEXT, + to_provider_ref TEXT, + effective TEXT NOT NULL, + status TEXT NOT NULL, + effective_at TEXT, + created_at TEXT NOT NULL, + updated_at TEXT NOT NULL +) STRICT; +CREATE TABLE badge_ledger( + entry_id INTEGER PRIMARY KEY AUTOINCREMENT, + entry_uuid TEXT NOT NULL, + badge_purchase_id INTEGER NOT NULL REFERENCES badge_purchases ON DELETE CASCADE, + change_months INTEGER NOT NULL, + balance_months INTEGER NOT NULL, + balance_start_ts TEXT NOT NULL, + balance_badge_type TEXT NOT NULL, + was_paused_since TEXT, + service_created_at TEXT NOT NULL, + created_at TEXT NOT NULL, + entry_type TEXT NOT NULL, + entry_credit_type TEXT, + entry_debit_type TEXT, + payment_id TEXT REFERENCES payments, + charge_id TEXT REFERENCES subscription_charges, + from_purchase_id INTEGER REFERENCES badge_purchases, + to_purchase_id INTEGER REFERENCES badge_purchases + , + entry_type_unknown INTEGER NOT NULL DEFAULT 0, + entry_type_value TEXT +) STRICT; +CREATE TABLE badge_issuances( + issuance_id TEXT NOT NULL PRIMARY KEY, + badge_purchase_id INTEGER NOT NULL REFERENCES badge_purchases ON DELETE CASCADE, + entry_id INTEGER REFERENCES badge_ledger, + badge_type TEXT NOT NULL, + period_start TEXT NOT NULL, + period_end TEXT NOT NULL, + expiry TEXT NOT NULL, + credential BLOB NOT NULL, + created_at TEXT NOT NULL +) STRICT; +CREATE TABLE badge_code_redemptions( + badge_code_redemption_id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL REFERENCES users ON DELETE CASCADE, + code TEXT NOT NULL, + purchase_key BLOB NOT NULL, + purchase_priv_key BLOB NOT NULL, + master_key BLOB NOT NULL, + created_at TEXT NOT NULL, + UNIQUE(code) +) STRICT; CREATE INDEX contact_profiles_index ON contact_profiles( display_name, full_name @@ -1385,6 +1532,37 @@ CREATE INDEX idx_files_roster_transfer_id ON files(roster_transfer_id); CREATE INDEX idx_chat_items_item_signed_by_group_member_id ON chat_items( item_signed_by_group_member_id ); +CREATE INDEX idx_payments_provider_ref ON payments(provider, provider_ref); +CREATE INDEX idx_payments_invoice ON payments(invoice_id); +CREATE INDEX idx_badge_offers_price ON badge_offers(price_id); +CREATE INDEX idx_badge_invoices_purchase ON badge_invoices(badge_purchase_id); +CREATE INDEX idx_badge_invoices_offer ON badge_invoices(offer_id); +CREATE INDEX idx_badge_invoices_price ON badge_invoices(price_id); +CREATE INDEX idx_badge_subscription_changes_purchase ON badge_subscription_changes( + badge_purchase_id +); +CREATE UNIQUE INDEX idx_badge_ledger_uuid ON badge_ledger(entry_uuid); +CREATE INDEX idx_badge_ledger_purchase ON badge_ledger( + badge_purchase_id, + entry_id +); +CREATE INDEX idx_badge_ledger_payment ON badge_ledger(payment_id); +CREATE INDEX idx_badge_ledger_charge ON badge_ledger(charge_id); +CREATE INDEX idx_badge_ledger_from_purchase ON badge_ledger(from_purchase_id); +CREATE INDEX idx_badge_ledger_to_purchase ON badge_ledger(to_purchase_id); +CREATE INDEX idx_badge_issuances_purchase ON badge_issuances( + badge_purchase_id, + issuance_id +); +CREATE INDEX idx_badge_issuances_entry ON badge_issuances(entry_id); +CREATE INDEX idx_badge_purchases_user ON badge_purchases(user_id); +CREATE INDEX idx_users_shown_badge ON users(shown_badge_id); +CREATE INDEX idx_badge_code_redemptions_user ON badge_code_redemptions( + user_id +); +CREATE UNIQUE INDEX idx_badge_purchases_code_redemption ON badge_purchases( + badge_code_redemption_id +); CREATE TRIGGER on_group_members_insert_update_summary AFTER INSERT ON group_members FOR EACH ROW From 3ddf17dce5e8a4bc6dde8cdc24e8014f52975be1 Mon Sep 17 00:00:00 2001 From: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com> Date: Tue, 1 Sep 2026 12:06:51 +0000 Subject: [PATCH 09/62] core: redeem badge codes (#7438) --- apps/simplex-badge-service/Main.hs | 2 +- apps/simplex-badge-service/README.md | 36 ++- .../src/BadgeService/Options.hs | 33 +++ .../src/BadgeService/Service.hs | 242 +++++++++++++++-- .../src/BadgeService/Store.hs | 135 ++++++++++ .../src/Directory/Service.hs | 2 +- .../src/Directory/Store.hs | 2 +- bots/src/API/Docs/Commands.hs | 1 + bots/src/API/Docs/Responses.hs | 1 + simplex-chat.cabal | 11 +- src/Simplex/Chat.hs | 1 + src/Simplex/Chat/Badges/Code.hs | 118 ++++++++ src/Simplex/Chat/Badges/Service.hs | 83 +++++- src/Simplex/Chat/Badges/Types.hs | 56 +++- .../Util.hs => src/Simplex/Chat/Bot/Store.hs | 7 +- src/Simplex/Chat/Controller.hs | 6 +- src/Simplex/Chat/Library/Commands.hs | 145 ++++++++-- src/Simplex/Chat/PaymentService.hs | 7 + src/Simplex/Chat/PaymentService/Types.hs | 15 +- src/Simplex/Chat/Store/Badges.hs | 133 +++++++++ .../Migrations/M20261001_user_badges.hs | 2 +- .../Store/Postgres/Migrations/chat_schema.sql | 4 +- .../Migrations/M20261001_user_badges.hs | 2 +- .../SQLite/Migrations/chat_query_plans.txt | 48 ++++ .../Store/SQLite/Migrations/chat_schema.sql | 2 +- src/Simplex/Chat/View.hs | 2 + tests/BadgeTests.hs | 153 +++++++++++ tests/Bots/BadgeServiceTests.hs | 255 ++++++++++++++++-- 28 files changed, 1408 insertions(+), 96 deletions(-) create mode 100644 apps/simplex-badge-service/src/BadgeService/Store.hs create mode 100644 src/Simplex/Chat/Badges/Code.hs rename apps/simplex-directory-service/src/Directory/Util.hs => src/Simplex/Chat/Bot/Store.hs (93%) create mode 100644 src/Simplex/Chat/Store/Badges.hs diff --git a/apps/simplex-badge-service/Main.hs b/apps/simplex-badge-service/Main.hs index b870ea8671..64a2e1d553 100644 --- a/apps/simplex-badge-service/Main.hs +++ b/apps/simplex-badge-service/Main.hs @@ -11,4 +11,4 @@ main = do opts@BadgeServiceOpts {runCLI} <- welcomeGetOpts if runCLI then badgeServiceCLI opts - else badgeService opts terminalChatConfig + else newServiceState >>= badgeService opts terminalChatConfig diff --git a/apps/simplex-badge-service/README.md b/apps/simplex-badge-service/README.md index 2d3c2153f3..9776a8de05 100644 --- a/apps/simplex-badge-service/README.md +++ b/apps/simplex-badge-service/README.md @@ -5,11 +5,12 @@ Scaffolding for the SimpleX supporter-badge RPC service. The wire protocol is sp At this stage the service: - creates a double-ratchet contact address on first start (service RPC requires DR, see [`docs/protocol/badges-rpc.md`](../../docs/protocol/badges-rpc.md)), -- listens for service requests (`CEvtServiceRequest`) on that address and responds to every command with `unsupported_version`, +- listens for service requests (`CEvtServiceRequest`) on that address, rejects a request whose `purchaseKey` is not the key the agent verified the signature against, and answers `redeemBadgeCode`, +- issues redemption codes, storing only their `SHA-256` and printing each code once, - does not accept contact requests — the address is for RPC only, -- exposes a placeholder schema migration (`sx_badge_service_test`) and its own migrations table (`sx_badge_service_migrations`). +- owns the `sx_badge_service_`-prefixed tables and its own migrations table (`sx_badge_service_migrations`). -Business logic — command dispatch, ledger writes, credential signing, provider webhooks — is left for follow-up per the plans. +Every other command still answers `unsupported_version`. Ledger writes, invoices and provider webhooks are left for follow-up per the plans; a redemption issues one credential and reports an empty statement. ## Build @@ -28,3 +29,32 @@ simplex-badge-service --help - default (no `--run-cli`): background service mode, no interactive terminal. - `--run-cli`: interactive CLI that also processes service requests (mirrors `simplex-directory-service --run-cli`). - `--no-address`: skip address creation on start-up (for operators who provision the address themselves). + +The service cannot sign credentials without an issuer key and refuses to start without one: + +- `--issuer-key-idx IDX` — the index the apps find the matching public key under (`badgePublicKeys` in `ChatConfig`). +- `--issuer-secret SECRET` — the issuer secret from `simplex-chat badge keygen`. + +The service checks the secret against the configured public key at that index and refuses to start +if they disagree: credentials signed with the wrong key cannot be verified by any client, and the +codes redeemed against them would be spent for nothing. + +## Issuing codes + +Issuing a code is an operator command sent to the running service in `--run-cli` mode, not a way +to start it — so codes are issued without a second process touching the service's database: + +``` +//issue [months] [paid|unpaid|free] +//issue supporter 12 +``` + +`months` defaults to 1 and must be between 1 and 255; the status defaults to `free` and records +whether the code was sold (`paid`), is awaiting payment (`unpaid`), or was issued by an operator +(`free`) — redemption never reads it. + +The code is printed once and only its `SHA-256` is stored, so a code that is not copied when it is +shown cannot be recovered. + +Core parses `//...` into `CustomChatCommand` and leaves it to the service's `preCmdHook`, which is +why issuing codes lives in the service rather than in core. diff --git a/apps/simplex-badge-service/src/BadgeService/Options.hs b/apps/simplex-badge-service/src/BadgeService/Options.hs index 82d82a454d..a2cd46fd84 100644 --- a/apps/simplex-badge-service/src/BadgeService/Options.hs +++ b/apps/simplex-badge-service/src/BadgeService/Options.hs @@ -5,16 +5,20 @@ module BadgeService.Options ( BadgeServiceOpts (..), + BadgeIssuerKey (..), getBadgeServiceOpts, badgeServiceOpts, mkChatOpts, ) where +import qualified Data.ByteString.Char8 as B import qualified Data.Text as T import Options.Applicative import Simplex.Chat.Controller (updateStr, versionNumber, versionString) import Simplex.Chat.Options (ChatCmdLog (..), ChatOpts (..), CoreChatOpts, CreateBotOpts (..), coreChatOptsP) +import Simplex.Messaging.Crypto.BBS (BBSSecretKey) +import Simplex.Messaging.Encoding.String (strDecode) data BadgeServiceOpts = BadgeServiceOpts { coreOptions :: CoreChatOpts, @@ -22,9 +26,21 @@ data BadgeServiceOpts = BadgeServiceOpts clientService :: Bool, noAddress :: Bool, runCLI :: Bool, + -- the service refuses to start without this: it cannot sign a credential + issuerKey :: Maybe BadgeIssuerKey, testing :: Bool } +-- | The issuer secret that signs credentials, and the index the apps find its public half under. +data BadgeIssuerKey = BadgeIssuerKey + { keyIdx :: Int, + secretKey :: BBSSecretKey + } + +-- BBSSecretKey derives Show, so this is written out to keep the secret out of logs and errors +instance Show BadgeIssuerKey where + show BadgeIssuerKey {keyIdx} = "issuer key " <> show keyIdx + badgeServiceOpts :: FilePath -> FilePath -> Parser BadgeServiceOpts badgeServiceOpts appDir defaultDbName = do coreOptions <- coreChatOptsP appDir defaultDbName @@ -50,6 +66,22 @@ badgeServiceOpts appDir defaultDbName = do ( long "run-cli" <> help "Run badge service as CLI" ) + issuerKeyIdx <- + optional $ + option + auto + ( long "issuer-key-idx" + <> metavar "KEY_IDX" + <> help "Index of the issuer key in the app config (required with --issuer-secret)" + ) + issuerSecret <- + optional $ + option + (eitherReader $ strDecode . B.pack) + ( long "issuer-secret" + <> metavar "ISSUER_SECRET" + <> help "Issuer secret from `simplex-chat badge keygen` (base64url)" + ) pure BadgeServiceOpts { coreOptions, @@ -57,6 +89,7 @@ badgeServiceOpts appDir defaultDbName = do clientService, noAddress, runCLI, + issuerKey = BadgeIssuerKey <$> issuerKeyIdx <*> issuerSecret, testing = False } diff --git a/apps/simplex-badge-service/src/BadgeService/Service.hs b/apps/simplex-badge-service/src/BadgeService/Service.hs index 64e934872e..bfcaeda085 100644 --- a/apps/simplex-badge-service/src/BadgeService/Service.hs +++ b/apps/simplex-badge-service/src/BadgeService/Service.hs @@ -4,36 +4,60 @@ {-# LANGUAGE OverloadedStrings #-} module BadgeService.Service - ( welcomeGetOpts, + ( ServiceState (..), + newServiceState, + welcomeGetOpts, + checkIssuerKey, badgeService, badgeServiceCLI, + IssueCodeOpts (..), + issueBadgeCode, ) where import BadgeService.Options +import BadgeService.Store import BadgeService.Store.Migrate (runBadgeServiceMigrations) +import Control.Applicative (optional) import Control.Concurrent.STM import Control.Logger.Simple import Control.Monad +import Control.Monad.IO.Class (liftIO) import qualified Data.Aeson as J import qualified Data.Aeson.KeyMap as KM +import qualified Data.Attoparsec.ByteString.Char8 as A +import Data.ByteString.Char8 (ByteString) +import Data.Char (isSpace) +import Data.Functor (($>)) +import Data.Maybe (fromMaybe) +import qualified Data.Map.Strict as M import qualified Data.Text as T -import Simplex.Chat.Badges.Service (BadgeServiceErrorCode (..)) +import Data.Time.Calendar (addDays, addGregorianMonthsClip) +import Data.Time.Calendar.WeekDate (toWeekDate) +import Data.Time.Clock (UTCTime (..), getCurrentTime) +import Simplex.Chat.Badges +import Simplex.Chat.Badges.Code +import Simplex.Chat.Badges.Service +import Simplex.Chat.Badges.Types (BadgeCodePaymentStatus (..)) import Simplex.Chat.Bot (initializeBotAddress') +import Simplex.Chat.Bot.Store (withDB, withDB') import Simplex.Chat.Controller import Simplex.Chat.Core (sendChatCmd, simplexChatCore) import Simplex.Chat.Options (printDbOpts) import Simplex.Chat.Terminal (terminalChatConfig) import Simplex.Chat.Terminal.Main (simplexChatCLI') import Simplex.Chat.Types (AgentInvId (..), User (..)) -import Simplex.Messaging.Encoding.String (strEncode) +import qualified Simplex.Messaging.Crypto as C +import Simplex.Messaging.Crypto.BBS (bbsPublicKey) +import Simplex.Messaging.Encoding.String (TextEncoding, strEncode, textDecode) +import Simplex.Messaging.Version (isCompatible) import Simplex.Messaging.Util (raceAny_, safeDecodeUtf8, tshow) import System.Directory (getAppUserDataDirectory) import System.Exit (exitFailure) data ServiceState = ServiceState { serviceCC :: TMVar ChatController, - serviceRequestQ :: TQueue (User, AgentInvId, J.Object) + serviceRequestQ :: TQueue (User, AgentInvId, Maybe C.PublicKeyEd25519, J.Object) } newServiceState :: IO ServiceState @@ -52,48 +76,123 @@ welcomeGetOpts = do putStrLn $ "Service name: " ++ T.unpack serviceName pure opts -badgeService :: BadgeServiceOpts -> ChatConfig -> IO () -badgeService opts cfg = do - env <- newServiceState +-- | Check the secret is the key trusted at its index: otherwise every code redeemed is burned. +checkIssuerKey :: BadgeServiceOpts -> ChatConfig -> IO (Either String BadgeIssuerKey) +checkIssuerKey BadgeServiceOpts {issuerKey} ChatConfig {badgePublicKeys} = case issuerKey of + Nothing -> pure $ Left "an issuer key is required - pass both --issuer-key-idx and --issuer-secret (see `simplex-chat badge keygen`)" + Just k@BadgeIssuerKey {keyIdx, secretKey} -> + bbsPublicKey secretKey >>= \case + Left e -> pure $ Left $ "issuer secret is not a valid key: " <> e + Right pk -> pure $ case M.lookup keyIdx badgePublicKeys of + Just pk' | pk' == pk -> Right k + Just _ -> Left $ "issuer secret does not match the configured key at index " <> show keyIdx <> ", its public key is " <> T.unpack (safeDecodeUtf8 $ strEncode pk) + Nothing -> Left $ "no configured badge key at index " <> show keyIdx <> ", clients could not verify what this service signs" + +requireIssuerKey :: BadgeServiceOpts -> ChatConfig -> IO BadgeIssuerKey +requireIssuerKey opts cfg = + checkIssuerKey opts cfg >>= either (\e -> putStrLn ("Error: " <> e) >> exitFailure) pure + +badgeService :: BadgeServiceOpts -> ChatConfig -> ServiceState -> IO () +badgeService opts cfg env = do + key <- requireIssuerKey opts cfg let chatHooks = defaultChatHooks { preStartHook = Just $ badgePreStartHook opts, - postStartHook = Just $ badgePostStartHook opts env + postStartHook = Just $ badgePostStartHook opts env, + preCmdHook = Just badgeCmdHook } + -- the reader must not block: outputQ carries every chat event simplexChatCore cfg {chatHooks} (mkChatOpts opts) $ \_ cc -> - forever $ do - (_, event) <- atomically . readTBQueue $ outputQ cc - case event of - -- TODO enforce _sigKey == BadgeServiceRequest.purchaseKey (docs/protocol/badges-rpc.md). - Right (CEvtServiceRequest u reqId _sigKey reqData) -> handleServiceRequest cc u reqId reqData - _ -> pure () + raceAny_ + [ forever $ + atomically (readTBQueue $ outputQ cc) >>= \case + (_, Right (CEvtServiceRequest u reqId sigKey reqData)) -> + atomically $ writeTQueue (serviceRequestQ env) (u, reqId, sigKey, reqData) + _ -> pure (), + processQueuedRequests key env + ] badgeServiceCLI :: BadgeServiceOpts -> IO () badgeServiceCLI opts = do + key <- requireIssuerKey opts terminalChatConfig env <- newServiceState let eventHook _cc ev = do case ev of - Right (CEvtServiceRequest u reqId _sigKey reqData) -> - atomically $ writeTQueue (serviceRequestQ env) (u, reqId, reqData) + Right (CEvtServiceRequest u reqId sigKey reqData) -> + atomically $ writeTQueue (serviceRequestQ env) (u, reqId, sigKey, reqData) _ -> pure () pure ev chatHooks = defaultChatHooks { preStartHook = Just $ badgePreStartHook opts, postStartHook = Just $ badgePostStartHook opts env, + preCmdHook = Just badgeCmdHook, eventHook = Just eventHook } raceAny_ [ simplexChatCLI' terminalChatConfig {chatHooks} (mkChatOpts opts) Nothing, - processQueuedRequests env + processQueuedRequests key env ] -processQueuedRequests :: ServiceState -> IO () -processQueuedRequests env = do +-- | issuing codes lives here rather than in core: every user's app would otherwise ship it +badgeCmdHook :: ChatController -> ChatCommand -> IO (Either (Either ChatError ChatResponse) ChatCommand) +badgeCmdHook cc = \case + CustomChatCommand cmd -> Left <$> runBadgeCmd cc cmd + cmd -> pure $ Right cmd + +runBadgeCmd :: ChatController -> ByteString -> IO (Either ChatError ChatResponse) +runBadgeCmd cc cmd = case A.parseOnly issueCmdP cmd of + Left _ -> pure $ chatCmdError "use: //issue supporter|legend|investor [months 1-255] [paid|unpaid|free]" + Right issueOpts -> + issueBadgeCode cc issueOpts >>= \case + Right code -> pure $ Right CRCustomChatResponse {user_ = Nothing, response = "code " <> formatBadgeCode code} + Left e -> pure $ chatCmdError $ "issuing code: " <> e + +issueCmdP :: A.Parser IssueCodeOpts +issueCmdP = + "issue " *> do + badgeType <- badgeTypeP + months_ <- optional (A.space *> A.decimal) + -- outside `optional`, which would otherwise backtrack past a bad count + months <- maybe (pure 1) checkMonths months_ + paymentStatus <- fromMaybe CPSFree <$> optional (A.space *> textTokenP) + A.skipSpace + A.endOfInput + pure IssueCodeOpts {badgeType, months, paymentStatus} + where + checkMonths n + | n >= 1 && n <= (255 :: Int) = pure n + | otherwise = fail "months must be between 1 and 255" + -- BadgeType decodes anything to BTUnknown, so a typo would issue an unusable code + badgeTypeP = + textTokenP >>= \case + BTUnknown t -> fail $ "unknown badge type " <> T.unpack t + bt -> pure bt + textTokenP :: TextEncoding a => A.Parser a + textTokenP = do + t <- A.takeWhile1 (not . isSpace) + maybe (fail "invalid value") pure $ textDecode $ safeDecodeUtf8 t + +data IssueCodeOpts = IssueCodeOpts + { badgeType :: BadgeType, + months :: Int, + paymentStatus :: BadgeCodePaymentStatus + } + +-- | The caller sees the code once; only its hash is stored, so a lost code cannot be recovered. +issueBadgeCode :: ChatController -> IssueCodeOpts -> IO (Either String BadgeCode) +issueBadgeCode cc IssueCodeOpts {badgeType, months, paymentStatus} = do + code <- randomBadgeCode $ random cc + now <- getCurrentTime + r <- withDB' "issueBadgeCode" cc $ \db -> insertBadgeCode db (badgeCodeHash code) badgeType months paymentStatus now + pure $ code <$ r + +processQueuedRequests :: BadgeIssuerKey -> ServiceState -> IO () +processQueuedRequests key env = do cc <- atomically $ readTMVar $ serviceCC env forever $ do - (u, reqId, reqData) <- atomically $ readTQueue $ serviceRequestQ env - handleServiceRequest cc u reqId reqData + (u, reqId, sigKey, reqData) <- atomically $ readTQueue $ serviceRequestQ env + handleServiceRequest key cc u reqId sigKey reqData badgePreStartHook :: BadgeServiceOpts -> ChatController -> IO () badgePreStartHook opts ChatController {config, chatStore} = @@ -110,11 +209,104 @@ badgePostStartHook BadgeServiceOpts {noAddress, testing} env cc = do unless noAddress $ initializeBotAddress' (not testing) (Just True) False cc void $ atomically $ tryPutTMVar (serviceCC env) cc -handleServiceRequest :: ChatController -> User -> AgentInvId -> J.Object -> IO () -handleServiceRequest cc User {userId} reqId _reqData = do +handleServiceRequest :: BadgeIssuerKey -> ChatController -> User -> AgentInvId -> Maybe C.PublicKeyEd25519 -> J.Object -> IO () +handleServiceRequest key cc User {userId} reqId sigKey reqData = do let reqIdT = safeDecodeUtf8 (strEncode reqId) - respObj = KM.fromList [("type", J.String "error"), ("code", J.toJSON BSEUnsupportedVersion)] logInfo $ "badge service request " <> reqIdT - sendChatCmd cc (APISendServiceResponse userId reqId respObj) >>= \case + resp <- badgeServiceResponse key cc sigKey reqData + sendChatCmd cc (APISendServiceResponse userId reqId (responseObject resp)) >>= \case Right _ -> pure () Left e -> logError $ "badge service response failed for " <> reqIdT <> ": " <> tshow e + +responseObject :: BadgeServiceResponse -> J.Object +responseObject r = case J.toJSON r of + J.Object o -> o + _ -> KM.fromList [("type", J.String "error"), ("code", J.toJSON BSEInternal)] + +errorResponse :: BadgeServiceErrorCode -> BadgeServiceResponse +errorResponse code = BSPError {code, message = Nothing, retryAfter = Nothing} + + +-- | The agent verified the signature, so sigKey is a key the sender holds - a purchaseKey that +-- differs would let a client claim a purchase it cannot sign for. +badgeServiceResponse :: BadgeIssuerKey -> ChatController -> Maybe C.PublicKeyEd25519 -> J.Object -> IO BadgeServiceResponse +badgeServiceResponse key cc sigKey reqData = case J.fromJSON (J.Object reqData) of + J.Error _ -> pure $ errorResponse BSEBadRequest + J.Success BadgeServiceRequest {version, purchaseKey, request} + | not (version `isCompatible` supportedBadgeServiceVRange) -> pure $ errorResponse BSEUnsupportedVersion + | purchaseKey /= sigKey -> pure $ errorResponse BSEBadRequest + | otherwise -> case request of + BSCRedeemBadgeCode {masterKey, code} -> case purchaseKey of + Just k -> redeemCode key cc k masterKey code + Nothing -> pure $ errorResponse BSEBadRequest + -- every command but redeemBadgeCode needs a key the service already knows: that one + -- creates the purchase, so its key is unknown on a first redemption + _ -> case purchaseKey of + Nothing -> pure $ errorResponse BSEUnsupportedVersion + Just k -> + withDB' "purchaseKeyExists" cc (`purchaseKeyExists` k) >>= \case + Right True -> pure $ errorResponse BSEUnsupportedVersion + Right False -> pure $ errorResponse BSEUnknownPurchaseKey + Left _ -> pure $ errorResponse BSEInternal + +-- | Nothing is written until the credential is signed, so a signing failure leaves the code +-- unspent rather than spent with nothing behind it. +redeemCode :: BadgeIssuerKey -> ChatController -> C.PublicKeyEd25519 -> BadgeMasterKey -> T.Text -> IO BadgeServiceResponse +redeemCode BadgeIssuerKey {keyIdx, secretKey} cc purchaseKey masterKey codeText = case parseBadgeCode codeText of + Nothing -> pure $ errorResponse BSECodeInvalid + Just code -> + withDB' "getBadgeCode" cc (`getBadgeCode` badgeCodeHash code) >>= \case + Left _ -> pure $ errorResponse BSEInternal + Right Nothing -> pure $ errorResponse BSECodeInvalid + Right (Just IssuedCode {badgeCodeId, badgeType, redemption}) -> case redeemedResponse redemption of + Just resp -> pure resp + Nothing -> do + now <- getCurrentTime + -- TODO [badges] the code's months are ignored until the ledger credits them + let periodEnd = addMonths 1 now + badgeInfo = BadgeInfo {badgeType, badgeExpiry = Just (endOfSundayAfter periodEnd), badgeExtra = ""} + issueBadge keyIdx secretKey (VerifiedBadgeRequest BadgeRequest {masterKey, badgeInfo}) >>= \case + Left e -> logError ("badge service signing failed: " <> T.pack e) $> errorResponse BSEInternal + Right credential -> do + issuanceId <- safeDecodeUtf8 . strEncode <$> atomically (C.randomBytes 16 $ random cc) + let newRedemption = + NewBadgeCodeRedemption + { badgeCodeId, + issuanceId, + purchaseKey, + masterKey, + badgeType, + credential, + periodStart = now, + periodEnd, + expiry = endOfSundayAfter periodEnd + } + -- re-read: a concurrent redemption may have landed while this one was signing + r <- withDB "writeCodeRedemption" cc $ \db -> + liftIO (getBadgeCode db $ badgeCodeHash code) >>= \case + Just IssuedCode {redemption = current} | Just resp <- redeemedResponse current -> pure resp + _ -> liftIO $ credentialResponse credential <$ writeCodeRedemption db newRedemption now + pure $ either (const $ errorResponse BSEInternal) id r + where + -- one definition, used before signing and again inside the write transaction + redeemedResponse = \case + CodeUnredeemed -> Nothing + CodeRedeemedUnreadable -> Just $ errorResponse BSEInternal + CodeRedeemed RedeemedCode {purchaseKey = k, credential} + | k == purchaseKey -> Just $ credentialResponse credential + | otherwise -> Just $ errorResponse BSECodeUsed + +-- TODO [badges] the statement is empty until the ledger is written +credentialResponse :: BadgeCredential -> BadgeServiceResponse +credentialResponse credential = + BSPBadgeCredential {credential = Just credential, receipt = Nothing, statement = BadgeStatement {entries = [], previousEntryId = Nothing}} + +addMonths :: Integer -> UTCTime -> UTCTime +addMonths n (UTCTime d t) = UTCTime (addGregorianMonthsClip n d) t + +-- Every badge in a week expires together, revealing nothing about when it was bought. +-- The end of a Sunday is the next Monday at 00:00, so this returns a Monday and 8 is right. +endOfSundayAfter :: UTCTime -> UTCTime +endOfSundayAfter (UTCTime d _) = + let (_, _, dayOfWeek) = toWeekDate d -- 1 Monday .. 7 Sunday + in UTCTime (addDays (toInteger (8 - dayOfWeek)) d) 0 diff --git a/apps/simplex-badge-service/src/BadgeService/Store.hs b/apps/simplex-badge-service/src/BadgeService/Store.hs new file mode 100644 index 0000000000..3df619b331 --- /dev/null +++ b/apps/simplex-badge-service/src/BadgeService/Store.hs @@ -0,0 +1,135 @@ +{-# LANGUAGE CPP #-} +{-# LANGUAGE DuplicateRecordFields #-} +{-# LANGUAGE NamedFieldPuns #-} +{-# LANGUAGE OverloadedStrings #-} +{-# LANGUAGE QuasiQuotes #-} +{-# LANGUAGE ScopedTypeVariables #-} + +module BadgeService.Store + ( IssuedCode (..), + CodeRedemption (..), + RedeemedCode (..), + NewBadgeCodeRedemption (..), + getBadgeCode, + purchaseKeyExists, + writeCodeRedemption, + insertBadgeCode, + ) +where + +import qualified Data.Aeson as J +import Data.ByteString.Char8 (ByteString) +import qualified Data.ByteString.Lazy.Char8 as LB +import Data.Int (Int64) +import Data.Text (Text) +import Data.Time.Clock (UTCTime) +import Simplex.Chat.Badges (BadgeCredential, BadgeMasterKey (..), BadgeType) +import Simplex.Chat.Badges.Types (BadgeCodePaymentStatus, BadgePurchaseStatus (..)) +import Simplex.Chat.Store.Shared (insertedRowId) +import Simplex.Messaging.Agent.Store.DB (Binary (..)) +import qualified Simplex.Messaging.Agent.Store.DB as DB +import qualified Simplex.Messaging.Crypto as C +import Simplex.Messaging.Util (maybeFirstRow, maybeFirstRow') + +#if defined(dbPostgres) +import Database.PostgreSQL.Simple (Only (..)) +import Database.PostgreSQL.Simple.SqlQQ (sql) +#else +import Database.SQLite.Simple (Only (..)) +import Database.SQLite.Simple.QQ (sql) +#endif + +data IssuedCode = IssuedCode + { badgeCodeId :: Int64, + badgeType :: BadgeType, + redemption :: CodeRedemption + } + +-- A code that has a purchase is spent, even if its credential cannot be read. Treating that as +-- an unredeemed code would issue a second credential for it. +data CodeRedemption + = CodeUnredeemed + | CodeRedeemed RedeemedCode + | CodeRedeemedUnreadable + +data RedeemedCode = RedeemedCode + { purchaseKey :: C.PublicKeyEd25519, + credential :: BadgeCredential + } + +-- Everything writeCodeRedemption inserts, so that the purchase, its issuance and the spent code +-- are written in one transaction. If the code were marked redeemed and one of the other writes +-- failed, it would be spent with no credential behind it, and nothing can reissue it. +data NewBadgeCodeRedemption = NewBadgeCodeRedemption + { badgeCodeId :: Int64, + issuanceId :: Text, + purchaseKey :: C.PublicKeyEd25519, + masterKey :: BadgeMasterKey, + badgeType :: BadgeType, + credential :: BadgeCredential, + periodStart :: UTCTime, + periodEnd :: UTCTime, + expiry :: UTCTime + } + +getBadgeCode :: DB.Connection -> ByteString -> IO (Maybe IssuedCode) +getBadgeCode db codeHash = + maybeFirstRow toCode $ + DB.query + db + [sql| + SELECT c.badge_code_id, c.badge_type, p.purchase_key, i.credential + FROM sx_badge_service_badge_codes c + LEFT JOIN sx_badge_service_badge_purchases p ON p.badge_code_id = c.badge_code_id + LEFT JOIN sx_badge_service_badge_issuances i ON i.badge_purchase_id = p.badge_purchase_id + WHERE c.code_hash = ? + ORDER BY i.created_at DESC + LIMIT 1 + |] + (Only (Binary codeHash)) + where + toCode (badgeCodeId, badgeType, purchaseKey_, credential_) = + IssuedCode {badgeCodeId, badgeType, redemption = codeRedemption purchaseKey_ credential_} + codeRedemption purchaseKey_ credential_ = case purchaseKey_ of + Nothing -> CodeUnredeemed + Just purchaseKey -> case decodeCredential =<< credential_ of + Just credential -> CodeRedeemed RedeemedCode {purchaseKey, credential} + Nothing -> CodeRedeemedUnreadable + decodeCredential (Binary bs) = J.decodeStrict' bs + +purchaseKeyExists :: DB.Connection -> C.PublicKeyEd25519 -> IO Bool +purchaseKeyExists db key = + maybeFirstRow' False (\(Only (_ :: Int64)) -> True) $ + DB.query db "SELECT badge_purchase_id FROM sx_badge_service_badge_purchases WHERE purchase_key = ?" (Only key) + +-- one transaction: the caller has already signed, so no code is left spent without a credential +writeCodeRedemption :: DB.Connection -> NewBadgeCodeRedemption -> UTCTime -> IO () +writeCodeRedemption db NewBadgeCodeRedemption {badgeCodeId, issuanceId, purchaseKey, masterKey = BadgeMasterKey mk, badgeType, credential, periodStart, periodEnd, expiry} now = do + DB.execute + db + [sql| + INSERT INTO sx_badge_service_badge_purchases + (purchase_key, master_key, initial_badge_type, current_badge_type, status, badge_code_id, created_at, updated_at) + VALUES (?,?,?,?,?,?,?,?) + |] + (purchaseKey, Binary mk, badgeType, badgeType, PSIssued, badgeCodeId, now, now) + purchaseId <- insertedRowId db + DB.execute + db + [sql| + INSERT INTO sx_badge_service_badge_issuances + (issuance_id, badge_purchase_id, badge_type, period_start, period_end, expiry, credential, created_at) + VALUES (?,?,?,?,?,?,?,?) + |] + (issuanceId, purchaseId, badgeType, periodStart, periodEnd, expiry, Binary (LB.toStrict $ J.encode credential), now) + DB.execute db "UPDATE sx_badge_service_badge_codes SET redeemed_at = ? WHERE badge_code_id = ?" (now, badgeCodeId) + +insertBadgeCode :: DB.Connection -> ByteString -> BadgeType -> Int -> BadgeCodePaymentStatus -> UTCTime -> IO () +insertBadgeCode db codeHash badgeType months paymentStatus now = + DB.execute + db + [sql| + INSERT INTO sx_badge_service_badge_codes (code_hash, badge_type, months, code_payment_status, created_at) + VALUES (?,?,?,?,?) + |] + (Binary codeHash, badgeType, months, paymentStatus, now) diff --git a/apps/simplex-directory-service/src/Directory/Service.hs b/apps/simplex-directory-service/src/Directory/Service.hs index fd0c42b5e1..ef76776ee2 100644 --- a/apps/simplex-directory-service/src/Directory/Service.hs +++ b/apps/simplex-directory-service/src/Directory/Service.hs @@ -47,9 +47,9 @@ import Directory.Options import Directory.Search import Directory.Store import Directory.Store.Migrate -import Directory.Util import Simplex.Chat.Bot import Simplex.Chat.Bot.KnownContacts +import Simplex.Chat.Bot.Store import Simplex.Chat.Controller import Simplex.Chat.Core import Simplex.Chat.Library.Internal (setGroupLinkData) diff --git a/apps/simplex-directory-service/src/Directory/Store.hs b/apps/simplex-directory-service/src/Directory/Store.hs index ea7f7f5ee0..5594b02bae 100644 --- a/apps/simplex-directory-service/src/Directory/Store.hs +++ b/apps/simplex-directory-service/src/Directory/Store.hs @@ -68,7 +68,7 @@ import qualified Data.Text as T import Data.Text.Encoding (encodeUtf8) import Data.Time.Clock (UTCTime (..), getCurrentTime) import Directory.Search -import Directory.Util +import Simplex.Chat.Bot.Store import Simplex.Chat.Controller import Simplex.Chat.Names (claimDomain) import Simplex.Chat.Options.DB (FromField (..), ToField (..)) diff --git a/bots/src/API/Docs/Commands.hs b/bots/src/API/Docs/Commands.hs index d126ff1844..052afcb6e6 100644 --- a/bots/src/API/Docs/Commands.hs +++ b/bots/src/API/Docs/Commands.hs @@ -398,6 +398,7 @@ undocumentedCommands = "APIPlanForwardChatItems", "APIPrepareContact", "APIPrepareGroup", + "APIRedeemBadgeCode", "APIRegisterToken", "APIRejectCall", "APIReorderChatTags", diff --git a/bots/src/API/Docs/Responses.hs b/bots/src/API/Docs/Responses.hs index 76f1ddb76b..151a238054 100644 --- a/bots/src/API/Docs/Responses.hs +++ b/bots/src/API/Docs/Responses.hs @@ -129,6 +129,7 @@ undocumentedResponses = "CRAppSettings", "CRArchiveExported", "CRArchiveImported", + "CRBadgeRedeemed", "CRBroadcastSent", "CRCallInvitations", "CRChatCleared", diff --git a/simplex-chat.cabal b/simplex-chat.cabal index 58978cadbf..e4e0a3577c 100644 --- a/simplex-chat.cabal +++ b/simplex-chat.cabal @@ -40,6 +40,7 @@ library Simplex.Chat.AppSettings Simplex.Chat.Badges Simplex.Chat.Badges.CLI + Simplex.Chat.Badges.Code Simplex.Chat.Badges.Service Simplex.Chat.Badges.Types Simplex.Chat.Names @@ -79,6 +80,7 @@ library Simplex.Chat.Stats Simplex.Chat.Store Simplex.Chat.Store.AppSettings + Simplex.Chat.Store.Badges Simplex.Chat.Store.Connections Simplex.Chat.Store.ContactRequest Simplex.Chat.Store.Delivery @@ -103,6 +105,7 @@ library exposed-modules: Simplex.Chat.Bot Simplex.Chat.Bot.KnownContacts + Simplex.Chat.Bot.Store Simplex.Chat.Core Simplex.Chat.Help Simplex.Chat.Terminal @@ -418,18 +421,23 @@ executable simplex-badge-service other-modules: BadgeService.Options BadgeService.Service + BadgeService.Store BadgeService.Store.Migrate Paths_simplex_chat ghc-options: -O2 -Weverything -Wno-missing-exported-signatures -Wno-missing-import-lists -Wno-missed-specialisations -Wno-all-missed-specialisations -Wno-unsafe -Wno-safe -Wno-missing-local-signatures -Wno-missing-kind-signatures -Wno-missing-deriving-strategies -Wno-monomorphism-restriction -Wno-prepositive-qualified-module -Wno-unused-packages -Wno-implicit-prelude -Wno-missing-safe-haskell-mode -Wno-missing-export-lists -Wno-partial-fields -Wcompat -Werror=incomplete-record-updates -Werror=incomplete-patterns -Werror=missing-methods -Werror=incomplete-uni-patterns -Werror=tabs -Wredundant-constraints -Wincomplete-record-updates -Wunused-type-patterns -Werror=name-shadowing -threaded -rtsopts build-depends: aeson ==2.2.* + , attoparsec ==0.14.* , base >=4.7 && <5 + , crypton ==0.34.* , directory ==1.3.* + , mtl >=2.3.1 && <3.0 , optparse-applicative >=0.15 && <0.17 , simple-logger ==0.1.* , simplex-chat , simplexmq >=6.3 , stm ==2.5.* + , time ==1.12.* default-language: Haskell2010 if flag(client_postgres) other-modules: @@ -583,7 +591,6 @@ executable simplex-directory-service Directory.Service Directory.Store Directory.Store.Migrate - Directory.Util Paths_simplex_chat ghc-options: -O2 -Weverything -Wno-missing-exported-signatures -Wno-missing-import-lists -Wno-missed-specialisations -Wno-all-missed-specialisations -Wno-unsafe -Wno-safe -Wno-missing-local-signatures -Wno-missing-kind-signatures -Wno-missing-deriving-strategies -Wno-monomorphism-restriction -Wno-prepositive-qualified-module -Wno-unused-packages -Wno-implicit-prelude -Wno-missing-safe-haskell-mode -Wno-missing-export-lists -Wno-partial-fields -Wcompat -Werror=incomplete-record-updates -Werror=incomplete-patterns -Werror=missing-methods -Werror=incomplete-uni-patterns -Werror=tabs -Wredundant-constraints -Wincomplete-record-updates -Wunused-type-patterns -Werror=name-shadowing -threaded -rtsopts build-depends: @@ -679,6 +686,7 @@ test-suite simplex-chat-test API.TypeInfo BadgeService.Options BadgeService.Service + BadgeService.Store BadgeService.Store.Migrate Bots.BadgeServiceTests Broadcast.Bot @@ -692,7 +700,6 @@ test-suite simplex-chat-test Directory.Service Directory.Store Directory.Store.Migrate - Directory.Util Paths_simplex_chat if flag(client_postgres) other-modules: diff --git a/src/Simplex/Chat.hs b/src/Simplex/Chat.hs index cd44b69df6..bfd279231b 100644 --- a/src/Simplex/Chat.hs +++ b/src/Simplex/Chat.hs @@ -77,6 +77,7 @@ defaultChatConfig = (7, toBBSPublicKey "rl36D5mg2N3NmmEybxE_RBeU9YZ_zeXNPfp7ZMLtUEuf2Mo4OQM_Up1v5rX_IqICD-AIJcuyptEBsELx_PJQzpmiNuG5I4cWO6HkRKtc6fVFvgZMrDJjaascPd1CIyxX"), (8, toBBSPublicKey "joM3Bnt7JPt5JiwQwERHGjro2iVZ0mPD_clUh4hzkhxvbjuFrWuTmfSNA8PWBqGKEGNl13aRi1pMf6yY14E27c5C71JxWm7T-rZaBrGPEUWifhD-qidWuf3PU7KJCCWd") ], + badgeServiceAddress = Nothing, confirmMigrations = MCConsole, -- this property should NOT use operator = Nothing -- non-operator servers can be passed via options diff --git a/src/Simplex/Chat/Badges/Code.hs b/src/Simplex/Chat/Badges/Code.hs new file mode 100644 index 0000000000..cff8812b80 --- /dev/null +++ b/src/Simplex/Chat/Badges/Code.hs @@ -0,0 +1,118 @@ +{-# LANGUAGE LambdaCase #-} +{-# LANGUAGE OverloadedStrings #-} + +-- | Badge redemption codes, shared by the client, the badge service and the checkout site. +-- +-- A code is @SXB-@ and 20 Crockford base32 characters in four groups of five: +-- 19 payload characters and a final check character. +-- +-- Reading folds the characters the alphabet omits so that a code copied by hand still +-- verifies: it is case-insensitive and maps @I@ and @L@ to @1@ and @O@ to @0@. +-- +-- The check character is Luhn mod N with N = 32 over the payload values, which keeps it +-- inside the same 32-character alphabet. It detects every single-character substitution +-- and every transposition of adjacent characters except '0' next to 'Z' - the values 0 and +-- N-1, which is Luhn's one blind spot at any base. +-- +-- 'BadgeCode' is only constructed by 'parseBadgeCode' and 'randomBadgeCode', so a code +-- whose check character fails cannot be hashed, looked up or sent. +module Simplex.Chat.Badges.Code + ( BadgeCode, + parseBadgeCode, + randomBadgeCode, + badgeCodeText, + badgeCodeHash, + formatBadgeCode, + ) +where + +import Control.Concurrent.STM +import Crypto.Random (ChaChaDRG) +import Data.ByteString.Char8 (ByteString) +import qualified Data.ByteString.Char8 as B +import Data.Char (isAlphaNum, toUpper) +import Data.List (elemIndex) +import Data.Text (Text) +import qualified Data.Text as T +import Data.Text.Encoding (encodeUtf8) +import qualified Simplex.Messaging.Crypto as C + +-- | A code that has passed its check character, in canonical form: 'codePrefix' followed by +-- 20 upper-case alphabet characters, without separators. +newtype BadgeCode = BadgeCode Text + deriving (Eq, Show) + +-- Crockford base32: the digits and the upper-case letters except I, L, O and U. +alphabet :: String +alphabet = "0123456789ABCDEFGHJKMNPQRSTVWXYZ" + +base :: Int +base = 32 + +codeLength :: Int +codeLength = 20 + +groupLength :: Int +groupLength = 5 + +codePrefix :: Text +codePrefix = "SXB" + +-- | The Crockford value of a character, folding the omitted characters onto the digits they +-- are mistaken for. +charValue :: Char -> Maybe Int +charValue c = case toUpper c of + 'I' -> Just 1 + 'L' -> Just 1 + 'O' -> Just 0 + u -> elemIndex u alphabet + +valueChar :: Int -> Char +valueChar v = alphabet !! v + +-- | Luhn mod N (N = 32): the value that makes the whole code sum to zero modulo the base. +checkValue :: [Int] -> Int +checkValue payload = (base - total `mod` base) `mod` base + where + -- doubling every second value from the right, as the check character sits to the right of the payload + total = fst $ foldr step (0, 2) payload + step v (sum', factor) = + let addend = factor * v + in (sum' + addend `div` base + addend `mod` base, if factor == 2 then 1 else 2) + +-- | Read a code as typed: any case, separators optional, ambiguous characters folded. +-- 'Nothing' for anything not well-formed, a failed check character included. +parseBadgeCode :: Text -> Maybe BadgeCode +parseBadgeCode t = do + body <- T.stripPrefix codePrefix $ T.toUpper $ T.filter isAlphaNum t + vs <- mapM charValue $ T.unpack body + let (payload, checkChar) = splitAt (codeLength - 1) vs + if T.length body == codeLength && checkChar == [checkValue payload] + -- rebuilt from the values, not from body: that is what folds I/L/O into the canonical form + then Just $ BadgeCode $ codePrefix <> T.pack (map valueChar vs) + else Nothing + +-- | A new code from the CSPRNG. 256 is a multiple of the base, so a byte reduces without bias. +randomBadgeCode :: TVar ChaChaDRG -> IO BadgeCode +randomBadgeCode drg = do + bs <- atomically $ C.randomBytes (codeLength - 1) drg + let payload = map ((`mod` base) . fromEnum) $ B.unpack bs + vs = payload <> [checkValue payload] + pure $ BadgeCode $ codePrefix <> T.pack (map valueChar vs) + +-- | The canonical form: the only representation of a code that is hashed or sent. +badgeCodeText :: BadgeCode -> Text +badgeCodeText (BadgeCode t) = t + +-- | The only thing about a code stored service-side: SHA-256 over the ASCII bytes of the +-- canonical form, prefix included. +badgeCodeHash :: BadgeCode -> ByteString +badgeCodeHash = C.sha256Hash . encodeUtf8 . badgeCodeText + +-- | The code as it is shown and printed, in four groups of five. +formatBadgeCode :: BadgeCode -> Text +formatBadgeCode (BadgeCode t) = T.intercalate "-" $ codePrefix : groups (T.drop (T.length codePrefix) t) + where + groups s + | T.null s = [] + | otherwise = let (g, rest) = T.splitAt groupLength s in g : groups rest diff --git a/src/Simplex/Chat/Badges/Service.hs b/src/Simplex/Chat/Badges/Service.hs index ff06fb7d94..7de198fec9 100644 --- a/src/Simplex/Chat/Badges/Service.hs +++ b/src/Simplex/Chat/Badges/Service.hs @@ -3,13 +3,18 @@ {-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE PatternSynonyms #-} +{-# LANGUAGE TemplateHaskell #-} module Simplex.Chat.Badges.Service ( BadgeServiceRequest (..), BadgeServiceCommand (..), BadgeServiceVersion, VersionBadgeService, + VersionRangeBadgeService, pattern VersionBadgeService, + initialBadgeServiceVersion, + currentBadgeServiceVersion, + supportedBadgeServiceVRange, BadgeUpgrade (..), BadgeServiceResponse (..), BadgeServiceErrorCode (..), @@ -24,9 +29,12 @@ module Simplex.Chat.Badges.Service StatementDebitType (..), ) where -import Data.Aeson (FromJSON (..), ToJSON (..)) +import Control.Applicative ((<|>)) +import Data.Aeson (FromJSON (..), ToJSON (..), (.:)) import qualified Data.Aeson as J -import Data.Int (Int64) +import qualified Data.Aeson.Encoding as JE +import qualified Data.Aeson.TH as JQ +import qualified Data.Aeson.Types as JT import Data.Text (Text) import Data.Time.Clock (UTCTime) import Data.Word (Word8, Word16, Word32) @@ -35,7 +43,8 @@ import Simplex.Chat.Badges.Types import Simplex.Chat.PaymentService import qualified Simplex.Messaging.Crypto as C import Simplex.Messaging.Encoding.String -import Simplex.Messaging.Version (VersionScope) +import Simplex.Messaging.Parsers (defaultJSON, dropPrefix, taggedObjectJSON) +import Simplex.Messaging.Version (VersionRange, VersionScope, mkVersionRange) import Simplex.Messaging.Version.Internal (Version (..)) data BadgeServiceVersion @@ -47,6 +56,18 @@ type VersionBadgeService = Version BadgeServiceVersion pattern VersionBadgeService :: Word16 -> VersionBadgeService pattern VersionBadgeService v = Version v +type VersionRangeBadgeService = VersionRange BadgeServiceVersion + +initialBadgeServiceVersion :: VersionBadgeService +initialBadgeServiceVersion = VersionBadgeService 1 + +currentBadgeServiceVersion :: VersionBadgeService +currentBadgeServiceVersion = VersionBadgeService 1 + +-- the service is deployed ahead of app releases, so it answers within the client's version +supportedBadgeServiceVRange :: VersionRangeBadgeService +supportedBadgeServiceVRange = mkVersionRange initialBadgeServiceVersion currentBadgeServiceVersion + data BadgeServiceRequest = BadgeServiceRequest { version :: VersionBadgeService, purchaseKey :: Maybe C.PublicKeyEd25519, -- optional for BSCGetBadgeCatalog, required for other commands @@ -164,7 +185,7 @@ data StatementEntryType = SECredit {credit :: StatementCreditType} | SEDebit {de data StatementCreditType = SCPayment {invoiceId :: Maybe InvoiceId} -- absent for store and code payments - | SCCharge {chargeId :: Int64} + | SCCharge {chargeId :: Text} | SCSupport | SCTransferIn {fromPurchaseKey :: C.PublicKeyEd25519} | SCOpening @@ -248,3 +269,57 @@ instance ToJSON BadgeServiceErrorCode where instance FromJSON BadgeServiceErrorCode where parseJSON = textParseJSON "BadgeServiceErrorCode" + +$(pure []) + +instance FromJSON StatementCreditType where + parseJSON v@(J.Object j) = + $(JQ.mkParseJSON (taggedObjectJSON $ dropPrefix "SC") ''StatementCreditType) v + <|> SCUnknown <$> j .: "type" <*> pure j + parseJSON invalid = + JT.prependFailure "bad StatementCreditType, " (JT.typeMismatch "Object" invalid) + +instance ToJSON StatementCreditType where + toJSON = \case + SCUnknown _ j -> J.Object j + v -> $(JQ.mkToJSON (taggedObjectJSON $ dropPrefix "SC") ''StatementCreditType) v + toEncoding = \case + SCUnknown _ j -> JE.value $ J.Object j + v -> $(JQ.mkToEncoding (taggedObjectJSON $ dropPrefix "SC") ''StatementCreditType) v + +instance FromJSON StatementDebitType where + parseJSON v@(J.Object j) = + $(JQ.mkParseJSON (taggedObjectJSON $ dropPrefix "SD") ''StatementDebitType) v + <|> SDUnknown <$> j .: "type" <*> pure j + parseJSON invalid = + JT.prependFailure "bad StatementDebitType, " (JT.typeMismatch "Object" invalid) + +instance ToJSON StatementDebitType where + toJSON = \case + SDUnknown _ j -> J.Object j + v -> $(JQ.mkToJSON (taggedObjectJSON $ dropPrefix "SD") ''StatementDebitType) v + toEncoding = \case + SDUnknown _ j -> JE.value $ J.Object j + v -> $(JQ.mkToEncoding (taggedObjectJSON $ dropPrefix "SD") ''StatementDebitType) v + +$(JQ.deriveJSON (taggedObjectJSON $ dropPrefix "SE") ''StatementEntryType) + +$(JQ.deriveJSON defaultJSON ''StatementEntry) + +$(JQ.deriveJSON defaultJSON ''BadgeStatement) + +$(JQ.deriveJSON defaultJSON ''BadgeBalance) + +$(JQ.deriveJSON defaultJSON ''BadgeUpgrade) + +$(JQ.deriveJSON (taggedObjectJSON $ dropPrefix "BSC") ''BadgeServiceCommand) + +$(JQ.deriveJSON defaultJSON ''BadgeServiceRequest) + +$(JQ.deriveJSON defaultJSON ''BadgePrice) + +$(JQ.deriveJSON defaultJSON ''BadgeOffer) + +$(JQ.deriveJSON defaultJSON ''BadgeCatalog) + +$(JQ.deriveJSON (taggedObjectJSON $ dropPrefix "BSP") ''BadgeServiceResponse) diff --git a/src/Simplex/Chat/Badges/Types.hs b/src/Simplex/Chat/Badges/Types.hs index c5289504f0..31516dbdfe 100644 --- a/src/Simplex/Chat/Badges/Types.hs +++ b/src/Simplex/Chat/Badges/Types.hs @@ -1,6 +1,10 @@ +{-# LANGUAGE CPP #-} {-# LANGUAGE DerivingStrategies #-} {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} +{-# LANGUAGE LambdaCase #-} +{-# LANGUAGE OverloadedStrings #-} +{-# LANGUAGE TemplateHaskell #-} module Simplex.Chat.Badges.Types ( BadgePriceId (..), @@ -22,7 +26,9 @@ module Simplex.Chat.Badges.Types UserBadgeState (..), ) where +import Data.Aeson (FromJSON, ToJSON) import qualified Data.Aeson as J +import qualified Data.Aeson.TH as JQ import Data.Int (Int64) import Data.Text (Text) import Data.Time.Clock (UTCTime) @@ -30,15 +36,25 @@ import Data.Word (Word8) import Simplex.Chat.Badges hiding (BadgePurchase (..)) import Simplex.Chat.PaymentService.Types (InvoiceId, StoredPayment) import Simplex.Messaging.Agent.Protocol (UserId) +import Simplex.Messaging.Agent.Store.DB (fromTextField_) import qualified Simplex.Messaging.Crypto as C +import Simplex.Messaging.Encoding.String +import Simplex.Messaging.Parsers (dropPrefix, enumJSON, taggedObjectJSON) +#if defined(dbPostgres) +import Database.PostgreSQL.Simple.FromField (FromField (..)) +import Database.PostgreSQL.Simple.ToField (ToField (..)) +#else +import Database.SQLite.Simple.FromField (FromField (..)) +import Database.SQLite.Simple.ToField (ToField (..)) +#endif -- confirmed newtype BadgePriceId = BadgePriceId Text - deriving newtype (Eq, Show) + deriving newtype (Eq, Show, ToJSON, FromJSON) -- confirmed newtype BadgeOfferId = BadgeOfferId Text - deriving newtype (Eq, Show) + deriving newtype (Eq, Show, ToJSON, FromJSON) -- unconfirmed draft data BadgePlan = BPOneTime | BPMonthly | BPAnnual @@ -172,3 +188,39 @@ data UserBadgeState = UserBadgeState willRenew :: Bool, alert :: Maybe BadgeAlert } + +instance TextEncoding BadgePurchaseStatus where + textEncode = \case + PSAcquiring -> "acquiring" + PSIssued -> "issued" + PSSuperseded -> "superseded" + PSFailed -> "failed" + textDecode = \case + "acquiring" -> Just PSAcquiring + "issued" -> Just PSIssued + "superseded" -> Just PSSuperseded + "failed" -> Just PSFailed + _ -> Nothing + +instance FromField BadgePurchaseStatus where fromField = fromTextField_ textDecode + +instance ToField BadgePurchaseStatus where toField = toField . textEncode + +instance TextEncoding BadgeCodePaymentStatus where + textEncode = \case + CPSPaid -> "paid" + CPSUnpaid -> "unpaid" + CPSFree -> "free" + textDecode = \case + "paid" -> Just CPSPaid + "unpaid" -> Just CPSUnpaid + "free" -> Just CPSFree + _ -> Nothing + +instance FromField BadgeCodePaymentStatus where fromField = fromTextField_ textDecode + +instance ToField BadgeCodePaymentStatus where toField = toField . textEncode + +$(JQ.deriveJSON (enumJSON $ dropPrefix "BIS") ''BadgeItemStatus) + +$(JQ.deriveJSON (taggedObjectJSON $ dropPrefix "OD") ''OfferDiscount) diff --git a/apps/simplex-directory-service/src/Directory/Util.hs b/src/Simplex/Chat/Bot/Store.hs similarity index 93% rename from apps/simplex-directory-service/src/Directory/Util.hs rename to src/Simplex/Chat/Bot/Store.hs index 52d376a945..1f5a2924d5 100644 --- a/apps/simplex-directory-service/src/Directory/Util.hs +++ b/src/Simplex/Chat/Bot/Store.hs @@ -3,7 +3,12 @@ {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE ScopedTypeVariables #-} -module Directory.Util where +module Simplex.Chat.Bot.Store + ( storeCxt, + withDB, + withDB', + ) +where import Control.Logger.Simple import Control.Monad.Except diff --git a/src/Simplex/Chat/Controller.hs b/src/Simplex/Chat/Controller.hs index 54dfb58fc3..bc46533b29 100644 --- a/src/Simplex/Chat/Controller.hs +++ b/src/Simplex/Chat/Controller.hs @@ -83,7 +83,7 @@ import Simplex.Messaging.Agent.Store.DB (SQLError) import qualified Simplex.Messaging.Agent.Store.DB as DB import Simplex.Messaging.Client (HostMode (..), SMPProxyFallback (..), SMPProxyMode (..), SMPWebPortServers (..), SocksMode (..)) import qualified Simplex.Messaging.Crypto as C -import Simplex.Chat.Badges (BadgeCredential) +import Simplex.Chat.Badges (BadgeCredential, LocalBadge) import Simplex.Messaging.Crypto.BBS (BBSPublicKey) import Simplex.Messaging.Crypto.File (CryptoFile (..)) import qualified Simplex.Messaging.Crypto.File as CF @@ -143,6 +143,8 @@ data ChatConfig = ChatConfig chatVRange :: VersionRangeChat, -- issuer public keys by index: credentials and proofs name the key that signed them, for rotation badgePublicKeys :: Map Int BBSPublicKey, + -- Nothing until the badge service is deployed + badgeServiceAddress :: Maybe (ConnectTarget 'CMContact), confirmMigrations :: MigrationConfirmation, presetServers :: PresetServers, shortLinkPresetServers :: NonEmpty SMPServer, @@ -638,6 +640,7 @@ data ChatCommand | UpdateProfileImage (Maybe ImageData) -- UserId (not used in UI) | UpdateProfileImageFromFile FilePath -- set profile image from a .png/.jpg/.jpeg file | AddBadge BadgeCredential -- attach an issued badge credential (testing; credential from `simplex-chat badge sign`) + | APIRedeemBadgeCode {userId :: UserId, code :: Text} -- redeem a badge code with the configured badge service | ShowProfileImage | SetUserFeature AChatFeature FeatureAllowed -- UserId (not used in UI) | SetContactFeature AChatFeature ContactName (Maybe FeatureAllowed) @@ -842,6 +845,7 @@ data ChatResponse | CRContactRequestRejected {user :: User, contactRequest :: UserContactRequest, contact_ :: Maybe Contact} | CRServiceResponse {user :: User, responseData :: J.Object} | CRServiceReplyAccepted {user :: User, connectionId :: AgentConnId} + | CRBadgeRedeemed {user :: User, redeemedBadge :: LocalBadge, newBadge :: Bool} | CRUserAcceptedGroupSent {user :: User, groupInfo :: GroupInfo, hostContact :: Maybe Contact} | CRUserDeletedMembers {user :: User, groupInfo :: GroupInfo, members :: [GroupMember], withMessages :: Bool, msgSigned :: Bool} | CRGroupsList {user :: User, groups :: [GroupInfo]} diff --git a/src/Simplex/Chat/Library/Commands.hs b/src/Simplex/Chat/Library/Commands.hs index 8629c463af..35abcd6d1d 100644 --- a/src/Simplex/Chat/Library/Commands.hs +++ b/src/Simplex/Chat/Library/Commands.hs @@ -56,7 +56,9 @@ import Data.Type.Equality import qualified Data.UUID as UUID import qualified Data.UUID.V4 as V4 import Simplex.Chat.Library.Subscriber -import Simplex.Chat.Badges (BadgeCredential (..), LocalBadge (..), maxXFTPFileSize, mkBadgeStatus, verifyCredential) +import Simplex.Chat.Badges (BadgeCredential (..), BadgeInfo (..), LocalBadge (..), maxXFTPFileSize, mkBadgeStatus, verifyCredential) +import Simplex.Chat.Badges.Code (badgeCodeText, parseBadgeCode) +import Simplex.Chat.Badges.Service (BadgeServiceCommand (..), BadgeServiceErrorCode (..), BadgeServiceRequest (..), BadgeServiceResponse (..), currentBadgeServiceVersion) import Simplex.Chat.Names (SimplexDomainProof (..), SimplexDomainClaim (..), claimDomain, mkDomainClaim) import Simplex.Chat.Call import Simplex.Chat.Controller @@ -77,6 +79,7 @@ import Simplex.Chat.Library.Internal import Simplex.Chat.Stats import Simplex.Chat.Store import Simplex.Chat.Store.AppSettings +import Simplex.Chat.Store.Badges import Simplex.Chat.Store.ContactRequest import Simplex.Chat.Store.Connections import Simplex.Chat.Store.Delivery @@ -1464,26 +1467,8 @@ processChatCommand cxt nm = \case liftIO $ deleteContactRequest db user connReqId pure ct_ pure $ CRContactRequestRejected user cReq ct_ - APISendServiceRequest userId sendTarget requestTimeout signKey request -> withUserId userId $ \user -> do - cReq <- resolveServiceTarget user sendTarget - respData <- withAgent $ \a -> sendServiceRequestAsync a (aUserId user) cReq requestTimeout (C.unStored <$> signKey) (LB.toStrict $ J.encode request) - resp <- either (const $ throwCmdError "invalid service response") pure $ J.eitherDecodeStrict' respData - pure $ CRServiceResponse user resp - where - resolveServiceTarget user = \case - CTFullContact cReq -> pure cReq - CTShortContact (CTLink sLnk) -> resolveShortLink sLnk - CTShortContact (CTName SimplexNameInfo {nameType, nameDomain}) -> case nameType of - NTContact -> resolveDomain nameDomain - _ -> throwCmdError "service request target must be a contact" - CTDomain d -> resolveDomain d - where - resolveDomain d = do - nr <- withAgent $ \a -> resolveSimplexName a nm (aUserId user) d - case firstNameLink CCTContact (nrSimplexContact nr) of - Just sLnk -> resolveShortLink sLnk - Nothing -> throwChatError $ CESimplexDomainNotReady d SDENoValidLink - resolveShortLink sLnk = (\(_, _, cReq) -> cReq) <$> getShortLinkConnReq nm user sLnk + APISendServiceRequest userId sendTarget requestTimeout signKey request -> withUserId userId $ \user -> + CRServiceResponse user <$> sendServiceRequestTo nm user sendTarget requestTimeout (C.unStored <$> signKey) request APISendServiceResponse userId requestId responseData -> withUserId userId $ \user -> do let AgentInvId invId = requestId connId <- withAgent $ \a -> sendServiceReplyAsync a "" (aUserId user) invId (LB.toStrict $ J.encode responseData) @@ -3552,6 +3537,7 @@ processChatCommand cxt nm = \case pure $ CRFileTransferStatus user fileStatus ShowProfile -> withUser $ \user@User {profile} -> pure $ CRUserProfile user (fromLocalProfile profile) AddBadge cred -> withUser $ \user -> addUserBadge user cred >> ok user + APIRedeemBadgeCode userId codeText -> withUserId userId $ \user -> redeemBadgeCode nm user codeText SetBotCommands commands -> withUser $ \user@User {profile} -> do let LocalProfile {preferences} = profile prefs = Just (fromMaybe emptyChatPrefs preferences :: Preferences) {commands = Just commands} @@ -5133,20 +5119,31 @@ createContactsSndFeatureItems user cts = CUPContact {preference} -> preference CUPUser {preference} -> preference +-- | Verify an own credential against the configured issuer keys. +-- Nothing means its key index is not among them, so this version cannot verify it at all. +verifyOwnBadge :: BadgeCredential -> CM (Maybe Bool) +verifyOwnBadge cred@(BadgeCredential keyIdx _ _ _) = do + keys <- asks $ badgePublicKeys . config + forM (M.lookup keyIdx keys) $ \key -> liftIO $ verifyCredential key cred + -- attach an issued badge credential to the user's own profile and present it to all current contacts. -- the credential is stored once; every profile send generates a fresh single-use proof (see presentUserBadge). addUserBadge :: User -> BadgeCredential -> CM () -addUserBadge user cred@(BadgeCredential keyIdx _ _ info) = do - keys <- asks $ badgePublicKeys . config - key <- maybe (throwCmdError "unknown badge key index") pure $ M.lookup keyIdx keys - verified <- liftIO $ verifyCredential key cred - unless verified $ throwCmdError "badge credential does not verify against configured key" - now <- liftIO getCurrentTime - user' <- withFastStore' $ \db -> setUserBadge db user (Just (OwnBadge cred (mkBadgeStatus now (Just True) info))) +addUserBadge user cred@(BadgeCredential _ _ _ info) = + verifyOwnBadge cred >>= \case + Nothing -> throwCmdError "unknown badge key index" + Just False -> throwCmdError "badge credential does not verify against configured key" + Just True -> do + now <- liftIO getCurrentTime + user' <- withFastStore' $ \db -> setUserBadge db user (Just (OwnBadge cred (mkBadgeStatus now (Just True) info))) + presentUserBadgeToContacts user' + +presentUserBadgeToContacts :: User -> CM () +presentUserBadgeToContacts user' = do asks currentUser >>= atomically . (`writeTVar` Just user') cxt <- asks $ mkStoreCxt . config contacts <- withFastStore' $ \db -> getUserContacts db cxt user' - withChatLock "addUserBadge" $ forM_ contacts $ \ct -> + withChatLock "presentUserBadge" $ forM_ contacts $ \ct -> case contactSendConn_ ct of Right conn | not (connIncognito conn) -> do @@ -5155,6 +5152,95 @@ addUserBadge user cred@(BadgeCredential keyIdx _ _ info) = do void (sendDirectContactMessage user' ct' (XInfo p)) `catchAllErrors` eToView _ -> pure () +-- | The check character is verified before anything leaves the device, and the signing keys are +-- stashed before the request is sent, so a retry reaches the service as the same signer. +-- A terminal answer drops the stash; a timeout keeps it. +redeemBadgeCode :: NetworkRequestMode -> User -> Text -> CM ChatResponse +redeemBadgeCode nm user codeText = do + code <- maybe (throwCmdError "invalid badge code") pure $ parseBadgeCode codeText + sendTarget <- asks (badgeServiceAddress . config) >>= maybe (throwCmdError "badge service not configured") pure + g <- asks random + now <- liftIO getCurrentTime + let codeSent = badgeCodeText code + redemption@BadgeCodeRedemption {purchaseKey, purchasePrivKey, masterKey} <- + withStore' $ \db -> + getBadgeCodeRedemption db user codeSent + >>= maybe (createBadgeCodeRedemption db g user codeSent now) pure + let req = BadgeServiceRequest {version = currentBadgeServiceVersion, purchaseKey = Just purchaseKey, request = BSCRedeemBadgeCode {masterKey, code = codeSent}} + respData <- sendServiceRequestTo nm user sendTarget Nothing (Just purchasePrivKey) req + case J.fromJSON (J.Object respData) of + J.Error e -> throwCmdError $ "invalid badge service response, " <> show e <> ": " <> respJSON respData + J.Success BSPError {code = errCode} -> do + when (terminalCodeError errCode) $ withStore' $ \db -> deleteBadgeCodeRedemption db (redemptionId redemption) + throwCmdError $ "badge service error: " <> T.unpack (badgeServiceErrorText errCode) + J.Success BSPBadgeCredential {credential = Just cred} -> storeRedeemedBadge user redemption cred + J.Success _ -> throwCmdError $ "unexpected badge service response: " <> respJSON respData + where + -- re-encoded, not shown as received: JSON escapes the control characters a terminal acts on + respJSON = LB.unpack . J.encode + -- the code will never work, so the keys stashed for it are dead; a timeout keeps them + terminalCodeError = \case + BSECodeInvalid -> True + BSECodeUsed -> True + BSECodeExpired -> True + _ -> False + +-- | An unknown code is reported, since the service is deployed ahead of clients, but its text is +-- the service's - so it is bounded and stripped before reaching a terminal that acts on controls. +badgeServiceErrorText :: BadgeServiceErrorCode -> Text +badgeServiceErrorText = \case + BSEUnknown t -> case T.filter errorCodeChar (T.take 32 t) of + "" -> "unknown" + t' -> t' + code -> textEncode code + where + errorCodeChar c = isAsciiLower c || isDigit c || c == '_' + +-- | Verify the credential before writing anything; the purchase, its issuance and the profile's +-- badge go in one transaction, and contacts are told after it commits. +storeRedeemedBadge :: User -> BadgeCodeRedemption -> BadgeCredential -> CM ChatResponse +storeRedeemedBadge user redemption@BadgeCodeRedemption {masterKey} cred@(BadgeCredential _ credMasterKey _ info@BadgeInfo {badgeExpiry}) = + verifyOwnBadge cred >>= \case + Nothing -> throwCmdError "redeemed badge credential names an unknown badge key index" + Just False -> throwCmdError "redeemed badge credential does not verify against configured key" + -- verifyCredential checks the signature against the key inside the credential, not the one we + -- sent - so a credential over any other master key also verifies + Just True | credMasterKey /= masterKey -> throwCmdError "redeemed badge credential is for a different master key" + Just True -> do + -- badge_issuances requires a period; a credential without an expiry has none to record + expiry <- maybe (throwCmdError "redeemed badge credential has no expiry") pure badgeExpiry + g <- asks random + now <- liftIO getCurrentTime + let badge = OwnBadge cred (mkBadgeStatus now (Just True) info) + -- TODO [badges] copy the statement's ledger entries, and retire a previously held badge + (user', newBadge) <- withStore' $ \db -> do + newBadge <- createCodeBadgePurchase db g user redemption cred expiry now + -- a replay must not put a superseded badge back, or tell every contact again + user' <- if newBadge then setUserBadge db user (Just badge) else pure user + pure (user', newBadge) + when newBadge $ presentUserBadgeToContacts user' + pure $ CRBadgeRedeemed user' badge newBadge + +sendServiceRequestTo :: J.ToJSON a => NetworkRequestMode -> User -> ConnectTarget 'CMContact -> Maybe NominalDiffTime -> Maybe C.PrivateKeyEd25519 -> a -> CM J.Object +sendServiceRequestTo nm user sendTarget requestTimeout signKey request = do + cReq <- resolveServiceTarget sendTarget + respData <- withAgent $ \a -> sendServiceRequestAsync a (aUserId user) cReq requestTimeout signKey (LB.toStrict $ J.encode request) + either (const $ throwCmdError "invalid service response") pure $ J.eitherDecodeStrict' respData + where + resolveServiceTarget = \case + CTFullContact cReq -> pure cReq + CTShortContact (CTLink sLnk) -> resolveShortLink sLnk + CTShortContact (CTName SimplexNameInfo {nameType, nameDomain}) -> case nameType of + NTContact -> resolveDomain nameDomain + _ -> throwCmdError "service request target must be a contact" + CTDomain d -> resolveDomain d + resolveDomain d = do + nr <- withAgent $ \a -> resolveSimplexName a nm (aUserId user) d + case firstNameLink CCTContact (nrSimplexContact nr) of + Just sLnk -> resolveShortLink sLnk + Nothing -> throwChatError $ CESimplexDomainNotReady d SDENoValidLink + resolveShortLink sLnk = (\(_, _, cReq) -> cReq) <$> getShortLinkConnReq nm user sLnk + assertDirectAllowed :: User -> MsgDirection -> Contact -> CMEventTag e -> CM () assertDirectAllowed user dir ct event = unless (allowedChatEvent || anyDirectOrUsed ct) . unlessM directMessagesAllowed $ @@ -5539,6 +5625,7 @@ chatCommandP = "/_accept" *> (APIAcceptContact <$> incognitoOnOffP <* A.space <*> A.decimal), "/_reject " *> (APIRejectContact <$> A.decimal <*> (" notify=" *> onOffP <|> pure False)), "/_service_request " *> (APISendServiceRequest <$> A.decimal <* A.space <*> strP <*> optional (" timeout=" *> (realToFrac <$> A.double)) <*> optional (" sign_key=" *> strP) <* A.space <*> jsonP), + "/_redeem_badge_code " *> (APIRedeemBadgeCode <$> A.decimal <* A.space <*> textP), "/_service_response " *> (APISendServiceResponse <$> A.decimal <* A.space <*> strP <* A.space <*> jsonP), "/_call invite @" *> (APISendCallInvitation <$> A.decimal <* A.space <*> jsonP), "/call " *> char_ '@' *> (SendCallInvitation <$> displayNameP <*> pure defaultCallType), diff --git a/src/Simplex/Chat/PaymentService.hs b/src/Simplex/Chat/PaymentService.hs index 4cbfc0ef11..38f94b2118 100644 --- a/src/Simplex/Chat/PaymentService.hs +++ b/src/Simplex/Chat/PaymentService.hs @@ -1,4 +1,5 @@ {-# LANGUAGE DuplicateRecordFields #-} +{-# LANGUAGE TemplateHaskell #-} module Simplex.Chat.PaymentService ( ServiceInvoice (..), @@ -6,9 +7,11 @@ module Simplex.Chat.PaymentService module Simplex.Chat.PaymentService.Types, ) where +import qualified Data.Aeson.TH as JQ import Data.Text (Text) import Data.Time.Clock (UTCTime) import Simplex.Chat.PaymentService.Types +import Simplex.Messaging.Parsers (defaultJSON, dropPrefix, taggedObjectJSON) data ServiceInvoice = ServiceInvoice { invoiceId :: InvoiceId, @@ -28,3 +31,7 @@ data ServicePayment | SPInvoice {invoiceId :: InvoiceId} | SPReceipt {receipt :: Text} -- transfer of unissued months deriving (Show) + +$(JQ.deriveJSON defaultJSON ''ServiceInvoice) + +$(JQ.deriveJSON (taggedObjectJSON $ dropPrefix "SP") ''ServicePayment) diff --git a/src/Simplex/Chat/PaymentService/Types.hs b/src/Simplex/Chat/PaymentService/Types.hs index 910a5b973f..5df3aea92a 100644 --- a/src/Simplex/Chat/PaymentService/Types.hs +++ b/src/Simplex/Chat/PaymentService/Types.hs @@ -1,6 +1,7 @@ {-# LANGUAGE DerivingStrategies #-} {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} +{-# LANGUAGE TemplateHaskell #-} module Simplex.Chat.PaymentService.Types ( CurrencyAmount (..), @@ -19,18 +20,22 @@ module Simplex.Chat.PaymentService.Types PaymentStatus (..), ) where +import Data.Aeson (FromJSON, ToJSON) +import qualified Data.Aeson.TH as JQ import Data.ByteString.Char8 (ByteString) import Data.Text (Text) import Data.Time.Clock (UTCTime) import Data.Word (Word32) +import Simplex.Messaging.Parsers (dropPrefix, enumJSON, taggedObjectJSON) -- USD etc. are in minor units, following Stripe etc. convention newtype CurrencyAmount = CurrencyAmount Word32 deriving (Eq, Show) + deriving newtype (ToJSON, FromJSON) -- confirmed newtype InvoiceId = InvoiceId Text - deriving newtype (Eq, Show) + deriving newtype (Eq, Show, ToJSON, FromJSON) -- confirmed newtype PaymentId = PaymentId Text @@ -132,3 +137,11 @@ data PaymentTerm -- to review data PaymentStatus = PSPending | PSSettled | PSFailed {exception :: Text} deriving (Show) + +$(JQ.deriveJSON (enumJSON $ dropPrefix "CP") ''CardProvider) + +$(JQ.deriveJSON (enumJSON $ dropPrefix "CC") ''CryptoCurrency) + +$(JQ.deriveJSON (taggedObjectJSON $ dropPrefix "SPM") ''ServicePaymentMethod) + +$(JQ.deriveJSON (taggedObjectJSON $ dropPrefix "SPD") ''ServicePaymentDestination) diff --git a/src/Simplex/Chat/Store/Badges.hs b/src/Simplex/Chat/Store/Badges.hs new file mode 100644 index 0000000000..fb443077bd --- /dev/null +++ b/src/Simplex/Chat/Store/Badges.hs @@ -0,0 +1,133 @@ +{-# LANGUAGE CPP #-} +{-# LANGUAGE DuplicateRecordFields #-} +{-# LANGUAGE LambdaCase #-} +{-# LANGUAGE NamedFieldPuns #-} +{-# LANGUAGE OverloadedStrings #-} +{-# LANGUAGE QuasiQuotes #-} + +module Simplex.Chat.Store.Badges + ( BadgeCodeRedemption (..), + getBadgeCodeRedemption, + createBadgeCodeRedemption, + deleteBadgeCodeRedemption, + createCodeBadgePurchase, + ) +where + +import Control.Concurrent.STM (TVar, atomically) +import Crypto.Random (ChaChaDRG) +import qualified Data.Aeson as J +import qualified Data.ByteString.Lazy.Char8 as LB +import Data.Int (Int64) +import Data.Text (Text) +import Data.Time.Clock (UTCTime) +import Simplex.Chat.Badges +import Simplex.Chat.Badges.Types (BadgePurchaseStatus (..)) +import Simplex.Chat.Store.Shared (insertedRowId) +import Simplex.Chat.Types +import Simplex.Messaging.Agent.Store.DB (Binary (..)) +import qualified Simplex.Messaging.Agent.Store.DB as DB +import qualified Simplex.Messaging.Crypto as C +import Simplex.Messaging.Encoding.String (strEncode) +import Simplex.Messaging.Util (maybeFirstRow, safeDecodeUtf8) + +#if defined(dbPostgres) +import Database.PostgreSQL.Simple (Only (..)) +import Database.PostgreSQL.Simple.SqlQQ (sql) +#else +import Database.SQLite.Simple (Only (..)) +import Database.SQLite.Simple.QQ (sql) +#endif + +-- | The keys one redemption attempt is signed with, stashed before the request is sent so that a +-- retry reaches the service as the same signer and is answered with the credential already issued. +data BadgeCodeRedemption = BadgeCodeRedemption + { redemptionId :: Int64, + purchaseKey :: C.PublicKeyEd25519, + purchasePrivKey :: C.PrivateKeyEd25519, + masterKey :: BadgeMasterKey + } + +getBadgeCodeRedemption :: DB.Connection -> User -> Text -> IO (Maybe BadgeCodeRedemption) +getBadgeCodeRedemption db User {userId} code = + maybeFirstRow toRedemption $ + DB.query + db + [sql| + SELECT badge_code_redemption_id, purchase_key, purchase_priv_key, master_key + FROM badge_code_redemptions + WHERE user_id = ? AND code = ? + |] + (userId, code) + where + toRedemption (redemptionId, purchaseKey, purchasePrivKey, Binary mk) = + BadgeCodeRedemption {redemptionId, purchaseKey, purchasePrivKey, masterKey = BadgeMasterKey mk} + +createBadgeCodeRedemption :: DB.Connection -> TVar ChaChaDRG -> User -> Text -> UTCTime -> IO BadgeCodeRedemption +createBadgeCodeRedemption db g User {userId} code now = do + (purchaseKey, purchasePrivKey) <- atomically $ C.generateKeyPair g + masterKey@(BadgeMasterKey mk) <- generateMasterKey g + DB.execute + db + [sql| + INSERT INTO badge_code_redemptions (user_id, code, purchase_key, purchase_priv_key, master_key, created_at) + VALUES (?,?,?,?,?,?) + |] + (userId, code, purchaseKey, purchasePrivKey, Binary mk, now) + redemptionId <- insertedRowId db + pure BadgeCodeRedemption {redemptionId, purchaseKey, purchasePrivKey, masterKey} + +-- | Drop a stashed attempt whose code the service refused for good, unless a purchase already +-- came from it - badge_purchases references this row. +deleteBadgeCodeRedemption :: DB.Connection -> Int64 -> IO () +deleteBadgeCodeRedemption db redemptionId = + DB.execute + db + [sql| + DELETE FROM badge_code_redemptions + WHERE badge_code_redemption_id = ? + AND NOT EXISTS (SELECT 1 FROM badge_purchases WHERE badge_code_redemption_id = ?) + |] + (redemptionId, redemptionId) + +-- | The purchase a redeemed code created, its issuance, and the profile's pointer to it. +-- False when the code was already redeemed here: the service replays the credential it issued, +-- and that must add no purchase and leave the shown badge alone. The expiry is passed in because +-- badge_issuances requires one and the caller has already resolved it. +createCodeBadgePurchase :: DB.Connection -> TVar ChaChaDRG -> User -> BadgeCodeRedemption -> BadgeCredential -> UTCTime -> UTCTime -> IO Bool +createCodeBadgePurchase db g User {userId} redemption credential expiry now = + getCodeBadgePurchase db redemption >>= \case + Just _ -> pure False + Nothing -> do + purchaseId <- insertPurchase + DB.execute db "UPDATE users SET shown_badge_id = ? WHERE user_id = ?" (purchaseId, userId) + pure True + where + BadgeCodeRedemption {redemptionId, purchaseKey, purchasePrivKey, masterKey = BadgeMasterKey mk} = redemption + BadgeCredential {badgeInfo = BadgeInfo {badgeType}} = credential + insertPurchase = do + DB.execute + db + [sql| + INSERT INTO badge_purchases + (user_id, purchase_key, purchase_priv_key, master_key, initial_badge_type, current_badge_type, status, badge_code_redemption_id, created_at, updated_at) + VALUES (?,?,?,?,?,?,?,?,?,?) + |] + (userId, purchaseKey, purchasePrivKey, Binary mk, badgeType, badgeType, PSIssued, redemptionId, now, now) + purchaseId <- insertedRowId db + issuanceId <- safeDecodeUtf8 . strEncode <$> atomically (C.randomBytes 16 g) + -- TODO [badges] the credential's expiry stands in for the period end, which is up to a + -- week later, until the statement carries the real period + DB.execute + db + [sql| + INSERT INTO badge_issuances (issuance_id, badge_purchase_id, badge_type, period_start, period_end, expiry, credential, created_at) + VALUES (?,?,?,?,?,?,?,?) + |] + (issuanceId, purchaseId, badgeType, now, expiry, expiry, Binary (LB.toStrict $ J.encode credential), now) + pure purchaseId + +getCodeBadgePurchase :: DB.Connection -> BadgeCodeRedemption -> IO (Maybe Int64) +getCodeBadgePurchase db BadgeCodeRedemption {redemptionId} = + maybeFirstRow fromOnly $ + DB.query db "SELECT badge_purchase_id FROM badge_purchases WHERE badge_code_redemption_id = ?" (Only redemptionId) diff --git a/src/Simplex/Chat/Store/Postgres/Migrations/M20261001_user_badges.hs b/src/Simplex/Chat/Store/Postgres/Migrations/M20261001_user_badges.hs index 0aa9153b2c..4606e7c307 100644 --- a/src/Simplex/Chat/Store/Postgres/Migrations/M20261001_user_badges.hs +++ b/src/Simplex/Chat/Store/Postgres/Migrations/M20261001_user_badges.hs @@ -251,7 +251,7 @@ CREATE TABLE badge_code_redemptions( purchase_priv_key BYTEA NOT NULL, master_key BYTEA NOT NULL, created_at TIMESTAMPTZ NOT NULL, - UNIQUE(code) + UNIQUE(user_id, code) ); CREATE INDEX idx_badge_code_redemptions_user ON badge_code_redemptions(user_id); diff --git a/src/Simplex/Chat/Store/Postgres/Migrations/chat_schema.sql b/src/Simplex/Chat/Store/Postgres/Migrations/chat_schema.sql index fbc663f45d..6d4ec6bc0a 100644 --- a/src/Simplex/Chat/Store/Postgres/Migrations/chat_schema.sql +++ b/src/Simplex/Chat/Store/Postgres/Migrations/chat_schema.sql @@ -1763,12 +1763,12 @@ ALTER TABLE test_chat_schema.xftp_file_descriptions ALTER COLUMN file_descr_id A ALTER TABLE ONLY test_chat_schema.badge_code_redemptions - ADD CONSTRAINT badge_code_redemptions_code_key UNIQUE (code); + ADD CONSTRAINT badge_code_redemptions_pkey PRIMARY KEY (badge_code_redemption_id); ALTER TABLE ONLY test_chat_schema.badge_code_redemptions - ADD CONSTRAINT badge_code_redemptions_pkey PRIMARY KEY (badge_code_redemption_id); + ADD CONSTRAINT badge_code_redemptions_user_id_code_key UNIQUE (user_id, code); diff --git a/src/Simplex/Chat/Store/SQLite/Migrations/M20261001_user_badges.hs b/src/Simplex/Chat/Store/SQLite/Migrations/M20261001_user_badges.hs index af91e24af0..ae1e138888 100644 --- a/src/Simplex/Chat/Store/SQLite/Migrations/M20261001_user_badges.hs +++ b/src/Simplex/Chat/Store/SQLite/Migrations/M20261001_user_badges.hs @@ -252,7 +252,7 @@ CREATE TABLE badge_code_redemptions( purchase_priv_key BLOB NOT NULL, master_key BLOB NOT NULL, created_at TEXT NOT NULL, - UNIQUE(code) + UNIQUE(user_id, code) ) STRICT; CREATE INDEX idx_badge_code_redemptions_user ON badge_code_redemptions(user_id); diff --git a/src/Simplex/Chat/Store/SQLite/Migrations/chat_query_plans.txt b/src/Simplex/Chat/Store/SQLite/Migrations/chat_query_plans.txt index 5105f7b610..626bc3fedc 100644 --- a/src/Simplex/Chat/Store/SQLite/Migrations/chat_query_plans.txt +++ b/src/Simplex/Chat/Store/SQLite/Migrations/chat_query_plans.txt @@ -1203,6 +1203,19 @@ Query: Plan: SEARCH chat_item_reactions USING INDEX idx_chat_item_reactions_group (group_id=? AND shared_msg_id=?) +Query: + INSERT INTO badge_issuances (issuance_id, badge_purchase_id, badge_type, period_start, period_end, expiry, credential, created_at) + VALUES (?,?,?,?,?,?,?,?) + +Plan: + +Query: + INSERT INTO badge_purchases + (user_id, purchase_key, purchase_priv_key, master_key, initial_badge_type, current_badge_type, status, badge_code_redemption_id, created_at, updated_at) + VALUES (?,?,?,?,?,?,?,?,?,?) + +Plan: + Query: INSERT INTO chat_item_reactions (contact_id, shared_msg_id, reaction_sent, reaction, created_by_msg_id, reaction_ts) @@ -3463,6 +3476,14 @@ Query: Plan: SEARCH connections USING INDEX idx_connections_to_subscribe (user_id=?) +Query: + SELECT badge_code_redemption_id, purchase_key, purchase_priv_key, master_key + FROM badge_code_redemptions + WHERE user_id = ? AND code = ? + +Plan: +SEARCH badge_code_redemptions USING INDEX sqlite_autoindex_badge_code_redemptions_1 (user_id=? AND code=?) + Query: SELECT c.agent_conn_id FROM connections c @@ -4297,6 +4318,17 @@ SEARCH c USING INDEX idx_connections_to_subscribe (user_id=?) SEARCH m USING INTEGER PRIMARY KEY (rowid=?) SEARCH ug USING AUTOMATIC COVERING INDEX (group_id=?) +Query: + DELETE FROM badge_code_redemptions + WHERE badge_code_redemption_id = ? + AND NOT EXISTS (SELECT 1 FROM badge_purchases WHERE badge_code_redemption_id = ?) + +Plan: +SEARCH badge_code_redemptions USING INTEGER PRIMARY KEY (rowid=?) +SCALAR SUBQUERY 1 +SEARCH badge_purchases USING COVERING INDEX idx_badge_purchases_code_redemption (badge_code_redemption_id=?) +SEARCH badge_purchases USING COVERING INDEX idx_badge_purchases_code_redemption (badge_code_redemption_id=?) + Query: DELETE FROM chat_items WHERE group_scope_group_member_id = ? @@ -4782,6 +4814,12 @@ LIST SUBQUERY 1 SEARCH groups USING INTEGER PRIMARY KEY (rowid=?) SEARCH groups USING COVERING INDEX idx_groups_group_profile_id (group_profile_id=?) +Query: + INSERT INTO badge_code_redemptions (user_id, code, purchase_key, purchase_priv_key, master_key, created_at) + VALUES (?,?,?,?,?,?) + +Plan: + Query: INSERT INTO calls (contact_id, shared_call_id, call_uuid, chat_item_id, call_state, call_ts, user_id, created_at, updated_at) @@ -6944,6 +6982,8 @@ SEARCH connections USING COVERING INDEX idx_connections_user_contact_link_id (us Query: DELETE FROM users WHERE user_id = ? Plan: SEARCH users USING INTEGER PRIMARY KEY (rowid=?) +SEARCH badge_code_redemptions USING COVERING INDEX idx_badge_code_redemptions_user (user_id=?) +SEARCH badge_purchases USING COVERING INDEX idx_badge_purchases_user (user_id=?) SEARCH chat_relays USING COVERING INDEX idx_chat_relays_user_id (user_id=?) SEARCH chat_tags USING COVERING INDEX idx_chat_tags_user_id (user_id=?) SEARCH note_folders USING COVERING INDEX note_folders_user_id (user_id=?) @@ -7177,6 +7217,10 @@ Query: SELECT auth_err_counter FROM connections WHERE user_id = ? AND connection Plan: SEARCH connections USING INTEGER PRIMARY KEY (rowid=?) +Query: SELECT badge_purchase_id FROM badge_purchases WHERE badge_code_redemption_id = ? +Plan: +SEARCH badge_purchases USING COVERING INDEX idx_badge_purchases_code_redemption (badge_code_redemption_id=?) + Query: SELECT c.agent_conn_id FROM connections c JOIN group_members m ON m.group_member_id = c.group_member_id WHERE m.local_display_name = ? Plan: SCAN m USING COVERING INDEX idx_group_members_user_id_local_display_name @@ -7982,6 +8026,10 @@ Query: UPDATE users SET send_rcpts_small_groups = ? WHERE user_id = ? Plan: SEARCH users USING INTEGER PRIMARY KEY (rowid=?) +Query: UPDATE users SET shown_badge_id = ? WHERE user_id = ? +Plan: +SEARCH users USING INTEGER PRIMARY KEY (rowid=?) + Query: UPDATE users SET ui_themes = ?, updated_at = ? WHERE user_id = ? Plan: SEARCH users USING INTEGER PRIMARY KEY (rowid=?) diff --git a/src/Simplex/Chat/Store/SQLite/Migrations/chat_schema.sql b/src/Simplex/Chat/Store/SQLite/Migrations/chat_schema.sql index 059b39ec89..6a0429ab72 100644 --- a/src/Simplex/Chat/Store/SQLite/Migrations/chat_schema.sql +++ b/src/Simplex/Chat/Store/SQLite/Migrations/chat_schema.sql @@ -996,7 +996,7 @@ CREATE TABLE badge_code_redemptions( purchase_priv_key BLOB NOT NULL, master_key BLOB NOT NULL, created_at TEXT NOT NULL, - UNIQUE(code) + UNIQUE(user_id, code) ) STRICT; CREATE INDEX contact_profiles_index ON contact_profiles( display_name, diff --git a/src/Simplex/Chat/View.hs b/src/Simplex/Chat/View.hs index 6731b62fd6..81341cb913 100644 --- a/src/Simplex/Chat/View.hs +++ b/src/Simplex/Chat/View.hs @@ -188,6 +188,8 @@ chatResponseToView hu cfg@ChatConfig {logLevel, showReactions, showFullLinks, te CRContactRequestRejected u UserContactRequest {localDisplayName = c} _ct_ -> ttyUser u [ttyContact c <> ": contact request rejected"] CRServiceResponse u resp -> ttyUser u ["service response: " <> viewJSON resp] CRServiceReplyAccepted u (AgentConnId cId) -> ttyUser u [plain $ "service reply accepted, connection id: " <> safeDecodeUtf8 (strEncode cId)] + -- the badge is only shown when it is the one now on the profile; a replayed code's badge may not be + CRBadgeRedeemed u badge newBadge -> ttyUser u $ if newBadge then "badge redeemed" : viewContactBadge (Just badge) else ["badge already redeemed"] CRGroupCreated u g -> ttyUser u $ viewGroupCreated g testView CRPublicGroupCreated u g _groupLink _relays -> ttyUser u $ viewGroupCreated g testView CRPublicGroupCreationFailed u results -> ttyUser u $ viewPublicGroupCreationFailed results diff --git a/tests/BadgeTests.hs b/tests/BadgeTests.hs index 90e3e9ae7a..b4190ca6a3 100644 --- a/tests/BadgeTests.hs +++ b/tests/BadgeTests.hs @@ -1,19 +1,27 @@ {-# LANGUAGE DataKinds #-} {-# LANGUAGE DisambiguateRecordFields #-} +{-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE GADTs #-} +{-# LANGUAGE LambdaCase #-} {-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE OverloadedStrings #-} +{-# OPTIONS_GHC -fno-warn-ambiguous-fields #-} module BadgeTests (badgeTests) where +import Control.Concurrent.STM (atomically) import Data.Map.Strict (Map) import qualified Data.Map.Strict as M +import qualified Data.Text as T import Data.Time.Clock (UTCTime, addUTCTime, getCurrentTime, nominalDay) import Data.Time.Clock.POSIX (posixSecondsToUTCTime) import qualified Data.Aeson as J import qualified Simplex.Messaging.Crypto as C import Simplex.Chat.Badges +import Simplex.Chat.Badges.Code +import Simplex.Chat.Badges.Service import Simplex.Messaging.Crypto.BBS +import Simplex.Messaging.Version.Internal (Version (..)) import Test.Hspec badgeTests :: Spec @@ -27,6 +35,16 @@ badgeTests = do it "should treat lifetime badges as always active" testLifetimeBadge it "should accept unknown badge types" testUnknownBadgeType it "credential serializes to a paste-able token and back" testCredentialSerialization + describe "redemption codes" $ do + it "a generated code reads back" testCodeRoundTrip + it "reads a code as typed - any case, separators, ambiguous characters" testCodeNormalisation + it "rejects a code whose check character does not match" testCodeCheckCharacter + it "hashes the canonical form, whatever was typed" testCodeHash + describe "service protocol JSON" $ do + it "redeemBadgeCode request matches the schema" testRedeemRequestJSON + it "badgeCredential response matches the schema" testCredentialResponseJSON + it "error response matches the schema" testErrorResponseJSON + it "statement entries round-trip, unknown entry types verbatim" testStatementJSON proofOf :: BadgeProof -> BBSProof proofOf (BadgeProof _ _ p _) = p @@ -140,3 +158,138 @@ issueBadgeProof bt expiry = do Right cred <- issueBadge testKeyIdx sk vreq Right badge <- generateBadgeProof pk cred (BBSPresHeader "test-nonce") pure (pk, badge) + +-- Redemption codes + +testCodeRoundTrip :: IO () +testCodeRoundTrip = do + drg <- C.newRandom + code <- randomBadgeCode drg + let formatted = formatBadgeCode code + T.length formatted `shouldBe` 27 -- SXB-XXXXX-XXXXX-XXXXX-XXXXX + T.take 4 formatted `shouldBe` "SXB-" + T.length (badgeCodeText code) `shouldBe` 23 -- the canonical form drops the separators + parseBadgeCode formatted `shouldBe` Just code + parseBadgeCode (badgeCodeText code) `shouldBe` Just code + +testCodeNormalisation :: IO () +testCodeNormalisation = do + drg <- C.newRandom + code <- randomBadgeCode drg + parseBadgeCode (T.toLower $ badgeCodeText code) `shouldBe` Just code + parseBadgeCode (T.replace "-" " " $ formatBadgeCode code) `shouldBe` Just code + -- a fixed code, because a random one contains no 0 or 1 about a quarter of the time and the + -- folding would then be asserted against nothing + let folded = T.map ambiguous fixedCode + folded `shouldNotBe` fixedCode + parseBadgeCode folded `shouldBe` parseBadgeCode fixedCode + parseBadgeCode fixedCode `shouldNotBe` Nothing + where + fixedCode = "SXB-0C0QS-XAQW1-N1VSA-R00Y3" + ambiguous = \case + '1' -> 'I' + '0' -> 'O' + c -> c + +testCodeCheckCharacter :: IO () +testCodeCheckCharacter = do + drg <- C.newRandom + code <- randomBadgeCode drg + let canonical = badgeCodeText code + -- every other value for the last character fails the check + wrong = T.init canonical <> T.singleton (if T.last canonical == 'Z' then 'Y' else 'Z') + parseBadgeCode wrong `shouldBe` Nothing + parseBadgeCode "" `shouldBe` Nothing + parseBadgeCode "SXB-00000-00000-00000-0000" `shouldBe` Nothing + parseBadgeCode (T.drop 3 canonical) `shouldBe` Nothing + +testCodeHash :: IO () +testCodeHash = do + drg <- C.newRandom + code <- randomBadgeCode drg + Just typed <- pure $ parseBadgeCode $ T.toLower $ formatBadgeCode code + badgeCodeHash typed `shouldBe` badgeCodeHash code + +-- Service protocol JSON, against docs/protocol/badges-rpc.schema.json + +testRedeemRequestJSON :: IO () +testRedeemRequestJSON = do + drg <- C.newRandom + mk <- generateMasterKey drg + (k, _) <- atomically $ C.generateKeyPair drg :: IO (C.KeyPair 'C.Ed25519) + code <- randomBadgeCode drg + let req = BadgeServiceRequest {version = Version 1, purchaseKey = Just k, request = BSCRedeemBadgeCode {masterKey = mk, code = badgeCodeText code}} + J.toJSON req + `shouldBe` J.object + [ "version" J..= (1 :: Int), + "purchaseKey" J..= k, + "request" J..= J.object ["type" J..= ("redeemBadgeCode" :: T.Text), "masterKey" J..= mk, "code" J..= badgeCodeText code] + ] + -- purchaseKey is optional in the schema, and a nullary command is a bare tagged object + J.toJSON BadgeServiceRequest {version = Version 1, purchaseKey = Nothing, request = BSCGetBadgeCatalog} + `shouldBe` J.object ["version" J..= (1 :: Int), "request" J..= J.object ["type" J..= ("getBadgeCatalog" :: T.Text)]] + roundTrips req + +testCredentialResponseJSON :: IO () +testCredentialResponseJSON = do + Right (_, sk) <- bbsKeyGen + drg <- C.newRandom + mk <- generateMasterKey drg + let info = BadgeInfo {badgeType = BTSupporter, badgeExpiry = Just futureTime, badgeExtra = ""} + Right cred <- issueBadge testKeyIdx sk (VerifiedBadgeRequest BadgeRequest {masterKey = mk, badgeInfo = info}) + let resp = BSPBadgeCredential {credential = Just cred, receipt = Nothing, statement = BadgeStatement {entries = [], previousEntryId = Nothing}} + J.toJSON resp + `shouldBe` J.object + [ "type" J..= ("badgeCredential" :: T.Text), + "credential" J..= cred, + "statement" J..= J.object ["entries" J..= ([] :: [J.Value])] + ] + roundTrips resp + +testErrorResponseJSON :: IO () +testErrorResponseJSON = do + let resp = BSPError {code = BSECodeInvalid, message = Nothing, retryAfter = Nothing} + J.toJSON resp `shouldBe` J.object ["type" J..= ("error" :: T.Text), "code" J..= ("code_invalid" :: T.Text)] + J.toJSON BSPError {code = BSERateLimited, message = Just "slow down", retryAfter = Just 30} + `shouldBe` J.object ["type" J..= ("error" :: T.Text), "code" J..= ("rate_limited" :: T.Text), "message" J..= ("slow down" :: T.Text), "retryAfter" J..= (30 :: Int)] + +testStatementJSON :: IO () +testStatementJSON = do + let entry = + StatementEntry + { entryId = "e1", + changeMonths = 3, + balanceMonths = 3, + balanceStartTs = futureTime, + balanceBadgeType = BTSupporter, + wasPausedSince = Nothing, + createdAt = futureTime, + entryType = SECredit {credit = SCPayment {invoiceId = Nothing}} + } + -- the whole entry: the required fields, and wasPausedSince omitted rather than sent as null + J.toJSON entry + `shouldBe` J.object + [ "entryId" J..= ("e1" :: T.Text), + "changeMonths" J..= (3 :: Int), + "balanceMonths" J..= (3 :: Int), + "balanceStartTs" J..= futureTime, + "balanceBadgeType" J..= ("supporter" :: T.Text), + "createdAt" J..= futureTime, + "entryType" J..= entryType entry + ] + J.toJSON entry {wasPausedSince = Just pastTime} `shouldNotBe` J.toJSON entry + J.toJSON (entryType entry) `shouldBe` J.object ["type" J..= ("credit" :: T.Text), "credit" J..= J.object ["type" J..= ("payment" :: T.Text)]] + J.toJSON SEDebit {debit = SDBadge} `shouldBe` J.object ["type" J..= ("debit" :: T.Text), "debit" J..= J.object ["type" J..= ("badge" :: T.Text)]] + -- an entry type from a newer service is stored and re-emitted unchanged + let futureCredit = J.object ["type" J..= ("grant" :: T.Text), "grantedBy" J..= ("operator" :: T.Text)] + case J.fromJSON futureCredit of + J.Success c@SCUnknown {tag} -> do + tag `shouldBe` "grant" + J.toJSON c `shouldBe` futureCredit + r -> expectationFailure $ "expected SCUnknown, got " <> show (fmap (const ()) r) + +-- decoding and re-encoding reproduces the encoding, without Eq on the protocol types +roundTrips :: (HasCallStack, J.ToJSON a, J.FromJSON a) => a -> IO () +roundTrips x = case J.eitherDecode (J.encode x) of + Right x' -> J.toJSON (x' `asTypeOf` x) `shouldBe` J.toJSON x + Left e -> expectationFailure e diff --git a/tests/Bots/BadgeServiceTests.hs b/tests/Bots/BadgeServiceTests.hs index 896c603d7f..84daff15f8 100644 --- a/tests/Bots/BadgeServiceTests.hs +++ b/tests/Bots/BadgeServiceTests.hs @@ -1,4 +1,6 @@ {-# LANGUAGE CPP #-} +{-# LANGUAGE DataKinds #-} +{-# LANGUAGE LambdaCase #-} {-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE OverloadedStrings #-} @@ -10,17 +12,37 @@ import ChatClient import ChatTests.DBUtils import ChatTests.Utils import Control.Concurrent (forkIO, killThread, threadDelay) +import Control.Concurrent.STM (atomically, readTMVar) import Control.Exception (finally) -import Simplex.Chat.Controller (ChatConfig) +import qualified Data.ByteString.Char8 as B +import Data.Char (toLower) +import Data.Either (isLeft, isRight) +import qualified Data.Map.Strict as M +import qualified Data.Text as T +import Simplex.Chat.Badges (BadgeType (..)) +import Simplex.Chat.Badges.Code (BadgeCode, badgeCodeText, formatBadgeCode, parseBadgeCode, randomBadgeCode) +import Simplex.Chat.Controller (ChatConfig (..), ChatController, ChatResponse (CRCustomChatResponse)) +import Simplex.Chat.Core (sendChatCmdStr) import Simplex.Chat.Options (CoreChatOpts (..)) import Simplex.Chat.Options.DB import Simplex.Chat.Types (ChatPeerType (..), Profile (..)) +import qualified Simplex.Messaging.Crypto as C +import Simplex.Messaging.Crypto.BBS (BBSSecretKey, bbsKeyGen) +import Simplex.Messaging.Encoding.String (strDecode, strEncode, textEncode) import System.FilePath (()) import Test.Hspec hiding (it) badgeServiceTests :: SpecWith TestParams badgeServiceTests = do - it "should respond with unsupported_version to redeem" testBadgeServiceRedeemUnsupported + it "should answer unsupported_version to unsupported command" testBadgeServiceUnsupported + it "should redeem an issued code into a badge a contact sees" testRedeemBadgeCode + it "should return the same badge when the same code is redeemed twice" testRedeemBadgeCodeTwice + it "should answer code_invalid to an unknown code, indistinguishably from a malformed one" testRedeemUnknownCode + it "should tell a second profile redeeming the same code that it is used" testRedeemSameCodeOtherProfile + it "should redeem a second code, and not restore the first badge on replay" testRedeemSecondCode + it "should refuse to issue a code with an unknown badge type or a nonsense month count" testIssueRejectsBadArguments + it "should refuse a request whose purchaseKey is not the verified signer" testPurchaseKeyMismatch + it "should refuse to start unless the issuer secret is the key trusted at its index" testIssuerKeyMustMatchConfig badgeProfile :: Profile badgeProfile = Profile {displayName = "SimpleX Badges", fullName = "", shortDescr = Nothing, description = Nothing, image = Nothing, contactLink = Nothing, peerType = Just CPTBot, preferences = Nothing, badge = Nothing, contactDomain = Nothing} @@ -28,8 +50,11 @@ badgeProfile = Profile {displayName = "SimpleX Badges", fullName = "", shortDesc serviceDbPrefix :: FilePath serviceDbPrefix = "badge_service" -mkBadgeServiceOpts :: TestParams -> BadgeServiceOpts -mkBadgeServiceOpts TestParams {tmpPath = ps} = +testIssuerKeyIdx :: Int +testIssuerKeyIdx = 1 + +mkBadgeServiceOpts :: TestParams -> BBSSecretKey -> BadgeServiceOpts +mkBadgeServiceOpts TestParams {tmpPath = ps} secretKey = BadgeServiceOpts { coreOptions = testCoreOpts @@ -45,15 +70,21 @@ mkBadgeServiceOpts TestParams {tmpPath = ps} = clientService = True, noAddress = False, runCLI = False, + issuerKey = Just BadgeIssuerKey {keyIdx = testIssuerKeyIdx, secretKey}, testing = True } -withBadgeService :: HasCallStack => TestParams -> (TestCC -> String -> IO ()) -> IO () +-- | Start the badge service on a fresh issuer key, and hand the test body what depends on it: +-- the client config trusting that key and addressing the service, the address, and the controller. +withBadgeService :: HasCallStack => TestParams -> (ChatConfig -> String -> ChatController -> IO ()) -> IO () withBadgeService ps test = do - let opts = mkBadgeServiceOpts ps + Right (pk, sk) <- bbsKeyGen + let opts = mkBadgeServiceOpts ps sk + -- the service refuses to start unless its secret is the key trusted at its index + svcCfg = testCfg {badgePublicKeys = M.singleton testIssuerKeyIdx pk} withNewTestChatCfg ps testCfg serviceDbPrefix badgeProfile $ \_ -> pure () -- First start: badge service takes the CreateMyAddress branch. - runBadgeService testCfg opts (pure ()) + runBadgeService svcCfg opts $ \_ -> pure () -- Reopen the DB to read the link the service created. bsLink <- withTestChat ps serviceDbPrefix $ \bs -> do bs <## "subscribed 1 connections on server localhost" @@ -61,21 +92,205 @@ withBadgeService ps test = do (sLink, _) <- getContactLinks bs False bs <## "auto_accept off" pure sLink + let clientCfg = + svcCfg {badgeServiceAddress = Just $ either (error . ("bad badge service address: " <>)) id $ strDecode (B.pack bsLink)} -- Second start: badge service takes the ShowMyAddress branch, then serves the test body. - runBadgeService testCfg opts $ - withNewTestChatCfg ps testCfg "client" bobProfile $ \client -> - test client bsLink + runBadgeService svcCfg opts $ \env -> do + cc <- atomically $ readTMVar $ serviceCC env + test clientCfg bsLink cc -runBadgeService :: ChatConfig -> BadgeServiceOpts -> IO () -> IO () +-- through the operator command the service actually exposes, not the function behind it +issueCode :: HasCallStack => ChatController -> BadgeType -> Int -> IO BadgeCode +issueCode cc badgeType months = + sendChatCmdStr cc ("//issue " <> T.unpack (textEncode badgeType) <> " " <> show months) >>= \case + Right (CRCustomChatResponse _ response) -> case T.stripPrefix "code " response of + Just c | Just code <- parseBadgeCode c -> pure code + _ -> error $ "unexpected issue response: " <> T.unpack response + r -> error $ "issue failed: " <> show (() <$ r) + +runBadgeService :: ChatConfig -> BadgeServiceOpts -> (ServiceState -> IO ()) -> IO () runBadgeService cfg opts action = do - t <- forkIO $ badgeService opts cfg + env <- newServiceState + t <- forkIO $ badgeService opts cfg env threadDelay 500000 - action `finally` killThread t + action env `finally` killThread t -testBadgeServiceRedeemUnsupported :: HasCallStack => TestParams -> IO () -testBadgeServiceRedeemUnsupported ps = - withBadgeService ps $ \client bsLink -> do - let redeemReq = - "{\"version\":1,\"request\":{\"type\":\"purchaseBadge\",\"payment\":{\"type\":\"code\",\"code\":\"TEST-CODE\"}}}" - client ##> ("/_service_request 1 " <> bsLink <> " " <> redeemReq) - client <## "service response: {\"code\":\"unsupported_version\",\"type\":\"error\"}" +codeArg :: BadgeCode -> String +codeArg = T.unpack . formatBadgeCode + +testBadgeServiceUnsupported :: HasCallStack => TestParams -> IO () +testBadgeServiceUnsupported ps = + withBadgeService ps $ \clientCfg bsLink _ -> + withNewTestChatCfg ps clientCfg "client" bobProfile $ \client -> do + let req = "{\"version\":1,\"request\":{\"type\":\"pauseBadge\"}}" + client ##> ("/_service_request 1 " <> bsLink <> " " <> req) + client <## "service response: {\"code\":\"unsupported_version\",\"type\":\"error\"}" + +testRedeemBadgeCode :: HasCallStack => TestParams -> IO () +testRedeemBadgeCode ps = + withBadgeService ps $ \clientCfg _ cc -> + withNewTestChatCfg ps clientCfg "alice" aliceProfile $ \alice -> + withNewTestChatCfg ps clientCfg "bob" bobProfile $ \bob -> do + connectUsers alice bob + code <- issueCode cc BTSupporter 1 + -- the service has never seen this purchase key: a first redemption must still succeed + alice ##> ("/_redeem_badge_code 1 " <> codeArg code) + alice <## "badge redeemed" + alice <## "supporter badge - active" + alice <##. "expires " + alice ##> "/p" + alice <## "user profile: alice (Alice, * supporter)" + alice <## "use /p [] to change it" + alice #> "@bob hi" + bob <# "alice *> hi" + bob ##> "/i alice" + bob <## "contact ID: 2" + bob <## "supporter badge - active" + bob <##. "expires " + bob <## "receiving messages via: localhost" + bob <## "sending messages via: localhost" + bob <## "you've shared main profile with this contact" + bob <## "connection not verified, use /code command to see security code" + bob <## "quantum resistant end-to-end encryption" + bob <## currentChatVRangeInfo + +testRedeemBadgeCodeTwice :: HasCallStack => TestParams -> IO () +testRedeemBadgeCodeTwice ps = + withBadgeService ps $ \clientCfg _ cc -> + withNewTestChatCfg ps clientCfg "alice" aliceProfile $ \alice -> do + code <- issueCode cc BTSupporter 1 + alice ##> ("/_redeem_badge_code 1 " <> codeArg code) + alice <## "badge redeemed" + alice <## "supporter badge - active" + alice <##. "expires " + -- Retyped in another case and without separators, so it normalises to the same code and + -- finds the same stashed keys: a retry the service can recognise as the same signer. + alice ##> ("/_redeem_badge_code 1 " <> map toLower (T.unpack $ badgeCodeText code)) + alice <## "badge already redeemed" + alice ##> "/p" + alice <## "user profile: alice (Alice, * supporter)" + alice <## "use /p [] to change it" + +-- The service answers unknown and malformed alike; the client refuses malformed locally, which +-- is why the two reach the user differently. +testRedeemUnknownCode :: HasCallStack => TestParams -> IO () +testRedeemUnknownCode ps = + withBadgeService ps $ \clientCfg bsLink _ -> + withNewTestChatCfg ps clientCfg "alice" aliceProfile $ \alice -> do + g <- C.newRandom + unknown <- randomBadgeCode g + alice ##> ("/_redeem_badge_code 1 " <> codeArg unknown) + alice <## "bad chat command: badge service error: code_invalid" + -- a failed check character is refused before anything leaves the device + alice ##> "/_redeem_badge_code 1 SXB-00000-00000-00000-00001" + alice <## "bad chat command: invalid badge code" + -- sent straight to the service, past the client's own check, the two are one answer + (_, redeemPriv) <- atomically $ C.generateKeyPair g :: IO (C.KeyPair 'C.Ed25519) + redeemDirect alice bsLink redeemPriv (T.unpack $ badgeCodeText unknown) + alice <## "service response: {\"code\":\"code_invalid\",\"type\":\"error\"}" + redeemDirect alice bsLink redeemPriv "SXB-00000-00000-00000-00001" + alice <## "service response: {\"code\":\"code_invalid\",\"type\":\"error\"}" + +-- a signed redeemBadgeCode sent as a raw service request, bypassing the client's own checks +redeemDirect :: HasCallStack => TestCC -> String -> C.PrivateKeyEd25519 -> String -> IO () +redeemDirect cc bsLink signPriv code = do + let purchaseKey = B.unpack $ strEncode $ C.publicKey signPriv + signKey = B.unpack $ strEncode (C.StoredPrivateKey signPriv) + req = + "{\"version\":1,\"purchaseKey\":\"" <> purchaseKey + <> "\",\"request\":{\"type\":\"redeemBadgeCode\",\"masterKey\":\"" <> testMasterKeyB64 + <> "\",\"code\":\"" <> code <> "\"}}" + cc ##> ("/_service_request 1 " <> bsLink <> " sign_key=" <> signKey <> " " <> req) + +-- any 32 bytes: these requests never reach signing +testMasterKeyB64 :: String +testMasterKeyB64 = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" + +-- BadgeType decodes anything to BTUnknown, so without a check at this boundary an operator +-- typo would issue a code no app can show as a badge. +testIssueRejectsBadArguments :: HasCallStack => TestParams -> IO () +testIssueRejectsBadArguments ps = + withBadgeService ps $ \_ _ cc -> do + let refuses arg = issueRaw cc arg >>= (`shouldSatisfy` isLeft) + refuses "suporter" + refuses "supporter 0" + refuses "supporter 256" + refuses "supporter 1 gratis" + refuses "" + issueRaw cc "supporter 255 paid" >>= (`shouldSatisfy` isRight) + +issueRaw :: ChatController -> String -> IO (Either () ()) +issueRaw cc args = + sendChatCmdStr cc ("//issue " <> args) >>= \case + Right CRCustomChatResponse {} -> pure $ Right () + _ -> pure $ Left () + +-- Both purchases fund no payment, so both leave payment_id NULL under UNIQUE(payment_id). +-- The first purchase stays as it is: retiring a superseded badge is not implemented. +testRedeemSecondCode :: HasCallStack => TestParams -> IO () +testRedeemSecondCode ps = + withBadgeService ps $ \clientCfg _ cc -> + withNewTestChatCfg ps clientCfg "alice" aliceProfile $ \alice -> do + supporter <- issueCode cc BTSupporter 1 + legend <- issueCode cc BTLegend 1 + alice ##> ("/_redeem_badge_code 1 " <> codeArg supporter) + alice <## "badge redeemed" + alice <## "supporter badge - active" + alice <##. "expires " + alice ##> ("/_redeem_badge_code 1 " <> codeArg legend) + alice <## "badge redeemed" + alice <## "legend badge - active" + alice <##. "expires " + alice ##> "/p" + showActiveUser alice "alice (Alice, * legend)" + -- replaying the first code must not put supporter back + alice ##> ("/_redeem_badge_code 1 " <> codeArg supporter) + alice <## "badge already redeemed" + alice ##> "/p" + showActiveUser alice "alice (Alice, * legend)" + +-- Each profile stashes its own keys, so the second reaches the service as a different signer - +-- rather than being handed the first profile's badge, or colliding in badge_code_redemptions. +testRedeemSameCodeOtherProfile :: HasCallStack => TestParams -> IO () +testRedeemSameCodeOtherProfile ps = + withBadgeService ps $ \clientCfg _ cc -> + withNewTestChatCfg ps clientCfg "alice" aliceProfile $ \alice -> do + code <- issueCode cc BTSupporter 1 + alice ##> ("/_redeem_badge_code 1 " <> codeArg code) + alice <## "badge redeemed" + alice <## "supporter badge - active" + alice <##. "expires " + alice ##> "/create user alisa" + showActiveUser alice "alisa" + alice ##> ("/_redeem_badge_code 2 " <> codeArg code) + alice <## "bad chat command: badge service error: code_used" + alice ##> "/p" + showActiveUser alice "alisa" + alice ##> "/user alice" + showActiveUser alice "alice (Alice, * supporter)" + +testPurchaseKeyMismatch :: HasCallStack => TestParams -> IO () +testPurchaseKeyMismatch ps = + withBadgeService ps $ \clientCfg bsLink _ -> + withNewTestChatCfg ps clientCfg "alice" aliceProfile $ \alice -> do + g <- C.newRandom + (_, signPriv) <- atomically $ C.generateKeyPair g :: IO (C.KeyPair 'C.Ed25519) + (claimedPub, _) <- atomically $ C.generateKeyPair g :: IO (C.KeyPair 'C.Ed25519) + let signKey = B.unpack $ strEncode (C.StoredPrivateKey signPriv) + claimed = B.unpack $ strEncode claimedPub + req = "{\"version\":1,\"purchaseKey\":\"" <> claimed <> "\",\"request\":{\"type\":\"pauseBadge\"}}" + alice ##> ("/_service_request 1 " <> bsLink <> " sign_key=" <> signKey <> " " <> req) + alice <## "service response: {\"code\":\"bad_request\",\"type\":\"error\"}" + +-- A secret that is not the key clients trust at its index makes every credential unverifiable, +-- and each code redeemed against it is spent for good - so the service must not start at all. +testIssuerKeyMustMatchConfig :: HasCallStack => TestParams -> IO () +testIssuerKeyMustMatchConfig ps = do + Right (pk, sk) <- bbsKeyGen + Right (_, otherSk) <- bbsKeyGen + let optsFor sk' = mkBadgeServiceOpts ps sk' + cfg = testCfg {badgePublicKeys = M.singleton testIssuerKeyIdx pk} + checkIssuerKey (optsFor sk) cfg >>= (`shouldSatisfy` isRight) + checkIssuerKey (optsFor otherSk) cfg >>= (`shouldSatisfy` isLeft) + -- an index no client trusts is equally fatal + checkIssuerKey (optsFor sk) testCfg {badgePublicKeys = M.empty} >>= (`shouldSatisfy` isLeft) From 209f0a5f852a9b33903c8c9e53c08d4dd970be87 Mon Sep 17 00:00:00 2001 From: Evgeny Date: Wed, 9 Sep 2026 11:52:30 +0100 Subject: [PATCH 10/62] website: crowdfunding page (#7474) * website: crowdfunding page * styles * update * images * update * images * buttons * form * thankyou * forms * deck * improve layout * footer * safe areas * correction * move page --------- Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com> --- website/src/_includes/navbar.html | 2 + website/src/_includes/utm.js | 60 + website/src/crowdfunding.html | 1384 +++++++++++++++++ website/src/crowdfunding.md | 125 -- website/src/img/crowdfunding/ai.png | Bin 0 -> 773581 bytes .../src/img/crowdfunding/cloud-download.png | Bin 0 -> 1955 bytes website/src/img/crowdfunding/comparison.png | Bin 0 -> 153004 bytes website/src/img/crowdfunding/github-stars.png | Bin 0 -> 80238 bytes website/src/img/crowdfunding/p2p.png | Bin 0 -> 1966 bytes website/src/img/crowdfunding/phone-mask.png | Bin 0 -> 36696 bytes website/src/img/crowdfunding/phone.png | Bin 0 -> 405902 bytes website/src/img/crowdfunding/problem.png | Bin 0 -> 354068 bytes .../crowdfunding/simplex-chat-pitch-deck.pdf | Bin 0 -> 2417923 bytes .../src/img/crowdfunding/simplex-growth-2.png | Bin 0 -> 220105 bytes .../src/img/crowdfunding/simplex-growth.png | Bin 0 -> 179631 bytes website/src/js/livestream.js | 10 - website/src/livestream.html | 5 +- 17 files changed, 1449 insertions(+), 137 deletions(-) create mode 100644 website/src/_includes/utm.js create mode 100644 website/src/crowdfunding.html delete mode 100644 website/src/crowdfunding.md create mode 100644 website/src/img/crowdfunding/ai.png create mode 100644 website/src/img/crowdfunding/cloud-download.png create mode 100644 website/src/img/crowdfunding/comparison.png create mode 100644 website/src/img/crowdfunding/github-stars.png create mode 100644 website/src/img/crowdfunding/p2p.png create mode 100644 website/src/img/crowdfunding/phone-mask.png create mode 100644 website/src/img/crowdfunding/phone.png create mode 100644 website/src/img/crowdfunding/problem.png create mode 100644 website/src/img/crowdfunding/simplex-chat-pitch-deck.pdf create mode 100644 website/src/img/crowdfunding/simplex-growth-2.png create mode 100644 website/src/img/crowdfunding/simplex-growth.png diff --git a/website/src/_includes/navbar.html b/website/src/_includes/navbar.html index b9c6313968..6de0c372e3 100644 --- a/website/src/_includes/navbar.html +++ b/website/src/_includes/navbar.html @@ -210,6 +210,8 @@ + + + + + + + + + + + +
+ + +
+
+
+

The first and the only messaging network without any user IDs

+

SimpleX Chat is building a messaging network unlike every major platform — without phone numbers, usernames, emails, or any user identifiers.

+ +
+
+ +
3MDownloads
+
+
+ +
480KMonthly users
+
+
+ Join the livestream and Q&A on Sep 15 +
+ + +
+
+ + Invest on + + +
+ + +
+
+
+

480,000+ users with zero marketing spend

+

Hundreds of user posts, podcasts and videos and $650,000 in user donations, before any paid features.

+

Only $1.7M investment over 4 years — more capital efficient than most startups.

+
+
+
+ + +
+
+
+

Every other network can identify you

+

Surveillance, censorship and online crime all depend on user identifiers. AI made all three affect everyone.

+

Removing them by design, as SimpleX did, is the only solution — so you control who can reach you.

+ Why AI increases demand for privacy +
+
+
+ + +
+
+ +
+

SimpleX is a network, not an app

+

All five kinds of users arrived on their own — the cold start problem solved.

+

Each group makes the network more valuable to others, accelerating growth.

+
+
+
+ + +
+
+ +
+

Pre-revenue stage ends this year

+

Additional file capacity and SimpleX public names launch this year, followed by business messaging and paid servers for big channels.

+

Demand is proven — users donated $650,000 while everything was free.

+
+
+
+ + +
+
+
+

Design advantage that can't be copied

+

Only SimpleX has every property in this comparison — together they need a network without user identifiers.

+

A network with user IDs can't remove them — rivals would have to rebuild, and the ad giants would lose revenue that depends on user IDs.

+
+
+
+ + +
+
+
+

A network others build on

+

Developers already built many different services on SimpleX. In 2027, we plan to add support for user-created features inside chats.

+

Features and services users build would bring new users and increase revenue.

+ How custom UX helps unify messaging +
+
+
+ + +
+
+
+

Get a stake
in SimpleX Chat

+

We are building a network that people own.
We invite you to invest and become part of it.

+ + Join the livestream and Q&A on Sep 15 +
+
+

Invest $500+ by September 22 and get a SimpleX public name for your channel or business for 7 years, ahead of public launch.

+
+
+
+ + + + +
+ + + + + + +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ + + + + diff --git a/website/src/crowdfunding.md b/website/src/crowdfunding.md deleted file mode 100644 index df386ea4ac..0000000000 --- a/website/src/crowdfunding.md +++ /dev/null @@ -1,125 +0,0 @@ ---- -layout: layouts/page.html -title: "Get a Stake in SimpleX Chat" -description: "SimpleX Chat equity crowdfunding on Wefunder - invest in the first messaging network without any user IDs." -permalink: "/crowdfunding/index.html" ---- - - - -# Get a Stake in SimpleX Chat - - - -SimpleX Chat — the company that builds the first and the only messaging network without any user identifiers — is raising its community round. By investing, you can benefit from the company growth, and help us build the future of private and secure communications. [Learn more and invest on Wefunder](https://wefunder.com/simplex.chat?utm_source=website). - - -Live event -SimpleX Chat: Foundation for the Future -Livestream and Q&A about SimpleX Chat roadmap and crowdfunding. Tuesday, September 15, 2026 at 5:00 PM UTC. -Open event page - - -## Every other network can identify users - -For 150 years, all networks required user identifiers — phone numbers, usernames, random IDs or public keys. To be reachable, you had to be identifiable. User identification gives networks power over users: to surveil their private life, to sell their data, and to revoke access. Even encrypted platforms see who you talk to, when, and where — and pseudonyms don't help, because your contacts are a fingerprint. - -Identification also gives platforms the power to censor public speech without due process. Telegram blocked 44 million groups and channels in 2025 alone. Publishers and content creators build audiences on borrowed infrastructure — one policy change, and the audience that took years to build can be gone. - -The root cause of these problems is user identifiers. The solution is not better policies or stronger encryption with the same architecture — it is a different architecture, without any user IDs. - -## The first network without any user identifiers - - - -We invented and built SimpleX Network. It uses no phone numbers, emails, or user accounts — every conversation has its own network address, removing the need for any user IDs. There is no user data on the servers that could be breached or sold — all user data exists only on user devices. The network runs on multiple independent operators — SimpleX Chat and Flux are preconfigured in the app, and anyone can run their own servers. - -SimpleX Chat also supports public groups and channels, where owners fully control them, and nobody can take their work, because only the users hold the keys. SimpleX software is open-source and based on open protocols, audited by Trail of Bits in 2022, 2024, and 2026 (to be published). - -## 480,000+ users joined on their own - - - -Over 480,000 people use SimpleX Chat every month — more than doubling every year — and all of them found it without any paid marketing. 3 million people have downloaded the app, and users send 20 million messages a day via pre-configured servers. - -Users have donated over $650,000, paying for something they could use for free. All of it was built on a total investment of just $1.7M by 5 people team over 4.5 years. - -## A network others build on - - - -In addition to people who use SimpleX Chat for private messaging, four other kinds of participants came to the network: creators with thousands of public groups and channels, businesses supporting customers over SimpleX, developers building on the open protocols (19K+ GitHub stars), and ~1,000 servers run by volunteers, plus Flux and StormyCloud. Each group makes the network more valuable to the rest, driving organic growth. - -Independent developers created moderation and AI bots, Telegram bridges, and a public server registry. Every service developers build on SimpleX Network may increase its value, and bring new users to SimpleX Chat. And the [SimpleX Network Consortium](https://simplexnetwork.org/consortium.html) — an agreement between a non-profit foundation and SimpleX Chat — prevents any single company from controlling the network. - -## Why SimpleX cannot be copied - - - -No other communication system combines scalable one-to-many delivery, sovereign ownership, infrastructure independence, and participation privacy — and removing user identifiers from an existing network is hard for three reasons: - -- **Technically**: other networks rely on user IDs to route messages — they would have to rebuild from scratch. -- **Economically**: large platforms monetize user identifiers — removing IDs would destroy their revenue model. -- **Cold start**: a newcomer would need users, creators, businesses, developers, and servers, all at the same time — while competing with the SimpleX Network. - -## Why now: three trends that may grow SimpleX - - - -- **Growing surveillance of private life**: big centralized platforms are keen to scan private messages to train their AI models, supported by proposed laws. More people would move to private messaging that keeps no record of who they talk to. -- **Accelerating deplatforming**: more and more creators are removed from centralized platforms, without any due process. An audience built over years can disappear with one policy change. -- **AI agents acting for people**: if a platform controls an agent's identity, the platform can shut the agent down or turn it against the person it works for. User-controlled IDs are a basic security for the agentic Internet, not a preference. - -All three trends increase the demand for identity-free messaging. None of the existing networks can provide it. - -## Revenue plan: free for users, channels & businesses pay - - - -Private messaging should remain free for the users. Instead, we plan to earn from the infrastructure and services that channels and businesses need: - -- **SimpleX public names** — globally unique names for a public channel or business, paid yearly and controlled by the owner's key, so no one can seize them. If you invest $500 or more, you would receive a name as a perk for 7 years, if you invest by September 22, for 5 years during early bird, and for 3 years after that. -- **Business messaging** — a web widget that adds encrypted chat to any website with one line of code, built for privacy-first businesses and sectors where anonymity is required. -- **Paid servers for big channels** — channels that have grown beyond the free tier pay for the servers that deliver their messages, with server operators earning most of the revenue. - -Read about how we plan to make SimpleX Chat and network profitable, and about all the investment terms, on Wefunder. - -## Get a stake - -We are building a network that people own. Businesses, creators, and publishers keep the audiences and communities they build, and no company can take them away or unilaterally shut them down. By investing, you benefit from the company growth, and become part of building that future. - - - - diff --git a/website/src/img/crowdfunding/ai.png b/website/src/img/crowdfunding/ai.png new file mode 100644 index 0000000000000000000000000000000000000000..c207b4d24a06faa61ecb892d1fd2b9ef50122a2e GIT binary patch literal 773581 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

C&GXkMj1R?GMP)raP*;$z zD?jjd3con3DqPk$^dkjRFi|6rwW8eA4d{C8@tU$*8e@LrRoFV=$paG|4LdKPiCqf9vS6yH{>bGdep# zOoB#N*zxD1mn*8AE2RK{HlFVIu7Q45Jt&l-5t3rx6anZ%L!pK>c9IehD5t5;aQlU< zwUu#B>2dKK<|`sLXl0Qwv)(75Dx`Kjm_}pRgHFciPv*+@!kZ4RB+DZ>p`I92e%CCu zDNPx(lwM^=6LbJES4u*RXCIGY5lRmu^F%Zo;TCQTUS~!o)~v5>IJagC zF!_b`!*VV<qvx>(hJVO^8DYE8Q)woe51y5vTCS@6)Ft*mcgLv{EY3>&vujH0M zTw`B5!K2^7l}kv@oC&*-AvnDreaW#@;hs1+jd|f`yM|C{HRW^t28TMc{e^U1821o> zLfK3*^NN6rq%*r<&6gA=YXuU{{eJTA6?)N)g^FV%dD&bT9Q8x!qV)r^+$F5RbwcdN z;~dDggyW9l*eT^d7*eXIU*M$l{`}Yk8U2(IuH!+3S#(RfEE|wO!F4?&AUJHdir5NK zR4bYLB0cq(QBCBQoY&0N(1RYtj$A@Hc!94`Dsrv}{It&G#8I?Si}3W$Z_&uJ!MCWx zEDxiwX2~BDI{@WmySI`3mt=^Y6d^KH=0WsvdeEVcQrY4opQFYfk%=DmzjsQrl%zIg z{IDBPoXTx-myZ&I*h6i?yU*arqz5b%m)$b{ki=-5+$={4ENSr3?q%Xvux(_Uasm3Henppmm^RxqhX6WiwYiw(l;h9y=Dx^r$^4Mv z+2st+7NPRUsMT1E|AxJf&$4^x)py|)!5>2c3@KQ8JgJAI8}IG(Ef9wjMMs z?Jjl%{S+RV44?wPMUUJtREDznbvOp`JFG@Sycft)-HQ- zW`l?>qHASC^_Urh0Sq5AnaD;6?ODPtec9;aVc-SKw7(%pD0Y03#aR|F#bg)aM$|nV z_RQ|!65C4fiwta0JR)tT5EXTZAsJ?ibzgCLx;!vw^YtiRZ)sa~zt;qj z_rw)5Xo3){>>DoDtU&l}k)6J8t)j*hm^NQH7QyXGY>oj_Tl3JZ(D91y9KQS2_~iof zDu=*tn(H5H0ik5J9zg`|!_%y=d()b$;We(Youg7YjvxYso-`NEmT9IG^&p;%h4LUc zd=yJn;C^VzS>GOudDDuIvDKS}zv6pC7|Sf$2GfF@S`Phb(s!mIC&tbR8yU936UyU8$;qGqO0RP&;&V*c z4Q{`$(ut@A-^HW=#r%bi^ToHg!@m{nX1#q~P|N~ELuJ>3n9`$|lU;tV<*?WkPG0_D zVfuVY9*NT%qMT{c($zOa6-63J1AP8i!sRm|NAtAkD}GS}o_ z`!oHQj48R{fg1Db+-X~TIaMj~!Q)Z9EyuZNpbIRMBbe*Z@;@Q}&@x|)0MfZIue!05gl2EA;hdpqs3s1CkPd`Bt$}{v|X%T11kHZk9;PxnKk%P zx*LO5B`xl1Ms5hy_i)~n5E`S+K6F4rB-3Y}n1ue(@3L8>foz+^ zUoKn8J}^F=+myRYRPV}B=r@8B_eajqo&^C7L>1~W{trYI*}kp|oewAW-bqHkAyx=G zGn++P*+Af6)~JB5NSLivn&386b(3um8>`vp!B`F0sa^o|nOqqcW0i^1Kr)QUuu;56 zESqUs=mo<2eH;I1yP&l;R*JRUGXq6-DZQ0!#mQ`*^GRgAJ+`ed-s;_^2yaWh>u0u< zT)o!p5FY*<;cdm;<(MkJeV&czJo??bPL_~AHliP-6|kA3XbpJN$d*o zw_CE?<@J^Me^N2sT7R&*z-?4~18LVOk-9$Y7U?iH1-PN`ycCn!@q zuVS&SBrmI<5UrQ92o2{cpUF{A;n<)YoYvNzZ@?443f`;-_?RR}%x^NP!?ZXmW}t`= zXp(hk%B8tL6zl0PR{SD3!ghX!RP6qEC?d`IZwLAR8g4_}cOc8tgSYnYj zJiI-Y_&%OP?g!tms$9G+mV=V`?dzK;R;%=zC^|a_BBQ^70hsJ0c}I0;;-a)t6ZHZ9 zgQcKd8p}fLJzw9hbZSkdg{n6 zB#!fh)(TKA&sV}ATtY{`c`Yb z)4jgbVR556*&tE~LsHDD_HMkXW~PIVWBg$%H|zScB4!y>ASo(OKT>V1^XI?=0$`#t zzo7J9MG><;PK9yS8wD8kpcNRWN3-szYN;%kJ8|Yi5GDd4*$5HjJy3;qJrxVGdld|1BSOKcCkMq~9nz4DD*u_wc zpZa=knpx?vyJrXUlvK^-(Xm5$YtZzSyOvI;)_|ZR$jU zXzl5zNT%{|_Ry|)^X+T3u`5l;5_uXKunaEL|E84T3%C~!faVX377Zft9{1a}$=##U z(tbAtQ$%T4)csge+>8&Z)Q@+D8P_Jsnrcxt036NA?T^|1I)akj`@!)s7k*lDrVCcE z)WJS9ND;5QuJJROdVqUX#8)mfQYM@G=Z!L*Q?W|#y1Gz)=pb$%%a{5OKGOmkyQyK5 zAI@BY&^a`H9Ijz|@at%skgnxQ+lhcgfw=RQW*4Zo}_E&4GJ5 zRT(kX9&fEv`-u7_p>HH$J18w}_=rf-kjj3Y5rn1zgY$Ta@Aj(j9ndA~(P-1RATNR|j^~WW=NiG^OuUu8DBYpid$=A%!i~rpxOP`wI7gd7q7fKoZzM3+* zz){yNzUu2#J(I)b%bg%t2xhsI=Q;}yqt?L{t``I1Dkw6rnM6CwFw2rp5}x5G0jnm+ z%hIEmY%Pb~Pjr)h`0D62|NiYITLm~o(Xrw8NU&+E;;GqMqbNCA+scO7`Of6)D z6XKpe^(|;MyNpxsn7zLncr`K$U?_G@3*sw< z&l|wNkfu_#q%QLI#7%l`wcX+(+U8T+Aa#732Jq|-NCbnW^*AZJ+Rgki&JJubQX1!- zaW{N=p*Fe)xvGi;x6fEHHbZu7i8r&H|3pdahX+~^wdhXiEREiqh7M7VJb%fk0t(cvt_u3W+vhi2uLA6SUsITGC z=|qisuhSKr>Qa|u!(#sxDv?~i&M1GV4)(Is9D@Js^j_je(H!+zU1Nk@&<#&r!;!9$ z*kJku5k>I-=7#M4aYMG?cEV*vzRBfFwz8T1)3!_nX7#m!i|TiusAon7K?)oCzX(di*^9 zBaIuOro8=eyl`1gz4Es{=uDM5W_=G2WQ}1}@x2bju-YAorWL$F_2k||^gTKA4G@^c zYKxTg{@5dl|6c5-?iK3L0)SMy%M(6?6*3oU!TJ zWRpimTfPdHZZZLTj$I9MG103OFNWe)F%+5g;tvi!5fUTDVE@ey>rH>(1p{BJg$=)K zU%DeG^l1SbNyv3>*LWn(b6?X%_WKwD?FeS3=iGEHRt#l_xvaOWH1T*G=h>+cu{rnA z7)H|cfAy*Bu;GkMHjewUnG?3-NPw zDtZU$o9iSgqx~DF&5gj{p6xEs_BJwk?zg%rCQaDr`*WT>CgwC0 zW_5)mMJ}I+NoelA(}#RD*!X%ri-!<(g7ciE;qAFna7}@ zL-Bt~Dp%fVvhibeIERNix8^5N${@nC>x+o*|zg$}juXS=V{RVIh2M{2K))+IHD%$Og45+!cR7+?j%F%U4=oOTV z=D9q?AQc2ZFXL4;zRrk)Y3`2%?ETNHAUXPLBDUf!OThFd58!$_nqFF=@$@I&a?Hvg zyL-(ixp88zhaT-VU(aa_x|>-k46lq8)k{Di_Jx8ZJ{Bv;b`_o=Vsy~a!E zi=!b+&s&)3t+A>`$VIApH|1975^_<=2}Z7fBNq#EJ$j@GiH)tn6>ST9QnJkI#845E z-^9z8Z2%`f%*aHvn3@pS6GCe1{qny1n7~eu-m)pLoA+`8BC{5R#xHqgXo4Mo zCk6h>bmitt9GRTO_L zH^#qt4r--tt z{@Eh-2_ZMmKiMStUsA~r8PyiF-h7qKb#qQ(kdgHYFbr~tS4Q>O|IZfDqIl0?Xv}xJ zHitY5xjaIPv|B@dt1ZpIh|fxo6>vz-HPrzn_vh$+IIHqR;AbzKqLh4Ari{zJ{yc(V zIpi|rMQp@WrP1|7AsMn$rDF;+{OvW#0{5sbugf=6jKDC`2g+J)^o zEh%a97{D2Ev-_;US%HS02xX(AlogKm1owuWJ;%R{5Xvcm7;2dO_~sEX_g-5K)o=uB zr`w6za4Oo$9=$8(_|bYp8}LL}v!PLR`1V3Sv*>VH`;3?dF{;AWr5;t@wu;jl?pNOq zFt@tm?9c8e$dXO;ICTS2yeTZx&+6*C@t+0sAOTQgEKQB8O@=^td*ObszxU`o%bTNC zI<4c(Y?oXT9Lx&=h$I8?Fy5WdUr@i}{GM+*_`Lp^?AAC*^_i2^&HdbRbo662U_a94 zux&T8JGPELn#i_IWIxqts1zEji*edCPH0}pp#wkNbd_Nr6ICFHs1f`z;O=&P99qJL^VNGA6vz+s8ce{9Grx-Y7Hh8=qWj3174`RN}dgQK8LESAz>GLs} zznel?t+m}XJQ@%}l!uNU&xaU5bbd}<6U7!zzX~vxjRUPVFUw5tV$5lCURVs<_K9u7 zIBi_Qb^q+B2p7J=*wBo^`v7!k4G`LmE!cjZ3JfU)+$97XukYND2vk5F4CBj0Z`@4F=O#l+UfjtjfJ32d7 z4K_RM!Em3;M6Dc8B>DXpYUcye%|6GU+W%j>0U4+_Cndwq3V= z(1rzS>~D~0d!SbwSRbV&O40f%z{AKFBl-Vsk0wpq6UF@tz}Lgx3nS!XKrh9Z{U7$5 zff1`M5Gg5LG|95?FQdRh+!4zdgZ-1MHX%X?_~5@CV(%DC_!FEuFDXWiPlT~k#wno| zY~2gMN8muS&ba0hC^tBV&J_XkfLQ=F7>zW5&i*v`yVhB(0{ESGnvAf&S&0)M+1i!- zVJ&u3i0n2Ok0f^Ehwk{I=Y`xwqyF_KxYD69bZHfYmyAkU4ShVYkKBXnXRK-bE9KSg zmH-^%6?%`zYPqs0T0#eZgl7v}wPRxGhKqMsV+?ASwpw=lU>0dj`o~=wHi8o1_gMsQ;Ih-A8ZS4C*&5|1 zl;*H^C23y*Rgh&>>RQUfcw43DM*$uM!Uah%(hXFRJS-F8iosM6&8}$X#o(mrcyVG=QK?0OH8BzeBpoL`erNa*p)ANfm*Gp2nt z)uXxqcpjdAs&2MTAc+4ha}#3t+R^pkv6|j>vkJ;y1Lugo4Eo=!kG(y2fh+4CHo%an z{VcdS7(>Z_1`*B6Jcy!ZTF2;UDbo;wKV$UwiBZStfSZt;$~i*^0je041hRLNPEbln z`{ee{8XS>0lh7$5eB}r2r#yZRyJZ(;Kx5_{LK5? zn}mS*96K*(VeP@MGOg87Tv4Rh56IMrLq)7qREE$98$yzoZg70#!bnqM2w@5(0oaFI zZumgeg`7|lUHYv!zseBp(tb(+B*Rf0fv=XdJ14XHAvXUdc3 z-ftCh&JsldTt&Z^S~h@7< zXl(M&K-9L>dLDz56w1b%-)GjgT6NCBqhwL7^bwoafZf2sddVRuAg9$eYJ7y%!2n7V z?Zg{}pOA`-rC)DVZ^UiIDH6Z2d>b@1V|T2PAu~z35igcs?v|RlS_JWD_|NbCQif&(ZUM4_^^H1#V-nhT*)sj`+^SJbBb|=$k^iXKjUT)XWQgQS{&8^WY$Oel_7UAWR<78-M&Wn1j7aBo`0 z=!r__=$OSY^h%N#@`E9JnDoj<`PN=DmI>M(O=YdtUBva$*j_$kQ>RS=j{a}AQWglJv;irQE@WpBL2DK9&dq2F zpEdUAnC0DH-3SkC4y$prTz2x+917UegHcm?v5v+dN;Ka;g8 zd^1w(MOByk8NDSs?RzV!v5g`r_IAq@D?}%bljHV;y!(+4c^^dD8B9ZlIHqRS^afo# ze9MoGP<6M;5Qt^jwSTGv!6kzv{5ZXaoqpk!{5>j6SjeI1@f|uk48PSm1hId9doX(F zLCp5zW!t#T`@!2Tr2`YA$pgu`8WEl(O(!k>{l`?l6Qq0V0p#Cv!>+a=vRg`$GqtX; zi)AsV)qTO9!-OZnJ$0$FL0=wDl0L123(62g zOLpL+8v<#>r$-s&#PG+wj6LaT^c%LdS#U+<+3k-rX9siV3d$^7=+ymJTdAx*Huv>M z-g|N2x4t)lLPaZ2X(#uF)akz*1~LF^fF_NIQ$2VO zGx)Hn3+xYP?=`G4Nn)MY z(}S_6L-sq6aRpV4QVyx&!M<#M(^^qzcPhsJ>2Zc5Fc+I|hYoKJZ#j^;O$ZAJ&~#p1 z;j+NK@s8PjUmowPXdSq}p!)pJTpt*5YhE5^6Ic1N+bB>@T}SUI?#k*okEZ|l`!E|C zg>;J)%dAgzsZ1)vkWU*x&hf3VjpA4HSsA9{gTBPkh>&O8pb(^66}Au>wU#F-#vGD;w49tTO^ciThXH0Z*xbHG=`MXw3eIJ(C@+0JSz?5f!4nC>GWRs8kHZ!xipquJ@- z%)eR4K5u7Tpf#%1d^S8{gk!f==zu|92!7`0pRc!nNR| zlpe~ra7|1=ZIb@^lRnL{(=m4^WuR?<<#sd|K#;oS zq~!kJD%NR>dKq^8@^l4V5$aevcPIpF7bnu@4z0@W$rJdbB^Ln8Y8BC+FpvC0ix4UR zK}|))26pBKHDstqaQHe#vQU`B5{~cWy%~azx%f>XrNH2l`J#8?({{Np*JlQBPMGZY z;-vj*=YSt^JDGWeFK^>Lt~}-bQM0~?#RZ^P1$g&lRW?A246}L+y0UrVYW8p0IW?MT=>R8u(7 zkQ>%O;QdOE?1kGmX0`6GpSiv*BVfJKGyy;K&U#|Q)Sz8IQi%htW@wkxt?+)uCazi* zEFVm&R&t-#{-8Z*+F*Kqx$Hv?La}9R9m6RyuKo(`ogCEb-|Rh*MFO^^|2gCL zvY{Z{vN6`-e36;mfOyfq^w+cFoV_Q)u2>&ynNy-^;EUc;$O;7<1Z^Yp=5tae$T!I9 z>i{`dTiUiUIhkfVG!pDG+})kQ^1+}RCYxf?^FmRo-cc(MApPm)<0q@WduZ!?9Jrr1 zWhnc*{=^r#quBFaUn?$QtG&p-ul|~N`8RAFrh%v6n76Ar|JVGk#);aNo6WaA_d7)Y zexa!`-LA+;1!1Mg(IdsI(Mf6MiYB0ZE374ega@ z{LO#H_o89yjThc;Dl|oKjC>il}-rchKh#nrR zmCov$auhqR_Do>Rbn9IWZ#|j~@%_dj%q+6nPzM zTq+`M6|UKub5UcRrr=QHT#*xNhJI~wsI$W44N;eLTdTb#ZevFAG4dJHh@WWQpfpNK z0T%qJire=_f-UV5<2NrjY^D!#w{ynP&8Zo%0Hio_S)0Gl+ML{1$ek_>t{_c)VysUX zk$S5+${V3;96nPWt}a!gVnR0lFFjVm9c!k7b5`IdimvsncCc7a4GUk*`dCF&eQ)cv zukL2XqT2|4qrIv3B&4>^ca}Z%z)2zCJRB;t(cL0$vr2d|ERUVvd>;)OYxTg_5Tx$+ zR|Pm*sm(ai{!xE@%-Q_#Q#c2?l?G-G#&2n_QDtDm-fww#rgDukogamzv=;ySbXQ=? zD`6?-#*evC#vU*-2MxE}OuA}^NB)&Q+WwQ2+&YD(zVVYGWmav69~qqnB=a;hv#g^M zi@)}-_gJ+S_2D-99=f;PE%E~^9ojeSV>eC7o)=bRge_3+^D)V*p@E`5my6G=PaIMZ zgj~BF>mT7q(U&VMgGDmC@Hi3CbDl~_C@fv2s}8L*v{&l8BW$6`HL?_2!??x?54o6~ z1HQsijQ1lIw<7;UloM7E>*DpK;^&TIC{7!u^;VwVI*Qb^em-?=rFbZ+E+(o~AHdR` zmHeHAVQqHT3f&qL3g~ewytg}U2~bcFcX2Ey>%4Ln_BpM#+q8ItO@_%(f8bR#VZVCQ zo9z9Bd(x~xhv10p<0Jj%c2{6$_#qIQV*;a2RM~58z+3!T8@%{nXypy3l;O6+ox(!R zdl!PQ6Z8&(zm4ULX#ju5P!6rbA{LhIcc&^vs)H8%tN>q#kOCv3P&*r2?pPCLiXtU3 z&xz7UJD1xdNhC0UI{dG8@Am+htI!Wi z8{5Vf*N(;AyB#~2D0d15WMl=g&2+2x$l^$szHJkcar!44#tNf&idoLWRy@qfufHtE zI&9ZcTtlJcvrhf6>$9?t2uZZqZRGhm=_*Q06-%Zak+(cGBY2bACxp=@M`uHrlg!u( zdcH~+y+++4??FxdCx{>F8rj@6`7Bqh2~T14SvoX0V`5O$JURMy!ZQqLj{idwcx^_8 zL9JI5kwlL(zh}4>HfOl%K8z!))LD2=3)(OIbavCmUT8Mcf8LlN0X1CscXiwfcgj*Dp+0##H}nJHcbaXUS=f2j&t>PQ!j$5mnj-# zFJz>R@2Zi@R&6Cav%q_hv)7JO=H0vc`@L-s_IOU)w?C)eL4H)C`H&!WT@DXH|1&Iy zAX!w*EgohEw7S2(m<7~<0m=MVfY~vV5c$tVbXY3eQa}%JFRM_7^YETK`~h6Ji^VU= zIk?Yu=szz=H*7sRZ*_i5oz$9WD<&5ExmEFLt5U3fbcXqyjOF&AlF8#&PunL;{4&cV03FARMMc-4^?9)* zf4G-OhBd{0Z?;I8!s6_UA(;=7V%|!9fHj{@EpCT!J;Hc)L0l8U+JVxjYS9>fysgIm zY-58`4vtCeGF&Sz^aFk%oQd|Y=^pje_%>sTX$3!VeH>9wrS2U@u-=(-6}EsPxSSlB z2M`ANc+Tl!ntpnJE~nx}GhLP`;Sdnp!fs(Ohmpjp5V(o=!1Y+3m zl^E@SuQI%C4=X?!nV0UrI^J2K1^4?W<-%8+AowbrHwLwb563SV})BW<;y7#+;v7ky6me?Qb=A|+vzl9k zDt}O(O`0U;;p@E9^e^tXJ?va!Ki~LK?3!VTp|0#S+1$6$+OTlGv0@)%zhTRd{A;b< zx4h%cTWP}gLhdsA`nes&f^fR}9JPqE>axA@s@eUjQv|%i74vsjvzKF&vo7R4A`ZdhN1Adg83T(G%Ks808M7OY_LXpY*Q=Y!IOKU7ezq z{xNs2Mn%pn&||H@;J7@GPQ;g!&R^D$Y71&(ABN?gXPAV|bKzjox~k*4G6h&JPTTC{ z9bq_GwF=$p>)Bs*#mW`MCbtMi{_8D*r9i0X(CKBz*nN$xFe_!)vL&E6FqZKak z+`ejISoP&eVS9Y(!%zHNBqphkA}xhyj35<04z{Q?JzE>2D>v&WAI3@syIrCIjZ;g$ z{(4X8a99qvAT{p(%2_sraZQ=byNse=vypV%k*(X&dm~}>71|?zxy&Deqw$14>r1$w zd%Iu&%}ia?C@?OiH&uFSx4`}+VR=k}lH;szJS{%=;=xjsm`XdZe?J!m|B%O{aNq3U zZk59$kazl{(i-+b(6mdh)4_`cd$Yyc=Rrd>=J)rRti}bA2Za=)B3&r?!d%6Z9Aym! zPKUqIZkXy?01Za4M{}`BV4ay4^99`AKeWPux@JKJ)ctrI&(VdL@pM2%*0|Kzc>h*@ zx?bu3K)lHhIdTKDV}ds~4nq4X=T6_^4_~?h;@=BqDM1%+htezB?q0E?-hYp2aAGf} zfCRCe3h(_g&i_WbYK;!ejXMa)LF9F;4&CiMtjZ8tx-Sd#9=w@harQ^gWOeuI5)ilX z=mM|bTfPk%+VcA!vV9sAu3)ebtqw#dWw02k4J4mTt?D+lcu*WRrPB- z6o`6(<>m)+pfcvXN{KA9Kyv8rm#C?iWK+s3`)uBw#8ZL2|C2~2U?K&rWAnvvv%>(U zX=pkEOP&!*6w{GV($AO+iQijC@hM`Q48WgNcf-W`IvAC_BIKEoNosu$B%#L2jguDW zzF{@)daomx<;TF*PXkk)P)LS*^G?@C>dbmX6N6)H*O=R%Ow{l0+TeB-2wtqDRk_vphGCEhPX^ie5sgH^JfM1dHNB!uwdoahP z-Z04N3%4WN>?C2xk>M>oIX7;VkDZog!6=OET`)0S=`es|K>)QUupD=?tW@y}Nr@`) zww0Rstbqi)h7Q5JN?xlErNN;*mH;D`+2V)8<*MCJT*JLHsEg|fw@LGAPqVn0?jMUq zx!ZzHeH99}xZbZIH!FOf6#7_Zv_9*q1JFiXBW!x`01jbBBmdBE`XJ{2B1h5W{V=uK z14_|mZkTv))_F2^KG;bf%g$&p2KlJSV%n#!$;rDPAZ<3*6!S!8$mFq$DWQif*HP$2eqPTuTY zCERbTh}%~AU*IA9Ip2&!F_EyMZCdXa9$vD@k2#WxnVMX!M14@(TFC20hbf78VhahsWW!0#|I#^X_QflZsP)fGtvC5|bzB+aslkh|9bddU7)`mNe9U zs}Q(FAX$UT7v^>^yMfX;U-+f{TNSVpuI3^+ zZ2WAfJm>UXV-(x;J|}VU3husPuseO^^481DL)|Qc@rvAWh7(^#^j>{M)2D5+speNo7q%>z>goWQ0t=%9oz{q8;PnP6CsSf zS4#Nk|2O?9EKlW4u!enxL9X4Sahp`TxMy&DA~!tB?}rcbcMKU$<27d?gNBeB(EWu^ ze&#NuYv9jS%EezGqEfYY3?{fjG6EJJf>^u?f(E3n#vIE9lFjw()HW>GIMio4__f(} zKs0)gtLKS-`oo`QpG`RF2V#)^#iQ^D$^P%GNQ<`7e$G+&F+!TtmS?D(qeyTTPqUNb z4nPTIoM&HB6Y0KAVps!)grWVLblNOuQN*|jYZjWUTSsDPte>+X>~XMeRrXtU2R~*b zdm9S)KJy|y)FJEn)GKy=-C6)16j&P&Y zwkmz;vWz+%LC-2+Aby^4jy#D84ted+c0iTKik0_ zE>nWuTHXTQRUL~!o2ts{ZY1vYt6>KTra2sDd$mhd*kaE_3p`!Kg(rLl)mWVP>OSQJ zhUSZ1=r^KsN9dQI*f4&3$j<53X!U=&o?epO-|M)@@aPm!5_TbgiCkbYH$H#kcJ@8Qnf#O zB-(3AfUJ#KDJw+a%MwmTNzDsCBQ{LU$2BOA-MAd`u@~t$$p+$jMa@z>Uf3{T@uzzj z4LjQNftGtAz&hz0{aofpVCSDAB%%3(l4%cgMeH%tJcytc(iP|D|}dT5KRJBwKA}+`Fra$ zgOclAufOUD{bXeu=P1H!KqaD8j3jCL!{rA5dJ-r%y(v%fL)_u^es=MEq2BjO{lw>L zrmd9%(l0ki;cLe2<$RN^gz?-3TjWD?p}1vw$cRP|x?;>LU{XL9-AG{VJvl0B z6ZrN6bsUcLZKlYJ310pT_Y+1L*>Iva7TqiXKNiC`q$1e+jH%2H!OC@SdN*zJc4YL3 zciThANs~XCu`9ByB!Tn~EDuifv#WK>t{S)qmSp{sN-iZ?eX5}YdTEl7=V5^h4NXP3 zPeVQ}^XzfCSG;hP__0gFy~Szi4c!&+oe6A|WB7ka&R3QMa>sv*Bmt(KO3ftIf3H%t zh8ce*ZJ=1=%Om!g0x@nuHx-2$&d=k>Uw(NRmWCg}lb|tv{GEtvD}8HpfMTKj7aaois%NIJTj9;4kBae#2E1f4>#bD!ic zhEou;Z`!OTnEk3!Sh~yHx}`)8SMQt&u#|@U*IvEqFRta`Z$EFZFjBPfy!p)wO>dq0jdsA_nNB#i+zCzp~QhFxjKF4-Q3;{iT6!m9sP$pC913P@_Sn_WHLLgHwYnL$; zkd~RHhp4rJmcdyK-PxNkJkUego3b4Dgt-}1J-RQJ zd2-Zhd5F$~cMPTY%cy?FC}ou&{aIGk1rGjBem)!t{;VTccaQRG1tUe;U*NKMJhm7~ zz7mbf^(%mEXteUA8msHfxTmxHMoIpvvd)mr}Bix(Z^mJ%*rT!I%`^hEAwtdhMT-Q`#PED%5sRgB!SWjLaK*`5k*2fZ z>@aZRg1DIEw+ZPQC8ddR)ha4*{{Gu}$bq4)cf?q)upD{oekf=y(=7jl zbCx7YHV}E0w-5F+ur`pf{IZZ8wQtt6F(k#u+;GPME`P`(Q9NWxfS303Lg9ZN-D=^{6Dw)@%@_FE-q1_>hGd z4Kud$q!q`<3%Y^K^ z*B-v9p2t2`*H0BK8@74wgDWcGD@?O}_Wi$5V9)K(#KUxkX?+F2f%K8Y&UPK|<2Zju z_ya|`DoECmYifBvjv6OE$R9s3(b#lx1>l?1=YP5RO~cd2FlUViCC_Nc5x4}PBq-1} zjLY!3JZdO8mzcXEvUnR1k<}p7!Tz#V;#W2bg{;@r+Wxo&BHgR_^GOp6* zxtS;i5BK$x{N5UevI=FKk*6M{shb&^ZlwJ`4vM^3r69( zlcm~ukq@J?`s8Oy%IoN6KQiMMigG6tAHq&HxqDF-mB~kzULz(j$Md?T&(Ec+r~$-O zFyrhAv_)NFK}(UL>77Rf{{rt`LfTMmbDRegHU=&qrq4F;BhR6?CHy|nsRj^&?I{olLM1L)B)|-v;O5`$e9Y?p+YsiLsNTR6`gi z{RG(^iE!&>&BD#fEJ#L5-ErgxBjd-puyjY>+Pm8m zF=3$ApXMle_+iNkL6vawOo9+*t9+a@a92hY+NSVHy4e~EIU3}}v}B@&wa4@h#VCYh z!}}YySXTKJ59`eFkSas>$9ukazIC*AtH>2hqWzJXan5))S@#tGaB;h#$q$|?f>Ut` zR!9@;H=G?uzeXYYV%imPE3tkv_7TvP)ea?7hAPLJyra2Y3sTsu0f0Gp71D@$*i;(j zg&B|9`UDJD^BKC;8HU>&jAG5GKueyXiglTWD2VuFtHI|KZd_6%#2T;+F*Q#Vx?iuB zibJg7s73{e@Rgp)GY$^$DbDcVlN6Q$%-h^yAhRRI5s`)-^bkMV_T zTn*`v)L=0CWAc0VdB0rMy<0~f2OimfCELv}OfEW%@D zd%G7*1~2#Iqr85Rv77tHYA83qm~;neBhZ*wi-ElMF`#hZ5Za{Z_5fWYNdOc5PuyOn zI5;kp@c`-9RfL4JB!SAj07m>gs@XIpjXRgfZ#@mr{m^onsl<{vtTYyCPwz*_7=SrGku6?c69I4`SUWWsY1NGQf6aE4n5i z8sR$X>$%BN85WsSmVe2AQ0A+nLjI2I9q}Y-#@!7) z6VFe4LX<1Uz~L4w-ouX7viF#CyT$~+_trAVxX##uYXAJS z0W;ySL4+adjIxbL>4npjP+GfZti$hUM%(tMU_rH1@xV>vQjv>cH9$!sP4PrSLw=%+ z4C1B>6AX!s%WudH<_5}cX}|73jjPVIa8JQXP1E?o;Ou}yJ&-9VDhc)oPAzZ_7EWV& ztq~1;$YG6ff?n?!?SZx1o>X>KZ5i$b2rqH9?>f2)==<$nGOBMl_zY)6XTgw!SX46h zaTD+P7jTopC)2|c)3j{-6=t(M8$J@2lCbegXWy6_ivNsHtsGG?lcJRtYA&yWB zKKx92qfNef7*s@f@UG-5a20cLCh15BI<8|8TMIul2mIh+*7cf5XC3S{E00#Xo7Bqa ze$j1&7x+`WdL}sf+I7(PtOxo0-|x~DrDsC7>kQ*RR<4A52K0fZPWsbEzWmOIOQ2wY z#rz_15G=*-3zgA3u03#^+zFR<;)!uuQVX3{pGE){KJC= zVtLj(`82_2Y|!)E;169PTG_2WZk8*xwS)_uSI9-lW0Z0^Q zHxy+3wQf{`!V*iDUMT*e?}QMiO^OdH&hDAhgp4KO?##ast%>~(j@$SNPz4Tl^za^M zIh4t2kh3WU;c@T|oXr00N4l#gfqayUnYF#)_F}7M3?<~?#dQ%8o=DVQP%H5%o?94{ zmID)ij$O&uc&GZ@c+pRO!QV{$!?I8f!}y8n_*P?0CyUfNiEafJrVu0Miz|gl zF^&m&_tjC%k8sCu!x)EDe`_jr>wF?`L4@WWO=Mv>e4xGH;_`U6`<&&74En;%((z1xLvGz~ubb~1;nsbmTpeyCR#_RqXZS;fj%FM3 zB_$Sz(+GAsyTV(I_Ni5)3)kOo>tw>^akA4cmD!&Gc^CwjDU7&ki1rl5nw#xhk`?-9 z5%9=-%i-s~cTE$==Eir+{`O9+c!X|D4I|UUX=1Ys_Wea%v_PO3UA#GwFp=Eo8V?%! zS6v}pu@S>2c(UN?K>dfBG30ePW0r@<$WYAgSZV;`%C*$s!4s7-SRSJw&A`9-uk#)j zL1S+dr@N|F>i$iMdj%lShb#IrW1yUc>bn4(4ldG}2Boe2BBfQxuuZB4Dlw99ch(y# z;$E|XD0)Tq*oMEQMWC|sFZXV;=!4R%FVwq$x(B3n=Ihk{P?S!Tvc4sJ!op!7bO?e_ z&^e8X1)nj3oNV!ag}!gv1*R-D4hgQyn>4w9DWdoc`Fq=viEIeTCRHP6r7ypEV7(^E zK4#f|da79u9eEub7P%+X&ve6J##l%c2W1eH?qLowkl2%XN?oJ_n6|;OAknoco{<>d zU^Lk}>R?y0MV(?8>ITv>Cg&setSknH@fRFIMTbvRoY+m7PCeH)Z?~sDqhg*(_7-g< znsZdUni9r4_BtWs+NZR@EbR1M4_s{HiZP9==z8*?V4xquCfpHw0ut2cqQ>SDmYjs) zx|t>MQiXn^7-;B55w4ESgp!}}%9wHOWm4a}nW=~Jv*pGR?ALR z-}ISkS}C0O!oNYw!lxC6bJQss5tgC>L24>y0c@Vh1&!XH$UV$EjtO}5Z`d=<6e0ni z(ycC2pYWeC&+$Rv!Z)n#_d0$D9E9ld zk8loN`e;#1p`p)ztF=^jS78JD+9c2ikcgW27BABbJE>9Z`PT(A5By;7X|xr@XHO_k zP#owgfAXgXa&MSV2649_hpdde|*u)cJlB=w{!2kWpeyJ zws|eRvb{ILUjgzx?|HOzLWxU#HRv2@jOnv+y*IE%2rSmU!73beRO8-Z@vILQ!pFn} zkVl8-6;T1SDYJfnse?6DB`Olt?k!G@19#9%-q>|r$IV#P&B;Lwh-giTPcFSV268MP zkV!Bk!^yb1Dc0|YK2JA;cwx)JH$WDH3TNswRgOPc>^WG_F1 z>G05&L^rB$bc_$B16M01Dq#-cI!df@m6yyFIS#1#AJ+~&y#>P1sI3I8TM2XkyH4*<~&GAPIV2J16 zu3}`Q|7k=;pL&&I|0g}8#vC;bMZk*6&UM3|lN%vMdKc?xg4$my_lPAy*6;?c0wQ``Md%fR5CBVfm9?M3kO(A-ljfQ1hC#-nnegoW4OM7AEghhM{I zz>9$;;uUu|0snS69jFtad4PaMSarru;^QmEQZM$Kx6^ zcmdMnEDUqCcTA7jAeB0Uo{h}_gqV9P{LBgJ#salEOk(1RYd)~BPKacS`=zX zx+p(1-OgiDG_rkkBd16&z|7%)bJudbNPV!00;rB1CC*Of$iT#E`qeI zr}gz$U=38_ntsn>6f#p#u^DVYybZ`$B9(cuAUvuVV^A8qJ-j($MW)PXB3*12eP9(1+ z*?HN4qH%C#yDt}8I}9f|_mPrudpHvWPRwsE?6fEJXdAB27t zKS2m2tGi0PW4AbS(B-TR8^@?zgYM6hjvqfP_Ir6NAaE}0eirFgBy*(ln=&g2{)XJHpmKQw4v@=x? zQOgRb9-S}71r+=#WwXsw00pYtyl^zD+y07Ve0_>3qit?j3SMMr;%=T z`KPNdI7(LB@wFf;DaF8o{$`A07=|1FRIq4(PIscXK%#n|zlx|nWr0?%*FSzoVJ>7{wuw$Pw2DxzXOs+z67)X zYiW4>*FD9nfO$8mv;h5qI7%1R zB71WRc~f{^6_hp<6%hP&Y5E@u`_3$a1$8=qmQxqROH!KWntTt#Nu1)|{;hp&WE3h} ziE)Jh4deUhs{sK#P|}cKuBYGwBSj!00yq?GNSnhZX)e^|mB3JXkP)BvBh_leAUtGO z8hoMXT#O*{pVTn&!FEln@Up>7pnYJ^`z&Bf*5l0+%?X~hU-n-7w&3xk7`~;ba|UCU zswAOc8bNFm*7oD%)&wBnZ!meP2K=pbm(ih2kD7U(m{p>Ge@iX>g|ep>+ND;T1tQRA zxhY}%06&%fF1M8Stio|05n}vE140T8vvzAM8?lJoLG--m41C);RL$8Bb7-e4H$l2Z zt2su7TI1Q8D8azVI*wj`7u!$Y=zj?$UPO3igWiw&hdy)M&b3TZhQ1NXc2gs;l=-}S zXkwnEz>qQ3-|*oMNiLI=jI;63N%tZ?i~iKtbbL}cGW7umhS+B5`0({W7QbB6vvg)r z0bKMisDKR4KGA^p(fg;p{f_$|@(2lIcH1hmM-r;DyB6iXeEWz%)yGxkr85N7TQchg z-|MPBjs-Q>4EPsT8)*!~Ff-lSIkON3zTS|kk}ZzqRe80{pJCPYlF588iRU^x%Z)-i zmFO!Do{&aDcSbq)GyE1h1Md`Y1Oo%NLDz%*Qt*dCa9qNz6ez*O5bBbNj(h2LT5QA7 z0Z4C8e%Ea%4!wGjM9XLu5-t?MjD1Q{3TLoSdEHf zMLJsJ`m`_=`LJ5=@Ni4fYMHd2HNGft>d1m#!rt|gxA=CzSaLRPD!__^pa$AA!1f;| z6Z#(}3;6V!k=z?f-c_2Vd{z!9IvKCPUJM_sH)<K@XMzLfREQamNFF zhTy_iDHNy$h+m*$LvZfkd&95!lF$Y=6$y{4dZ_vUElU|@*Q!m4ZS8%2Q&-Nq?wN%W%Fw?3)5Kh8@~Y^bejqVq;?6$ z&>p)iw<0!p50%7+rENW-cCkkl1zRkn(c)54I8nwXE~qvj%EgP1%+6!aM{d1P;-~;- zFtfQ_D6zMUc+UCZ{vk#IF5b@lwtGfl2f@K+EbhO(RO+i_d?YE{p_yVnI2^hnGP&1?KJ4G?phEY=$#T%Hu*+_u{qRjH-*dVm(R>`W)@vja??N@1 zggIFvIwwawOm{B!+VDeOs$TCiLHld#`VqRzw6KbAc+Rp0qVTj?xz=(UCemTww$fHE zd+Xw4c9a@WaR@1k59`G|!SWmR6YgfTD~s`&HLqMnsL-{gFdVK+ik1J6QA#YiWGtq~ z;@#boMD3_C@BVg5d$v#%?8!bth$k!a7xIlVd);6h!(ar~a#x}RI=yOQLHe+(z;Ii! z^f#ac*v*SFFInX^h&59*r?=^YO;n zS?T2cc3ze&N0Ja=;X3`Q*Yttj^y>0HbY8G{;Da$IDnv{g^h!#97b*C=OgSolM?T}a zqG7huQ=(@64q`RY)o7RM;gz*8^SNV_T41gVaCYl%x%sKo{oPB!F(1ZejT1rZSN)-$ zZ-mb(jnN3Dn#cgRE@?C-8Db0buyHmmj_dt$Q8}F}+tQrGO>C}iV~B~`NCS*-7p(|u z_g`#<4}M6uzGhg!)FnhiA9Q1A@oR73+hrhacjL~8Ukd!|!MfHTVJRv7dVYWb+V z{{G(E&AnGoJr_qUo#%ggoM$Sw?Oq4R8q7Uy`?p`E+Ao}b{?V=ZUijB6~6OLkDB1Oqn&UHv+Xi_YiQE9|AwUl2V=ecH=>Z#(x>8 z$X^>q7YIfJJ;$^nwCQ`|YYsRd@edTtL)eixaj=*iu5KEpoD&oe-ipuVJ!4Ea6q3cx|6uoY+y) z6GshpVIbw{NtTaaoI!ti*)+Gt^6GhC$?Y0{b*?XGS;3DW=J}~;m9>k);*b*YD^4-f zes=7ZN-7Y?Z>KZas}|Sor~swa_CJ_=>qfCxSp~X-=ss=96=FLXq`Rl`C#R-VE#Nhp zhHsSZHzb@qgo5JN4$1HSYqySv^y(e zm~YU3>(Qa}<>UZNqhthGu=+%J@%>`iQO$IA8&lwSL+P{M4lj7i&_|xa8iu-W$R-Q! zvTDDtrxF81!4*~{w20N2z1722iSom#R)*E3H{)2gIp~P6_2;QTHOGl>yOObxGP!z` zrNt{sB!Ymt7$*--w6D#g_iYZ^b0>z=BnK`sp?3DymkoFOx|ZfHm99Hcd4SNh>!nk> zfUmtJC-wjJiB9Sta){hzbfJzB3USOdROnvg6(%HAbq*z6 zWNa%n_8HL#1>C9AqF**R9~NTXd6$*7hObqF0JgNc!afjMXh z8%gK$_YxN4;2*(sT*&WzOz~^T8`!&WkXcp`Qu4XMb%^1;I1Hu#^27aw6d*}f?}KuI z6B*%tb3`f&MV3vhf5GwVN0;nx772~t#*>q#3mCl+tP!JA#wDTjq?P1#xW=Vuz?++N zMB?)OOx%Tz7y&h+X>GAZtsC+zcR!rdz{02c?!JOf+;bwO|*; ztkI_-f^QDdOcQ!Im)cF5zM^J?QG~tLrYTSZK^iMT6M3#!No-q0(o$E`fthS9Gp=5d ztf+uGhxDkN--Dfm^737>Zh;f-8qZOQ)VCagtt1{;AOKK794|%j4=1#zm4W)4?taD# z<=1nfN=N&d&sT_RFrVjbjgV`m+OQG&6_SDRD}%z#ZPY)lc{l-jE=OD3cRIZ*9K!G6 zpKy16@0JJ(Y>ae_ISez&kmQLm&(Cn29x#+p+Uj*{^+fBK1?(G=r#;yT1+U-m+m(>< z5xK=~b(>JV5^6B%mjJou#HUEbdsPtX&(;5_# zgd$TGx@IED4z!uXnpHGph=wH!ZieQQ14*iz7NhdUr$=uF%9VKkve`w#myf(j!VCsn zk{u9`gkoFAZv@rPBav8O`m*Q=5d3alP!N|r2ZpY@wC{@&PYHM$-Ku$6%x$hPIw z7WgV=ZSFWCU!$kR0u8KC`TtAMYTCKFzIrg6%gY(jsXe6D`hqqW;{)cPnOMn9LyJC3 zSLUBJon(kJ_<46OB6i)QY1&S9ei)l6{RqMuVebH1xM5iMLnDEc_=ziWS#`*9SgUZs z?H3Swn*Is$;X4P^`cMT2Z0qO>m`z4zml`ICe;ECUb=h3y%o@%p@e|ekGB+bSJWX5- z%c$F?Hh2l*9~bLr=c*EF3x$t|Xt3E_94$W8b6K9PYMBQRIxS89d8}CZf8qY6RP~pO zb}d85N24HYzVE2gd~hHkGx(gR(+)0#HqM)MzGnZt@b&s9N4cNdyExDhk~MiI+&3& zTp$<#m9HdDhc8f_79-SMUcF507a~twdFr<*Pb4EF>4$gcXb!TUuw&M1?RKb-M_SVr zyA|_iqO1YB4w@xp*R_cno|80_D*W(I36vn2@jjFh!yK!DNm$pi1GRb$R#BtEf3#Q= zo)?^6q3bDH;AXo+?<-rc>m_?deFZ3syYNfPUzTU+#&txEnRPsBZa`ALBvj0eibbjz zs{#;draxsUrC>4yc>?G_(1HYIvBqUYpnx?Z9mod`@V(mTC(ax&54Sd^1xzE+Zm8FF z*ejUXR@N6CZo&-<)}`0^%f-Y`=qN=T?xm!S)uOKBWempA(%cNP#Z+}QR!~T&L1H;; z5Z_^^P7R1=Yf$ik;=T3u+s3Otx|7pD!#_CnE(d(_2hltb)ZYf-K%f{|V7DF`HJ zm{oUr(2w6c6zREDy+Fo*83#v6lY%EKBZkQRjseDoUzSlTvu&0$mFy1ohAhetGcY)g zCD|9waJGs1@BVW;9El1Z=Sy?_c<4{AyVJhW4ca;_QFlx1y*VsJslinn>D)~fM~)5p?;s)b<$9hMc7is%HNY*87%6$_8xES_P)fQt)o z3Ab~cjK*>g6&&~;p+Lsa9F`{!H=$<(V3@RWpX=aEO*JTB#?Ad1A6f%y%tlIfO$*^( z+7wyXax5XOCNnOn@?{i92eUpFl6?EO^>6Q%ltdnSKeK>d;elRU(_mF7q;uy`@_H3-&V?}tmkTw2hCwE%>^2 z?2Hz?ktY23HK3yX7g5GYiLeJ1a56#IsYM5xI%r^mdjBuUXxlZ3{etBVqi($jufB0hw3IAjo8Gz`B?97cfc|- zt7}~OH`jQTgi+os-i3na@BGOw_zAa8C@d8gayxXHgZ0m;9Nqynte_0&T}-tu9e=0?@>sZ7&w|EAldP_tFMCZ{8R)wjsHDMc;qt~jlsJ>`*+FC8i~RoS~1 z`tKDFiI&qgq9vx2p!H3JQN5QIa-d$2>HNP4@PWnY{*-CceUV4>KGmW35#t$? z&5ai_k0qgfMm{VepWBod-^)*1gNN^27ENf4V)ks8UT_mr#jYqOQ4#1*7h~6H5hzit zXdT8a00$8er<^O)Dlu|w|0fvHjrsE@Sc1aph~z1Is)XE3TR;5vobE6KSPWr*Y@HTa zVVNI#`7SIQd%&6SY93VR5s)J~3lU3kti z6QD5)wE3?v+tt4nW!Hbi&UHd8e);+Y+~BYYNm2P=`}ALx)DPe>hgX~D78Z_KL0XKu zYrTb)rF7N|E!toelJZ(Ag~th8(+&YzWS>c@jBJ{Np`o0K*OQmHYreF_dfg-Nt+$zf z{uw_%)LusREaEZL5Va%GI3T`&D>m&fPSHMw%ZVL<0$bZh4xlO4ho7(o9<<8u3j$9a`c`$am=HEB~)2p>uBpQAAI&64?32Mg}ecowP z8T7XPeXcv|1g9E3rYCqvsd=lN}I;c;&z zO+rO}4wkqx0_AJu&HWc}eNPUJ$ww~hwBK+9RhzQa8~}u@isg59CXpSk9Ey;|L#kaU zFGdQ82}J5g3ThT%)zsM{Y}FGIXUshcph^QMK}RtZ8aJ-5TeJu+(ique+R)tK_!cGt z12`=NOPgoWQq1O!O|-J8Zq8k>H(+@!J;kEl5Abx`gxSd%dgj@OJRfIwT7#5cP}CNn zZamUPUHicW{l-zf8vCqNSR#ufT_=(b&eZuYl7~3Bq#&r$6)Qz^kEWQS#?WCMUoV^| zc0%n60245%XCWQ_Nn`ved(S$e`2=LtHO^?4~YK!gfF_o zV|O}h)6;Rwo89yadF!{i3ws2K^;SR9Nu4WVT$Phm7jVG_rCopgV2pZKT^lZBlJW$g zTXpC1CzW50z_B@=qt#mb-iEQvF}B}#@V}jIWw01vx`JZ9wy_(qv2uz}sbx&l=X=D& zf%oIr&V8lKg=hic;iXg0Xd>ghA;Ni_T;5W(G}gBOB;+{6i=_@h9ePtQYgN?MD%>&O z0hKc}5L(9#uvSu55QJ_KiN(>6u;!O?@r6)ji!Lce3*3*jz8B%G~eT z7KhSolRx!@97U`VV?|xE4+W~~*e)^LY{UEVy%A+qO6aqjyO;n+b9FWcYO5r=`lX`W z=39WX*E<&d>&Lc72@weVDC}&W;G8os+o4XO;}l4GGJ^}D@&<)a7c zZOeD0j#Yy)r_Hnh@>KZe6Pm3*F?|tcQ-Ns39;wo3IzId$ZTb&X+NmF) z8bTJD(0THTTey&Ou~%ksRd$EN4H=Nf^sBu+tA3t zi$ph`ySA(R+;pwyCNMKTrnPp1=fILT^gcvvJI<1AzpmvNeU&d@LKfDOZMe10ihf!~ zH*zBnfG2)EH|eg&94MDzko`I?>f_Wk?fGjSgjXR`t=2cl83L|Zi?%7ue;!D~H<7n*FT)8}9w>Pb4~S)@0)pDvS{S zBL=|5(BmEnoeiZ4^?Nfq`KAJS-}@je(VN`^i_j>o6OI1hGK+s?MNfS=!jpXZlOsg) zn#$lE1IJ_H$C!TT*f0@^CN#Av_ z0YCx#%?(y0m$Pahw~FK1@^VnH>V(BXo4%-pqLME5_6b=a)r080O2zw- zMq;qKxbNuK`R6fF$@#ojIlmL$0hUMCKz+Z_d$ei3duC+GUw|s=b5e}~ z@9{_X(O1&~t843TWhcc@j9WTCewh9(+5*eh)S-|rtko%jC5@sSix8aRO=@LL95+yA zP{%A9^fFR-QwLp>iBeZsgMVlxcJq_}W#e9UgJMBO8ZJpWM|Fn^%qL%i3Z)gRHAL!uT*zZieP0vLua-0Ht8I9yHwZp+^f&OwE)ko!&QC}yI7^*U@wupmBgoC-cL z0o2#=@h=?lqDivUP6jdZ*-#NHgKpiR)M+f?SderVFs_Y$Jqtpka|=+Q;d@l{75&lF zBU%$y!}hgFZN-bKdr%W{SX%oHp>{?P_MZEL7Fyz0J(xi{3>A|`Ny1*?#BMCT+o0Mg z8mmxhwRI}=2cqGtz?8BY+DnVduspGpl%7(mBX~LjemC(gN3-fYXZTS!6O!PEnAA-W z@tC;FvtLOGZ~FWi1cuuibD?n81O_?(6jVzdI$e-VYi+S*}RTZZpNcItT^O zMBB4gFIj8HOikEgKmFp!pu&Wq$BVAV(9wj!{8BADRA2qQH{2CFRP;NM`k-n!kuh9E zZ;t${a@={ zO(}-_sSc1F{&94rwDB$!-o7_vh>Db6>5)qij+rMd|e?y6n);2{ej| zC^d<6C~Z1?Y^G#pZx5w;dWF;8Kmk%+D$Fu-2*|D|=&!HtEn+qYTDw3+_4%xyxNTbE zz4>$G_cr8wBZ4>jUWld7n=|0^9Sq86%lg@Yd22U9vT`a5PrD z6$X(a4RZ!K!>qM(@B3e}Byj;oUqUVWi_^RCFzK z_))3oIjrjfE=llwuopY^eB>CI=vsP*=Z~4fzMjty6<;edHmxkjD*2uf0gchwTSA@`k94^;K zS&xyoPm6W;d&jc{-+PI&Sg4Ynt`V@%X3kfbI_N-9Hw_PeuHX2ugk8LAGIuZ;>L=?0 z?)sMhz%hh}7Slab{-+2_!F_eligv@MbO~beKemsII7~W}Diy`6Bs)$L!h`B@V-x#C zjG)a9G)l;f8$ZxntWIQ7eb5r8Zf-zf&PSn}qwqJ`ra+U(9QQ;?hLGI!#8K~WS!mNr z+F<>^c<}B{Z^yHtcs$c{_iyL1_vvd(xrHz8c=LOc2-MzgtKmLO=k5P9Am*V2++P zmx+}!C|;^hkPg)bgYa2kQQe%pQ2Qm@|5KK->1R6AdDO{siwbwCj3AgOCydU zO>bS-lAq$%Qt~zPndLL2PjRJ%{WCTL2V(3q2-$ic$46C-`pcwDdbJl#FyUbTS;a(; zeZ!w;czk*~0&6Y5=nfpQ7db5ZNhX5?hLH!h`D?ODs?6L7S%-UvQwj&y9@VU-3k7m_b@0m7~Wc?o3=qKaad_EWbISPmtk0EgGR zi)U{Nmg(bkPAmlwZ- zoX781MF++kES{`#3~I&Xq%6g%y0xnWQ4tPg8IwxL+Whj0#eCpQ# zuwlsIn{PSTg7k7*#!xs(GrpoVBW!5N>pkm0gs z^|L*VQt8c;Mh3Vek-y};+_XV-jMOW$R|aP}GtQQo4#1Dg_WDj@R^-huko18Q-@?5QYC< zgFIscH^Ah4{CkTAazL4eeT^5yBS7k98{ZaWOp$=3J`2O*_J8Gq9y@py8_#Qr?td}R z+n;$qUAqVmjwHDF4v7h@iF$W?!y1Tuu$!)H+@r`SLlBzm`}~sc6RN_k(JT~qU60*( z2sF)md4*cXRzxJJ3(Z72TayQ@N%{64fw`NZ__T^>U??orN^RxzHp~R~#1-Q(;tKjt znjECrQ7gQ(eSc@Rz{G->MBj5+hx+8Zw?!HP-;*#Qrcpo`X3<+sCj&dc)Q(ZqKxlJb z6@nr?Nb_5wLI=5uj)Q!vyQs5jf3PBqjHN459*jDXRv^+N$?`ziIEr=n`Ypp#AICBj zIi9S{D>mPhCg+QX#X(h{4&47DG1?mE5Nq9w&vKLu8H^>Bc{r}5n8J2;9ol47P16V- zEE>kI8!+b0%%pf9e?`IFkm(#b!fwRp?g^NF%KyB{_N_p=9EMCD8EPN&`(gWo^*I2IbLzjB*BM|5Cj;9#c4iZg}%rVsU z6`)gt67}0@aca)7d&jbW(RV8@Vd7Z38Bg1;NhKX&j#mUo4cS-Gy>JhqHib=WwYz&6 zaOuHOwhIg1M{+%~IOQyzq%C7B&&)-y>*tZ0xkt7AozHc00Z5O+S(zJ96@ezVYxM{?Oi)ul$$8?$uwSI+S4M zW-ag?ZvhNPq&vvvg4@4BI~m&xVS9rCjZBdKO@D^LeS~eEbJ)bW%+?D97iZY+wZw#3 zppLj_0b^AGjZ;d)-5Pu&jDIHjF6JvZ7K@H9X~wyAD7ySF}MXRa*7wR9~feD zJ5@jVa7zFFQ>p$ZUrWt>?CG?rf&(&$b?^`Z7N4tXNpRFywW{%Bfw@8SX}d~o{q!4e ze%-4W)AQ*lxZyswe}YQVrgpS6AP#O-qf?oR8fMZH+Yks(ZVl7W9ZSHC`Oe&vg4 z)Y*RnOu+H9d)BuBU?$-BHX7?i8nvL4MUbLMi78ndoD>ZY-ZEAdAL0>LCU}DU z5@+V9IUR37zxe~f6ZjOw>IzRBBgboUR43Tv)Dad%__nbW|p-0&K z|1}FXbF&thwZMO@1x~;GtvB6z-#b2h%YARW|LF1a?5)R0R)g&*oEoyuN~szN7dhqN z;`Wde4IrK%Fv3QIgcY=oLITz86%MGmaf}mHTBsvvR8YoWqo8gn(Xl8Sd-(T&(SdpC zAm}*YxeMXKVF|HnTxEPO!7MEy5K(|p=kBVsf{h!uo-M$Ut-^d=gyGWQXqYUJp9HQ( zMKjWXu9N1ICZimn7YZ!y5vFBN=?L})PAp}nR|3j(q8*cDG*%LfFsyilK$QqtuqyDZ zdExe%F~XS0PXGj1CQp8lp&O4eJ_@7O1Gg>1pdCFrmyREwORZMcKv5%3qDMny5IG1p z;2wMXsp-}fR<>&xptL=;Y--ueCxp7R{g?)}z3U_$k6<3HAAf4asPSSwET?t$A>Mh3 zSKocgFGj%mP6E^TQ>Kkae!kTef`{-H5u2y*jLJPy1V}w`B?#^jFZ*8qEyBG8Q(u(D z2>Rs`3s4`N`Nb{Yqka*~C`8JE#3)mH&n^o&2q~ixM<|CeZ0yMA20y%Vc#auR0bqYJ zy6-Vd!E|`~LAJf2zkSayZIO8<%r{p`D|Kvd*gx&0M2Kha3Osz_a{Fd%_aKgZNPHu1 zI>6qnIy|TpI=snw&^xGods@>9#z!@FymWj%9cLTMHEefW zX1mb>dMsWa*19S@{OKl2B_aOshc|9o%f@pq4UTYo?i{46s!Yk}`f3$)uS41*dt6*D$uBcFYJnE&R%wuO4j>fhWxpUKL(PkeZ#3o$* z6$BdBuzj&J>ZgtdDw!jklTAMaf2g&gU_wUrhCnegn`j3XIoRmk=IjToziW;4qDg_b~9)#RiAAxO@+-OZtIYH#+C1 zPL)$6L59o&H;3o!=UHoknSkS2YwG81M&ihfD7hc5(@3E49%^tBU}7R2lub!AN_2@3 zC18R8Gm02oYLW+!H8j3q3O5=chz0}Q&^U8jWGZZ(&s>>=^`5=rsmQ=6l8oNRL&U%{ zH*0}e3;dZaaQ5s&b7x=k)_-`*y>I!MlQ-YVzE}1GV?^`>+b)hTHd)Q($W<7Mt9$)~ z1~`L_aF}(qEQTycsYV{#J{Z5+-O%2~*&|I>du4dC&;y>I(a7lx5GK25eQa}GW9^3p zn6$_IE{PN?TM#v4G!PCLvfAWW0T0~dDJ`hRYg1w%x8$G>2L=F-s5xP*;n_zE^UbC7 zEufQOtb!3mfk7@Rq1Kt(jj3#f8{cot#3Gp1@_F|?Ts-K(H?}tUF$YBk8ETovyKPTT zK;wwE=gHMoOOjj8HYF3nG$LA|&&O#a?7^-yQIjyPj0m||*nCX7af=H|$evcg(*q-Vp>U08g!*VB8oB0|Xi^1egjs+JsMF1U&jpeku_E0);_OA5Em+oKv>gWFb?{9zoKYXmxyZGLNgM*7?KXbDd zc;;JRGSO1>RRB*WXh&3FW+#ld{k^@^UShinTenX#Q!pAbljH@_3kOAkP*vT>NWak+3QQ>y%;bgpq zF^el(sruz7QuRMPl4_rNEVaLKEj19PSK032wCF-bm511B$0;Cnv??ZDbPbtDDk6q` z5W)N^zyR19-v=RZ!EBzoTUltWqG48Tq&>93_Bkl(2?QKpC7Ug6{ZL8maw*WTzHUEf zeIV?1IalwpWo}{hC`ZgMQD;ttnvUKLS@BPwdU>8&N?PWz;}{CR^N!mP0&D0S90n-0 zY+Mj=`>2{5efmS6yNf~63?Yo7Ue04p+E*Q~C6ONKBP!5y zUc%1)S>hZ7Zczw{$#LKH-F#7Bzv_W9P3=6)Va43jK<7$*>D_(&uK>m;7M`y#nOVv|R=9f|h=A^Hnjgxv7 z$mA%(!UZ&iaKTgBNxUOzwkfxcP{-sa;9c8H*0}sumu{8Esk^js1Qe&ucYbD zeyW~1l{#Bj(`29RAlT(_&h$i;eizL=j#s{Ic_rP`UP_GoIMl@PVc$PM^J|lSe+j|H z<^Dn1!46Xw4FI<}c%qhLG`6LP_ndc}XanzXb1$cpAn7YxyQy;FYN|bQA=N(rL~4Hi zLTaM1p@vkAEix0fojLcY0V3L&D9Jo_Je~c^?@p^{&!xwI>vz)5pL{Ct65KgRi-FH1 zix$?0tL^$bN4?SSSl_4Q<`$N!XlOZSZFDN>bJsX3+AVO5OzZ}S{SDiKsf@WAK>^uo zl)TR~J3gqV=oSLRi?V}r|9gCYiOa^&(VC~{QhR)|UYoxi#Bv{)`+hV{?_lD^gz?}* zlkWJRrv$=yT5d2}UtL9mV}*7dv5gMH&9qU_3$$|>lja+R<_34^1Zf86g#1H)p~TWm zoYwZ_(<;g=@weRqbfcMjiMK$IT*@XSkoXTG%Qnf+*(yZS3}o-YY?a|Ndn9JHb@01$@YWd-m6->Fsy#Wi!Y z7MQibVGG=P|M%Z{+XH|3-`x7Zo9{Ss{8(D74Ny1laXLyf3=mFWdbY8(u?JVKR%(l5 z6t|V4L!%lFga(O8T{2^gg~9FaBwgrK(>Ku0 zxPo7g^cqZb%t8-@fa3_rV7bW)#Lhee`yve0qZ|r9MC+k`5;6q_P2q)TK^!735l47z z>;1<_23_{W%dF}^_{cN{sv*8~o`MkF1bmW-42TN~d5Uc*uRMpg3PKK#Wi^)R!uA8t z<;rtx0|AD@jlBAj)q|l6dFLX`)h4qEMw>kANNoUxmI?;bs0&R16A6xsf|-*}x9ClIwYb4xIKrtY zYX}9jY2l2Tzav^#Fi|il>3}#2Lqfn2FzwF)I_lN&x3R}9+#YdZ? zN&F?&5tbXx)W=}QE?N~^I~4>E3OZE7&cX|zQExBGYC3mgEIs_`-~YQ8zxaC}*x&s6`%-`FH^}<1%S1tDKeHBisx8pzTu$@z zKTGoZ=qf^u%hyu<_B&E{>vHOEUQJE7@-eG+QwG-}+tJRgET@~>ix`haSV3Q=+sB-S zjz-$U=F+t>#=M99w25%z!0ioOVY`8GP#(oBE(&`~Cid`+4z@opZ6MU(SZS}vuchYK zucp@H+o`cVNOk6fdb6EIXaxcdAtUpUW0Cnn;l>0zHmBb6u5{N=|5RE$bt+BQj-~BK zA4`*M1U3jvrb<8=mlT%c57V!a>5-?}T&!TOj}HzIqOx$pqQ}>^SgfE5pv}@{}V9iuT*P||Flw{`IZ@qvEpsn%mMsh_%d07|SR$bu+yOmjKR!DBpg=Rps@dEXSd(~y?^cGO?RS6fYwB{6UV-uSmmfku>3wu!49hCGGvb7CXAJAM;zq}gV9C3 zvIaA>&R*FiI5$^>rFV=wh9L~0Br~@b!d)HK=EM%1{nz%<$l&<54Tz{Qgq-79L4*5f zRY9FXxO@$D)6KnFyzj!4)bLjw{p;5-a7Z4jXV}`oDzgMZ#w(HvmfcfvxHNJ zKfMHzgvqZESQPjpm`{+7E5;H_^Q1d_e46e#%?S}~Pf@`)2t|5{f`UL#g`Y%;{Am_q zu??k2KY zb>2;E_@RqHy@Mr<@WA!Ni&B~926q?_zYIo3URVC=>vIuWzWScMjEpPh4xS_g|11|a zo}w~@mTj1~q~Pi(%h%w~AxtB&(tt=2W0!lH7lYNvdO;uu#t#XHN` z2ddIWy9hZhAl9K z?>@Z!#HYU0>s@{q%fXMC#mvoG;Ayr11BES6?e_WF+FGhFa0o1esKFw^bbl`m5O_?% z^=l`NrCW}jNXHhJ>Gv!EAk0|c%#^l09E8*3eFtIpRjzBOQ0*fW8E}o5Q#Ix-P7?os z8W^(-R5rC#E?!Ah80_?=ucX?e7gPPhUTW@Qc$cl4nEOUp$eApQ3o-v@O+SPJjHQgS zzza-hL!=1p`|nRDe&`2N{}@M0Gp^@fbzf>8Kb`gw(o7g@j#F_3IXfi(<{!|LXrjeFEKlJM{uby?=9O zCtbX7fumr%>F9~m>AqLIoUMJs)Y1kLAV2-ZFQu)==c%ZlnepHjMUU+6^t;ku zfBNm@J&XJFTYzppb1(50C>KFNB#cO?q_}a9Ki_%MW=58|W>g{u4w^2KNca&9QugEl z5m^{U0%1$2alRHzKo(*MUt&_N4N1iiZiJ8nxJ6#(B#|THiY+a87*8S&tQKV)523hb zZq@=X=@xij?SVI){;_kf{NDfl9DFd;lTGDF~&z{4|9_kT@X23sjisklb-pGf%N}MVZ_D^TogYY#qR1@em%BI$a z&jH$az_i5PCGO0^)cGcU<<(2dD*_7-aeJgKa*SuA<}^8~adpNmp1DQR$e~DEM$3^8 z<3<^B<^e+J*)K;lk0_s>MOnP(dgxh}#rp7W{D5Z=nHF(#d2%6ahte6>w@6(!nt_p* z{=)FJ`0hSCkC`qfjMVnf5b85OEwCNwfH`g-=3zQP_#i_P^P6*=^Bp!dAhuVqTeE=n z!!Atv6ahyZmri=;%o;+ldJSTkZCo|>ebtbbIoEkgLsi=>u2AyK9+tz;<~Uhm&&PUu z3~a}qP2fCT{wZ{06?DoG#EkzbiwiY`F$%+UwrQ2|qQH%=7+Y0jFkCt9Ah75luC5=gA-1)<>Lw^LxSqt_C!Po7x~y%0_WK05h8*s zMsQbka7c@J-*OtyPnfq_2PhO9ZDwxP0#B<2YL%Og zeQ@rFe<-cJ^0leSk;W}fGuobT#42NJ1zQ~FPTfSmTxC8%;}F5c7Dm12FfxfaB<6)K zLdPwH8yg5WwzxWIR(Ql{94iVgQLVud#N>i%AQHzt|jrh@iNFfQJnw;Gd58 zhq10!#60xC6Aynr^)cdFX&`A;U`(2t!i^d@(XDO}8*__mX%%ghV;tkUh=!ZA%*K@~ z>Dt%6nszQf0q`A?R(>(HPb^M)m;Xnz{x<5=2JiitIBl=fVLKlOXD=_OyY9LxgsMwx zM`A0{0Vkndy1I!bj#jt|bO+wEyv=4Sv|c;?;lCzmhJ(J1#(yTFN@vd8OS=VBlFf*X z0V(koTk+UiKM6Hz5sOGk%qs!MzjvL_41S49g&<+@4x&&(t=B^o?O7?ZCvjW%k_4IKB2P z8npO7ieb>6=fgtKKzSk9Pz4p*4OLaQt;jga$is8R5phqlUFCK(N7Rl82EU|1AQH$D z0tlRf4Hv8bbARCe2hpuz1k8bw@2z_Ey}4+*`VXeRJdCIESho}yqu0jz|O z^^ZNXJS%kJ6=E@qH3C8T1LA5+aG}v6Gr8DyD@um7h^EWARZf3ENVE?F<_Qr41W6MJ zHt}Hvyd_NcRL3g6^}zj*w*<7>uCz6a|M?9#7uVu z=Lq)O7)O|b^_g-Q77_I0g>dU&c(@|I&%(Flx=6=+8Jyu1X(9t7Mbx+(vrKDZgYv~Q z?HkXLZ*KD_3w=#NyWh1zzgTK0ARNRh?36v{ws8od_~s$tU@!h6TfWv-S;gDYydW)% z8oBeVb7zbLPCseSVUvZ`VCPQlRJiJAM^U{w8i;n`DaL{QZ@xK3$Uz#ScuzC1_W8f<&3r;U9zI>0N8BP-<`?N%ByP;0}53JR9DxW&}%(VC1~%B&Eu z7E9Ka-_m*ENBg#D(;?xofQ)tU3##~?!G36u-E?$5tt~Y$BHYa5f3BNWG`Px^{G&%t zq({!)p1%HtkNo(xuYCN+dOH_>Y&`6IFaYy2bF&uswp(Cn?z<{)`<~ZN+2&C{aXj72 zn5mq+HGPgPDP6R%jvYCI;9!oq3BjWDE8}DvAqHG>>ML{rfAyh#H^CR1XnX81$ogEK zzA{y~VFK>Xv1xxlO@I53QuY7-t<-+>0yeVH#9Um##xNRPS)xgF$E~&S$7jZk_)p}; z7|QbuID~;S!G=V-<7H_?`C7#D%r3XYsbQeb!vroM3?MtW@fjWrKgYvUchy>Z+}lf+ zKl$-=>VZ4|fA-!3NY?8*%)C9*Jvq<3c{u}kNDny>AV3f#1&TqIL|bc7mPAQ3Wm&sr zd7aB!yQ}h+<+XQLrSk5o%2jJymShFXwrH&=%CaaXP$U>Y5k!tJF)o(`QHDYbI&>V+;dWAasl_$*&deoQw>cw6|}jb7Nqn-84Xi4&UWq@ zPL+!r>D*&q;`j< zoSi{vF`jns+lw~d2-+sqv>p0u6h3F5Pz!#>RYek^$a@+Y8BR;6t*$lNfA8y7*iZ19 zk3e6*@tP0mw_Sly9ugE1TnH2ZXlN{evj{T+p%vjELy*wcWpWXuNQXR<%_7TDTq%t$ zOru^lo=T{*4vbL0}IL|TNRd$APfEG;GB3_$SwZE|3MgV~TQmF^bk@hp#w8}yb?q!@L z=MVK^P(x*8c_R-#;@q#F$Y;cqU z1`QjEM{=*EW=u!9_K(6sV*{L2=fPtGCO6))%opFZtq5VN+sX;FHl`44XlKLL$gtT5 znaOeNlME9+!!CUlZ5BPHR8g_5aR#T>;4Cz4a;J(6q0tiDp|yZJgQ1TYpSiIO{CMjp zzQmF7Kz#&78%Y#B%-ytu@d?q4La1K)C@gYWT3iO1I5U#@K8NLE;+rhi)5{sfb@TNa zn8zvtb3Y=FnH-~D&Zvs7T!QuFxbAbWVvFf!ar${5L)Hz8y5hcDLN6b`dBjK`)DmyoDydKHAHATI z5CW9=9Y*_N7^c4jkl1hjsmmPRQ!yWH&5Q$&i=7JQUpNxB3BYI|FHa^5j!guPuTwsK zpsYb`a1@xk3Ny=SNS$4ZSWfW(06+jqL_t(;;=O=!DRK^XvL1EQaJakE+7oef#_9hE z0-GsZyIx#xrV9u;aLj}tL*Wegi1oVw9WY4z2r#6U6t+Ww`wa6H@XG{8xTeu$8PPTg zbuoN#`5s~e#qqE@!tLWa!o(BjDrk1J(;`Rk<`HseD`*eKNT+bWG(En7;04bs6L+K? z+xMjx_uMdW^65|g;_9i#{&BT>{yi8x_~w|m+`Rtx8*K#k?YyUO-#w{<=ETbSS+x1) z(`~am)8gnzdZvR)BkN%c$+{j<^mbJQ7nBPe=VA@00SlszDiiqvi=tW_WfsOT0?Gmu z#zYm23(qdLpZsDSzPI;u4etfeU~mKoDjcqBsl`iwFo7N&>qH zKXDH%a<8Z{7(Uuy_70j?O$?-ZRIY=o@&G>Cf-w2lDTGz~o47g!PLQ|K>XTncXFhjR z+Woe-Al$*04>o^jP2f*AJ6s>Dtl14VV$>>~Uo5fSHqvvy^{KRW{CSX+_BG&35cm!< zo-!x9uDdPW^X~i8?GN0YwjElK7l?Je0#32$ow%kwaQ(q_<6XC;NAA2Mee%PZ^ky&5|iFx{m}+JP~y?f7#nA%R@+y!r|*=XC7> z9LWf2FQW<*QRm}1U%)3#!<5fq{9+O~Rfs6{V~&9F7*44lk8bD!ja?>GTI&FGlQP;6 zZxwb?)=?jC0Nn6GK~!AC7RRHf+TkT-oqM%5La>3MO@HgaKUq2A0+9tAX91>yj{?jT z;rz;bseK`bW3e*q;T6L+5hn}h(GZEEcoKJTC!ME|A~UKAPTV2N&oZ|p3j!$TwO?wI zbcGvsm5*ush~&gcXdk1kfvq2yGIy^XChN3aaY<~VLJ`_7v{!E?wps?&&3BDSvOh+7 zXsbaC*{ybHen@QQHbpscPtIN&dJUlw;#Nz|m(Ski7MR}g@qA%cEzYTIp<_YT$QjL! zjAk~kb>%XH8P3_drRF@n)>&3)PLRjGnXT6Z>ok+kmfHKobGJ_xZ8F2+*PBRbfVVl) zyir!f`@qG0ghx8+CT&z{$BpJ8G%Dh0tJHXk@SHfRF>otw{wh2u-8yakh*LTD&SXWa`lHD8LYQ5EORsmNKG{hT}DzO;z~O z;sBoOAczKP^mFuQRNFPqY}%n9*7Nz+6R*X2?c}EK?2)JQXvAzFh*?FbGOwp61h%@D z9osd5;nhL3IW{@6x0vQ;-<}qCUzLtM^@n?3e&*rF)-S#I;b!^bkMasv`1G&-2)w!x z*t7fEbZ`%LbsD%}Zl&j|tLdhJ;dI-`3`TmJ=~TJGh66$k0Qmyk@gVAvlcQs417SuL zxCY8%EmnhL9SsgQ4qUUqGFiaEL@$uP^ZfDD`A>h422Y+%B@9@!P}6dw!2@qzb@CTj zlm@1!1CE>P8>xt3-AzVQ08)VyLRe@9j<_kzXg&XI8mhb{jm*uYL5{|(eD&E>K6eHr zBYdJhDUbnQ;FDi4+c$N!TVHX7YM0NY(fA?hlGnmqc9f`R-FAEVy8=? z%F?Bkbn^L6{9mhQp6c5fjknYPdL55I;im8S8*hKpoget48}5GRckbj2?fhsn?Zd_D zq4}Y-4b6#7{5&2zx1Nrj$B@;Aa0*)tAJ9OHpv)QkGAgr8wo8U#PUa>`80gFPIb_;p zB%m?!#l1U8!g-y%6?T#;P!1aX@{FvzvRDjA_0m+T42`8a%p0^xsF>pDAe~(sNEdPc zTE#mG#^I@7B8GVG<0BEmvy7Q4@)BbTH)avmT)RCVF_FgNUs@(E?{f%YU2G&{W|+Uh z_>#!`VD@roWXbUgMAX($SOa4OQRSK6rhUzY2LWZH+$mSHM8U@FIPF0z!(%fP+2zG; zv!zn6O(4B}uq8pLQl8^!xgiwx*Ny}uZ(E}%QhVj^o^Zl44GX-=t%Q^9iQ@+{yWmyd zmrSo^nl9sDvgM9%wawCP8~^beH$HbCBib*nNRw~7-=w0Qy~{jXk3RG+GvPsAm8;8_kOqHw^|Zyig#?9cwt+K zxM46&+WqAAbRXj#UY;M8VT=8XyLk34_uJuD@Gv0k5b9Ab_bCAl=7q4ND2n4?Xc_np zC4iOD$;u;lNLA)%2?4%Go;)&!EFiQcMkq9%kuYQd2X!depsw!lcVB&UkT4_292aei zImGc2@(+ce4W8fE440IQq#cUtJCyf`0h0EUGGWb_utPk zncb;!`sGwuTaCkCE=K-k0WD>dw*?*0gr1+e=9)A)H=R}Tt~)YoFsYf7Oxnwx9Z7+W+S3!eiT+4Ya}7 z2$kM(;KjM(z`eM)zIhyPOmyNr+I5?Q6KQhS!L+)xme$UkWW4L|YY&e8YHF=tBFQUW zY+#(?7|$T<)&r-|;wbZu>lFwZ+M~^nA@E&^&7K+N#1ulOX|&{K5Nhq)KA-k-Y~~{F zgjY5z@1S9So7Vl<@KEuuPmhoN!?BU!_po{V73i`vuh@Woh>F09U7TkakMAOZ#`HaTuuf%f~|PHHh^flOW8bmZ*m;u~>+pOAt|^UJLQ! zxxvA3l1+mC)gOV^=?EOU{fGA*xaENlUwzX(x9-?BhatUIS{SKw6lDn2a2Nu%hEH59 zr!$wbU;`N>gb+*?I|;QARIqysaW9ju0ns^jIVT}zRBhMBhJ=$mk%Ut)4KOhpJ5ybB z6KC~hgc}Mt)R-t>*h|}9o-3^bi)vnAdO{N$v13$04Ia7*!2vrm@+o|L*0u$-0AcLb zz*reZ)xn^+gDrj;1V_j`5gZH)SSHdClrMkDCxa9J+y|=QR~9oT1J4+4LPK~^7^^@- z&oLpOp>I6KB_RY_A*E^aPPv*I;}~a0u_bI9LHfM{X&7x+B@wqq!zA~SD_;Yu? z%@`G>cEz8R*GmVlh!BZ*^X5Pc>&9o?XIarMej|xr42}$|HHeQdm&hH@y|Ro6MwdFY z;{P=l^@v<8#Tw(W`{X>Z*2tf0jk&Rv->kXt$dU6#mTp8&ne%(^9iJ#S|Ja&bxAENb zV5+#hkB6Kh*Jb)%n~Znu$zx<5lSk_AyNIyd5pQz>66Ji|=dF6SYQEeC(>gZ^vHspi zA%*qW=eYC1XVSTDsmZ|}C?Pzv0G1n@%roGyCG&1+OatD>Ah0vDZ481K_`+DGf{q5> zh-C0JxLa;>jDz(JSw3)VU&(2I`O~gPesc!py0jM);k3sl3Bv-I^LhZd_t6-NOmi^$ zqX;=BJp0eCL%EK-S$0K@o5bMY0=7hE!7t-*Y#PNCb~4{3EK(N8MMIw@@c#to4&z`cSIkr|HNEnrt@3S4&p zH#0K`bx&Q`;CUu3&fk@G9XyhbJ$G9=_Qb>geCgPie!9MT`aO+C22I-V)7U>^?cEtuYOYb!C2cTP;O#sRC) z#8vWcFsIe1bknfyB=#e)X;24S59x^)(;zl&irAhIcd?>?dsxGO$pJi}?EcUP)69b$ z`QTWDOU&4Vn`l)6JHPk~X#zu-9SHfXxfqx%=;>i_Pwm-f)A4`(i)rKfqiN+UPo>Q- zKMF0)S`AZPK*OwqP)0j>Twj;*{}W^LCj;1fSbGoyI_J@38K|6kJU##GD{0~B=hF0z z*QcR92UBTug7HE4a&a>)pE;J6zwqU>gx!sH9T&LZ7LU~iNJ2~uaIEj<_kDNTb=$#o z8brc=DcV`Mng)NU{V8q{2Z{eqpdI!sIC&@Qxk9M3tLS@S`1OW&y)P}Fd@)^k_H&GA zGuZ@=~W^jE&;-DwBfFb&!{gEr0e zS079}Iii1YWi>X4N-#VRz3EnLitNQGdl?#sW5n}QXxyTe(`n!N?6K32JpSDAr%qp7 zerKgpIr+-1=*NB|BhVLcd?Tawy2=Bk0+P`sRT%t)2pWRA7}TdWf`kSL!(~6nE2$_x z1yoNp{5QO3M_M?#GnMrv$2mF#ry$cztbvOIZ%Z*;z;^HxAaKvhZNdnxvTfCb${EjtT1~51@vI_1QBEmQ$Ib($1B%#_fFgk4 zXn-f`cm;6>+B6C(q(_AN5NL2C9mocL5O$JUQWC+SQdz|D++hc10;bBHYGFUx0dAnk ztt;;7ps2`1+8c-~H#!J7TK(5m=eGmE1`^XZhy~}l7&fSYO#MfjC-9%K#F#sbngtg9K=JlFG zS;Bxoq6Uv+>~}9}pD`47P*)Oa<2TKnc=F-TuAchJ z$E)jW-w!czo)-15{s{cZ5m3#Fx$Xr>#dV2^_;3wPWG4Iso=qAEI8LL9P=z|JAxu1n zi(}V>Q4CVL=GDj;u3@#);bhGVWVb+8Ndz2)Lsv3e)h&K>ev?|cayJ4Vz=tt80 zJ04(@fg@lXhY+6?XD8C=gAb;)-~DK+z3@W7o4Cw>@veeUkEM-38&n?tWIFlC=Tiw` z|0uR|8o+O1lEn`pOzS0-2|Pzit8(wY$?x^kmpWs`J1{Q(Xc3pHo$~Q??vtm}(xabF zqdWItr*Fa5<4SflmCv6_?G29Pum+1q+8FWb0N=V=Z^9$&y8YgC)q_XV5@SJ2(`~{v z$oCZd#3_bG4H@yP-fT``OK6?-Uw&kb`!cl4I^J0(uRff%-~M1)KK*p6uW#&6!`lv} z+J)y|MK9ZxYW2HEM~2sG;HD>DJQ45hUGID-?c)eh9rv;FC|*U59*$#sqtnJl(8gxE zYTy2J*IVBn+UdFspJlAa)O;iT+4D>3OHaOV-EaNDr%yccm1n+xbz{S$EdA>>905S6 zf4#v+K$Go3EJ=uHT{#3DAVdj@0T5v@2T~Lulpy9nChg*6n!9#as?Tb;ETwCqo;*W) z8f2p-c6Ul;G&D@;?$i=O4v8>WuTWKWSG5J>G(NMChEU5JkVB#hF>+=`d@EvT2pb6~ zD#_O3GXcmh6C_#x>W{$dY6J$Zz2`^1|KKg(^-FuMy=Pznu44yhQuhK_+u4P5uXkm= zn$9EKSlWb1VG$ShO2AALE?Unhb+~$&p)nZsX$bsD;8NyYtqsAc4YSfwA^{^a;2C-3 zn**M|1=iUJL8#FPTLR0tdX@PYfic%zV+jd_gi;ftt%gtcdW#)kcTgZW)bNl?bB79a z5rmuqf?!_a^+1NvPMIEwJWxXLG}Q{48xSOTeS`oM?z``jyu!Ui8rk?JgPfutF3XN9 zZeYO37fql-86H*Jdvs&8hxDSatchW{SxDfK9c&U}&qTon2?7DhREp}rbUm)z4Bcl_ zISyNCxr0Q^IEr*0C5R4!v*5R)4{?kp-U?--mM=@IhZW1WJa?z_MFCVULmTB=KlQ5V zqVU9K7$1x$4+=QKMn>Gz22%9K#`Z^A%IcNwjeWZuV1ZmRvczqriwElI78XLOoRBnx z^KIHF$^xw`LVINx!(}-CKE)@3yK#oue*PlFA|f$QW{dt>7k{+J`4bWTkYuYAZWNy7 zxXXRbBTKmD+COfi<=p}3mP{YJF*&1xm;=hMn8qQ1 zDnZPuy}{H%*SnA^3OGomh|xOLd>8`eEXS+BWN{wUNQbS?m;)osp{U2UF&BIt_Elk; zbE3$HEH2CW{Sj`P;0btk7CAFX3+!w7)WT#KhJjg+VgY=>94g?HTgCg4f|YTkXTy9# zB|g@B+Dm-6R0g&J*1$8E7~r1%VRvJcPq@qkAL!;*+~T_(v@FWtqzHJdlg^Xp0`_^J z`@u2PsVyAGpFX?hD~xF}4s{5KVT44Ab~*rZOJL@5V?#r(Ed((m2sy-kE%6cDjW$ri z5IJM2%6gqV8cJO)tGR}{I>O=Ia~|o#;|s2B#i6sKd(yUrooNTA6^=dr=?70g`^dSC zi_iUZy?XJVP+f3(QE~sPKLU;bC$B?V0bDX=nXAARzh@BkKT=yu2S&#cY?Ro1K!b~Q zR1J;F#(KH{NQ})+2ka{-EaO(X83w6f-~*t*HUhfyeHFWOSm7;VH$!_Ix{B8BjQDK& z*4xtLz1Xp!eve%a!b}62F;P1lix|L7Euy}>CJ?ScU>8D-h{h%%WogsS=i9|D8cJHipK*A)Ck2+LO;gi$J76 z)o@CU_CVjT!{AZ4Rs&5E5ChZ%01h6Yjk_OsFm2Awajd71uHoqDooLBmS3NxruDJ-D zuh3QTsx*iK)Kh4Tor3RhN5;+68tEM2ZAb4;#~%JqskU|o99Mi3H9Y?+d%4c>xPJ(K z`^WGFqP&&5%UBq;#_Nl8t)dWh1wwO(;W5Ni-X(N5btn8r!ezxpHa zx)_0jH-6_$`)+*iZ|}MG{=Ku?(Tu{Y+y2>FIxxqM1p*3fX`IJ1$_hrcpq*j?Wj`qv zT7?=FK5A~L-mWXtNj!g`bqXV6T8Bs`g0t=lH6U(ENIgn;H|UIvq$=vIH4J+ea{2ip%M$+3cmbjIHjrxC!cT& ztr0M7Yg8-UKuB{KqlEi*fLBN>!=72POpI8LpDnIE`T!%;twg3sCQByCPn^$>Fd4Vp z5DCNh19yl=EME;ZwKW{4VYs^(AIgk!i4S~3+Fn0wbl|0Ej19W-GB8JwCCU$t4sfXC zoB2Y}L6SJSB2y^?D^4Z8z?eZ29P#;q=U&@Q z5G5LA%6!=--$z{hZuO0zUMlPN^7+d25p0EC-7<1~4(i6_2fw=k{`5Zi?#dSRlIO&J zUyh9tAxp1i-6BcU9ks}8Qxt^ccV&?2Ev1`3r{df3HM23M@YzuF=Uirud1IjA##$U# zKAPk#%4=c-M!j)I0^TRj$`gSOv^tn?L;J!_ z29y;LI&|MvNG@z6a~?|G`RyDSgt>|`xOcsDE_p?BNf+K#m}7cikjcs8O2H%sA|j!1 zy$%5BeW-zU*CaM*bi1sZTZI&HG?X%(69H>5WinXdDTuPmOz=^drvQaOdcPTskU|6~ z<8U0}NLBO!A)*WkcuZm9N&2F3P#jD^6F9oUG3A4wnvf%^$u~Jhqc)6{hCq>i+y3z2 zLOYRg;1q^2qJ3m!HynX4LM4v{4bc`2q2go(L9Bvc@E)pW^WYloavT8ox6QWGIaErf zhihqm>^i)y>`pK3y*ZtD>Qg^`?xoNE{mtc*-`#9({ysg)1IkVRdSj13p<2IGVBIRf z;OZVM)*B!i@JTNLM5|1=vRagC9W~Z~H3SgYY*=5ar5Xao7Vcyf6t?i0-bTwPR1BS6 zeuPhcH3q6cV}OObz`8t$N<)D%iuf!Y*|#UvI8I{vINA~5o8cOpG6)4Y07m&9?Q-4K zmW|4qZ5G#}IEjoQ=+NjWFc@%$L7agdJ5mQbU7a&$t^4*ABnfcEebZ;2s8)?n5GkGcye5AW=|Tq_CPw(#;y-=z73llQ{b23 zSUbf@;*VU0<%l*MOE*(nq^nat4$jb+W3y)G?liP;Af*#uMYvSC{?FOZ-$Wq%Grq&g ziSaan7rViUsWgCaqck>=N@&>(A-EcX2NJuM#_=<|V;A1DP9xl1Lt_RWNu$fOM+4%k zt836b#dPh#-Rb@BeMdTVZs}LQ{M56*O`E zZxGjE*bZs041fSBatyQ5gasJC=YBB+)I9s^@jh^F zFiJ8wT2Zb*0@emc*y$>V#F=DVA~@=#-XO`SH?%l1H3-2a4(z}J_OJd3e0z_;o;~-> zE#C5ue{<;Qcf5CT&yn!ju{haG2eu8S9jJE~(9F2FhUNx9RdZ{?g%g-`$Fd4hv#Fg7 ze%ZIgxF5D|ka~>4WDLPbdybzqKEO!=pvw9A=J+%!t&^O)#ibn#OqudFNQT*sfX4yS zVM#Ex@%T_d{j!YuXl-*jjiP$n!RPx11XzW{1ny_-LZFeayqL_9?U{f$h% z6@sWkrc=g|edZVwN67uR7zgfU=mLMy7R|~G%|`T~P%egLdD95vl?Mp=T8ZSV;bu zT7Dfx2<9msM^Fa=GD52%Yxxk#zjNE>xm&5=!t?#+jcx#Bp&6uL1c8Cz9NIj`P;%HOgH<6YBzH ztdM30#m>WndDM&Qa-(9LHFU}jDngFp6vx77KRPSvavRB7@|y8jr~k(!~v6BGMrvV)vW2GnT8Q!;D8lOFi6DFJk<38qY4e zw%tBmN@qE?GCMxY`S^R&p8bc@i%;J)`r?zH{Jo`9kAAtla^ZW(c_O!>|NVv@fu)u6 zg;nTO3`mN-1wy7GaL&;(=57^DWRF!a{Wy-nc`Q|!ZMaRUwJ$YT)GGh3n^Uz3A!IG42~vjO0-@)mO4wzuB-o^=-2#eRL}hD zQfKi-yt@6ZCW07kdUXnMsPBrp=%|40xHt~uh22p<!9i|VRZSx{=I2# zaRFKh4R*Yx3^(TxxNz(TVN#RhNJWnzk+#A6s9rdOFH`3HqyvFznQs zGwFtF_NTjVI+9MDJ^MYEme+py>o%sJ;8l%4U%>IIhUs;k2muEOm9O5%9UCWxDyyMt z73X=4m&}0Z!r;#UDxaGm6pXE>RWQg)Xk=XA{xn9#Do8Nh6_OB>@sJ78O{6=|TG5ZA zhom=6gR)V`OJgh$14y1_25e97@*Wx`2tR8VLA%>q8f^W!kW;U`{%?N-z9mKgx3AYu zz3J~9xapyv*>%kw5ZI%5E~utG>@x12#oh(JBbU+Ga92pdU=TetTy<>?f39Jqu);?b zb2U81;odcpDHAUo$HgKax2*b`#o<()f-qZ{!Lvaz7!&M>a&{H?B-H=}#SHEn=f)rk z$aDs8EETwe+Sn9K8BEv8W-2T%p?V9IK?Q@Tx(}7rW(6u|wv%8am>(G`8F=fJP6wjK7P9ecJWhgWsWzE z!dO|}z)^fh%?yAHt41i}n1GBTT%Szo0Qj!RK+u)Ic~Kq28&n?!@x;IFv81ibFdlmE zH}36!)S8=|+m&-UF190I#6;1TON^W}-ZpQg>DF(mUTAM%V|XIHamMmZdi$U2vJ^@q z>T)gl{_?YT)=6LdB5gF2+k9PqGrjtI<@fq&p3p$)B{1Wa_fZf5QE<0r?(?JV%VC%2 zjlJ>DE7#vE->_bIE+8{Ck{ z^2iBb6zN)Fzd~4c4w$ye(TpYn2g_HdJ8GnU1r7>727o7vbH0TOS%J@aWPHqN+vepO z8ruf(94)pFW@chpUllE`HpWtA3=q$x0s_-v>QuC`; z(Rr`&)(%47&|vYNerjU_J_Gw9j2Cr;$2V|;hSC*uC=8VeT}4T>j*z$vH?&Y~qtSu) z0}#Rl!rqz5IvOZwb4)CzT{|C2dk$Qeo_*}ow;p@)Q^!{?KK=8J@`b-cQ#jGzzuvGT zaN^9Ffnz7r;57#jiaObt?7(wqON2&;^OD65ZORU7GkbSgD94e6R9YhslhFyy9CQr~ zfE9+iuosA(a-H{sXju%R@i73gJIL{kR%IjAUp}4Y+4Ud73t?FprZ_kL%FiE5mH+%- z(!kj>XnRoC*mN4Z<<>O(9S^4Ro8QdF1V>kY{$Hf}XFeGM0yVP~RW=dyr-SC^_zFYk#7QRv|G~X9l$zrmv^Ix0Rx*GV4pneC_SIjY zt+%^o%ubG{d+xj)yfKuj96_pku=UYF^QHqLYKFI!a%!$G2Om`gL6xDM6nMnO zaR{0fHsiU5uu(L0ZockNdic@D|50DS@#^2n*GnlM+rQq}BM@^y0!IQufrbonN4r5u>v}0sF?VfQ*5h zK!<$>`e2-MDee+W6S#8|Gy)J5FvAu`8BYyss8Tky_zkh7x^^9+z}*eNQyKz+3JX6g zIGdpeB7tG#7!BM#SJ+W43{A3|geCaqg;WH7i)_UzG#Ktw(m?GT+tP{=7E-;4kORiu z!xxe!!oGry1~{Q1QAgMyOozLwGYE1HFVc31z#7znf=)YNdu(@TImnnn$f(XAwlyN1 z!qQB))2mFQfGJ+{u!;-K9!?{QRx#G2)35oz5DI~XD^-Y0o2M}drGhL9jCH8AhAh3y2B z8}BdQGPDwN7Gqd2>N%1JT0&tFZlk-6^_e2$t0$D;DaVtncg33{T^F+pd{ec(#auGI zA`rKJZKKRRM>@Go&rkOwgG9CvZrT(lu!1))H8eI51Z2B97%L`^LWB}R3CoOQD^L#F z0a1|PeB1=qF+~9WfaxIZ9BQ4yw@2x$$TB^es=&c(2EoZS^BN0mrQ^%Z^zvFKE#pC@ z!0{s+Wyd6(hyphRp4ax zxnt@4Z+#?{Kk>0NjO~xXUAxodd%i1;z5BhXc;xEToSsUpGcTjX0U!!fR4FadU<0Ld z@IWf;+n4H3KAAelP5~?JkI}G|*ZP$X4-bDAwL;gF|6evH-^G#EQ|_W;Fn#0GXZ;2{DEN$zlmvWNEshrJ+f;#Kgga6_6w0f)zF z)gCE$Oh+lltH1OJ{IhQQKJ?c6(_8Pq2Scs(RK{aUwY;7x>uYIabtSFiIj78fsMR-_ z4~U1=#Ni#<%cgFDp>q^UDdf;uL&5g|PFi1EOZ#^3NISR9AAJ0|mk<%h>Hk;Xx_-(( zbp-kXjz4u+-avt!4#$K6dhrP#5uhGRWMG0o2M{G-lqySjNuc{DkuAcIIXMMUBXOqi zS~syG9N;;Ki$E?R7-stef&|S|h#U}&AMy_&;21(!GJ;xs0}l@3e)C(tXhCu|C`{WH zjii0F1p@ESdw%W>^ium>{Z<@-L$`m|zMV%N{P3Qm58gVr140DXjPs@Sv=eJG^Jo_+ z$v?f+PD{93hF4(za~uU?#IxnPBCBd=gEL+lvYdfdnhaxmf-P`Khb8tq5Dqe5K|=wM z8)fWvAfRZ@Os6J>LiM;J?6J8jWQ83ZPri7h>;k_lxL7mI28UKzk0DAd8K!9jmu{S& z^*pe4cqGnPqS>UvKyc$iY9bIB8kyw@16&;Ztjr z@0mWGU1nFC^x_tGgcY!O@=b&!QQ%pB^=q#ig@u+FVu1jiBL2EFI zzK0%OwM|)j!(%-1kjAO{Z~o9*<5x!hGP7@9duVHVE#N-C4sLQ^>_6FjjFjG3PB6TN z+1!ZqCSR9J%g;G)H~w<6$lA*h1(}fe5JE(&h_&PX#Fy>&-WqI2MDfLaw_JlF_=;!C zh<CL|=VZ(Op{&zG@-#AzKJ+LlYF-Fu{?Uo&nMr zL(*AiG%WhaE%`S<1a)xf+D0SIP7Pz5qX=FaO4}DE;X{Yg$oUOuprJH6dQ)21zAL@( z>~#ajpZdhFt(kTvlBbu=uhnvoNbxtI|*x5B&&hrp^7+&K^YDddn27q^tKS<$$( zl+OLqzfGIZJ(~u1Zwmva8(;oPs($s!G`M^r7QpGZz9UWlwI5Gwi)d@In>fC_ni`+| zV(L8p1lra(ai+;l;H8It8>)wZ#!a9UA8t@bM4spLnnsxX0se3NgIY1b30`F|Q%)S*U-@5_w&L=@45Zv^n*X}7t`*=8Oka1 zsi4)$r(Q*X;SnY9G)Q`|I0mlG4e3DVc%;}%K^2{ick0|Jpvj@*v1aPB6rdLTm*b?hG3jh>Nmjx0TW&2w`Of1BaaP z7YD>yXc2+cx`OcUl@}1u-@w4FIi&yHAAxV}5zy`H_B-GCe_Va*LqD-?-wj~{V!l*K zJI31yCq%KMvWmvW1&m>=BM@i^R00wNKp7%j%jxvCh zys~f(7QxOqt{wH}vQfnnIY(4-e_(`QZU(#BDDDI++yEtnR*ASI42roMLz_iS?x?gW zTVsy0oic$MSDhS{v63+)5o77Djs#^!XFX(MT)raQ(eoyvyJ@=5GMa|u5f&$zkMf8& zN&H$z_ujx>T*jy3R6cx3w5n;-qTNA>@e_=;#4&BO7F!xjGmpXG5t_ACWc04Mw^imL zQ0CRVGLD8xU^$Zv?zKNZM6yU7jf{4iDUYFvdv!*7lNM;+AY~#OmA&_)Y+@Y$_NU&pA44Q zq)r8*H5O%LrD+qbu~D?lCXhr5(@`%CrCDUmHE>5BG&+S{I<^k3QhQ3r?m=vHdlfJY zOtXoJtLTBWpMA^mHpf+Kqv?2+Be1H>d(kF^ssST5+0MiqWro81I(c)Muw>Z9r7dQ~d%p~q_K~#r!Pb2iGr%8O= zj}LE4Gjk86o%@cY<4=8l|B2^5_xSqxr~hMZ_4Eg+_%+}0rp*5JtvCXu(#htRA5YDX zeJYi9?@dhvVJ+6@5R^k3i*JK&6_+4PD1hS?QV;R2sud$vJfEit8r-8``8o_smX64#2G9?3nAzk#1qaWhDl3>nD4K z5eV|{72^9*uk#TA-iH)y#3fO~pF(5>7C~TxGzUQ5o)I=&%jgO+T5v^e84YHTNW+Pw zTdLS80@*0M4v8tSuTVob-WBW#sQNBG5aUUhj6yK&(1ja*xMfyaOXaXF(3D|Qx=Fn< z6=9qS!o<3=NwoqB?qUg1TmR~hz_;WG3|#-#5551u?eF=;y;t8jusAc0K%6`2LxxcUqpHvf)75mjhLD6dc;wApn`RtQfvG|O zBMm8o6?s5R$VEbcGD}%AXl;xl+>rgsD1z@09Qa5^EAiGJ3*tBKP41N=^8G7*_fU^@ z_3op%c#c{qE9?gOzG#E^Q36OWRbn#J#7?sU3Ad;$rdJesqbVjOVUEgu4=oML;v;^{ zwdTCRztXSVs%~5~#(1B-x&>Nxw8HSrpgKfe@k6rQH=lZia7V+Us4IeVHdm1DMZi{d zy|5@Xw~eVCMdtd*UL={%oCaUB9m|@A8wsd7hjg;eGZAp zoQIHM&WUMkZ-|LhfuYw%jzUp)LKQs9=s3r6epR4ZKS368oFv+t+hUE@19i<;{s`+{ z`I{T!0xbBd!(?oLlW?+xKtlJg&;;Nm7k_Ps#9XAVEJz}pF%p02_O?t1IoZmQF^;yW z(ZRin>5?7_8k`Gifo?;at%!HFq2@$7eRe&qBjjj^pXiWniuT&W=!YTHN88${a!^h5 zxh3ucmyUpgM%+!6kszk2AcS!U4{vaYVLX*~)v5dvbjdpS^5RM*%}tN+8BU8JlNlt+ zi_4XC=0YWHpSmU;*t0LaaOAf1(vzQm-|1)m@O|qSp8lJS%?tlGRa<@kdOeRorE+?p zS^v@cZ+`S&4qbIsQ=*~ro!T`1G%DVg%$%`_~(K1X^7bES3c*fzA+a2yhZR0xG`}VD5(Kc1mG~Qr0re zSPdjAW2I`mh}e(Bio3w7r^}pFwabB}b1PotNMtS&w@krZBo^m_gD4BRisF*~)gOUxsS!AM>w9nBcl4dVbKu4Yc5UCW zn6`~I(@qT8?V3^*TFr%aIdwes||L46f6K_p&>B^)4qT~ut|0q zJ$ezK&;G^iWdpZ*$tgpk!l??7k;c z_v$pO@!jl}pNlh31oyJWb8qZ&q=|F7?#qjJYkvD-@ABH2(}i#?!p%(&yZ601ofEly zBBI#bf1XTEkbyqsU%$;WGKipq1$zjgWx0vg6fAZ_AqOkCn*h$OyqdeaEOUiGf{($@ zbw8HnC(wyi1RkJ#=NFG&!AS5BXo9aYIANV#juBvU9HyZ-N^J-(6;N1?_4L~8riTIu zg$i}xx+3f%bkN(SZeF41*}=3D=?HueL12u5|p3RqwE5m7i=4jfz_egr-z|HB{;~)RIb1!}2r#F|6e^;}z{280V zr+>XZN1)Yew0@!W_>2F!`Y(R*)MTkNFnI6nsXWB`%F#`zh6GXz>(>7s6B z)9Lf6@+9UP_yF?KAW1@<|t5a;POKH3xh+0 zf2CD#{R-8-+Bs|!=jUeT{`&p{2ma9=x8IrWy7x`#j=SzoR~Oac_SHB1D-{W+jozo_0K(- zs%KwhxX=_YB;oZHFSJswz2$}@ANr{ue}B5~O*cV|l&KFKV|@@wEd)(%)I(Z+5Oioq zFg)1whLCoO3p0MAFT7VbZ~cw83sQ1s*oOuJjtSiMj*kv&g9C~NCD{J;O^tv{OaFR9 zkHEmN2oBr;5eYO(h5L`7L87ZC+{lJ;*r|nh83K`Fn=1^2o>F*0`XIVtNP?ga3Ijlv zY2#BT4T4T?C=bLCNE`T8u6y;uU|O6;8K4@73Y-vE6KT2W zW@dM#g@q#{7cV{o+U#Hb5%|^^fju|eGq>Zacm2}7>+gT}?tS~2+k*%;s%bx-QRcAN zUt=p~(?sl4~O{=B{j& z6x~hh+}=ny z#8CmiIY*8o0arxEtvEk|uI#%37W$`L5gZx*lt_dAlsMaDoe@Pnx%OVWuE=o3?bnpk z3nybP!>;v8>Gh`99#Z&kS`){kH~IZ!fk&?(LbuZWvGT}b$RBHLJm$BT^YU6FO{4{e zqk%m1hA-kHjrH?>y^rh4Hbw5Oa?C5NM5tfUnf#+c(IWOaurr)S5%lRfFyzge-X%{0kMX#u?TFA0;9tm zGgB)=aI>5N>JT4DV2VRLBBp^k)qB2Y7gZN+-s~ z$KHK#|DnnI@4Gj><*g59GVf8&GhucA4%0qCm2_>yvmJ__d51x{0`oD7ptyX)+RQ>B49|57Qf4z}MpwmLm5GayS2y_a(iIy{Q z-4k-eSymXQVUX3f>Cv=*ekkn(A=N=3Cn0*8V5p+d3xT1(ZkePu2uC4@M^c1i)v_f% ztVMyx!P$Xy(TMM{?`7R-|@fhICxW9WcP39bR+GVNofZb`iEfp z*RghWiN!WN4WYH6mWD20E2vb<$T#HbQK6WCQJ=(JE1J@AG(}g7Ko$@pk;5IIaCe9n zh#DJZ;7p?2-5B9i_%eeFslq}vA1FEahZXKu6m0OU>t>IAgyBE6H7q(-VDnml=jPR} z=oSe44?-}NAW+nr7)H1;1fc?m2IHXLdYKBlz4(N!48#=pHxQYe@ zPaP&nj}U|1I^4w&wzF_U!4GPtv{xaBj8%zrB^V=$WNg}K#oz@2+%Yw*mkHY_v6mT} z*cI>IN26>QWyrMIHW}g&8qm$$XxkmAFVf`u9usaJF1ba2BENUUlh7jKBHHp5N<=Du z92} z_!FOQJEFOS`Tn~}w#to?Owf&qTkfM9M)t1A8x?m$a!L6;bW7#O{2p!UT|>Z{M_0y} z3}x{OpK6<3Tg42lt6>YE`!ZY15$B|^=A0SQfGK#Vz(=^ZpUx?nj(jPU;{(7rwkTsq zxplNf8XQ5>i_#DXh0RAi1|ishVH)L3xp-^@!Gbu+wZFtKXpTGxJouCmkf3;ih8btq zNjF6OMfx#-9f4tXv4_Di)04nC?pXHhoJ_~hZSYx7=htw{D3U;M<49jI+KgvFTQE2Z zM76oWt~)CI9#`Rr3`g@q`wM_nQ_cSB*`R3~=^U!|AsqG%RM-K3xlu+CUBazwD{#8n zXLD1NX%W@CQx~ggdVC=*EWRV{JbYt1_3Y>GIsU|_PG30w<^R31eDZ&!2=w#%*XwQs zCMV|+Ui@77vyWmpl=YgO_sIutPn+W-VY8-#T2f(hG!-{k8__;+ezx&q))=2apn*Lq z=BPrv0X=MB$W~XdVZ2{E8Vj>&b73mA5$I(RWyTod`oI~&YzQd5;U9SO6Zbr;UEo?H z;;x|`(cC|u+P57}of{6OIpbj$d8> z!!LcY^7+SJsGfQGN1B!9=P1psg%ZMzk0C6)e-tMCz`g_N{`=mN-uCvlr~B@|mkmdZ zZn7g%LzAWDCI`J73|PXTFLcS1=pvk=UC1`sJfSX-kFv@p#Di!|Og2Otrm&5%_uzEe z`~Eklk3wfW_M4v}rkc(_b1a>D`1!Q|-M6JSXWS}onrd{NGHSqYY?MF;^}MAhNwAI< za68SB;B6DF^wLK^mCiki(4?WAkIGLbte#Q$pLreGzx${E+aLM9T@N7KXrtQY(HM`R zXz0C;aHCeOrYdLe?Q;WFQ`_Sa6kXVB^T&7Q`^dlCQlNn&dNfd1LGmo@HmRD!V4gvLBd6( z68Cyq*^Z&Ihprh+x9mc79md5ow%}xl52s`iqyce+-%59h-JzD)RpqS=CfmUB`FFhe zVEWFt-n46WcJ9B2iJNcK%b!?VL-(zJ^+(|U-w`P6zwP_pcKgxyedW5l-}~;p`wyqR za|7v`g+e;At(fM4r5XhGMYJ{)ZfI8`j$A+(Z2(^twj2~zv>^^gQ2U<6IHnp29=SlX zG?2L!qUiKqK#R z0H?qqYjp?|VnLSR?+Q5JGvesTFlyw&rO$&H(;2O?%fK-dVOHS=v`gTINaI!$X}xzx zc>-5@GpKq^L0Aw;})LXZw=JKl()SV4g|n zbA0SCH<8{#EyS{-XurMkZ+v%~V^Ah6yY=>x5@8WNvBKpsyrLWv*deZ7e76ciw!&l{ zH6|CkQxJdg3vn9)HOG*&etK2MT{J3(WbKNm#V-g&Tb1KXo1gNp@x3_j<8sV<_hgGa zk^Rc@a~rlAL3;D_-sM*IoF$TVhdB3>hj=$pzT=VW$-mwA)q6kPz}~yPTsAE;?vGs& z7Qx0F>6iDpr}oFn!-f_K6zXZ9cLYv-l#fDHg?P~)(sn|V1NC>bIa+>z7C(mj$!&;= zLckGxQ;cCI%2mK`lHNmT96C!42=k^N7_TxPTC%#7>7bmEgKu z`!xbQOuL4lF9snFI_!YB6WT`Avj7e(p@N~HWEcdZc9=)tMnHtqsI%>u8&3<^#_&j6 z1C?;SpvWwQ2L{@sa4LV88MH|?uL8&F21Y=p?4sL}Cb-4T5)hpesw?1-AyJ4b?vycs zNu;gTqtIAmg=K`T8ZoW&pg?za5~0Ub31O?p2%BkmY%)zR9!gW&4yM83>3iw_-*45c zPqdm9nUt+*=v(Yx-{vDwuh#~Or4KPTChMoqruK8sr(tYLl*&~Eh1FDmp&sD5c$y<1 zr_K_FP;C*fCD_6Wtw%K<(fGiaWOxuPx^cjSD-x!Vt?~S^)Oqm?FgzAQf*7qpNX%;) zX6HRLg+?yb)DTz!Cnm7*Fxd(Xw@;?Vt%p&<-PlYm+?uu} z09==$y&Gdd>5l1CI(j%Q+;TKcE$*0WZI*wmy}tfGVejW%#X|9Ci>1<4yZ7!*?|kRG z(g%L{1L=o8@FVHw+iv0r44SEEG)OwQRu6LCL>H)Wl${NUm#F5Eb*d+R2ppwh^*KIj zh1Gyrg%qF!Xr2PX!$E`x9622yPIGvAdFjPVX#+u`p4gU8uiGlihFlNPY`wKxgw_3)$Vx!?SMQf&$CmG;^%H!7$9hgX_~^Ai)- zedve2=hwgYFT6e6!9p#8^(Y^_Q$rJ^!Z<42s8`Y8z=KL1{MAsagLk5>A8|?G6LAdv zrh9>7T+;&m1U?qOWDTB`<&{+3+(^@SyE}PqIh}m@d>LHxo3GTye%#j|fxdv_>yOdv zGDT@*@`FP|Bk$wP*!cECciq43>f6wu!?+iVH%Cs{Ny#oI-6#pdgjIb4ONTpgqqcq9 zWEw|ha{?k{2Z(W$^?Mx;5UWUO-4zbnfqdHK2!GcAxWWyM7Y+dJyV#k2*O7sA|3TE! zU|2Gd2C(xdg7l-5*BxSsw{?gniFnWXm)Y%B{q4{;v_B5br`vD4C0%>%b$3rqZ~J@Y zYVD~rr%yc13!~8f)gOWXx+AdbhIj0{_P!te*bVo8|3A3unwy4p%?)uBrI4=LhPy%R z%DBK?LKt^`4Xq6p?bu~t@l~j?hBilqvlt322HClsLL))J#ym#$MquU#*}c?DNoIzm zVNgG3(OxNI5D&G^6*BWCB}kdXJ~K~f$uQ{Kx$>gP7KUP7)XT@k`a-aA7d;g5o}B& z_*no~?4D|2v!{&)hju=KJ=+>18z3WS|HT)*=V%yh1GRO-avy#4vfW<2-`;}^bRZJG zVrYo?nw|e%9x_UQ#??)mOY7z*BI0{#OlU*>iEke-ziXrHd(YN@&k;}RtvLFZ)8sJc zN|a|>%Qd0tb7*`ATbu*p*{@vh)?<_(PgkVNWtsSj5~KX?bNAkSQDZl6Xyh=#WD4ud zP3Nb^-*o*OjHnrUV`3hK8$NFhrnd$tgy7qH^1lyTZSD2)a#v-7a(R)~a$!;;&U+SYHLN`PF~YBc4#B&P5TgwqkonhBN{eUMbxw|g8_>ou zKFa8hzgGYG@8$(p06}4_80W4{yd1P)$l%f-(sMrNR|r8ESmd`HyW_p1FYeA~>_#Ic zmFZE~p;1x=F(K%H(F#Ea%!9`IKnLIikG&~G&6^w^yBlF=d>%$^=fXJn1$7MYrpNl~ zXoPjJITUk*O^^|+F;DHBOEY^H(hMs3)7+2EPo+V2Mw>8SHE>G<9IOWx$2E9FIw~%d zK?(sJbJY2(fWOWZv#EnHL4jF@RkS>WS)Se8li3%ROK3B7)>l&F*%Js%n!qs{9vKS-S`4p2 z&=9(uZ3AB&nCcGrRof5jVWif!iPSv0KeZmbHMQ@*IkgYrF$DqP*w|DW#!E*N7;7u& zIFDfFnP*b_<&zi=$5rg5v#EBG&nCt_C+E`aEjOi^s}H4NwYpX}_soq=4&8U(1L+5U z_yg&KfAvG@&b#lxrq&R+op=Cm5S%gq{!pSC>kMs{KB&>R&$9t~tO9Q2weLoVal>?q zP1H5;y`Gj7j0n4%sCQj}zIhp8$jLRdx8_C=mKM{?PaFpaK{FtjxpWMtMRat0dK}GA zkGmpJ0pH1^cnS!T1p#UyHj3t<7bekIx%in!(sTde7gGKFV^p;EADfj^KR|U>`Da}t z58ie3sh{}q4~#6%&-1>dMZg(oYE&y5$cPYdAmmWMQT3P#J24738oY-PZfprSG7bq% zJ5=RFtBzHs3gD9%tHBalKcrtD1YSsB9ONDdTJ0PHc0_0gy=#Ztq5|RR*-IZ8V{T$#1VGN^9F#~b2I6sjlAuco&)?tC4 z0BhZ|qnM^~{rK6lDLuP_X9#w3Jlh|NZL9?D{*F?|EX3CSsg&M)sE}^mLl_7-q_+m{`H!Vz@9z#j7}eY^FKR$<6Hl`-TSU)m!OEt*FsuEeR+zx zs|&Kz%V-+8lL^u63|817lUHRCtRm^qazC>@jYH&ff+ap0>6D>kipM1w`mBb>y21_U z5{Upcr9z_u*lR+7G$goz6-fvM6PB#OJdNd*vH0C6mLZ~0PbIyEETyDeWC6KgUaU+4 zp~pN)c!j43Qe++g6?TZJu~sdOx%*0DQUH$tq@}oWOQ1pQjUoA%nixx?Xl)cA&e+qU z&$xWVmhlGK8>*-KH;QJ+D8!B}DMS2dB(+8#+b|LKTfxS-b~P|eI?T9?W5iH98&jdN zAyH-P>4Q{ZuAb*;MzULx-HOZ;#o5k$-;K#nly6=i{KeI^Rsx>unwy>mpJ9H}~a&x)s|rv%6*aKoK<07Msv3_w8~L!!O5nyAdh#3y9*Q z;OI-QnC{DQoI<06b=&wcgps;v9fONl0kNzh45-26E6lJ79yd|5p$aS)!5O0nJ4T5c zL`zGIB8-b`?4mB8n`nNhvC%@fA-r2xbf35a8eJXM<2H5xFqMS{D2B)}4z#WbiFi6Nd20ITL8^h~<{FE<__Dw*uE$zD!>`aL3w*(qXpY_le%ZxF z%kw8z($l9mvCqNm9>&e$j+r#OYZd{+SSn)c$MF-lh37Z=U)h*Ws~0!Y=F7_%6kSRq zFrprXv5%qY`Tu-b@cG@uYUZ=wbM`hMs?%dhj@{%)-`2*=l$<*%@JreAL(egMd}z$ zA&-64CMMJHo*Pqp{+iU9SV5pMN-WyQ!aZ-BoLkJiXlLbMqgq|r8{+kFXT5#y4 zJC3C0i>Ffg6HleV^-Y9<2oiGwv=-2K;y8m^Puinv(S-IyDRs6jq|U)zDIr`**B?%u zJ#z>^5PqOZGBQ1r_U${2ShA3gQU5CK(O7tAmE$CrR#R(;wOa21xM&9Yuo3oj+MHWR zJ1J}aCx0l-+;mI2kxhxe_RxFNE!SQX098j&Ld)roc!Up_&0Yl7Ap*2uP+F(mr_frJ z&IeS|9_XZ<&^u@05mdCWTcR$av9FUiNb9Ue3L3TTx9i3OX>!+my71KTG{~k&`O?Mo z*oQxtEJ6s=PpZ zH~ww2{PGV|mDT-O*TC4w(1-84_l}wEJ9dW6j{@VpcJ>q+7Ui^wkfn^KMODoWwKf=I z1@~&r@*f3@4+D2PLgL53$yVo}*keYCTQ$#$*k!4%@ebk~zXQ@p3o{dGd~9U$!qO@n z63TM@>l+?{zJTK!9=dPujHtOS3FXDo5J&1f^Mx1z#1bC`9>As^Oom}t+^Lv`pqRsL zn!=4?n7AT{Siy&q=MgZ}UAqR^y-w-rbDi`8C7(kAyNN9g!FiN)J1~@Z72cq(=Sa#< zcDb#>on-N&SRp_kN<<{#7S1F@LmjMG0fERE=psu?A?{e4R-#3zu{+@F%XQkA(t~fk zFWq*_jfX$^se7LOosazXuYU0hpZjaiJo60l;QrMgf!AaN1`faFN5AjD(YO7|!6SDJ z?BZTaAh}w#z=|&Al%@P{U)C>1eCkP;o23i2E*Ww=pVZ~Rd<14Y#>iU zgG`$plc<)CPsrR*1(#kIusN8;z{wdzfrplAg?nlF6;J&#z*@tm#|!XPMpg( z+!At(^~$ZxJR2iTTgv%HVc?v3e;yrSG*=16x%Tx8?fpy2huH{5AJEB&X=6$pd_4b9x0w&S(l>(PY1)A^F{y!0-WtXp_LT+8pB?7hPfV zp*o2003@V<13m|@MH)#&Ljlby_z#ZD6~QwcBSC=bE_590pzIcFbDOjEa%v$&qK=r- zOfrQ89bnwuPUpFHExFsYuKMMT6PQzf@(B2hB;~j zo--XNHfz*DT`Y|^Lz80$4cF`UPNH64NvE)(Fg~(_V=LdAw(q+kA>{bJQ%^noeH)iv z`kRf)O5d$4@9^9Fa<=~m!1Mdqx=-oWtJ3`6`23?z7 zOxo1JJ4rgvz5mb?1AIDYl9n%?PcL!|V|v%VwClb1L8p(UCG10Nz<`gjuB%Z+&+L)i zi7N}0DacNC7mihUcAUj=6a_dWl}3Rr$#= zv2enITjB-vuWxh&y5!?Gn!TUz+jIm<5G_ABGc%QLxaqcZ=$2bj4Joc?`FqeWlb~z0 zB81Kqh+~$s^wSV0s-LU2DN!SG7MB6rL6q--S=)bjAZ_j~q-E61mBw^nZu zrqxS=#J|#PE3_<;qjg)J)V4dk#;a=3d}@)Gn-~!E3~d3UcWmRt&SDi{(8zCAtCs0k zc;Y!wgdhJOdv5})*-;&6=KuD6t9?;bNmP}VLQ9oYS^)_V2n0wBAa9s3IJ{!oGtEqQ zkGmt>J@(ARIEd)(i0K|;9G)4sXTpu!3yaJm>=sC@0)#L~Li<*wQtkED|NZOx=lf3H z`@bp-4Hg&!{qnv0-+Oa8c`|S2$&)8fp5zjTIG26?1l$D%&e-qSV&AX42V-eWLgLQ5 zhJpQ4fT$3}0lSBOr_sQ{RyB>cVc0vIoq5QDO-SvAzf8%&tI zSJB?6yE;T?R;Zz1#|e;o_3IqP*g%`b!CiIr5!6j5Se+fGUI(Zn1)VJjf{epS>QsZp z>sUpl>fnE}+I!Fou#j-X3T*j#$s?RWrC&+hc+cs02%?j3<-{0BQ5R*h0AL_^7~Oix zFbjaiEkhA_0at(V0$;y_dGeT@4}719!gB^s-Q(>yaXX(vipVEtR)80~v)}}PB8d2Y zH&dBse9r<0vkOZwRkYMexLecqgr}%F8F8btS&>Qq}>X zWm+Sg6Q_Lfj?4J^kgvEEVTL=l`I>X&Dc;FF{~M(XUz~E%s9oMN9uYYr=Fps{uuPHT zh_9h>(GcPu4Z%8POhsTZ)Kg7k7yzxIWspx<;Er~eM>8*D^mBzpi8;5A@gWCUeds5B zA7iY?!beUp>-IfueZ&bY4&FtcA-uEw=>_BNWX1NQeV_T$YnpOZJHdw zKxZG@Ua?1@fCKu_hk#>%1(kNwlhY6qL&Rnm+zx`VVrb1ULJp09s$nKBF%Rk=OgndC z&~bZjI>J`ClNb|~wn)#c3CLh9flfnDrZGlb2Y=+g5MfpSH=;?0u;Ta;CM?)cK*-S# ztr{HAKr;LZ(h&tD_Csm6+8lkvaU$Y2T6;%>uqALk4ezmzW5731uI=lF(li>VhfXe~ zVYVkuT)Z!B*?xX{>Vp00>961OZ;wCzrGHhMJ#>4kwfGq@5z#gG<5&Zo%H1@=J34HC z>bv9i)cf*V*uIHCu8m-UG3_)nbhm-^(5ACsn{nH|L7Ry=FL!zzLJb!CXa*kt>iFxa zBE4IfV889Aw6gEKwEW03NCQr%3R(kFg*Jx1D`<-#*-M>GY<-!6@zy{oLcN5c(9UU; zgxEe261_1_O@Sv^ga;TKW9t@2#t&fZyV=C9#WZ_G>?cYRu&-6=L8xed#cxGJmyAKD zo_{(mU>D-}@I*Q?eQ$Gd^=F<>U%Th4>BN~6XrCaQWouXu z^}Klai8S{Z8mbaRor!CdzjcPiky;uUqt2VPf7Y5i{60d-`8&Ij!NFVj8vm_xh$*fX z0-pI74s&`6TTw!51EZn{UTf5qTkqWNlkII#cFP#`0SeSf)C6?GEl4F*HuFFLnku&a zZt){wTLA~}YWZlWbYc{3urW?k>F?iGZ8p~g9N+nqeb_1T+EZvHSQWvO0|)d8FeM7NI9$2u4toU~5YV9^z<2dS$Hq zLe1#kNM|$S?a2$OqA`~V2FF!OS3nk>{OMOPK6ZEMQrYo|7VlC=46qa6UgDS=b)^%T zh?Ef_BM?Oac-l%Y#H7V4dUd&$cJ11c-u-L8lCC{?)$bp?`r!Y3*PS1`^}es(_wA0p zBBM38Rs-L@26kO>)6|v=Z~wn`AGrA~ThH5^HV!YR?PCZxrZJw$e%Zz4dOE_ffwM5~ zY9z6PmVsTthWpR6aHGx&D7*|p08alH?t}S7JAuhQU5S+q+AQj#Jq&7<(Q*18DvM|) z)nL3E!0WIgG32O^w4-_k70F{KQ)TWnTswm-oPiSoCjg$v(q?c}*kOOmJux%l11*@D zS;k3(4=bz+wU{KR8mo$U48DMu$^Ea#8(!;B3ji)paMT z(widC$$L0Gcr4zE(Bh^i;h7xfh&g@!&ADZmIeo#{n4Bmv;VklrXSqJg6zmP*rm+rX zjuetf{4!&RpA*-3F%;1lHwSjMBQWgZci7rzJ3;a$KhgG#_r zLq;tE%-!#EPRR-+yk(fg4nN|7=8WmR&NMmNAp z>`I-MNI#u~K8&@8(fD%WlZB%SYMJSnN;4a=RV22n((kddmj=H{)d^M4RXbiuEc}H#K{yhO!^>|sh4?Of`?&O4%#TF$D?6^oPlaWgN1Sr zE4+Y?02Vq3ZQ3w{(50H1r=V}pCWRcB_hE~ighd|6J}EuS_3ea4K}QAp?&6ByQ2HS6 zqcHjuM_O*;_^S<^qIJ>M@w9oek&dBZdV&@7iLo2ghHd-OliRPDI{ffG_sl*2wJ%re z$KHzI`cP!H_VZ&^1APAHJB(qKD=$gCH{P7ujDdZfWyU4=0u~GxXkRP#A;$P#I}uGt z?L##<`H0ZW*Re-c#UciCt4(Z%rQ7%!0)CL z*ru4BXWI!EN0wH=CG~PVEZHujp>(o(CQd49LN9tbg1JH;?y%^Asx%S^Itb-R{lG`S z>3|gWX&C?2!D=#Y&%s}RjXv=QXP!xOgx@;7HLaI#A%;C){-H@9vsh9M$r4_1YLe@m zmIXyrw(a82U9Bit4K)u<>loF&RNAU*W8 zr_!0Z7hw9)9%p;b3c|}aG^K+eqJxG@XT*Af=RyF{te?8Ay>R4CQ24Hn&vc7;jI+gd zbYwV$4K;;SY|Yi6v0IG8o)omG0ikR`L=@h7NuuK-mk_o%}-Q-9LV&@$jDo^ zY}xkjUv}Ng`rq=FJJQQB(%xzN zXiyBG?yCK|I$J(^24)Z<3^LItr|R*vf}zrK;BAwa`#=FpAEgJ;q3Et$F!Vh1Hx^Rg z>{0v?GGK|kNk2hE5e$aR{tD?eT;|CKc{&8M&&tmT48vHZ#)P3pSvc3;y`l;?fZY#G zaI(=m=#~@&GuYXvaq4u9)g29|xgtBvgvFKI28`Y;C%-Hq2&%)V^}sZYVOK+KmMJC# zQ|m_3AgiAe3e{(WB1jZ04>u=Q_UI)zr3F-E`w)1nXEL%4Lt@h~VD@>*P+qr|x_Eh$ zUKK!m4Nrfh9;6|!oI@FcU+HBunG|ovF7e?Wae{@*&t>X>1uhDH68!2N_*YoGx! zfYR|bwmG`8oX%tQwy$q29YgbKfk~G}i$hpSzpXP_@Vht;Yv{XTI)t~LnG(*!IyL z*r8cglDRK1dE0=oVr4hhgA=S3G8>$k#x}1*!Cr3NaE_Nf)NV^*%XJoRqJASYUgqe$F_8GpwZ z6P+Zt5$LrLIJkAo@zB-53M(7-5&M{nAwdyga69ne3KrCyuyMB8mZA|+8<<_z<76E% zoVe3*xRB=2m(tt5d+DJ6E4^!Q!@3!a zabBHX``Xv0*T3#fX)7vl9^0oOFzo^aD?}%hM)4Az*<&C_VP3ReE^&5nFBz(mDUawy z=awki!RgA;&w0=zZt)8R2qF-KAcArfqnXB=#DQ@03QZ3XlBsGjvB~fu4lpm;2a$+m zqQbZVEq8CMM5#i!aU|MWHXdRR;;py7E?sfO<+t2**TEBae)J>%;>h8{@4Ns0`!h8+ z-!->Z1Gxq&7hU(R>n^zX<~w&?cwlBTb~ZLov`{q={fLCRw&h^KzD(O_b4isV+b}z&`Pi!>(umcRBjBiy+teC7|CMpA58e7ix0#x zss{yZz_6y;3(KdmsljBUjUc45bqjnAM=P?gy~Cb$^UjlI`w+1Cw;$UlV)d22qK4A| z6Pe25N%q*IwuwECI%=&R)7EaW(iFlC_6o~Pfk6*KjA14hqdgo5*=7}E1%`@rZd*~E z-2J0{tU$OWrGfdfS_9z*f(;E2_OTK>$`&(uEst_r#3JCWEc^(2rO`pL|{Oi&~zhIybLXE zVsy8s2vdSbS)$C5eUU+=Hy@ayAapq!e`B&uf+#0pr9i@H<|H!}7W%1Eopl(3>3H@h zVv$bR5yPJ-K%g2>L;yd-xyLPoTYbSZ^5z~{S?I1?eKxE>C5J|)hIcnR(+l{NvE`qe^e{re^@6|ac zTl7DUVRR)`L5Dm;1-j=%py^mlp5j)4CiFnN)X=CRlxQ&FI)lo6lgZyALeF{jv(8L5 z5p-ZHfPH&m=PSl>PEP?qFEqoW<7-U%mJxO=aEx@{$`HH>TVKfqg%31SSk$FtW4u_} zLAKm@9OX9VdM9d?bZh~YdoJmc+W?%TNQZ~Wvx5d*6SaQp#p#CSYJq>g`kAcs9 zd6CAi!C$US>Po6D-vk}UxU_*htt4+tiJt^NE+*8p0YJ(Zp3A>g<;41Eql$F*JK#;5_t z!cp2(gEm>EowpcY+q8+`ujNw_3`lz&)uL-Mv9>)$!=<0mG3bZdcHmB0HAPm`)ZkJe zp-`g|8XE{U(B_08#&!mRjR_h%!i^3*d#H%gE**1g2og{Cu*ku2###eGS`xyRG{H8N zQ)q2&ss2(yic`=w)_2g&VwE=*Ut!LqO0D=@cR7V}(L3&C_gE(#^J*<0fYLIiumgsMVe}T8-a+934He+zLyo- zS%KlR&P_++5SWth`pF42TZi_Y#OUjqd+{}3vtDyQfi=+I-+wtB=7S?6qkWfOejxqa z&;D%sb~Co_txvJ zFC04b?6VoUwcr2RYhc5^TQ?tg^{;f}XX80h@#`AmCece>qHk2X*H*jCp+yLt-BJMhDA-soPEz z?zy6gKn3ZB_G#?ns&uOoDRbY?7L#6>s9u<+3IaeGs2;9<7@G7faR5YqHxZ$sQi(#xN49-JBXH4V-2Z?is9%Rhhu3 z{V}4}2KGya5@)?X`Z>&yFZOLae>-aC)URc;71H~*K@-&E@#Io zP%Drlb`eGbfIhJn1RYmvAEDS>ME*oEwR~`34@|ea%2upNVLA@t3=U<+i=j=3uT{+^f)@ z8Y<^~?EM}@GeRcb6HP*8p4es=WiSnsAJfXW$CeVtY1Osex}l)Xt#AEkt+_#Mg$aU& z6GauaK7^xcS@t=>B5zkL-Os)ZJ*q=fJxxiWLI@6`EF?64CxnjYl*LI!4SG0V8BR;k z4NsmBL6k_esYt%?4dAhe28NR@6~jESP4t%4vOtAn839Q{`VFih()U99TF_G&k7yN? z&#(}1kT6fm2rKA`ebze8H6AG>!-QuctEf|~5O7qnGh}^@BII5-HH@GGfp@>O5W(!m zt!ZlO#b~c>2lU`uoAvrHcbc`kS5}(Ggudo}q-)@Up6g%w&fYuTn0hy@OEU-owjkKB z{Vg(f*4-{aLuoS}uh8D<4SB_$F}vfo5VS8U3$(cfCb0@EXnz%ql(Xs>{uQ>HR8Av& zIDwJyBQ%FYM^bw3`P6xq>nKOiqO}p@o7+Rt$_&j7v__(_J3c#!rq9^-N=>5`I<0(l z8*LBv*T!O^LK7K-ifN)#LoLABwjG!Kkter}Ho5xHUR*$c~aJBX2?5hR_g{K8CBFfwLmvcq{YgA*f} zCTMgxJLe!1nSRvV9LO_sLlAL%muT8o9k_M+Nv~EN9yutyf*~jZVE6CKz z>I+t)tl+}cXVuf;w*t>$R+>PqV0efqK3u{JW|Q=?oq-w*i4s&9xjGVO_bpz0(S>Qx z?!BW|AH3%7Kl}4P|MJ~;-}RO!o_ON0d9S(u3Tt5Z?!gPryX{|Ivj4TewQJYjv~Cm| z8&fOkg3V)T8Z`=;+~-eMISGKRC+?MsQOdzMx2YP!0rzGyM5C#}iUrJqE1ALk+YMsi zwpG*LP;0I+*tgfOOAS;>=VX{kI>Lltg^7Wu7}(B!jJ@?9Gk479v^B1vpB6F3Y#>;@~h_6@@AFEIiu zpkaFo0?s~G7d$SqA59C7YaDRTI#&hN))v5O9Q(T1z=$a8roBvxJVijGsdZMW=9gGy z1?dLQp2Xl$j3Yz9ZJ*&R`^TO=^3dmQd*F+o9J%h*w|(J?>#w3*FlI0}p{+n(QC7># zW6%ju4sY(!*Qqy(6suGLCcOGGE^! zT@j*xez#Qx`T@gWaj{t$A!wkUyc<98Fwpk^kkjWf<~)raLEeo7{#}p4FKiMJmO+6V z&t-kAW=c{4=>Q>+crE?(Dx6-q#)>$FzojZSl{-0Uc?X}f6(?+7mt zq}_{EW~_}HIh~W<+%rf!Nlq7S!dSj?IVLu^mY9?+jZCD*5Y}x_t>8l!PqNIUO>&(f2gKc=dJP&c&QJ+W8BG8O%JxYF_*sutVbrl&iA87(VcEBVKyTTADM^rK| zJi{!?ZGbI=Ae?}SV3w_ds_$cb5t0aer&H82ba$B__untG96yGkQnm4h;fo-J-ESps zeg`LLRxZ_)c`E$ou(H^0EpuAb3fogS790blySI*|%~P#(gd=Mw5iCuQy*zE)zBfJd z;6+=X{^mUooO%AiPt@m+yaQls+i9)RA4S(oBi^=)Ev7Tr-e7@%?I~&)+HzK4rpM82 zoTeQt&~{HS2G4WV5eOjd4}nHn=6Fzr6mxS3H!zHeW<~|=PxfYn21iK9=ocOAe6fn6 z1i%5D**=Y0`x$hwj)uKhh}6DTs2F*iAkzP=y+@^)1{XXC{h|e4EB)Xg0bsoEVKUvj zWov3;P_rWpCjk5ht$;weP-vs>Fqu~%(;%+}15Yocr6Z@((B9o?273|hmBIA&xs#lj zR87zJPo*n{r_yc&CS%}wG5zvs3~-zPRLDTNOMijVy^E!CP`i&PtNC&5hDzFvwg~J8 z{>G;G6i*@f2{dR&v8VIeS6-bizieN+`{$t$W4Rvrw9)A+7;CR0=;$B-8E3m(2wp9h!3C~ycT#1Y6A;2) z?)~tGgVuWxdH6p36l_~=OX*_l7+asPf4H63HTQkg0L^91{RGv(5blrG&CJ|!-L==J zTVD5ijEKG=ZQ8gYq>jt1B*aPxBQyOnB#P2A2kMwC&=+$@brm?T0QbWjWCn^_BCgNT zi6MMJ42sH=;p)Ce1bb~a(1gK5N-u>GuuR~^t8{~>c-2c)HUC_->1VPC35Q8=(uP4o zR*A!?D2a#>*#sTQpd!=QI}2Q4m54dvlreKP*;Frk`ODIty?YMs-+%d`JOA>|fAjD| z-}vXxJmUdYYwo|28tB=2;2m$+e%Y)3^!&Y74Q^*U%GR-VI)B4(+K7=j*k6wOTTEw` z5Ns%vfFZ~$bdLF~G$Pb!GWanH#wwsE01VPr-NIqpRbJq#gfbC-9Kh=Aon2r*dOw3= z4Q9ooSl2O7Z$w)oERHkEYh2Wojy9{Ro`iyYAT!&*l3+JU6E-doaIBm;oqFcbx*)&U zIs#{{AVL9$f=gEgvhdP=?20N=+!(aU!xDm5)+}-2Vm=5qR9Qzr;E5*+CY(?xAnC(G z{0f561~xFN2sWy0Z9)9O1O&BmS39VWqnsMBfN-P6L`CCSuH+6gDH!O;5Ixy^;qlM? z{9XU?-~1WHuvRYZv|q=K7u7u}XVe?-k`6C_Vq1tWbmpK%JV%&)TW{zI2QQ!o+s8H@ zj)6gXwn zfSnULVbUgtsT9)a>t*h?l$<_epud8y09#;Z%+mRkh0147Vtl&|3te&8KhoKwb}Mg#){5hHHE%5Y0~Q3&CizPyU$-pZ=YUH~wfaJm3X zNL|lW9CM;Fa`!D_mdV0bpgtJlMgx$QYACgv9hwO!5F9+E~~x(g^9? zQXgB{1~^rqAETdcTR{^I+A41%JsLz^1G7Id55&YGlOlvIMTyz<610-&&My#rq_h>o z=bpecPTFJObew&GbKtXrW?aRs1*~{ms%Rq8UPzSRTiVnDN9nHHWYnS?L(5e|q(cg_ z&BKc2N8F;7L1*<+5TacXCo^GS@ieC}kbcTC;lKO5Nw(%-q;SnJdJsn@0H?Yq-c z-}vI|UU=fOCzeh<`P;4P>E8p?-+4uvG;8kfrv{KJU>0j)bbDpXHrgQLB8GZR{uFj>Cn} zLxZ9+4AN=@Y8cC-K`YE44^Q7fSfbWN_tMX{N864I-XbWL1D^vc?N>UiCP`QxMe{&D zU=ZQvrX3fgqlcdZPy00mP)ZjKnzYfbNkV%@WdW6>h15jDWa070Qt#w;Ysm`Xu^y7mglW9MFd^c@<-%=&rw}5>bwWgqBYPKlc4^m4ubgeAh z;EvogUCP#!S8bx$yyu=2r3w1uAmQST{b&*TGsYnZcl^|C*xS35Z7Uy3pSbhG?|kIp zZ@g}CVeaNeqw!FDl<)pyNdq5gqnaC`sYYFBBSYRsf2%?I(1RV5*lvT6V-#9oS+bLY z1Qnq!SyYM&mENiaMtbU1?TvYe!7#K#L8uobH!}A~?luArHCjpQ*I0AkM-8kAIKGd{ z`%y~DmXw2Iqhp`CXy2uyufOHB=`C-0Te{#SJ7aRA<^m#J=pXE~L{0|HE(s&eEd;=W z4ET_>OdAOvWRf%(s}yQ?Nbh9M%TDY&&+(rbHXy~jH~j@IA&?#f!$7`zoz1k#?1v+u zBy`3p)#>yz8~B<~TN6JgkP~dS9b%8av^?M!1SNChM2hkWQ)neqml;HfyQjm*#4R8N z-nemN`lVlbSGw}*tN!uFKKjx3-1YIhe)< zTRG{7ZvkKiN{yWMjk1a}HJ$nzi`dtIS%Kkk;Lno)2UoE%Rc0gt7nmK@A>BW!F;9gy z4!%OSKlNkF0@M&nFj=5X!g9Z;D;C<=s9}V#ilDL9#t&hKM>i@=S>W`5MJ6^?v^Lsk zhxDMHJH+v}gD`rvtXz%;X_$sTNpFu96}sF4LA44#8Na1Y-iC}&v0 z*0XStmS@vO3h%rSrJ!utH z5WZ1g*<&@9p46FnWI7nH;E12~OkIZHi12RGoWvA4UI7@=A1+>fB7t7vZ(;+y#VUfRuCJ*BdN_K1fBD!;tq5w8YD!7(u=fE9J z6b09@ib~oLPg{85@ZGZg9P1UjOPzY`cO5$$HH1K8YN{X!cCP8Ck>CkcNaO9%2e)G=s%=wq3=O4P~cTPU_ z<=*t|nP+|Igk{6t!L;ZUk<-;>U8{A_#SWLjQ2gCWoh(+tPb z)_WGyBb4C`3oobHr*#d6Os}26@)!7gWnqQQsctC+oEM!&v~oYAKhs|?nW&^&xA&wA zkmpdX*-@Na6dx>_bpU^Y=K|Vc3-rhHFW8md{hr@QS6+Tu`siPNc=Ml@#5?5M8)^zQ)2Vn*{)j*p75J8y;2Y8QE&E1#o$i&JX>Pn0&v;$~r zv>>FhT?OK)kuUu;*6E;a$2Bdtc((BR`L2sN1$6togM0BBk%Ae-Gv-o+1wKRx!cY*E zh)Ea77>PPeCFYf%%haUgyyZ`Eqk390oV;Sh$?@vk%tiSMv@tv3dH}Btm z$&GK{wq;9NKeCdxVL@&e21LhbTc=^DUpU2f6b8)LQ|<~MOsV!aRE?Brpu5lxIr0_j zSEIH?`ieY=1E1|)fq|M4ruR6pI4%|eM;l>@IvD+&Tkk0*Zao=<$sXhCL$H9tciw-> zDym1M*{b1u0(S)Bo%dxZOz|8rt9HG-}{;A}6wb6o(}x-8VSpN&u?FzSENnIYpCaRLQ?a_V?1Qm#TQK?MqBn$nXbWvU!rz8QgMJT1TU!Ea)o zI_tn3n5Pg&`ogj^YU8z$(bQ(r(PqV&O=vN$A|DO>m^O6Nn@p0|3$HMSwazgNi8huv z3L0T%mAxTNh?GZ5+rDg{HTI|1>ugvzF&d@6wwRj3l z__lxJxnmxjIf8#6B()qIh^p! zOLxIZL++cI1Wt`jr|FYb#)L{*H-2^6!M2rWzj?**v)}yG$4@=~^@oSp9GmT z_YYMAb`rZ>y>Ukc!?YR$ZDI`cSaTs35nJ`ybRlhIGXgD4f~Oingk3BSOjM@R79?)x z!2^7Se)lA8eU8>e>!1$_)JBT1(Sdl3fjF38^%rb=xM*97-*D0}+i4LLf($!>jaOz_ zhQvVolX1M$11iMnu~EX0tROv*He7^IV#lRh(}%u!UwVPl))a1FEQBQB<=`X$^J2WO zD0F%L1v(P6faBd;RqTZDe0uH#f{i}3Utf|op`Get&vA~n{o?XzG*j#8+VSah^@h=~ zJM(q2I7Sv~kXah!j?ss);|?yBboESc+6jN~Fil!NK$N75V^t zmGhHW5TY*JR=k2Xs#+XfgYJaOi#gay`&Pe2@gh^gpclyVIVnGw@ny!xnj4N^9lRnK^a@Eq^v%*M44f4bY_4+>dDu^b8CS-@b9(hCjRd z>T7%6aQm(4Rj+(q+PGm|OgiS-_t}SWo2(+Gw2_WyPb}z!-Oyg?pg+RE>`I4f@gBz* zs_w4dGFdX*&f85|JO@JsF#ECU@e*IQ;HEhk3oWo~GeA0uH){pd$O@&A4K%U^u=qmMocNnUe5-ZgMX@8z%A z{>$61c>Vj&+p|B-U}t0FAjczeuHeSWVZMJeJ#l;?o#Z^hu&&R5s`S3ez_g6!h3eI? z{^J#z8Lfqs#r z5UWe9G=P+KRY7Z`kL@-UR;p&7efa1LkKFU72R{9Q`$b*+|F)}O-h@KIj0J-Rjfx}k zETEi0aSvJ(QULv|=o}U_iC1|!P>T3|hcdT1xHdUyp$c=d$fclTjP#H@aD_?YSz7R| z$O%^$un5f)c09x147*tvE8=#;@>`@S;Rc?O6M+CLHQ~x|wG;}f1Y;#_Bp%<8xlaLI zj{+%t07hqhHaWT1-xAY(uGWYC@YWWuBzqe28vL{~FbKPCjwa6_ZRW1pob@)**V`rJ~gu}5SSqB6w5ua*bW3z&RX zx94kUt+hiS;Aty$gcu53-8$!rML&Yms2+?MN*Yx4Z$rbRr`0+%juWf~G|<_^(BU-n zW}4Gm(BhE4kS?g17B-8RF(9i(fS>@Ga4yI;0+w99!D10-d=grYfcZ4EqJMrUJ;l+R z3*@1og`P;EfD3NXhO7%K2?VV&vVsnRKNHFZd*l>!j6#%S@g)ioUl@E4(qPm*;!=)L zwNTKGRm)_7am9&be_t!jV4q_hwEU8tV{DORMg3SUO%AbbW#;v1yHY&9pk>}y$oS*>;KWYebN0^(4 zW5y6nc!@t~nc5rjHy$S~kL30>!=8NRnb_`k(Zv^~&6_u;L(d>20tVD3?jC)OaZzlT zRX;D}HTU9c;Ow#N#Y0(3`9rM%q>XzfC#F7k;EF4MUQn!Nv( zv`!XC@3E{L@tz)^ucU`C`us50qi48Ia-Hg=r?`&rz5r3v4PkEpnhq)@yNiE8!Gfmn zT&{)(69yrd36oI}?+u)uvKf`xVOC!x4B?9OK1(QcrI&XJVD`ufpgl!eCLFxPqz+)A zwuc1zr7wMHy7H^w9{G9+f%}^K@u`8z#W(!YwO79Jwy#}u?OX2H zb^gw@oe_QSbUW=?kNpUi500K*N{3D^(>@u@XlFF*SfQ(<0kz0-pnb~rILgY(Is_Z* zVTx^g_Jt5a&@L4sDBMtEgVT9n+_|I9*~HKN;-0NOF%GlC(XflGo-VKtvjMZARuT)8 zX%2Pl6ZDUHwyD6UFrYHX%d7ZIcrfmA)Zig=uFw#1LmGgg8pnX$ge#*6|2#ECK^?6- z1TJ+a983&C*a9OS!i_wuq5s+!VKCS$KM~p}PB7?GOfuTN!>oV~r5eUR8wd&5Y(jTM zV*|Xb6Pbtw42sn~whrTfJsnnVdtn0RpIkZmjZeJm-VglCcOHG_!RP>E7ft)pnbPZ+s{g9xxR#u^T|(!o(J_*ugd1d$!DC^Epo#XQHj_NJzA5BT&@1hf4hB7i9=Rf_aXlwl4HgsH9Gy9! zRu%L|L{_)TWjhudQMz%`->-V zjf~EunJpKk@%4MD_nFJF8S-20=JJtdW9e@K7(Z+7hgJg~dGS6z&cV+0m!)*YOZc2H zz@Dms4UHDttWM9L#L#UuZ5p1yxa}}%185gk6!I+J^Tn-9N4hivxlSR2MDo4 zkw1J#1)%`zo0OYU(x;|5Hg);4%oUk_3I>{;xw9Tj|Yj zyoD2$hSJI7$3pu}jWO*Y4Z|OP?a^n`Ge@5PZM1)xMXk9PTLUzOHTPpv17l+w#s>%g z!=61Cz5lk`ZeRavzy9v@#y7n&O-|2Xz={DB!l2rCULll7KtUmJ_P(+MdJjfRKQ2|t z=9$>NfPh0%;n8K&*tnSHc+0^UTyuQuC>W?R9q(#=cy!d08W1{>(t`*#j=@kYU_+n^ zrCWr-m}Szo408dUNGCXo_AtT@Cog7n%9a_90**IH}0&NESe{xr-8+D=OEZ8I{oYHd`tm*FWOFuM+z9{0Kd!NxT0j>WfVUU{PCin|Oq z>eMjBHPXeZBrB8pyU%=_<-;+KSLugI(0;|4ficdMS0jQIPxzu``in;Kmbll{;9!tv zE)f^wBLjYB>aE>DI&B@P;Oma|W=y#bCK(L6V|oEACCu7=fh znYj+amBC6i^*3Hf3(tM&|9IrVKYZn5pZV}tK=te%_?;TY=zB zI7rGEWGiS*1|v-?`|#PoA~chcpc!X}Wefrcb2sb`u!>xTVAP$2!N55Y>E#}f3mE3B z3ml@R3J;#6NJcQzvr8vE@h@;JsZ6FZkxYO%!{Z*m#Sea<12_R14jepk%pAwJGBhft z$ouR##?0{ZWHQ2_&G9E*c!Xc^P~sAvMOcY{hV|{^2aJqX{{1!{W+B41H79=d4f~Na zH4E4bGm>9`r~yM9GoInekKW}~J_X*9fhEI{M^PQVgN3yfRixTC1-i3bw zTCJZR>z(%{3=%F*Pp8`Y4QOtRqY}=M>Cgn`SbTuuqVhw#(~p3kC`K4CblqS3iS69_ z4nc<*!EYd07-FI$?a_!{i^+gRbUaq`Lc2rKvVcvv_OCqENnuG7A%{mtE9B_G&ny)b zD<$ZI4)h_daB^?ok4YNibEu34ZjRCL76@QHs=7^_6)w;uE1t>HI&dYp&XKTH)Jtpd zISuHcniEhO@(2zo+Cm51v^_M#Q7aQ{BXO&pT7A-T+p&!l@Hp}Sx7bnuEs1ZS(8DN9 z1>OD{)f?|QzP}nxx6DD$LqMaTPa5I&MCdkr8{Gq~6IOA2R}gTlaP;f(lSdI2U{H1pn_IMdMohM(v^h0JSb@f2?GM?)afJC8kv+6tefJu#k9AJmrup{z-(_6LFzc(oB0POH$oFa6C!X(KfG71ths zI4!0V2sji7OJ|0$%G`tpyZ@ml(ldvS|5MPCjIFsBSp&4nHTR=f1H%IYKfT;&{291) zI2mOZjQ{U!-@NVZ*P*F#>#c80uX^=OX<~xaU?yoE!PY~k2&21n5(%XpKK}p!8UU@x z-7k;QK}RDB5mmLHVg=V&LogNE-U#D@WrVoA!I%_QSKC^toe|bQD2`1j*H- zusuMxbij5*UkCNyH_hP9k>3vf+`AP2X|{=iv*d^4e-1Lu?ytM$Dkn8tgJXG z>qWo3KL|SUGAdC%%NS|nCqDc?BlbcGY5OzXd~HgF%jL(^yU~plaPipT)pj6XwMB4Tvz2 z9|Jr|^GO9o&H64Q%-xj`g)MOCkw-824Dk$F;OayG);{oo$!0)xGU>&C;AuZ1%a}L} z!2pc1VyQ7v?QMAMVvVETD!uGg>7l>~Hae);YN@=6%Jw2#QEKRXJ1KEhqus6{_GocB z%3P|SeEhx_p85104}STRhYGB}*Bc^Pakp$TWFW7HSKO?b!uc2-GzUirhqR5%|?F!nudboZH8{kmHz4pDv83i=brLvp_7(x30)*LB;9 zgT6FnWO_6h|G|^mGs_M(aAwm$8FIT`chrV0}k1rUzKanzzjm;V-90b0jTx^Rx*bu>-QVDJ+-D9431 zhjrvBniYgPHLhg@v@6&HX~Kup&|0gbw&Aus1=d+>O#0fJwsMNr2;pk%J@VYCbdqg2 zwp7;BqwamqnjE45-GaUkGBFusFHArDNgMvD>edx#b3fz30H;!U^tQ1PuTW*Et|QEK z@>RzWfydr!G`*j4u3+VH(d{hIrX>XI9#cNXz_aJPk+gYzn`31gEJmSWJ99Ujh zYcYL3J_Rvpg7qo*j2sch4JUGhY#GGTfU7JaF z5AE7^Rl$Z8Hb`kLbS(R$KRDZ35T1CoPZCZ)2_vNP1*$(VhAEJ6D~j7>2H*>Z5bV<= zqffc@N&O4V=oD@1va|t>ga7!#L+KDFqg2?A(cg>hur1ru z^2Vv?#}(ky`m+!s#zS$Tt@9^&c>((y+9s)wZ%ccIr_;uPQTUZC_&mboz^&|4@F`Q& z%LLaL!kiI!ZLxBq>q366Y0xe`f@sc;%M+^(zneU)~8MDr}H*k=#4n2)vY#21HRF$6xN?P zb0+u|d4^alQ7B~~2ue$&;UVxPUDP-JYKPR&eyNjw%ccz&KSvvuNzn@LmP`I@cz85D zb7~#~t&1!dv(B{UzONcs6L5TA)%W+77?FPO2L^{2ona;>rzX>tS6-c7_uAK|H{Jf` zv}MaiCN8K^!WaZo&IldHNfNhoxtmK2f-K@K!SLM2nOHhhP|1AaDpgVPqfx3OBgBS_GPjlOxkfR+xJsI>=Je z3C?u;(jy(7J83^c4v$=ukO*5s>r?(Qf5<#|xE-dCjKlD$bf5U*YmuW|5`7XzT7NBL zya;jCm1Pef0;~i5%DM=E1nTE%lZ09+u2SFE-u!Be7hU$ckA3Xm$q#+xga6~vBZvR> z{rBHbsn^_(NDcH{_Ud1K%S#Tt`H#2kJv14VLM&DvE=U5OJ zcr+qd)g0n1bD5MS1d!FbgBeG`(r4;zm>?z~E8rBW`m|>!4Y^Hcp&sKte)Kc)vjsbe zaKS`g$3@saA`D^(Y>1A=nn?txK5mnD8_BYo8%%2KBXl{mJ|HOobPJ08Jqs~y_-s4D zfM~nIgageIx4FS#F^IEo9D&TjA`=v55RJORjVi}EF2Q^)V-trJpvA+dPagf7+rIXh z|L}RTFzdgovpR!kvwSjP(Vw}8q%@%UqAS32ixp>QbY+gDl?Fu2vV-GcaGAOr7azCm z)ri-Ep{nuCrXXAse76xMSA#Gt@`#ygu0jxOrZYvRWq#&CV9<{uD2RtB>%@b!e#^ip zBN=$9P8(#4IHtEq(ovnPqfePG@?bhWGN6brJ_d+enP)unYM#1?-c4(4VMb6+5}D+@ zOly8!T9~6nzLB->0XNreNv&<4M(V}^Mr0ANbAIt2u>^9ii~It_*^rDwswl`R{Op&* z3h)K6B2RHKptudcrM<{XgMr<7Nb>8V1&Zu_K-2Oy>`n; zxb-jdoe^8DZ(~Q>^Bb5+frz(wEbrC{ZPdwyMr(WQ3D_{{7`8bTmFfDl_lrrH)m86yO`3a29t z6P+gNa%T{3*Oz)zl`&!xA%gVY2}lRpt+vGkN8awc05}LtzVQsFUYtgl0)8PNvgV27 z*2B@skuxwu|VdGYDpO)&LsRm3r-|o~tkHANa+0r0I*UNjIbQ@UwlR z=^A20P9;1VeDf(#H=ZqWw(Ko{v0w>qtQO7-uVFUE9A==>xTB$>X_0Y!DPH-$x zPdiQm0c;OjXT~vlIpUU=f*v*KZ*BU>Mzj)saqC4GM(s=Y^&U!tGxV#i?ezI49!QU_ zz`!dMVH{P%MEV-YkOAIc0$mV3b#kV&oW8dB9ObRD9c5$MJ20L$Lnrz|&_M|)>uGqH zIr@`YUzU3sAiFAPQUOVN<04cz`c3gfo)o5_Nv6tmA}u9mM#zVtcc2*BPtKW|e3y+I zHl}yJ>s<&ru1R-&;uGmFKYC|+_~C~+;&u+f!}>HmscBf?^KHWZMqztHI~vy0{K6cz zhZb1$8iZbhw>XLe*!gGn_FosxT=3GltwkOuYlNY0~{(c(Hzjz=w~W zz+mda{}~C_e!j07SQBu3U)A^blbAhWFINq8m{pFwdoNC}dCkq~EpL5Wy68frzz_}h zgxQ(;Axut+TxnH0Y!{0ex%VJ~LH>N}I(mE$QrkBm{Nu)>TLt|lt@?sJccAo<8hoo4XXJiiw}PIUsU>sZ~Mv@KYI_6 zBliq+?e~XW13M1Bb>B<&zwyo;7hiw=3d{KU^~QzHliWNh88)dy3`np_M_E!uX&%k+*&#EUj)&nu*Q720@( zk<1B94IzUP`zjqmgLm+}2>zH1oH~^%oPN?n|7|j;xw=Y<=)WWnn7%lM+Xb`6lK7Dx zZb;3IURDSP)S_S&NLm5gA1i`xOQ|7DsiTeJ3Tr< z3}XDW58;Nzn4gCU1KDMm>jr9>ZPZPjNOV~G>}92@vwSQq9)I-LAGrIQe~{9r^9cUp zKDb+TLtv_K1JXt*WESwGKA=wAxgZ8Uo#UtVwh52q_HdBp=lM_)$gB1R?m1bGqV&hx8)DT!mbc6yryDJdlR>z|*K_J88t+^6b znMDC0ZhtFdBGKNZ4RY`e!W-DxXkb{c$+6KbCdr!FVedw9Brz?8_;G<;>}ihyn&-0I zXNBV%|8XfaA#=6F+npgg$I41`VEbU zK_4v$%g^Z*PDI=vU!6mef#5`Y1H-JQOtAfK5@E^+v=8|~EX+t@j9>S-R)hu1OiU** z);wC+6d7P&eG5T1N*rl7((xg9qi;TaDjhyqXRPo$A_!$a%QP$5Q#-e$;f)w>1vl+1 zc=WcsOn)zvAB5Zrni{i1sXlu$gu?^0VaJ9BmFPsX&E$>Zg*IQE$+7fzoMXeYA$7{f zMDR4HLsS_zmdDx%UJ!C%A8m4UB5j&!r>BoDq%n^99Un!bcjMOd*jIP`vu7W^_q|KA z&;C@qI{Oi-t@v_&t2OtcYhaqgcNRIlX6y8D?;W?NftMag7t;q`kESD{^7Q4}Nw#Ot z(H$M+;TQOj9cR|dOKJA0Z>GmKZ%xBHFF^BwwnrOilGe8C))YHtY)hmcJ2tz;A*e+R z8er_;fD3J^-07m*g{SX!NZP9XV}y1$1rIaIoL~UH!jn5RFdo~=i0X-fEqD@V+d~`^ zJ&u;fh}z%eWp)Y~U?EZqf#D$d|IE5Q>Gc!m#TMIB97lir)Y0@Ls;_N$myUA;t{B4< z>>v=)=bCdED{rRR;dN=>z+~Fhhj5NX!+v;_4&$%=;W-SOKG;M9 zjD?l!dMDD$1}D-OLK@+OmWJiD|5$L#&5xuJjwbvZ4=qR3hjmF`?9kUtW{j{wLaNYe zrPE!q@8Y!Yk_*#;D-WbQ@BB#m)V-fc=kMB1-(!M9oq76+nj6xj&?@6@{hXei=ab~^ zc53VP@Ez5@5eae$+@vp|&CA`x9{e`WIb5XLwtg~g-?)xSM#~3b7|CM(rhr&p@d#Ui zmKSSk@2|PUvUGf?il^kh!F#wYMXW? z`c^nQd0g>U2nzK04zB2n>^~<0(fWw%q^=2Xphnjq6Fd6jDxn~f&?FS@TU{aW;gcyn zqpBx#jUB6L>p1(zNOO!8>f_ktK>I8Ytq>fih$>;VgW%%NATCine0n84^6X05!m&{6 z#!Uc03be^j+<*tUh;qj9j?9AGmkZ6x4ussxZFxuo2_a4_|WmD{tGdne8Y82sTFR={&6KPY+_i3)RXe&a_a6bX|c4#kckQ)g8DL zY{cNN6?;w*q5Z?>(igI}2Q8MB2nRatSg^&4Z5$0u_IJj{Q-vkLJ~-wI?UCqcQ_wCD zfGu!@;sOGK**R1Xk}5-cN>XuznJM($F3DOFHk?PayK#Y$ncU;DBRGx(i6V7sF4 zy90Ribs~Bsohw6wsJQl{NwLBzP?J?n2jV(|V;%Ysr@4?+ZLB_4CgJtDNDKTGnF*Mm zdI#Ysl8-)&o({1$l%5qw7tW&HQge?iWofeN+CdGxgW7E`>ZXRwRckJt7urP{E!3oPX!7qI;x@F{4JP{uL!T1o@B>07s5h9xJ z#s+-QFJT%*xZb@QFd$7Bu^M%wM#m(K%sBPsv9iIu5i95DZ<(ri>Sjm~PE?HIJ!o0} zi7@Lw3kb+vFoy9T-#K!SRu<_@0TAPbAwmKI2YyT%j=&5Dzrxddt`0pSMG-mQ@>JWP zq6W%@yz8Tj)iIv^3s^ynGhCzOSjLoI=eKin%5QnHpC_l`6F5?7kRC`7T#c=>+7N<`Nz}&OjzX%u z9Yy?r6%7g?md`fi^{vllqF-FO{5f6MvkZ)TZo^JYOlN#(4m8!NjW#%%^@Y@0diuoI zKXd<+=`;V&?)`82?OUd|U-9StgBymI3HLb1Rs#V?XNYYboC4)ZP-rJO`C3xL0(#p6 zK_10+(Fojyd*5piU{AMF5b73}ekN%00ZuRbpwS&@VFwzhu%gcDuM*uVe9|H`x~ldA z%*iCH+oRO2`}3XnfN}_d=jWHuRO4t?@|)nCY=s>I+9Xm4#3$IfWr9ghUz&V&J{{s@ zlNLhJiLL9?=q@yAS(!hD&|K{~>6Zpehx^q8gBDXiHE0WaXQ02>HadBXEi#Kim%EEJ z&}?bDV?&E=E68{llX!>LYahweR`)E}11=@3Q60T-OmBkQG z3sftr4qK9oPY*n3F=}*^e+MOQ7Zp5>lD*Go0 z6g^QOp~4h37c@*76Mph_L>mIXA(*5kmQ)_DpGYT2e*wl<&%?&o*1nN60gqAz|7TdR zd9Z#Gjqv$&vN4pluiu?6>1QFROUKNwEOgE{)6=Mez$2i zJ{*bHe!j07kS4FWAB`I5L1W{mwr$z`*;l^urph~h;TO^`{qnD+{rfLvaAeh(k*|k= zPQy9DAVK(K-6TZuCzZk3!SRSV@faR@@mI#lQM&P@$xE#E7{?>dG(Ol*XU(t*fTXeW zYNKP8_@6z(QBSB))?qrfvr_)59WVk2C66yw(n&6v2e_?Zw!)?W12}?CI=_>w{M=+R zCXGCA6Sff$aAfk3aVK@q^thWdL@tiBgn&yc#=~|%5eG05=InBvl#I978x({v?nNvM zSJp>aN4dZe-}L?&DZ}8GOoY>6Fz|c0WoGZ53(~=>uH3$1oCtS zk1<#=s5!`MW5aXI)o_?ZiD70mVO&>xG%yFWF9&9Y8xB-+%ROnfmm?O}Z%TFcPA*}5 zc7Z+D^GMtmv6j666Wd{xaKNJz*+Y4}J<5@@EHjl1fQ8z8ku-*Rw{F`a%Qv(Zbt8{*`YQH^_Yv3G>Q7gbjzjh>d`YM}i@ z8ym5=8|Go4P`_5dQ|IJ?CS~av98W`IlL$D_+CX?S$JU)Ns){lpFfLEXx;lzswIlees#v+<;#EJ-A|A1p!AI{3>-1iJG#t5+_ zUXCh#H(B9Vz=-#F&M*tG`kd=XY(190WnjioUtGMzQv|z}KrN!!!bQ7nxgy3mAcGx~ zZ&ESLoa1u2#nbEDzzkmcu9FVuczUcxEz4KNGb(U$qDUF3y9q2+nNLm|;gRfY|8CNA z9%8FWnV=g|rZemOe9rwGzi$oC!1T={at3O8g@0;@xl*eAp5?Kz)Yz~gHD_ix`gJg? zx}$}u+GA{`pv=*4BsnCD%V#gc^egVx5C8GvCXxUEKmbWZK~y<@mj?Nr@|6ROBo0Mn z8Ts&n$>-ZvRL#V`z|luPpPoAY&EE}GFj5?S?4Bn^mRH_a>2Eg&hDKjm!QfzMFEC-3 z-Z_qrGLfGg)7}x2Li(a7jadF+CWIkyVCza4fQG=i4KO1s!r)L$E+m%5X+zK&Y!7KI zV zv90@3@6h@g1WxZ+sW0toHI_aJrm^nCea(IEHBjjt9Q;6~y>bmJajEC$ek!#OUYm9? zX5ZE`hK-9#`f%eI8p_A`wlKtgUkvN|0qtj%#f4NkgKUCO`TJD)E-@eS6Eh;0~C@E$w+$I?~P=cO&<2uLL@KrAn5bQnUXKY04d00P5Z9B44kiDwEh z?1yd2(xFc|es<`?9eASHwnD?S@2FX>jSp>ojF2y!(@S2`3HyPU!=5S zS!T6(H3zT{4f&ZtzFmD58lZt;7N_gz%i9$s_}Fe0tFfAAU@9zJi~@YqK$yY#Y4Uw`Xs((P}4OIZ8uQTmIdz|JFK z2xcE-9r%3apN{S@sbB8&-MhrE+n@78csZaGP|(KM0-}#bMK$@s4Iv6SayOM>I`2Vb z=%k0y($Mb49JJikzA27-n&fQj!}IK?^O#HMH}p_S9cfG#Jc-OL<&mg_RF*tW0Ou5Q zsFzTfel$m*8{n4lE$LCL@D`%DAaDdrgd?tZ@(MitiKK-`22)f+#2_M``WJD_Jo3Hp zjHuuoo~!BH3KZ7=sT@Ct6Xq%_OY31WfAL+vkPaR^_}&kF_|AWH*T+9`$9?yG=1y`E z%{BLft%1t!>wn=jJNCcfFShPEI68ycMcCQkgp_SlFr+lD=Vxo_@R??2KItL!BA5*& z?Fay3Fmd9FRcp4PDBPIf9+v#wCdC)a+rEg4RT&M74zR+|K|7?*3VXQC#ACOi|AhNSL%8WJ?mqE(hhK@5QgT5*=~&IfFGoADK}e#gjMT z_!Mz@j`pN~_K6|{BO7q}F|F~5o1N)#{&*2CG~s_cm-ERX!3Y+Sy7g&lUQBM>Pz@HT zh=2#kXUJte2ST~d%Pjc-W%&YzaLRn**|#z>VHrf%D{JbMDT=7%pKB@OCq8EvG0H2* z5|)p}dzpKbiSVdT!o!sX^`#5&T-f>twtl#1T&uW8zTE<3kh!o0{@tj>Lva&_NNbXS z84tM*Oe!vP+=$M*cPA8K;21n=Oib!%Y_u^V8iEZPwA({NU}t>iPxcL-y$4OR(R0O^ z>76k9*g5D&}!Nj6jWjh+04^3cA(xKH< z6=#imT3&4zX)k06jkPmq;>}>hU5$D!PtPTii?Z`+ri`}$wq zaqNjN-cddM)NeMIPrV<&YYQ+`!uRBchp%Pmd|QR~)^qI@sq%{JS(NBa+t4i9z&49V z+l%R&Y)z>%5mvBaKd}GuIqAZ*MJK$ps}8IFmBmGdJ3cm=pnh9zylMBv{vDUiIgl!R z?3~?D9!sKTBT+~~Y};=i{^RHXjKgHN*z&N5kY$OsUt1A{gD|rS&uD!a0kaS2_GjC0jC!==l`uT|u05Bg8`%!^rBg@J*XE9-Czg(< z!_>oR7Fg zM!?5Y&U&yZ(yb$)h)s}4X)^(3m`_%j6x%VnJS~r|n}!HI2xDN+I0WGo z>qSeU-DS>!3#Mjr(UOK&e4?muB zOg*!o(tk(VJ|=npKYMQi?dfq9cGlbXz4uM(R%^4C*3w#9lCdmXmgU`8h75}_0cL<0 zf)g^#$zc+b5OM;^Fq6X}nL`eE$PiA(fH%pzv4jmqwk0pJWbM|{-RkvqzkPrI`TcHH z{oiZb5Ms-=Z1?xx_y20Sb*sMms&3u7b?X*=v0@6`k&ft0qViF&%ppTitrT>ULH+Z` z8|m?*SWcc`d`4wctqta3P39^LAR1$b-qwAuc+Zv> zz4($5RxLMlFQ)B-OX=KEm}4xDPcX0_nc$=nPV|{)|8`gkrvZgvgU0C79>ii`sQ+Rg zF1Dq(J;m9jW0QlLgV-_y_4uikG~Pa(S~hPE;f8iD?2~O8$)gR(pn5T6(HK!9o^NG; zCTG6SYPAD~7Hixqr^nMW9CjJW9}8=E`=fosDG}suuQXccL+pPzlx6 z&IA_vJvvbXs|{Ay)p%KE59~6lF{>B^TRin-I{D04DA%^p`2OA!fH62z~AueKBLFzKa zJ-@=K2Gq+CM5`aQbJ(^_AAybB%%o-;`0$r2a`9uXgYg~f_s#hm?N=tk8L5|#n#M92 z5Q%{Lns5`8tCYWH5OupguAm7V%?tpj`Gr#;vp1s%pxP`Q{)iHoD?@|RRh6Wrz=9qIWHPS3X#+2(Va$5(P(?|V*sp1lE#)5;uj3MLK?VaDTr15=9 z9p|?NBJ!^(Nf1}@H{U-etEH+?c?_z)_4%#CQnP4+Sz=06vj{gKv^}+9mSBPx1~~2& z+PB31c~3`C%gbXJLNH`H?gsuCW5Z9$AVziEjd*Ds?LF$Orm+n64?<6@~I5aI2yQHDpGpT9`!ZXqxb#siFDr|-*(weKYi86dDp$adt}ch?Q@($ zLeMdR1}Q??Ef_Q$L6hS&!iZyRXPJghxtP$4@z62U?7Fbgar)F;tg5a;yDYXeHHZRv zn|rrg@+foI96)I6#BU0^xiqUS5LS`djxyBKj_N#i0HB>#rKhKLBW#(6CVCw96hfB1 zsZI=eqRP)vTHV;w7$RLi+InW!i9lN;iBFwM>7k_ur4lhG%4U6r1DHet5&cfG>(_(4nOPzuwA3*l|DT2JJZZ zfWz}PJQJ08PgiL{h==SP7~=W1t(@i+wuR{Qv9NN+7qJoKmJtJ&*o_BWolx7xyJ=V5 zNYUmdr{kVMOLZQ6E41ZRReangrKSOURa+U;Fk{Oi2ii#3-snRB(ar6&UA&Yw+P3YF z|9s()Z!&B9hPJ#e8s3;L9^RB*yKq5zeBwlUaN>A+a^Ylp4ke*Ow8>}4d$N;l9%w$b zV92ynVU9!xtq6rYooF+;4Q(Ewq=HCvHUhuf%-VsuxN9_>i`GjUw9Hb~u}q(C$5F$J z7+6p9vYghBohTMp%gb2L79qSP%-R(+wvb>5*hxzZb#A{@TVsh1yoA8ferQ6!QOu8I zvpGUn+bx)1bD0PfJ z68*_;lsigvDV+rQh+iBzh>jd#{M01X@3V#lCzVs1(9Uk25yFq1*W11=X0;bwT$oU} zfnWlSPZOl48Q@Q-(J_fs77Y&VELi}FW=L~kP9!v4viy_n3KuG3O?=0Eg;&?Py}HJ^?x4W*WIwx=HUPdVTXyVA(^ zts~g;m`4!d=>c)98*Tdtf(?ZqQ>Y``PZ-0%4YRHK`1I-2%JGD@!BE+R*>EMJ3t?i* zB0`Q+c7h?!gJ#l#_P~m&-eu@UH8wg)JMYnsHbE<@osES_PBcO7$yGq`#GZ6;%KXas zx(cGk25Wxc^XNi$vSV*!1!ii7I*QdDmB0_idSm+7GFw+`UWIcDuN$!;VU|*q6Pi?&cL?!Vxb)lf*ee&mBMe z*XPs3AqHW~Gho2G2vax?b2d%=4?yrnfEWZh%_t^wU~J}JX;u`c;PU;P1m=87L4BB! z3Bp}yyf_U|dgJU-q9+06@^zXotTX%>O?FEq!&M?91Co@m0^g+X_ye;=03@m?@}^De z5BPOyfeZK&)MOw{U-K<_l+U}IP;;W;+X%y_*^fAgkfR@? zf@<(-uPA6K#Apc|^Gt3|Pt2xq#`UiL_OyA|P&#LG8|wV1lT%M_*Yyi%-{=Ip6Eq;b zgw}?JK_?-p%yFU(I2QOpT_s+H9yhuNIL%>_AjTxy1vTXwweVJ2=7|()(f#o#;Ly0b z0*(&GFpu?iMc7Lcp`C@K( zn%s^HEs_v;mHt=x0Ra_!Vn3a>$ON1T^90)+X5k5zu@^(*Wa}%Vl)?@2Qt0S}n_h#h zJnV0Dc473NQ+w3l&;|#1P zhaF?l<;nSpbRWWw&o7@!Pf(tTC9HLzsoIK0M;IMNh{2{8O5%1<_$~Y%Qh-_$+iRB6 zIV={vbaY$V;&JsXmRgMtiPp$E>K%P67c`f*lse#Zt<~TBjD-!**>kMt`Ys|@c)Pkd z74*w(L~5%nDc~p?913t9Xqx%S#rM@6Bs&$_bMuiF;Svl*da9{lzV#aC{g5fPCKiFfPR(1iX(%_ zoJ5x^@f9$zp_HENm_fupCh)-BBpvN|+UohumO1+$YR_$LV>raC*|4?s!AGYX4Pl zdGC9!dCOgQ-u3rC`N@y|AqXt;+3W9A12?x{ddnq0bI!h3{qB}smt#<^J#Fk$W1}@~ z?Wcdh;UB@=iH6r)9gE2!+~hJGt*ZjdFsL%NZ3rg1U_$#5j0|8AzX$s*@`o#~u9Ocf zgDxL3kA02>>}I%kdUfMas0fw@R2EB#jjQxBk5OA!(bS~K+R6nI}E;9>hsFECw zhbOpQscBdm&|I4j8a2Gc?_a5G42~z zn9*QwswbMPEX~G|gKaS8+T>BdreMSNy$Ib{hH+WJFjyN*Ob55P(6~lpBO4;s_Q)!A zq=8cQ;jqxeuGslgY4XTpj~#sY?$^tjcltcvJPd+s7nq2Mj=nBj7!W8Ror7Urq+VwsXfv$xjL`b} zh=u2gb{FJ1BZ+K9OUsB5Nkq+cExR-6jOC1X&TnAi=4JUq*eyoffiK!wL2H;!-_;-d z{EN_^46pxhxte7yF#4lT!58$_4A#ZztU>0YJLkz4EfIcOYiA7-=hwSPxF(2M!=@|a z^c_l@FnzpZGZvUqdfqqSqTuo7&D?VO>J6+pRcQo)AqPis;}!ImcQIv-w!LPbeyh0I z3@Ml3-WgW7j3DY$?|Ovz;u8T9P!$n@{>j@fV$67vQ=yiz`?K8DMc*b7E5h;vkhRE1 z8W!d7851F3a63_sxEgO+BaFHxM(gbI|&Otvz*zC$`yc=rYq;03)c0h<-iFM_4mGMBj?_$Iv zT5wYcOa|BjGoYY@Q&c>vwTD%TKK#5;*lSW-^%UC;+t{u+!Wc0GIcApv)dh{`n@M@M z3~FE$xG8Klp^=IlC4|hCjybtf*tCk!yS*DBRqHVX7i!-@i)pVB2R=_+@KWGqUE3ra z!xk8C7MK`oH>87G6?xri5yoVTcb#J_I(QsGKlYRqZfr%+asKxHv~9z3div;0dZv3Q zZ5g{Iow#6MdgjZYKJe^=A31p9&=-DtVe+|uN|wCk+3Ra+U~cZeBK5ky<6dUU#;ghl3@Eth zcusop#GONE%Y^&yliR;wqiVV zN6%2Ywy`69W&U*f+}z1@KlSt!62H@J*dt@WT#A!qtO~THs2k2`3vH7&c(1Jxz1Q~d zO4syl#h5xg9(_ikLKKcHbN+ba(#K`l!&&?#$W-+T6qGmKrGPcxlhpgIDM(DERm zHultRbt_zKJ0VQrj0ZAkQ=|d$ZIeF}Nxh;R)DvNbtIgIND@dQeA~XXH6}K#V`lMRL zy=ZSddE`X8_koAg$?=JIfNp)!EB3R`Z=eRw3OK%jO8W+qU`w#)+OE#-|F-vn3(tAk zOK(YUeB+zaB@#`Dko!LEJa!zpN{v{C7J|K&PGD>IH@cD?MaQ}>a7G^^O23nTSd#!0 z)G*naxWcX9h_z?#j2T2o`)i(T1dXLLG9MyLvMHaVP}O<7j)UD#9O9A zWL!Zs?ffy#XKyLvzyN~UHUuRZLQq`sZwLj92!1TEH%OF@8lg9!ba;U~oF%F6oiB+_ zLD3AWartQpOqTD0KtE1>^{Pxuz(oY_$h*e7Q7&zXEV3VQ21abh&RywkZ+lz1`s)3^ z|L%8P@*DTubI$c5fH5| zol5g3A7423mCxSs=@0*>_Y(-FZ`&1HRC0&S{Y>KK`vike4cPbW(V6Du{%PG7aza6) zmWYQI02JW>v^Xp0O{hkG2=~EHJnQS}mlp68!no#D^Ds^rzLm6W2IkPyR%ZB?qtxLL zb=jkE$!{50GKNU=)d(Z6wS0m(qQI8H;wnht>%_Z&s#(~|M8zu+9`vzfAef~OZ+U|X zpQAFO999YxiFD_BF(ZY+mcw@tP1H+3m|uomt1Hq4TGHi=YtE6SKaqvcz!@l;aitW^ z_b8|WHsT^fLU{%rosl|x;mT#jS&zmG}%3SOTv| zeUB)g!GFi=_=9&(-~Hg-KYhi`Z~gVQOJDr%zMXsbrR6~;P6(&nZU?QD0Bk^$zs7nR zK^rU1t{zX#F2=F0{hUO#VN*9M-v}#MSXh!lftQN1Q28;*pnqy}NI`*HRy^H6+PnxY z^rVP63@S~s?PQRN;V9cXS~*&LL_r5(8`u`Jfo*EzEZwg#eqc%=9pxogIN`)&#HZAV zLu+*y;rZ}bOWKG%vcsoZ(y`O4#36!*Im&hytPH-nw4MQJ6+?}yoT8BXd;UhQpvyb8 zGp4mM5tI*9_@N-nkBY*7(0pXtkRw*_Lx7VfTnd7;b>OxoZGcSA&8Ab+i)q_v52vhj zr%QGXr;Wo4>8Ybr=|t~v+P3LcY5Sgw(&P7kYtF!3=PEJvKgJCz?W-Eh@TS8heM632@P#=u-e{u!@S$%(cC4vh99oZ;*=cqW7$w3uGEuA+@XbX?M>W{L2G-@Z?1 zgcktIrqe)$9fHVHEy$?f%jT3n5)p1U8=T-4g z1PsKoHH7{sU*z$w+BMUjh=xWLjC#au+%RjMxaA#1P=y&4U-f5xz)&yql;-f=NWX|c zst+Ue14BayvDq@s7M=(0eK*BF|(Ip#&w4!8jOm+)gm;^9nek%;pW# z&p%ihta-LL12kTu&LHhd@(?Q@V?z?^j4!XsW~NFM=I=9zkxy=~ct(Zb5gPV- z{ML6Asw51jKaql;GoBF((e{0skl7LMxGvoqKzV<*E(F7>po2P@#t>L5(wqY~T$3)o z_~I@5uf5@OcfRk=_ka4{kN^0=g9pdI3jO!Jcl+hH@7VF8TmNL&MK@lzY2#QLK_ztS zz%tgmv9OP^wJ8|4r;c;t2aVub&5cN1sOPy3HDgev6`kF z!XsHt7)~RYD=svl8*uo7eXB5ZD-j)S#AOp zpFXELwT8=J8Y~Bz9i1@8GQTpk{<*>tWdKiufwvuoWs&0-r(v#VSrKs+!ogVFvARTm zGEc0ZqN#E)oqX#4Upw{K`~J;?4?YOz_HDn`x)(0#MxHb&bnyRLY z9L=nG)v^g`ikhYtI%6QN0{9&)Ljg5?4#{Cro{Ch+;-=~6t0Kgwv)(0^fc3SI%T)6c zCh#$M7*^G#!yTnJZT98zmm}C)QWB~08v^l!rsivprLQ_qCr5Z=H08T7i!FEBZwGCpe;DLTC&!v!K0U|ob zSTL&qgfMAy7ev1kAx94y9)r;DIku^AKpb0E*p7?f*zUf}SR%Pc`2+mW0Jc7MA?WBs z_;DN?PA4Z3oCi*`CV|2Wj6k(>YSbdgq|J^wLGKVkE1*Dr8aM^F*+kRvN&Pdjl`zIB z(z&Ik69c5NwT1*P{Iqjx%jq-=0JGSK&|vCj2GZeyp0w}0u5@f1ZH}X}oD8!&ZP@%{ zX~XVII9B$f?>zG4{a;y{cS1s9e`-S1;W4%9cy_uu!)YTS87UIlq7QWI8fC z89YQDQ2n+D<5jt0CyWF^;Ctu(=F|RWr#6lrM5A?kY3^$@ zV7nqPK}QIr2}J)Qr-bxuq}0d%3V+m~zHh1O@UMV{FU%fx#{5s{T#s zFh)F|XD@n?19fytD{Usm7PbJbMtsGWDj` ztUQ;O<%>JY0#RX^jv$*0St(~KHd6?+tS$BNJs@$7kB@> zf38jh(*p64m9T3x`!T&SI%@7O5x2%{nQ?}P*Vv;Rha|}>wLktwbhL-ZpQr0bww=^k5ObIFuT;ACJ?HHkcSl`SBgUD0wd*C9mQ`e?2kQl`19{S{KQA!^6;lW zcJe#h@T{rQ=j=zkQ|&voTrz_8{S0Ynaq%Fg={KFEAv1(ICTIpYWxO)otci&C-#%Qh z1gglqi86vByMoRDX;*^}Jx6<4V!!Y#jM@lVHiLYS9`fnnqe|n_1GE71%mpy0(wLxa0kp1gCMj1iUbRvT3w+s8ojDJ1Qdr#qZeDoS zid*sLund>WYs`8fN2Dk&l|E=!1ruM>BlQWopx}Ju(#+pO^3DRbMTh5oMhN z6{t#XcnT)+CoF>fvHW5w@0nu_h%534#3i4ckhp@4hi#|gh;Z>476qtyqA-!FmRr~g zV{DA8(1K<5VXus^`3b52G8zPqxnUqk;fCm_O#4S%goQgMNzxypZI?dF9frM4wk|Hx zM#EI#Y0f5c{Gy)3U64er5l=1#79<%_z?Se_u2{mzv@hDdE&Ch38XtPkZ-4aagIAAi zJ@1uo-**1B|F)xd8(YKL7$nIJS{fRmP=B>Dq}?Y@VN-*nyhqv6vT=jPo)^*PSm23( zI2aJhWBaCGx-lSsCg>mn?>6YaC$QvG4Y0X^7D#Lf@kEHF-n5aeG5tu$J9?nu&~1u= z%?oxOu={|Wj6wI=4Z;Z(Y+FIXflM94jVbMfr`f>vm(%b{$HuWCGKo=V#teyn3y3;A z35Rh^LA-TrEqk>B;5{Y~{BOV@_vX>Av}^MK0*~JG)UlcLEY!b$|BKVsbM~euzVxZxPk-qX51u^u z;GZmGP*rg-NU{Lk3%4UN%$J_>69Z1FffkI(`eSaTSgvxoSBT%mV`qlIl` zt=hC0Ka^Ha9K*mS<1zxvUCfS!meeUQSw^d5X?6l$5=~dME9O~5 zo529+Eb3bIq?0aG&H0qExFHV~xFdVZCLagJQn0AMC~Ge8ihQDk0X{XpJNc?@)=j0X zB1qZ5obZ~{q|R- zH@@M`Y4^E1AOH{~2AWW{WN?n|SD2T~Nc>GD$sJy*Awg*}l=L6FQ1r7il9rH&FAx#r z;I1QI#(1v_Y9chBxNEe@Aj;6HGzz79 z-uCl9mww>IH~ri9UAzBR|NNsLd(CG)^H-lB#Tv4T;CuhscHzr@{_pL%^7cR6x%Wk_ zBQTO%*b1_HtdkQ`v~{tRj-H<8IAK=UFd*87Z3(CH8pxbuV4r8DMBzr91_BE_Ok3(> zGqeWa^4`rn=KIaHwC`$YXo}L1W4xgqX|%12(MuaDGSCVa7LgpxV%uYmMs2%Z2q7ef z=lF)xwE3{T;RoXbi(A_>F2=YDYfF+DZljIFBm|M4_&?Bxc=LErMJ zm0`mZ&Lf*$J?Nl(3Pe?XbUT>m)7u7H-D8f{2HM;(`Kt(DmZC1)>e7HAv!2}ht1zgg zF@yQ4C!Rj`&l(mH{y?(`H(jN|5h^SQTydRd6>N!dEB_T!fX>5ntb1$bhf-3(y*@@oPTIpVQ=I#;)aOk^TBW@NX(#Fn^OA zW>Cgv3HS@3f-&4e=+`5J*SfTkAjj8tKC_M@0eO~kh@ha)F{NDLsTpQ`ksCpg(k#iK zmLLQlxv&*Y^O?Uc>FD>~8nj!$0N=_WrfY{0ZXo1<#Kd+KVMCY}`H+W2kT%#6!cC62 z&B`0H6@Du*gb?}#rCvk0CLDg#$JC=FAhsmTc(WD-K?UOr|?_B!VJQVgBWw3 zL_l&Jt&oi)oJvAo$Rtt+%jO|Oz%3s$HKUd$LJt;uuvv8dPUkrn#tqTCbFu85OyyLrCUsSpE8OK{%M#{I0us#bqNMaauYafvo#5ZBQP!o-=}dj-~V@_Bn>Sx1_NR zuT9%`U!IY8psW=YSS%d##h(0dg0SakOG>n255LubXhL{lSah4i_4)_V4F52{>Ej9@4Q4=Ug zfPGm!CWuQc`3hQ8Jw79<08-YVeTJ`12;fm8KWdZduXjm6T7*osBG$JxdL zl;t6Hsj!(7s4N$l_z&%pC>I`Su#YGVeV863f2U@On(Tgh z(=3tCU_aWuv>p1n!Qan)&02Y0FM8YA>-nkyrW*Tu`n&#W&w1x}yyT@fr`NsVP3h_@ zuSh)%a`Ou)W1$)r$G+0zOS_Nm79E5_(B8l1YBFCy+F68+eiaBvQ4$4#F?H?8h8MT} zuX=P>5JOAyHAji`;azF3umbB>N_^P{j)X1q+HJ zUfnr1KMDdp5n!B`#EYOa!U)E1iY9pRh<*(i5C1_%W7J}hk)vXuoMo2Wj)>Vxs@_hb~eZ^VG= zU}@XqYjZEtX5C9UPh(YU!%OB*jg4;i*7CQ+hxXJJwL+%Z*E-!fpXQjV`XSp;MfO`N z9HIHfXBK~M1Uht@hif{V*1{m@`Sh+{z+J;cz~8WU;F^A?eWjFAj9yLN*WVI zU$hJA7L}I{!=hhie=vc~xC#kCx%}#;Swm9LP)>t`_V7JCZDomXHckCcVTf*+Z#jf9 zHIKcNiQ~AKg3&xmxg$Gs$nP0t7N_A&c-#_HB56XU7?CjCQ8X(K_$VtdxnMprT$D2c zOI(0QN})-b-BJJi)Cs!neXXpzBb)e6=H`FSnw)YG0w$Ldi24pbi#ubf?~%dJNSlkC zBLdiO4!n7RBkHCJBS6kLYOonziea7+mf>{PIthFgth`H(6V~EZNIl-U9C>0-Ky6qV zoNNp;Ww|2noMVo%>_ElK$lyYUXfq!Bx{L~Y;s{c=RK!G_wiQOj>-+fR4lhKfDfBQ5 zf5<7qjb9*cX_Iaz(872*$%sg3A(Scr@|Lgy9A)#>q)jzVBqANp2&%Bcl^3Qi6eiow zorIK$NJe0m-^BI619zR`e&cm7{>c|@yj|Tw6H}w^tVOEu6hU3L)(o9Wp3Is>X zE_ZV*IR;;yXlggC7lB77+8Np+oj}MjGmEixwxi52^BiOx8bamXgEV-s4Huz3wh?xs zUGnU)xpb6c=uXXG)R2ZzX&;pt-@`_vfW!V0b{D8SHBX!qXKfDL4j{JAl7yjy$syw+ z<470#DHl6eC?8u9kaBcVP7RVO#HZ+J_^qaAPEa2RZ?qmx1F0F+kH)X^79}1?ITb8)jyvdfBN;y^QS*SHsttyb+xy2cYLHV${uPBdGU>6 z(SQclz^+y1&8ZLSReI6JLWG7uSC1d(s81~AvZ&Rd0W>&bn0=~ow}7XG@N7el@94MY zdq#IF{SS0-JJ@&uXD@BKn`-YME^jAe5ybHjm_<~5$d0t6pf8%d+VqG%Xd3>6Ce|hc z06usK^XO5)fmU&DPnN^@_{Wj2NP{zyMv$1IcrJV`>^6og<|&>b?xa*AH#>XljkuN8XmFS-#>ng7Rb`2ks~sPhL>2PAb~Uw^mzB zg564o_5>NVYdi(&b6h!alp=A&tnao6>vO1mD$d*ufM)+^R{2P@x~j|tJ#in z%gb(weN}Tzz}U*g;LoT?2hjdRbVNFcPagS_7*+RLkPyYU{*il6WP$wf8zR5;ulwxG!pBTX;Llo#$7P>XkvWHGvGN{!WVEHjjTu#E7Poe zGrwbCAh{hJ=A(!7SMP2~H(bnKRcQYbbpizGa$ebIb`T&5cXsM6evuQ%?R&(#6c`Cl zz#F)}PE8vz#0wBWJPTYisD>8+VJ%stjyT<3gqA_2ym7&qVRM;s86th;Lla;yQ(M4Q z6}5R}f^L1;OVia?U2)*UANt6lyYBkHZ+-4__x|sXKmNGpAHFBAEqia@xM%-M{%F@_ zFTHha3595O1lBUkHWz&lhoM!=z8w2KH>+?wN_&2DXkaC>~<6nnur@eoZH-iiW5zqNpt ziAl`z^fPJv;Qhb#>=!=$&z^ef?iZS+d_Paro9{2ZFd#GiIQ&pv)+PNX<^bX6$B)4k z2t?vt;dzF$pfJiS`Xrw4SJ2jHJx>~yM z)q)D%tn7+9m!iU#7tF6IhzQJ=AJOFZGa?r^qb_wrSkAp9ic~o;LMW(jEke^(oH$Ep z4vRoA>8oE zt&pQB=qOhAJ}>Af9o7QuVZO-kS!yfyaH1Q7!L)((#ttc8(BnaqmQvc zq4(%O7Xt7$>~$!xfY#Ud$2hh2D%uz~Z0?rdHzhi%#gkVS*^fWNSa2M>6$vAb-KeKx zACN7Q_G!j)#&35o^zh`w+R*x&_qcNMUg@Vi1-1wJzip(A(@lC&Ltji^eu85nq2;k{ zB{!|e+p#EW*>Av=`z{oK@xldO-_Mg)+@@G3Q$e2qj}>qTX_OnGMlW_5df_#?(70u) z4G)?Z*xa@-jqQ>r4^PF3Z`(KaryVRRY#ixJPal~|J=nM!=)Np%-Lfq`@$kOkXCMBH zdrmz4*?Xs^o_*8z(Xp~EZJRf}BVBUNIV+c(7Yhn%-K@yK#wrJ$m3~1`2*=u7frmF) zJ$XDercR-`fxvQTI2JcT^@pu131NbF3))4r3=&3b!S>#xM3AM9CcyW^;yn^cDKcgt2@u+kHkQ|wz#kD?&xG35>j7@~56MS9zGr;iV z`4M0x>xeJzOv~Wq(8O7upJdDNJlmk>=tFTbZ~2Mzvv2#wbj|+#F%j{oN(U1gw3D>VWR)Ii2f-PA z!){Q5*NS5NIzm815TXDmy;Qg9>|yyoVk1n~da%e$;5FC?V!)hba)-Ush!dhRN+BIC z$V6pl&E71u7{ZeHwqXb`!3zsa5ZPnu#LWq&>R65gPQ0KCu|ll^me$4(>}jM|Udd6P zq?M6#ReJ6HD?!MF$q8i;2vY$8T0%B22o^G1*F*y%a;1+&5glei2s>Dca`=y{k;?Q6_A@K9f!o@&Ah8rzA}Fzrwc ziI9}ro={`fqPI-$3=Ml0#&(t!EB7P2n$^n@gT1Wq`3*ehd=5CZYG&qGeFt_LZHRen zes~;m>P2>o?i!wTA8o{Z89cioE7uBo|}G>!(W>eRw$tW52V z*mF(?UcxH)>4W#(^UN3j^uTBT{2lK)eflYRqZizD;U(Ap%9YpMganB_=?H3;v1#EJ zoP3pMv%l5Q9A1Lg-ihGoZ$=llpQqA|+@Fo~YY7msk>1cqlw;O>L^O*Np(e}F#Ve+` zdIB(w2$1c6T?`Nd(EL86%x%7al|{LwxeB@6 z+R+K&?nLXM3wp2iLl+E&=~VPsrO!4xu^j;H93OI?v0;&?ns>H$5o4YrG zU%m&}fps$L`>$=q%mRO51PtvO-dA2pZBlVfa2n0z3@g>-KZtS6Z5#U17^_!pp7@0n zXL#$LG`jQB)HAe&J=X32XnApNWNB{V9x%Qj#}i-m`M6s9`hL0NwQu;x=@))3r5!LD zCy!!&gCpNNSWRJTN`tKn5VWXp1!Jvly*P0stxlXu4NhQlD@ub&GXp*i115#z;$6*a z>F!OfoSM-|Uy&D)m$hv;5tDBqHVq;*8H6_W@_pKAry*#tx%!P`n#^p1Z@xl*o?hmN zcRQ%sBdYm;4=Gr*i=aXH;Uvm77uqMdH8k2or#Yu*I9)lqE%kdez4`cOJE?!Ty~?9F zn!bp$NKq`|OdP&UIo2S>ZB!Goz!nG|x{6Okr5uJ8cYzV8!bWzc3r7i!EXv4WP`PT( zKC5t}jS0!hG{-ehA59BvCz_r_;D>RY=^1Qqz?*sEQZL_f2*D;t9;Jmjj=6>ZR1;V_ zm8~Gp?1K~2bH7o` zd-nPK)WBH*$2VS&?HCjNXS>h4;9akO-Rp<`!7uz$dey6LOMU(QF`0tOK-+BWHgKo0 zxV`KbcD(2erIQ#QejO#=XZXqw9=lI;P9y9+Ukk7XTp}w-CIS_Akc}vj;WJ7T5pZM@ zXL<9Td4`I?v@lY5V>Ol6aey4+ShRD{uw@Z|J#~cH_ql`7fC2EW8TS)&*>oOuJ6`gl zMtbQb7#4-*Gp5F%ZVojUvLJEJ-&a&P;Zulu^pXr!A1gC56T)ZWQl7#Ev?;i9;&AwW z`Q5~s-GX>UxX<{Dpz@Ppn|Nd_3XEyus?Ufqq!4uSh%%GJda#`G^zk%|o4IVPJjwK{ zX)rP}lnxxYw*8`uFZrJ~Zr=PuFiIbM?zv}K68NsZTCckO?XS7;<{!EL{Qa-KW%K5Z zXEx?)Ff8e{x8J*i-0mTf5*W5d$4V@RBE0wWPxP%?sOZZNDT1#1d6#`@eF znd@3pZA%Q?3yltrOzTRMi)}D(SlP!Y={&+WTSYI+Y`yF`?Svb3;w4_UcFctB3XUE` zz%c_??6wlyegoCP*3SOa+6%)1?%FSO=nlr7Hk>t;fQR3a3DHJ~3^&DP#cw%nPSb2x zSm3)m(Zi}f`Di=DZ!Qjv(P>+NEo?Swg+TkfEa5-QHD z64GzO+BhA~bJbnnX)LjK{Mf_C4nFX~mwxg+zxHpAAAXE=#TV{{fa4dhxbDV2mpT=2 z#6$ujW51_rq7&!t6~1_p=V((S2xLTmdpPz~|N9Qs$^EKlL0?XfZjIn0xGqB_E8>?|+A6`H$eF1^S(xy#mX>=qlGKr4UQIvYvj$>fO zNt!6L?ULIuHZtPrn40bL2$TJW)~;1UiDLd9lSKJ9hyHp z;ZaskpWtA!BHZYQIkD04-GlSv1fJAK7~{7_NImMdDy(V#)L4;u+r^#AOPHj{rMiZTUYw6PM>eAxEt70HXghF3ZsRI}h0UT1hq zScNk#`YGkIOcpQ0Wk=u<$cwzzWuN_qMdrXqWCjvXD?*Ev>BF36bUe*ZPjb}sG#X8_ zVS7V?ygb&#~(?b{LK9yI(lOKHM{{pXRqh82Aq?gz5d5)pryCB_v%fXwtVQC{nw4Y z;Z1K&x4!)5G%(PMkv~^a>4X{@;!^r?K;0`<#4UuR`Wnsvre7libt!>EZL{4uilp~yZn-iufP8K$N%(C|Lh(2 zfA-#A;3&@*^kmhl`0DGz8-MP?z1O_reLK$If4(ZSgYENa_h?JnyJdiV$_)e%^Xb_M z_Bk^HoQG4?c;_NqoKo^owT+1pbwY*rptUms(>07x4Z$~k0Qd&`qglOJZtZ4!0LC`4 zNx^wFXm6;+z!~+^thBI)qrv{ll@|6}!t^bwp`qXeCS(pc4b*vBidrABGR9zKJ8Eq~ z<#ZaRW)S8C<8`s7S^Bi!OwA-MWIIt=q1#5UgxBbMW*R?`$)Z9H09NVPU>Z)&rk^vDro z&!!`fedZ_s{GAW{mz3UVH+$hx9 zg9cJR?QW2U(}Ud@)n3i7=4pOk53jE;=MzOQ<%^}!eQW;tsA_Oq!O#&VDWAoJBMqaI_1Vs71(K?%Ha(}54 z;tZ4FOwiQMu%P(!7N?SdeZ|a76!ARFGyE3J%zbjnpvO~pcIIC^HX2`=D+C{B#OLsD z#qU?X^s%Gdw_bMD8?M@X!3}qIZMtyFYR?9Wn&~&E*o7^V5d8+NhPFblhY&7|aIW)E zPc|qzTeRSu6uJc@FG@%UWN{EjLWeysV_^YR_8FATn1ZhIUH!faMA|vQq!%^T0nY9m zU@OWX?BB+rwlvm*0n$md0~vpgv*mJnnn^5UU_WCRG6dWm=|$&_rA2cODzH%62 z+Sr|%VO+{5;8?G=Bc5hvS@>;n0f4_H%BuDN!ym$mjyTdbj7i(}7(+w*gYPy++11`z zWeizn;Ot>caeV1y>{OG(v?IWr)JZkA90 z4}Ksm-FtspJ^$j=dhW*50?* winrIByN(EBzepJeDW4YDILT`QZTX8S^oY1;MAQ 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 z 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

-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 Ud@6W}*vC3djjRk`UvQ2255KouZU6uP literal 0 HcmV?d00001 diff --git a/website/src/img/crowdfunding/cloud-download.png b/website/src/img/crowdfunding/cloud-download.png new file mode 100644 index 0000000000000000000000000000000000000000..a5ab510952907f47d8d9dfc5cc65f16bca813a23 GIT binary patch literal 1955 zcmV;U2VD4xP)@8%?w&4OK!P_sk>NrH68n=7jtuLP=05uu{?8#u7XB1=Z*suF=s^ z!zcm%v*5rc57+CFyAKKSS!f;OU!pl6cOv+2OjcDvoXB@@sL`>>o&gIB$p|EQK=fs6 zS4GJJY22e0)UHZ7BUd8K16gsBfW=8qI--(r6m}r#c|6BzBkXi9ZjX6O+_S3`;JF^i zU|LffM0w7ga)S4p)TKvDDhb%VE|yrM{G_Xmnlc& zMugRgsV=*T^5t11#GPD|ba5RXTZB4wwT~nH*Zfo@A0qBa9qLea6U463yWC3EFEWH_ zB*FpYa=@!jmC(-!<>p0lA;KfN#L@1;_%%~^)b;D4g7lHTeNI$56_@g|6$dBc zo|K{M)yS&frS~%A4zb6uDJ4R2l0gDrbKXYCFa41mjAg;WiP#G&;eucvdVDQYUmNzD zP zMCp!H#iM1X3PY23XK?PA+e;9^l$i*q2mK-)c#tyYae{I{Y9h=XBv1sG6~tHi;@l;5 zX{u!JV}co=dam8%CCVbP6uJ$_0ketN79U}A8bA@`~M zafKUB4Q0||enyn~0Z)`NcnsGqqbwz2rm-}8v;y`k?u|WXu`knyh#EiguB0L1&@HK; z|F*d;`y;`~Q1Yat>o$_B7c#k@!sRJK0|`ACrb>jlCCiY6x+8&+KzUS?Qz;_G7;W); z$V9PoKE`QaJhG>`A7^N;(YKdF@IZnMkX$*5p$7dVTlDdmTXqCEN%FlP5zvK~x(I4I zbegl-Dw-w{ZHRL(vI(k>nm}bCK~Yl)qSYurP;qXUt-%i4Fufj$EWIs|@B$>bxWq|I za~}zcAa3GAyVmgdnx^R(Z=1JJ{%iN@lmTYSjb$vrSAQ)!nOa5?BG@zBaM5NI7V8e1 zc0@+teuo(-;I%;ls#pEE1n<@UlLw9)55jaCsfwjCleflgB_v&CE79cgO$?$wT2D`7GO;}+0$$_ctS*oo#qgxQxk#E!0^pnEV96i{P1 z%O{~C8{wE#Hb-b>T9=7Ln85h`90008dEyJT8SoqfV;41bhqh@yKOhN1kmt0Bal5FN zsjAg!JvmdIY%Eb*ka*Vu$`mc8!Z~g@Z_t+pHJTvjoY$Z{0aXw!@kP>2o~9NGfk^^zy5ip2v{>ry>{wm>V0m(YIjKwBPUm_89&sw2!Vnp*qvjwQek1=s zOrt^9UcxwsDINC4o{fKxAII+S>C>JrMrf}nIQN-o_XEiE9@u`DUz(%m5-T}zjQfzsW%bSvE{-Ch6n z^WOWt|M%lt?sDhOz30q1GpFXv+zoxLEc*!O84d;p#v{2`Qfe3&0Amb{dtl%Lbj{{w zi4*z+Fc()6$G|9w!o7ywM_*IJU#Tf!V7NmtFnj|sFfP$mzP~XroSlh4nu$0OPEC|5LsP z{sYW3*vyGOVcWjacEG^EMc3hiF)>ooNYOZ(E#GK4YAGoS!VxxXFcXBaDVwW}?H?!% zVOK$P(ZV1-NnU)&4r5%VQSU1MA*MUAgo3I8AM_Be^>uEgfROb9{+zl|5u0pQ;Y6VQ5-bn|BQ|( zj>ET8w1~dMkdqRB#;kGB#lt4Tt0mM!O(#GZi+_5!BGu$_Wh_*&;TGcQLNj3Lr#~bUaY&iCcYysJ{#yvg=kU8oO&h=vPqC2eEw1V z6;Pgyc}r+-kK!nO{(S9njI|r5JLN9MbDq?pj{`-%d=|kmPQK^aDWnsW1`P52_hAB< z+HvkpbK7|<<)FwvpdAgco4OHJ$;gO1S?;np0KDkxWgaEiusdJnVVxje^R+K<#d6YY zdY_zOV!-CNouc8nLf5LNM^ABb9?4lMDE-ZSy1Fm36gaiYJ1mRT0VIr%`pSG)=Dfh4m6Tjhw^=>UKKF?t(`evBiR4d~qIw;0u zliN}i_|~yN9z5QC&8gk->j)%(3_IMnbAGhB-f}qcST^FG@(DR^%tJBqi>sxVjsNBj z&2Kz-CP_~yngf#AXL}<_i|eA~_#)VXo!V;^7WJYx!m36^6w+K{h-|swW>#KbPWk2Z zRZ{yir@~=R?Rib5YNxr)0k18ao?ZaFb+Ob6WEwp8;TwgiP9a=;{q3)o5pW`v zM@hT1PSmUWolXV9xr@T%^eP))0;pC@ZAC}gFNCQUZPOT8y^|q@%X){7fpWoAZcBn| z>o2686U3G+Uz2ji|R|GIBAvIgQ-?!y-Lr&k@x5|xI29dVR(MzO1}Cb z%r;)*5?O!bA^of;TqXB2`O+uh3tDQde;=<2x)`GZm%-Re{GLnL!I_=9dW!Z9$J_`Nv0k)KE4PAQS4-fNB8kinza#`?K0m(sO;d%Ytb6wB^0kV1lS zwq8n&^+Qjm{#S{K;PIYbdh+qUwiC}7zNI7K81?}>#R*aU9Xgd2=0VLST(?qB;^q3j zFOmi_E1}nm>#MR);T@}{(U3y0X~)SDf6sD~gWKh`UK)GRR+CZ#p3pkm(g7cS)79pt z*A6B*>0YL_iPy~EVDhNvj@LkH-at+cw=R|^JooNtKP8sjj2VBiDNQ-DzP@zXaA;!c zk|0a5q>j|T$+7PPv7uP(kqLP#meteJa-lzpz*9GgqSq3p$l08V)6l4nCK7Lq@QI@m?j z7pj_hN80o6YTVV&bb-C&HB`WzZnf@{7d5Y_ywln`RekU$5;ZD{&)-g>-dVT1c`8UE zl#S;coplu(CJ}m=sTX4f&0W9 z2cJO-TU4$5k;&ZPfy39zLV>`VC=8mOu=a23u0cJmEg4wPbqwcpNQ9+z(xaJ3JA&d3* z1(~>G{ttWf@(38XAA~dqcP72O%#Cx%g-ggq7hUnb7q%bx?x(Qx+d37NVR;KWu&1>h zBCsGPo1*JDbB@}+Znfc?cP+!#0DV7a1W&n^Nrbdxh=afW4EY)uH+)K}fR-e|7Xkzz z%>O+6K7fr{yB^}@6$c5J#a1U#Eh+*>-CalF>w_C)o?U_LRxHyOgst55V2bU2KAKP6 zq=Q?TPFFIw)S+#+*)4;0dtx$@Ms9pSI6)xSd4=8b z`X#=z^0%hHjBoQCx^aub5znuQUAZG^D!kYT&*RTj&n!vyq&Uo+eSA2e&^l6n6X)Ua z&u2GI&Vr)+K)k&yy2EU7iT*8plv^aH~>Om0f*(Oy zK#9n)osCEzgy`SUeOyJ}0RmZthWX_t-GpZZjiBJS;a=ZtI-V*_M8-sr zhV+E~OPyb~VN+Yb2!a-3gIg0h2N*N*AHnPBBJf}jWqM%zSfhm zqZ~q}$92xSH0K5F z5D+WXr?F%DLa4}dGMkLo`ne*t`tjLW)o{4@^MI%);WfMpNa%Lz-ZvA8BzaQ0h$I=u zr#x!^ZU)5&nqmi<*wZMw345ER6Z?Gtky28=Pq%Hw4!W3IdPwC74NSOS3Ae{%QBM)` zY3$4vfv0d$j-CDzUOTk3!`>E#?C`}Y-4-czudvgd)U;z*h)!iWDhDxeLN5cq!c#P z#5~#n8Sq4dhs#z;C*={QpR=OK{oeRu;aUG|wNW?G_-X_89v zP}my^|L#1gX6&pR!e`JtWH`H$4m$7}*Y#Q?^n(x@DGJ}7FSCVn_$l@}gCw^)cntkJ zTZ3@Dz9+p6$Au4taKOSd$3}9q=nenIc^}Fm%{k6f5)YC|mjnm`A_dk+Nl;l7ZEAVT zQDSrV*@awox7!R9EjqLwBcH?C6Is7Y3gzeJ$x$G2{?ZCM?D!P+HK!H!Y~p*-6Yf

)!`dN3GKqPGzY~-FGpC?^%Djke8C!S;XoH!B$cSYttPjE;355`V6T~+97VN zA8K^@HobAyA?3P9>w}0?Xg*YzW8hO$Q_!A8iVTLl)^6v6L8n zdHZH+9F*QqzMCe@Lr#X-v657yh3T>UlVeP7Vd0rSv7v{pZLtxVm4kO->=+0Q^_NRj zMB5^me{zsM-3M((|0IR^L-V?9uDjoE{eih}`H;E)(WO@o&YwYWz1o%&n~;a-9L#zb70Hkw3v9uc*VNcBj4-8 z_W#j3Gyqu4sHPTJGJe`elq^$=zzln-u$DdeegBC9Xqoi*7d4tXferttc*(ZT_WZ`T zc0L|wg>{kcD@6!ND7-g*s?sVJ*O1cdc$mOhg|n?8JfD}>_$BY|NUrwX70-Iqb*WR_ zPB^Qbd4OP23e$gbKO~F=gy~_xm5KnIM$Z|zyG&N3vNiyRcE<4K_Lxsj#=~O8+uhk! zMJzJTjZG8RiJ4GLMOZ88>k3fo#34Pm@kg8K%8H?nPe-*7^9cPi6duOBcKH-KhHCiy z_2yq49YGz9Yb1XWreJ!_<4p(r52WisNB%t}f;wP3Dlw1dmX3Ucedu=kw2Jm@){G_A z+)zP1i;bN2-{qHgy~~W(!Bz|0+}taYVd-&|i1|4QAiOtD2G`iEVLO0X5yzb&dF9_O z@g=}a6f?15B0fetM}>)%ww0^tN_QU=aY6a(sX`S z62y~-R=@_=17i|Y_(;f8%PLK!MjZJU|JnEGiK=Ze7`UjAA_t*SEPnw>v12g=q$oDu zkH-MQOz~2DjSoW1WG)}x$(C5uq`J4r;6>)iF$cdy-YhNbc0>uOHc6QcQnY6p)`8 zC}dSGn^?U$zFJ#BranF~k^jqQl$DNy9n5w_ za7GIFcNZh0EOI&N;WimXBF4X+DOyt{1R&S>N3XA>F|ar&^=ggPNCOjVB9a6doRv6* zI9QLSE2X|_aE8Vdx>F!mjP^@N0LT9w60A7%41Kg?O+MW5rpx{^ObdO2*57zq zd0eiy#$Tvw@i6fwImUWR>B)7q6zEW@zyA(=s3EbtTyZRUTr4g7q4^-RSI>p{Jx~nM z?eSaoS6Gh=g9$F8L%b>^i}pz4&FOR=L5?^5U&{TOa39-jeW!7dhc&Xs%v}D34(*U0 zR&w|V&BPEiG2*fRDy;E40_~d`Y^Hg|a`NOJEB#;YQ&h4K5~F;NCj5SgGI+p@OKt0) zu@-F0^KcAwerm}vmO33mqwG)m{I6L9I{etyo517BN0yiq#wiOBSO{XG?q`zXds`dA zp61)AC6&iVB_XFnu+1hyv>QEZoRx5>{|<{b0D{hJf?y>HMczMlRdCtgRJP{j164&q zHfe6QG)v8C&9;Hc;#2*&%lm(Y;Ans)Vjq?QBf&|LVIn%T5CZ8{6<*kKY?wa%wy*;K zoohW#uh1O*P64Ezt@f{w`z0Vnt~rQ}SGxVol=zlc43gGu{@?}LgGU1cZ*jLSCbYv< zTS;k1m%k45a2xBO9d8U;_DL!JoqBn>41~Iss{nPsb(=i!@6JmDa;Lwvr~^DahN&kv;KZp|Yq zA3;h5ec_cGrXM%8vF0dCdB6nTUWa9Lc2$T;kr?KiHtOlgST%$4$rMy$L9s z7b&PN65;XscEx&As$UlNL%omhWJ*ay7Ra0<{fkX58KOw|PUhnPk5)>1jCH$X((}Ir zE`lC31-)Dl@>f?HW@kDF`BPk zYHd=vI<3){F4frZb^XmzzMYzPstE+8La3E*Q;^da!~<_oK(fS8Ll(M7{&6=JPyDh; z$W`@fx68i`kKguR8uwQ2{3^j(2J_!-2X#DUq}mGQy*9D3>z&$*$`m*MV=j#Ff%|I$ z*jT63Wu@CZn3;O+FHR-T5gZ5f?nUh1u*~oZoS< zVgsSs*vk@6!6?t=q4bC3iO{iBZe#iE@Nv!v691A+LWQ^o4LQ6kvUvfh3NqB(x@bH6jK63^$2DJEwbf@-VkqH6a#Y?!ld*?Blo#~2KZ683oI zSDcsVK+{)NNp3kYpquf8YRmI%l4F(P`9NoY21Lg%6Q%S~ZhhHWaH<3zEE~^joJ-)4 zb)EDr_#dC!e9O3BY-vAJe|mf4v-s4u!)bnU<;Tk;C)A6OuHsuq^dn2%PajA*gePos!P&i2?uEuV2*%vb$@L~Eb+(R56;IY0S4_(_w&W&ZtW z;6)y*EGLap9(L!vj6##WZFN@tJ(NZO%|@N0PK+{rTthhB)Cg0Lew^^r-dNjG0(6AR z@V{a{Dx2m0rCcG+(!YR9#oN228QIxUzUCozo6H(9tvYiwtE7+reN>Y!fd%U!8zu_( zvC~~PN#6<7KhZ-GquzA7tfOAwp7a4YYHZw*u-G!^?#a0~MWYv+K)R;JBv(lDqu>;r z@NSj&)5%Ci=}}NlM%_;IQem4C>FB(3M55_n5(ot#IW9hYvap!&7S)6K=G|jzbK<@& zx&Ea_=?U3TuRMM++Ns$}n`s?%-e>&u7p4??nWVXqu{mHQ`Mo6V?6=+OHBS%MXUDj+ zR&kMujR$K>6h6mf_rcMwb&Y#g*@S-tdZC8V_Eej3O7}*(!>vega&AS;=B%M}HY!EG z^!QDtt#Mrl-)&V={+P(TSG&qOf{?DklOU-ZphwpBtjlEkt9k5B;a&M!SVy|yRY^zt zVPMj?eiOn$rRfoM-Sw#pyR-PxI2jrO(l9i?$xxKw0HX^%Oz}9I6$zUh4JP6vZ!B<~ z=DN|Zqmxca804bqTfl?_mbiD$J|yFS-9zo^u3|4)NKQnyXzevOznloM?A6-SYLGra z2S6Uu7?^liNSEtjW0Lysw-bC}R(EUD9h*@%UL_~V6b7eyWz2qUl>kJr+o-hQ(`!eT zOF~Qn{x0nOC*i@I$oC~_SUV(0_4=(gL+5^ylyNr0%nIW%%MFr=={p8?FIBr`Llzz~ zVcjskhP_?mWtGg+;0af#NZ0U}OIoNU*71eQj|=;fc0lso`f3qJcAv6`-BC!vC0Flo zQWAHM978zYWx8Cx68|I4PRrKGWMAcPFBu5^V$mJJ2>aIjpoy-dI083u3zr&#S+;>e((=g)~x=poh{MW7gTS!yA}~Ut!iY^ zO>sG=>5z1}{o25D`%%f@wKx(Tl1-2R2E?vbmd*?-ikUY1_pYXyzBe~AG}9kIMlA%E z~_F|OoqOq#_h_b-f=@c&)2t$Ndpx^adfk-3GS=_9 z)-bQDoho!t7y8E)7!_et2OiAg?TTZ-6(alQS|nYrzaj)C6@Ze@0PGfnP?-3+Kj^_U zHtBNRatdy_21E3UR5K7-`Tja={4&_o$75*#x?Ef@7de;_pDhdr16fJcY*m*1tPjW# zj*m!|uC+%A69&`LPPw%X;j%$1w0(AJIx-;+V+?$5m@JyldR3)vBz1aDUGWnwOQDvh z?W&N+?5&j9>;x0RfTX^1PnPoQi-lGfpRo*L>x-kU9Z{`E`Ew*Jb-!~jKS#y<9*rq+ zDd7?w>ntld2`#zsyEj9SaRB<+EC;UMBD)jZD394Eo-dtc+AC4Pk4UN+8)g$Esz~at zQ>vUE`K4QzD6AxUmXT+|0)@B>L=8T`?YwvI-p)fx*DPjqptsqYeeaKA(10XJt)F_% z;cakWx19FAA+Mtqc3jWA;LPWnOm%n0*M=h+TydTEqP%$%KE=NUn2}?0_e*5e?A}kE zSsMwrS`nY4hOi2|l>A~#friby#);(SF>;WUPh4z9P}!U?Rw(On&-a#Cub50LjHi_B zr`{dz`kTrZe7`Q}n|qr)TgG8WOQoYidM{EqSB~dZ;@0EOr3luF_w`wF-l_wW<_%rD zN1xpu@7~zc7V`l%Tk8u;jPKJ$wj3z>N|KHaQyqONWbYAzFCK+eHF=kG8k+L{=A8eIcqQ zX^}lgDg*~vzx!jySAk64XbSJvg9zdCibgiIq#dXf}H4(n}2XE%TK>U;H8eJnuS1}`o7oNaYH z+H+GXqR&}+e`P4fGI#2C$KEm8VgOTk)Ud2Qas4A7TDE;K*)g@g$Mj_4y*#)^sqKgH z#-JI=x#xTSDVzy>ws&jr_QKBUSFmSsD1yc)OCgv<64J5_y%hAiDEtIVRv9h(d)P*U z7%kYhE}|u^Ri?9}Y6P1LY*l%3!nWBoTojLWd0A4YjO#eMUhX@B-X=eMhIuJanY5B0 zh4H|RKsit(Y{)TrGnYvvGmw8HX0IQzujR9ab4PK(s&4%bKg!!YP1vVL!nVhfc-AyR z_BrGuO9GCc&`Hl0r-6666|diKF-KB7^-S|#2960a#6b3g{2g|K37&BM4%=T^SpkV| zA?BRP`9jV{eoPd>raHF+IhY|HCHi5eqi}(NV569bds>1GO%yV)lN7_QkJ-Rj?sv|b|zHmS~4ZJuP~4+wb<-S-4C zGTO&vI3EA<+WF+!6FJz}_@O5()UXs6jF@wS9zCouP_bBk85YbJ>j*L4h>4m9U1`sd z9Lbr=k2^1(^jGdUxzj5RRsj`}^^Sgq1UW7GV6Cv#TfPJ)R7HLBChja%-M5>)pEZJC zeSxl-xtYUaL&A%Q=}8gm&g^07yEO#wgFAvQ*UVDSnZdF8BbW5G^&jj}tFJOq7@CTa zR@py3@M`bATL1cvV*Kc{#Hm82*$f@fzgN)X*6oB}BB%a#l#p#Yf&`%cMphD`Q#hUT zn)?mNu{|EGY%Vys zDv?w@Ak|9h-J9Y6Ma4TW>8gO8sghEF{i8kX8!nuZ3)Y9LNXjMTZk&*7OVg*K2rMhu zE?)gQosprTXL4$4;P(5saQch~)u-d@9(|uWfptDw1sLO@Bk7hjX+Rt`>Yv$%kqR)7 zz#!b4*7tyC+C%Mil<jp#B`O}_NKkItFH+odrAZK&?&Rl`YD3SG2l}QtB%Za{< zhqbnfY4}nkPM_a9iI4bc%_qNMyc`W?6Z`y*FwVfbteA!Vk~D5X}mq6w-@f8%|YDwek+I9U2}=i8z-8jokd!P%so) z!DP#r{0&a5caCA_`cxmcU8N8yTT_|n6RKitXd*Q1)Wp-d@5Uouf#vpEijEq1*4yuzc+j3k>-7h%2@Gj88iIk!h=xANdb-w!>m5=r%eni(85rt)qX-GO38y$BRxJ9Tu@ z<6zr|tbe30e|akIg~Md8p_<-Z@?PYn4T=yI&iGol=DKgGwCph}@@D##-TbKu87qnDF^U1>x)yCaLBk2tF@bBJ^ zW>vR2uVPpARLVDAw;7&FLfA-uJ`R2at;?qIJyHXY)zyis_}AuW)OtFv;sDXDf*Y_GOd4a?ip<6-O|>t-e~O zNmuziAi5=GcpD5&GwnZCxpdf`BZ^~F>*N<`%MkDCECafM0*w`-L}LXFN~@&AJ`FA| z1T}vIvkTY87Ina!ro-e@}^?~F{PdIrbF2(tI)63C5f>7Rr2@LlFS$ipy^|9ggl+K286+nBDYq3&Xy2PlADM*iejqTWaKO~Jk&yj%B@&Sby!w;k20^W7_8~2h;6@!f%GT2d_;zW3H?EDuZX=h@Y@m&24PgUE! zNDq^YXb;-u+qZRw>l@vj_B#e{V@Z_^Q?Z&;!7&P%gIAWk zPqQ&ys->r~T_=iS`SZHXo^te4esFVeDVg+Z@s{T=f5UdwR_5sj(&3`X3O%|S*~=p? ztD1r`rY!J}m(wT;9omasxQK1bm$6S1nf}@$H~?ROvEi=HEzT^+wgBwhG(uM|$BTyL8@73yrV? zxi{o4pH@;KioHmNiYlAwG4wKxPRa`4Pr3nWiUoXRaEVIYY4MaDH?irt9}(wQl>%g* zt3V+Qf3l3MPr7bBi45KYm4iAZ@$e@Pnh7`T$v7;!+uM=Yc8$3K#}nT!{2LNJu2PYA z9^zHbqGB@L#}Z`^d{K-pCk$+Mk@j$Hx%O@`C~zps9+Rrcfi1lI3cxckcyvmnNitNN z%YK>8Sj>J&8QD0vZoj2ooxLU0O0_95XM57v&tVBVd@Z_aE1aQgGX($wK7IcpyON#e zE*9yabe8Oy-Qj-> z-nsRzRk^Glq&3r(l4@=4w2nWA5eASGK!T)_vSLkDpe?0d+~q zmjJ>n&T99pkFE5L!OFW0$IG@~AL~^(tO_aa2ZZIp$b3pW2Ftj^D9&wx@`#!(?|A~o zDVc`14XagQE}R@yKIw$GeEag=fx>4xWazwzX1Lo(X>J6N0;Dr%^?l;Smgji*)BVc~ z$3;V3OSeZ2I9!KYILjpd0UPfY>c%{~4N%u{#P}Llc|GDCNh#ryUurJl^Tmz(b!_C~ zqwPFB!ezv2%$>549gFJ{q?eEz%oZAWfCnTcMpx<8g&X+Y=i4;E6ir}_>5doM{<2!r z-8c36%xd4co=?J}1!9+v#=kEm2Ve2r#FrW;eyR7jFtXD>jN#oD9R?gKBC$`t3bD7* zz6dBa79b>-p!>i*7^HjEAN(;)5u`po)D^@vs!>$y+%xyCEnH);7HT=VJX!|p&>GKt zckS9riezi~IzCcb3xX61xgfFO%G|KN4~nF5f`)`BYkvAz=L?cl(Ao!*Z84f~!53v7&&akW2%xLWmbSPdoP9X#OMZu!Yr7gLlt*yedF!`@?J&ygW{4`N73Z26TB zUm@E|^2U`6tq5O|uI(R3q~OkbnWrIrd_ga}kY^&5*Zuc7$k!tuUh`9dUvbwR=7~5h zzG8db*PHS#$)131te2{Y98drx8Gha@ok_1KP_q!sUn4~g5!v^T6LUCFL}GsAW*LPY z65r6qZcp&237gKv2X4L_;BZJuLA{FkGK z^H?(dmmPSVZ#U@ZbJ!H)4R0!^t;wfjiJ19rA|~GX=o)D2+3#95l1Hh1wc_7&tii@8 zEE8NPygVQOaqF|~w7Lh-d7?SFLfP4Np3-XwkGr0CL@GX6Mnp3v`57L|B2BW>Ic6ih z7h*B5g7nDpT}bxdwexR$i<34uWpj%vp(4>iUhl-4h}SJX$LldrJ}K?b7*>qg8P5ZqC7FpW#p$P7x|*_62Z0Y--tw}WKLTr`T&+)q<-8`$csVHY(}+{={q-c&`lc+e#LZxE5d}_URgiW;70nVq%@ z77xdeA@)L!1gx%3!n|5Zu$f9vK_b^^H=DTSFQqNkjBuF7XjVs-S=#f-<|2aqxsPc`l)Y(2#Qj}%5Ro~P! zyJA@-_va)e0fk#D6yF_?cVbFMY7W9@iD&Y-5O_b9V^MP^=gsn7A; zqLzB)i_kpQB;F)#yudF}AVI6Lipb6!Wf?h>o<+yc3K-i}02f`i!9_V{DqoH6>BqRk zHcRYLHfOHQ6Ij7kcQpugjDF4H8jKC2{ecTNs4w96YPOy-9&-+lvT98$z6*l>jI)cC zF%p&8mNIXS{w63zXEyvvx{$bS?ANKK9NmN1KO14xA<;!Qkq;wZkZ^|L9e}u0(V6yZ z^-9XRG6tRvH>gfY_~6%DP{Lly&w_e}d@pch9wb}N;b`i|Ewm%oO*j~$ps3}r<6m=% zf|AQ%+5Kc4sr7oAY7J0_+#kJoy+u4U?jV5?f%S8SU`8ns{f@C8Vd^>9Sz9 zGiNt2n$Kefcg*9K17oeG-}B35#g~))$W00)EXNHpdrkDKR~9PG@U7FJa6K|*QKzGx z4piOe&>{%_K)jwW=Pa1X`DT)3WN+92@y^fov;I>zhCy|e9Q`-|oE*WksJ*&*^GT4y z0V~Uml*ZAceUG^0IJn7><;IVrx8iiHg56E>|%sOA2?fcY88p0+}mJuD7@1iEd)jkI<*Pq!4h`ef8tuJ&))BE zFmCe6cX6TDX3Jnso`Yr~f*A{+T(mc`l})^eQxJU5Id;R~om#`rZbC^oZVOKE^4DCh zr?OWMXuxsQ0Co=P^1$3Ey~Qt6a(WnW!rLb9#8kvtp#8YUyO|M zeFf_n*oy$;@dK`rlAWJD9;w1K{nE7!ye1jFru73!eQs;#pGOK@?k|1T%{XaQ=D#dn z3X&Bml5MHv`es*qv`5`DOfedB`S_xM_uICs>k7c_gLSB7wUFp}Fai1a z8Rtk@{^wqQjmFeM{wka^oc4xf=RjK&4_Plxey}!kvRtE`R2_u$jEP-j6ItH_7#Qd= zm(zMbQ|@xx^~UOvMzMN)f`s;am6Q>oJ@UeJ1%WbhE;e9dunni8*m^QG(*DA6Hsx+< zdA;W4Qmli@d`_hU!tv@&amC?`!vvfp(L2UqJ&ts-R^>*$C5!~X$U^K)qY%aU6hXsn zUPT9a%b#gP;P@4k!m%NZbJhz|FSf?MH!;C)ynWPSS7f9q8-9Xv@OMd_I#Ku8n%t@< ze+YZpfb+sE(?{L;C#!i%@Y#j5)%^^sXEciY!~UTZvG3%rL4J6;`aVZFBqu*Vq0_FM zc0lm3E4Dc96kUyE8@!f$T$+??Hj;P5#Y12~X{^MNW&Y%A2EMax8cSJ3rS6FI-IO6~ z+)-0OcwFhd5wXM@3+IwkqG=_|EMDJDlFSdw-*JbEpXXADtHn`^I}eWJwno0K_6Y$d6d-Kv7a@#D~P zq}70n_(KW&KyFx(>32@|4g?SJir1q1&L_}LEY!>pBx>8+6`_5YI-XdZU2~#WTMSk! zx(5%*^Mmi`yj7WxUrx$h$dThb+h6ZIqB-i=Tnzh4ghEkO@~vdvY&H>P>K|PiNB+1n zgx>8hRl5a8hB9-fJ}=k}k+coBd#$GrT#h+i9jz|ZR)3pv|K^P|r3Yg}&&O`|Gf#OV z!7ab)*Z5Sal(v5OY}jwDQ&MnV#Z*X0+>0$A7$1;5)B~zN(MAp*2;1ELv|8lZb9KsF z?WmRAuvTXo@Cc3-pqz$tuKUn z*0o3Cg$S_oj$?3C6ttCfbT0NPJaG0spl;lbHEtW`Axx z+{s<-VA)1Boy7K}|85}|Jt+sZvRs)@f12{7GF+Y5=dgfX(k?~}<~v&XINjmGNgrNB zpETJS@LlP`5|;HmJCk6RBMS@E)0$S6YI7V!PcR9Ro?!wggr6VywgzGn&u`eCB{8u- zo+dsx{o+kgjwb&D!$3M5-F+#s|8gv?^V$sX$4-3Y8 z6R0Kpd$n#`iehDu1eM9x_ zgdWW)?wH|NGNzhJ(r4D*li;^FC5-P1yG4X|m*q%_qKf5y#~1#*IHk>rG<8(;7s$Pl zgXpg<)>+WhG&{(Jg_s>8~A zPv=@6lX-VmV$(Ndytvi{2&IP{}qaDg564{%d?RX;6XL za8BFcT8#_uhDP^^^mO(5VP9;Zr@lt|PjR3OB*7IY)E^8F`7rdvpJ2}>Rl?09j%X24 z_`}Z`k1CJ|#tb2e-nPmHIu%)UNO?dAAyTy^o>P9qi!(Gc;rC=KXH1_B^-3$!y}>@9Y0vd$3H{ddvMWO0ph#DqjC(`eG0Q!AdfMvw zou2~ro`1s=>6evJZTX=Z$F?|3h_0-MR^jmnC?4Gm+E z_s(Kxd@YK&ppWr*7(OvlxqI!$lA82`2eV^;H^#WlY;?eNA!aG__JZ+*B@Z-FXmqh8 zNKf0>x#vf|dRBCZsYJ@Q~WCbisIkJo>XCOHcDx*L+5fi#*|5#GfeQTd# zGaK%e@Fl=pS=yak95Su?Wct`$J3l32kceU@mY6YUs`Y<<3*hb8g~Ia!Jwns_ABIw| zczWf%ruu{WR6A!DYGhHG$&kl#`qJ7cz4LChA`|E@wKB4ZbaPAjS-XZAX}87o^?I+j zuTwy&hAP~fvKs>;;7GOU(Y^RUh6gQE>2tt)^g##O8Rh8oqUBihf#3>{?(3^zA?A>;$5_9#7>)r;+0sx zi2OV%yB~)uD?w(4D0G{WJDN4aaaLdALi#N=)C@STt-5GCUzmp(U_k*I6XzSNAXK}3 z(RDp8tPvqW3NAFtsxr;wH8c8t@AiPBE)0=TS-^h)B5Qdv=%!n<*@z2gp}IIrRDjc9 zhgF+d#K}CWrjn@^_2w8;pnSR&I_Bc^C-()wX<&0MhNVIK@Rp7gd_4Fpct8S!!G0$Lm z(%G~jQ~V|MXj(jhnz8OPumle9J{`I?JWM}CO>79;D(p+JIki4w#n#JAHmECH+QwxF zSo!6Na;915(={Ex9{ z_INx|l1&6PKiqeQq|AXkuiNgw-@A>Z6p^O9*OhvFlHnGC3#uakM)9g{ zpX)#0?B^S`DBWrLTBG^?I`>rzS>FL+_u3Fn+ClXcSpdZ)w)YV*ab@D%(teo(8%kV> zeYQ+kT-uk6>%Mc|c~?Jn^oHXm+3IoRQZhJFqvAxEV?4<8O@0&>;YIC!a{^L|V#q*$ ztb~SaK_TUOsb;VB1PX+g40-AU8G@e|d0GB4R=CF2ehZtQ%X%0GSJm5kCb@ z;`!Kni3I)+ZEtA;UdD4eFVlxNRyqq8rIr0m>{1>g)Oh<#!3^V(%tcyXO>_Sdi!e9V zJ|)9ycM{5rzD+WDhw08|RDDYlauH!%-e8RA4`#OB;Ct@g8gW6@YPD8kP4mnMX!?)R zY<99pj~Df3SHkXP**j-9H1?lxjYa|u?Ut6)$NAHq<>O_w2T@Ah-6Yn4o9P07IfdR zwmm4o%~IZqmHG8-Xb1Jj;COiyM~y!e*E;{+5H>`yuf2K6JEdi`jOu7NM-UM~SnX&= zwP?^|`y!=g*0EKU_Uh{GvB(lg|3v>=ug=ZOt(v~1CokTr`c_xU^OcnACThG6a$)DR z0A-w%Eg?t?csm&6e_}EEwquAeU%91N*_hQ)*)Zd47pM<%m0!naJEi$<4%S?->~u4N zRXaqQukxOnmY~m{K50A_LR*46{5mlOv!VQ|xtSwq7%?Qtc}E6T^h@k@`o$Hb*3T*r z3Q8T^UbRVi5=obn6w5HgPn6VSSA=Vn^El{v-~Gvgbo$7;%@{p3wySh(!|Ei&qixT! zv7^fN*$#Z>ucYxm!pz`j??xjvwQ^!a`xYvrT6oY~a>yOe$Q#1zsv}`{wS@ax*}HL2 zFRYFQpVw@ay78EpaT9EOM*SKkJVvKO1X%^4t^JIx$hiAVG+YRa)n?1B25Vq+n-C%^ zOhScNsjHlGA~w5jh9QG+peI)W*!Fo=deY^tA9z$=l0@&zahzL`t?n;&Kj2v%NaBB? z<+U(CAM>PrHNw&T0?Px^>mdt+f8@82cNr2kZ5I3SK_oGAzqIDkIA46EXIBhO`1}-D zd^6UIz3nt-x^ znYn&xB*BJ!EzG%mw~b7%o+w&aZCRP!ExL0)rHpYn^&?e2QA`2H3ng|FmU7PfaQdu7 zanQ9E2j!l`v%tJUARJ(G4!6w@9FMH)o+-Z1$BLH8wwimHy9wEWOWo!Y^AOJiRmi_MlM>C6LptolaDa$Il=8E?!^{Y z)x%MlMB};t2~iNT^Hf27{yXo^Gm&;se*kR8NK6i+46cdp_v*EnjFytoLciEs9z@}5lLynrj7VH5WbvXEG?&s`BS>Ci_09Bl%7lh5d63=BmrS1y0@EVUxP}Q#ZDs~1I7f(C zxBp|myBbiip6eyS*uTT^%7mTM>pWZ*&%P%kZliJ zjvHj%NG97B>ib07b9yRh#}uBOu{J;gJ7w;F{m5;fc57`y0fna3t5;O}Y^OBtR=xnH z48<`z8U0FEdN`ZgRh;*Zsf7>uw~ftGkYR9$5)HxKmcKVK`571XuHeEv&QVw5{k!WT zF$7ROe=g)toxJ+s9h!wZ9iihuKwtyQ5NvlT)Fvkf$ND;~w^@TW+HaSYUq_|!IEsH7 zSz&xF49GPMUOqw;a(-Kn;Z?I!K40V#x>y$az*zkfAq_E za8Xvol#6{ZtkOtrk*> z9$+wA`B11P@mqz8jH|EXS zUMrq=>q6l1lJ+ACXj7R zoHtO4KMr8Id?vZf69nO;)~~pSpOU?8lN@(ZdoLtM7|SxJ&*t`ml=G5_%nNw~ih&8| z0uy2v=dYbTd*b==AK>9t+DvBgQ9yxh_sNm0t;-K8#aKN4CFliiuxspiL z?BJPZeJxF{F8UA}(*DOqIm2xQRd~f3UKEdBwag36EQ^mW+})DT*S`tpv&EDP9V!pb|Fmn!+@PIPZ!SADoakR;ztxv-2Qu8~0@pM|)O?zgEb zCSMW;FMf_;_&+!s+>`8XkZFoJCwP|vOJq6uSjXp9tk}&wtaR6Q?L;JRplaIdN&~a|_ zov4%!mgB^^1gO_>07NoD7x^4_{aqjTCkaq7dGsY0kC7WBnw-;~HsUBNrkXxzy4l;) z>gF^OJGDk9B<>7P#LCl7sQXU5D z&d>LPs*P$J3q$*ERK~|RIM$tkU)4<%y7yEpI~U{iK8uLZQi~*ZaA^aV*pgGa&X#M> z>+DMWi)c~LY;xcAn#R`1S&y_Tu_=LqLr{Mkcj+%76&+}ueP4Avi>^iGl)cH5Z8EeE z<+xIqw)fOST|D`E3y5>JU7P!E4L68xrDl(gf|^9_ZO(QhUa|^(o9N*d$+U>)??m&$%@H$9sD9LpNK0!}T~n=m1uRHS&wo3r1MqMKI$0MjkI-2`3~JGvv=}xm4B#etDY5p^mg+5LH;M zr|q!X5Lm!6-_02^qFiGF_K#+=uRCEzBlK^U^3gsyUUBifJ+K$WRvO*w+M_x+NbRye z7Wui^;;1?OlFT_~^k&){QI1|j$?{14)_i;$rN^vRq6g0j(Pl2nfEj3mVDGCC6PvfqE?P{c2kL%=OyxsfHm-2Il12@)$YiYX(=nyOHJwUE5@g<&Ld<6u8t;?P~Ie z)K8^D$E!TjKh=G>4!(}Hi1(S^0Uam>lJU~mE?lAB=(R;HuwVB)`tt0Z z(dy|V)9f(C62Yd6k-j7zJ_~u9AUE{<=QF%4c&Cqp=+)%nKhpsl(7>!%=1IWfJ$l?< z^KvwnNz5992tIGg@>~cf5Ae2~;*hkK3Lmk| zdgJek|B7K$_|=**Cau7{qK;SiUjE0zVUjB)F$3xwF3*lyHDhkW(*=pja#^p?MZzC(`N~K6>BbaW&Voc+*H)IFU zxow8hN7rB3_7rttn$@EZG+w=_RJ}bWv{QiF_H+DNpjZxba^0}Z9k3zm(}O7K+zeG* zFWYOW{Hovw*KQa_!!t=bb+ zGT1!xG%FPr33Z{-_>OnLAHt2VG@b6YA50Qc&|Ey9p$&62KP1~SdlDSjsA*l*Sf%0B zqmWHa>+|wzQ%30ANBwF*0yOHqP)0j;dsc4ixX-J^JFkzSgLPCj-Qf)mYFn!bx)+k1 zIj5cw?7oW}7n4W8h3Bq(-{2Vg?4po#4#)B^*3TsDAchBz$p-F%vvbHSkfl~}>SnRy=!&i8VAA9c5ylR>S1+-54 zV!OTL6_36(>raI6f@=QpLW7T5+4xRBl|}TGu6df%ZD+1Vuv}0$&|#GhoJ*4K_dm7z zCi;7*i4N`ReQR)r^+ERIsrA^@XQ+5C_l2rmk|;A!6m>aN@+(c;+O6$x!?3Nx`{cr9 z-_YciVo}v%6v|u`uC^9sTJoX#A9f;}LOj(XjIYima344+r=Wa(ec#_|aK;9p`53Km z*0L~e^nFN-Bt;-EK1Rsn7|-q8oVg~l42U2x_*;}Y48w!&`wb0;&Qkk!j2bbP_zcaI z@n8cbztQlv1o^HipKXfX`2QyuKr_z_P2PbgH`%QFsor0$;%{N5qH=|1q0Qp?Zkyb! zjr|ugL#ayBuYL%lr2;EH$8r@B3PY9QBn15ay?fE@K|NbK-oC!}C*BpYJ#OjhG}~sX zhm1qAZbw5k=gx}tiwt`F$GQ@9@$=QlR_H?D*0rqSJdePCKzr5|#v{Pwx@qB=;Ke=X zxBtJmc9O&r<{apXqX3)x41`BA1<6(&ZzRD9*^thSL}X7`Dy~tUeOqKo^jn${;3zoG`~Qb0_>Wva9=1c{GnKbJi;@&9kl(u%vc02x{c^xo z05vEs6I-&?rY*tV-7B#-Y=Cvze6Px zFuaI02Omo^fE5IiiG!4@Uup@f=f-&_`lRgM(NwF)@W%P7Updkph^1Am_v# zvFW^)*nQs724kB(d)?`=P13(UqSTlAnyyoVSSuxOr1LehteP|G6Jx6s12_$abbAv3 zr+fSdU5G;dbIMDusMQ;9a{sO_{VjfYObQ3u9EQAj&*yH;;92F~EG~OX!03sl062y9 zW(?>Yqw}9o5{A|vP%uD8VcI$BiA7A64bf4`NaK_Gmtmj7OF1W>RG7$;fuj;isY&GG zr+9lrMf*((U9EGTG5qt?qUc)3pcqhSozqg}3$SuiRO@Hy@YXCWqz1h`ar0s>^dauW zAy1a^WR{@gI$=T-DEBkx|8($wzQckGHT4D1VSNu-++Qi)14}B+zMvy|x$@_^|78sSD?0!A8M1i%;WNf2GG%Wu zk{XY+UK){6*I)$CG7r6jseoci2n1%H>E z--0A=jK#PVp}=4xoeZSG4YaSHL7z+bRA58EMmmh-kzuCKlt5zIux`A)^9;~7wJU6- zJ6iG`$4n9XK7K0t+=BNf)_fcFBu>+ z`SXAUDAAH0_B(fi#Jt;u?q>J*?fNPWwb&GlCK=PFLt(DCMxi%dXI_KyeL8Y){wg~D z4bk?Q90M+VIX2Qv*uAgIUbfE=13(u-{fG<-&)vdG@#)A+X6y?@t`}TW|CG@>o@i^ZkY%CrVlMj zetlS*^>%3`kj@xWe0R>*`G@h{$_;axorJ%1B&@yidnhnx0%(Qss6`ZiP4_foEd$PF`J%FlxPWa<>fT(-|Q4&nN2clAH>HdNycZ1!uUoch{77DeCL% zUwxOMW#_Y=TD)gmn3OFG0FPj{^Nn@9)pWtDccq8xr#16O%Z#xw??EFzLiWGH+`oM) zh$GgymB;+%EMA355P9~!ctuh3*L~x}zsF!YQCB+dL3U5Uqkfv&czYUxwQCKzG$)%; zuGF48W$&>Kyk2NyN|&LSgrb3EE@JOiL`E7rV<_-Mt2FIMBHf({(3 zdGhBL78dx5Kw|6HaZGYQ%=*tMpjiq3*Wv$1$lwPUMqILzM-U0P5+U~rd7l4c2oY*$ zCy@-*_Y@)5cS%OLeIL3#uMfIvb_3OZ(@bmaGRa_a@iQc|p~;&+pZyC^kO3YWArFEz=6DUbNiW}TmNe2zqD3X$OPpBfFos%?9UKu z={g<%p!6q#Uz`Dp&d)HQr;8%;Va^P17>RhPjjN2T83n3L)I)y?)X`v;pA^s!s|Q`Q zF$VroAgWG}8UR$NRr5|4T2`hv^yLqmM(CeI_~ag!?!fp+76;Wc3kYgZA`h)^A88Hc zDBmpPHL_B-z8hIA%O*!bMP;2D1rp;7Gb002|4rF{TaP2GgcQj9KHNe&javOkntP%l zRf=n3wo!ECm^7qpo~&iF_NxMA4%aZ{N=M?8vK~alU05|xj+>J?ITTzK!58K{1n504v-{@D%ex?Dd<5EEMv$75bE$4+1=b0{mVBg{hRR-xETL38r4VwL^k*m zG`jgKvoi@p9t9Ytwh4k_8TO0ftsuK1$(K)57#J96$oPzU3)!tZ3`*50piD%6tpohs zUli8bp+>fB={I@s3bD{f8g3+Iff-&t1~}YUhF>lsKQhD!my0uWCW0S18#jG;fExLJ z)>=QRO%I@uk^eP5^nYIm{8i%|=X=N-J9fBgf!c-Igw)jO_-~bRLt87)n&Qo0eoKZd z_2$)rno)LE83Hya_!FE6hE(Z(_$c0Ynqx`1~{ zp|L4^nX}fl;WMIo4uFE~cFMXusPwT60nlqUAgfSzY@?@AIRBI&KP;*yt%)bQs7u(iJnv$N=y+qb1F&@8fRFJB%3M& ztYGQS6qH!Tfb)M}#VyVNt|2$TtZWh|6lK~63{WkPpM@1Ma5oDnqohe1}!#4306Qc6on6@l0FlsLe27OEbmTtX9f3+^IF1H z{~+f{eg1#}mp?S4ZNVV)X(OE=Rj1}Bj-_BnV?ynewboY{Q&tpFr3;0Utz_BA#px^} zie=66CU=qWeX}4btrU!Ve=t2Q1pI%m!f-HTO@*Q==06&>Q?m3K#WtB$cg1Fo5nP8O ztdX@Sm^L8oL>1s`W>>WQN)$*KoGm*N3iIGpy7~t?l0p$U7YRD!W<@T!q4$s(-u#0( zDU?@$>=_jr01CkjRntKs@jKit2;-KV>{whhnEkE6Gh7ptS-+b$e-l3djSR_Ol{}Jb zc~+h0QYW0B=`>~y&?6y~(DCQqxZ8vl<=(tNZ&?AMVJi>>u^4zsNFw#eTl}z)iH)Gh zFeX`Wsw@Q;0tiCiJe&%BP8m$VXJltqIQbrKt>5H%_O7~^!|3WKz|v_QwVtgmat5$N zH2{Ln{!f@>iX2@KM>b#NUgE>@q<#(C$-{{MgyWxeQdU8Poq(?L8BH})m?J>6tY!>3 zQDu6w%`+<-{mCl_Bcb+GzwulD&|CI z2|P;MhVS%#1IAd z`x88#^4d?4yRpbT{gPFN z2qFZv*+G^T5>P^aJ99&{WTNWQbY3g9*~F(+S65fF)sDmxly`8t&U-+e&_3Z0b@4YN z>E=uu8^t1#DiGc(zUG!Q6Km>)OOm_EMm2 z_8MPWdWip!CwrXysFSOCj67oBCj8yH10DJ(KWu|*d|zi4_xHPGZ+w*jXNGJq?xfJ0`%Bi;#00-(07BD4}XOS~c{#m?GW;8hJVf1C; zHS!`B?BGh!`HQ1w1eDC|p!AUhae$e0F`B_LIFvSK0ROl=*^Y4Dp6L1S64n0=0O`;a zzyRiz2^}2&5#TbvD)F4#emVdLJ1WhlDlBg0X1LhE*|n=5uAPqKJ^Wlb9FG0$0{MA8f(SWIS z3Wz<}wbNG-WQpME=-)W|YLTk0-*=CEO)-}M1#$1*zBNCU48j$ZzErdEbmat~O9nc)b6)!2qR%vNX>MCf+tVH?d|6hi+dhBr6{g!ShRIMLX%%q~G6r2FUT)qasn`0W<7cbtv` z>0J~ExXs3_w8jlcF~W5i*4ysWI8_QIOa$+G&Obd^WHgvnC)-JRI2Z)| z7~7G^a?#;L&N|7zA6kuWG#boOAc@v3l+$ltbF^K!=9H6`lZ zWDt~ShrPqmniE`-{zp&%QT~0Ki+?1xzQ*&VczFycK(u$YNlu<|sglD0OQQU~HbbDg zv{MaFTYZ*(rM;#Ez|iI3uLQuSpkZEDs)VCr0$yfy=oFKkbMcKkvyqe04>#^!FSHJp z3_hKy*_pX;r5zk}xp)8m5G@5qa7d{20L66qHW>-!=)h5|tv(3T>_WxUHN$FGzM4iy zh)OylV_I}4Ah)TA!1TswaxgP*Xg-n5`JcDRK`O9=NaeAN)rz#nrBMRg`6uoNgq9uGi~AB`l(<|yOosWg0QLtbeJWbOJkNcgacqzc}Gr4tRG@nP-5+aHM^ zs9iIvthyGWi4k-bn?fdAPr28x#)?m)LuPm9^w*5#;LSo-i&X?e6ac8+$^FH5R)ULu zgMDSS35BNZ?*&;8lO_YLT*upgPKaGqS#=K136Apb&+v}XAClx0e|i{?`_|X0rG~j= zD81U&L0$Ff-v!P;Spr1?G^2D`d^7Tz&q&w{h{=Z%a=uYNF6{!mSJ+(KlPsQzS-?yX z#+2z*mr65Wn)k(fQSILC7EFJ;h|SjSe^X)=qoEtzPq)_&7B?Ws^|VpX^fZg9+@rS2 zWt^mPcj;0eNQ|_KakHv#36^Jbj>qOAjofMUbWST@xyxvBMXlJ*8C2$w4nM3>wu#m=Qq{PG>++C9cPC;p{43}QxR)Hu(UFs15e~@9q>uC3QgiB;nrnvl-JO2b>GVb(Q^AQvenUZ4Q-S69 zH`S`i3)kIm<0n)8e5S1{As5w9JF(3I0=d-ptsbqd_RK%urZOdaMjBtOmfjmuO-=q$ zVW>t!_&v|2(~4E2FMVmPQn)9PjXMLar-Y_Tww2v2AAx1BXFy zyEWWvy4>^vHeJYHvflnpbGwMv_LMYD$D13U8zS*TaJD}&H~kY8hW@CXf0R#Ek1bY1 z@3KYr=4M@S22U>wrQvXWBzsoWRDX6CJ_ zGr)XG!P1D73&v}+I9JS?NJvP?&D!@f;e(vj`Ns|#pY1(aS!ToT$=$rRGMT0zpq;jT zc)hv=Zu%}@ta+G>_K@z_#fV{nr9Y(%>7+>U@?W0eYHW&*ej~r0<(#JMx35PuMp{S4 zQO-h_B0(IA0i+ZqZyC`xy2*38WhN7YOVIdkN z%s1+rrK|jtA=7kUct=(RBG7~3!aSDJrJjkZGm+R0ow;BHI7i}L#7a7cqKKmfw^_)s zqz^6M#V*rmSS4ejtzHkmk+uma9?ev%&9QWcPQOX#JDbW+_xw|cFyeCi6R;G5|e3*!24>{ zHpT`UqRu`yV_~o3;xXg?de#-txA%}|oX4+^^N8GrD;aaT8!ZeLRy1Y_=e{`#iNLSj zCs54V`!8wssh1-`J49cPPl3$Va#W1v$M-J$~d_DfeAMQ9+x=3Rb58JMn{jd zBM;K9Bt@3o@Jr+~lXqX_2a%ae_e~$vUVpuSqbjrJZbT)|k1$BwyYP3ov^Jdj*xC04 zE?96C?zh2lvxWU)z?{xn*xnne6DOpIsCJFo=`E=*8}WzF1&7qpB&31xnx~MC7~r)@Chz36G_F z)y(~bVjRD1lSi54i&a`ZM;Q&2Byj)lmZribCO?u1;k&42>baslO07M~$C1dL%&?P> z#nHS|7g?N6Dpv0Iv>&2WkUX+Z@C)XrJa_1xo=|&g+-f6IqUJY!UA&*WAm#xU>CG?3 zy&v}-YeiJiLu9-Id|^W|bvDb$-pC{@^Mdj&mP;AcRsP_h?aZ>wt%7Xg((tg#v%|IhJ!+1FhoS%q3f zKRcH4Wz&e-mE$+vEQxR2xseuXa$g;Chn(7kL@|uzH^1??B*v&j2S@s-an#pmm(X^} zCm(*F^iJ4vXPpb-3-A@;DW?gJ-ET5Ce<$UITTH>>dQwgVPF#a^tqzr|59pdE@5<#x zgDXF56dt{d4@teZ?FvqViX^=x#64 zgglmQ<@_wMi=I$^#kiJbG4X!MoN)DAf`98xx9^E|4a#aw5J8LeYSttaTb{xWfB5`x zXB55lC;rlK1;kF>;tidasig%>4_iGD@^fgq{OW(V1aJ?ia zqkC<1;!U?T6jB>7{GN?RSg>a_&ewq#a(nD_KE>Qj`Rjb<3_%S+j6Rmc(S>S_-Z7x`l%N3*bVd2)gYi=K$l?1`~e6}nvLVPo*F zMzz1*5zp9SVsei*lT4TS#>E3g$ysh;k+RfOyvc9wE+wN&?E(olyLh@^LnuP{zT9f} zu06VF6_C4mYr^-Xg^;(l$5s@j8gaoL>z6FVR?!Lh6rEeWXb7WQsm$8p@Ul@`wBmmA zP0_oWocpc(;eV`K9Ok+t`i-lBI3ec2qge~4;%iO29vZH#S(CS>!HZm0+qr3Ltxd2kxI~t{U?_0> zkI@6-b7uV%I$P()slBCUAmSEPzN%JBl2J>=@l$E}uIfkd`&mUzMe5IVhV=r#V1rwP~f{DLr{=taweAas&9 zHrIm%_^MZ78K0#hcJnULI?)*zcG-87V>22NcBIA4SOzM8cjs%Q2S9Hy*Ri{HDt z9_b$SCVlF2eNV=>!-Q{!*-*+8X87w-U`sJMKDUundmMNK!IY%K)shO_kiF&~{cF1} zAqSWc4{tp=%Be~7-yGJ7eyx~76wF8=@ojF~Br}?g_qT7AfEY~jsyv(YIZNDsU9jCx9=q{* zAFtB;P^QncO-#1wC+6%|UWG`}iuw_1>l5yK7J~A)Vcy#T$uh zi83bAaWX9|{N+QK{dGHwARLvH0mi!(sV4>3F@HV#Z8MBo!9CLK~L!873`=dzw!eB$uM^PTkzLQ#Rh8HM(eOR6QPuwP*hnx|a+7Xln3P@5ac!Vm>YP#K=W{b8{2x z?1yF9qSXIb0FDHjALnCM3hFd%w~{y_1f313nWIEhQ4$&Wbs!X4riD- znZYNgT3@0-FRsca%!eV~9_5}`yHAr?sss*=I(xLnjDL`PPEHAlSsx1WBC%_!_!P2c z(AfhUp3HkJ3=9m#r|Dl(~*DU_)6Ggdqf zAtE%4?Fn%ZohIK})pD2yLdR&8k{U^o^Yr=!sNPlv^a}1=#OV8g;(V#8YKJ$YiNt1` z&TfL04ksIafd)mUe@78Rf!i;A4|rwTV9j$B3hVd)UDia+BHrQMVRdANG~g$beG25T z`0)Kv6vS<iC)@QrS?MZE9mxa=|8~bMB(7b=$j-~zf@fbQc*9O3 zJppI}pQp!P2%3D-;7YtOh))7naR&WPG@>dLP42L)$HkF9&=p)oO+w@qRMzGhGHZsdFe(Es)5J78Cor{o>CskgF znk?mr)Sd^gGx&Vy%w{-~7^G~sZE>?^xx?FkaemdDiOw)up z2QxlIPY9$>SS5fD6|PTVW(ID+EzVpy5-VM4-uLu%_pOLxYo6WRWn4KxQ!ES86hJyK z8jg*GnX}7p}77Q4xE_;gLSGzwi`IQO-OzZ;HEjmPYji-*i+FZIP)gf7uQ(;l^- z1z#bZTwM50_ZDa^c~gWW1g>@}D5n^}8$=U!17uNUtN-zCq?wqtt9F9L8%qHLd`?S< zcV-SereYC&@-xzMXIcL7Ur`@e3}7j*+@guvRo!3@UwjwOH1T7>m-Z%ni)Uvn(;LOM zqXTWpbrdh;dx0nhy9`4X&b>^507tIrA+@1 zJ0TytXN?<*&D6I)M`K8Ba`EP)1-mG{mdEWZLDn|DVKP|-H@rHO(Xz&(V-apiRLhBb zFO+H8$&5)B=4`cS)Yui}KCU0KR#O_CHxKVGli@=I*k!L;_pz*~^gkKHl%nI~9r}U0 zOdUpm0jlJqRmKOe;^h8HWHqcQ1PBN!DJJV`A>V%qQsZ;Stjxr0mu;-R#*;-K%Jy#_ zIyN00^(@;!!S*R}J$*}CF6ov^_Bw(=V3cTX>E_W|fp z!8CghWQr>5?UyzG4;_BpJB-qJ#KQ`BB&)sX@0Jq`1<}-4qHHcgXnx{jR}?3&)>!$$ z2XaFUppgRi>;UpBPM%R@w<%vc4VmL-k!nn}s9Yr!0dyNwRnDFn4P=m7bsrWo)#UNx zi^bL*naT^=>t8b+29Zl=Pai-`{hsScgVf~@H;Pdy3@2_5HEOSBg{MPr&|HbU(UdU? z8PrClc&`RY^))dBp?!`s{T>ws~vy{33X6$AiuL zMIs}DNn0%3zE3;u3u>=3)x!6>j6ix0vgloz{>>trvHb5O&+^DVF`b4QC56#EsgLia z5s6|k`u=GJ9bko!f0|<(v4er$WCeWW2{-xj@g5ACO73HH4?@*LdGTgVk^tZ17Rcjk zF`p(a)RR;9(s#aRh~hEbB-yu%sC}px#wVHV|9X=_n8=TTRnp))mcL-$M=yDUO%}uGN4|U>r z1O(uYn#6bCS_m_CohC2L=TAP`oz-~xl71T=w|GL*sUmxW@sc+q>&v|=eHop`x*&(V zm%9PXVLWYuQMQ{St~S=v$#qw|mKImw*ttFFgsH;zTH^#0hR!)>AP z*}XR#b4|!%Dhm^@sG+#~My`6!YU4;A%r5hIB7BYfCBHC91oB}LI~0!!O}`abUgIZ6 zQf_9EOFv?s|5y{Iy>=g8D`t%(H`I7qsZg=1p3hpu*Gcw>lF+}L(CFQkJc+M7n>C)b+oo_DenWyHtjLr%f_Che(K0@Ui zGpV{hxv}Xk_#!K6ue)bd6iM_H)aYxDMIY|kvfdR8?qN09y7|m-uY-JM4o4Up$;#i` zmw+gY76JQc93vv_VLxuk%dUv%k^ORVcD5nBoFZlqD8*mrriq^P^)RhRf&mX7au>W^ zQQI6IQK1)Y7WBM)1XfDkej=#TuPB(%H4RN#e8mA?I07W zo@|QyqXc4!9LMg{$M}AWx)@%oit+saX!;7aDE@G5a>=D*=`KNF=`LYukOt}QMjGj* zySp1nK}uM$lLuGIb2HYe|GkDURb$GD~1z7EsNsib3BHD#Gdmmm^V|KwZlqj4h}BNS{$& z8J#bEQq8Xedte0xUW>!mfKRus=eRVFhH4|sL^TSVnDs+$yqnl5v&Q9b8jl2WQ!J3y zi5WlSab_AZ^9`a0JzhZ`V0|j>bDI0dG$95 zuO_b!+^Pc1Up2Fx9QU*gx`wMKAg{^E^N2p24twG`P%&-v!$J`joe+v~nz}U1Dztb! z1Vo3Yoc?7`O#%?NoAwCVkQparYoP>F>X>o6uy#_6@weu{?MC--Df#K*cXD`zmr~qf zm|~2{N?b?_@8yWnY@}F5um{7aT6ZP&Er^VW=;+Yl4#0AP*dhJO*ae`lWq(_}$hWeb zWEo{0WTU5dFbv7Cq7Ry3!1u@>u({tSnXybEhRT+jG0WD9e__3FAk9gU%CtD?2ZV}p z<}!kadt)@3Lzy4aXn3u%XV;iQ^i2p|0s03%lG|n$C|MMx{+XK5zYsp zlG?&38xf&A6N!MF;DOI zZ}g{#-LKIyu2~$(lYNUQNpc+_sSvw(gA8Sr;cUd8Tm%+^Z*fRe1gfXPCECh0d5~`% zN<97N=udhX`7amLfqXKS#Td+C$*{d_P3_v@5(c9bT67+%AuzImJAR`#p?*f19dB2& zMw17)s`Ky|wuxnfK)AqKy<%4F?yZ=@isBLmrBTZ{TEImBR(jF~+FDD&P zrR}c&jHN(W(&gLQ0aF0e4(Bx`MISH$a!_oYtIbz2ZDYS%(g|Ik0GqDIv1a-&QzF|; zRk{&JdWHR2DllfE70=iBFVAs4SMfwe0o@bTCx3mey-A*E z^5pkSJJg=aw~c{1wnt(6|xXM?PoxcQZEa#^bZAdG)NX@(@j)+_P@Wqs{kuC z^__hP^;;v5$jl7j;9;e{*+VcG;FzaRCr8gPEoLOSQdeLMrM3KOl5LSZeu!-bbzI2T z5n`serr>f@S>m;5j8)78m2Pz$lX*!qd`;=R=r_w9w-zz=xWDM`1RP`I3qf)0Xz2&P z%R3VBgLp1MQ)5h{fe9Yn_p?$pvC6_VZlE}S65?UBiBS<$HlD`Y*Z?(_! z|NIfCXHGc&xlbNHjn)jDX)vc#dhlj3ww7)yXv;Ao>C+#pzp9HxX6{cL^`wxjOlK1~ zo14^F=-g_;saiT{^X+>zX{*H-;N0$#ntv@^U`gnZb`~)AVb%4;LtvNUBL}J{eh3W&!%0A z?P5fyGlt~5tj1B+@&TTw*QFGmS9r5ryA- zdwV5;4g`0>8VzVPf$u+kGr@(MP6LKI#z@!`3Df>pMRJ2Wgistm5zvt~~HeEgusn5}BxI#p6apmZ_)rRXXc4z=W6@1c$g(!; z3;QZ1OeLY;r}@py5N0tIK$Lh07_4zXHcfPW6BXDni6+OG3?n$|locD?Ads7rYjVkY}R3TJi)m+DWPZK#D=NQ`=W2=yVK&Y!fe z;^gOpuiS^&Ow+ZpPUIgDC~MosE$Ifq1_t>8n z0|*8}Ys3Qg9qo1F>kbqoGMO{(qcPa^8nE;6_i!fD2INSMiT(#_x8;tB^*&9&o8&hc z{)vmL!*|pF{}B+trn2pSNTtJ9`bu1Jd4=*9{q(MfZ{)IW;#T=Pp;lmwLkMz&*pD&J zwAT{P!E+q{Ms4&i{+G?~Fllo797|M73tYu`B}>g7Aw1pE@fZ~iwc+UF?$GV^42Y&Q z+awVKkf+{cir_cN8^Q#>rjOQdQU5Kd*Q230z!F8m!@{At_^Px-Y!M!LYEH#(oEE>> z@??)nz5R5kf#kYfqL*oz6XJmqt(xhS?bWp1wGsDkE^p`~Q!SBe3{|q0nmxuN zruAhA3E>LEvPY*Ul2&8|D`bOJ73Vux%rm2;ZK^Eacw)p6ltJ|oZ03mugLPTSbnp*Q zV)5U7!sLAiC}l=DJ~veWxb_D4Vv<|peX*sard~2yr1#x?A!ciJr+w5&jsAAgU z-)=Pr9d!?of&cr9^zy~T7^^>FfV|@-o6IIGa6p;&(SRNP}Oueni+O^!VP!FoHsM)IhJ)d(0W_{*Ay$L|0 zGG_jb5u>8RKh(cTK)|=r=F;H*TB-c;=dxsrnr3U=kP4+^2mxvw>AHYPC&$vv$@?(H zeq-ctO}$BxWr>xhbISAMwZBR!ET|-X0GsOs6uf*FDAy)XRbVb&h*#E8n4?rbH3FpN*QX#r=>a7*5m#8A7JBY&8iTbmkA5LYcQ;RpG$9`>P zo*X~^76?SZpoqaGM@7e^{|uwjpwpM@fuHFWr-4(#vV@-bfK_~tBxsQM};`zLu8Rjj&^!Pm3eovu-TIuq!_v~Qp=FBC#9{)dq@vox^Ji3B| zwi+fHjd0hwOvheI4m}$x&MKT@WXhOKT?4p5u;al8G)&vK+}~2Bj%I%^K}rHB*RPd=9u{++Q&6lS`EDt z&)28abfqs=EkYL)djxDq@l!ol%ag5C|4s(nesCG3FZ+wuOO7}cThh)`&e8LVVv-B# zvlY9|(bm{QLu>qFHYoV0uMIwGNzqB;(?Oz%E9Y`5hRhT#rVhCiPdLNo+N3!=f9aSd zvZ^)8gI;1X*4rs&7;FY>GjuW-BSfbRVn>#dB-~wg8Sra@u{4#nQQebfB3 zh_nO{RXjXtqaA=YH&Q&Fs|=w&I(aF;-GAHOBKgdDhzpdSq@idlFg7It zsKFXA?Kud9jMH}(zKxAjm9XR(RIbFILulKE)2$dMs`FE16FUF#W1| zfHh_z{fT?@BDfyYPL9q@=0WS8>79yJSyWVqfvXo;0@&+QVA}=0)@NPMndp+e7Dj5* z1Z7E1o9TUf`&4aDi?4}=g10_irhRAIyiw-`I2oaYX_+4X8I-0<5y|B@@H{U#PSnWX zg+R%>Izg6e^PZ0ff6W-H&knEkzRqiT)z}w%dvb|X2R)TK)K4U0KMSrX>Sf2Qq>)lE zSS8oy&uh(HNvkQ^omma{il@Q)yG0%^1zw*I%tvR9Sl!z)sLX$;Pmqjrk|?{6A0WmP zWV`&7)nTghig09P{7Lc^;81kT(vD7V5sff^oGyqQk<75I-y)44h(sMki)E=L8>74v z<#$jTjpSDv*BtYszeorT3Tn+EY(>_SF#VXqfrC`0pdDk~Buhe#Hm{4L?>{JO)?Ki% zyDBBwyb}(QPGF6>bJ)=+rlXz)&r1j9vR|p5cPBM{EJm6vOj&{J)e1ZxgN91E%mZZoCHC6YN*p1 zqN}-Tru5_sDU8~qLJtI2Mp3Wp8MGvADcTF7_w!y#5SKLYj!0$#Ow{Mp+O+H8#Kff6%m zzC7k=b(@%VP^`O6Nvn4|EUgcI^i9mA4;_~1roVan)m9EZR5(iV*=p@iTNNE{3oS__ zjx4>64=P!^hc64E=YVSD9}=O~3t!exjoOYuS$MVyK@jY~fF9mwu$tjn@5@JTogX?& z)L(z4C~beJMI8R{4V|2c`_w*4SwPWh+&nN8|4`3_zUcPKmcsn(-;Eil$n4dI&8ZG+ zUM|)huW|oyT=BWE-2-2>K^2(~MkzE$nF@D<1-k|&fo%F0%6rPn81CVE9S6qqkV3OP zL?usCiw|y!+m2rfNfMwD9r;dG2exT|fJkP)S@aw@-_0a8Tf{iy+tcQChJ_;ps#<0( z7Xb@&@tn1#*wJ5W%3O)|T6#NyL{37*_{|4eBnRdsiF9+87E%YHw%bv95mc@LC8VGc z>TK-Q*Y$UgX|pp5P5TaWv6M5`ZC1vzDP}ZuW;RK!Ou<(U#VJRBpT;p1yU+nr6Zwmg zZ3@?n6j>OtQylR-hX^+v3o2$)h&E>Kmw%3I!hb74vj1I}t=--y35*U*S+=zhgzBXP zN{vl~!6!KAu*4?*q<4%z#30HEMfuV#pCDL4^z?Dq$;yhzD!MR?z?!Ty_vEcLLXha| z4b~v!OWQg0-%bqo3vN4Fgq3tiUyAG;c9m6?(BniCIlp*IKCQw@@#cW3C+GH zWEcObf{ccv7Wqt_9sSErM+^TQZ1C3pl*d-$s087|3Z+OHC_gDB6QyEh<_z=R)@2@UN_TR1IUFd>Q_vCK>onaZVtz{$cuVL{>>|eVCo$`cIG153D7o{giA~8(O znrO4?K(dp>vn7R5bBNQ(P+QGjTa|dCM6jx(mZRBJtdi>W77qnKQ*xnH!FCs=Nc>|2 zLQ~fw$RgdnI}nL>X)OlqtccIEIo^*8(c=R+7#%z8r3fu@-r%Guk%c#os${Pg%@%LW zaEYTbU<c5halR-peBSM(I zY^P9}+uYGYU}jmb$eSmtw~-5 zs+Cr5Px{4aoo84*jt)xky|k}mZ@V?^uWkvMA6iiX#&W|)hJuU{x9-sL??FK~h%HX# zynIkL%Qrq`bRktHCu0IrHjLF?pD9p=+W9Iw1IH%vkdEK{TumyWX!_{CyP{Dy+5EFk z{5N1uF*rW%`P6;nJR6>Aj?%TZ&vTp=92|%< zQi*%kS(;xs5NCocaT75rKRcWtXG3l@F_JAYq*(UM+|UU!&t{p9E+NV6csKeT&^CuG z`g%OyWJ}XFpqBRW#8_1V&y6Gy_mXDjsk`}IM4(*QfhF6cpq=Qkd^6dO$qm5QCcr^}ba{fHVvdUE-)`MdBe^}o)DjR>j9a9qwt{$#S-1REA-!R zGm3{j!B2Z({+d=#<1Otn50*(=CLB)#2?XTH%_EVZXtA*$TbX@;cazhIkR%=|NH*2n zJl^*i5)nUyPKhsE0p`(b`ZJz9gSkQ1r~8{_%ZR``9P&6dNT*hU6U79%T^iHRxsV7_ zr+_?8|EsrTJN2ZqgCc{;o<}Lare4;5`C(!6h>FcRNxXVBxo2L_Az~SdbgclvvtD-b zb6iG+ja&ohZZw4+lv|wz2fmnG{=f$(ki>C{nzBeP!ASBk#pwd*=7SN7MTEJ5Ns?Ct ze_OLG)%SLCk?KHyukp{0kx7^m?3)$MIHDLSSadw!KMp3<^XW3BDjTFI@lYuhzp#4l zB{g7+3ap<$t7PCGs^3Rl*;;TJSQ^}7WV1SAA-mCEx*C$SYRay@A9yn=jV>Ui>Z0K& z75+w|#B!?XpgGf4kQU>U!ffm2k&jiLU{Alsa3e7pERA% z5h-qjYH+x7J4_BTZt*c)g9{(bMb_MasfB>eMTzg<<}}rVARuWCx8te-Ra#Yf#L(&G zx*>sVh#_BsLZC_-DBUP^89d{`&ChMw-c< zRdA%s7AWl7sRd$N!4q8$tkY$GJB+gk2df97aPMlNFA~I1XeQe4vL7wHDA#MsF+)H6 z$ywkaBd6YAO|jiWZ!E~!NHZt?>(E0&S)4Q3dUgh&RL`BBl_|sNen9^s^g&IYlGmvP z-{gT^v%p?mTvQl6{$7~I?_sLgS?-6p$(%XIFL<6}Yj5<-*8H0nA>4{f#!pF$%K*If z_Wdwcl{b=C#mt{qsk=XWQ;-4iM*V~K;al;$uhz(F()Ut0IZNFct5Z>4UNr)-36p~# zf=4$=#P@lB8&m$R;cyLZ@bJLoasjGP9qlF16;W9BFnEdantzW|hh}>xa5M{v=-ExU z4;CN>Mjxal3K1yEApp5t_RTZ}9$HCl1#$c6UxpivD{%x0aQJDHNT>T#@IEtxJToTrg2!n;B%+{k& zFmo#nU2g_>%YXVoV@%!tZ7-Gkp*>D+M3qXNkpUSTJtZUN4jKqpHBAQooO6gEdvFAq z!&FwHKM=)F4OC*jGr_KZypzg}Kq~Ri;SM6Z%4Rg-`ST{-B~BArz`5w|D-w1X0@yx; zcvoRhE*BB)^%qva^|#<#Wb=zCPFzRMpu#Fc2|8>cV#yt@7aJ!_!B;y%&B1OOEcli5 zUI#JJEBqU&U8+8yUp-=So}vBZH`HfXlVqd-F0QA~a>HfyZm^B{((CQgHB4(o6%~(O zqEd=>^3eH_OF3Ugc0I!E-JDSI|mcHr(CtGt^O zWG(utw5BsQxZStl`BV4U*;VD@EMMpgb>nQbP1Ddfo!FiVsf|4=qH>Mtl`-3=xP6Xp z)X5ZRtgn7j&F?hB+^hFR5_JL2(E&T#WTQ$SVS9Q4VLs_EXS~u1o<2)KAIwm~OaxQD z8Vk<-c(@%ZY*YDt+WQIX@VÐqKUAE>cJTaf`-Ql|r_k$!sRs3K^zMFU90z(?Z-6 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 PfFHDmuKH6|tGoXX0(M&Y literal 0 HcmV?d00001 diff --git a/website/src/img/crowdfunding/github-stars.png b/website/src/img/crowdfunding/github-stars.png new file mode 100644 index 0000000000000000000000000000000000000000..1629e1b5c668f74e104c4410c0adb69658ec448a GIT binary patch literal 80238 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 literal 0 HcmV?d00001 diff --git a/website/src/img/crowdfunding/p2p.png b/website/src/img/crowdfunding/p2p.png new file mode 100644 index 0000000000000000000000000000000000000000..a5a0f938b6c6a2ec1a35c2c4d77f5cedb9b11e02 GIT binary patch literal 1966 zcmV;f2T}NmP)W%x4!~!V=CQ;)3{x zK18H_y%d26#BcazzBK*04&py_>AZacs!#cbOHbY zB~SwwI>qhj&wc*fcVs2KjF(|0@KBEM0gK>);s@8|Ks) z(vu#DOK>QO?f*|YOpzAK^3>*0@LzO71zhJ{Tr*}VN$;qei@ny&$$UrVq3MX}G_846 zXlO`+z1CgNpLck^!`Qe%jSxyyT6PTa#j&(mXalnsJbAcJ1Bj@g)(9c+Y;>uEwSm=t z(=E1S*Sb!Z(<)63zllF+hhMj~cJrz>SSI5Tt%!1Q5>G*DrV6HZCpg5W>`*!%!4LT) zY8-vDqgrz$d;^!CJ^4~^;Ev(P!c`#NiqVAy;Uk8EG zP}xnXY);ybol>8mX{Z^yBke4;4##!I!tPoLi%!V6@}hx84=Wn?L7Nhf-z+d?^WIcJ z5zZq>%y%Z`Big_$-J3>ig?cP!8mtjXe&To9#wYLyf2AY%jU!A7%oDw{jqwX#2-Z6{ zZpq@1J`!mGpCkgP^Yq$brx|h-un}Rv$=XJemQ2)0t|#InRHYHQ;KOG_NJdrBrodAi zgA0+W$uzYPsFu(L5KgFO0!%)o-)Axnp3IajZmjLJr;2hGA>%Q}CJ|EU#j!lMgn|vW zpb5O0PUcLarK;L+VThk-AAja3{tE}+L(UCW9A+(cJqIzGL>>WoP2)MDo}I=JHVt{Y zxw7I=r(Oey6kV>&(1J*2KdS-nA5?3N(2{GYw^j+Lo@y8d5ve}ah4K-keB~OaiPjp= zl3DidargU2+Gr#^q<(RStId1Ok*T;#8w>FaL8sVyEr~oXo>{8pGD~rfwppPL)C_LH z-FUdti^u=yh=u@dzH6H35^EUa$%`2Ih79j)d#&&qv0RGn;%`gS;KhGuyGvku6mLfxH6{5m zOs7edQKn@29<~d`JxFMaWy^5T8i6g-QGe-G9Kiuin8O;6eIrV^j$=BYD?H35C-f7! zj{7lE)|f5kylFpSoM&`W&=>{7f~ecmGGUY#wUAY4EkIZD^A0Qx+y68z?+D^~ zgpa%zAfYmCLULvpLAXQ3ZXbnf=bx;8W@RHrdL0d2?2D0Jl1jDCEqc+5r9C*g5Ky60 z>ZkE+UF;PB`UJ6c_|)wqbP{apVlRqsxxqTq$q>(~CvL+#fqNuwQJ-DYNYf}G#_(>s z^Ry`DExLq)r=4X+6w>4s+xnP*ldh5-c_=aJn^P&K5jLkALk9TjliCWxz!&ewdHjSu z1a7iaSUR;&vaF{A5rm@#)y_UM`OCsLdrXHUL1-$(h6<@I6wDoejBD65xHXI<5)|!W zG{Uh=1|#Kf*2);MbkSveWm}Dq!d|Eos!XP#6V&SPD$*Fx1)i{SP?XU=T;+<`QX`D& z3L7|bDX5f{CdedHvB}!TuHv4$Pe^njcw#K4X~a01WDL5 zws1;c(PxNO80KymsCR+M+TEG;qB{?%?rX9@AIPWNTet=>9J?7&UOCtlJKe>O$Ak~? zMzKc|S?JqtVBiB<#nP3wj@;a)gWzu9I_s5KM*7fpmxWwHa?i*E=4G=LJsWFfP9vW_-~Bt+|}9mr8xo^ zy1U>@jvW)y0`f6E0OfR1)SfkrgGO^q&^KXO$SwG&w;voA&Kthq^Ns=z^-b)4c6BFb z9I?4|)%`a>y@08g6aL=`9Qf@`^)YV7hRs`I=D;Uda%8!}c73zD6A#?+fW5)g-VcRU zZs1Sl>JN9rs=fUYc2h#=(4j+z4jnpl=#T;b1AO#)v}`0m2><{907*qoM6N<$f*!+} A2><{9 literal 0 HcmV?d00001 diff --git a/website/src/img/crowdfunding/phone-mask.png b/website/src/img/crowdfunding/phone-mask.png new file mode 100644 index 0000000000000000000000000000000000000000..93d675f77031c605da492d3eabb0e96e02fac345 GIT binary patch literal 36696 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�$sL>mnz4W`Mz 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ปZ$ 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%0AeD9t;f~i8xub0(r@G7(D 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"?lVxFVE{vqRhSAGHZuWZ}8Lr^@1mUhcDM) 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%0AaK|ar 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

FQOnsah#Qzokuv0)D>SMO6+WznC=wT0w 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≀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�++Lh2o(pD>qK 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%0AF(J%zV(X=;@KZ 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 z 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 z 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

A@goAg;0Br0Sh5M zWZT0EPHW%+d}6XxkD==XFmm^h$fZffGH zn(&==IbSvO`AaZl@`}U336pQHUQ%+U0MQXT84c{5v}-Tl`$PVO*kB#fzOuBPJ-}3s zA}eGZ{iYbalHosD({hjUEhB`5Q^5x z|8ld%+SL5S_qZRA+K|J|B*$S%B5*IJ@|q=K%ucQ}D&-+zr&^tI7<`!D^T{k`OF-p& z-6I=F0AHD9{d%U%VCTr|T!^&|Ii*J|JE zuESyCuXd3m(Ux<4i;VLXz3wmq5Q z61v+pC=z4G{RX_eMbu5=CeLS>5&bPim5keTf)GV;4lft*9g?tkFE#vljwd~7k;_)b zLjY1r`Ukr$-qB`Wb5s*@r_JwOX=n6lMFnX0RtU)zU3788+bVZlv#dzd{3t_O#*OJO z$M@elvyU-)$09Tm%&|3Gy7q;4ZjrF52Wqec!J*nV zptM)ccdUCXt)H9_8&-g>o!o+`!H`}gAH9pJN1-x}2|%e_&W>F4!G463|o zgW8lv;`g^OhK4AQyzI?v2(3?=i)Mi;)>hmQi>N*qr)m29K2-3PNby={(n+lK$0Ba{ zYH{hYx5>&gU+C#;Hk0bq=J6BpQInM{y1VjVNUeimTojdQMrPn0nbcBCNbZvm{j7BI z<9E*ZcF%By%_Urk7jc_f}z+NWSTE3r<`nWxs;;?=l-a^qvhVJ z9J$@*w}dS0dVZhq?PG%aA-j@Uj*jpXJD-nLZJthW3@uRj|Ml60_3gZ&zFszV-t02s|GJ|Lb@u_D0B-zcRKO!zcD7DdkD&pi zW`Elhl@$X%L}WzFftR5^0NVm?0$l3f-0g2G|K@JGUQinYJ0Es4pz|lH?849O0({to zHQa!KJpQk%@_$`5*n#$xp{`Ib0}m@3JNCcKQQ2FRUGnc3NEH+S772{&pWDx$i?K`p zy$v+@T$Ekv-(Mx!#r}2s@6*OQ*3Nb||9U~gO^RJc;$M$xxJi@B{L|>)j%C|7umkO;m(kM&{oyh>Ehy$o?OHh_TE5od%$D;4yJh*?-L=(B*%dgTHXc|}oFAwNnp@7}T%h!(d zzfaA-NB_?<0W)g{ET4yuuazsiuz{A9w+p-Me=Xc&Cm(O%zsgWI52*V;i~euff>cUG zR`NefAOBt8ILsY&=Th?;h}Qyu>P@>kNhp0N2_u;FZ2b+5B-OAFQQYTr!6KG63~l|U zr+qxxIVROBwh(K`H>3PugjHB%N2tBJpR_E9`T+9exr&3Kkr9JKhM?1Q>=V(-hvH&l zC!mxRkYPe0J9+fwC@TKu4v3Tv?xWolX!5-#Lv7xv2km2=Ka_B!I zANba~*meGT;q66@IwUA-~8BPTRkns-AN3*2a3@?-|Ob zN{b(Rw--XA1*grMDN-~augb4}jQ0#$#{0|?n)j&f&&Do!oF(<}$e(fQ#CMH5e+r%n z3FWzKcP8+_(;ZyUwS{G~z9Slncd0)Hcx|HRgB4Qow%_pdtP)RsnMCw=<2iVaY2rlo#zK?!A z@MmEp{8OED5+3G#6iRsDN30z%sfCQgYMb?oR)@}lXIP1)oWU#JbGY~UIVyRxW%bxW zBjenlCPHTT%7p&-B5geF*J%rUb^ij)5==kSet-GUZ!@6Th}5aph(+^#cXkLoo2xCp z;`0s&h8FeJBORk5@l1VtbZN-ehg`9kc~*9A6w~wVSjpn?3Al z`NCq*#gU!o%<*~p?c#S0zc`9j`Pbl+nJ~;t#JFdqqx`#(%C4K^8@)Ydkh``mrc4~m zcXcIw@{7;P-(Py)E`n`CiwL8{c#-APmXf# zI9`f?L%Dgc(2m1f3%@=7RfdIn>T?_FpJF<_Arx+=yW9K)r_H-~Z z?(Ch-%?`nq#uC;JKaN9`sY0Hn9ew0wAE1wweOmmSk;rq^nx5ArmEG5;DU2uXUB8q1 zZDm{>=D3j?{6!9mjO}MUWfL;*In`K+`M<%#ZYbct6W+i2bd!AQ-S;XbOM??mh$_pz z`W}*lcFVz<=U}vQ!fpiEia+9-#4GjU3y8=$hY;LYr=D6G=fW4pt?PP>KizuuyvXs4 zvyaq`bZwR48d~@9?Pk)*+4HBa_T4JG(4V$iN>9X;qpGd=H{HN+ahs zD-M~rg34f^G9WABQnWwj9GP@PLubg|-dtb5c@WTj2*VA*j&ZK$Nvwmoj1a;RPzdS= z`>nWi;k@UEur3@Gv3<{p@RksE)UPxh!n#6jx6W@COKgGqWGG!$_3ZvW&)Katk^%5` zrlWCnAMAWW?QLOepwM334r)iM7izX+WY$F z_vU$4fKtq-P%1 z2euuBDkS4hvEg2cZQ(-mwHCHiTCgM8M_oEjwH1)H)dzAc0TbyfcnvFx1w|)yZ|G_} zUQK7@^FLB|7?qQHP){d$oiSBDfB##6#d_I!Q)t*(t^s8;@G81@y?h~A*^La`VMBMmU*>nSDf!o8^a2fkkC=KH2!zXWSUxWWV6hOpc zXWalzq)f%l4RY(4e!}VP`7%SW(aea_BIBbIZtDm<{}sh{*N!I4v)5YT1F@2I=%xH? zN^^x2jWbNf|BrPR6L(&i)S3Jskp_f|)|K5vsK;sy7@VU@aO2C2Gm7?qv?JxRy@ zYTGP)c2?cmYQ)bE)hHGtCts!CCWhpC(-`ff^q8U<7Ug#AlSS@5M#FH`fiKnVYQ^mE z%vaFJw#d~wEWj~jaSgJ>$SOfb+E=~j<#*vuH#$UmU}rvY@!2&A=4xs}z=x8?)n6vR zaqJbN`!oO^c}C$7BN?&eMI2Ljp+n)Gm+zXt*$;v~Q=@nIxra*j)4=T1}hRz{` z`95NGRCI6qRQW$!2vNaWr39jl#NNC&D`g_yP7KuiGJm*eF%!tMe#ISc*@v@p+g0PP z{9AD@mt7C@2Hcydy#zWHyN_NfZDvAxsp7TG2-rxe=#DQ5Py}nN-oDSo@z1@}*hmy_ zW&4VuBd$vUz3DUcW?mf`g)UM18pa!(8?`SVxoShdV!)KqME?7IB4rTtDAWvXWxs#E zib$R_dzU6)?Sa4#pD^gPXev2HHE(tO;A*NGtN-Kgx4kdP@M@+jPfndN#Q0oK!LFAf zfoUN=jI&2n$hDT^?Z_u0+Xc!@4ppb9-n5SQ>Oin%P89Py8l`T#O6rDkh21CZB{4bh;QuTr?!9rzul`z5&{ zySu3@FHV=SQ?`?QZ?Xv9a&s5O$fH;=9gk|N#5}b8XudJg=L~=&g0j{HC+D2^S@&Do zuRr^G*AJR*_riaGL{NFe-c@N*N# zD1|behf-j36e^RD9t$r~Mh>MBm^V@0L?MQ)lFYOa70^yj!qxb?h4=F72ffwe7Ml-~ zc%pN^e~w@?uZR}D6-Rx!sk@*p*rd-V4P`?3_8ruJDT=eaoyjwGT{jZ!hKqaiVr_IS zP)U&J6txqJlXZK_uK>PClz)_OENEZou=LQn1T_79fTol_IM#grHT{^&Wo3}@ zy6mhlUCaUTS`Pdc(jHwTmt;6#Ye#54;5904)u?L)#q;`H#eu~b2~(3w-85b(X4+KAN=|@gAKi?&F+XT1p)T(DGSjv8X`j!LNG=rgn)XK}4}-NvTmM$O z1a9tIpQD~nh|CPScs|m56$P5yqOYj*D~pwHz6yGl2=~6XJI*k!riAvxM}w=$$OB&T zw?a5terM=oEMAiT-rMCk?M|KDyg7G+wn;C|y)`q}BCT}k249kAOcAX$d28VJ7ZRL| zMw2M_i0~TDgpc*}9 z^&&d)55`vU?wlTIS^0fqE7d1kn$=J}Yuv)eXqM58cjnk5isz;_?{Z5$sL40#H+<2W z59UGfX}PZ)Mh2Ow%I+%sDjRYuSCz4{`*I}HMU9>vDXS6jGJJxsFeT9eyXllvl6e^l zb0Jd(Of5|T@$Ds(6Rl)6Q_b9{=nR|djfp6M2@(3=?Z)ybwj*yHYwk)R3@xBJ)l?q=|e*ki0blWBgpPAynx8%<3~d9>7+(PpP7v zqCbBbUB2G~cF!u0@;AsL4y5nL%hPNYyZ1B8#eN8H%}a@QGNYx6=f$i|HWIo$``gTy z7*Tzl!SM|V{h5;=hiT5Z!mDL4}WZ!FLA-?((0trpcsvj$FQHnVntSHWSXqLcyH&wKPv<`=_1@MgevX7Vz*hCWZ| zRPIE)|CsfLo<^fmycc%A-y{X+eImvF?Zzw_+ z2UXrIjqt4&rW+|I$%la|64fdf)Am%s_V4FmMcabaeen0fmD>1b85OJDTw%=b2Lmg; z-Is4_MV@C}sCUNDh2H4j(RBTYch~&KXUZG&!v+Dbj_>>#4kHA{FY#{3@s-~*qt_Wu z7N-r_$!5-rr`mGfzN^0-&Y!sA2elU(@7_WPadODha`eKqpKO=yy=Ca_$mk<^KS|H! zf{m-?7gw7nOkd`2N#(PDQQ6(J`l{`|nX(Z`Dd)(Z`!3rXY#SA{A69*{D&J$;dmar6 zi2+AoR##W^|7dgco1%?e8LH_;XH?DI($Z@l?>}0+7t$Mg>fBBs%bDU5ChX-WBk6yo zen);VJo)j5kyFca-kVeY31(TBGUac5G@fr+X-BZOns{JQ9&F` z$|+>?OX}WK%INGESK|IIcIDx38@9vMAQ!gKFe@cyJ&L(_=lid6L24l@o_39Hlm>#H z4a(D6e;y*}NjJnnrA#*h>}FIn_G7=SmtEHkTpQRz)|`D>t|Y2&V>yx-%?Z5hfG2fzC3EU1ov5@3rFlk56+L9xh~&H|z4h zh&Cls`eV_wdKg9Ztci>A)mniE`MT-=a{DBtjmDZzHd!o6#-vznr{m*}l75*UnEG_uC z05>!0Gx3e;LV7%hWjN{YuPvF$ztnENd(D{3!r{ry<6n|hC!ZvBr8YmxaXyF;63b$d zO@e?*{iHWGzWH>A-J&X4aubAI z{=^(DJ3mSm zu(HTh?jIuCgG6X*UxBx|Vn~?J)5QcBAHPSZ=h!;z5v!+$U&T) z<=S5>E(lBje298-oTycX`I{r{MP$jR;wy%jC_G`tEZ-Ui`CKsR3{7ps z>b(sy-17UGc^Bd}%m^rckDy3Vn)K%+BB)c=r_g+}f{%+yd52F?Wwh;I3y5j*q%0Bz8j)XpaDx?`+{%zi4|DB+X zA#Oi&__ccc@MgrUx4SI#wIsg$2V&ffJLc<)o0mRi zD!*Fr=E-wr?&R)`1)CCyj11;MH$(2eyxcpg`uI)K2ow!6*C34lK(7X52>*QgE^6u_ zrra8F@N_*M>VzLTH2E zJO7+c&tpYn<`$P09z}UFCt2^%d>uE|sI;jb3T+B#UVLPxd4+V}Mlm}0wvt*73k2l$3k8nT zKHa3zTsBLf=VX|WVC`p@aBus6(v zKl-%0Nuutacqr)X#??d>scV}#*p%*N#KK5|CL*?{P zk}V-DN9XdFCLNj*#(*}+Ss$M#=I0*0hn{&dqM(Q6O^Iyo@wRAL22~gKsO`|+MnCt29mh~*Va2(A@1={8CHZLqz437a{6kJ3^8RMN>TYZA2+oUF zy-ZC{+!AHfgjoqZYsC=C*eZ4Y5d6{v?Zd&0s*5xqk^XPrcpdlq;fr11w^D^DBCf?Au zYg}1)S?0NL)5O4S%dY=L+FL-i@qKHs|L<>)!7>WU_|jWajKM`{>^Ld4`nV%3P7}!qHXJ z9XG4K;d#`yYM*=J(DnyjQbEdCP9?{PtY&eKOtQ#^CyC7cv+oe!K%398jSVezFpZ9% z?p-}_K~MX=TtC{??ZD77jZV9?;$}Cq;eq2Uu9oucAT1{ad#uzs*QE3{S zK1bkA#=(o$7AbVg5}PX%ZuW>*XVkt=_6lOFv}R9Po#Hb3w&4^{`pY$H7J-xwM&Ow! zh2pI`5V4!#DU=-gFT!1HR+9-7Z9BEE|L#BMg=m&^fJdU35{r8(KKoSaH5@Gk zQxLzy_8rIVV3G_EK6hlUDK^##;l)+2i8&kj{;j+9!$VfNQJRVByE631tnJ4S2|@h} z!Ol4e!q}c+3Ge)dGm{?nA0kp5SR@k%(+!5ZtKR$4yUajIKk5gfZauOoXS$g@MGQHa zKIKR>;(YI(W6l+NlmW828yccUS^6ZtTcLNBn%Q-j3)!)#Y5Rry=d5#I`=j`o!l%Kl zVv6?k8i@{ZHpLugsMdv-f$By83kv@k^=_Wz&xNiX-60iD@bY4pEBAtmAcTud-zjFe zD{$g%p$`&$>RQFo!TR2v8LGIZJY?zjV`$y_*{YLRjc5iJWPRRx*E|tyJx?6w5{v)f zZq?*GOrVeYKtR5JF!h)?8SW(Yai zH~;Pe@h>C9!>@-85TS~KvH}PN1q4z8{y-0#AT@bkJ8KX~T^;ls1Oj1$P@?QW=)f6} z1w;uPAOP?f1%LEdDQ;!4lY%?lEi zQC3I)n;%I3oU{CMN;pdsznBE7Lq7<4^yv>=CitNnM1&1$1T~u5U6i+Exp0TpAKYuA8C?qT*Dk~?ips1v* zqVq;qPv79Jp{3P(Ya3fTdk;@9Zy#Sj|FH0g$f)R;*wnO-=^2@yK4%pa78RG2ek&`l zt8Zv*0z9PKdi(kZ28VtOkNljOott0ywYapowY~FucW?jT5O#Kcad~wOzq$P@7f_%7 zCKmAiZ<76AauES?p`xRsp=14(3kB8Zui!-J7z{5kiKVr$%-u*B`9iUu$fV@g_B>+Z z*M^c>xKHDdF~8hof&CTjAIbh_f_?b^B-wuo_Aj}XL9&2i{Y|LA3k?+&cvNUWLdQh^ zn=r93|4CT?p0NK(kNzgy|4a|SMNt0!5)BOlc;RAWV*lrN|KpQ~RX{EA9+p6OXefX( zp%HwnBW-I8B+Ri(sf`(mrLZ@Lu116?or0>+oM$cDPh?dwwSJpmnD!Q{5twrw+ zTDrnj`1-fX*>qytKV~WO2u`|IYYs|EKo$GO*^Y9>=KfqbNawAaswI~(edkut{61W> z=WrDTIIMLCYQu`sY|TKGQ4ts0>33cul?xLRx*C>AXC5aUXAXn3BCyhaE>m^zkbmP^ zeE`o|?wQT!$>3^D+OT35YO#R4P&cWcZVwZgE{EEmZanC*PB_f#=m24k5@~t`gfVJk_ye>Yi>WrD+Z!5h?>f zNcV@K`?=R6ln)>cC}Ll!)> zHHUHkD)7zhzV-UKH)hjZeULcXZ@b6VS`#8xQ2D+u-BZ&ni2*p318%SDq5ORgr4BVUb}u$)#PqCN z;@OU=(smV(8=I0&vPKNRzip1hMJ^JHg(%r-r{54b#+{^@lX=@?v$vtG+W3^X z-ZTK3(|+fV7U|(dI*tK^c_wrh)c_ILQAi5YFe!it)fv{WOF6l~*-yi}aFO)@2?bf4 z5zNAxy*hf`#$xr%UzPrTUrhRLs1Ym-coau%gJVruTVQ$pT-w|EvnQYGC*6N9?{}sv zzJCp(!EhTJ`(rZ9ImDc+{4BLSUtQi7{K&02TBL@=BB+Efup#Z*ZfG;<0mQ<6=6_W; z1xQoB`QiVHMnPNu3DE&t0_=x1{hFcVf?ZhfX3l#iXb9>{PM@{6cu-3VcUb5Hi1Qaz z@_>fmcRDFwY-+v41nrjE5c9wgRmQw))_Oyx9aq*_aD~oYDclXl3OL-7A?R$j*Q5O7 z4NKAk+Y54;1_LV4M!ugEp>nhWv};$Y$eMem;Ng2gb<4h=5?2wP+jpwUKK(kS>chFj zy3`du`@RB5r$8$Bzy?ne9YJLMX@gUb;s`r65E}vHT!F8=n zoq-Ex^QQuZ!mzJ#Lw3lCJN6_qp@V3>Tf+3MSwtXt z_?F}EjoLQgH$Ea`_ge^-E|}n04NSY1EH9NcOZxYZ^6sPp1Ml>s z8^m1TatLKMYw|Y#h{(728a83!foY@M3qYJA8YyD=uLHi~0KsC~5Q(qU7EKx_-tiTe zjDVDNd%UNWi?Nr^NY;LYE?3fCmk_jFWHWDV%c9);^u0EfA3N6;(sMssG6>KR*>hJw zLqIhx0OA{X8P^ncrM4a z_YCKl?W$c^{C2%XtW#y)#z+ja3d}?$tiM34UPN!jm_uLkiSpG~odS$I!G{+g8v&AH z93UdsEAI!&Ki<%!x9oSqK*$Tfl&wqBJg;w_RxA&WEkB{&srKVNmCri^pqt5W+*+E} z#q0p`eS9YUm`9-Eocj`Sh2*pm_wk?1Y&*IfuS0;%`CdHG08UiC;y{Pvb(BEn(6A^R z6FCezXr+3t^hfDO%>n;r6oT03>J5}p(QPX`V4ZX|AJ0rH+ffec${5Y)^g~>5`-Ake zuC^(N)#+khpWeFFR0nRsvVwm^ef%D6(Fb*NPC4(|yA0(E@RpK_@aL_~sBewN)f%dM zPf~A`^Cp@j!5dYOCd}w*!Lpzd2e$a4xNK(iZdz&H8=KtlL@*_i5KaVyMvZom&1d<*e0E=C0W2>7mO-{h;6X0}$2Gpiv%N6Y00TcXj zPA)vbq9r+5K1Pk!51>)a!V>Z;l=Y2CB~NZcseWu z25g~QXdPdY=`Ghuj(>|pE-Rh4(sFrQt~A{UB!li(+SL|p@=wjyvJ<&hOX_tGdHu=k z%QLi3%~0zwW+%7VZ(_!Hw62Pm*_)cAaGxPbsyY}ryoL!flL5;x(f)E!ti_>Q%pqV?yl^gkTs~tn4cS(`sz7FSyuITJG-!wWZ4o;= zuJa!(^eCxjTT8L;V_xnbiVA69*JN|t0udM=B7?_WgMns#jG)wQ$?P|!)t~ijLgO9_ zyG|jvJq)8b>2bJuOdl3W!Bkt_rn75mb0!tr@%X-S4?i6jXsFmd+7!aQ$Oqn z+Pcm;KoiD>Rt&X?Yn%l6wyVL0BHy2R(J&rzjQadxjtIlMqkfmT1!*D(r6X(5Ow7Y> zpo?8X>8BhhR~i2DshEy4CC}4!Bsd)*p?^UDM2Hx{2e18kVuR7`wRaZVj>w*C%B2xa zV0|~I0*TdA_7PDHB9qp|L0d8JJX+riu-sM3%#66Hm!9jJx@6Yg)dSo~M96PofDGUZ zFuSN*C(7$vM|r6km7((_yI-`Rp}gvY)3Mg44`OBRkOc6{^gCQY;c{UPhu{XRs6d*u zdgbXrg!lML)$P`Egn#wz^C?9rUBc6%+76>Q{cF3k8MCWHeE=-t%ZFIDD$SAJ%EiSs zd!gimB~KnVH`k*lS_;LviXH%}{4g^VbZFlgi~#pM16x*L%?uq&!=Cl4awatQO{+oN zUgumJFqKJhDt<@5)@Jn3(wD6N09PdK_bV1}#x1`5*rveYCpFAnRlFM@^-om)Fci|8 zO(DsG2x@4W?@$#jYMSR`OI_APM~lSbVD7$jbTT#%NV`Lm57rD`g+R5Pn683zw>NEi zE~DPSLQIv&HYW?@omzP-(@_Mj&s2lhwUSKsw9UR0-S4!^ z+ua6iB~idtdnhfBBwx%PdsfKdjSH+);D8EQGw5A0)dOv|=-}*0e{?rTV*sAoFFx*a zV~~CCW^%Rxa2ss!hx8vGCy4~`^E~2v?m!Lra1|Y4p!Ncfz-VP^@heitDYTy$^`Ddnq*;9U} zG%0(}byc4nM}TGMpb9RD*OYltm#2%ThM8_N1XsCVOa|rnlIsS`{d!v-521O1B`&Xd z5F{=Gh_BrqkrzJ2L*|b82v(bu0bbwcmBtEg@jm zUcU4A3I#WH7P4 ztE^I z*G_G#J=kfDKST5pB$oU+nBW5tq77}XGvzIPJ+vt&qbda=M995i>Ur0*LYGxp=L8og zB-*j5i+K;TNDiO^z8xv*0}o5u*+^>fDnk&Wx%%kE11N>#ysis~)%}pUJc@PPy6v4Q zoc<@r1G!!&BlSrDn&bZ(u66GO`>m`Q!_Te?cF~7^Nd+bZ-){J4yRZ@bvyyy)CeYKq z$09V@hLFfLnH+86zA>;)$EpH2T$SA*Qxa~WI3s{m(x+uKy-fO(SJDq8*d-aiUw7PLI}a22PZ_ z@z5i)AL*;BYxzE0_xT)?Zek6oqfBHz-Xfg+XUgJfX2p3>J)T&7T1jLDcL#SkGO0Hs z`Ij6orj^_7$SVK!Cmz#Sj$Ns6NbTe?7i?6<#GhYxWBkZ;M6gV#xEL1lNYw4l*74vkCSZKjYLT$L#@R zR$ua~TV$HJ+s2U#c^>6Kmg1MtqPp2?%jWioBn-o6j;RD*KTaNl#n+))NlV#%bdBVL z0qTm~&)$kleKl;%DVkwODD?^Ysq_Rfk`S>(f!RHb_7!noBM(=EPWGEUm1Nn6;01D! zs0LK7Dmn|s-`HwSGWm1bWmxWWQ2dNHdvUw)1YVy5)5FP773DSlnQ%kW@f+-AznUr7 zWa3nYGza&Hii<*aToDveAP5Bhe9 zr^isNO#5nhl^q*Wfpe?b=Z~4QX@>vH*Gy59dq%w}b{>8EcOofvVLU#Frs5o6yt#wX zuJ?lLpP1q%%H8S5cu_d@TjdN=NT>fo`9-QVNqxJ(8FY|0FLM1%z9+p*y=GG)Vf%EgRaMEi%(<7pC}UbHj|Vm3ht9n=jQLG0hb) z5D2+@BF`*U$J6J#GqJgOgx>{YM{*qEoU^n`%_P#6J^!pn?6Eo%7F^BtFo#qJT3_>i zm=dy&3}(;wxJpaCWUis8MEJIX9pw*>H*Zd(Q@CU zPE+ULHl`7*zDx)xOdpMtmCX9dPII2#KiM zMTfo6#y-Rst-yb(iSFtE^cc~3P#qwme@p+vdnj#H<5 zu1DXwJ&fmUTUGY&Q=l`0YW4I#!1XU?tq*nF-F_>Vd5A4GEpW6qUe26|i(RF|$Z}v* zSEaCEh#han=o=XNmIxYZm#TUL;fSjO0LHTz^#LJN;49TjX%i7Bgzmi*oZ~>+*`bBU zs7M*|HNXNAuEm_3^3p5_+x(Jx;aUQkIpFV-*hTIeFeobi!NEyYqp2lfc83raHoN_@ z7H61tVS1YmPtQDi;ag_ow@oQA5%pmnjz%y5&j`$VDxjFL_gK)V0Sc#dFYKC~8I~`s zV=z@JmDut9Vv284YXXR~h08P`r#jrl1BQDgJ@4WuZPy{>hX4Hun~0JSbLlcsdo9yX zNSgi6unx`1j(|~9s@T%E3ey$Xs&f?s2;}PDN0c-m6MOLh!VM&XPj1I~bwF*xy{Zf` z8RVKWNXBV3)!G=e;90lZn{)^g@~e7yF{hAdWONt#%#JJNww~LQP`^=Zaz1LyLX1i0 z=f37*I>4pSOzARQ^-i3E;QQ&SlZSXTC>>3PpH!GpR+qju6)@@OJ#9O_{C&GVh0Mf#ezv4TswrS6VghTREmh*e!fNN z#rsgWdog)Vr5jax_4!;<5_Ty%zuAFzIx<@!(74b?kak_XSk$ZrY;hb)Wqv5gY3e=R zFPd%KhhU4dNF@bx!Yz9Q4|WAB%9o6s2Hopa@*%L5sqya@tfrN0Gw`CHrd5k{OEx_c zAYY@6>xd3v;XAT)I|Af6aqPuyjhz!sdXb(hG=;GM`Q)8$?AhXd{-*8om*xs$@+{XJ zbO4N06EI~fTgPFAXWuU#tvE>^W29oj;8P_LbV3LCEV2e-eH?IQ0iP*@ zlbt*Q*RiCZyo}4#X>w2$c}?}D;oTo+kCfa?WFlO1AeaWW5Lp>$zRA&YdaWh`MHJ}E&>Y}1b`TW8SU1eNYbuwQs!p$e@!Nfl{1e_l*dqI!pHt`Ngd)) zXL@0hv`t+=K);12USBDulAzSut7^o$xPMoj)R}Z5DZCx|;)x3Bn|B~y(34vP?hJUN zX`)SB)&NT6^hz-XPbfsj>XItW6>B}^)Km(=>%bXkdl}~j1{0Q{zZ9MGPWmVedX972JJo%Qo$y2re<1V|0>OjZ2cwTt zW<1$Dsh3TsYdGu(-t64Hv^z2cklZ9p_W@}ZkKK;}4={vw< zys#?|)`mcplS1neyvQ%hL$_m+dd1ty1N%SvaM>c4UBPRkKP0~B=@#4OmBB^&Y6Q0e zg|BMimF|&XdO=1oC}H`U@2=IWOQC-9LHc**!DF<{$n<-jRrqrxbEZPOb)HhE z`M^M}#3O2~Br#+E^QqVy?N0O=eZ`x}toNV3K*;sc;=>XQod%V!%?ei~vgT}o>f#Ui zyCIBxg##C)p33XF=c`+~Wf0r0WJ#7#J-g%o&=HYt>Vps7KK!xGCjG@tZ3UD7b_s;Wj$+C*=p91`eC^k707*PkN%;XKg0z8QGo zz#8j}6X)?3KR?w+Ye4_ZpJccPV4!E+ivpG|m)IsVYDo!r>DJ(9Txo}@wa@RAF&Bs! zIqh1kHqu{dN@#AHJYiuC$eW}Ufet#0_Xad_i)LLIxPEK6Qzj`r$L3#DlX^~FhewYpW zU6KIZniq5+5ODSq!9o>d`}7n)fQ*h2Xan+Kn=HLd^8&k!TfubV9w$3W*(bKV-=aaU zLHi(5z$Qr2ccrAc7`KVD?puOkM(!KVGFYTRvHa};r0-lQMla&%M=O*d z`f7QtU+vcEYNfNPo0|8uvFj-DFv!j92i8DM_`L|6WgD0#MFI>!oVlag-`$IN#hBF) zbqfA`!oLmN0Mf|7ushTHAus{NK?*&G#|YQFW|4zN=#BhXa_yew11R{}Juy>!V<@?U?BuH{PUfJ?;1eTsy>rD zvC9|u`MVnVi^L?7ZM@Rul&Ot{Bz4wgVJyGS>?>1DZrpez4>={ zT)9!!1uf6?qTw}Kksr%Y)&OkAZGyewKlq#9B=-r74Ldm|FsJgqk;C}>2?|0>Ro=${ zrC-R&MPPi|z_|~R+V~{(-T2mW@h=+IQ_d`ol)G_U%^blxObT*7_8nq^lhB=@QHlC z-FZ(u0h*G`XF_-N($9FAV}{uJW`jjY5exV8bWpXtH~{247XUj#c`L5JX*K%!tL8YMWky5<+$OBJ~XXENKIrtdff@ zOn(Wi1iB%%E^yX`KihY54Q)-W#W_?)$>1NFYW@5qM~narKa_=aDi+}k?*lr30ANFI zV=w~%Lw=9UjB{LIv7G#M(oI{&@FG{Loq_qP`rAU>y6lZ=41#D&tz0{oGH;$8EFkgz zJZb<8J?G&+6OFx)qCqghOQF3N2kS)QV&C>>*oMiyPbr3~l>kQ3^Yj$D6J9BmrM;bW z=%uat&nm2^Tr=uYt%s68yX^^;e{!kqFIgHkn*OeqN>KJXpvvZXt%>Gzi$`zbvk7ApYK~HMWLxe|kk@q{vh6cm z04jFn4G;m#`=$g6Kr56okfF3*qk$Py+^&Yonj$m2FHrh4Iz@etK^jqA`BphFx9z#xAYG_16*JpFbe2eC$1d9aF zg)T@B={{TeyWrP-;f55(S>*?3W>a)5O z0a4!K#M(914#kZ^TfUuHd>eFVC@8)u38bn7_wYk3#_i%%H+~(TdE6(siK9J$sND>j z%%G}Lzj6n)_n|8i~fML9NcO5JHn3>5nQ@XPdc3E#}3Z)SThS|Zg_ zVs+bSa_Et1o$&5=5Ft8yxysx~Y~s^cRB7Hv#joj$Zx_!8-dK(`l!jP{Yo0c_ zoyKjg9ntDM-%jNwL!Kr7l@ppp_)3pKu~p#r{ClD}Nn~S8z`8NkPlNP|ySC?2U>SD< zRtZxQI5jSCNme-!6)~ZCNxux~{vjXPg1syECT!v3X}0P&0QO}BO?FNS{O#t zmFjVv{u1@~34}(ydKd3yCdueMH|m6|82iWVu=jDtQGLt%kSlV^SGxb?F(CrI$FMZ9 zVjxUpY$3e~MUKg;pseQ4IHT_15_l-~2d7Do0~tAGfW^_B*U!d8<|96t*H%6*3az_v zzDEmsjU&ERVSevOWc7$q7+ulP+r&t;8*WY}K5~SpaQG`JUN}DuRMFTNlm!I9k9fsV znuWG1qBC>0`1|-VyQQliHJanwhy1goOr9E_Pe-U#gqT844Y*J>u6rZ@DWC))=yB|u z=LY(YjmKBnB7#n;vKCF`DTi`Bna!f&tTKa5YtBB6A;aC@OEb(r|9u{=is*naZ~z}S z`sL{-`K(#uDfQQA!K#|3{rWvyVr1O*DKDdS_DRuVTE!TUC>V_vk}r4 z9`T_miOvS{w_N9AsDMUs5GlP~xgO8lgqwBhw6q)-TRk3hc(LgiloUG3S74r${?t?i zWmXVrBbtHgT*qWGtn}o7So?d4`H}oFO?_oz8*laP*sB*99r^aB0n$$Z@NmM8H-0DWcOH58B zU}Z>eg0B)#LTprju|;xk_x*3_xU0nAHHec3m26zF^b(VjPR2h?4I@-*OWiLrB{S`a z{``l4QvSP;5|4&`a!}S;CG)@4Sa_=2YF5CHGL(0dPG7fu0sbok|TyL(Ox0=9B z?1(@qOYOas{YOsiIIdahXHkyADv*%rMJ#titnKa?5YZI2u^u$x@f(Brh2C$<5W?9d zS1+ae6{SlGM+d3;)^ilkRTaHYzW*qV2jja^KdNQDNrjHj%|;ivi2~Q#Hw4I>nQ>uz zpblT6G6pQ(76fT*T^{J~bpjM#>*O#0RQ}UNzS98+bjA^}LDs;R<20a^3l;?rA=>A6ejVr~A@gU9ChIK^4S zrQhX?#syd_mou7DUc-8|r@9zfvcu1byR=uuUM;A)eoZ~6pE@tA*&{-${2>2O5Pri# z`NYIq(y^#af3f2dFJcYm(A#b=D0GOT+uI1eIkeAKoodPnmELxf{n1Iax)DCUy@mlc z{V=%<7L+rA<+nC(G6Y}jbuAJc&87T0ca1n6=+#T^u+rH37(y$A+17RKY_-9#tY<>w zp;R}=#JCaQ66Brkb0C!T`O&b@Gx_z*ef-6C*^e(?cx zDaaECkCn~RpcdM%pCNNpv@K<7Sk+aO{O2H<`Lk!L3-un^XKS0)-gcbJ>Xi{M_FSpJ z!cII(T1En@E&4Y8<6koas9t*b3s?^-bS}cN^IaxRngSgm{=TQSn7(X#pi#|H25LAp zs+-IDM5ld#>{7$mFjJi|%UszKRA;;IH)}u8BD<~`*Z%CdZshM@FPMQJ|KuUT_t^0` z(-Zn_+URYK*(oa6#gZgpZ#G{*g=+HRi&&TSURQrMGVmkww*JttU3g#KEBX@?s%=xb z`rG1mJbw%!XOYM!b>nVml2xQ}55tC#A$PwhOu~X=HKO)zJA+-LTe1 zI_=j{!`8UeDweYjjDsNUqZL6>^Hp1tBCL-rBe@@_Yx^FKPR=%M@%_G;;Xs_x?S0Nh zsao}2;0w&%YBkog`II2G72OVsr%P(FWL5LDv<%Cy@2+fj^S^4H(6iwcC&potMZc2% zdZi5MhzL;Eo|EfQJ0+a4H_w^q6gT6f>+gaw4Ki9>tX4`Ifft8H^lw6LlW{_p48J=6 z;!29_`t5HXid`x5^{80>9qzScS$J5ma?S8$mZ`xu{ksy6%h+s8aJtxM|7R`aMU+K~ z(dxXsS)WRPUSI_;RHkaRm+WNj5te1T`uRDa6Cy8{MT_}GG;5Dp#9ECPY8txHUuaD6 zq+yDU3(sK^P35kaf8I5vnPL>5*|iIHp2j_*LH86Tx5Mh(Dj|{dSIC%+$Lu8O&pvj% zsnUU1g}jkL-z9Vv*ZGpQYq~wheJH{?K8fE6{g@O|yZA?5(xS3&Tjb%OiE?Yrj&9T% zJL#C#JE0Ur^ot<08cY^?a3li}S7fD*59cMppTXWY${yLT=3{&EI%bk)NOy`XvZu+oKFu$M zgK@N*c$1+=mZs={r$bHH_G5{|#h_j1a*uI3u7<5Ko<;x~R>kq#Uo`PpQUIOeDWxAa zJ&N)BeE`y$EX41!TUA5~kN9PKgFWfi(kmSyca=eN1u-&M08D%C^xwQw)d9ky-IvrzUxp1xGcMquN zguWzuK|pp;Y)t3KF@0J;GpoPFRU#|1i13`i=<1_C#4l+6rL~3e)FWM614jd+kX`EW z`N5$k8Ky5@|79Q@K^;sDzv$^GhsRRF<3H6%DfO~YPOKYppiAl0? zZ|99gRQZpghg@7;x4Y6-a>4$9>C~)}hIpNs&fuJ;t&afF-F7dY_c#^tk1mF>HTP(S z!kgsBjjkOIp-xp+mQTaQ)%hH4nZ9awQSI4Q`>nLox8{Y7KLw+m$dljP(x9qf<6;up zAp5xag3oUqC4z9@Ry&x>z1vRsN?XEhxk2I5kH=7`+h}j^7?GL~<)zSTO$_vns3D%) zMVxk$a%Qd_2m5X@jWWZ@Fp><*j?aQd`o)su4P)j&G1TNFhCD#g|ivAW86t;@kibpx|M8!O$W{(ao|w4u_ws zXEjaiD9y*wQGXO@YL1jg76y!MB#5;x_D5fBo7zrf+9M9*ly=eWi9)?aLUV^EDNl7bTM|tOX6OnQ+23GMC1b;>7}3eFc8XLG-b7 zBH7{FEb3VAH1Dd{!HHwrWS?W$uyZqHTey(UF70&JyKxQ1Z+$pDwPKeuY`D0km>>Nv zG>h)K+09(awCvowB)G*VEg!HEm2QdRqWYtSUA7#R zN+$3k#S%k;dwZ3tAnQTO8otx}=J?sCGQ9z=r^ypqmCtrYiVudB&+jQXS`Hk+6^`u34v!w}D_7l`RT zhFrW84+W|xLPJN6RA2-a@$RrEPzoM5jdJpDf zKd%%E3PU0mP>h1e-ZK%mXONHk35SPhe2?1|6(l2R*dfHH_Nk9%=Em}6^7UQt^%c2R zh_oJg_nn*)erx%ZaMUG9==XN|>PBPxJ1!bzK1tUHNeHShTTm#_cnj8i1j?OMXht+#ZYi=Z4}8m zFPlDKJNr%@`T0vmXb!#k{!7wWt$w$O)Phz&>|su0%>5_yPyHZKh0$jm%1)t-tD zPD2y=^eB3s_Rz`tHb-6*cSmhMLx*G`3)+2RequrTsOI+?gOgtog@!BV%*Arf6!&h) ztA2Mpr&$(aB!&StUx{u3u?6qfxK~8j^+n>yFoH`8e?JT{# zKE&&oP?dY;BV)Z~=+QAPg<HBMq(7$=<1 zP%0`7=^F1=Czz>>S^gY=_?>B{CQ+rbKEdF4yx-fv9-&veEs<(P@RRe5T)iMGnUqX6j`ve(ixdyNO$he% z)lJ+`;abH%jtN=|E_-Xu_KGB}K3t0`PX2K*C;re1Tba|)V|JZ>*2Ee7}17CO&r}v zRjY&ct31ZG0!!wkQ((sanSRHu!ceD5Np3%KM0RZcY&ic`3yZdHYVvxp=54%fV$Ye{ zW3TY8w)1w5-eMm$_3wq#%A6*SJR8S^(o76wwH{SX{vkVSQ5$PUT`Ha4NyeCv9#zGs zOeYO8eD3m3n8@90c>AQN`RWX^ag`3>BLi=zjp=Z1PV(mo%VNa3$y^yT8m#IHy`#*~ z8NJCiof!(Mnv6Ya*7mvsPpc7*m5rN7k%i3{C1tsd0qL8;BnKnaGxnh^R6ILt!p+?q zEfKp`k1yZbf8!7c(MX^}EZED7NM2I)5Fu})4C=!Ox|8~jqtk)T6sMcUoPzivOB#^yjo+OyiD+ zyOTeSI;h|@(gKsf_Y*sjF;TF6$s2nVXa41* zldpoG?4V|5k2_wT{A`X1KyhCwI@Vu&jac^zY5AQjj(v@P6T<&$fA}3^{>K>|xA7D| z&o;7B#-%o$GK`ivbJml&GOx$?!2-T5r1}=n?LCvIcxn~IE%)Q?0hSGF(HqlWbP((5 z0fm>;OqXTcO>HqcX#H(C>Y>7t_a75va)wZI;33v==TGWL=Viv81_$A!0$N@98|f~W zJx^EW=bs^U)I>s)qsT>{Ko7|qBXn~LOjV6%3=ZwylwZDewZ)da#vdr4;%Uh5I)r7t z&m-wyjM_GRmBUV+|3M^B>#0xG4`!T;FMZL1=JwFnkf}Ry=GFzJ)6P)y8JUFfxN z3{)4NS?--RIDh>Os%PbyCRfxd1A5Tm$%+xGzEgH}XkLhKkodr2i-Y_x?d(~ggCZ%J zkNUy&E{63OuG;{;NNf+3s%A0ojLw)}FqJHzg*-Ny91Z^6m`K^ozs6&{s@0wx5M?pV zMQ(VsK2A!zJ*r-pU6q^G*o@Gz)dS@ez^C?q2_;!`JUgFV|s=Fd^`ES@GyFyE;kCzKeTTCS^(7_%+Z|s9^?B|NI8r_ATVvDI5j%Yo+f*5Hjm=}5Ij*wH`H-CS;JdeF^ z^}%#}wnmrdys+vrd0B!scnhgasu>IjX#Crt5eshM_6i6xrGw;kt>b9 zlm;(@NtssUc}QsT$-zGyTFHadS7_SwU&MdW$)3I<>R#kyPmu|nmxI6#!isE-@T1)E z3mw{1HW&C3a|Sm4>2^sQ3%<^@imre1mV2|zP+-0$EY@i;4tkB%pwPS7X?*nLyz!8* z#}rXVe3D7UcwCm((H#+{B3Jb_#}2taLAUFE647H3-y<7OME43M?F{R;IO1z$#-}9E zL=$D!<@c(JsVCk0Y7uS3sU?xdPZ!X}6KUP-m7JOuoB59x3LWO;8Xjej=4*(BfV`GM zPv;i>&3t*#3`zXPC*PN3kUvArU%c8!nQ>-bHuT73qklbm_g*SU>vaUOE0-#dE3y$s z_R5pN>5|xoI4@!gDw9<6JX`eQ{tIPA^w~e+HGY@xTs!_sSH~M;!9kP5&O2XJ4sl!I z+)U0v$#+4-LM2=`7qN9udOBrA$rGE4M_S*Vm+8sY-=C~F82*0qVdkQ_T--Gt!v^M- zC007+$^i7I8a|>qaXdc^*S_xar|gwbCE)m@)T{|tk@WhL&CjcW7rX-lM%h zhOs~IY4~)KNZ%yibK}bjujd5pi9a68SU7n7<2M7Idh}PDf4ii&sD9^Oa`t%1fj(BJ zfBNHVv7AFUYo|H(8L3m#-*3#UI`j|honM3j?5^tN(xB?;xRg1xN7|quQ=#-3P7hAL&9U^DwrIf4ha^F=c(|Q$QRp2z!Ruw6;3HrzLJYJegc6P z`r2n)zW9dr5ym`rbJ6P(yp3p53zD_=DHWR_z}hs8x8?ed5&B2`_Y{xZub&IA^Ac>2 zG>SF$vhr(cW%?^?!a~}>=8T>t*NM_DZt=c5ukY5b+)I!a3Prqf7KJOgXoSdWnL

  • MIPfC;Jb@rske`H_7Reio+GxRiV>(P(Gcl1r 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

    ;u@ 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�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�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

    dkZTHF@0CsFGGsUpT8z|;C3%lTRwIC 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%0A{1+$?9K)1 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 z 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Π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

      ($=r-W!E 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 wdcgfZv4{T+aQrti_CG$=+ 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

      +arY0=UAOw?~yJPZ(&N5e*$E`oEkuB%n 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

      A89Y7uOsXKqlgozcT-Q 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 T429(VGpwwXl4Pa0anOGOO0QO^ literal 0 HcmV?d00001 diff --git a/website/src/js/livestream.js b/website/src/js/livestream.js index a0375f722f..6acb5b530c 100644 --- a/website/src/js/livestream.js +++ b/website/src/js/livestream.js @@ -49,15 +49,6 @@ function startCountdown() { setInterval(tick, 1000); } -function setSignupSource() { - const field = document.querySelector('input[name="SOURCE"]'); - if (!field) return; - - const inHash = new URLSearchParams(location.hash.replace(/^#\??/, '')).get('utm_source'); - const source = inHash ?? new URLSearchParams(location.search).get('utm_source'); - if (source && /^[\w.-]{1,40}$/.test(source)) field.value = source; -} - function setupRegisterOverlay() { const overlay = document.getElementById('register'); const openBtn = document.querySelector('.register-btn'); @@ -114,6 +105,5 @@ function trackNavColor() { showLocalTime(); startCountdown(); -setSignupSource(); setupRegisterOverlay(); trackNavColor(); diff --git a/website/src/livestream.html b/website/src/livestream.html index 262a2cf4af..49488d1bb4 100644 --- a/website/src/livestream.html +++ b/website/src/livestream.html @@ -98,6 +98,7 @@ templateEngineOverride: njk + @@ -119,7 +120,7 @@ templateEngineOverride: njk

      diff --git a/website/src/livestream.html b/website/src/livestream.html index 49488d1bb4..2b78fd21a0 100644 --- a/website/src/livestream.html +++ b/website/src/livestream.html @@ -105,7 +105,7 @@ templateEngineOverride: njk - Or join our SimpleX Crowdfunding News channel + Or connect to our team via SimpleX Chat

      We use Mailchimp to deliver updates via email

      From 47d32b674a2b1fab977e11dbd1cd1b3d2a193c2b Mon Sep 17 00:00:00 2001 From: Evgeny Date: Sat, 12 Sep 2026 14:13:11 +0100 Subject: [PATCH 19/62] bots: add APIs (#7494) * docs: fix bot API surface - Fix missing space in APIShareMyAddress syntax expression which resulted in parse errors - Document missing `Connect` responses: `CRConnectionPlan`, `CRSentInvitationToContact`, `CRStartedConnectionToContact`, and `CRStartedConnectionToGroup` (relay channel links). - Document missing `CRUserProfileNoChange` responsed returned when `APISetProfileAddress` doesn't change the profile. - Expose remote control APIs to bots * website: improve sign-up forms (#7484) * website: improve sign-up forms * name --------- Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com> * rename field * generic --------- Co-authored-by: a1akris Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com> --- bots/api/COMMANDS.md | 121 +++++++++++++++++- bots/api/EVENTS.md | 35 +++++ bots/api/TYPES.md | 94 ++++++++++++++ bots/src/API/Docs/Commands.hs | 16 ++- bots/src/API/Docs/Events.hs | 9 +- bots/src/API/Docs/Responses.hs | 10 +- bots/src/API/Docs/Types.hs | 13 ++ bots/src/API/TypeInfo.hs | 2 + .../types/typescript/src/commands.ts | 45 ++++++- .../types/typescript/src/events.ts | 16 +++ .../types/typescript/src/responses.ts | 45 +++++++ .../types/typescript/src/types.ts | 99 ++++++++++++++ .../src/simplex_chat/types/_commands.py | 42 +++++- .../src/simplex_chat/types/_events.py | 26 +++- .../src/simplex_chat/types/_responses.py | 37 +++++- .../src/simplex_chat/types/_types.py | 73 +++++++++++ src/Simplex/Chat/Controller.hs | 4 +- 17 files changed, 661 insertions(+), 26 deletions(-) diff --git a/bots/api/COMMANDS.md b/bots/api/COMMANDS.md index dd62b87585..42b3da2373 100644 --- a/bots/api/COMMANDS.md +++ b/bots/api/COMMANDS.md @@ -79,6 +79,10 @@ This file is generated automatically. - [StartChat](#startchat) - [APIStopChat](#apistopchat) +[Remote control commands](#remote-control-commands) +- [ConnectRemoteCtrl](#connectremotectrl) +- [VerifyRemoteCtrlSession](#verifyremotectrlsession) + --- @@ -231,6 +235,10 @@ UserProfileUpdated: User profile updated. - toProfile: [Profile](./TYPES.md#profile) - updateSummary: [UserProfileUpdateSummary](./TYPES.md#userprofileupdatesummary) +UserProfileNoChange: User profile was not changed. +- type: "userProfileNoChange" +- user: [User](./TYPES.md#user) + ChatCmdError: Command error (only used in WebSockets API). - type: "chatCmdError" - chatError: [ChatError](./TYPES.md#chaterror) @@ -505,15 +513,15 @@ Share user address card **Syntax**: ``` -/_share address +/_share address ``` ```javascript -'/_share address' + ChatRef.cmdString(toSendRef) // JavaScript +'/_share address ' + ChatRef.cmdString(toSendRef) // JavaScript ``` ```python -'/_share address' + ChatRef_cmd_string(toSendRef) # Python +'/_share address ' + ChatRef_cmd_string(toSendRef) # Python ``` **Response**: @@ -1609,6 +1617,33 @@ SentInvitation: Invitation sent to contact address. - connection: [PendingContactConnection](./TYPES.md#pendingcontactconnection) - customUserProfile: [Profile](./TYPES.md#profile)? +ConnectionPlan: Connection link information. +- type: "connectionPlan" +- user: [User](./TYPES.md#user) +- connLink: [CreatedConnLink](./TYPES.md#createdconnlink) +- planSimplexName: [SimplexNameInfo](./TYPES.md#simplexnameinfo)? +- otherSimplexName: [SimplexNameInfo](./TYPES.md#simplexnameinfo)? +- connectionPlan: [ConnectionPlan](./TYPES.md#connectionplan) + +SentInvitationToContact: Invitation sent to contact (when connecting via SimpleX name to a known contact address).. +- type: "sentInvitationToContact" +- user: [User](./TYPES.md#user) +- contact: [Contact](./TYPES.md#contact) +- customUserProfile: [Profile](./TYPES.md#profile)? + +StartedConnectionToContact: Connection to contact started (when connecting via prepared contact).. +- type: "startedConnectionToContact" +- user: [User](./TYPES.md#user) +- contact: [Contact](./TYPES.md#contact) +- customUserProfile: [Profile](./TYPES.md#profile)? + +StartedConnectionToGroup: Connection to channel started (when connecting via channel link).. +- type: "startedConnectionToGroup" +- user: [User](./TYPES.md#user) +- groupInfo: [GroupInfo](./TYPES.md#groupinfo) +- customUserProfile: [Profile](./TYPES.md#profile)? +- relayResults: [[RelayConnectionResult](./TYPES.md#relayconnectionresult)] + ChatCmdError: Command error (only used in WebSockets API). - type: "chatCmdError" - chatError: [ChatError](./TYPES.md#chaterror) @@ -2370,3 +2405,83 @@ ChatStopped: Chat stopped. - type: "chatStopped" --- + + +## Remote control commands + +Allows a bot to accept an incoming remote control session from a SimpleX Desktop client, giving the desktop live access to the bot's SimpleX instance. + + +### ConnectRemoteCtrl + +Connect to a remote controller using an OOB invitation link. + +*Network usage*: interactive. + +**Parameters**: +- remoteInvitation: string + +**Syntax**: + +``` +/crc +``` + +```javascript +'/crc ' + remoteInvitation // JavaScript +``` + +```python +'/crc ' + remoteInvitation # Python +``` + +**Responses**: + +RemoteCtrlConnecting: Remote controller is connecting.. +- type: "remoteCtrlConnecting" +- remoteCtrl_: [RemoteCtrlInfo](./TYPES.md#remotectrlinfo)? +- ctrlAppInfo: [CtrlAppInfo](./TYPES.md#ctrlappinfo) +- appVersion: string + +ChatCmdError: Command error (only used in WebSockets API). +- type: "chatCmdError" +- chatError: [ChatError](./TYPES.md#chaterror) + +--- + + +### VerifyRemoteCtrlSession + +Verify the remote controller session code to complete the connection. + +*Network usage*: no. + +**Parameters**: +- sessionCode: string + +**Syntax**: + +``` +/verify remote ctrl +``` + +```javascript +'/verify remote ctrl ' + sessionCode // JavaScript +``` + +```python +'/verify remote ctrl ' + sessionCode # Python +``` + +**Responses**: + +RemoteCtrlConnected: Remote controller session connected.. +- type: "remoteCtrlConnected" +- remoteCtrl: [RemoteCtrlInfo](./TYPES.md#remotectrlinfo) +- compression: bool + +ChatCmdError: Command error (only used in WebSockets API). +- type: "chatCmdError" +- chatError: [ChatError](./TYPES.md#chaterror) + +--- diff --git a/bots/api/EVENTS.md b/bots/api/EVENTS.md index d2744951cd..5416fe4c0e 100644 --- a/bots/api/EVENTS.md +++ b/bots/api/EVENTS.md @@ -72,6 +72,10 @@ This file is generated automatically. - [ServiceRequest](#servicerequest) - [ServiceReplySent](#servicereplysent) +[Remote control events](#remote-control-events) +- [RemoteCtrlSessionCode](#remotectrlsessioncode) +- [RemoteCtrlStopped](#remotectrlstopped) + [Error events](#error-events) - [MessageError](#messageerror) - [ChatError](#chaterror) @@ -793,6 +797,37 @@ Correlate `connectionId` with the connection ID from the response to [APISendSer --- +## Remote control events + +Bots that act as remote control hosts receive these events during the remote control session lifecycle. + + +### RemoteCtrlSessionCode + +Remote controller session code ready for verification. + +Use [VerifyRemoteCtrlSession](./COMMANDS.md#verifyremotectrlsession) to complete the connection. + +**Record type**: +- type: "remoteCtrlSessionCode" +- remoteCtrl_: [RemoteCtrlInfo](./TYPES.md#remotectrlinfo)? +- sessionCode: string + +--- + + +### RemoteCtrlStopped + +Remote controller session stopped. + +**Record type**: +- type: "remoteCtrlStopped" +- rcsState: [RemoteCtrlSessionState](./TYPES.md#remotectrlsessionstate) +- rcStopReason: [RemoteCtrlStopReason](./TYPES.md#remotectrlstopreason) + +--- + + ## Error events Bots may log these events for debugging. There will be many error events - this does NOT indicate a malfunction - e.g., they may happen because of bad network connectivity, or because messages may be delivered to deleted chats for a short period of time (they will be ignored). diff --git a/bots/api/TYPES.md b/bots/api/TYPES.md index 1ba260b3d3..6759ff9d35 100644 --- a/bots/api/TYPES.md +++ b/bots/api/TYPES.md @@ -10,6 +10,7 @@ This file is generated automatically. - [AgentCryptoError](#agentcryptoerror) - [AgentErrorType](#agenterrortype) - [AgentServiceError](#agentserviceerror) +- [AppVersionRange](#appversionrange) - [AutoAccept](#autoaccept) - [BadgeInfo](#badgeinfo) - [BadgeProof](#badgeproof) @@ -77,6 +78,7 @@ This file is generated automatically. - [CreatedConnLink](#createdconnlink) - [CryptoFile](#cryptofile) - [CryptoFileArgs](#cryptofileargs) +- [CtrlAppInfo](#ctrlappinfo) - [DroppedMsg](#droppedmsg) - [E2EInfo](#e2einfo) - [ErrorType](#errortype) @@ -170,8 +172,12 @@ This file is generated automatically. - [RcvGroupEvent](#rcvgroupevent) - [RcvMsgError](#rcvmsgerror) - [RelayCapabilities](#relaycapabilities) +- [RelayConnectionResult](#relayconnectionresult) - [RelayProfile](#relayprofile) - [RelayStatus](#relaystatus) +- [RemoteCtrlInfo](#remotectrlinfo) +- [RemoteCtrlSessionState](#remotectrlsessionstate) +- [RemoteCtrlStopReason](#remotectrlstopreason) - [ReportReason](#reportreason) - [RoleGroupPreference](#rolegrouppreference) - [SMPAgentError](#smpagenterror) @@ -386,6 +392,17 @@ BadSignature: - type: "badSignature" +--- + +## AppVersionRange + +Remote controller app version range (min and max as version strings). + +**Record type**: +- minVersion: string +- maxVersion: string + + --- ## AutoAccept @@ -1967,6 +1984,18 @@ connFullLink + ((' ' + connShortLink) if connShortLink is not None else '') # Py - fileNonce: string +--- + +## CtrlAppInfo + +Remote controller application info. + +**Record type**: +- appVersionRange: [AppVersionRange](#appversionrange) +- deviceName: string +- compression: bool + + --- ## DroppedMsg @@ -3558,6 +3587,15 @@ ParseError: - webDomain: string? +--- + +## RelayConnectionResult + +**Record type**: +- relayMember: [GroupMember](#groupmember) +- relayError: [ChatError](#chaterror)? + + --- ## RelayProfile @@ -3583,6 +3621,62 @@ ParseError: - "rejected" +--- + +## RemoteCtrlInfo + +**Record type**: +- remoteCtrlId: int64 +- ctrlDeviceName: string +- sessionState: [RemoteCtrlSessionState](#remotectrlsessionstate)? + + +--- + +## RemoteCtrlSessionState + +**Discriminated union type**: + +Starting: +- type: "starting" + +Searching: +- type: "searching" + +Connecting: +- type: "connecting" + +PendingConfirmation: +- type: "pendingConfirmation" +- sessionCode: string + +Connected: +- type: "connected" +- sessionCode: string + + +--- + +## RemoteCtrlStopReason + +**Discriminated union type**: + +DiscoveryFailed: +- type: "discoveryFailed" +- chatError: [ChatError](#chaterror) + +ConnectionFailed: +- type: "connectionFailed" +- chatError: [ChatError](#chaterror) + +SetupFailed: +- type: "setupFailed" +- chatError: [ChatError](#chaterror) + +Disconnected: +- type: "disconnected" + + --- ## ReportReason diff --git a/bots/src/API/Docs/Commands.hs b/bots/src/API/Docs/Commands.hs index d126ff1844..782d0d21cd 100644 --- a/bots/src/API/Docs/Commands.hs +++ b/bots/src/API/Docs/Commands.hs @@ -80,7 +80,7 @@ chatCommandsDocsData = [ ("APICreateMyAddress", ["server_"], "Create bot address.", ["CRUserContactLinkCreated", "CRChatCmdError"], [], Just UNInteractive, "/_address " <> Param "userId" <> OnOffParam "pq_ratchet" "pqRatchet" Nothing), ("APIDeleteMyAddress", [], "Delete bot address.", ["CRUserContactLinkDeleted", "CRChatCmdError"], [], Just UNBackground, "/_delete_address " <> Param "userId"), ("APIShowMyAddress", [], "Get bot address and settings.", ["CRUserContactLink", "CRChatCmdError"], [], Nothing, "/_show_address " <> Param "userId"), - ("APISetProfileAddress", [], "Add address to bot profile.", ["CRUserProfileUpdated", "CRChatCmdError"], [], Just UNInteractive, "/_profile_address " <> Param "userId" <> " " <> OnOff "enable"), + ("APISetProfileAddress", [], "Add address to bot profile.", ["CRUserProfileUpdated", "CRUserProfileNoChange", "CRChatCmdError"], [], Just UNInteractive, "/_profile_address " <> Param "userId" <> " " <> OnOff "enable"), ("APISetAddressSettings", [], "Set bot address settings.", ["CRUserContactLinkUpdated", "CRChatCmdError"], [], Just UNInteractive, "/_address_settings " <> Param "userId" <> OnOffParam "pq_ratchet" "pqRatchet" Nothing <> " " <> Json "settings") ] ), @@ -98,7 +98,7 @@ chatCommandsDocsData = ("APIDeleteChatItem", [], "Delete message.", ["CRChatItemsDeleted", "CRChatCmdError"], [], Just UNBackground, "/_delete item " <> Param "chatRef" <> " " <> Join ',' "chatItemIds" <> " " <> Param "deleteMode"), ("APIDeleteMemberChatItem", [], "Moderate message. Requires Moderator role (and higher than message author's).", ["CRChatItemsDeleted", "CRChatCmdError"], [], Just UNBackground, "/_delete member item #" <> Param "groupId" <> " " <> Join ',' "chatItemIds"), ("APIChatItemReaction", [], "Add/remove message reaction.", ["CRChatItemReaction", "CRChatCmdError"], [], Just UNBackground, "/_reaction " <> Param "chatRef" <> " " <> Param "chatItemId" <> " " <> OnOff "add" <> " " <> Json "reaction"), - ("APIShareMyAddress", [], "Share user address card", ["CRChatMsgContent"], [], Nothing, "/_share address" <> Param "toSendRef"), + ("APIShareMyAddress", [], "Share user address card", ["CRChatMsgContent"], [], Nothing, "/_share address " <> Param "toSendRef"), ("APIShareChatMsgContent", [], "Share channel address", ["CRChatMsgContent"], [], Nothing, "/_share chat content " <> Param "shareChatRef" <> " " <> Param "toSendRef") ] ), @@ -141,7 +141,7 @@ chatCommandsDocsData = -- `Maybe` in `connectTarget :: Maybe ConnectTarget` is used to signal parse failure to the runtime (the handler returns CEInvalidConnReq on Nothing); it is NOT API-level optionality. The parameter is required from callers. ("APIConnectPlan", [], "Determine SimpleX link type and if the bot is already connected via this link or name.", ["CRConnectionPlan", "CRChatCmdError"], [], Just UNInteractive, "/_connect plan " <> Param "userId" <> " " <> Param "connectTarget"), ("APIConnect", [], "Connect via prepared SimpleX link. The link can be 1-time invitation link, contact address or group link.", ["CRSentConfirmation", "CRContactAlreadyExists", "CRSentInvitation", "CRChatCmdError"], [], Just UNInteractive, "/_connect " <> Param "userId" <> Optional "" (" " <> Param "$0") "preparedLink_"), - ("Connect", [], "Connect via SimpleX link or name as string in the active user profile.", ["CRSentConfirmation", "CRContactAlreadyExists", "CRSentInvitation", "CRChatCmdError"], [], Just UNInteractive, "/connect" <> Optional "" (" " <> Param "$0") "connTarget_"), + ("Connect", [], "Connect via SimpleX link or name as string in the active user profile.", ["CRSentConfirmation", "CRContactAlreadyExists", "CRSentInvitation", "CRConnectionPlan", "CRSentInvitationToContact", "CRStartedConnectionToContact", "CRStartedConnectionToGroup", "CRChatCmdError"], [], Just UNInteractive, "/connect" <> Optional "" (" " <> Param "$0") "connTarget_"), ("APIAcceptContact", ["incognito"], "Accept contact request.", ["CRAcceptingContactRequest", "CRChatCmdError"], [], Just UNInteractive, "/_accept " <> Param "contactReqId"), ("APIRejectContact", [], "Reject contact request. The user who sent the request is **not notified**.", ["CRContactRequestRejected", "CRChatCmdError"], [], Nothing, "/_reject " <> Param "contactReqId") ] @@ -202,6 +202,12 @@ chatCommandsDocsData = [ ("StartChat", [], "Start chat controller.", ["CRChatStarted", "CRChatRunning"], [], Nothing, "/_start" <> OnOffParam "main" "mainApp" Nothing <> OnOffParam "snd_files" "enableSndFiles" (Just True) <> OnOffParam "service_requests" "serviceRequests" (Just False)), ("APIStopChat", [], "Stop chat controller.", ["CRChatStopped"], [], Nothing, "/_stop") ] + ), + ( "Remote control commands", + "Allows a bot to accept an incoming remote control session from a SimpleX Desktop client, giving the desktop live access to the bot's SimpleX instance.", + [ ("ConnectRemoteCtrl", [], "Connect to a remote controller using an OOB invitation link.", ["CRRemoteCtrlConnecting", "CRChatCmdError"], [], Just UNInteractive, "/crc " <> Param "remoteInvitation"), + ("VerifyRemoteCtrlSession", [], "Verify the remote controller session code to complete the connection.", ["CRRemoteCtrlConnected", "CRChatCmdError"], [], Nothing, "/verify remote ctrl " <> Param "sessionCode") + ] ) ] @@ -452,7 +458,6 @@ undocumentedCommands = "APIVerifyToken", "CheckChatRunning", "ConfirmRemoteCtrl", - "ConnectRemoteCtrl", "CustomChatCommand", "DebugEvent", "DebugLocks", @@ -499,6 +504,5 @@ undocumentedCommands = "SwitchRemoteHost", "TestChatRelay", "TestProtoServer", - "TestStorageEncryption", - "VerifyRemoteCtrlSession" + "TestStorageEncryption" ] diff --git a/bots/src/API/Docs/Events.hs b/bots/src/API/Docs/Events.hs index 1590ad54d5..05b3067181 100644 --- a/bots/src/API/Docs/Events.hs +++ b/bots/src/API/Docs/Events.hs @@ -152,6 +152,13 @@ chatEventsDocsData = ], [] ), + ( "Remote control events", + "Bots that act as remote control hosts receive these events during the remote control session lifecycle.", + [ ("CEvtRemoteCtrlSessionCode", "Remote controller session code ready for verification.\n\nUse [VerifyRemoteCtrlSession](./COMMANDS.md#verifyremotectrlsession) to complete the connection."), + ("CEvtRemoteCtrlStopped", "Remote controller session stopped.") + ], + [] + ), ( "Error events", "Bots may log these events for debugging. \ \There will be many error events - this does NOT indicate a malfunction - \ @@ -203,8 +210,6 @@ undocumentedEvents = "CEvtRcvFileProgressXFTP", "CEvtRcvStandaloneFileComplete", "CEvtRemoteCtrlFound", - "CEvtRemoteCtrlSessionCode", - "CEvtRemoteCtrlStopped", "CEvtRemoteHostConnected", "CEvtRemoteHostSessionCode", "CEvtRemoteHostStopped", diff --git a/bots/src/API/Docs/Responses.hs b/bots/src/API/Docs/Responses.hs index 76f1ddb76b..c87c46c012 100644 --- a/bots/src/API/Docs/Responses.hs +++ b/bots/src/API/Docs/Responses.hs @@ -88,11 +88,16 @@ chatResponsesDocsData = ("CRRcvFileAccepted", "File accepted to be received"), ("CRRcvFileAcceptedSndCancelled", "File accepted, but no longer sent"), ("CRRcvFileCancelled", "Cancelled receiving file"), + ("CRRemoteCtrlConnected", "Remote controller session connected."), + ("CRRemoteCtrlConnecting", "Remote controller is connecting."), ("CRSentConfirmation", "Confirmation sent to one-time invitation"), ("CRSentGroupInvitation", "Group invitation sent"), ("CRSentInvitation", "Invitation sent to contact address"), + ("CRSentInvitationToContact", "Invitation sent to contact (when connecting via SimpleX name to a known contact address)."), ("CRServiceReplyAccepted", "Service reply accepted for delivery. `connectionId` correlates the reply delivery event."), ("CRSndFileCancelled", "Cancelled sending file"), + ("CRStartedConnectionToContact", "Connection to contact started (when connecting via prepared contact)."), + ("CRStartedConnectionToGroup", "Connection to channel started (when connecting via channel link)."), ("CRUserAcceptedGroupSent", "User accepted group invitation"), ("CRUserContactLink", "User contact address"), ("CRUserContactLinkCreated", "User contact address created"), @@ -188,13 +193,10 @@ undocumentedResponses = "CRQueueInfo", "CRRcvStandaloneFileCreated", "CRReactionMembers", - "CRRemoteCtrlConnected", - "CRRemoteCtrlConnecting", "CRRemoteCtrlList", "CRRemoteFileStored", "CRRemoteHostList", "CRRemoteHostStarted", - "CRSentInvitationToContact", "CRServerOperatorConditions", "CRServerTestResult", "CRServiceResponse", @@ -202,8 +204,6 @@ undocumentedResponses = "CRSndStandaloneFileCreated", "CRSQLResult", "CRStandaloneFileInfo", - "CRStartedConnectionToContact", - "CRStartedConnectionToGroup", "CRTagsUpdated", "CRUsageConditions", "CRUserPrivacy", diff --git a/bots/src/API/Docs/Types.hs b/bots/src/API/Docs/Types.hs index 4567512b75..89fd4c263c 100644 --- a/bots/src/API/Docs/Types.hs +++ b/bots/src/API/Docs/Types.hs @@ -49,6 +49,8 @@ import Simplex.Messaging.Parsers (dropPrefix, fstToLower) import Simplex.Messaging.Protocol (BlockingInfo (..), BlockingReason (..), CommandError (..), ErrorType (..), NameErrorType (..), NetworkError (..), ProxyError (..)) import Simplex.Messaging.Protocol.Types (ClientNotice (..)) import Simplex.Messaging.Transport +import Simplex.Chat.Remote.AppVersion (AppVersion, AppVersionRange) +import Simplex.Chat.Remote.Types (CtrlAppInfo (..)) import Simplex.RemoteControl.Types import System.Console.ANSI.Types (Color (..)) @@ -211,6 +213,7 @@ chatTypesDocsData = (sti @AgentCryptoError, STUnion, "", ["RATCHET_EARLIER", "RATCHET_SKIPPED"], "", ""), -- TODO add fields to types (sti @AgentErrorType, STUnion, "", [], "", ""), (sti @AgentServiceError, STUnion, "ASE", [], "", ""), + (STI "AppVersionRange" [RecordTypeInfo "AppVersionRange" [FieldInfo "minVersion" (TIType (ST TString [])), FieldInfo "maxVersion" (TIType (ST TString []))]], STRecord, "", [], "", "Remote controller app version range (min and max as version strings)."), (sti @AutoAccept, STRecord, "", [], "", ""), (sti @BadgeProof, STRecord, "", [], "", ""), (sti @BlockingInfo, STRecord, "", [], "", ""), @@ -243,6 +246,7 @@ chatTypesDocsData = (sti @CIReactionCount, STRecord, "", [], "", ""), (sti @CITimed, STRecord, "", [], "", ""), (sti @ClientNotice, STRecord, "", [], "", ""), + (sti @CtrlAppInfo, STRecord, "", [], "", "Remote controller application info."), (sti @Color, STEnum, "", [], "", ""), (sti @CommandError, STUnion, "", [], "", ""), (sti @CommandErrorType, STUnion, "", [], "", ""), @@ -354,8 +358,12 @@ chatTypesDocsData = (sti @RcvGroupEvent, STUnion, "RGE", [], "", ""), (sti @RcvMsgError, STUnion, "RME", [], "", ""), (sti @RelayCapabilities, STRecord, "", [], "", ""), + (sti @RelayConnectionResult, STRecord, "", [], "", ""), (sti @RelayProfile, STRecord, "", [], "", ""), (sti @RelayStatus, STEnum, "RS", [], "", ""), + (sti @RemoteCtrlInfo, STRecord, "", [], "", ""), + (sti @RemoteCtrlSessionState, STUnion, "RCS", [], "", ""), + (sti @RemoteCtrlStopReason, STUnion, "RCSR", [], "", ""), (sti @ReportReason, STEnum' (dropPfxSfx "RR" ""), "", ["RRUnknown"], "", ""), (sti @RoleGroupPreference, STRecord, "", [], "", ""), (sti @SecurityCode, STRecord, "", [], "", ""), @@ -471,6 +479,7 @@ deriving instance Generic CIMentionMember deriving instance Generic CIReactionCount deriving instance Generic CITimed deriving instance Generic ClientNotice +deriving instance Generic CtrlAppInfo deriving instance Generic Color deriving instance Generic CommandError deriving instance Generic CommandErrorType @@ -589,8 +598,12 @@ deriving instance Generic RcvFileTransfer deriving instance Generic RcvGroupEvent deriving instance Generic RcvMsgError deriving instance Generic RelayCapabilities +deriving instance Generic RelayConnectionResult deriving instance Generic RelayProfile deriving instance Generic RelayStatus +deriving instance Generic RemoteCtrlInfo +deriving instance Generic RemoteCtrlSessionState +deriving instance Generic RemoteCtrlStopReason deriving instance Generic ReportReason deriving instance Generic SecurityCode deriving instance Generic SimplexDomain diff --git a/bots/src/API/TypeInfo.hs b/bots/src/API/TypeInfo.hs index e225659c4d..59bfe4e52e 100644 --- a/bots/src/API/TypeInfo.hs +++ b/bots/src/API/TypeInfo.hs @@ -200,6 +200,7 @@ toTypeInfo tr = "AgentInvId", "AgentRcvFileId", "AgentSndFileId", + "AppVersion", "BadgeMasterKey", "B64UrlByteString", "BBSProof", @@ -219,6 +220,7 @@ toTypeInfo tr = "ProofPresHeader", "PublicKey", "ProtocolServer", + "RCSignedInvitation", "SbKey", "SharedMsgId", "Signature", diff --git a/packages/simplex-chat-client/types/typescript/src/commands.ts b/packages/simplex-chat-client/types/typescript/src/commands.ts index 0dfd63ba88..dcc9ec767d 100644 --- a/packages/simplex-chat-client/types/typescript/src/commands.ts +++ b/packages/simplex-chat-client/types/typescript/src/commands.ts @@ -59,7 +59,7 @@ export interface APISetProfileAddress { } export namespace APISetProfileAddress { - export type Response = CR.UserProfileUpdated | CR.ChatCmdError + export type Response = CR.UserProfileUpdated | CR.UserProfileNoChange | CR.ChatCmdError export function cmdString(self: APISetProfileAddress): string { return '/_profile_address ' + self.userId + ' ' + (self.enable ? 'on' : 'off') @@ -178,7 +178,7 @@ export namespace APIShareMyAddress { export type Response = CR.ChatMsgContent export function cmdString(self: APIShareMyAddress): string { - return '/_share address' + T.ChatRef.cmdString(self.toSendRef) + return '/_share address ' + T.ChatRef.cmdString(self.toSendRef) } } @@ -582,7 +582,15 @@ export interface Connect { } export namespace Connect { - export type Response = CR.SentConfirmation | CR.ContactAlreadyExists | CR.SentInvitation | CR.ChatCmdError + export type Response = + | CR.SentConfirmation + | CR.ContactAlreadyExists + | CR.SentInvitation + | CR.ConnectionPlan + | CR.SentInvitationToContact + | CR.StartedConnectionToContact + | CR.StartedConnectionToGroup + | CR.ChatCmdError export function cmdString(self: Connect): string { return '/connect' + (self.connTarget_ ? ' ' + self.connTarget_ : '') @@ -897,3 +905,34 @@ export namespace APIStopChat { return '/_stop' } } + +// Remote control commands +// Allows a bot to accept an incoming remote control session from a SimpleX Desktop client, giving the desktop live access to the bot's SimpleX instance. + +// Connect to a remote controller using an OOB invitation link. +// Network usage: interactive. +export interface ConnectRemoteCtrl { + remoteInvitation: string +} + +export namespace ConnectRemoteCtrl { + export type Response = CR.RemoteCtrlConnecting | CR.ChatCmdError + + export function cmdString(self: ConnectRemoteCtrl): string { + return '/crc ' + self.remoteInvitation + } +} + +// Verify the remote controller session code to complete the connection. +// Network usage: no. +export interface VerifyRemoteCtrlSession { + sessionCode: string +} + +export namespace VerifyRemoteCtrlSession { + export type Response = CR.RemoteCtrlConnected | CR.ChatCmdError + + export function cmdString(self: VerifyRemoteCtrlSession): string { + return '/verify remote ctrl ' + self.sessionCode + } +} diff --git a/packages/simplex-chat-client/types/typescript/src/events.ts b/packages/simplex-chat-client/types/typescript/src/events.ts index 59e0c3274d..5b644ee41e 100644 --- a/packages/simplex-chat-client/types/typescript/src/events.ts +++ b/packages/simplex-chat-client/types/typescript/src/events.ts @@ -52,6 +52,8 @@ export type ChatEvent = | CEvt.SubscriptionStatus | CEvt.ServiceRequest | CEvt.ServiceReplySent + | CEvt.RemoteCtrlSessionCode + | CEvt.RemoteCtrlStopped | CEvt.MessageError | CEvt.ChatError | CEvt.ChatErrors @@ -106,6 +108,8 @@ export namespace CEvt { | "subscriptionStatus" | "serviceRequest" | "serviceReplySent" + | "remoteCtrlSessionCode" + | "remoteCtrlStopped" | "messageError" | "chatError" | "chatErrors" @@ -471,6 +475,18 @@ export namespace CEvt { connectionId: string } + export interface RemoteCtrlSessionCode extends Interface { + type: "remoteCtrlSessionCode" + remoteCtrl_?: T.RemoteCtrlInfo + sessionCode: string + } + + export interface RemoteCtrlStopped extends Interface { + type: "remoteCtrlStopped" + rcsState: T.RemoteCtrlSessionState + rcStopReason: T.RemoteCtrlStopReason + } + export interface MessageError extends Interface { type: "messageError" user: T.User diff --git a/packages/simplex-chat-client/types/typescript/src/responses.ts b/packages/simplex-chat-client/types/typescript/src/responses.ts index fd6050ef49..647427f0dc 100644 --- a/packages/simplex-chat-client/types/typescript/src/responses.ts +++ b/packages/simplex-chat-client/types/typescript/src/responses.ts @@ -47,11 +47,16 @@ export type ChatResponse = | CR.RcvFileAccepted | CR.RcvFileAcceptedSndCancelled | CR.RcvFileCancelled + | CR.RemoteCtrlConnected + | CR.RemoteCtrlConnecting | CR.SentConfirmation | CR.SentGroupInvitation | CR.SentInvitation + | CR.SentInvitationToContact | CR.ServiceReplyAccepted | CR.SndFileCancelled + | CR.StartedConnectionToContact + | CR.StartedConnectionToGroup | CR.UserAcceptedGroupSent | CR.UserContactLink | CR.UserContactLinkCreated @@ -108,11 +113,16 @@ export namespace CR { | "rcvFileAccepted" | "rcvFileAcceptedSndCancelled" | "rcvFileCancelled" + | "remoteCtrlConnected" + | "remoteCtrlConnecting" | "sentConfirmation" | "sentGroupInvitation" | "sentInvitation" + | "sentInvitationToContact" | "serviceReplyAccepted" | "sndFileCancelled" + | "startedConnectionToContact" + | "startedConnectionToGroup" | "userAcceptedGroupSent" | "userContactLink" | "userContactLinkCreated" @@ -407,6 +417,19 @@ export namespace CR { rcvFileTransfer: T.RcvFileTransfer } + export interface RemoteCtrlConnected extends Interface { + type: "remoteCtrlConnected" + remoteCtrl: T.RemoteCtrlInfo + compression: boolean + } + + export interface RemoteCtrlConnecting extends Interface { + type: "remoteCtrlConnecting" + remoteCtrl_?: T.RemoteCtrlInfo + ctrlAppInfo: T.CtrlAppInfo + appVersion: string + } + export interface SentConfirmation extends Interface { type: "sentConfirmation" user: T.User @@ -429,6 +452,13 @@ export namespace CR { customUserProfile?: T.Profile } + export interface SentInvitationToContact extends Interface { + type: "sentInvitationToContact" + user: T.User + contact: T.Contact + customUserProfile?: T.Profile + } + export interface ServiceReplyAccepted extends Interface { type: "serviceReplyAccepted" user: T.User @@ -443,6 +473,21 @@ export namespace CR { sndFileTransfers: T.SndFileTransfer[] } + export interface StartedConnectionToContact extends Interface { + type: "startedConnectionToContact" + user: T.User + contact: T.Contact + customUserProfile?: T.Profile + } + + export interface StartedConnectionToGroup extends Interface { + type: "startedConnectionToGroup" + user: T.User + groupInfo: T.GroupInfo + customUserProfile?: T.Profile + relayResults: T.RelayConnectionResult[] + } + export interface UserAcceptedGroupSent extends Interface { type: "userAcceptedGroupSent" user: T.User diff --git a/packages/simplex-chat-client/types/typescript/src/types.ts b/packages/simplex-chat-client/types/typescript/src/types.ts index eadfda7ba9..19f2d5dca3 100644 --- a/packages/simplex-chat-client/types/typescript/src/types.ts +++ b/packages/simplex-chat-client/types/typescript/src/types.ts @@ -223,6 +223,12 @@ export namespace AgentServiceError { type: "badSignature" } } +// Remote controller app version range (min and max as version strings). + +export interface AppVersionRange { + minVersion: string + maxVersion: string +} export interface AutoAccept { acceptIncognito: boolean @@ -2210,6 +2216,13 @@ export interface CryptoFileArgs { fileKey: string fileNonce: string } +// Remote controller application info. + +export interface CtrlAppInfo { + appVersionRange: AppVersionRange + deviceName: string + compression: boolean +} export interface DroppedMsg { brokerTs: string // ISO-8601 timestamp @@ -3950,6 +3963,11 @@ export interface RelayCapabilities { webDomain?: string } +export interface RelayConnectionResult { + relayMember: GroupMember + relayError?: ChatError +} + export interface RelayProfile { displayName: string fullName: string @@ -3967,6 +3985,87 @@ export enum RelayStatus { Rejected = "rejected", } +export interface RemoteCtrlInfo { + remoteCtrlId: number // int64 + ctrlDeviceName: string + sessionState?: RemoteCtrlSessionState +} + +export type RemoteCtrlSessionState = + | RemoteCtrlSessionState.Starting + | RemoteCtrlSessionState.Searching + | RemoteCtrlSessionState.Connecting + | RemoteCtrlSessionState.PendingConfirmation + | RemoteCtrlSessionState.Connected + +export namespace RemoteCtrlSessionState { + export type Tag = + | "starting" + | "searching" + | "connecting" + | "pendingConfirmation" + | "connected" + + interface Interface { + type: Tag + } + + export interface Starting extends Interface { + type: "starting" + } + + export interface Searching extends Interface { + type: "searching" + } + + export interface Connecting extends Interface { + type: "connecting" + } + + export interface PendingConfirmation extends Interface { + type: "pendingConfirmation" + sessionCode: string + } + + export interface Connected extends Interface { + type: "connected" + sessionCode: string + } +} + +export type RemoteCtrlStopReason = + | RemoteCtrlStopReason.DiscoveryFailed + | RemoteCtrlStopReason.ConnectionFailed + | RemoteCtrlStopReason.SetupFailed + | RemoteCtrlStopReason.Disconnected + +export namespace RemoteCtrlStopReason { + export type Tag = "discoveryFailed" | "connectionFailed" | "setupFailed" | "disconnected" + + interface Interface { + type: Tag + } + + export interface DiscoveryFailed extends Interface { + type: "discoveryFailed" + chatError: ChatError + } + + export interface ConnectionFailed extends Interface { + type: "connectionFailed" + chatError: ChatError + } + + export interface SetupFailed extends Interface { + type: "setupFailed" + chatError: ChatError + } + + export interface Disconnected extends Interface { + type: "disconnected" + } +} + export enum ReportReason { Spam = "spam", Content = "content", diff --git a/packages/simplex-chat-python/src/simplex_chat/types/_commands.py b/packages/simplex-chat-python/src/simplex_chat/types/_commands.py index 086b3cfd29..53544324fc 100644 --- a/packages/simplex-chat-python/src/simplex_chat/types/_commands.py +++ b/packages/simplex-chat-python/src/simplex_chat/types/_commands.py @@ -56,7 +56,7 @@ class APISetProfileAddress(TypedDict): def APISetProfileAddress_cmd_string(self: APISetProfileAddress) -> str: return '/_profile_address ' + str(self['userId']) + ' ' + ('on' if self['enable'] else 'off') -APISetProfileAddress_Response = CR.UserProfileUpdated | CR.ChatCmdError +APISetProfileAddress_Response = CR.UserProfileUpdated | CR.UserProfileNoChange | CR.ChatCmdError # Set bot address settings. @@ -156,7 +156,7 @@ class APIShareMyAddress(TypedDict): def APIShareMyAddress_cmd_string(self: APIShareMyAddress) -> str: - return '/_share address' + T.ChatRef_cmd_string(self['toSendRef']) + return '/_share address ' + T.ChatRef_cmd_string(self['toSendRef']) APIShareMyAddress_Response = CR.ChatMsgContent @@ -513,7 +513,16 @@ class Connect(TypedDict): def Connect_cmd_string(self: Connect) -> str: return '/connect' + ((' ' + self.get('connTarget_')) if self.get('connTarget_') is not None else '') -Connect_Response = CR.SentConfirmation | CR.ContactAlreadyExists | CR.SentInvitation | CR.ChatCmdError +Connect_Response = ( + CR.SentConfirmation + | CR.ContactAlreadyExists + | CR.SentInvitation + | CR.ConnectionPlan + | CR.SentInvitationToContact + | CR.StartedConnectionToContact + | CR.StartedConnectionToGroup + | CR.ChatCmdError +) # Accept contact request. @@ -787,3 +796,30 @@ def APIStopChat_cmd_string(self: APIStopChat) -> str: APIStopChat_Response = CR.ChatStopped + +# Remote control commands +# Allows a bot to accept an incoming remote control session from a SimpleX Desktop client, giving the desktop live access to the bot's SimpleX instance. + +# Connect to a remote controller using an OOB invitation link. +# Network usage: interactive. +class ConnectRemoteCtrl(TypedDict): + remoteInvitation: str + + +def ConnectRemoteCtrl_cmd_string(self: ConnectRemoteCtrl) -> str: + return '/crc ' + self['remoteInvitation'] + +ConnectRemoteCtrl_Response = CR.RemoteCtrlConnecting | CR.ChatCmdError + + +# Verify the remote controller session code to complete the connection. +# Network usage: no. +class VerifyRemoteCtrlSession(TypedDict): + sessionCode: str + + +def VerifyRemoteCtrlSession_cmd_string(self: VerifyRemoteCtrlSession) -> str: + return '/verify remote ctrl ' + self['sessionCode'] + +VerifyRemoteCtrlSession_Response = CR.RemoteCtrlConnected | CR.ChatCmdError + diff --git a/packages/simplex-chat-python/src/simplex_chat/types/_events.py b/packages/simplex-chat-python/src/simplex_chat/types/_events.py index 58ead11837..bd73637ef8 100644 --- a/packages/simplex-chat-python/src/simplex_chat/types/_events.py +++ b/packages/simplex-chat-python/src/simplex_chat/types/_events.py @@ -314,6 +314,16 @@ class ServiceReplySent(TypedDict): type: Literal["serviceReplySent"] connectionId: str +class RemoteCtrlSessionCode(TypedDict): + type: Literal["remoteCtrlSessionCode"] + remoteCtrl_: NotRequired["T.RemoteCtrlInfo"] + sessionCode: str + +class RemoteCtrlStopped(TypedDict): + type: Literal["remoteCtrlStopped"] + rcsState: "T.RemoteCtrlSessionState" + rcStopReason: "T.RemoteCtrlStopReason" + class MessageError(TypedDict): type: Literal["messageError"] user: "T.User" @@ -377,12 +387,14 @@ ChatEvent = ( | SubscriptionStatus | ServiceRequest | ServiceReplySent + | RemoteCtrlSessionCode + | RemoteCtrlStopped | MessageError | ChatError | ChatErrors ) -ChatEvent_Tag = Literal["contactConnected", "contactUpdated", "contactDeletedByContact", "receivedContactRequest", "newMemberContactReceivedInv", "contactSndReady", "newChatItems", "chatItemReaction", "chatItemsDeleted", "chatItemUpdated", "groupChatItemsDeleted", "chatItemsStatusesUpdated", "receivedGroupInvitation", "userJoinedGroup", "groupUpdated", "joinedGroupMember", "memberRole", "deletedMember", "leftMember", "deletedMemberUser", "groupDeleted", "connectedToGroupMember", "memberAcceptedByOther", "memberBlockedForAll", "groupMemberUpdated", "groupLinkDataUpdated", "groupRelayUpdated", "rcvFileDescrReady", "rcvFileComplete", "sndFileCompleteXFTP", "rcvFileStart", "rcvFileSndCancelled", "rcvFileAccepted", "rcvFileError", "rcvFileWarning", "sndFileError", "sndFileWarning", "acceptingContactRequest", "acceptingBusinessRequest", "contactConnecting", "businessLinkConnecting", "joinedGroupMemberConnecting", "groupLinkConnecting", "hostConnected", "hostDisconnected", "subscriptionStatus", "serviceRequest", "serviceReplySent", "messageError", "chatError", "chatErrors"] +ChatEvent_Tag = Literal["contactConnected", "contactUpdated", "contactDeletedByContact", "receivedContactRequest", "newMemberContactReceivedInv", "contactSndReady", "newChatItems", "chatItemReaction", "chatItemsDeleted", "chatItemUpdated", "groupChatItemsDeleted", "chatItemsStatusesUpdated", "receivedGroupInvitation", "userJoinedGroup", "groupUpdated", "joinedGroupMember", "memberRole", "deletedMember", "leftMember", "deletedMemberUser", "groupDeleted", "connectedToGroupMember", "memberAcceptedByOther", "memberBlockedForAll", "groupMemberUpdated", "groupLinkDataUpdated", "groupRelayUpdated", "rcvFileDescrReady", "rcvFileComplete", "sndFileCompleteXFTP", "rcvFileStart", "rcvFileSndCancelled", "rcvFileAccepted", "rcvFileError", "rcvFileWarning", "sndFileError", "sndFileWarning", "acceptingContactRequest", "acceptingBusinessRequest", "contactConnecting", "businessLinkConnecting", "joinedGroupMemberConnecting", "groupLinkConnecting", "hostConnected", "hostDisconnected", "subscriptionStatus", "serviceRequest", "serviceReplySent", "remoteCtrlSessionCode", "remoteCtrlStopped", "messageError", "chatError", "chatErrors"] class OnEventDecorator(Protocol): @@ -681,6 +693,18 @@ class OnEventDecorator(Protocol): Callable[["ServiceReplySent"], Awaitable[None]], ]: ... + @overload + def __call__(self, event: Literal["remoteCtrlSessionCode"], /) -> Callable[ + [Callable[["RemoteCtrlSessionCode"], Awaitable[None]]], + Callable[["RemoteCtrlSessionCode"], Awaitable[None]], + ]: ... + + @overload + def __call__(self, event: Literal["remoteCtrlStopped"], /) -> Callable[ + [Callable[["RemoteCtrlStopped"], Awaitable[None]]], + Callable[["RemoteCtrlStopped"], Awaitable[None]], + ]: ... + @overload def __call__(self, event: Literal["messageError"], /) -> Callable[ [Callable[["MessageError"], Awaitable[None]]], diff --git a/packages/simplex-chat-python/src/simplex_chat/types/_responses.py b/packages/simplex-chat-python/src/simplex_chat/types/_responses.py index 217fb3019d..e3885fc16a 100644 --- a/packages/simplex-chat-python/src/simplex_chat/types/_responses.py +++ b/packages/simplex-chat-python/src/simplex_chat/types/_responses.py @@ -240,6 +240,17 @@ class RcvFileCancelled(TypedDict): chatItem_: NotRequired["T.AChatItem"] rcvFileTransfer: "T.RcvFileTransfer" +class RemoteCtrlConnected(TypedDict): + type: Literal["remoteCtrlConnected"] + remoteCtrl: "T.RemoteCtrlInfo" + compression: bool + +class RemoteCtrlConnecting(TypedDict): + type: Literal["remoteCtrlConnecting"] + remoteCtrl_: NotRequired["T.RemoteCtrlInfo"] + ctrlAppInfo: "T.CtrlAppInfo" + appVersion: str + class SentConfirmation(TypedDict): type: Literal["sentConfirmation"] user: "T.User" @@ -259,6 +270,12 @@ class SentInvitation(TypedDict): connection: "T.PendingContactConnection" customUserProfile: NotRequired["T.Profile"] +class SentInvitationToContact(TypedDict): + type: Literal["sentInvitationToContact"] + user: "T.User" + contact: "T.Contact" + customUserProfile: NotRequired["T.Profile"] + class ServiceReplyAccepted(TypedDict): type: Literal["serviceReplyAccepted"] user: "T.User" @@ -271,6 +288,19 @@ class SndFileCancelled(TypedDict): fileTransferMeta: "T.FileTransferMeta" sndFileTransfers: list["T.SndFileTransfer"] +class StartedConnectionToContact(TypedDict): + type: Literal["startedConnectionToContact"] + user: "T.User" + contact: "T.Contact" + customUserProfile: NotRequired["T.Profile"] + +class StartedConnectionToGroup(TypedDict): + type: Literal["startedConnectionToGroup"] + user: "T.User" + groupInfo: "T.GroupInfo" + customUserProfile: NotRequired["T.Profile"] + relayResults: list["T.RelayConnectionResult"] + class UserAcceptedGroupSent(TypedDict): type: Literal["userAcceptedGroupSent"] user: "T.User" @@ -368,11 +398,16 @@ ChatResponse = ( | RcvFileAccepted | RcvFileAcceptedSndCancelled | RcvFileCancelled + | RemoteCtrlConnected + | RemoteCtrlConnecting | SentConfirmation | SentGroupInvitation | SentInvitation + | SentInvitationToContact | ServiceReplyAccepted | SndFileCancelled + | StartedConnectionToContact + | StartedConnectionToGroup | UserAcceptedGroupSent | UserContactLink | UserContactLinkCreated @@ -385,4 +420,4 @@ ChatResponse = ( | ApiChats ) -ChatResponse_Tag = Literal["acceptingContactRequest", "activeUser", "chatItemNotChanged", "chatItemReaction", "chatItemUpdated", "chatItemsDeleted", "chatMsgContent", "chatRunning", "chatStarted", "chatStopped", "cmdOk", "chatCmdError", "connectionPlan", "contactAlreadyExists", "contactConnectionDeleted", "contactDeleted", "contactPrefsUpdated", "contactRequestRejected", "contactsList", "groupDeletedUser", "groupLink", "groupLinkCreated", "groupLinkDeleted", "groupCreated", "publicGroupCreated", "publicGroupCreationFailed", "groupRelays", "groupRelaysAdded", "groupRelaysAddFailed", "relayGroupAllowed", "groupMembers", "groupUpdated", "groupsList", "groupDomainVerified", "invitation", "leftMemberUser", "memberAccepted", "membersBlockedForAllUser", "membersRoleUser", "newChatItems", "rcvFileAccepted", "rcvFileAcceptedSndCancelled", "rcvFileCancelled", "sentConfirmation", "sentGroupInvitation", "sentInvitation", "serviceReplyAccepted", "sndFileCancelled", "userAcceptedGroupSent", "userContactLink", "userContactLinkCreated", "userContactLinkDeleted", "userContactLinkUpdated", "userDeletedMembers", "userProfileUpdated", "userProfileNoChange", "usersList", "apiChats"] +ChatResponse_Tag = Literal["acceptingContactRequest", "activeUser", "chatItemNotChanged", "chatItemReaction", "chatItemUpdated", "chatItemsDeleted", "chatMsgContent", "chatRunning", "chatStarted", "chatStopped", "cmdOk", "chatCmdError", "connectionPlan", "contactAlreadyExists", "contactConnectionDeleted", "contactDeleted", "contactPrefsUpdated", "contactRequestRejected", "contactsList", "groupDeletedUser", "groupLink", "groupLinkCreated", "groupLinkDeleted", "groupCreated", "publicGroupCreated", "publicGroupCreationFailed", "groupRelays", "groupRelaysAdded", "groupRelaysAddFailed", "relayGroupAllowed", "groupMembers", "groupUpdated", "groupsList", "groupDomainVerified", "invitation", "leftMemberUser", "memberAccepted", "membersBlockedForAllUser", "membersRoleUser", "newChatItems", "rcvFileAccepted", "rcvFileAcceptedSndCancelled", "rcvFileCancelled", "remoteCtrlConnected", "remoteCtrlConnecting", "sentConfirmation", "sentGroupInvitation", "sentInvitation", "sentInvitationToContact", "serviceReplyAccepted", "sndFileCancelled", "startedConnectionToContact", "startedConnectionToGroup", "userAcceptedGroupSent", "userContactLink", "userContactLinkCreated", "userContactLinkDeleted", "userContactLinkUpdated", "userDeletedMembers", "userProfileUpdated", "userProfileNoChange", "usersList", "apiChats"] diff --git a/packages/simplex-chat-python/src/simplex_chat/types/_types.py b/packages/simplex-chat-python/src/simplex_chat/types/_types.py index 74ffd4536b..c6870abb37 100644 --- a/packages/simplex-chat-python/src/simplex_chat/types/_types.py +++ b/packages/simplex-chat-python/src/simplex_chat/types/_types.py @@ -165,6 +165,12 @@ AgentServiceError = ( AgentServiceError_Tag = Literal["rejected", "timeout", "noPendingRequest", "notDRAddress", "badSignature"] +# Remote controller app version range (min and max as version strings). + +class AppVersionRange(TypedDict): + minVersion: str + maxVersion: str + class AutoAccept(TypedDict): acceptIncognito: bool @@ -1560,6 +1566,13 @@ class CryptoFileArgs(TypedDict): fileKey: str fileNonce: str +# Remote controller application info. + +class CtrlAppInfo(TypedDict): + appVersionRange: "AppVersionRange" + deviceName: str + compression: bool + class DroppedMsg(TypedDict): brokerTs: str # ISO-8601 timestamp attempts: int # int @@ -2770,6 +2783,10 @@ RcvMsgError_Tag = Literal["dropped", "parseError"] class RelayCapabilities(TypedDict): webDomain: NotRequired[str] +class RelayConnectionResult(TypedDict): + relayMember: "GroupMember" + relayError: NotRequired["ChatError"] + class RelayProfile(TypedDict): displayName: str fullName: str @@ -2778,6 +2795,62 @@ class RelayProfile(TypedDict): RelayStatus = Literal["new", "invited", "accepted", "acknowledgedRoster", "active", "inactive", "rejected"] +class RemoteCtrlInfo(TypedDict): + remoteCtrlId: int # int64 + ctrlDeviceName: str + sessionState: NotRequired["RemoteCtrlSessionState"] + +class RemoteCtrlSessionState_starting(TypedDict): + type: Literal["starting"] + +class RemoteCtrlSessionState_searching(TypedDict): + type: Literal["searching"] + +class RemoteCtrlSessionState_connecting(TypedDict): + type: Literal["connecting"] + +class RemoteCtrlSessionState_pendingConfirmation(TypedDict): + type: Literal["pendingConfirmation"] + sessionCode: str + +class RemoteCtrlSessionState_connected(TypedDict): + type: Literal["connected"] + sessionCode: str + +RemoteCtrlSessionState = ( + RemoteCtrlSessionState_starting + | RemoteCtrlSessionState_searching + | RemoteCtrlSessionState_connecting + | RemoteCtrlSessionState_pendingConfirmation + | RemoteCtrlSessionState_connected +) + +RemoteCtrlSessionState_Tag = Literal["starting", "searching", "connecting", "pendingConfirmation", "connected"] + +class RemoteCtrlStopReason_discoveryFailed(TypedDict): + type: Literal["discoveryFailed"] + chatError: "ChatError" + +class RemoteCtrlStopReason_connectionFailed(TypedDict): + type: Literal["connectionFailed"] + chatError: "ChatError" + +class RemoteCtrlStopReason_setupFailed(TypedDict): + type: Literal["setupFailed"] + chatError: "ChatError" + +class RemoteCtrlStopReason_disconnected(TypedDict): + type: Literal["disconnected"] + +RemoteCtrlStopReason = ( + RemoteCtrlStopReason_discoveryFailed + | RemoteCtrlStopReason_connectionFailed + | RemoteCtrlStopReason_setupFailed + | RemoteCtrlStopReason_disconnected +) + +RemoteCtrlStopReason_Tag = Literal["discoveryFailed", "connectionFailed", "setupFailed", "disconnected"] + ReportReason = Literal["spam", "content", "community", "profile", "other"] class RoleGroupPreference(TypedDict): diff --git a/src/Simplex/Chat/Controller.hs b/src/Simplex/Chat/Controller.hs index f670af261c..fc3f33ad54 100644 --- a/src/Simplex/Chat/Controller.hs +++ b/src/Simplex/Chat/Controller.hs @@ -655,10 +655,10 @@ data ChatCommand | DeleteRemoteHost RemoteHostId -- Unregister remote host and remove its data | StoreRemoteFile {remoteHostId :: RemoteHostId, storeEncrypted :: Maybe Bool, localPath :: FilePath} | GetRemoteFile {remoteHostId :: RemoteHostId, file :: RemoteFile} - | ConnectRemoteCtrl RCSignedInvitation -- Connect new or existing controller via OOB data + | ConnectRemoteCtrl {remoteInvitation :: RCSignedInvitation} -- Connect new or existing controller via OOB data | FindKnownRemoteCtrl -- Start listening for announcements from all existing controllers | ConfirmRemoteCtrl RemoteCtrlId -- Confirm the connection with found controller - | VerifyRemoteCtrlSession Text -- Verify remote controller session + | VerifyRemoteCtrlSession {sessionCode :: Text} -- Verify remote controller session | ListRemoteCtrls | StopRemoteCtrl -- Stop listening for announcements or terminate an active session | DeleteRemoteCtrl RemoteCtrlId -- Remove all local data associated with a remote controller session From 5ffbe733a8b32da0079d6276708f569bde76a79d Mon Sep 17 00:00:00 2001 From: Evgeny Date: Sat, 12 Sep 2026 14:33:52 +0100 Subject: [PATCH 20/62] core: attach badge proofs to files over size limit (#7455) * core: attach badge proofs to files over size limit * types * more types * implement file badge proofs * tests * move file limits to config, add tests * more tests, work correctly in "send as group" case * fix races in tests * group badge tests * query plans * add history support, fixes * simplify * refactor * refactor * type * restructure schema for proofs * rename, refactor * refactor * fix, refactor * refactor * ui * comments * alerts * update nix, ios library * updare sharing * update simplexmq * update text * improve messages * api types * postgres schema * fix * test * query plans --------- Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com> --- .../Views/Chat/ChatItem/CIFileView.swift | 31 +- .../Views/Chat/ChatItem/CIImageView.swift | 13 +- .../Views/Chat/ChatItem/CIVideoView.swift | 16 +- .../Views/Chat/ChatItem/FramedItemView.swift | 6 +- apps/ios/Shared/Views/Chat/ChatView.swift | 2 +- .../Chat/ComposeMessage/ComposeView.swift | 18 +- .../Views/ChatList/ChatPreviewView.swift | 6 +- apps/ios/SimpleX SE/ShareModel.swift | 87 +++--- apps/ios/SimpleX.xcodeproj/project.pbxproj | 16 +- apps/ios/SimpleXChat/ChatTypes.swift | 12 + apps/ios/SimpleXChat/FileUtils.swift | 63 ++++- .../chat/simplex/common/model/ChatModel.kt | 10 +- .../simplex/common/views/chat/ComposeView.kt | 12 +- .../common/views/chat/item/CIFileView.kt | 31 +- .../common/views/chat/item/CIImageView.kt | 12 +- .../common/views/chat/item/CIVideoView.kt | 24 +- .../common/views/chat/item/ChatItemView.kt | 2 +- .../common/views/chat/item/FramedItemView.kt | 6 +- .../common/views/chatlist/ChatPreviewView.kt | 6 +- .../simplex/common/views/helpers/Utils.kt | 51 +++- .../commonMain/resources/MR/base/strings.xml | 9 + bots/api/TYPES.md | 13 + bots/src/API/Docs/Types.hs | 2 + cabal.project | 2 +- .../types/typescript/src/types.ts | 8 + .../src/simplex_chat/types/_types.py | 7 + ...026-09-04-badge-binding-and-file-limits.md | 264 ++++++++++++++++++ scripts/nix/sha256map.nix | 2 +- simplex-chat.cabal | 2 + src/Simplex/Chat.hs | 3 +- src/Simplex/Chat/Badges.hs | 123 +++++++- src/Simplex/Chat/Controller.hs | 3 +- src/Simplex/Chat/Library/Commands.hs | 29 +- src/Simplex/Chat/Library/Internal.hs | 176 ++++++++++-- src/Simplex/Chat/Library/Subscriber.hs | 126 ++++++--- src/Simplex/Chat/Messages.hs | 3 +- src/Simplex/Chat/Protocol.hs | 8 +- src/Simplex/Chat/Store/Files.hs | 101 +++++-- src/Simplex/Chat/Store/Messages.hs | 23 +- src/Simplex/Chat/Store/Postgres/Migrations.hs | 4 +- .../Migrations/M20260904_file_badges.hs | 40 +++ .../Store/Postgres/Migrations/chat_schema.sql | 45 ++- src/Simplex/Chat/Store/SQLite/Migrations.hs | 4 +- .../Migrations/M20260904_file_badges.hs | 39 +++ .../SQLite/Migrations/chat_query_plans.txt | 39 ++- .../Store/SQLite/Migrations/chat_schema.sql | 21 +- src/Simplex/Chat/Types.hs | 12 +- src/Simplex/Chat/View.hs | 22 +- tests/BadgeTests.hs | 37 ++- tests/ChatTests/Files.hs | 190 ++++++++++++- tests/ChatTests/Groups.hs | 174 ++++++++++++ tests/ChatTests/Profiles.hs | 7 +- tests/ProtocolTests.hs | 12 +- 53 files changed, 1659 insertions(+), 315 deletions(-) create mode 100644 plans/2026-09-04-badge-binding-and-file-limits.md create mode 100644 src/Simplex/Chat/Store/Postgres/Migrations/M20260904_file_badges.hs create mode 100644 src/Simplex/Chat/Store/SQLite/Migrations/M20260904_file_badges.hs diff --git a/apps/ios/Shared/Views/Chat/ChatItem/CIFileView.swift b/apps/ios/Shared/Views/Chat/ChatItem/CIFileView.swift index f08f4fba6a..8bb76ca155 100644 --- a/apps/ios/Shared/Views/Chat/ChatItem/CIFileView.swift +++ b/apps/ios/Shared/Views/Chat/ChatItem/CIFileView.swift @@ -21,7 +21,6 @@ struct CIFileView: View { @ObservedObject var chat: Chat let file: CIFile? let meta: CIMeta - let senderProfile: LocalProfile? var smallViewSize: CGFloat? var body: some View { @@ -91,19 +90,15 @@ struct CIFileView: View { if let file = file { switch (file.fileStatus) { case .rcvInvitation, .rcvAborted: - if fileSizeValid(file, senderProfile) { + if let prohibited = file.fileProhibited { + showProhibitedFileAlert(file, prohibited) + } else { Task { logger.debug("CIFileView fileAction - in .rcvInvitation, .rcvAborted, in Task") if let user = m.currentUser { await receiveFile(user: user, fileId: file.fileId) } } - } else { - let prettyMaxFileSize = ByteCountFormatter.string(fromByteCount: getMaxFileSize(file.fileProtocol, senderProfile), countStyle: .binary) - AlertManager.shared.showAlertMsg( - title: "Large file!", - message: "Your contact sent a file that is larger than currently supported maximum size (\(prettyMaxFileSize))." - ) } case .rcvAccepted: switch file.fileProtocol { @@ -171,7 +166,7 @@ struct CIFileView: View { case .sndError: fileIcon("doc.fill", innerIcon: "xmark", innerIconSize: 10) case .sndWarning: fileIcon("doc.fill", innerIcon: "exclamationmark.triangle.fill", innerIconSize: 10) case .rcvInvitation: - if !fileSizeValid(file, senderProfile) { + if !fileSizeValid(file) { fileIcon("doc.fill", color: .orange, innerIcon: "exclamationmark", innerIconSize: 12) } else if file.expired { fileIcon("doc.fill", innerIcon: "xmark", innerIconSize: 10) @@ -235,13 +230,27 @@ struct CIFileView: View { } } -func fileSizeValid(_ file: CIFile?, _ senderProfile: LocalProfile?) -> Bool { +// the core decides whether a received file is above the size the sender's badge allows +func fileSizeValid(_ file: CIFile?) -> Bool { if let file = file { - return file.fileSize <= getMaxFileSize(file.fileProtocol, senderProfile) + return file.fileProhibited == nil } return false } +func showProhibitedFileAlert(_ file: CIFile, _ prohibited: FileProhibited) { + let badgeIssue = switch prohibited.badgeStatus { + case .none, .some(.active): "" + case .some(.expired), .some(.expiredOld): NSLocalizedString("Contact's badge expired.", comment: "file alert") + case .some(.failed): NSLocalizedString("Contact's badge verification failed.", comment: "file alert") + case .some(.unknownKey): NSLocalizedString("No key to verify contact's badge.", comment: "file alert") + } + showAlert( + NSLocalizedString("Large file!", comment: "file alert title"), + message: largeFileMessage(file.fileSize, badgeIssue: badgeIssue) + ) +} + func saveCryptoFile(_ fileSource: CryptoFile) { if let cfArgs = fileSource.cryptoArgs { let url = getAppFilePath(fileSource.filePath) diff --git a/apps/ios/Shared/Views/Chat/ChatItem/CIImageView.swift b/apps/ios/Shared/Views/Chat/ChatItem/CIImageView.swift index 93966543c6..fb6ccb1ea3 100644 --- a/apps/ios/Shared/Views/Chat/ChatItem/CIImageView.swift +++ b/apps/ios/Shared/Views/Chat/ChatItem/CIImageView.swift @@ -14,7 +14,6 @@ import SimpleXChat struct CIImageView: View { @EnvironmentObject var m: ChatModel let chatItem: ChatItem - let senderProfile: LocalProfile? var scrollToItem: ((ChatItem.ID) -> Void)? = nil var preview: UIImage? let maxWidth: CGFloat @@ -52,18 +51,14 @@ struct CIImageView: View { if let file = file { switch file.fileStatus { case .rcvInvitation, .rcvAborted: - if fileSizeValid(file, senderProfile) { + if let prohibited = file.fileProhibited { + showProhibitedFileAlert(file, prohibited) + } else { Task { if let user = m.currentUser { await receiveFile(user: user, fileId: file.fileId) } } - } else { - let prettyMaxFileSize = ByteCountFormatter.string(fromByteCount: getMaxFileSize(file.fileProtocol, senderProfile), countStyle: .binary) - AlertManager.shared.showAlertMsg( - title: "Large file!", - message: "Your contact sent a file that is larger than currently supported maximum size (\(prettyMaxFileSize))." - ) } case .rcvAccepted: switch file.fileProtocol { @@ -152,7 +147,7 @@ struct CIImageView: View { case .sndCancelled: fileIcon("xmark", 10, 13) case .sndError: fileIcon("xmark", 10, 13) case .sndWarning: fileIcon("exclamationmark.triangle.fill", 10, 13) - case .rcvInvitation: fileIcon(file.expired && fileSizeValid(file, senderProfile) ? "xmark" : "arrow.down", 10, 13) + case .rcvInvitation: fileIcon(file.expired && fileSizeValid(file) ? "xmark" : "arrow.down", 10, 13) case .rcvAccepted: fileIcon("ellipsis", 14, 11) case .rcvTransfer: progressView() case .rcvAborted: fileIcon("exclamationmark.arrow.circlepath", 14, 11) diff --git a/apps/ios/Shared/Views/Chat/ChatItem/CIVideoView.swift b/apps/ios/Shared/Views/Chat/ChatItem/CIVideoView.swift index d5340010ab..0df17dfe3d 100644 --- a/apps/ios/Shared/Views/Chat/ChatItem/CIVideoView.swift +++ b/apps/ios/Shared/Views/Chat/ChatItem/CIVideoView.swift @@ -16,7 +16,6 @@ import Combine struct CIVideoView: View { @EnvironmentObject var m: ChatModel private let chatItem: ChatItem - private let senderProfile: LocalProfile? private let preview: UIImage? @State private var duration: Int @State private var progress: Int = 0 @@ -36,9 +35,8 @@ struct CIVideoView: View { private var sizeMultiplier: CGFloat { smallView ? 0.38 : 1 } @State private var blurred: Bool = UserDefaults.standard.integer(forKey: DEFAULT_PRIVACY_MEDIA_BLUR_RADIUS) > 0 - init(chatItem: ChatItem, senderProfile: LocalProfile?, preview: UIImage?, duration: Int, maxWidth: CGFloat, videoWidth: CGFloat?, smallView: Bool = false, showFullscreenPlayer: Binding) { + init(chatItem: ChatItem, preview: UIImage?, duration: Int, maxWidth: CGFloat, videoWidth: CGFloat?, smallView: Bool = false, showFullscreenPlayer: Binding) { self.chatItem = chatItem - self.senderProfile = senderProfile self.preview = preview self._duration = State(initialValue: duration) self.maxWidth = maxWidth @@ -368,7 +366,7 @@ struct CIVideoView: View { .simultaneousGesture(TapGesture().onEnded { showFileErrorAlert(sndFileError, temporary: true) }) - case .rcvInvitation: fileIcon(file.expired && fileSizeValid(file, senderProfile) ? "xmark" : "arrow.down", 10, 13) + case .rcvInvitation: fileIcon(file.expired && fileSizeValid(file) ? "xmark" : "arrow.down", 10, 13) case .rcvAccepted: fileIcon("ellipsis", 14, 11) case let .rcvTransfer(rcvProgress, rcvTotal): if file.fileProtocol == .xftp && rcvProgress < rcvTotal { @@ -423,18 +421,14 @@ struct CIVideoView: View { // TODO encrypt: where file size is checked? private func receiveFileIfValidSize(file: CIFile, receiveFile: @escaping (User, Int64, Bool, Bool) async -> Void) { - if fileSizeValid(file, senderProfile) { + if let prohibited = file.fileProhibited { + showProhibitedFileAlert(file, prohibited) + } else { Task { if let user = m.currentUser { await receiveFile(user, file.fileId, false, false) } } - } else { - let prettyMaxFileSize = ByteCountFormatter.string(fromByteCount: getMaxFileSize(file.fileProtocol, senderProfile), countStyle: .binary) - AlertManager.shared.showAlertMsg( - title: "Large file!", - message: "Your contact sent a file that is larger than currently supported maximum size (\(prettyMaxFileSize))." - ) } } diff --git a/apps/ios/Shared/Views/Chat/ChatItem/FramedItemView.swift b/apps/ios/Shared/Views/Chat/ChatItem/FramedItemView.swift index ac27cb27c2..f822970ea4 100644 --- a/apps/ios/Shared/Views/Chat/ChatItem/FramedItemView.swift +++ b/apps/ios/Shared/Views/Chat/ChatItem/FramedItemView.swift @@ -155,7 +155,7 @@ struct FramedItemView: View { } else { switch (chatItem.content.msgContent) { case let .image(text, _): - CIImageView(chatItem: chatItem, senderProfile: ciSenderProfile(chatItem, chat.chatInfo), scrollToItem: scrollToItem, preview: preview, maxWidth: maxWidth, imgWidth: imgWidth, showFullScreenImage: $showFullscreenGallery) + CIImageView(chatItem: chatItem, scrollToItem: scrollToItem, preview: preview, maxWidth: maxWidth, imgWidth: imgWidth, showFullScreenImage: $showFullscreenGallery) .overlay(DetermineWidth()) if text == "" && !chatItem.meta.isLive { Color.clear @@ -170,7 +170,7 @@ struct FramedItemView: View { ciMsgContentView(chatItem) } case let .video(text, _, duration): - CIVideoView(chatItem: chatItem, senderProfile: ciSenderProfile(chatItem, chat.chatInfo), preview: preview, duration: duration, maxWidth: maxWidth, videoWidth: videoWidth, showFullscreenPlayer: $showFullscreenGallery) + CIVideoView(chatItem: chatItem, preview: preview, duration: duration, maxWidth: maxWidth, videoWidth: videoWidth, showFullscreenPlayer: $showFullscreenGallery) .overlay(DetermineWidth()) if text == "" && !chatItem.meta.isLive { Color.clear @@ -387,7 +387,7 @@ struct FramedItemView: View { } @ViewBuilder private func ciFileView(_ ci: ChatItem, _ text: String) -> some View { - CIFileView(chat: chat, file: chatItem.file, meta: chatItem.meta, senderProfile: ciSenderProfile(chatItem, chat.chatInfo)) + CIFileView(chat: chat, file: chatItem.file, meta: chatItem.meta) .overlay(DetermineWidth()) if text != "" || ci.meta.isLive { ciMsgContentView (chatItem) diff --git a/apps/ios/Shared/Views/Chat/ChatView.swift b/apps/ios/Shared/Views/Chat/ChatView.swift index 08941e9ccc..d18d8ae145 100644 --- a/apps/ios/Shared/Views/Chat/ChatView.swift +++ b/apps/ios/Shared/Views/Chat/ChatView.swift @@ -2322,7 +2322,7 @@ struct ChatView: View { } else { saveButton(file: fileSource) } - } else if let file = ci.file, case .rcvInvitation = file.fileStatus, fileSizeValid(file, ciSenderProfile(ci, chat.chatInfo)) { + } else if let file = ci.file, case .rcvInvitation = file.fileStatus, fileSizeValid(file) { downloadButton(file: file) } if ci.meta.editable && !mc.isVoice && !live { diff --git a/apps/ios/Shared/Views/Chat/ComposeMessage/ComposeView.swift b/apps/ios/Shared/Views/Chat/ComposeMessage/ComposeView.swift index 54f8597ffc..caa4e2a501 100644 --- a/apps/ios/Shared/Views/Chat/ComposeMessage/ComposeView.swift +++ b/apps/ios/Shared/Views/Chat/ComposeMessage/ComposeView.swift @@ -668,10 +668,9 @@ struct ComposeView: View { fileSize <= maxFileSize { composeState = composeState.copy(preview: .filePreview(fileName: fileURL.lastPathComponent, file: fileURL)) } else { - let prettyMaxFileSize = ByteCountFormatter.string(fromByteCount: maxFileSize, countStyle: .binary) - AlertManager.shared.showAlertMsg( - title: "Large file!", - message: "Currently maximum supported file size is \(prettyMaxFileSize)." + showAlert( + NSLocalizedString("Large file!", comment: "file alert title"), + message: largeFileMessage(Int64(fileSize ?? 0), incognito: sendIncognito, badgeIssue: expiredBadgeReason(Int64(fileSize ?? 0), sendProfile)) ) } } catch { @@ -1266,12 +1265,15 @@ struct ComposeView: View { } } - private var maxFileSize: Int64 { - // the user's active badge raises the limit, but not in incognito chats where no badge is presented - let incognito = chat.chatInfo.profileChangeProhibited ? chat.chatInfo.incognito : incognitoDefault - return getMaxFileSize(.xftp, incognito ? nil : chatModel.currentUser?.profile) + // no badge is presented in incognito chats, so it does not raise the limit there + private var sendIncognito: Bool { + chat.chatInfo.profileChangeProhibited ? chat.chatInfo.incognito : incognitoDefault } + private var sendProfile: LocalProfile? { sendIncognito ? nil : chatModel.currentUser?.profile } + + private var maxFileSize: Int64 { getMaxFileSize(.xftp, sendProfile) } + // Spec: spec/client/compose.md#sendLiveMessage private func sendLiveMessage() async { let typedMsg = composeState.message diff --git a/apps/ios/Shared/Views/ChatList/ChatPreviewView.swift b/apps/ios/Shared/Views/ChatList/ChatPreviewView.swift index 59b92a265b..5ee991a466 100644 --- a/apps/ios/Shared/Views/ChatList/ChatPreviewView.swift +++ b/apps/ios/Shared/Views/ChatList/ChatPreviewView.swift @@ -426,11 +426,11 @@ struct ChatPreviewView: View { } case let .image(_, image): smallContentPreview(size: dynamicMediaSize) { - CIImageView(chatItem: ci, senderProfile: ciSenderProfile(ci, chat.chatInfo), preview: imageFromBase64(image), maxWidth: dynamicMediaSize, smallView: true, showFullScreenImage: $showFullscreenGallery) + CIImageView(chatItem: ci, preview: imageFromBase64(image), maxWidth: dynamicMediaSize, smallView: true, showFullScreenImage: $showFullscreenGallery) } case let .video(_,image, duration): smallContentPreview(size: dynamicMediaSize) { - CIVideoView(chatItem: ci, senderProfile: ciSenderProfile(ci, chat.chatInfo), preview: imageFromBase64(image), duration: duration, maxWidth: dynamicMediaSize, videoWidth: nil, smallView: true, showFullscreenPlayer: $showFullscreenGallery) + CIVideoView(chatItem: ci, preview: imageFromBase64(image), duration: duration, maxWidth: dynamicMediaSize, videoWidth: nil, smallView: true, showFullscreenPlayer: $showFullscreenGallery) } case let .voice(_, duration): smallContentPreviewVoice(size: dynamicMediaSize) { @@ -438,7 +438,7 @@ struct ChatPreviewView: View { } case .file: smallContentPreviewFile(size: dynamicMediaSize) { - CIFileView(chat: chat, file: ci.file, meta: ci.meta, senderProfile: ciSenderProfile(ci, chat.chatInfo), smallViewSize: dynamicMediaSize) + CIFileView(chat: chat, file: ci.file, meta: ci.meta, smallViewSize: dynamicMediaSize) } case let .chat(_, chatLink, ownerSig): smallContentPreview(size: dynamicMediaSize, borderColor: chatLink.image != nil ? .secondary : .clear) { diff --git a/apps/ios/SimpleX SE/ShareModel.swift b/apps/ios/SimpleX SE/ShareModel.swift index 9790e5944f..ea1bbbd46f 100644 --- a/apps/ios/SimpleX SE/ShareModel.swift +++ b/apps/ios/SimpleX SE/ShareModel.swift @@ -97,37 +97,42 @@ class ShareModel: ObservableObject { if let e = initChat(with: dbKey) { await MainActor.run { errorAlert = e } } else { - // Load Chats - Task { - switch fetchChats() { - case let .success(chats): - // Decode base64 images on background thread - let profileImages = chats.reduce(into: Dictionary()) { dict, chatData in - if let profileImage = chatData.chatInfo.image, - let uiImage = imageFromBase64(profileImage) { - dict[chatData.id] = uiImage + switch activeUser() { + case let .failure(error): + await MainActor.run { errorAlert = error } + case let .success(user): + // Load Chats + Task { + switch fetchChats(user) { + case let .success(chats): + // Decode base64 images on background thread + let profileImages = chats.reduce(into: Dictionary()) { dict, chatData in + if let profileImage = chatData.chatInfo.image, + let uiImage = imageFromBase64(profileImage) { + dict[chatData.id] = uiImage + } } + await MainActor.run { + self.chats = chats + self.profileImages = profileImages + withAnimation { isLoaded = true } + } + case let .failure(error): + await MainActor.run { errorAlert = error } } - await MainActor.run { - self.chats = chats - self.profileImages = profileImages - withAnimation { isLoaded = true } - } - case let .failure(error): - await MainActor.run { errorAlert = error } } - } - // Process Attachment - Task { - switch await getSharedContent(self.itemProvider!) { - case let .success(chatItemContent): - await MainActor.run { - self.sharedContent = chatItemContent - self.bottomBar = .sendButton - if case let .text(string) = chatItemContent { comment = string } + // Process Attachment + Task { + switch await getSharedContent(self.itemProvider!, user.profile) { + case let .success(chatItemContent): + await MainActor.run { + self.sharedContent = chatItemContent + self.bottomBar = .sendButton + if case let .text(string) = chatItemContent { comment = string } + } + case let .failure(errorAlert): + await MainActor.run { self.errorAlert = errorAlert } } - case let .failure(errorAlert): - await MainActor.run { self.errorAlert = errorAlert } } } } @@ -253,7 +258,7 @@ class ShareModel: ObservableObject { } } - private func fetchChats() -> Result, ErrorAlert> { + private func activeUser() -> Result { do { guard let user = try apiGetActiveUser() else { return .failure( @@ -263,6 +268,14 @@ class ShareModel: ObservableObject { ) ) } + return .success(user) + } catch { + return .failure(ErrorAlert(error)) + } + } + + private func fetchChats(_ user: User) -> Result, ErrorAlert> { + do { return .success(try apiGetChats(userId: user.id)) } catch { return .failure(ErrorAlert(error)) @@ -405,7 +418,7 @@ enum SharedContent { } } -fileprivate func getSharedContent(_ ip: NSItemProvider) async -> Result { +fileprivate func getSharedContent(_ ip: NSItemProvider, _ senderProfile: LocalProfile) async -> Result { if let type = firstMatching(of: [.image, .movie, .fileURL, .url, .text]) { switch type { // Prepare Image message @@ -443,15 +456,13 @@ fileprivate func getSharedContent(_ ip: NSItemProvider) async -> Result maxSize { return .failure( ErrorAlert( title: "Large file!", - message: "Currently maximum supported file size is \(sizeString)." + message: LocalizedStringKey(largeFileMessage(size, badgeIssue: expiredBadgeReason(size, senderProfile))) ) ) } @@ -534,9 +545,3 @@ fileprivate func transcodeVideo(from input: URL) async -> URL? { } } -fileprivate func isFileTooLarge(for url: URL) -> Bool { - fileSize(url) - .map { $0 > getMaxFileSize(.xftp) } - ?? false -} - diff --git a/apps/ios/SimpleX.xcodeproj/project.pbxproj b/apps/ios/SimpleX.xcodeproj/project.pbxproj index 418e1c99b5..304f3768c5 100644 --- a/apps/ios/SimpleX.xcodeproj/project.pbxproj +++ b/apps/ios/SimpleX.xcodeproj/project.pbxproj @@ -183,8 +183,8 @@ 64C3B0212A0D359700E19930 /* CustomTimePicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64C3B0202A0D359700E19930 /* CustomTimePicker.swift */; }; 64C8299D2D54AEEE006B9E89 /* libgmp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C829982D54AEED006B9E89 /* libgmp.a */; }; 64C8299E2D54AEEE006B9E89 /* libffi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C829992D54AEEE006B9E89 /* libffi.a */; }; - 64C8299F2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.4-JuaCEFy75SxELqTayb7fbQ-ghc9.6.3.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C8299A2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.4-JuaCEFy75SxELqTayb7fbQ-ghc9.6.3.a */; }; - 64C829A02D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.4-JuaCEFy75SxELqTayb7fbQ.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C8299B2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.4-JuaCEFy75SxELqTayb7fbQ.a */; }; + 64C8299F2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.4-4q834kD5SZSFNbM5stNfdS-ghc9.6.3.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C8299A2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.4-4q834kD5SZSFNbM5stNfdS-ghc9.6.3.a */; }; + 64C829A02D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.4-4q834kD5SZSFNbM5stNfdS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C8299B2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.4-4q834kD5SZSFNbM5stNfdS.a */; }; 64C829A12D54AEEE006B9E89 /* libgmpxx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C8299C2D54AEEE006B9E89 /* libgmpxx.a */; }; 64D0C2C029F9688300B38D5F /* UserAddressView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64D0C2BF29F9688300B38D5F /* UserAddressView.swift */; }; 64D0C2C229FA57AB00B38D5F /* UserAddressLearnMore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64D0C2C129FA57AB00B38D5F /* UserAddressLearnMore.swift */; }; @@ -563,8 +563,8 @@ 64C3B0202A0D359700E19930 /* CustomTimePicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomTimePicker.swift; sourceTree = ""; }; 64C829982D54AEED006B9E89 /* libgmp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmp.a; sourceTree = ""; }; 64C829992D54AEEE006B9E89 /* libffi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libffi.a; sourceTree = ""; }; - 64C8299A2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.4-JuaCEFy75SxELqTayb7fbQ-ghc9.6.3.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-7.1.0.4-JuaCEFy75SxELqTayb7fbQ-ghc9.6.3.a"; sourceTree = ""; }; - 64C8299B2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.4-JuaCEFy75SxELqTayb7fbQ.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-7.1.0.4-JuaCEFy75SxELqTayb7fbQ.a"; sourceTree = ""; }; + 64C8299A2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.4-4q834kD5SZSFNbM5stNfdS-ghc9.6.3.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-7.1.0.4-4q834kD5SZSFNbM5stNfdS-ghc9.6.3.a"; sourceTree = ""; }; + 64C8299B2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.4-4q834kD5SZSFNbM5stNfdS.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-7.1.0.4-4q834kD5SZSFNbM5stNfdS.a"; sourceTree = ""; }; 64C8299C2D54AEEE006B9E89 /* libgmpxx.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmpxx.a; sourceTree = ""; }; 64D0C2BF29F9688300B38D5F /* UserAddressView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserAddressView.swift; sourceTree = ""; }; 64D0C2C129FA57AB00B38D5F /* UserAddressLearnMore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserAddressLearnMore.swift; sourceTree = ""; }; @@ -735,8 +735,8 @@ 64C8299D2D54AEEE006B9E89 /* libgmp.a in Frameworks */, 64C8299E2D54AEEE006B9E89 /* libffi.a in Frameworks */, 64C829A12D54AEEE006B9E89 /* libgmpxx.a in Frameworks */, - 64C8299F2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.4-JuaCEFy75SxELqTayb7fbQ-ghc9.6.3.a in Frameworks */, - 64C829A02D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.4-JuaCEFy75SxELqTayb7fbQ.a in Frameworks */, + 64C8299F2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.4-4q834kD5SZSFNbM5stNfdS-ghc9.6.3.a in Frameworks */, + 64C829A02D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.4-4q834kD5SZSFNbM5stNfdS.a in Frameworks */, CE38A29C2C3FCD72005ED185 /* SwiftyGif in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -822,8 +822,8 @@ 64C829992D54AEEE006B9E89 /* libffi.a */, 64C829982D54AEED006B9E89 /* libgmp.a */, 64C8299C2D54AEEE006B9E89 /* libgmpxx.a */, - 64C8299A2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.4-JuaCEFy75SxELqTayb7fbQ-ghc9.6.3.a */, - 64C8299B2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.4-JuaCEFy75SxELqTayb7fbQ.a */, + 64C8299A2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.4-4q834kD5SZSFNbM5stNfdS-ghc9.6.3.a */, + 64C8299B2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.4-4q834kD5SZSFNbM5stNfdS.a */, ); path = Libraries; sourceTree = ""; diff --git a/apps/ios/SimpleXChat/ChatTypes.swift b/apps/ios/SimpleXChat/ChatTypes.swift index dee7ea6b32..239148b477 100644 --- a/apps/ios/SimpleXChat/ChatTypes.swift +++ b/apps/ios/SimpleXChat/ChatTypes.swift @@ -4678,6 +4678,17 @@ extension MsgReaction: Encodable { } } +// set by the core when the file is above the size the sender's badge allows; badgeStatus is nil when no proof was sent +public struct FileProhibited: Decodable, Hashable { + public var maxSize: Int64 + public var badgeStatus: BadgeStatus? + + public init(maxSize: Int64, badgeStatus: BadgeStatus?) { + self.maxSize = maxSize + self.badgeStatus = badgeStatus + } +} + public struct CIFile: Decodable, Hashable { public var fileId: Int64 public var fileName: String @@ -4686,6 +4697,7 @@ public struct CIFile: Decodable, Hashable { public var fileStatus: CIFileStatus public var fileProtocol: FileProtocol public var fileExpires: Date? = nil + public var fileProhibited: FileProhibited? = nil public static func getSample(fileId: Int64 = 1, fileName: String = "test.txt", fileSize: Int64 = 100, filePath: String? = "test.txt", fileStatus: CIFileStatus = .rcvComplete) -> CIFile { let f: CryptoFile? diff --git a/apps/ios/SimpleXChat/FileUtils.swift b/apps/ios/SimpleXChat/FileUtils.swift index c44bcee5bd..a4d4e4ae0c 100644 --- a/apps/ios/SimpleXChat/FileUtils.swift +++ b/apps/ios/SimpleXChat/FileUtils.swift @@ -29,10 +29,13 @@ public let MAX_VIDEO_SIZE_AUTO_RCV: Int64 = 1_047_552 // 1023KB // Spec: spec/services/files.md#MAX_FILE_SIZE_XFTP public let MAX_FILE_SIZE_XFTP: Int64 = 1_073_741_824 // 1GB -// raised XFTP receive limits for files from a sender with a supporter badge (also investor) or a legend badge +// raised XFTP limits for a user with a supporter badge (also investor) or a legend badge public let MAX_FILE_SIZE_XFTP_SUPPORTER: Int64 = 2_147_483_648 // 2GB public let MAX_FILE_SIZE_XFTP_LEGEND: Int64 = 5_368_709_120 // 5GB +// a badge raises the limit at send for this long after its expiry, shorter than the receiver's grace +public let BADGE_SND_GRACE_INTERVAL = TimeInterval(86400) + public let MAX_FILE_SIZE_LOCAL: Int64 = Int64.max public let MAX_FILE_SIZE_SMP: Int64 = 8000000 @@ -277,29 +280,63 @@ public func cleanupFile(_ aChatItem: AChatItem) { } } +public func badgeMaxFileSize(_ badge: LocalBadge) -> Int64 { + badge.badge.badgeType == .legend ? MAX_FILE_SIZE_XFTP_LEGEND : MAX_FILE_SIZE_XFTP_SUPPORTER +} + +// a badge raises the limit at send until one day past its expiry, as the core applies it +public func badgeActiveForSend(_ badge: LocalBadge) -> Bool { + badge.status == .active && badge.badge.badgeExpiry.addingTimeInterval(BADGE_SND_GRACE_INTERVAL) >= Date.now +} + +// in incognito chats and above the largest badge's limit no badge applies, so badgeIssue is not used +public func largeFileMessage(_ fileSize: Int64, incognito: Bool = false, badgeIssue: String = "") -> String { + if incognito { + return String.localizedStringWithFormat( + NSLocalizedString("Files larger than %@ cannot be sent in incognito chats.", comment: "file alert"), + ByteCountFormatter.string(fromByteCount: MAX_FILE_SIZE_XFTP, countStyle: .binary) + ) + } + if fileSize > MAX_FILE_SIZE_XFTP_LEGEND { + return String.localizedStringWithFormat( + NSLocalizedString("Maximum supported file size is %1$@, with a %2$@.", comment: "file alert"), + ByteCountFormatter.string(fromByteCount: MAX_FILE_SIZE_XFTP_LEGEND, countStyle: .binary), + NSLocalizedString("legend badge", comment: "badge required to send a large file") + ) + } + let supporter = fileSize <= MAX_FILE_SIZE_XFTP_SUPPORTER + let message = String.localizedStringWithFormat( + NSLocalizedString("You need a %1$@ to send files larger than %2$@.", comment: "file alert"), + supporter + ? NSLocalizedString("supporter badge", comment: "badge required to send a large file") + : NSLocalizedString("legend badge", comment: "badge required to send a large file"), + ByteCountFormatter.string(fromByteCount: supporter ? MAX_FILE_SIZE_XFTP : MAX_FILE_SIZE_XFTP_SUPPORTER, countStyle: .binary) + ) + return badgeIssue.isEmpty ? message : message + " " + badgeIssue +} + +// the badge lapsed, and while active it would have allowed this file +public func expiredBadgeReason(_ fileSize: Int64, _ senderProfile: LocalProfile?) -> String { + if let badge = senderProfile?.localBadge, !badgeActiveForSend(badge), badgeMaxFileSize(badge) >= fileSize { + NSLocalizedString("Your badge expired.", comment: "file alert") + } else { + "" + } +} + public func getMaxFileSize(_ fileProtocol: FileProtocol, _ senderProfile: LocalProfile? = nil) -> Int64 { switch fileProtocol { case .smp: MAX_FILE_SIZE_SMP case .local: MAX_FILE_SIZE_LOCAL - // a sender's active badge raises the XFTP limit: legend to 5GB, any other (supporter/investor) to 2GB case .xftp: - if let badge = senderProfile?.localBadge, badge.status == .active { - badge.badge.badgeType == .legend ? MAX_FILE_SIZE_XFTP_LEGEND : MAX_FILE_SIZE_XFTP_SUPPORTER + if let badge = senderProfile?.localBadge, badgeActiveForSend(badge) { + badgeMaxFileSize(badge) } else { MAX_FILE_SIZE_XFTP } } } -// the profile of whoever sent a received chat item - the group member, or the direct chat's contact -public func ciSenderProfile(_ ci: ChatItem, _ chatInfo: ChatInfo) -> LocalProfile? { - switch (ci.chatDir, chatInfo) { - case let (.groupRcv(groupMember), _): return groupMember.memberProfile - case let (.directRcv, .direct(contact)): return contact.profile - default: return nil - } -} - public struct RuntimeError: Error { let message: String diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/model/ChatModel.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/model/ChatModel.kt index 3ba5bcf6ad..5e5a91f6a7 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/model/ChatModel.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/model/ChatModel.kt @@ -4245,6 +4245,13 @@ enum class MREmojiChar(val value: String) { @SerialName("✅") Check("✅"); } +// set by the core when the file is above the size the sender's badge allows; badgeStatus is null when no proof was sent +@Serializable +data class FileProhibited( + val maxSize: Long, + val badgeStatus: BadgeStatus? = null +) + @Serializable data class CIFile( val fileId: Long, @@ -4253,7 +4260,8 @@ data class CIFile( val fileSource: CryptoFile? = null, val fileStatus: CIFileStatus, val fileProtocol: FileProtocol, - val fileExpires: Instant? = null + val fileExpires: Instant? = null, + val fileProhibited: FileProhibited? = null ) { val expired: Boolean = fileExpires != null && fileExpires < Clock.System.now() diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/ComposeView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/ComposeView.kt index 6bfbad52ef..a03cb63525 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/ComposeView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/ComposeView.kt @@ -115,7 +115,8 @@ data class ComposeState( val useLinkPreviews: Boolean, val mentions: MentionedMembers = emptyMap(), // the max file size the user may attach, raised by their active badge unless the chat is incognito; kept in sync on chat switch - val maxFileSize: Long = getMaxFileSize(FileProtocol.XFTP) + val maxFileSize: Long = getMaxFileSize(FileProtocol.XFTP), + val sendIncognito: Boolean = false ) { constructor(editingItem: ChatItem, liveMessage: LiveMessage? = null, useLinkPreviews: Boolean): this( ComposeMessage( @@ -331,7 +332,7 @@ fun MutableState.processPickedFile(uri: URI?, text: String?) { } else if (fileSize != null) { AlertManager.shared.showAlertMsg( generalGetString(MR.strings.large_file), - String.format(generalGetString(MR.strings.maximum_supported_file_size), formatBytes(maxFileSize)) + largeFileMessage(fileSize, value.sendIncognito, expiredBadgeReason(fileSize, chatModel.currentUser.value?.profile)) ) } else { showWrongUriAlert() @@ -360,7 +361,7 @@ suspend fun MutableState.processPickedMedia(uris: List, text: bitmap = null AlertManager.shared.showAlertMsg( generalGetString(MR.strings.large_file), - String.format(generalGetString(MR.strings.maximum_supported_file_size), formatBytes(maxFileSize)) + largeFileMessage(fileSize ?: 0, value.sendIncognito, expiredBadgeReason(fileSize ?: 0, chatModel.currentUser.value?.profile)) ) null } @@ -1420,7 +1421,10 @@ fun ComposeView( // keep the attach size limit in sync with the chat: the user's active badge raises it, but not in incognito chats where no badge is presented LaunchedEffect(chat.chatInfo) { val incognito = if (chat.chatInfo.profileChangeProhibited) chat.chatInfo.incognito else chatModel.controller.appPrefs.incognito.get() - composeState.value = composeState.value.copy(maxFileSize = getMaxFileSize(FileProtocol.XFTP, if (incognito) null else chatModel.currentUser.value?.profile)) + composeState.value = composeState.value.copy( + maxFileSize = getMaxFileSize(FileProtocol.XFTP, if (incognito) null else chatModel.currentUser.value?.profile), + sendIncognito = incognito + ) } if (appPlatform.isDesktop) { // the same ComposeView is reused when switching chats, so `chat` captured by onDispose would be the chat opened first, not the current one diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/item/CIFileView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/item/CIFileView.kt index 8d107ae32a..fb4a2cdaea 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/item/CIFileView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/item/CIFileView.kt @@ -38,7 +38,6 @@ fun CIFileView( showTimestamp: Boolean, showMenu: MutableState, smallView: Boolean = false, - senderProfile: LocalProfile?, receiveFile: (Long) -> Unit ) { val saveFileLauncher = rememberSaveFileLauncher(ciFile = file) @@ -77,13 +76,11 @@ fun CIFileView( if (file != null) { when { file.fileStatus is CIFileStatus.RcvInvitation || file.fileStatus is CIFileStatus.RcvAborted -> { - if (fileSizeValid(file, senderProfile)) { - receiveFile(file.fileId) + val prohibited = file.fileProhibited + if (prohibited != null) { + showProhibitedFileAlert(file, prohibited) } else { - AlertManager.shared.showAlertMsg( - generalGetString(MR.strings.large_file), - String.format(generalGetString(MR.strings.contact_sent_large_file), formatBytes(getMaxFileSize(file.fileProtocol, senderProfile))) - ) + receiveFile(file.fileId) } } file.fileStatus is CIFileStatus.RcvAccepted -> @@ -157,7 +154,7 @@ fun CIFileView( is CIFileStatus.SndError -> fileIcon(innerIcon = painterResource(MR.images.ic_close)) is CIFileStatus.SndWarning -> fileIcon(innerIcon = painterResource(MR.images.ic_warning_filled)) is CIFileStatus.RcvInvitation -> - if (!fileSizeValid(file, senderProfile)) + if (!fileSizeValid(file)) fileIcon(innerIcon = painterResource(MR.images.ic_priority_high), color = WarningOrange) else if (file.expired) fileIcon(innerIcon = painterResource(MR.images.ic_close)) @@ -239,9 +236,21 @@ fun CIFileView( } } -// whether a received file is within the size we accept from its sender -fun fileSizeValid(file: CIFile, senderProfile: LocalProfile?): Boolean = - file.fileSize <= getMaxFileSize(file.fileProtocol, senderProfile) +// the core decides whether a received file is above the size the sender's badge allows +fun fileSizeValid(file: CIFile): Boolean = file.fileProhibited == null + +fun showProhibitedFileAlert(file: CIFile, prohibited: FileProhibited) { + val badgeIssue = when (prohibited.badgeStatus) { + null, BadgeStatus.Active -> "" + BadgeStatus.Expired, BadgeStatus.ExpiredOld -> generalGetString(MR.strings.badge_expired) + BadgeStatus.Failed -> generalGetString(MR.strings.badge_verification_failed) + BadgeStatus.UnknownKey -> generalGetString(MR.strings.badge_no_key) + } + AlertManager.shared.showAlertMsg( + generalGetString(MR.strings.large_file), + largeFileMessage(file.fileSize, badgeIssue = badgeIssue) + ) +} fun showFileErrorAlert(err: FileError, file: CIFile? = null, temporary: Boolean = false) { val fileExpires = file?.fileExpires diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/item/CIImageView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/item/CIImageView.kt index fe6a1bf4b7..61b6e450c5 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/item/CIImageView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/item/CIImageView.kt @@ -38,7 +38,6 @@ fun CIImageView( imageProvider: () -> ImageGalleryProvider, showMenu: MutableState, smallView: Boolean, - senderProfile: LocalProfile?, receiveFile: (Long) -> Unit ) { val blurred = remember { mutableStateOf(appPrefs.privacyMediaBlurRadius.get() > 0) } @@ -84,7 +83,7 @@ fun CIImageView( is CIFileStatus.SndError -> fileIcon(painterResource(MR.images.ic_close), MR.strings.icon_descr_file) is CIFileStatus.SndWarning -> fileIcon(painterResource(MR.images.ic_warning_filled), MR.strings.icon_descr_file) is CIFileStatus.RcvInvitation -> - if (file.expired && fileSizeValid(file, senderProfile)) + if (file.expired && fileSizeValid(file)) fileIcon(painterResource(MR.images.ic_close), MR.strings.icon_descr_file) else fileIcon(painterResource(MR.images.ic_arrow_downward), MR.strings.icon_descr_asked_to_receive) @@ -220,13 +219,10 @@ fun CIImageView( if (file != null) { when { file.fileStatus is CIFileStatus.RcvInvitation || file.fileStatus is CIFileStatus.RcvAborted -> - if (fileSizeValid(file, senderProfile)) { - receiveFile(file.fileId) + if (file.fileProhibited != null) { + showProhibitedFileAlert(file, file.fileProhibited) } else { - AlertManager.shared.showAlertMsg( - generalGetString(MR.strings.large_file), - String.format(generalGetString(MR.strings.contact_sent_large_file), formatBytes(getMaxFileSize(file.fileProtocol, senderProfile))) - ) + receiveFile(file.fileId) } file.fileStatus is CIFileStatus.RcvAccepted -> when (file.fileProtocol) { diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/item/CIVideoView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/item/CIVideoView.kt index 20d9d4417a..556b386900 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/item/CIVideoView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/item/CIVideoView.kt @@ -35,7 +35,6 @@ fun CIVideoView( imageProvider: () -> ImageGalleryProvider, showMenu: MutableState, smallView: Boolean = false, - senderProfile: LocalProfile?, receiveFile: (Long) -> Unit ) { val blurred = remember { mutableStateOf(appPrefs.privacyMediaBlurRadius.get() > 0) } @@ -99,7 +98,7 @@ fun CIVideoView( if (file != null) { when (file.fileStatus) { CIFileStatus.RcvInvitation, CIFileStatus.RcvAborted -> - receiveFileIfValidSize(file, senderProfile, receiveFile) + receiveFileIfValidSize(file, receiveFile) CIFileStatus.RcvAccepted -> when (file.fileProtocol) { FileProtocol.XFTP -> @@ -129,16 +128,16 @@ fun CIVideoView( DurationProgress(file, remember { mutableStateOf(false) }, remember { mutableStateOf(duration * 1000L) }, remember { mutableStateOf(0L) }/*, soundEnabled*/) } if (showDownloadButton(file?.fileStatus) && !blurred.value && file != null) { - PlayButton(error = false, sizeMultiplier, { showMenu.value = true }) { receiveFileIfValidSize(file, senderProfile, receiveFile) } + PlayButton(error = false, sizeMultiplier, { showMenu.value = true }) { receiveFileIfValidSize(file, receiveFile) } } } } // Do not show download icon when the view is blurred if (!smallView && (!showDownloadButton(file?.fileStatus) || !blurred.value)) { - fileStatusIcon(file, false, senderProfile) + fileStatusIcon(file, false) } else if (smallView && file?.showStatusIconInSmallView == true) { Box(Modifier.align(Alignment.Center)) { - fileStatusIcon(file, true, senderProfile) + fileStatusIcon(file, true) } } } @@ -486,7 +485,7 @@ private fun progressCircle(progress: Long, total: Long) { } @Composable -private fun fileStatusIcon(file: CIFile?, smallView: Boolean, senderProfile: LocalProfile?) { +private fun fileStatusIcon(file: CIFile?, smallView: Boolean) { if (file != null) { Box( Modifier @@ -526,7 +525,7 @@ private fun fileStatusIcon(file: CIFile?, smallView: Boolean, senderProfile: Loc } ) is CIFileStatus.RcvInvitation -> - if (file.expired && fileSizeValid(file, senderProfile)) + if (file.expired && fileSizeValid(file)) fileIcon(painterResource(MR.images.ic_close), MR.strings.icon_descr_file) else fileIcon(painterResource(MR.images.ic_arrow_downward), MR.strings.icon_descr_video_asked_to_receive) @@ -565,14 +564,11 @@ private fun fileStatusIcon(file: CIFile?, smallView: Boolean, senderProfile: Loc private fun showDownloadButton(status: CIFileStatus?): Boolean = status is CIFileStatus.RcvInvitation || status is CIFileStatus.RcvAborted -private fun receiveFileIfValidSize(file: CIFile, senderProfile: LocalProfile?, receiveFile: (Long) -> Unit) { - if (fileSizeValid(file, senderProfile)) { - receiveFile(file.fileId) +private fun receiveFileIfValidSize(file: CIFile, receiveFile: (Long) -> Unit) { + if (file.fileProhibited != null) { + showProhibitedFileAlert(file, file.fileProhibited) } else { - AlertManager.shared.showAlertMsg( - generalGetString(MR.strings.large_file), - String.format(generalGetString(MR.strings.contact_sent_large_file), formatBytes(getMaxFileSize(file.fileProtocol, senderProfile))) - ) + receiveFile(file.fileId) } } diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/item/ChatItemView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/item/ChatItemView.kt index bab6576646..c38bc1fe08 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/item/ChatItemView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/item/ChatItemView.kt @@ -449,7 +449,7 @@ fun ChatItemView( } if (cItem.file != null && (getLoadedFilePath(cItem.file) != null || (chatModel.connectedToRemote() && cachedRemoteReqs[cItem.file.fileSource] != false && cItem.file.loaded))) { SaveContentItemAction(cItem, saveFileLauncher, showMenu) - } else if (cItem.file != null && cItem.file.fileStatus is CIFileStatus.RcvInvitation && fileSizeValid(cItem.file, ciSenderProfile(cItem, chat.chatInfo))) { + } else if (cItem.file != null && cItem.file.fileStatus is CIFileStatus.RcvInvitation && fileSizeValid(cItem.file)) { ItemAction(stringResource(MR.strings.download_file), painterResource(MR.images.ic_arrow_downward), onClick = { withBGApi { Log.d(TAG, "ChatItemView downloadFileAction") diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/item/FramedItemView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/item/FramedItemView.kt index c919859b1f..68aec09456 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/item/FramedItemView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/item/FramedItemView.kt @@ -219,7 +219,7 @@ fun FramedItemView( @Composable fun ciFileView(ci: ChatItem, text: String) { - CIFileView(ci.file, ci.meta, chatTTL, showViaProxy, showTimestamp, showMenu, false, ciSenderProfile(ci, chatInfo), receiveFile) + CIFileView(ci.file, ci.meta, chatTTL, showViaProxy, showTimestamp, showMenu, false, receiveFile) if (text != "" || ci.meta.isLive) { CIMarkdownText(chatsCtx, ci, chat, chatTTL, linkMode = linkMode, uriHandler, showViaProxy = showViaProxy, showTimestamp = showTimestamp) } @@ -364,7 +364,7 @@ fun FramedItemView( } else { when (val mc = ci.content.msgContent) { is MsgContent.MCImage -> { - CIImageView(image = mc.image, file = ci.file, imageProvider ?: return@PriorityLayout, showMenu, false, ciSenderProfile(ci, chatInfo), receiveFile) + CIImageView(image = mc.image, file = ci.file, imageProvider ?: return@PriorityLayout, showMenu, false, receiveFile) if (mc.text == "" && !ci.meta.isLive) { metaColor = Color.White } else { @@ -372,7 +372,7 @@ fun FramedItemView( } } is MsgContent.MCVideo -> { - CIVideoView(image = mc.image, mc.duration, file = ci.file, imageProvider ?: return@PriorityLayout, showMenu, smallView = false, senderProfile = ciSenderProfile(ci, chatInfo), receiveFile = receiveFile) + CIVideoView(image = mc.image, mc.duration, file = ci.file, imageProvider ?: return@PriorityLayout, showMenu, smallView = false, receiveFile = receiveFile) if (mc.text == "" && !ci.meta.isLive) { metaColor = Color.White } else { diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chatlist/ChatPreviewView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chatlist/ChatPreviewView.kt index fbc4c7e336..e6046d6c00 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chatlist/ChatPreviewView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chatlist/ChatPreviewView.kt @@ -324,13 +324,13 @@ fun ChatPreviewView( } } is MsgContent.MCImage -> SmallContentPreview { - CIImageView(image = mc.image, file = ci.file, provider, remember { mutableStateOf(false) }, smallView = true, senderProfile = ciSenderProfile(ci, chat.chatInfo)) { + CIImageView(image = mc.image, file = ci.file, provider, remember { mutableStateOf(false) }, smallView = true) { val user = chatModel.currentUser.value ?: return@CIImageView withBGApi { chatModel.controller.receiveFile(chat.remoteHostId, user, it) } } } is MsgContent.MCVideo -> SmallContentPreview { - CIVideoView(image = mc.image, mc.duration, file = ci.file, provider, remember { mutableStateOf(false) }, smallView = true, senderProfile = ciSenderProfile(ci, chat.chatInfo)) { + CIVideoView(image = mc.image, mc.duration, file = ci.file, provider, remember { mutableStateOf(false) }, smallView = true) { val user = chatModel.currentUser.value ?: return@CIVideoView withBGApi { chatModel.controller.receiveFile(chat.remoteHostId, user, it) } } @@ -342,7 +342,7 @@ fun ChatPreviewView( } } is MsgContent.MCFile -> SmallContentPreviewFile { - CIFileView(ci.file, ci.meta, cInfo.timedMessagesTTL, showViaProxy = false, showTimestamp = true, showMenu = remember { mutableStateOf(false) }, smallView = true, senderProfile = ciSenderProfile(ci, chat.chatInfo)) { + CIFileView(ci.file, ci.meta, cInfo.timedMessagesTTL, showViaProxy = false, showTimestamp = true, showMenu = remember { mutableStateOf(false) }, smallView = true) { val user = chatModel.currentUser.value ?: return@CIFileView withBGApi { chatModel.controller.receiveFile(chat.remoteHostId, user, it) } } diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/helpers/Utils.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/helpers/Utils.kt index 3128c63234..2d6e70eae9 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/helpers/Utils.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/helpers/Utils.kt @@ -18,6 +18,7 @@ import com.charleskorn.kaml.decodeFromStream import dev.icerock.moko.resources.StringResource import kotlinx.coroutines.* import kotlinx.coroutines.flow.* +import kotlinx.datetime.Clock import kotlinx.serialization.encodeToString import java.io.* import java.net.URI @@ -27,6 +28,8 @@ import java.text.SimpleDateFormat import java.util.* import java.util.concurrent.Executors import kotlin.math.* +import kotlin.time.Duration +import kotlin.time.Duration.Companion.days private val singleThreadDispatcher = Executors.newSingleThreadExecutor().asCoroutineDispatcher() @@ -123,10 +126,13 @@ const val MAX_FILE_SIZE_SMP: Long = 8000000 const val MAX_FILE_SIZE_XFTP: Long = 1_073_741_824 // 1GB -// raised XFTP receive limits for files from a sender with a supporter badge (also investor) or a legend badge +// raised XFTP limits for a user with a supporter badge (also investor) or a legend badge const val MAX_FILE_SIZE_XFTP_SUPPORTER: Long = 2_147_483_648 // 2GB const val MAX_FILE_SIZE_XFTP_LEGEND: Long = 5_368_709_120 // 5GB +// a badge raises the limit at send for this long after its expiry, shorter than the receiver's grace +val BADGE_SND_GRACE_INTERVAL: Duration = 1.days + const val MAX_FILE_SIZE_LOCAL: Long = Long.MAX_VALUE expect fun getAppFileUri(fileName: String): URI @@ -474,25 +480,46 @@ fun directoryFileCountAndSize(dir: String): Pair { // count, size in return fileCount to bytes } +fun badgeMaxFileSize(badge: LocalBadge): Long = + if (badge.badge.badgeType == BadgeType.Legend) MAX_FILE_SIZE_XFTP_LEGEND else MAX_FILE_SIZE_XFTP_SUPPORTER + +// a badge raises the limit at send until one day past its expiry, as the core applies it +fun badgeActiveForSend(badge: LocalBadge): Boolean = + badge.status == BadgeStatus.Active && badge.badge.badgeExpiry + BADGE_SND_GRACE_INTERVAL >= Clock.System.now() + +// in incognito chats and above the largest badge's limit no badge applies, so badgeIssue is not used +fun largeFileMessage(fileSize: Long, incognito: Boolean = false, badgeIssue: String = ""): String = + if (incognito) { + String.format(generalGetString(MR.strings.large_file_incognito), formatBytes(MAX_FILE_SIZE_XFTP)) + } else if (fileSize > MAX_FILE_SIZE_XFTP_LEGEND) { + String.format(generalGetString(MR.strings.max_file_size_with_badge), formatBytes(MAX_FILE_SIZE_XFTP_LEGEND), generalGetString(MR.strings.legend_badge)) + } else { + val supporter = fileSize <= MAX_FILE_SIZE_XFTP_SUPPORTER + val message = String.format( + generalGetString(MR.strings.large_file_requires_badge), + generalGetString(if (supporter) MR.strings.supporter_badge else MR.strings.legend_badge), + formatBytes(if (supporter) MAX_FILE_SIZE_XFTP else MAX_FILE_SIZE_XFTP_SUPPORTER) + ) + if (badgeIssue.isEmpty()) message else message + " " + badgeIssue + } + +// the badge lapsed, and while active it would have allowed this file +fun expiredBadgeReason(fileSize: Long, senderProfile: LocalProfile?): String { + val badge = senderProfile?.localBadge + return if (badge != null && !badgeActiveForSend(badge) && badgeMaxFileSize(badge) >= fileSize) { + generalGetString(MR.strings.your_badge_expired) + } else "" +} + fun getMaxFileSize(fileProtocol: FileProtocol, senderProfile: LocalProfile? = null): Long = when (fileProtocol) { FileProtocol.SMP -> MAX_FILE_SIZE_SMP FileProtocol.LOCAL -> MAX_FILE_SIZE_LOCAL - // a sender's active badge raises the XFTP limit: legend to 5GB, any other (supporter/investor) to 2GB FileProtocol.XFTP -> { val badge = senderProfile?.localBadge - if (badge == null || badge.status != BadgeStatus.Active) MAX_FILE_SIZE_XFTP - else if (badge.badge.badgeType == BadgeType.Legend) MAX_FILE_SIZE_XFTP_LEGEND - else MAX_FILE_SIZE_XFTP_SUPPORTER + if (badge != null && badgeActiveForSend(badge)) badgeMaxFileSize(badge) else MAX_FILE_SIZE_XFTP } } -// the profile of whoever sent a received chat item - the group member, or the direct chat's contact -fun ciSenderProfile(ci: ChatItem, chatInfo: ChatInfo): LocalProfile? = when (val dir = ci.chatDir) { - is CIDirection.GroupRcv -> dir.groupMember.memberProfile - is CIDirection.DirectRcv -> (chatInfo as? ChatInfo.Direct)?.contact?.profile - else -> null -} - expect suspend fun getBitmapFromVideo(uri: URI, timestamp: Long? = null, random: Boolean = true, withAlertOnException: Boolean = true): VideoPlayerInterface.PreviewAndDuration // Whether the file really contains a video track. Reads container metadata only, without decoding a frame. diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/base/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/base/strings.xml index 622ff9d9dc..e1aeca46e5 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/base/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/base/strings.xml @@ -687,6 +687,15 @@ File Large file! Your contact sent a file that is larger than currently supported maximum size (%1$s). + supporter badge + legend badge + You need a %1$s to send files larger than %2$s. + Maximum supported file size is %1$s, with a %2$s. + Contact\'s badge expired. + Contact\'s badge verification failed. + No key to verify contact\'s badge. + Your badge expired. + Files larger than %1$s cannot be sent in incognito chats. Currently maximum supported file size is %1$s. Waiting for file File will be received when your contact completes uploading it. diff --git a/bots/api/TYPES.md b/bots/api/TYPES.md index 6759ff9d35..1fcec37e57 100644 --- a/bots/api/TYPES.md +++ b/bots/api/TYPES.md @@ -87,6 +87,7 @@ This file is generated automatically. - [FileError](#fileerror) - [FileErrorType](#fileerrortype) - [FileInvitation](#fileinvitation) +- [FileProhibited](#fileprohibited) - [FileProtocol](#fileprotocol) - [FileStatus](#filestatus) - [FileTransferMeta](#filetransfermeta) @@ -766,6 +767,7 @@ LocalRcv: - fileStatus: [CIFileStatus](#cifilestatus) - fileProtocol: [FileProtocol](#fileprotocol) - fileExpires: UTCTime? +- fileProhibited: [FileProhibited](#fileprohibited)? --- @@ -2155,6 +2157,16 @@ NO_FILE: - fileConnReq: string? - fileInline: [InlineFileMode](#inlinefilemode)? - fileDescr: [FileDescr](#filedescr)? +- fileBadge: [BadgeProof](#badgeproof)? + + +--- + +## FileProhibited + +**Record type**: +- maxSize: int64 +- badgeStatus: [BadgeStatus](#badgestatus)? --- @@ -3480,6 +3492,7 @@ Cancelled: - fileId: int64 - xftpRcvFile: [XFTPRcvFile](#xftprcvfile)? - fileInvitation: [FileInvitation](#fileinvitation) +- fileProhibited: [FileProhibited](#fileprohibited)? - fileStatus: [RcvFileStatus](#rcvfilestatus) - fileType: [FileType](#filetype) - rcvFileInline: [InlineFileMode](#inlinefilemode)? diff --git a/bots/src/API/Docs/Types.hs b/bots/src/API/Docs/Types.hs index 89fd4c263c..06d3903600 100644 --- a/bots/src/API/Docs/Types.hs +++ b/bots/src/API/Docs/Types.hs @@ -274,6 +274,7 @@ chatTypesDocsData = (sti @FileError, STUnion, "FileErr", [], "", ""), (sti @FileErrorType, STUnion, "", [], "", ""), (sti @FileInvitation, STRecord, "", [], "", ""), + (sti @FileProhibited, STRecord, "", [], "", ""), (sti @FileProtocol, STEnum' (consLower "FP"), "", [], "", ""), (sti @FileStatus, STEnum, "FS", [], "", ""), (sti @FileTransferMeta, STRecord, "", [], "", ""), @@ -507,6 +508,7 @@ deriving instance Generic FileDescr deriving instance Generic FileError deriving instance Generic FileErrorType deriving instance Generic FileInvitation +deriving instance Generic FileProhibited deriving instance Generic FileProtocol deriving instance Generic FileStatus deriving instance Generic FileTransferMeta diff --git a/cabal.project b/cabal.project index 9c55ad7677..7e6b8a2a01 100644 --- a/cabal.project +++ b/cabal.project @@ -21,7 +21,7 @@ constraints: zip +disable-bzip2 +disable-zstd source-repository-package type: git location: https://github.com/simplex-chat/simplexmq.git - tag: 2d4b40e10475fd2d09c76c590df89f384ac45c85 + tag: a00e225d74dfa03aba2293530416f69c55373bed source-repository-package type: git diff --git a/packages/simplex-chat-client/types/typescript/src/types.ts b/packages/simplex-chat-client/types/typescript/src/types.ts index 19f2d5dca3..eff59d5c8f 100644 --- a/packages/simplex-chat-client/types/typescript/src/types.ts +++ b/packages/simplex-chat-client/types/typescript/src/types.ts @@ -699,6 +699,7 @@ export interface CIFile { fileStatus: CIFileStatus fileProtocol: FileProtocol fileExpires?: string // ISO-8601 timestamp + fileProhibited?: FileProhibited } export type CIFileStatus = @@ -2440,6 +2441,12 @@ export interface FileInvitation { fileConnReq?: string fileInline?: InlineFileMode fileDescr?: FileDescr + fileBadge?: BadgeProof +} + +export interface FileProhibited { + maxSize: number // int64 + badgeStatus?: BadgeStatus } export enum FileProtocol { @@ -3801,6 +3808,7 @@ export interface RcvFileTransfer { fileId: number // int64 xftpRcvFile?: XFTPRcvFile fileInvitation: FileInvitation + fileProhibited?: FileProhibited fileStatus: RcvFileStatus fileType: FileType rcvFileInline?: InlineFileMode diff --git a/packages/simplex-chat-python/src/simplex_chat/types/_types.py b/packages/simplex-chat-python/src/simplex_chat/types/_types.py index c6870abb37..15cdc842a0 100644 --- a/packages/simplex-chat-python/src/simplex_chat/types/_types.py +++ b/packages/simplex-chat-python/src/simplex_chat/types/_types.py @@ -488,6 +488,7 @@ class CIFile(TypedDict): fileStatus: "CIFileStatus" fileProtocol: "FileProtocol" fileExpires: NotRequired[str] # ISO-8601 timestamp + fileProhibited: NotRequired["FileProhibited"] class CIFileStatus_sndStored(TypedDict): type: Literal["sndStored"] @@ -1725,6 +1726,11 @@ class FileInvitation(TypedDict): fileConnReq: NotRequired[str] fileInline: NotRequired["InlineFileMode"] fileDescr: NotRequired["FileDescr"] + fileBadge: NotRequired["BadgeProof"] + +class FileProhibited(TypedDict): + maxSize: int # int64 + badgeStatus: NotRequired["BadgeStatus"] FileProtocol = Literal["SMP", "XFTP", "LOCAL"] @@ -2670,6 +2676,7 @@ class RcvFileTransfer(TypedDict): fileId: int # int64 xftpRcvFile: NotRequired["XFTPRcvFile"] fileInvitation: "FileInvitation" + fileProhibited: NotRequired["FileProhibited"] fileStatus: "RcvFileStatus" fileType: "FileType" rcvFileInline: NotRequired["InlineFileMode"] diff --git a/plans/2026-09-04-badge-binding-and-file-limits.md b/plans/2026-09-04-badge-binding-and-file-limits.md new file mode 100644 index 0000000000..72890d8ac7 --- /dev/null +++ b/plans/2026-09-04-badge-binding-and-file-limits.md @@ -0,0 +1,264 @@ +# Badge proofs bound to the conversation, and file size limits decided in core + +**Date:** 2026-09-04 +**Branch:** ep/p2p-group-signing. The work depends on member keys and signed profile messages, which this branch adds. + +## Summary + +A badge is a credential issued to a user who supports SimpleX Chat. The user shows it to others by putting a proof in their profile. This plan binds every proof to the place where it is shown: a proof in a group profile to the sender's identity in that group, a proof attached to a file to the conversation and to that file. Verification checks the binding. + +The same badge raises the size limit for files the user sends. Today each app decides whether a received file is within the limit, using the sender's profile as it is at the moment of display. After this plan, the core library decides once, when the file invitation arrives, from a proof in the invitation; stores the decision with the file; and the apps read it. A second proof arrives with the file description, the record that says where the file's chunks are stored, and is checked before the download starts. + +The changes: + +1. Three new presentation headers: one for a profile shown in a chat, one for a file invitation, one for a file description. The random header stays valid where there is no chat yet, and for the profile in direct chats until the direct binding reaches the handshake. +2. In p2p groups a badge is accepted only from a message signed by the member. The member connection handshake is signed in both directions, and the profile sent in it is stored, so the badge appears when two members connect. +3. In channels a badge is accepted from any profile message, because member keys there come from the roster, the member list signed by the channel owner. +4. Files above the default limit include a proof in the invitation and a proof in the description, in every chat type. The core library verifies both. The decision is stored on the file and shown by the apps from one field. +5. Forwarding a file above the forwarder's limit is refused with an alert before the forwarding sheet opens, and again, for the chosen destination, before anything is uploaded. +6. A received file keeps its two proofs, so a file re-sent to a new member as part of history keeps them; the sender's own files get fresh proofs from the credential. + +Two new columns on `files`, and a new table `file_badge_proofs` holding the invitation proof and the description proof of a file, kept for history. One new function in simplexmq, the hash of the fields shared by all descriptions of one upload. + +## Terms + +**Core library.** The Haskell library shared by all apps. The apps display what it decides. + +**simplexmq.** The library below the core library that transfers messages and files. The core library calls it and never changes its formats without a change there. + +**P2p group.** A group whose members connect to each other directly. A new member is introduced to each existing member by the admin who admitted them, and until the two connect, the new member's messages reach the existing member forwarded by an admin. + +**Channel.** A group whose messages go through relay servers. Members do not connect to each other. The channel owner signs the member list, the roster, which establishes each member's key. + +**Introduction.** The messages by which an admin tells one member about another: `XGrpMemNew` to the existing members, `XGrpMemIntro` and `XGrpMemFwd` to the two members being connected. They include the member's profile and public key. + +**Handshake.** The exchange when two members connect directly. Each side sends `XGrpMemInfo` with its group profile. + +**File description.** The record the sender sends after an upload completes. It lists where each chunk of the file is stored and the keys to download and decrypt them. A file cannot be downloaded without it. It is sent in parts, in `XMsgFileDescr` messages. + +**History.** The recent items the host sends to a member who has just joined. A file item is re-sent as a new invitation together with its description. + +**Badge credential.** The secret record issued to the user: an issuer key index, a master key, a BBS signature, and the badge information (type, expiry, extra). Stored in the user's own profile row. Type `BadgeCredential` in `Badges.hs`. + +**Badge proof.** A BBS proof generated from the credential for one presentation. It discloses the badge information and hides the master key. Different proofs from one credential cannot be linked. Type `BadgeProof`. In a profile it is sent as `Profile.badge`. + +**Badge status.** What a receiver concludes about a proof: `BadgeStatus` (`Badges.hs:114`) — `BSActive`, `BSExpired`, `BSExpiredOld`, `BSFailed`, `BSUnknownKey` — computed by `mkBadgeStatus`, which treats a badge as active for seven days past its expiry. + +**Presentation header.** A byte string that is an input to proof generation and to proof verification. A proof verifies only with the header it was generated with. Type `ProofPresHeader` in `Badges.hs`. `PHTest` is a random nonce. + +**Chat binding.** The byte string that identifies the sender in one conversation, produced by `encodeChatBinding` (`Protocol.hs:444`). Message signatures and shared contact cards are computed over it. For a direct chat it is `encodeChatBinding CBDirect adHash`, where `adHash` is the hash of the connection's ratchet data, which both sides obtain with `getConnectionRatchetAdHash`. For a p2p group it is `encodeChatBinding CBGroup (smpEncode (memberId, memberKey))`. For a channel it is `encodeChatBinding CBGroup (smpEncode (publicGroupId, memberId))`. `groupBindingData` (`Internal.hs:2261`) computes the inner part for groups. + +**Member key.** The Ed25519 key a member holds for one group. It is created when first needed — at group creation on this branch, or by `createUserMemberKey` before the first signed message — and the public key is sent in introductions and in `XInfo`. + +**Default limit.** `maxFileSize`, 1GB. A supporter badge raises it to 2GB, a legend badge to 5GB (`maxXFTPFileSize`, `Badges.hs:201`). The three sizes are `FileSizeLimits` in `ChatConfig`, `defaultFileSizeLimits` in production and lowered in tests. The default limit is also the size above which a proof is required. + +## 1. Presentation headers + +File: `src/Simplex/Chat/Badges.hs`. + +Extend `ProofPresHeader`: + +```haskell +data ProofPresHeader + = PHTest ByteString + | PHChat ByteString + | PHFileInv ByteString String Integer + | PHFileDescr ByteString String Integer ByteString (Maybe UTCTime) + | PHUnknown Char ByteString +``` + +- `PHChat` holds the chat binding. +- `PHFileInv` holds the chat binding and the file size from the invitation. +- `PHFileDescr` holds the same two values, then the shared description hash (section 8) and the file expiration. + +The file name is not part of either header: `validateFileInvitation` replaces it with a name valid on the local file system, and history re-sends the stored name. + +One constructor serves every chat type, because the chat binding already encodes the type of chat in its first byte. Each constructor gets a tag character in `ProofPresHeaderTag` and an encoding in the `StrEncoding` instance, in the same style as `PHTest`. The file expiration is optional, because a server may grant none; it is encoded as `strEncode` of the time, or one fixed byte when absent. The badge's own expiry is a time and is encoded with `strEncode` in the disclosed messages (`badgeInfoMessages`, `Badges.hs:296`). + +`verifyBadgeWith` today verifies a proof with whatever header the proof contains. After this change the receiver first checks that the header names the sender as the receiver knows them, and only then runs BBS verification with that header. `proofPresHeaderAccepted` is removed. What the receiver knows is already held by existing types, so no new type is added: + +- A contact request, link data, and the profile in a direct chat: the header must be `PHTest`. +- A file in a direct chat: the receiver has the contact's connection and obtains its ratchet hash from the agent, as `newContentMessage` does for a contact card (`Subscriber.hs:1883`). The binding in the header must equal `encodeChatBinding CBDirect adHash`. +- A profile or a file in a group: the receiver has the `GroupInfo` and the sender's `GroupMember`. The binding in the header must equal `groupBindingData` for that member — for a channel the group's public id and the member id; for a p2p group the member id and a key that passes the key check. + +**The key check.** A p2p binding contains the sender's member key. The receiver may know that member's key from the introduction or from a signed message, or may not know it yet. If the receiver knows a key and it differs from the key in the header, the proof fails. Otherwise the key in the header is used for this verification and never stored; keys are stored only by the introduction and by `storeMemberKey`. + +The file headers are checked the same way and then further: `PHFileInv` must also name the file size as received; `PHFileDescr` must also hold the hash of the received description and the expiration received with it. + +`PHUnknown` fails every check. A proof from a released client, which presents `PHTest` in groups, fails in groups; no badge has been issued yet, so nothing in use is affected. A released client that receives one of the new headers verifies it, because its `proofPresHeaderAccepted` admits unknown tags and BBS verification runs with the header bytes as sent. No protocol version change is needed. + +`groupBindingData` moves from `Internal.hs` to `Protocol.hs`, beside `encodeChatBinding`, because the store modules import `Protocol` and not `Internal`. Module order fixes where the check is computed: `Badges.hs` is imported by `Types.hs`, which `Protocol.hs` imports, so the header check in `Badges.hs` takes plain values — the expected binding for a channel or a direct chat, or the member id and the stored key for a p2p group — and the callers in the store compute them from `GroupInfo` and `GroupMember` with `groupBindingData`. `profileBadgeVerified` is in `Types.hs` today and cannot call `groupBindingData`; it moves to `Store/Shared.hs`, beside the other badge-verifying store code. + +`SimplexDomainProof` (`Names.hs:37`) also uses `ProofPresHeader`, as an opaque value. Its verification is unchanged. + +## 2. Presenting the profile badge + +File: `src/Simplex/Chat/Library/Internal.hs`, `presentUserBadge` (`:2178`). + +The function generates the proof for an outgoing profile. It takes a new argument, `Maybe GroupInfo`. With `Nothing` it generates `PHTest` as today. With `Just gInfo` it generates `PHChat` from the group's chat binding and the user's own member key in that group, calling `createUserMemberKey` first when the group has no key yet. + +Call sites that send a profile into a group pass the group: `Commands.hs:3953` (join via group link, the group case), `:4291` (the owner's profile to a relay); `Subscriber.hs:480` (the group case), `:611`, `:799`, `:813`, `:941`, `:1220`, `:3271`; `Internal.hs:2539` (`sendGroupProfileUpdate`). All other call sites send a direct profile and pass `Nothing`. + +The profile in a direct chat keeps `PHTest`; moving it to `PHChat` is a later change. + +## 3. Accepting the profile badge + +A received badge is verified today at seven places in the store layer, each verifying the proof with no knowledge of the sender: `profileBadgeVerified` (`Types.hs:834`), `createContact_` (`Store/Shared.hs:420`), `createJoiningMember` (`Store/Groups.hs:2089`), `createNewMemberProfile_` (`Store/Groups.hs:2459`), two contact request sites (`Store/ContactRequest.hs:169, 236`), and `linkDataBadge` (`Internal.hs:2194`). + +The direct sites keep verifying with `PHTest`. The group sites gain the `GroupInfo` and the sender's `GroupMember` where they do not have them already: `updateMemberProfile` and `updateContactMemberProfile` (`Store/Groups.hs:3430, 3453`) have the member and gain the group, and pass both to `profileBadgeVerified`; `createNewMemberProfile_` gains both from `createNewGroupMember`. A badge from a message that was not verified with the member's key is not verified at all: the caller removes it from the profile before storing, so the store function sees no badge. + +Where a badge is accepted in a p2p group: + +- `xInfoMember` (`Subscriber.hs:2738`): only when the `XInfo` was verified with the member's key. `RcvMessage.msgSigned` is `MSSVerified` when a stored key verified it. When the same message delivers the key, `storeMemberKey` has verified the signature with that key, and the badge is kept on the same basis. Otherwise the badge is removed from the profile before `processMemberProfileUpdate`. +- `xGrpLinkMem` (`:2744`): the host's profile to the joiner, signed on this branch. +- The member connection handshake, section 4. + +Where a badge is dropped in a p2p group: `createJoiningMember` and `createNewMemberProfile_`. The profile is stored without the badge, and the member's badge arrives at the handshake. + +In a channel a member's profile arrives in three ways: in `XMember` when the member joins, which the member signs and the owner verifies with the roster key (`verifyKey`, `Subscriber.hs:1656`) before `createJoiningMember`; in the introduction from a relay, stored by `createNewMemberProfile_`; and in `XInfo`. A badge in any of them is kept and verified, because member keys in a channel are established by the roster, which the owner signs, and `xGrpMemNew` rejects a relay that asserts a different key (`Subscriber.hs:3127-3134`). + +## 4. The member connection handshake + +When two p2p members connect, each sends `XGrpMemInfo` with its group profile. It is sent from two places: the reply on the member connection (`Subscriber.hs:816`) and the join of the member connection and of the direct connection to the same member (`:3272`, both joined with the same message at `:3282-3283`). The four receiving sites — `:590, 620` on the direct connection, `:810, 823` on the member connection — each have a "TODO update member profile" comment. + +- **Sign the join side.** `xGrpMemFwd` sends `encodeConnInfo $ XGrpMemInfo ...` (`:3272`), plain JSON. Change it to `encodeSignedConnInfo` with `groupMsgSigning` when the agreed version is at least `relayWebCapVersion`. The agreed version is computed three lines below, as `chatV`; move that computation above the send. Call `createUserMemberKey` before signing, here and at the reply site, as every other signing site does. +- **Parse the signature on CONF.** The member CONF site parses with `parseChatMessage` (`:745`), which discards the signature. Change it to `parseChatMessage'`, as INFO already does (`:823`). +- **Verify the signature.** At `:810` and `:823` verify the signed `XGrpMemInfo` with the member's stored key. `XGrpMemInfo` names no key, and the handshake follows the introduction, which stored the key. A member with no stored key is not verified. +- **Store the profile.** At `:810` and `:823` call `processMemberProfileUpdate` with the profile, with the badge removed when the signature did not verify. +- `:590` and `:620` stay as they are. The profile there is the same group profile, received over the direct connection to the member. The contact for a member shares the member's profile row (`createIntroToMemberContact`, `Store/Groups.hs:2684-2685`), so storing it once, on the member connection, updates both. + +## 5. The file size limit at send + +`checkSndFile` (`Commands.hs:3973`) compares the file size with the sender's limit and is called from the two content send paths only, with `Nothing` for an incognito send (`:4773`, `:4858`). `APIUploadStandaloneFile` (`:3628`) checks the hard limit and never the badge. + +The comparison stays where it is, with one change: the limit at send counts a badge as active until one day after its expiry, instead of the seven days `maxXFTPFileSize` allows a receiver. `maxSndXFTPFileSize` in `Badges.hs` computes the send limit with that rule, from `FileSizeLimits` and the current time, and the apps use the same rule for the limit they show on the compose screen (section 11), so the compose screen never offers a size the send refuses. + +Standalone uploads do not apply badge limits. `APIUploadStandaloneFile` keeps the hard limit. + +## 6. The file invitation proof + +**Type.** `FileInvitation` (`Types.hs:1555`) gains `fileBadge :: Maybe BadgeProof`. The JSON instance omits absent fields, so a released client ignores it. + +**Generation.** In `xftpSndFileTransfer_` (`Internal.hs:438`), when the file is above the default limit and the send is not incognito, generate a proof with `PHFileInv` from the chat binding and the file size, and set it in the invitation. `sndFileChatBinding` computes the binding from `ContactOrGroup`: `CBDirect` with the ratchet hash of the contact's connection, obtained from the agent as `shareChatBinding` does (`Commands.hs:4685`); `CBChannel` with the public group id for content sent as the group; the member binding otherwise. `CGGroup` gains `ShowGroupAsSender`, which both send paths already hold. + +A file sent as the group is bound to the channel because a relay forwards it as `FwdChannel` with no author, so the receiver has no member to rebind to. The receiver picks the same case from the item's `showGroupAsSender`. + +**Verification.** A file invitation arrives at three places: `processFileInvitation` (`Subscriber.hs:1957`), for a file in a content message in a direct chat or a group, called with a closure that creates the transfer; `processGroupFileInvitation'` (`:2437`), for the older `XFile` event in a group; and `processFileInvitation'` (`:2422`) for `XFile` in a direct chat. The proof is checked against the file size and against the sender: the connection's ratchet hash for a contact, the group and member for a member. The result is the decision below, passed to `createRcvFileTransfer` or `createRcvGroupFileTransfer`, which gain it as an argument and write it. + +**The decision.** A file is either allowed or prohibited; when prohibited, the apps need the limit that applied and why. + +```haskell +data FileProhibited = FileProhibited {maxSize :: Int64, badgeStatus :: Maybe BadgeStatus} +``` + +`Nothing` when allowed; `Just` when prohibited: + +- Above the default limit, and the invitation has no proof: the default limit and `Nothing`. +- Above the default limit, and the proof fails the header check or BBS verification: the default limit and `BSFailed`; `BSUnknownKey` when the issuer key index is not configured. +- Above the default limit, and the proof verifies but the badge has expired beyond the grace: the default limit and the expiry status. +- Above the limit that a verified, active badge allows: that limit and `BSActive`. + +The sender's profile badge plays no part. An invitation without a proof gets the default limit in every chat type. + +**Storage.** Two new columns on `files`: `file_max_size INTEGER`, the limit that applied, and `file_badge_status TEXT`, the badge status, both NULL when the file is allowed. A file is prohibited when `file_max_size` is set; `file_badge_status` is NULL when the invitation had no proof. `BadgeStatus` gains `TextEncoding` and field instances for the column, as `MsgSigStatus` has (`Types/Shared.hs:137`). `createRcvFileTransfer` and `createRcvGroupFileTransfer` (`Store/Files.hs:448, 469`) write both. Sent and local files, and rows from before this change, hold NULL. + +A proof that verifies is stored in `file_badge_proofs` (section 12) with kind `inv`, for history (section 9); a proof that failed is not stored, as `files.file_badge_status` records that it failed. A sent file stores its own proof the same way. + +**The chat item.** `CIFile` (`Messages.hs:684`) gains `fileProhibited :: Maybe FileProhibited`. `MaybeCIFIleRow` (`Store/Messages.hs:2279`) gains the column, the three queries that select the file columns gain `f.file_max_size, f.file_badge_status`, and the two `maybeCIFile` constructors and the five other `CIFile` constructions (`Internal.hs:449`, `Subscriber.hs:2001, 2456, 2472`, `Commands.hs:5009`) set it. + +**Accepting a file.** `acceptFileReceive` (`Internal.hs:746`) fails with `CEFileSize` when the file is prohibited. The apps stop a tap before that, from the same field. + +## 7. The file description proof + +**Type.** `XMsgFileDescr` (`Protocol.hs:454`) gains `fileBadge :: Maybe BadgeProof`, encoded with `.=?` like `fileExpires`. + +**Generation.** The description proof is generated when the upload completes, which may be hours after the send, from the credential as it is then. If the badge expired meanwhile, the proof still verifies at receivers, which allow seven days past expiry; if the user hid the badge, the credential row is still there; if the badge was renewed, the new credential is used. Only a credential deleted outright leaves the file without a description proof, and receivers then prohibit it. Nothing is copied at send. + +In the `SFDONE` handler (`Subscriber.hs:209`), when the file is above the default limit, the user holds a credential, and the send was not incognito — the handler has the chat item and its contact or group, so the same condition as at the invitation — generate one proof with `PHFileDescr`: the values of the invitation header, `sharedDescriptionHash` of any one recipient description, and `fileExpires`. `sendFileDescriptions` (`:283`) sets it on the last part for each recipient, in the direct branch (`:237`) and the group branch (`:252`) alike; the parts are split in `splitText` (`:297`). + +**Verification.** When the file is allowed and above the default limit: + +1. The part that completes the description must have a proof. `processFDMessage` (`Subscriber.hs:1940`) receives every part and calls `receiveViaCompleteFD` when the description is complete and the file was accepted. It verifies the proof on the completing part, before that call, and on success stores it in `file_badge_proofs` with kind `descr`. On failure it records the same decision as a failed invitation proof — the default limit and the badge status on `files` — so the file is refused by `acceptFileReceive` and the apps show the reason from one field. A file that requires a badge is received from the description message: `validateFileInvitation` stores its description as incomplete, so a complete description in an invitation cannot start a download unverified. +2. Check the header: binding, name, size as at the invitation; the hash equal to `sharedDescriptionHash` of the parsed description; the expiration equal to `fileExpires` from the message. +3. If the expiration is present and in the past, fail. +4. If the expiration is absent, accept. Older servers grant no expiration. This is tightened once servers are upgraded. + +The error set on failure is a new `FileError` value, so the apps can name the reason. + +## 8. The shared description hash + +File: `Simplex.FileTransfer.Description` in simplexmq. + +`sndFileToDescrs`, in the agent's `Simplex.FileTransfer.Agent`, builds one description per recipient from one set of values. The values common to the sender's description and every recipient's are `size`, `digest`, `key`, `nonce`, `chunkSize`, and for each chunk `chunkNo`, `chunkSize` and `digest`. `party` differs between sender and recipient, `replicas` differ per recipient, and `redirect` is absent from the sender's. + +Add `sharedDescriptionHash :: FileDescription p -> ByteString`: SHA-512 over a fixed encoding of those values in that order. Defining it beside the type keeps it in step with the format. + +Because the hash ignores replicas, one proof is valid for every recipient's description, including one re-sent later as history. In a channel the sender sends descriptions to the relays (`getGroupRelayMembers`, `Subscriber.hs:260`), which forward them to the members; whichever description a member receives, the hash is the same. + +## 9. History + +`sendHistory` (`Internal.hs:1366-1481`) re-sends a file item to a new member as a new invitation built from the stored name and size (`invCompleteDescr`, `:1445`) with the description in `XMsgFileDescr` parts (`:1481`). Content is not signed, so nothing from the original messages survives. + +Both proofs are read from `file_badge_proofs` by kind. For a file received from another member they are re-sent unchanged: they are bound to the original sender, and history names that sender (`fwdSender`, `:1466`), so the new member verifies them against that member's binding. For the host's own files the stored proofs are re-sent too, and are re-made from the credential over the stored headers only when the badge that made them is past the send grace and the current badge is active — never for a signed item, whose original bytes are forwarded. + +`fileExpired` (`:1439-1443`) decides which files history re-sends by the item's age against `rcvFilesTTL`, two days, and ignores the granted expiration stored with the file. That check should use the stored `fileExpires`; it is noted here because it bounds when the stored proofs are read. + +## 10. Forwarding + +Forwarding a file uploads it again from the local copy, so the forwarder's own limit applies. The forward plan (`APIPlanForwardChatItems`, `Commands.hs:1004-1050`) runs before the destination is chosen; it checks whether the file was received and exists, and nothing about size. A too-large forward fails at send, after the user has chosen the recipient. + +Two checks, both before any upload: + +- **In the apps, before the sheet.** The app has the file size and the user's own badge, so it decides without calling core, with the same send rule the compose screen uses (section 11). The per-item Forward action, which opens the sheet directly today — `forwardedChatItems = [chatItem]` (`ChatView.swift:2407`), `SharedContent.Forward(listOf(cItem), cInfo)` (`ChatView.kt:625`) — shows the alert instead when the file is above that limit. Multi-select (`ChatView.swift:1515`, `ChatView.kt:347`) makes the same check on the selected items before calling the plan, and shows the same alert with the count when any file is above it. The plan command is unchanged. +- **In the sheet.** When a forwarded item has a file above the default limit, the sheet where the destination is chosen disables every chat in which the user is incognito — a contact with `contactConnIncognito`, a group with `memberIncognito` on the membership — because the badge is not presented there and the file cannot be sent. +- **In the forward command**, `APIForwardChatItems` (`Commands.hs:1052`), once the destination is known: each file is checked against the destination's limit — the default for an incognito membership, as `checkSndFile` decides today — before any item is created or upload started. A file above it fails the command with a new `ChatErrorType` value naming the count, which the apps show as the same alert. + +## 11. The apps + +The receive decision is computed in eleven places from the sender's profile: `getMaxFileSize(protocol, senderProfile)` (`FileUtils.swift:280`, `Utils.kt:477`) and `fileSizeValid(file, senderProfile)` (`CIFileView.swift:236`, `CIFileView.kt:241`), used in `CIFileView`, `CIImageView`, `CIVideoView`, `ChatView.swift:2323`, `ChatItemView.kt:452`, with a second copy of the check in each video view (`receiveFileIfValidSize`). + +- `CIFile` gains `fileProhibited` in `ChatTypes.swift:4681` and `ChatModel.kt:4249`, with `FileProhibited` decoded from core. +- `fileSizeValid` becomes a check that `fileProhibited` is absent and takes no profile. The alert is worded by `badgeStatus` — no badge, unverified, unknown key, expired, or above the badge's limit — with `maxSize` as the figure. +- `getMaxFileSize` loses the profile argument for received files. The compose screen keeps computing the sender's own limit from the user's own badge (`ComposeView.swift:1272`, `ComposeView.kt:1423`), with the one-day rule of section 5 instead of the seven-day status; `ShareModel.swift:448, 539` and `ComposeView.kt:118` start passing the profile, so they stop showing 1GB to a badge holder. +- `ciSenderProfile` and the `senderProfile` parameters are removed from the file, image and video views and their call sites in `FramedItemView` and `ChatPreviewView`. +- `FileError` gains the new value in `ChatTypes.swift` and `ChatModel.kt`, with a message for it. +- The generated API mirrors — `bots/api/TYPES.md`, `types.ts`, `_types.py` — are regenerated for `CIFile`, `FileProhibited` and `FileInvitation`. + +## 12. Schema and fixtures + +Migration `M20260904_file_badges`, SQLite and Postgres: + +```sql +ALTER TABLE files ADD COLUMN file_max_size INTEGER; +ALTER TABLE files ADD COLUMN file_badge_status TEXT; + +CREATE TABLE file_badge_proofs( + badge_proof_id INTEGER PRIMARY KEY AUTOINCREMENT, + file_id INTEGER NOT NULL REFERENCES files ON DELETE CASCADE, + proof_kind TEXT NOT NULL, + badge_proof BLOB NOT NULL, + badge_pres_header BLOB NOT NULL, + badge_key_idx INTEGER NOT NULL, + badge_type TEXT NOT NULL, + badge_expiry TEXT NOT NULL, + badge_extra TEXT NOT NULL, + created_at TEXT NOT NULL, + updated_at TEXT NOT NULL +) STRICT; + +CREATE UNIQUE INDEX idx_file_badge_proofs_file_id_kind ON file_badge_proofs(file_id, proof_kind); +``` + +The six proof columns are the fields of `BadgeProof` — the proof, the presentation header, the issuer key index, and the disclosed type, expiry and extra — with a conversion of its own. A file is one direction, so it has at most two proofs; `proof_kind` is `inv` or `descr`, and the unique index makes each a single upsert. The row references the file with `ON DELETE CASCADE`, so it is removed with the file, which is how file rows are removed today — by cascade from chat items, contacts and groups rather than by one function. Postgres uses `BYTEA`, `BIGINT` and `GENERATED ALWAYS AS IDENTITY`. Register in both `Migrations.hs` lists and in `simplex-chat.cabal`. Update both `chat_schema.sql` files and `chat_query_plans.txt`; `SchemaDump.hs` compares them. + +## 13. Tests + +- `BadgeTests.hs`: each header encodes and decodes; a proof generated with one header fails with another; the key check accepts an unknown key, accepts an equal key, rejects a different one. +- `ChatTests/Profiles.hs`, beside the seven badge tests: a badge in a p2p group appears at the other member after the connection handshake and not before; a proof presented under another member's binding is rejected; a badge in a channel appears on presentation. Existing tests that assert a badge at introduction time are updated. +- `ChatTests/Files.hs`, beside `testXFTPGroupFileTransfer`: a file above the default limit from a badge holder is received in a group and in a direct chat; an invitation whose proof was made for another member is refused; a description with a changed hash fails before download; a file above the limit received as history is received by the new member; a forward into an incognito membership above the default limit fails the command before any upload. +- `ProtocolTests.hs`: the new fields in `FileInvitation` and `XMsgFileDescr`. + +## Out of scope + +- Moving the direct chat profile proof to `PHChat`. +- Requiring an expiration in the description proof, once servers grant one. diff --git a/scripts/nix/sha256map.nix b/scripts/nix/sha256map.nix index 00fd3f7c5d..b28f5afbf9 100644 --- a/scripts/nix/sha256map.nix +++ b/scripts/nix/sha256map.nix @@ -1,5 +1,5 @@ { - "https://github.com/simplex-chat/simplexmq.git"."2d4b40e10475fd2d09c76c590df89f384ac45c85" = "04jr59xqs5lc193w761di3bpnxwz6638yg4yvcmgq5m4z5djj8jk"; + "https://github.com/simplex-chat/simplexmq.git"."a00e225d74dfa03aba2293530416f69c55373bed" = "0d0bd5w7rf862fswk6p2bcafjwxpvg78apz1yjcva8i2la8as1k5"; "https://github.com/simplex-chat/hs-socks.git"."a30cc7a79a08d8108316094f8f2f82a0c5e1ac51" = "0yasvnr7g91k76mjkamvzab2kvlb1g5pspjyjn2fr6v83swjhj38"; "https://github.com/simplex-chat/direct-sqlcipher.git"."f814ee68b16a9447fbb467ccc8f29bdd3546bfd9" = "1ql13f4kfwkbaq7nygkxgw84213i0zm7c1a8hwvramayxl38dq5d"; "https://github.com/simplex-chat/sqlcipher-simple.git"."a46bd361a19376c5211f1058908fc0ae6bf42446" = "1z0r78d8f0812kxbgsm735qf6xx8lvaz27k1a0b4a2m0sshpd5gl"; diff --git a/simplex-chat.cabal b/simplex-chat.cabal index 3c50d92968..7d0172ba3d 100644 --- a/simplex-chat.cabal +++ b/simplex-chat.cabal @@ -156,6 +156,7 @@ library Simplex.Chat.Store.Postgres.Migrations.M20260813_auto_accept_group_invitations Simplex.Chat.Store.Postgres.Migrations.M20260822_forward_link Simplex.Chat.Store.Postgres.Migrations.M20260828_file_expiry + Simplex.Chat.Store.Postgres.Migrations.M20260904_file_badges else exposed-modules: Simplex.Chat.Archive @@ -329,6 +330,7 @@ library Simplex.Chat.Store.SQLite.Migrations.M20260813_auto_accept_group_invitations Simplex.Chat.Store.SQLite.Migrations.M20260822_forward_link Simplex.Chat.Store.SQLite.Migrations.M20260828_file_expiry + Simplex.Chat.Store.SQLite.Migrations.M20260904_file_badges other-modules: Paths_simplex_chat hs-source-dirs: diff --git a/src/Simplex/Chat.hs b/src/Simplex/Chat.hs index 3eb2045317..85df305f36 100644 --- a/src/Simplex/Chat.hs +++ b/src/Simplex/Chat.hs @@ -28,7 +28,7 @@ import qualified Data.Map.Strict as M import Data.Maybe (fromMaybe, mapMaybe) import Data.Text (Text) import Data.Time.Clock (getCurrentTime, nominalDay) -import Simplex.Chat.Badges (badgeServerCredential) +import Simplex.Chat.Badges (badgeServerCredential, defaultFileSizeLimits) import Simplex.Chat.Controller import Simplex.Chat.Library.Commands import Simplex.Chat.Operators @@ -106,6 +106,7 @@ defaultChatConfig = xftpDescrPartSize = 14000, inlineFiles = defaultInlineFilesConfig, autoAcceptFileSize = 0, + fileSizeLimits = defaultFileSizeLimits, showReactions = False, showFullLinks = False, showReceipts = False, diff --git a/src/Simplex/Chat/Badges.hs b/src/Simplex/Chat/Badges.hs index e926d34d0a..62683788d5 100644 --- a/src/Simplex/Chat/Badges.hs +++ b/src/Simplex/Chat/Badges.hs @@ -25,7 +25,11 @@ module Simplex.Chat.Badges BBSPublicKeyStr (..), localBadgeInfo, localBadgeStatus, + FileSizeLimits (..), + defaultFileSizeLimits, maxXFTPFileSize, + maxSndXFTPFileSize, + badgeSndGraceInterval, badgeServerCredential, maxFileSizeSupporter, maxFileSizeLegend, @@ -46,6 +50,10 @@ module Simplex.Chat.Badges verifyBadge_, mkBadgeStatus, BadgeRow, + BadgeProofKind (..), + BadgeProofRow, + badgeProofToRow, + rowToBadgeProof, badgeToRow, localBadgeToRow, rowToBadge, @@ -66,11 +74,13 @@ import Data.String import Data.Text (Text) import Data.Text.Encoding (encodeUtf8) import Data.Time.Clock (NominalDiffTime, UTCTime, addUTCTime, nominalDay) +import Data.Time.Clock.System (systemToUTCTime, utcToSystemTime) import Simplex.FileTransfer.Description (gb, maxFileSize) import Simplex.Messaging.Agent.Store.DB (Binary (..), BoolInt (..), fromTextField_) import qualified Simplex.Messaging.Crypto as C import Simplex.Messaging.Crypto.BBS import Simplex.Messaging.Crypto.Entitlement (Entitlement (Entitlement), EntitlementCredential (EntitlementCredential), MasterKey (MasterKey), entitlementBBSHeader) +import Simplex.Messaging.Encoding (Encoding (..)) import Simplex.Messaging.Encoding.String import Simplex.Messaging.Parsers (defaultJSON, dropPrefix, enumJSON) #if defined(dbPostgres) @@ -114,6 +124,35 @@ instance FromJSON BadgeType where data BadgeStatus = BSActive | BSExpired | BSExpiredOld | BSFailed | BSUnknownKey deriving (Eq, Show) +instance TextEncoding BadgeStatus where + textEncode = \case + BSActive -> "active" + BSExpired -> "expired" + BSExpiredOld -> "expired_old" + BSFailed -> "failed" + BSUnknownKey -> "unknown_key" + textDecode = \case + "active" -> Just BSActive + "expired" -> Just BSExpired + "expired_old" -> Just BSExpiredOld + "failed" -> Just BSFailed + "unknown_key" -> Just BSUnknownKey + _ -> Nothing + +-- Badge proof kind - a file has at most one proof of each kind + +data BadgeProofKind = BPKInvitation | BPKDescription + deriving (Eq, Show) + +instance TextEncoding BadgeProofKind where + textEncode = \case + BPKInvitation -> "inv" + BPKDescription -> "descr" + textDecode = \case + "inv" -> Just BPKInvitation + "descr" -> Just BPKDescription + _ -> Nothing + -- Disclosed badge content (BBS messages 1, 2, 3) data BadgeInfo = BadgeInfo @@ -186,10 +225,10 @@ localBadgeStatus = \case ShownBadge _ st -> st -- XFTP file size limit raised by an active badge: a legend badge to 5GB, any other to 2GB, otherwise the default. -maxFileSizeSupporter :: Int64 +maxFileSizeSupporter :: Integer maxFileSizeSupporter = gb 2 -maxFileSizeLegend :: Int64 +maxFileSizeLegend :: Integer maxFileSizeLegend = gb 5 badgeServerCredential :: Maybe LocalBadge -> Maybe EntitlementCredential @@ -198,31 +237,62 @@ badgeServerCredential = \case Just $ EntitlementCredential (fromIntegral idx) (MasterKey mk) (Entitlement badgeExpiry (textEncode badgeType) badgeExtra) sig _ -> Nothing -maxXFTPFileSize :: Maybe LocalBadge -> Int64 -maxXFTPFileSize = \case - Just b | localBadgeStatus b == BSActive -> case badgeType (localBadgeInfo b) of - BTLegend -> maxFileSizeLegend - _ -> maxFileSizeSupporter - _ -> maxFileSize +data FileSizeLimits = FileSizeLimits + { noBadge :: Integer, + supporter :: Integer, + legend :: Integer + } + deriving (Eq, Show) + +defaultFileSizeLimits :: FileSizeLimits +defaultFileSizeLimits = FileSizeLimits {noBadge = toInteger maxFileSize, supporter = maxFileSizeSupporter, legend = maxFileSizeLegend} + +-- a badge raises the size limit at send for this long after its expiry, shorter than badgeGraceInterval so the receiver still accepts the size +badgeSndGraceInterval :: NominalDiffTime +badgeSndGraceInterval = nominalDay + +badgeFileSize :: FileSizeLimits -> LocalBadge -> Integer +badgeFileSize FileSizeLimits {supporter, legend} b = case badgeType (localBadgeInfo b) of + BTLegend -> legend + _ -> supporter + +maxXFTPFileSize :: FileSizeLimits -> Maybe LocalBadge -> Integer +maxXFTPFileSize lims = \case + Just b | localBadgeStatus b == BSActive -> badgeFileSize lims b + _ -> noBadge lims + +maxSndXFTPFileSize :: FileSizeLimits -> UTCTime -> Maybe LocalBadge -> Integer +maxSndXFTPFileSize lims now = \case + Just b | localBadgeStatus b == BSActive && addUTCTime badgeSndGraceInterval (badgeExpiry (localBadgeInfo b)) >= now -> badgeFileSize lims b + _ -> noBadge lims -- Presentation header: a tag char + payload. PHTest is unbound - a fresh random nonce per -- presentation, not bound to any context; the 'T' tag marks it so master rejects it. -- PHUnknown is the forward-compat catch-all for tags this version does not interpret. -data ProofPresHeaderTag = PHTestTag | PHUnknownTag Char +data ProofPresHeaderTag = PHTestTag | PHChatTag | PHFileInvTag | PHFileDescrTag | PHUnknownTag Char instance StrEncoding ProofPresHeaderTag where strEncode = B.singleton . \case PHTestTag -> 'T' + PHChatTag -> 'C' + PHFileInvTag -> 'F' + PHFileDescrTag -> 'D' PHUnknownTag c -> c strP = tag <$> A.anyChar where tag = \case 'T' -> PHTestTag + 'C' -> PHChatTag + 'F' -> PHFileInvTag + 'D' -> PHFileDescrTag c -> PHUnknownTag c data ProofPresHeader = PHTest ByteString + | PHChat ByteString + | PHFileInv {chatBinding :: ByteString, fileSize :: Int64} + | PHFileDescr {chatBinding :: ByteString, fileSize :: Int64, descrHash :: ByteString, fileExpires :: Maybe UTCTime} | PHUnknown Char ByteString deriving (Eq, Show) deriving (ToJSON, FromJSON) via (StrJSON "ProofPresHeader" ProofPresHeader) @@ -230,16 +300,31 @@ data ProofPresHeader instance StrEncoding ProofPresHeader where strEncode = \case PHTest nonce -> strEncode PHTestTag <> nonce + PHChat binding -> strEncode PHChatTag <> binding + PHFileInv {chatBinding, fileSize} -> + strEncode PHFileInvTag <> smpEncode (chatBinding, fileSize) + PHFileDescr {chatBinding, fileSize, descrHash, fileExpires} -> + strEncode PHFileDescrTag <> smpEncode (chatBinding, fileSize, descrHash, utcToSystemTime <$> fileExpires) PHUnknown c b -> strEncode (PHUnknownTag c) <> b strP = strP >>= \case PHTestTag -> PHTest <$> A.takeByteString + PHChatTag -> PHChat <$> A.takeByteString + PHFileInvTag -> do + (chatBinding, fileSize) <- smpP + pure PHFileInv {chatBinding, fileSize} + PHFileDescrTag -> do + (chatBinding, fileSize, descrHash, expires_) <- smpP + pure PHFileDescr {chatBinding, fileSize, descrHash, fileExpires = systemToUTCTime <$> expires_} PHUnknownTag c -> PHUnknown c <$> A.takeByteString -- v6.5.x accepts both; v7 will reject PHTest/PHUnknown proofPresHeaderAccepted :: ProofPresHeader -> Bool proofPresHeaderAccepted = \case PHTest _ -> True + PHChat _ -> True + PHFileInv {} -> True + PHFileDescr {} -> True PHUnknown _ _ -> True -- Payment proof @@ -348,6 +433,26 @@ instance FromField BadgeType where fromField = fromTextField_ textDecode instance ToField BadgeType where toField = toField . textEncode +instance FromField BadgeStatus where fromField = fromTextField_ textDecode + +instance ToField BadgeStatus where toField = toField . textEncode + +instance FromField BadgeProofKind where fromField = fromTextField_ textDecode + +instance ToField BadgeProofKind where toField = toField . textEncode + +-- (proof, pres_header, key_idx, type, expiry, extra) - the fields of BadgeProof as stored in file_badge_proofs +type BadgeProofRow = (Binary ByteString, Binary ByteString, Int, Text, UTCTime, Text) + +badgeProofToRow :: BadgeProof -> BadgeProofRow +badgeProofToRow (BadgeProof idx (BBSPresHeader ph) (BBSProof p) BadgeInfo {badgeType, badgeExpiry, badgeExtra}) = + (Binary p, Binary ph, idx, textEncode badgeType, badgeExpiry, badgeExtra) + +rowToBadgeProof :: BadgeProofRow -> Maybe BadgeProof +rowToBadgeProof (Binary p, Binary ph, idx, type_, badgeExpiry, badgeExtra) = do + badgeType <- textDecode type_ + pure $ BadgeProof idx (BBSPresHeader ph) (BBSProof p) BadgeInfo {badgeType, badgeExpiry, badgeExtra} + -- (proof, pres_header, expiry, type, verified, extra, master_key, signature, key_idx) - binary columns wrapped in Binary (BLOB/bytea) type BadgeRow = (Maybe (Binary ByteString), Maybe (Binary ByteString), Maybe UTCTime, Maybe Text, Maybe BoolInt, Maybe Text, Maybe (Binary ByteString), Maybe (Binary ByteString), Maybe Int) diff --git a/src/Simplex/Chat/Controller.hs b/src/Simplex/Chat/Controller.hs index fc3f33ad54..dc4f86472c 100644 --- a/src/Simplex/Chat/Controller.hs +++ b/src/Simplex/Chat/Controller.hs @@ -83,7 +83,7 @@ import Simplex.Messaging.Agent.Store.DB (SQLError) import qualified Simplex.Messaging.Agent.Store.DB as DB import Simplex.Messaging.Client (HostMode (..), SMPProxyFallback (..), SMPProxyMode (..), SMPWebPortServers (..), SocksMode (..)) import qualified Simplex.Messaging.Crypto as C -import Simplex.Chat.Badges (BadgeCredential) +import Simplex.Chat.Badges (BadgeCredential, FileSizeLimits) import Simplex.Messaging.Crypto.BBS (BBSPublicKey) import Simplex.Messaging.Crypto.File (CryptoFile (..)) import qualified Simplex.Messaging.Crypto.File as CF @@ -152,6 +152,7 @@ data ChatConfig = ChatConfig xftpDescrPartSize :: Int, inlineFiles :: InlineFilesConfig, autoAcceptFileSize :: Integer, + fileSizeLimits :: FileSizeLimits, showReactions :: Bool, showFullLinks :: Bool, showReceipts :: Bool, diff --git a/src/Simplex/Chat/Library/Commands.hs b/src/Simplex/Chat/Library/Commands.hs index 7e3371f13e..2d65a1677a 100644 --- a/src/Simplex/Chat/Library/Commands.hs +++ b/src/Simplex/Chat/Library/Commands.hs @@ -56,7 +56,7 @@ import Data.Type.Equality import qualified Data.UUID as UUID import qualified Data.UUID.V4 as V4 import Simplex.Chat.Library.Subscriber -import Simplex.Chat.Badges (BadgeCredential (..), LocalBadge (..), badgeServerCredential, maxXFTPFileSize, mkBadgeStatus, verifyCredential) +import Simplex.Chat.Badges (BadgeCredential (..), LocalBadge (..), badgeServerCredential, maxSndXFTPFileSize, mkBadgeStatus, verifyCredential) import Simplex.Chat.Names (SimplexDomainProof (..), SimplexDomainClaim (..), claimDomain, mkDomainClaim) import Simplex.Chat.Call import Simplex.Chat.Controller @@ -3626,7 +3626,7 @@ processChatCommand cxt nm = \case fsFilePath <- lift $ toFSFilePath filePath fileSize <- liftIO $ CF.getFileContentsSize file {filePath = fsFilePath} when (fileSize > toInteger maxFileSizeHard) $ throwChatError $ CEFileSize filePath - (_, _, fileTransferMeta) <- xftpSndFileTransfer_ user file fileSize 1 Nothing + (_, _, fileTransferMeta) <- xftpSndFileTransfer_ user file fileSize 1 Nothing Nothing pure CRSndStandaloneFileCreated {user, fileTransferMeta} APIStandaloneFileInfo FileDescriptionURI {clientData} -> pure . CRStandaloneFileInfo $ clientData >>= J.decodeStrict . encodeUtf8 APIDownloadStandaloneFile userId uri file -> withUserId userId $ \user -> do @@ -3975,7 +3975,9 @@ processChatCommand cxt nm = \case fsFilePath <- lift $ toFSFilePath f unlessM (doesFileExist fsFilePath) . throwChatError $ CEFileNotFound f fileSize <- liftIO $ CF.getFileContentsSize $ CryptoFile fsFilePath cfArgs - when (fromInteger fileSize > maxXFTPFileSize sndBadge) $ throwChatError $ CEFileSize f + lims <- asks $ fileSizeLimits . config + now <- liftIO getCurrentTime + when (fileSize > maxSndXFTPFileSize lims now sndBadge) $ throwChatError $ CEFileSize f pure fileSize updateProfile :: User -> Profile -> CM ChatResponse updateProfile user p' = updateProfile_ user p' True $ withFastStore $ \db -> updateUserProfile db user p' @@ -4771,7 +4773,8 @@ processChatCommand cxt nm = \case Just file -> do let User {profile = LocalProfile {localBadge}} = user fileSize <- checkSndFile (if contactConnIncognito ct then Nothing else localBadge) file - (fInv, ciFile) <- xftpSndFileTransfer user file fileSize 1 $ CGContact ct + binding_ <- ifM ((not (contactConnIncognito ct) &&) <$> fileNeedsBadge fileSize) (directChatBinding ct) (pure Nothing) + (fInv, ciFile) <- xftpSndFileTransfer user file fileSize 1 (CGContact ct) binding_ pure (Just fInv, Just ciFile) Nothing -> pure (Nothing, Nothing) prepareMsgs :: NonEmpty (ComposedMessageReq, Maybe FileInvitation) -> Maybe CITimed -> CM (NonEmpty (MsgContainer, Maybe (CIQuote 'CTDirect))) @@ -4802,8 +4805,10 @@ processChatCommand cxt nm = \case sendGroupContentMessages user gInfo scope showGroupAsSender live itemTTL sign cmrs = do assertMultiSendable live cmrs chatScopeInfo <- mapM (getChatScopeInfo cxt user) scope - recipients <- getGroupRecipients cxt user gInfo chatScopeInfo modsCompatVersion - sendGroupContentMessages_ user gInfo scope showGroupAsSender chatScopeInfo recipients live itemTTL sign cmrs + -- the member key is created before the send, so that signatures and file badge proofs assert the same key + gInfo' <- createUserMemberKey gInfo + recipients <- getGroupRecipients cxt user gInfo' chatScopeInfo modsCompatVersion + sendGroupContentMessages_ user gInfo' scope showGroupAsSender chatScopeInfo recipients live itemTTL sign cmrs where hasReport = any (\(ComposedMessage {msgContent}, _, _, _) -> isReport msgContent) cmrs modsCompatVersion = if hasReport then contentReportsVersion else groupKnockingVersion @@ -4856,7 +4861,9 @@ processChatCommand cxt nm = \case Just file -> do let User {profile = LocalProfile {localBadge}} = user fileSize <- checkSndFile (if incognitoMembership gInfo then Nothing else localBadge) file - (fInv, ciFile) <- xftpSndFileTransfer user file fileSize n $ CGGroup gInfo recipients + needsBadge <- fileNeedsBadge fileSize + let binding_ = if needsBadge && not (incognitoMembership gInfo) then sndGroupChatBinding gInfo showGroupAsSender else Nothing + (fInv, ciFile) <- xftpSndFileTransfer user file fileSize n (CGGroup gInfo recipients) binding_ fInv' <- if signMsgs && useRelays' gInfo then (\d -> (fInv :: FileInvitation) {fileDigest = Just d}) <$> cryptoFileDigest file @@ -4914,9 +4921,9 @@ processChatCommand cxt nm = \case -- batching retrieval of quoted messages (prepareMsgs). when (live || length (L.filter (\(ComposedMessage {quotedItemId}, _, _, _) -> isJust quotedItemId) cmrs) > 1) $ throwCmdError "invalid multi send: live and more than one quote not supported" - xftpSndFileTransfer :: User -> CryptoFile -> Integer -> Int -> ContactOrGroup -> CM (FileInvitation, CIFile 'MDSnd) - xftpSndFileTransfer user file fileSize n contactOrGroup = do - (fInv, ciFile, ft) <- xftpSndFileTransfer_ user file fileSize n $ Just contactOrGroup + xftpSndFileTransfer :: User -> CryptoFile -> Integer -> Int -> ContactOrGroup -> Maybe ByteString -> CM (FileInvitation, CIFile 'MDSnd) + xftpSndFileTransfer user file fileSize n contactOrGroup binding_ = do + (fInv, ciFile, ft) <- xftpSndFileTransfer_ user file fileSize n (Just contactOrGroup) binding_ case contactOrGroup of CGContact Contact {activeConn} -> forM_ activeConn $ \conn -> withFastStore' $ \db -> createSndFTDescrXFTP db user Nothing conn ft dummyFileDescr @@ -5006,7 +5013,7 @@ processChatCommand cxt nm = \case chunkSize <- asks $ fileChunkSize . config withFastStore' $ \db -> do fileId <- createLocalFile CIFSSndStored db user nf createdAt cf fileSize chunkSize - pure CIFile {fileId, fileName = takeFileName filePath, fileSize, fileSource = Just cf, fileStatus = CIFSSndStored, fileProtocol = FPLocal, fileExpires = Nothing} + pure CIFile {fileId, fileName = takeFileName filePath, fileSize, fileSource = Just cf, fileStatus = CIFSSndStored, fileProtocol = FPLocal, fileExpires = Nothing, fileProhibited = Nothing} prepareLocalItemsData :: NonEmpty ComposedMessageReq -> NonEmpty (Maybe (CIFile 'MDSnd)) -> diff --git a/src/Simplex/Chat/Library/Internal.hs b/src/Simplex/Chat/Library/Internal.hs index d1b50f7f77..441d52ffe4 100644 --- a/src/Simplex/Chat/Library/Internal.hs +++ b/src/Simplex/Chat/Library/Internal.hs @@ -53,7 +53,7 @@ import Data.Text.Encoding (encodeUtf8) import Data.Time (addUTCTime) import Data.Time.Calendar (fromGregorian) import Data.Time.Clock (UTCTime (..), diffUTCTime, getCurrentTime, nominalDiffTimeToSeconds, secondsToDiffTime) -import Simplex.Chat.Badges (BadgeCredential (..), ProofPresHeader (..), BadgeProof (..), BadgeStatus (..), LocalBadge (..), badgeProof, mkBadgeStatus, verifyBadge) +import Simplex.Chat.Badges (BadgeCredential (..), BadgeInfo (..), ProofPresHeader (..), BadgeProof (..), BadgeProofKind (..), BadgeStatus (..), FileSizeLimits (..), LocalBadge (..), badgeProof, badgeSndGraceInterval, generateBadgeProof, localBadgeStatus, maxXFTPFileSize, mkBadgeStatus, verifyBadge) import Simplex.Chat.Names (SimplexDomainClaim (..), claimDomain) import Simplex.Chat.Call import Simplex.Chat.Controller @@ -98,7 +98,8 @@ import Simplex.Messaging.Crypto.File (CryptoFile (..), CryptoFileArgs (..)) import qualified Simplex.Messaging.Crypto.File as CF import Simplex.Messaging.Crypto.Ratchet (PQEncryption (..), PQSupport (..), pattern PQEncOff, pattern PQEncOn, pattern PQSupportOff, pattern PQSupportOn) import qualified Simplex.Messaging.Crypto.Ratchet as CR -import Simplex.Messaging.Encoding (smpEncode) +import Simplex.Messaging.Crypto.BBS (BBSPresHeader (..)) +import Simplex.Messaging.Encoding (smpDecode, smpEncode) import Simplex.Messaging.Encoding.String import Simplex.Messaging.Protocol (MsgBody, MsgFlags (..), ProtoServerWithAuth (..), ProtocolServer, ProtocolTypeI (..), SProtocolType (..), SubscriptionMode (..), UserProtocol, XFTPServer) import qualified Simplex.Messaging.Protocol as SMP @@ -435,10 +436,11 @@ roundedFDCount n | n <= 0 = 4 | otherwise = max 4 $ fromIntegral $ (2 :: Integer) ^ (ceiling (logBase 2 (fromIntegral n) :: Double) :: Integer) -xftpSndFileTransfer_ :: User -> CryptoFile -> Integer -> Int -> Maybe ContactOrGroup -> CM (FileInvitation, CIFile 'MDSnd, FileTransferMeta) -xftpSndFileTransfer_ user file@(CryptoFile filePath cfArgs) fileSize n contactOrGroup_ = do +xftpSndFileTransfer_ :: User -> CryptoFile -> Integer -> Int -> Maybe ContactOrGroup -> Maybe ByteString -> CM (FileInvitation, CIFile 'MDSnd, FileTransferMeta) +xftpSndFileTransfer_ user file@(CryptoFile filePath cfArgs) fileSize n contactOrGroup_ binding_ = do + fileBadge <- pure binding_ $>>= \chatBinding -> sndBadgeProof user PHFileInv {chatBinding, fileSize = fromInteger fileSize} let fileName = takeFileName filePath - fInv = xftpFileInvitation fileName fileSize dummyFileDescr + fInv = (xftpFileInvitation fileName fileSize dummyFileDescr :: FileInvitation) {fileBadge} fsFilePath <- lift $ toFSFilePath filePath let srcFile = CryptoFile fsFilePath cfArgs aFileId <- withAgent $ \a -> xftpSendFile a (aUserId user) srcFile (roundedFDCount n) Nothing @@ -446,9 +448,32 @@ xftpSndFileTransfer_ user file@(CryptoFile filePath cfArgs) fileSize n contactOr chSize <- asks $ fileChunkSize . config ft@FileTransferMeta {fileId} <- withStore' $ \db -> createSndFileTransferXFTP db user contactOrGroup_ file fInv (AgentSndFileId aFileId) Nothing chSize let fileSource = Just $ CryptoFile filePath cfArgs - ciFile = CIFile {fileId, fileName, fileSize, fileSource, fileStatus = CIFSSndStored, fileProtocol = FPXFTP, fileExpires = Nothing} + ciFile = CIFile {fileId, fileName, fileSize, fileSource, fileStatus = CIFSSndStored, fileProtocol = FPXFTP, fileExpires = Nothing, fileProhibited = Nothing} pure (fInv, ciFile, ft) +fileNeedsBadge :: Integer -> CM Bool +fileNeedsBadge fileSize = (fileSize >) . noBadge <$> asks (fileSizeLimits . config) + +sndBadgeProof :: User -> ProofPresHeader -> CM (Maybe BadgeProof) +sndBadgeProof user = sndBadgeProof_ user . BBSPresHeader . strEncode + +sndBadgeProof_ :: User -> BBSPresHeader -> CM (Maybe BadgeProof) +sndBadgeProof_ User {profile = LocalProfile {localBadge}} ph = case localBadge of + Just (OwnBadge cred@(BadgeCredential keyIdx _ _ _) _) -> do + keys <- asks $ badgePublicKeys . config + case M.lookup keyIdx keys of + Nothing -> Nothing <$ logError "sndBadgeProof: badge key index not in config" + Just key -> + liftIO (generateBadgeProof key cred ph) >>= \case + Right proof -> pure $ Just proof + Left e -> Nothing <$ logError ("sndBadgeProof: proof generation failed: " <> T.pack e) + _ -> pure Nothing + +sndGroupChatBinding :: GroupInfo -> ShowGroupAsSender -> Maybe ByteString +sndGroupChatBinding GroupInfo {groupKeys, membership = GroupMember {memberId}} asGroup + | asGroup = (\PublicGroupKeys {publicGroupId} -> encodeChatBinding CBChannel $ smpEncode publicGroupId) <$> (groupKeys >>= publicGroupKeys) + | otherwise = (\GroupKeys {memberPrivKey} -> encodeChatBinding CBGroup $ groupBindingData groupKeys memberId (C.publicKey memberPrivKey)) <$> groupKeys + cryptoFileDigest :: CryptoFile -> CM FD.FileDigest cryptoFileDigest (CryptoFile filePath cfArgs) = do fsPath <- lift $ toFSFilePath filePath @@ -744,10 +769,11 @@ rctFileCancelled = \case _ -> False acceptFileReceive :: User -> RcvFileTransfer -> Bool -> Maybe Bool -> Maybe FilePath -> CM AChatItem -acceptFileReceive user@User {userId} RcvFileTransfer {fileId, xftpRcvFile, fileInvitation = FileInvitation {fileName = fName, fileConnReq, fileInline, fileSize}, fileStatus, grpMemberId, cryptoArgs} userApprovedRelays rcvInline_ filePath_ = do +acceptFileReceive user@User {userId} RcvFileTransfer {fileId, xftpRcvFile, fileInvitation = FileInvitation {fileName = fName, fileConnReq, fileInline, fileSize}, fileProhibited, fileStatus, grpMemberId, cryptoArgs} userApprovedRelays rcvInline_ filePath_ = do unless (fileStatus == RFSNew) $ case fileStatus of RFSCancelled _ -> throwChatError $ CEFileCancelled fName _ -> throwChatError $ CEFileAlreadyReceiving fName + when (isJust fileProhibited) $ throwChatError $ CEFileSize fName cxt <- chatStoreCxt case (xftpRcvFile, fileConnReq) of -- XFTP @@ -1419,15 +1445,17 @@ sendHistory user gInfo@GroupInfo {membership} m@GroupMember {activeConn = Just c resolveAuthor (Just gmId) = do cxt <- chatStoreCxt eitherToMaybe <$> withStore' (\db -> runExceptT $ getGroupMemberById db cxt user gmId) - getRcvFileInvDescr :: CIFile 'MDRcv -> CM (Maybe (FileInvitation, RcvFileDescrText, Maybe UTCTime)) + getRcvFileInvDescr :: CIFile 'MDRcv -> CM (Maybe HistoryFile) getRcvFileInvDescr ciFile@CIFile {fileId, fileProtocol, fileStatus, fileExpires} = do expired <- fileExpired fileExpires if fileProtocol /= FPXFTP || fileStatus == CIFSRcvCancelled || expired then pure Nothing else do - rfd <- withStore $ \db -> getRcvFileDescrByRcvFileId db fileId - pure $ invCompleteDescr ciFile rfd - getSndFileInvDescr :: CIFile 'MDSnd -> CM (Maybe (FileInvitation, RcvFileDescrText, Maybe UTCTime)) + (rfd, (invBadge, descrBadge)) <- withStore $ \db -> do + rfd <- getRcvFileDescrByRcvFileId db fileId + (rfd,) <$> liftIO (getFileBadgeProofs db fileId) + pure $ invCompleteDescr ciFile rfd invBadge descrBadge + getSndFileInvDescr :: CIFile 'MDSnd -> CM (Maybe HistoryFile) getSndFileInvDescr ciFile@CIFile {fileId, fileProtocol, fileStatus, fileExpires} = do expired <- fileExpired fileExpires if fileProtocol /= FPXFTP || fileStatus == CIFSSndCancelled || expired @@ -1435,28 +1463,54 @@ sendHistory user gInfo@GroupInfo {membership} m@GroupMember {activeConn = Just c else do -- can also lookup in extra_xftp_file_descriptions, though it can be empty; -- would be best if snd file had a single rcv description for all members saved in files table - rfd <- withStore $ \db -> getRcvFileDescrBySndFileId db fileId - pure $ invCompleteDescr ciFile rfd + now <- liftIO getCurrentTime + (rfd, (invBadge, descrBadge)) <- withStore $ \db -> do + rfd <- getRcvFileDescrBySndFileId db fileId + (rfd,) <$> liftIO (getFileBadgeProofs db fileId) + -- a signed item forwards the author's original bytes, so its invitation proof cannot be replaced + (invBadge', descrBadge') <- + if isNothing signedMsg_ && ownBadgeActive && (staleBadge now invBadge || staleBadge now descrBadge) + then refreshSndBadges fileId invBadge descrBadge + else pure (invBadge, descrBadge) + pure $ invCompleteDescr ciFile rfd invBadge' descrBadge' + staleBadge :: UTCTime -> Maybe BadgeProof -> Bool + staleBadge now = \case + Just BadgeProof {badgeInfo = BadgeInfo {badgeExpiry}} -> addUTCTime badgeSndGraceInterval badgeExpiry < now + Nothing -> False + ownBadgeActive :: Bool + ownBadgeActive = maybe False ((BSActive ==) . localBadgeStatus) localBadge + where + User {profile = LocalProfile {localBadge}} = user + -- both proofs are made with the same badge, and are re-made with the current badge over the stored headers + refreshSndBadges :: FileTransferId -> Maybe BadgeProof -> Maybe BadgeProof -> CM (Maybe BadgeProof, Maybe BadgeProof) + refreshSndBadges fileId invBadge descrBadge = do + invBadge' <- mapM reProve invBadge + descrBadge' <- mapM reProve descrBadge + withStore' $ \db -> do + forM_ invBadge' $ createFileBadgeProof db fileId BPKInvitation + forM_ descrBadge' $ createFileBadgeProof db fileId BPKDescription + pure (invBadge', descrBadge') + where + reProve badge@BadgeProof {presHeader} = fromMaybe badge <$> sndBadgeProof_ user presHeader fileExpired :: Maybe UTCTime -> CM Bool fileExpired fileExpires = do ttl <- asks $ rcvFilesTTL . agentConfig . config now <- liftIO getCurrentTime pure $ fromMaybe (addUTCTime ttl $ chatItemTs cci) fileExpires < now - invCompleteDescr :: CIFile d -> RcvFileDescr -> Maybe (FileInvitation, RcvFileDescrText, Maybe UTCTime) - invCompleteDescr CIFile {fileName, fileSize, fileExpires} RcvFileDescr {fileDescrText, fileDescrComplete} + invCompleteDescr :: CIFile d -> RcvFileDescr -> Maybe BadgeProof -> Maybe BadgeProof -> Maybe HistoryFile + invCompleteDescr CIFile {fileName, fileSize, fileExpires} RcvFileDescr {fileDescrText, fileDescrComplete} invBadge descrBadge | fileDescrComplete = - let fInvDescr = FileDescr {fileDescrText = "", fileDescrPartNo = 0, fileDescrComplete = False} - fInv = xftpFileInvitation fileName fileSize fInvDescr - in Just (fInv, fileDescrText, fileExpires) + let fInv = (xftpFileInvitation fileName fileSize dummyFileDescr :: FileInvitation) {fileBadge = invBadge} + in Just (fInv, fileDescrText, fileExpires, descrBadge) | otherwise = Nothing - processContentItem :: Maybe GroupMember -> ChatItem 'CTGroup d -> MsgContent -> Maybe (FileInvitation, RcvFileDescrText, Maybe UTCTime) -> CM [(GrpMsgForward, VerifiedMsg 'Json)] + processContentItem :: Maybe GroupMember -> ChatItem 'CTGroup d -> MsgContent -> Maybe HistoryFile -> CM [(GrpMsgForward, VerifiedMsg 'Json)] processContentItem member_ ChatItem {formattedText, meta, quotedItem, mentions} mc fInvDescr_ = if isNothing fInvDescr_ && not (msgContentHasText mc) then pure [] else do let CIMeta {itemTs, itemSharedMsgId, itemTimed, showGroupAsSender} = meta quotedItemId_ = quoteItemId =<< quotedItem - fInv_ = (\(fInv, _, _) -> fInv) <$> fInvDescr_ + fInv_ = (\(fInv, _, _, _) -> fInv) <$> fInvDescr_ (mc', _, mentions') = updatedMentionNames mc formattedText mentions mentions'' = M.map (\CIMention {memberId} -> MsgMention {memberId}) mentions' -- for channel messages default chat version range to membership range @@ -1475,10 +1529,10 @@ sendHistory user gInfo@GroupInfo {membership} m@GroupMember {activeConn = Just c (chatMsgEvent, _) <- withStore $ \db -> prepareGroupMsg db user gInfo Nothing showGroupAsSender mc' mentions'' quotedItemId_ Nothing fInv_ itemTimed False pure $ VMUnsigned ChatMessage {chatVRange = senderVRange, msgId = itemSharedMsgId, chatMsgEvent} fileDescrEvents <- case (fInvDescr_, itemSharedMsgId) of - (Just (_, fileDescrText, fileExpires), Just msgId) -> do + (Just (_, fileDescrText, fileExpires, descrBadge), Just msgId) -> do partSize <- asks $ xftpDescrPartSize . config - let parts = splitFileDescr partSize fileDescrText - pure . L.toList $ L.map (\fd -> XMsgFileDescr msgId fd fileExpires) parts + let parts = splitFileDescr partSize (maybe partSize (const badgeDescrPartSize) descrBadge) fileDescrText + pure . L.toList $ L.map (\fd@FileDescr {fileDescrComplete} -> XMsgFileDescr msgId fd fileExpires (if fileDescrComplete then descrBadge else Nothing)) parts _ -> pure [] let fileDescrVMs = map (VMUnsigned . ChatMessage senderVRange Nothing) fileDescrEvents pure $ map ((,) fwd) (contentVM : fileDescrVMs) @@ -1488,11 +1542,16 @@ memberShortenedName GroupMember {memberProfile = LocalProfile {displayName}} | T.length displayName <= 16 = displayName | otherwise = T.take 16 displayName `T.snoc` '…' -splitFileDescr :: Int -> RcvFileDescrText -> NonEmpty FileDescr -splitFileDescr partSize rfdText = splitParts 1 rfdText +-- the description proof travels on the last part, so that part leaves room for it +badgeDescrPartSize :: Int +badgeDescrPartSize = 13500 + +splitFileDescr :: Int -> Int -> RcvFileDescrText -> NonEmpty FileDescr +splitFileDescr partSize lastSize rfdText = splitParts 1 rfdText where splitParts partNo remText = - let (part, rest) = T.splitAt partSize remText + let n = T.length remText + (part, rest) = T.splitAt (if n <= lastSize then n else if n <= partSize then lastSize else partSize) remText complete = T.null rest fileDescr = FileDescr {fileDescrText = part, fileDescrPartNo = partNo, fileDescrComplete = complete} in if complete @@ -2263,6 +2322,71 @@ groupBindingData gks memberId memberKey = case gks >>= publicGroupKeys of Just PublicGroupKeys {publicGroupId} -> smpEncode (publicGroupId, memberId) Nothing -> smpEncode (memberId, memberKey) +type HistoryFile = (FileInvitation, RcvFileDescrText, Maybe UTCTime, Maybe BadgeProof) + +directChatBinding :: Contact -> CM (Maybe ByteString) +directChatBinding ct = + forM (contactConn ct) $ \conn -> + encodeChatBinding CBDirect <$> withAgent (`getConnectionRatchetAdHash` aConnId conn) + +rcvGroupChatBinding :: GroupInfo -> Maybe GroupMember -> ShowGroupAsSender -> Maybe BadgeProof -> Maybe ByteString +rcvGroupChatBinding GroupInfo {groupKeys} m_ asGroup badge_ = + case (groupKeys >>= publicGroupKeys, asGroup, m_) of + (Just PublicGroupKeys {publicGroupId}, True, _) -> + Just $ encodeChatBinding CBChannel $ smpEncode publicGroupId + (Just PublicGroupKeys {publicGroupId}, False, Just GroupMember {memberId}) -> + Just $ encodeChatBinding CBGroup $ smpEncode (publicGroupId, memberId) + (Nothing, False, Just GroupMember {memberId, memberPubKey}) -> + (\k -> encodeChatBinding CBGroup $ smpEncode (memberId, k)) <$> (memberPubKey <|> proofMemberKey memberId badge_) + _ -> Nothing + +proofMemberKey :: MemberId -> Maybe BadgeProof -> Maybe C.PublicKeyEd25519 +proofMemberKey memberId badge_ = do + BadgeProof _ (BBSPresHeader phBytes) _ _ <- badge_ + binding <- headerChatBinding =<< eitherToMaybe (strDecode phBytes) + d <- B.stripPrefix (smpEncode CBGroup) binding + (mId, k) <- eitherToMaybe (smpDecode d :: Either String (MemberId, C.PublicKeyEd25519)) + if mId == memberId then Just k else Nothing + where + headerChatBinding = \case + PHFileInv {chatBinding} -> Just chatBinding + PHFileDescr {chatBinding} -> Just chatBinding + _ -> Nothing + +badgeProofStatus :: Maybe ProofPresHeader -> BadgeProof -> CM BadgeStatus +badgeProofStatus expected_ badge@BadgeProof {presHeader = BBSPresHeader phBytes, badgeInfo} = + case expected_ of + Just expected | phBytes == strEncode expected -> do + keys <- asks $ badgePublicKeys . config + verified <- liftIO $ verifyBadge keys badge + now <- liftIO getCurrentTime + pure $ mkBadgeStatus now verified badgeInfo + _ -> pure BSFailed + +rcvDirectFileProhibited :: Contact -> FileInvitation -> CM (Maybe FileProhibited) +rcvDirectFileProhibited ct fInv@FileInvitation {fileBadge} = do + binding_ <- if isJust fileBadge then directChatBinding ct else pure Nothing + rcvFileProhibited binding_ fInv + +rcvGroupFileProhibited :: GroupInfo -> Maybe GroupMember -> ShowGroupAsSender -> FileInvitation -> CM (Maybe FileProhibited) +rcvGroupFileProhibited gInfo m_ asGroup fInv@FileInvitation {fileBadge} = + rcvFileProhibited (rcvGroupChatBinding gInfo m_ asGroup fileBadge) fInv + +rcvFileProhibited :: Maybe ByteString -> FileInvitation -> CM (Maybe FileProhibited) +rcvFileProhibited binding_ FileInvitation {fileSize, fileBadge} = do + lims <- asks $ fileSizeLimits . config + if fileSize <= noBadge lims + then pure Nothing + else case fileBadge of + Nothing -> pure $ Just FileProhibited {maxSize = noBadge lims, badgeStatus = Nothing} + Just badge -> do + st <- badgeProofStatus ((\chatBinding -> PHFileInv {chatBinding, fileSize = fromInteger fileSize}) <$> binding_) badge + let maxSize = maxXFTPFileSize lims $ Just $ PeerBadge badge st + pure $ + if fileSize <= maxSize + then Nothing + else Just FileProhibited {maxSize, badgeStatus = Just st} + createUserMemberKey :: GroupInfo -> CM GroupInfo createUserMemberKey gInfo@GroupInfo {groupId, membership, groupKeys} | useRelays' gInfo || isJust groupKeys = pure gInfo diff --git a/src/Simplex/Chat/Library/Subscriber.hs b/src/Simplex/Chat/Library/Subscriber.hs index ac587b9ec5..27dd742af5 100644 --- a/src/Simplex/Chat/Library/Subscriber.hs +++ b/src/Simplex/Chat/Library/Subscriber.hs @@ -46,6 +46,7 @@ import Data.Time.Format (defaultTimeLocale, formatTime) import qualified Data.UUID as UUID import qualified Data.UUID.V4 as V4 import Data.Word (Word32) +import Simplex.Chat.Badges (BadgeProof, BadgeProofKind (..), BadgeStatus (..), FileSizeLimits (..), ProofPresHeader (..)) import Simplex.Chat.Call import Simplex.Chat.Controller import Simplex.Chat.Delivery @@ -76,7 +77,7 @@ import Simplex.Chat.Types.Preferences import Simplex.Chat.Types.Shared import Simplex.FileTransfer.Description (ValidFileDescription) import qualified Simplex.FileTransfer.Description as FD -import Simplex.FileTransfer.Protocol (FilePartyI, GrantedStorageTime (..)) +import Simplex.FileTransfer.Protocol (FileParty (..), FilePartyI, GrantedStorageTime (..)) import qualified Simplex.FileTransfer.Transport as XFTP import Simplex.FileTransfer.Types (FileErrorType (..), RcvFileId, SndFileId) import Simplex.Messaging.Agent @@ -224,7 +225,7 @@ processAgentMsgSndFile _corrId aFileId msg = do -- we have 1 chunk - use it as URI whether it is redirect or not ft' <- maybe (pure ft) (\fId -> withStore $ \db -> getFileTransferMeta db user fId) xftpRedirectFor toView $ CEvtSndStandaloneFileComplete user ft' $ map (decodeLatin1 . strEncode . FD.fileDescriptionURI) rfds' - Just (AChatItem _ d cInfo _ci@ChatItem {meta = CIMeta {itemSharedMsgId = msgId_, itemDeleted}}) -> + Just (AChatItem _ d cInfo _ci@ChatItem {meta = CIMeta {itemSharedMsgId = msgId_, itemDeleted, showGroupAsSender}}) -> case (msgId_, itemDeleted) of (Just sharedMsgId, Nothing) -> do when (length rfds < length sfts) $ throwChatError $ CEInternalError "not enough XFTP file descriptions to send" @@ -232,9 +233,16 @@ processAgentMsgSndFile _corrId aFileId msg = do toView $ CEvtSndFileProgressXFTP user ci ft 1 1 case (rfds, sfts, d, cInfo) of (rfd : extraRFDs, sft : _, SMDSnd, DirectChat ct) -> do - withStore' $ \db -> createExtraSndFTDescrs db user fileId (map fileDescrText extraRFDs) conn@Connection {connId} <- liftEither $ contactSendConn_ ct - sendFileDescriptions (ConnectionId connId) ((conn, sft, fileDescrText rfd) :| []) sharedMsgId fileExpires >>= \case + let FileTransferMeta {fileSize} = ft + binding_ <- ifM ((not (contactConnIncognito ct) &&) <$> fileNeedsBadge fileSize) (directChatBinding ct) (pure Nothing) + descrBadge <- pure binding_ $>>= \chatBinding -> + let FD.ValidFileDescription fd = sndDescr + in sndBadgeProof user PHFileDescr {chatBinding, fileSize = fromInteger fileSize, descrHash = FD.sharedDescriptionHash fd, fileExpires} + withStore' $ \db -> do + createExtraSndFTDescrs db user fileId (map fileDescrText extraRFDs) + forM_ descrBadge $ createFileBadgeProof db fileId BPKDescription + sendFileDescriptions (ConnectionId connId) ((conn, sft, fileDescrText rfd) :| []) sharedMsgId fileExpires descrBadge >>= \case Just rs -> case L.last rs of Right ([msgDeliveryId], _) -> withStore' $ \db -> updateSndFTDeliveryXFTP db sft msgDeliveryId @@ -247,9 +255,17 @@ processAgentMsgSndFile _corrId aFileId msg = do ms <- getRecipients let rfdsMemberFTs = zipWith (\rfd (conn, sft) -> (conn, sft, fileDescrText rfd)) rfds (memberFTs ms) extraRFDs = drop (length rfdsMemberFTs) rfds - withStore' $ \db -> createExtraSndFTDescrs db user fileId (map fileDescrText extraRFDs) + FileTransferMeta {fileSize} = ft + needsBadge <- fileNeedsBadge fileSize + let binding_ = if needsBadge && not (incognitoMembership g) then sndGroupChatBinding g showGroupAsSender else Nothing + descrBadge <- pure binding_ $>>= \chatBinding -> + let FD.ValidFileDescription fd = sndDescr + in sndBadgeProof user PHFileDescr {chatBinding, fileSize = fromInteger fileSize, descrHash = FD.sharedDescriptionHash fd, fileExpires} + withStore' $ \db -> do + createExtraSndFTDescrs db user fileId (map fileDescrText extraRFDs) + forM_ descrBadge $ createFileBadgeProof db fileId BPKDescription forM_ (L.nonEmpty rfdsMemberFTs) $ \rfdsMemberFTs' -> - sendFileDescriptions (GroupId groupId) rfdsMemberFTs' sharedMsgId fileExpires + sendFileDescriptions (GroupId groupId) rfdsMemberFTs' sharedMsgId fileExpires descrBadge ci' <- withStore $ \db -> do liftIO $ updateCIFileStatus db user fileId CIFSSndComplete getChatItemByFileId db cxt user fileId @@ -278,8 +294,8 @@ processAgentMsgSndFile _corrId aFileId msg = do where fileDescrText :: FilePartyI p => ValidFileDescription p -> T.Text fileDescrText = safeDecodeUtf8 . strEncode - sendFileDescriptions :: ConnOrGroupId -> NonEmpty (Connection, SndFileTransfer, RcvFileDescrText) -> SharedMsgId -> Maybe UTCTime -> CM (Maybe (NonEmpty (Either ChatError ([Int64], PQEncryption)))) - sendFileDescriptions connOrGroupId connsTransfersDescrs sharedMsgId fileExpires = do + sendFileDescriptions :: ConnOrGroupId -> NonEmpty (Connection, SndFileTransfer, RcvFileDescrText) -> SharedMsgId -> Maybe UTCTime -> Maybe BadgeProof -> CM (Maybe (NonEmpty (Either ChatError ([Int64], PQEncryption)))) + sendFileDescriptions connOrGroupId connsTransfersDescrs sharedMsgId fileExpires descrBadge = do lift . void . withStoreBatch' $ \db -> L.map (\(_, sft, rfdText) -> updateSndFTDescrXFTP db user sft rfdText) connsTransfersDescrs partSize <- asks $ xftpDescrPartSize . config let connsIdsEvts = connDescrEvents partSize @@ -295,7 +311,7 @@ processAgentMsgSndFile _corrId aFileId msg = do where splitText :: (Connection, SndFileTransfer, RcvFileDescrText) -> [(Connection, (ConnOrGroupId, Maybe MsgSigning, ChatMsgEvent 'Json))] splitText (conn, _, rfdText) = - map (\fileDescr -> (conn, (connOrGroupId, Nothing, XMsgFileDescr {msgId = sharedMsgId, fileDescr, fileExpires}))) (L.toList $ splitFileDescr partSize rfdText) + map (\fileDescr@FileDescr {fileDescrComplete} -> (conn, (connOrGroupId, Nothing, XMsgFileDescr {msgId = sharedMsgId, fileDescr, fileExpires, fileBadge = if fileDescrComplete then descrBadge else Nothing}))) (L.toList $ splitFileDescr partSize (maybe partSize (const badgeDescrPartSize) descrBadge) rfdText) toMsgReq :: (Connection, (ConnOrGroupId, Maybe MsgSigning, ChatMsgEvent 'Json)) -> SndMessage -> ChatMsgReq toMsgReq (conn, _) SndMessage {msgId, msgBody} = (conn, MsgFlags {notification = hasNotification XMsgFileDescr_}, (vrValue msgBody, [msgId])) @@ -550,7 +566,7 @@ processAgentMessageConn cxt user@User {userId} corrId agentConnId agentMessage = let ct'' = ct' {activeConn = Just conn''} :: Contact case event of XMsgNew mc -> newContentMessage ct'' mc msg msgMeta - XMsgFileDescr sharedMsgId fileDescr fileExpires -> messageFileDescription ct'' sharedMsgId fileDescr fileExpires + XMsgFileDescr sharedMsgId fileDescr fileExpires fileBadge -> messageFileDescription ct'' sharedMsgId fileDescr fileExpires fileBadge XMsgUpdate sharedMsgId mContent _ ttl live _msgScope _ -> messageUpdate ct'' sharedMsgId mContent msg msgMeta ttl live XMsgDel sharedMsgId _ _ _ -> messageDelete ct'' sharedMsgId msg msgMeta XMsgReact sharedMsgId _ _ reaction add -> directMsgReaction ct'' sharedMsgId reaction add msg msgMeta @@ -1040,7 +1056,7 @@ processAgentMessageConn cxt user@User {userId} corrId agentConnId agentMessage = where MsgContainer {scope, asGroup} = mc -- file description is always allowed, to allow sending files to support scope - XMsgFileDescr sharedMsgId fileDescr fileExpires -> groupMessageFileDescription gInfo' (Just m'') sharedMsgId fileDescr fileExpires + XMsgFileDescr sharedMsgId fileDescr fileExpires fileBadge -> groupMessageFileDescription gInfo' (Just m'') sharedMsgId fileDescr fileExpires fileBadge XMsgUpdate sharedMsgId mContent mentions ttl live msgScope asGroup_ -> checkSendAsGroup asGroup_ $ memberCanSend (Just m'') msgScope $ @@ -1896,7 +1912,7 @@ processAgentMessageConn cxt user@User {userId} corrId agentConnId agentMessage = let MsgContainer {ttl = itemTTL, live = live_} = mc timed_ = rcvContactCITimed ct itemTTL live = fromMaybe False live_ - file_ <- processFileInvitation fInv_ content $ \db -> createRcvFileTransfer db userId ct + file_ <- processFileInvitation fInv_ content (rcvDirectFileProhibited ct) $ \db -> createRcvFileTransfer db userId ct newChatItem (CIRcvMsgContent content, msgContentTexts content) (snd <$> file_) timed_ live autoAcceptFile file_ where @@ -1912,36 +1928,37 @@ processAgentMessageConn cxt user@User {userId} corrId agentConnId agentMessage = ChatConfig {autoAcceptFileSize = sz} <- asks config when (sz > fileSize) $ receiveFileEvt' user ft False Nothing Nothing >>= toView - messageFileDescription :: Contact -> SharedMsgId -> FileDescr -> Maybe UTCTime -> CM () - messageFileDescription Contact {contactId} sharedMsgId fileDescr fileExpires = do + messageFileDescription :: Contact -> SharedMsgId -> FileDescr -> Maybe UTCTime -> Maybe BadgeProof -> CM () + messageFileDescription ct@Contact {contactId} sharedMsgId fileDescr fileExpires fileBadge = do (fileId, aci) <- withStore $ \db -> do fileId <- getFileIdBySharedMsgId db userId contactId sharedMsgId aci <- getChatItemByFileId db cxt user fileId pure (fileId, aci) - processFDMessage fileId aci fileDescr fileExpires + binding_ <- if isJust fileBadge then directChatBinding ct else pure Nothing + processFDMessage binding_ fileId aci fileDescr fileExpires fileBadge - groupMessageFileDescription :: GroupInfo -> Maybe GroupMember -> SharedMsgId -> FileDescr -> Maybe UTCTime -> CM (Maybe DeliveryTaskContext) - groupMessageFileDescription g@GroupInfo {groupId} m_ sharedMsgId fileDescr fileExpires = do + groupMessageFileDescription :: GroupInfo -> Maybe GroupMember -> SharedMsgId -> FileDescr -> Maybe UTCTime -> Maybe BadgeProof -> CM (Maybe DeliveryTaskContext) + groupMessageFileDescription g@GroupInfo {groupId} m_ sharedMsgId fileDescr fileExpires fileBadge = do (fileId, aci) <- withStore $ \db -> do fileId <- getGroupFileIdBySharedMsgId db userId groupId sharedMsgId aci <- getChatItemByFileId db cxt user fileId pure (fileId, aci) case aci of - AChatItem SCTGroup SMDRcv (GroupChat _g scopeInfo) ChatItem {chatDir} + AChatItem SCTGroup SMDRcv (GroupChat _g scopeInfo) ChatItem {chatDir, meta = CIMeta {showGroupAsSender}} | validSender m_ chatDir -> do -- in processFDMessage some paths are programmed as errors, -- for example failure on not approved relays (CEFileNotApproved). -- we catch error, so that even if processFDMessage fails, message can still be forwarded. - processFDMessage fileId aci fileDescr fileExpires `catchAllErrors` \_ -> pure () + processFDMessage (rcvGroupChatBinding g m_ showGroupAsSender fileBadge) fileId aci fileDescr fileExpires fileBadge `catchAllErrors` \_ -> pure () pure $ Just $ infoToDeliveryContext g scopeInfo (isChannelDir chatDir) | otherwise -> messageError "x.msg.file.descr: file/sender mismatch" $> Nothing _ -> messageError "x.msg.file.descr: invalid file description part" $> Nothing - processFDMessage :: FileTransferId -> AChatItem -> FileDescr -> Maybe UTCTime -> CM () - processFDMessage fileId aci fileDescr fileExpires = do + processFDMessage :: Maybe ByteString -> FileTransferId -> AChatItem -> FileDescr -> Maybe UTCTime -> Maybe BadgeProof -> CM () + processFDMessage binding_ fileId aci fileDescr fileExpires fileBadge = do ft <- withStore $ \db -> getRcvFileTransfer db user fileId unless (rcvFileCompleteOrCancelled ft) $ do - (rfd@RcvFileDescr {fileDescrComplete}, ft'@RcvFileTransfer {fileStatus, xftpRcvFile, cryptoArgs, fileInvitation = FileInvitation {fileSize}}) <- withStore $ \db -> do + (rfd@RcvFileDescr {fileDescrComplete}, ft'@RcvFileTransfer {fileStatus, xftpRcvFile, cryptoArgs, fileProhibited, fileInvitation = FileInvitation {fileSize}}) <- withStore $ \db -> do rfd <- appendRcvFD db userId fileId fileDescr forM_ fileExpires $ liftIO . setFileExpiration db user fileId -- reading second time in the same transaction as appending description @@ -1949,16 +1966,41 @@ processAgentMessageConn cxt user@User {userId} corrId agentConnId agentMessage = ft' <- getRcvFileTransfer db user fileId pure (rfd, ft') when fileDescrComplete $ toView $ CEvtRcvFileDescrReady user aci ft' rfd - case (fileStatus, xftpRcvFile) of - (RFSAccepted _, Just XFTPRcvFile {userApprovedRelays}) -> receiveViaCompleteFD user fileId rfd fileSize userApprovedRelays cryptoArgs - _ -> pure () + maxSize <- asks $ noBadge . fileSizeLimits . config + let descrBadgeRequired = fileDescrComplete && fileSize > maxSize && isNothing fileProhibited + prohibited_ <- case fileBadge of + _ | not descrBadgeRequired -> pure Nothing + Nothing -> pure $ Just FileProhibited {maxSize, badgeStatus = Nothing} + Just badge -> do + st <- descrBadgeStatus binding_ fileSize rfd fileExpires badge + if st == BSActive + then do + withStore' $ \db -> createFileBadgeProof db fileId BPKDescription badge + pure Nothing + else pure $ Just FileProhibited {maxSize, badgeStatus = Just st} + case prohibited_ of + Nothing -> case (fileStatus, xftpRcvFile) of + (RFSAccepted _, Just XFTPRcvFile {userApprovedRelays}) -> receiveViaCompleteFD user fileId rfd fileSize userApprovedRelays cryptoArgs + _ -> pure () + -- the file may already be accepted, so it is reset to an invitation the apps refuse by its prohibition + Just prohibited -> do + withStore' $ \db -> setFileProhibited db user fileId prohibited + aci_ <- resetRcvCIFileStatus user fileId CIFSRcvInvitation + forM_ aci_ $ \aci' -> toView $ CEvtChatItemUpdated user aci' - processFileInvitation :: Maybe FileInvitation -> MsgContent -> (DB.Connection -> FileInvitation -> Maybe InlineFileMode -> Integer -> ExceptT StoreError IO RcvFileTransfer) -> CM (Maybe (RcvFileTransfer, CIFile 'MDRcv)) - processFileInvitation fInv_ mc createRcvFT = forM fInv_ $ \fInv -> do + descrBadgeStatus :: Maybe ByteString -> Integer -> RcvFileDescr -> Maybe UTCTime -> BadgeProof -> CM BadgeStatus + descrBadgeStatus binding_ fileSize RcvFileDescr {fileDescrText} fileExpires badge = do + FD.ValidFileDescription fd <- parseFileDescription @'FRecipient fileDescrText + let descrHash = FD.sharedDescriptionHash fd + badgeProofStatus ((\chatBinding -> PHFileDescr {chatBinding, fileSize = fromInteger fileSize, descrHash, fileExpires}) <$> binding_) badge + + processFileInvitation :: Maybe FileInvitation -> MsgContent -> (FileInvitation -> CM (Maybe FileProhibited)) -> (DB.Connection -> FileInvitation -> Maybe FileProhibited -> Maybe InlineFileMode -> Integer -> ExceptT StoreError IO RcvFileTransfer) -> CM (Maybe (RcvFileTransfer, CIFile 'MDRcv)) + processFileInvitation fInv_ mc fileProhibited_ createRcvFT = forM fInv_ $ \fInv -> do ChatConfig {fileChunkSize} <- asks config fInv'@FileInvitation {fileName, fileSize} <- validateFileInvitation fInv + fileProhibited <- fileProhibited_ fInv' inline <- receiveInlineMode fInv' (Just mc) fileChunkSize - ft@RcvFileTransfer {fileId, xftpRcvFile} <- withStore $ \db -> createRcvFT db fInv' inline fileChunkSize + ft@RcvFileTransfer {fileId, xftpRcvFile} <- withStore $ \db -> createRcvFT db fInv' fileProhibited inline fileChunkSize let fileProtocol = if isJust xftpRcvFile then FPXFTP else FPSMP (filePath, fileStatus, ft') <- case inline of Just IFMSent -> do @@ -1970,15 +2012,19 @@ processAgentMessageConn cxt user@User {userId} corrId agentConnId agentMessage = _ -> pure (Nothing, CIFSRcvInvitation, ft) let RcvFileTransfer {cryptoArgs} = ft' fileSource = (`CryptoFile` cryptoArgs) <$> filePath - pure (ft', CIFile {fileId, fileName, fileSize, fileSource, fileStatus, fileProtocol, fileExpires = Nothing}) + pure (ft', CIFile {fileId, fileName, fileSize, fileSource, fileStatus, fileProtocol, fileExpires = Nothing, fileProhibited}) mkValidFileInvitation :: FileInvitation -> FileInvitation mkValidFileInvitation fInv@FileInvitation {fileName} = fInv {fileName = safeFileNameStr fileName} validateFileInvitation :: FileInvitation -> CM FileInvitation - validateFileInvitation fInv@FileInvitation {fileName, fileSize} - | fileSize > 0 = pure $ mkValidFileInvitation fInv - | otherwise = throwChatError $ CEFileSize fileName + validateFileInvitation fInv@FileInvitation {fileName, fileSize, fileDescr} + | fileSize <= 0 = throwChatError $ CEFileSize fileName + | otherwise = do + -- a file that requires a badge is received from the description message, where the proof binds the description + needsBadge <- fileNeedsBadge fileSize + let fileDescr' = if needsBadge then dummyFileDescr <$ fileDescr else fileDescr + pure $ mkValidFileInvitation fInv {fileDescr = fileDescr'} messageUpdate :: Contact -> SharedMsgId -> MsgContent -> RcvMessage -> MsgMeta -> Maybe Int -> Maybe Bool -> CM () messageUpdate ct@Contact {contactId} sharedMsgId mc msg@RcvMessage {msgId} msgMeta ttl live_ = do @@ -2201,7 +2247,7 @@ processAgentMessageConn cxt user@User {userId} corrId agentConnId agentMessage = unless (maybe False memberBlocked m') $ autoAcceptFile file_ processFileInv gInfo' m' = let fileMember_ = if sentAsGroup then Nothing else m' - in processFileInvitation fInv_ content $ \db -> createRcvGroupFileTransfer db userId gInfo' fileMember_ FTNormal sharedMsgId_ + in processFileInvitation fInv_ content (rcvGroupFileProhibited gInfo' m' sentAsGroup) $ \db -> createRcvGroupFileTransfer db userId gInfo' fileMember_ FTNormal sharedMsgId_ newChatItem gInfo' m' scopeInfo ciContent ciFile_ timed live = do let mentions' = if maybe False memberBlocked m' then M.empty else mentions (ci, cInfo) <- saveRcvCI gInfo' m' scopeInfo ciContent ciFile_ timed live mentions' @@ -2423,10 +2469,11 @@ processAgentMessageConn cxt user@User {userId} corrId agentConnId agentMessage = processFileInvitation' ct fInv msg@RcvMessage {sharedMsgId_} msgMeta = do ChatConfig {fileChunkSize} <- asks config fInv'@FileInvitation {fileName, fileSize} <- validateFileInvitation fInv + fileProhibited <- rcvDirectFileProhibited ct fInv' inline <- receiveInlineMode fInv' Nothing fileChunkSize - RcvFileTransfer {fileId, xftpRcvFile} <- withStore $ \db -> createRcvFileTransfer db userId ct fInv' inline fileChunkSize + RcvFileTransfer {fileId, xftpRcvFile} <- withStore $ \db -> createRcvFileTransfer db userId ct fInv' fileProhibited inline fileChunkSize let fileProtocol = if isJust xftpRcvFile then FPXFTP else FPSMP - ciFile = Just $ CIFile {fileId, fileName, fileSize, fileSource = Nothing, fileStatus = CIFSRcvInvitation, fileProtocol, fileExpires = Nothing} + ciFile = Just $ CIFile {fileId, fileName, fileSize, fileSource = Nothing, fileStatus = CIFSRcvInvitation, fileProtocol, fileExpires = Nothing, fileProhibited} content = ciContentNoParse $ CIRcvMsgContent $ MCFile "" (ci, cInfo) <- saveRcvChatItem' user (CDDirectRcv ct) msg sharedMsgId_ brokerTs content ciFile Nothing False M.empty toView $ CEvtNewChatItems user [AChatItem SCTDirect SMDRcv cInfo ci] @@ -2438,10 +2485,11 @@ processAgentMessageConn cxt user@User {userId} corrId agentConnId agentMessage = processGroupFileInvitation' gInfo m fInv msg@RcvMessage {sharedMsgId_} brokerTs = do ChatConfig {fileChunkSize} <- asks config fInv'@FileInvitation {fileName, fileSize} <- validateFileInvitation fInv + fileProhibited <- rcvGroupFileProhibited gInfo (Just m) False fInv' inline <- receiveInlineMode fInv' Nothing fileChunkSize - RcvFileTransfer {fileId, xftpRcvFile} <- withStore $ \db -> createRcvGroupFileTransfer db userId gInfo (Just m) FTNormal sharedMsgId_ fInv' inline fileChunkSize + RcvFileTransfer {fileId, xftpRcvFile} <- withStore $ \db -> createRcvGroupFileTransfer db userId gInfo (Just m) FTNormal sharedMsgId_ fInv' fileProhibited inline fileChunkSize let fileProtocol = if isJust xftpRcvFile then FPXFTP else FPSMP - ciFile = Just $ CIFile {fileId, fileName, fileSize, fileSource = Nothing, fileStatus = CIFSRcvInvitation, fileProtocol, fileExpires = Nothing} + ciFile = Just $ CIFile {fileId, fileName, fileSize, fileSource = Nothing, fileStatus = CIFSRcvInvitation, fileProtocol, fileExpires = Nothing, fileProhibited} content = ciContentNoParse $ CIRcvMsgContent $ MCFile "" (ci, cInfo) <- saveRcvChatItem' user (CDGroupRcv gInfo Nothing m) msg sharedMsgId_ brokerTs content ciFile Nothing False M.empty ci' <- blockedMemberCI gInfo m ci @@ -3410,7 +3458,7 @@ processAgentMessageConn cxt user@User {userId} corrId agentConnId agentMessage = cleanupRosterTransfer gInfo (groupMemberId' fromMember) let relayHdr = if isUserGrpFwdRelay gInfo then Just sm else Nothing chSize <- asks $ fileChunkSize . config - let rosterFInv = FileInvitation {fileName = "roster", fileSize, fileDigest = Nothing, fileConnReq = Nothing, fileInline = Just IFMSent, fileDescr = Nothing} + let rosterFInv = FileInvitation {fileName = "roster", fileSize, fileDigest = Nothing, fileConnReq = Nothing, fileInline = Just IFMSent, fileDescr = Nothing, fileBadge = Nothing} -- transfer record + its scratch file in one transaction (file owned by the transfer, keyed per source) rft@RcvFileTransfer {fileId} <- withStore $ \db -> do transferId <- liftIO $ createRosterTransfer db gInfo (groupMemberId' fromMember) newVer fileDigest (groupMemberId' author) brokerTs relayHdr @@ -3899,7 +3947,7 @@ processAgentMessageConn cxt user@User {userId} corrId agentConnId agentMessage = where MsgContainer {scope} = mc -- file description is always allowed, to allow sending files to support scope - XMsgFileDescr sharedMsgId fileDescr fileExpires -> void $ groupMessageFileDescription gInfo author_ sharedMsgId fileDescr fileExpires + XMsgFileDescr sharedMsgId fileDescr fileExpires fileBadge -> void $ groupMessageFileDescription gInfo author_ sharedMsgId fileDescr fileExpires fileBadge XMsgUpdate sharedMsgId mContent mentions ttl live msgScope asGroup_ -> void $ memberCanSend author_ msgScope $ groupMessageUpdate gInfo author_ sharedMsgId mContent mentions msgScope rcvMsg msgTs ttl live asGroup_ XMsgDel sharedMsgId memId scope_ _ -> void $ groupMessageDelete gInfo author_ sharedMsgId memId scope_ False rcvMsg msgTs diff --git a/src/Simplex/Chat/Messages.hs b/src/Simplex/Chat/Messages.hs index 5a62ca7a81..3c6dca2ac8 100644 --- a/src/Simplex/Chat/Messages.hs +++ b/src/Simplex/Chat/Messages.hs @@ -688,7 +688,8 @@ data CIFile (d :: MsgDirection) = CIFile fileSource :: Maybe CryptoFile, -- local file path with optional key and nonce fileStatus :: CIFileStatus d, fileProtocol :: FileProtocol, - fileExpires :: Maybe UTCTime + fileExpires :: Maybe UTCTime, + fileProhibited :: Maybe FileProhibited } deriving (Show) diff --git a/src/Simplex/Chat/Protocol.hs b/src/Simplex/Chat/Protocol.hs index 4660fb24a3..4671a927d1 100644 --- a/src/Simplex/Chat/Protocol.hs +++ b/src/Simplex/Chat/Protocol.hs @@ -50,7 +50,7 @@ import Data.Time.Clock.System (systemToUTCTime, utcToSystemTime) import Data.Type.Equality import Data.Typeable (Typeable) import Data.Word (Word16, Word32) -import Simplex.Chat.Badges (LocalBadge) +import Simplex.Chat.Badges (BadgeProof, LocalBadge) import Simplex.Chat.Call import Simplex.Chat.Options.DB (FromField (..), ToField (..)) import Simplex.Chat.Types @@ -451,7 +451,7 @@ signChatMsgBody MsgSigning {bindingTag, bindingData, keyRef, privKey} msgBody = data ChatMsgEvent (e :: MsgEncoding) where XMsgNew :: MsgContainer -> ChatMsgEvent 'Json - XMsgFileDescr :: {msgId :: SharedMsgId, fileDescr :: FileDescr, fileExpires :: Maybe UTCTime} -> ChatMsgEvent 'Json + XMsgFileDescr :: {msgId :: SharedMsgId, fileDescr :: FileDescr, fileExpires :: Maybe UTCTime, fileBadge :: Maybe BadgeProof} -> ChatMsgEvent 'Json XMsgUpdate :: {msgId :: SharedMsgId, content :: MsgContent, mentions :: Map MemberName MsgMention, ttl :: Maybe Int, live :: Maybe Bool, scope :: Maybe MsgScope, asGroup :: Maybe Bool} -> ChatMsgEvent 'Json XMsgDel :: {msgId :: SharedMsgId, memberId :: Maybe MemberId, scope :: Maybe MsgScope, onlyHistory :: Bool} -> ChatMsgEvent 'Json XMsgDeleted :: ChatMsgEvent 'Json @@ -1397,7 +1397,7 @@ appJsonToCM AppMessageJson {v, msgId, event, params} = do msg :: CMEventTag 'Json -> Either String (ChatMsgEvent 'Json) msg = \case XMsgNew_ -> XMsgNew <$> JT.parseEither parseJSON (J.Object params) - XMsgFileDescr_ -> XMsgFileDescr <$> p "msgId" <*> p "fileDescr" <*> opt "fileExpires" + XMsgFileDescr_ -> XMsgFileDescr <$> p "msgId" <*> p "fileDescr" <*> opt "fileExpires" <*> opt "fileBadge" XMsgUpdate_ -> do msgId' <- p "msgId" content <- p "content" @@ -1489,7 +1489,7 @@ chatToAppMessage chatMsg@ChatMessage {chatVRange, msgId, chatMsgEvent} = case en XMsgNew mc -> case toJSON mc of J.Object obj -> obj _ -> JM.empty - XMsgFileDescr msgId' fileDescr fileExpires -> o $ ("fileExpires" .=? fileExpires) ["msgId" .= msgId', "fileDescr" .= fileDescr] + XMsgFileDescr msgId' fileDescr fileExpires fileBadge -> o $ ("fileExpires" .=? fileExpires) $ ("fileBadge" .=? fileBadge) ["msgId" .= msgId', "fileDescr" .= fileDescr] XMsgUpdate {msgId = msgId', content, mentions, ttl, live, scope, asGroup} -> o $ ("asGroup" .=? asGroup) $ ("ttl" .=? ttl) $ ("live" .=? live) $ ("scope" .=? scope) $ ("mentions" .=? nonEmptyMap mentions) ["msgId" .= msgId', "content" .= content] XMsgDel msgId' memberId scope onlyHistory -> o $ ("memberId" .=? memberId) $ ("scope" .=? scope) $ ("onlyHistory" .=? justTrue onlyHistory) ["msgId" .= msgId'] XMsgDeleted -> JM.empty diff --git a/src/Simplex/Chat/Store/Files.hs b/src/Simplex/Chat/Store/Files.hs index 5ed3d9e8d5..1ba7c98fce 100644 --- a/src/Simplex/Chat/Store/Files.hs +++ b/src/Simplex/Chat/Store/Files.hs @@ -45,6 +45,9 @@ module Simplex.Chat.Store.Files updateSndFileStatus, createRcvFileTransfer, createRcvGroupFileTransfer, + createFileBadgeProof, + getFileBadgeProofs, + setFileProhibited, createRosterRcvFile, createRcvStandaloneFileTransfer, appendRcvFD, @@ -86,6 +89,7 @@ import Control.Monad.IO.Class import Data.Either (rights) import Data.Functor ((<&>)) import Data.Int (Int64) +import Data.List (foldl') import Data.Maybe (fromMaybe, isJust, listToMaybe) import Data.Text (Text) import qualified Data.Text as T @@ -93,6 +97,7 @@ import Data.Time (addUTCTime) import Data.Time.Clock (UTCTime (..), getCurrentTime, nominalDay) import Data.Type.Equality import Data.Word (Word32) +import Simplex.Chat.Badges (BadgeProof, BadgeProofKind (..), BadgeProofRow, BadgeStatus (..), badgeProofToRow, rowToBadgeProof) import Simplex.Chat.Messages import Simplex.Chat.Messages.CIContent import Simplex.Chat.Store.Messages @@ -180,7 +185,7 @@ getSndFTViaMsgDelivery db User {userId} Connection {connId, agentConnId} agentMs <$> (contactName_ <|> memberName_) createSndFileTransferXFTP :: DB.Connection -> User -> Maybe ContactOrGroup -> CryptoFile -> FileInvitation -> AgentSndFileId -> Maybe FileTransferId -> Integer -> IO FileTransferMeta -createSndFileTransferXFTP db User {userId} contactOrGroup_ (CryptoFile filePath cryptoArgs) FileInvitation {fileName, fileSize} agentSndFileId xftpRedirectFor chunkSize = do +createSndFileTransferXFTP db User {userId} contactOrGroup_ (CryptoFile filePath cryptoArgs) FileInvitation {fileName, fileSize, fileBadge} agentSndFileId xftpRedirectFor chunkSize = do currentTs <- getCurrentTime let xftpSndFile = Just XFTPSndFile {agentSndFileId, privateSndFileDescr = Nothing, agentSndFileDeleted = False, cryptoArgs} DB.execute @@ -188,6 +193,7 @@ createSndFileTransferXFTP db User {userId} contactOrGroup_ (CryptoFile filePath "INSERT INTO files (contact_id, group_id, user_id, file_name, file_path, file_crypto_key, file_crypto_nonce, file_size, chunk_size, redirect_file_id, agent_snd_file_id, ci_file_status, protocol, created_at, updated_at) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)" (maybe (Nothing, Nothing) contactAndGroupIds contactOrGroup_ :. (userId, fileName, filePath, CF.fileKey <$> cryptoArgs, CF.fileNonce <$> cryptoArgs, fileSize, chunkSize) :. (xftpRedirectFor, agentSndFileId, CIFSSndStored, FPXFTP, currentTs, currentTs)) fileId <- insertedRowId db + forM_ fileBadge $ createFileBadgeProof db fileId BPKInvitation pure FileTransferMeta {fileId, xftpSndFile, xftpRedirectFor, fileName, filePath, fileSize, fileInline = Nothing, chunkSize, cancelled = False} createSndFTDescrXFTP :: DB.Connection -> User -> Maybe GroupMember -> Connection -> FileTransferMeta -> FileDescr -> IO () @@ -445,8 +451,8 @@ updateSndFileStatus db SndFileTransfer {fileId, connId} status = do currentTs <- getCurrentTime DB.execute db "UPDATE snd_files SET file_status = ?, updated_at = ? WHERE file_id = ? AND connection_id = ?" (status, currentTs, fileId, connId) -createRcvFileTransfer :: DB.Connection -> UserId -> Contact -> FileInvitation -> Maybe InlineFileMode -> Integer -> ExceptT StoreError IO RcvFileTransfer -createRcvFileTransfer db userId Contact {contactId, localDisplayName = c} f@FileInvitation {fileName, fileSize, fileConnReq, fileInline, fileDescr} rcvFileInline chunkSize = do +createRcvFileTransfer :: DB.Connection -> UserId -> Contact -> FileInvitation -> Maybe FileProhibited -> Maybe InlineFileMode -> Integer -> ExceptT StoreError IO RcvFileTransfer +createRcvFileTransfer db userId Contact {contactId, localDisplayName = c} f@FileInvitation {fileName, fileSize, fileConnReq, fileInline, fileDescr, fileBadge} prohibited_ rcvFileInline chunkSize = do currentTs <- liftIO getCurrentTime rfd_ <- mapM (createRcvFD_ db userId currentTs) fileDescr let rfdId = (\RcvFileDescr {fileDescrId} -> fileDescrId) <$> rfd_ @@ -456,18 +462,57 @@ createRcvFileTransfer db userId Contact {contactId, localDisplayName = c} f@File fileId <- liftIO $ do DB.execute db - "INSERT INTO files (user_id, contact_id, file_name, file_size, chunk_size, file_inline, ci_file_status, protocol, created_at, updated_at) VALUES (?,?,?,?,?,?,?,?,?,?)" - (userId, contactId, fileName, fileSize, chunkSize, fileInline, CIFSRcvInvitation, fileProtocol, currentTs, currentTs) + "INSERT INTO files (user_id, contact_id, file_name, file_size, chunk_size, file_inline, ci_file_status, protocol, file_max_size, file_badge_status, created_at, updated_at) VALUES (?,?,?,?,?,?,?,?,?,?,?,?)" + ((userId, contactId, fileName, fileSize, chunkSize, fileInline, CIFSRcvInvitation, fileProtocol) :. prohibitedRow prohibited_ :. (currentTs, currentTs)) insertedRowId db - liftIO $ + liftIO $ do DB.execute db "INSERT INTO rcv_files (file_id, file_status, file_queue_info, file_inline, rcv_file_inline, file_descr_id, created_at, updated_at) VALUES (?,?,?,?,?,?,?,?)" (fileId, FSNew, fileConnReq, fileInline, rcvFileInline, rfdId, currentTs, currentTs) - pure RcvFileTransfer {fileId, xftpRcvFile, fileInvitation = f, fileStatus = RFSNew, fileType = FTNormal, rcvFileInline, senderDisplayName = c, chunkSize, cancelled = False, grpMemberId = Nothing, cryptoArgs = Nothing} + forM_ (storedBadge prohibited_ fileBadge) $ createFileBadgeProof db fileId BPKInvitation + pure RcvFileTransfer {fileId, xftpRcvFile, fileInvitation = f, fileProhibited = prohibited_, fileStatus = RFSNew, fileType = FTNormal, rcvFileInline, senderDisplayName = c, chunkSize, cancelled = False, grpMemberId = Nothing, cryptoArgs = Nothing} -createRcvGroupFileTransfer :: DB.Connection -> UserId -> GroupInfo -> Maybe GroupMember -> FileType -> Maybe SharedMsgId -> FileInvitation -> Maybe InlineFileMode -> Integer -> ExceptT StoreError IO RcvFileTransfer -createRcvGroupFileTransfer db userId GroupInfo {groupId, localDisplayName = gName} m_ fileType sharedMsgId_ f@FileInvitation {fileName, fileSize, fileDigest, fileConnReq, fileInline, fileDescr} rcvFileInline chunkSize = do +setFileProhibited :: DB.Connection -> User -> Int64 -> FileProhibited -> IO () +setFileProhibited db User {userId} fileId FileProhibited {maxSize, badgeStatus} = do + currentTs <- getCurrentTime + DB.execute + db + "UPDATE files SET file_max_size = ?, file_badge_status = ?, updated_at = ? WHERE user_id = ? AND file_id = ?" + (maxSize, badgeStatus, currentTs, userId, fileId) + +prohibitedRow :: Maybe FileProhibited -> (Maybe Integer, Maybe BadgeStatus) +prohibitedRow = \case + Just FileProhibited {maxSize, badgeStatus} -> (Just maxSize, badgeStatus) + Nothing -> (Nothing, Nothing) + +-- a proof that did not verify is not stored - files.file_badge_status records that it failed +storedBadge :: Maybe FileProhibited -> Maybe BadgeProof -> Maybe BadgeProof +storedBadge prohibited_ badge_ = case prohibited_ of + Just FileProhibited {badgeStatus = Just st} | st /= BSActive -> Nothing + _ -> badge_ + +createFileBadgeProof :: DB.Connection -> Int64 -> BadgeProofKind -> BadgeProof -> IO () +createFileBadgeProof db fileId kind badge = do + currentTs <- getCurrentTime + DB.execute + db + [sql| + INSERT INTO file_badge_proofs (file_id, proof_kind, badge_proof, badge_pres_header, badge_key_idx, badge_type, badge_expiry, badge_extra, created_at, updated_at) + VALUES (?,?,?,?,?,?,?,?,?,?) + ON CONFLICT (file_id, proof_kind) DO UPDATE SET + badge_proof = excluded.badge_proof, + badge_pres_header = excluded.badge_pres_header, + badge_key_idx = excluded.badge_key_idx, + badge_type = excluded.badge_type, + badge_expiry = excluded.badge_expiry, + badge_extra = excluded.badge_extra, + updated_at = excluded.updated_at + |] + ((fileId, kind) :. badgeProofToRow badge :. (currentTs, currentTs)) + +createRcvGroupFileTransfer :: DB.Connection -> UserId -> GroupInfo -> Maybe GroupMember -> FileType -> Maybe SharedMsgId -> FileInvitation -> Maybe FileProhibited -> Maybe InlineFileMode -> Integer -> ExceptT StoreError IO RcvFileTransfer +createRcvGroupFileTransfer db userId GroupInfo {groupId, localDisplayName = gName} m_ fileType sharedMsgId_ f@FileInvitation {fileName, fileSize, fileDigest, fileConnReq, fileInline, fileDescr, fileBadge} prohibited_ rcvFileInline chunkSize = do currentTs <- liftIO getCurrentTime rfd_ <- mapM (createRcvFD_ db userId currentTs) fileDescr let rfdId = (\RcvFileDescr {fileDescrId} -> fileDescrId) <$> rfd_ @@ -479,15 +524,16 @@ createRcvGroupFileTransfer db userId GroupInfo {groupId, localDisplayName = gNam fileId <- liftIO $ do DB.execute db - "INSERT INTO files (user_id, group_id, file_name, file_size, chunk_size, file_inline, ci_file_status, protocol, file_type, shared_msg_id, created_at, updated_at, file_digest) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?)" - ((userId, groupId, fileName, fileSize, chunkSize, fileInline, CIFSRcvInvitation, fileProtocol, fileType, sharedMsgId_, currentTs, currentTs) :. Only fileDigest) + "INSERT INTO files (user_id, group_id, file_name, file_size, chunk_size, file_inline, ci_file_status, protocol, file_type, shared_msg_id, created_at, updated_at, file_digest, file_max_size, file_badge_status) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)" + ((userId, groupId, fileName, fileSize, chunkSize, fileInline, CIFSRcvInvitation, fileProtocol, fileType, sharedMsgId_, currentTs, currentTs) :. Only fileDigest :. prohibitedRow prohibited_) insertedRowId db - liftIO $ + liftIO $ do DB.execute db "INSERT INTO rcv_files (file_id, file_status, file_queue_info, file_inline, rcv_file_inline, group_member_id, file_descr_id, created_at, updated_at) VALUES (?,?,?,?,?,?,?,?,?)" (fileId, FSNew, fileConnReq, fileInline, rcvFileInline, grpMemberId_, rfdId, currentTs, currentTs) - pure RcvFileTransfer {fileId, xftpRcvFile, fileInvitation = f, fileStatus = RFSNew, fileType, rcvFileInline, senderDisplayName = senderName, chunkSize, cancelled = False, grpMemberId = grpMemberId_, cryptoArgs = Nothing} + forM_ (storedBadge prohibited_ fileBadge) $ createFileBadgeProof db fileId BPKInvitation + pure RcvFileTransfer {fileId, xftpRcvFile, fileInvitation = f, fileProhibited = prohibited_, fileStatus = RFSNew, fileType, rcvFileInline, senderDisplayName = senderName, chunkSize, cancelled = False, grpMemberId = grpMemberId_, cryptoArgs = Nothing} -- Roster scratch file owned by a per-source transfer: group_member_id is the delivering relay (so chunk -- streams from different relays are distinct files), roster_transfer_id links to the metadata record. @@ -506,7 +552,7 @@ createRosterRcvFile db userId GroupInfo {groupId} src@GroupMember {localDisplayN db "INSERT INTO rcv_files (file_id, file_status, file_queue_info, file_inline, rcv_file_inline, group_member_id, created_at, updated_at) VALUES (?,?,?,?,?,?,?,?)" (fileId, FSNew, fileConnReq, fileInline, rcvFileInline, grpMemberId_, currentTs, currentTs) - pure RcvFileTransfer {fileId, xftpRcvFile = Nothing, fileInvitation = f, fileStatus = RFSNew, fileType = FTRoster, rcvFileInline, senderDisplayName = senderName, chunkSize, cancelled = False, grpMemberId = Just grpMemberId_, cryptoArgs = Nothing} + pure RcvFileTransfer {fileId, xftpRcvFile = Nothing, fileInvitation = f, fileProhibited = Nothing, fileStatus = RFSNew, fileType = FTRoster, rcvFileInline, senderDisplayName = senderName, chunkSize, cancelled = False, grpMemberId = Just grpMemberId_, cryptoArgs = Nothing} createRcvStandaloneFileTransfer :: DB.Connection -> UserId -> CryptoFile -> Int64 -> Word32 -> ExceptT StoreError IO Int64 createRcvStandaloneFileTransfer db userId (CryptoFile filePath cfArgs_) fileSize chunkSize = do @@ -586,7 +632,7 @@ rcvFileDescrWithinLimits partNo descrText = && T.length descrText <= maxRcvFileDescrTextLength getRcvFileDescrByRcvFileId :: DB.Connection -> FileTransferId -> ExceptT StoreError IO RcvFileDescr -getRcvFileDescrByRcvFileId db fileId = do +getRcvFileDescrByRcvFileId db fileId = liftIO (getRcvFileDescrByRcvFileId_ db fileId) >>= \case Nothing -> throwError $ SERcvFileDescrNotFound fileId Just rfd -> pure rfd @@ -625,6 +671,19 @@ getRcvFileDescrBySndFileId_ db fileId = |] (Only fileId) +getFileBadgeProofs :: DB.Connection -> Int64 -> IO (Maybe BadgeProof, Maybe BadgeProof) +getFileBadgeProofs db fileId = foldl' addProof (Nothing, Nothing) <$> DB.query db q (Only fileId) + where + q = + [sql| + SELECT proof_kind, badge_proof, badge_pres_header, badge_key_idx, badge_type, badge_expiry, badge_extra + FROM file_badge_proofs + WHERE file_id = ? + |] + addProof (inv_, descr_) (Only kind :. row) = case kind of + BPKInvitation -> (rowToBadgeProof row, descr_) + BPKDescription -> (inv_, rowToBadgeProof row) + toRcvFileDescr :: (Int64, Text, Int, BoolInt) -> RcvFileDescr toRcvFileDescr (fileDescrId, fileDescrText, fileDescrPartNo, BI fileDescrComplete) = RcvFileDescr {fileDescrId, fileDescrText, fileDescrPartNo, fileDescrComplete} @@ -652,7 +711,8 @@ getRcvFileTransfer_ db userId fileId = do SELECT r.file_status, r.file_queue_info, r.group_member_id, f.file_name, f.file_size, f.chunk_size, f.cancelled, cs.local_display_name, m.local_display_name, f.file_path, f.file_crypto_key, f.file_crypto_nonce, r.file_inline, r.rcv_file_inline, - r.agent_rcv_file_id, r.agent_rcv_file_deleted, r.user_approved_relays, g.local_display_name, f.file_type, f.file_digest + r.agent_rcv_file_id, r.agent_rcv_file_deleted, r.user_approved_relays, g.local_display_name, f.file_type, f.file_digest, + f.file_max_size, f.file_badge_status FROM rcv_files r JOIN files f USING (file_id) LEFT JOIN contacts cs ON cs.contact_id = f.contact_id @@ -666,9 +726,9 @@ getRcvFileTransfer_ db userId fileId = do where rcvFileTransfer :: Maybe RcvFileDescr -> - (FileStatus, Maybe ConnReqInvitation, Maybe Int64, String, Integer, Integer, Maybe BoolInt) :. (Maybe ContactName, Maybe ContactName, Maybe FilePath, Maybe C.SbKey, Maybe C.CbNonce, Maybe InlineFileMode, Maybe InlineFileMode, Maybe AgentRcvFileId, BoolInt, BoolInt) :. (Maybe ContactName, FileType, Maybe FileDigest) -> + (FileStatus, Maybe ConnReqInvitation, Maybe Int64, String, Integer, Integer, Maybe BoolInt) :. (Maybe ContactName, Maybe ContactName, Maybe FilePath, Maybe C.SbKey, Maybe C.CbNonce, Maybe InlineFileMode, Maybe InlineFileMode, Maybe AgentRcvFileId, BoolInt, BoolInt) :. (Maybe ContactName, FileType, Maybe FileDigest, Maybe Integer, Maybe BadgeStatus) -> ExceptT StoreError IO RcvFileTransfer - rcvFileTransfer rfd_ ((fileStatus', fileConnReq, grpMemberId, fileName, fileSize, chunkSize, cancelled_) :. (contactName_, memberName_, filePath_, fileKey, fileNonce, fileInline, rcvFileInline, agentRcvFileId, BI agentRcvFileDeleted, BI userApprovedRelays) :. (groupName_, fileType, fileDigest_)) = + rcvFileTransfer rfd_ ((fileStatus', fileConnReq, grpMemberId, fileName, fileSize, chunkSize, cancelled_) :. (contactName_, memberName_, filePath_, fileKey, fileNonce, fileInline, rcvFileInline, agentRcvFileId, BI agentRcvFileDeleted, BI userApprovedRelays) :. (groupName_, fileType, fileDigest_, fileMaxSize_, fileBadgeStatus_)) = case contactName_ <|> memberName_ <|> groupName_ <|> standaloneName_ of Nothing -> throwError $ SERcvFileInvalid fileId Just name -> @@ -683,10 +743,11 @@ getRcvFileTransfer_ db userId fileId = do (Just _, Just _) -> Just "" -- filePath marks files that are accepted from contact or, in this case, set by createRcvDirectFileTransfer _ -> Nothing ft senderDisplayName fileStatus = - let fileInvitation = FileInvitation {fileName, fileSize, fileDigest = fileDigest_, fileConnReq, fileInline, fileDescr = Nothing} + let fileInvitation = FileInvitation {fileName, fileSize, fileDigest = fileDigest_, fileConnReq, fileInline, fileDescr = Nothing, fileBadge = Nothing} + fileProhibited = (\maxSize -> FileProhibited {maxSize, badgeStatus = fileBadgeStatus_}) <$> fileMaxSize_ cryptoArgs = CFArgs <$> fileKey <*> fileNonce xftpRcvFile = (\rfd -> XFTPRcvFile {rcvFileDescription = rfd, agentRcvFileId, agentRcvFileDeleted, userApprovedRelays}) <$> rfd_ - in RcvFileTransfer {fileId, xftpRcvFile, fileInvitation, fileStatus, fileType, rcvFileInline, senderDisplayName, chunkSize, cancelled, grpMemberId, cryptoArgs} + in RcvFileTransfer {fileId, xftpRcvFile, fileInvitation, fileProhibited, fileStatus, fileType, rcvFileInline, senderDisplayName, chunkSize, cancelled, grpMemberId, cryptoArgs} filePath = case filePath_ of Nothing -> throwError $ SERcvFileInvalid fileId Just fp -> pure fp diff --git a/src/Simplex/Chat/Store/Messages.hs b/src/Simplex/Chat/Store/Messages.hs index 1cb90ab222..3998e1f249 100644 --- a/src/Simplex/Chat/Store/Messages.hs +++ b/src/Simplex/Chat/Store/Messages.hs @@ -164,6 +164,7 @@ import Data.Text (Text) import qualified Data.Text as T import Data.Time (addUTCTime) import Data.Time.Clock (UTCTime (..), getCurrentTime) +import Simplex.Chat.Badges (BadgeStatus) import Simplex.Chat.Controller (ChatListQuery (..), ChatPagination (..), PaginationByTime (..)) import Simplex.Chat.Markdown import Simplex.Chat.Messages @@ -1093,7 +1094,7 @@ getLocalChatPreview_ db user (LocalChatPD _ noteFolderId lastItemId_ stats) = do -- this function can be changed so it never fails, not only avoid failure on invalid json toLocalChatItem :: UTCTime -> ChatItemRow -> Either StoreError (CChatItem 'CTLocal) -toLocalChatItem currentTs ((itemId, itemTs, AMsgDirection msgDir, itemContentText, itemText, itemStatus, sentViaProxy, sharedMsgId) :. (itemDeleted, deletedTs, itemEdited, createdAt, updatedAt) :. forwardedFromRow :. (timedTTL, timedDeleteAt, itemLive, BI userMention, BI hasLink, msgSigned) :. (fileId_, fileName_, fileSize_, filePath, fileKey, fileNonce, fileStatus_, fileProtocol_, fileExpires)) = +toLocalChatItem currentTs ((itemId, itemTs, AMsgDirection msgDir, itemContentText, itemText, itemStatus, sentViaProxy, sharedMsgId) :. (itemDeleted, deletedTs, itemEdited, createdAt, updatedAt) :. forwardedFromRow :. (timedTTL, timedDeleteAt, itemLive, BI userMention, BI hasLink, msgSigned) :. (fileId_, fileName_, fileSize_, filePath, fileKey, fileNonce, fileStatus_, fileProtocol_, fileExpires) :. (fileMaxSize_, fileBadgeStatus_)) = chatItem $ fromRight invalid $ dbParseACIContent itemContentText where invalid = ACIContent msgDir $ CIInvalidJSON itemContentText @@ -1113,7 +1114,8 @@ toLocalChatItem currentTs ((itemId, itemTs, AMsgDirection msgDir, itemContentTex (Just fileId, Just fileName, Just fileSize, Just fileProtocol) -> let cfArgs = CFArgs <$> fileKey <*> fileNonce fileSource = (`CryptoFile` cfArgs) <$> filePath - in Just CIFile {fileId, fileName, fileSize, fileSource, fileStatus, fileProtocol, fileExpires} + fileProhibited = (\maxSize -> FileProhibited {maxSize, badgeStatus = fileBadgeStatus_}) <$> fileMaxSize_ + in Just CIFile {fileId, fileName, fileSize, fileSource, fileStatus, fileProtocol, fileExpires, fileProhibited} _ -> Nothing cItem :: MsgDirectionI d => SMsgDirection d -> CIDirection 'CTLocal d -> CIStatus d -> CIContent d -> Maybe (CIFile d) -> CChatItem 'CTLocal cItem d chatDir ciStatus content file = @@ -2276,7 +2278,7 @@ updateLocalChatItemsRead db User {userId} noteFolderId = do |] (CISRcvRead, currentTs, userId, noteFolderId, CISRcvNew) -type MaybeCIFIleRow = (Maybe Int64, Maybe String, Maybe Integer, Maybe FilePath, Maybe C.SbKey, Maybe C.CbNonce, Maybe ACIFileStatus, Maybe FileProtocol, Maybe UTCTime) +type MaybeCIFIleRow = (Maybe Int64, Maybe String, Maybe Integer, Maybe FilePath, Maybe C.SbKey, Maybe C.CbNonce, Maybe ACIFileStatus, Maybe FileProtocol, Maybe UTCTime) :. (Maybe Integer, Maybe BadgeStatus) type ChatItemModeRow = (Maybe Int, Maybe UTCTime, Maybe BoolInt, BoolInt, BoolInt, Maybe MsgVerified) @@ -2304,7 +2306,7 @@ toQuote (quotedItemId, quotedSharedMsgId, quotedSentAt, quotedMsgContent, _) dir -- this function can be changed so it never fails, not only avoid failure on invalid json toDirectChatItem :: UTCTime -> ChatItemRow :. QuoteRow -> Either StoreError (CChatItem 'CTDirect) -toDirectChatItem currentTs (((itemId, itemTs, AMsgDirection msgDir, itemContentText, itemText, itemStatus, sentViaProxy, sharedMsgId) :. (itemDeleted, deletedTs, itemEdited, createdAt, updatedAt) :. forwardedFromRow :. (timedTTL, timedDeleteAt, itemLive, BI userMention, BI hasLink, msgSigned) :. (fileId_, fileName_, fileSize_, filePath, fileKey, fileNonce, fileStatus_, fileProtocol_, fileExpires)) :. quoteRow) = +toDirectChatItem currentTs (((itemId, itemTs, AMsgDirection msgDir, itemContentText, itemText, itemStatus, sentViaProxy, sharedMsgId) :. (itemDeleted, deletedTs, itemEdited, createdAt, updatedAt) :. forwardedFromRow :. (timedTTL, timedDeleteAt, itemLive, BI userMention, BI hasLink, msgSigned) :. (fileId_, fileName_, fileSize_, filePath, fileKey, fileNonce, fileStatus_, fileProtocol_, fileExpires) :. (fileMaxSize_, fileBadgeStatus_)) :. quoteRow) = chatItem $ fromRight invalid $ dbParseACIContent itemContentText where invalid = ACIContent msgDir $ CIInvalidJSON itemContentText @@ -2324,7 +2326,8 @@ toDirectChatItem currentTs (((itemId, itemTs, AMsgDirection msgDir, itemContentT (Just fileId, Just fileName, Just fileSize, Just fileProtocol) -> let cfArgs = CFArgs <$> fileKey <*> fileNonce fileSource = (`CryptoFile` cfArgs) <$> filePath - in Just CIFile {fileId, fileName, fileSize, fileSource, fileStatus, fileProtocol, fileExpires} + fileProhibited = (\maxSize -> FileProhibited {maxSize, badgeStatus = fileBadgeStatus_}) <$> fileMaxSize_ + in Just CIFile {fileId, fileName, fileSize, fileSource, fileStatus, fileProtocol, fileExpires, fileProhibited} _ -> Nothing cItem :: MsgDirectionI d => SMsgDirection d -> CIDirection 'CTDirect d -> CIStatus d -> CIContent d -> Maybe (CIFile d) -> CChatItem 'CTDirect cItem d chatDir ciStatus content file = @@ -2380,6 +2383,7 @@ toGroupChatItem :. forwardedFromRow :. (timedTTL, timedDeleteAt, itemLive, BI userMention, BI hasLink, msgSigned) :. (fileId_, fileName_, fileSize_, filePath, fileKey, fileNonce, fileStatus_, fileProtocol_, fileExpires) + :. (fileMaxSize_, fileBadgeStatus_) ) :. (forwardedByMember, BI showGroupAsSender) :. memberRow_ @@ -2414,7 +2418,8 @@ toGroupChatItem (Just fileId, Just fileName, Just fileSize, Just fileProtocol) -> let cfArgs = CFArgs <$> fileKey <*> fileNonce fileSource = (`CryptoFile` cfArgs) <$> filePath - in Just CIFile {fileId, fileName, fileSize, fileSource, fileStatus, fileProtocol, fileExpires} + fileProhibited = (\maxSize -> FileProhibited {maxSize, badgeStatus = fileBadgeStatus_}) <$> fileMaxSize_ + in Just CIFile {fileId, fileName, fileSize, fileSource, fileStatus, fileProtocol, fileExpires, fileProhibited} _ -> Nothing cItem :: MsgDirectionI d => SMsgDirection d -> CIDirection 'CTGroup d -> CIStatus d -> CIContent d -> Maybe (CIFile d) -> CChatItem 'CTGroup cItem d chatDir ciStatus content file = @@ -2705,7 +2710,7 @@ getDirectChatItem db User {userId} contactId itemId = ExceptT $ do i.fwd_from_group_type, i.fwd_from_group_link, i.fwd_from_public_group_id, i.fwd_from_member_id, i.fwd_from_shared_msg_id, i.timed_ttl, i.timed_delete_at, i.item_live, i.user_mention, i.has_link, i.msg_signed, -- CIFile - f.file_id, f.file_name, f.file_size, f.file_path, f.file_crypto_key, f.file_crypto_nonce, f.ci_file_status, f.protocol, f.file_expires_at, + f.file_id, f.file_name, f.file_size, f.file_path, f.file_crypto_key, f.file_crypto_nonce, f.ci_file_status, f.protocol, f.file_expires_at, f.file_max_size, f.file_badge_status, -- DirectQuote ri.chat_item_id, i.quoted_shared_msg_id, i.quoted_sent_at, i.quoted_content, i.quoted_sent FROM chat_items i @@ -3099,7 +3104,7 @@ getGroupChatItem db User {userId, userContactId} groupId itemId = ExceptT $ do i.fwd_from_group_type, i.fwd_from_group_link, i.fwd_from_public_group_id, i.fwd_from_member_id, i.fwd_from_shared_msg_id, i.timed_ttl, i.timed_delete_at, i.item_live, i.user_mention, i.has_link, i.msg_signed, -- CIFile - f.file_id, f.file_name, f.file_size, f.file_path, f.file_crypto_key, f.file_crypto_nonce, f.ci_file_status, f.protocol, f.file_expires_at, + f.file_id, f.file_name, f.file_size, f.file_path, f.file_crypto_key, f.file_crypto_nonce, f.ci_file_status, f.protocol, f.file_expires_at, f.file_max_size, f.file_badge_status, -- CIMeta forwardedByMember, showGroupAsSender i.forwarded_by_group_member_id, i.show_group_as_sender, -- GroupMember @@ -3212,7 +3217,7 @@ getLocalChatItem db User {userId} folderId itemId = ExceptT $ do i.fwd_from_group_type, i.fwd_from_group_link, i.fwd_from_public_group_id, i.fwd_from_member_id, i.fwd_from_shared_msg_id, i.timed_ttl, i.timed_delete_at, i.item_live, i.user_mention, i.has_link, i.msg_signed, -- CIFile - f.file_id, f.file_name, f.file_size, f.file_path, f.file_crypto_key, f.file_crypto_nonce, f.ci_file_status, f.protocol, f.file_expires_at + f.file_id, f.file_name, f.file_size, f.file_path, f.file_crypto_key, f.file_crypto_nonce, f.ci_file_status, f.protocol, f.file_expires_at, f.file_max_size, f.file_badge_status FROM chat_items i LEFT JOIN files f ON f.chat_item_id = i.chat_item_id WHERE i.user_id = ? AND i.note_folder_id = ? AND i.chat_item_id = ? diff --git a/src/Simplex/Chat/Store/Postgres/Migrations.hs b/src/Simplex/Chat/Store/Postgres/Migrations.hs index 91f2b13fb5..e3f5409680 100644 --- a/src/Simplex/Chat/Store/Postgres/Migrations.hs +++ b/src/Simplex/Chat/Store/Postgres/Migrations.hs @@ -49,6 +49,7 @@ import Simplex.Chat.Store.Postgres.Migrations.M20260723_contact_request_rejectio import Simplex.Chat.Store.Postgres.Migrations.M20260813_auto_accept_group_invitations import Simplex.Chat.Store.Postgres.Migrations.M20260822_forward_link import Simplex.Chat.Store.Postgres.Migrations.M20260828_file_expiry +import Simplex.Chat.Store.Postgres.Migrations.M20260904_file_badges import Simplex.Messaging.Agent.Store.Shared (Migration (..)) schemaMigrations :: [(String, Text, Maybe Text)] @@ -97,7 +98,8 @@ schemaMigrations = ("20260723_contact_request_rejection", m20260723_contact_request_rejection, Just down_m20260723_contact_request_rejection), ("20260813_auto_accept_group_invitations", m20260813_auto_accept_group_invitations, Just down_m20260813_auto_accept_group_invitations), ("20260822_forward_link", m20260822_forward_link, Just down_m20260822_forward_link), - ("20260828_file_expiry", m20260828_file_expiry, Just down_m20260828_file_expiry) + ("20260828_file_expiry", m20260828_file_expiry, Just down_m20260828_file_expiry), + ("20260904_file_badges", m20260904_file_badges, Just down_m20260904_file_badges) ] -- | The list of migrations in ascending order by date diff --git a/src/Simplex/Chat/Store/Postgres/Migrations/M20260904_file_badges.hs b/src/Simplex/Chat/Store/Postgres/Migrations/M20260904_file_badges.hs new file mode 100644 index 0000000000..0ef3ef8e87 --- /dev/null +++ b/src/Simplex/Chat/Store/Postgres/Migrations/M20260904_file_badges.hs @@ -0,0 +1,40 @@ +{-# LANGUAGE OverloadedStrings #-} +{-# LANGUAGE QuasiQuotes #-} + +module Simplex.Chat.Store.Postgres.Migrations.M20260904_file_badges where + +import Data.Text (Text) +import Text.RawString.QQ (r) + +m20260904_file_badges :: Text +m20260904_file_badges = + [r| +ALTER TABLE files ADD COLUMN file_max_size BIGINT; +ALTER TABLE files ADD COLUMN file_badge_status TEXT; + +CREATE TABLE file_badge_proofs( + badge_proof_id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, + file_id BIGINT NOT NULL REFERENCES files ON DELETE CASCADE, + proof_kind TEXT NOT NULL, + badge_proof BYTEA NOT NULL, + badge_pres_header BYTEA NOT NULL, + badge_key_idx BIGINT NOT NULL, + badge_type TEXT NOT NULL, + badge_expiry TIMESTAMPTZ NOT NULL, + badge_extra TEXT NOT NULL, + created_at TIMESTAMPTZ NOT NULL, + updated_at TIMESTAMPTZ NOT NULL +); + +CREATE UNIQUE INDEX idx_file_badge_proofs_file_id_kind ON file_badge_proofs(file_id, proof_kind); +|] + +down_m20260904_file_badges :: Text +down_m20260904_file_badges = + [r| +DROP INDEX idx_file_badge_proofs_file_id_kind; +DROP TABLE file_badge_proofs; + +ALTER TABLE files DROP COLUMN file_badge_status; +ALTER TABLE files DROP COLUMN file_max_size; +|] diff --git a/src/Simplex/Chat/Store/Postgres/Migrations/chat_schema.sql b/src/Simplex/Chat/Store/Postgres/Migrations/chat_schema.sql index a6d9fbe4cb..8d21189ba2 100644 --- a/src/Simplex/Chat/Store/Postgres/Migrations/chat_schema.sql +++ b/src/Simplex/Chat/Store/Postgres/Migrations/chat_schema.sql @@ -744,6 +744,33 @@ ALTER TABLE test_chat_schema.extra_xftp_file_descriptions ALTER COLUMN extra_fil +CREATE TABLE test_chat_schema.file_badge_proofs ( + badge_proof_id bigint NOT NULL, + file_id bigint NOT NULL, + proof_kind text NOT NULL, + badge_proof bytea NOT NULL, + badge_pres_header bytea NOT NULL, + badge_key_idx bigint NOT NULL, + badge_type text NOT NULL, + badge_expiry timestamp with time zone NOT NULL, + badge_extra text NOT NULL, + created_at timestamp with time zone NOT NULL, + updated_at timestamp with time zone NOT NULL +); + + + +ALTER TABLE test_chat_schema.file_badge_proofs ALTER COLUMN badge_proof_id ADD GENERATED ALWAYS AS IDENTITY ( + SEQUENCE NAME test_chat_schema.file_badge_proofs_badge_proof_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1 +); + + + CREATE TABLE test_chat_schema.files ( file_id bigint NOT NULL, contact_id bigint, @@ -771,7 +798,9 @@ CREATE TABLE test_chat_schema.files ( file_type text DEFAULT 'normal'::text NOT NULL, roster_transfer_id bigint, file_digest bytea, - file_expires_at timestamp with time zone + file_expires_at timestamp with time zone, + file_max_size bigint, + file_badge_status text ); @@ -1691,6 +1720,11 @@ ALTER TABLE ONLY test_chat_schema.extra_xftp_file_descriptions +ALTER TABLE ONLY test_chat_schema.file_badge_proofs + ADD CONSTRAINT file_badge_proofs_pkey PRIMARY KEY (badge_proof_id); + + + ALTER TABLE ONLY test_chat_schema.files ADD CONSTRAINT files_pkey PRIMARY KEY (file_id); @@ -2336,6 +2370,10 @@ CREATE INDEX idx_extra_xftp_file_descriptions_user_id ON test_chat_schema.extra_ +CREATE UNIQUE INDEX idx_file_badge_proofs_file_id_kind ON test_chat_schema.file_badge_proofs USING btree (file_id, proof_kind); + + + CREATE INDEX idx_files_chat_item_id ON test_chat_schema.files USING btree (chat_item_id); @@ -2980,6 +3018,11 @@ ALTER TABLE ONLY test_chat_schema.extra_xftp_file_descriptions +ALTER TABLE ONLY test_chat_schema.file_badge_proofs + ADD CONSTRAINT file_badge_proofs_file_id_fkey FOREIGN KEY (file_id) REFERENCES test_chat_schema.files(file_id) ON DELETE CASCADE; + + + ALTER TABLE ONLY test_chat_schema.files ADD CONSTRAINT files_contact_id_fkey FOREIGN KEY (contact_id) REFERENCES test_chat_schema.contacts(contact_id) ON DELETE CASCADE; diff --git a/src/Simplex/Chat/Store/SQLite/Migrations.hs b/src/Simplex/Chat/Store/SQLite/Migrations.hs index e3f5f9385b..6ea5ad950d 100644 --- a/src/Simplex/Chat/Store/SQLite/Migrations.hs +++ b/src/Simplex/Chat/Store/SQLite/Migrations.hs @@ -172,6 +172,7 @@ import Simplex.Chat.Store.SQLite.Migrations.M20260723_contact_request_rejection import Simplex.Chat.Store.SQLite.Migrations.M20260813_auto_accept_group_invitations import Simplex.Chat.Store.SQLite.Migrations.M20260822_forward_link import Simplex.Chat.Store.SQLite.Migrations.M20260828_file_expiry +import Simplex.Chat.Store.SQLite.Migrations.M20260904_file_badges import Simplex.Messaging.Agent.Store.Shared (Migration (..)) schemaMigrations :: [(String, Query, Maybe Query)] @@ -343,7 +344,8 @@ schemaMigrations = ("20260723_contact_request_rejection", m20260723_contact_request_rejection, Just down_m20260723_contact_request_rejection), ("20260813_auto_accept_group_invitations", m20260813_auto_accept_group_invitations, Just down_m20260813_auto_accept_group_invitations), ("20260822_forward_link", m20260822_forward_link, Just down_m20260822_forward_link), - ("20260828_file_expiry", m20260828_file_expiry, Just down_m20260828_file_expiry) + ("20260828_file_expiry", m20260828_file_expiry, Just down_m20260828_file_expiry), + ("20260904_file_badges", m20260904_file_badges, Just down_m20260904_file_badges) ] -- | The list of migrations in ascending order by date diff --git a/src/Simplex/Chat/Store/SQLite/Migrations/M20260904_file_badges.hs b/src/Simplex/Chat/Store/SQLite/Migrations/M20260904_file_badges.hs new file mode 100644 index 0000000000..1dec68471c --- /dev/null +++ b/src/Simplex/Chat/Store/SQLite/Migrations/M20260904_file_badges.hs @@ -0,0 +1,39 @@ +{-# LANGUAGE QuasiQuotes #-} + +module Simplex.Chat.Store.SQLite.Migrations.M20260904_file_badges where + +import Database.SQLite.Simple (Query) +import Database.SQLite.Simple.QQ (sql) + +m20260904_file_badges :: Query +m20260904_file_badges = + [sql| +ALTER TABLE files ADD COLUMN file_max_size INTEGER; +ALTER TABLE files ADD COLUMN file_badge_status TEXT; + +CREATE TABLE file_badge_proofs( + badge_proof_id INTEGER PRIMARY KEY AUTOINCREMENT, + file_id INTEGER NOT NULL REFERENCES files ON DELETE CASCADE, + proof_kind TEXT NOT NULL, + badge_proof BLOB NOT NULL, + badge_pres_header BLOB NOT NULL, + badge_key_idx INTEGER NOT NULL, + badge_type TEXT NOT NULL, + badge_expiry TEXT NOT NULL, + badge_extra TEXT NOT NULL, + created_at TEXT NOT NULL, + updated_at TEXT NOT NULL +) STRICT; + +CREATE UNIQUE INDEX idx_file_badge_proofs_file_id_kind ON file_badge_proofs(file_id, proof_kind); +|] + +down_m20260904_file_badges :: Query +down_m20260904_file_badges = + [sql| +DROP INDEX idx_file_badge_proofs_file_id_kind; +DROP TABLE file_badge_proofs; + +ALTER TABLE files DROP COLUMN file_badge_status; +ALTER TABLE files DROP COLUMN file_max_size; +|] diff --git a/src/Simplex/Chat/Store/SQLite/Migrations/chat_query_plans.txt b/src/Simplex/Chat/Store/SQLite/Migrations/chat_query_plans.txt index 47a6d2745d..1b293022e4 100644 --- a/src/Simplex/Chat/Store/SQLite/Migrations/chat_query_plans.txt +++ b/src/Simplex/Chat/Store/SQLite/Migrations/chat_query_plans.txt @@ -1357,7 +1357,7 @@ Query: i.fwd_from_group_type, i.fwd_from_group_link, i.fwd_from_public_group_id, i.fwd_from_member_id, i.fwd_from_shared_msg_id, i.timed_ttl, i.timed_delete_at, i.item_live, i.user_mention, i.has_link, i.msg_signed, -- CIFile - f.file_id, f.file_name, f.file_size, f.file_path, f.file_crypto_key, f.file_crypto_nonce, f.ci_file_status, f.protocol, f.file_expires_at + f.file_id, f.file_name, f.file_size, f.file_path, f.file_crypto_key, f.file_crypto_nonce, f.ci_file_status, f.protocol, f.file_expires_at, f.file_max_size, f.file_badge_status FROM chat_items i LEFT JOIN files f ON f.chat_item_id = i.chat_item_id WHERE i.user_id = ? AND i.note_folder_id = ? AND i.chat_item_id = ? @@ -1375,7 +1375,7 @@ Query: i.fwd_from_group_type, i.fwd_from_group_link, i.fwd_from_public_group_id, i.fwd_from_member_id, i.fwd_from_shared_msg_id, i.timed_ttl, i.timed_delete_at, i.item_live, i.user_mention, i.has_link, i.msg_signed, -- CIFile - f.file_id, f.file_name, f.file_size, f.file_path, f.file_crypto_key, f.file_crypto_nonce, f.ci_file_status, f.protocol, f.file_expires_at, + f.file_id, f.file_name, f.file_size, f.file_path, f.file_crypto_key, f.file_crypto_nonce, f.ci_file_status, f.protocol, f.file_expires_at, f.file_max_size, f.file_badge_status, -- CIMeta forwardedByMember, showGroupAsSender i.forwarded_by_group_member_id, i.show_group_as_sender, -- GroupMember @@ -1432,7 +1432,7 @@ Query: i.fwd_from_group_type, i.fwd_from_group_link, i.fwd_from_public_group_id, i.fwd_from_member_id, i.fwd_from_shared_msg_id, i.timed_ttl, i.timed_delete_at, i.item_live, i.user_mention, i.has_link, i.msg_signed, -- CIFile - f.file_id, f.file_name, f.file_size, f.file_path, f.file_crypto_key, f.file_crypto_nonce, f.ci_file_status, f.protocol, f.file_expires_at, + f.file_id, f.file_name, f.file_size, f.file_path, f.file_crypto_key, f.file_crypto_nonce, f.ci_file_status, f.protocol, f.file_expires_at, f.file_max_size, f.file_badge_status, -- DirectQuote ri.chat_item_id, i.quoted_shared_msg_id, i.quoted_sent_at, i.quoted_content, i.quoted_sent FROM chat_items i @@ -1721,7 +1721,8 @@ Query: SELECT r.file_status, r.file_queue_info, r.group_member_id, f.file_name, f.file_size, f.chunk_size, f.cancelled, cs.local_display_name, m.local_display_name, f.file_path, f.file_crypto_key, f.file_crypto_nonce, r.file_inline, r.rcv_file_inline, - r.agent_rcv_file_id, r.agent_rcv_file_deleted, r.user_approved_relays, g.local_display_name, f.file_type, f.file_digest + r.agent_rcv_file_id, r.agent_rcv_file_deleted, r.user_approved_relays, g.local_display_name, f.file_type, f.file_digest, + f.file_max_size, f.file_badge_status FROM rcv_files r JOIN files f USING (file_id) LEFT JOIN contacts cs ON cs.contact_id = f.contact_id @@ -3972,6 +3973,14 @@ SEARCH pgm USING INDEX idx_pending_group_messages_group_member_id (group_member_ SEARCH m USING INTEGER PRIMARY KEY (rowid=?) USE TEMP B-TREE FOR ORDER BY +Query: + SELECT proof_kind, badge_proof, badge_pres_header, badge_key_idx, badge_type, badge_expiry, badge_extra + FROM file_badge_proofs + WHERE file_id = ? + +Plan: +SEARCH file_badge_proofs USING INDEX idx_file_badge_proofs_file_id_kind (file_id=?) + Query: SELECT r.contact_id, g.group_id, r.group_member_id FROM received_probes r @@ -4763,6 +4772,7 @@ Plan: SEARCH files USING INDEX idx_files_user_id (user_id=?) LIST SUBQUERY 1 SEARCH chat_items USING COVERING INDEX idx_chat_items_note_folder_has_link_created_at (user_id=? AND note_folder_id=?) +SEARCH file_badge_proofs USING COVERING INDEX idx_file_badge_proofs_file_id_kind (file_id=?) SEARCH extra_xftp_file_descriptions USING COVERING INDEX idx_extra_xftp_file_descriptions_file_id (file_id=?) SEARCH rcv_files USING INTEGER PRIMARY KEY (rowid=?) SEARCH snd_files USING COVERING INDEX idx_snd_files_file_id (file_id=?) @@ -4893,6 +4903,20 @@ Query: Plan: +Query: + INSERT INTO file_badge_proofs (file_id, proof_kind, badge_proof, badge_pres_header, badge_key_idx, badge_type, badge_expiry, badge_extra, created_at, updated_at) + VALUES (?,?,?,?,?,?,?,?,?,?) + ON CONFLICT (file_id, proof_kind) DO UPDATE SET + badge_proof = excluded.badge_proof, + badge_pres_header = excluded.badge_pres_header, + badge_key_idx = excluded.badge_key_idx, + badge_type = excluded.badge_type, + badge_expiry = excluded.badge_expiry, + badge_extra = excluded.badge_extra, + updated_at = excluded.updated_at + +Plan: + Query: INSERT INTO files ( user_id, note_folder_id, @@ -6704,6 +6728,7 @@ SEARCH users USING INTEGER PRIMARY KEY (rowid=?) Query: DELETE FROM files WHERE roster_transfer_id = ? Plan: SEARCH files USING COVERING INDEX idx_files_roster_transfer_id (roster_transfer_id=?) +SEARCH file_badge_proofs USING COVERING INDEX idx_file_badge_proofs_file_id_kind (file_id=?) SEARCH extra_xftp_file_descriptions USING COVERING INDEX idx_extra_xftp_file_descriptions_file_id (file_id=?) SEARCH rcv_files USING INTEGER PRIMARY KEY (rowid=?) SEARCH snd_files USING COVERING INDEX idx_snd_files_file_id (file_id=?) @@ -6712,6 +6737,7 @@ SEARCH files USING COVERING INDEX idx_files_redirect_file_id (redirect_file_id=? Query: DELETE FROM files WHERE user_id = ? AND contact_id = ? Plan: SEARCH files USING INDEX idx_files_contact_id (contact_id=?) +SEARCH file_badge_proofs USING COVERING INDEX idx_file_badge_proofs_file_id_kind (file_id=?) SEARCH extra_xftp_file_descriptions USING COVERING INDEX idx_extra_xftp_file_descriptions_file_id (file_id=?) SEARCH rcv_files USING INTEGER PRIMARY KEY (rowid=?) SEARCH snd_files USING COVERING INDEX idx_snd_files_file_id (file_id=?) @@ -6720,6 +6746,7 @@ SEARCH files USING COVERING INDEX idx_files_redirect_file_id (redirect_file_id=? Query: DELETE FROM files WHERE user_id = ? AND group_id = ? AND file_type = ? Plan: SEARCH files USING INDEX idx_files_group_id (group_id=?) +SEARCH file_badge_proofs USING COVERING INDEX idx_file_badge_proofs_file_id_kind (file_id=?) SEARCH extra_xftp_file_descriptions USING COVERING INDEX idx_extra_xftp_file_descriptions_file_id (file_id=?) SEARCH rcv_files USING INTEGER PRIMARY KEY (rowid=?) SEARCH snd_files USING COVERING INDEX idx_snd_files_file_id (file_id=?) @@ -7023,13 +7050,13 @@ Plan: Query: INSERT INTO files (contact_id, group_id, user_id, file_name, file_path, file_crypto_key, file_crypto_nonce, file_size, chunk_size, redirect_file_id, agent_snd_file_id, ci_file_status, protocol, created_at, updated_at) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) Plan: -Query: INSERT INTO files (user_id, contact_id, file_name, file_size, chunk_size, file_inline, ci_file_status, protocol, created_at, updated_at) VALUES (?,?,?,?,?,?,?,?,?,?) +Query: INSERT INTO files (user_id, contact_id, file_name, file_size, chunk_size, file_inline, ci_file_status, protocol, file_max_size, file_badge_status, created_at, updated_at) VALUES (?,?,?,?,?,?,?,?,?,?,?,?) Plan: Query: INSERT INTO files (user_id, file_name, file_path, file_size, chunk_size, ci_file_status, protocol, created_at, updated_at) VALUES (?,?,?,?,?,?,?,?,?) Plan: -Query: INSERT INTO files (user_id, group_id, file_name, file_size, chunk_size, file_inline, ci_file_status, protocol, file_type, shared_msg_id, created_at, updated_at, file_digest) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?) +Query: INSERT INTO files (user_id, group_id, file_name, file_size, chunk_size, file_inline, ci_file_status, protocol, file_type, shared_msg_id, created_at, updated_at, file_digest, file_max_size, file_badge_status) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) Plan: Query: INSERT INTO files (user_id, group_id, file_name, file_size, chunk_size, file_inline, ci_file_status, protocol, file_type, shared_msg_id, roster_transfer_id, created_at, updated_at) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?) diff --git a/src/Simplex/Chat/Store/SQLite/Migrations/chat_schema.sql b/src/Simplex/Chat/Store/SQLite/Migrations/chat_schema.sql index 90706e70dd..6f8952714a 100644 --- a/src/Simplex/Chat/Store/SQLite/Migrations/chat_schema.sql +++ b/src/Simplex/Chat/Store/SQLite/Migrations/chat_schema.sql @@ -302,7 +302,9 @@ CREATE TABLE files( file_type TEXT NOT NULL DEFAULT 'normal', roster_transfer_id INTEGER, file_digest BLOB, - file_expires_at TEXT + file_expires_at TEXT, + file_max_size INTEGER, + file_badge_status TEXT ) STRICT; CREATE TABLE snd_files( file_id INTEGER NOT NULL REFERENCES files ON DELETE CASCADE, @@ -852,6 +854,19 @@ CREATE TABLE rcv_roster_transfers( created_at TEXT NOT NULL DEFAULT(datetime('now')), updated_at TEXT NOT NULL DEFAULT(datetime('now')) ) STRICT; +CREATE TABLE file_badge_proofs( + badge_proof_id INTEGER PRIMARY KEY AUTOINCREMENT, + file_id INTEGER NOT NULL REFERENCES files ON DELETE CASCADE, + proof_kind TEXT NOT NULL, + badge_proof BLOB NOT NULL, + badge_pres_header BLOB NOT NULL, + badge_key_idx INTEGER NOT NULL, + badge_type TEXT NOT NULL, + badge_expiry TEXT NOT NULL, + badge_extra TEXT NOT NULL, + created_at TEXT NOT NULL, + updated_at TEXT NOT NULL +) STRICT; CREATE INDEX contact_profiles_index ON contact_profiles( display_name, full_name @@ -1386,6 +1401,10 @@ CREATE INDEX idx_files_roster_transfer_id ON files(roster_transfer_id); CREATE INDEX idx_chat_items_item_signed_by_group_member_id ON chat_items( item_signed_by_group_member_id ); +CREATE UNIQUE INDEX idx_file_badge_proofs_file_id_kind ON file_badge_proofs( + file_id, + proof_kind +); CREATE TRIGGER on_group_members_insert_update_summary AFTER INSERT ON group_members FOR EACH ROW diff --git a/src/Simplex/Chat/Types.hs b/src/Simplex/Chat/Types.hs index 9c7ae95749..7bfd2f299d 100644 --- a/src/Simplex/Chat/Types.hs +++ b/src/Simplex/Chat/Types.hs @@ -1558,7 +1558,8 @@ data FileInvitation = FileInvitation fileDigest :: Maybe FileDigest, fileConnReq :: Maybe ConnReqInvitation, fileInline :: Maybe InlineFileMode, - fileDescr :: Maybe FileDescr + fileDescr :: Maybe FileDescr, + fileBadge :: Maybe BadgeProof } deriving (Eq, Show) @@ -1573,7 +1574,8 @@ xftpFileInvitation fileName fileSize fileDescr = fileDigest = Nothing, fileConnReq = Nothing, fileInline = Nothing, - fileDescr = Just fileDescr + fileDescr = Just fileDescr, + fileBadge = Nothing } data InlineFileMode @@ -1627,10 +1629,14 @@ instance ToJSON FileType where toJSON = J.String . textEncode toEncoding = JE.text . textEncode +data FileProhibited = FileProhibited {maxSize :: Integer, badgeStatus :: Maybe BadgeStatus} + deriving (Eq, Show) + data RcvFileTransfer = RcvFileTransfer { fileId :: FileTransferId, xftpRcvFile :: Maybe XFTPRcvFile, fileInvitation :: FileInvitation, + fileProhibited :: Maybe FileProhibited, fileStatus :: RcvFileStatus, fileType :: FileType, rcvFileInline :: Maybe InlineFileMode, @@ -2379,6 +2385,8 @@ $(JQ.deriveJSON defaultJSON ''GroupMemberRef) $(JQ.deriveJSON defaultJSON ''FileDescr) +$(JQ.deriveJSON defaultJSON ''FileProhibited) + $(JQ.deriveJSON defaultJSON ''FileInvitation) $(JQ.deriveJSON defaultJSON ''SndFileTransfer) diff --git a/src/Simplex/Chat/View.hs b/src/Simplex/Chat/View.hs index 49823ae7cf..e973adfd6f 100644 --- a/src/Simplex/Chat/View.hs +++ b/src/Simplex/Chat/View.hs @@ -2453,11 +2453,25 @@ viewReceivedFileInvitation :: StyledString -> CIFile d -> CurrentTime -> TimeZon viewReceivedFileInvitation from file ts tz meta = receivedWithTime_ ts tz from [] meta (receivedFileInvitation_ file) False receivedFileInvitation_ :: CIFile d -> [StyledString] -receivedFileInvitation_ CIFile {fileId, fileName, fileSize, fileStatus} = +receivedFileInvitation_ CIFile {fileId, fileName, fileSize, fileStatus, fileProhibited} = ["sends file " <> ttyFilePath fileName <> " (" <> humanReadableSize fileSize <> " / " <> sShow fileSize <> " bytes)"] - <> case fileStatus of - CIFSRcvAccepted -> [] - _ -> ["use " <> highlight ("/fr " <> show fileId <> " [

      OF?=1zV`$5*>j{ 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.t^pm?SlT0?4uIl6qB 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 literal 0 HcmV?d00001 diff --git a/website/src/img/crowdfunding/simplex-growth-2.png b/website/src/img/crowdfunding/simplex-growth-2.png new file mode 100644 index 0000000000000000000000000000000000000000..671865cbe6719d6b68e8c3b9d4bd151987f644aa GIT binary patch literal 220105 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�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

      / | ]") <> " to receive it"] + <> case fileProhibited of + Just fp -> [prohibitedFileReason fp] + Nothing -> case fileStatus of + CIFSRcvAccepted -> [] + _ -> ["use " <> highlight ("/fr " <> show fileId <> " [/ | ]") <> " to receive it"] + +prohibitedFileReason :: FileProhibited -> StyledString +prohibitedFileReason FileProhibited {maxSize, badgeStatus} = + "file is above the limit of " <> sShow maxSize <> " bytes: " <> reason + where + reason = case badgeStatus of + Nothing -> "sender has no badge" + Just BSActive -> "above the limit of the sender badge" + Just BSExpired -> "sender badge expired" + Just BSExpiredOld -> "sender badge expired" + Just BSFailed -> "sender badge did not verify" + Just BSUnknownKey -> "sender badge key is not known" humanReadableSize :: Integer -> StyledString humanReadableSize size diff --git a/tests/BadgeTests.hs b/tests/BadgeTests.hs index 19ebd2818e..21da643a87 100644 --- a/tests/BadgeTests.hs +++ b/tests/BadgeTests.hs @@ -6,6 +6,7 @@ module BadgeTests (badgeTests) where +import Data.ByteString.Char8 (ByteString) import Data.Map.Strict (Map) import qualified Data.Map.Strict as M import Data.Time.Clock (UTCTime, addUTCTime, getCurrentTime, nominalDay) @@ -14,6 +15,7 @@ import qualified Data.Aeson as J import qualified Simplex.Messaging.Crypto as C import Simplex.Chat.Badges import Simplex.Messaging.Crypto.BBS +import Simplex.Messaging.Encoding.String import Test.Hspec badgeTests :: Spec @@ -26,6 +28,8 @@ badgeTests = do it "should compute badge status correctly" testExpiryCheck it "should accept unknown badge types" testUnknownBadgeType it "credential serializes to a paste-able token and back" testCredentialSerialization + it "presentation headers encode and decode" testPresHeaderEncoding + it "should reject a proof presented under another chat binding" testOtherChatBinding proofOf :: BadgeProof -> BBSProof proofOf (BadgeProof _ _ p _) = p @@ -125,12 +129,41 @@ futureTime = posixSecondsToUTCTime 4102444800 -- 2099-12-31 pastTime :: UTCTime pastTime = posixSecondsToUTCTime 1577836800 -- 2020-01-01 +testPresHeaderEncoding :: IO () +testPresHeaderEncoding = + mapM_ + (\ph -> strDecode (strEncode ph) `shouldBe` Right ph) + [ PHTest "nonce", + PHChat aliceBinding, + PHFileInv {chatBinding = aliceBinding, fileSize = 139737}, + PHFileDescr {chatBinding = aliceBinding, fileSize = 139737, descrHash = "descr-hash", fileExpires = Nothing}, + PHFileDescr {chatBinding = aliceBinding, fileSize = 139737, descrHash = "descr-hash", fileExpires = Just futureTime}, + PHUnknown 'Z' "payload" + ] + +testOtherChatBinding :: IO () +testOtherChatBinding = do + let ph = PHFileInv {chatBinding = aliceBinding, fileSize = 139737} + otherPh = PHFileInv {chatBinding = bobBinding, fileSize = 139737} + (pk, BadgeProof idx _ p info) <- issueBadgeProofHeader BTSupporter futureTime ph + verifyBadge (keysFor pk) (BadgeProof idx (BBSPresHeader $ strEncode ph) p info) >>= (`shouldBe` Just True) + verifyBadge (keysFor pk) (BadgeProof idx (BBSPresHeader $ strEncode otherPh) p info) >>= (`shouldBe` Just False) + +aliceBinding :: ByteString +aliceBinding = "Galice-member-id" + +bobBinding :: ByteString +bobBinding = "Gbob-member-id" + issueBadgeProof :: BadgeType -> UTCTime -> IO (BBSPublicKey, BadgeProof) -issueBadgeProof bt expiry = do +issueBadgeProof bt expiry = issueBadgeProofHeader bt expiry (PHTest "test-nonce") + +issueBadgeProofHeader :: BadgeType -> UTCTime -> ProofPresHeader -> IO (BBSPublicKey, BadgeProof) +issueBadgeProofHeader bt expiry ph = do Right (pk, sk) <- bbsKeyGen drg <- C.newRandom mk <- generateMasterKey drg let vreq = VerifiedBadgeRequest BadgeRequest {masterKey = mk, badgeInfo = BadgeInfo {badgeType = bt, badgeExpiry = expiry, badgeExtra = ""}} Right cred <- issueBadge testKeyIdx sk vreq - Right badge <- generateBadgeProof pk cred (BBSPresHeader "test-nonce") + Right badge <- badgeProof pk cred ph pure (pk, badge) diff --git a/tests/ChatTests/Files.hs b/tests/ChatTests/Files.hs index 089efc914d..55766e905a 100644 --- a/tests/ChatTests/Files.hs +++ b/tests/ChatTests/Files.hs @@ -7,19 +7,25 @@ module ChatTests.Files where import ChatClient import ChatTests.DBUtils +import ChatTests.Profiles (addTestBadge, futureDate, issueTestBadge, issueTestBadgeType, testBadgeKeys) import ChatTests.Utils import Control.Concurrent (threadDelay) import Control.Concurrent.Async (concurrently_) import Control.Logger.Simple +import Control.Monad.Except (runExceptT) +import Control.Monad.Reader (runReaderT) import qualified Data.Aeson as J import qualified Data.ByteString.Char8 as B import qualified Data.ByteString.Lazy.Char8 as LB import Network.HTTP.Types.URI (urlEncode) +import Data.Time.Clock (addUTCTime, getCurrentTime, nominalDay) +import Simplex.Chat.Badges (BadgeProof, BadgeStatus (..), BadgeType (..), FileSizeLimits (..), ProofPresHeader (..), badgeProof, defaultFileSizeLimits) import Simplex.Chat.Controller (ChatConfig (..)) -import Simplex.Chat.Library.Internal (roundedFDCount) +import Simplex.Chat.Library.Internal (badgeProofStatus, roundedFDCount) import Simplex.Chat.Mobile.File import Simplex.Chat.Options (ChatOpts (..)) import Simplex.FileTransfer.Server.Env (XFTPServerConfig (..), XFTPStoreConfig (..)) +import Simplex.Messaging.Crypto.BBS (BBSPublicKey, bbsKeyGen) import Simplex.Messaging.Crypto.File (CryptoFile (..), CryptoFileArgs (..)) import Simplex.Messaging.Encoding.String import System.Directory (copyFile, createDirectoryIfMissing, doesFileExist, getFileSize) @@ -63,6 +69,14 @@ chatFileTests = do it "send and receive large standalone file using relative paths" testXFTPStandaloneRelativePaths xit "removes sent file from server" testXFTPStandaloneCancelSnd -- no error shown in tests it "removes received temporary files" testXFTPStandaloneCancelRcv + describe "send larger files with badges" $ do + it "send and receive file with badge proof" testXFTPFileBadgeProof + it "send and receive file with badge proof in group" testXFTPGroupFileBadgeProof + it "file above the limit without badge proof is not accepted" testXFTPFileNoBadgeProof + it "file above the limit the badge allows is not accepted" testXFTPFileBadgeAboveLimit + it "sending file above the limit the badge allows fails" testXFTPSndFileBadgeLimit + it "sending file with a badge expired past the send grace fails" testXFTPSndFileBadgeGrace + it "file proof is rejected under another binding, size or expired badge" testFileBadgeProofStatus runTestMessageWithFile :: HasCallStack => TestParams -> IO () runTestMessageWithFile = testChat2 aliceProfile bobProfile $ \alice bob -> withXFTPServer $ do @@ -750,6 +764,180 @@ testXFTPGroupFileTransfer = dest1 `shouldBe` src dest2 `shouldBe` src +badgeFileCfg :: BBSPublicKey -> ChatConfig +badgeFileCfg pk = badgeFileCfgLimits pk FileSizeLimits {noBadge = 100000, supporter = 300000, legend = 400000} + +badgeFileCfgLimits :: BBSPublicKey -> FileSizeLimits -> ChatConfig +badgeFileCfgLimits pk lims = testCfg {badgePublicKeys = testBadgeKeys pk, fileSizeLimits = lims} + +testXFTPFileBadgeProof :: HasCallStack => TestParams -> IO () +testXFTPFileBadgeProof ps = do + Right (pk, sk) <- bbsKeyGen + testChatCfg2 (badgeFileCfg pk) aliceProfile bobProfile (test sk) ps + where + test sk alice bob = withXFTPServer $ do + connectUsers alice bob + addTestBadge alice =<< issueTestBadge sk futureDate + + alice #> "/f @bob ./tests/fixtures/test.pdf" + alice <## "use /fc 1 to cancel sending" + bob <# "alice *> sends file test.pdf (266.0 KiB / 272376 bytes)" + bob <## "use /fr 1 [/ | ] to receive it" + bob ##> "/fr 1 ./tests/tmp" + concurrentlyN_ + [ alice <## "completed uploading file 1 (test.pdf) for bob", + bob + <### [ "saving file 1 from alice to ./tests/tmp/test.pdf", + "started receiving file 1 (test.pdf) from alice" + ] + ] + bob <## "completed receiving file 1 (test.pdf) from alice" + + src <- B.readFile "./tests/fixtures/test.pdf" + dest <- B.readFile "./tests/tmp/test.pdf" + dest `shouldBe` src + +testXFTPGroupFileBadgeProof :: HasCallStack => TestParams -> IO () +testXFTPGroupFileBadgeProof ps = do + Right (pk, sk) <- bbsKeyGen + testChatCfg3 (badgeFileCfg pk) aliceProfile bobProfile cathProfile (test sk) ps + where + test sk alice bob cath = withXFTPServer $ do + createGroup3 "team" alice bob cath + addTestBadge alice =<< issueTestBadge sk futureDate + + alice #> "/f #team ./tests/fixtures/test.pdf" + alice <## "use /fc 1 to cancel sending" + concurrentlyN_ + [ do + bob <# "#team alice> sends file test.pdf (266.0 KiB / 272376 bytes)" + bob <## "use /fr 1 [/ | ] to receive it", + do + cath <# "#team alice> sends file test.pdf (266.0 KiB / 272376 bytes)" + cath <## "use /fr 1 [/ | ] to receive it" + ] + alice <## "completed uploading file 1 (test.pdf) for #team" + + bob ##> "/fr 1 ./tests/tmp" + bob + <### [ "saving file 1 from alice to ./tests/tmp/test.pdf", + "started receiving file 1 (test.pdf) from alice" + ] + bob <## "completed receiving file 1 (test.pdf) from alice" + + src <- B.readFile "./tests/fixtures/test.pdf" + dest <- B.readFile "./tests/tmp/test.pdf" + dest `shouldBe` src + +testXFTPFileNoBadgeProof :: HasCallStack => TestParams -> IO () +testXFTPFileNoBadgeProof ps = + withNewTestChatCfg ps sndCfg "alice" aliceProfile $ \alice -> + withNewTestChatCfg ps rcvCfg "bob" bobProfile $ \bob -> withXFTPServer $ do + connectUsers alice bob + + alice #> "/f @bob ./tests/fixtures/test.pdf" + alice <## "use /fc 1 to cancel sending" + bob <# "alice> sends file test.pdf (266.0 KiB / 272376 bytes)" + bob <## "file is above the limit of 100000 bytes: sender has no badge" + bob ##> "/fr 1 ./tests/tmp" + concurrentlyN_ + [ bob <## "file size exceeds the limit: test.pdf", + alice <## "completed uploading file 1 (test.pdf) for bob" + ] + where + sndCfg = testCfg {fileSizeLimits = defaultFileSizeLimits {noBadge = 1000000}} + rcvCfg = testCfg {fileSizeLimits = defaultFileSizeLimits {noBadge = 100000}} + +testXFTPFileBadgeAboveLimit :: HasCallStack => TestParams -> IO () +testXFTPFileBadgeAboveLimit ps = do + Right (pk, sk) <- bbsKeyGen + withNewTestChatCfg ps (badgeFileCfg pk) "alice" aliceProfile $ \alice -> + withNewTestChatCfg ps (rcvCfg pk) "bob" bobProfile $ \bob -> withXFTPServer $ do + connectUsers alice bob + addTestBadge alice =<< issueTestBadge sk futureDate + + alice #> "/f @bob ./tests/fixtures/test.pdf" + alice <## "use /fc 1 to cancel sending" + bob <# "alice *> sends file test.pdf (266.0 KiB / 272376 bytes)" + bob <## "file is above the limit of 150000 bytes: above the limit of the sender badge" + bob ##> "/fr 1 ./tests/tmp" + concurrentlyN_ + [ bob <## "file size exceeds the limit: test.pdf", + alice <## "completed uploading file 1 (test.pdf) for bob" + ] + where + rcvCfg pk = badgeFileCfgLimits pk FileSizeLimits {noBadge = 100000, supporter = 150000, legend = 400000} + +testXFTPSndFileBadgeLimit :: HasCallStack => TestParams -> IO () +testXFTPSndFileBadgeLimit ps = do + Right (pk, sk) <- bbsKeyGen + testChatCfg2 (cfg pk) aliceProfile bobProfile (test sk) ps + where + cfg pk = badgeFileCfgLimits pk FileSizeLimits {noBadge = 100000, supporter = 150000, legend = 300000} + test sk alice bob = withXFTPServer $ do + connectUsers alice bob + + addTestBadge alice =<< issueTestBadgeType sk BTSupporter futureDate + alice ##> "/f @bob ./tests/fixtures/test.pdf" + alice <## "file size exceeds the limit: ./tests/fixtures/test.pdf" + + addTestBadge alice =<< issueTestBadgeType sk BTLegend futureDate + alice #> "/f @bob ./tests/fixtures/test.pdf" + alice <## "use /fc 1 to cancel sending" + concurrentlyN_ + [ alice <## "completed uploading file 1 (test.pdf) for bob", + do + bob <# "alice *> sends file test.pdf (266.0 KiB / 272376 bytes)" + bob <## "use /fr 1 [/ | ] to receive it" + ] + +testXFTPSndFileBadgeGrace :: HasCallStack => TestParams -> IO () +testXFTPSndFileBadgeGrace ps = do + Right (pk, sk) <- bbsKeyGen + testChatCfg2 (badgeFileCfg pk) aliceProfile bobProfile (test sk) ps + where + test sk alice bob = withXFTPServer $ do + connectUsers alice bob + now <- getCurrentTime + + addTestBadge alice =<< issueTestBadge sk (addUTCTime (-3 * nominalDay) now) + alice ##> "/f @bob ./tests/fixtures/test.pdf" + alice <## "file size exceeds the limit: ./tests/fixtures/test.pdf" + + addTestBadge alice =<< issueTestBadge sk (addUTCTime (-3600) now) + alice #> "/f @bob ./tests/fixtures/test.pdf" + alice <## "use /fc 1 to cancel sending" + concurrentlyN_ + [ alice <## "completed uploading file 1 (test.pdf) for bob", + do + bob <# "alice *> sends file test.pdf (266.0 KiB / 272376 bytes)" + bob <## "use /fr 1 [/ | ] to receive it" + ] + +testFileBadgeProofStatus :: HasCallStack => TestParams -> IO () +testFileBadgeProofStatus ps = do + Right (pk, sk) <- bbsKeyGen + withNewTestChatCfg ps (badgeFileCfg pk) "alice" aliceProfile $ \alice -> do + now <- getCurrentTime + let ph = PHFileInv {chatBinding = "Dalice-binding", fileSize = 272376} + otherBinding = (ph :: ProofPresHeader) {chatBinding = "Dbob-binding"} + otherSize = (ph :: ProofPresHeader) {fileSize = 1} + proofFor expiry = do + cred <- issueTestBadge sk expiry + Right badge <- badgeProof pk cred ph + pure badge + statusOf expected badge = do + Right st <- runExceptT (badgeProofStatus expected badge) `runReaderT` chatController alice + pure st + badge <- proofFor futureDate + statusOf (Just ph) badge `shouldReturn` BSActive + statusOf (Just otherBinding) badge `shouldReturn` BSFailed + statusOf (Just otherSize) badge `shouldReturn` BSFailed + -- the receiver has no binding for the sender, so no header can be expected + statusOf Nothing badge `shouldReturn` BSFailed + expired <- proofFor $ addUTCTime (-10 * nominalDay) now + statusOf (Just ph) expired `shouldReturn` BSExpired + testXFTPDeleteUploadedFile :: HasCallStack => TestParams -> IO () testXFTPDeleteUploadedFile = testChat2 aliceProfile bobProfile $ \alice bob -> do diff --git a/tests/ChatTests/Groups.hs b/tests/ChatTests/Groups.hs index 187dd1b078..e17de3a766 100644 --- a/tests/ChatTests/Groups.hs +++ b/tests/ChatTests/Groups.hs @@ -14,6 +14,7 @@ module ChatTests.Groups where import ChatClient import ChatTests.DBUtils +import ChatTests.Profiles (addTestBadge, futureDate, issueTestBadge, testBadgeKeys) import ChatTests.Utils import Control.Concurrent (threadDelay) import Control.Concurrent.Async (concurrently_) @@ -29,6 +30,7 @@ import Data.Int (Int64) import Data.List (intercalate, isInfixOf, isSuffixOf) import qualified Data.Map.Strict as M import qualified Data.Text as T +import Simplex.Chat.Badges (FileSizeLimits (..)) import Simplex.Chat.Controller (ChatController (ChatController, smpAgent), ChatConfig (..), ChatHooks (..), ChatLogLevel (..), defaultChatHooks) import Simplex.Chat.Library.Internal (uniqueMsgMentions, updatedMentionNames) import Simplex.Chat.Markdown (parseMaybeMarkdownList) @@ -46,6 +48,7 @@ import Simplex.Messaging.Agent.RetryInterval import qualified Simplex.Messaging.Agent.Store.DB as DB import Simplex.Messaging.Agent.Store.DB (Binary (..)) import qualified Simplex.Messaging.Crypto as C +import Simplex.Messaging.Crypto.BBS (bbsKeyGen) import Simplex.Messaging.Crypto.Ratchet (pattern PQEncOff) import Simplex.Messaging.Protocol (MsgFlags (..)) import Simplex.Messaging.Server.Env.STM hiding (subscriptions) @@ -188,6 +191,8 @@ chatGroupTests = do describe "group history" $ do it "text messages" testGroupHistory it "history is sent when joining via group link" testGroupHistoryGroupLink + it "file with badge proof is received from history" testGroupHistoryFileBadgeProof + it "file received from member with badge proof is received from history" testGroupHistoryRcvFileBadgeProof it "history is not sent if preference is disabled" testGroupHistoryPreferenceOff it "host's file" testGroupHistoryHostFile it "member's file" testGroupHistoryMemberFile @@ -332,6 +337,7 @@ chatGroupTests = do it "should update channel message sent as member" testChannelOwnerUpdateAsMember it "should delete channel message sent as member" testChannelOwnerDeleteAsMember it "should send and receive file sent as member" testChannelOwnerFileTransferAsMember + it "should send and receive file with badge proof" testChannelFileBadgeProof it "should cancel file sent as member" testChannelOwnerFileCancelAsMember it "should attribute reactions to member" testChannelReactionAttribution it "should recreate deleted item with correct sendAsGroup from update" testChannelUpdateFallbackSendAsGroup @@ -12220,6 +12226,174 @@ testChannelOwnerFileTransferAsMember ps = cc <## ("completed receiving file " <> show fileId <> " (test.jpg) from alice") B.readFile path >>= (`shouldBe` src) +testGroupHistoryFileBadgeProof :: HasCallStack => TestParams -> IO () +testGroupHistoryFileBadgeProof ps = do + Right (pk, sk) <- bbsKeyGen + let cfg = testCfg {badgePublicKeys = testBadgeKeys pk, fileSizeLimits = FileSizeLimits {noBadge = 100000, supporter = 300000, legend = 400000}} + testChatCfg3 cfg aliceProfile bobProfile cathProfile (test sk) ps + where + test sk alice bob cath = withXFTPServer $ do + createGroup2 "team" alice bob + addTestBadge alice =<< issueTestBadge sk futureDate + + alice #> "/f #team ./tests/fixtures/test.pdf" + alice <## "use /fc 1 to cancel sending" + bob <# "#team alice> sends file test.pdf (266.0 KiB / 272376 bytes)" + bob <## "use /fr 1 [/ | ] to receive it" + alice <## "completed uploading file 1 (test.pdf) for #team" + + alice ##> "/create link #team" + gLink <- getGroupLink alice "team" GRMember True + cath ##> ("/c " <> gLink) + cath <## "connection request sent!" + alice <## "cath (Catherine): accepting request to join group #team..." + concurrentlyN_ + [ alice <## "#team: cath joined the group", + cath + <### [ "#team: joining the group...", + "#team: you joined the group", + WithTime "#team alice> sends file test.pdf (266.0 KiB / 272376 bytes) [>>]", + "use /fr 1 [/ | ] to receive it [>>]", + "#team: member bob (Bob) is connected" + ], + do + bob <## "#team: alice added cath (Catherine) to the group (connecting...)" + bob <## "#team: new member cath is connected" + ] + + cath ##> "/fr 1 ./tests/tmp" + cath + <### [ "saving file 1 from alice to ./tests/tmp/test.pdf", + "started receiving file 1 (test.pdf) from alice" + ] + cath <## "completed receiving file 1 (test.pdf) from alice" + src <- B.readFile "./tests/fixtures/test.pdf" + dest <- B.readFile "./tests/tmp/test.pdf" + dest `shouldBe` src + +testGroupHistoryRcvFileBadgeProof :: HasCallStack => TestParams -> IO () +testGroupHistoryRcvFileBadgeProof ps = do + Right (pk, sk) <- bbsKeyGen + let cfg = testCfg {badgePublicKeys = testBadgeKeys pk, fileSizeLimits = FileSizeLimits {noBadge = 100000, supporter = 300000, legend = 400000}} + testChatCfg3 cfg aliceProfile bobProfile cathProfile (test sk) ps + where + test sk alice bob cath = withXFTPServer $ do + createGroup2 "team" alice bob + addTestBadge bob =<< issueTestBadge sk futureDate + + bob #> "/f #team ./tests/fixtures/test.pdf" + bob <## "use /fc 1 to cancel sending" + alice <# "#team bob> sends file test.pdf (266.0 KiB / 272376 bytes)" + alice <## "use /fr 1 [/ | ] to receive it" + alice ##> "/fr 1 ./tests/tmp" + concurrentlyN_ + [ bob <## "completed uploading file 1 (test.pdf) for #team", + alice + <### [ "saving file 1 from bob to ./tests/tmp/test.pdf", + "started receiving file 1 (test.pdf) from bob" + ] + ] + alice <## "completed receiving file 1 (test.pdf) from bob" + + alice ##> "/create link #team" + gLink <- getGroupLink alice "team" GRMember True + cath ##> ("/c " <> gLink) + cath <## "connection request sent!" + alice <## "cath (Catherine): accepting request to join group #team..." + concurrentlyN_ + [ alice <## "#team: cath joined the group", + cath + <### [ "#team: joining the group...", + "#team: you joined the group", + WithTime "#team bob> sends file test.pdf (266.0 KiB / 272376 bytes) [>>]", + "use /fr 1 [/ | ] to receive it [>>]", + "#team: member bob (Bob) is connected" + ], + do + bob <## "#team: alice added cath (Catherine) to the group (connecting...)" + bob <## "#team: new member cath is connected" + ] + + cath ##> "/fr 1 ./tests/tmp" + cath + <### [ "saving file 1 from bob to ./tests/tmp/test_1.pdf", + "started receiving file 1 (test.pdf) from bob" + ] + cath <## "completed receiving file 1 (test.pdf) from bob" + src <- B.readFile "./tests/fixtures/test.pdf" + dest <- B.readFile "./tests/tmp/test_1.pdf" + dest `shouldBe` src + +testChannelFileBadgeProof :: HasCallStack => TestParams -> IO () +testChannelFileBadgeProof ps = do + Right (pk, sk) <- bbsKeyGen + let cfg = testCfg {badgePublicKeys = testBadgeKeys pk, fileSizeLimits = FileSizeLimits {noBadge = 100000, supporter = 300000, legend = 400000}} + withNewTestChatCfg ps cfg "alice" aliceProfile $ \alice -> + withNewTestChatCfgOpts ps cfg relayTestOpts "bob" bobProfile $ \bob -> + withNewTestChatCfg ps cfg "cath" cathProfile $ \cath -> + withNewTestChatCfg ps cfg "dan" danProfile $ \dan -> + withNewTestChatCfg ps cfg "eve" eveProfile $ \eve -> withXFTPServer $ do + createChannel1Relay "team" alice bob cath dan eve + addTestBadge alice =<< issueTestBadge sk futureDate +#if defined(dbPostgres) + let rcvFileId = 2 :: Int +#else + let rcvFileId = 1 :: Int +#endif + alice ##> "/_send #1(as_group=off) json [{\"filePath\": \"./tests/fixtures/test.jpg\", \"msgContent\": {\"type\": \"file\", \"text\": \"\"}}]" + alice <# "/f #team ./tests/fixtures/test.jpg" + alice <## "use /fc 1 to cancel sending" + alice <## "completed uploading file 1 (test.jpg) for #team" + bob <# "#team alice> sends file test.jpg (136.5 KiB / 139737 bytes)" + bob <## ("use /fr " <> show rcvFileId <> " [/ | ] to receive it") + concurrentlyN_ + [ do + cath <# "#team alice> sends file test.jpg (136.5 KiB / 139737 bytes) [>>]" + cath <## ("use /fr " <> show rcvFileId <> " [/ | ] to receive it [>>]"), + do + dan <# "#team alice> sends file test.jpg (136.5 KiB / 139737 bytes) [>>]" + dan <## ("use /fr " <> show rcvFileId <> " [/ | ] to receive it [>>]"), + do + eve <# "#team alice> sends file test.jpg (136.5 KiB / 139737 bytes) [>>]" + eve <## ("use /fr " <> show rcvFileId <> " [/ | ] to receive it [>>]") + ] + + src <- B.readFile "./tests/fixtures/test.jpg" + let path = "./tests/tmp/test_cath.jpg" + cath ##> ("/fr " <> show rcvFileId <> " " <> path) + cath + <### [ ConsoleString ("saving file " <> show rcvFileId <> " from alice to " <> path), + ConsoleString ("started receiving file " <> show rcvFileId <> " (test.jpg) from alice") + ] + cath <## ("completed receiving file " <> show rcvFileId <> " (test.jpg) from alice") + B.readFile path >>= (`shouldBe` src) + + alice ##> "/_send #1(as_group=on) json [{\"filePath\": \"./tests/fixtures/test.jpg\", \"msgContent\": {\"type\": \"file\", \"text\": \"\"}}]" + alice <# "/f #team ./tests/fixtures/test.jpg" + alice <## "use /fc 2 to cancel sending" + alice <## "completed uploading file 2 (test.jpg) for #team" + bob <# "#team> sends file test.jpg (136.5 KiB / 139737 bytes)" + bob <## ("use /fr " <> show (rcvFileId + 1) <> " [/ | ] to receive it") + concurrentlyN_ + [ do + cath <# "#team> sends file test.jpg (136.5 KiB / 139737 bytes) [>>]" + cath <## ("use /fr " <> show (rcvFileId + 1) <> " [/ | ] to receive it [>>]"), + do + dan <# "#team> sends file test.jpg (136.5 KiB / 139737 bytes) [>>]" + dan <## ("use /fr " <> show (rcvFileId + 1) <> " [/ | ] to receive it [>>]"), + do + eve <# "#team> sends file test.jpg (136.5 KiB / 139737 bytes) [>>]" + eve <## ("use /fr " <> show (rcvFileId + 1) <> " [/ | ] to receive it [>>]") + ] + let path2 = "./tests/tmp/test_cath_2.jpg" + cath ##> ("/fr " <> show (rcvFileId + 1) <> " " <> path2) + cath + <### [ ConsoleString ("saving file " <> show (rcvFileId + 1) <> " from #team to " <> path2), + ConsoleString ("started receiving file " <> show (rcvFileId + 1) <> " (test.jpg) from #team") + ] + cath <## ("completed receiving file " <> show (rcvFileId + 1) <> " (test.jpg) from #team") + B.readFile path2 >>= (`shouldBe` src) + testChannelOwnerFileCancelAsMember :: HasCallStack => TestParams -> IO () testChannelOwnerFileCancelAsMember ps = withNewTestChat ps "alice" aliceProfile $ \alice -> diff --git a/tests/ChatTests/Profiles.hs b/tests/ChatTests/Profiles.hs index adcfc6d994..743bd5be52 100644 --- a/tests/ChatTests/Profiles.hs +++ b/tests/ChatTests/Profiles.hs @@ -281,10 +281,13 @@ futureDate = posixSecondsToUTCTime 4102444800 -- 2100-01-01 -- issue a supporter badge credential with the given expiry (test issuer) issueTestBadge :: BBSSecretKey -> UTCTime -> IO BadgeCredential -issueTestBadge sk badgeExpiry = do +issueTestBadge sk = issueTestBadgeType sk BTSupporter + +issueTestBadgeType :: BBSSecretKey -> BadgeType -> UTCTime -> IO BadgeCredential +issueTestBadgeType sk badgeType badgeExpiry = do drg <- C.newRandom mk <- generateMasterKey drg - let info = BadgeInfo {badgeType = BTSupporter, badgeExpiry, badgeExtra = ""} + let info = BadgeInfo {badgeType, badgeExpiry, badgeExtra = ""} Just vreq <- verifyPayment (BPRedeemCode "TEST") BadgeRequest {masterKey = mk, badgeInfo = info} Right cred <- issueBadge 1 sk vreq pure cred diff --git a/tests/ProtocolTests.hs b/tests/ProtocolTests.hs index 127b1c7a08..633bbe876c 100644 --- a/tests/ProtocolTests.hs +++ b/tests/ProtocolTests.hs @@ -225,10 +225,10 @@ decodeChatMessageTest = describe "Chat message encoding/decoding" $ do ##==## ChatMessage chatInitialVRange (Just $ SharedMsgId "\1\2\3\4") (XMsgNew $ mcForward (Just (testForwardLink {memberId = Nothing} :: ForwardLink)) (MCText "hello")) it "x.msg.new simple text with file" $ "{\"v\":\"9\",\"event\":\"x.msg.new\",\"params\":{\"content\":{\"text\":\"hello\",\"type\":\"text\"},\"file\":{\"fileSize\":12345,\"fileName\":\"photo.jpg\"}}}" - #==# XMsgNew ((mcSimple (MCText "hello")) {file = Just FileInvitation {fileName = "photo.jpg", fileSize = 12345, fileDigest = Nothing, fileConnReq = Nothing, fileInline = Nothing, fileDescr = Nothing}}) + #==# XMsgNew ((mcSimple (MCText "hello")) {file = Just FileInvitation {fileName = "photo.jpg", fileSize = 12345, fileDigest = Nothing, fileConnReq = Nothing, fileInline = Nothing, fileDescr = Nothing, fileBadge = Nothing}}) it "x.msg.new simple file with file" $ "{\"v\":\"9\",\"event\":\"x.msg.new\",\"params\":{\"content\":{\"text\":\"\",\"type\":\"file\"},\"file\":{\"fileSize\":12345,\"fileName\":\"file.txt\"}}}" - #==# XMsgNew ((mcSimple (MCFile "")) {file = Just FileInvitation {fileName = "file.txt", fileSize = 12345, fileDigest = Nothing, fileConnReq = Nothing, fileInline = Nothing, fileDescr = Nothing}}) + #==# XMsgNew ((mcSimple (MCFile "")) {file = Just FileInvitation {fileName = "file.txt", fileSize = 12345, fileDigest = Nothing, fileConnReq = Nothing, fileInline = Nothing, fileDescr = Nothing, fileBadge = Nothing}}) it "x.msg.new quote with file" $ "{\"v\":\"9\",\"msgId\":\"AQIDBA==\",\"event\":\"x.msg.new\",\"params\":{\"content\":{\"text\":\"hello to you too\",\"type\":\"text\"},\"file\":{\"fileSize\":12345,\"fileName\":\"photo.jpg\"},\"quote\":{\"content\":{\"text\":\"hello there!\",\"type\":\"text\"},\"msgRef\":{\"msgId\":\"BQYHCA==\",\"sent\":true,\"sentAt\":\"1970-01-01T00:00:01.000000001Z\"}}}}" ##==## ChatMessage @@ -236,7 +236,7 @@ decodeChatMessageTest = describe "Chat message encoding/decoding" $ do (Just $ SharedMsgId "\1\2\3\4") ( XMsgNew (mcQuote quotedMsg (MCText "hello to you too")) - {file = Just FileInvitation {fileName = "photo.jpg", fileSize = 12345, fileDigest = Nothing, fileConnReq = Nothing, fileInline = Nothing, fileDescr = Nothing}} + {file = Just FileInvitation {fileName = "photo.jpg", fileSize = 12345, fileDigest = Nothing, fileConnReq = Nothing, fileInline = Nothing, fileDescr = Nothing, fileBadge = Nothing}} ) it "x.msg.new report" $ "{\"v\":\"9\",\"msgId\":\"AQIDBA==\",\"event\":\"x.msg.new\",\"params\":{\"content\":{\"text\":\"\",\"reason\":\"spam\",\"type\":\"report\"},\"quote\":{\"content\":{\"text\":\"hello there!\",\"type\":\"text\"},\"msgRef\":{\"msgId\":\"BQYHCA==\",\"sent\":true,\"sentAt\":\"1970-01-01T00:00:01.000000001Z\"}}}}" @@ -246,7 +246,7 @@ decodeChatMessageTest = describe "Chat message encoding/decoding" $ do (XMsgNew (mcQuote quotedMsg (MCReport "" RRSpam))) it "x.msg.new forward with file" $ "{\"v\":\"9\",\"msgId\":\"AQIDBA==\",\"event\":\"x.msg.new\",\"params\":{\"content\":{\"text\":\"hello\",\"type\":\"text\"},\"file\":{\"fileSize\":12345,\"fileName\":\"photo.jpg\"},\"forward\":true}}" - ##==## ChatMessage chatInitialVRange (Just $ SharedMsgId "\1\2\3\4") (XMsgNew $ (mcForward Nothing (MCText "hello")) {file = Just FileInvitation {fileName = "photo.jpg", fileSize = 12345, fileDigest = Nothing, fileConnReq = Nothing, fileInline = Nothing, fileDescr = Nothing}}) + ##==## ChatMessage chatInitialVRange (Just $ SharedMsgId "\1\2\3\4") (XMsgNew $ (mcForward Nothing (MCText "hello")) {file = Just FileInvitation {fileName = "photo.jpg", fileSize = 12345, fileDigest = Nothing, fileConnReq = Nothing, fileInline = Nothing, fileDescr = Nothing, fileBadge = Nothing}}) it "x.msg.update" $ "{\"v\":\"9\",\"event\":\"x.msg.update\",\"params\":{\"msgId\":\"AQIDBA==\", \"content\":{\"text\":\"hello\",\"type\":\"text\"}}}" #==# XMsgUpdate (SharedMsgId "\1\2\3\4") (MCText "hello") [] Nothing Nothing Nothing Nothing @@ -258,10 +258,10 @@ decodeChatMessageTest = describe "Chat message encoding/decoding" $ do #==# XMsgDeleted it "x.file" $ "{\"v\":\"9\",\"event\":\"x.file\",\"params\":{\"file\":{\"fileConnReq\":\"simplex:/invitation#/?v=1&smp=smp%3A%2F%2F1234-w%3D%3D%40smp.simplex.im%3A5223%2F3456-w%3D%3D%23%2F%3Fv%3D1-4%26dh%3DMCowBQYDK2VuAyEAjiswwI3O_NlS8Fk3HJUW870EY2bAwmttMBsvRB9eV3o%253D&e2e=v%3D3%26x3dh%3DMEIwBQYDK2VvAzkAmKuSYeQ_m0SixPDS8Wq8VBaTS1cW-Lp0n0h4Diu-kUpR-qXx4SDJ32YGEFoGFGSbGPry5Ychr6U%3D%2CMEIwBQYDK2VvAzkAmKuSYeQ_m0SixPDS8Wq8VBaTS1cW-Lp0n0h4Diu-kUpR-qXx4SDJ32YGEFoGFGSbGPry5Ychr6U%3D\",\"fileSize\":12345,\"fileName\":\"photo.jpg\"}}}" - #==# XFile FileInvitation {fileName = "photo.jpg", fileSize = 12345, fileDigest = Nothing, fileConnReq = Just testConnReq, fileInline = Nothing, fileDescr = Nothing} + #==# XFile FileInvitation {fileName = "photo.jpg", fileSize = 12345, fileDigest = Nothing, fileConnReq = Just testConnReq, fileInline = Nothing, fileDescr = Nothing, fileBadge = Nothing} it "x.file without file invitation" $ "{\"v\":\"9\",\"event\":\"x.file\",\"params\":{\"file\":{\"fileSize\":12345,\"fileName\":\"photo.jpg\"}}}" - #==# XFile FileInvitation {fileName = "photo.jpg", fileSize = 12345, fileDigest = Nothing, fileConnReq = Nothing, fileInline = Nothing, fileDescr = Nothing} + #==# XFile FileInvitation {fileName = "photo.jpg", fileSize = 12345, fileDigest = Nothing, fileConnReq = Nothing, fileInline = Nothing, fileDescr = Nothing, fileBadge = Nothing} it "x.file.acpt" $ "{\"v\":\"9\",\"event\":\"x.file.acpt\",\"params\":{\"fileName\":\"photo.jpg\"}}" #==# XFileAcpt "photo.jpg" From f409680fa48413edf2d3b9172f8822e6a5e97744 Mon Sep 17 00:00:00 2001 From: Evgeny Date: Sat, 12 Sep 2026 16:22:32 +0100 Subject: [PATCH 21/62] website: update link (#7496) Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com> --- website/src/livestream.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/livestream.html b/website/src/livestream.html index 2b78fd21a0..842dfe7c3e 100644 --- a/website/src/livestream.html +++ b/website/src/livestream.html @@ -79,7 +79,7 @@ templateEngineOverride: njk From be673038abd9468d307de3c6ef2a5eed42ecb9c4 Mon Sep 17 00:00:00 2001 From: Evgeny Date: Sun, 13 Sep 2026 11:01:51 +0100 Subject: [PATCH 22/62] core: optimize transactions during message delivery (#7498) * core: optimize transactions during message delivery * merge more transactions --------- Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com> --- src/Simplex/Chat/Library/Subscriber.hs | 130 +++++++++++++------------ 1 file changed, 68 insertions(+), 62 deletions(-) diff --git a/src/Simplex/Chat/Library/Subscriber.hs b/src/Simplex/Chat/Library/Subscriber.hs index 27dd742af5..1514418847 100644 --- a/src/Simplex/Chat/Library/Subscriber.hs +++ b/src/Simplex/Chat/Library/Subscriber.hs @@ -135,10 +135,33 @@ processAgentMessage corrId connId msg = do lockEntity <- critical connId (withStore (`getChatLockEntity` AgentConnId connId)) withEntityLock "processAgentMessage" lockEntity $ do cxt <- chatStoreCxt - -- getUserByAConnId never throws logical errors, only SEDBBusyError can be thrown here - critical connId (withStore' (`getUserByAConnId` AgentConnId connId)) >>= \case - Just user -> processAgentMessageConn cxt user corrId connId msg `catchAllErrors` eToView + -- Missing connection/entity errors here will be sent to the view but not shown as CRITICAL alert, + -- as in this case no need to ACK message - we can't process messages for this connection anyway. + critical connId (withStore $ getUserEntity cxt) >>= \case + Just (user, entity) -> processAgentMessageConn cxt user entity corrId connId msg `catchAllErrors` eToView _ -> throwChatError $ CENoConnectionUser (AgentConnId connId) + where + getUserEntity :: StoreCxt -> DB.Connection -> ExceptT StoreError IO (Maybe (User, ConnectionEntity)) + getUserEntity cxt db = + liftIO (getUserByAConnId db $ AgentConnId connId) + >>= mapM (\user -> (user,) <$> (getConnectionEntity db cxt user (AgentConnId connId) >>= liftIO . updateConnStatus db)) + + updateConnStatus :: DB.Connection -> ConnectionEntity -> IO ConnectionEntity + updateConnStatus db acEntity = case agentMsgConnStatus (entityConnection acEntity) msg of + Just connStatus -> do + let conn = (entityConnection acEntity) {connStatus} + updateConnectionStatus db conn connStatus + pure $ updateEntityConnStatus acEntity connStatus + Nothing -> pure acEntity + + agentMsgConnStatus :: Connection -> AEvent e -> Maybe ConnStatus + agentMsgConnStatus Connection {connStatus = cs} = \case + JOINED True -> Just ConnSndReady + CONF {} -> Just ConnRequested + INFO {} -> Just ConnSndReady + CON _ -> Just ConnReady + ERR err | cs /= ConnReady && not (temporaryOrHostError err) -> Just $ ConnFailed (tshow err) + _ -> Nothing -- CRITICAL error will be shown to the user as alert with restart button in Android/desktop apps. -- SEDBBusyError will only be thrown on IO exceptions or SQLError during DB queries, @@ -408,11 +431,8 @@ processAgentMsgRcvFile _corrId aFileId msg = do type ShouldDeleteGroupConns = Bool -processAgentMessageConn :: StoreCxt -> User -> ACorrId -> ConnId -> AEvent 'AEConn -> CM () -processAgentMessageConn cxt user@User {userId} corrId agentConnId agentMessage = do - -- Missing connection/entity errors here will be sent to the view but not shown as CRITICAL alert, - -- as in this case no need to ACK message - we can't process messages for this connection anyway. - entity <- critical agentConnId $ withStore (\db -> getConnectionEntity db cxt user $ AgentConnId agentConnId) >>= updateConnStatus +processAgentMessageConn :: StoreCxt -> User -> ConnectionEntity -> ACorrId -> ConnId -> AEvent 'AEConn -> CM () +processAgentMessageConn cxt user@User {userId} entity corrId agentConnId agentMessage = case agentMessage of END -> case entity of RcvDirectMsgConnection _ (Just ct) -> toView $ CEvtContactAnotherClient user ct @@ -426,23 +446,6 @@ processAgentMessageConn cxt user@User {userId} corrId agentConnId agentMessage = UserContactConnection conn uc -> processContactConnMessage agentMessage entity conn uc where - updateConnStatus :: ConnectionEntity -> CM ConnectionEntity - updateConnStatus acEntity = case agentMsgConnStatus (entityConnection acEntity) agentMessage of - Just connStatus -> do - let conn = (entityConnection acEntity) {connStatus} - withStore' $ \db -> updateConnectionStatus db conn connStatus - pure $ updateEntityConnStatus acEntity connStatus - Nothing -> pure acEntity - - agentMsgConnStatus :: Connection -> AEvent e -> Maybe ConnStatus - agentMsgConnStatus Connection {connStatus = cs} = \case - JOINED True -> Just ConnSndReady - CONF {} -> Just ConnRequested - INFO {} -> Just ConnSndReady - CON _ -> Just ConnReady - ERR err | cs /= ConnReady && not (temporaryOrHostError err) -> Just $ ConnFailed (tshow err) - _ -> Nothing - processCONFpqSupport :: Connection -> PQSupport -> CM Connection processCONFpqSupport conn@Connection {connId, pqSupport = pq} pq' | pq == PQSupportOn && pq' == PQSupportOff = do @@ -507,7 +510,7 @@ processAgentMessageConn cxt user@User {userId} corrId agentConnId agentMessage = withAckMessage' "new contact msg" agentConnId meta $ pure () SENT msgId _proxy -> do void $ continueSending connEntity conn - sentMsgDeliveryEvent conn msgId + withStore' $ \db -> sentMsgDeliveryEvent db conn msgId OK -> -- [async agent commands] continuation on receiving OK when (corrId /= "") $ withCompletedCommand conn agentMsg $ \_cmdData -> pure () @@ -668,11 +671,12 @@ processAgentMessageConn cxt user@User {userId} corrId agentConnId agentMessage = withStore' $ \db -> resetContactConnInitiated db user conn' SENT msgId proxy -> do void $ continueSending connEntity conn - sentMsgDeliveryEvent conn msgId - checkSndInlineFTComplete conn msgId - cis <- withStore $ \db -> do + (fileEvent_, cis) <- withStore $ \db -> do + liftIO $ sentMsgDeliveryEvent db conn msgId + fileEvent_ <- checkSndInlineFTComplete db conn msgId cis <- updateDirectItemsStatus' db ct conn msgId (CISSndSent SSPComplete) - liftIO $ forM cis $ \ci -> setDirectSndChatItemViaProxy db user ct ci (isJust proxy) + (fileEvent_,) <$> liftIO (forM cis $ \ci -> setDirectSndChatItemViaProxy db user ct ci (isJust proxy)) + mapM_ toView fileEvent_ let acis = map ctItem cis unless (null acis) $ toView $ CEvtChatItemsStatusesUpdated user acis where @@ -1159,9 +1163,12 @@ processAgentMessageConn cxt user@User {userId} corrId agentConnId agentMessage = groupMsgReceived gInfo m conn msgMeta msgRcpt SENT msgId proxy -> do continued <- continueSending connEntity conn - sentMsgDeliveryEvent conn msgId - checkSndInlineFTComplete conn msgId - updateGroupItemsStatus gInfo m conn msgId GSSSent (Just $ isJust proxy) + (fileEvent_, acis) <- withStore $ \db -> do + liftIO $ sentMsgDeliveryEvent db conn msgId + fileEvent_ <- checkSndInlineFTComplete db conn msgId + (fileEvent_,) <$> updateGroupItemsStatus db gInfo m conn msgId GSSSent (Just $ isJust proxy) + mapM_ toView fileEvent_ + unless (null acis) $ toView $ CEvtChatItemsStatusesUpdated user acis when continued $ do when (isUserGrpFwdRelay gInfo) $ serveRoster user gInfo m -- roster ahead of the resumed backlog sendPendingGroupMessages user gInfo m conn @@ -1794,9 +1801,9 @@ processAgentMessageConn cxt user@User {userId} corrId agentConnId agentMessage = ackMsg :: MsgMeta -> Maybe MsgReceiptInfo -> CM () ackMsg MsgMeta {recipient = (msgId, _)} rcpt = withAgent $ \a -> ackMessageAsync a "" cId msgId rcpt - sentMsgDeliveryEvent :: Connection -> AgentMsgId -> CM () - sentMsgDeliveryEvent Connection {connId} msgId = - withStore' $ \db -> updateSndMsgDeliveryStatus db connId msgId MDSSndSent + sentMsgDeliveryEvent :: DB.Connection -> Connection -> AgentMsgId -> IO () + sentMsgDeliveryEvent db Connection {connId} msgId = + updateSndMsgDeliveryStatus db connId msgId MDSSndSent agentSndError :: AgentErrorType -> SndError agentSndError = \case @@ -2558,18 +2565,17 @@ processAgentMessageConn cxt user@User {userId} corrId agentConnId agentMessage = imageOrVoice _ = False assertSMPAcceptNotProhibited _ = pure () - checkSndInlineFTComplete :: Connection -> AgentMsgId -> CM () - checkSndInlineFTComplete conn agentMsgId = do - sft_ <- withStore' $ \db -> getSndFTViaMsgDelivery db user conn agentMsgId - forM_ sft_ $ \sft@SndFileTransfer {fileId} -> do - ci@(AChatItem _ _ _ ChatItem {file}) <- withStore $ \db -> do - liftIO $ updateSndFileStatus db sft FSComplete - updateDirectCIFileStatus db cxt user fileId CIFSSndComplete + checkSndInlineFTComplete :: DB.Connection -> Connection -> AgentMsgId -> ExceptT StoreError IO (Maybe ChatEvent) + checkSndInlineFTComplete db conn agentMsgId = do + sft_ <- liftIO $ getSndFTViaMsgDelivery db user conn agentMsgId + forM sft_ $ \sft@SndFileTransfer {fileId} -> do + liftIO $ updateSndFileStatus db sft FSComplete + ci@(AChatItem _ _ _ ChatItem {file}) <- updateDirectCIFileStatus db cxt user fileId CIFSSndComplete case file of Just CIFile {fileProtocol = FPXFTP} -> do - ft <- withStore $ \db -> getFileTransferMeta db user fileId - toView $ CEvtSndFileCompleteXFTP user ci ft - _ -> toView $ CEvtSndFileComplete user ci sft + ft <- getFileTransferMeta db user fileId + pure $ CEvtSndFileCompleteXFTP user ci ft + _ -> pure $ CEvtSndFileComplete user ci sft allowSendInline :: Integer -> Maybe InlineFileMode -> CM Bool allowSendInline fileSize = \case @@ -4004,8 +4010,10 @@ processAgentMessageConn cxt user@User {userId} corrId agentConnId agentMessage = (gInfo', m', scopeInfo) <- mkGroupChatScope gInfo m checkIntegrityCreateItem (CDGroupRcv gInfo' scopeInfo m') msgMeta `catchAllErrors` \_ -> pure () forM_ msgRcpts $ \MsgReceipt {agentMsgId, msgRcptStatus} -> do - withStore' $ \db -> updateSndMsgDeliveryStatus db connId agentMsgId $ MDSSndRcvd msgRcptStatus - updateGroupItemsStatus gInfo' m' conn agentMsgId (GSSRcvd msgRcptStatus) Nothing + acis <- withStore $ \db -> do + liftIO $ updateSndMsgDeliveryStatus db connId agentMsgId $ MDSSndRcvd msgRcptStatus + updateGroupItemsStatus db gInfo' m' conn agentMsgId (GSSRcvd msgRcptStatus) Nothing + unless (null acis) $ toView $ CEvtChatItemsStatusesUpdated user acis -- Searches chat items for many agent message IDs and updates their status updateDirectItemsStatusMsgs :: Contact -> Connection -> [AgentMsgId] -> CIStatus 'MDSnd -> CM () @@ -4046,22 +4054,20 @@ processAgentMessageConn cxt user@User {userId} corrId agentConnId agentMessage = | otherwise -> updateGroupSndStatus db itemId groupMemberId newStatus $> True _ -> pure False - updateGroupItemsStatus :: GroupInfo -> GroupMember -> Connection -> AgentMsgId -> GroupSndStatus -> Maybe Bool -> CM () - updateGroupItemsStatus gInfo@GroupInfo {groupId} GroupMember {groupMemberId} Connection {connId} msgId newMemStatus viaProxy_ = do - acis <- withStore $ \db -> do - items <- liftIO $ getGroupChatItemsByAgentMsgId db user groupId connId msgId - cis <- catMaybes <$> mapM (updateItem db) items - -- SENT and RCVD events are received for messages that may be batched in single scope, - -- so we can look up scope of first item - scopeInfo <- case cis of - (ci : _) -> getGroupChatScopeInfoForItem db cxt user gInfo (chatItemId' ci) - _ -> pure Nothing - pure $ map (gItem scopeInfo) cis - unless (null acis) $ toView $ CEvtChatItemsStatusesUpdated user acis + updateGroupItemsStatus :: DB.Connection -> GroupInfo -> GroupMember -> Connection -> AgentMsgId -> GroupSndStatus -> Maybe Bool -> ExceptT StoreError IO [AChatItem] + updateGroupItemsStatus db gInfo@GroupInfo {groupId} GroupMember {groupMemberId} Connection {connId} msgId newMemStatus viaProxy_ = do + items <- liftIO $ getGroupChatItemsByAgentMsgId db user groupId connId msgId + cis <- catMaybes <$> mapM updateItem items + -- SENT and RCVD events are received for messages that may be batched in single scope, + -- so we can look up scope of first item + scopeInfo <- case cis of + (ci : _) -> getGroupChatScopeInfoForItem db cxt user gInfo (chatItemId' ci) + _ -> pure Nothing + pure $ map (gItem scopeInfo) cis where gItem scopeInfo ci = AChatItem SCTGroup SMDSnd (GroupChat gInfo scopeInfo) ci - updateItem :: DB.Connection -> CChatItem 'CTGroup -> ExceptT StoreError IO (Maybe (ChatItem 'CTGroup 'MDSnd)) - updateItem db = \case + updateItem :: CChatItem 'CTGroup -> ExceptT StoreError IO (Maybe (ChatItem 'CTGroup 'MDSnd)) + updateItem = \case (CChatItem SMDSnd ChatItem {meta = CIMeta {itemStatus = CISSndRcvd _ SSPComplete}}) -> pure Nothing (CChatItem SMDSnd ChatItem {meta = CIMeta {itemId, itemStatus}}) -> do forM_ viaProxy_ $ \viaProxy -> liftIO $ setGroupSndViaProxy db itemId groupMemberId viaProxy From ca114a7a2ae2c33dc2863158baace88fee651a99 Mon Sep 17 00:00:00 2001 From: Evgeny Date: Sun, 13 Sep 2026 12:23:39 +0100 Subject: [PATCH 23/62] core: option to limit the max number of loaded chats (#7499) * core: option to limit the max number of loaded chats * update bot api --------- Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com> --- bots/api/COMMANDS.md | 8 ++++---- bots/src/API/Docs/Commands.hs | 2 +- .../types/typescript/src/commands.ts | 4 ++-- .../src/simplex_chat/types/_commands.py | 4 ++-- src/Simplex/Chat.hs | 5 +++-- src/Simplex/Chat/Controller.hs | 3 ++- src/Simplex/Chat/Library/Commands.hs | 9 ++++++--- src/Simplex/Chat/Mobile.hs | 1 + src/Simplex/Chat/Options.hs | 11 +++++++++++ tests/ChatClient.hs | 1 + tests/ChatTests/ChatList.hs | 19 +++++++++++++++++++ 11 files changed, 52 insertions(+), 15 deletions(-) diff --git a/bots/api/COMMANDS.md b/bots/api/COMMANDS.md index 42b3da2373..5f49b26653 100644 --- a/bots/api/COMMANDS.md +++ b/bots/api/COMMANDS.md @@ -1817,21 +1817,21 @@ Get chat previews. Supports time-based pagination — use this instead of APILis **Parameters**: - userId: int64 - pendingConnections: bool -- pagination: [PaginationByTime](./TYPES.md#paginationbytime) +- pagination: [PaginationByTime](./TYPES.md#paginationbytime)? - query: [ChatListQuery](./TYPES.md#chatlistquery) **Syntax**: ``` -/_get chats [ pcc=on] +/_get chats [ pcc=on][ ] ``` ```javascript -'/_get chats ' + userId + (pendingConnections ? ' pcc=on' : '') + ' ' + PaginationByTime.cmdString(pagination) + ' ' + JSON.stringify(query) // JavaScript +'/_get chats ' + userId + (pendingConnections ? ' pcc=on' : '') + (pagination ? ' ' + PaginationByTime.cmdString(pagination) : '') + ' ' + JSON.stringify(query) // JavaScript ``` ```python -'/_get chats ' + str(userId) + (' pcc=on' if pendingConnections else '') + ' ' + PaginationByTime_cmd_string(pagination) + ' ' + json.dumps(query) # Python +'/_get chats ' + str(userId) + (' pcc=on' if pendingConnections else '') + ((' ' + PaginationByTime_cmd_string(pagination)) if pagination is not None else '') + ' ' + json.dumps(query) # Python ``` **Responses**: diff --git a/bots/src/API/Docs/Commands.hs b/bots/src/API/Docs/Commands.hs index 782d0d21cd..93a44785ee 100644 --- a/bots/src/API/Docs/Commands.hs +++ b/bots/src/API/Docs/Commands.hs @@ -150,7 +150,7 @@ chatCommandsDocsData = "Commands to list and delete conversations.", [ ("APIListContacts", [], "Get contacts.", ["CRContactsList", "CRChatCmdError"], [], Nothing, "/_contacts " <> Param "userId"), ("APIListGroups", [], "Get groups.", ["CRGroupsList", "CRChatCmdError"], [], Nothing, "/_groups " <> Param "userId" <> Optional "" (" @" <> Param "$0") "contactId_" <> Optional "" (" " <> Param "$0") "search"), - ("APIGetChats", [], "Get chat previews. Supports time-based pagination — use this instead of APIListContacts / APIListGroups when scanning at scale (those load every record into memory and fail on large databases).", ["CRApiChats", "CRChatCmdError"], [], Nothing, "/_get chats " <> Param "userId" <> OnOffParam "pcc" "pendingConnections" (Just False) <> " " <> Param "pagination" <> " " <> Json "query"), + ("APIGetChats", [], "Get chat previews. Supports time-based pagination — use this instead of APIListContacts / APIListGroups when scanning at scale (those load every record into memory and fail on large databases).", ["CRApiChats", "CRChatCmdError"], [], Nothing, "/_get chats " <> Param "userId" <> OnOffParam "pcc" "pendingConnections" (Just False) <> Optional "" (" " <> Param "$0") "pagination" <> " " <> Json "query"), ("APIDeleteChat", [], "Delete chat.", ["CRContactDeleted", "CRContactConnectionDeleted", "CRGroupDeletedUser", "CRChatCmdError"], [], Just UNBackground, "/_delete " <> Param "chatRef" <> " " <> Param "chatDeleteMode"), ("APISetGroupCustomData", [], "Set group custom data.", ["CRCmdOk", "CRChatCmdError"], [], Nothing, "/_set custom #" <> Param "groupId" <> Optional "" (" " <> Json "$0") "customData"), ("APISetContactCustomData", [], "Set contact custom data.", ["CRCmdOk", "CRChatCmdError"], [], Nothing, "/_set custom @" <> Param "contactId" <> Optional "" (" " <> Json "$0") "customData"), diff --git a/packages/simplex-chat-client/types/typescript/src/commands.ts b/packages/simplex-chat-client/types/typescript/src/commands.ts index dcc9ec767d..fbde8ce9ac 100644 --- a/packages/simplex-chat-client/types/typescript/src/commands.ts +++ b/packages/simplex-chat-client/types/typescript/src/commands.ts @@ -664,7 +664,7 @@ export namespace APIListGroups { export interface APIGetChats { userId: number // int64 pendingConnections: boolean - pagination: T.PaginationByTime + pagination?: T.PaginationByTime query: T.ChatListQuery } @@ -672,7 +672,7 @@ export namespace APIGetChats { export type Response = CR.ApiChats | CR.ChatCmdError export function cmdString(self: APIGetChats): string { - return '/_get chats ' + self.userId + (self.pendingConnections ? ' pcc=on' : '') + ' ' + T.PaginationByTime.cmdString(self.pagination) + ' ' + JSON.stringify(self.query) + return '/_get chats ' + self.userId + (self.pendingConnections ? ' pcc=on' : '') + (self.pagination ? ' ' + T.PaginationByTime.cmdString(self.pagination) : '') + ' ' + JSON.stringify(self.query) } } diff --git a/packages/simplex-chat-python/src/simplex_chat/types/_commands.py b/packages/simplex-chat-python/src/simplex_chat/types/_commands.py index 53544324fc..fd4f561c3d 100644 --- a/packages/simplex-chat-python/src/simplex_chat/types/_commands.py +++ b/packages/simplex-chat-python/src/simplex_chat/types/_commands.py @@ -584,12 +584,12 @@ APIListGroups_Response = CR.GroupsList | CR.ChatCmdError class APIGetChats(TypedDict): userId: int # int64 pendingConnections: bool - pagination: "T.PaginationByTime" + pagination: NotRequired["T.PaginationByTime"] query: "T.ChatListQuery" def APIGetChats_cmd_string(self: APIGetChats) -> str: - return '/_get chats ' + str(self['userId']) + (' pcc=on' if self['pendingConnections'] else '') + ' ' + T.PaginationByTime_cmd_string(self['pagination']) + ' ' + json.dumps(self['query']) + return '/_get chats ' + str(self['userId']) + (' pcc=on' if self['pendingConnections'] else '') + ((' ' + T.PaginationByTime_cmd_string(self.get('pagination'))) if self.get('pagination') is not None else '') + ' ' + json.dumps(self['query']) APIGetChats_Response = CR.ApiChats | CR.ChatCmdError diff --git a/src/Simplex/Chat.hs b/src/Simplex/Chat.hs index 85df305f36..39342d59f2 100644 --- a/src/Simplex/Chat.hs +++ b/src/Simplex/Chat.hs @@ -102,6 +102,7 @@ defaultChatConfig = shortLinkPresetServers = allPresetServers, presetDomains = [".simplex.im", ".simplexonflux.com"], tbqSize = 1024, + maxChats = 5000, fileChunkSize = 15780, -- do not change xftpDescrPartSize = 14000, inlineFiles = defaultInlineFilesConfig, @@ -147,11 +148,11 @@ newChatController ChatDatabase {chatStore, agentStore} user cfg@ChatConfig {agentConfig = aCfg, presetServers, inlineFiles, deviceNameForRemote, confirmMigrations} - ChatOpts {coreOptions = CoreChatOpts {smpServers, xftpServers, simpleNetCfg, logLevel, logConnections, logServerHosts, logFile, tbqSize, deviceName, webPreviewConfig, highlyAvailable, yesToUpMigrations}, optFilesFolder, optTempDirectory, showReactions, showFullLinks, allowInstantFiles, autoAcceptFileSize} + ChatOpts {coreOptions = CoreChatOpts {smpServers, xftpServers, simpleNetCfg, logLevel, logConnections, logServerHosts, logFile, tbqSize, maxChats, deviceName, webPreviewConfig, highlyAvailable, yesToUpMigrations}, optFilesFolder, optTempDirectory, showReactions, showFullLinks, allowInstantFiles, autoAcceptFileSize} backgroundMode = do let inlineFiles' = if allowInstantFiles || autoAcceptFileSize > 0 then inlineFiles else inlineFiles {sendChunks = 0, receiveInstant = False} confirmMigrations' = if confirmMigrations == MCConsole && yesToUpMigrations then MCYesUp else confirmMigrations - config = cfg {logLevel, showReactions, showFullLinks, tbqSize, subscriptionEvents = logConnections, hostEvents = logServerHosts, presetServers = presetServers', inlineFiles = inlineFiles', autoAcceptFileSize, webPreviewConfig, highlyAvailable, confirmMigrations = confirmMigrations'} + config = cfg {logLevel, showReactions, showFullLinks, tbqSize, maxChats, subscriptionEvents = logConnections, hostEvents = logServerHosts, presetServers = presetServers', inlineFiles = inlineFiles', autoAcceptFileSize, webPreviewConfig, highlyAvailable, confirmMigrations = confirmMigrations'} randomPresetServers <- chooseRandomServers presetServers' let rndSrvs = L.toList randomPresetServers operatorWithId (i, op) = (\o -> o {operatorId = DBEntityId i}) <$> pOperator op diff --git a/src/Simplex/Chat/Controller.hs b/src/Simplex/Chat/Controller.hs index dc4f86472c..4be017bf9e 100644 --- a/src/Simplex/Chat/Controller.hs +++ b/src/Simplex/Chat/Controller.hs @@ -148,6 +148,7 @@ data ChatConfig = ChatConfig shortLinkPresetServers :: NonEmpty SMPServer, presetDomains :: [HostName], tbqSize :: Natural, + maxChats :: Int, fileChunkSize :: Integer, xftpDescrPartSize :: Int, inlineFiles :: InlineFilesConfig, @@ -381,7 +382,7 @@ data ChatCommand | APISaveAppSettings AppSettings | APIGetAppSettings (Maybe AppSettings) | APIGetChatTags UserId - | APIGetChats {userId :: UserId, pendingConnections :: Bool, pagination :: PaginationByTime, query :: ChatListQuery} + | APIGetChats {userId :: UserId, pendingConnections :: Bool, pagination :: Maybe PaginationByTime, query :: ChatListQuery} | APIGetChat {chatRef :: ChatRef, contentTag :: Maybe MsgContentTag, chatPagination :: ChatPagination, search :: Maybe Text} | APIGetChatContentTypes ChatRef | APIGetChatItems {chatPagination :: ChatPagination, search :: Maybe Text} diff --git a/src/Simplex/Chat/Library/Commands.hs b/src/Simplex/Chat/Library/Commands.hs index 2d65a1677a..01fc4b55ff 100644 --- a/src/Simplex/Chat/Library/Commands.hs +++ b/src/Simplex/Chat/Library/Commands.hs @@ -652,7 +652,9 @@ processChatCommand cxt nm = \case tags <- withFastStore' (`getUserChatTags` user) pure $ CRChatTags user tags APIGetChats {userId, pendingConnections, pagination, query} -> withUserId' userId $ \user -> do - (errs, previews) <- partitionEithers <$> withFastStore' (\db -> getChatPreviews db cxt user pendingConnections pagination query) + ChatConfig {maxChats} <- asks config + let pagination' = fromMaybe (PTLast maxChats) pagination + (errs, previews) <- partitionEithers <$> withFastStore' (\db -> getChatPreviews db cxt user pendingConnections pagination' query) unless (null errs) $ toView $ CEvtChatErrors (map ChatErrorStore errs) pure $ CRApiChats user previews APIGetChat (ChatRef cType cId scope_) contentFilter pagination search -> withUser $ \user -> case cType of @@ -3431,7 +3433,8 @@ processChatCommand cxt nm = \case folderId <- withFastStore (`getUserNoteFolderId` user) processChatCommand cxt nm $ APIClearChat (ChatRef CTLocal folderId Nothing) LastChats count_ -> withUser' $ \user -> do - let count = fromMaybe 5000 count_ + ChatConfig {maxChats} <- asks config + let count = fromMaybe maxChats count_ (errs, previews) <- partitionEithers <$> withFastStore' (\db -> getChatPreviews db cxt user False (PTLast count) clqNoFilters) unless (null errs) $ toView $ CEvtChatErrors (map ChatErrorStore errs) pure $ CRChats previews @@ -5517,7 +5520,7 @@ chatCommandP = *> ( APIGetChats <$> A.decimal <*> (" pcc=on" $> True <|> " pcc=off" $> False <|> pure False) - <*> (A.space *> paginationByTimeP <|> pure (PTLast 5000)) + <*> optional (A.space *> paginationByTimeP) <*> (A.space *> jsonP <|> pure clqNoFilters) ), "/_get chat " *> (APIGetChat <$> chatRefP <*> optional (" content=" *> strP) <* A.space <*> chatPaginationP <*> optional (" search=" *> textP)), diff --git a/src/Simplex/Chat/Mobile.hs b/src/Simplex/Chat/Mobile.hs index 09af069ef7..51e0409723 100644 --- a/src/Simplex/Chat/Mobile.hs +++ b/src/Simplex/Chat/Mobile.hs @@ -259,6 +259,7 @@ mobileChatOpts dbOptions = logAgent = Nothing, logFile = Nothing, tbqSize = 4096, + maxChats = 5000, deviceName = Nothing, chatRelay = False, webPreviewConfig = Nothing, diff --git a/src/Simplex/Chat/Options.hs b/src/Simplex/Chat/Options.hs index 4e47868fa0..d8bbb31606 100644 --- a/src/Simplex/Chat/Options.hs +++ b/src/Simplex/Chat/Options.hs @@ -67,6 +67,7 @@ data CoreChatOpts = CoreChatOpts logAgent :: Maybe LogLevel, logFile :: Maybe FilePath, tbqSize :: Natural, + maxChats :: Int, deviceName :: Maybe Text, chatRelay :: Bool, webPreviewConfig :: Maybe WebPreviewConfig, @@ -234,6 +235,15 @@ coreChatOptsP appDir defaultDbName = do <> value 1024 <> showDefault ) + maxChats <- + option + auto + ( long "max-chats" + <> metavar "COUNT" + <> help "Max number of chats loaded by chat list API" + <> value 5000 + <> showDefault + ) deviceName <- optional $ strOption @@ -340,6 +350,7 @@ coreChatOptsP appDir defaultDbName = do logAgent = if logAgent || logLevel == CLLDebug then Just $ agentLogLevel logLevel else Nothing, logFile, tbqSize, + maxChats, deviceName, chatRelay, webPreviewConfig, diff --git a/tests/ChatClient.hs b/tests/ChatClient.hs index 4f322c82d9..0a7914d366 100644 --- a/tests/ChatClient.hs +++ b/tests/ChatClient.hs @@ -157,6 +157,7 @@ testCoreOpts = logAgent = Nothing, logFile = Nothing, tbqSize = 16, + maxChats = 5000, deviceName = Nothing, chatRelay = False, webPreviewConfig = Nothing, diff --git a/tests/ChatTests/ChatList.hs b/tests/ChatTests/ChatList.hs index 889915a6e8..07b338c99f 100644 --- a/tests/ChatTests/ChatList.hs +++ b/tests/ChatTests/ChatList.hs @@ -5,11 +5,13 @@ import ChatTests.DBUtils import ChatTests.Utils import Data.Time.Clock (getCurrentTime) import Data.Time.Format.ISO8601 (iso8601Show) +import Simplex.Chat.Options (ChatOpts (..), CoreChatOpts (..)) import Test.Hspec hiding (it) chatListTests :: SpecWith TestParams chatListTests = do it "get last chats" testPaginationLast + it "get last chats with max chats option" testMaxChats it "get chats before/after timestamp" testPaginationTs it "filter by search query" testFilterSearch it "filter favorite" testFilterFavorite @@ -33,6 +35,23 @@ testPaginationLast = alice <# "bob> hey" alice <# "@cath hey" +testMaxChats :: HasCallStack => TestParams -> IO () +testMaxChats = + testChatOpts3 testOpts {coreOptions = testCoreOpts {maxChats = 1}} aliceProfile bobProfile cathProfile $ + \alice bob cath -> do + connectUsers alice bob + alice <##> bob + connectUsers alice cath + cath <##> alice + + alice ##> "/chats all" + alice <# "@cath hey" + alice ##> "/chats 2" + alice <# "bob> hey" + alice <# "@cath hey" + alice #$> ("/_get chats 1 pcc=on", chats, [("@cath", "hey")]) + getChats_ alice "count=2" [("@cath", "hey"), ("@bob", "hey")] + testPaginationTs :: HasCallStack => TestParams -> IO () testPaginationTs = testChat3 aliceProfile bobProfile cathProfile $ From ae19a812018f12da1d9e20579489a6fe291a575e Mon Sep 17 00:00:00 2001 From: Evgeny Date: Sun, 13 Sep 2026 15:17:27 +0100 Subject: [PATCH 24/62] directory: option to set observer role by default (#7501) * directory: set role * role * option * shorter help --------- Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com> --- .../src/Directory/Options.hs | 7 +++++ .../src/Directory/Service.hs | 8 ++--- tests/Bots/DirectoryTests.hs | 30 +++++++++++++++++++ 3 files changed, 41 insertions(+), 4 deletions(-) diff --git a/apps/simplex-directory-service/src/Directory/Options.hs b/apps/simplex-directory-service/src/Directory/Options.hs index 89709e66d9..03f4d7bb0c 100644 --- a/apps/simplex-directory-service/src/Directory/Options.hs +++ b/apps/simplex-directory-service/src/Directory/Options.hs @@ -41,6 +41,7 @@ data DirectoryOpts = DirectoryOpts linkCheckInterval :: Int, prohibitedToObserver :: Bool, alwaysCaptcha :: Bool, + alwaysObserver :: Bool, knocking :: Bool, testing :: Bool } @@ -170,6 +171,11 @@ directoryOpts appDir defaultDbName = do ( long "always-captcha" <> help "Require a captcha from joining members in all groups, regardless of per-group filter settings" ) + alwaysObserver <- + switch + ( long "always-observer" + <> help "Make joining members observers in all groups, regardless of per-group setting in directory" + ) knocking <- switch ( long "knocking" @@ -197,6 +203,7 @@ directoryOpts appDir defaultDbName = do linkCheckInterval, prohibitedToObserver, alwaysCaptcha, + alwaysObserver, knocking, testing = False } diff --git a/apps/simplex-directory-service/src/Directory/Service.hs b/apps/simplex-directory-service/src/Directory/Service.hs index 61ed7e66af..b2a42c1eb2 100644 --- a/apps/simplex-directory-service/src/Directory/Service.hs +++ b/apps/simplex-directory-service/src/Directory/Service.hs @@ -268,7 +268,7 @@ directoryService opts cfg = do acceptMemberHook :: DirectoryOpts -> ServiceState -> GroupInfo -> GroupLinkInfo -> Profile -> IO (Either GroupRejectionReason (GroupAcceptance, GroupMemberRole)) acceptMemberHook - DirectoryOpts {profileNameLimit, alwaysCaptcha, knocking} + DirectoryOpts {profileNameLimit, alwaysCaptcha, alwaysObserver, knocking} ServiceState {blockedWordsCfg} g GroupLinkInfo {memberRole} @@ -279,7 +279,7 @@ acceptMemberHook if | knocking -> (GAPendingReview, memberRole) | alwaysCaptcha || useMemberFilter img (passCaptcha a) -> (GAPendingApproval, GRMember) - | useMemberFilter img (makeObserver a) -> (GAAccepted, GRObserver) + | alwaysObserver || useMemberFilter img (makeObserver a) -> (GAAccepted, GRObserver) | otherwise -> (GAAccepted, memberRole) where checkName :: ExceptT GroupRejectionReason IO () @@ -314,7 +314,7 @@ readBlockedWordsConfig DirectoryOpts {blockedFragmentsFile, blockedWordsFile, na pure BlockedWordsConfig {blockedFragments, blockedWords, extensionRules, spelling} directoryServiceEvent :: DirectoryOpts -> ServiceState -> User -> ChatController -> DirectoryEvent -> IO () -directoryServiceEvent opts@DirectoryOpts {adminUsers, superUsers, serviceName, ownersGroup, searchResults, prohibitedToObserver, alwaysCaptcha} env@ServiceState {searchRequests} user@User {userId} cc = \case +directoryServiceEvent opts@DirectoryOpts {adminUsers, superUsers, serviceName, ownersGroup, searchResults, prohibitedToObserver, alwaysCaptcha, alwaysObserver} env@ServiceState {searchRequests} user@User {userId} cc = \case DEContactConnected ct -> deContactConnected ct DEGroupInvitation {contact = ct, groupInfo = g, fromMemberRole, memberRole} -> deGroupInvitation ct g fromMemberRole memberRole DEServiceJoinedGroup ctId g owner -> deServiceJoinedGroup ctId g owner @@ -678,7 +678,7 @@ directoryServiceEvent opts@DirectoryOpts {adminUsers, superUsers, serviceName, o approvePendingMember :: DirectoryMemberAcceptance -> GroupInfo -> GroupMember -> IO () approvePendingMember a g@GroupInfo {groupId} m@GroupMember {memberProfile = LocalProfile {displayName, image}} = do gli_ <- join . eitherToMaybe <$> withDB' "getGroupLinkInfo" cc (\db -> getGroupLinkInfo db userId groupId) - let role = if useMemberFilter image (makeObserver a) then GRObserver else maybe GRMember (\GroupLinkInfo {memberRole} -> memberRole) gli_ + let role = if alwaysObserver || useMemberFilter image (makeObserver a) then GRObserver else maybe GRMember (\GroupLinkInfo {memberRole} -> memberRole) gli_ gmId = groupMemberId' m sendChatCmd cc (APIAcceptMember groupId gmId role) >>= \case Right CRMemberAccepted {member} -> do diff --git a/tests/Bots/DirectoryTests.hs b/tests/Bots/DirectoryTests.hs index af92195f79..28b4e0d1bf 100644 --- a/tests/Bots/DirectoryTests.hs +++ b/tests/Bots/DirectoryTests.hs @@ -78,6 +78,7 @@ directoryServiceTests = do describe "member admission" $ do it "should require captcha by default for new groups" testCaptchaByDefault it "should require captcha in all groups with --always-captcha" testAlwaysCaptcha + it "should make joining members observers in all groups with --always-observer" testAlwaysObserver it "should require admin review in all groups with --knocking" testKnocking it "should ask member to pass captcha screen" testCapthaScreening it "should send voice captcha on /audio command" testVoiceCaptchaScreening @@ -144,6 +145,7 @@ mkDirectoryOpts TestParams {tmpPath = ps} superUsers ownersGroup webFolder = linkCheckInterval = 0, prohibitedToObserver = False, alwaysCaptcha = False, + alwaysObserver = False, knocking = False, testing = True } @@ -1258,6 +1260,34 @@ testAlwaysCaptcha ps = bob <## "#privacy: 'SimpleX Directory' added cath (Catherine) to the group (connecting...)" bob <## "#privacy: new member cath is connected" +testAlwaysObserver :: HasCallStack => TestParams -> IO () +testAlwaysObserver ps = + withDirectoryServiceOpts ps (\o -> o {alwaysObserver = True}) $ \superUser dsLink -> + withNewTestChat ps "bob" bobProfile $ \bob -> + withNewTestChat ps "cath" cathProfile $ \cath -> do + bob `connectVia` dsLink + submitGroup bob "privacy" "Privacy" + groupAccepted bob "privacy" 1 + welcomeWithLink <- completeRegistration superUser bob "privacy" "Privacy" 1 + let groupLink = dropStrPrefix "Link to join the group privacy: " welcomeWithLink + cath ##> ("/c " <> groupLink) + cath <## "connection request sent!" + cath <## "#privacy: joining the group..." + cath <## "#privacy: you joined the group, pending approval" + cath <# "#privacy (support) 'SimpleX Directory'> Captcha is generated by SimpleX Directory service." + cath <## "" + cath <## "Send captcha text to join the group privacy." + captcha <- dropStrPrefix "#privacy (support) 'SimpleX Directory'> " . dropTime <$> getTermLine cath + cath #> ("#privacy (support) " <> captcha) + cath <# ("#privacy (support) 'SimpleX Directory'!> > cath " <> captcha) + cath <## " Correct, you joined the group privacy" + cath <## "#privacy: you joined the group" + cath <## "#privacy: member bob (Bob) is connected" + bob <## "#privacy: 'SimpleX Directory' added cath (Catherine) to the group (connecting...)" + bob <## "#privacy: new member cath is connected" + cath ##> "#privacy hello" + cath <## "#privacy: you don't have permission to send messages" + testKnocking :: HasCallStack => TestParams -> IO () testKnocking ps = withDirectoryServiceOpts ps (\o -> o {knocking = True}) $ \superUser dsLink -> From 237409890e709cde3fb8651d104eefd536191373 Mon Sep 17 00:00:00 2001 From: Evgeny Date: Sun, 13 Sep 2026 17:19:15 +0100 Subject: [PATCH 25/62] core: stop all workers on chat controller stop (#7502) Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com> --- src/Simplex/Chat/Controller.hs | 6 +-- src/Simplex/Chat/Library/Commands.hs | 23 ++++++++--- src/Simplex/Chat/Web.hs | 10 ++--- tests/ChatTests/Direct.hs | 61 +++++++++++++++++++++++++--- 4 files changed, 82 insertions(+), 18 deletions(-) diff --git a/src/Simplex/Chat/Controller.hs b/src/Simplex/Chat/Controller.hs index 4be017bf9e..e69bb7e6ac 100644 --- a/src/Simplex/Chat/Controller.hs +++ b/src/Simplex/Chat/Controller.hs @@ -95,7 +95,7 @@ import Simplex.Messaging.Protocol (AProtoServerWithAuth, AProtocolType (..), Msg import Simplex.Messaging.TMap (TMap) import Simplex.Messaging.Transport (TLS, TransportPeer (..), simplexMQVersion) import Simplex.Messaging.Transport.Client (SocksProxyWithAuth, TransportHost) -import Simplex.Messaging.Util (AnyError (..), catchAllErrors, (<$$>)) +import Simplex.Messaging.Util (AnyError (..), catchAllErrors, catchOwn', (<$$>)) import Simplex.RemoteControl.Client import Simplex.RemoteControl.Invitation (RCSignedInvitation, RCVerifiedInvitation) import Simplex.RemoteControl.Types @@ -1755,12 +1755,12 @@ withFastStore = withStorePriority True withStorePriority :: Bool -> (DB.Connection -> ExceptT StoreError IO a) -> CM a withStorePriority priority action = do ChatController {chatStore} <- ask - liftIOEither $ withTransactionPriority chatStore priority (runExceptT . withExceptT ChatErrorStore . action) `E.catch` handleDBErrors + liftIOEither $ withTransactionPriority chatStore priority (runExceptT . withExceptT ChatErrorStore . action) `catchOwn'` handleDBErrors withStoreBatch :: Traversable t => (DB.Connection -> t (IO (Either ChatError a))) -> CM' (t (Either ChatError a)) withStoreBatch actions = do ChatController {chatStore} <- ask - liftIO $ withTransaction chatStore $ mapM (`E.catch` handleDBErrors) . actions + liftIO $ withTransaction chatStore $ mapM (`catchOwn'` handleDBErrors) . actions handleDBErrors :: E.SomeException -> IO (Either ChatError a) handleDBErrors e = pure $ Left $ ChatErrorStore $ case E.fromException e of diff --git a/src/Simplex/Chat/Library/Commands.hs b/src/Simplex/Chat/Library/Commands.hs index 01fc4b55ff..4e4cb92afc 100644 --- a/src/Simplex/Chat/Library/Commands.hs +++ b/src/Simplex/Chat/Library/Commands.hs @@ -123,23 +123,24 @@ import Simplex.RemoteControl.Types (RCCtrlAddress (..)) import System.Exit (ExitCode, exitSuccess) import System.FilePath (takeExtension, takeFileName, ()) import System.IO (Handle, IOMode (..)) +import System.Mem.Weak (deRefWeak) import System.Random (randomRIO) import System.Timeout (timeout) import UnliftIO.Async -import UnliftIO.Concurrent (forkIO, threadDelay) +import UnliftIO.Concurrent (forkIO, killThread, threadDelay) import UnliftIO.Directory import qualified UnliftIO.Exception as E import UnliftIO.IO (hClose) import UnliftIO.STM #if defined(dbPostgres) import Data.Bifunctor (bimap, first, second) -import Simplex.Messaging.Agent.Client (SubInfo (..), getAgentQueuesInfo, getAgentWorkersDetails, getAgentWorkersSummary, temporaryOrHostError) +import Simplex.Messaging.Agent.Client (SubInfo (..), cancelWorker, getAgentQueuesInfo, getAgentWorkersDetails, getAgentWorkersSummary, temporaryOrHostError) #else import Data.Bifunctor (bimap, first, second) import qualified Data.ByteArray as BA import qualified Database.SQLite.Simple as SQL import Simplex.Chat.Archive -import Simplex.Messaging.Agent.Client (SubInfo (..), agentClientStore, getAgentQueuesInfo, getAgentWorkersDetails, getAgentWorkersSummary, temporaryOrHostError) +import Simplex.Messaging.Agent.Client (SubInfo (..), agentClientStore, cancelWorker, getAgentQueuesInfo, getAgentWorkersDetails, getAgentWorkersSummary, temporaryOrHostError) import Simplex.Messaging.Agent.Store.Common (withConnection) import Simplex.Messaging.Agent.Store.SQLite.DB (SlowQueryStats (..)) #endif @@ -346,11 +347,19 @@ restoreCalls = do atomically $ writeTVar calls callsMap stopChatController :: ChatController -> IO () -stopChatController ChatController {smpAgent, agentAsync = s, sndFiles, rcvFiles, expireCIFlags, remoteHostSessions, remoteCtrlSession} = do +stopChatController ChatController {smpAgent, agentAsync = s, sndFiles, rcvFiles, expireCIFlags, remoteHostSessions, remoteCtrlSession, cleanupManagerAsync, relayGroupLinkChecksAsync, webPreviewState, expireCIThreads, timedItemThreads, deliveryTaskWorkers, deliveryJobWorkers, relayRequestWorkers} = do readTVarIO remoteHostSessions >>= mapM_ (cancelRemoteHost False . snd) atomically (stateTVar remoteCtrlSession (,Nothing)) >>= mapM_ (cancelRemoteCtrl False . snd) disconnectAgentClient smpAgent - readTVarIO s >>= mapM_ (\(a1, a2) -> forkIO $ uninterruptibleCancel a1 >> mapM_ uninterruptibleCancel a2) + readTVarIO s >>= mapM_ (\(a1, a2) -> uninterruptibleCancel a1 >> mapM_ uninterruptibleCancel a2) + cancelAsync cleanupManagerAsync + cancelAsync relayGroupLinkChecksAsync + forM_ webPreviewState $ \WebPreviewState {webPreviewWorkerAsync} -> cancelAsync webPreviewWorkerAsync + clearMap expireCIThreads >>= mapM_ (mapM_ uninterruptibleCancel) + clearMap timedItemThreads >>= mapM_ (readTVarIO >=> mapM_ (deRefWeak >=> mapM_ killThread)) + clearMap deliveryTaskWorkers >>= mapM_ cancelWorker + clearMap deliveryJobWorkers >>= mapM_ cancelWorker + clearMap relayRequestWorkers >>= mapM_ cancelWorker closeFiles sndFiles closeFiles rcvFiles atomically $ do @@ -358,6 +367,10 @@ stopChatController ChatController {smpAgent, agentAsync = s, sndFiles, rcvFiles, forM_ keys $ \k -> TM.insert k False expireCIFlags writeTVar s Nothing where + cancelAsync :: TVar (Maybe (Async ())) -> IO () + cancelAsync a = atomically (swapTVar a Nothing) >>= mapM_ uninterruptibleCancel + clearMap :: TM.TMap k a -> IO (Map k a) + clearMap m = atomically $ swapTVar m M.empty closeFiles :: TVar (Map Int64 Handle) -> IO () closeFiles files = do fs <- readTVarIO files diff --git a/src/Simplex/Chat/Web.hs b/src/Simplex/Chat/Web.hs index fc3e4b2a26..9720116d91 100644 --- a/src/Simplex/Chat/Web.hs +++ b/src/Simplex/Chat/Web.hs @@ -24,7 +24,7 @@ module Simplex.Chat.Web where import Control.Concurrent.STM (check, flushTQueue) -import Control.Exception (SomeException, catch) +import Control.Exception (SomeException) import Control.Logger.Simple import Control.Monad import Control.Monad.Except (runExceptT) @@ -75,7 +75,7 @@ import Simplex.Chat.Types ) import Simplex.Messaging.Agent.Store.Common (withTransaction) import Simplex.Messaging.Encoding.String (strEncode) -import Simplex.Messaging.Util (catchOwn, eitherToMaybe, safeDecodeUtf8, tshow) +import Simplex.Messaging.Util (catchOwn, catchOwn', eitherToMaybe, safeDecodeUtf8, tshow) import Simplex.Messaging.Parsers (defaultJSON) import System.Directory (createDirectoryIfMissing, listDirectory, removeFile, renameFile) import System.FilePath (dropExtension, takeExtension, ()) @@ -150,7 +150,7 @@ webPreviewWorker cfg@WebPreviewConfig {webJsonDir, webCorsFile, webUpdateInterva drainRemovals = atomically (tryReadTQueue filesToRemove) >>= \case Nothing -> pure () Just f -> do - removeFile (webJsonDir f) `catch` \(_ :: SomeException) -> pure () + removeFile (webJsonDir f) `catchOwn'` \(_ :: SomeException) -> pure () drainRemovals -- flush the whole queue and render each group once: a burst of changes in one @@ -202,7 +202,7 @@ webPreviewWorker cfg@WebPreviewConfig {webJsonDir, webCorsFile, webUpdateInterva renderOneGroup WebPreviewState {publishableGroupIds} gId = do publishable <- atomically $ M.member gId <$> readTVar publishableGroupIds when publishable $ - renderOrRemoveStale `catch` \(e :: SomeException) -> + renderOrRemoveStale `catchOwn'` \(e :: SomeException) -> logError $ "web preview: error rendering group " <> T.pack (show gId) <> ": " <> T.pack (show e) where renderOrRemoveStale = do @@ -217,7 +217,7 @@ webPreviewWorker cfg@WebPreviewConfig {webJsonDir, webCorsFile, webUpdateInterva modifyTVar' publishableGroupIds (M.delete gId) pure $ pgFileName <$> pg forM_ fName $ \f -> - removeFile (webJsonDir f) `catch` \(_ :: SomeException) -> pure () + removeFile (webJsonDir f) `catchOwn'` \(_ :: SomeException) -> pure () logInfo $ "web preview: group " <> T.pack (show gId) <> " no longer publishable" findUser f = go users diff --git a/tests/ChatTests/Direct.hs b/tests/ChatTests/Direct.hs index 732bc465b4..9319f6e711 100644 --- a/tests/ChatTests/Direct.hs +++ b/tests/ChatTests/Direct.hs @@ -15,18 +15,21 @@ import ChatClient import ChatTests.DBUtils import ChatTests.Utils import Control.Concurrent (threadDelay) -import Control.Concurrent.Async (concurrently_) -import Control.Monad (forM_, void) +import Control.Concurrent.Async (concurrently_, poll) +import Control.Monad (forM_, void, (>=>)) import Data.Aeson (ToJSON) import qualified Data.Aeson as J import qualified Data.ByteString.Char8 as B import qualified Data.ByteString.Lazy.Char8 as LB import Data.List (intercalate, stripPrefix) +import qualified Data.Map.Strict as M +import Data.Maybe (isJust, isNothing) import qualified Data.Text as T +import GHC.Conc (ThreadStatus (..), threadStatus) import Simplex.Chat.AppSettings (defaultAppSettings) import qualified Simplex.Chat.AppSettings as AS import Simplex.Chat.Call -import Simplex.Chat.Controller (ChatConfig (..), PresetServers (..)) +import Simplex.Chat.Controller (ChatConfig (..), ChatController (..), PresetServers (..)) import Simplex.Chat.Messages (ChatItemId) import Simplex.Chat.Options import Simplex.Chat.Protocol (supportedChatVRange) @@ -35,7 +38,7 @@ import Simplex.Messaging.Agent.Env.SQLite import Simplex.Messaging.Agent.RetryInterval import qualified Simplex.Messaging.Agent.Store.DB as DB import Simplex.Messaging.Client (NetworkTimeout (..)) -import Control.Concurrent.STM (atomically) +import Control.Concurrent.STM (atomically, readTVarIO) import qualified Simplex.Messaging.Crypto as C import Simplex.Messaging.Encoding.String (strEncode) import Simplex.Messaging.Server.Env.STM hiding (subscriptions) @@ -43,6 +46,7 @@ import Simplex.Messaging.Transport import Simplex.Messaging.Util (safeDecodeUtf8) import Simplex.Messaging.Version import System.Directory (copyFile, doesDirectoryExist, doesFileExist) +import System.Mem.Weak (deRefWeak) import Test.Hspec hiding (it) #if defined(dbPostgres) import Database.PostgreSQL.Simple (Only (..)) @@ -101,8 +105,9 @@ chatDirectTests = do it "connect, fully asynchronous (when clients are never simultaneously online)" $ testFullAsyncFast describe "webrtc calls api" $ do it "negotiate call" testNegotiateCall -#if !defined(dbPostgres) describe "maintenance mode" $ do + it "stop chat stops all threads, start chat restarts them" testStopStartChat +#if !defined(dbPostgres) it "start/stop/export/import chat" testMaintenanceMode it "export/import chat with files" testMaintenanceModeWithFiles it "encrypt/decrypt database" testDatabaseEncryption @@ -1358,6 +1363,52 @@ testNegotiateCall = alice <## "call with bob ended" alice #$> ("/_get chat @2 count=100", chat, chatFeatures <> [(1, "outgoing call: ended (00:00)")]) +testStopStartChat :: HasCallStack => TestParams -> IO () +testStopStartChat ps = + withNewTestChat ps "bob" bobProfile $ \bob -> + withNewTestChatCfg ps cfg "alice" aliceProfile $ \alice -> do + connectUsers alice bob + alice #> "@bob hi" + bob <# "alice> hi" + alice #$> ("/_ttl 1 4", id, "ok") + alice ##> "/_set prefs @2 {\"timedMessages\": {\"allow\": \"yes\", \"ttl\": 2}}" + alice <## "you updated preferences for bob:" + alice <## "Disappearing messages: enabled (you allow: yes (2 sec), contact allows: yes)" + bob <## "alice updated preferences for you:" + bob <## "Disappearing messages: enabled (you allow: yes (2 sec), contact allows: yes (2 sec))" + alice #> "@bob hi timed" + bob <# "alice> hi timed" + let ChatController {agentAsync, cleanupManagerAsync, expireCIThreads, timedItemThreads} = chatController alice + Just (a1, Just a2) <- readTVarIO agentAsync + Just cleanupA <- readTVarIO cleanupManagerAsync + [Just expireA] <- M.elems <$> readTVarIO expireCIThreads + [Just timedTId] <- mapM (readTVarIO >=> maybe (pure Nothing) deRefWeak) . M.elems =<< readTVarIO timedItemThreads + alice ##> "/_stop" + alice <## "chat stopped" + forM_ [a1, a2, cleanupA, expireA] $ \a -> isJust <$> poll a `shouldReturn` True + threadDelay 100000 + threadStatus timedTId `shouldReturn` ThreadFinished + isNothing <$> readTVarIO agentAsync `shouldReturn` True + isNothing <$> readTVarIO cleanupManagerAsync `shouldReturn` True + M.null <$> readTVarIO expireCIThreads `shouldReturn` True + M.null <$> readTVarIO timedItemThreads `shouldReturn` True + alice ##> "/_start" + alice <## "chat started" + alice <## "subscribed 1 connections on server localhost" + bob #> "@alice hello" + alice <# "bob> hello" + alice <### ["timed message deleted: hi timed", "timed message deleted: hello"] + bob <### ["timed message deleted: hi timed", "timed message deleted: hello"] + threadDelay 3000000 + alice #$> ("/_get chat @2 count=100", chat, [(1, "chat banner")]) + Just (a1', _) <- readTVarIO agentAsync + (a1' == a1) `shouldBe` False + Just cleanupA' <- readTVarIO cleanupManagerAsync + (cleanupA' == cleanupA) `shouldBe` False + M.keys <$> readTVarIO expireCIThreads `shouldReturn` [1] + where + cfg = testCfg {initialCleanupManagerDelay = 0, cleanupManagerStepDelay = 0, ciExpirationInterval = 500000} + testMaintenanceMode :: HasCallStack => TestParams -> IO () testMaintenanceMode ps = do withNewTestChat ps "bob" bobProfile $ \bob -> do From ebabcc4053527e595d798db1a455b5355e267bfc Mon Sep 17 00:00:00 2001 From: Evgeny Poberezkin Date: Tue, 15 Sep 2026 10:13:10 +0100 Subject: [PATCH 26/62] core: 7.1.0.5 (simplexmq 7.1.0.6) --- cabal.project | 2 +- scripts/nix/sha256map.nix | 2 +- simplex-chat.cabal | 2 +- src/Simplex/Chat/Remote.hs | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/cabal.project b/cabal.project index 7e6b8a2a01..b4eba950c7 100644 --- a/cabal.project +++ b/cabal.project @@ -21,7 +21,7 @@ constraints: zip +disable-bzip2 +disable-zstd source-repository-package type: git location: https://github.com/simplex-chat/simplexmq.git - tag: a00e225d74dfa03aba2293530416f69c55373bed + tag: 7f0218e1d588a6d18c46916c8095e4fd78e09421 source-repository-package type: git diff --git a/scripts/nix/sha256map.nix b/scripts/nix/sha256map.nix index b28f5afbf9..6527571b7c 100644 --- a/scripts/nix/sha256map.nix +++ b/scripts/nix/sha256map.nix @@ -1,5 +1,5 @@ { - "https://github.com/simplex-chat/simplexmq.git"."a00e225d74dfa03aba2293530416f69c55373bed" = "0d0bd5w7rf862fswk6p2bcafjwxpvg78apz1yjcva8i2la8as1k5"; + "https://github.com/simplex-chat/simplexmq.git"."7f0218e1d588a6d18c46916c8095e4fd78e09421" = "1y0y7kpdd6sn8hwb087avkkxza23l5xyaz3bgrzix8pnl2il52kj"; "https://github.com/simplex-chat/hs-socks.git"."a30cc7a79a08d8108316094f8f2f82a0c5e1ac51" = "0yasvnr7g91k76mjkamvzab2kvlb1g5pspjyjn2fr6v83swjhj38"; "https://github.com/simplex-chat/direct-sqlcipher.git"."f814ee68b16a9447fbb467ccc8f29bdd3546bfd9" = "1ql13f4kfwkbaq7nygkxgw84213i0zm7c1a8hwvramayxl38dq5d"; "https://github.com/simplex-chat/sqlcipher-simple.git"."a46bd361a19376c5211f1058908fc0ae6bf42446" = "1z0r78d8f0812kxbgsm735qf6xx8lvaz27k1a0b4a2m0sshpd5gl"; diff --git a/simplex-chat.cabal b/simplex-chat.cabal index 7d0172ba3d..10c515a8d4 100644 --- a/simplex-chat.cabal +++ b/simplex-chat.cabal @@ -5,7 +5,7 @@ cabal-version: 1.12 -- see: https://github.com/sol/hpack name: simplex-chat -version: 7.1.0.4 +version: 7.1.0.5 category: Web, System, Services, Cryptography homepage: https://github.com/simplex-chat/simplex-chat#readme author: simplex.chat diff --git a/src/Simplex/Chat/Remote.hs b/src/Simplex/Chat/Remote.hs index 991218367a..4de4f4f6b7 100644 --- a/src/Simplex/Chat/Remote.hs +++ b/src/Simplex/Chat/Remote.hs @@ -75,11 +75,11 @@ remoteFilesFolder = "simplex_v1_files" -- when acting as host minRemoteCtrlVersion :: AppVersion -minRemoteCtrlVersion = AppVersion [7, 0, 0, 11] +minRemoteCtrlVersion = AppVersion [7, 1, 0, 5] -- when acting as controller minRemoteHostVersion :: AppVersion -minRemoteHostVersion = AppVersion [7, 0, 0, 11] +minRemoteHostVersion = AppVersion [7, 1, 0, 5] currentAppVersion :: AppVersion currentAppVersion = AppVersion SC.version From dd416e9ca6cdfc1718bbd9ff2458f99ace3aca11 Mon Sep 17 00:00:00 2001 From: Evgeny Poberezkin Date: Tue, 15 Sep 2026 10:22:57 +0100 Subject: [PATCH 27/62] website: redirect to badges --- website/src/badges.html | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 website/src/badges.html diff --git a/website/src/badges.html b/website/src/badges.html new file mode 100644 index 0000000000..a0885b230a --- /dev/null +++ b/website/src/badges.html @@ -0,0 +1,8 @@ +--- +layout: layouts/redirect.html +title: "Support SimpleX Chat" +description: "Supporter badges provide additional file size and in-transit storage duration" +destinationURI: "https://badges.simplex.chat" +destinationText: Support SimpleX Chat +templateEngineOverride: njk +--- From 069efad7a22ca5876bca03f4af859507be3fdb3d Mon Sep 17 00:00:00 2001 From: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com> Date: Tue, 15 Sep 2026 10:15:34 +0000 Subject: [PATCH 28/62] core: consolidate badges schema (#7513) --- .../BadgeService/Store/Postgres/Migrations.hs | 12 +- .../BadgeService/Store/SQLite/Migrations.hs | 12 +- .../2026-07-31-badges-core-implementation.md | 4 +- plans/2026-07-31-badges-service-schema.sql | 2 +- plans/2026-08-04-badges-mvp-scope.md | 2 +- simplex-chat.cabal | 4 +- src/Simplex/Chat/Store/Postgres/Migrations.hs | 4 +- ...ser_badges.hs => M20260915_user_badges.hs} | 192 ++++++++++-------- .../Store/Postgres/Migrations/chat_schema.sql | 161 +-------------- src/Simplex/Chat/Store/SQLite/Migrations.hs | 4 +- ...ser_badges.hs => M20260915_user_badges.hs} | 192 ++++++++++-------- .../Store/SQLite/Migrations/chat_schema.sql | 55 +---- 12 files changed, 247 insertions(+), 397 deletions(-) rename src/Simplex/Chat/Store/Postgres/Migrations/{M20261001_user_badges.hs => M20260915_user_badges.hs} (86%) rename src/Simplex/Chat/Store/SQLite/Migrations/{M20261001_user_badges.hs => M20260915_user_badges.hs} (86%) diff --git a/apps/simplex-badge-service/src/BadgeService/Store/Postgres/Migrations.hs b/apps/simplex-badge-service/src/BadgeService/Store/Postgres/Migrations.hs index 18d589b037..e8b62c2d53 100644 --- a/apps/simplex-badge-service/src/BadgeService/Store/Postgres/Migrations.hs +++ b/apps/simplex-badge-service/src/BadgeService/Store/Postgres/Migrations.hs @@ -6,7 +6,7 @@ module BadgeService.Store.Postgres.Migrations (badgeServiceSchemaMigrations) whe import Data.List (sortOn) import Data.Text (Text) -import Simplex.Chat.Store.Postgres.Migrations.M20261001_user_badges (badgeSchema, badgeSchemaDown, withPrefix) +import Simplex.Chat.Store.Postgres.Migrations.M20260915_user_badges (badgeSchema, badgeSchemaDown, withPrefix) import Simplex.Messaging.Agent.Store.Shared (Migration (..)) import Text.RawString.QQ (r) @@ -30,8 +30,6 @@ m20260806_badge_service_schema = <> withPrefix servicePrefix [r| -ALTER TABLE @payments ADD COLUMN receipt_hash BYTEA; - CREATE TABLE @badge_codes( badge_code_id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, code_hash BYTEA NOT NULL, @@ -77,3 +75,11 @@ DROP INDEX @idx_badge_purchases_code; [r| DROP TABLE @badge_codes; |] + +{- TODO [badges] deferred with the draft in M20260915_user_badges, service only. + +ALTER TABLE @payments ADD COLUMN receipt_hash BYTEA; + +-- down +ALTER TABLE @payments DROP COLUMN receipt_hash; +-} diff --git a/apps/simplex-badge-service/src/BadgeService/Store/SQLite/Migrations.hs b/apps/simplex-badge-service/src/BadgeService/Store/SQLite/Migrations.hs index 2851813c8c..ce08db0c7a 100644 --- a/apps/simplex-badge-service/src/BadgeService/Store/SQLite/Migrations.hs +++ b/apps/simplex-badge-service/src/BadgeService/Store/SQLite/Migrations.hs @@ -8,7 +8,7 @@ import Data.List (sortOn) import Data.Text (Text) import Database.SQLite.Simple (Query (..)) import Database.SQLite.Simple.QQ (sql) -import Simplex.Chat.Store.SQLite.Migrations.M20261001_user_badges (badgeSchema, badgeSchemaDown, withPrefix) +import Simplex.Chat.Store.SQLite.Migrations.M20260915_user_badges (badgeSchema, badgeSchemaDown, withPrefix) import Simplex.Messaging.Agent.Store.Shared (Migration (..)) badgeServiceSchemaMigrations :: [Migration] @@ -31,8 +31,6 @@ m20260806_badge_service_schema = <> withPrefix servicePrefix [sql| -ALTER TABLE @payments ADD COLUMN receipt_hash BLOB; - CREATE TABLE @badge_codes( badge_code_id INTEGER PRIMARY KEY AUTOINCREMENT, code_hash BLOB NOT NULL, @@ -78,3 +76,11 @@ DROP INDEX @idx_badge_purchases_code; [sql| DROP TABLE @badge_codes; |] + +{- TODO [badges] deferred with the draft in M20260915_user_badges, service only. + +ALTER TABLE @payments ADD COLUMN receipt_hash BLOB; + +-- down +ALTER TABLE @payments DROP COLUMN receipt_hash; +-} diff --git a/plans/2026-07-31-badges-core-implementation.md b/plans/2026-07-31-badges-core-implementation.md index c8f45deb2d..f36e1f8718 100644 --- a/plans/2026-07-31-badges-core-implementation.md +++ b/plans/2026-07-31-badges-core-implementation.md @@ -7,7 +7,7 @@ ## 1. Client schema -`src/Simplex/Chat/Store/SQLite/Migrations/M20261001_user_badges.hs` — SQLite only; the Postgres variant is written when the schema is final; registered in the migrations list and cabal at delivery step 2. +`src/Simplex/Chat/Store/SQLite/Migrations/M20260915_user_badges.hs` — SQLite only; the Postgres variant is written when the schema is final; registered in the migrations list and cabal at delivery step 2. - Table mapping to UX §3: - `badges` → `badge_purchases` @@ -401,7 +401,7 @@ Each UX plan point and its implementation home: ## Delivery order 1. `mkBadgeStatus`: the +7-day recipient display grace and the shifted `BSExpiredOld` boundary (UX 2.11) — released before purchases (UX §7). -2. Register migration `M20261001_user_badges` (migrations list + cabal + regenerated `chat_schema.sql` / `chat_lint.sql`); the Postgres variant of the migration; the catalog seed from app config (UX §3 prices); store functions (`Store/Badges.hs`): get-or-create with lock; last-ledger-row reads; verbatim replica inserts. +2. Register migration `M20260915_user_badges` (migrations list + cabal + regenerated `chat_schema.sql` / `chat_lint.sql`); the Postgres variant of the migration; the catalog seed from app config (UX §3 prices); store functions (`Store/Badges.hs`): get-or-create with lock; last-ledger-row reads; verbatim replica inserts. 3. Instances for the types in `Badges.hs` and `Badges/Service.hs` (§3) + roundtrip tests. 4. RPC codec: `docs/protocol/badges-rpc.schema.json` packets ↔ `Badges/Service.hs` types; catalog reconciliation on every `badgeCatalog` response. 5. BadgeManager §6: worker, locks, timer; reconcile/apply/presentation/alert steps; events. diff --git a/plans/2026-07-31-badges-service-schema.sql b/plans/2026-07-31-badges-service-schema.sql index 44bb1c6d00..a98e31c6b7 100644 --- a/plans/2026-07-31-badges-service-schema.sql +++ b/plans/2026-07-31-badges-service-schema.sql @@ -81,7 +81,7 @@ CREATE TABLE charges( UNIQUE(payment_id, provider_charge_ref) ); --- badgeLedgerTable constant (M20261001_user_badges), re-used literally +-- badgeLedgerTable constant (M20260915_user_badges), re-used literally CREATE TABLE badge_ledger( entry_id INTEGER PRIMARY KEY AUTOINCREMENT, entry_uuid TEXT NOT NULL, diff --git a/plans/2026-08-04-badges-mvp-scope.md b/plans/2026-08-04-badges-mvp-scope.md index d41613a00e..26a4fc3081 100644 --- a/plans/2026-08-04-badges-mvp-scope.md +++ b/plans/2026-08-04-badges-mvp-scope.md @@ -28,7 +28,7 @@ Order: one path end to end first, then the paths that need external systems. Eac - Store functions (`Store/Badges.hs`): get-or-create under the user lock, last-entry reads, verbatim replica writes. - `BadgeManager`: worker, locks, reconcile, apply, presentation. The timer and `CEvtBadgeAlert` follow later. - JSON instances for `Badges/Service.hs` and `Badges/Store.hs` — `taggedObjectJSON`, with roundtrip tests. -- Register `M20261001_user_badges` in the migrations list and cabal; regenerate `chat_schema.sql` and `chat_lint.sql`. +- Register `M20260915_user_badges` in the migrations list and cabal; regenerate `chat_schema.sql` and `chat_lint.sql`. ## 3. Store integration — iOS, Android diff --git a/simplex-chat.cabal b/simplex-chat.cabal index 54debb76f5..9563684749 100644 --- a/simplex-chat.cabal +++ b/simplex-chat.cabal @@ -165,7 +165,7 @@ library Simplex.Chat.Store.Postgres.Migrations.M20260822_forward_link Simplex.Chat.Store.Postgres.Migrations.M20260828_file_expiry Simplex.Chat.Store.Postgres.Migrations.M20260904_file_badges - Simplex.Chat.Store.Postgres.Migrations.M20261001_user_badges + Simplex.Chat.Store.Postgres.Migrations.M20260915_user_badges else exposed-modules: Simplex.Chat.Archive @@ -340,7 +340,7 @@ library Simplex.Chat.Store.SQLite.Migrations.M20260822_forward_link Simplex.Chat.Store.SQLite.Migrations.M20260828_file_expiry Simplex.Chat.Store.SQLite.Migrations.M20260904_file_badges - Simplex.Chat.Store.SQLite.Migrations.M20261001_user_badges + Simplex.Chat.Store.SQLite.Migrations.M20260915_user_badges other-modules: Paths_simplex_chat hs-source-dirs: diff --git a/src/Simplex/Chat/Store/Postgres/Migrations.hs b/src/Simplex/Chat/Store/Postgres/Migrations.hs index 3815c90367..9e5a1aa5aa 100644 --- a/src/Simplex/Chat/Store/Postgres/Migrations.hs +++ b/src/Simplex/Chat/Store/Postgres/Migrations.hs @@ -50,7 +50,7 @@ import Simplex.Chat.Store.Postgres.Migrations.M20260813_auto_accept_group_invita import Simplex.Chat.Store.Postgres.Migrations.M20260822_forward_link import Simplex.Chat.Store.Postgres.Migrations.M20260828_file_expiry import Simplex.Chat.Store.Postgres.Migrations.M20260904_file_badges -import Simplex.Chat.Store.Postgres.Migrations.M20261001_user_badges +import Simplex.Chat.Store.Postgres.Migrations.M20260915_user_badges import Simplex.Messaging.Agent.Store.Shared (Migration (..)) schemaMigrations :: [(String, Text, Maybe Text)] @@ -101,7 +101,7 @@ schemaMigrations = ("20260822_forward_link", m20260822_forward_link, Just down_m20260822_forward_link), ("20260828_file_expiry", m20260828_file_expiry, Just down_m20260828_file_expiry), ("20260904_file_badges", m20260904_file_badges, Just down_m20260904_file_badges), - ("20261001_user_badges", m20261001_user_badges, Just down_m20261001_user_badges) + ("20260915_user_badges", m20260915_user_badges, Just down_m20260915_user_badges) ] -- | The list of migrations in ascending order by date diff --git a/src/Simplex/Chat/Store/Postgres/Migrations/M20261001_user_badges.hs b/src/Simplex/Chat/Store/Postgres/Migrations/M20260915_user_badges.hs similarity index 86% rename from src/Simplex/Chat/Store/Postgres/Migrations/M20261001_user_badges.hs rename to src/Simplex/Chat/Store/Postgres/Migrations/M20260915_user_badges.hs index 1e8042160c..98bdd53db7 100644 --- a/src/Simplex/Chat/Store/Postgres/Migrations/M20261001_user_badges.hs +++ b/src/Simplex/Chat/Store/Postgres/Migrations/M20260915_user_badges.hs @@ -1,7 +1,7 @@ {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE QuasiQuotes #-} -module Simplex.Chat.Store.Postgres.Migrations.M20261001_user_badges where +module Simplex.Chat.Store.Postgres.Migrations.M20260915_user_badges where import Data.Text (Text) import qualified Data.Text as T @@ -58,18 +58,6 @@ CREATE INDEX @idx_payments_provider_ref ON @payments(provider, provider_ref); CREATE INDEX @idx_payments_invoice ON @payments(invoice_id); -CREATE TABLE @subscription_charges( - charge_id TEXT NOT NULL PRIMARY KEY, - payment_id TEXT NOT NULL REFERENCES @payments ON DELETE CASCADE, - provider_charge_ref TEXT NOT NULL, - period_start TIMESTAMPTZ NOT NULL, - period_end TIMESTAMPTZ NOT NULL, - amount BIGINT NOT NULL, - currency TEXT NOT NULL, - charged_at TIMESTAMPTZ NOT NULL, - UNIQUE(payment_id, provider_charge_ref) -); - CREATE TABLE @badge_prices( price_id TEXT NOT NULL PRIMARY KEY, badge_type TEXT NOT NULL, @@ -97,14 +85,90 @@ CREATE TABLE @badge_purchases( master_key BYTEA NOT NULL, initial_badge_type TEXT NOT NULL, current_badge_type TEXT NOT NULL, - payment_id TEXT REFERENCES @payments, status TEXT NOT NULL, created_at TIMESTAMPTZ NOT NULL, updated_at TIMESTAMPTZ NOT NULL, - UNIQUE(purchase_key), - UNIQUE(payment_id) + UNIQUE(purchase_key) ); +CREATE TABLE @badge_ledger( + entry_id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, + entry_uuid TEXT NOT NULL, + badge_purchase_id BIGINT NOT NULL REFERENCES @badge_purchases ON DELETE CASCADE, + change_months SMALLINT NOT NULL, + balance_months SMALLINT NOT NULL, + balance_start_ts TIMESTAMPTZ NOT NULL, + balance_anchor_ts TIMESTAMPTZ NOT NULL, + balance_badge_type TEXT NOT NULL, + was_paused_since TIMESTAMPTZ, + service_created_at TIMESTAMPTZ NOT NULL, + created_at TIMESTAMPTZ NOT NULL, + entry_type TEXT NOT NULL, + entry_credit_type TEXT, + entry_debit_type TEXT +); + +CREATE UNIQUE INDEX @idx_badge_ledger_uuid ON @badge_ledger(entry_uuid); + +CREATE INDEX @idx_badge_ledger_purchase ON @badge_ledger(badge_purchase_id, entry_id); + +CREATE TABLE @badge_issuances( + issuance_id TEXT NOT NULL PRIMARY KEY, + badge_purchase_id BIGINT NOT NULL REFERENCES @badge_purchases ON DELETE CASCADE, + entry_id BIGINT REFERENCES @badge_ledger, + badge_type TEXT NOT NULL, + period_start TIMESTAMPTZ NOT NULL, + period_end TIMESTAMPTZ NOT NULL, + expiry TIMESTAMPTZ NOT NULL, + credential BYTEA NOT NULL, + created_at TIMESTAMPTZ NOT NULL +); + +CREATE INDEX @idx_badge_issuances_purchase ON @badge_issuances(badge_purchase_id, issuance_id); + +CREATE INDEX @idx_badge_issuances_entry ON @badge_issuances(entry_id); + +CREATE UNIQUE INDEX @idx_badge_issuances_purchase_entry ON @badge_issuances(badge_purchase_id, entry_id); +|] + +badgeSchemaTablesDown :: Text +badgeSchemaTablesDown = + [r| +DROP INDEX @idx_badge_issuances_purchase; +DROP INDEX @idx_badge_issuances_entry; +DROP INDEX @idx_badge_issuances_purchase_entry; +DROP TABLE @badge_issuances; +DROP INDEX @idx_badge_ledger_uuid; +DROP INDEX @idx_badge_ledger_purchase; +DROP TABLE @badge_ledger; +DROP TABLE @badge_purchases; +DROP INDEX @idx_payments_provider_ref; +DROP INDEX @idx_payments_invoice; +DROP TABLE @payments; +DROP TABLE @invoices; +DROP INDEX @idx_badge_offers_price; +DROP TABLE @badge_offers; +DROP TABLE @badge_prices; +|] + +{- TODO [badges] deferred draft schema for paid purchases, subscriptions, upgrades and transfers. + +CREATE TABLE @subscription_charges( + charge_id TEXT NOT NULL PRIMARY KEY, + payment_id TEXT NOT NULL REFERENCES @payments ON DELETE CASCADE, + provider_charge_ref TEXT NOT NULL, + period_start TIMESTAMPTZ NOT NULL, + period_end TIMESTAMPTZ NOT NULL, + amount BIGINT NOT NULL, + currency TEXT NOT NULL, + charged_at TIMESTAMPTZ NOT NULL, + UNIQUE(payment_id, provider_charge_ref) +); + +ALTER TABLE @badge_purchases ADD COLUMN payment_id TEXT REFERENCES @payments; + +CREATE UNIQUE INDEX @idx_badge_purchases_payment ON @badge_purchases(payment_id); + CREATE TABLE @badge_invoices( invoice_id TEXT NOT NULL PRIMARY KEY REFERENCES @invoices ON DELETE CASCADE, badge_purchase_id BIGINT NOT NULL REFERENCES @badge_purchases ON DELETE CASCADE, @@ -136,30 +200,13 @@ CREATE TABLE @badge_subscription_changes( CREATE INDEX @idx_badge_subscription_changes_purchase ON @badge_subscription_changes(badge_purchase_id); -CREATE TABLE @badge_ledger( - entry_id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, - entry_uuid TEXT NOT NULL, - badge_purchase_id BIGINT NOT NULL REFERENCES @badge_purchases ON DELETE CASCADE, - change_months SMALLINT NOT NULL, - balance_months SMALLINT NOT NULL, - balance_start_ts TIMESTAMPTZ NOT NULL, - balance_anchor_ts TIMESTAMPTZ NOT NULL, - balance_badge_type TEXT NOT NULL, - was_paused_since TIMESTAMPTZ, - service_created_at TIMESTAMPTZ NOT NULL, - created_at TIMESTAMPTZ NOT NULL, - entry_type TEXT NOT NULL, - entry_credit_type TEXT, - entry_debit_type TEXT, - payment_id TEXT REFERENCES @payments, - charge_id TEXT REFERENCES @subscription_charges, - from_purchase_id BIGINT REFERENCES @badge_purchases, - to_purchase_id BIGINT REFERENCES @badge_purchases -); +ALTER TABLE @badge_ledger ADD COLUMN payment_id TEXT REFERENCES @payments; -CREATE UNIQUE INDEX @idx_badge_ledger_uuid ON @badge_ledger(entry_uuid); +ALTER TABLE @badge_ledger ADD COLUMN charge_id TEXT REFERENCES @subscription_charges; -CREATE INDEX @idx_badge_ledger_purchase ON @badge_ledger(badge_purchase_id, entry_id); +ALTER TABLE @badge_ledger ADD COLUMN from_purchase_id BIGINT REFERENCES @badge_purchases; + +ALTER TABLE @badge_ledger ADD COLUMN to_purchase_id BIGINT REFERENCES @badge_purchases; CREATE INDEX @idx_badge_ledger_payment ON @badge_ledger(payment_id); @@ -169,58 +216,28 @@ CREATE INDEX @idx_badge_ledger_from_purchase ON @badge_ledger(from_purchase_id); CREATE INDEX @idx_badge_ledger_to_purchase ON @badge_ledger(to_purchase_id); -CREATE TABLE @badge_issuances( - issuance_id TEXT NOT NULL PRIMARY KEY, - badge_purchase_id BIGINT NOT NULL REFERENCES @badge_purchases ON DELETE CASCADE, - entry_id BIGINT REFERENCES @badge_ledger, - badge_type TEXT NOT NULL, - period_start TIMESTAMPTZ NOT NULL, - period_end TIMESTAMPTZ NOT NULL, - expiry TIMESTAMPTZ NOT NULL, - credential BYTEA NOT NULL, - created_at TIMESTAMPTZ NOT NULL -); - -CREATE INDEX @idx_badge_issuances_purchase ON @badge_issuances(badge_purchase_id, issuance_id); - -CREATE INDEX @idx_badge_issuances_entry ON @badge_issuances(entry_id); - -CREATE UNIQUE INDEX @idx_badge_issuances_purchase_entry ON @badge_issuances(badge_purchase_id, entry_id); -|] - -badgeSchemaTablesDown :: Text -badgeSchemaTablesDown = - [r| -DROP INDEX @idx_badge_issuances_purchase; -DROP INDEX @idx_badge_issuances_entry; -DROP INDEX @idx_badge_issuances_purchase_entry; -DROP TABLE @badge_issuances; -DROP INDEX @idx_badge_ledger_uuid; -DROP INDEX @idx_badge_ledger_purchase; +-- down DROP INDEX @idx_badge_ledger_payment; DROP INDEX @idx_badge_ledger_charge; DROP INDEX @idx_badge_ledger_from_purchase; DROP INDEX @idx_badge_ledger_to_purchase; -DROP TABLE @badge_ledger; +ALTER TABLE @badge_ledger DROP COLUMN payment_id; +ALTER TABLE @badge_ledger DROP COLUMN charge_id; +ALTER TABLE @badge_ledger DROP COLUMN from_purchase_id; +ALTER TABLE @badge_ledger DROP COLUMN to_purchase_id; DROP INDEX @idx_badge_subscription_changes_purchase; DROP TABLE @badge_subscription_changes; DROP INDEX @idx_badge_invoices_purchase; DROP INDEX @idx_badge_invoices_offer; DROP INDEX @idx_badge_invoices_price; DROP TABLE @badge_invoices; -DROP TABLE @badge_purchases; +DROP INDEX @idx_badge_purchases_payment; +ALTER TABLE @badge_purchases DROP COLUMN payment_id; DROP TABLE @subscription_charges; -DROP INDEX @idx_payments_provider_ref; -DROP INDEX @idx_payments_invoice; -DROP TABLE @payments; -DROP TABLE @invoices; -DROP INDEX @idx_badge_offers_price; -DROP TABLE @badge_offers; -DROP TABLE @badge_prices; -|] +-} -m20261001_user_badges :: Text -m20261001_user_badges = +m20260915_user_badges :: Text +m20260915_user_badges = badgeSchema "" <> [r| ALTER TABLE badge_purchases ADD COLUMN user_id BIGINT REFERENCES users ON DELETE CASCADE; @@ -233,10 +250,6 @@ ALTER TABLE badge_purchases ADD COLUMN alert_acked_episode TEXT; ALTER TABLE badge_purchases ADD COLUMN alert_snooze_until TIMESTAMPTZ; -ALTER TABLE payments ADD COLUMN evidence BYTEA; - -ALTER TABLE payments ADD COLUMN receipt_code TEXT; - ALTER TABLE badge_ledger ADD COLUMN entry_type_unknown SMALLINT NOT NULL DEFAULT 0; ALTER TABLE badge_ledger ADD COLUMN entry_type_value TEXT; @@ -267,8 +280,8 @@ ALTER TABLE badge_purchases ADD COLUMN badge_code_redemption_id BIGINT REFERENCE CREATE UNIQUE INDEX idx_badge_purchases_code_redemption ON badge_purchases(badge_code_redemption_id); |] -down_m20261001_user_badges :: Text -down_m20261001_user_badges = +down_m20260915_user_badges :: Text +down_m20260915_user_badges = [r| DROP INDEX idx_badge_purchases_code_redemption; DROP INDEX idx_badge_purchases_user; @@ -280,3 +293,14 @@ ALTER TABLE users DROP COLUMN shown_badge_id; DROP INDEX idx_badge_code_redemptions_user; DROP TABLE badge_code_redemptions; |] + +{- TODO [badges] deferred with the draft above, client only. + +ALTER TABLE payments ADD COLUMN evidence BYTEA; + +ALTER TABLE payments ADD COLUMN receipt_code TEXT; + +-- down +ALTER TABLE payments DROP COLUMN evidence; +ALTER TABLE payments DROP COLUMN receipt_code; +-} diff --git a/src/Simplex/Chat/Store/Postgres/Migrations/chat_schema.sql b/src/Simplex/Chat/Store/Postgres/Migrations/chat_schema.sql index b16bb75f51..1e2a26d74e 100644 --- a/src/Simplex/Chat/Store/Postgres/Migrations/chat_schema.sql +++ b/src/Simplex/Chat/Store/Postgres/Migrations/chat_schema.sql @@ -191,17 +191,6 @@ ALTER TABLE test_chat_schema.badge_code_redemptions ALTER COLUMN badge_code_rede -CREATE TABLE test_chat_schema.badge_invoices ( - invoice_id text NOT NULL, - badge_purchase_id bigint NOT NULL, - price_id text NOT NULL, - offer_id text, - months smallint NOT NULL, - created_at timestamp with time zone NOT NULL -); - - - CREATE TABLE test_chat_schema.badge_issuances ( issuance_id text NOT NULL, badge_purchase_id bigint NOT NULL, @@ -231,10 +220,6 @@ CREATE TABLE test_chat_schema.badge_ledger ( entry_type text NOT NULL, entry_credit_type text, entry_debit_type text, - payment_id text, - charge_id text, - from_purchase_id bigint, - to_purchase_id bigint, entry_type_unknown smallint DEFAULT 0 NOT NULL, entry_type_value text, balance_checked smallint @@ -282,7 +267,6 @@ CREATE TABLE test_chat_schema.badge_purchases ( master_key bytea NOT NULL, initial_badge_type text NOT NULL, current_badge_type text NOT NULL, - payment_id text, status text NOT NULL, created_at timestamp with time zone NOT NULL, updated_at timestamp with time zone NOT NULL, @@ -307,22 +291,6 @@ ALTER TABLE test_chat_schema.badge_purchases ALTER COLUMN badge_purchase_id ADD -CREATE TABLE test_chat_schema.badge_subscription_changes ( - change_id text NOT NULL, - badge_purchase_id bigint NOT NULL, - from_badge_type text NOT NULL, - to_badge_type text NOT NULL, - from_provider_ref text, - to_provider_ref text, - effective text NOT NULL, - status text NOT NULL, - effective_at timestamp with time zone, - created_at timestamp with time zone NOT NULL, - updated_at timestamp with time zone NOT NULL -); - - - CREATE TABLE test_chat_schema.calls ( call_id bigint NOT NULL, contact_id bigint NOT NULL, @@ -1378,9 +1346,7 @@ CREATE TABLE test_chat_schema.payments ( grace_until timestamp with time zone, cancelled smallint DEFAULT 0 NOT NULL, created_at timestamp with time zone NOT NULL, - updated_at timestamp with time zone NOT NULL, - evidence bytea, - receipt_code text + updated_at timestamp with time zone NOT NULL ); @@ -1679,19 +1645,6 @@ CREATE TABLE test_chat_schema.snd_files ( -CREATE TABLE test_chat_schema.subscription_charges ( - charge_id text NOT NULL, - payment_id text NOT NULL, - provider_charge_ref text NOT NULL, - period_start timestamp with time zone NOT NULL, - period_end timestamp with time zone NOT NULL, - amount bigint NOT NULL, - currency text NOT NULL, - charged_at timestamp with time zone NOT NULL -); - - - CREATE TABLE test_chat_schema.usage_conditions ( usage_conditions_id bigint NOT NULL, conditions_commit text NOT NULL, @@ -1804,11 +1757,6 @@ ALTER TABLE ONLY test_chat_schema.badge_code_redemptions -ALTER TABLE ONLY test_chat_schema.badge_invoices - ADD CONSTRAINT badge_invoices_pkey PRIMARY KEY (invoice_id); - - - ALTER TABLE ONLY test_chat_schema.badge_issuances ADD CONSTRAINT badge_issuances_pkey PRIMARY KEY (issuance_id); @@ -1829,11 +1777,6 @@ ALTER TABLE ONLY test_chat_schema.badge_prices -ALTER TABLE ONLY test_chat_schema.badge_purchases - ADD CONSTRAINT badge_purchases_payment_id_key UNIQUE (payment_id); - - - ALTER TABLE ONLY test_chat_schema.badge_purchases ADD CONSTRAINT badge_purchases_pkey PRIMARY KEY (badge_purchase_id); @@ -1844,11 +1787,6 @@ ALTER TABLE ONLY test_chat_schema.badge_purchases -ALTER TABLE ONLY test_chat_schema.badge_subscription_changes - ADD CONSTRAINT badge_subscription_changes_pkey PRIMARY KEY (change_id); - - - ALTER TABLE ONLY test_chat_schema.calls ADD CONSTRAINT calls_pkey PRIMARY KEY (call_id); @@ -2164,16 +2102,6 @@ ALTER TABLE ONLY test_chat_schema.snd_files -ALTER TABLE ONLY test_chat_schema.subscription_charges - ADD CONSTRAINT subscription_charges_payment_id_provider_charge_ref_key UNIQUE (payment_id, provider_charge_ref); - - - -ALTER TABLE ONLY test_chat_schema.subscription_charges - ADD CONSTRAINT subscription_charges_pkey PRIMARY KEY (charge_id); - - - ALTER TABLE ONLY test_chat_schema.usage_conditions ADD CONSTRAINT usage_conditions_conditions_commit_key UNIQUE (conditions_commit); @@ -2230,18 +2158,6 @@ CREATE INDEX idx_badge_code_redemptions_user ON test_chat_schema.badge_code_rede -CREATE INDEX idx_badge_invoices_offer ON test_chat_schema.badge_invoices USING btree (offer_id); - - - -CREATE INDEX idx_badge_invoices_price ON test_chat_schema.badge_invoices USING btree (price_id); - - - -CREATE INDEX idx_badge_invoices_purchase ON test_chat_schema.badge_invoices USING btree (badge_purchase_id); - - - CREATE INDEX idx_badge_issuances_entry ON test_chat_schema.badge_issuances USING btree (entry_id); @@ -2254,26 +2170,10 @@ CREATE UNIQUE INDEX idx_badge_issuances_purchase_entry ON test_chat_schema.badge -CREATE INDEX idx_badge_ledger_charge ON test_chat_schema.badge_ledger USING btree (charge_id); - - - -CREATE INDEX idx_badge_ledger_from_purchase ON test_chat_schema.badge_ledger USING btree (from_purchase_id); - - - -CREATE INDEX idx_badge_ledger_payment ON test_chat_schema.badge_ledger USING btree (payment_id); - - - CREATE INDEX idx_badge_ledger_purchase ON test_chat_schema.badge_ledger USING btree (badge_purchase_id, entry_id); -CREATE INDEX idx_badge_ledger_to_purchase ON test_chat_schema.badge_ledger USING btree (to_purchase_id); - - - CREATE UNIQUE INDEX idx_badge_ledger_uuid ON test_chat_schema.badge_ledger USING btree (entry_uuid); @@ -2290,10 +2190,6 @@ CREATE INDEX idx_badge_purchases_user ON test_chat_schema.badge_purchases USING -CREATE INDEX idx_badge_subscription_changes_purchase ON test_chat_schema.badge_subscription_changes USING btree (badge_purchase_id); - - - CREATE INDEX idx_calls_chat_item_id ON test_chat_schema.calls USING btree (chat_item_id); @@ -3067,26 +2963,6 @@ ALTER TABLE ONLY test_chat_schema.badge_code_redemptions -ALTER TABLE ONLY test_chat_schema.badge_invoices - ADD CONSTRAINT badge_invoices_badge_purchase_id_fkey FOREIGN KEY (badge_purchase_id) REFERENCES test_chat_schema.badge_purchases(badge_purchase_id) ON DELETE CASCADE; - - - -ALTER TABLE ONLY test_chat_schema.badge_invoices - ADD CONSTRAINT badge_invoices_invoice_id_fkey FOREIGN KEY (invoice_id) REFERENCES test_chat_schema.invoices(invoice_id) ON DELETE CASCADE; - - - -ALTER TABLE ONLY test_chat_schema.badge_invoices - ADD CONSTRAINT badge_invoices_offer_id_fkey FOREIGN KEY (offer_id) REFERENCES test_chat_schema.badge_offers(offer_id); - - - -ALTER TABLE ONLY test_chat_schema.badge_invoices - ADD CONSTRAINT badge_invoices_price_id_fkey FOREIGN KEY (price_id) REFERENCES test_chat_schema.badge_prices(price_id); - - - ALTER TABLE ONLY test_chat_schema.badge_issuances ADD CONSTRAINT badge_issuances_badge_purchase_id_fkey FOREIGN KEY (badge_purchase_id) REFERENCES test_chat_schema.badge_purchases(badge_purchase_id) ON DELETE CASCADE; @@ -3102,26 +2978,6 @@ ALTER TABLE ONLY test_chat_schema.badge_ledger -ALTER TABLE ONLY test_chat_schema.badge_ledger - ADD CONSTRAINT badge_ledger_charge_id_fkey FOREIGN KEY (charge_id) REFERENCES test_chat_schema.subscription_charges(charge_id); - - - -ALTER TABLE ONLY test_chat_schema.badge_ledger - ADD CONSTRAINT badge_ledger_from_purchase_id_fkey FOREIGN KEY (from_purchase_id) REFERENCES test_chat_schema.badge_purchases(badge_purchase_id); - - - -ALTER TABLE ONLY test_chat_schema.badge_ledger - ADD CONSTRAINT badge_ledger_payment_id_fkey FOREIGN KEY (payment_id) REFERENCES test_chat_schema.payments(payment_id); - - - -ALTER TABLE ONLY test_chat_schema.badge_ledger - ADD CONSTRAINT badge_ledger_to_purchase_id_fkey FOREIGN KEY (to_purchase_id) REFERENCES test_chat_schema.badge_purchases(badge_purchase_id); - - - ALTER TABLE ONLY test_chat_schema.badge_offers ADD CONSTRAINT badge_offers_price_id_fkey FOREIGN KEY (price_id) REFERENCES test_chat_schema.badge_prices(price_id); @@ -3132,21 +2988,11 @@ ALTER TABLE ONLY test_chat_schema.badge_purchases -ALTER TABLE ONLY test_chat_schema.badge_purchases - ADD CONSTRAINT badge_purchases_payment_id_fkey FOREIGN KEY (payment_id) REFERENCES test_chat_schema.payments(payment_id); - - - ALTER TABLE ONLY test_chat_schema.badge_purchases ADD CONSTRAINT badge_purchases_user_id_fkey FOREIGN KEY (user_id) REFERENCES test_chat_schema.users(user_id) ON DELETE CASCADE; -ALTER TABLE ONLY test_chat_schema.badge_subscription_changes - ADD CONSTRAINT badge_subscription_changes_badge_purchase_id_fkey FOREIGN KEY (badge_purchase_id) REFERENCES test_chat_schema.badge_purchases(badge_purchase_id) ON DELETE CASCADE; - - - ALTER TABLE ONLY test_chat_schema.calls ADD CONSTRAINT calls_chat_item_id_fkey FOREIGN KEY (chat_item_id) REFERENCES test_chat_schema.chat_items(chat_item_id) ON DELETE CASCADE; @@ -3802,11 +3648,6 @@ ALTER TABLE ONLY test_chat_schema.snd_files -ALTER TABLE ONLY test_chat_schema.subscription_charges - ADD CONSTRAINT subscription_charges_payment_id_fkey FOREIGN KEY (payment_id) REFERENCES test_chat_schema.payments(payment_id) ON DELETE CASCADE; - - - ALTER TABLE ONLY test_chat_schema.user_contact_links ADD CONSTRAINT user_contact_links_group_id_fkey FOREIGN KEY (group_id) REFERENCES test_chat_schema.groups(group_id) ON DELETE CASCADE; diff --git a/src/Simplex/Chat/Store/SQLite/Migrations.hs b/src/Simplex/Chat/Store/SQLite/Migrations.hs index b4bd47e36d..0bbd7c06b6 100644 --- a/src/Simplex/Chat/Store/SQLite/Migrations.hs +++ b/src/Simplex/Chat/Store/SQLite/Migrations.hs @@ -173,7 +173,7 @@ import Simplex.Chat.Store.SQLite.Migrations.M20260813_auto_accept_group_invitati import Simplex.Chat.Store.SQLite.Migrations.M20260822_forward_link import Simplex.Chat.Store.SQLite.Migrations.M20260828_file_expiry import Simplex.Chat.Store.SQLite.Migrations.M20260904_file_badges -import Simplex.Chat.Store.SQLite.Migrations.M20261001_user_badges +import Simplex.Chat.Store.SQLite.Migrations.M20260915_user_badges import Simplex.Messaging.Agent.Store.Shared (Migration (..)) schemaMigrations :: [(String, Query, Maybe Query)] @@ -347,7 +347,7 @@ schemaMigrations = ("20260822_forward_link", m20260822_forward_link, Just down_m20260822_forward_link), ("20260828_file_expiry", m20260828_file_expiry, Just down_m20260828_file_expiry), ("20260904_file_badges", m20260904_file_badges, Just down_m20260904_file_badges), - ("20261001_user_badges", m20261001_user_badges, Just down_m20261001_user_badges) + ("20260915_user_badges", m20260915_user_badges, Just down_m20260915_user_badges) ] -- | The list of migrations in ascending order by date diff --git a/src/Simplex/Chat/Store/SQLite/Migrations/M20261001_user_badges.hs b/src/Simplex/Chat/Store/SQLite/Migrations/M20260915_user_badges.hs similarity index 86% rename from src/Simplex/Chat/Store/SQLite/Migrations/M20261001_user_badges.hs rename to src/Simplex/Chat/Store/SQLite/Migrations/M20260915_user_badges.hs index 652eaac7ab..3462db9bc1 100644 --- a/src/Simplex/Chat/Store/SQLite/Migrations/M20261001_user_badges.hs +++ b/src/Simplex/Chat/Store/SQLite/Migrations/M20260915_user_badges.hs @@ -1,7 +1,7 @@ {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE QuasiQuotes #-} -module Simplex.Chat.Store.SQLite.Migrations.M20261001_user_badges where +module Simplex.Chat.Store.SQLite.Migrations.M20260915_user_badges where import Data.Text (Text) import qualified Data.Text as T @@ -59,18 +59,6 @@ CREATE INDEX @idx_payments_provider_ref ON @payments(provider, provider_ref); CREATE INDEX @idx_payments_invoice ON @payments(invoice_id); -CREATE TABLE @subscription_charges( - charge_id TEXT NOT NULL PRIMARY KEY, - payment_id TEXT NOT NULL REFERENCES @payments ON DELETE CASCADE, - provider_charge_ref TEXT NOT NULL, - period_start TEXT NOT NULL, - period_end TEXT NOT NULL, - amount INTEGER NOT NULL, - currency TEXT NOT NULL, - charged_at TEXT NOT NULL, - UNIQUE(payment_id, provider_charge_ref) -) STRICT; - CREATE TABLE @badge_prices( price_id TEXT NOT NULL PRIMARY KEY, badge_type TEXT NOT NULL, @@ -98,14 +86,90 @@ CREATE TABLE @badge_purchases( master_key BLOB NOT NULL, initial_badge_type TEXT NOT NULL, current_badge_type TEXT NOT NULL, - payment_id TEXT REFERENCES @payments, status TEXT NOT NULL, created_at TEXT NOT NULL, updated_at TEXT NOT NULL, - UNIQUE(purchase_key), - UNIQUE(payment_id) + UNIQUE(purchase_key) ) STRICT; +CREATE TABLE @badge_ledger( + entry_id INTEGER PRIMARY KEY AUTOINCREMENT, + entry_uuid TEXT NOT NULL, + badge_purchase_id INTEGER NOT NULL REFERENCES @badge_purchases ON DELETE CASCADE, + change_months INTEGER NOT NULL, + balance_months INTEGER NOT NULL, + balance_start_ts TEXT NOT NULL, + balance_anchor_ts TEXT NOT NULL, + balance_badge_type TEXT NOT NULL, + was_paused_since TEXT, + service_created_at TEXT NOT NULL, + created_at TEXT NOT NULL, + entry_type TEXT NOT NULL, + entry_credit_type TEXT, + entry_debit_type TEXT +) STRICT; + +CREATE UNIQUE INDEX @idx_badge_ledger_uuid ON @badge_ledger(entry_uuid); + +CREATE INDEX @idx_badge_ledger_purchase ON @badge_ledger(badge_purchase_id, entry_id); + +CREATE TABLE @badge_issuances( + issuance_id TEXT NOT NULL PRIMARY KEY, + badge_purchase_id INTEGER NOT NULL REFERENCES @badge_purchases ON DELETE CASCADE, + entry_id INTEGER REFERENCES @badge_ledger, + badge_type TEXT NOT NULL, + period_start TEXT NOT NULL, + period_end TEXT NOT NULL, + expiry TEXT NOT NULL, + credential BLOB NOT NULL, + created_at TEXT NOT NULL +) STRICT; + +CREATE INDEX @idx_badge_issuances_purchase ON @badge_issuances(badge_purchase_id, issuance_id); + +CREATE INDEX @idx_badge_issuances_entry ON @badge_issuances(entry_id); + +CREATE UNIQUE INDEX @idx_badge_issuances_purchase_entry ON @badge_issuances(badge_purchase_id, entry_id); +|] + +badgeSchemaTablesDown :: Query +badgeSchemaTablesDown = + [sql| +DROP INDEX @idx_badge_issuances_purchase; +DROP INDEX @idx_badge_issuances_entry; +DROP INDEX @idx_badge_issuances_purchase_entry; +DROP TABLE @badge_issuances; +DROP INDEX @idx_badge_ledger_uuid; +DROP INDEX @idx_badge_ledger_purchase; +DROP TABLE @badge_ledger; +DROP TABLE @badge_purchases; +DROP INDEX @idx_payments_provider_ref; +DROP INDEX @idx_payments_invoice; +DROP TABLE @payments; +DROP TABLE @invoices; +DROP INDEX @idx_badge_offers_price; +DROP TABLE @badge_offers; +DROP TABLE @badge_prices; +|] + +{- TODO [badges] deferred draft schema for paid purchases, subscriptions, upgrades and transfers. + +CREATE TABLE @subscription_charges( + charge_id TEXT NOT NULL PRIMARY KEY, + payment_id TEXT NOT NULL REFERENCES @payments ON DELETE CASCADE, + provider_charge_ref TEXT NOT NULL, + period_start TEXT NOT NULL, + period_end TEXT NOT NULL, + amount INTEGER NOT NULL, + currency TEXT NOT NULL, + charged_at TEXT NOT NULL, + UNIQUE(payment_id, provider_charge_ref) +) STRICT; + +ALTER TABLE @badge_purchases ADD COLUMN payment_id TEXT REFERENCES @payments; + +CREATE UNIQUE INDEX @idx_badge_purchases_payment ON @badge_purchases(payment_id); + CREATE TABLE @badge_invoices( invoice_id TEXT NOT NULL PRIMARY KEY REFERENCES @invoices ON DELETE CASCADE, badge_purchase_id INTEGER NOT NULL REFERENCES @badge_purchases ON DELETE CASCADE, @@ -137,30 +201,13 @@ CREATE TABLE @badge_subscription_changes( CREATE INDEX @idx_badge_subscription_changes_purchase ON @badge_subscription_changes(badge_purchase_id); -CREATE TABLE @badge_ledger( - entry_id INTEGER PRIMARY KEY AUTOINCREMENT, - entry_uuid TEXT NOT NULL, - badge_purchase_id INTEGER NOT NULL REFERENCES @badge_purchases ON DELETE CASCADE, - change_months INTEGER NOT NULL, - balance_months INTEGER NOT NULL, - balance_start_ts TEXT NOT NULL, - balance_anchor_ts TEXT NOT NULL, - balance_badge_type TEXT NOT NULL, - was_paused_since TEXT, - service_created_at TEXT NOT NULL, - created_at TEXT NOT NULL, - entry_type TEXT NOT NULL, - entry_credit_type TEXT, - entry_debit_type TEXT, - payment_id TEXT REFERENCES @payments, - charge_id TEXT REFERENCES @subscription_charges, - from_purchase_id INTEGER REFERENCES @badge_purchases, - to_purchase_id INTEGER REFERENCES @badge_purchases -) STRICT; +ALTER TABLE @badge_ledger ADD COLUMN payment_id TEXT REFERENCES @payments; -CREATE UNIQUE INDEX @idx_badge_ledger_uuid ON @badge_ledger(entry_uuid); +ALTER TABLE @badge_ledger ADD COLUMN charge_id TEXT REFERENCES @subscription_charges; -CREATE INDEX @idx_badge_ledger_purchase ON @badge_ledger(badge_purchase_id, entry_id); +ALTER TABLE @badge_ledger ADD COLUMN from_purchase_id INTEGER REFERENCES @badge_purchases; + +ALTER TABLE @badge_ledger ADD COLUMN to_purchase_id INTEGER REFERENCES @badge_purchases; CREATE INDEX @idx_badge_ledger_payment ON @badge_ledger(payment_id); @@ -170,58 +217,28 @@ CREATE INDEX @idx_badge_ledger_from_purchase ON @badge_ledger(from_purchase_id); CREATE INDEX @idx_badge_ledger_to_purchase ON @badge_ledger(to_purchase_id); -CREATE TABLE @badge_issuances( - issuance_id TEXT NOT NULL PRIMARY KEY, - badge_purchase_id INTEGER NOT NULL REFERENCES @badge_purchases ON DELETE CASCADE, - entry_id INTEGER REFERENCES @badge_ledger, - badge_type TEXT NOT NULL, - period_start TEXT NOT NULL, - period_end TEXT NOT NULL, - expiry TEXT NOT NULL, - credential BLOB NOT NULL, - created_at TEXT NOT NULL -) STRICT; - -CREATE INDEX @idx_badge_issuances_purchase ON @badge_issuances(badge_purchase_id, issuance_id); - -CREATE INDEX @idx_badge_issuances_entry ON @badge_issuances(entry_id); - -CREATE UNIQUE INDEX @idx_badge_issuances_purchase_entry ON @badge_issuances(badge_purchase_id, entry_id); -|] - -badgeSchemaTablesDown :: Query -badgeSchemaTablesDown = - [sql| -DROP INDEX @idx_badge_issuances_purchase; -DROP INDEX @idx_badge_issuances_entry; -DROP INDEX @idx_badge_issuances_purchase_entry; -DROP TABLE @badge_issuances; -DROP INDEX @idx_badge_ledger_uuid; -DROP INDEX @idx_badge_ledger_purchase; +-- down DROP INDEX @idx_badge_ledger_payment; DROP INDEX @idx_badge_ledger_charge; DROP INDEX @idx_badge_ledger_from_purchase; DROP INDEX @idx_badge_ledger_to_purchase; -DROP TABLE @badge_ledger; +ALTER TABLE @badge_ledger DROP COLUMN payment_id; +ALTER TABLE @badge_ledger DROP COLUMN charge_id; +ALTER TABLE @badge_ledger DROP COLUMN from_purchase_id; +ALTER TABLE @badge_ledger DROP COLUMN to_purchase_id; DROP INDEX @idx_badge_subscription_changes_purchase; DROP TABLE @badge_subscription_changes; DROP INDEX @idx_badge_invoices_purchase; DROP INDEX @idx_badge_invoices_offer; DROP INDEX @idx_badge_invoices_price; DROP TABLE @badge_invoices; -DROP TABLE @badge_purchases; +DROP INDEX @idx_badge_purchases_payment; +ALTER TABLE @badge_purchases DROP COLUMN payment_id; DROP TABLE @subscription_charges; -DROP INDEX @idx_payments_provider_ref; -DROP INDEX @idx_payments_invoice; -DROP TABLE @payments; -DROP TABLE @invoices; -DROP INDEX @idx_badge_offers_price; -DROP TABLE @badge_offers; -DROP TABLE @badge_prices; -|] +-} -m20261001_user_badges :: Query -m20261001_user_badges = +m20260915_user_badges :: Query +m20260915_user_badges = badgeSchema "" <> [sql| ALTER TABLE badge_purchases ADD COLUMN user_id INTEGER REFERENCES users ON DELETE CASCADE; @@ -234,10 +251,6 @@ ALTER TABLE badge_purchases ADD COLUMN alert_acked_episode TEXT; ALTER TABLE badge_purchases ADD COLUMN alert_snooze_until TEXT; -ALTER TABLE payments ADD COLUMN evidence BLOB; - -ALTER TABLE payments ADD COLUMN receipt_code TEXT; - ALTER TABLE badge_ledger ADD COLUMN entry_type_unknown INTEGER NOT NULL DEFAULT 0; ALTER TABLE badge_ledger ADD COLUMN entry_type_value TEXT; @@ -268,8 +281,8 @@ ALTER TABLE badge_purchases ADD COLUMN badge_code_redemption_id INTEGER REFERENC CREATE UNIQUE INDEX idx_badge_purchases_code_redemption ON badge_purchases(badge_code_redemption_id); |] -down_m20261001_user_badges :: Query -down_m20261001_user_badges = +down_m20260915_user_badges :: Query +down_m20260915_user_badges = [sql| DROP INDEX idx_badge_purchases_code_redemption; DROP INDEX idx_badge_purchases_user; @@ -281,3 +294,14 @@ ALTER TABLE users DROP COLUMN shown_badge_id; DROP INDEX idx_badge_code_redemptions_user; DROP TABLE badge_code_redemptions; |] + +{- TODO [badges] deferred with the draft above, client only. + +ALTER TABLE payments ADD COLUMN evidence BLOB; + +ALTER TABLE payments ADD COLUMN receipt_code TEXT; + +-- down +ALTER TABLE payments DROP COLUMN evidence; +ALTER TABLE payments DROP COLUMN receipt_code; +-} diff --git a/src/Simplex/Chat/Store/SQLite/Migrations/chat_schema.sql b/src/Simplex/Chat/Store/SQLite/Migrations/chat_schema.sql index 2706bf9fcf..090b6332ab 100644 --- a/src/Simplex/Chat/Store/SQLite/Migrations/chat_schema.sql +++ b/src/Simplex/Chat/Store/SQLite/Migrations/chat_schema.sql @@ -899,20 +899,6 @@ CREATE TABLE payments( cancelled INTEGER NOT NULL DEFAULT 0, created_at TEXT NOT NULL, updated_at TEXT NOT NULL - , - evidence BLOB, - receipt_code TEXT -) STRICT; -CREATE TABLE subscription_charges( - charge_id TEXT NOT NULL PRIMARY KEY, - payment_id TEXT NOT NULL REFERENCES payments ON DELETE CASCADE, - provider_charge_ref TEXT NOT NULL, - period_start TEXT NOT NULL, - period_end TEXT NOT NULL, - amount INTEGER NOT NULL, - currency TEXT NOT NULL, - charged_at TEXT NOT NULL, - UNIQUE(payment_id, provider_charge_ref) ) STRICT; CREATE TABLE badge_prices( price_id TEXT NOT NULL PRIMARY KEY, @@ -937,7 +923,6 @@ CREATE TABLE badge_purchases( master_key BLOB NOT NULL, initial_badge_type TEXT NOT NULL, current_badge_type TEXT NOT NULL, - payment_id TEXT REFERENCES payments, status TEXT NOT NULL, created_at TEXT NOT NULL, updated_at TEXT NOT NULL, @@ -947,29 +932,7 @@ CREATE TABLE badge_purchases( alert_acked_episode TEXT, alert_snooze_until TEXT, badge_code_redemption_id INTEGER REFERENCES badge_code_redemptions, - UNIQUE(purchase_key), - UNIQUE(payment_id) -) STRICT; -CREATE TABLE badge_invoices( - invoice_id TEXT NOT NULL PRIMARY KEY REFERENCES invoices ON DELETE CASCADE, - badge_purchase_id INTEGER NOT NULL REFERENCES badge_purchases ON DELETE CASCADE, - price_id TEXT NOT NULL REFERENCES badge_prices, - offer_id TEXT REFERENCES badge_offers, - months INTEGER NOT NULL, - created_at TEXT NOT NULL -) STRICT; -CREATE TABLE badge_subscription_changes( - change_id TEXT NOT NULL PRIMARY KEY, - badge_purchase_id INTEGER NOT NULL REFERENCES badge_purchases ON DELETE CASCADE, - from_badge_type TEXT NOT NULL, - to_badge_type TEXT NOT NULL, - from_provider_ref TEXT, - to_provider_ref TEXT, - effective TEXT NOT NULL, - status TEXT NOT NULL, - effective_at TEXT, - created_at TEXT NOT NULL, - updated_at TEXT NOT NULL + UNIQUE(purchase_key) ) STRICT; CREATE TABLE badge_ledger( entry_id INTEGER PRIMARY KEY AUTOINCREMENT, @@ -985,11 +948,7 @@ CREATE TABLE badge_ledger( created_at TEXT NOT NULL, entry_type TEXT NOT NULL, entry_credit_type TEXT, - entry_debit_type TEXT, - payment_id TEXT REFERENCES payments, - charge_id TEXT REFERENCES subscription_charges, - from_purchase_id INTEGER REFERENCES badge_purchases, - to_purchase_id INTEGER REFERENCES badge_purchases + entry_debit_type TEXT , entry_type_unknown INTEGER NOT NULL DEFAULT 0, entry_type_value TEXT, @@ -1557,21 +1516,11 @@ CREATE UNIQUE INDEX idx_file_badge_proofs_file_id_kind ON file_badge_proofs( CREATE INDEX idx_payments_provider_ref ON payments(provider, provider_ref); CREATE INDEX idx_payments_invoice ON payments(invoice_id); CREATE INDEX idx_badge_offers_price ON badge_offers(price_id); -CREATE INDEX idx_badge_invoices_purchase ON badge_invoices(badge_purchase_id); -CREATE INDEX idx_badge_invoices_offer ON badge_invoices(offer_id); -CREATE INDEX idx_badge_invoices_price ON badge_invoices(price_id); -CREATE INDEX idx_badge_subscription_changes_purchase ON badge_subscription_changes( - badge_purchase_id -); CREATE UNIQUE INDEX idx_badge_ledger_uuid ON badge_ledger(entry_uuid); CREATE INDEX idx_badge_ledger_purchase ON badge_ledger( badge_purchase_id, entry_id ); -CREATE INDEX idx_badge_ledger_payment ON badge_ledger(payment_id); -CREATE INDEX idx_badge_ledger_charge ON badge_ledger(charge_id); -CREATE INDEX idx_badge_ledger_from_purchase ON badge_ledger(from_purchase_id); -CREATE INDEX idx_badge_ledger_to_purchase ON badge_ledger(to_purchase_id); CREATE INDEX idx_badge_issuances_purchase ON badge_issuances( badge_purchase_id, issuance_id From a7aed3ebd5fdc89e89914dd06f9dea4259d8ed6e Mon Sep 17 00:00:00 2001 From: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com> Date: Tue, 15 Sep 2026 15:26:53 +0400 Subject: [PATCH 29/62] core: update query plans --- .../SQLite/Migrations/chat_query_plans.txt | 35 ++++++++++++------- 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/src/Simplex/Chat/Store/SQLite/Migrations/chat_query_plans.txt b/src/Simplex/Chat/Store/SQLite/Migrations/chat_query_plans.txt index f8fdba1c5f..6726d2ffaf 100644 --- a/src/Simplex/Chat/Store/SQLite/Migrations/chat_query_plans.txt +++ b/src/Simplex/Chat/Store/SQLite/Migrations/chat_query_plans.txt @@ -1529,6 +1529,15 @@ Plan: SEARCH connections USING INDEX idx_connections_via_contact_uri_hash (user_id=? AND via_contact_uri_hash=?) USE TEMP B-TREE FOR ORDER BY +Query: + SELECT badge_purchase_id FROM badge_purchases + WHERE user_id = ? AND purchase_priv_key IS NOT NULL + ORDER BY badge_purchase_id DESC + LIMIT 1 + +Plan: +SEARCH badge_purchases USING INDEX idx_badge_purchases_user (user_id=?) + Query: SELECT c.connection_id, c.agent_conn_id, c.conn_level, c.via_contact, c.via_user_contact_link, c.via_group_link, c.group_link_id, c.xcontact_id, c.custom_user_profile_id, c.conn_status, c.conn_type, c.contact_conn_initiated, c.local_alias, c.contact_id, c.group_member_id, c.user_contact_link_id, @@ -4034,13 +4043,11 @@ Query: p.alert_acked_kind, p.alert_acked_episode, p.alert_snooze_until FROM badge_purchases p JOIN users u ON u.user_id = p.user_id - WHERE p.user_id = ? AND p.purchase_priv_key IS NOT NULL - ORDER BY p.badge_purchase_id DESC - LIMIT 1 + WHERE p.badge_purchase_id = ? AND p.purchase_priv_key IS NOT NULL Plan: +SEARCH p USING INTEGER PRIMARY KEY (rowid=?) SEARCH u USING INTEGER PRIMARY KEY (rowid=?) -SEARCH p USING INDEX idx_badge_purchases_user (user_id=?) Query: SELECT pgm.message_id, m.shared_msg_id, m.msg_body, m.msg_chat_binding, m.msg_signatures @@ -4276,6 +4283,14 @@ SEARCH connections USING INDEX idx_connections_group_member_id (group_member_id= LIST SUBQUERY 1 SCAN group_members USING COVERING INDEX idx_group_members_user_id_local_display_name +Query: + UPDATE contact_profiles + SET badge_proof = ?, badge_pres_header = ?, badge_expiry = ?, badge_type = ?, badge_verified = ?, badge_extra = ?, badge_master_key = ?, badge_signature = ?, badge_key_idx = ?, updated_at = ? + WHERE user_id = ? AND contact_profile_id = ? + +Plan: +SEARCH contact_profiles USING INTEGER PRIMARY KEY (rowid=?) + Query: UPDATE group_members SET contact_id = ?, local_display_name = ?, contact_profile_id = ?, updated_at = ? @@ -5292,14 +5307,6 @@ Query: Plan: SEARCH connections_sync USING INTEGER PRIMARY KEY (rowid=?) -Query: - UPDATE contact_profiles - SET badge_proof = ?, badge_pres_header = ?, badge_expiry = ?, badge_type = ?, badge_verified = ?, badge_extra = ?, badge_master_key = ?, badge_signature = ?, badge_key_idx = ?, updated_at = ? - WHERE user_id = ? AND contact_profile_id = ? - -Plan: -SEARCH contact_profiles USING INTEGER PRIMARY KEY (rowid=?) - Query: UPDATE contact_profiles SET contact_link = ?, updated_at = ? @@ -7325,6 +7332,10 @@ Query: SELECT badge_purchase_id FROM badge_purchases WHERE badge_code_redemption Plan: SEARCH badge_purchases USING COVERING INDEX idx_badge_purchases_code_redemption (badge_code_redemption_id=?) +Query: SELECT balance_checked FROM badge_ledger ORDER BY entry_id +Plan: +SCAN badge_ledger + Query: SELECT c.agent_conn_id FROM connections c JOIN group_members m ON m.group_member_id = c.group_member_id WHERE m.local_display_name = ? Plan: SCAN m USING COVERING INDEX idx_group_members_user_id_local_display_name From cd4225869d06b299f17141ad078b9de2a9a21b57 Mon Sep 17 00:00:00 2001 From: SimpleX Chat Date: Tue, 15 Sep 2026 15:57:39 +0400 Subject: [PATCH 30/62] ios 355 --- apps/ios/SimpleX.xcodeproj/project.pbxproj | 36 +++++++++++----------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/apps/ios/SimpleX.xcodeproj/project.pbxproj b/apps/ios/SimpleX.xcodeproj/project.pbxproj index 304f3768c5..dcace38daa 100644 --- a/apps/ios/SimpleX.xcodeproj/project.pbxproj +++ b/apps/ios/SimpleX.xcodeproj/project.pbxproj @@ -183,8 +183,8 @@ 64C3B0212A0D359700E19930 /* CustomTimePicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64C3B0202A0D359700E19930 /* CustomTimePicker.swift */; }; 64C8299D2D54AEEE006B9E89 /* libgmp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C829982D54AEED006B9E89 /* libgmp.a */; }; 64C8299E2D54AEEE006B9E89 /* libffi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C829992D54AEEE006B9E89 /* libffi.a */; }; - 64C8299F2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.4-4q834kD5SZSFNbM5stNfdS-ghc9.6.3.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C8299A2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.4-4q834kD5SZSFNbM5stNfdS-ghc9.6.3.a */; }; - 64C829A02D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.4-4q834kD5SZSFNbM5stNfdS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C8299B2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.4-4q834kD5SZSFNbM5stNfdS.a */; }; + 64C8299F2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.5-IGts36xYjPC79miwfnmQnN-ghc9.6.3.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C8299A2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.5-IGts36xYjPC79miwfnmQnN-ghc9.6.3.a */; }; + 64C829A02D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.5-IGts36xYjPC79miwfnmQnN.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C8299B2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.5-IGts36xYjPC79miwfnmQnN.a */; }; 64C829A12D54AEEE006B9E89 /* libgmpxx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C8299C2D54AEEE006B9E89 /* libgmpxx.a */; }; 64D0C2C029F9688300B38D5F /* UserAddressView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64D0C2BF29F9688300B38D5F /* UserAddressView.swift */; }; 64D0C2C229FA57AB00B38D5F /* UserAddressLearnMore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64D0C2C129FA57AB00B38D5F /* UserAddressLearnMore.swift */; }; @@ -563,8 +563,8 @@ 64C3B0202A0D359700E19930 /* CustomTimePicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomTimePicker.swift; sourceTree = ""; }; 64C829982D54AEED006B9E89 /* libgmp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmp.a; sourceTree = ""; }; 64C829992D54AEEE006B9E89 /* libffi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libffi.a; sourceTree = ""; }; - 64C8299A2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.4-4q834kD5SZSFNbM5stNfdS-ghc9.6.3.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-7.1.0.4-4q834kD5SZSFNbM5stNfdS-ghc9.6.3.a"; sourceTree = ""; }; - 64C8299B2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.4-4q834kD5SZSFNbM5stNfdS.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-7.1.0.4-4q834kD5SZSFNbM5stNfdS.a"; sourceTree = ""; }; + 64C8299A2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.5-IGts36xYjPC79miwfnmQnN-ghc9.6.3.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-7.1.0.5-IGts36xYjPC79miwfnmQnN-ghc9.6.3.a"; sourceTree = ""; }; + 64C8299B2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.5-IGts36xYjPC79miwfnmQnN.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-7.1.0.5-IGts36xYjPC79miwfnmQnN.a"; sourceTree = ""; }; 64C8299C2D54AEEE006B9E89 /* libgmpxx.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmpxx.a; sourceTree = ""; }; 64D0C2BF29F9688300B38D5F /* UserAddressView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserAddressView.swift; sourceTree = ""; }; 64D0C2C129FA57AB00B38D5F /* UserAddressLearnMore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserAddressLearnMore.swift; sourceTree = ""; }; @@ -735,8 +735,8 @@ 64C8299D2D54AEEE006B9E89 /* libgmp.a in Frameworks */, 64C8299E2D54AEEE006B9E89 /* libffi.a in Frameworks */, 64C829A12D54AEEE006B9E89 /* libgmpxx.a in Frameworks */, - 64C8299F2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.4-4q834kD5SZSFNbM5stNfdS-ghc9.6.3.a in Frameworks */, - 64C829A02D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.4-4q834kD5SZSFNbM5stNfdS.a in Frameworks */, + 64C8299F2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.5-IGts36xYjPC79miwfnmQnN-ghc9.6.3.a in Frameworks */, + 64C829A02D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.5-IGts36xYjPC79miwfnmQnN.a in Frameworks */, CE38A29C2C3FCD72005ED185 /* SwiftyGif in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -822,8 +822,8 @@ 64C829992D54AEEE006B9E89 /* libffi.a */, 64C829982D54AEED006B9E89 /* libgmp.a */, 64C8299C2D54AEEE006B9E89 /* libgmpxx.a */, - 64C8299A2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.4-4q834kD5SZSFNbM5stNfdS-ghc9.6.3.a */, - 64C8299B2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.4-4q834kD5SZSFNbM5stNfdS.a */, + 64C8299A2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.5-IGts36xYjPC79miwfnmQnN-ghc9.6.3.a */, + 64C8299B2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.5-IGts36xYjPC79miwfnmQnN.a */, ); path = Libraries; sourceTree = ""; @@ -2081,7 +2081,7 @@ CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES; CODE_SIGN_ENTITLEMENTS = "SimpleX (iOS).entitlements"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 352; + CURRENT_PROJECT_VERSION = 355; DEAD_CODE_STRIPPING = YES; DEVELOPMENT_TEAM = 5NN7GUYB6T; ENABLE_BITCODE = NO; @@ -2131,7 +2131,7 @@ CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES; CODE_SIGN_ENTITLEMENTS = "SimpleX (iOS).entitlements"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 352; + CURRENT_PROJECT_VERSION = 355; DEAD_CODE_STRIPPING = YES; DEVELOPMENT_TEAM = 5NN7GUYB6T; ENABLE_BITCODE = NO; @@ -2173,7 +2173,7 @@ buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 352; + CURRENT_PROJECT_VERSION = 355; DEVELOPMENT_TEAM = 5NN7GUYB6T; GENERATE_INFOPLIST_FILE = YES; IPHONEOS_DEPLOYMENT_TARGET = 15.0; @@ -2193,7 +2193,7 @@ buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 352; + CURRENT_PROJECT_VERSION = 355; DEVELOPMENT_TEAM = 5NN7GUYB6T; GENERATE_INFOPLIST_FILE = YES; IPHONEOS_DEPLOYMENT_TARGET = 15.0; @@ -2218,7 +2218,7 @@ CODE_SIGN_ENTITLEMENTS = "SimpleX NSE/SimpleX NSE.entitlements"; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 352; + CURRENT_PROJECT_VERSION = 355; DEVELOPMENT_TEAM = 5NN7GUYB6T; ENABLE_BITCODE = NO; GCC_OPTIMIZATION_LEVEL = s; @@ -2255,7 +2255,7 @@ CODE_SIGN_ENTITLEMENTS = "SimpleX NSE/SimpleX NSE.entitlements"; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 352; + CURRENT_PROJECT_VERSION = 355; DEVELOPMENT_TEAM = 5NN7GUYB6T; ENABLE_BITCODE = NO; ENABLE_CODE_COVERAGE = NO; @@ -2292,7 +2292,7 @@ CLANG_TIDY_BUGPRONE_REDUNDANT_BRANCH_CONDITION = YES; CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 352; + CURRENT_PROJECT_VERSION = 355; DEFINES_MODULE = YES; DEVELOPMENT_TEAM = 5NN7GUYB6T; DYLIB_COMPATIBILITY_VERSION = 1; @@ -2343,7 +2343,7 @@ CLANG_TIDY_BUGPRONE_REDUNDANT_BRANCH_CONDITION = YES; CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 352; + CURRENT_PROJECT_VERSION = 355; DEFINES_MODULE = YES; DEVELOPMENT_TEAM = 5NN7GUYB6T; DYLIB_COMPATIBILITY_VERSION = 1; @@ -2397,7 +2397,7 @@ CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; CODE_SIGN_ENTITLEMENTS = "SimpleX SE/SimpleX SE.entitlements"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 352; + CURRENT_PROJECT_VERSION = 355; DEVELOPMENT_TEAM = 5NN7GUYB6T; ENABLE_USER_SCRIPT_SANDBOXING = YES; GCC_C_LANGUAGE_STANDARD = gnu17; @@ -2431,7 +2431,7 @@ CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; CODE_SIGN_ENTITLEMENTS = "SimpleX SE/SimpleX SE.entitlements"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 352; + CURRENT_PROJECT_VERSION = 355; DEVELOPMENT_TEAM = 5NN7GUYB6T; ENABLE_USER_SCRIPT_SANDBOXING = YES; GCC_C_LANGUAGE_STANDARD = gnu17; From 6a7eae2751c9c8a987e712c9fb4b357228adaea6 Mon Sep 17 00:00:00 2001 From: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com> Date: Tue, 15 Sep 2026 14:23:13 +0000 Subject: [PATCH 31/62] ui: redeem code (#7482) --- apps/ios/Shared/Model/AppAPITypes.swift | 29 +++ apps/ios/Shared/Model/ChatModel.swift | 24 ++ apps/ios/Shared/Model/SimpleXAPI.swift | 152 ++++++++++- .../Views/Badges/BadgeUserPreview.swift | 3 +- .../Views/Badges/BadgesHowItWorksView.swift | 7 +- .../Views/Badges/BadgesRedeemCodeView.swift | 210 ++++++++++++++- .../Badges/BadgesSupportSimplexView.swift | 67 +++-- apps/ios/Shared/Views/Badges/BadgesView.swift | 35 +++ .../Views/Badges/BadgesYourBadgeView.swift | 93 +++++++ .../Views/Badges/SupportSimpleXBanner.swift | 16 +- .../Shared/Views/ChatList/ChatListView.swift | 54 +++- .../Shared/Views/ChatList/UserPicker.swift | 3 +- .../Shared/Views/NewChat/NewChatView.swift | 3 +- .../Views/Onboarding/WhatsNewView.swift | 4 +- .../Views/UserSettings/SettingsView.swift | 5 +- .../Views/UserSettings/UserProfilesView.swift | 2 +- apps/ios/SimpleX.xcodeproj/project.pbxproj | 24 +- apps/ios/SimpleXChat/API.swift | 8 + apps/ios/SimpleXChat/ChatTypes.swift | 88 ++++++- apps/ios/SimpleXChat/SimpleX.h | 2 + .../foss/java/chat/simplex/app/PlayStore.kt | 2 + .../google/java/chat/simplex/app/PlayStore.kt | 2 + .../main/java/chat/simplex/app/SimplexApp.kt | 2 + .../src/commonMain/cpp/android/simplex-api.c | 9 + .../src/commonMain/cpp/desktop/simplex-api.c | 9 + .../chat/simplex/common/model/ChatModel.kt | 110 ++++++++ .../chat/simplex/common/model/SimpleXAPI.kt | 166 ++++++++++++ .../chat/simplex/common/platform/Core.kt | 1 + .../chat/simplex/common/platform/Platform.kt | 1 + .../common/views/badges/BadgeUserPreview.kt | 4 +- .../views/badges/BadgesRedeemCodeView.kt | 246 +++++++++++++++++- .../views/badges/BadgesSupportSimplexView.kt | 74 ++++-- .../simplex/common/views/badges/BadgesView.kt | 25 ++ .../views/badges/BadgesYourBadgeView.kt | 76 ++++++ .../views/badges/SupportSimpleXBanner.kt | 19 +- .../common/views/chatlist/ChatListView.kt | 55 +++- .../common/views/newchat/OnboardingCards.kt | 7 +- .../common/views/onboarding/WhatsNewView.kt | 4 +- .../common/views/usersettings/SettingsView.kt | 7 +- .../commonMain/resources/MR/ar/strings.xml | 30 --- .../commonMain/resources/MR/base/strings.xml | 66 ++--- .../commonMain/resources/MR/bg/strings.xml | 18 -- .../commonMain/resources/MR/ca/strings.xml | 18 -- .../commonMain/resources/MR/cs/strings.xml | 24 -- .../commonMain/resources/MR/da/strings.xml | 11 - .../commonMain/resources/MR/de/strings.xml | 30 --- .../commonMain/resources/MR/el/strings.xml | 19 -- .../commonMain/resources/MR/es/strings.xml | 30 --- .../commonMain/resources/MR/fa/strings.xml | 18 -- .../commonMain/resources/MR/fr/strings.xml | 30 --- .../commonMain/resources/MR/hr/strings.xml | 6 - .../commonMain/resources/MR/hu/strings.xml | 30 --- .../commonMain/resources/MR/in/strings.xml | 28 -- .../commonMain/resources/MR/it/strings.xml | 30 --- .../commonMain/resources/MR/iw/strings.xml | 3 - .../commonMain/resources/MR/ja/strings.xml | 28 -- .../commonMain/resources/MR/ko/strings.xml | 4 - .../commonMain/resources/MR/ku/strings.xml | 3 - .../commonMain/resources/MR/lv/strings.xml | 18 -- .../commonMain/resources/MR/nl/strings.xml | 16 -- .../commonMain/resources/MR/pl/strings.xml | 19 -- .../resources/MR/pt-rBR/strings.xml | 30 --- .../commonMain/resources/MR/ro/strings.xml | 19 -- .../commonMain/resources/MR/ru/strings.xml | 30 --- .../commonMain/resources/MR/sk/strings.xml | 8 - .../commonMain/resources/MR/tr/strings.xml | 30 --- .../commonMain/resources/MR/uk/strings.xml | 24 -- .../commonMain/resources/MR/vi/strings.xml | 21 -- .../resources/MR/zh-rCN/strings.xml | 30 --- .../resources/MR/zh-rTW/strings.xml | 29 --- flake.nix | 2 + libsimplex.dll.def | 1 + src/Simplex/Chat.hs | 3 +- src/Simplex/Chat/Badges/Types.hs | 2 + src/Simplex/Chat/Library/Commands.hs | 5 +- src/Simplex/Chat/Mobile.hs | 10 + 76 files changed, 1590 insertions(+), 781 deletions(-) create mode 100644 apps/ios/Shared/Views/Badges/BadgesView.swift create mode 100644 apps/ios/Shared/Views/Badges/BadgesYourBadgeView.swift create mode 100644 apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesView.kt create mode 100644 apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesYourBadgeView.kt diff --git a/apps/ios/Shared/Model/AppAPITypes.swift b/apps/ios/Shared/Model/AppAPITypes.swift index db70511a5a..4a629bbd41 100644 --- a/apps/ios/Shared/Model/AppAPITypes.swift +++ b/apps/ios/Shared/Model/AppAPITypes.swift @@ -191,6 +191,10 @@ enum ChatCommand: ChatCmdProtocol { case apiUploadStandaloneFile(userId: Int64, file: CryptoFile) case apiDownloadStandaloneFile(userId: Int64, url: String, file: CryptoFile) case apiStandaloneFileInfo(url: String) + // badges + case apiRedeemBadgeCode(userId: Int64, code: String) + case apiGetBadgeState(userId: Int64) + case apiAckBadgeAlert(userId: Int64, badgePurchaseId: Int64, alertKind: BadgeAlertKind, snooze: Bool, episode: String) // misc case showVersion case getAgentSubsTotal(userId: Int64) @@ -413,6 +417,10 @@ enum ChatCommand: ChatCmdProtocol { case let .apiUploadStandaloneFile(userId, file): return "/_upload \(userId) \(file.filePath)" case let .apiDownloadStandaloneFile(userId, link, file): return "/_download \(userId) \(link) \(file.filePath)" case let .apiStandaloneFileInfo(link): return "/_download info \(link)" + case let .apiRedeemBadgeCode(userId, code): return "/_redeem_badge_code \(userId) \(code)" + case let .apiGetBadgeState(userId): return "/_badge state \(userId)" + case let .apiAckBadgeAlert(userId, badgePurchaseId, alertKind, snooze, episode): + return "/_badge ack \(userId) \(badgePurchaseId) \(alertKind.text) \(onOff(snooze)) \(episode)" case .showVersion: return "/version" case let .getAgentSubsTotal(userId): return "/get subs total \(userId)" case let .getAgentServersSummary(userId): return "/get servers summary \(userId)" @@ -600,6 +608,9 @@ enum ChatCommand: ChatCmdProtocol { case .apiUploadStandaloneFile: return "apiUploadStandaloneFile" case .apiDownloadStandaloneFile: return "apiDownloadStandaloneFile" case .apiStandaloneFileInfo: return "apiStandaloneFileInfo" + case .apiRedeemBadgeCode: return "apiRedeemBadgeCode" + case .apiGetBadgeState: return "apiGetBadgeState" + case .apiAckBadgeAlert: return "apiAckBadgeAlert" case .showVersion: return "showVersion" case .getAgentSubsTotal: return "getAgentSubsTotal" case .getAgentServersSummary: return "getAgentServersSummary" @@ -653,6 +664,9 @@ enum ChatCommand: ChatCmdProtocol { return .apiDeleteUser(userId: userId, delSMPQueues: delSMPQueues, viewPwd: obfuscate(viewPwd)) case let .testStorageEncryption(key): return .testStorageEncryption(key: obfuscate(key)) + // a code is a bearer secret until it is redeemed, and the terminal shows and copies cmdString + case let .apiRedeemBadgeCode(userId, code): + return .apiRedeemBadgeCode(userId: userId, code: obfuscate(code)) default: return self } } @@ -1019,6 +1033,10 @@ enum ChatResponse2: Decodable, ChatAPIResult { case archiveExported(archiveErrors: [ArchiveError]) case archiveImported(archiveErrors: [ArchiveError]) case appSettings(appSettings: AppSettings) + // badges + // the full user, not UserRef: its profile carries the badge that setUserBadge just stored + case badgeRedeemed(user: User, redeemedBadge: LocalBadge, newBadge: Bool) + case badgeState(user: UserRef, badgeState: BadgeState?) var responseType: String { switch self { @@ -1070,6 +1088,8 @@ enum ChatResponse2: Decodable, ChatAPIResult { case .archiveExported: "archiveExported" case .archiveImported: "archiveImported" case .appSettings: "appSettings" + case .badgeRedeemed: "badgeRedeemed" + case .badgeState: "badgeState" } } @@ -1123,6 +1143,8 @@ enum ChatResponse2: Decodable, ChatAPIResult { case let .archiveExported(archiveErrors): return String(describing: archiveErrors) case let .archiveImported(archiveErrors): return String(describing: archiveErrors) case let .appSettings(appSettings): return String(describing: appSettings) + case let .badgeRedeemed(u, redeemedBadge, newBadge): return withUser(u, "redeemedBadge: \(String(describing: redeemedBadge))\nnewBadge: \(newBadge)") + case let .badgeState(u, badgeState): return withUser(u, String(describing: badgeState)) } } } @@ -1205,6 +1227,9 @@ enum ChatEvent: Decodable, ChatAPIResult { case remoteCtrlStopped(rcsState: RemoteCtrlSessionState, rcStopReason: RemoteCtrlStopReason) // pq case contactPQEnabled(user: UserRef, contact: Contact, pqEnabled: Bool) + // badges + case badgeChanged(user: User, badgeState: BadgeState?) + case badgeAlert(user: UserRef, badgeAlert: BadgeAlert) var responseType: String { switch self { @@ -1277,6 +1302,8 @@ enum ChatEvent: Decodable, ChatAPIResult { case .remoteCtrlConnected: "remoteCtrlConnected" case .remoteCtrlStopped: "remoteCtrlStopped" case .contactPQEnabled: "contactPQEnabled" + case .badgeChanged: "badgeChanged" + case .badgeAlert: "badgeAlert" } } @@ -1359,6 +1386,8 @@ enum ChatEvent: Decodable, ChatAPIResult { case let .remoteCtrlConnected(remoteCtrl): return String(describing: remoteCtrl) case let .remoteCtrlStopped(rcsState, rcStopReason): return "rcsState: \(String(describing: rcsState))\nrcStopReason: \(String(describing: rcStopReason))" case let .contactPQEnabled(u, contact, pqEnabled): return withUser(u, "contact: \(String(describing: contact))\npqEnabled: \(pqEnabled)") + case let .badgeChanged(u, badgeState): return withUser(u, String(describing: badgeState)) + case let .badgeAlert(u, badgeAlert): return withUser(u, String(describing: badgeAlert)) } } } diff --git a/apps/ios/Shared/Model/ChatModel.swift b/apps/ios/Shared/Model/ChatModel.swift index e3a6ae30b9..1bf711ca5f 100644 --- a/apps/ios/Shared/Model/ChatModel.swift +++ b/apps/ios/Shared/Model/ChatModel.swift @@ -359,6 +359,30 @@ class ChannelRelaysModel: ObservableObject { } } +// The badge of whichever profile it was last loaded for, kept current by the badgeChanged event so +// that a screen already open shows what the renewal worker did with no command behind it. +class BadgeModel: ObservableObject { + static let shared = BadgeModel() + @Published private(set) var userId: Int64? + @Published private(set) var badgeState: BadgeState? + @Published private(set) var alert: BadgeAlert? + + // alert follows the state: getUserBadgeState derives it on every read, so a badgeChanged is + // never staler than the alert it carries - the invariant a new alert kind must keep + func set(userId: Int64, badgeState: BadgeState?) { + self.userId = userId + self.badgeState = badgeState + alert = badgeState?.alert + } + + func setAlert(userId: Int64, alert: BadgeAlert) { + if self.userId == userId { + self.alert = alert + badgeState?.alert = alert + } + } +} + // Spec: spec/state.md#ChatModel final class ChatModel: ObservableObject { @Published var onboardingStage: OnboardingStage? diff --git a/apps/ios/Shared/Model/SimpleXAPI.swift b/apps/ios/Shared/Model/SimpleXAPI.swift index d7f29087d8..b90527507c 100644 --- a/apps/ios/Shared/Model/SimpleXAPI.swift +++ b/apps/ios/Shared/Model/SimpleXAPI.swift @@ -2182,6 +2182,119 @@ func resetAgentServersStats() async throws { try await sendCommandOkResp(.resetAgentServersStats) } +// The failures redeemBadgeCode raises, as core flattens them to command error text. +// tests/Bots/BadgeServiceTests.hs asserts that text, so a change in core breaks a test there. +enum BadgeRedeemError: Error { + case invalidCode + case serviceNotConfigured + case alreadyActive + case codeInvalid + case codeUsed + case codeExpired + case rateLimited + case serviceFailed + case badServiceResponse + case credentialNotVerified + case unsupportedVersion + case networkError + case badgeEnded + case unknown +} + +private enum BadgeErrorText { + static let invalidCode = "invalid badge code" + static let serviceNotConfigured = "badge service not configured" + static let alreadyActive = "badge already active" + static let unknownKeyIndex = "unknown badge key index" + static let credentialNotVerified = "badge credential does not verify against configured key" + static let invalidResponse = "invalid badge service response, " + static let unexpectedResponse = "unexpected badge service response: " + static let serviceError = "badge service error: " + // raised by sendServiceRequestTo, not by redeemBadgeCode itself, when the reply is not JSON + static let undecodableResponse = "invalid service response" +} + +func badgeRedeemError(_ error: ChatError) -> BadgeRedeemError { + // the app's own classifier decides what counts as a network failure; only the classification is + // used here, not its retry policy - a client that retries makes code guessing cheaper + if retryableNetworkErrorAlert(error) != nil { return .networkError } + guard case let .error(.commandError(message)) = error else { return .unknown } + switch message { + case BadgeErrorText.invalidCode: return .invalidCode + case BadgeErrorText.serviceNotConfigured: return .serviceNotConfigured + case BadgeErrorText.alreadyActive: return .alreadyActive + case BadgeErrorText.unknownKeyIndex, BadgeErrorText.credentialNotVerified: return .credentialNotVerified + case BadgeErrorText.undecodableResponse: return .badServiceResponse + default: break + } + if message.hasPrefix(BadgeErrorText.invalidResponse) || message.hasPrefix(BadgeErrorText.unexpectedResponse) { + return .badServiceResponse + } + if message.hasPrefix(BadgeErrorText.serviceError) { + return badgeServiceError(String(message.dropFirst(BadgeErrorText.serviceError.count))) + } + return .unknown +} + +// the service's own tag, which core bounds to [a-z0-9_] and 32 characters and which is never shown +private func badgeServiceError(_ tag: String) -> BadgeRedeemError { + switch tag { + case "code_invalid": return .codeInvalid + case "code_used": return .codeUsed + case "code_expired": return .codeExpired + case "rate_limited": return .rateLimited + // retrying never succeeds: the client is too old for the service + case "unsupported_version": return .unsupportedVersion + default: return .serviceFailed + } +} + +// log: false because the code is a bearer secret until it is redeemed - it is in the command, and a +// service response echoed into an error message would carry it into the terminal with the response. +func apiRedeemBadgeCode(_ userId: Int64, _ code: String) async throws -> (user: User, newBadge: Bool) { + let r: APIResult = await chatApiSendCmd(.apiRedeemBadgeCode(userId: userId, code: code), log: false) + switch r { + // redeemedBadge is dropped: it is the credential, and the user's profile carries what is shown + case let .result(.badgeRedeemed(user, _, newBadge)): return (user, newBadge) + case let .error(e): throw badgeRedeemError(e) + default: + // the response type alone - it names a case or a JSON key, never the service's message + logger.error("apiRedeemBadgeCode: unexpected \(r.responseType)") + throw BadgeRedeemError.unknown + } +} + +func apiGetBadgeState(_ userId: Int64) async throws -> BadgeState? { + let r: ChatResponse2 = try await chatSendCmd(.apiGetBadgeState(userId: userId)) + if case let .badgeState(_, badgeState) = r { return badgeState } + throw r.unexpected +} + +func apiGetBadgeStateSync(_ userId: Int64) throws -> BadgeState? { + let r: ChatResponse2 = try chatSendCmdSync(.apiGetBadgeState(userId: userId)) + if case let .badgeState(_, badgeState) = r { return badgeState } + throw r.unexpected +} + +func apiAckBadgeAlert(_ userId: Int64, _ badgePurchaseId: Int64, _ alertKind: BadgeAlertKind, snooze: Bool, episode: String) async throws -> BadgeState? { + let r: ChatResponse2 = try await chatSendCmd(.apiAckBadgeAlert(userId: userId, badgePurchaseId: badgePurchaseId, alertKind: alertKind, snooze: snooze, episode: episode)) + if case let .badgeState(_, badgeState) = r { return badgeState } + throw r.unexpected +} + +// An API call and not a stored flag: the ack is kept on the purchase in core, which then stops +// raising this occurrence on every pass and across restarts, or until a snooze lapses. +func ackBadgeAlert(snooze: Bool) async { + let badgeModel = BadgeModel.shared + guard let userId = badgeModel.userId, let purchaseId = badgeModel.badgeState?.badgePurchaseId, let alert = badgeModel.alert else { return } + do { + let badgeState = try await apiAckBadgeAlert(userId, purchaseId, alert.kind, snooze: snooze, episode: alert.episode) + await MainActor.run { badgeModel.set(userId: userId, badgeState: badgeState) } + } catch let error { + logger.error("ackBadgeAlert: \(responseError(error))") + } +} + private func currentUserId(_ funcName: String) throws -> Int64 { if let userId = ChatModel.shared.currentUser?.userId { return userId @@ -2352,12 +2465,34 @@ func getUserChatData() throws { tm.activeFilter = nil tm.userTags = tags tm.updateChatTags(m.chats) + loadBadgeState() +} + +// Not thrown: a failed badge read must not stop the app starting, and the model is left alone +// rather than set to nil, which would read as "no badge". +private func loadBadgeState() { + do { + let userId = try currentUserId("loadBadgeState") + let badgeState = try apiGetBadgeStateSync(userId) + BadgeModel.shared.set(userId: userId, badgeState: badgeState) + } catch let error { + logger.error("loadBadgeState: \(responseError(error))") + } +} + +private func loadBadgeStateAsync(_ userId: Int64) async { + do { + let badgeState = try await apiGetBadgeState(userId) + await MainActor.run { BadgeModel.shared.set(userId: userId, badgeState: badgeState) } + } catch let error { + logger.error("loadBadgeState: \(responseError(error))") + } } private func getUserChatDataAsync(keepingChatId: String?) async throws { let m = ChatModel.shared let tm = ChatTagsModel.shared - if m.currentUser != nil { + if let userId = m.currentUser?.userId { let userAddress = try await apiGetUserAddressAsync() let chatItemTTL = try await getChatItemTTLAsync() let chats = try await apiGetChatsAsync() @@ -2370,6 +2505,7 @@ private func getUserChatDataAsync(keepingChatId: String?) async throws { tm.userTags = tags tm.updateChatTags(m.chats) } + await loadBadgeStateAsync(userId) } else { await MainActor.run { m.userAddress = nil @@ -2948,6 +3084,20 @@ func processReceivedMsg(_ res: ChatEvent) async { m.updateContact(contact) } } + case let .badgeChanged(user, badgeState): + if active(user) { + await MainActor.run { + // read by core after retiring or presenting, so it carries the profile badge as changed + m.updateUser(user) + BadgeModel.shared.set(userId: user.userId, badgeState: badgeState) + } + } + case let .badgeAlert(user, badgeAlert): + if active(user) { + await MainActor.run { + BadgeModel.shared.setAlert(userId: user.userId, alert: badgeAlert) + } + } default: logger.debug("unsupported event: \(res.responseType)") } diff --git a/apps/ios/Shared/Views/Badges/BadgeUserPreview.swift b/apps/ios/Shared/Views/Badges/BadgeUserPreview.swift index 3e7216866e..45d94c3ed6 100644 --- a/apps/ios/Shared/Views/Badges/BadgeUserPreview.swift +++ b/apps/ios/Shared/Views/Badges/BadgeUserPreview.swift @@ -23,7 +23,8 @@ struct BadgeUserPreview: View { let user = chatModel.currentUser let displayName = user?.displayName ?? NSLocalizedString("My nickname", comment: "badges preview placeholder") let previewBadge = LocalBadge( - badge: BadgeInfo(badgeType: level.badgeType), + // fabricated for the preview: the status is given here, and NameBadge renders from it alone + badge: BadgeInfo(badgeType: level.badgeType, badgeExpiry: .distantFuture), status: .active ) return VStack(spacing: 12) { diff --git a/apps/ios/Shared/Views/Badges/BadgesHowItWorksView.swift b/apps/ios/Shared/Views/Badges/BadgesHowItWorksView.swift index 24836b37f9..86035cc223 100644 --- a/apps/ios/Shared/Views/Badges/BadgesHowItWorksView.swift +++ b/apps/ios/Shared/Views/Badges/BadgesHowItWorksView.swift @@ -9,7 +9,6 @@ import SwiftUI import SimpleXChat -// TODO [badges]: replace lorem ipsum with the real copy once the badge protocol and privacy properties are documented. struct BadgesHowItWorksView: View { @EnvironmentObject var theme: AppTheme @@ -23,9 +22,9 @@ struct BadgesHowItWorksView: View { .padding(.bottom, 16) ScrollView { VStack(alignment: .leading, spacing: 12) { - Text("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.") - Text("Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.") - Text("Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.") + Text("A badge is not an account. It is a signed credential stored on your device. It does not identify you, and no one keeps a record of who holds which badge.") + Text("Your contacts see the badge and its expiry date, and nothing else. The badge carries no identifier, so it cannot be used to find out who you are or to match you across chats.") + Text("Payment and badge are kept apart. Paying is one step; the badge is issued in another, under a key that exists only for that badge. Whoever handles the payment cannot see where the badge ends up.") } .lineLimit(nil) .fixedSize(horizontal: false, vertical: true) diff --git a/apps/ios/Shared/Views/Badges/BadgesRedeemCodeView.swift b/apps/ios/Shared/Views/Badges/BadgesRedeemCodeView.swift index 2101bfa7f0..6298425e8c 100644 --- a/apps/ios/Shared/Views/Badges/BadgesRedeemCodeView.swift +++ b/apps/ios/Shared/Views/Badges/BadgesRedeemCodeView.swift @@ -8,22 +8,214 @@ import SwiftUI import SimpleXChat +import CodeScanner + +private let badgeCodePrefix = "SB" +private let badgeCodeBodyLength = 20 +private let badgeCodeGroupLength = 5 + +// Regroups what was typed; validity and the folding of ambiguous characters are core's alone. +private func formatBadgeCodeInput(_ s: String) -> String { + var normalized = "" + for c in s.prefix(256).uppercased() { + guard c.isLetter || c.isNumber else { continue } + normalized.append(c) + if normalized.count == badgeCodePrefix.count + badgeCodeBodyLength { break } + } + guard normalized.hasPrefix(badgeCodePrefix) else { return normalized } + var groups = [badgeCodePrefix] + var i = normalized.index(normalized.startIndex, offsetBy: badgeCodePrefix.count) + while i < normalized.endIndex { + let j = normalized.index(i, offsetBy: badgeCodeGroupLength, limitedBy: normalized.endIndex) ?? normalized.endIndex + groups.append(String(normalized[i.. some View { + Text("Redeem code") + .font(.largeTitle) + .bold() + .foregroundColor(theme.colors.primary) + .multilineTextAlignment(.center) + .fixedSize(horizontal: false, vertical: true) + + Text("Paste the code from your receipt.") + .font(.body) + .multilineTextAlignment(.center) + .fixedSize(horizontal: false, vertical: true) + + codeField() + + pasteButton() + + ScannerInView( + showQRCodeScanner: $showQRCodeScanner, + scannerPaused: $submitting, + processQRCode: processQRCode, + scanMode: .oncePerCode, + placeholderBackground: Color(.tertiarySystemFill) + ) + .fixedSize(horizontal: false, vertical: true) + .padding(.top, 12) + + Spacer(minLength: 0) + + VStack(spacing: 10) { + submitButton() + .padding(.vertical, 10) + Color.clear + .frame(height: 22) + } + .padding(.bottom, g.safeAreaInsets.bottom == 0 ? 20 : 0) + } + + private func codeField() -> some View { + TextField(text: $code) { Text(verbatim: "SB-XXXXX-XXXXX-XXXXX-XXXXX") } + .font(.body.monospaced()) + .multilineTextAlignment(.center) + .autocorrectionDisabled(true) + .textInputAutocapitalization(.characters) + .disabled(submitting) + .padding(EdgeInsets(top: 14, leading: 12, bottom: 14, trailing: 12)) + .background(Color(.tertiarySystemFill)) + .cornerRadius(10.0) + .onChange(of: code) { applyCodeInput($0) } + } + + private func pasteButton() -> some View { + Button { + if let pasted = UIPasteboard.general.string { applyCodeInput(pasted) } + } label: { + Text("Paste") + .font(.body) + .fontWeight(.medium) + .foregroundColor(theme.colors.primary) + } + .disabled(submitting) + } + + private func applyCodeInput(_ s: String) { + let formatted = formatBadgeCodeInput(s) + if formatted != code { code = formatted } + canonicalCode = parseBadgeCode(formatted) + } + + private func processQRCode(_ resp: Result) { + switch resp { + case let .success(r): + let formatted = formatBadgeCodeInput(r.string) + if parseBadgeCode(formatted) == nil { + showAlert( + NSLocalizedString("Invalid QR code", comment: "alert title"), + message: NSLocalizedString("The code you scanned is not a badge code.", comment: "alert message") + ) + } else { + applyCodeInput(formatted) + redeem() + } + case let .failure(e): + logger.error("processQRCode QR code error: \(e.localizedDescription)") + showAlert( + NSLocalizedString("Invalid QR code", comment: "alert title"), + message: String.localizedStringWithFormat(NSLocalizedString("Error scanning code: %@", comment: "alert message"), e.localizedDescription) + ) + } + } + + private func submitButton() -> some View { + let disabled = canonicalCode == nil || submitting + return Button { + redeem() + } label: { + Text("Redeem") + } + .buttonStyle(OnboardingButtonStyle(isDisabled: disabled)) + .disabled(disabled) + } + + private func redeem() { + guard let sending = canonicalCode, let user = chatModel.currentUser else { return } + submitting = true + Task { + do { + let (redeemedUser, newBadge) = try await apiRedeemBadgeCode(user.userId, sending) + let badgeState = try? await apiGetBadgeState(user.userId) + await MainActor.run { + submitting = false + // written before the pop: BadgesView swaps its content under this pushed view, so + // the pop reveals Your Badge already in place rather than animating it afterwards + if let badgeState { + BadgeModel.shared.set(userId: user.userId, badgeState: badgeState) + } + // the response is the only carrier: redeeming raises no event that refreshes the + // profile, so without this the badge beside the name is the one from before + chatModel.updateUser(redeemedUser) + if let badgeState, !badgeState.shown { + // a replay adds no purchase; a fresh code's badge can be retired on arrival + showAlert(NSLocalizedString("Cannot redeem code", comment: "alert title"), message: failureMessage(newBadge ? .badgeEnded : .codeUsed)) + } else { + supporterBannerShown = true + dismiss() + } + } + } catch let error { + let redeemError = error as? BadgeRedeemError ?? .unknown + // the mapped case only - core embeds the service's response in some of these messages + logger.error("apiRedeemBadgeCode: \(String(describing: redeemError))") + await MainActor.run { + submitting = false + showAlert(NSLocalizedString("Cannot redeem code", comment: "alert title"), message: failureMessage(redeemError)) + } + } + } + } + + private func failureMessage(_ failure: BadgeRedeemError) -> String { + switch failure { + case .invalidCode: NSLocalizedString("This code is not valid.", comment: "alert message") + case .serviceNotConfigured: NSLocalizedString("This app version cannot redeem badge codes.", comment: "alert message") + case .alreadyActive: NSLocalizedString("This profile already has a badge. Redeem the code on another profile, or once this badge ends.", comment: "alert message") + case .codeInvalid: NSLocalizedString("This code was not recognised.", comment: "alert message") + case .codeUsed: NSLocalizedString("This code has already been used.", comment: "alert message") + case .codeExpired: NSLocalizedString("This code has expired.", comment: "alert message") + case .rateLimited: NSLocalizedString("Too many attempts. Please try again later.", comment: "alert message") + case .serviceFailed: NSLocalizedString("The badge service is unavailable. Please try again later.", comment: "alert message") + case .badServiceResponse: NSLocalizedString("The badge service sent an unexpected response.", comment: "alert message") + case .credentialNotVerified: NSLocalizedString("This app version cannot verify this badge. Please update the app.", comment: "alert message") + case .unsupportedVersion: NSLocalizedString("This app version is too old for the badge service. Please update the app.", comment: "alert message") + case .networkError: NSLocalizedString("Connection error. Please check your network connection.", comment: "alert message") + case .badgeEnded: NSLocalizedString("The code was accepted, but the badge it grants has already ended.", comment: "alert message") + case .unknown: NSLocalizedString("The code could not be redeemed.", comment: "alert message") } - .padding(.horizontal, 25) - .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .topLeading) } } diff --git a/apps/ios/Shared/Views/Badges/BadgesSupportSimplexView.swift b/apps/ios/Shared/Views/Badges/BadgesSupportSimplexView.swift index 2538d874a1..2fc904197d 100644 --- a/apps/ios/Shared/Views/Badges/BadgesSupportSimplexView.swift +++ b/apps/ios/Shared/Views/Badges/BadgesSupportSimplexView.swift @@ -15,11 +15,11 @@ struct BadgesSupportSimplexView: View { // reserve nav-bar space like a NavigationLink push does, so the title lands too close to the top var showsAsSheet: Bool = false @State private var whyBuiltActive = false + @State private var howItWorksActive = false @State private var chooseLevelActive = false @State private var redeemCodeActive = false var body: some View { - // TODO [badges] gate on user badge status (no badge → this view, active → "Manage your badge") GeometryReader { g in VStack(alignment: .center, spacing: 16) { Text("Support SimpleX") @@ -34,7 +34,9 @@ struct BadgesSupportSimplexView: View { .multilineTextAlignment(.center) .fixedSize(horizontal: false, vertical: true) - whyBuiltButton() + // TODO [badges] restore whyBuiltButton() when in-app purchase lands: the level screen + // returns to the flow and howItWorksButton() moves there, leaving this one alone here. + howItWorksButton() Spacer(minLength: 0) @@ -44,11 +46,10 @@ struct BadgesSupportSimplexView: View { Spacer(minLength: 0) - // Onboarding pattern: nested VStack(spacing: 10) + action button vertical padding 10. VStack(spacing: 10) { - chooseLevelButton() - .padding(.vertical, 10) redeemCodeButton() + .padding(.vertical, 10) + getCodeButton() .frame(height: 22) } .padding(.bottom, g.safeAreaInsets.bottom == 0 ? 20 : 0) @@ -62,8 +63,27 @@ struct BadgesSupportSimplexView: View { } .frame(maxHeight: .infinity) .navigationBarTitleDisplayMode(.inline) - // preloaded here so the level screen shows store prices without a placeholder pass - .task { await BadgeStore.shared.load() } + } + + // the in-app purchase path, kept compiling and uncalled until payments return after the MVP + private func chooseLevelButton() -> some View { + ZStack { + Button { + chooseLevelActive = true + } label: { + Text("Choose your level") + } + .buttonStyle(OnboardingButtonStyle(isDisabled: false)) + + NavigationLink(isActive: $chooseLevelActive) { + BadgesYourLevelView() + .modifier(ThemedBackground()) + } label: { + EmptyView() + } + .frame(width: 1, height: 1) + .hidden() + } } private func whyBuiltButton() -> some View { @@ -85,17 +105,17 @@ struct BadgesSupportSimplexView: View { } } - private func chooseLevelButton() -> some View { + private func howItWorksButton() -> some View { ZStack { - Button { - chooseLevelActive = true - } label: { - Text("Choose your level") + Button { howItWorksActive = true } label: { + HStack(spacing: 4) { + Image(systemName: "info.circle") + Text("How private badges work").fontWeight(.medium) + } + .font(.body) } - .buttonStyle(OnboardingButtonStyle(isDisabled: false)) - - NavigationLink(isActive: $chooseLevelActive) { - BadgesYourLevelView() + NavigationLink(isActive: $howItWorksActive) { + BadgesHowItWorksView() .modifier(ThemedBackground()) } label: { EmptyView() @@ -111,10 +131,8 @@ struct BadgesSupportSimplexView: View { redeemCodeActive = true } label: { Text("Redeem badge code") - .font(.body) - .fontWeight(.medium) - .foregroundColor(theme.colors.primary) } + .buttonStyle(OnboardingButtonStyle(isDisabled: false)) NavigationLink(isActive: $redeemCodeActive) { BadgesRedeemCodeView() @@ -126,6 +144,17 @@ struct BadgesSupportSimplexView: View { .hidden() } } + + private func getCodeButton() -> some View { + Button { + openExternalLink(URL(string: "https://simplex.chat/badges/")!) + } label: { + Text("Get your code") + .font(.body) + .fontWeight(.medium) + .foregroundColor(theme.colors.primary) + } + } } struct PhoneSupporterHero: View { diff --git a/apps/ios/Shared/Views/Badges/BadgesView.swift b/apps/ios/Shared/Views/Badges/BadgesView.swift new file mode 100644 index 0000000000..1960d25bf0 --- /dev/null +++ b/apps/ios/Shared/Views/Badges/BadgesView.swift @@ -0,0 +1,35 @@ +// +// BadgesView.swift +// SimpleX (iOS) +// +// Created by spaced4ndy on 11.09.2026. +// Copyright © 2026 SimpleX Chat. All rights reserved. +// + +import SwiftUI +import SimpleXChat + +struct BadgesView: View { + @EnvironmentObject var chatModel: ChatModel + @ObservedObject private var badgeModel = BadgeModel.shared + var showsAsSheet: Bool = false + + private var shownBadge: BadgeState? { + guard badgeModel.userId == chatModel.currentUser?.userId else { return nil } + if let badgeState = badgeModel.badgeState, badgeState.shown { return badgeState } + return nil + } + + var body: some View { + Group { + if let badgeState = shownBadge { + BadgesYourBadgeView(badgeState: badgeState, showsAsSheet: showsAsSheet) + .transition(.opacity) + } else { + BadgesSupportSimplexView(showsAsSheet: showsAsSheet) + .transition(.opacity) + } + } + .animation(.default, value: shownBadge != nil) + } +} diff --git a/apps/ios/Shared/Views/Badges/BadgesYourBadgeView.swift b/apps/ios/Shared/Views/Badges/BadgesYourBadgeView.swift new file mode 100644 index 0000000000..ceb40e77cd --- /dev/null +++ b/apps/ios/Shared/Views/Badges/BadgesYourBadgeView.swift @@ -0,0 +1,93 @@ +// +// BadgesYourBadgeView.swift +// SimpleX (iOS) +// +// Created by spaced4ndy on 11.09.2026. +// Copyright © 2026 SimpleX Chat. All rights reserved. +// + +import SwiftUI +import SimpleXChat + +struct BadgesYourBadgeView: View { + @EnvironmentObject var theme: AppTheme + let badgeState: BadgeState + var showsAsSheet: Bool = false + + private var title: LocalizedStringKey { + badgeState.shown ? "Your badge" : "Support ended" + } + + // pushed, the navigation bar carries the title and animates it; as a sheet root there is no bar + // to put it in, so the title is drawn in the content, as the Support screen does + private var navTitle: LocalizedStringKey { showsAsSheet ? "" : title } + + var body: some View { + VStack(spacing: 0) { + if showsAsSheet { + Text(title) + .font(.largeTitle) + .bold() + .foregroundColor(theme.colors.primary) + .multilineTextAlignment(.center) + .fixedSize(horizontal: false, vertical: true) + .padding(.horizontal, 25) + .padding(.top, 48) + } + + List { + Section { + BadgeSummary(badgeState: badgeState) + } + Section { + Text(badgeState.paidThroughText) + } header: { + Text("Ends") + .foregroundColor(theme.colors.secondary) + } footer: { + Text("Prepaid months have no billing date. The badge is reissued each month from the balance you already paid for, and ends when it runs out.") + .foregroundColor(theme.colors.secondary) + } + } + } + .frame(maxHeight: .infinity) + .navigationTitle(navTitle) + .navigationBarTitleDisplayMode(showsAsSheet ? .inline : .large) + .modifier(ThemedBackground(grouped: true)) + } +} + +struct BadgeSummary: View { + @EnvironmentObject var theme: AppTheme + let badgeState: BadgeState + + var body: some View { + VStack(spacing: 4) { + Image(badgeImageName(badgeState.badgeType)) + .resizable() + .scaledToFit() + .frame(width: 68, height: 68) + .padding(.bottom, 8) + + badgeTypeName(badgeState.badgeType) + .font(.title3) + .fontWeight(.semibold) + + Text("shown on your profile") + .font(.footnote) + .foregroundColor(theme.colors.secondary) + } + .frame(maxWidth: .infinity) + .padding(.vertical, 8) + } +} + +// verbatim for an unknown type: it is the service's string, and must not be looked up as a localised key +private func badgeTypeName(_ t: BadgeType) -> Text { + switch t { + case .supporter: Text("Supporter") + case .legend: Text("Legend") + case .investor: Text("Investor") + case let .unknown(s): Text(verbatim: s) + } +} diff --git a/apps/ios/Shared/Views/Badges/SupportSimpleXBanner.swift b/apps/ios/Shared/Views/Badges/SupportSimpleXBanner.swift index 07bf4366d2..dad3bb1b0a 100644 --- a/apps/ios/Shared/Views/Badges/SupportSimpleXBanner.swift +++ b/apps/ios/Shared/Views/Badges/SupportSimpleXBanner.swift @@ -12,7 +12,8 @@ import SimpleXChat struct SupportSimpleXBanner: View { @EnvironmentObject var theme: AppTheme @Environment(\.colorScheme) var colorScheme: ColorScheme - @State private var showDismissAlert = false + var title: LocalizedStringKey = "Support SimpleX" + var subtitle: LocalizedStringKey = "Get badge + files up to 5GB" let onTap: () -> Void let onDismiss: () -> Void @@ -38,11 +39,11 @@ struct SupportSimpleXBanner: View { Button(action: onTap) { HStack(spacing: 0) { VStack(alignment: .leading, spacing: 4) { - Text("Support SimpleX") + Text(title) .font(.headline) .foregroundColor(theme.colors.primary) .lineLimit(2) - Text("Get badge + files up to 5GB") + Text(subtitle) .font(.subheadline) .foregroundColor(theme.colors.onBackground) .lineLimit(2) @@ -71,14 +72,7 @@ struct SupportSimpleXBanner: View { .padding(.trailing, 16) .padding(.leading, 4) .contentShape(Rectangle()) - .onTapGesture { showDismissAlert = true } - } - .alert(isPresented: $showDismissAlert) { - Alert( - title: Text("Support SimpleX"), - message: Text("You can support SimpleX later in Settings."), - dismissButton: .default(Text("Ok"), action: onDismiss) - ) + .onTapGesture(perform: onDismiss) } } diff --git a/apps/ios/Shared/Views/ChatList/ChatListView.swift b/apps/ios/Shared/Views/ChatList/ChatListView.swift index f8745a7eaf..da829a92ef 100644 --- a/apps/ios/Shared/Views/ChatList/ChatListView.swift +++ b/apps/ios/Shared/Views/ChatList/ChatListView.swift @@ -154,6 +154,7 @@ struct UserPickerSheetView: View { struct ChatListView: View { @EnvironmentObject var chatModel: ChatModel @StateObject private var connectProgressManager = ConnectProgressManager.shared + @ObservedObject private var badgeModel = BadgeModel.shared @EnvironmentObject var theme: AppTheme @Binding var activeUserPickerSheet: UserPickerSheet? @State private var showNewChatSheet = false @@ -215,7 +216,7 @@ struct ChatListView: View { } .appSheet(isPresented: $showBadgesSheet) { NavigationView { - BadgesSupportSimplexView(showsAsSheet: true) + BadgesView(showsAsSheet: true) .modifier(ThemedBackground()) } } @@ -371,8 +372,38 @@ struct ChatListView: View { } } + // the onboarding cards replace the whole chat list, and the support-ended banner lives in the + // list - a lapsed supporter is not a newcomer, and must be told even with no conversations yet private var shouldShowOnboarding: Bool { - !addressCreationCardShown && !chatModel.chats.isEmpty && !hasConversations + !addressCreationCardShown && !chatModel.chats.isEmpty && !hasConversations && !supportEnded + } + + private var supportEnded: Bool { + badgeModel.alert?.kind == .supportEnded && badgeModel.userId == chatModel.currentUser?.userId + } + + private func showSupportEndedDismissAlert() { + showAlert(NSLocalizedString("Support ended", comment: "alert title")) { + [ + UIAlertAction(title: NSLocalizedString("Remind me later", comment: "alert button"), style: .default) { _ in + Task { await ackBadgeAlert(snooze: true) } + }, + UIAlertAction(title: NSLocalizedString("Dismiss", comment: "alert button"), style: .default) { _ in + Task { await ackBadgeAlert(snooze: false) } + }, + cancelAlertAction + ] + } + } + + private func showSupportSimpleXDismissAlert() { + showAlert( + title: NSLocalizedString("Support SimpleX", comment: "alert title"), + message: NSLocalizedString("You can support SimpleX later in Settings.", comment: "alert message"), + buttonTitle: NSLocalizedString("Ok", comment: "alert button"), + buttonAction: { withAnimation { supporterBannerShown = true } }, + cancelButton: false + ) } private var hasConversations: Bool { @@ -426,10 +457,23 @@ struct ChatListView: View { .listRowSeparator(.hidden) .listRowBackground(Color.clear) } - if !supporterBannerShown && chatModel.chats.count > 3 { + // one slot: a badge the user paid for ending outranks the pitch to get one + if supportEnded, let alert = badgeModel.alert { + SupportSimpleXBanner( + title: "Support ended", + subtitle: "Your support ended on \(alert.dateText).", + onTap: { showBadgesSheet = true }, + onDismiss: showSupportEndedDismissAlert + ) + .padding(.vertical, 3) + .scaleEffect(x: 1, y: oneHandUI ? -1 : 1, anchor: .center) + .listRowSeparator(.hidden) + .listRowBackground(Color.clear) + .zIndex(1) + } else if !supporterBannerShown && chatModel.chats.count > 3 { SupportSimpleXBanner( onTap: { showBadgesSheet = true }, - onDismiss: { withAnimation { supporterBannerShown = true } } + onDismiss: showSupportSimpleXDismissAlert ) .padding(.vertical, 3) .scaleEffect(x: 1, y: oneHandUI ? -1 : 1, anchor: .center) @@ -537,7 +581,7 @@ struct ChatListView: View { VoiceItemState.smallView.values.forEach { $0.audioPlayer?.stop() } VoiceItemState.smallView = [:] } - + // Spec: spec/client/chat-list.md#filteredChats private func filteredChats() -> [Chat] { if !searchChatFilteredBySimplexLink.isEmpty { diff --git a/apps/ios/Shared/Views/ChatList/UserPicker.swift b/apps/ios/Shared/Views/ChatList/UserPicker.swift index 8c230dc56a..a25ebf3419 100644 --- a/apps/ios/Shared/Views/ChatList/UserPicker.swift +++ b/apps/ios/Shared/Views/ChatList/UserPicker.swift @@ -42,7 +42,8 @@ struct UserPicker: View { HStack { ProfileImage(imageStr: user.image, size: imageSize, color: Color(uiColor: .tertiarySystemGroupedBackground)) .padding(.trailing, 6) - profileName(user).lineLimit(1) + NameWithBadge(profileName(user), user.profile.localBadge, .title2) + .lineLimit(1) } .padding(rowPadding) .frame(width: otherUsers.isEmpty ? sectionWidth : currentUserWidth, alignment: .leading) diff --git a/apps/ios/Shared/Views/NewChat/NewChatView.swift b/apps/ios/Shared/Views/NewChat/NewChatView.swift index f938fb0063..ef691b10f9 100644 --- a/apps/ios/Shared/Views/NewChat/NewChatView.swift +++ b/apps/ios/Shared/Views/NewChat/NewChatView.swift @@ -739,6 +739,7 @@ struct ScannerInView: View { let processQRCode: (_ resp: Result) -> Void @State private var cameraAuthorizationStatus: AVAuthorizationStatus? var scanMode: ScanMode = .continuous + var placeholderBackground = Color(uiColor: .secondarySystemGroupedBackground) var body: some View { Group { @@ -777,7 +778,7 @@ struct ScannerInView: View { .padding() .background( RoundedRectangle(cornerRadius: 12, style: .continuous) - .fill(Color(uiColor: .secondarySystemGroupedBackground)) + .fill(placeholderBackground) ) .padding(.horizontal) .listRowBackground(Color.clear) diff --git a/apps/ios/Shared/Views/Onboarding/WhatsNewView.swift b/apps/ios/Shared/Views/Onboarding/WhatsNewView.swift index bb5f4cdc48..2fd21e39dd 100644 --- a/apps/ios/Shared/Views/Onboarding/WhatsNewView.swift +++ b/apps/ios/Shared/Views/Onboarding/WhatsNewView.swift @@ -698,7 +698,8 @@ private let versionDescriptions: [VersionDescription] = [ )) ] ), - // TODO [badges] finalise copy + Read more link before v7.1 ships. + // TODO [badges] restore when badges ship, with final copy and the Read more link. + /* VersionDescription( version: "v7.1", post: nil, @@ -710,6 +711,7 @@ private let versionDescriptions: [VersionDescription] = [ )) ] ), + */ ] private let lastVersion = versionDescriptions.last!.version diff --git a/apps/ios/Shared/Views/UserSettings/SettingsView.swift b/apps/ios/Shared/Views/UserSettings/SettingsView.swift index 7dbe517a1f..767acade71 100644 --- a/apps/ios/Shared/Views/UserSettings/SettingsView.swift +++ b/apps/ios/Shared/Views/UserSettings/SettingsView.swift @@ -346,11 +346,12 @@ struct SettingsView: View { Section { NavigationLink { - BadgesSupportSimplexView() + BadgesView() .modifier(ThemedBackground()) } label: { + let badgeType = chatModel.currentUser?.profile.localBadge?.badge.badgeType ?? .supporter ZStack(alignment: .leading) { - Image("badge-supporter") + Image(badgeImageName(badgeType)) .resizable() .scaledToFit() .frame(width: 24, height: 24) diff --git a/apps/ios/Shared/Views/UserSettings/UserProfilesView.swift b/apps/ios/Shared/Views/UserSettings/UserProfilesView.swift index 3f3adbcb2d..890c672bcd 100644 --- a/apps/ios/Shared/Views/UserSettings/UserProfilesView.swift +++ b/apps/ios/Shared/Views/UserSettings/UserProfilesView.swift @@ -346,7 +346,7 @@ struct UserProfilesView: View { HStack { ProfileImage(imageStr: user.image, size: 38) .padding(.trailing, 12) - Text(user.chatViewName) + NameWithBadge(Text(user.chatViewName), user.profile.localBadge) Spacer() if user.activeUser { Image(systemName: "checkmark").foregroundColor(theme.colors.onBackground) diff --git a/apps/ios/SimpleX.xcodeproj/project.pbxproj b/apps/ios/SimpleX.xcodeproj/project.pbxproj index 9315416e16..6dba849f5d 100644 --- a/apps/ios/SimpleX.xcodeproj/project.pbxproj +++ b/apps/ios/SimpleX.xcodeproj/project.pbxproj @@ -191,8 +191,8 @@ 64C3B0212A0D359700E19930 /* CustomTimePicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64C3B0202A0D359700E19930 /* CustomTimePicker.swift */; }; 64C8299D2D54AEEE006B9E89 /* libgmp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C829982D54AEED006B9E89 /* libgmp.a */; }; 64C8299E2D54AEEE006B9E89 /* libffi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C829992D54AEEE006B9E89 /* libffi.a */; }; - 64C8299F2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.4-4q834kD5SZSFNbM5stNfdS-ghc9.6.3.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C8299A2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.4-4q834kD5SZSFNbM5stNfdS-ghc9.6.3.a */; }; - 64C829A02D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.4-4q834kD5SZSFNbM5stNfdS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C8299B2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.4-4q834kD5SZSFNbM5stNfdS.a */; }; + 64C8299F2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.4-JuaCEFy75SxELqTayb7fbQ-ghc9.6.3.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C8299A2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.4-JuaCEFy75SxELqTayb7fbQ-ghc9.6.3.a */; }; + 64C829A02D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.4-JuaCEFy75SxELqTayb7fbQ.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C8299B2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.4-JuaCEFy75SxELqTayb7fbQ.a */; }; 64C829A12D54AEEE006B9E89 /* libgmpxx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C8299C2D54AEEE006B9E89 /* libgmpxx.a */; }; 64D0C2C029F9688300B38D5F /* UserAddressView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64D0C2BF29F9688300B38D5F /* UserAddressView.swift */; }; 64D0C2C229FA57AB00B38D5F /* UserAddressLearnMore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64D0C2C129FA57AB00B38D5F /* UserAddressLearnMore.swift */; }; @@ -200,6 +200,8 @@ 64E5E3632DF71A4E00A4D530 /* ContextContactRequestActionsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64E5E3622DF71A4E00A4D530 /* ContextContactRequestActionsView.swift */; }; 64E5E3672DFC16A900A4D530 /* ContextProfilePickerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64E5E3662DFC16A900A4D530 /* ContextProfilePickerView.swift */; }; 64E972072881BB22008DBC02 /* CIGroupInvitationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64E972062881BB22008DBC02 /* CIGroupInvitationView.swift */; }; + 64EB8A99305405C60089FFDF /* BadgesYourBadgeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64EB8A98305405C60089FFDF /* BadgesYourBadgeView.swift */; }; + 64EB8A9B3054347A0089FFDF /* BadgesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64EB8A9A3054347A0089FFDF /* BadgesView.swift */; }; 64EEB0F72C353F1C00972D62 /* ServersSummaryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64EEB0F62C353F1C00972D62 /* ServersSummaryView.swift */; }; 64F1CC3B28B39D8600CD1FB1 /* IncognitoHelp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64F1CC3A28B39D8600CD1FB1 /* IncognitoHelp.swift */; }; 64FC8F9D2E3B6DEF0068F384 /* ContextMemberContactActionsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64FC8F9C2E3B6DEF0068F384 /* ContextMemberContactActionsView.swift */; }; @@ -580,8 +582,8 @@ 64C3B0202A0D359700E19930 /* CustomTimePicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomTimePicker.swift; sourceTree = ""; }; 64C829982D54AEED006B9E89 /* libgmp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmp.a; sourceTree = ""; }; 64C829992D54AEEE006B9E89 /* libffi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libffi.a; sourceTree = ""; }; - 64C8299A2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.4-4q834kD5SZSFNbM5stNfdS-ghc9.6.3.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-7.1.0.4-4q834kD5SZSFNbM5stNfdS-ghc9.6.3.a"; sourceTree = ""; }; - 64C8299B2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.4-4q834kD5SZSFNbM5stNfdS.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-7.1.0.4-4q834kD5SZSFNbM5stNfdS.a"; sourceTree = ""; }; + 64C8299A2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.4-JuaCEFy75SxELqTayb7fbQ-ghc9.6.3.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-7.1.0.4-JuaCEFy75SxELqTayb7fbQ-ghc9.6.3.a"; sourceTree = ""; }; + 64C8299B2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.4-JuaCEFy75SxELqTayb7fbQ.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-7.1.0.4-JuaCEFy75SxELqTayb7fbQ.a"; sourceTree = ""; }; 64C8299C2D54AEEE006B9E89 /* libgmpxx.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmpxx.a; sourceTree = ""; }; 64D0C2BF29F9688300B38D5F /* UserAddressView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserAddressView.swift; sourceTree = ""; }; 64D0C2C129FA57AB00B38D5F /* UserAddressLearnMore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserAddressLearnMore.swift; sourceTree = ""; }; @@ -590,6 +592,8 @@ 64E5E3622DF71A4E00A4D530 /* ContextContactRequestActionsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContextContactRequestActionsView.swift; sourceTree = ""; }; 64E5E3662DFC16A900A4D530 /* ContextProfilePickerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContextProfilePickerView.swift; sourceTree = ""; }; 64E972062881BB22008DBC02 /* CIGroupInvitationView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CIGroupInvitationView.swift; sourceTree = ""; }; + 64EB8A98305405C60089FFDF /* BadgesYourBadgeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BadgesYourBadgeView.swift; sourceTree = ""; }; + 64EB8A9A3054347A0089FFDF /* BadgesView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BadgesView.swift; sourceTree = ""; }; 64EEB0F62C353F1C00972D62 /* ServersSummaryView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ServersSummaryView.swift; sourceTree = ""; }; 64F1CC3A28B39D8600CD1FB1 /* IncognitoHelp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IncognitoHelp.swift; sourceTree = ""; }; 64FC8F9C2E3B6DEF0068F384 /* ContextMemberContactActionsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContextMemberContactActionsView.swift; sourceTree = ""; }; @@ -752,8 +756,8 @@ 64C8299D2D54AEEE006B9E89 /* libgmp.a in Frameworks */, 64C8299E2D54AEEE006B9E89 /* libffi.a in Frameworks */, 64C829A12D54AEEE006B9E89 /* libgmpxx.a in Frameworks */, - 64C8299F2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.4-4q834kD5SZSFNbM5stNfdS-ghc9.6.3.a in Frameworks */, - 64C829A02D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.4-4q834kD5SZSFNbM5stNfdS.a in Frameworks */, + 64C8299F2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.4-JuaCEFy75SxELqTayb7fbQ-ghc9.6.3.a in Frameworks */, + 64C829A02D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.4-JuaCEFy75SxELqTayb7fbQ.a in Frameworks */, CE38A29C2C3FCD72005ED185 /* SwiftyGif in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -840,8 +844,8 @@ 64C829992D54AEEE006B9E89 /* libffi.a */, 64C829982D54AEED006B9E89 /* libgmp.a */, 64C8299C2D54AEEE006B9E89 /* libgmpxx.a */, - 64C8299A2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.4-4q834kD5SZSFNbM5stNfdS-ghc9.6.3.a */, - 64C8299B2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.4-4q834kD5SZSFNbM5stNfdS.a */, + 64C8299A2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.4-JuaCEFy75SxELqTayb7fbQ-ghc9.6.3.a */, + 64C8299B2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.4-JuaCEFy75SxELqTayb7fbQ.a */, ); path = Libraries; sourceTree = ""; @@ -1208,6 +1212,7 @@ 64C03BF8302F423300072BDE /* Badges */ = { isa = PBXGroup; children = ( + 64EB8A9A3054347A0089FFDF /* BadgesView.swift */, 64C03BF0302F423300072BDE /* BadgesHowItWorksView.swift */, 64C03BF1302F423300072BDE /* BadgesPayView.swift */, 64C03BF2302F423300072BDE /* BadgesRedeemCodeView.swift */, @@ -1216,6 +1221,7 @@ 64C03BF5302F423300072BDE /* BadgesYourLevelView.swift */, 64C03BF6302F423300072BDE /* BadgeUserPreview.swift */, 64C03BF7302F423300072BDE /* SupportSimpleXBanner.swift */, + 64EB8A98305405C60089FFDF /* BadgesYourBadgeView.swift */, ); path = Badges; sourceTree = ""; @@ -1685,6 +1691,7 @@ 8C9BC2652C240D5200875A27 /* ThemeModeEditor.swift in Sources */, 647B15E82F4C8D2500EB431E /* AddChannelView.swift in Sources */, 6495D7062F48CFFD0060512B /* ChannelRelaysView.swift in Sources */, + 64EB8A9B3054347A0089FFDF /* BadgesView.swift in Sources */, E5E418022F83D2CA00252B9E /* ChannelWebAccessView.swift in Sources */, 6495D7082F48D0000060512B /* AddGroupRelayView.swift in Sources */, 5CB346E92869E8BA001FD2EF /* PushEnvironment.swift in Sources */, @@ -1731,6 +1738,7 @@ 644EFFE42937BE9700525D5B /* MarkedDeletedItemView.swift in Sources */, 6495D7042F48CFC50060512B /* ChannelMembersView.swift in Sources */, 1841594C978674A7B42EF0C0 /* AnimatedImageView.swift in Sources */, + 64EB8A99305405C60089FFDF /* BadgesYourBadgeView.swift in Sources */, 5C7031162953C97F00150A12 /* CIFeaturePreferenceView.swift in Sources */, 1841538E296606C74533367C /* UserPicker.swift in Sources */, 18415B0585EB5A9A0A7CA8CD /* PressedButtonStyle.swift in Sources */, diff --git a/apps/ios/SimpleXChat/API.swift b/apps/ios/SimpleXChat/API.swift index 6bf46fb0dd..09609ab7fd 100644 --- a/apps/ios/SimpleXChat/API.swift +++ b/apps/ios/SimpleXChat/API.swift @@ -163,6 +163,14 @@ public func chatJsonLength(_ s: String) -> Int { return Int(chat_json_length(&c)) } +// The code as core will accept it - prefix and 20 characters, no separators - or nil if it does not +// parse. Validity is decided only here: a second check-character implementation would drift. +public func parseBadgeCode(_ s: String) -> String? { + var c = s.cString(using: .utf8)! + let canonical = fromCString(chat_parse_badge_code(&c)!) + return canonical.isEmpty ? nil : canonical +} + struct ParsedMarkdown: Decodable { var formattedText: [FormattedText]? } diff --git a/apps/ios/SimpleXChat/ChatTypes.swift b/apps/ios/SimpleXChat/ChatTypes.swift index da758e8100..b8f6fd0bb0 100644 --- a/apps/ios/SimpleXChat/ChatTypes.swift +++ b/apps/ios/SimpleXChat/ChatTypes.swift @@ -305,7 +305,7 @@ public struct BadgeInfo: Codable, Hashable { public var badgeExpiry: Date public var badgeExtra: String - public init(badgeType: BadgeType, badgeExpiry: Date? = nil, badgeExtra: String = "") { + public init(badgeType: BadgeType, badgeExpiry: Date, badgeExtra: String = "") { self.badgeType = badgeType self.badgeExpiry = badgeExpiry self.badgeExtra = badgeExtra @@ -322,6 +322,92 @@ public struct LocalBadge: Codable, Hashable { } } +// paidThrough is the only date to show the user: BadgeInfo.badgeExpiry is the credential's expiry, +// which outlives entitlement so the credential's window can cover a renewal. +public struct BadgeState: Codable, Hashable { + public var badgePurchaseId: Int64 + public var badgeType: BadgeType + public var shown: Bool + public var monthsLeft: Int + public var paidThrough: Date + public var renewsAt: Date? + public var willRenew: Bool + public var alert: BadgeAlert? + + public var paidThroughText: String { badgeDateText(paidThrough) } +} + +public struct BadgeAlert: Codable, Hashable { + public var kind: BadgeAlertKind + public var episode: String + public var date: Date + public var price: BadgeAlertPrice? + + public var dateText: String { badgeDateText(date) } +} + +private func badgeDateText(_ date: Date) -> String { + DateFormatter.localizedString(from: date, dateStyle: .long, timeStyle: .none) +} + +public struct BadgeAlertPrice: Hashable { + public var amount: Int64 + public var currency: String +} + +extension BadgeAlertPrice: Codable { + // encoded as the Haskell tuple it comes from: [amount, currency] + public init(from decoder: Decoder) throws { + var c = try decoder.unkeyedContainer() + amount = try c.decode(Int64.self) + currency = try c.decode(String.self) + } + + public func encode(to encoder: Encoder) throws { + var c = encoder.unkeyedContainer() + try c.encode(amount) + try c.encode(currency) + } +} + +public enum BadgeAlertKind: Hashable { + case renewalApproaching + case paymentIssue + case subscriptionEnded + case prepaidEnding + case supportEnded + case unknown(String) + + public var text: String { + switch self { + case .renewalApproaching: "renewal_approaching" + case .paymentIssue: "payment_issue" + case .subscriptionEnded: "subscription_ended" + case .prepaidEnding: "prepaid_ending" + case .supportEnded: "support_ended" + case let .unknown(s): s + } + } +} + +extension BadgeAlertKind: Codable { + public init(from decoder: Decoder) throws { + switch try decoder.singleValueContainer().decode(String.self) { + case "renewal_approaching": self = .renewalApproaching + case "payment_issue": self = .paymentIssue + case "subscription_ended": self = .subscriptionEnded + case "prepaid_ending": self = .prepaidEnding + case "support_ended": self = .supportEnded + case let s: self = .unknown(s) + } + } + + public func encode(to encoder: Encoder) throws { + var c = encoder.singleValueContainer() + try c.encode(text) + } +} + // the wire proof carried on a profile - opaque to the UI, only round-tripped back to the core (apiPrepareContact) public struct BadgeProof: Codable, Hashable { public var badgeKeyIdx: Int diff --git a/apps/ios/SimpleXChat/SimpleX.h b/apps/ios/SimpleXChat/SimpleX.h index 5a3541e06d..543dc258e4 100644 --- a/apps/ios/SimpleXChat/SimpleX.h +++ b/apps/ios/SimpleXChat/SimpleX.h @@ -27,6 +27,8 @@ extern char *chat_parse_server(char *str); extern char *chat_parse_uri(char *str, int safe); extern char *chat_password_hash(char *pwd, char *salt); extern char *chat_valid_name(char *name); +// returns the canonical form of a badge code, or an empty string if it does not parse +extern char *chat_parse_badge_code(char *code); extern int chat_json_length(char *str); extern char *chat_encrypt_media(chat_ctrl ctl, char *key, char *frame, int len); extern char *chat_decrypt_media(char *key, char *frame, int len); diff --git a/apps/multiplatform/android/src/foss/java/chat/simplex/app/PlayStore.kt b/apps/multiplatform/android/src/foss/java/chat/simplex/app/PlayStore.kt index bf4a3fb71d..1d8fc5e151 100644 --- a/apps/multiplatform/android/src/foss/java/chat/simplex/app/PlayStore.kt +++ b/apps/multiplatform/android/src/foss/java/chat/simplex/app/PlayStore.kt @@ -9,6 +9,8 @@ import chat.simplex.common.views.badges.BadgeStoreProductId // Play Billing is only in the google flavor, so the Play country stays unknown here fun loadPlayStoreCountry() {} +const val hasPlatformStore = false + // No store in this flavor: no product is offered, so the purchase screen shows nothing to buy // TODO [badges] this build pays via Stripe/crypto - the badge service catalog replaces these @Suppress("UNUSED_PARAMETER") diff --git a/apps/multiplatform/android/src/google/java/chat/simplex/app/PlayStore.kt b/apps/multiplatform/android/src/google/java/chat/simplex/app/PlayStore.kt index 14e8fc470c..4075421e52 100644 --- a/apps/multiplatform/android/src/google/java/chat/simplex/app/PlayStore.kt +++ b/apps/multiplatform/android/src/google/java/chat/simplex/app/PlayStore.kt @@ -10,6 +10,8 @@ import kotlinx.coroutines.CompletableDeferred import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext +const val hasPlatformStore = true + // Requests the country of the Google Play account into [androidPlayStoreCountry]. // It stays null when Play is unavailable or the user is not signed in. fun loadPlayStoreCountry() { diff --git a/apps/multiplatform/android/src/main/java/chat/simplex/app/SimplexApp.kt b/apps/multiplatform/android/src/main/java/chat/simplex/app/SimplexApp.kt index 9826908e77..1a4c836b2e 100644 --- a/apps/multiplatform/android/src/main/java/chat/simplex/app/SimplexApp.kt +++ b/apps/multiplatform/android/src/main/java/chat/simplex/app/SimplexApp.kt @@ -346,6 +346,8 @@ class SimplexApp: Application(), LifecycleEventObserver { override fun androidLoadPlayStoreCountry() = loadPlayStoreCountry() + override val androidHasPlatformStore: Boolean get() = hasPlatformStore + override suspend fun androidLoadBadgeProducts(oneTimeIds: List, subscriptionIds: List): List = loadBadgeProducts(oneTimeIds, subscriptionIds) override suspend fun androidPurchaseBadge(id: BadgeStoreProductId, invoiceId: String): BadgePurchaseOutcome = purchaseBadge(id, invoiceId) diff --git a/apps/multiplatform/common/src/commonMain/cpp/android/simplex-api.c b/apps/multiplatform/common/src/commonMain/cpp/android/simplex-api.c index fd7f71d49c..c0497daacb 100644 --- a/apps/multiplatform/common/src/commonMain/cpp/android/simplex-api.c +++ b/apps/multiplatform/common/src/commonMain/cpp/android/simplex-api.c @@ -67,6 +67,7 @@ extern char *chat_parse_server(const char *str); extern char *chat_parse_uri(const char *str, const int safe); extern char *chat_password_hash(const char *pwd, const char *salt); extern char *chat_valid_name(const char *name); +extern char *chat_parse_badge_code(const char *code); extern int chat_json_length(const char *str); extern char *chat_write_file(chat_ctrl ctrl, const char *path, char *ptr, int length); extern char *chat_read_file(const char *path, const char *key, const char *nonce); @@ -173,6 +174,14 @@ Java_chat_simplex_common_platform_CoreKt_chatValidName(JNIEnv *env, jclass clazz return res; } +JNIEXPORT jstring JNICALL +Java_chat_simplex_common_platform_CoreKt_chatParseBadgeCode(JNIEnv *env, jclass clazz, jstring code) { + const char *_code = (*env)->GetStringUTFChars(env, code, JNI_FALSE); + jstring res = (*env)->NewStringUTF(env, chat_parse_badge_code(_code)); + (*env)->ReleaseStringUTFChars(env, code, _code); + return res; +} + JNIEXPORT int JNICALL Java_chat_simplex_common_platform_CoreKt_chatJsonLength(JNIEnv *env, jclass clazz, jstring str) { const char *_str = (*env)->GetStringUTFChars(env, str, JNI_FALSE); diff --git a/apps/multiplatform/common/src/commonMain/cpp/desktop/simplex-api.c b/apps/multiplatform/common/src/commonMain/cpp/desktop/simplex-api.c index 9844a5927d..6bb6ffbe97 100644 --- a/apps/multiplatform/common/src/commonMain/cpp/desktop/simplex-api.c +++ b/apps/multiplatform/common/src/commonMain/cpp/desktop/simplex-api.c @@ -40,6 +40,7 @@ extern char *chat_parse_server(const char *str); extern char *chat_parse_uri(const char *str, const int safe); extern char *chat_password_hash(const char *pwd, const char *salt); extern char *chat_valid_name(const char *name); +extern char *chat_parse_badge_code(const char *code); extern int chat_json_length(const char *str); extern char *chat_write_file(chat_ctrl ctrl, const char *path, char *ptr, int length); extern char *chat_read_file(const char *path, const char *key, const char *nonce); @@ -183,6 +184,14 @@ Java_chat_simplex_common_platform_CoreKt_chatValidName(JNIEnv *env, jclass clazz return res; } +JNIEXPORT jstring JNICALL +Java_chat_simplex_common_platform_CoreKt_chatParseBadgeCode(JNIEnv *env, jclass clazz, jstring code) { + const char *_code = encode_to_utf8_chars(env, code); + jstring res = decode_to_utf8_string(env, chat_parse_badge_code(_code)); + (*env)->ReleaseStringUTFChars(env, code, _code); + return res; +} + JNIEXPORT int JNICALL Java_chat_simplex_common_platform_CoreKt_chatJsonLength(JNIEnv *env, jclass clazz, jstring str) { const char *_str = encode_to_utf8_chars(env, str); diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/model/ChatModel.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/model/ChatModel.kt index 5e5a91f6a7..f033c0963e 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/model/ChatModel.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/model/ChatModel.kt @@ -102,6 +102,34 @@ object ChannelRelaysModel { } } +// The badge of whichever profile it was last loaded for, kept current by the badgeChanged event so +// that a screen already open shows what the renewal worker did with no command behind it. +object BadgeModel { + val rhId = mutableStateOf(null) + val userId = mutableStateOf(null) + val badgeState = mutableStateOf(null) + val alert = mutableStateOf(null) + + // alert follows the state: getUserBadgeState derives it on every read, so a badgeChanged is + // never staler than the alert it carries - the invariant a new alert kind must keep + fun set(rhId: Long?, userId: Long, badgeState: BadgeState?) { + this.rhId.value = rhId + this.userId.value = userId + this.badgeState.value = badgeState + alert.value = badgeState?.alert + } + + fun setAlert(rhId: Long?, userId: Long, alert: BadgeAlert) { + if (isCurrent(rhId, userId)) { + this.alert.value = alert + badgeState.value = badgeState.value?.copy(alert = alert) + } + } + + fun isCurrent(rhId: Long?, userId: Long?): Boolean = + this.rhId.value == rhId && this.userId.value == userId +} + /* * Without this annotation an animation from ChatList to ChatView has 1 frame per the whole animation. Don't delete it * */ @@ -2192,6 +2220,88 @@ data class LocalBadge( val status: BadgeStatus ) +// paidThrough is the only date to show the user: BadgeInfo.badgeExpiry is the credential's expiry, +// which outlives entitlement so the credential's window can cover a renewal. +@Serializable +data class BadgeState( + val badgePurchaseId: Long, + val badgeType: BadgeType, + val shown: Boolean, + val monthsLeft: Int, + val paidThrough: Instant, + val renewsAt: Instant? = null, + val willRenew: Boolean, + val alert: BadgeAlert? = null +) { + val paidThroughText: String get() = badgeDateText(paidThrough) +} + +@Serializable +data class BadgeAlert( + val kind: BadgeAlertKind, + val episode: String, + val date: Instant, + val price: BadgeAlertPrice? = null +) { + val dateText: String get() = badgeDateText(date) +} + +@Serializable(with = BadgeAlertPriceSerializer::class) +data class BadgeAlertPrice(val amount: Long, val currency: String) + +// encoded as the Haskell tuple it comes from: [amount, currency] +object BadgeAlertPriceSerializer : KSerializer { + override val descriptor: SerialDescriptor = buildClassSerialDescriptor("BadgeAlertPrice") + override fun deserialize(decoder: Decoder): BadgeAlertPrice { + require(decoder is JsonDecoder) + val arr = decoder.decodeJsonElement().jsonArray + return BadgeAlertPrice(arr[0].jsonPrimitive.long, arr[1].jsonPrimitive.content) + } + override fun serialize(encoder: Encoder, value: BadgeAlertPrice) { + require(encoder is JsonEncoder) + encoder.encodeJsonElement(buildJsonArray { add(value.amount); add(value.currency) }) + } +} + +@Serializable(with = BadgeAlertKindSerializer::class) +sealed class BadgeAlertKind { + @Serializable @SerialName("renewal_approaching") object RenewalApproaching: BadgeAlertKind() + @Serializable @SerialName("payment_issue") object PaymentIssue: BadgeAlertKind() + @Serializable @SerialName("subscription_ended") object SubscriptionEnded: BadgeAlertKind() + @Serializable @SerialName("prepaid_ending") object PrepaidEnding: BadgeAlertKind() + @Serializable @SerialName("support_ended") object SupportEnded: BadgeAlertKind() + @Serializable @SerialName("unknown") data class Unknown(val kind: String): BadgeAlertKind() + + val text: String + get() = when (this) { + is RenewalApproaching -> "renewal_approaching" + is PaymentIssue -> "payment_issue" + is SubscriptionEnded -> "subscription_ended" + is PrepaidEnding -> "prepaid_ending" + is SupportEnded -> "support_ended" + is Unknown -> kind + } +} + +object BadgeAlertKindSerializer : KSerializer { + override val descriptor: SerialDescriptor = PrimitiveSerialDescriptor("BadgeAlertKind", PrimitiveKind.STRING) + override fun deserialize(decoder: Decoder): BadgeAlertKind = + when (val v = decoder.decodeString()) { + "renewal_approaching" -> BadgeAlertKind.RenewalApproaching + "payment_issue" -> BadgeAlertKind.PaymentIssue + "subscription_ended" -> BadgeAlertKind.SubscriptionEnded + "prepaid_ending" -> BadgeAlertKind.PrepaidEnding + "support_ended" -> BadgeAlertKind.SupportEnded + else -> BadgeAlertKind.Unknown(v) + } + override fun serialize(encoder: Encoder, value: BadgeAlertKind) = encoder.encodeString(value.text) +} + +private fun badgeDateText(date: Instant): String { + val ts = date.toLocalDateTime(TimeZone.currentSystemDefault()) + return ts.toJavaLocalDateTime().format(DateTimeFormatter.ofLocalizedDate(FormatStyle.LONG)) +} + // the wire proof carried on a profile - opaque to the UI, only round-tripped back to the core (apiPrepareContact) @Serializable data class BadgeProof( diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/model/SimpleXAPI.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/model/SimpleXAPI.kt index 1865948530..ed787cf266 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/model/SimpleXAPI.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/model/SimpleXAPI.kt @@ -562,6 +562,94 @@ object ChatController { suspend fun resetAgentServersStats(rh: Long?): Boolean = sendCommandOkResp(rh, CC.ResetAgentServersStats()) + fun badgeRedeemError(error: ChatError): BadgeRedeemError { + // the app's own classifier decides what counts as a network failure; only the classification is + // used here, not its retry policy - a client that retries makes code guessing cheaper + if (retryableNetworkErrorAlert(error) != null) return BadgeRedeemError.NetworkError + if (error !is ChatError.ChatErrorChat || error.errorType !is ChatErrorType.CommandError) return BadgeRedeemError.Unknown + val message = error.errorType.message + when (message) { + BadgeErrorText.invalidCode -> return BadgeRedeemError.InvalidCode + BadgeErrorText.serviceNotConfigured -> return BadgeRedeemError.ServiceNotConfigured + BadgeErrorText.alreadyActive -> return BadgeRedeemError.AlreadyActive + BadgeErrorText.unknownKeyIndex, BadgeErrorText.credentialNotVerified -> return BadgeRedeemError.CredentialNotVerified + BadgeErrorText.undecodableResponse -> return BadgeRedeemError.BadServiceResponse + } + if (message.startsWith(BadgeErrorText.invalidResponse) || message.startsWith(BadgeErrorText.unexpectedResponse)) { + return BadgeRedeemError.BadServiceResponse + } + if (message.startsWith(BadgeErrorText.serviceError)) { + return badgeServiceError(message.removePrefix(BadgeErrorText.serviceError)) + } + return BadgeRedeemError.Unknown + } + + // the service's own tag, which core bounds to [a-z0-9_] and 32 characters and which is never shown + private fun badgeServiceError(tag: String): BadgeRedeemError = when (tag) { + "code_invalid" -> BadgeRedeemError.CodeInvalid + "code_used" -> BadgeRedeemError.CodeUsed + "code_expired" -> BadgeRedeemError.CodeExpired + "rate_limited" -> BadgeRedeemError.RateLimited + // retrying never succeeds: the client is too old for the service + "unsupported_version" -> BadgeRedeemError.UnsupportedVersion + else -> BadgeRedeemError.ServiceFailed + } + + // log = false because the code is a bearer secret until it is redeemed - it is in the command, and a + // service response echoed into an error message would carry it into the terminal with the response. + suspend fun apiRedeemBadgeCode(rh: Long?, userId: Long, code: String): BadgeRedeemResult { + val r = sendCmd(rh, CC.ApiRedeemBadgeCode(userId, code), log = false) + return when { + // redeemedBadge is dropped: it is the credential, and the user's profile carries what is shown + r is API.Result && r.res is CR.BadgeRedeemed -> BadgeRedeemResult.Redeemed(r.res.user, r.res.newBadge) + r is API.Error -> BadgeRedeemResult.Failed(badgeRedeemError(r.err)) + else -> { + // the response type alone - it names a case or a JSON key, never the service's message + Log.e(TAG, "apiRedeemBadgeCode: unexpected ${r.responseType}") + BadgeRedeemResult.Failed(BadgeRedeemError.Unknown) + } + } + } + + suspend fun apiGetBadgeState(rh: Long?, userId: Long): BadgeState? { + val r = sendCmd(rh, CC.ApiGetBadgeState(userId)) + if (r is API.Result && r.res is CR.BadgeStateR) return r.res.badgeState + throw Exception("apiGetBadgeState: unexpected ${r.responseType}") + } + + suspend fun apiAckBadgeAlert(rh: Long?, userId: Long, badgePurchaseId: Long, alertKind: BadgeAlertKind, snooze: Boolean, episode: String): BadgeState? { + val r = sendCmd(rh, CC.ApiAckBadgeAlert(userId, badgePurchaseId, alertKind, snooze, episode)) + if (r is API.Result && r.res is CR.BadgeStateR) return r.res.badgeState + throw Exception("apiAckBadgeAlert: unexpected ${r.responseType}") + } + + // An API call and not a stored flag: the ack is kept on the purchase in core, which then stops + // raising this occurrence on every pass and across restarts, or until a snooze lapses. + suspend fun ackBadgeAlert(snooze: Boolean) { + val rhId = BadgeModel.rhId.value + val userId = BadgeModel.userId.value ?: return + val purchaseId = BadgeModel.badgeState.value?.badgePurchaseId ?: return + val alert = BadgeModel.alert.value ?: return + try { + val badgeState = apiAckBadgeAlert(rhId, userId, purchaseId, alert.kind, snooze = snooze, episode = alert.episode) + withContext(Dispatchers.Main) { BadgeModel.set(rhId, userId, badgeState) } + } catch (e: Exception) { + Log.e(TAG, "ackBadgeAlert: ${e.message}") + } + } + + // Not thrown: a failed badge read must not stop the app starting, and the model is left alone + // rather than set to nil, which would read as "no badge". + private suspend fun loadBadgeState(rhId: Long?) { + try { + val userId = currentUserId("loadBadgeState") + val badgeState = apiGetBadgeState(rhId, userId) + withContext(Dispatchers.Main) { BadgeModel.set(rhId, userId, badgeState) } + } catch (e: Exception) { + Log.e(TAG, "loadBadgeState: ${e.message}") + } + } + private suspend fun currentUserId(funcName: String): Long = changingActiveUserMutex.withLock { val userId = chatModel.currentUser.value?.userId if (userId == null) { @@ -683,6 +771,7 @@ object ChatController { chatModel.userTags.value = if (hasUser) apiGetChatTags(rhId) ?: emptyList() else emptyList() chatModel.activeChatTagFilter.value = null chatModel.updateChatTags(rhId) + if (hasUser) loadBadgeState(rhId) } // Spec: spec/api.md#startReceiver @@ -3475,6 +3564,20 @@ object ChatController { chatModel.chatsContext.updateContact(rhId, r.contact) } } + is CR.BadgeChanged -> + if (active(r.user)) { + withContext(Dispatchers.Main) { + // read by core after retiring or presenting, so it carries the profile badge as changed + chatModel.updateUser(r.user) + BadgeModel.set(rhId, r.user.userId, r.badgeState) + } + } + is CR.BadgeAlertR -> + if (active(r.user)) { + withContext(Dispatchers.Main) { + BadgeModel.setAlert(rhId, r.user.userId, r.badgeAlert) + } + } else -> Log.d(TAG , "unsupported event: ${msg.responseType}") } @@ -3772,6 +3875,43 @@ class SharedPreference(val get: () -> T, set: (T) -> Unit) { } } +// The failures redeemBadgeCode raises, as core flattens them to command error text. +// tests/Bots/BadgeServiceTests.hs asserts that text, so a change in core breaks a test there. +enum class BadgeRedeemError { + InvalidCode, + ServiceNotConfigured, + AlreadyActive, + CodeInvalid, + CodeUsed, + CodeExpired, + RateLimited, + ServiceFailed, + BadServiceResponse, + CredentialNotVerified, + UnsupportedVersion, + NetworkError, + BadgeEnded, + Unknown +} + +private object BadgeErrorText { + const val invalidCode = "invalid badge code" + const val serviceNotConfigured = "badge service not configured" + const val alreadyActive = "badge already active" + const val unknownKeyIndex = "unknown badge key index" + const val credentialNotVerified = "badge credential does not verify against configured key" + const val invalidResponse = "invalid badge service response, " + const val unexpectedResponse = "unexpected badge service response: " + const val serviceError = "badge service error: " + // raised by sendServiceRequestTo, not by redeemBadgeCode itself, when the reply is not JSON + const val undecodableResponse = "invalid service response" +} + +sealed class BadgeRedeemResult { + class Redeemed(val user: User, val newBadge: Boolean): BadgeRedeemResult() + class Failed(val error: BadgeRedeemError): BadgeRedeemResult() +} + // ChatCommand // Spec: spec/api.md#CC sealed class CC { @@ -3950,6 +4090,10 @@ sealed class CC { class ApiUploadStandaloneFile(val userId: Long, val file: CryptoFile): CC() class ApiDownloadStandaloneFile(val userId: Long, val url: String, val file: CryptoFile): CC() class ApiStandaloneFileInfo(val url: String): CC() + // badges + class ApiRedeemBadgeCode(val userId: Long, val code: String): CC() + class ApiGetBadgeState(val userId: Long): CC() + class ApiAckBadgeAlert(val userId: Long, val badgePurchaseId: Long, val alertKind: BadgeAlertKind, val snooze: Boolean, val episode: String): CC() // misc class ShowVersion(): CC() class ResetAgentServersStats(): CC() @@ -4171,6 +4315,9 @@ sealed class CC { is ApiUploadStandaloneFile -> "/_upload $userId ${file.filePath}" is ApiDownloadStandaloneFile -> "/_download $userId $url ${file.filePath}" is ApiStandaloneFileInfo -> "/_download info $url" + is ApiRedeemBadgeCode -> "/_redeem_badge_code $userId $code" + is ApiGetBadgeState -> "/_badge state $userId" + is ApiAckBadgeAlert -> "/_badge ack $userId $badgePurchaseId ${alertKind.text} ${onOff(snooze)} $episode" is ShowVersion -> "/version" is ResetAgentServersStats -> "/reset servers stats" is GetAgentSubsTotal -> "/get subs total $userId" @@ -4351,6 +4498,9 @@ sealed class CC { is ApiUploadStandaloneFile -> "apiUploadStandaloneFile" is ApiDownloadStandaloneFile -> "apiDownloadStandaloneFile" is ApiStandaloneFileInfo -> "apiStandaloneFileInfo" + is ApiRedeemBadgeCode -> "apiRedeemBadgeCode" + is ApiGetBadgeState -> "apiGetBadgeState" + is ApiAckBadgeAlert -> "apiAckBadgeAlert" is ShowVersion -> "showVersion" is ResetAgentServersStats -> "resetAgentServersStats" is GetAgentSubsTotal -> "getAgentSubsTotal" @@ -4372,6 +4522,8 @@ sealed class CC { is ApiUnhideUser -> ApiUnhideUser(userId, obfuscate(viewPwd)) is ApiDeleteUser -> ApiDeleteUser(userId, delSMPQueues, obfuscateOrNull(viewPwd)) is TestStorageEncryption -> TestStorageEncryption(obfuscate(key)) + // a code is a bearer secret until it is redeemed, and the terminal shows and copies cmdString + is ApiRedeemBadgeCode -> ApiRedeemBadgeCode(userId, obfuscate(code)) else -> this } @@ -6725,6 +6877,12 @@ sealed class CR { @Serializable @SerialName("appSettings") class AppSettingsR(val appSettings: AppSettings): CR() @Serializable @SerialName("agentSubsTotal") class AgentSubsTotal(val user: UserRef, val subsTotal: SMPServerSubs, val hasSession: Boolean): CR() @Serializable @SerialName("agentServersSummary") class AgentServersSummary(val user: UserRef, val serversSummary: PresentedServersSummary): CR() + // badges + // the full user, not UserRef: its profile carries the badge that setUserBadge just stored + @Serializable @SerialName("badgeRedeemed") class BadgeRedeemed(val user: User, val redeemedBadge: LocalBadge, val newBadge: Boolean): CR() + @Serializable @SerialName("badgeState") class BadgeStateR(val user: UserRef, val badgeState: BadgeState?): CR() + @Serializable @SerialName("badgeChanged") class BadgeChanged(val user: User, val badgeState: BadgeState?): CR() + @Serializable @SerialName("badgeAlert") class BadgeAlertR(val user: UserRef, val badgeAlert: BadgeAlert): CR() // general @Serializable class Response(val type: String, val json: String): CR() @Serializable class Invalid(val str: String): CR() @@ -6911,6 +7069,10 @@ sealed class CR { is ArchiveExported -> "archiveExported" is ArchiveImported -> "archiveImported" is AppSettingsR -> "appSettings" + is BadgeRedeemed -> "badgeRedeemed" + is BadgeStateR -> "badgeState" + is BadgeChanged -> "badgeChanged" + is BadgeAlertR -> "badgeAlert" is Response -> "* $type" is Invalid -> "* invalid json" } @@ -7114,6 +7276,10 @@ sealed class CR { is ArchiveExported -> "${archiveErrors.map { it.string } }" is ArchiveImported -> "${archiveErrors.map { it.string } }" is AppSettingsR -> json.encodeToString(appSettings) + is BadgeRedeemed -> withUser(user, "redeemedBadge: ${json.encodeToString(redeemedBadge)}\nnewBadge: $newBadge") + is BadgeStateR -> withUser(user, json.encodeToString(badgeState)) + is BadgeChanged -> withUser(user, json.encodeToString(badgeState)) + is BadgeAlertR -> withUser(user, json.encodeToString(badgeAlert)) is Response -> json is Invalid -> str } diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/platform/Core.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/platform/Core.kt index 3805a8e8b7..6b4e3e1353 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/platform/Core.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/platform/Core.kt @@ -33,6 +33,7 @@ external fun chatParseServer(str: String): String external fun chatParseUri(str: String, safe: Int): String external fun chatPasswordHash(pwd: String, salt: String): String external fun chatValidName(name: String): String +external fun chatParseBadgeCode(code: String): String external fun chatJsonLength(str: String): Int external fun chatWriteFile(ctrl: ChatCtrl, path: String, buffer: ByteBuffer): String external fun chatReadFile(path: String, key: String, nonce: String): Array diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/platform/Platform.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/platform/Platform.kt index d857ab974c..7d126096e8 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/platform/Platform.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/platform/Platform.kt @@ -38,6 +38,7 @@ interface PlatformInterface { // Play Billing, only implemented in the google flavor // TODO [badges] desktop and foss pay via Stripe/crypto - these defaults leave them without any // product until that path is implemented + val androidHasPlatformStore: Boolean get() = false suspend fun androidLoadBadgeProducts(oneTimeIds: List, subscriptionIds: List): List { Log.w(TAG, "androidLoadBadgeProducts: no store on this platform") return emptyList() diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgeUserPreview.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgeUserPreview.kt index 6380e5cf79..03fabf817e 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgeUserPreview.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgeUserPreview.kt @@ -16,13 +16,15 @@ import chat.simplex.common.platform.chatModel import chat.simplex.common.views.helpers.NameWithBadge import chat.simplex.common.views.helpers.ProfileImage import chat.simplex.res.MR +import kotlinx.datetime.Instant @Composable fun BadgeUserPreview(level: BadgeLevel, modifier: Modifier = Modifier, trailing: @Composable () -> Unit = {}) { val user = chatModel.currentUser.value val displayName = user?.displayName ?: stringResource(MR.strings.badges_preview_my_nickname) val previewBadge = LocalBadge( - badge = BadgeInfo(badgeType = level.badgeType), + // fabricated for the preview: the status is given here, and NameBadge renders from it alone + badge = BadgeInfo(badgeType = level.badgeType, badgeExpiry = Instant.DISTANT_FUTURE), status = BadgeStatus.Active ) Column(modifier, horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.spacedBy(12.dp)) { diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesRedeemCodeView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesRedeemCodeView.kt index 8a1069c536..6462215051 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesRedeemCodeView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesRedeemCodeView.kt @@ -1,29 +1,257 @@ package chat.simplex.common.views.badges +import androidx.compose.foundation.background import androidx.compose.foundation.layout.* -import androidx.compose.material.MaterialTheme -import androidx.compose.material.Text -import androidx.compose.runtime.Composable +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.foundation.text.BasicTextField +import androidx.compose.foundation.text.KeyboardOptions +import androidx.compose.material.* +import androidx.compose.runtime.* import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.SolidColor +import androidx.compose.ui.platform.LocalClipboardManager +import androidx.compose.ui.text.TextRange +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.font.FontFamily import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.input.KeyboardCapitalization +import androidx.compose.ui.text.input.TextFieldValue +import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp +import dev.icerock.moko.resources.StringResource import dev.icerock.moko.resources.compose.stringResource -import chat.simplex.common.platform.ColumnWithScrollBar +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.withContext +import chat.simplex.common.model.* +import chat.simplex.common.model.ChatController.appPrefs +import chat.simplex.common.platform.* +import chat.simplex.common.ui.theme.* +import chat.simplex.common.views.helpers.* +import chat.simplex.common.views.newchat.QRCodeScanner +import chat.simplex.common.views.onboarding.OnboardingActionButton +import chat.simplex.common.views.onboarding.TextButtonBelowOnboardingButton import chat.simplex.res.MR -// TODO [badges]: implement input field, server verification and success/failure states when the redeem API is defined. +private const val badgeCodePrefix = "SB" +private const val badgeCodeBodyLength = 20 +private const val badgeCodeGroupLength = 5 + +// The code as core will accept it - prefix and 20 characters, no separators - or null if it does not +// parse. Validity is decided only here: a second check-character implementation would drift. +fun parseBadgeCode(s: String): String? { + val canonical = chatParseBadgeCode(s) + return if (canonical.isEmpty()) null else canonical +} + +// Regroups what was typed; validity and the folding of ambiguous characters are core's alone. +private fun formatBadgeCodeInput(s: String): String { + val normalized = StringBuilder() + for (c in s.take(256).uppercase()) { + if (!c.isLetterOrDigit()) continue + normalized.append(c) + if (normalized.length == badgeCodePrefix.length + badgeCodeBodyLength) break + } + if (!normalized.startsWith(badgeCodePrefix)) return normalized.toString() + val groups = mutableListOf(badgeCodePrefix) + var i = badgeCodePrefix.length + while (i < normalized.length) { + val j = minOf(i + badgeCodeGroupLength, normalized.length) + groups.add(normalized.substring(i, j)) + i = j + } + return groups.joinToString("-") +} + @Composable fun BadgesRedeemCodeView() { + val rhId = remember { chatModel.remoteHostId() } + val supporterBannerShown = remember { appPrefs.supporterBannerShown } + val code = remember { mutableStateOf(TextFieldValue("")) } + val canonicalCode = remember { mutableStateOf(null) } + val submitting = remember { mutableStateOf(false) } + + fun applyCodeInput(s: String) { + val formatted = formatBadgeCodeInput(s) + if (formatted != code.value.text) code.value = TextFieldValue(formatted, selection = TextRange(formatted.length)) + canonicalCode.value = parseBadgeCode(formatted) + } + + fun redeem() { + val sending = canonicalCode.value ?: return + val user = chatModel.currentUser.value ?: return + submitting.value = true + withBGApi { + when (val result = chatModel.controller.apiRedeemBadgeCode(rhId, user.userId, sending)) { + is BadgeRedeemResult.Redeemed -> { + val badgeState = try { chatModel.controller.apiGetBadgeState(rhId, user.userId) } catch (e: Exception) { null } + withContext(Dispatchers.Main) { + submitting.value = false + // written before the pop: BadgesView swaps its content under this pushed view, so + // the pop reveals Your Badge already in place rather than animating it afterwards + if (badgeState != null) { + BadgeModel.set(rhId, user.userId, badgeState) + } + // the response is the only carrier: redeeming raises no event that refreshes the + // profile, so without this the badge beside the name is the one from before + chatModel.updateUser(result.user) + if (badgeState != null && !badgeState.shown) { + // a replay adds no purchase; a fresh code's badge can be retired on arrival + AlertManager.shared.showAlertMsg( + title = generalGetString(MR.strings.badges_error_title), + text = generalGetString(failureMessage(if (result.newBadge) BadgeRedeemError.BadgeEnded else BadgeRedeemError.CodeUsed)) + ) + } else { + supporterBannerShown.set(true) + ModalManager.start.closeModal() + } + } + } + is BadgeRedeemResult.Failed -> { + // the mapped case only - core embeds the service's response in some of these messages + Log.e(TAG, "apiRedeemBadgeCode: ${result.error}") + withContext(Dispatchers.Main) { + submitting.value = false + AlertManager.shared.showAlertMsg( + title = generalGetString(MR.strings.badges_error_title), + text = generalGetString(failureMessage(result.error)) + ) + } + } + } + } + } + ColumnWithScrollBar( - Modifier.padding(horizontal = 25.dp).padding(top = 8.dp), - horizontalAlignment = Alignment.Start + Modifier.padding(horizontal = 25.dp).padding(top = 8.dp, bottom = 20.dp), + verticalArrangement = Arrangement.spacedBy(16.dp), + horizontalAlignment = Alignment.CenterHorizontally, + maxIntrinsicSize = true, ) { Text( - stringResource(MR.strings.badges_redeem_code_button), + stringResource(MR.strings.badges_redeem_code_title), style = MaterialTheme.typography.h1, fontWeight = FontWeight.Bold, - color = MaterialTheme.colors.primary + color = MaterialTheme.colors.primary, + textAlign = TextAlign.Center, + modifier = Modifier.fillMaxWidth() ) + + Text( + stringResource(MR.strings.badges_redeem_code_body), + style = MaterialTheme.typography.body1, + textAlign = TextAlign.Center, + modifier = Modifier.fillMaxWidth() + ) + + CodeField(code, submitting.value, ::applyCodeInput) + + PasteButton(submitting.value, ::applyCodeInput) + + if (appPlatform.isAndroid) { + QRCodeScanner(padding = PaddingValues(start = 16.dp, top = 12.dp, end = 16.dp)) { text -> + val formatted = formatBadgeCodeInput(text) + when { + submitting.value -> false + parseBadgeCode(formatted) == null -> { + AlertManager.shared.showAlertMsg( + title = generalGetString(MR.strings.invalid_qr_code), + text = generalGetString(MR.strings.badges_code_you_scanned_is_not_badge_code) + ) + false + } + else -> { + applyCodeInput(formatted) + redeem() + true + } + } + } + } + + Spacer(Modifier.weight(1f)) + + Column(horizontalAlignment = Alignment.CenterHorizontally) { + SubmitButton(enabled = canonicalCode.value != null && !submitting.value, onClick = ::redeem) + TextButtonBelowOnboardingButton("", null) + } } } + +@Composable +private fun CodeField(code: MutableState, submitting: Boolean, applyCodeInput: (String) -> Unit) { + val colors = TextFieldDefaults.textFieldColors( + backgroundColor = MaterialTheme.appColors.sentMessage, + textColor = MaterialTheme.colors.onBackground, + focusedIndicatorColor = Color.Unspecified, + unfocusedIndicatorColor = Color.Unspecified, + ) + BasicTextField( + value = code.value, + onValueChange = { applyCodeInput(it.text) }, + enabled = !submitting, + singleLine = true, + textStyle = TextStyle.Default.copy( + color = MaterialTheme.colors.onBackground, + fontFamily = FontFamily.Monospace, + fontSize = MaterialTheme.typography.body1.fontSize, + textAlign = TextAlign.Center + ), + keyboardOptions = KeyboardOptions(capitalization = KeyboardCapitalization.Characters, autoCorrect = false), + cursorBrush = SolidColor(colors.cursorColor(false).value), + modifier = Modifier + .fillMaxWidth() + .clip(RoundedCornerShape(10.dp)) + .background(colors.backgroundColor(!submitting).value) + .padding(start = 12.dp, top = 14.dp, end = 12.dp, bottom = 14.dp), + decorationBox = { innerTextField -> + Box(contentAlignment = Alignment.Center) { + if (code.value.text.isEmpty()) { + Text(stringResource(MR.strings.badges_redeem_code_placeholder), color = MaterialTheme.colors.secondary, fontFamily = FontFamily.Monospace) + } + innerTextField() + } + } + ) +} + +@Composable +private fun PasteButton(submitting: Boolean, applyCodeInput: (String) -> Unit) { + val clipboard = LocalClipboardManager.current + TextButton( + onClick = { clipboard.getText()?.text?.let { applyCodeInput(it) } }, + enabled = !submitting + ) { + Text(stringResource(MR.strings.paste_button), color = MaterialTheme.colors.primary, fontWeight = FontWeight.Medium) + } +} + +@Composable +private fun SubmitButton(enabled: Boolean, onClick: () -> Unit) { + OnboardingActionButton( + modifier = if (appPlatform.isAndroid) Modifier.padding(horizontal = DEFAULT_ONBOARDING_HORIZONTAL_PADDING).fillMaxWidth() else Modifier.widthIn(min = 300.dp), + labelId = MR.strings.badges_redeem, + onboarding = null, + enabled = enabled, + onclick = onClick + ) +} + +private fun failureMessage(failure: BadgeRedeemError): StringResource = when (failure) { + BadgeRedeemError.InvalidCode -> MR.strings.badges_error_invalid_code + BadgeRedeemError.ServiceNotConfigured -> MR.strings.badges_error_service_not_configured + BadgeRedeemError.AlreadyActive -> MR.strings.badges_error_already_active + BadgeRedeemError.CodeInvalid -> MR.strings.badges_error_code_invalid + BadgeRedeemError.CodeUsed -> MR.strings.badges_error_code_used + BadgeRedeemError.CodeExpired -> MR.strings.badges_error_code_expired + BadgeRedeemError.RateLimited -> MR.strings.badges_error_rate_limited + BadgeRedeemError.ServiceFailed -> MR.strings.badges_error_service_failed + BadgeRedeemError.BadServiceResponse -> MR.strings.badges_error_bad_service_response + BadgeRedeemError.CredentialNotVerified -> MR.strings.badges_error_credential_not_verified + BadgeRedeemError.UnsupportedVersion -> MR.strings.badges_error_unsupported_version + BadgeRedeemError.NetworkError -> MR.strings.badges_error_network + BadgeRedeemError.BadgeEnded -> MR.strings.badges_error_badge_ended + BadgeRedeemError.Unknown -> MR.strings.badges_error_unknown +} diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesSupportSimplexView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesSupportSimplexView.kt index 099954a4f1..a9d935cdde 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesSupportSimplexView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesSupportSimplexView.kt @@ -12,6 +12,7 @@ import androidx.compose.ui.geometry.Offset import androidx.compose.ui.graphics.Brush import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.layout.onSizeChanged +import androidx.compose.ui.platform.LocalUriHandler import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.IntSize @@ -32,10 +33,6 @@ import chat.simplex.res.MR @Composable fun BadgesSupportSimplexView() { - // TODO [badges] gate on user badge status (no badge → this view, active → "Manage your badge") - // preloaded here so the level screen shows store prices without a placeholder pass - LaunchedEffect(Unit) { BadgeStore.load() } - ColumnWithScrollBar( Modifier.background(MaterialTheme.colors.background).padding(horizontal = 25.dp).padding(top = 8.dp, bottom = 20.dp), verticalArrangement = Arrangement.spacedBy(16.dp), @@ -58,15 +55,9 @@ fun BadgesSupportSimplexView() { modifier = Modifier.fillMaxWidth() ) - val primary = MaterialTheme.colors.primary - TextButton({ - ModalManager.start.showModal { HowItWorks(user = chatModel.currentUser.value, onboardingStage = null, titleColor = primary) } - }) { - Row(verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.spacedBy(6.dp)) { - Icon(painterResource(MR.images.ic_info), null, tint = MaterialTheme.colors.primary) - Text(stringResource(MR.strings.badges_why_simplex_is_built), color = MaterialTheme.colors.primary, fontWeight = FontWeight.Medium) - } - } + // TODO [badges] restore WhyBuiltButton() when in-app purchase lands: the level screen + // returns to the flow and HowItWorksButton() moves there, leaving this one alone here. + HowItWorksButton() Spacer(Modifier.weight(1f)) @@ -75,15 +66,13 @@ fun BadgesSupportSimplexView() { Spacer(Modifier.weight(1f)) Column(horizontalAlignment = Alignment.CenterHorizontally) { - ChooseLevelButton() - TextButtonBelowOnboardingButton( - text = stringResource(MR.strings.badges_redeem_code_button), - onClick = { ModalManager.start.showModal { BadgesRedeemCodeView() } } - ) + RedeemCodeButton() + GetCodeButton() } } } +// the in-app purchase path, kept compiling and uncalled until payments return after the MVP @Composable private fun ChooseLevelButton() { OnboardingActionButton( @@ -96,6 +85,55 @@ private fun ChooseLevelButton() { ) } +@Composable +private fun WhyBuiltButton() { + val primary = MaterialTheme.colors.primary + TextButton({ + ModalManager.start.showModal { HowItWorks(user = chatModel.currentUser.value, onboardingStage = null, titleColor = primary) } + }) { + Row(verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.spacedBy(6.dp)) { + Icon(painterResource(MR.images.ic_info), null, tint = MaterialTheme.colors.primary) + Text(stringResource(MR.strings.badges_why_simplex_is_built), color = MaterialTheme.colors.primary, fontWeight = FontWeight.Medium) + } + } +} + +@Composable +private fun HowItWorksButton() { + TextButton({ + ModalManager.start.showModal { BadgesHowItWorksView() } + }) { + Row(verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.spacedBy(6.dp)) { + Icon(painterResource(MR.images.ic_info), null, tint = MaterialTheme.colors.primary) + Text(stringResource(MR.strings.badges_how_it_works_button), color = MaterialTheme.colors.primary, fontWeight = FontWeight.Medium) + } + } +} + +@Composable +private fun RedeemCodeButton() { + OnboardingActionButton( + modifier = if (appPlatform.isAndroid) Modifier.padding(horizontal = DEFAULT_ONBOARDING_HORIZONTAL_PADDING).fillMaxWidth() else Modifier.widthIn(min = 300.dp), + labelId = MR.strings.badges_redeem_code_button, + onboarding = null, + onclick = { + ModalManager.start.showModal { BadgesRedeemCodeView() } + } + ) +} + +@Composable +private fun GetCodeButton() { + val uriHandler = LocalUriHandler.current + if (platform.androidHasPlatformStore) { + TextButtonBelowOnboardingButton("", null) + } else { + TextButtonBelowOnboardingButton( + text = stringResource(MR.strings.badges_get_your_code), + onClick = { uriHandler.openExternalLink("https://simplex.chat/badges/") } + ) + } +} @Composable fun PhoneSupporterHero(modifier: Modifier = Modifier) { diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesView.kt new file mode 100644 index 0000000000..ac64c20d7c --- /dev/null +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesView.kt @@ -0,0 +1,25 @@ +package chat.simplex.common.views.badges + +import androidx.compose.animation.* +import androidx.compose.runtime.Composable +import chat.simplex.common.model.BadgeModel +import chat.simplex.common.model.BadgeState +import chat.simplex.common.platform.chatModel + +@OptIn(ExperimentalAnimationApi::class) +@Composable +fun BadgesView() { + val shownBadge: BadgeState? = run { + if (!BadgeModel.isCurrent(chatModel.remoteHostId(), chatModel.currentUser.value?.userId)) return@run null + val badgeState = BadgeModel.badgeState.value + if (badgeState != null && badgeState.shown) badgeState else null + } + + AnimatedContent(targetState = shownBadge, transitionSpec = { fadeIn() with fadeOut() }) { badgeState -> + if (badgeState != null) { + BadgesYourBadgeView(badgeState) + } else { + BadgesSupportSimplexView() + } + } +} diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesYourBadgeView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesYourBadgeView.kt new file mode 100644 index 0000000000..4ff8f2c6de --- /dev/null +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesYourBadgeView.kt @@ -0,0 +1,76 @@ +package chat.simplex.common.views.badges + +import SectionSpacer +import SectionTextFooter +import SectionView +import androidx.compose.foundation.Image +import androidx.compose.foundation.layout.* +import androidx.compose.material.MaterialTheme +import androidx.compose.material.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.unit.dp +import dev.icerock.moko.resources.compose.painterResource +import dev.icerock.moko.resources.compose.stringResource +import chat.simplex.common.model.BadgeState +import chat.simplex.common.model.BadgeType +import chat.simplex.common.platform.ColumnWithScrollBar +import chat.simplex.common.ui.theme.DEFAULT_PADDING +import chat.simplex.common.views.helpers.AppBarTitle +import chat.simplex.common.views.helpers.badgeImage +import chat.simplex.res.MR + +@Composable +fun BadgesYourBadgeView(badgeState: BadgeState) { + val title = if (badgeState.shown) MR.strings.badges_your_badge else MR.strings.badges_support_ended + + ColumnWithScrollBar { + AppBarTitle(stringResource(title)) + + SectionView { + BadgeSummary(badgeState) + } + SectionSpacer() + SectionView(stringResource(MR.strings.badges_ends).uppercase()) { + Text(badgeState.paidThroughText, Modifier.padding(horizontal = DEFAULT_PADDING, vertical = 12.dp)) + } + SectionTextFooter(stringResource(MR.strings.badges_prepaid_footer)) + SectionSpacer() + } +} + +@Composable +fun BadgeSummary(badgeState: BadgeState) { + Column( + Modifier.fillMaxWidth().padding(vertical = 8.dp), + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.spacedBy(4.dp) + ) { + Image( + painterResource(badgeImage(badgeState.badgeType)), + contentDescription = null, + contentScale = ContentScale.Fit, + modifier = Modifier.size(68.dp).padding(bottom = 8.dp) + ) + + Text(badgeTypeName(badgeState.badgeType), style = MaterialTheme.typography.h3, fontWeight = FontWeight.SemiBold) + + Text( + stringResource(MR.strings.badges_shown_on_your_profile), + style = MaterialTheme.typography.body2, + color = MaterialTheme.colors.secondary + ) + } +} + +// verbatim for an unknown type: it is the service's string, and must not be looked up as a localised key +@Composable +private fun badgeTypeName(t: BadgeType): String = when (t) { + is BadgeType.Supporter -> stringResource(MR.strings.badges_level_supporter) + is BadgeType.Legend -> stringResource(MR.strings.badges_level_legend) + is BadgeType.Investor -> stringResource(MR.strings.badges_type_investor) + is BadgeType.Unknown -> t.type +} diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/SupportSimpleXBanner.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/SupportSimpleXBanner.kt index 55a8cef525..94203e2169 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/SupportSimpleXBanner.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/SupportSimpleXBanner.kt @@ -31,7 +31,12 @@ import chat.simplex.common.views.newchat.lightStops import chat.simplex.res.MR @Composable -fun SupportSimpleXBanner(onTap: () -> Unit, onDismiss: () -> Unit) { +fun SupportSimpleXBanner( + title: String = generalGetString(MR.strings.badges_banner_title), + subtitle: String = generalGetString(MR.strings.badges_banner_subtitle), + onTap: () -> Unit, + onDismiss: () -> Unit +) { val cardCornerRadius = 16.dp // grows linearly with system font but never shrinks below the default so small-font users see the // same baseline; the card Row uses heightIn(min = cardHeight) and grows further when 2-line text @@ -73,7 +78,7 @@ fun SupportSimpleXBanner(onTap: () -> Unit, onDismiss: () -> Unit) { ) { Column(verticalArrangement = Arrangement.spacedBy(4.dp)) { Text( - stringResource(MR.strings.badges_banner_title), + title, style = MaterialTheme.typography.body1, fontWeight = FontWeight.SemiBold, color = MaterialTheme.colors.primary, @@ -81,7 +86,7 @@ fun SupportSimpleXBanner(onTap: () -> Unit, onDismiss: () -> Unit) { overflow = TextOverflow.Ellipsis ) Text( - stringResource(MR.strings.badges_banner_subtitle), + subtitle, style = MaterialTheme.typography.body2, color = MaterialTheme.colors.onBackground, maxLines = 2, @@ -99,13 +104,7 @@ fun SupportSimpleXBanner(onTap: () -> Unit, onDismiss: () -> Unit) { .align(Alignment.TopEnd) .padding(end = 4.dp, top = 4.dp) .clip(CircleShape) - .clickable { - AlertManager.shared.showAlertMsg( - title = generalGetString(MR.strings.badges_banner_title), - text = generalGetString(MR.strings.badges_banner_dismiss_message), - onConfirm = onDismiss - ) - } + .clickable(onClick = onDismiss) .padding(8.dp) .size(16.dp) ) diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chatlist/ChatListView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chatlist/ChatListView.kt index 16a944d7bd..82e8a71bf2 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chatlist/ChatListView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chatlist/ChatListView.kt @@ -36,6 +36,7 @@ import chat.simplex.common.model.* import chat.simplex.common.model.ChatController.appPrefs import chat.simplex.common.model.ChatController.stopRemoteHostAndReloadHosts import chat.simplex.common.ui.theme.* +import SectionItemView import chat.simplex.common.views.helpers.* import chat.simplex.common.platform.* import chat.simplex.common.views.call.Call @@ -63,6 +64,41 @@ sealed class ActiveFilter { data object Unread: ActiveFilter() } +private fun showSupportEndedDismissAlert() { + AlertManager.shared.showAlertDialogButtonsColumn( + title = generalGetString(MR.strings.badges_support_ended), + buttons = { + Column { + SectionItemView({ + AlertManager.shared.hideAlert() + withBGApi { chatModel.controller.ackBadgeAlert(snooze = true) } + }) { + Text(stringResource(MR.strings.badges_remind_me_later), Modifier.fillMaxWidth(), textAlign = TextAlign.Center, color = MaterialTheme.colors.primary) + } + SectionItemView({ + AlertManager.shared.hideAlert() + withBGApi { chatModel.controller.ackBadgeAlert(snooze = false) } + }) { + Text(stringResource(MR.strings.badges_dont_show_again), Modifier.fillMaxWidth(), textAlign = TextAlign.Center, color = MaterialTheme.colors.primary) + } + SectionItemView({ + AlertManager.shared.hideAlert() + }) { + Text(stringResource(MR.strings.cancel_verb), Modifier.fillMaxWidth(), textAlign = TextAlign.Center, color = MaterialTheme.colors.primary) + } + } + } + ) +} + +private fun showSupportSimpleXDismissAlert() { + AlertManager.shared.showAlertMsg( + title = generalGetString(MR.strings.badges_banner_title), + text = generalGetString(MR.strings.badges_banner_dismiss_message), + onConfirm = { appPrefs.supporterBannerShown.set(true) } + ) +} + private fun showNewChatSheet(oneHandUI: State) { connectProgressManager.cancelConnectProgress() ModalManager.start.closeModals() @@ -1002,12 +1038,25 @@ private fun BoxScope.ChatList(searchText: MutableState, listStat ToggleChatListCard() } } - if (!supporterBannerShown.value && chatModel.chats.value.size > 3) { + // one slot: a badge the user paid for ending outranks the pitch to get one + val alert = BadgeModel.alert.value + if (supportEnded() && alert != null) { item { Box(Modifier.zIndex(1f).padding(16.dp)) { SupportSimpleXBanner( - onTap = { ModalManager.start.showModal { BadgesSupportSimplexView() } }, - onDismiss = { appPrefs.supporterBannerShown.set(true) } + title = stringResource(MR.strings.badges_support_ended), + subtitle = String.format(stringResource(MR.strings.badges_support_ended_on), alert.dateText), + onTap = { ModalManager.start.showModal { BadgesView() } }, + onDismiss = ::showSupportEndedDismissAlert + ) + } + } + } else if (!supporterBannerShown.value && chatModel.chats.value.size > 3) { + item { + Box(Modifier.zIndex(1f).padding(16.dp)) { + SupportSimpleXBanner( + onTap = { ModalManager.start.showModal { BadgesView() } }, + onDismiss = ::showSupportSimpleXDismissAlert ) } } diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/newchat/OnboardingCards.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/newchat/OnboardingCards.kt index 26007c74af..9f4b213cb2 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/newchat/OnboardingCards.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/newchat/OnboardingCards.kt @@ -42,13 +42,18 @@ import kotlin.math.sin private const val CARD_HEIGHT_RATIO = 0.75f private const val GRADIENT_ANGLE_RAD = 80.0 * Math.PI / 180.0 +// the onboarding cards replace the whole chat list, and the support-ended banner lives in the +// list - a lapsed supporter is not a newcomer, and must be told even with no conversations yet @Composable fun shouldShowOnboarding(): Boolean { val addressCreationCardShown = remember { appPrefs.addressCreationCardShown.state } val chats = chatModel.chats.value - return !addressCreationCardShown.value && chats.isNotEmpty() && !hasConversations(chats) + return !addressCreationCardShown.value && chats.isNotEmpty() && !hasConversations(chats) && !supportEnded() } +fun supportEnded(): Boolean = + BadgeModel.alert.value?.kind == BadgeAlertKind.SupportEnded && BadgeModel.isCurrent(chatModel.remoteHostId(), chatModel.currentUser.value?.userId) + fun hasConversations(chats: List): Boolean = chats.any { chat -> when (val c = chat.chatInfo) { diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/onboarding/WhatsNewView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/onboarding/WhatsNewView.kt index 2588dcbdc7..ca9ee078d6 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/onboarding/WhatsNewView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/onboarding/WhatsNewView.kt @@ -969,7 +969,8 @@ private val versionDescriptions: List = listOf( ), ) ), - // TODO [badges] finalise copy + Read more link before v7.1 ships. + // TODO [badges] restore when badges ship, with final copy and the Read more link. + /* VersionDescription( version = "v7.1", post = null, @@ -981,6 +982,7 @@ private val versionDescriptions: List = listOf( ) ) ), + */ ) @Composable diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/usersettings/SettingsView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/usersettings/SettingsView.kt index 516e2c56bc..823a6b2f0c 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/usersettings/SettingsView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/usersettings/SettingsView.kt @@ -26,7 +26,7 @@ import chat.simplex.common.model.* import chat.simplex.common.model.ChatController.appPrefs import chat.simplex.common.platform.* import chat.simplex.common.ui.theme.* -import chat.simplex.common.views.badges.BadgesSupportSimplexView +import chat.simplex.common.views.badges.BadgesView import chat.simplex.common.views.database.DatabaseView import chat.simplex.common.views.helpers.* import chat.simplex.common.views.migration.MigrateFromDeviceView @@ -107,8 +107,9 @@ fun SettingsLayout( SectionView { // Direct showModal (no settings / cardScreen flags) — settings-style card chrome would render // a gray top bar / back button that badges views don't want (they have their own inline titles). - SectionItemView(click = { ModalManager.start.showModal { BadgesSupportSimplexView() } }) { - Image(painterResource(MR.images.badge_supporter), stringResource(MR.strings.supporter_perks), Modifier.size(24.dp)) + SectionItemView(click = { ModalManager.start.showModal { BadgesView() } }) { + val badgeType = chatModel.currentUser.value?.profile?.localBadge?.badge?.badgeType ?: BadgeType.Supporter + Image(painterResource(badgeImage(badgeType)), stringResource(MR.strings.supporter_perks), Modifier.size(24.dp)) TextIconSpaced() Text(stringResource(MR.strings.supporter_perks)) } diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/ar/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/ar/strings.xml index 2ab1933418..5aa9270e4b 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/ar/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/ar/strings.xml @@ -1754,12 +1754,10 @@ غير محمي السماح بالرجوع إلى إصدار سابق لا تستخدم التوجيه الخاص. - وضع توجيه الرسائل لا عندما يكون IP مخفيًا لا ترسل رسائل مباشرةً، حتى لو كان خادمك أو خادم الوجهة لا يدعم التوجيه الخاص. أرسل الرسائل مباشرة عندما لا يدعم الخادم الوجهة الخاص بك أو الخادم الوجهة التوجيه الخاص. - احتياطي توجيه الرسالة أظهِر حالة الرسالة احمِ عنوان IP بدون تور أو VPN، سيكون عنوان IP الخاص بك مرئيًا لخوادم الملفات. @@ -1775,7 +1773,6 @@ خوادم غير معروفة! بدون تور أو VPN، سيكون عنوان IP الخاص بك مرئيًا لمُرحلات XFTP هذه: \n%1$s. - أظهِر قائمة الدردشة في نافذة جديدة ألوان الدردشة سمة الدردشة تلقيت رد @@ -1962,9 +1959,7 @@ متوسط ناعم مكالمة - اتصل مراسلة - افتح بحث الإعدادات فيديو @@ -2107,9 +2102,6 @@ عنوان SimpleX أو رابط لمرة واحدة؟ مُشغلي الشبكة يمكنك تضبيط الخوادم عبر الإعدادات. - حدد مشغلي الشبكة الذين تريد استخدامهم. - يمكنك تضبيط المُشغلين في إعدادات الشبكة والخوادم. - حدّث تابع الشروط المتفق عليها راجع الشروط @@ -2121,7 +2113,6 @@ مُشغل الشبكة المُشغل %s خوادم - الموقع الإلكتروني سيتم قبول الشروط في: %s. قُبل الشروط في: %s. استخدم %s @@ -2151,14 +2142,12 @@ فعّل flux في إعدادات الشبكة والخوادم لتحسين خصوصية البيانات الوصفية. اللامركزية الشبكية المُشغل المُعد مسبقًا الثاني في التطبيق! - لتحسين خصوصية البيانات الوصفية. تحسين التنقل في الدردشة اعرض الشروط المُحدثة اقبل الشروط أُضيفت خوادم الرسائل عنوان أو رابط لمرة واحدة؟ مع جهة اتصال واحدة فقط - المشاركة شخصيًا أو عبر أي مُراسل.]]> - سيتم قبول الشروط للمُشغلين المفعّلين بعد 30 يومًا. مُشغلي الخادم لا يمكن تحميل نص الشروط الحالية، يمكنك مراجعة الشروط عبر هذا الرابط: خطأ في قبول الشروط @@ -2171,12 +2160,10 @@ لا يوجد خوادم لاستلام الرسائل. - فتح الدردشة عند أول رسالة غير مقروءة.\n- الانتقال إلى الرسائل المقتبسة. يمكنك تعيين اسم الاتصال، لتتذكر الأشخاص الذين شاركتَ الرابط معهم. - راجع لاحقًا تغيّر بروتوكول الخادم. شارك العنوان علناً شارك عنوان SimpleX على وسائل التواصل الاجتماعي. عنوان SimpleX والروابط لمرة واحدة آمنة للمشاركة عبر أي برنامج مُراسلة. - انقر فوق أنشئ عنوان SimpleX في القائمة لإنشائه لاحقًا. حُذفت هذه الرسالة أو لم تُستلم بعد. استخدم للرسائل يحمي التطبيق خصوصيتك من خلال استخدام مُشغلين مختلفين في كل محادثة. @@ -2207,7 +2194,6 @@ الإشعارات والبطارية فقط مالكي الدردشة يمكنهم تغيير التفضيلات. الخصوصية لعملائك. - الجوّالات عن بُعد ادعُ للدردشة مغادرة المجموعة؟ سيتم إزالة العضو من الدردشة - لا يمكن التراجع عن هذا! @@ -2287,7 +2273,6 @@ بلّغ عن إزعاج (spam): سيراه مُشرفو المجموعة فقط. أرشفة البلاغ؟ سبب الإبلاغ؟ - سيتم أرشفة البلاغ لك. إزعاج (spam) نعم اسأل @@ -2312,7 +2297,6 @@ استخدم منفذ الويب منفذ TCP للمُراسلة اكتم الكل - ذّكورات غير مقروءة يمكنك ذكر ما يصل إلى %1$s من الأعضاء في الرسالة الواحدة! السماح بالإبلاغ عن الرسائل إلى المُشرفين. امنع الإبلاغ عن الرسائل للمُشرفين. @@ -2438,7 +2422,6 @@ إرسال طلب جهة اتصال؟ أرسل طلب أرسل طلب دون رسالة - أُرسل إلى جهة اتصالك بعد الاتصال. ترقية رابط المجموعة؟ رقِّ ترقية العنوان؟ @@ -2494,7 +2477,6 @@ طلبات التواصل في المجموعات حُذف العضو - لا يمكن قبول الطلب طُلب اتصال من المجموعة %1$s - هذا الإعداد لملف تعريفك الحالي اسمح بالملفات والوسائط فقط إذا سمح جهة اتصالك بذلك. اسمح لجهات اتصالك بإرسال الملفات والوسائط. روبوت @@ -2526,7 +2508,6 @@ فشل الاتصال فشل ملفات - تصفية صور روابط ابحث عن ملفات @@ -2562,7 +2543,6 @@ قناة اسم القناة بالكامل رابط القناة - أعضاء القناة اسم القناة يُخزّن ملف تعريف القناة على أجهزة المشتركين وعلى مُرحلات الدردشة. حُدِّث ملف تعريف القناة @@ -2590,7 +2570,6 @@ أدخل اسم المُرحل… خطأ في إضافة المُرحل خطأ في إنشاء القناة - خطأ في فتح القناة خطأ: %s خطأ في حفظ ملف تعريف القناة فشل @@ -2610,7 +2589,6 @@ لا مُرحلات دردشة مفعّلة. ليس كل المُرحلات متصلة افتح قناة - افتح قناة جديدة المالك المالكين والمساهمين عنوان المُرحل مسبق الضبط @@ -2779,7 +2757,6 @@ عنوانك العام لقد وُلدت دون حساب تعريفي. قناتك الجديدة %1$s متصلة بـ %2$d من أصل %3$d مُرحلات. إذا ألغيت، ستُحذف القناة - يمكنك إنشاؤها مرة أخرى. - أضف أضف مُرحل أضف مُرحلات ألغِ واحذف القناة @@ -2814,14 +2791,11 @@ الحالة %1$d مالك %1$d مالكون - عن خيارات متقدّمة إعدادات متقدّمة اسمح لأي شخص بالتضمين يمكن لأي صفحة ويب عرض المعاينة. بيانات الدردشة - يتطلب الاتصال عبر اسم القناة إصدارًا أحدث من التطبيق. - يتطلب الاتصال عبر اسم جهة الاتصال إصدارًا أحدث من التطبيق. تواصل مساهم انسخ الرمز @@ -2833,7 +2807,6 @@ سيتم عرضه للمشتركين واستخدامه للسماح بتحميل المعاينة. مزيد من الخصوصية لا يمكن عرض المعاينة إلا على صفحتك المذكورة أعلاه. - يُرجى ترقية التطبيق. %1$d مالكين ومساهمين %1$s دعم تطبيق SimpleX Chat. انتهت صلاحية الشارة في %2$s. قائمة المعترف بهم @@ -2849,8 +2822,6 @@ سيتم تغيير الدور إلى "%s". وسيتم إشعار جميع المشاركين في القناة بذلك. تعذّر التحقق من صحة هذه الشارة، وقد لا تكون أصلية. تتطلب هذه المجموعة إصدارًا أحدث من التطبيق. يُرجى تحديث التطبيق للانضمام إليها. - اسم قناة غير مدعوم - اسم جهة اتصال غير مدعوم شارة غير متحقق منها لا تدعم خوادم ترحيل الدردشة المستعملة صفحات الويب. رمز صفحة الويب @@ -2865,7 +2836,6 @@ خطأ المحلّل: %1$s الخادم %1$s لا يدعم تحليل الأسماء. اضبط الخوادم أو استخدم رابط الاتصال. عيِّن اسم SimpleX - اسم SimpleX خطأ في اسم SimpleX لم يتحقق مِن اسم SimpleX اسم SimpleX %1$s مسجَّل، لكنه لا يحتوي على رابط صالح. diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/base/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/base/strings.xml index f23224b114..480e448954 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/base/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/base/strings.xml @@ -203,11 +203,6 @@ Please check that you used the correct link or ask your contact to send you another one. Unsupported connection link This link requires a newer app version. Please upgrade the app or ask your contact to send a compatible link. - Unsupported channel name - Unsupported contact name - Connecting via channel name requires a newer app version. - Connecting via contact name requires a newer app version. - Please upgrade the app. SimpleX name error None of your servers are set to resolve SimpleX names. Configure servers, or use a connection link. Server %1$s does not support name resolution. Configure servers, or use a connection link. @@ -373,7 +368,6 @@ Archive report? Archive %d reports? Archive all reports? - The report will be archived for you. All reports will be archived for you. For me For all moderators @@ -424,7 +418,6 @@ Files Links All messages - Filter Archive Archive report Archive reports @@ -528,7 +521,6 @@ contact should accept… Connect with %1$s? Search or paste SimpleX link - Tap Create SimpleX address in the menu to create it later. No selected chat @@ -726,8 +718,6 @@ Delete chat messages from your device. - connect - open message call search @@ -880,7 +870,6 @@ Unmute Favorite Unfavorite - Unread mentions Create list @@ -987,7 +976,6 @@ Verify name Verify SimpleX names SimpleX name not verified - SimpleX name Your SimpleX name Set SimpleX name Error saving name @@ -1154,7 +1142,6 @@ Use private routing with unknown servers. Use private routing with unknown servers when IP address is not protected. Do NOT use private routing. - Message routing mode Allow downgrade Yes When IP hidden @@ -1162,7 +1149,6 @@ Send messages directly when your or destination server does not support private routing. Send messages directly when IP address is protected and your or destination server does not support private routing. Do NOT send messages directly, even if your or destination server does not support private routing. - Message routing fallback Show message status To protect your IP address, private routing uses your SMP servers to deliver messages. TCP port for messaging @@ -1229,7 +1215,6 @@ Stop sharing Auto-accept Group invitations - Sent to your contact after connection. Welcome message Enter welcome message… (optional) Save settings? @@ -1432,13 +1417,8 @@ When more than one operator is enabled, none of them has metadata to learn who communicates with whom. For example, if your contact receives messages via a SimpleX Chat server, your app will deliver them via a Flux server. About operators - Select network operators to use. How it helps privacy You can configure servers via settings. - Conditions will be accepted for enabled operators after 30 days. - You can configure operators in Network & servers settings. - Review later - Update Continue @@ -1579,7 +1559,6 @@ An empty chat profile with the provided name is created, and the app opens as usual. If you enter this passcode when opening the app, all app data will be irreversibly removed! Set passcode - This setting is for your current profile These settings are for your current profile They can be overridden in contact and group settings. Contacts @@ -1626,7 +1605,6 @@ Files Send delivery receipts to Contact requests in groups - About Contact Support the project Chat data @@ -1660,7 +1638,6 @@ Your chat database Run chat - Remote mobiles Chat is running Chat is stopped Chat database @@ -1794,7 +1771,6 @@ Top bar You can change it in Appearance settings. Show console in new window - Show chat list in new window Invalid migration confirmation Upgrade and open chat Downgrade and open chat @@ -2037,7 +2013,6 @@ Invite Link Chat with admins - Channel members Chat relays @@ -2208,7 +2183,6 @@ Operator %s servers Network operator - Website Conditions accepted on: %s. Conditions will be accepted on: %s. Use servers @@ -2714,7 +2688,6 @@ Network decentralization The second preset operator in the app! Enable Flux in Network & servers settings for better metadata privacy. - for better metadata privacy. Improved chat navigation - Open chat on the first unread message.\n- Jump to quoted messages. Business chats @@ -3175,7 +3148,6 @@ Your profile %1$s will be shared with channel relays and subscribers.\nRelays can access channel messages. Configure relays failed - Add Add relay Add relays No available relays @@ -3193,12 +3165,10 @@ Relay address This is a chat relay address, it cannot be used to connect. Open channel - Open new channel You are a subscriber You are a contributor Your channel %1$s!]]> - Error opening channel Unblock subscriber for all? @@ -3257,9 +3227,9 @@ Continue How private badges work How private badges work - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. - Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. - Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. + A badge is not an account. It is a signed credential stored on your device. It does not identify you, and no one keeps a record of who holds which badge. + Your contacts see the badge and its expiry date, and nothing else. The badge carries no identifier, so it cannot be used to find out who you are or to match you across chats. + Payment and badge are kept apart. Paying is one step; the badge is issued in another, under a key that exists only for that badge. Whoever handles the payment cannot see where the badge ends up. My nickname Support SimpleX Get badge + files up to 5GB @@ -3268,6 +3238,36 @@ Purchase pending The purchase is awaiting approval. This build does not deliver purchases approved later. Purchase error + Get your code + Redeem code + Paste the code from your receipt. + SB-XXXXX-XXXXX-XXXXX-XXXXX + Redeem + Cannot redeem code + This code is not valid. + This app version cannot redeem badge codes. + This profile already has a badge. Redeem the code on another profile, or once this badge ends. + This code was not recognised. + This code has already been used. + This code has expired. + Too many attempts. Please try again later. + The badge service is unavailable. Please try again later. + The badge service sent an unexpected response. + This app version cannot verify this badge. Please update the app. + This app version is too old for the badge service. Please update the app. + Connection error. Please check your network connection. + The code was accepted, but the badge it grants has already ended. + The code could not be redeemed. + The code you scanned is not a badge code. + Your badge + Support ended + shown on your profile + Ends + Prepaid months have no billing date. The badge is reissued each month from the balance you already paid for, and ends when it runs out. + Investor + Your support ended on %1$s. + Remind me later + Don\'t show again Supporter perks Supporter badge ❤️ Help keep the network running — send files up to 2 GB. diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/bg/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/bg/strings.xml index c79aa07a1e..75de2d72f1 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/bg/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/bg/strings.xml @@ -1780,7 +1780,6 @@ Препращане на съобщенията без файловете? Неизвестни сървъри Файлове - Показване на списъка на чатовете в нов прозорец Системна Тъмна Черна @@ -1833,7 +1832,6 @@ Винаги Не Никога - Режим за рутиране на съобщения Използвай поверително рутиране с неизвестни сървъри, когато IP адресът не е защитен. Светла Да @@ -2053,11 +2051,9 @@ Избрано %d Нищо не е избрано Съобщение - отвори съобщение обаждане Контактът ще бъде изтрит - това не може да бъде отменено! - свързване Изтрий без известие Разговорът е изтрит! Все още ще можете да видите разговора с %1$s в списъка с чатовете. @@ -2125,8 +2121,6 @@ Например, ако контактът ви получава съобщения чрез SimpleX Chat сървър, приложението ви ще ги достави чрез Flux сървър. Сървърни оператори Мрежови оператори - Преглед по-късно - Можете да конфигурирате операторите в Мрежа и сървъри. Условията ще бъдат автоматично приети за активираните оператори на: %s. Вашите сървъри Условията ще бъдат приети на: %s. @@ -2140,16 +2134,13 @@ Добавени сървъри за съобщения Използвай за файлове - Отворете чата при първото непрочетено съобщение.\n- Преминете към цитирани съобщения. - Резервно рутиране на съобщения Активирай логовете Добавете членовете на вашия екип към разговорите. задраскан Продължи Добави приятели %s.]]> - Уеб страница Условия, приети на: %s. - Дистанционни мобилни устройства Предварително зададени сървъри %s.]]> Отвори промените @@ -2160,7 +2151,6 @@ Персонализирана форма на съобщенията. По-добри дати на съобщението. Активиране на Flux в настройките Мрежа и сървъри за по -добра поверителност на метаданните. - за по-добра поверителност на метаданните. Подобрена навигация в чата Грешка при запазване на базата данни Вашият профил ще бъде изпратен до членовете @@ -2179,9 +2169,7 @@ Проверявай за съобщения на всеки 10 минути Приложението винаги работи във фонов режим Известия и батерия - Условията ще бъдат приети за активираните оператори след 30 дни. Можете да конфигурирате сървърите през настройките. - Актуализация %s.]]> Използвай за съобщения Личните съобщения между членовете са забранени. @@ -2195,7 +2183,6 @@ Грешка при зареждането на чат списъка Няма чатове в списъка %s. Няма непрочетени чатове - Докосни Създаване на SimpleX адрес в менюто, за да го създадете по-късно. Няма чатове Няма намерени чатове Любими @@ -2267,7 +2254,6 @@ Връзката изисква предоговаряне на криптирането. Сподели еднократен линк за връзка с приятел Настройки на адреса - Изберете мрежови оператори за използване. Как помага за поверителността Ще спрете да получавате съобщения от този чат. Историята на чата ще бъде запазена. Добави членове на екипа @@ -2455,7 +2441,6 @@ Изпрати заявка Изпрати заявка без съобщение Изпрати личната си обратна връзка до групи. - Изпратено до вашия контакт след осъществяване на връзка. Задаване на име на чат… Задаване на достъп за членове Задаване на срок на валидност на съобщенията в чатовете. @@ -2474,14 +2459,12 @@ Докосни Свързване за изпращане на заявка Докосни Присъединяване към групата TCP порт за съобщения - Докладът ще бъде архивиран за вас. Подателят НЯМА да бъде уведомен. Това действие не може да бъде отменено - съобщенията, изпратени и получени в този чат по-рано от избраното, ще бъдат изтрити. Тази връзка изисква по-нова версия на приложението. Моля, актуализирайте приложението или помолете контакта да ви изпрати съвместим линк. Времето за изчезване е зададено само за нови контакти. За да използвате друг профил след опит за връзка, изтрийте чата и използвайте линка отново. Отблокиране за всички членове? - Непрочетени споменавания Неподдържан линк за връзка Актуализирани условия Актуализирайте адреса си @@ -2508,7 +2491,6 @@ Заявки за контакт от групи Членът е изтрит - не може да се приеме заявката заявка за връзка от група %1$s - Тази настройка е за текущия профил Разреши файлове и медия само ако вашият контакт ги разрешава. Позволи на вашите контактите да изпращат файлове и медия. Бот diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/ca/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/ca/strings.xml index 3d49c533ff..d5b8fb5fa0 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/ca/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/ca/strings.xml @@ -493,7 +493,6 @@ Confirmeu les credencials Xats Parleu amb els desenvolupadors - connecta Confirmeu l\'eliminació del contacte? Connectat Confirma @@ -740,7 +739,6 @@ Configuració Tanca s\'està connectant… - Les condicions s\'acceptaran per als operadors habilitats després de 30 dies. SimpleX no pot funcionar en segon pla. Només rebreu les notificacions quan obriu l\'aplicació. Trucades de SimpleX Chat Missatges de xat de SimpleX @@ -1006,7 +1004,6 @@ Fitxers Correcció no suportada pel contacte Arreglar - per a una millor privadesa de les metadades. Bona tarda! El fitxer exportat no existeix Reenvia i desa missatges @@ -1090,7 +1087,6 @@ Micròfon Trucada perduda Esborrany - Mòbils remots Elimina Expulsa t\'ha expulsat @@ -1226,9 +1222,6 @@ L\'aplicació protegeix la teva privadesa utilitzant diferents operadors en cada conversa. Quan hi ha més d\'un operador habilitat, cap d\'ells té metadades per saber qui es comunica amb qui. Com ajuda a la privadesa - Revisar més tard - Actualitzar - Podeu configurar els operadors a la configuració: Xarxa i Servidors. videotrucada (sense xifrar) Ignorar Rebutjar @@ -1307,7 +1300,6 @@ El rol es canviarà a %s. El membre rebrà una nova invitació. Estat de la xarxa Operador - Lloc web Per a enviar Restablir valors predeterminats Compte PING @@ -1746,7 +1738,6 @@ El vostre contacte ha enviat un fitxer més gran que la mida màxima admesa actualment (%1$s). Carregant el fitxer Notificacions - obrir Si us plau, espereu mentre es carrega el fitxer des del mòbil enllaçat Error de fitxer temporal Missatge de veu @@ -1905,8 +1896,6 @@ Si disponibles Les vostres credencials es podrien enviar sense xifrar. Colors de la interfície - Alternativa d\'encaminament de missatges - Mode d\'encaminament de missatges Obrir ubicació del fitxer Envieu missatges directament quan l\'adreça IP està protegida i el vostre servidor de destinació no admet l\'encaminament privat. Enviar missatges directament quan el vostre servidor de destinació no admet l\'encaminament privat. @@ -1936,7 +1925,6 @@ Operadors de xarxa Notificacions i bateria La contrasenya aleatòria s\'emmagatzema a la configuració com a text pla.\nPodeu canviar-ho més tard. - Seleccioneu els operadors de xarxa que voleu utilitzar. Operadors de servidor Configura la contrasenya de la base de dades Utilitzar contrasenya aleatòria @@ -1978,7 +1966,6 @@ No s\'ha trobat la contrasenya a Keystore, introduïu-la manualment. Això pot haver passat si vau restaurar les dades de l\'aplicació mitjançant una eina de còpia de seguretat. Si no és el cas, poseu-vos en contacte amb els desenvolupadors. Barres d\'eines d\'aplicacions accessible Barres d\'eines de xat accessible - Mostra la llista de xat en una finestra nova Mostrar consola en finestra nova Podeu canviar-la a la configuració de l\'aparença. Actualitzar i obrir el xat @@ -2135,7 +2122,6 @@ IU en hongarès i turc Codi d\'accés no canviat! Protegiu la vostra adreça IP dels servidors de retransmissió de missatgeria escollits pels vostres contactes.\nActiva a la configuració de *Xarxa i servidors*. - Toqueu Crea adreça SimpleX al menú per crear-la més tard. Per protegir la zona horària els fitxers d\'imatge/veu utilitzen UTC. Desbloca La càrrega ha fallat @@ -2262,7 +2248,6 @@ Contingut inadequat Perfil inadequat Suprimeix l\'informe - L\'informe s\'arxivarà. Informar Spam El contingut infringeix les condicions d\'ús @@ -2300,7 +2285,6 @@ Emprar port web Emprar el port TCP %1$s quan no se n\'especifica cap. Silenciar tot - Mencions no llegides Podeu mencionar fins a %1$s membres per missatge! Permetre denunciar missatges a moderació. No permetre denunciar missatges a moderació. @@ -2427,7 +2411,6 @@ Enviar sol·licitud de contacte? Enviar sol·licitud Enviar sol·licitud sense missatge - Enviat al contacte després de la connexió. Actualitzar l\'enllaç del grup? Actualitzar Actualitzar l\'adreça? @@ -2482,7 +2465,6 @@ Sol·licituds de contacte de grups Membre eliminat(da); no es pot acceptar la sol·licitud. connexió sol·licitada del grup %1$s - Aquesta configuració és per al perfil actual Permetre fitxers i contingut multimèdia només si el vostre contacte ho permet. Permetre que els contactes enviïn fitxers i contingut multimèdia. Bot diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/cs/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/cs/strings.xml index ff712dfec5..f8a6dd83dc 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/cs/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/cs/strings.xml @@ -1781,8 +1781,6 @@ Nelze odeslat zprávu Chyba souboru NEpoužívat soukromé směrování. - Záložní směrování zpráv - Režim přeposílání zpráv Nikdy Chyba inicializace WebView. Aktualizujte systém na novou verzi. Prosím kontaktujte vývojáře. \nChyba: %s @@ -1937,7 +1935,6 @@ Lepší datování zpráv. Lepší zabezpečení ✅ Části odstraněny - připojení Aktuální profil Chyba znovu připojení serveru Chyba při opětovném připojování serverů @@ -1949,7 +1946,6 @@ Chyba přepínání profilu Vyberte profil chatu zpráva - otevřít Kontakt smazán! neaktivní Detaily @@ -2058,7 +2054,6 @@ Žádné servery pro příjem zpráv. Všechny chaty budou ze seznamu %s odebrány, a seznam bude smazán Pro sociální sítě - Vzdálené telefony %s.]]> %s.]]> %s.]]> @@ -2144,7 +2139,6 @@ Panel nástrojů aplikace Rozmazání Přímé zprávy mezi členy jsou zakázány. - pro lepší ochranu metadat. Chat již existuje Přes proxy Firemní chaty @@ -2191,7 +2185,6 @@ %s.]]> %1$s.]]> Relace aplikace - Podmínky budou přijaty pro povolené operátory po 30 dnech. Připojení vyžaduje opětovné vyjednání šifrování. Probíhá opětovné vyjednávání o šifrování. Opravit @@ -2206,7 +2199,6 @@ Použijte náhodné přihlašovací údaje Nahlásit spam: uvidí pouze skupinový moderátoři. Přečíst podmínky - Webové stránky Odebírán požádáno o připojení Spam @@ -2222,24 +2214,20 @@ Nedoručené zprávy Tato zpráva byla smazána, nebo dosud nebyla přijata. Důvod nahlášení? - Report bude archivován. Zprávy budou pro všechny členy označeny jako moderované. Reporty Nahlašte profil člena: uvidí pouze skupinový moderátoři. Nahlásit porušení: Uvidí pouze moderátoři skupiny. Zobrazit stav zpráv Přeskočit tuto verzi - Zobrazit seznam v novém okně Aktualizovat aplikaci automaticky Některé soubory nebyly exportovány - Nepřečtené zmínky Sdílet adresu veřejně Sdílent SimpleX adresu na sociálních médiích. Sdílejte 1 rázový odkaz s přítelem SOCKS Proxy Dostupná aktualizace: %s Stabilní - Můžete nastavit operátory v nastavení sítě a serverů. Ocas Zastavíte přijímání zpráv z tohoto chatu. Chat historie bude zachována. Servery pro nové soubory vašeho aktuálního profilu chatu @@ -2274,7 +2262,6 @@ Nahrané soubory Odběr ignorován Verze serveru není kompatibilní s nastavením sítě. - Pro pozdější vytvoření adresy, klepněte v menu na Vytvořit SimpleX adresu. Vaše servery Zobrazit aktualizované podmínky 1 report @@ -2301,8 +2288,6 @@ Chyby nahrávání Soukromé směrování se používá k doručování zpráv těmto serverům, protože k nim nejste připojeni. Velikost - Přečíst později - Aktualizovat %s servery Celkem Verze serveru není kompatibilní s vaší aplikací: %1$s. @@ -2319,7 +2304,6 @@ Vaše kontakty Od %s.\nJsou všechna data uchovávána ve vašem zařízení. Serverový operátoři - Vybrat provozovatele sítě pro použití. Můžete nakonfigurovat servery v nastavení. Zvuk ztlumen Používat aplikaci jednou rukou. @@ -2496,7 +2480,6 @@ Odeslat žádost Odeslat žádost bez zprávy Posílání soukromé zpětné vazby do skupin. - Pošlete kontaktu po připojení. Nastavení bio profilu a uvítací zprávy. Sdílení staré adresy Sdílení starého odkazu @@ -2511,7 +2494,6 @@ Adresa bude krátká a Váš profil bude sdílen prostřednictvím adresy. Odkaz bude krátký a profil skupiny bude sdílen prostřednictvím odkazu. Odesílatel NEBUDE informován. - Toto nastavení je pro váš aktuální profil Čas mizení, je nastaven pouze pro nové kontakty. Pro odeslání příkazů musíte být připojen. Pro použití jiného profilu po pokusu o připojení, smažte chat a znovu použijte odkaz. @@ -2532,7 +2514,6 @@ Smazat zprávy člena? Smazat zprávy Soubory - Filtr Obrázky Odkazy Zprávy člena budou smazány - nelze zrušit! @@ -2582,7 +2563,6 @@ Kanál nemá aktivní relé.\nProsím, zkuste se připojit později. Odkaz kanálu Odkaz kanálu - Členové kanálu Název kanálu Vlastnosti kanálu kanál @@ -2637,7 +2617,6 @@ Chyba Chyba přidávání relé Chyba vytváření kanálu - Chyba otevírání kanálu chyba: %s Chyba ukládání profilu kanálu Chyba sdílení kanálu @@ -2657,7 +2636,6 @@ Připojit ke kanálu Opustit kanál Opustit kanál? - Přidat Přidat relé Přidat relé Povolit odběratelům odesílání přímých zpráv. @@ -2709,7 +2687,6 @@ Na vašem telefonu, ne na serverech. Otevřít kanál Otevřít externí odkaz? - Otevřít nový kanál Nebo ukažte QR osobně nebo prostřednictvím videohovoru. Nebo použijte tento QR kód - tisk nebo zobrazit online. MAJITEL @@ -2776,7 +2753,6 @@ %1$d vlastníci %1$d vlastníků & přispěvatelů %1$s podpořilo SimpleX Chat. Odznak prošel %2$s. - O aplikaci odmítnuto odmítnuto operátorem relé Pokročilé možnosti diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/da/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/da/strings.xml index 82f8ae5770..8c7d92086c 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/da/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/da/strings.xml @@ -438,7 +438,6 @@ Arkivér rapport? Arkivér %d rapporter? Arkivér alle rapporter? - Rapporten vil blive arkiveret for dig. For mig Til alle moderatorer Fejl: %1$s @@ -547,7 +546,6 @@ kontakten skal acceptere… Forbinde med %1$s? Søg eller indsæt SimpleX-link - Tryk på Opret SimpleX-adresse i menuen for at oprette den senere. Ingen chat valgt Intet er valgt Valgte %d @@ -679,8 +677,6 @@ Denne handling kan ikke fortrydes - beskeder sendt og modtaget i denne chat tidligere end valgt vil blive slettet. Deaktiver sletning af beskeder Slet chatbeskeder fra din enhed. - forbinde - åbn besked opkald søg @@ -874,7 +870,6 @@ %1$d ejer %1$d ejere aktiv - Tilføj Tilføj relay Tilføj relays Tilføj relays for at genoprette beskedleveringen. @@ -894,7 +889,6 @@ %1$d abonnent %1$d abonnenter %1$s støttede SimpleX Chat. Mærket udløb den %2$s. - Om accepteret Tilføj bidragsydere. Tilføj beskrivelse @@ -925,11 +919,6 @@ Fingeraftrykket i serveradressen matcher ikke certifikatet: %1$s. Fingeraftrykket i destinations-serveradressen matcher ikke certifikatet: %1$s. Fejl ved markering som læst - Ikke-understøttet navn på kanal - Ikke-understøttet navn på kontakt - Forbindelse gennem kanal-navnet kræver en nyere version af appen. - Forbindelse gennem kontakt-navnet kræver en nyere version af appen. - Opgrader appen. Fejl i SimpleX-navn Ingen af dine servere er sat op til at slå SimpleX-navne op. Konfigurer serverne, eller anvend et forbindelseslink. Navn ikke fundet diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/de/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/de/strings.xml index a057fa5275..f8fa2dbd66 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/de/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/de/strings.xml @@ -1848,11 +1848,9 @@ Ungeschützt Bei unbekannten Servern privates Routing nutzen. KEIN privates Routing nutzen. - Modus für das Nachrichten-Routing Ja Nein Wenn die IP-Adresse versteckt ist - Fallback für das Nachrichten-Routing Nachrichtenstatus anzeigen Herabstufung erlauben Immer privates Routing nutzen. @@ -1893,7 +1891,6 @@ Chat-Farben Chat-Design Passend - Chat-Liste in einem neuen Fenster anzeigen Guten Nachmittag! Guten Morgen! Farben für die dunkle Variante @@ -2058,9 +2055,7 @@ Stark Mittel Aus - Verbinden Nachricht - Öffnen Chat-Inhalte gelöscht! Nur die Chat-Inhalte löschen Suchen @@ -2209,14 +2204,9 @@ Server-Betreiber Netzwerk-Betreiber Die App verwendet für jede Unterhaltung Server von unterschiedlichen Betreibern, um Ihre Privatsphäre zu schützen. - Die Nutzungsbedingungen der aktivierten Betreiber werden nach 30 Tagen akzeptiert. Wenn Ihr Kontakt beispielsweise Nachrichten über einen SimpleX-Chat-Server empfängt, wird Ihre App diese über einen Flux-Server versenden. - Später einsehen - Wählen sie die zu nutzenden Netzwerk-Betreiber aus. - Sie können die Betreiber in den Netzwerk- und Servereinstellungen konfigurieren. Sie können die Server über die Einstellungen konfigurieren. Weiter - Aktualisieren Voreingestellte Server Nutzungsbedingungen einsehen Die Nutzungsbedingungen der aktivierten Betreiber werden am %s automatisch akzeptiert. @@ -2225,7 +2215,6 @@ %s Server Netzwerk-Betreiber Verwende Server - Webseite Verwende %s %s.]]> %s.]]> @@ -2267,12 +2256,10 @@ %s zu nutzen, müssen Sie dessen Nutzungsbedingungen akzeptieren.]]> Fehler beim Akzeptieren der Nutzungsbedingungen Fehler beim Aktualisieren des Servers - für einen besseren Metadatenschutz. Neuer Server Keine Nachricht Keine Server für privates Nachrichten-Routing. Die Adresse öffentlich teilen - Tippen Sie im Menü auf SimpleX-Adresse erstellen, um sie später zu erstellen. Diese Verbindung hat das Limit der nicht ausgelieferten Nachrichten erreicht. Ihr Kontakt ist möglicherweise offline. Diese Nachricht wurde gelöscht oder bisher noch nicht empfangen. Zum Schutz vor dem Austausch Ihres Links können Sie die Sicherheitscodes Ihrer Kontakte vergleichen. @@ -2280,7 +2267,6 @@ %s.]]> Die Nutzungsbedingungen wurden am %s akzeptiert. Der Text der aktuellen Nutzungsbedingungen konnte nicht geladen werden. Sie können die Nutzungsbedingungen unter diesem Link einsehen: - Ferngesteuerte Mobiltelefone Oder importieren Sie eine Archiv-Datei Hinweis für Geräte von Xiaomi: Bitte aktivieren Sie in den System-Einstellungen die Option "Autostart", damit Benachrichtigungen funktionieren.]]> Ende-zu-Ende-verschlüsselt versendet. In Direktnachrichten sogar mit Post-Quantum-Security.]]> @@ -2372,7 +2358,6 @@ Spam Archiv Grund der Meldung? - Die Meldung wird für Sie archiviert. Mitgliederprofil melden: Nur Gruppenmoderatoren werden es sehen. Anderes melden: Nur Gruppenmoderatoren werden es sehen. Verstoß melden: Nur Gruppenmoderatoren werden es sehen. @@ -2409,7 +2394,6 @@ TCP-Port für Nachrichtenübermittlung Sie können bis zu %1$s Mitglieder pro Nachricht erwähnen! Alle stummschalten - Ungelesene Erwähnungen Melden von Nachrichten ist in dieser Gruppe nicht erlaubt. Alle Meldungen archivieren? Archiviere %d Meldungen? @@ -2534,7 +2518,6 @@ Kontakt-Anfrage senden? Anfrage senden Anfrage ohne Nachricht senden - Wird nach der Verbindung an Ihren Kontakt gesendet. Gruppen-Link aktualisieren? Aktualisieren Adresse aktualisieren? @@ -2590,7 +2573,6 @@ Kontaktanfragen in Gruppen Mitglied ist gelöscht - Anfrage kann nicht angenommen werden Angefragte Verbindung von Gruppe %1$s - Diese Einstellung gilt für Ihr aktuelles Profil Erlauben Sie Dateien und Medien nur dann, wenn es Ihr Kontakt ebenfalls erlaubt. Erlauben Sie Ihren Kontakten Dateien und Medien zu senden. Bot @@ -2620,7 +2602,6 @@ Mitglied entfernen und Nachrichten löschen Alle Nachrichten Dateien - Filter Bilder Links Dateien suchen @@ -2650,7 +2631,6 @@ Kanal Kanal Kanallink - Kanal-Mitglieder Kanalname Der Kanal wird für alle Abonnenten gelöscht. Dies kann nicht rückgängig gemacht werden! Der Kanal wird für Sie gelöscht. Dies kann nicht rückgängig gemacht werden! @@ -2680,7 +2660,6 @@ Relais-Name eingeben… Fehler beim Hinzufügen des Relais Fehler beim Erstellen des Kanals - Fehler beim Öffnen des Kanals Fehlgeschlagen Fehlgeschlagen Link erhalten @@ -2697,7 +2676,6 @@ Es sind keine Chat-Relais aktiviert. Es sind nicht alle Relais verbunden Kanal öffnen - Neuen Kanal öffnen Eigentümer Eigentümer und Mitwirkende Voreingestellte Relais-Adresse @@ -2876,7 +2854,6 @@ Die Linkvorschau wird über einen SOCKS-Proxy angefordert. DNS-Abfragen können dennoch lokal über Ihren DNS-Resolver erfolgen. Obere Leiste Ihr neuer Kanal %1$s ist mit %2$d von %3$d Relais verbunden.\nBei Abbruch, wird der Kanal gelöscht. Sie können ihn später neu erstellen. - Hinzufügen Relais hinzufügen Relais hinzufügen Kanal abbrechen und löschen @@ -2913,7 +2890,6 @@ %1$d Eigentümer %1$d Eigentümer und Mitwirkende %1$s hat SimpleX Chat unterstützt. Das Abzeichen ist am %2$s abgelaufen. - Über Bestätigter Relaisbestand Fügen Sie diesen Code in Ihre Webseite ein. Er zeigt die Vorschau Ihres Kanals / Ihrer Gruppe an. Erweiterte Optionen @@ -2924,8 +2900,6 @@ Abzeichen ist nicht verifizierbar Kanal-Webseite Chat-Daten - Die Verbindung über den Kanalnamen erfordert eine neuere App‑Version. - Die Verbindung über den Kontaktnamen erfordert eine neuere App‑Version. Kontakt Mitwirkender Code kopieren @@ -2937,7 +2911,6 @@ Dies wird Abonnenten angezeigt und zum Laden der Vorschau genutzt. Weitere Privatsphäre Nur Ihre oben genannte Seite kann die Vorschau anzeigen. - Bitte die App aktualisieren. %s hat sich am SimpleX Chat-Crowdfunding beteiligt. %s unterstützt SimpleX Chat. Abonnent @@ -2946,8 +2919,6 @@ Die Rolle wird auf %s geändert. Alle Abonnenten werden benachrichtigt. Dieses Abzeichen konnte nicht verifiziert werden und ist möglicherweise nicht echt. Diese Gruppe erfordert eine neuere App‑Version. Bitte aktualisieren Sie die App, um beizutreten. - Kanalname wird nicht unterstützt - Kontaktname wird nicht unterstützt Abzeichen nicht verifiziert Die verwendeten Chat‑Relais unterstützen keine Webseiten. Webseiten-Code @@ -2962,7 +2933,6 @@ Namensauflösungs-Fehler: %1$s Der Server %1$s unterstützt keine Namensauflösung. Konfigurieren Sie Server oder verwenden Sie einen Verbindungslink. SimpleX-Name einrichten - SimpleX-Name Fehler beim SimpleX-Namen SimpleX-Name ist nicht verifiziert Der SimpleX-Name %1$s wurde registriert, aber er hat keinen gültigen Link. diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/el/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/el/strings.xml index 73abd7d876..66cd9cf03b 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/el/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/el/strings.xml @@ -543,7 +543,6 @@ Ολοκληρωμένο Οι όροι έγιναν αποδεκτοί στις: %s. Όροι χρήσης - Οι όροι θα γίνουν αποδεκτοί για τους ενεργούς χειριστές μετά από 30 ημέρες. Οι όροι θα γίνουν αποδεκτοί στις: %s. Οι όροι θα γίνουν αυτόματα αποδεκτοί για τους ενεργούς χειριστές στις: %s. Διαμορφωμένοι SMP διακομιστές @@ -560,7 +559,6 @@ Επιβεβαίωσε ότι θυμάσαι τη φράση πρόσβασης της βάσης δεδομένων για να τη μεταφέρεις. Επιβεβαίωση μεταφόρτωσης Επιβεβαίωση των διαπιστευτηρίων σου - σύνδεση Σύνδεση Σύνδεση Σύνδεση @@ -925,7 +923,6 @@ Αντιστροφή κάμερας Μέγεθος γραμματοσειράς Για όλους τους διαχειριστές - για καλύτερη ιδιωτικότητα μεταδεδομένων Για το προφίλ συνομιλίας %s: Για κονσόλα Για όλους @@ -1216,8 +1213,6 @@ Απαγορεύονται οι αντιδράσεις στα μηνύματα. Απαγορεύονται οι αντιδράσεις στα μηνύματα σε αυτήν τη συνομιλία. Λήψη μηνυμάτων - Εναλλακτική δρομολόγηση μηνυμάτων - Λειτουργία δρομολόγησης μηνυμάτων Μηνύματα Μηνύματα και αρχεία Διακομιστές μηνυμάτων @@ -1289,7 +1284,6 @@ Πάτα Σύνδεση για να συνομιλήσεις Πάτα Σύνδεση για αποστολή αιτήματος Πάτα Σύνδεση για να χρησιμοποιήσεις το μποτ - Πατήστε Δημιουργία διεύθυνσης SimpleX στο μενού, για να τη δημιουργήσετε αργότερα. Πάτα Συμμετοχή στην ομάδα Πάτα για να ενεργοποιήσεις το προφίλ. Πάτα για Σύνδεση @@ -1341,7 +1335,6 @@ Η φράση πρόσβασης αποθηκεύεται στις ρυθμίσεις ως απλό κείμενο. Η φράση πρόσβασης θα αποθηκευτεί στις ρυθμίσεις ως απλό κείμενο μετά την αλλαγή της ή την επανεκκίνηση της εφαρμογής. Το προφίλ κοινοποιείται μόνο στις επαφές σου. - Η αναφορά θα αρχειοθετηθεί για εσένα. Ο ρόλος θα αλλάξει σε %s. Όλοι οι συμμετέχοντες στη συνομιλία θα ειδοποιηθούν. Ο ρόλος θα αλλάξει σε %s. Όλα τα μέλη της ομάδας θα ενημερωθούν. Ο ρόλος θα αλλάξει σε %s. Το μέλος θα λάβει νέα πρόσκληση. @@ -1375,7 +1368,6 @@ Αυτό το μήνυμα διαγράφηκε ή δεν έχει ληφθεί ακόμα. Αυτός ο κωδικός QR δεν είναι σύνδεσμος! Αυτή η ρύθμιση ισχύει για τα μηνύματα στο τρέχον προφίλ συνομιλίας σου. - Αυτή η ρύθμιση αφορά το τρέχον προφίλ σου. Αυτό το κείμενο δεν είναι σύνδεσμος! Αυτό το κείμενο είναι διαθέσιμο στις ρυθμίσεις Εξαντλήθηκε ο χρόνος αναμονής κατά τη σύνδεση με τον υπολογιστή @@ -1438,11 +1430,9 @@ Απενεργοποίηση σίγασης Απροστάτευτο αδιάβαστο - Μη αναγνωσμένες αναφορές Μη υποστηριζόμενος σύνδεσμος σύνδεσης Αναβάθμιση Αναβάθμιση - Αναβάθμιση Διαθέσιμη αναβάθμιση: %s Ενημέρωση φράσης πρόσβασης της βάσης δεδομένων Ενημερωμένοι όροι @@ -1737,7 +1727,6 @@ Μόνο η επαφή σου μπορεί να στείλει μηνύματα που εξαφανίζονται. Μόνο η επαφή σου μπορεί να στείλει αρχεία και πολυμέσα. Μόνο η επαφή σου μπορεί να στείλει φωνητικά μηνύματα. - άνοιγμα Άνοιξε Άνοιγμα Άνοιξε τις ρυθμίσεις της εφαρμογής @@ -1955,7 +1944,6 @@ Ο διακομιστής αναμετάδοσης χρησιμοποιείται μόνο αν είναι απαραίτητο. Οι άλλοι μπορούν να δουν τη διεύθυνση IP σου. Ο διακομιστής αναμετάδοσης προστατεύει τη διεύθυνση IP σου, αλλά μπορεί να παρακολουθεί τη διάρκεια της κλήσης. Υπενθύμιση αργότερα - Απομακρυσμένα κινητά τηλέφωνα Κατάργηση Κατάργηση Κατάργηση και διαγραφή μηνυμάτων @@ -2025,7 +2013,6 @@ Προϋποθέσεις ελέγχου ελέγχθηκε από τους διαχειριστές Έλεγχος μελών ομάδας - Έλεγχος αργότερα Έλεγχος μελών Έλεγχος μελών πριν την αποδοχή τους (knocking). Ανάκληση @@ -2088,7 +2075,6 @@ Επέλεξε επαφές Οι επιλεγμένες προτιμήσεις συνομιλίας απαγορεύουν αυτό το μήνυμα. Επιλέχθηκαν %d - Επέλεξε τους χειριστές δικτύου που θέλεις να χρησιμοποιήσεις. Αυτοκαταστροφή Κωδικός αυτοκαταστροφής Κωδικός αυτοκαταστροφής @@ -2140,7 +2126,6 @@ Τα αποσταλμένα μηνύματα θα διαγραφούν μετά από καθορισμένο χρονικό διάστημα. Απεσταλμένη απάντηση Σύνολο απεσταλμένων - Αποστέλλεται στην επαφή σου μετά τη σύνδεση. Αποστολή μέσω διακομιστή μεσολάβησης Διακομιστής Ο διακομιστής προστέθηκε στο χειριστή %s. @@ -2204,7 +2189,6 @@ Σύντομη διεύθυνση SimpleX Εμφάνιση Εμφάνιση: - Εμφάνιση λίστας μηνυμάτων σε νέο παράθυρο Εμφάνιση κονσόλας τερματικού σε νέο παράθυρο Εμφάνιση επαφής και μηνύματος Εμφάνιση επιλογών για προγραμματιστές @@ -2377,7 +2361,6 @@ Προειδοποίηση: η έναρξη συνομιλίας σε πολλαπλές συσκευές δεν υποστηρίζεται και θα προκαλέσει σφάλματα στην παράδοση των μηνυμάτων. Προειδοποίηση: ενδέχεται να χάσεις ορισμένα δεδομένα! Διακομιστές WebRTC ICE - Ιστοσελίδα Δεν αποθηκεύουμε καμία από τις επαφές ή τα μηνύματά σου (αφού παραδοθούν) στους διακομιστές. εβδομάδες Καλωσόρισες! @@ -2437,7 +2420,6 @@ είσαι παρατηρητής μπλόκαρες %s Μπορείς να το αλλάξεις στις ρυθμίσεις Εμφάνισης. - Μπορείς να διαμορφώσεις τους χειριστές στις ρυθμίσεις Δικτύου & διακομιστών. Μπορείς να διαμορφώσεις τους διακομιστές μέσω των ρυθμίσεων. Μπορείς να αντιγράψεις και να μειώσεις το μέγεθος του μηνύματος για να το στείλεις. Μπορείς να το δημιουργήσεις αργότερα @@ -2513,7 +2495,6 @@ Μεγέθυνση Όλα τα μηνύματα Αρχεία - ΦΙλτράρισμα Εικόνες Σύνδεσμοι Αναζήτηση αρχείων diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/es/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/es/strings.xml index 9274b7a30d..5ba89e4df5 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/es/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/es/strings.xml @@ -1761,8 +1761,6 @@ Enrutamiento privado Servidores desconocidos NO usar enrutamiento privado. - Enrutamiento de mensajes alternativo - Modo de enrutamiento de mensajes No Estado del mensaje Usar enrutamiento privado con servidores desconocidos cuando tu dirección IP no está protegida. @@ -1816,7 +1814,6 @@ Color adicional 2 Configuración avanzada Tema del perfil - Listado del chat en ventana nueva Color imagen de fondo información cola del servidor: %1$s \n @@ -1984,13 +1981,11 @@ Suave Barra de herramientas accesible llamar - conectar ¿Eliminar %d mensajes de miembros? mensaje Mensaje Nada seleccionado Los mensajes se marcarán para eliminar. El destinatario o destinatarios podrán revelar estos mensajes. - abrir Seleccionar Seleccionados %d Configuración @@ -2123,8 +2118,6 @@ ¿Dirección SimpleX o enlace de un solo uso? Operadores de servidores Operadores de red - Las condiciones de los operadores habilitados serán aceptadas después de 30 días. - Revisar más tarde Condiciones aceptadas el: %s. Operador de red Operador @@ -2156,7 +2149,6 @@ Activa Flux en Servidores y Red para mejorar la privacidad de los metadatos. Error al aceptar las condiciones Error al actualizar el servidor - para mejorar la privacidad de los metadatos. Ningún mensaje Servidor nuevo Sin servidores para archivos y multimedia. @@ -2164,11 +2156,8 @@ Sin servidores para recibir mensajes. Servidor del operador O para compartir en privado - Selecciona operadores a usar. Compartir dirección públicamente Compartir enlaces de un solo uso y direcciones SimpleX es seguro a través de cualquier medio. - Actualizar - Sitio web Tus servidores Usar %s Usar servidores @@ -2183,7 +2172,6 @@ solamente con un contacto - comparte en persona o mediante cualquier aplicación de mensajería.]]> Puedes añadir un nombre a la conexión para recordar a quién corresponde. La aplicación protege tu privacidad mediante el uso de diferentes operadores en cada conversación. - Puedes configurar los operadores desde los ajustes de Servidores y Red. %s.]]> %s.]]> %s.]]> @@ -2198,10 +2186,8 @@ %s.]]> %s.]]> Por ejemplo, si tu contacto recibe a través de un servidor de SimpleX Chat, tu aplicación enviará a través de un servidor de Flux. - Pulsa Crear dirección SimpleX en el menú para crearla más tarde. La conexión ha alcanzado el límite de mensajes no entregados. es posible que tu contacto esté desconectado. El mensaje ha sido eliminado o aún no se ha recibido. - Móvil remoto O importa desde un archivo Mensajes directos entre miembros de este chat no permitidos. En dispositivos Xiaomi: por favor, habilita el Autoinicio en los ajustes del sistema para que las notificaciones funcionen.]]> @@ -2281,7 +2267,6 @@ Error al guardar la configuración informe archivado por %s ¿Archivar informe? - El informe será archivado para ti. Informar Eliminar informe 1 informe @@ -2329,7 +2314,6 @@ Se usa el puerto TCP %1$s cuando no se ha especificado otro. Usar puerto web Silenciar todo - Menciones sin leer ¡Puedes mencionar hasta %1$s miembros por mensaje! Los miembros pueden informar de mensajes a los moderadores. No se permite informar de mensajes a los moderadores. @@ -2466,7 +2450,6 @@ Enviar solicitud Enviar solicitud sin mensaje Envía tu comentario privado a los grupos. - Enviadp a tu contacto tras la conexión. ¿Actualizar enlace de grupo? Actualizar ¿Actualizar la dirección? @@ -2510,7 +2493,6 @@ Actualizar enlace de grupo Solicitudes de contacto en grupos conexión solicitada desde el grupo %1$s - Esta configuración se aplica al perfil actual Miembro eliminado, no puede aceptar solicitudes Se permiten archivos y multimedia pero sólo si tu contacto también los permite. Permes que tus contactos envíen archivos y multimedia. @@ -2541,7 +2523,6 @@ Eliminar miembro y sus mensajes Todos los mensajes Archivos - Filtro Imágenes Enlaces Buscar archivos @@ -2592,7 +2573,6 @@ Canal Título completo: Enlace del canal - Miembros canal Título del canal perfil del canal actualizado El canal será eliminado para todos los suscriptores. ¡No puede deshacerse! @@ -2608,7 +2588,6 @@ caído (%1$d intentos) Editar perfil del canal Error al crear el canal - Error al abrir el canal error:%s Error al guardar el perfil del canal fallo @@ -2629,7 +2608,6 @@ Ningún servidor de chat activado. Hay servidores no conectados Abrir canal - Abrir canal nuevo Propietario Propietarios y colaboradores Direcciones predefinidas @@ -2804,7 +2782,6 @@ Las previsualizaciones de enlaces se solicitan a través del proxy SOCKS. Las peticiónes DNS aún pueden usar el DNS local del sistema. Menú superior Tu nuevo canal %1$s está conectado a %2$d de %3$d servidores.\nSi cancelas, el canal será eliminado. Puedes crearlo de nuevo. - Añadir Añadir servidor Añadir servidores Cancelar y eliminar el canal @@ -2843,7 +2820,6 @@ Se mostrará a los suscriptores y se usará para permitir la carga de la vista previa. Más privacidad Solo la página superior puede mostrar la vista previa. - Por favor, actualiza la aplicación. rechazado rechazado por el operador del servidor %s ha participado en la financiación colectiva de SimpleX Chat. @@ -2858,7 +2834,6 @@ %1$d propietarios %1$d propietarios y colaboradores %1$s ha apoyado a SimpleX Chat. La insignia caducó el %2$s. - Acerca de lista confirmada Añade este código a tu web. Mostrará una vista previa de tu canal o grupo. Opciones avanzadas @@ -2871,10 +2846,6 @@ No se pudo verificar la insignia Web del canal Datos del chat - Nombre de canal no compatible - Nombre de contacto no compatible - Para conectarte mediante el nombre del canal es necesaria una versión más reciente de la aplicación. - Para conectarse mediante el nombre de un contacto es necesaria una versión más reciente de la aplicación. Este grupo requiere una versión más reciente de la aplicación. Por favor, actualizala para unirte. Código web Los servidores usados no admiten páginas web. @@ -2892,7 +2863,6 @@ Error de resolución: %1$s El servidor %1$s no admite la resolución de nombres. Configura un servidor, o usa un enlace para conectarte. Escribe el nombre SimpleX - Nombre SimpleX Error del nombre SimpleX Nombre SimpleX no verificado El nombre SimpleX %1$s está registrado, pero no tiene un enlace válido. diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/fa/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/fa/strings.xml index b65fc5ab93..0051298873 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/fa/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/fa/strings.xml @@ -1576,10 +1576,8 @@ هرگز استفاده از مسیریابی خصوصی با سرورهای ناشناخته. استفاده از مسیریابی خصوصی با سرورهای ناشناخته وقتی نشانی IP محافظت نشده است. - حالت مسیریابی پیام بله پیام‌ها مستقیما فرستاده نشود، حتی اگر سرور مقصد شما از مسیریابی خصوصی پشتیبانی نکند. - گزینه پس‌رفت مسیریابی پیام نمایش وضعیت پیام برای محافظت از نشانی IP شما، مسیریابی خصوصی از سرورهای SMP شما به منظور تحویل پیام‌ها استفاده می‌کند. مسیریابی پیام خصوصی @@ -1797,7 +1795,6 @@ اطلاعات صف سرور: %1$s \n \nآخرین پیام دریافتی: %2$s - نمایش فهرست چت در پنجره جدید حالت تاریک سیاه حالت رنگ @@ -1972,7 +1969,6 @@ برای مجوز میکروفون، روی آیکون اطلاعات کنار نوار آدرس کلیک کنید تکمیل شد تایید حذف مخاطب؟ - اتصال اتصال متصل اتصال سریع تر! 🚀 @@ -2049,7 +2045,6 @@ رد شده رد کردن عضو؟ بعداً یادآوری کن - موبایل‌های از راه دور حذف کردن آرشیو؟ از گروه حذف شد اعضا حذف شوند؟ @@ -2075,7 +2070,6 @@ بررسی شرایط بررسی شده توسط مدیران بررسی اعضای گروه - بعداً بررسی شود بررسی اعضا بررسی اعضا قبل از پذیرش (کوبیدن). آیا تنظیمات پذیرش ذخیره شود؟ @@ -2089,7 +2083,6 @@ انتخاب پروفایل چت تنظیمات برگزیده چت، این پیام را ممنوع می‌کند. %d انتخاب شده - اپراتورهای شبکه را برای استفاده انتخاب کنید. تنظیم پذیرش اعضا تنظیم انقضای پیام در چت‌ها. تنظیمات @@ -2131,7 +2124,6 @@ انتها برای چت، روی \"اتصال\" ضربه بزنید. برای ارسال درخواست، روی \"اتصال\" ضربه بزنید. - برای ایجاد آدرس SimpleX در آینده، در منو روی \"ایجاد آدرس SimpleX\" ضربه بزنید. روی \"پیوستن به گروه\" ضربه بزنید. اتصال TCP وقفه زمانی اتصال TCP در پس‌زمینه @@ -2181,7 +2173,6 @@ بخش‌ها بارگذاری شدند شرایط در %s پذیرفته شد. شرایط استفاده - شرایط برای اپراتورهای فعال پس از ۳۰ روز پذیرفته خواهد شد. شرایط در: %s پذیرفته خواهد شد. شرایط به‌طور خودکار برای اپراتورهای فعال در: %s پذیرفته خواهد شد. سرورهای SMP پیکربندی‌شده @@ -2307,7 +2298,6 @@ خاموش فقط مالکین چت می‌توانند تنظیمات را تغییر دهند. فقط گفتگو حذف شود - باز کردن باز کردن تغییرات - باز کردن چت برای اولین پیام خوانده نشده.\n- پرش به پیام‌های نقل‌قول شده. شرایط باز کردن @@ -2354,7 +2344,6 @@ اتصال اصلاح شود؟ اندازه فونت برای همه مدیران - برای بهبود حریم خصوصی فراداده. به عنوان مثال، اگر مخاطب شما پیام‌ها را از طریق یک سرور چت SimpleX دریافت کند، برنامه شما آن‌ها را از طریق یک سرور Flux تحویل خواهد داد. برای من برای مسیریابی خصوصی @@ -2407,7 +2396,6 @@ مستقیم ارسال شد پیام‌های ارسال شده تعداد کل ارسال شده - پس از اتصال به مخاطب شما ارسال شد. توسط پروکسی ارسال شد سرور سرور به اپراتور %s اضافه شد. @@ -2418,7 +2406,6 @@ اطلاعات سرورها آمار سرورها بازنشانی خواهد شد - این عمل غیرقابل بازگشت است! نام چت را تنظیم کنید… - گزارش برای شما بایگانی خواهد شد. نقش به %s تغییر خواهد کرد. همه در چت مطلع خواهند شد. دومین اپراتور پیش‌فرض در برنامه! فرستنده مطلع نخواهد شد. @@ -2437,8 +2424,6 @@ شفافیت جلسات Transport رفع انسداد اعضا برای همه؟ - منشن‌های خوانده نشده - به‌روزرسانی به‌روزرسانی موجود است: %s شرایط به‌روزرسانی شده دانلود به‌روزرسانی لغو شد @@ -2461,7 +2446,6 @@ ویدئو مشاهده شرایط مشاهده شرایط به‌روزرسانی شده - وب‌سایت پیام خوش‌آمدگویی زمانی که بیش از یک اپراتور فعال است، هیچ‌کدام از آن‌ها فراداده‌ای برای فهمیدن اینکه چه کسی با چه کسی ارتباط برقرار می‌کند، ندارند. سرور XFTP @@ -2469,7 +2453,6 @@ شما این عضو را پذیرفتید شما به این سرورها متصل نیستید. از مسیریابی خصوصی برای ارسال پیام‌ها به آن‌ها استفاده می‌شود. شما می‌توانید آن را در تنظیمات ظاهر تغییر دهید. - شما می‌توانید اپراتورها را در تنظیمات شبکه و سرورها پیکربندی کنید. شما می‌توانید سرورها را از طریق تنظیمات پیکربندی کنید. شما می‌توانید پیام را کپی کرده و اندازه آن را کاهش دهید تا ارسال شود. شما می‌توانید در هر پیام تا %1$s عضو را منشن کنید! @@ -2510,7 +2493,6 @@ ۴ زبان جدید رابط کاربری کاتالان، اندونزیایی، رومانیایی و ویتنامی - با تشکر از کاربران ما! عضو حذف شده است - نمی‌توان درخواست را قبول کرد - این تنظیمات برای پروفایل فعلی شماست درخواست‌های تماس از گروه‌ها درخواست اتصال از گروه %1$s برای استفاده از ربات باز کنید diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/fr/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/fr/strings.xml index bfbe32e819..572b10c988 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/fr/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/fr/strings.xml @@ -1764,13 +1764,11 @@ Toujours Routage privé Autoriser la rétrogradation - Mode de routage des messages Jamais Serveurs inconnus Non Lorsque l\'IP est masquée Oui - Rabattement du routage des messages Afficher le statut du message Protection de l\'adresse IP Fichiers @@ -1803,7 +1801,6 @@ Protégez votre adresse IP des relais de messagerie choisis par vos contacts. \nActivez-le dans les paramètres *Réseau et serveurs*. Réinitialiser au thème de l\'utilisateur - Afficher la liste des conversations dans une nouvelle fenêtre Teinte du fond d\'écran Fond d\'écran info sur la file du serveur : %1$s @@ -1979,9 +1976,7 @@ Off Léger Paramètres - se connecter message - ouvrir Confirmer la suppression du contact ? Le contact sera supprimé — cette action est irréversible ! Supprimer sans notification @@ -2171,7 +2166,6 @@ Appareils Xiaomi : veuillez activer le démarrage automatique dans les paramètres du système pour que les notifications fonctionnent.]]> La conversation sera supprimée pour tous les membres — cette action est irréversible ! La conversation sera supprimée pour vous — cette action est irréversible ! - Les conditions seront acceptées pour les opérateurs activés après 30 jours. La connexion nécessite une renégociation du chiffrement. avec un seul contact - partagez en personne ou via n\'importe quelle messagerie.]]> Adresse ou lien unique ? @@ -2188,7 +2182,6 @@ Pas de serveurs pour recevoir des messages. Pas de message Pour les réseaux sociaux - Vérifier plus tard Serveurs prédéfinis Signaler autre : seuls les modérateurs du groupe le verront. Activer les journaux (logs) @@ -2216,7 +2209,6 @@ Le protocole du serveur a été modifié. Activez Flux dans les paramètres Réseau et serveurs pour une meilleure confidentialité des métadonnées. Ce message a été supprimé ou n\'a pas encore été reçu. - Appuyez sur Créer une adresse SimpleX dans le menu pour la créer ultérieurement. Partager publiquement votre adresse Par exemple, si votre contact reçoit des messages via un serveur SimpleX Chat, votre application les transmettra via un serveur Flux. Seuls les propriétaires peuvent modifier les préférences. @@ -2245,7 +2237,6 @@ Pas de serveurs pour envoyer des fichiers. Veuillez réduire la taille du message et envoyer le à nouveau. Veuillez réduire la taille du message ou supprimer le média et renvoyer le message. - pour une meilleure protection des métadonnées. - Premier message non lu à l\'ouverture.\n- Sauter aux messages cités. Respect de la vie privée de vos clients. Le deuxième opérateur prédéfini de l\'application ! @@ -2260,7 +2251,6 @@ La connexion a atteint la limite des messages non délivrés, votre contact est peut-être hors ligne. Serveur ajouté à l\'opérateur %s. L\'application protège votre vie privée en utilisant des opérateurs différents pour chaque conversation. - Sélectionnez les opérateurs de réseau à utiliser. SimpleX Chat et Flux ont conclu un accord pour intégrer à l’application des serveurs opérés par Flux. Notes Ou à partager en privé @@ -2272,17 +2262,14 @@ Pour vous protéger contre le remplacement de votre lien, vous pouvez comparer les codes de sécurité des contacts. Comment il contribue à la protection de la vie privée Motif du signalement ? - Le rapport sera archivé pour vous. Contenu inapproprié Nouveau serveur Vous pouvez configurer les serveurs via les paramètres. Pour envoyer Profil inapproprié - Site web Liste Signalement des membres Modifier l\'ordre - Mise à jour Les messages directs entre membres sont interdits dans cette discussion. Non Oui @@ -2310,9 +2297,7 @@ Navigation améliorée dans les discussions Lorsque plusieurs opérateurs sont activés, aucun d\'entre eux ne dispose de métadonnées permettant de savoir qui communique avec qui. Le message est trop volumineux ! - Mobiles à distance Modifier la liste - Vous pouvez définir les opérateurs dans les paramètres Réseau et serveurs. Transparence Vous pouvez définir un nom de connexion pour vous rappeler avec qui le lien a été partagé. Autoriser le signalement des messages aux modérateurs. @@ -2425,7 +2410,6 @@ Envoyer la demande Envoyer la demande sans message Envoyez vos commentaires privés aux groupes. - Envoyé à votre contact après la connexion. Le serveur requiert une autorisation pour se connecter au relais, vérifiez le mot de passe. Avertissement du serveur Partager l\'ancienne adresse @@ -2441,11 +2425,9 @@ L\'adresse sera courte et votre profil sera partagé via l\'adresse. Le lien sera court, et le profil de groupe sera partagé via le lien. L\'expéditeur n\'en sera PAS informé. - Ce réglage est pour votre profil actuel Propriétaires & contributeurs contributeur Description - Ajouter Ajouter une description Votre réseau vous @@ -2456,7 +2438,6 @@ Votre canal Lien de canal Lien de canal - Membres du canal Nom du canal Préférences du canal profil du canal mis à jour @@ -2504,7 +2485,6 @@ Vidéos Messages vocaux Liens - Filtre Depuis l\'historique Parler à quelqu\'un Permettez à quelqu\'un de se connecter à vous @@ -2561,11 +2541,6 @@ Délai d\'attente dépassé pour le routage privé L’empreinte de l’adresse du serveur de transfert ne correspond pas au certificat : %1$s. L’empreinte de l’adresse du serveur de destination ne correspond pas au certificat : %1$s. - Nom de canal non pris en charge - Nom de contact non pris en charge - La connexion via un nom de canal nécessite une version plus récente de l\'application. - La connexion via un nom de contact nécessite une version plus récente de l\'application. - Veuillez mettre à jour l\'application. Erreur de nom SimpleX Aucun de vos serveurs n\'est configuré pour résoudre les noms SimpleX. Configurez des serveurs ou utilisez un lien de connexion. Le serveur %1$s ne prend pas en charge la résolution de nom. Configurez les serveurs ou utilisez un lien de connexion. @@ -2605,11 +2580,9 @@ Le canal exigeait que ce message soit signé, mais la signature est manquante. Accepter la demande de contact Le membre a été supprimé : impossible d\'accepter la demande. - Mentions non lues Vérifier le nom Vérifier les noms SimpleX Nom SimpleX non vérifié - Nom SimpleX Votre nom SimpleX Définir un nom SimpleX Erreur lors de l\'enregistrement du nom @@ -2676,7 +2649,6 @@ L\'application a supprimé ce message après %1$d tentatives de réception. Supprimer le suivi des liens Demandes de contact dans les groupes - À propos Contact Soutenir le projet Aide et support @@ -2906,9 +2878,7 @@ Le canal commencera à fonctionner avec %1$d relais sur %2$d. Continuer ? Il s’agit d’une adresse de relais de messagerie, elle ne peut pas être utilisée pour se connecter. Ouvrir le canal - Ouvrir un nouveau canal %1$s !]]> - Erreur lors de l\'ouverture du canal Débloquer l\'abonné pour tout le monde ? Activer les aperçus de liens ? L’aperçu du lien sera demandé via le proxy SOCKS. La résolution DNS peut néanmoins toujours être effectuée localement via votre résolveur DNS. diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/hr/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/hr/strings.xml index 3493f56711..7be983c71a 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/hr/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/hr/strings.xml @@ -137,7 +137,6 @@ Odstraniti %d poruke? Odstraniti Podešavanje - Ažuriraj Odstraniti sve datoteke Odstraniti profil razgovora? Poruke @@ -196,7 +195,6 @@ Dodaj prijatelja Dodaj člana tima Arhiva - poveži Kamera Više Otključaj @@ -502,7 +500,6 @@ Vaši kontakti Ne Započeti razgovor? - otvoriti Nastaviti Otvoriti Pozadina @@ -865,7 +862,6 @@ autor Izvesti temu Žive poruke - Website dani Prosleđivanje %1$s poruka Kada je dostupno @@ -880,7 +876,6 @@ Nalepiti link koji ste primili Oceniti aplikaciju Nema nepročitanih razgovora - Izveštaj će biti arhiviran za Vas. Sačuvati neiskorišćenu pozivnicu? Glasovna poruka… Koristiti trenutni profil @@ -1110,7 +1105,6 @@ Unos pin koda Prosleđena poruka Ništa za prosleđivanje - Pregledati kasnije kontakt ima e2e šifrovanje Zaključati nakon Skriven kontakt: diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/hu/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/hu/strings.xml index 504d68b1a0..82518712da 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/hu/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/hu/strings.xml @@ -1749,11 +1749,9 @@ Privát útválasztás Privát útválasztás használata az ismeretlen kiszolgálókhoz. Privát útválasztás használata minden esetben. - Üzenet-útválasztási mód Közvetlen üzenetküldés, ha az IP-cím védett és a saját kiszolgálója vagy a célkiszolgáló nem támogatja a privát útválasztást. Közvetlen üzenetküldés, ha a saját kiszolgálója vagy a célkiszolgáló nem támogatja a privát útválasztást. Az IP-cím védelmének érdekében a privát útválasztás az SMP-kiszolgálókat használja az üzenetek kézbesítéséhez. - Üzenet-útválasztási tartalék Privát üzenet-útválasztás Privát útválasztás használata az ismeretlen kiszolgálókkal, ha az IP-cím nem védett. NE küldjön üzeneteket közvetlenül, még akkor sem, ha a saját kiszolgálója vagy a célkiszolgáló nem támogatja a privát útválasztást. @@ -1778,7 +1776,6 @@ Csevegés témája Kitöltés Profiltéma - Csevegési lista megjelenítése új ablakban Világos Világos mód Fogadott válaszüzenet-buborék színe @@ -1952,7 +1949,6 @@ hívás A partner törölve lesz – ez a művelet nem vonható vissza! Csak a beszélgetés törlése - megnyitás Beszélgetés törölve! Partner törölve! Archivált partnerek @@ -1969,7 +1965,6 @@ üzenet Beszélgetés megtartása Biztosan törli a partnert? - kapcsolódás Könnyen elérhető eszköztárak Törlés értesítés nélkül Beállítások @@ -2098,7 +2093,6 @@ A kapcsolat elérte a kézbesítetlen üzenetek számának határát, a partnere lehet, hogy offline állapotban van. Nincs üzenet Ez az üzenet törölve lett vagy még nem érkezett meg. - Koppintson a SimpleX-cím létrehozása menüpontra a későbbi létrehozáshoz. Cím nyilvános megosztása SimpleX-cím megosztása a közösségi médiában. Egyszer használható meghívó megosztása egy baráttal @@ -2115,12 +2109,7 @@ Hálózatüzemeltetők Az alkalmazás úgy védi az adatait, hogy minden egyes beszélgetéshez más-más üzemeltetőt használ. Például, ha a partnere egy SimpleX Chat kiszolgálón keresztül fogadja az üzeneteket, akkor az Ön alkalmazása egy Flux kiszolgálón keresztül fogja azokat kézbesíteni. - Jelölje ki a használni kívánt hálózatüzemeltetőket. - Felülvizsgálat később A kiszolgálókat a „Hálózat és kiszolgálók” menüben konfigurálhatja. - A feltételek 30 nap elteltével lesznek elfogadva az engedélyezett üzemeltetők számára. - Az üzemeltetőket a „Hálózat és kiszolgálók” menüben konfigurálhatja. - Frissítés Folytatás Feltételek felülvizsgálata Elfogadott feltételek @@ -2130,7 +2119,6 @@ %s.]]> %s kiszolgáló Hálózatüzemeltető - Weboldal Feltételek elfogadásának ideje: %s. A feltételek el lesznek fogadva a következő időpontban: %s. Kiszolgálók használata @@ -2166,13 +2154,11 @@ A második előre beállított üzemeltető az alkalmazásban! A Flux kiszolgálókat engedélyezheti a beállításokban, a „Hálózat és kiszolgálók” menüben, a metaadatok jobb védelme érdekében. Eszköztárak - a metaadatok jobb védelme érdekében. Továbbfejlesztett csevegési navigáció - Csevegés megnyitása az első olvasatlan üzenetnél.\n- Ugrás az idézett üzenetekre. Frissített feltételek megtekintése A jelenlegi csevegési profiljához tartozó új fájlok kiszolgálói Vagy archívumfájl importálása - Távoli hordozható eszközök Xiaomi eszközök: engedélyezze az automatikus indítást a rendszerbeállításokban, hogy az értesítések működjenek.]]> Másolhatja és csökkentheti az üzenet méretét a küldéshez. Adja hozzá a munkatársait a beszélgetésekhez. @@ -2253,7 +2239,6 @@ Elrendezés módosítása Hiba történt a jelentés létrehozásakor Hiba történt a beállítások mentésekor - A jelentés archiválva lesz az Ön számára. Tartalom jelentése: csak a csoport moderátorai látják. Archívum Archiválja a jelentést? @@ -2302,7 +2287,6 @@ A következő TCP-port használata, amikor nincs port megadva: %1$s. TCP-port az üzenetváltáshoz Webport használata - Olvasatlan említések Összes némítása Legfeljebb %1$s tagot említhet meg egy üzenetben! Az üzenetek jelentése a moderátorok felé engedélyezve van. @@ -2431,7 +2415,6 @@ Partneri kapcsolatkérés elutasítása A kérés küldője NEM lesz értesítve. Saját profil - Elküldés a partnernek a kapcsolódást követően. Üdvözlőüzenet Frissíti a címet? A cím rövid lesz és a profil meg lesz osztva a címen keresztül. @@ -2486,7 +2469,6 @@ Partneri kapcsolatkérések a csoportok tagjaitól A tag törölve lett – nem lehet elfogadni a kérést a(z) %1$s nevű csoportból partneri kapcsolatot kért - Ez a beállítás a jelenlegi profiljára vonatkozik Megnyitás a bot használatához Koppintson a „Kapcsolódás” gombra a bot használatához Bot @@ -2516,7 +2498,6 @@ Eltávolítás és az üzeneteinek törlése Összes üzenet Fájlok - Szűrő Képek Hivatkozások Fájlok keresése @@ -2535,7 +2516,6 @@ Csatorna Csatorna Csatornahivatkozás - Csatornatagok Csatorna neve Kapcsolódás kapcsolódott @@ -2550,7 +2530,6 @@ új meghíva Csatorna megnyitása - Új csatorna megnyitása Tulajdonos Tulajdonosok és közreműködők Csatorna elhagyása @@ -2633,7 +2612,6 @@ Átjátszó címe Ez egy csevegési átjátszó címe, nem használható kapcsolódásra. %1$s nevű csatornához!]]> - Hiba történt a csatorna megnyitásakor Az összes feliratkozó számára feloldja a feliratkozó letiltását? Átjátszó tesztelése a nevének lekéréséhez.]]> Csatorna teljes neve: @@ -2773,7 +2751,6 @@ Felső sáv Az új %1$s nevű csatornája %3$d átjátszóból %2$d átjátszóhoz kapcsolódott.\nHa visszavonja, akkor a csatorna törlődni fog – de később újra létrehozhatja. Visszavonás és a csatorna törlése - Hozzáadás Átjátszó hozzáadása Átjátszók hozzáadása %d átjátszó kiválasztva @@ -2805,14 +2782,8 @@ az átjátszó üzemeltetője elutasította Az alkalmazás már fut Lehet, hogy egy másik alkalmazáspéldány fut, vagy nem zárult be megfelelően. Így is elindítja? - Nem támogatott csatornanév - Nem támogatott partnernév - A csatorna nevén keresztüli kapcsolódáshoz újabb alkalmazásverzió szükséges. - A partner nevén keresztüli kapcsolódáshoz újabb alkalmazásverzió szükséges. - Frissítse az alkalmazást. Alkalmazásfrissítés szükséges Ehhez a csoporthoz az alkalmazás újabb verziója szükséges. A csatlakozáshoz frissítse az alkalmazást. - Névjegy Kapcsolat A projekt támogatása Csevegési adatok @@ -2862,7 +2833,6 @@ Név ellenőrzése SimpleX-nevek ellenőrzése Nincs ellenőrizve a SimpleX-név - SimpleX-név Saját SimpleX-név SimpleX-név beállítása Hiba történt a név mentésekor diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/in/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/in/strings.xml index b5c35bc7c6..ea18b5e428 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/in/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/in/strings.xml @@ -545,7 +545,6 @@ Terlalu banyak video! Pesan suara pesan - buka Sistem setel alamat kontak baru Tema gelap @@ -969,8 +968,6 @@ Versi inti: v%s Ketika IP disembunyikan Warna antarmuka - Fallback perutean pesan - Mode routing pesan Routing pribadi JANGAN gunakan routing pribadi. Gunakan routing pribadi dengan server yang tak dikenal ketika alamat IP tidak dilindungi. @@ -1330,7 +1327,6 @@ Buat grup Nama lengkap grup: Simpan profil grup - Peramban Server Anda Gagal simpan profil grup %s server @@ -1389,7 +1385,6 @@ Operator server Operator jaringan Aplikasi ini melindungi privasi Anda dengan gunakan operator yang berbeda setiap percakapan. - Ketentuan akan diterima untuk operator yang diaktifkan setelah 30 hari. Alat pengembang Warna obrolan permintaan koneksi @@ -1416,7 +1411,6 @@ %1$s!]]> Batal pindah Potongan diunggah - hubungkan Percakapan dihapus! Pesan sementara Hapus catatan pribadi? @@ -1487,7 +1481,6 @@ Permintaan koneksi terkirim! Keamanan koneksi Nama telah benar untuk %s? - Anda dapat konfigurasi operator di pengaturan Jaringan dan server. Kesalahan basis data Frasa sandi basis data berbeda dengan yang disimpan di Keystore. Ubah peran grup? @@ -1589,14 +1582,11 @@ Tiada layanan latar belakang Aplikasi selalu berjalan di latar belakang Periksa pesan setiap 10 menit - Pilih operator jaringan yang akan digunakan. Misalnya, jika kontak Anda menerima pesan melalui server SimpleX Chat, aplikasi Anda akan mengirimkannya melalui server Flux. Bagaimana ini membantu privasi Lanjutkan Anda dapat konfigurasi server di pengaturan. repositori GitHub kami.]]> - Nilai nanti - Perbarui Rincian tautan unduhan untuk setiap profil obrolan yang Anda miliki di aplikasi.]]> untuk setiap kontak dan anggota grup.\nHarap diperhatikan: jika Anda memiliki banyak koneksi, konsumsi baterai dan lalu lintas dapat jauh lebih tinggi dan beberapa koneksi mungkin gagal.]]> @@ -1696,7 +1686,6 @@ negosiasi ulang enkripsi diperlukan negosiasi ulang enkripsi diizinkan untuk %s Aktifkan Flux di pengaturan Jaringan dan server untuk privasi metadata yang lebih baik. - untuk privasi metadata lebih baik. Navigasi obrolan ditingkatkan Galat Selesaikan migrasi pada perangkat lain. @@ -1907,7 +1896,6 @@ Anda dapat bagikan alamat sebagai tautan atau kode QR - siapa pun dapat terhubung dengan Anda. Simpan Jadikan profil pribadi! - Ponsel jarak jauh Jalankan obrolan Harap simpan frasa sandi dengan aman, Anda TIDAK akan dapat mengakses obrolan jika hilang. dihapus %1$s @@ -2197,14 +2185,12 @@ Gambar tidak dapat didekodekan. Silakan coba gambar lain atau hubungi pengembang. Kunci salah atau koneksi tidak dikenal - kemungkinan besar koneksi ini dihapus. Mulai obrolan baru - Ketuk Buat alamat SimpleX di menu untuk membuatnya nanti. Untuk terhubung, kontak Anda dapat pindai kode QR atau gunakan tautan di aplikasi. Profil Anda %1$s akan dibagikan. Untuk melindungi tautan Anda dari penggantian, Anda dapat membandingkan kode keamanan kontak. Pembaruan unduhan dibatalkan Profil Anda saat ini Anda menggunakan profil samaran untuk grup ini - untuk mencegah berbagi profil utama Anda, undang kontak tidak diizinkan - Lihat daftar obrolan di jendela baru Anda mengirim undangan grup Tautan ini bukan tautan koneksi yang valid! Anda akan berhenti menerima pesan dari grup ini. Riwayat obrolan akan disimpan. @@ -2277,7 +2263,6 @@ Laporkan profil anggota: hanya moderator grup yang akan melihat. Arsip laporan? Berkas diblokir oleh operator server:\n\n%1$s. - Laporan akan diarsipkan untuk Anda. moderator Laporkan konten: hanya moderator grup yang akan melihat. Ubah daftar @@ -2305,7 +2290,6 @@ 1 tahun bawaan (%s) Bisukan semua - Sebutan belum terbaca Port TCP untuk pesan Gunakan port TCP %1$s jika tidak ada port yang ditentukan. Gunakan port peramban @@ -2474,7 +2458,6 @@ Kirim permintaan Kirim permintaan tanpa pesan Kirimkan masukan pribadi Anda ke grup. - Dikirim ke kontak Anda setelah terhubung. Pasang bio profil dan pesan sambutan. Bagikan alamat lama Bagikan tautan lama @@ -2496,7 +2479,6 @@ Alamat akan singkat, dan profil Anda akan dibagikan melalui alamat tersebut. Tautan akan singkat, dan profil grup akan dibagikan melalui tautan tersebut. Pengirim TIDAK akan diberi tahu. - Pengaturan ini untuk profil Anda saat ini Waktu menghilang hanya diatur untuk kontak baru. Untuk mengirim perintah, Anda harus terhubung. Untuk menggunakan profil lain setelah mencoba hubungkan, hapus chat dan gunakan tautan lagi. @@ -2535,11 +2517,9 @@ %1$d pelanggan %1$d pelanggan %1$s mendukung SimpleX Chat. Lencana berakhir pada %2$s. - Tentang diterima daftar yang di akui aktif - Tambahkan Tambah relay Tambah relay Tambahkan relay untuk memulihkan pengiriman pesan. @@ -2572,7 +2552,6 @@ Gagal menyiarkan Saluran Tautan saluran - Anggota saluran Nama saluran Preferensi saluran Profil saluran disimpan di perangkat pelanggan dan di relai obrolan. @@ -2602,8 +2581,6 @@ Hubungkan terhubung menghubungkan - Menghubungkan melalui nama saluran memerlukan versi aplikasi yang lebih baru. - Menghubungkan melalui nama kontak memerlukan versi aplikasi yang lebih baru. Koneksi gagal Hubungkan melalui tautan atau kode QR Kontak @@ -2648,7 +2625,6 @@ Galat saat menambahkan relai Galat saat membuat saluran Gagal menghapus pesan - Galat saat membuka saluran galat: %s Galat saat menyimpan profil saluran Galat saat membagikan saluran @@ -2656,7 +2632,6 @@ gagal gagal Berkas - Filter Agar siapa pun dapat menghubungi Anda Dari riwayat (dari pemilik) @@ -2705,9 +2680,6 @@ Tidak ada relai Tidak ada relay yang dipilih Perekaman suara tidak didukung di platform Anda. - Nama saluran tidak didukung - Nama kontak tidak didukung - Silakan perbarui aplikasinya. Grup ini membutuhkan versi aplikasi yang lebih baru. Silakan perbarui aplikasi untuk bergabung. Cari gambar Cari video diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/it/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/it/strings.xml index 16ba6db570..2f19777c2b 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/it/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/it/strings.xml @@ -1772,12 +1772,10 @@ Mai Server sconosciuti Usa l\'instradamento privato con server sconosciuti. - Modalità instradamento messaggio Usa l\'instradamento privato con server sconosciuti quando l\'indirizzo IP non è protetto. Sì Invia messaggi direttamente quando il tuo server o quello di destinazione non supporta l\'instradamento privato. Quando l\'IP è nascosto - Ripiego instradamento messaggio Mostra stato del messaggio Consenti downgrade Sempre @@ -1819,7 +1817,6 @@ Adatta Risposta inviata Imposta tema predefinito - Mostra la lista di chat in una nuova finestra Sistema Tinta dello sfondo Buon pomeriggio! @@ -1989,7 +1986,6 @@ Forte chiama messaggio - apri cerca Impostazioni Elimina senza avvisare @@ -2016,7 +2012,6 @@ Invia un messaggio per attivare le chiamate. video Puoi ancora vedere la conversazione con %1$s nell\'elenco delle chat. - connetti Contatto eliminato! Confermare l\'eliminazione del contatto? Chatta @@ -2134,12 +2129,8 @@ O per condividere in modo privato Operatori di rete L\'app protegge la tua privacy usando diversi operatori per ogni conversazione. - Puoi configurare gli operatori nelle impostazioni di rete e server. Operatori del server - Seleziona gli operatori di rete da usare. Continua - Aggiornamento - Leggi più tardi Server preimpostati Condizioni accettate Le condizioni verranno accettate automaticamente per gli operatori attivati il: %s. @@ -2151,7 +2142,6 @@ Operatore di rete Server di %s Usa %s - Sito web %s.]]> Condizioni accettate il: %s. Operatore @@ -2189,18 +2179,15 @@ Indirizzo o link una tantum? Impostazioni dell\'indirizzo con un solo contatto - condividilo di persona o tramite un messenger.]]> - Le condizioni verranno accettate per gli operatori attivati dopo 30 giorni. Le condizioni verranno accettate il: %s. Errore di accettazione delle condizioni Errore di salvataggio dei server - per una migliore privacy dei metadati. Ad esempio, se il tuo contatto riceve i messaggi tramite un server di SimpleX Chat, la tua app li consegnerà tramite un server di Flux. Navigazione della chat migliorata Nuovo server Usa per i file Indirizzo SimpleX o link una tantum? Questo messaggio è stato eliminato o non ancora ricevuto. - Tocca Crea indirizzo SimpleX nel menu per crearlo più tardi. La connessione ha raggiunto il limite di messaggi non consegnati, il contatto potrebbe essere offline. Usa i server Puoi configurare i server nelle impostazioni. @@ -2212,7 +2199,6 @@ Condividi indirizzo pubblicamente Condividi l\'indirizzo SimpleX sui social media. O importa un file dell\'archivio - Telefoni remoti I messaggi diretti tra i membri sono vietati in questa chat. Dispositivi Xiaomi: attiva l\'avvio automatico nelle impostazioni di sistema per fare funzionare le notifiche.]]> Aggiungi i membri del tuo team alle conversazioni. @@ -2303,7 +2289,6 @@ Spam Segnala Motivo della segnalazione? - La segnalazione verrà archiviata per te. Segnala profilo: solo i moderatori del gruppo lo vedranno. Segnala spam: solo i moderatori del gruppo lo vedranno. Segnala violazione: solo i moderatori del gruppo lo vedranno. @@ -2339,7 +2324,6 @@ Porta TCP per i messaggi Usa porta web Silenzia tutto - Menzioni non lette Puoi menzionare fino a %1$s membri per messaggio! I membri possono segnalare messaggi ai moderatori. Archiviare tutte le segnalazioni? @@ -2465,7 +2449,6 @@ Inviare una richiesta di contatto? Invia richiesta Invia richiesta senza messaggio - Inviato al tuo contatto dopo la connessione. Aggiornare il link del gruppo? Aggiorna Aggiornare l\'indirizzo? @@ -2521,7 +2504,6 @@ Richieste di contatto nei gruppi Il membro è eliminato - impossibile accettare la richiesta connessione richiesta dal gruppo %1$s - Questa impostazione è per il tuo profilo attuale Consenti file e contenuti multimediali solo se il tuo contatto li consente. Consenti ai tuoi contatti di inviare file e contenuti multimediali. Bot @@ -2560,7 +2542,6 @@ Cerca messaggi vocali Video Messaggi vocali - Filtro Connessione fallita fallito Se sei dentro canali o ne hai creati, essi smetteranno di funzionare definitivamente. @@ -2580,7 +2561,6 @@ Canale Canale Link del canale - Membri del canale Nome del canale Il canale verrà eliminato per tutti gli iscritti, non è reversibile! Il canale verrà eliminato per te, non è reversibile! @@ -2610,7 +2590,6 @@ Inserisci il nome del relay… Errore di aggiunta del relay Errore di creazione del canale - Errore di apertura del canale fallito fallito Ottieni link @@ -2624,7 +2603,6 @@ Nessun relay di chat attivato. Non tutti i relay sono connessi Apri canale - Apri il nuovo canale Proprietario Proprietari e collaboratori Indirizzo relay preimpostato @@ -2807,7 +2785,6 @@ L\'anteprima del link verrà richiesta via proxy SOCKS. La ricerca DNS può ancora accadere localmente tramite il tuo risolutore DNS. Barra superiore Il tuo nuovo canale %1$s è connesso a %2$d di %3$d relay.\nSe annulli, il canale verrà eliminato. Potrai crearlo di nuovo. - Aggiungi Aggiungi relay Aggiungi relay Annulla ed elimina il canale @@ -2844,7 +2821,6 @@ %1$d proprietari %1$d proprietari e collaboratori %1$s ha sostenuto SimpleX Chat. La targhetta è scaduta il %2$s. - Informazioni lista riconosciuta Aggiungi questo codice alla tua pagina web. Mostrerà l\'anteprima del tuo canale / gruppo. Opzioni avanzate @@ -2855,8 +2831,6 @@ La targhetta non può essere verificata Pagina web del canale Dati della chat - La connessione tramite nome del canale richiede una versione dell\'app più recente. - La connessione tramite nome del contatto richiede una versione dell\'app più recente. Contatto collaboratore Copia codice @@ -2868,7 +2842,6 @@ Verrà mostrato agli iscritti e usato per permettere il caricamento dell\'anteprima. Più privacy Solo la tua pagina soprastante può mostrare l\'anteprima. - Aggiorna l\'app. %s ha investito nella raccolta fondi di SimpleX Chat. %s sostiene SimpleX Chat. iscritto @@ -2877,8 +2850,6 @@ Il ruolo verrà cambiato in "%s". Verrà avvisato chiunque nel canale. Non è stato possibile verificare questa targhetta e potrebbe non essere autentica. Questo gruppo richiede una versione dell\'app più recente. Aggiorna l\'app per entrare. - Nome del canale non supportato - Nome del contatto non supportato Targhetta non verificata I relay di chat usati non supportano le pagine web. Codice pagina web @@ -2893,7 +2864,6 @@ Errore del risolutore: %1$s Il server %1$s non supporta la risoluzione dei nomi. Configura i server o usa un link di connessione. Imposta nome SimpleX - Nome SimpleX Errore del nome SimpleX Nome SimpleX non verificato Il nome SimpleX %1$s è registrato, ma non ha alcun link valido. diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/iw/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/iw/strings.xml index 8487614c9a..a2113482d9 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/iw/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/iw/strings.xml @@ -1738,7 +1738,6 @@ אוזניות ערכת נושא לפרופיל צבעי הצא\'ט - הצג רשימת שיחות בחלון חדש מצב הקובץ סטטוס הודעה מצב הקובץ:%s @@ -2000,7 +1999,6 @@ אל תחמיץ הודעות חשובות. הורד גרסאות חדשות מ GitHub. פרופיל לא הולם - לפרטיות מטא דאטא טובה יותר. אפשר Flux בהגדרות רשת ושרתים בשביל לשפר את הפרטיות של המטא דאטא מעביר %1$s הודעות שגיאה בקריאת משפט-סיסמה של מסד נתונים @@ -2123,7 +2121,6 @@ צ\'אטים פרטיים, קבוצות ואנשי הקשר שלך אינם נגישים למפעילי השרת. לדוגמה, אם איש הקשר שלך מקבל הודעות דרך שרת SimpleX Chat, האפליקציה שלך תעביר אותן דרך שרת Flux. מדיניות פרטיות ותנאי שימוש. - ניתן להגדיר מפעילים בהגדרות רשת ושרתים. לא זנב לבועה סרגל כלים נגיש לצ\'אט diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/ja/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/ja/strings.xml index 1e0686d2de..c28136d201 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/ja/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/ja/strings.xml @@ -1821,7 +1821,6 @@ \n*ネットワークとサーバー*設定から有効にして下さい。 いいえ はい - メッセージルーティングモード フォントサイズ ベータ アップデートを確認 @@ -1847,7 +1846,6 @@ 全てのプロフィール 通話 連絡先の削除を確認しますか? - 接続 連絡先が削除されます - この操作は取り消せません! プロフィールの切り替えエラー メディアのぼかし @@ -1965,7 +1963,6 @@ 情報がありません、リロードしてください SMPサーバ メッセージ - ウェブサイト ビデオ 設定画面からサーバを構成できます。 改定履歴を開く @@ -1995,7 +1992,6 @@ バックグラウンドサービスを使用しません 利用条件の承諾 %s の利用条件に承諾しています。]]> - 後で作成する場合はメニューから「SimpleXのアドレスを作成」を選択してください。 運営者について 1年 1 件のレポート @@ -2053,7 +2049,6 @@ リンク すべて 音声メッセージ - フィルター メンバーとして承認する オブザーバーとして承認する スパム @@ -2097,11 +2092,6 @@ Tor または VPN を使用しない場合、あなたのIPアドレスはこれらのXFTPリレーに表示されます:\n%1$s。 サポートされていない接続リンク このリンクには新しいバージョンのアプリが必要です。アプリをアップグレードするか、互換性のあるリンクを送るよう連絡先に依頼してください。 - サポートされていないチャンネル名 - サポートされていない連絡先名 - チャンネル名による接続には新しいバージョンのアプリが必要です。 - 連絡先名による接続には新しいバージョンのアプリが必要です。 - アプリをアップグレードしてください。 チャンネルは一時的に利用できません チャンネルにアクティブなリレーがありません。後でもう一度参加をお試しください。 アプリの更新が必要です @@ -2126,7 +2116,6 @@ 報告をアーカイブしますか? %d件の報告をアーカイブしますか? すべての報告をアーカイブしますか? - 報告はあなたのためにアーカイブされます。 すべての報告があなたのためにアーカイブされます。 自分のみ すべてのモデレーター向け @@ -2265,7 +2254,6 @@ この操作は元に戻せません - このチャットで選択した時点より前に送受信したメッセージは削除されます。 メッセージ削除を無効にする デバイスからチャットメッセージを削除します。 - 開く 検索 会話を保持 会話のみ削除 @@ -2281,7 +2269,6 @@ 送信者には通知されません。 メンバーが削除されています - リクエストを承諾できません すべてミュート - 未読のメンション リストを変更 リスト名と絵文字はすべてのリストで異なる必要があります。 順序を変更 @@ -2321,7 +2308,6 @@ IPが隠されている場合 あなたまたは宛先のサーバがプライベートルーティングをサポートしていない場合、メッセージを直接送信します。 IPアドレスが保護されており、かつあなたまたは宛先のサーバがプライベートルーティングをサポートしていない場合、メッセージを直接送信します。 - メッセージルーティングのフォールバック IPアドレスを保護するため、プライベートルーティングはあなたのSMPサーバを使用してメッセージを配信します。 メッセージング用のTCPポート Webポートを使用 @@ -2342,7 +2328,6 @@ 新しいリリースの通知を受け取るには、安定版またはベータ版の定期チェックをオンにしてください。 非推奨のオプション 設定の保存エラー - 接続後に連絡先に送信されます。 ウェルカムメッセージ またはプライベートに共有する場合 SimpleXアドレスまたはワンタイムリンク? @@ -2389,12 +2374,7 @@ アプリは会話ごとに異なる運営者を使用することで、あなたのプライバシーを保護します。 複数の運営者が有効な場合、どの運営者も誰が誰と通信しているかを知るためのメタデータを持ちません。 例えば、あなたの連絡先がSimpleX Chatのサーバ経由でメッセージを受信する場合、あなたのアプリはFluxのサーバ経由でそれらを配信します。 - 使用するネットワーク運営者を選択してください。 プライバシーにどう役立つか - 有効な運営者の条件は30日後に承諾されます。 - 運営者は「ネットワークとサーバ」設定で構成できます。 - 後で確認 - 更新 あなたのネットワーク ネットワークのルーターは\n誰が誰と話しているかを知ることができません ルーターを設定 @@ -2411,7 +2391,6 @@ アプリは不明なファイルサーバからのダウンロードの確認を求めます(.onion の場合、またはSOCKSプロキシが有効な場合を除く)。 Tor または VPN を使用しない場合、あなたのIPアドレスはファイルサーバに表示されます。 リンクのトラッキングを削除 - この設定は現在のプロフィールに適用されます チャット一覧からリンクを開く はい いいえ @@ -2421,7 +2400,6 @@ 完全なリンクを開く クリーンなリンクを開く グループからの連絡先リクエスト - リモートのモバイル端末 デフォルト(%s) エクスポートしたアーカイブを保存できます。 エクスポートしたデータベースを移行できます。 @@ -2433,7 +2411,6 @@ 手の届くチャットツールバー 下部のバー 上部のバー - 新しいウィンドウでチャット一覧を表示 チャンネルに参加または作成した場合、それらは恒久的に機能しなくなります。 チャンネルから退出しますか? チャットから退出しますか? @@ -2475,7 +2452,6 @@ 設定を変更できるのはチャットのオーナーだけです。 リンク 管理者とのチャット - チャンネルのメンバー チャットリレー 購読者を削除しますか? メンバーを削除しますか? @@ -2616,7 +2592,6 @@ ネットワークの分散化 アプリに2番目のプリセット運営者が登場! メタデータのプライバシー向上のため、「ネットワークとサーバ」設定でFluxを有効にしてください。 - メタデータのプライバシー向上のため。 チャットナビゲーションの改善 - 最初の未読メッセージでチャットを開きます。\n- 引用されたメッセージにジャンプします。 ビジネスチャット @@ -2801,7 +2776,6 @@ あなたのプロフィール %1$s はチャンネルのリレーと購読者に共有されます。\nリレーはチャンネルのメッセージにアクセスできます。 リレーを構成 失敗 - 追加 リレーを追加 リレーを追加 利用可能なリレーがありません @@ -2817,10 +2791,8 @@ リレーアドレス これはチャットリレーのアドレスであり、接続には使用できません。 チャンネルを開く - 新しいチャンネルを開く あなたのチャンネル %1$s 用のあなたのリンクです!]]> - チャンネルを開く際のエラー 全員に対して購読者のブロックを解除しますか? リンクプレビューを有効にしますか? リンクプレビューを送信すると、あなたのIPアドレスがWebサイトに知られる可能性があります。これは後でプライバシー設定で変更できます。 diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/ko/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/ko/strings.xml index a987a0c92e..a4fd13d137 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/ko/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/ko/strings.xml @@ -1080,7 +1080,6 @@ 업로드 확인 모바일에 연결 연결된 모바일 - 연결 그룹 멤버에게 메시지를 보낼 수 없음 전송 알림을 활성화하시겠습니까? 암호화 OK @@ -1379,7 +1378,6 @@ 성공적으로 설치됨 업데이트 설치 인터페이스 색상 - 메시지 라우팅 대체 그룹 멤버가 메시지 반응을 추가할 수 있습니다. 메시지 모양 메시지 대기열 정보 @@ -1395,7 +1393,6 @@ 향상된 서버 구성 메시지 메시지 서버 - 메시지 라우팅 모드 안녕하세요!\nSimpleX Chat 초대장이 도착했습니다: %s 내부 오류 잘못된 이름입니다! @@ -1471,7 +1468,6 @@ Flux 활성화 종단 간 암호화로 전송됩니다.]]> 앱이 항상 백그라운드에서 실행 - 활성화된 운영자에 대한 약관은 30일 후에 수락됩니다. 팀 멤버 추가하기 친구 추가 모든 멤버에게서 채팅이 삭제됩니다 - 이 결정은 되돌릴 수 없습니다! diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/ku/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/ku/strings.xml index 09c428e48b..c429a8341a 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/ku/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/ku/strings.xml @@ -108,7 +108,6 @@ Bêdengkirinê betal bike Bike favorît Ji favorîtan derxe - Behsên nexwendî Lîste çêke Li lîstê zêde bike Lîstê biguhere @@ -345,7 +344,6 @@ Sîstem Moda sîstemê Terî/Dûvik - Pêl Adresa SimpleXê çêke di meniwê de ji bo ko tu dûvre çêkî. Pêl Bikeve komê bike Bikeviyê Bikeve komê @@ -603,7 +601,6 @@ Etherneta bi qeblo WiFi Çi yî nû heye - Websîte Serverên WebRTC ICEyê Hişyarî: hinek dataya te kare winda bibe! dixwaze bi te re bikeve danûstandinê! diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/lv/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/lv/strings.xml index a6882871c7..e09aef2162 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/lv/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/lv/strings.xml @@ -539,7 +539,6 @@ Tiek izveidots tukšs čata profils Ja ievadīsiet paroli, dati tiks izdzēsti Uzstādīt paroli - Šis iestatījums ir paredzēts jūsu pašreizējam profilam Saņemts grupas notikums: 1 dalībnieks pievienojies Saņemts grupas notikums: 2 dalībnieki pievienojušies Saņemts grupas notikums: 3 dalībnieki pievienojušies @@ -1022,7 +1021,6 @@ Atvērt sarunu profilus Ziņojumu arhīvs %dth Ziņojumu arhīvs visi - Ziņojumu arhīvs Ziņojumu arhīvs apraksts visi Ziņojumu arhīvs man Ziņojumu arhīvs visiem moderātoriem @@ -1134,7 +1132,6 @@ Kontaktam jāpieņem Savienoties ar kontaktu %s? Meklējiet vai ielīmējiet simplex saiti - Adreses izveides instrukcija Nav izvēlēta saruna Izvēlēto sarunu vienības nav izvēlētas Izvēlēto sarunu vienības izvēlētas %d @@ -1167,8 +1164,6 @@ Mainīt automātisko sarunu dzēšanu Atspējot automātisko dzēšanu Sarunu laika ierobežojuma opciju apakšdaļa - Skatīt savienojumu - Skatīt atvērt Skatīt Skatīt zvanu Skatīt meklēšanu @@ -1273,7 +1268,6 @@ Atjaunot sarunu Atzīmēt kā iecienītu Noņemt no iecienītajiem - Neizlasītie minējumi Izveidot sarakstu Pievienot sarakstam Mainīt sarakstu @@ -1390,7 +1384,6 @@ Tīkla smp proxy režīms nezināms Tīkla smp proxy režīms neaizsargāts Tīkla smp proxy režīms nekad - Atjaunināt tīkla smp proxy režīmu? Tīkla smp proxy rezerves atļaut samazināšanu Tīkla smp proxy rezerves atļaut Tīkla smp proxy rezerves atļaut aizsargātu @@ -1398,7 +1391,6 @@ Tīkla smp proxy rezerves atļaut Tīkla smp proxy rezerves atļaut aizsargātu Tīkla smp proxy rezerves aizliegt - Atjaunināt tīkla smp proxy rezerves? Privātā maršrutēšana rādīt Privātā maršrutēšana skaidrojums Tīkla smp tīmekļa ports @@ -1461,7 +1453,6 @@ Pārtraukt adreses kopīgošanu Pārtraukt kopīgošanu Automātiski pieņemt kontaktus - Nosūtīts jūsu kontaktam pēc savienojuma izveides Sveiciena ziņa Ievadiet sveiciena ziņu (pēc izvēles) Saglabāt iestatījumus? @@ -1598,13 +1589,8 @@ Ievada tīkla operatori nevar redzēt, kas ar ko runā Ievada tīkla operatori lietotne izmantos maršrutēšanai Ievada tīkls par operatoriem - Ievada izvēlēties tīkla operatorus, ko izmantot Kā tas palīdz privātumam Ievada tīkla operatori konfigurēt caur iestatījumiem - Ievada tīkla operatori nosacījumi tiks pieņemti - Ievada tīkla operatori nosacījumi, ko jūs varat konfigurēt - Ievada tīkla operatori pārskatīt vēlāk - Ievada tīkla operatori atjaunināt Ievada tīkla operatori turpināt Ienākošais video zvans Ienākošais audio zvans @@ -1675,7 +1661,6 @@ Izmantot no darbvirsmas Jūsu sarunu datubāze Palaist sarunu - Attālie hosti Saruna notiek Saruna ir apstājusies Sarunu datubāze @@ -1799,7 +1784,6 @@ Sarunu apakšējā josla Vienas rokas saskarnes maiņas instrukcija Terminālis vienmēr redzams - Sarunu saraksts vienmēr redzams Nederīga migrācijas apstiprināšana Jaunināt un atvērt sarunu Samazināt un atvērt sarunu @@ -1994,7 +1978,6 @@ Operators Operatora serveri Operators - Operatora mājaslapa Operatora nosacījumi pieņemti Operatora nosacījumi tiks pieņemti Operatora izmantošanas slēdzis @@ -2317,7 +2300,6 @@ Tīkla decentralizācija Decentralizējiet tīklu, lai uzlabotu drošību. Tīkla decentralizācija, iespējot plūsmu - Tīkla decentralizācija, iespējot plūsmu iemesls Uzlabota sarunu navigācija Vieglāka navigācija sarunās. Uzņēmumu sarunas diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/nl/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/nl/strings.xml index 2ec65534a4..c2cc76fa50 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/nl/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/nl/strings.xml @@ -1772,7 +1772,6 @@ Gebruik altijd privéroutering. Gebruik privéroutering met onbekende servers. Gebruik GEEN privéroutering. - Berichtrouteringsmodus Gebruik privéroutering met onbekende servers wanneer het IP-adres niet beveiligd is. Downgraden toestaan Wanneer IP verborgen is @@ -1782,7 +1781,6 @@ Toon berichtstatus Om uw IP-adres te beschermen, gebruikt privéroutering uw SMP-servers om berichten te bezorgen. Stuur GEEN berichten rechtstreeks, zelfs als uw of de bestemmingsserver geen privéroutering ondersteunt. - Terugval op berichtroutering Privébericht routing Stuur berichten rechtstreeks als het IP-adres beschermd is en uw of bestemmingsserver geen privéroutering ondersteunt. Onbekende servers! @@ -1835,7 +1833,6 @@ Systeem Wallpaper achtergrond Stel het standaard thema in - Toon chat-lijst in nieuw venster geen Foutopsporing bezorging Informatie over berichtenwachtrij @@ -1999,13 +1996,11 @@ Bericht Berichten worden gemarkeerd voor verwijdering. De ontvanger(s) kunnen deze berichten onthullen. Niets geselecteerd - verbinden Contact verwijderd! Het contact wordt verwijderd. Dit kan niet ongedaan worden gemaakt! Behoud het gesprek bericht Alleen conversatie verwijderen - open Plak de link Uitnodiging Bereikbare app-toolbars @@ -2129,7 +2124,6 @@ Niet afgeleverde berichten De verbinding heeft de limiet van niet-afgeleverde berichten bereikt. Uw contactpersoon is mogelijk offline. Dit bericht is verwijderd of nog niet ontvangen. - Tik op SimpleX-adres maken in het menu om het later te maken. Adres openbaar delen Deel eenmalig een link met een vriend Deel het SimpleX-adres op sociale media. @@ -2143,13 +2137,8 @@ Adres instellingen Eenmalige link maken Serverbeheerders - Voor ingeschakelde operators worden de voorwaarden na 30 dagen geaccepteerd. Netwerkbeheerders - Later beoordelen - Selecteer welke netwerkoperators u wilt gebruiken. - Update De app beschermt uw privacy door in elk gesprek verschillende operators te gebruiken. - U kunt operators configureren in Netwerk- en serverinstellingen. Doorgaan Voorwaarden bekijken Uw servers @@ -2164,7 +2153,6 @@ %s servers Gebruik %s Gebruik servers - Website %s.]]> %s.]]> %s te gebruiken, moet u de gebruiksvoorwaarden accepteren.]]> @@ -2180,7 +2168,6 @@ Operatorserver Server toegevoegd aan operator %s. Transparantie - voor betere privacy van metagegevens. Verbeterde chatnavigatie Netwerk decentralisatie De tweede vooraf ingestelde operator in de app! @@ -2208,7 +2195,6 @@ U kunt servers configureren via instellingen. Of importeer archiefbestand Directe berichten tussen leden zijn in deze chat niet toegestaan. - Externe mobiele telefoons Xiaomi-apparaten: schakel Automatisch starten in de systeeminstellingen in om meldingen te laten werken.]]> Bericht is te groot! Verklein het bericht en verstuur het opnieuw. @@ -2299,7 +2285,6 @@ Rapport archiveren? rapporteren Reden melding? - Het rapport wordt voor u gearchiveerd. Anders melden: alleen groepsmoderators kunnen het zien. Spam melden: alleen groepsmoderators kunnen het zien. Rapporteer overtreding: alleen groepsmoderators kunnen dit zien. @@ -2334,7 +2319,6 @@ Gebruik een webpoort Gebruik TCP-poort %1$s wanneer er geen poort is opgegeven. Alles dempen - Ongelezen vermeldingen Je kunt maximaal %1$s leden per bericht vermelden! Hiermee kunt u berichten rapporteren aan moderators. Alle rapporten worden voor u gearchiveerd. diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/pl/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/pl/strings.xml index bf47cebdb5..6b6c3ab3eb 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/pl/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/pl/strings.xml @@ -1771,7 +1771,6 @@ Nigdy Niezabezpieczony NIE używaj prywatnego trasowania. - Tryb trasowania wiadomości Tak Nie Gdy IP ukryty @@ -1781,7 +1780,6 @@ Aby chronić Twój adres IP, prywatne trasowanie używa Twoich serwerów SMP, aby dostarczyć wiadomości. Nieznane serwery Używaj prywatnego trasowania z nieznanymi serwerami. - Rezerwowe trasowania wiadomości Prywatne trasowanie Wysyłaj wiadomości bezpośrednio, gdy adres IP jest chroniony i Twój lub docelowy serwer nie obsługuje prywatnego trasowania. Wysyłaj wiadomości bezpośrednio, gdy Twój lub docelowy serwer nie obsługuje prywatnego trasowania. @@ -1794,7 +1792,6 @@ Bez Tor lub VPN, Twój adres IP będzie widoczny do serwerów plików. Pliki Motyw profilu - Pokaż listę czatów w nowym oknie Kolory ciemnego trybu Jasny Otrzymano odpowiedź @@ -1981,7 +1978,6 @@ Zwiększ rozmiar czcionki. wiadomość Wiadomość - otwórz szukaj Zaznaczono %d wideo @@ -2002,7 +1998,6 @@ Odtwórz z listy czatów. Zarchiwizowane kontakty zadzwoń - połącz Stan połączenia i serwerów. Utwórz Nieprawidłowy link @@ -2183,7 +2178,6 @@ Czat zostanie usunięty dla wszystkich członków - nie można tego cofnąć! Warunki będą akceptowane w dniu: %s. Bezpieczeństwo połączenia - Warunki będą akceptowane dla operatorów włączonych po 30 dniach. Zmień kolejność Połączenie wymaga renegocjacji szyfrowania. przyjął %1$s @@ -2288,14 +2282,12 @@ Plik jest zablokowany przez operatora serwera:\n%1$s. Pliki Pliki i media są zabronione na tym czacie. - Filtr Odcisk palca w docelowym serwerze nie pasuje do certyfikatu: %1$s. Odcisk palca w adresie serwera nie pasuje do certyfikatu: %1$s. Odcisk palca w adresie serwera nie pasuje do certyfikatu: %1$s. Napraw Naprawić połączenie? Dla wszystkich moderatorów - Lepsza prywatność metadanych. Dla profilu czatu %s: Na przykład, jeśli kontakt otrzyma wiadomości za pośrednictwem serwera czatu SimpleX, aplikacja dostarczy je za pośrednictwem serwera Flux. Dla mnie @@ -2417,7 +2409,6 @@ odrzucono odrzucono Odrzucić członka? - Zdalne telefony komórkowe Usuń i skasuj wiadomości usunięty z grupy Usuń śledzenie linków @@ -2442,7 +2433,6 @@ Przejrzyj warunki sprawdzone przez administratorów Przejrzyj członków grupy - Przejrzyj później Przejrzyj członków Przejrzyj członków przed przyjęciem (pukanie). Zapisać ustawienia wstępu? @@ -2452,13 +2442,11 @@ Szukaj linków Szukaj wideo Szukaj wiadomości głosowych - Wybierz operatora sieci Wysłać prośbę o kontakt? Wyślij prywatne zgłoszenia Wyślij prośbę Wyślij prośbę bez wiadomości Wyślij swoją prywatną opinię do grup. - Wysłano do Twojego kontaktu po połączeniu. Serwer dodany do operatora %s. Operator serwera został zmieniony. Operatorzy serwera @@ -2484,7 +2472,6 @@ Dotknij Połącz aby rozpocząć czat Dotknij Połącz, aby wysłać prośbę Dotknij Połącz aby użyć bota - Dotknij Stwórz adres SimpleX w menu aby utworzyć go później. Dotknij Dołącz do grupy Przekroczono limit czasu połączenia TCP Port TCP dla wiadomości @@ -2492,7 +2479,6 @@ Aplikacja chroni Twoją prywatność, korzystając z różnych operatorów w każdej rozmowie. Połączenie osiągnęło limit niedostarczonych wiadomości, Twój kontakt może być offline. Link będzie krótki, a profil grupowy zostanie udostępniony poprzez link. - Raport zostanie dla Ciebie zarchiwizowany. Rola zostanie zmieniona na %s. Wszyscy uczestnicy czatu zostaną powiadomieni. Drugi predefiniowany operator w aplikacji! Nadawca NIE zostanie poinformowany. @@ -2500,7 +2486,6 @@ Tej akcji nie można cofnąć - wiadomości wysłane i otrzymane na tym czacie wcześniej niż wybrane zostaną usunięte. Ten link wymaga nowszej wersji aplikacji. Zaktualizuj aplikację lub poproś osobę kontaktową o przesłanie kompatybilnego łącza. Ta wiadomość została usunięta lub jeszcze nie otrzymana. - To ustawienie jest dla Twojego obecnego profilu. Czas zniknięcia jest ustawiony tylko dla nowych kontaktów. Aby zabezpieczyć się przed wymianą łącza, możesz porównać kody bezpieczeństwa kontaktu. Żeby odebrać @@ -2510,9 +2495,7 @@ Przeźroczystość Odblokować członków dla wszystkich? Niedostarczone wiadomości - Nieprzeczytane wzmianki Nieobsługiwane łącze połączenia - Aktualizacja Warunki aktualizacji Aktualizuj swój adres Upgrade @@ -2532,14 +2515,12 @@ Zobacz warunki Zobacz zaktualizowane warunki Wiadomości głosowe - Strona Internetowa Wiadomość powitalna Powitaj swoje kontakty Gdy włączony jest więcej niż jeden operator, żaden z nich nie ma metadanych pozwalających dowiedzieć się, kto się z kim komunikuje. Tak zaakceptowałeś tego członka Nie masz połączenia z serwerem używanym do odbierania wiadomości z tego połączenia (brak subskrypcji). - Możesz skonfigurować operatorów w ustawieniach sieci i serwerów. Serwery można skonfigurować w ustawieniach. Możesz skopiować i zmniejszyć rozmiar wiadomości, aby ją wysłać. Możesz wzmiankować do %1$s członków na wiadomość! diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/pt-rBR/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/pt-rBR/strings.xml index 7e807ff9b3..5b54d0c452 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/pt-rBR/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/pt-rBR/strings.xml @@ -1648,7 +1648,6 @@ Desfocar mídia Borrar para melhor privacidade. Confirmar exclusão do contato? - conectar Apagar sem notificar Destaque adicional 2 Confirmar configurações de rede @@ -1731,7 +1730,6 @@ Pular essa versão Baixar %s (%s) Download da atualização cancelado - Mostrar lista de chats em nova janela Tamanho da fonte Fundo do papel de parede Tonalidade do papel de parede @@ -1846,7 +1844,6 @@ Servidores desconhecidos Desprotegido Nunca - Modo de roteamento de mensagens Conceder permissões Alto falante Headphones @@ -1912,7 +1909,6 @@ Proteja seu endereço IP dos relays de mensagens escolhidos pelos seus contatos.\nAtive nas configurações de Rede e servidores. Iniciar o chat Configurações - abrir Manter conversa Apenas apagar conversa Outros servidores XFTP @@ -2019,7 +2015,6 @@ Seus contatos NÃO envie mensagens diretamente, mesmo que o seu servidor ou o servidor de destino não suporte roteamento privado. Enviar mensagens diretamente quando o seu servidor ou o servidor de destino não for compatível com roteamento privado. - Retorno de roteamento de mensagens Mostrar status da mensagem Migrar de outro dispositivo Status da mensagem: %s @@ -2170,7 +2165,6 @@ Condições de uso Erro ao adicionar servidor Chats de empresas - para melhoria da privacidade de metadados. Exclusão mais rápida de grupos. Erro ao criar lista de chat Erro ao carregar lista de chats @@ -2194,7 +2188,6 @@ Renegociação de criptografia em andamento. Apagar Clique no botão de informação perto do campo de endereço para permitir usar o microfone. - As condições serão aceitas para operadores habilitados após 30 dias. Por exemplo, se o seu contato receber mensagens por meio de um servidor SimpleX Chat, seu aplicativo as entregará por meio de um servidor Flux. A conexão não está pronta. Erros nas configurações de servidores. @@ -2284,7 +2277,6 @@ Proibir a denúncia de mensagens aos moderadores. Denunciar conteúdo: somente os moderadores do grupo poderão ver. Denunciar perfil de membro: somente moderadores do grupo poderão ver. - Dispositivos móveis remotos Remover membros? Denunciar outro: somente os moderadores do grupo poderão ver. Qual é a razão da denúncia? @@ -2308,7 +2300,6 @@ Endereço SimpleX ou link único? Som silenciado Alterne entre áudio e vídeo durante a chamada. - Selecione os operadores de rede que deseja utilizar. Revisar condições Endereços SimpleX e links únicos são seguros para compartilhar por meio de qualquer mensageiro. Operadores do servidor @@ -2317,7 +2308,6 @@ Denunciar spam: somente os moderadores do grupo poderão ver. Protocolo do servidor alterado. Compartilhe o endereço do SimpleX nas redes sociais. - Revisar depois Servidor O SimpleX Chat e o Flux fizeram um acordo para incluir servidores operados pelo Flux no aplicativo. conexão solicitada @@ -2330,13 +2320,10 @@ O segundo operador predefinido no aplicativo! Esta mensagem foi apagada ou ainda não foi recebida. Ver condições atualizadas - Toque em Criar endereço SimpleX no menu para criá-lo mais tarde. Usar porta TCP %1$s quando nenhuma porta for especificada. - A denúncia será arquivada para você. Para receber Esta ação não pode ser desfeita - as mensagens enviadas e recebidas nesta conversa antes do período selecionado serão apagadas. Para se proteger contra a substituição do seu link, você pode comparar os códigos de segurança com os dos seus contatos. - Menções não lidas Porta TCP para mensagens Usar porta web O aplicativo protege sua privacidade usando diferentes operadores em cada conversa. @@ -2349,12 +2336,9 @@ É possível ajustar os servidores através das configurações. Usar %s Usar servidores - Website Você pode mencionar até %1$s membros por mensagem! Final Você pode copiar e reduzir o tamanho da mensagem para enviá-la. - Atualização - Você pode configurar operadores em Configurações de rede & servidores. Usar para arquivos Você deixará de receber mensagens deste chat. O histórico do chat será preservado. Para realizar chamadas, permita o uso do microfone. Encerre a chamada atual e tente novamente. @@ -2395,13 +2379,11 @@ %1$d inscritos %1$s apoiou o SimpleX Chat. O selo expirou em %2$s. Você pode apoiar o SimpleX a partir da versão 7 do aplicativo. - Sobre Aceitar solicitação de contato Aceitar solicitação de contato aceito lista reconhecida ativo - Adicionar Adicionar colaboradores. Adicionar descrição Adicionar mensagem @@ -2483,7 +2465,6 @@ Nome completo do canal: O canal não possui relays ativos. Tente entrar novamente mais tarde. Link do canal - Membros do canal Nome do canal Preferências do canal perfil do canal atualizado @@ -2517,8 +2498,6 @@ conectado Conecte-se mais rápido! 🚀 conectando - Para se conectar usando o nome do canal, é necessário estar na versão mais recente do aplicativo. - Para se conectar usando o nome do contato, é necessário estar na versão mais recente do aplicativo. A conexão falhou Conectar-se a %s Contato @@ -2582,7 +2561,6 @@ Erro ao apagar conversa Erro ao apagar mensagem Erro ao marcar como lida - Erro ao abrir canal Erro ao abrir conversa Erro ao abrir grupo Erro ao recusar solicitação de contato @@ -2598,7 +2576,6 @@ Arquivos e mídias não são permitidos neste chat. Servidores de arquivos Servidores de arquivos: %s - Filtro A impressão digital no endereço do servidor de destino não corresponde ao certificado: %1$s. A impressão digital do endereço do servidor de encaminhamento não corresponde à do certificado: %1$s. A impressão digital do endereço do servidor não corresponde à do certificado: %1$s. @@ -2696,7 +2673,6 @@ Abrir link limpo Abrir link externo? Abrir link completo - Abrir novo canal Abrir nova conversa Abrir novo grupo Abrir para aceitar @@ -2708,7 +2684,6 @@ Proprietários e colaboradores Autonomia: você pode executar seus próprios relays. aguardando revisão - Atualize o aplicativo. Aguarde os moderadores do grupo analisarem seu pedido para participar. Endereço do relay predefinido Nome do relay predefinido @@ -2780,7 +2755,6 @@ Enviar solicitação Enviar solicitação sem mensagem Envie o link por qualquer aplicativo de mensagens - é seguro. Peça para colar no SimpleX. - Será enviado ao seu contato após a conexão. O servidor %1$s não suporta resolução de nomes. Configure os servidores ou use um link de conexão. O servidor requer autorização para se conectar ao relay; verifique a senha. Aviso do servidor @@ -2805,7 +2779,6 @@ Assinar mensagens SimpleX Link do canal SimpleX - Nome SimpleX Erro no nome SimpleX Nome SimpleX não verificado Nomes públicos SimpleX (BETA) @@ -2843,8 +2816,6 @@ Vídeos Seu dispositivo não tem suporte para gravação de áudio Link de conexão não suportado - Nome de canal não suportado - Nome de contato não suportado Nome não confirmado Seu endereço público O nome SimpleX %1$s está registrado, mas não está associado ao perfil. Se você for o proprietário, adicione-o ao perfil do endereço ou canal. @@ -2883,7 +2854,6 @@ Você nasceu sem uma conta. Sua rede O aplicativo removeu esta mensagem após %1$d tentativas de recebê-la. - Esta configuração se aplica ao seu perfil atual perfil do canal atualizado você aceitou este membro Código da página da web diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/ro/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/ro/strings.xml index f2437af22b..3af5fbee19 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/ro/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/ro/strings.xml @@ -250,7 +250,6 @@ Răspuns trimis Partajează media… Partajează mesaj… - Afișează lista de conversații într-o fereastră nouă Afișează consola în fereastră nouă Configurează parola bazei de date Setează parola bazei de date @@ -677,7 +676,6 @@ Servere XFTP configurate Baza de date este criptată folosind o parolă aleatorie. Trebuie schimbată înainte de exportare. apel - conectare Contact șters! Conversație ștearsă! Actualizarea aplicației este descărcată @@ -914,7 +912,6 @@ Nicio conversație necitită Nicio conversație în lista %s. Nimic selectat - deschis Ajutor Doar contactul tău poate trimite mesaje care dispar. Se importă arhiva @@ -1035,7 +1032,6 @@ Nicio conversație filtrată Server nou Asigurați -vă că adresele Serverului WebRTC ICE sunt în format corect, separate pe linii și nu sunt duplicate. - Rutarea mesajelor Editează imaginea Deschide setările Acordare în setări @@ -1217,7 +1213,6 @@ Interfață de utilizator maghiară și turcă Redirecționează și salvează mesajele Activează Flux în setările Rețea și servere pentru o mai bună confidențialitate a metadatelor. - pentru o mai bună confidențialitate a metadatelor. Redirecționați până la 20 de mesaje simultan. Nu rata mesajele importante. Organizează conversațiile în liste @@ -1587,7 +1582,6 @@ Erori în configurarea serverelor. Adresa serverului de redirecționare este incompatibilă cu setările rețelei: %1$s. Nu există servere pentru a trimite fișiere. - Mod de rutare a mesajelor Niciodată Întoarce camera Link nevalid @@ -1751,7 +1745,6 @@ Raport Adresa de primire va fi schimbată la un alt server. Schimbarea adresei se va finaliza după ce expeditorul se conectează online. Salvezi setările de acces? - Revizuiți mai târziu Trimiterea confirmărilor este dezactivată pentru %d grupuri recenzie Operatorul serverului s-a schimbat. @@ -1803,8 +1796,6 @@ Trimite confirmări de livrare la Parola de autodistrugere a fost schimbată! Înregistrare actualizată la - Selectează operatorii de rețea de utilizat. - Telefoane mobile la distanță Trimite confirmări de citire Setați 1 zi Parolă de autodistrugere @@ -1965,8 +1956,6 @@ Atinge pentru a lipi linkul Textul pe care l-ai lipit nu este un link SimpleX. Stabil - Puteți configura operatorii în setările Rețea și servere. - Actualizare apel video (necriptat e2e) ID-ul următorului mesaj este incorect (mai mic sau egal cu precedentul).\nSe poate întâmpla din cauza unei erori sau când conexiunea este compromisă. Fără Tor sau VPN, adresa ta IP va fi vizibilă pentru serverele de fișiere. @@ -2016,7 +2005,6 @@ Rolul va fi schimbat în %s. Toți participanții la chat vor fi notificați. Rolul va fi schimbat în %s. Toți membrii grupului vor fi notificați. Folosește %s - Site web %s Servere Actualizați setările de rețea? Atingeți pentru a activa profilul. @@ -2155,8 +2143,6 @@ Blocarea SimpleX nu este activă! Autentificare sistem Baza de date nu funcționează corect. Atingeți pentru a afla mai multe. - Raportul va fi arhivat. - Atingeți Creează o adresă SimpleX în meniu pentru a o crea mai târziu. Acest text este disponibil în setări Ești invitat în grup Se așteaptă imaginea @@ -2164,7 +2150,6 @@ Se așteaptă videoclipul Eroare temporară de fișier Elimină din favorite - Mențiuni necitite Conexiunea pe care ați acceptat-o va fi anulată! Contactul cu care ați partajat acest link NU se va putea conecta! vrea să se conecteze cu tine! @@ -2286,7 +2271,6 @@ Ai partajat o cale de fișier nevalidă. Raportează problema dezvoltatorilor aplicației. Deschide în aplicația mobilă, apoi atinge Conectare în aplicație.]]> Actualizează adresa - Condițiile vor fi acceptate pentru operatorii activați după 30 de zile. Apasă pe butonul de informații de lângă bara de adrese pentru a permite accesul la microfon. Colţ Puteți salva arhiva exportată. @@ -2432,11 +2416,9 @@ Te poți conecta la conversație și poți trimite mesaje imediat ce apeși pe Conectare. Rol nou în grup: Moderator Descriere scurtă: - Trimis contactului tău după conectare. Actualizezi la o adresă permanentă? Mesaj de bun venit Solicitări de contact de la grupuri - Această setare este pentru profilul tău actual Partajează adresa veche Partajează linkul vechi Se încarcă profilul… @@ -2516,7 +2498,6 @@ %1$d abonat %1$d abonați %1$s a susținut SimpleX Chat. Insigna a expirat pe %2$s. - Despre acceptată Aplicația necesita actualizare Eticheta nu poate fi verificată diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/ru/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/ru/strings.xml index 44f3d3858e..9a4e550dbe 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/ru/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/ru/strings.xml @@ -1328,7 +1328,6 @@ Нет истории Отправка отчётов о доставке включена для %d контактов Отправка отчётов о доставке будет включена для всех контактов во всех видимых профилях чата. - Установка для Вашего активного профиля Установки для Вашего активного профиля Отправка отчётов о доставке выключена для %d контактов Шифрование работает, и новое соглашение не требуется. Это может привести к ошибкам соединения! @@ -1853,7 +1852,6 @@ информация сервера об очереди: %1$s \n \nпоследнее полученное сообщение: %2$s - Показать список чатов в новом окне Приложение будет запрашивать подтверждение загрузки с неизвестных серверов (за исключением .onion адресов или когда SOCKS-прокси включен). Незащищённый Без Tor или VPN, Ваш IP-адрес будет доступен серверам файлов. @@ -1895,8 +1893,6 @@ Неизвестные серверы Нет Показать статус сообщения - Прямая доставка сообщений - Режим доставки сообщений Конфиденциальная доставка сообщений Цвета чата Тема чата @@ -1934,7 +1930,6 @@ Не удаётся позвонить контакту Не удаётся написать члену группы Проверять обновления - соединиться Адрес сервера назначения %1$s несовместим с настройками пересылающего сервера %2$s. Ошибка подключения к пересылающему серверу %1$s. Попробуйте позже. Пересылающий сервер %1$s не смог подключиться к серверу назначения %2$s. Попробуйте позже. @@ -2045,7 +2040,6 @@ Член группы неактивен Прямого соединения пока нет, сообщение переслано или будет переслано админом. Ничего не выбрано - открыть поиск Выбрано %d Настройки @@ -2197,7 +2191,6 @@ Нет серверов для приёма файлов. Нет серверов для отправки файлов. Недоставленные сообщения - Нажмите Создать адрес SimpleX в меню, чтобы создать его позже. Адрес или одноразовая ссылка? Безопасность соединения Операторы серверов @@ -2207,7 +2200,6 @@ %s.]]> Условия будут автоматически приняты для включенных операторов: %s. Условия приняты: %s - Вебсайт %s.]]> %s.]]> %s, примите условия использования.]]> @@ -2223,7 +2215,6 @@ Децентрализация сети Второй оператор серверов в приложении! Включите Flux в настройках Сеть и серверы для лучшей конфиденциальности метаданных. - для лучшей конфиденциальности метаданных. Улучшенная навигация в разговоре Посмотреть измененные условия Устройства Xiaomi: пожалуйста, включите опцию Autostart в системных настройках для работы нотификаций.]]> @@ -2253,12 +2244,7 @@ Нотификации и батарейка Как это улучшает конфиденциальность Операторы серверов - Выберите операторов сети. - Вы можете настроить операторов в настройках Сети и серверов. Продолжить - Посмотреть позже - Обновить - Связанные мобильные устройства Покинуть разговор? Вы прекратите получать сообщения в этом разговоре. История будет сохранена. Добавить друзей @@ -2313,7 +2299,6 @@ Приложение улучшает конфиденциальность, используя разных операторов в каждом разговоре. Когда больше чем один оператор включен, ни один из них не видит метаданные, чтобы определить, кто соединен с кем. Ошибка сохранения серверов - Условия будут приняты для включенных операторов через 30 дней. Ошибка приёма условий Соединение достигло предела недоставленных сообщений. Возможно, Ваш контакт не в сети. Чтобы защитить Вашу ссылку от замены, Вы можете сравнить код безопасности. @@ -2368,7 +2353,6 @@ Конфиденциальные названия медиафайлов. Спам Сообщения о нарушениях - Непрочитанные упоминания Да Упоминайте членов группы 👋 Улучшенная конфиденциальность и безопасность @@ -2380,7 +2364,6 @@ Установите срок хранения сообщений в чатах. Вы можете упомянуть до %1$s пользователей в одном сообщении! Причина сообщения? - Эта жалоба будет архивирована для вас. Разрешить отправлять сообщения о нарушениях модераторам. Содержание нарушает условия использования Ошибка чтения пароля базы данных @@ -2549,7 +2532,6 @@ Отправить запрос Отправить запрос без сообщения Отправляйте Ваши конфиденциальные предложения группе. - Отправляется Вашему контакту после соединения. Обновить ссылку группы? Обновить Обновить адрес? @@ -2617,7 +2599,6 @@ Удалить вместе с сообщениями Все сообщения Файлы - Фильтр Изображения Ссылки Поиск файлов @@ -2636,7 +2617,6 @@ Канал Полное имя канала: Ссылка канала - Участники канала Имя канала профиль канала обновлён Канал будет удалён для всех подписчиков - это нельзя отменить! @@ -2656,7 +2636,6 @@ Введите имя релея… Ошибка добавления релея Ошибка при создании канала - Ошибка при открытии канала ошибка: %s Ошибка при сохранении профиля канала Неверный адрес релея! @@ -2715,7 +2694,6 @@ неактивен Подпись ссылки проверена. Открыть канал - Открыть новый канал Владельцы Владелец релей @@ -2878,7 +2856,6 @@ Нижнее меню Картинка ссылки будет загружена через SOCKS-прокси. DNS-запрос может быть локальным через Ваш резолвер. Верхнее меню - Добавить Добавить релей Добавить релеи Отменить и удалить канал @@ -2887,7 +2864,6 @@ %1$d владельцев %1$d владельцев и участников канала %1$s поддерживал SimpleX Chat. Срок действия бейджа истек %2$s. - О приложении Продвинутые настройки Приложение уже запущено Необходимо обновление приложения @@ -2909,8 +2885,6 @@ Веб-страница канала Выбрано %d релеев Данные чата - Для подключения по имени канала требуется более новая версия приложения. - Для подключения по имени контакта требуется более новая версия приложения. Контакт соавтор подписчик @@ -2949,9 +2923,6 @@ Если Вы выберете Закрыть, сообщения не будут доставляться.\nВы можете изменить это позже в настройках Интерфейса. Адрес будет показан подписчикам и разрешит загрузку предпросмотра. Вступить в канал %s - Неподдерживаемое имя канала - Неподдерживаемое имя контакта - Пожалуйста, обновите приложение. Ошибка SimpleX имени Ни один из Ваших серверов не настроен для разрешения SimpleX имён. Настройте серверы или используйте ссылку для соединения. Сервер %1$s не поддерживает разрешение имён. Настройте серверы или используйте ссылку для соединения. @@ -2980,7 +2951,6 @@ Проверить имя Проверять SimpleX имена SimpleX имя не проверено - SimpleX имя Ваше SimpleX имя Установить SimpleX имя SimpleX имя %1$s зарегистрировано без ссылки канала. Добавьте ссылку канала к имени на странице регистрации. diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/sk/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/sk/strings.xml index 74db414936..dd8155f512 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/sk/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/sk/strings.xml @@ -72,7 +72,6 @@ Prerušiť Prerušiť zmenu adresy Prerušiť zmenu adresy? - O aplikácii O operátoroch O SimpleX O adrese SimpleX @@ -82,7 +81,6 @@ Pristupovať k serverom cez SOCKS proxy na porte %d? Pred povolením tejto možnosti musí byť spustená proxy. aktívne aktívne spojenia - Pridať Pridať kontakt Pridať prispievateľov. Pridať opis @@ -367,7 +365,6 @@ Kanál nemá žiadne aktívne relé. Prosím, skúste sa pripojiť neskôr. Odkaz kanálu Odkaz kanálu - Členovia kanálu Názov kanálu Vlastnosti kanálu Kanály @@ -753,7 +750,6 @@ Tlačidlo zavrieť Porovnajte bezpečnostné kódy s vašimi kontaktmi. %s.]]> - Podmienky budú prijaté pre povolených operátorov po 30 dňoch. %s.]]> %s.]]> Podmienky budú prijaté dňa: %s. @@ -1124,7 +1120,6 @@ Súbory a médiá Status súboru: %s Súbor bude vymazaný zo serverov. - Filter Opraviť Opraviť Opraviť pripojenie @@ -1303,7 +1298,6 @@ Chyba pri načítavaní XFTP serverov Chyba pri označovaní ako prečítané Chyba pri otváraní prehliadača - Chyba pri otváraní kanálu Chyba pri otváraní chatu Chyba pri otváraní skupiny Chyba pri odmietaní žiadosti o kontakt @@ -1388,7 +1382,6 @@ Jednorazový odkaz Naraz sa dá poslať iba 10 obrázkov Naraz sa dá poslať iba 10 videí - otvoriť Otvoriť Otvoriť Otvoriť nastavenia aplikácie @@ -1400,7 +1393,6 @@ Otvoriť priečinok databázy Otvoriť externý odkaz? Otvoriť celý odkaz - Otvoriť nový kanál Otvoriť nastavenia serveru Otvoriť nastavenia Otvorte SimpleX Chat na prijatie hovoru diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/tr/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/tr/strings.xml index bacc84b0f7..7b05806ea6 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/tr/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/tr/strings.xml @@ -1774,12 +1774,10 @@ Bilinmeyen sunucular Her zaman gizli yönlendirmeyi kullan. Gizli yönlendirmeyi KULLANMA. - Mesaj yönlendirme modu Hiçbir zaman Bilinmeyen sunucularla gizli yönlendirme kullan. Sürüm düşürmeye izin ver Hayır - Mesaj yönlendirme yedeklemesi Her zaman Sizin veya hedef sunucunun özel yönlendirmeyi desteklememesi durumunda bile mesajları doğrudan GÖNDERMEYİN. IP adresi korumalı olduğunda ve sizin veya hedef sunucunun özel yönlendirmeyi desteklemediği durumlarda mesajları doğrudan gönderin. @@ -1819,7 +1817,6 @@ Resmi kaldır Tekrarla Rengi sıfırla - Sohbet listesini yeni pencerede göster Bilinmeyen sunucular! Tor veya VPN olmadan, IP adresiniz bu XFTP yönlendiricileri tarafından görülebilir: \n%1$s. @@ -1871,11 +1868,9 @@ Mesajları ilet.. %1$s mesaj iletiliyor %1$s Mesaj kayıt ediliyor. - bağlan Ara mesaj Sadece sohbeti sil - açık ara Profil değiştirme sırasında hata oluştu. Sohbet profili seç @@ -2167,9 +2162,7 @@ Sohbet silinsin mi? Bağlantı hazır değil. Kullanım şartları - daha iyi üstveri gizliliği için. Sunucuları kaydederken hata oluştu - Şartlar 30 gün sonra etkin operatörler için kabul edilecektir. Raporu sil Listeyi değiştir %s için de geçerli olacaktır.]]> @@ -2315,7 +2308,6 @@ Güncellenen koşullar Sadece siz ve moderatörler görebilir. Sadece gönderen ve moderatörler görebilir. - Daha sonra oluşturmak için menüden SimpleX adresi oluştur seçeneğine dokunun. Operatör Dosyalar için kullanın Sohbetlerde mesajların geçerlilik süresini ayarlayın. @@ -2339,7 +2331,6 @@ İstenmeyen Uygulama, her konuşmada farklı operatörler kullanarak gizliliğinizi korur. Rol %s olarak değiştirilecek. Sohbetteki herkes bilgilendirilecek. - Okunmamış bahsetmeler Koşulları gözden geçirin Sohbet profiliniz sohbet üyelerine gönderilecektir. Sunucularınız @@ -2347,7 +2338,6 @@ Bu işlem geri alınamaz - seçilen tarihten önce bu sohbette gönderilen ve alınan mesajlar silinecektir. Bağlantının kimlerle paylaşıldığını hatırlamak için bağlantı adını ayarlayabilirsiniz. SimpleX adresini sosyal medyada paylaşın. - Web sitesi Desteklenmeyen bağlantı bağlantısı Rapor SimpleX adresi ve tek kullanımlık bağlantılar herhangi bir mesajlaşma uygulaması üzerinden güvenle paylaşılabilir. @@ -2355,9 +2345,6 @@ Giriş ayarlarını kaydetmek ister misiniz? Operatörler şunları taahhüt eder:\n- Bağımsız olun\n- Meta veri kullanımını en aza indirin\n- Doğrulanmış açık kaynak kodunu çalıştırın Birden fazla operatör etkinleştirildiğinde, hiçbirinin kimin kiminle iletişim kurduğunu öğrenmek için meta verisi yoktur. - Kullanılacak ağ operatörlerini seçin. - Güncelleme - Ağ ve sunucular ayarlarında operatörleri yapılandırabilirsiniz. Bağlantıyı aç Anahtar deposundaki parola okunamıyor, lütfen elle girin. Bu, uygulamayla uyumsuz bir sistem güncellemesinden sonra meydana gelmiş olabilir. Eğer durum bu değilse, lütfen geliştiricilerle iletişime geçin. Bu üyeyi kabul ettiniz. @@ -2368,7 +2355,6 @@ Uygulamadaki ikinci önceden ayarlanmış operatör! Adresi güncelle Gizlilik politikası ve kullanım koşulları. - Daha sonra incele Sunucu operatörleri SimpleX Chat ve Flux, Flux tarafından işletilen sunucuların uygulamaya dahil edilmesi konusunda bir anlaşma yaptı. Sohbet listesinden bağlantıları aç @@ -2409,7 +2395,6 @@ Moderatörlere gönderilen rapor Raporlarınızı yöneticilerle sohbet bölümünde görüntüleyebilirsiniz. Ayarlar aracılığıyla sunucuları yapılandırabilirsiniz. - Uzaktan kumandalı cep telefonları kapalı İnceleme üyeleri Kabul etmeden önce üyeleri inceleyin (kapıyı çalın). @@ -2428,7 +2413,6 @@ Bağlantı, teslim edilemeyen mesajların sınırına ulaştı, bağlantınız çevrimdışı olabilir. Bu bağlantı için daha yeni bir uygulama sürümü gereklidir. Lütfen uygulamayı güncelleyin veya irtibat kişinizden uyumlu bir bağlantı göndermesini isteyin. Rapor nedeni? - Rapor sizin için arşivlenecektir. Okunmamış sohbet yok Rapor: %s Raporlar @@ -2480,7 +2464,6 @@ Talep gönder Mesaj olmadan istek gönder Özel geri bildirimlerinizi gruplara gönderin. - Bağlantı kurulduktan sonra kişinize gönderilir. Grup linki güncellensin mi? Güncelle Adres güncellensin mi? @@ -2533,11 +2516,9 @@ %1$d aboneler %1$s SimpleX Chat’i destekledi. Rozet %2$s tarihinde geçerliliğini yitirdi. 4 yeni arayüz dili - Hakkında kabul edildi onaylanan kadro aktif - Ekle Röle ekle Röleler ekle Mesaj iletimini geri yüklemek için röle ekleyin. @@ -2579,7 +2560,6 @@ Kanalda aktif röle bulunmuyor. Lütfen daha sonra katılmayı deneyin. Kanal bağlantısı Kanal bağlantısı - Kanal üyeleri Kanal adı Kanal tercihleri Kanal profili abonelerin cihazlarında ve sohbet rölelerinde saklanır. @@ -2609,8 +2589,6 @@ Bağlan bağlı bağlanılıyor - Kanal adı üzerinden bağlanmak için daha yeni bir uygulama sürümü gerekir. - Kişi adı ile bağlanmak için daha yeni bir uygulama sürümü gerekir. Bağlantı başarısız Bağlantı veya kare kod ile bağlanın İletişim @@ -2658,7 +2636,6 @@ Kanal oluşturulurken hata oluştu Mesaj silinirken hata oluştu Okundu olarak işaretlenirken hata - Kanal açılırken hata oluştu hata: %s Kanal profili kaydedilirken hata oluştu İsim kaydedilirken hata oluştu @@ -2668,7 +2645,6 @@ başarısız oldu Dosyalar Bu sohbette dosya ve medya yasaktır. - Filtre Hedef sunucu adresindeki parmak izi sertifika ile eşleşmiyor: %1$s. Yönlendirme sunucusu adresindeki parmak izi sertifika ile eşleşmiyor: %1$s. Sunucu adresindeki parmak izi sertifika ile eşleşmiyor: %1$s. @@ -2741,14 +2717,12 @@ Temiz bağlantıyı aç Harici bağlantı açılsın mı? Tam bağlantıyı aç - Yeni kanal açın - bağlantı önizlemelerini göndermeyi tercih edin.\n- etkinleştirilmişse SOCKS proxy kullanın.\n- köprü kimlik avını önleyin.\n- bağlantı izlemeyi kaldırın. Ya da kare kodu şahsen veya görüntülü arama yoluyla gösterin. Ya da bu kare kodu kullanın - yazdırın veya çevrimiçi gösterin. Sahip Sahipler ve katkıda bulunanlar Sahiplik: kendi aktarıcılarınızı çalıştırabilirsiniz. - Lütfen uygulamayı güncelleyin. Önceden ayarlanmış aktarıcı adresi Önceden ayarlanmış aktarıcı adı Gizlilik: sahipler ve aboneler için. @@ -2813,7 +2787,6 @@ ⚠️ İmza doğrulama başarısız oldu: %s. SimpleX SimpleX - %d okunmamış - SimpleX adı SimpleX ad hatası SimpleX adı doğrulanmadı SimpleX Chat kitlesel fonlamasına yatırım yapan %s\'ler. @@ -2858,15 +2831,12 @@ Bu bir sohbet aktarım adresidir, bağlanmak için kullanılamaz. Bu son aktif aktarıcıdır. Kaldırılması abonelere mesaj iletimini engelleyecektir. %1$s kanalı için bağlantınız!]]> - Bu ayar mevcut profiliniz içindir Bu SimpleX adı kayıtlı değil. Lütfen ismi kontrol edin. SimpleX Ağını kalıcı kılmak için. Üst çubuk İsimleri çözümlemek için Herkes için abone engeli kaldırılsın mı? Onaylanmamış isim - Desteklenmeyen kanal adı - Desteklenmeyen kişi adı Doğrulanmamış rozet güncellenen kanal profili Adresinizi güncelleyin diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/uk/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/uk/strings.xml index 457fd4abe1..78a0b532df 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/uk/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/uk/strings.xml @@ -1710,7 +1710,6 @@ Джерело повідомлення залишається приватним. Завжди Завжди використовуйте приватну маршрутизацію. - Режим маршрутизації повідомлень НЕ використовуйте приватну маршрутизацію. Ні НЕ надсилайте повідомлення напряму, навіть якщо ваш сервер або сервер призначення не підтримує приватну маршрутизацію. @@ -1738,7 +1737,6 @@ Учасники можуть надсилати посилання SimpleX. Звуки вхідного дзвінка Світлий режим - Запасний варіант маршрутизації повідомлень Маршрутизація приватних повідомлень переслано Інше @@ -1791,7 +1789,6 @@ Надсилайте повідомлення напряму, якщо ваш сервер або сервер призначення не підтримує приватну маршрутизацію. Встановлення теми за замовчуванням Надіслано відповідь - Показати список чату в новому вікні Використовуйте приватну маршрутизацію з невідомими серверами. Використовуйте приватну маршрутизацію з невідомими серверами, якщо IP-адреса не захищена. Фон шпалер @@ -1876,7 +1873,6 @@ Новий досвід чату 🎉 Адреса сервера Підтвердити видалення контакту? - підключитися Сервер переадресації %1$s не зміг з\'єднатися з цільовим сервером %2$s. Будь ласка, спробуйте пізніше. Повідомлення може бути доставлено пізніше, якщо учасник стане активним. Нічого не вибрано @@ -1991,7 +1987,6 @@ повідомлення дзвінок Зберегти розмову - відкрити пошук Ви все ще можете переглядати розмову з %1$s у списку чатів. Контакт видалено! @@ -2130,17 +2125,12 @@ Або поділитися приватно Оператори серверів Мережеві оператори - Умови будуть прийняті для ввімкнених операторів через 30 днів. Наприклад, якщо ваш контакт отримує повідомлення через сервер SimpleX Chat, ваш додаток доставлятиме їх через сервер Flux. - Виберіть мережевих операторів для використання. Ви можете налаштувати сервери за допомогою налаштувань. - Перегляньте пізніше - Оновлення Прийняті умови Умови будуть автоматично прийняті для увімкнених операторів: %s. Оператор мережі %s сервери - Вебсайт Ваші сервери Використовувати %s Використовувати сервери @@ -2187,7 +2177,6 @@ Продовжити Створити одноразове посилання Помилка оновлення сервера - для кращої конфіденційності метаданих. Децентралізація мережі Оператор Немає серверів для отримання повідомлень. @@ -2201,12 +2190,9 @@ Поділіться адресою SimpleX у соціальних мережах. SimpleX-адреси та одноразові посилання можна безпечно ділитися через будь-який месенджер. З\'єднання досягло ліміту недоставлених повідомлень, ваш контакт може бути офлайн. - Натисніть Створити адресу SimpleX у меню, щоб створити її пізніше. Додаток захищає вашу конфіденційність, використовуючи різних операторів у кожній розмові. Використовувати для повідомлень - Ви можете налаштувати операторів у налаштуваннях Мережі та серверів. Або імпортуйте архівний файл - Віддалені мобільні Пристрої Xiaomi: будь ласка, увімкніть Автозапуск у налаштуваннях системи, щоб сповіщення працювали.]]> Повідомлення занадто велике! Будь ласка, зменшіть розмір повідомлення або видаліть медіа та надішліть знову. @@ -2293,7 +2279,6 @@ Тільки відправник і модератори бачать це Повідомити Повідомити про порушення: тільки модератори групи побачать це. - Повідомлення буде архівоване для вас. Інша причина архівование повідомлення Архів @@ -2335,7 +2320,6 @@ Використовувати TCP-порт %1$s, якщо порт не вказано. Використовувати веб-порт Вимкнути звук - Непрочитані згадки Ви можете згадувати до %1$s учасників у кожному повідомленні! Усі звіти будуть архівовані для вас. Архівувати всі звіти? @@ -2485,7 +2469,6 @@ Надіслати запит Надіслати запит без повідомлення Надсилайте свої приватні відгуки до груп. - Відправлено вашому контакту після з\'єднання. Налаштуйте біографію профілю та вітальне повідомлення. Поділіться старою адресою Поділіться старим посиланням @@ -2550,11 +2533,9 @@ %1$d підписник %1$d підписники %1$s підтримував SimpleX Chat. Завершення дії значка %2$s. - Про підтверджено затверджений список активний - Додати Додати перемикач Додати перемикачі Додайте перемикачі для відновлення доставки повідомлень. @@ -2592,7 +2573,6 @@ Канал не має активних перемикачів. Будь ласка, спробуйте підключитися пізніше. Посилання на канал Посилання на канал - Учасники каналу Імʼя каналу Налаштування каналів Профіль каналу зберігається на пристроях підписників та на ретрансляторах чату. @@ -2622,8 +2602,6 @@ Підключитися підключено підключення - Для підключення за назвою каналу потрібна новіша версія додатка. - Для підключення за іменем контакту потрібна новіша версія додатка. Підключення не вдалося Підключитися через посилання або QR код Контакт @@ -2648,7 +2626,6 @@ Введіть URL веб-сторінки Помилка Помилка видалення повідомлення - Помилка відкриття каналу помилка: %s Помилка збереження профілю каналу Видалити реле @@ -2674,7 +2651,6 @@ помилка помилка Файли - Фільтр Відбиток в адресі цільового сервера не збігається із сертифікатом: %1$s. Щоб будь-хто міг з вами зв’язатися З історії diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/vi/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/vi/strings.xml index aac2109d11..4b8ec8c4b7 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/vi/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/vi/strings.xml @@ -537,7 +537,6 @@ đã bị tắt Tin nhắn tự xóa bị cấm. gọi - kết nối Liên hệ sẽ bị xóa - điều này không thể hoàn tác! Cuộc trò chuyện đã bị xóa! Làm mờ đa phương tiện @@ -1007,7 +1006,6 @@ Làm cho một tin nhắn biến mất Tin nhắn động! Giữ lại lời mời chưa sử dụng? - Dự phòng định tuyến tin nhắn Mời bạn bè Đánh dấu đã xác thực Điều này có thể xảy ra khi:\n1. Tin nhắn hết hạn sau 2 ngày trên máy gửi hoặc sau 30 ngày trên máy chủ.\n2. Quá trình giải mã tin nhắn thất bại do bạn hoặc liên hệ của bạn sử dụng bản sao lưu cơ sở dữ liệu cũ.\n3. Kết nối bị xâm phạm. @@ -1052,7 +1050,6 @@ Tin nhắn và tệp Việc xóa tin nhắn mà không thể phục hồi là bị cấm. Tham gia vào các cuộc trò chuyện nhóm - Chế độ định tuyến tin nhắn Hãy trò chuyện trên SimpleX Chat in nghiêng Nó ảnh hưởng đến pin như thế nào @@ -1235,7 +1232,6 @@ Đang mở cơ sở dữ liệu… Hoặc hiển thị mã này Chỉ liên hệ của bạn mới có thể thực hiện cuộc gọi. - mở - tùy chọn thông báo khi xóa liên hệ.\n- tên hồ sơ với dấu cách.\n- và hơn thế nữa! Mở cài đặt Hoặc chia sẻ đường dẫn tệp này một cách an toàn. @@ -1387,7 +1383,6 @@ Lỗi trong cấu hình máy chủ. Bảo mật kết nối Tạo đường dẫn dùng một lần - Các điều kiện sẽ được chấp nhận với các nhà cung cấp được cho phép sau 30 ngày. Tiếp tục Không thể tải văn bản về các điều kiện hiện tại, bạn có thể xem xét các điều kiện thông qua đường dẫn này: Các điều kiện sử dụng @@ -1421,7 +1416,6 @@ Mời để trò chuyện Rời cuộc trò chuyện Cho định tuyến riêng tư - để bảo mật siêu dữ liệu tốt hơn. Đã cải thiện điều hướng trò chuyện Xóa cuộc trò chuyện Cho mạng xã hội @@ -1532,7 +1526,6 @@ Làm mới Đã giảm mức sử dụng pin Từ chối - Các thiết bị di động từ xa Xóa Xóa Xóa thành viên @@ -1617,7 +1610,6 @@ Gửi tin nhắn trực tiếp để kết nối Đang lưu %1$s tin nhắn (quét hoặc dán từ bảng nháp) - Chọn các bên vận hành mạng lưới để sử dụng. Gửi tin nhắn trực tiếp Lưu lời chào? gửi thất bại @@ -1628,7 +1620,6 @@ Lưu danh sách Thử lại Lưu và thông báo tới liên hệ - Xem xét lại sau mã bảo mật đã thay đổi Lưu hồ sơ nhóm Lưu và kết nối lại @@ -1750,7 +1741,6 @@ Hiển thị bảng điều khiển trong cửa sổ mới Lỗi tạo báo cáo Chia sẻ tin nhắn… - Hiển thị danh sách trò chuyện trong cửa sổ mới Chỉ hiển thị liên hệ Chia sẻ đường dẫn dùng 1 lần này Chia sẻ với các liên hệ @@ -1902,7 +1892,6 @@ Hệ thống Xin gửi lời cảm ơn tới các người dùng đã góp công qua Weblate! Nhấn để Kết nối - Nhấn Tạo địa chỉ SimpleX ở menu để tạo sau. Nhấn để tham gia một cách ẩn danh Hệ thống Chuyển đổi âm thanh và video trong lúc gọi. @@ -1977,7 +1966,6 @@ Bản lưu trữ cơ sở dữ liệu đã được tải lên sẽ bị xóa vĩnh viễn khỏi các máy chủ. Việc này không thể được hoàn tác - hồ sơ, các liên hệ, tin nhắn và tệp của bạn sẽ biến mất mà không thể khôi phục. Những máy chủ cho các kết nối mới của hồ sơ trò chuyện hiện tại của bạn - Báo cáo sẽ được lưu trữ cho bạn. Tin nhắn này đã bị xóa hoặc vẫn chưa được nhận. Mã QR này không phải là một đường dẫn! Đường dẫn này không phải là một đường dẫn kết nối hợp lệ! @@ -2067,7 +2055,6 @@ Nâng cấp ứng dụng một cách tự động Đã tải lên Cập nhật - Cập nhật Mở khóa Xác minh bảo mật kết nối Sử dụng cho các tệp @@ -2131,7 +2118,6 @@ qua đường dẫn địa chỉ liên lạc Video Chúng tôi không lưu bất kỳ liên hệ hay tin nhắn nào của bạn (một khi đã được gửi) trên các máy chủ. - Website Xin chào %1$s! Khi có sẵn Các tin nhắn thoại bị cấm! @@ -2204,7 +2190,6 @@ Bạn đã kết nối với %1$s rồi. Bạn cho phép Bạn không được kết nối với các máy chủ này. Định tuyến riêng tư được sử dụng để gửi tin nhắn tới chúng. - Bạn có thể định cấu hình các bên vận hành trong cài đặt Mạng & máy chủ. Bạn đang kết nối thông qua đường dẫn dùng một lần này! Bạn có thể thử một lần nữa. Bạn được mời vào nhóm. Tham gia để kết nối với các thành viên nhóm. @@ -2310,7 +2295,6 @@ Sử dụng cổng web Bạn có thể nhắc đến tối đa là %1$s thành viên trong một tin nhắn! Tắt thông báo tất cả - Những lời nhắc chưa đọc Các thành viên có thể báo cáo tin nhắn tới các kiểm duyệt viên. Tất cả các báo cáo sẽ được lưu trữ cho bạn. Lưu trữ tất cả báo cáo? @@ -2442,8 +2426,6 @@ đã kết nối Kết nối nhanh hơn 🚀 đang kết nối - Kết nối bằng tên kênh yêu cầu phiên bản ứng dụng mới hơn - Kết nối bằng tên liên hệ yêu cầu phiên bản ứng dụng mới hơn. Kết nối thất bại Kết nối bằng đường dẫn hoặc mã QR Liên hệ @@ -2465,7 +2447,6 @@ Lỗi tạo kênh Lỗi khi xoá tin nhắn Lỗi khi đánh dấu \"đã xem\" - Lỗi mở kênh Lỗi khi mở đoạn chat Lỗi khi mở nhóm Lỗi khi từ chối lời mời kết nối @@ -2481,13 +2462,11 @@ Để ai đó kết nối với bạn Đường dẫn Đang tải hồ sơ… - Giới thiệu Đồng ý yêu cầu kết nối Đồng ý yêu cầu kết nối đã chấp nhận danh sách đã xác nhận đang hoạt động - Thêm mới Thêm tin nhắn Thêm thiết bị Thêm mới thiết bị diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/zh-rCN/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/zh-rCN/strings.xml index 831da9ca8c..2d5ccbe4b9 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/zh-rCN/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/zh-rCN/strings.xml @@ -1763,7 +1763,6 @@ 是 不 当你的服务器或目标服务器不支持私密路由时直接发送消息。 - 备用消息路由 显示消息状态 为了保护你的 IP 地址,私密路由使用你的 SMP 服务器来传送消息。 私密消息路由 @@ -1776,7 +1775,6 @@ 不直接发送消息,即便你的服务器或目标服务器不支持私密路由。 转发服务器:%1$s \n目标服务器错误:%2$s - 消息路由模式 未知服务器! 没有 Tor 或 VPN,这些 XFTP 中继可以看到你的 IP 地址: \n%1$s. @@ -1785,7 +1783,6 @@ 文件 应用将请求确认来自未知服务器的下载(.onion 或启用 SOCKS 代理时除外)。 个人资料主题 - 在新窗口中显示聊天列表 所有颜色模式 应用到 黑 @@ -1994,10 +1991,8 @@ 无法呼叫群成员 无法给群成员发消息 确认删除联系人? - 连接 邀请 没有过滤的联系人 - 打开 搜索 发送消息来开启通话。 你可以发消息给来自已存档联系人的 %1$s。 @@ -2123,11 +2118,7 @@ 或者私下分享 服务器运营方 网络运营方 - 30 天后将接受已启用的运营方的条款。 继续 - 稍后审阅 - 选择要使用的网络运营方。 - 更新 你可以通过设置配置服务器。 %s.]]> 将于下列日期自动接受已启用的运营方的条款:%s。 @@ -2137,7 +2128,6 @@ 网络运营方 运营方 %s 台服务器 - 网站 无法加载当前条款文本,你可以通过此链接审阅条款: 使用 %s 使用服务器 @@ -2180,7 +2170,6 @@ %s.]]> 在“网络&服务器”设置中启用 Flux,更好地保护元数据隐私。 接受条款出错 - 为了更好的元数据隐私。 添加服务器出错 无媒体和文件服务器。 更新服务器出错 @@ -2189,14 +2178,11 @@ - 在第一条未读消息上打开聊天.\n- 跳转到引用的消息. 审阅条款 SimpleX 地址或一次性链接? - 要稍后创建 SimpleX 地址,请在菜单中轻按“创建 SimpleX 地址” 当前聊天资料的新文件服务器 此消息被删除或尚未收到。 连接达到了未送达消息上限,你的联系人可能处于离线状态。 为了防止链接被替换,你可以比较联系人安全代码。 - 你可以在“网络和服务器”设置中配置运营方。 接受运营方条款的日期:%s - 远程移动设备 或者导入存档文件 小米设备:请在系统设置中开启“自动启动”让通知正常工作。]]> 消息太大! @@ -2294,7 +2280,6 @@ 垃圾信息 存档举报? 举报理由? - 将为你存档该举报。 存档了 %s 的举报 举报 1 个举报 @@ -2324,7 +2309,6 @@ 未指定端口时,使用 TCP 端口 %1$s。 使用 web 端口 全部静音 - 取消提及的已读状态 每条消息最多提及 %1$s 名成员! 将为你存档所有举报。 存档所有举报? @@ -2450,7 +2434,6 @@ 发送联络请求? 发送请求 发送无消息请求 - 连接后发送给你的联系人。 升级群链接? 升级 升级地址? @@ -2504,7 +2487,6 @@ 使用隐身个人资料 欢迎联系人👋 来自%1$s群的连接请求 - 此设置用于当前个人资料 群内的联络请求 成员被删除——无法接受请求 只有你的联系人允许的情况下才允许文件和媒体。 @@ -2536,7 +2518,6 @@ 移除并删除消息 所有消息 文件 - 筛选器 图片 链接 搜索文件 @@ -2567,7 +2548,6 @@ 频道 频道 频道链接 - 频道成员 频道名 将为所有订阅者删除频道 —— 此操作无法撤销! 将为你删除频道 —— 此操作无法撤销! @@ -2597,7 +2577,6 @@ 输入中继名… 添加中继出错 创建频道出错 - 打开频道出错 失败 失败 获取链接 @@ -2614,7 +2593,6 @@ 未启用聊天中继。 不是所有中继均已连接 打开频道 - 打开新频道 所有者 所有者和贡献者 预设中继地址 @@ -2792,7 +2770,6 @@ 顶部栏 你的新频道 %1$s 已连接到 %3$d 个中继中的 %2$d 个中继。\n如果取消,频道将被删除 —— 你可以再次创建它。 这是上次活跃的中继。删除它会阻止给订阅者传送消息。 - 添加 添加中继 添加中继 取消并删除频道 @@ -2831,12 +2808,9 @@ %1$d 名所有者 %1$d 名所有者和贡献者 %1$s 支持过 SimpleX Chat。该徽章已于 %2$s 过期。 - 关于 无法验证徽章 频道网页 聊天数据 - 通过频道名连接需要更新的应用版本。 - 通过联系人名称连接需要更新的应用版本。 联系人 贡献者 复制代码 @@ -2847,7 +2821,6 @@ 它将展示给订阅者并用来允许加载预览。 更多隐私 只有您上面的页面可以显示预览。 - 请升级应用 %s 给 SimpleX Chat 众筹投过钱。 %s 支持 SimpleX Chat。 订阅者 @@ -2855,8 +2828,6 @@ 该角色将更改为 "%s"。频道中的每个人都会收到通知。 此徽章无法被验证,可能不是真的。 此群组需要更新版本的应用。要加入请更新应用。 - 不支持的频道名 - 不支持的联系人名 未验证的徽章 所用的聊天中继不支持网页。 网页代码 @@ -2879,7 +2850,6 @@ 无有效链接 解析错误:%1$s 设置 SimpleX 名称 - SimpleX 名称 SimpleX 名称错误 SimpleX 名称未验证 SimpleX 名称 %1$s 已注册但没有有效链接。 diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/zh-rTW/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/zh-rTW/strings.xml index 05e3cd8030..2909f01636 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/zh-rTW/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/zh-rTW/strings.xml @@ -1437,7 +1437,6 @@ 禁止檔案和媒體! 檔案載入中 檔案錯誤 - 備用訊息路由 如果你或你的目標伺服器不支持私密路由,將不直接傳送訊息。 建立個人檔案 從另一台裝置轉移 @@ -1533,7 +1532,6 @@ 中止地址更改時出錯 顯示通知出錯,請聯繫開發者。 刪除並通知聯絡人 - 訊息路由模式 不使用私密路由。 要進行通話請授予一項或多項權限 在 Android 系統設定中找到此權限並手動授予權限。 @@ -1664,7 +1662,6 @@ 成員非活躍 訊息 訊息將被標記為刪除。收信人可以揭示這些訊息。 - 連接 訊息 停用 下載更新中,請不要關閉應用 @@ -1754,7 +1751,6 @@ 私密路由出錯 尚無直接連接,訊息由管理員轉發。 什麼也沒選中 - 開啟 私密路由 打開資料庫文件夾 私密訊息路由 @@ -1859,7 +1855,6 @@ 是 喇叭 解除封鎖 - 網站 透明度 重複 編輯 @@ -1867,7 +1862,6 @@ 選擇 使用者名稱 密碼 - 更新 繼續 已拒絕 系統 @@ -2028,7 +2022,6 @@ 聯絡人已刪除 未同步 聯絡人已停用 - 稍後審核 分享個人檔案 完整連結 已上載檔案 @@ -2077,7 +2070,6 @@ 你已封鎖 %s 連接未就緒。 更好的訊息日期。 - 為了更好的元資料隱私。 你可以再試一次。 使用匿名個人檔案 開啟聊天 @@ -2137,7 +2129,6 @@ 影片 檔案 連結 - 過濾器 %d 個舉報 已棄用的選項 無訂閱 @@ -2226,11 +2217,6 @@ 刪除聊天時發生錯誤 不支援的連線連結 此連結需要較新的應用程式版本。請升級應用程式,或請你的聯絡人傳送相容的連結。 - 不支援的頻道名稱 - 不支援的聯絡人名稱 - 透過頻道名稱連線需要較新的應用程式版本。 - 透過聯絡人名稱連線需要較新的應用程式版本。 - 請升級應用程式。 頻道暫時無法使用 頻道沒有啟用中的中繼。請稍後再嘗試加入。 需要更新應用程式 @@ -2250,7 +2236,6 @@ 應用程式電池用量 / 不受限制。]]> Xiaomi 裝置:請在系統設定中啟用自動啟動,以便通知正常運作。]]> 此訊息已刪除或尚未接收。 - 該檢舉報告將為你封存。 所有檢舉報告將為你封存。 金鑰錯誤或未知連線——此連線很可能已刪除。 伺服器地址與網路設定不相容。 @@ -2273,7 +2258,6 @@ 讓任何人都能聯絡你 列表 %s 中沒有聊天。 聯絡人需要接受… - 稍後可點選選單中的「建立 SimpleX 地址」來建立。 沒有可轉發的內容! 要轉發不含檔案的訊息嗎? 這些訊息在你選取後已被刪除。 @@ -2341,7 +2325,6 @@ 拒絕聯絡請求 傳送者不會收到通知。 成員已刪除,無法接受請求 - 未讀提及 所有列表的名稱和 emoji 都應不同。 所有聊天都將從列表 %s 中移除,且該列表會被刪除 在社交媒體上分享 SimpleX 地址。 @@ -2380,7 +2363,6 @@ 若要接收新版本通知,請開啟穩定版或 Beta 版的定期檢查。 顯示較慢的 API 呼叫 儲存設定時發生錯誤 - 連線後會傳送給你的聯絡人。 或私下分享 SimpleX 地址還是一次性連結? 新的一次性連結 @@ -2429,11 +2411,8 @@ 應用程式會在每個對話中使用不同營運商,以保護你的私隱。 啟用多於一個營運商時,沒有任何一方擁有足以得知誰與誰通訊的中繼資料。 例如,如果你的聯絡人透過 SimpleX Chat 伺服器接收訊息,你的應用程式會透過 Flux 伺服器傳送訊息。 - 選擇要使用的網路營運商。 這如何有助於私隱 你可以透過設定配置伺服器。 - 30 天後,將會接受已啟用營運商的條件。 - 你可以在「網路與伺服器」設定中配置營運商。 你的網路 網路路由器無法知道\n誰在和誰交談 設定路由器 @@ -2450,7 +2429,6 @@ 應用程式會要求確認來自未知檔案伺服器的下載(.onion 或啟用 SOCKS 代理時除外)。 未使用 Tor 或 VPN 時,你的 IP 地址會對檔案伺服器可見。 移除連結追蹤 - 此設定適用於你目前的個人檔案 這些設定適用於你目前的個人檔案 可在聯絡人和群組設定中覆寫這些設定。 已為 %d 個聯絡人啟用送達回條 @@ -2464,14 +2442,12 @@ 開啟乾淨連結 傳送送達回條給 來自群組的聯絡請求 - 關於 聯絡 支持此專案 聊天數據 說明與支援 更多私隱 進階設定 - 遠端行動裝置 你可以儲存匯出的封存檔。 你可以遷移匯出的數據庫。 部分檔案未匯出 @@ -2486,7 +2462,6 @@ 底部列 頂部列 在新視窗中顯示控制台 - 在新視窗中顯示聊天列表 如果你加入或建立了頻道,它們將永久停止運作。 要離開頻道嗎? 你將停止接收此頻道的訊息。聊天記錄將會保留。 @@ -2535,7 +2510,6 @@ 只有聊天擁有者可以變更偏好設定。 此群組有超過 %1$d 名成員,不會傳送送達回條。 連結 - 頻道成員 聊天中繼 要移除訂閱者嗎? 要刪除成員訊息嗎? @@ -2827,7 +2801,6 @@ 你的個人檔案 %1$s 將與頻道中繼和訂閱者共享。\n中繼可以存取頻道訊息。 設定中繼 失敗 - 新增 新增中繼 新增中繼 沒有可用的中繼 @@ -2843,10 +2816,8 @@ 中繼地址 這是聊天中繼地址,不能用於連接。 開啟頻道 - 開啟新頻道 你的頻道 %1$s 的連結!]]> - 開啟頻道時發生錯誤 要對全部解除封鎖訂閱者嗎? 要啟用連結預覽嗎? 傳送連結預覽可能會向網站透露你的 IP 地址。你可以稍後在「私隱」設定中變更此設定。 diff --git a/flake.nix b/flake.nix index fdd041bd88..0863222c92 100644 --- a/flake.nix +++ b/flake.nix @@ -405,6 +405,7 @@ "chat_send_remote_cmd" "chat_send_remote_cmd_retry" "chat_valid_name" + "chat_parse_badge_code" "chat_json_length" "chat_badge_keygen" "chat_badge_issue" @@ -526,6 +527,7 @@ "chat_send_remote_cmd" "chat_send_remote_cmd_retry" "chat_valid_name" + "chat_parse_badge_code" "chat_json_length" "chat_badge_keygen" "chat_badge_issue" diff --git a/libsimplex.dll.def b/libsimplex.dll.def index ec4125193f..a7a66992a6 100644 --- a/libsimplex.dll.def +++ b/libsimplex.dll.def @@ -15,6 +15,7 @@ EXPORTS chat_parse_uri chat_password_hash chat_valid_name + chat_parse_badge_code chat_json_length chat_badge_keygen chat_badge_issue diff --git a/src/Simplex/Chat.hs b/src/Simplex/Chat.hs index b2d1f89882..3e6fb7e229 100644 --- a/src/Simplex/Chat.hs +++ b/src/Simplex/Chat.hs @@ -53,6 +53,7 @@ import Simplex.Messaging.Agent.Store.Shared (MigrationConfig (..), MigrationConf import Simplex.Messaging.Client (defaultNetworkConfig) import qualified Simplex.Messaging.Crypto as C import Simplex.Messaging.Crypto.Entitlement (entitlementIssuerKeys) +import Simplex.Messaging.Encoding.String (strDecode) import Simplex.Messaging.Protocol (ProtoServerWithAuth (..), ProtocolType (..), SProtocolType (..), SubscriptionMode (..), UserProtocol) import qualified Simplex.Messaging.TMap as TM import qualified UnliftIO.Exception as E @@ -68,7 +69,7 @@ defaultChatConfig = }, chatVRange = supportedChatVRange, badgePublicKeys = M.mapKeys fromIntegral entitlementIssuerKeys, - badgeServiceAddress = Nothing, + badgeServiceAddress = Just $ either error id $ strDecode "https://smp5.simplex.im/a#ooSNWlEZTO2RPE0Ff5ZoybAs5zEhWLMlQrXesnhaZHM", badgeCurrentTime = getCurrentTime, badgeRetryInterval = RetryInterval {initialInterval = 30_000000, increaseAfter = 0, maxInterval = 3600_000000}, confirmMigrations = MCConsole, diff --git a/src/Simplex/Chat/Badges/Types.hs b/src/Simplex/Chat/Badges/Types.hs index cbd2ecb1b6..a0ee90b83c 100644 --- a/src/Simplex/Chat/Badges/Types.hs +++ b/src/Simplex/Chat/Badges/Types.hs @@ -36,6 +36,7 @@ import Data.Time.Clock (UTCTime) import Data.Word (Word8) import Simplex.Chat.Badges hiding (BadgePurchase (..)) import Simplex.Chat.PaymentService.Types (InvoiceId, PaymentId, StoredPayment) +import Simplex.Chat.Types (BoolDef (..)) import Simplex.Messaging.Agent.Protocol (UserId) import Simplex.Messaging.Agent.Store.DB (fromTextField_) import qualified Simplex.Messaging.Crypto as C @@ -212,6 +213,7 @@ data BadgeAlert = BadgeAlert data BadgeState = BadgeState { badgePurchaseId :: Int64, badgeType :: BadgeType, + shown :: BoolDef, monthsLeft :: Int, paidThrough :: UTCTime, -- payments returns here with the payment types, which this slice neither writes nor encodes diff --git a/src/Simplex/Chat/Library/Commands.hs b/src/Simplex/Chat/Library/Commands.hs index e41d05f1db..e0f077fbb3 100644 --- a/src/Simplex/Chat/Library/Commands.hs +++ b/src/Simplex/Chat/Library/Commands.hs @@ -3563,7 +3563,7 @@ processChatCommand cxt nm = \case ShowProfile -> withUser $ \user@User {profile} -> pure $ CRUserProfile user (fromLocalProfile profile) AddBadge cred -> withUser $ \user -> addUserBadge user cred >> ok user APIRedeemBadgeCode userId codeText -> withUserId userId $ \user -> redeemBadgeCode nm user codeText - APIGetBadgeState userId -> withUserId userId $ \user -> do + APIGetBadgeState userId -> withUserId' userId $ \user -> do -- the read also signals the worker, whose results follow as CEvtBadgeChanged lift $ startBadgeWork user CRBadgeState user <$> getUserBadgeState user @@ -5407,10 +5407,11 @@ getUserBadgeState user = do Just p@UserBadgePurchase {badgePurchaseId} -> fmap (badgeStateOf now p) <$> withStore' (`getBadgeLedgerLastEntry` badgePurchaseId) where - badgeStateOf now p@UserBadgePurchase {badgePurchaseId, badgeType} balance = + badgeStateOf now p@UserBadgePurchase {badgePurchaseId, badgeType, shown} balance = BadgeState { badgePurchaseId, badgeType, + shown = BoolDef shown, monthsLeft = balanceMonths balance, paidThrough = L.paidThrough balance, renewsAt = Nothing, diff --git a/src/Simplex/Chat/Mobile.hs b/src/Simplex/Chat/Mobile.hs index 51e0409723..d2e1d8460d 100644 --- a/src/Simplex/Chat/Mobile.hs +++ b/src/Simplex/Chat/Mobile.hs @@ -27,6 +27,7 @@ import Data.List (find) import qualified Data.List.NonEmpty as L import Data.Maybe (fromMaybe) import Data.Text (Text) +import Data.Text.Encoding (encodeUtf8) import Data.Word (Word8) import Foreign.C.String import Foreign.C.Types (CInt (..)) @@ -35,6 +36,7 @@ import Foreign.StablePtr import Foreign.Storable (poke) import GHC.IO.Encoding (setFileSystemEncoding, setForeignEncoding, setLocaleEncoding) import Simplex.Chat +import Simplex.Chat.Badges.Code (badgeCodeText, parseBadgeCode) import Simplex.Chat.Controller import Simplex.Chat.Library.Commands import Simplex.Chat.Markdown (ParsedMarkdown (..), parseMaybeMarkdownList, parseUri, sanitizeUri) @@ -137,6 +139,8 @@ foreign export ccall "chat_password_hash" cChatPasswordHash :: CString -> CStrin foreign export ccall "chat_valid_name" cChatValidName :: CString -> IO CString +foreign export ccall "chat_parse_badge_code" cChatParseBadgeCode :: CString -> IO CString + foreign export ccall "chat_json_length" cChatJsonLength :: CString -> IO CInt foreign export ccall "chat_badge_keygen" cChatBadgeKeygen :: IO CJSONString @@ -240,6 +244,12 @@ cChatPasswordHash cPwd cSalt = do cChatValidName :: CString -> IO CString cChatValidName cName = newCString . mkValidName =<< peekCString cName +-- | canonical form of a code that passes its check character, empty string if it does not parse +cChatParseBadgeCode :: CString -> IO CString +cChatParseBadgeCode cCode = do + code <- safeDecodeUtf8 <$> B.packCString cCode + newCStringFromBS $ maybe "" (encodeUtf8 . badgeCodeText) $ parseBadgeCode code + -- | returns length of JSON encoded string cChatJsonLength :: CString -> IO CInt cChatJsonLength s = fromIntegral . subtract 2 . LB.length . J.encode . safeDecodeUtf8 <$> B.packCString s From 2bfbcd75a2ef678abe40f9aa938bc2fd9327d2d3 Mon Sep 17 00:00:00 2001 From: Evgeny Poberezkin Date: Tue, 15 Sep 2026 15:30:09 +0100 Subject: [PATCH 32/62] 7.1.0.6 --- simplex-chat.cabal | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/simplex-chat.cabal b/simplex-chat.cabal index b2eefbfcee..576ccf128e 100644 --- a/simplex-chat.cabal +++ b/simplex-chat.cabal @@ -5,7 +5,7 @@ cabal-version: 1.12 -- see: https://github.com/sol/hpack name: simplex-chat -version: 7.1.0.5 +version: 7.1.0.6 category: Web, System, Services, Cryptography homepage: https://github.com/simplex-chat/simplex-chat#readme author: simplex.chat From b0a7219db26e6168e9c9a348e4e1e03acd0487cc Mon Sep 17 00:00:00 2001 From: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com> Date: Tue, 15 Sep 2026 15:32:10 +0000 Subject: [PATCH 33/62] android: show "Get your code" button in all app flavours (#7514) --- .../common/views/badges/BadgesSupportSimplexView.kt | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesSupportSimplexView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesSupportSimplexView.kt index a9d935cdde..48ef36ece1 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesSupportSimplexView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesSupportSimplexView.kt @@ -125,14 +125,10 @@ private fun RedeemCodeButton() { @Composable private fun GetCodeButton() { val uriHandler = LocalUriHandler.current - if (platform.androidHasPlatformStore) { - TextButtonBelowOnboardingButton("", null) - } else { - TextButtonBelowOnboardingButton( - text = stringResource(MR.strings.badges_get_your_code), - onClick = { uriHandler.openExternalLink("https://simplex.chat/badges/") } - ) - } + TextButtonBelowOnboardingButton( + text = stringResource(MR.strings.badges_get_your_code), + onClick = { uriHandler.openExternalLink("https://simplex.chat/badges/") } + ) } @Composable From dabaf29cd89a6a60ee4a90b8941af0c037a7d524 Mon Sep 17 00:00:00 2001 From: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com> Date: Tue, 15 Sep 2026 20:06:04 +0400 Subject: [PATCH 34/62] kotlin: add assets --- .../resources/MR/images/phone_supporter@2x.png | Bin 0 -> 24963 bytes .../resources/MR/images/phone_supporter@3x.png | Bin 0 -> 50810 bytes .../MR/images/phone_supporter_light@2x.png | Bin 0 -> 24185 bytes .../MR/images/phone_supporter_light@3x.png | Bin 0 -> 48176 bytes 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 assets/multiplatform/resources/MR/images/phone_supporter@2x.png create mode 100644 assets/multiplatform/resources/MR/images/phone_supporter@3x.png create mode 100644 assets/multiplatform/resources/MR/images/phone_supporter_light@2x.png create mode 100644 assets/multiplatform/resources/MR/images/phone_supporter_light@3x.png diff --git a/assets/multiplatform/resources/MR/images/phone_supporter@2x.png b/assets/multiplatform/resources/MR/images/phone_supporter@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..858385c526d2be7a105155c9cc1566215411e259 GIT binary patch literal 24963 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%0D3&;bmX=RLWd;%MZzMBs6Bi7gC%wO&j7T)4`1%y zxFxpH-NFtMzsBZjYa(2(7$CUAO@bKLN&D&~3zR#i*!Ym_NeNFTr9hVTaq`^=F(LWb z$I;R@7D#sfsyy9_Pro=T3>ueDtBAvqRwXeFgN?h5JWe;8E*Gq-txhXVnb@0I6zX5n zzJ8e6xxc)(@cY5s34%A1^1yc&o9M8W*-p{M@}Dy zCUGZ6lk~H@JIotav5dl@hNvP40|M9?daw*-4-?dVX)Vc|b~azkG+07QdOQoAM*+c1 z=C@wz_3yZ8!_a*%sFUQkROx)A0Js?|`b}t^i*RI522tRj%nUk5tivRr+@Sc>!T~|C z=Hp`YiF_7VD(YFdL(Fsd_lu4({NrxXI5q z70wl78@e3q_LGZ#y?XgyY`*|4Y%&qu@DP_PlxtM*Scqrf$F+FANDCO7?o?cdN~+Z! z!$M2bh+JXL_N4&_Av}q00W1|8rx7TO+CTTi9B&4#WCL_hR|$UI!2EC-xcYbe5h~;@ zvCjNFQTu))hrwxFO(%j;YT9YA;Bj?>k_9`?H_C`lHOCKCA-_EKUbKqdD-=p9FC5qV z=jIRaBq@aKZ^yF4a6nVv98(>?{aFN3uF(i%!U2AJYB?&uY()r2jjcZTsPmMt%d4l) z_}ycTAWR66H)KiA(1{l~4_vlxq6ire#0O9r?>^g$pD`1;@yHHmxSk1Gb(+0oO;Gyn zpxK~5C1NHCsii{A>v5LR>9W!pi5|Ll!)<&i-a+-Y+v@U&kX*~INRRE)s|m{2yMgYt zLHQwAuxF?jv6qMwq(vO9k(hPRLTLJAZg|SQ4OYpJeRzwx{lmL2n~o2pto>7)*K>H% z&=2mvYi!8+b{&*C!HQ@f5e283-li)dnr!|aALlYv5>O3#o(~d}wldv(R28(v2WDrh z0-wRDhbd{UX3*2FS2}|M{E&hyhw977iX~>a#E!phdgdaaXo|)Q+0bgkchrcF$ntbP-_T#Cj+pMK9)7a-a&%ywX zzUU+s@n$!0nwbb#%99S?=^$<@A$H9fVv9I+eo1I;TB20bbAn}*Kk}fNZ2BvrIAxe_ z?z7Hhcc^nK2owFoa-;nn^{*HJ_^Rw3Gvdgm&|t}tK#zf`L0^Q$-~;lS>T}jiM9{#q zP%x;t1nSLMsxt)$;SBWdF`hLCYh2U|4;P{i37H3>Tb+j=A8xN3qo(*hLv${rw9U3j za`{;!Jc?@7U5$J5JtRUptQl1&7J#&8S{Ur0l;@4ZpaKV3%_1JTeroc@JwlqlH6eXX0Iiwi9BnISdj}vt?p(Tz|woJowr9BB&JI=-lTiM=>Q^ePqb>tiG{dO|pz)SWz3TPx? z@#>Z$zYd?z3F3!Gn)yEb7wK#qoPIjo=TCZ^8l2mbnC1tz=q=rhzhT zA#c;`*1S$NrMw|w z_D6hipeTQPxM1Q3Jh!!R3f!lOp95j<#a(5KL`}vfOG3ld`w#D-i<4xm&;yhC&JqWP zsXBD}GdKlL^5V|Mm)+v&l_D`mzQK$pF&)X*DpB_0u8?nG@E$L=dLA!$I&ajd@E&Wr zU}t(H7I9_8ypeUdA4#1r)8XGd?%vKaMQa%@r4%~TAP zrp%Xa73U~(GI)RWr9^^e_)(0&O${MoCUkzr3mM@p zr((R>ib;wpJ9?8Bz%-ca7q_W>7xm{sm+ULSB8A1s2ThI^@JO}8Cp(V_1gph0tO0{0 z7bqFW#gp#kK*1HUlr@R)-J9>0`<>-l7Le%_Joovt1W$rwUul7lEI(cMhxM(~Ws?r= zCA{vN68@&*Mx{%Mj;*#W>wIZciPlt=#AP~Ru^M8H2GG?Zk{)_9&!5_L9I&9eV$V*V zx$ii!vy=2SJCGgWRMsW_ZE8!ukyVx?+K2^($k*W(Yxikv8WA#Z0z6nmC46V7<_b{aVj#Y>P4^ zbt#%T#~x93iz&_Kz0#h=?vb0wz-@ki!_l*EzT(>+8x()l+H)LjXwe07q6@^53Er)a zsV;Jsa--urhL|SbBhiGNki~4m;jNb%HUtrJ5Vo4CJf)tigsMh_UdKhHk}|qpmv$IV zTL!*ib#{`HWhXfah*>sqdr?$Is+bC{dN5z@`VLl7koQVQnaeUZ@R+MU7qdQtXHzk)E&A3 z8N(TuzmBELG}}=^<<7cEyqz*lNPUiluKRN?S>$)9MX?bSt&(ZNzI?BnJ50+=%Ov-o zVuC&^#~JlnliyLrjjoAeLP(k#*Q{5^j!JOvEH z68Eolo>;eucZNrF=aplV{tn4d%kRJ@TRG820vKRIfMGTPHNrc*z0EymIQ!F;Zn~1d z1-2p}lwr|cpE#$*v&j+;I_Z$9w@JdPi5{^>))_*#D5sOfai+MBm;~{h&Fkqk-gk0~ zLl?(hM{VjVq>w+gmUv0V*&{9sW2!)tWAIx}(RkjKLKwSbO8_ArKrNk7KeG6Ghk}tW zEW_F9J|b0oxcSW4t2K-y8&;juZg1M_`*sEMBAV&rtfhhC!a=jY*yy;K?x@ej*F4rF>*msWPq{;`@P^Kwm#YQ4wM!2` z&NgubODgq7V!NpoNxD+jutSk0wYW<$!YVgi0`q~S+Tf2wj*N%bZs~>fJJ~B{M@VN? zxEN?<|7-KzeO?1`KvfqK7)tC4SFa&4wM+>8TDAM1_vjB>WvyYTGpEcGOT*!&bmc%p zk~C4Jf7#7tK+x6?jCgbEte}EKxP5Zhe^VWjKbKZ2IaXe&tUNtEV>zv$Jup152L9uh ziYDwufoC>$-nI>1JMkT36%;4gkWNn}aNrB#Uo1T6l2^c+28?Sb?p9qa>6-H0>;^_x zuxNVRnO}96ZW3s4Jf`aB3}S}+x=azi!|-(1!=tbqOnK-SO0C=_g2_P6G>Q3*?3&9e~ntz zRrvYV_?9X!wO|1!gQyspYOVCwf2s_vG)n?AUU!HRxpglD_bE!ZiXf5SjSQIlQ@3ii zV5O%ZpKQBZ{sT8rWmxf*sQ1{B%Li%H@ZXb!l&(mTan@`42BB`Hl4fQ`hMPg%6U=L1 z-OO@3X3d_=6oWHEdbyURPM;+bXW%lJ!Dws@rGiKJb|bb`$7CC8BDvQWRTB8RqjXAS zTNhTJ&2+A)ot$^ddJ}aMw=6zYp4QhlMKi-i7M!RHTaA~MS09+&hl+kH3C z_MtjBA5`*^@?7^*mtvqE;=YEcNs-lDUQ;$NX@xkMsJU0SFNtQZ$F2#N?ATmP=XI{q z^m+02sg1FiD`MO2$@%G0+S(y+w8ao`K33zk1E7#IWTUVkrA|KlreSC<4SggvEb${~ zP=o)^?T>E;`9fFQ!!cbHj+IB6VGTh#QIsURuiBy??#ojxY4$vvEwxGQE=bXerQbA~ zd*B_}#{$=r6%Q6_5}Y?LnVmUEZS5#G9kLIP3{%v^`FGmsk~$7k%f~i01iwOA?S6~n tCwi{QcfG|SAYjlb0rdZ$-hcCg^tsH7j`PU0Q<6NuK;IN!t9vcx{{V!!YXATM literal 0 HcmV?d00001 diff --git a/assets/multiplatform/resources/MR/images/phone_supporter@3x.png b/assets/multiplatform/resources/MR/images/phone_supporter@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..58b4ecc1bde7c7aa75bbde30445ab053033c809d GIT binary patch literal 50810 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

      (?k9RF!N zw~}w9vg3<%=dwg~z&S^TrKdF7SP#v?+`>?}lJI%nUd+hBEA!v;}=61K9 z-`NyTd!e1fS&2d@lALro{?6+A8C@X|^Ja(Mzhdp=_cY>AtG8h92JiLv-gOC| zV@xj)PvE4d2iw7MU@n_}X;r9HNYEw~HbE}5!uFUALZ`q)3myiD$2F?CcMtPH>r{;E z3)gPNYS9Cap}$OeB@d$T55YSnGelESzX6AgX7Pl&4q7ldj0&DxRigln1{3P=fMSlA zu_Q0iFJjg&;8Itb)%J!j1B6CC1h2?ZKT_dPAxv2_^|%H|nB6H~yBR-^Ag|HZP}Vs3 zykGuvFJgPxxuQn`U#+KD21KJXwHW^FO$GP8X;V$^(6JNCC?e_woK|Nzx=l0Kc}k81 z2XzfmxdeUK_CDy0&eVPTwoZWBkc!IFN6OsB3J@%2D&WLr&i9(UET+do&GB^=RAif# znNjx(-394cGdz|q|f7s@waYsIZ z!eor+3dZtEzV+=K`2tmC29OG(S?hnxanx;dB^uX_#^1RB0-p|(7pJR{u*N}Dp&mB< zu^+tZL>Sl4;Ph`R&8=D1{{I3u2 z$<&1MLIz3b`G5FuH8av zCN2J6y82gWUz?fQiD`4oGUb^S@oVQx+~x;gr2Vz$QTbp9qTog1??$NV|1N*0^w>h6IUcL$U-`b0xsK`?LdCrJsnAh6Og-+{#%bG` z$v|G)=lPrqalfUd^_X9^%|>Z`-d}2e5iM94uClApV+Cb;aB5sh>(F&_@F;1#q~or* z>fg-&3f`~^sp9cjrtPxxp;cZd<#g+c7PM8pF>O6LIYCTlgB!-r1wknd^Zpq`?OqXM z10{K0fk>5<`l~AgUi>VY@CNH>8i-4==An|*U>cq8-6&FU9IX-n5>F@%J#}0M&<3i4 z(ki08SFH|Iv6LSX#Q-F}>peaQ;Qqahqz)JT2h?!p<7RWj+)oAvsM9&-$pyo`E)JPT zR%dHVK4x2fbAO{@%}9fh0V-=2gQqdo1jnPw-=r+$ta87jlRYd0T3$4*$-+(aeS<@e zJGYx-zONokUCzGG0&W#M<394qxbj<7KAYy$9C3d(>F|J6_eAPplm5}34z1VXx#Cp& zz=`(21492#tCiKyG|FF&9TF>f;vTuF-KeI^e%*{HZTlrG{`1?zC;W`;UZ=Bm$0z?9 zqX1!PI3YFB8{c5?iPRV>xLRJk&pYIny)SBp({?g#Qy80 zK@*wytxMx8ipIoxU>6=cnFj#c5OXo6cpIj$Z|)nQ>_#2~<#ylHAI}@)rBSyYKRlDT z3zz>A_N&Y%e{wQ8%jiQq7YvRgu#5jetcoY{z{Eo_-XY#8iOI54N*bV~Pf=x{Vrl}! zUJok%Cjc*lDGeU&%ThNu{J33QYSM7#el>qM|8QI4`H@xOgzI1wVk{PMM~+4Ei4vwM zp%F7fru^~S&W_uP0uL3eTDCAS(N4-hg{PUXLgSi7^Y1B3H!Ok_t^OaF2`wH=sF3`T z8LytKbLdeLpRUCe8YD0MBEnfmn3sRWS6Z6VkaGqlb+{?N?z&|+YG`#_0 znd3srTxB^m?M|s@SNW`wyhQ$yGTRn{UIGLao&Ait> zEVgFCgN+oV?jJ2S)X43SluT5z5C5>gl`^x7ZI1q1+_jdnQH(>3EBrmm)z6Vf%+oTpJ}97F{)y{O|b-8!1*MQ#N0?3AFpOD6)r_cqf11rnmUhDxRVyKXi5G zr}l6B86MX-T$}2%O`dfWFKboedI`^Hj=nr6i`roK7{O|xAp=lUzR})heVjNH4G=@* zy|%9TQQ9%$AV2$%aJ=R<$cq~tGQm4CPjwQpLpjQYQ`kK zhK90sC6z^=cg+LtzB=0b1!~C?mWX73?S8DpOy3mM!D|AgB z0{i&I9v~RJAAZ!yIj#T<{nqr&y?ERSY{9&p`>nBUijZ*2(|}MTg)>m1f(S+nJqCFx zVFG)5dAYbF6{uY^AngrsF%i&u4K>Qxap~xL^HaT%HBzY5JX4o0-S3sD=?8>b61{?r z?wDJMyya00OQe%0NydxH?Yfk$Zjotyu1`uy6QPmR{j}vID041)Iwthuoxb(4dY}=V zEK=}vM#zb;vZF77?0;S(ZX)~%#e>s5lNidV^_jFTneVP|#x!5ITOyC#qs>O}(CY86}XCKxQ9_KTisK1d}u3qLP zYn>J;BufqkyDZ6LlpOa8d3au_+`W6*ZoJ+PE{jXge)Zmeh+!9!NxIzogzT^RdjJ6t)9Rv%px=PKGt&f=`&Abj(!| z;ypB}#JNgdRnH+W@<#Pk1?6?$ug1h+-n z(qI0p*yUq7k_70L3!B-Xu?IJTAKOlRmMowqq)rhIKRsAV8bkSWU@W&;+Juypf)35f zjEQ@T%w>s1Tc(5TsKXT8@t^~z`^yLo1{p=BXc=LkAt+?zcp|@x3tCJ8ECr82!+i7w z5gfJg1$UJB9!QM-02{SU7H8*&twFrV0Ge6A#VFuilF=r&!I;KqgNkJ_7dmB2s#lq4^yx!NIuF$;< zE|f|1j1TLNOGi$+)n!2UJ2li# zqqC_y?3f+^@o!a;)C3;>-8EHBCh-MhN3W?nAF~s;ibI(9j|4X_58_Bb0$r2($ef-C zJ=|7Y-gi5yN*1?Z>B8^4sY7=Yes7U}l=|SSk!9*B+o+xtJ@aQR8fO$!*{(q{p}`&r zU#sF-atT;IWhCXJ3nPxq9J`?hH`eEVNt~?dwFzxO>_KY63HgrGF9kJS4jcnh@FyeC$%aO*|{r46t z;%whq?Lh)j`FBlxX(LH@*S3r&dfTnurf%?S+i_4P2Rhfiqkx~-pI2{C2&qz^DiN6);Z>4M$(6I0@}l{L_dV5;g_>5~P=mCI=}hdIgo5c3tQLV*4BmZF)EHFQTxFQ9FojL4eEzdn!o82R zPLy{DnAKuAsqW#GvFWUa3&hnbSqPGiRM`Wrz~}rCxfomTT;&OnXqV!RxZ?VAlASoEL6PhaHKbW@ih?`fGgJnRib zjI9t&r#&F7yg`t1_3$_Q_1B6{0XqNy0<=j)K~x~l&;H`0Q4cKkQ!K}AX`zN$EyUO2 z24bU@5^+Vn+v&V(<8hCCv)SxFugmW2vll}DDHuEEdzXQ>;^}|eJ9`zkfhdfw!H(Ck z#Jh%sB->;IB5|S;WM)L;q1bK(J-%gzh;c8of!KxM^R0}CV-R?_8SVoYbcOMH&^?mm(_4O;uQ{v{*8FeB&`N14pd~uiKigck$s4 zPxsqc702O1dzDsIxNVuQ3*!}Hf!leQJuy(@A5WOJT7|K#S5@UpsjX58OC;~7tb_2Y zTh6;YW}wFJ&H!BOS3#py9{S2FrB(GPj9AL6)s;8y+cz00T5ue-yslrG9v=qicV5Ne zgDO`)s!iT5gts??{;=y}0352-My=)wM8Cbr+<0ZQ3iZ^LDOW0st*ut8Pp?PA!!8EE zVT$iL&xiXfpWJd4CV|na+$E9q>h0u`bOpaJS;JmYF0B)V-H;} z?-Lc+&4!NMgl@wXV!`Qg%S0`6#AF@Vwe*on|r_T+(NUvny6> zmy)YLQuJ8^;U5&R8BPHJ0000000000000000000000000008_y`~>Iz%>3iMdRhPg N002ovPDHLkV1myF+w1@U literal 0 HcmV?d00001 diff --git a/assets/multiplatform/resources/MR/images/phone_supporter_light@2x.png b/assets/multiplatform/resources/MR/images/phone_supporter_light@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..6e87c1a72b8c6719b6860d7315517b68619a3d58 GIT binary patch literal 24185 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

      `ZK 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 Date: Tue, 15 Sep 2026 16:09:53 +0000 Subject: [PATCH 35/62] 7.1-beta.3: android 378, desktop 161, ios 356 --- apps/ios/SimpleX.xcodeproj/project.pbxproj | 36 +++++++++---------- apps/multiplatform/gradle.properties | 8 ++--- .../types/typescript/package.json | 2 +- packages/simplex-chat-nodejs/package.json | 4 +-- .../simplex-chat-nodejs/src/download-libs.js | 2 +- .../src/simplex_chat/_version.py | 4 +-- 6 files changed, 28 insertions(+), 28 deletions(-) diff --git a/apps/ios/SimpleX.xcodeproj/project.pbxproj b/apps/ios/SimpleX.xcodeproj/project.pbxproj index e862d1cf2c..9d16c5c1f4 100644 --- a/apps/ios/SimpleX.xcodeproj/project.pbxproj +++ b/apps/ios/SimpleX.xcodeproj/project.pbxproj @@ -191,8 +191,8 @@ 64C3B0212A0D359700E19930 /* CustomTimePicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64C3B0202A0D359700E19930 /* CustomTimePicker.swift */; }; 64C8299D2D54AEEE006B9E89 /* libgmp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C829982D54AEED006B9E89 /* libgmp.a */; }; 64C8299E2D54AEEE006B9E89 /* libffi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C829992D54AEEE006B9E89 /* libffi.a */; }; - 64C8299F2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.5-IGts36xYjPC79miwfnmQnN-ghc9.6.3.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C8299A2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.5-IGts36xYjPC79miwfnmQnN-ghc9.6.3.a */; }; - 64C829A02D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.5-IGts36xYjPC79miwfnmQnN.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C8299B2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.5-IGts36xYjPC79miwfnmQnN.a */; }; + 64C8299F2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.6-ErPlbJcf1H358Yh01XLorw-ghc9.6.3.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C8299A2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.6-ErPlbJcf1H358Yh01XLorw-ghc9.6.3.a */; }; + 64C829A02D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.6-ErPlbJcf1H358Yh01XLorw.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C8299B2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.6-ErPlbJcf1H358Yh01XLorw.a */; }; 64C829A12D54AEEE006B9E89 /* libgmpxx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C8299C2D54AEEE006B9E89 /* libgmpxx.a */; }; 64D0C2C029F9688300B38D5F /* UserAddressView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64D0C2BF29F9688300B38D5F /* UserAddressView.swift */; }; 64D0C2C229FA57AB00B38D5F /* UserAddressLearnMore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64D0C2C129FA57AB00B38D5F /* UserAddressLearnMore.swift */; }; @@ -582,8 +582,8 @@ 64C3B0202A0D359700E19930 /* CustomTimePicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomTimePicker.swift; sourceTree = ""; }; 64C829982D54AEED006B9E89 /* libgmp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmp.a; sourceTree = ""; }; 64C829992D54AEEE006B9E89 /* libffi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libffi.a; sourceTree = ""; }; - 64C8299A2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.5-IGts36xYjPC79miwfnmQnN-ghc9.6.3.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-7.1.0.5-IGts36xYjPC79miwfnmQnN-ghc9.6.3.a"; sourceTree = ""; }; - 64C8299B2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.5-IGts36xYjPC79miwfnmQnN.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-7.1.0.5-IGts36xYjPC79miwfnmQnN.a"; sourceTree = ""; }; + 64C8299A2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.6-ErPlbJcf1H358Yh01XLorw-ghc9.6.3.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-7.1.0.6-ErPlbJcf1H358Yh01XLorw-ghc9.6.3.a"; sourceTree = ""; }; + 64C8299B2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.6-ErPlbJcf1H358Yh01XLorw.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-7.1.0.6-ErPlbJcf1H358Yh01XLorw.a"; sourceTree = ""; }; 64C8299C2D54AEEE006B9E89 /* libgmpxx.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmpxx.a; sourceTree = ""; }; 64D0C2BF29F9688300B38D5F /* UserAddressView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserAddressView.swift; sourceTree = ""; }; 64D0C2C129FA57AB00B38D5F /* UserAddressLearnMore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserAddressLearnMore.swift; sourceTree = ""; }; @@ -756,8 +756,8 @@ 64C8299D2D54AEEE006B9E89 /* libgmp.a in Frameworks */, 64C8299E2D54AEEE006B9E89 /* libffi.a in Frameworks */, 64C829A12D54AEEE006B9E89 /* libgmpxx.a in Frameworks */, - 64C8299F2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.5-IGts36xYjPC79miwfnmQnN-ghc9.6.3.a in Frameworks */, - 64C829A02D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.5-IGts36xYjPC79miwfnmQnN.a in Frameworks */, + 64C8299F2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.6-ErPlbJcf1H358Yh01XLorw-ghc9.6.3.a in Frameworks */, + 64C829A02D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.6-ErPlbJcf1H358Yh01XLorw.a in Frameworks */, CE38A29C2C3FCD72005ED185 /* SwiftyGif in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -844,8 +844,8 @@ 64C829992D54AEEE006B9E89 /* libffi.a */, 64C829982D54AEED006B9E89 /* libgmp.a */, 64C8299C2D54AEEE006B9E89 /* libgmpxx.a */, - 64C8299A2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.5-IGts36xYjPC79miwfnmQnN-ghc9.6.3.a */, - 64C8299B2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.5-IGts36xYjPC79miwfnmQnN.a */, + 64C8299A2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.6-ErPlbJcf1H358Yh01XLorw-ghc9.6.3.a */, + 64C8299B2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.6-ErPlbJcf1H358Yh01XLorw.a */, ); path = Libraries; sourceTree = ""; @@ -2131,7 +2131,7 @@ CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES; CODE_SIGN_ENTITLEMENTS = "SimpleX (iOS).entitlements"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 355; + CURRENT_PROJECT_VERSION = 356; DEAD_CODE_STRIPPING = YES; DEVELOPMENT_TEAM = 5NN7GUYB6T; ENABLE_BITCODE = NO; @@ -2181,7 +2181,7 @@ CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES; CODE_SIGN_ENTITLEMENTS = "SimpleX (iOS).entitlements"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 355; + CURRENT_PROJECT_VERSION = 356; DEAD_CODE_STRIPPING = YES; DEVELOPMENT_TEAM = 5NN7GUYB6T; ENABLE_BITCODE = NO; @@ -2223,7 +2223,7 @@ buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 355; + CURRENT_PROJECT_VERSION = 356; DEVELOPMENT_TEAM = 5NN7GUYB6T; GENERATE_INFOPLIST_FILE = YES; IPHONEOS_DEPLOYMENT_TARGET = 15.0; @@ -2243,7 +2243,7 @@ buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 355; + CURRENT_PROJECT_VERSION = 356; DEVELOPMENT_TEAM = 5NN7GUYB6T; GENERATE_INFOPLIST_FILE = YES; IPHONEOS_DEPLOYMENT_TARGET = 15.0; @@ -2268,7 +2268,7 @@ CODE_SIGN_ENTITLEMENTS = "SimpleX NSE/SimpleX NSE.entitlements"; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 355; + CURRENT_PROJECT_VERSION = 356; DEVELOPMENT_TEAM = 5NN7GUYB6T; ENABLE_BITCODE = NO; GCC_OPTIMIZATION_LEVEL = s; @@ -2305,7 +2305,7 @@ CODE_SIGN_ENTITLEMENTS = "SimpleX NSE/SimpleX NSE.entitlements"; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 355; + CURRENT_PROJECT_VERSION = 356; DEVELOPMENT_TEAM = 5NN7GUYB6T; ENABLE_BITCODE = NO; ENABLE_CODE_COVERAGE = NO; @@ -2342,7 +2342,7 @@ CLANG_TIDY_BUGPRONE_REDUNDANT_BRANCH_CONDITION = YES; CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 355; + CURRENT_PROJECT_VERSION = 356; DEFINES_MODULE = YES; DEVELOPMENT_TEAM = 5NN7GUYB6T; DYLIB_COMPATIBILITY_VERSION = 1; @@ -2393,7 +2393,7 @@ CLANG_TIDY_BUGPRONE_REDUNDANT_BRANCH_CONDITION = YES; CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 355; + CURRENT_PROJECT_VERSION = 356; DEFINES_MODULE = YES; DEVELOPMENT_TEAM = 5NN7GUYB6T; DYLIB_COMPATIBILITY_VERSION = 1; @@ -2447,7 +2447,7 @@ CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; CODE_SIGN_ENTITLEMENTS = "SimpleX SE/SimpleX SE.entitlements"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 355; + CURRENT_PROJECT_VERSION = 356; DEVELOPMENT_TEAM = 5NN7GUYB6T; ENABLE_USER_SCRIPT_SANDBOXING = YES; GCC_C_LANGUAGE_STANDARD = gnu17; @@ -2481,7 +2481,7 @@ CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; CODE_SIGN_ENTITLEMENTS = "SimpleX SE/SimpleX SE.entitlements"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 355; + CURRENT_PROJECT_VERSION = 356; DEVELOPMENT_TEAM = 5NN7GUYB6T; ENABLE_USER_SCRIPT_SANDBOXING = YES; GCC_C_LANGUAGE_STANDARD = gnu17; diff --git a/apps/multiplatform/gradle.properties b/apps/multiplatform/gradle.properties index b3a8407839..b7807cb4c0 100644 --- a/apps/multiplatform/gradle.properties +++ b/apps/multiplatform/gradle.properties @@ -24,11 +24,11 @@ android.nonTransitiveRClass=true kotlin.mpp.androidSourceSetLayoutVersion=2 kotlin.jvm.target=11 -android.version_name=7.1-beta.2 -android.version_code=377 +android.version_name=7.1-beta.3 +android.version_code=378 -desktop.version_name=7.1-beta.2 -desktop.version_code=160 +desktop.version_name=7.1-beta.3 +desktop.version_code=161 kotlin.version=2.1.20 gradle.plugin.version=8.7.0 diff --git a/packages/simplex-chat-client/types/typescript/package.json b/packages/simplex-chat-client/types/typescript/package.json index b0830995dd..7fdad94741 100644 --- a/packages/simplex-chat-client/types/typescript/package.json +++ b/packages/simplex-chat-client/types/typescript/package.json @@ -1,6 +1,6 @@ { "name": "@simplex-chat/types", - "version": "0.11.2", + "version": "0.11.3", "description": "TypeScript types for SimpleX Chat bot libraries", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/packages/simplex-chat-nodejs/package.json b/packages/simplex-chat-nodejs/package.json index b578194679..0960334edc 100644 --- a/packages/simplex-chat-nodejs/package.json +++ b/packages/simplex-chat-nodejs/package.json @@ -1,6 +1,6 @@ { "name": "simplex-chat", - "version": "7.1.0-beta.2", + "version": "7.1.0-beta.3", "main": "dist/index.js", "types": "dist/index.d.ts", "files": [ @@ -24,7 +24,7 @@ "docs": "typedoc" }, "dependencies": { - "@simplex-chat/types": "^0.11.2", + "@simplex-chat/types": "^0.11.3", "extract-zip": "^2.0.1", "fast-deep-equal": "^3.1.3", "node-addon-api": "^8.5.0" diff --git a/packages/simplex-chat-nodejs/src/download-libs.js b/packages/simplex-chat-nodejs/src/download-libs.js index 3f10023f88..0acff40daf 100644 --- a/packages/simplex-chat-nodejs/src/download-libs.js +++ b/packages/simplex-chat-nodejs/src/download-libs.js @@ -4,7 +4,7 @@ const path = require('path'); const extract = require('extract-zip'); const GITHUB_REPO = 'simplex-chat/simplex-chat-libs'; -const RELEASE_TAG = 'v7.1.0-beta.2'; +const RELEASE_TAG = 'v7.1.0-beta.3'; const BACKEND = (process.env.SIMPLEX_BACKEND || process.env.npm_config_simplex_backend || 'sqlite').toLowerCase(); if (BACKEND !== 'sqlite' && BACKEND !== 'postgres') { diff --git a/packages/simplex-chat-python/src/simplex_chat/_version.py b/packages/simplex-chat-python/src/simplex_chat/_version.py index a335c71d03..e3f2fa5338 100644 --- a/packages/simplex-chat-python/src/simplex_chat/_version.py +++ b/packages/simplex-chat-python/src/simplex_chat/_version.py @@ -5,5 +5,5 @@ Bump both together for normal releases. For wrapper-only fixes use a PEP 440 post-release: __version__ = "6.5.2.post1", LIBS_VERSION unchanged. """ -__version__ = "7.1.0b2" # PEP 440 — read by hatchling for wheel metadata -LIBS_VERSION = "7.1.0-beta.2" # simplex-chat-libs release tag (no 'v' prefix) +__version__ = "7.1.0b3" # PEP 440 — read by hatchling for wheel metadata +LIBS_VERSION = "7.1.0-beta.3" # simplex-chat-libs release tag (no 'v' prefix) From 5e8bff5a60a98fd388034524fffcb4586f46a3ae Mon Sep 17 00:00:00 2001 From: Evgeny Poberezkin Date: Wed, 16 Sep 2026 00:09:04 +0100 Subject: [PATCH 36/62] website: update --- website/src/badges.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/badges.html b/website/src/badges.html index a0885b230a..3aed2155d3 100644 --- a/website/src/badges.html +++ b/website/src/badges.html @@ -1,7 +1,7 @@ --- layout: layouts/redirect.html title: "Support SimpleX Chat" -description: "Supporter badges provide additional file size and in-transit storage duration" +description: "Supporter badges provide additional file size and storage duration" destinationURI: "https://badges.simplex.chat" destinationText: Support SimpleX Chat templateEngineOverride: njk From 9af6fb00e653fa03ff652d4c8a12698188807bff Mon Sep 17 00:00:00 2001 From: brenzi Date: Wed, 16 Sep 2026 11:07:18 +0200 Subject: [PATCH 37/62] minimal adjustment to make client compile against SMP-v22 PR (#7520) * minimal adjustment to make client compile against SMP-v22 PR * repin after upstream merge --- cabal.project | 2 +- scripts/nix/sha256map.nix | 2 +- src/Simplex/Chat/Library/Commands.hs | 24 ++++++++++++++++-------- tests/Bots/DirectoryTests.hs | 6 +++--- tests/ChatTests/Names.hs | 22 +++++++++++----------- tests/NameResolver.hs | 18 +++++++++++------- 6 files changed, 43 insertions(+), 31 deletions(-) diff --git a/cabal.project b/cabal.project index b4eba950c7..81a7dc7e6f 100644 --- a/cabal.project +++ b/cabal.project @@ -21,7 +21,7 @@ constraints: zip +disable-bzip2 +disable-zstd source-repository-package type: git location: https://github.com/simplex-chat/simplexmq.git - tag: 7f0218e1d588a6d18c46916c8095e4fd78e09421 + tag: ea43df2349f6d3dedd60d5e4aed21fd99316cad9 source-repository-package type: git diff --git a/scripts/nix/sha256map.nix b/scripts/nix/sha256map.nix index 6527571b7c..64a6dce26f 100644 --- a/scripts/nix/sha256map.nix +++ b/scripts/nix/sha256map.nix @@ -1,5 +1,5 @@ { - "https://github.com/simplex-chat/simplexmq.git"."7f0218e1d588a6d18c46916c8095e4fd78e09421" = "1y0y7kpdd6sn8hwb087avkkxza23l5xyaz3bgrzix8pnl2il52kj"; + "https://github.com/simplex-chat/simplexmq.git"."ea43df2349f6d3dedd60d5e4aed21fd99316cad9" = "1jkh6zfyfxbx49s0pggina1yadk3zlb0ls5crgka6aiw1w25dxr0"; "https://github.com/simplex-chat/hs-socks.git"."a30cc7a79a08d8108316094f8f2f82a0c5e1ac51" = "0yasvnr7g91k76mjkamvzab2kvlb1g5pspjyjn2fr6v83swjhj38"; "https://github.com/simplex-chat/direct-sqlcipher.git"."f814ee68b16a9447fbb467ccc8f29bdd3546bfd9" = "1ql13f4kfwkbaq7nygkxgw84213i0zm7c1a8hwvramayxl38dq5d"; "https://github.com/simplex-chat/sqlcipher-simple.git"."a46bd361a19376c5211f1058908fc0ae6bf42446" = "1z0r78d8f0812kxbgsm735qf6xx8lvaz27k1a0b4a2m0sshpd5gl"; diff --git a/src/Simplex/Chat/Library/Commands.hs b/src/Simplex/Chat/Library/Commands.hs index e0f077fbb3..6ba042bd94 100644 --- a/src/Simplex/Chat/Library/Commands.hs +++ b/src/Simplex/Chat/Library/Commands.hs @@ -120,7 +120,7 @@ import Simplex.Messaging.Crypto.Ratchet (E2ERatchetParamsUri (..), InitialKeys ( import Simplex.Messaging.Encoding import Simplex.Messaging.Encoding.String import Simplex.Messaging.Parsers (base64P) -import Simplex.Messaging.Protocol (AProtoServerWithAuth (..), AProtocolType (..), ErrorType (NAME), MsgFlags (..), NameRecord (..), NtfServer, ProtoServerWithAuth (..), ProtocolServer, ProtocolType (..), ProtocolTypeI (..), SProtocolType (..), SubscriptionMode (..), UserProtocol, userProtocol) +import Simplex.Messaging.Protocol (AProtoServerWithAuth (..), AProtocolType (..), ErrorType (NAME), MsgFlags (..), NameRecord (..), NameRegistration (..), NameResponse (..), NtfServer, ProtoServerWithAuth (..), ProtocolServer, ProtocolType (..), ProtocolTypeI (..), SProtocolType (..), SubscriptionMode (..), UserProtocol, userProtocol) import qualified Simplex.Messaging.Protocol as SMP import Simplex.Messaging.ServiceScheme (ServiceScheme (..)) import qualified Simplex.Messaging.TMap as TM @@ -1604,7 +1604,7 @@ processChatCommand cxt nm = \case UserContactLink {shortLinkDataSet, connLinkContact = CCLink _ sl_} <- withFastStore (`getUserAddress` user) case sl_ of Just sl | shortLinkDataSet -> do - NameRecord {nrSimplexContact} <- withAgent $ \a -> resolveSimplexName a nm (aUserId user) domain + NameRecord {nrSimplexContact} <- resolveNameRecord user nm domain unless (nameResolvesTo sl nrSimplexContact) $ throwChatError $ CESimplexDomainNotReady domain SDENoValidLink pure $ Just (CLShort sl) _ -> throwCmdError "create the address short link and add it to name" @@ -2418,7 +2418,7 @@ processChatCommand cxt nm = \case claim <- maybe (throwCmdError "group has no name to verify") pure $ publicGroupAccess >>= groupDomainClaim -- checks the profile link, not the link we joined through (which may have rotated) (verified, reason) <- - tryAllErrors (withAgent $ \a -> resolveSimplexName a nm (aUserId user) (claimDomain claim)) >>= \case + tryAllErrors (resolveNameRecord user nm (claimDomain claim)) >>= \case Right NameRecord {nrSimplexChannel} | nameResolvesTo groupLink nrSimplexChannel -> pure (True, Nothing) | otherwise -> pure (False, Just "the name does not resolve to the link in the group profile") @@ -3295,7 +3295,7 @@ processChatCommand cxt nm = \case let domainChanged = (claimDomain <$> newClaim) /= (claimDomain <$> (existingAccess >>= groupDomainClaim)) forM_ (claimDomain <$> newClaim) $ \newDomain -> when domainChanged $ do - NameRecord {nrSimplexChannel} <- withAgent $ \a -> resolveSimplexName a nm (aUserId user) newDomain + NameRecord {nrSimplexChannel} <- resolveNameRecord user nm newDomain unless (nameResolvesTo groupLink nrSimplexChannel) $ throwChatError $ CESimplexDomainNotReady newDomain SDENoValidLink runUpdateGroupProfile user gInfo p {publicGroup = Just pg {publicGroupAccess = Just access}} (isJust newClaim && domainChanged) Nothing -> throwChatError $ CECommandError "not a public group" @@ -4416,7 +4416,7 @@ processChatCommand cxt nm = \case -- local search only: look up #d then @d in the store, without online name resolution | resolveMode == PRMNever -> connectPlanNoName $ ChatError CENotResolvedLocally | otherwise -> - tryAllErrors (withAgent $ \a -> resolveSimplexName a nm (aUserId user) d) >>= \case + tryAllErrors (resolveNameRecord user nm d) >>= \case Right nr | isJust (firstNameLink CCTChannel (nrSimplexChannel nr)) -> (addOther nr <$> connectPlanName NTPublicGroup (Right nr)) `catchAllErrors` \e -> @@ -4567,7 +4567,7 @@ processChatCommand cxt nm = \case -- resolve a name to its first contact/channel short link resolveNameLink :: SimplexNameInfo -> CM (ConnShortLink 'CMContact) resolveNameLink SimplexNameInfo {nameType, nameDomain} = do - NameRecord {nrSimplexContact, nrSimplexChannel} <- maybe (withAgent $ \a -> resolveSimplexName a nm (aUserId user) nameDomain) (ExceptT . pure) nameRec + NameRecord {nrSimplexContact, nrSimplexChannel} <- maybe (resolveNameRecord user nm nameDomain) (ExceptT . pure) nameRec let (candidates, ctType') = case nameType of NTContact -> (nrSimplexContact, CCTContact) NTPublicGroup -> (nrSimplexChannel, CCTChannel) @@ -5078,12 +5078,20 @@ firstNameLink ctType = foldr (\t r -> nameLink t <|> r) Nothing nameResolvesTo :: ConnShortLink 'CMContact -> [Text] -> Bool nameResolvesTo sLnk = any (either (const False) (sameShortLinkContact sLnk) . strDecode . encodeUtf8) +-- the resolver now also reports names that are not registered, which stay the agent's NAME NOT_FOUND +resolveNameRecord :: User -> NetworkRequestMode -> SimplexDomain -> CM NameRecord +resolveNameRecord user nm domain = do + NameResponse {registration} <- withAgent $ \a -> resolveSimplexName a nm (aUserId user) domain + case registration of + NRRegistered {nameRecord} -> pure nameRecord + _ -> throwError $ chatErrorAgent $ SMP "" (NAME SMP.NOT_FOUND) + verifyEntityDomain :: User -> NetworkRequestMode -> SimplexNameType -> SimplexDomainClaim -> Maybe AConnShortLink -> CM (Maybe Bool, Maybe Text) verifyEntityDomain user nm nameType SimplexDomainClaim {domain = StrJSON domain, proof = proof_} connLink_ = case (proof_, connLink_) of (Nothing, _) -> pure (Nothing, Just "no name proof to verify") (_, Nothing) -> pure (Nothing, Just "no connection link to check the name against") (Just proof, Just (ACSL SCMContact profileSLnk)) -> do - NameRecord {nrSimplexContact, nrSimplexChannel} <- withAgent $ \a -> resolveSimplexName a nm (aUserId user) domain + NameRecord {nrSimplexContact, nrSimplexChannel} <- resolveNameRecord user nm domain let resolvedLinks = case nameType of NTContact -> nrSimplexContact NTPublicGroup -> nrSimplexChannel @@ -5632,7 +5640,7 @@ sendServiceRequestTo nm user sendTarget requestTimeout signKey request = do _ -> throwCmdError "service request target must be a contact" CTDomain d -> resolveDomain d resolveDomain d = do - nr <- withAgent $ \a -> resolveSimplexName a nm (aUserId user) d + nr <- resolveNameRecord user nm d case firstNameLink CCTContact (nrSimplexContact nr) of Just sLnk -> resolveShortLink sLnk Nothing -> throwChatError $ CESimplexDomainNotReady d SDENoValidLink diff --git a/tests/Bots/DirectoryTests.hs b/tests/Bots/DirectoryTests.hs index 28b4e0d1bf..74688e9b4f 100644 --- a/tests/Bots/DirectoryTests.hs +++ b/tests/Bots/DirectoryTests.hs @@ -2185,7 +2185,7 @@ testDirectoryChannelName ps = withSmpServerAndNames $ \reg -> enableNamesRole bob bob `connectVia` dsLink (shortLink, _fullLink) <- prepareChannel1Relay "news" bob relay - registerName reg newsName (channelNameRecord "news" (T.pack shortLink)) + registerName reg newsName (channelNameRecord "news.simplex" (T.pack shortLink)) bob ##> "/public group access #news domain=news.simplex" bob <## "updated public group access: domain=news.simplex" relay <## "bob updated group #news: (signed)" @@ -2226,13 +2226,13 @@ testDirectoryChannelNameNotVerified ps = withSmpServerAndNames $ \reg -> enableNamesRole bob bob `connectVia` dsLink (shortLink, _fullLink) <- prepareChannel1Relay "news" bob relay - registerName reg newsName (channelNameRecord "news" (T.pack shortLink)) + registerName reg newsName (channelNameRecord "news.simplex" (T.pack shortLink)) bob ##> "/public group access #news domain=news.simplex" bob <## "updated public group access: domain=news.simplex" relay <## "bob updated group #news: (signed)" relay <## "updated public group access: domain=news.simplex" -- the name is re-pointed to a different link after the owner set it - registerName reg newsName (channelNameRecord "news" "https://simplex.chat/other") + registerName reg newsName (channelNameRecord "news.simplex" "https://simplex.chat/other") bob ##> "/share chat #news @'SimpleX Directory'" bob <# "@'SimpleX Directory' link to join channel #news (signed):" _ <- getTermLine bob -- short link diff --git a/tests/ChatTests/Names.hs b/tests/ChatTests/Names.hs index 46b62801fe..8e37c5e2d2 100644 --- a/tests/ChatTests/Names.hs +++ b/tests/ChatTests/Names.hs @@ -36,7 +36,7 @@ testConnectByName ps = withSmpServerAndNames $ \reg -> mapM_ enableNamesRole [alice, bob] alice ##> "/ad" (shortLink, _) <- getContactLinks alice True - registerName reg aliceName (contactNameRecord "alice" (T.pack shortLink)) + registerName reg aliceName (contactNameRecord "alice.simplex" (T.pack shortLink)) alice ##> "/_set domain 1 alice.simplex" alice <## "new contact address set" bob ##> "/c @alice.simplex" @@ -71,7 +71,7 @@ testConnectByNameNotClaimed ps = withSmpServerAndNames $ \reg -> mapM_ enableNamesRole [alice, bob] alice ##> "/ad" (shortLink, _) <- getContactLinks alice True - registerName reg aliceName (contactNameRecord "alice" (T.pack shortLink)) + registerName reg aliceName (contactNameRecord "alice.simplex" (T.pack shortLink)) bob ##> "/c @alice.simplex" bob <## "SimpleX name alice.simplex is not included in the connection link's profile" @@ -94,7 +94,7 @@ testConnectByNameKnownContactNotClaimed ps = withSmpServerAndNames $ \reg -> concurrently_ (bob <## "alice (Alice): contact is connected") (alice <## "bob (Bob): contact is connected") - registerName reg aliceName (contactNameRecord "alice" (T.pack shortLink)) + registerName reg aliceName (contactNameRecord "alice.simplex" (T.pack shortLink)) bob ##> "/c @alice.simplex" bob <## "SimpleX name alice.simplex is not included in the connection link's profile" @@ -116,7 +116,7 @@ testSetNameNotOwnAddress ps = withSmpServerAndNames $ \reg -> mapM_ enableNamesRole [alice, bob] bob ##> "/ad" (bobShortLink, _) <- getContactLinks bob True - registerName reg aliceName (contactNameRecord "alice" (T.pack bobShortLink)) + registerName reg aliceName (contactNameRecord "alice.simplex" (T.pack bobShortLink)) alice ##> "/ad" _ <- getContactLinks alice True alice ##> "/_set domain 1 alice.simplex" @@ -130,7 +130,7 @@ testChannelDomainLinkJoinUnverified ps = withSmpServerAndNames $ \reg -> withNewTestChat ps "bob" bobProfile $ \bob -> do mapM_ enableNamesRole [alice, cath, bob] (shortLink, fullLink) <- prepareChannel1Relay "team" alice cath - registerName reg teamName (channelNameRecord "team" (T.pack shortLink)) + registerName reg teamName (channelNameRecord "team.simplex" (T.pack shortLink)) alice ##> "/public group access #team domain=team.simplex" alice <## "updated public group access: domain=team.simplex" cath <## "alice updated group #team: (signed)" @@ -150,7 +150,7 @@ testChannelDomainVerify ps = withSmpServerAndNames $ \reg -> withNewTestChat ps "bob" bobProfile $ \bob -> do mapM_ enableNamesRole [alice, cath, bob] (shortLink, fullLink) <- prepareChannel1Relay "team" alice cath - registerName reg teamName (channelNameRecord "team" (T.pack shortLink)) + registerName reg teamName (channelNameRecord "team.simplex" (T.pack shortLink)) alice ##> "/public group access #team domain=team.simplex" alice <## "updated public group access: domain=team.simplex" cath <## "alice updated group #team: (signed)" @@ -162,7 +162,7 @@ testChannelDomainVerify ps = withSmpServerAndNames $ \reg -> bob ##> "/_verify domain #1" bob <## "SimpleX name #team verified" -- the name is re-pointed to a different link: verification fails - registerName reg teamName (channelNameRecord "team" "https://simplex.chat/other") + registerName reg teamName (channelNameRecord "team.simplex" "https://simplex.chat/other") bob ##> "/_verify domain #1" bob <## "SimpleX name #team not verified: the name does not resolve to the link in the group profile" -- a link-data refresh keeps the failed status, not overwritten with verified @@ -180,7 +180,7 @@ testConnectByChannelName ps = withSmpServerAndNames $ \reg -> withNewTestChat ps "bob" bobProfile $ \bob -> do mapM_ enableNamesRole [alice, cath, bob] (shortLink, _) <- prepareChannel1Relay "team" alice cath - registerName reg teamName (channelNameRecord "team" (T.pack shortLink)) + registerName reg teamName (channelNameRecord "team.simplex" (T.pack shortLink)) alice ##> "/public group access #team domain=team.simplex" alice <## "updated public group access: domain=team.simplex" cath <## "alice updated group #team: (signed)" @@ -216,7 +216,7 @@ testConnectByNameChannelAndContact ps = withSmpServerAndNames $ \reg -> (channelLink, _) <- prepareChannel1Relay "team" alice cath alice ##> "/ad" (contactLink, _) <- getContactLinks alice True - registerName reg teamName (contactAndChannelNameRecord "team" (T.pack contactLink) (T.pack channelLink)) + registerName reg teamName (contactAndChannelNameRecord "team.simplex" (T.pack contactLink) (T.pack channelLink)) alice ##> "/public group access #team domain=team.simplex" alice <## "updated public group access: domain=team.simplex" cath <## "alice updated group #team: (signed)" @@ -255,7 +255,7 @@ testConnectByNameContactAndChannel ps = withSmpServerAndNames $ \reg -> (channelLink, _) <- prepareChannel1Relay "acme" alice cath alice ##> "/ad" (contactLink, _) <- getContactLinks alice True - registerName reg acmeName (contactAndChannelNameRecord "acme" (T.pack contactLink) (T.pack channelLink)) + registerName reg acmeName (contactAndChannelNameRecord "acme.simplex" (T.pack contactLink) (T.pack channelLink)) alice ##> "/_set domain 1 acme.simplex" alice <## "new contact address set" bob ##> "/_connect plan 1 acme.simplex" @@ -274,7 +274,7 @@ testConnectByNameBusinessAndChannel ps = withSmpServerAndNames $ \reg -> (channelLink, _) <- prepareChannel1Relay "biz" alice cath alice ##> "/ad" (contactLink, fullLink) <- getContactLinks alice True - registerName reg bizName (contactAndChannelNameRecord "biz" (T.pack contactLink) (T.pack channelLink)) + registerName reg bizName (contactAndChannelNameRecord "biz.simplex" (T.pack contactLink) (T.pack channelLink)) alice ##> "/auto_accept on business" alice <## "auto_accept on, business" alice ##> "/_set domain 1 biz.simplex" diff --git a/tests/NameResolver.hs b/tests/NameResolver.hs index 35f5cd2496..3020e95833 100644 --- a/tests/NameResolver.hs +++ b/tests/NameResolver.hs @@ -2,7 +2,7 @@ {-# LANGUAGE OverloadedStrings #-} -- | Local HTTP names resolver for chat tests, copied from simplexmq's --- NamesResolverServer and made dynamic: it answers /resolve/ from a +-- NamesResolverServer and made dynamic: it answers /v2/resolve/ from a -- mutable name -> NameRecord registry, so a test can resolve a name to the -- address it just created. module NameResolver @@ -21,17 +21,19 @@ import qualified Data.Aeson as J import Data.Map.Strict (Map) import qualified Data.Map.Strict as M import Data.Text (Text) +import Data.Text.Encoding (decodeLatin1) import Network.HTTP.Types (hContentType, notFound404, ok200) import Network.Wai (Application, pathInfo, responseLBS) import qualified Network.Wai.Handler.Warp as Warp -import Simplex.Messaging.Names.Record (NameRecord (..)) +import Simplex.Messaging.Encoding.String (strEncode) +import Simplex.Messaging.Names.Record (NamePricing (..), NameRecord (..), NameRegistration (..), NameResponse (..), USDCents (..)) import Simplex.Messaging.Server.Names (NamesConfig (..)) -import Simplex.Messaging.SimplexName (SimplexNameInfo (..), fullDomainName) +import Simplex.Messaging.SimplexName (SimplexDomain (..), SimplexNameInfo (..), labelHash) type NameRegistry = TVar (Map Text NameRecord) -- | Run an action with a local resolver on a free port and its registry (keyed --- by full domain name, what the resolver looks the name up by). +-- by the query the resolver looks the name up by). withNameResolver :: (Int -> TVar (Map Text NameRecord) -> IO a) -> IO a withNameResolver action = do reg <- newTVarIO M.empty @@ -41,14 +43,16 @@ withNameResolver action = do app reg req send = do (st, body) <- case pathInfo req of ["health"] -> pure (ok200, "{}") - ["resolve", d] -> maybe (notFound404, "{}") (\r -> (ok200, J.encode r)) . M.lookup d <$> readTVarIO reg + ["v2", "resolve", q] -> (\r -> (ok200, J.encode $ nameResponse r)) . M.lookup q <$> readTVarIO reg _ -> pure (notFound404, "{}") send $ responseLBS st [(hContentType, "application/json")] body + nameResponse (Just nameRecord) = NameResponse {lastBlockTs = Nothing, registration = NRRegistered {expires = Nothing, graceUntil = Nothing, reservedReason_ = Nothing, nameRecord}} + nameResponse Nothing = NameResponse {lastBlockTs = Nothing, registration = NRAvailable {pricing = NamePricing {registrationPrices = M.empty, basePrice = USDCents 1000, minLabelLength = 1}}} -- | Register a name's domain to resolve to the given record. registerName :: TVar (Map Text NameRecord) -> SimplexNameInfo -> NameRecord -> IO () -registerName reg SimplexNameInfo {nameDomain} r = - atomically $ modifyTVar' reg $ M.insert (fullDomainName nameDomain) r +registerName reg SimplexNameInfo {nameDomain = SimplexDomain {nameTLD, domain}} r = + atomically $ modifyTVar' reg $ M.insert (decodeLatin1 $ strEncode (labelHash domain) <> strEncode nameTLD) r contactNameRecord :: Text -> Text -> NameRecord contactNameRecord name link = (emptyRecord name) {nrSimplexContact = [link]} From f38c7e0f2b16249b9ff9b1a223a873fa4f33b01a Mon Sep 17 00:00:00 2001 From: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com> Date: Wed, 16 Sep 2026 14:15:11 +0000 Subject: [PATCH 38/62] core, ui: badge redeem errors and fixes (#7515) - redeem errors are typed (CEBadgeRedeemError) instead of matched by text in the apps - service timeout (A_SERVICE) decodes in the apps and offers Retry via the existing retry alert - unexpected redeem errors show the error itself instead of a generic message - service error codes are a typed enum in the apps (BadgeServiceErrorCode) - CRBadgeRedeemed returns badge state, so the apps skip a second round-trip after redeem - setBadgeAlertAcked is scoped to user_id - badgeChanged updates non-active profiles, so other profiles' badges don't go stale - pitch banner is not shown to a profile that already has a badge - one badgeTypeName per platform, used by the badge screen and the badge info alert - BadgeAlertKind and BadgeAlertPrice decode via standard JSON, no custom decoders - dead "Support ended" title branch removed from Your Badge view - kotlin: users from badge responses carry remoteHostId - kotlin: redeem code field keeps the IME's cursor and composition state - kotlin: "Get your code" shown in all flavours - kotlin: "Don't show again" -> "Dismiss", matching iOS - kotlin: parseBadgeCode moved next to its FFI in platform/Core.kt - kotlin: BadgesView no longer cross-fades on badge state updates - kotlin: section title not uppercased - ios: redeem code field parses once per change - ios: A_SERVICE rejected reason is not decoded - CLI: "cannot redeem badge code: ..." with the source of the error - comments clarified --- apps/ios/Shared/Model/AppAPITypes.swift | 17 +- apps/ios/Shared/Model/SimpleXAPI.swift | 121 +++------ .../Views/Badges/BadgesRedeemCodeView.swift | 68 ++--- .../Views/Badges/BadgesYourBadgeView.swift | 24 +- .../Shared/Views/ChatList/ChatListView.swift | 6 +- apps/ios/Shared/Views/Helpers/NameBadge.swift | 13 +- apps/ios/SimpleXChat/API.swift | 4 +- apps/ios/SimpleXChat/APITypes.swift | 88 ++++++ apps/ios/SimpleXChat/ChatTypes.swift | 49 +--- apps/ios/spec/api.md | 3 +- .../chat/simplex/common/model/ChatModel.kt | 55 +--- .../chat/simplex/common/model/SimpleXAPI.kt | 252 ++++++++++++------ .../chat/simplex/common/platform/Core.kt | 7 + .../views/badges/BadgesRedeemCodeView.kt | 63 ++--- .../simplex/common/views/badges/BadgesView.kt | 2 +- .../views/badges/BadgesYourBadgeView.kt | 17 +- .../common/views/chatlist/ChatListView.kt | 4 +- .../common/views/helpers/ChatInfoImage.kt | 10 +- .../common/views/newchat/OnboardingCards.kt | 3 + .../commonMain/resources/MR/base/strings.xml | 7 +- src/Simplex/Chat/Badges/Types.hs | 16 +- src/Simplex/Chat/Controller.hs | 16 +- src/Simplex/Chat/Library/Commands.hs | 41 +-- src/Simplex/Chat/Store/Badges.hs | 8 +- src/Simplex/Chat/View.hs | 14 +- tests/Bots/BadgeServiceTests.hs | 8 +- 26 files changed, 482 insertions(+), 434 deletions(-) diff --git a/apps/ios/Shared/Model/AppAPITypes.swift b/apps/ios/Shared/Model/AppAPITypes.swift index 4a629bbd41..592ad2e041 100644 --- a/apps/ios/Shared/Model/AppAPITypes.swift +++ b/apps/ios/Shared/Model/AppAPITypes.swift @@ -420,7 +420,7 @@ enum ChatCommand: ChatCmdProtocol { case let .apiRedeemBadgeCode(userId, code): return "/_redeem_badge_code \(userId) \(code)" case let .apiGetBadgeState(userId): return "/_badge state \(userId)" case let .apiAckBadgeAlert(userId, badgePurchaseId, alertKind, snooze, episode): - return "/_badge ack \(userId) \(badgePurchaseId) \(alertKind.text) \(onOff(snooze)) \(episode)" + return "/_badge ack \(userId) \(badgePurchaseId) \(badgeAlertKindParam(alertKind)) \(onOff(snooze)) \(episode)" case .showVersion: return "/version" case let .getAgentSubsTotal(userId): return "/get subs total \(userId)" case let .getAgentServersSummary(userId): return "/get servers summary \(userId)" @@ -693,6 +693,17 @@ enum ChatCommand: ChatCmdProtocol { pwd == "" || pwd == nil ? "" : " " + encodeJSON(pwd) } + // /_badge ack takes the kind in core's text encoding, not the JSON tag + private func badgeAlertKindParam(_ kind: BadgeAlertKind) -> String { + switch kind { + case .renewalApproaching: "renewal_approaching" + case .paymentIssue: "payment_issue" + case .subscriptionEnded: "subscription_ended" + case .prepaidEnding: "prepaid_ending" + case .supportEnded: "support_ended" + } + } + private func maybeContent(_ mc: MsgContent?) -> String { if case let .text(s) = mc, s.isEmpty { "" @@ -1035,7 +1046,7 @@ enum ChatResponse2: Decodable, ChatAPIResult { case appSettings(appSettings: AppSettings) // badges // the full user, not UserRef: its profile carries the badge that setUserBadge just stored - case badgeRedeemed(user: User, redeemedBadge: LocalBadge, newBadge: Bool) + case badgeRedeemed(user: User, redeemedBadge: LocalBadge, newBadge: Bool, badgeState: BadgeState?) case badgeState(user: UserRef, badgeState: BadgeState?) var responseType: String { @@ -1143,7 +1154,7 @@ enum ChatResponse2: Decodable, ChatAPIResult { case let .archiveExported(archiveErrors): return String(describing: archiveErrors) case let .archiveImported(archiveErrors): return String(describing: archiveErrors) case let .appSettings(appSettings): return String(describing: appSettings) - case let .badgeRedeemed(u, redeemedBadge, newBadge): return withUser(u, "redeemedBadge: \(String(describing: redeemedBadge))\nnewBadge: \(newBadge)") + case let .badgeRedeemed(u, redeemedBadge, newBadge, badgeState): return withUser(u, "redeemedBadge: \(String(describing: redeemedBadge))\nnewBadge: \(newBadge)\nbadgeState: \(String(describing: badgeState))") case let .badgeState(u, badgeState): return withUser(u, String(describing: badgeState)) } } diff --git a/apps/ios/Shared/Model/SimpleXAPI.swift b/apps/ios/Shared/Model/SimpleXAPI.swift index b90527507c..31995a9d5c 100644 --- a/apps/ios/Shared/Model/SimpleXAPI.swift +++ b/apps/ios/Shared/Model/SimpleXAPI.swift @@ -124,8 +124,8 @@ func chatSendCmd(_ cmd: ChatCommand, bgTask: Bool = true, bgDe } // Spec: spec/api.md#chatApiSendCmdWithRetry -func chatApiSendCmdWithRetry(_ cmd: ChatCommand, bgTask: Bool = true, bgDelay: Double? = nil, inProgress: BoxedValue? = nil, retryNum: Int32 = 0) async -> APIResult? { - let r: APIResult = await chatApiSendCmd(cmd, bgTask: bgTask, bgDelay: bgDelay, retryNum: retryNum) +func chatApiSendCmdWithRetry(_ cmd: ChatCommand, bgTask: Bool = true, bgDelay: Double? = nil, inProgress: BoxedValue? = nil, retryNum: Int32 = 0, log: Bool = true) async -> APIResult? { + let r: APIResult = await chatApiSendCmd(cmd, bgTask: bgTask, bgDelay: bgDelay, retryNum: retryNum, log: log) if inProgress == nil || inProgress?.boxedValue == true, case let .error(e) = r, let alert = retryableNetworkErrorAlert(e) { return await withCheckedContinuation { cont in @@ -135,7 +135,7 @@ func chatApiSendCmdWithRetry(_ cmd: ChatCommand, bgTask: Bool cont.resume(returning: nil) }, onRetry: { - let r1: APIResult? = await chatApiSendCmdWithRetry(cmd, bgTask: bgTask, bgDelay: bgDelay, inProgress: inProgress, retryNum: retryNum + 1) + let r1: APIResult? = await chatApiSendCmdWithRetry(cmd, bgTask: bgTask, bgDelay: bgDelay, inProgress: inProgress, retryNum: retryNum + 1, log: log) cont.resume(returning: r1) } ) @@ -200,6 +200,10 @@ func retryableNetworkErrorAlert(_ e: ChatError) -> (title: String, message: Stri title: NSLocalizedString("No private routing session", comment: "alert title"), message: proxyDestinationErrorAlertMessage(proxyServer: proxyServer, destServer: destServer) ) + case .errorAgent(.AGENT(.A_SERVICE(.timeout))): ( + title: NSLocalizedString("Connection timeout", comment: "alert title"), + message: NSLocalizedString("The service did not respond. Please try again.", comment: "alert message") + ) default: nil } } @@ -2182,86 +2186,35 @@ func resetAgentServersStats() async throws { try await sendCommandOkResp(.resetAgentServersStats) } -// The failures redeemBadgeCode raises, as core flattens them to command error text. -// tests/Bots/BadgeServiceTests.hs asserts that text, so a change in core breaks a test there. -enum BadgeRedeemError: Error { - case invalidCode - case serviceNotConfigured - case alreadyActive - case codeInvalid - case codeUsed - case codeExpired - case rateLimited - case serviceFailed - case badServiceResponse - case credentialNotVerified - case unsupportedVersion - case networkError - case badgeEnded - case unknown +// log: false because the code is a bearer secret until it is redeemed - it is in the command. +// nil when the user cancels the retry alert. +func apiRedeemBadgeCode(_ userId: Int64, _ code: String) async throws -> (user: User, newBadge: Bool, badgeState: BadgeState?)? { + let r: APIResult? = await chatApiSendCmdWithRetry(.apiRedeemBadgeCode(userId: userId, code: code), log: false) + guard let r else { return nil } + // redeemedBadge is dropped: the user's profile carries what is shown + if case let .result(.badgeRedeemed(user, _, newBadge, badgeState)) = r { return (user, newBadge, badgeState) } + throw r.unexpected } -private enum BadgeErrorText { - static let invalidCode = "invalid badge code" - static let serviceNotConfigured = "badge service not configured" - static let alreadyActive = "badge already active" - static let unknownKeyIndex = "unknown badge key index" - static let credentialNotVerified = "badge credential does not verify against configured key" - static let invalidResponse = "invalid badge service response, " - static let unexpectedResponse = "unexpected badge service response: " - static let serviceError = "badge service error: " - // raised by sendServiceRequestTo, not by redeemBadgeCode itself, when the reply is not JSON - static let undecodableResponse = "invalid service response" -} - -func badgeRedeemError(_ error: ChatError) -> BadgeRedeemError { - // the app's own classifier decides what counts as a network failure; only the classification is - // used here, not its retry policy - a client that retries makes code guessing cheaper - if retryableNetworkErrorAlert(error) != nil { return .networkError } - guard case let .error(.commandError(message)) = error else { return .unknown } - switch message { - case BadgeErrorText.invalidCode: return .invalidCode - case BadgeErrorText.serviceNotConfigured: return .serviceNotConfigured - case BadgeErrorText.alreadyActive: return .alreadyActive - case BadgeErrorText.unknownKeyIndex, BadgeErrorText.credentialNotVerified: return .credentialNotVerified - case BadgeErrorText.undecodableResponse: return .badServiceResponse - default: break - } - if message.hasPrefix(BadgeErrorText.invalidResponse) || message.hasPrefix(BadgeErrorText.unexpectedResponse) { - return .badServiceResponse - } - if message.hasPrefix(BadgeErrorText.serviceError) { - return badgeServiceError(String(message.dropFirst(BadgeErrorText.serviceError.count))) - } - return .unknown -} - -// the service's own tag, which core bounds to [a-z0-9_] and 32 characters and which is never shown -private func badgeServiceError(_ tag: String) -> BadgeRedeemError { - switch tag { - case "code_invalid": return .codeInvalid - case "code_used": return .codeUsed - case "code_expired": return .codeExpired - case "rate_limited": return .rateLimited - // retrying never succeeds: the client is too old for the service - case "unsupported_version": return .unsupportedVersion - default: return .serviceFailed - } -} - -// log: false because the code is a bearer secret until it is redeemed - it is in the command, and a -// service response echoed into an error message would carry it into the terminal with the response. -func apiRedeemBadgeCode(_ userId: Int64, _ code: String) async throws -> (user: User, newBadge: Bool) { - let r: APIResult = await chatApiSendCmd(.apiRedeemBadgeCode(userId: userId, code: code), log: false) - switch r { - // redeemedBadge is dropped: it is the credential, and the user's profile carries what is shown - case let .result(.badgeRedeemed(user, _, newBadge)): return (user, newBadge) - case let .error(e): throw badgeRedeemError(e) - default: - // the response type alone - it names a case or a JSON key, never the service's message - logger.error("apiRedeemBadgeCode: unexpected \(r.responseType)") - throw BadgeRedeemError.unknown +// localized where the user can act on it; otherwise the error itself, so a screenshot says what happened +func redeemErrorText(_ error: Error) -> String { + if case let .error(.badgeRedeemError(e)) = error as? ChatError { + switch e { + case .invalidCode: return NSLocalizedString("This code is not valid.", comment: "alert message") + case .serviceNotConfigured: return NSLocalizedString("This app version cannot redeem badge codes.", comment: "alert message") + case .badgeActive: return NSLocalizedString("This profile already has a badge. Redeem the code on another profile, or once this badge ends.", comment: "alert message") + case .serviceError(.codeInvalid): return NSLocalizedString("This code was not recognised.", comment: "alert message") + case .serviceError(.codeUsed): return NSLocalizedString("This code has already been used.", comment: "alert message") + case .serviceError(.codeExpired): return NSLocalizedString("This code has expired.", comment: "alert message") + case .serviceError(.rateLimited): return NSLocalizedString("Too many attempts. Please try again later.", comment: "alert message") + case .serviceError(.unsupportedVersion): return NSLocalizedString("This app version is too old for the badge service. Please update the app.", comment: "alert message") + case .serviceError: break + case let .invalidResponse(message): + return String.localizedStringWithFormat(NSLocalizedString("The badge service sent an unexpected response: %@", comment: "alert message"), message) + case .unknownKeyIndex, .credentialNotVerified: return NSLocalizedString("This app version cannot verify this badge. Please update the app.", comment: "alert message") + } } + return String.localizedStringWithFormat(NSLocalizedString("Error: %@", comment: "alert message"), responseError(error)) } func apiGetBadgeState(_ userId: Int64) async throws -> BadgeState? { @@ -3085,10 +3038,10 @@ func processReceivedMsg(_ res: ChatEvent) async { } } case let .badgeChanged(user, badgeState): - if active(user) { - await MainActor.run { - // read by core after retiring or presenting, so it carries the profile badge as changed - m.updateUser(user) + await MainActor.run { + // read by core after retiring or presenting, so it carries the profile badge as changed + m.updateUser(user) + if active(user) { BadgeModel.shared.set(userId: user.userId, badgeState: badgeState) } } diff --git a/apps/ios/Shared/Views/Badges/BadgesRedeemCodeView.swift b/apps/ios/Shared/Views/Badges/BadgesRedeemCodeView.swift index 6298425e8c..a9442a3ed0 100644 --- a/apps/ios/Shared/Views/Badges/BadgesRedeemCodeView.swift +++ b/apps/ios/Shared/Views/Badges/BadgesRedeemCodeView.swift @@ -123,24 +123,30 @@ struct BadgesRedeemCodeView: View { .disabled(submitting) } + // a changed field re-enters through onChange with the formatted text, which is when it is parsed private func applyCodeInput(_ s: String) { let formatted = formatBadgeCodeInput(s) - if formatted != code { code = formatted } - canonicalCode = parseBadgeCode(formatted) + if formatted != code { + code = formatted + } else { + canonicalCode = parseBadgeCode(formatted) + } } private func processQRCode(_ resp: Result) { switch resp { case let .success(r): let formatted = formatBadgeCodeInput(r.string) - if parseBadgeCode(formatted) == nil { + if let canonical = parseBadgeCode(formatted) { + // set here rather than through onChange, which runs after redeem() reads it + code = formatted + canonicalCode = canonical + redeem() + } else { showAlert( NSLocalizedString("Invalid QR code", comment: "alert title"), message: NSLocalizedString("The code you scanned is not a badge code.", comment: "alert message") ) - } else { - applyCodeInput(formatted) - redeem() } case let .failure(e): logger.error("processQRCode QR code error: \(e.localizedDescription)") @@ -167,56 +173,36 @@ struct BadgesRedeemCodeView: View { submitting = true Task { do { - let (redeemedUser, newBadge) = try await apiRedeemBadgeCode(user.userId, sending) - let badgeState = try? await apiGetBadgeState(user.userId) + guard let redeemed = try await apiRedeemBadgeCode(user.userId, sending) else { + await MainActor.run { submitting = false } + return + } await MainActor.run { submitting = false - // written before the pop: BadgesView swaps its content under this pushed view, so - // the pop reveals Your Badge already in place rather than animating it afterwards - if let badgeState { - BadgeModel.shared.set(userId: user.userId, badgeState: badgeState) - } - // the response is the only carrier: redeeming raises no event that refreshes the - // profile, so without this the badge beside the name is the one from before - chatModel.updateUser(redeemedUser) - if let badgeState, !badgeState.shown { + // set before dismissing: BadgesView then switches Support to Your Badge while this screen + // still covers it, so the pop lands on Your Badge instead of showing the switch + BadgeModel.shared.set(userId: user.userId, badgeState: redeemed.badgeState) + chatModel.updateUser(redeemed.user) + if let badgeState = redeemed.badgeState, !badgeState.shown { // a replay adds no purchase; a fresh code's badge can be retired on arrival - showAlert(NSLocalizedString("Cannot redeem code", comment: "alert title"), message: failureMessage(newBadge ? .badgeEnded : .codeUsed)) + let message = redeemed.newBadge + ? NSLocalizedString("The code was accepted, but the badge it grants has already ended.", comment: "alert message") + : NSLocalizedString("This code has already been used.", comment: "alert message") + showAlert(NSLocalizedString("Cannot redeem code", comment: "alert title"), message: message) } else { supporterBannerShown = true dismiss() } } } catch let error { - let redeemError = error as? BadgeRedeemError ?? .unknown - // the mapped case only - core embeds the service's response in some of these messages - logger.error("apiRedeemBadgeCode: \(String(describing: redeemError))") + logger.error("apiRedeemBadgeCode: \(responseError(error))") await MainActor.run { submitting = false - showAlert(NSLocalizedString("Cannot redeem code", comment: "alert title"), message: failureMessage(redeemError)) + showAlert(NSLocalizedString("Cannot redeem code", comment: "alert title"), message: redeemErrorText(error)) } } } } - - private func failureMessage(_ failure: BadgeRedeemError) -> String { - switch failure { - case .invalidCode: NSLocalizedString("This code is not valid.", comment: "alert message") - case .serviceNotConfigured: NSLocalizedString("This app version cannot redeem badge codes.", comment: "alert message") - case .alreadyActive: NSLocalizedString("This profile already has a badge. Redeem the code on another profile, or once this badge ends.", comment: "alert message") - case .codeInvalid: NSLocalizedString("This code was not recognised.", comment: "alert message") - case .codeUsed: NSLocalizedString("This code has already been used.", comment: "alert message") - case .codeExpired: NSLocalizedString("This code has expired.", comment: "alert message") - case .rateLimited: NSLocalizedString("Too many attempts. Please try again later.", comment: "alert message") - case .serviceFailed: NSLocalizedString("The badge service is unavailable. Please try again later.", comment: "alert message") - case .badServiceResponse: NSLocalizedString("The badge service sent an unexpected response.", comment: "alert message") - case .credentialNotVerified: NSLocalizedString("This app version cannot verify this badge. Please update the app.", comment: "alert message") - case .unsupportedVersion: NSLocalizedString("This app version is too old for the badge service. Please update the app.", comment: "alert message") - case .networkError: NSLocalizedString("Connection error. Please check your network connection.", comment: "alert message") - case .badgeEnded: NSLocalizedString("The code was accepted, but the badge it grants has already ended.", comment: "alert message") - case .unknown: NSLocalizedString("The code could not be redeemed.", comment: "alert message") - } - } } struct BadgesRedeemCodeView_Previews: PreviewProvider { diff --git a/apps/ios/Shared/Views/Badges/BadgesYourBadgeView.swift b/apps/ios/Shared/Views/Badges/BadgesYourBadgeView.swift index ceb40e77cd..166abc449a 100644 --- a/apps/ios/Shared/Views/Badges/BadgesYourBadgeView.swift +++ b/apps/ios/Shared/Views/Badges/BadgesYourBadgeView.swift @@ -14,18 +14,10 @@ struct BadgesYourBadgeView: View { let badgeState: BadgeState var showsAsSheet: Bool = false - private var title: LocalizedStringKey { - badgeState.shown ? "Your badge" : "Support ended" - } - - // pushed, the navigation bar carries the title and animates it; as a sheet root there is no bar - // to put it in, so the title is drawn in the content, as the Support screen does - private var navTitle: LocalizedStringKey { showsAsSheet ? "" : title } - var body: some View { VStack(spacing: 0) { if showsAsSheet { - Text(title) + Text("Your badge") .font(.largeTitle) .bold() .foregroundColor(theme.colors.primary) @@ -51,7 +43,7 @@ struct BadgesYourBadgeView: View { } } .frame(maxHeight: .infinity) - .navigationTitle(navTitle) + .navigationTitle(showsAsSheet ? "" : "Your badge") .navigationBarTitleDisplayMode(showsAsSheet ? .inline : .large) .modifier(ThemedBackground(grouped: true)) } @@ -69,7 +61,7 @@ struct BadgeSummary: View { .frame(width: 68, height: 68) .padding(.bottom, 8) - badgeTypeName(badgeState.badgeType) + Text(badgeTypeName(badgeState.badgeType)) .font(.title3) .fontWeight(.semibold) @@ -81,13 +73,3 @@ struct BadgeSummary: View { .padding(.vertical, 8) } } - -// verbatim for an unknown type: it is the service's string, and must not be looked up as a localised key -private func badgeTypeName(_ t: BadgeType) -> Text { - switch t { - case .supporter: Text("Supporter") - case .legend: Text("Legend") - case .investor: Text("Investor") - case let .unknown(s): Text(verbatim: s) - } -} diff --git a/apps/ios/Shared/Views/ChatList/ChatListView.swift b/apps/ios/Shared/Views/ChatList/ChatListView.swift index da829a92ef..61f29485a7 100644 --- a/apps/ios/Shared/Views/ChatList/ChatListView.swift +++ b/apps/ios/Shared/Views/ChatList/ChatListView.swift @@ -382,6 +382,10 @@ struct ChatListView: View { badgeModel.alert?.kind == .supportEnded && badgeModel.userId == chatModel.currentUser?.userId } + private var hasShownBadge: Bool { + badgeModel.badgeState?.shown == true && badgeModel.userId == chatModel.currentUser?.userId + } + private func showSupportEndedDismissAlert() { showAlert(NSLocalizedString("Support ended", comment: "alert title")) { [ @@ -470,7 +474,7 @@ struct ChatListView: View { .listRowSeparator(.hidden) .listRowBackground(Color.clear) .zIndex(1) - } else if !supporterBannerShown && chatModel.chats.count > 3 { + } else if !supporterBannerShown && !hasShownBadge && chatModel.chats.count > 3 { SupportSimpleXBanner( onTap: { showBadgesSheet = true }, onDismiss: showSupportSimpleXDismissAlert diff --git a/apps/ios/Shared/Views/Helpers/NameBadge.swift b/apps/ios/Shared/Views/Helpers/NameBadge.swift index fa49adc29f..26d9821158 100644 --- a/apps/ios/Shared/Views/Helpers/NameBadge.swift +++ b/apps/ios/Shared/Views/Helpers/NameBadge.swift @@ -147,8 +147,7 @@ func showBadgeInfoAlert(_ name: String, _ badge: LocalBadge) { ) default: // a verified badge's type is signed and can't be faked, so the real (possibly unknown) type name is the title - let t = badge.badge.badgeType.text - let title = t.prefix(1).uppercased() + t.dropFirst() + let title = badgeTypeName(badge.badge.badgeType) if case .investor = badge.badge.badgeType { let message = String.localizedStringWithFormat(NSLocalizedString("%@ invested in SimpleX Chat crowdfunding.", comment: "badge alert"), name) showAlert(title, message: message) { @@ -172,3 +171,13 @@ func showBadgeInfoAlert(_ name: String, _ badge: LocalBadge) { } } } + +// verbatim for an unknown type: it is the service's string, and must not be looked up as a localised key +func badgeTypeName(_ t: BadgeType) -> String { + switch t { + case .supporter: NSLocalizedString("Supporter", comment: "badge type") + case .legend: NSLocalizedString("Legend", comment: "badge type") + case .investor: NSLocalizedString("Investor", comment: "badge type") + case let .unknown(s): s + } +} diff --git a/apps/ios/SimpleXChat/API.swift b/apps/ios/SimpleXChat/API.swift index 09609ab7fd..bc23e53011 100644 --- a/apps/ios/SimpleXChat/API.swift +++ b/apps/ios/SimpleXChat/API.swift @@ -163,8 +163,8 @@ public func chatJsonLength(_ s: String) -> Int { return Int(chat_json_length(&c)) } -// The code as core will accept it - prefix and 20 characters, no separators - or nil if it does not -// parse. Validity is decided only here: a second check-character implementation would drift. +// the code in core's canonical form (prefix and 20 characters, no separators), or nil when core rejects it. +// The check character is verified by core via FFI, not re-implemented here, so the two cannot disagree. public func parseBadgeCode(_ s: String) -> String? { var c = s.cString(using: .utf8)! let canonical = fromCString(chat_parse_badge_code(&c)!) diff --git a/apps/ios/SimpleXChat/APITypes.swift b/apps/ios/SimpleXChat/APITypes.swift index 33d683288a..d7b8623ab3 100644 --- a/apps/ios/SimpleXChat/APITypes.swift +++ b/apps/ios/SimpleXChat/APITypes.swift @@ -812,6 +812,7 @@ public enum ChatErrorType: Decodable, Hashable { case agentVersion case agentNoSubResult(agentConnId: String) case commandError(message: String) + case badgeRedeemError(badgeRedeemError: BadgeRedeemError) case serverProtocol case agentCommandError(message: String) case invalidFileDescription(message: String) @@ -823,6 +824,84 @@ public enum ChatErrorType: Decodable, Hashable { case exception(message: String) } +public enum BadgeRedeemError: Decodable, Hashable { + case invalidCode + case serviceNotConfigured + case badgeActive + case serviceError(serviceError: BadgeServiceErrorCode) + case invalidResponse(message: String) + case unknownKeyIndex + case credentialNotVerified +} + +// the service is deployed ahead of clients, so a code this version does not know keeps its tag +public enum BadgeServiceErrorCode: Decodable, Hashable { + case badRequest + case unsupportedVersion + case unknownPurchaseKey + case unknownOfferId + case offerDisabled + case offerMismatch + case productUnavailable + case paymentNotEntitled + case paymentPending + case providerUnavailable + case rateLimited + case codeInvalid + case codeUsed + case codeExpired + case receiptInvalid + case receiptUsed + case internalError + case unknown(String) + + public var text: String { + switch self { + case .badRequest: "bad_request" + case .unsupportedVersion: "unsupported_version" + case .unknownPurchaseKey: "unknown_purchase_key" + case .unknownOfferId: "unknown_offer_id" + case .offerDisabled: "offer_disabled" + case .offerMismatch: "offer_mismatch" + case .productUnavailable: "product_unavailable" + case .paymentNotEntitled: "payment_not_entitled" + case .paymentPending: "payment_pending" + case .providerUnavailable: "provider_unavailable" + case .rateLimited: "rate_limited" + case .codeInvalid: "code_invalid" + case .codeUsed: "code_used" + case .codeExpired: "code_expired" + case .receiptInvalid: "receipt_invalid" + case .receiptUsed: "receipt_used" + case .internalError: "internal" + case let .unknown(s): s + } + } + + public init(from decoder: Decoder) throws { + switch try decoder.singleValueContainer().decode(String.self) { + case "bad_request": self = .badRequest + case "unsupported_version": self = .unsupportedVersion + case "unknown_purchase_key": self = .unknownPurchaseKey + case "unknown_offer_id": self = .unknownOfferId + case "offer_disabled": self = .offerDisabled + case "offer_mismatch": self = .offerMismatch + case "product_unavailable": self = .productUnavailable + case "payment_not_entitled": self = .paymentNotEntitled + case "payment_pending": self = .paymentPending + case "provider_unavailable": self = .providerUnavailable + case "rate_limited": self = .rateLimited + case "code_invalid": self = .codeInvalid + case "code_used": self = .codeUsed + case "code_expired": self = .codeExpired + case "receipt_invalid": self = .receiptInvalid + case "receipt_used": self = .receiptUsed + case "internal": self = .internalError + case let s: self = .unknown(s) + } + } +} + public enum StoreError: Decodable, Hashable { case duplicateName case userNotFound(userId: Int64) @@ -1077,6 +1156,15 @@ public enum SMPAgentError: Decodable, Hashable { case A_CRYPTO case A_DUPLICATE case A_QUEUE(queueErr: String) + case A_SERVICE(serviceError: AgentServiceError) +} + +public enum AgentServiceError: Decodable, Hashable { + case rejected + case timeout + case noPendingRequest + case notDRAddress + case badSignature } public enum ArchiveError: Decodable, Hashable { diff --git a/apps/ios/SimpleXChat/ChatTypes.swift b/apps/ios/SimpleXChat/ChatTypes.swift index b8f6fd0bb0..c6e3bd5d74 100644 --- a/apps/ios/SimpleXChat/ChatTypes.swift +++ b/apps/ios/SimpleXChat/ChatTypes.swift @@ -350,62 +350,17 @@ private func badgeDateText(_ date: Date) -> String { DateFormatter.localizedString(from: date, dateStyle: .long, timeStyle: .none) } -public struct BadgeAlertPrice: Hashable { +public struct BadgeAlertPrice: Codable, Hashable { public var amount: Int64 public var currency: String } -extension BadgeAlertPrice: Codable { - // encoded as the Haskell tuple it comes from: [amount, currency] - public init(from decoder: Decoder) throws { - var c = try decoder.unkeyedContainer() - amount = try c.decode(Int64.self) - currency = try c.decode(String.self) - } - - public func encode(to encoder: Encoder) throws { - var c = encoder.unkeyedContainer() - try c.encode(amount) - try c.encode(currency) - } -} - -public enum BadgeAlertKind: Hashable { +public enum BadgeAlertKind: String, Codable, Hashable { case renewalApproaching case paymentIssue case subscriptionEnded case prepaidEnding case supportEnded - case unknown(String) - - public var text: String { - switch self { - case .renewalApproaching: "renewal_approaching" - case .paymentIssue: "payment_issue" - case .subscriptionEnded: "subscription_ended" - case .prepaidEnding: "prepaid_ending" - case .supportEnded: "support_ended" - case let .unknown(s): s - } - } -} - -extension BadgeAlertKind: Codable { - public init(from decoder: Decoder) throws { - switch try decoder.singleValueContainer().decode(String.self) { - case "renewal_approaching": self = .renewalApproaching - case "payment_issue": self = .paymentIssue - case "subscription_ended": self = .subscriptionEnded - case "prepaid_ending": self = .prepaidEnding - case "support_ended": self = .supportEnded - case let s: self = .unknown(s) - } - } - - public func encode(to encoder: Encoder) throws { - var c = encoder.singleValueContainer() - try c.encode(text) - } } // the wire proof carried on a profile - opaque to the UI, only round-tripped back to the core (apiPrepareContact) diff --git a/apps/ios/spec/api.md b/apps/ios/spec/api.md index f9a3c35917..56c3c34cb6 100644 --- a/apps/ios/spec/api.md +++ b/apps/ios/spec/api.md @@ -534,7 +534,8 @@ func chatApiSendCmdWithRetry( // SimpleXAPI.swift L127 bgTask: Bool = true, bgDelay: Double? = nil, inProgress: BoxedValue? = nil, - retryNum: Int32 = 0 + retryNum: Int32 = 0, + log: Bool = true ) async -> APIResult? ``` diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/model/ChatModel.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/model/ChatModel.kt index f033c0963e..b5c0f23c60 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/model/ChatModel.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/model/ChatModel.kt @@ -2246,55 +2246,16 @@ data class BadgeAlert( val dateText: String get() = badgeDateText(date) } -@Serializable(with = BadgeAlertPriceSerializer::class) +@Serializable data class BadgeAlertPrice(val amount: Long, val currency: String) -// encoded as the Haskell tuple it comes from: [amount, currency] -object BadgeAlertPriceSerializer : KSerializer { - override val descriptor: SerialDescriptor = buildClassSerialDescriptor("BadgeAlertPrice") - override fun deserialize(decoder: Decoder): BadgeAlertPrice { - require(decoder is JsonDecoder) - val arr = decoder.decodeJsonElement().jsonArray - return BadgeAlertPrice(arr[0].jsonPrimitive.long, arr[1].jsonPrimitive.content) - } - override fun serialize(encoder: Encoder, value: BadgeAlertPrice) { - require(encoder is JsonEncoder) - encoder.encodeJsonElement(buildJsonArray { add(value.amount); add(value.currency) }) - } -} - -@Serializable(with = BadgeAlertKindSerializer::class) -sealed class BadgeAlertKind { - @Serializable @SerialName("renewal_approaching") object RenewalApproaching: BadgeAlertKind() - @Serializable @SerialName("payment_issue") object PaymentIssue: BadgeAlertKind() - @Serializable @SerialName("subscription_ended") object SubscriptionEnded: BadgeAlertKind() - @Serializable @SerialName("prepaid_ending") object PrepaidEnding: BadgeAlertKind() - @Serializable @SerialName("support_ended") object SupportEnded: BadgeAlertKind() - @Serializable @SerialName("unknown") data class Unknown(val kind: String): BadgeAlertKind() - - val text: String - get() = when (this) { - is RenewalApproaching -> "renewal_approaching" - is PaymentIssue -> "payment_issue" - is SubscriptionEnded -> "subscription_ended" - is PrepaidEnding -> "prepaid_ending" - is SupportEnded -> "support_ended" - is Unknown -> kind - } -} - -object BadgeAlertKindSerializer : KSerializer { - override val descriptor: SerialDescriptor = PrimitiveSerialDescriptor("BadgeAlertKind", PrimitiveKind.STRING) - override fun deserialize(decoder: Decoder): BadgeAlertKind = - when (val v = decoder.decodeString()) { - "renewal_approaching" -> BadgeAlertKind.RenewalApproaching - "payment_issue" -> BadgeAlertKind.PaymentIssue - "subscription_ended" -> BadgeAlertKind.SubscriptionEnded - "prepaid_ending" -> BadgeAlertKind.PrepaidEnding - "support_ended" -> BadgeAlertKind.SupportEnded - else -> BadgeAlertKind.Unknown(v) - } - override fun serialize(encoder: Encoder, value: BadgeAlertKind) = encoder.encodeString(value.text) +@Serializable +enum class BadgeAlertKind { + @SerialName("renewalApproaching") RenewalApproaching, + @SerialName("paymentIssue") PaymentIssue, + @SerialName("subscriptionEnded") SubscriptionEnded, + @SerialName("prepaidEnding") PrepaidEnding, + @SerialName("supportEnded") SupportEnded } private fun badgeDateText(date: Instant): String { diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/model/SimpleXAPI.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/model/SimpleXAPI.kt index ed787cf266..8b4e4fc315 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/model/SimpleXAPI.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/model/SimpleXAPI.kt @@ -562,55 +562,44 @@ object ChatController { suspend fun resetAgentServersStats(rh: Long?): Boolean = sendCommandOkResp(rh, CC.ResetAgentServersStats()) - fun badgeRedeemError(error: ChatError): BadgeRedeemError { - // the app's own classifier decides what counts as a network failure; only the classification is - // used here, not its retry policy - a client that retries makes code guessing cheaper - if (retryableNetworkErrorAlert(error) != null) return BadgeRedeemError.NetworkError - if (error !is ChatError.ChatErrorChat || error.errorType !is ChatErrorType.CommandError) return BadgeRedeemError.Unknown - val message = error.errorType.message - when (message) { - BadgeErrorText.invalidCode -> return BadgeRedeemError.InvalidCode - BadgeErrorText.serviceNotConfigured -> return BadgeRedeemError.ServiceNotConfigured - BadgeErrorText.alreadyActive -> return BadgeRedeemError.AlreadyActive - BadgeErrorText.unknownKeyIndex, BadgeErrorText.credentialNotVerified -> return BadgeRedeemError.CredentialNotVerified - BadgeErrorText.undecodableResponse -> return BadgeRedeemError.BadServiceResponse - } - if (message.startsWith(BadgeErrorText.invalidResponse) || message.startsWith(BadgeErrorText.unexpectedResponse)) { - return BadgeRedeemError.BadServiceResponse - } - if (message.startsWith(BadgeErrorText.serviceError)) { - return badgeServiceError(message.removePrefix(BadgeErrorText.serviceError)) - } - return BadgeRedeemError.Unknown - } - - // the service's own tag, which core bounds to [a-z0-9_] and 32 characters and which is never shown - private fun badgeServiceError(tag: String): BadgeRedeemError = when (tag) { - "code_invalid" -> BadgeRedeemError.CodeInvalid - "code_used" -> BadgeRedeemError.CodeUsed - "code_expired" -> BadgeRedeemError.CodeExpired - "rate_limited" -> BadgeRedeemError.RateLimited - // retrying never succeeds: the client is too old for the service - "unsupported_version" -> BadgeRedeemError.UnsupportedVersion - else -> BadgeRedeemError.ServiceFailed - } - - // log = false because the code is a bearer secret until it is redeemed - it is in the command, and a - // service response echoed into an error message would carry it into the terminal with the response. - suspend fun apiRedeemBadgeCode(rh: Long?, userId: Long, code: String): BadgeRedeemResult { - val r = sendCmd(rh, CC.ApiRedeemBadgeCode(userId, code), log = false) + // log = false because the code is a bearer secret until it is redeemed - it is in the command. + // null when the user cancels the retry alert. + suspend fun apiRedeemBadgeCode(rh: Long?, userId: Long, code: String): BadgeRedeemResult? { + val r = sendCmdWithRetry(rh, CC.ApiRedeemBadgeCode(userId, code), log = false) ?: return null return when { - // redeemedBadge is dropped: it is the credential, and the user's profile carries what is shown - r is API.Result && r.res is CR.BadgeRedeemed -> BadgeRedeemResult.Redeemed(r.res.user, r.res.newBadge) - r is API.Error -> BadgeRedeemResult.Failed(badgeRedeemError(r.err)) + // redeemedBadge is dropped: the user's profile carries what is shown + r is API.Result && r.res is CR.BadgeRedeemed -> BadgeRedeemResult.Redeemed(r.res.user.updateRemoteHostId(rh), r.res.newBadge, r.res.badgeState) + r is API.Error -> BadgeRedeemResult.Failed(r.err) else -> { // the response type alone - it names a case or a JSON key, never the service's message Log.e(TAG, "apiRedeemBadgeCode: unexpected ${r.responseType}") - BadgeRedeemResult.Failed(BadgeRedeemError.Unknown) + BadgeRedeemResult.Failed(null) } } } + // localized where the user can act on it; otherwise the error itself, so a screenshot says what happened + fun redeemErrorText(err: ChatError?): String { + if (err is ChatError.ChatErrorChat && err.errorType is ChatErrorType.CEBadgeRedeemError) { + when (val e = err.errorType.badgeRedeemError) { + is BadgeRedeemError.InvalidCode -> return generalGetString(MR.strings.badges_error_invalid_code) + is BadgeRedeemError.ServiceNotConfigured -> return generalGetString(MR.strings.badges_error_service_not_configured) + is BadgeRedeemError.BadgeActive -> return generalGetString(MR.strings.badges_error_already_active) + is BadgeRedeemError.ServiceError -> when (e.serviceError) { + is BadgeServiceErrorCode.CodeInvalid -> return generalGetString(MR.strings.badges_error_code_invalid) + is BadgeServiceErrorCode.CodeUsed -> return generalGetString(MR.strings.badges_error_code_used) + is BadgeServiceErrorCode.CodeExpired -> return generalGetString(MR.strings.badges_error_code_expired) + is BadgeServiceErrorCode.RateLimited -> return generalGetString(MR.strings.badges_error_rate_limited) + is BadgeServiceErrorCode.UnsupportedVersion -> return generalGetString(MR.strings.badges_error_unsupported_version) + else -> {} + } + is BadgeRedeemError.InvalidResponse -> return String.format(generalGetString(MR.strings.badges_error_bad_service_response), e.message) + is BadgeRedeemError.UnknownKeyIndex, is BadgeRedeemError.CredentialNotVerified -> return generalGetString(MR.strings.badges_error_credential_not_verified) + } + } + return "${generalGetString(MR.strings.error_prefix)}: ${err?.string ?: generalGetString(MR.strings.badges_error_unknown)}" + } + suspend fun apiGetBadgeState(rh: Long?, userId: Long): BadgeState? { val r = sendCmd(rh, CC.ApiGetBadgeState(userId)) if (r is API.Result && r.res is CR.BadgeStateR) return r.res.badgeState @@ -835,8 +824,8 @@ object ChatController { } } - private suspend fun sendCmdWithRetry(rhId: Long?, cmd: CC, inProgress: MutableState? = null, retryNum: Int = 0): API? { - val r = sendCmd(rhId, cmd, retryNum = retryNum) + private suspend fun sendCmdWithRetry(rhId: Long?, cmd: CC, inProgress: MutableState? = null, retryNum: Int = 0, log: Boolean = true): API? { + val r = sendCmd(rhId, cmd, retryNum = retryNum, log = log) val alert = if (r is API.Error) retryableNetworkErrorAlert(r.err) else null if ((inProgress == null || inProgress.value) && alert != null) { return suspendCancellableCoroutine { cont -> @@ -856,7 +845,7 @@ object ChatController { safeResume( runCatching { coroutineScope { - sendCmdWithRetry(rhId, cmd, inProgress = inProgress, retryNum = retryNum + 1) + sendCmdWithRetry(rhId, cmd, inProgress = inProgress, retryNum = retryNum + 1, log = log) } } ) @@ -919,6 +908,10 @@ object ChatController { else -> null } } + is AgentErrorType.AGENT -> + if (e.agentErr is SMPAgentError.A_SERVICE && e.agentErr.serviceError is AgentServiceError.Timeout) { + return MR.strings.connection_timeout to generalGetString(MR.strings.service_request_timeout_desc) + } else -> return null } return null @@ -3565,11 +3558,13 @@ object ChatController { } } is CR.BadgeChanged -> - if (active(r.user)) { + if (rhId == chatModel.remoteHostId()) { withContext(Dispatchers.Main) { // read by core after retiring or presenting, so it carries the profile badge as changed - chatModel.updateUser(r.user) - BadgeModel.set(rhId, r.user.userId, r.badgeState) + chatModel.updateUser(r.user.updateRemoteHostId(rhId)) + if (active(r.user)) { + BadgeModel.set(rhId, r.user.userId, r.badgeState) + } } } is CR.BadgeAlertR -> @@ -3875,41 +3870,10 @@ class SharedPreference(val get: () -> T, set: (T) -> Unit) { } } -// The failures redeemBadgeCode raises, as core flattens them to command error text. -// tests/Bots/BadgeServiceTests.hs asserts that text, so a change in core breaks a test there. -enum class BadgeRedeemError { - InvalidCode, - ServiceNotConfigured, - AlreadyActive, - CodeInvalid, - CodeUsed, - CodeExpired, - RateLimited, - ServiceFailed, - BadServiceResponse, - CredentialNotVerified, - UnsupportedVersion, - NetworkError, - BadgeEnded, - Unknown -} - -private object BadgeErrorText { - const val invalidCode = "invalid badge code" - const val serviceNotConfigured = "badge service not configured" - const val alreadyActive = "badge already active" - const val unknownKeyIndex = "unknown badge key index" - const val credentialNotVerified = "badge credential does not verify against configured key" - const val invalidResponse = "invalid badge service response, " - const val unexpectedResponse = "unexpected badge service response: " - const val serviceError = "badge service error: " - // raised by sendServiceRequestTo, not by redeemBadgeCode itself, when the reply is not JSON - const val undecodableResponse = "invalid service response" -} - sealed class BadgeRedeemResult { - class Redeemed(val user: User, val newBadge: Boolean): BadgeRedeemResult() - class Failed(val error: BadgeRedeemError): BadgeRedeemResult() + class Redeemed(val user: User, val newBadge: Boolean, val badgeState: BadgeState?): BadgeRedeemResult() + // err is null for a response of an unexpected type, which is logged where it is received + class Failed(val err: ChatError?): BadgeRedeemResult() } // ChatCommand @@ -4317,7 +4281,7 @@ sealed class CC { is ApiStandaloneFileInfo -> "/_download info $url" is ApiRedeemBadgeCode -> "/_redeem_badge_code $userId $code" is ApiGetBadgeState -> "/_badge state $userId" - is ApiAckBadgeAlert -> "/_badge ack $userId $badgePurchaseId ${alertKind.text} ${onOff(snooze)} $episode" + is ApiAckBadgeAlert -> "/_badge ack $userId $badgePurchaseId ${badgeAlertKindParam(alertKind)} ${onOff(snooze)} $episode" is ShowVersion -> "/version" is ResetAgentServersStats -> "/reset servers stats" is GetAgentSubsTotal -> "/get subs total $userId" @@ -4559,6 +4523,15 @@ sealed class CC { fun onOff(b: Boolean): String = if (b) "on" else "off" +// /_badge ack takes the kind in core's text encoding, not the JSON tag +private fun badgeAlertKindParam(kind: BadgeAlertKind): String = when (kind) { + BadgeAlertKind.RenewalApproaching -> "renewal_approaching" + BadgeAlertKind.PaymentIssue -> "payment_issue" + BadgeAlertKind.SubscriptionEnded -> "subscription_ended" + BadgeAlertKind.PrepaidEnding -> "prepaid_ending" + BadgeAlertKind.SupportEnded -> "support_ended" +} + @Serializable data class NewUser( val profile: Profile?, @@ -6879,7 +6852,7 @@ sealed class CR { @Serializable @SerialName("agentServersSummary") class AgentServersSummary(val user: UserRef, val serversSummary: PresentedServersSummary): CR() // badges // the full user, not UserRef: its profile carries the badge that setUserBadge just stored - @Serializable @SerialName("badgeRedeemed") class BadgeRedeemed(val user: User, val redeemedBadge: LocalBadge, val newBadge: Boolean): CR() + @Serializable @SerialName("badgeRedeemed") class BadgeRedeemed(val user: User, val redeemedBadge: LocalBadge, val newBadge: Boolean, val badgeState: BadgeState?): CR() @Serializable @SerialName("badgeState") class BadgeStateR(val user: UserRef, val badgeState: BadgeState?): CR() @Serializable @SerialName("badgeChanged") class BadgeChanged(val user: User, val badgeState: BadgeState?): CR() @Serializable @SerialName("badgeAlert") class BadgeAlertR(val user: UserRef, val badgeAlert: BadgeAlert): CR() @@ -7276,7 +7249,7 @@ sealed class CR { is ArchiveExported -> "${archiveErrors.map { it.string } }" is ArchiveImported -> "${archiveErrors.map { it.string } }" is AppSettingsR -> json.encodeToString(appSettings) - is BadgeRedeemed -> withUser(user, "redeemedBadge: ${json.encodeToString(redeemedBadge)}\nnewBadge: $newBadge") + is BadgeRedeemed -> withUser(user, "redeemedBadge: ${json.encodeToString(redeemedBadge)}\nnewBadge: $newBadge\nbadgeState: ${json.encodeToString(badgeState)}") is BadgeStateR -> withUser(user, json.encodeToString(badgeState)) is BadgeChanged -> withUser(user, json.encodeToString(badgeState)) is BadgeAlertR -> withUser(user, json.encodeToString(badgeAlert)) @@ -7331,6 +7304,97 @@ sealed class SimplexDomainError { @Serializable @SerialName("unknownDomain") object UnknownDomain : SimplexDomainError() } +@Serializable +sealed class BadgeRedeemError { + val string: String get() = when (this) { + is InvalidCode -> "invalidCode" + is ServiceNotConfigured -> "serviceNotConfigured" + is BadgeActive -> "badgeActive" + is ServiceError -> "serviceError ${serviceError.text}" + is InvalidResponse -> "invalidResponse $message" + is UnknownKeyIndex -> "unknownKeyIndex" + is CredentialNotVerified -> "credentialNotVerified" + } + @Serializable @SerialName("invalidCode") object InvalidCode : BadgeRedeemError() + @Serializable @SerialName("serviceNotConfigured") object ServiceNotConfigured : BadgeRedeemError() + @Serializable @SerialName("badgeActive") object BadgeActive : BadgeRedeemError() + @Serializable @SerialName("serviceError") class ServiceError(val serviceError: BadgeServiceErrorCode) : BadgeRedeemError() + @Serializable @SerialName("invalidResponse") class InvalidResponse(val message: String) : BadgeRedeemError() + @Serializable @SerialName("unknownKeyIndex") object UnknownKeyIndex : BadgeRedeemError() + @Serializable @SerialName("credentialNotVerified") object CredentialNotVerified : BadgeRedeemError() +} + +// the service is deployed ahead of clients, so a code this version does not know keeps its tag +@Serializable(with = BadgeServiceErrorCodeSerializer::class) +sealed class BadgeServiceErrorCode { + object BadRequest: BadgeServiceErrorCode() + object UnsupportedVersion: BadgeServiceErrorCode() + object UnknownPurchaseKey: BadgeServiceErrorCode() + object UnknownOfferId: BadgeServiceErrorCode() + object OfferDisabled: BadgeServiceErrorCode() + object OfferMismatch: BadgeServiceErrorCode() + object ProductUnavailable: BadgeServiceErrorCode() + object PaymentNotEntitled: BadgeServiceErrorCode() + object PaymentPending: BadgeServiceErrorCode() + object ProviderUnavailable: BadgeServiceErrorCode() + object RateLimited: BadgeServiceErrorCode() + object CodeInvalid: BadgeServiceErrorCode() + object CodeUsed: BadgeServiceErrorCode() + object CodeExpired: BadgeServiceErrorCode() + object ReceiptInvalid: BadgeServiceErrorCode() + object ReceiptUsed: BadgeServiceErrorCode() + object Internal: BadgeServiceErrorCode() + data class Unknown(val code: String): BadgeServiceErrorCode() + + val text: String + get() = when (this) { + is BadRequest -> "bad_request" + is UnsupportedVersion -> "unsupported_version" + is UnknownPurchaseKey -> "unknown_purchase_key" + is UnknownOfferId -> "unknown_offer_id" + is OfferDisabled -> "offer_disabled" + is OfferMismatch -> "offer_mismatch" + is ProductUnavailable -> "product_unavailable" + is PaymentNotEntitled -> "payment_not_entitled" + is PaymentPending -> "payment_pending" + is ProviderUnavailable -> "provider_unavailable" + is RateLimited -> "rate_limited" + is CodeInvalid -> "code_invalid" + is CodeUsed -> "code_used" + is CodeExpired -> "code_expired" + is ReceiptInvalid -> "receipt_invalid" + is ReceiptUsed -> "receipt_used" + is Internal -> "internal" + is Unknown -> code + } +} + +object BadgeServiceErrorCodeSerializer : KSerializer { + override val descriptor: SerialDescriptor = PrimitiveSerialDescriptor("BadgeServiceErrorCode", PrimitiveKind.STRING) + override fun deserialize(decoder: Decoder): BadgeServiceErrorCode = + when (val v = decoder.decodeString()) { + "bad_request" -> BadgeServiceErrorCode.BadRequest + "unsupported_version" -> BadgeServiceErrorCode.UnsupportedVersion + "unknown_purchase_key" -> BadgeServiceErrorCode.UnknownPurchaseKey + "unknown_offer_id" -> BadgeServiceErrorCode.UnknownOfferId + "offer_disabled" -> BadgeServiceErrorCode.OfferDisabled + "offer_mismatch" -> BadgeServiceErrorCode.OfferMismatch + "product_unavailable" -> BadgeServiceErrorCode.ProductUnavailable + "payment_not_entitled" -> BadgeServiceErrorCode.PaymentNotEntitled + "payment_pending" -> BadgeServiceErrorCode.PaymentPending + "provider_unavailable" -> BadgeServiceErrorCode.ProviderUnavailable + "rate_limited" -> BadgeServiceErrorCode.RateLimited + "code_invalid" -> BadgeServiceErrorCode.CodeInvalid + "code_used" -> BadgeServiceErrorCode.CodeUsed + "code_expired" -> BadgeServiceErrorCode.CodeExpired + "receipt_invalid" -> BadgeServiceErrorCode.ReceiptInvalid + "receipt_used" -> BadgeServiceErrorCode.ReceiptUsed + "internal" -> BadgeServiceErrorCode.Internal + else -> BadgeServiceErrorCode.Unknown(v) + } + override fun serialize(encoder: Encoder, value: BadgeServiceErrorCode) = encoder.encodeString(value.text) +} + data class ConnectionPlanResult( val connLink: CreatedConnLink, val planSimplexName: SimplexNameInfo?, @@ -7736,6 +7800,7 @@ sealed class ChatErrorType { is AgentVersion -> "agentVersion" is AgentNoSubResult -> "agentNoSubResult" is CommandError -> "commandError $message" + is CEBadgeRedeemError -> "badgeRedeemError ${badgeRedeemError.string}" is ServerProtocol -> "serverProtocol" is AgentCommandError -> "agentCommandError" is InvalidFileDescription -> "invalidFileDescription" @@ -7820,6 +7885,7 @@ sealed class ChatErrorType { @Serializable @SerialName("agentVersion") object AgentVersion: ChatErrorType() @Serializable @SerialName("agentNoSubResult") class AgentNoSubResult(val agentConnId: String): ChatErrorType() @Serializable @SerialName("commandError") class CommandError(val message: String): ChatErrorType() + @Serializable @SerialName("badgeRedeemError") class CEBadgeRedeemError(val badgeRedeemError: BadgeRedeemError): ChatErrorType() @Serializable @SerialName("serverProtocol") object ServerProtocol: ChatErrorType() @Serializable @SerialName("agentCommandError") class AgentCommandError(val message: String): ChatErrorType() @Serializable @SerialName("invalidFileDescription") class InvalidFileDescription(val message: String): ChatErrorType() @@ -8254,6 +8320,7 @@ sealed class SMPAgentError { is A_CRYPTO -> "A_CRYPTO" is A_DUPLICATE -> "A_DUPLICATE" is A_QUEUE -> "A_QUEUE" + is A_SERVICE -> "A_SERVICE ${serviceError.string}" } @Serializable @SerialName("A_MESSAGE") object A_MESSAGE: SMPAgentError() @Serializable @SerialName("A_PROHIBITED") class A_PROHIBITED(val prohibitedErr: String): SMPAgentError() @@ -8262,6 +8329,23 @@ sealed class SMPAgentError { @Serializable @SerialName("A_CRYPTO") object A_CRYPTO: SMPAgentError() @Serializable @SerialName("A_DUPLICATE") object A_DUPLICATE: SMPAgentError() @Serializable @SerialName("A_QUEUE") class A_QUEUE(val queueErr: String): SMPAgentError() + @Serializable @SerialName("A_SERVICE") class A_SERVICE(val serviceError: AgentServiceError): SMPAgentError() +} + +@Serializable +sealed class AgentServiceError { + val string: String get() = when (this) { + is Rejected -> "rejected" + is Timeout -> "timeout" + is NoPendingRequest -> "noPendingRequest" + is NotDRAddress -> "notDRAddress" + is BadSignature -> "badSignature" + } + @Serializable @SerialName("rejected") object Rejected: AgentServiceError() + @Serializable @SerialName("timeout") object Timeout: AgentServiceError() + @Serializable @SerialName("noPendingRequest") object NoPendingRequest: AgentServiceError() + @Serializable @SerialName("notDRAddress") object NotDRAddress: AgentServiceError() + @Serializable @SerialName("badSignature") object BadSignature: AgentServiceError() } @Serializable diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/platform/Core.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/platform/Core.kt index 6b4e3e1353..ad0e9aaa5a 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/platform/Core.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/platform/Core.kt @@ -40,6 +40,13 @@ external fun chatReadFile(path: String, key: String, nonce: String): Array external fun chatEncryptFile(ctrl: ChatCtrl, fromPath: String, toPath: String): String external fun chatDecryptFile(fromPath: String, key: String, nonce: String, toPath: String): String +// the code in core's canonical form (prefix and 20 characters, no separators), or null when core rejects it. +// The check character is verified by core via FFI, not re-implemented here, so the two cannot disagree. +fun parseBadgeCode(s: String): String? { + val canonical = chatParseBadgeCode(s) + return if (canonical.isEmpty()) null else canonical +} + val chatModel: ChatModel get() = chatController.chatModel diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesRedeemCodeView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesRedeemCodeView.kt index 6462215051..337fc5db6d 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesRedeemCodeView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesRedeemCodeView.kt @@ -21,7 +21,6 @@ import androidx.compose.ui.text.input.KeyboardCapitalization import androidx.compose.ui.text.input.TextFieldValue import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp -import dev.icerock.moko.resources.StringResource import dev.icerock.moko.resources.compose.stringResource import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext @@ -39,13 +38,6 @@ private const val badgeCodePrefix = "SB" private const val badgeCodeBodyLength = 20 private const val badgeCodeGroupLength = 5 -// The code as core will accept it - prefix and 20 characters, no separators - or null if it does not -// parse. Validity is decided only here: a second check-character implementation would drift. -fun parseBadgeCode(s: String): String? { - val canonical = chatParseBadgeCode(s) - return if (canonical.isEmpty()) null else canonical -} - // Regroups what was typed; validity and the folding of ambiguous characters are core's alone. private fun formatBadgeCodeInput(s: String): String { val normalized = StringBuilder() @@ -73,9 +65,11 @@ fun BadgesRedeemCodeView() { val canonicalCode = remember { mutableStateOf(null) } val submitting = remember { mutableStateOf(false) } - fun applyCodeInput(s: String) { - val formatted = formatBadgeCodeInput(s) - if (formatted != code.value.text) code.value = TextFieldValue(formatted, selection = TextRange(formatted.length)) + // when the text is unchanged, the field's own value is kept: it carries the cursor position and the + // keyboard's composition state, which BasicTextField loses unless they are passed back to it + fun applyCodeInput(v: TextFieldValue) { + val formatted = formatBadgeCodeInput(v.text) + code.value = if (formatted != v.text) TextFieldValue(formatted, selection = TextRange(formatted.length)) else v canonicalCode.value = parseBadgeCode(formatted) } @@ -85,23 +79,20 @@ fun BadgesRedeemCodeView() { submitting.value = true withBGApi { when (val result = chatModel.controller.apiRedeemBadgeCode(rhId, user.userId, sending)) { + null -> withContext(Dispatchers.Main) { submitting.value = false } is BadgeRedeemResult.Redeemed -> { - val badgeState = try { chatModel.controller.apiGetBadgeState(rhId, user.userId) } catch (e: Exception) { null } + val badgeState = result.badgeState withContext(Dispatchers.Main) { submitting.value = false - // written before the pop: BadgesView swaps its content under this pushed view, so - // the pop reveals Your Badge already in place rather than animating it afterwards - if (badgeState != null) { - BadgeModel.set(rhId, user.userId, badgeState) - } - // the response is the only carrier: redeeming raises no event that refreshes the - // profile, so without this the badge beside the name is the one from before + // set before dismissing: BadgesView then switches Support to Your Badge while this screen + // still covers it, so the pop lands on Your Badge instead of showing the switch + BadgeModel.set(rhId, user.userId, badgeState) chatModel.updateUser(result.user) if (badgeState != null && !badgeState.shown) { // a replay adds no purchase; a fresh code's badge can be retired on arrival AlertManager.shared.showAlertMsg( title = generalGetString(MR.strings.badges_error_title), - text = generalGetString(failureMessage(if (result.newBadge) BadgeRedeemError.BadgeEnded else BadgeRedeemError.CodeUsed)) + text = generalGetString(if (result.newBadge) MR.strings.badges_error_badge_ended else MR.strings.badges_error_code_used) ) } else { supporterBannerShown.set(true) @@ -110,13 +101,12 @@ fun BadgesRedeemCodeView() { } } is BadgeRedeemResult.Failed -> { - // the mapped case only - core embeds the service's response in some of these messages - Log.e(TAG, "apiRedeemBadgeCode: ${result.error}") + Log.e(TAG, "apiRedeemBadgeCode: ${result.err?.string}") withContext(Dispatchers.Main) { submitting.value = false AlertManager.shared.showAlertMsg( title = generalGetString(MR.strings.badges_error_title), - text = generalGetString(failureMessage(result.error)) + text = chatModel.controller.redeemErrorText(result.err) ) } } @@ -163,7 +153,7 @@ fun BadgesRedeemCodeView() { false } else -> { - applyCodeInput(formatted) + applyCodeInput(TextFieldValue(formatted, selection = TextRange(formatted.length))) redeem() true } @@ -181,7 +171,7 @@ fun BadgesRedeemCodeView() { } @Composable -private fun CodeField(code: MutableState, submitting: Boolean, applyCodeInput: (String) -> Unit) { +private fun CodeField(code: MutableState, submitting: Boolean, applyCodeInput: (TextFieldValue) -> Unit) { val colors = TextFieldDefaults.textFieldColors( backgroundColor = MaterialTheme.appColors.sentMessage, textColor = MaterialTheme.colors.onBackground, @@ -190,7 +180,7 @@ private fun CodeField(code: MutableState, submitting: Boolean, a ) BasicTextField( value = code.value, - onValueChange = { applyCodeInput(it.text) }, + onValueChange = applyCodeInput, enabled = !submitting, singleLine = true, textStyle = TextStyle.Default.copy( @@ -218,10 +208,10 @@ private fun CodeField(code: MutableState, submitting: Boolean, a } @Composable -private fun PasteButton(submitting: Boolean, applyCodeInput: (String) -> Unit) { +private fun PasteButton(submitting: Boolean, applyCodeInput: (TextFieldValue) -> Unit) { val clipboard = LocalClipboardManager.current TextButton( - onClick = { clipboard.getText()?.text?.let { applyCodeInput(it) } }, + onClick = { clipboard.getText()?.text?.let { applyCodeInput(TextFieldValue(it, selection = TextRange(it.length))) } }, enabled = !submitting ) { Text(stringResource(MR.strings.paste_button), color = MaterialTheme.colors.primary, fontWeight = FontWeight.Medium) @@ -238,20 +228,3 @@ private fun SubmitButton(enabled: Boolean, onClick: () -> Unit) { onclick = onClick ) } - -private fun failureMessage(failure: BadgeRedeemError): StringResource = when (failure) { - BadgeRedeemError.InvalidCode -> MR.strings.badges_error_invalid_code - BadgeRedeemError.ServiceNotConfigured -> MR.strings.badges_error_service_not_configured - BadgeRedeemError.AlreadyActive -> MR.strings.badges_error_already_active - BadgeRedeemError.CodeInvalid -> MR.strings.badges_error_code_invalid - BadgeRedeemError.CodeUsed -> MR.strings.badges_error_code_used - BadgeRedeemError.CodeExpired -> MR.strings.badges_error_code_expired - BadgeRedeemError.RateLimited -> MR.strings.badges_error_rate_limited - BadgeRedeemError.ServiceFailed -> MR.strings.badges_error_service_failed - BadgeRedeemError.BadServiceResponse -> MR.strings.badges_error_bad_service_response - BadgeRedeemError.CredentialNotVerified -> MR.strings.badges_error_credential_not_verified - BadgeRedeemError.UnsupportedVersion -> MR.strings.badges_error_unsupported_version - BadgeRedeemError.NetworkError -> MR.strings.badges_error_network - BadgeRedeemError.BadgeEnded -> MR.strings.badges_error_badge_ended - BadgeRedeemError.Unknown -> MR.strings.badges_error_unknown -} diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesView.kt index ac64c20d7c..a144f75d1d 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesView.kt @@ -15,7 +15,7 @@ fun BadgesView() { if (badgeState != null && badgeState.shown) badgeState else null } - AnimatedContent(targetState = shownBadge, transitionSpec = { fadeIn() with fadeOut() }) { badgeState -> + AnimatedContent(targetState = shownBadge, transitionSpec = { fadeIn() with fadeOut() }, contentKey = { it != null }) { badgeState -> if (badgeState != null) { BadgesYourBadgeView(badgeState) } else { diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesYourBadgeView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesYourBadgeView.kt index 4ff8f2c6de..f752ef7e29 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesYourBadgeView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesYourBadgeView.kt @@ -16,25 +16,23 @@ import androidx.compose.ui.unit.dp import dev.icerock.moko.resources.compose.painterResource import dev.icerock.moko.resources.compose.stringResource import chat.simplex.common.model.BadgeState -import chat.simplex.common.model.BadgeType import chat.simplex.common.platform.ColumnWithScrollBar import chat.simplex.common.ui.theme.DEFAULT_PADDING import chat.simplex.common.views.helpers.AppBarTitle import chat.simplex.common.views.helpers.badgeImage +import chat.simplex.common.views.helpers.badgeTypeName import chat.simplex.res.MR @Composable fun BadgesYourBadgeView(badgeState: BadgeState) { - val title = if (badgeState.shown) MR.strings.badges_your_badge else MR.strings.badges_support_ended - ColumnWithScrollBar { - AppBarTitle(stringResource(title)) + AppBarTitle(stringResource(MR.strings.badges_your_badge)) SectionView { BadgeSummary(badgeState) } SectionSpacer() - SectionView(stringResource(MR.strings.badges_ends).uppercase()) { + SectionView(stringResource(MR.strings.badges_ends)) { Text(badgeState.paidThroughText, Modifier.padding(horizontal = DEFAULT_PADDING, vertical = 12.dp)) } SectionTextFooter(stringResource(MR.strings.badges_prepaid_footer)) @@ -65,12 +63,3 @@ fun BadgeSummary(badgeState: BadgeState) { ) } } - -// verbatim for an unknown type: it is the service's string, and must not be looked up as a localised key -@Composable -private fun badgeTypeName(t: BadgeType): String = when (t) { - is BadgeType.Supporter -> stringResource(MR.strings.badges_level_supporter) - is BadgeType.Legend -> stringResource(MR.strings.badges_level_legend) - is BadgeType.Investor -> stringResource(MR.strings.badges_type_investor) - is BadgeType.Unknown -> t.type -} diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chatlist/ChatListView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chatlist/ChatListView.kt index 82e8a71bf2..3fcf2febda 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chatlist/ChatListView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chatlist/ChatListView.kt @@ -79,7 +79,7 @@ private fun showSupportEndedDismissAlert() { AlertManager.shared.hideAlert() withBGApi { chatModel.controller.ackBadgeAlert(snooze = false) } }) { - Text(stringResource(MR.strings.badges_dont_show_again), Modifier.fillMaxWidth(), textAlign = TextAlign.Center, color = MaterialTheme.colors.primary) + Text(stringResource(MR.strings.badges_dismiss), Modifier.fillMaxWidth(), textAlign = TextAlign.Center, color = MaterialTheme.colors.primary) } SectionItemView({ AlertManager.shared.hideAlert() @@ -1051,7 +1051,7 @@ private fun BoxScope.ChatList(searchText: MutableState, listStat ) } } - } else if (!supporterBannerShown.value && chatModel.chats.value.size > 3) { + } else if (!supporterBannerShown.value && !hasShownBadge() && chatModel.chats.value.size > 3) { item { Box(Modifier.zIndex(1f).padding(16.dp)) { SupportSimpleXBanner( diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/helpers/ChatInfoImage.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/helpers/ChatInfoImage.kt index dcdea4147f..fcae2e6b47 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/helpers/ChatInfoImage.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/helpers/ChatInfoImage.kt @@ -207,9 +207,17 @@ private fun BadgeGlyph(badge: LocalBadge, modifier: Modifier, onBadgeClick: (() } } +// verbatim for an unknown type: it is the service's string, and must not be looked up as a localised key +fun badgeTypeName(t: BadgeType): String = when (t) { + is BadgeType.Supporter -> generalGetString(MR.strings.badges_level_supporter) + is BadgeType.Legend -> generalGetString(MR.strings.badges_level_legend) + is BadgeType.Investor -> generalGetString(MR.strings.badges_type_investor) + is BadgeType.Unknown -> t.type +} + fun showBadgeInfoAlert(name: String, badge: LocalBadge, uriHandler: UriHandler) { // a verified badge's type is signed and can't be faked, so the real (possibly unknown) type name is the title - val title = badge.badge.badgeType.text.replaceFirstChar { it.uppercase() } + val title = badgeTypeName(badge.badge.badgeType) when { badge.status == BadgeStatus.Failed -> AlertManager.shared.showAlertMsg( diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/newchat/OnboardingCards.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/newchat/OnboardingCards.kt index 9f4b213cb2..bd33bde96a 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/newchat/OnboardingCards.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/newchat/OnboardingCards.kt @@ -54,6 +54,9 @@ fun shouldShowOnboarding(): Boolean { fun supportEnded(): Boolean = BadgeModel.alert.value?.kind == BadgeAlertKind.SupportEnded && BadgeModel.isCurrent(chatModel.remoteHostId(), chatModel.currentUser.value?.userId) +fun hasShownBadge(): Boolean = + BadgeModel.badgeState.value?.shown == true && BadgeModel.isCurrent(chatModel.remoteHostId(), chatModel.currentUser.value?.userId) + fun hasConversations(chats: List): Boolean = chats.any { chat -> when (val c = chat.chatInfo) { diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/base/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/base/strings.xml index 480e448954..f5fc7f8278 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/base/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/base/strings.xml @@ -178,6 +178,7 @@ Forwarding server %1$s failed to connect to destination server %2$s. Please try later. Destination server address of %1$s is incompatible with forwarding server %2$s settings. Destination server version of %1$s is incompatible with forwarding server %2$s. + The service did not respond. Please try again. Please try later. Error sending message Error forwarding messages @@ -3251,11 +3252,9 @@ This code has already been used. This code has expired. Too many attempts. Please try again later. - The badge service is unavailable. Please try again later. - The badge service sent an unexpected response. + The badge service sent an unexpected response: %1$s This app version cannot verify this badge. Please update the app. This app version is too old for the badge service. Please update the app. - Connection error. Please check your network connection. The code was accepted, but the badge it grants has already ended. The code could not be redeemed. The code you scanned is not a badge code. @@ -3267,7 +3266,7 @@ Investor Your support ended on %1$s. Remind me later - Don\'t show again + Dismiss Supporter perks Supporter badge ❤️ Help keep the network running — send files up to 2 GB. diff --git a/src/Simplex/Chat/Badges/Types.hs b/src/Simplex/Chat/Badges/Types.hs index a0ee90b83c..4c81cb50ac 100644 --- a/src/Simplex/Chat/Badges/Types.hs +++ b/src/Simplex/Chat/Badges/Types.hs @@ -24,6 +24,7 @@ module Simplex.Chat.Badges.Types BadgeCharge (..), BadgeIssuance (..), BadgeAlert (..), + BadgeAlertPrice (..), BadgeState (..), ) where @@ -204,7 +205,13 @@ data BadgeAlert = BadgeAlert { kind :: BadgeAlertKind, episode :: Text, date :: UTCTime, - price :: Maybe (Int64, Text) + price :: Maybe BadgeAlertPrice + } + deriving (Show) + +data BadgeAlertPrice = BadgeAlertPrice + { amount :: Int64, + currency :: Text } deriving (Show) @@ -259,12 +266,9 @@ $(JQ.deriveJSON (enumJSON $ dropPrefix "BIS") ''BadgeItemStatus) $(JQ.deriveJSON (taggedObjectJSON $ dropPrefix "OD") ''OfferDiscount) -instance ToJSON BadgeAlertKind where - toJSON = textToJSON - toEncoding = textToEncoding +$(JQ.deriveJSON (enumJSON $ dropPrefix "BA") ''BadgeAlertKind) -instance FromJSON BadgeAlertKind where - parseJSON = textParseJSON "BadgeAlertKind" +$(JQ.deriveJSON defaultJSON ''BadgeAlertPrice) $(JQ.deriveJSON defaultJSON ''BadgeAlert) diff --git a/src/Simplex/Chat/Controller.hs b/src/Simplex/Chat/Controller.hs index 1e7b413aba..6206e8ae50 100644 --- a/src/Simplex/Chat/Controller.hs +++ b/src/Simplex/Chat/Controller.hs @@ -84,6 +84,7 @@ import qualified Simplex.Messaging.Agent.Store.DB as DB import Simplex.Messaging.Client (HostMode (..), SMPProxyFallback (..), SMPProxyMode (..), SMPWebPortServers (..), SocksMode (..)) import qualified Simplex.Messaging.Crypto as C import Simplex.Chat.Badges (BadgeCredential, FileSizeLimits, LocalBadge) +import Simplex.Chat.Badges.Service (BadgeServiceErrorCode) import Simplex.Chat.Badges.Types (BadgeAlert (..), BadgeAlertKind, BadgeState (..)) import Simplex.Messaging.Crypto.BBS (BBSPublicKey) import Simplex.Messaging.Crypto.File (CryptoFile (..)) @@ -866,7 +867,7 @@ data ChatResponse | CRContactRequestRejected {user :: User, contactRequest :: UserContactRequest, contact_ :: Maybe Contact} | CRServiceResponse {user :: User, responseData :: J.Object} | CRServiceReplyAccepted {user :: User, connectionId :: AgentConnId} - | CRBadgeRedeemed {user :: User, redeemedBadge :: LocalBadge, newBadge :: Bool} + | CRBadgeRedeemed {user :: User, redeemedBadge :: LocalBadge, newBadge :: Bool, badgeState :: Maybe BadgeState} | CRBadgeState {user :: User, badgeState :: Maybe BadgeState} | CRUserAcceptedGroupSent {user :: User, groupInfo :: GroupInfo, hostContact :: Maybe Contact} | CRUserDeletedMembers {user :: User, groupInfo :: GroupInfo, members :: [GroupMember], withMessages :: Bool, msgSigned :: Bool} @@ -1476,6 +1477,16 @@ data SimplexDomainError | SDEUnknownDomain -- the resolved link's profile has no name, or a different name deriving (Eq, Show) +data BadgeRedeemError + = BREInvalidCode -- format or check character + | BREServiceNotConfigured + | BREBadgeActive + | BREServiceError {serviceError :: BadgeServiceErrorCode} + | BREInvalidResponse {message :: String} + | BREUnknownKeyIndex + | BRECredentialNotVerified + deriving (Eq, Show) + data ChatErrorType = CENoActiveUser | CENoConnectionUser {agentConnId :: AgentConnId} @@ -1548,6 +1559,7 @@ data ChatErrorType | CEAgentVersion | CEAgentNoSubResult {agentConnId :: AgentConnId} | CECommandError {message :: String} + | CEBadgeRedeemError {badgeRedeemError :: BadgeRedeemError} | CEServerProtocol {serverProtocol :: AProtocolType} | CEAgentCommandError {message :: String} | CEInvalidFileDescription {message :: String} @@ -1832,6 +1844,8 @@ $(JQ.deriveJSON (sumTypeJSON $ dropPrefix "FC") ''ForwardConfirmation) $(JQ.deriveJSON (sumTypeJSON $ dropPrefix "SDE") ''SimplexDomainError) +$(JQ.deriveJSON (sumTypeJSON $ dropPrefix "BRE") ''BadgeRedeemError) + $(JQ.deriveJSON (sumTypeJSON $ dropPrefix "CE") ''ChatErrorType) $(JQ.deriveJSON (sumTypeJSON $ dropPrefix "RHE") ''RemoteHostError) diff --git a/src/Simplex/Chat/Library/Commands.hs b/src/Simplex/Chat/Library/Commands.hs index 6ba042bd94..c3d5624cb1 100644 --- a/src/Simplex/Chat/Library/Commands.hs +++ b/src/Simplex/Chat/Library/Commands.hs @@ -3570,7 +3570,7 @@ processChatCommand cxt nm = \case APIAckBadgeAlert userId badgePurchaseId alertKind snooze episode -> withUserId userId $ \user -> do now <- badgeNow let snoozeUntil = if snooze then Just (addUTCTime nominalDay now) else Nothing - withStore' $ \db -> setBadgeAlertAcked db badgePurchaseId alertKind episode snoozeUntil + withStore' $ \db -> setBadgeAlertAcked db user badgePurchaseId alertKind episode snoozeUntil -- after the write, so the pass it signals arms a wake for the snooze rather than raising again lift $ startBadgeWork user CRBadgeState user <$> getUserBadgeState user @@ -5220,8 +5220,8 @@ presentUserBadgeToContacts user'@User {userId, profile = LocalProfile {localBadg -- A terminal answer drops the stash; a timeout keeps it. redeemBadgeCode :: NetworkRequestMode -> User -> Text -> CM ChatResponse redeemBadgeCode nm user@User {userId} codeText = do - code <- maybe (throwCmdError "invalid badge code") pure $ parseBadgeCode codeText - sendTarget <- asks (badgeServiceAddress . config) >>= maybe (throwCmdError "badge service not configured") pure + code <- maybe (throwRedeemError BREInvalidCode) pure $ parseBadgeCode codeText + sendTarget <- asks (badgeServiceAddress . config) >>= maybe (throwRedeemError BREServiceNotConfigured) pure g <- asks random now <- liftIO getCurrentTime let codeSent = badgeCodeText code @@ -5232,24 +5232,23 @@ redeemBadgeCode nm user@User {userId} codeText = do -- a code already redeemed here is allowed through: re-sending it returns the badge it bought -- and adds nothing. Refused before its keys are stashed and before the request, so it stays unspent replaying <- maybe (pure False) (\r -> withStore' $ \db -> isJust <$> getCodeBadgePurchase db r) redemption_ - unless replaying $ whenM (withStore' (`userHasBadge` user)) $ throwCmdError "badge already active" + unless replaying $ whenM (withStore' (`userHasBadge` user)) $ throwRedeemError BREBadgeActive redemption@BadgeCodeRedemption {purchaseKey, purchasePrivKey, masterKey} <- maybe (withStore' $ \db -> createBadgeCodeRedemption db g user codeSent now) pure redemption_ let req = BadgeServiceRequest {version = currentBadgeServiceVersion, purchaseKey = Just purchaseKey, request = BSCRedeemBadgeCode {masterKey, code = codeSent}} - respData <- sendServiceRequestTo nm user sendTarget Nothing (Just purchasePrivKey) req + respBytes <- sendServiceRequestBytes nm user sendTarget Nothing (Just purchasePrivKey) req + respData <- either (const $ throwRedeemError $ BREInvalidResponse "not JSON") pure $ J.eitherDecodeStrict' respBytes case J.fromJSON (J.Object respData) of - J.Error e -> throwCmdError $ "invalid badge service response, " <> show e <> ": " <> respJSON respData + J.Error _ -> throwRedeemError $ BREInvalidResponse "not a badge service response" J.Success BSPError {code = errCode} -> do when (terminalCodeError errCode) $ withStore' $ \db -> deleteBadgeCodeRedemption db (redemptionId redemption) - throwCmdError $ "badge service error: " <> T.unpack (badgeServiceErrorText errCode) + throwRedeemError $ BREServiceError errCode J.Success BSPBadgeCredential {credential = Just cred, statement} -> storeRedeemedBadge user redemption cred statement - J.Success _ -> throwCmdError $ "unexpected badge service response: " <> respJSON respData + J.Success _ -> throwRedeemError $ BREInvalidResponse "unexpected response type" -- outside the badge lock: the chat lock must not be taken under it mapM_ presentUserBadgeToContacts present_ pure redeemed where - -- re-encoded, not shown as received: JSON escapes the control characters a terminal acts on - respJSON = LB.unpack . J.encode -- the code will never work, so the keys stashed for it are dead; a timeout keeps them terminalCodeError = \case BSECodeInvalid -> True @@ -5257,6 +5256,9 @@ redeemBadgeCode nm user@User {userId} codeText = do BSECodeExpired -> True _ -> False +throwRedeemError :: BadgeRedeemError -> CM a +throwRedeemError = throwChatError . CEBadgeRedeemError + -- | An unknown code is reported, since the service is deployed ahead of clients, but its text is -- the service's - so it is bounded and stripped before reaching a terminal that acts on controls. badgeServiceErrorText :: BadgeServiceErrorCode -> Text @@ -5584,11 +5586,11 @@ stopBadgeWorkers workers = storeRedeemedBadge :: User -> BadgeCodeRedemption -> BadgeCredential -> BadgeStatement -> CM (Maybe User, ChatResponse) storeRedeemedBadge user@User {userId} redemption@BadgeCodeRedemption {masterKey} cred@(BadgeCredential _ credMasterKey _ info@BadgeInfo {badgeType}) statement = verifyOwnBadge cred >>= \case - Nothing -> throwCmdError "redeemed badge credential names an unknown badge key index" - Just False -> throwCmdError "redeemed badge credential does not verify against configured key" + Nothing -> throwRedeemError BREUnknownKeyIndex + Just False -> throwRedeemError BRECredentialNotVerified -- verifyCredential checks the signature against the key inside the credential, not the one we -- sent - so a credential over any other master key also verifies - Just True | credMasterKey /= masterKey -> throwCmdError "redeemed badge credential is for a different master key" + Just True | credMasterKey /= masterKey -> throwRedeemError $ BREInvalidResponse "credential is for a different master key" Just True -> do g <- asks random now <- badgeNow @@ -5603,7 +5605,8 @@ storeRedeemedBadge user@User {userId} redemption@BadgeCodeRedemption {masterKey} unless applied $ eToView $ ChatError $ CEInternalError "redeemed badge credential has no ledger row to store it against" -- nothing is due yet, but a pass is what arms the next wake, and this is the first purchase lift $ startBadgeWork user' - pure (if newBadge then Just user' else Nothing, CRBadgeRedeemed user' badge newBadge) + badgeState <- getUserBadgeState user' + pure (if newBadge then Just user' else Nothing, CRBadgeRedeemed user' badge newBadge badgeState) -- | Store the statement's rows, then the credential against the badge debit row among them. -- 'False' when that row cannot be found, which the caller reports rather than drop in silence. @@ -5627,10 +5630,14 @@ applyBadgeStatement db g purchaseId badgeType BadgeStatement {entries} cred_ now ids -> Just (last ids) sendServiceRequestTo :: J.ToJSON a => NetworkRequestMode -> User -> ConnectTarget 'CMContact -> Maybe NominalDiffTime -> Maybe C.PrivateKeyEd25519 -> a -> CM J.Object -sendServiceRequestTo nm user sendTarget requestTimeout signKey request = do +sendServiceRequestTo nm user sendTarget requestTimeout signKey request = + sendServiceRequestBytes nm user sendTarget requestTimeout signKey request + >>= either (const $ throwCmdError "invalid service response") pure . J.eitherDecodeStrict' + +sendServiceRequestBytes :: J.ToJSON a => NetworkRequestMode -> User -> ConnectTarget 'CMContact -> Maybe NominalDiffTime -> Maybe C.PrivateKeyEd25519 -> a -> CM ByteString +sendServiceRequestBytes nm user sendTarget requestTimeout signKey request = do cReq <- resolveServiceTarget sendTarget - respData <- withAgent $ \a -> sendServiceRequestAsync a (aUserId user) cReq requestTimeout signKey (LB.toStrict $ J.encode request) - either (const $ throwCmdError "invalid service response") pure $ J.eitherDecodeStrict' respData + withAgent $ \a -> sendServiceRequestAsync a (aUserId user) cReq requestTimeout signKey (LB.toStrict $ J.encode request) where resolveServiceTarget = \case CTFullContact cReq -> pure cReq diff --git a/src/Simplex/Chat/Store/Badges.hs b/src/Simplex/Chat/Store/Badges.hs index 7da9c5fd72..c17bd5f360 100644 --- a/src/Simplex/Chat/Store/Badges.hs +++ b/src/Simplex/Chat/Store/Badges.hs @@ -258,12 +258,12 @@ userHasBadge db User {userId} = -- | An ack and a snooze both record the occurrence answered; a snooze also records how long it -- holds, so that it silences that occurrence and not whichever one is derived next. -setBadgeAlertAcked :: DB.Connection -> Int64 -> BadgeAlertKind -> Text -> Maybe UTCTime -> IO () -setBadgeAlertAcked db badgePurchaseId kind episode snoozeUntil = +setBadgeAlertAcked :: DB.Connection -> User -> Int64 -> BadgeAlertKind -> Text -> Maybe UTCTime -> IO () +setBadgeAlertAcked db User {userId} badgePurchaseId kind episode snoozeUntil = DB.execute db - "UPDATE badge_purchases SET alert_acked_kind = ?, alert_acked_episode = ?, alert_snooze_until = ? WHERE badge_purchase_id = ?" - (kind, episode, snoozeUntil, badgePurchaseId) + "UPDATE badge_purchases SET alert_acked_kind = ?, alert_acked_episode = ?, alert_snooze_until = ? WHERE badge_purchase_id = ? AND user_id = ?" + (kind, episode, snoozeUntil, badgePurchaseId, userId) -- | Stop showing a badge that has expired unrenewed; the profile update is broadcast by the caller. clearShownBadge :: DB.Connection -> User -> Int64 -> IO () diff --git a/src/Simplex/Chat/View.hs b/src/Simplex/Chat/View.hs index 6c20e1b33a..007dc8af0b 100644 --- a/src/Simplex/Chat/View.hs +++ b/src/Simplex/Chat/View.hs @@ -41,7 +41,7 @@ import Numeric (showFFloat) import Simplex.Chat.Call import Simplex.Chat.Controller import Simplex.Chat.Help -import Simplex.Chat.Library.Commands (maxImageSize) +import Simplex.Chat.Library.Commands (badgeServiceErrorText, maxImageSize) import Simplex.Chat.Markdown import Simplex.Chat.Badges (BadgeInfo (..), BadgeStatus (..), BadgeType (..), LocalBadge, localBadgeInfo, localBadgeStatus) import Simplex.Chat.Badges.Types (BadgeAlert (..), BadgeState (..)) @@ -190,7 +190,7 @@ chatResponseToView hu cfg@ChatConfig {logLevel, showReactions, showFullLinks, te CRServiceResponse u resp -> ttyUser u ["service response: " <> viewJSON resp] CRServiceReplyAccepted u (AgentConnId cId) -> ttyUser u [plain $ "service reply accepted, connection id: " <> safeDecodeUtf8 (strEncode cId)] -- the badge is only shown when it is the one now on the profile; a replayed code's badge may not be - CRBadgeRedeemed u badge newBadge -> ttyUser u $ if newBadge then "badge redeemed" : viewContactBadge (Just badge) else ["badge already redeemed"] + CRBadgeRedeemed u badge newBadge _ -> ttyUser u $ if newBadge then "badge redeemed" : viewContactBadge (Just badge) else ["badge already redeemed"] CRBadgeState u st -> ttyUser u $ viewUserBadgeState st CRGroupCreated u g -> ttyUser u $ viewGroupCreated g testView CRPublicGroupCreated u g _groupLink _relays -> ttyUser u $ viewGroupCreated g testView @@ -2841,6 +2841,16 @@ viewChatError isCmd logLevel testView = \case CEAgentNoSubResult connId -> ["no subscription result for connection: " <> sShow connId] CEServerProtocol p -> [plain $ "Servers for protocol " <> strEncode p <> " cannot be configured by the users"] CECommandError e -> ["bad chat command: " <> plain e] + CEBadgeRedeemError e -> + let reason = case e of + BREInvalidCode -> "invalid code" + BREServiceNotConfigured -> "badge service not configured" + BREBadgeActive -> "badge already active" + BREServiceError code -> "badge service error: " <> T.unpack (badgeServiceErrorText code) + BREInvalidResponse m -> "invalid service response: " <> m + BREUnknownKeyIndex -> "credential names an unknown badge key index" + BRECredentialNotVerified -> "credential does not verify against configured key" + in ["cannot redeem badge code: " <> plain reason] CEAgentCommandError e -> ["agent command error: " <> plain e] CEInvalidFileDescription e -> ["invalid file description: " <> plain e] CEConnectionIncognitoChangeProhibited -> ["incognito mode change prohibited"] diff --git a/tests/Bots/BadgeServiceTests.hs b/tests/Bots/BadgeServiceTests.hs index 3725741d37..640d0ba533 100644 --- a/tests/Bots/BadgeServiceTests.hs +++ b/tests/Bots/BadgeServiceTests.hs @@ -257,10 +257,10 @@ testRedeemUnknownCode ps = g <- C.newRandom unknown <- randomBadgeCode g alice ##> ("/_redeem_badge_code 1 " <> codeArg unknown) - alice <## "bad chat command: badge service error: code_invalid" + alice <## "cannot redeem badge code: badge service error: code_invalid" -- a failed check character is refused before anything leaves the device alice ##> "/_redeem_badge_code 1 SB-00000-00000-00000-00001" - alice <## "bad chat command: invalid badge code" + alice <## "cannot redeem badge code: invalid code" -- sent straight to the service, past the client's own check, the two are one answer (_, redeemPriv) <- atomically $ C.generateKeyPair g :: IO (C.KeyPair 'C.Ed25519) redeemDirect alice bsLink redeemPriv (T.unpack $ badgeCodeText unknown) @@ -315,7 +315,7 @@ testRedeemSecondCode ps = alice <## "supporter badge - active" alice <##. "expires " alice ##> ("/_redeem_badge_code 1 " <> codeArg legend) - alice <## "bad chat command: badge already active" + alice <## "cannot redeem badge code: badge already active" alice ##> "/p" showActiveUser alice "alice (Alice, * supporter)" alice ##> "/create user alisa" @@ -339,7 +339,7 @@ testRedeemSameCodeOtherProfile ps = alice ##> "/create user alisa" showActiveUser alice "alisa" alice ##> ("/_redeem_badge_code 2 " <> codeArg code) - alice <## "bad chat command: badge service error: code_used" + alice <## "cannot redeem badge code: badge service error: code_used" alice ##> "/p" showActiveUser alice "alisa" alice ##> "/user alice" From c52044f3c386788146827ab14691800c8ad33e59 Mon Sep 17 00:00:00 2001 From: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com> Date: Wed, 16 Sep 2026 14:43:28 +0000 Subject: [PATCH 39/62] ui: show progress spinner on redeeming code (#7523) --- .../Views/Badges/BadgesRedeemCodeView.swift | 28 +++++++++++++------ .../views/badges/BadgesRedeemCodeView.kt | 16 +++++++++++ 2 files changed, 36 insertions(+), 8 deletions(-) diff --git a/apps/ios/Shared/Views/Badges/BadgesRedeemCodeView.swift b/apps/ios/Shared/Views/Badges/BadgesRedeemCodeView.swift index a9442a3ed0..16e1796e96 100644 --- a/apps/ios/Shared/Views/Badges/BadgesRedeemCodeView.swift +++ b/apps/ios/Shared/Views/Badges/BadgesRedeemCodeView.swift @@ -44,15 +44,27 @@ struct BadgesRedeemCodeView: View { @State private var showQRCodeScanner = true var body: some View { - GeometryReader { g in - ScrollView { - VStack(alignment: .center, spacing: 16) { - entryContent(g) + ZStack { + GeometryReader { g in + ScrollView { + VStack(alignment: .center, spacing: 16) { + entryContent(g) + } + .padding(.horizontal, 25) + .padding(.top, 8) + .padding(.bottom, 20) + .frame(minHeight: g.size.height) + } + } + + if submitting { + ZStack { + Circle() + .fill(.white) + .opacity(0.7) + .frame(width: 56, height: 56) + ProgressView().scaleEffect(2) } - .padding(.horizontal, 25) - .padding(.top, 8) - .padding(.bottom, 20) - .frame(minHeight: g.size.height) } } .frame(maxHeight: .infinity) diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesRedeemCodeView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesRedeemCodeView.kt index 337fc5db6d..a9d2a4d19c 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesRedeemCodeView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesRedeemCodeView.kt @@ -168,6 +168,22 @@ fun BadgesRedeemCodeView() { TextButtonBelowOnboardingButton("", null) } } + + if (submitting.value) { + Box( + Modifier.fillMaxSize(), + contentAlignment = Alignment.Center + ) { + Surface(Modifier.size(50.dp), color = MaterialTheme.colors.background.copy(0.9f), contentColor = LocalContentColor.current, shape = RoundedCornerShape(50)){} + CircularProgressIndicator( + Modifier + .padding(horizontal = 2.dp) + .size(30.dp), + color = MaterialTheme.colors.secondary, + strokeWidth = 3.dp + ) + } + } } @Composable From dd5c47d02d4c31a5d4b38a1a94f742cb214c92c6 Mon Sep 17 00:00:00 2001 From: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com> Date: Wed, 16 Sep 2026 15:13:01 +0000 Subject: [PATCH 40/62] ui: "how it works" link and card styling on badge screen (#7524) --- .../Views/Badges/BadgesHowItWorksView.swift | 1 + .../Views/Badges/BadgesYourBadgeView.swift | 10 ++++++++++ .../simplex/common/views/badges/BadgesView.kt | 16 ++++++++++------ .../common/views/badges/BadgesYourBadgeView.kt | 14 ++++++++++++-- .../common/views/chatlist/ChatListView.kt | 4 ++-- .../common/views/usersettings/SettingsView.kt | 2 +- 6 files changed, 36 insertions(+), 11 deletions(-) diff --git a/apps/ios/Shared/Views/Badges/BadgesHowItWorksView.swift b/apps/ios/Shared/Views/Badges/BadgesHowItWorksView.swift index 86035cc223..bca1f7da40 100644 --- a/apps/ios/Shared/Views/Badges/BadgesHowItWorksView.swift +++ b/apps/ios/Shared/Views/Badges/BadgesHowItWorksView.swift @@ -33,6 +33,7 @@ struct BadgesHowItWorksView: View { } .padding(.horizontal, 25) .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .topLeading) + .navigationBarTitleDisplayMode(.inline) } } diff --git a/apps/ios/Shared/Views/Badges/BadgesYourBadgeView.swift b/apps/ios/Shared/Views/Badges/BadgesYourBadgeView.swift index 166abc449a..07b6d7a3dc 100644 --- a/apps/ios/Shared/Views/Badges/BadgesYourBadgeView.swift +++ b/apps/ios/Shared/Views/Badges/BadgesYourBadgeView.swift @@ -40,6 +40,16 @@ struct BadgesYourBadgeView: View { Text("Prepaid months have no billing date. The badge is reissued each month from the balance you already paid for, and ends when it runs out.") .foregroundColor(theme.colors.secondary) } + Section { + NavigationLink { + BadgesHowItWorksView() + .modifier(ThemedBackground()) + } label: { + settingsRow("info.circle", color: theme.colors.secondary) { + Text("How private badges work") + } + } + } } } .frame(maxHeight: .infinity) diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesView.kt index a144f75d1d..0cb128c902 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesView.kt @@ -5,21 +5,25 @@ import androidx.compose.runtime.Composable import chat.simplex.common.model.BadgeModel import chat.simplex.common.model.BadgeState import chat.simplex.common.platform.chatModel +import chat.simplex.common.views.helpers.ModalView @OptIn(ExperimentalAnimationApi::class) @Composable -fun BadgesView() { +fun BadgesView(close: () -> Unit) { val shownBadge: BadgeState? = run { if (!BadgeModel.isCurrent(chatModel.remoteHostId(), chatModel.currentUser.value?.userId)) return@run null val badgeState = BadgeModel.badgeState.value if (badgeState != null && badgeState.shown) badgeState else null } - AnimatedContent(targetState = shownBadge, transitionSpec = { fadeIn() with fadeOut() }, contentKey = { it != null }) { badgeState -> - if (badgeState != null) { - BadgesYourBadgeView(badgeState) - } else { - BadgesSupportSimplexView() + // the card look is a modal setting, so the modal is composed here to follow the screen shown + ModalView(close, cardScreen = shownBadge != null) { + AnimatedContent(targetState = shownBadge, transitionSpec = { fadeIn() with fadeOut() }, contentKey = { it != null }) { badgeState -> + if (badgeState != null) { + BadgesYourBadgeView(badgeState) + } else { + BadgesSupportSimplexView() + } } } } diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesYourBadgeView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesYourBadgeView.kt index f752ef7e29..c17559d5b0 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesYourBadgeView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesYourBadgeView.kt @@ -19,8 +19,10 @@ import chat.simplex.common.model.BadgeState import chat.simplex.common.platform.ColumnWithScrollBar import chat.simplex.common.ui.theme.DEFAULT_PADDING import chat.simplex.common.views.helpers.AppBarTitle +import chat.simplex.common.views.helpers.ModalManager import chat.simplex.common.views.helpers.badgeImage import chat.simplex.common.views.helpers.badgeTypeName +import chat.simplex.common.views.usersettings.SettingsActionItem import chat.simplex.res.MR @Composable @@ -37,13 +39,21 @@ fun BadgesYourBadgeView(badgeState: BadgeState) { } SectionTextFooter(stringResource(MR.strings.badges_prepaid_footer)) SectionSpacer() + SectionView { + SettingsActionItem( + painterResource(MR.images.ic_info), + stringResource(MR.strings.badges_how_it_works_button), + { ModalManager.start.showModal { BadgesHowItWorksView() } }, + ) + } + SectionSpacer() } } @Composable fun BadgeSummary(badgeState: BadgeState) { Column( - Modifier.fillMaxWidth().padding(vertical = 8.dp), + Modifier.fillMaxWidth().padding(vertical = 20.dp), horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.spacedBy(4.dp) ) { @@ -51,7 +61,7 @@ fun BadgeSummary(badgeState: BadgeState) { painterResource(badgeImage(badgeState.badgeType)), contentDescription = null, contentScale = ContentScale.Fit, - modifier = Modifier.size(68.dp).padding(bottom = 8.dp) + modifier = Modifier.padding(bottom = 8.dp).size(68.dp) ) Text(badgeTypeName(badgeState.badgeType), style = MaterialTheme.typography.h3, fontWeight = FontWeight.SemiBold) diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chatlist/ChatListView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chatlist/ChatListView.kt index 3fcf2febda..a013cc97a2 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chatlist/ChatListView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chatlist/ChatListView.kt @@ -1046,7 +1046,7 @@ private fun BoxScope.ChatList(searchText: MutableState, listStat SupportSimpleXBanner( title = stringResource(MR.strings.badges_support_ended), subtitle = String.format(stringResource(MR.strings.badges_support_ended_on), alert.dateText), - onTap = { ModalManager.start.showModal { BadgesView() } }, + onTap = { ModalManager.start.showCustomModal { close -> BadgesView(close) } }, onDismiss = ::showSupportEndedDismissAlert ) } @@ -1055,7 +1055,7 @@ private fun BoxScope.ChatList(searchText: MutableState, listStat item { Box(Modifier.zIndex(1f).padding(16.dp)) { SupportSimpleXBanner( - onTap = { ModalManager.start.showModal { BadgesView() } }, + onTap = { ModalManager.start.showCustomModal { close -> BadgesView(close) } }, onDismiss = ::showSupportSimpleXDismissAlert ) } diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/usersettings/SettingsView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/usersettings/SettingsView.kt index 823a6b2f0c..cbd2be9ee3 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/usersettings/SettingsView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/usersettings/SettingsView.kt @@ -107,7 +107,7 @@ fun SettingsLayout( SectionView { // Direct showModal (no settings / cardScreen flags) — settings-style card chrome would render // a gray top bar / back button that badges views don't want (they have their own inline titles). - SectionItemView(click = { ModalManager.start.showModal { BadgesView() } }) { + SectionItemView(click = { ModalManager.start.showCustomModal { close -> BadgesView(close) } }) { val badgeType = chatModel.currentUser.value?.profile?.localBadge?.badge?.badgeType ?: BadgeType.Supporter Image(painterResource(badgeImage(badgeType)), stringResource(MR.strings.supporter_perks), Modifier.size(24.dp)) TextIconSpaced() From fea9f482cf34885a57b9292de879fbafaf249883 Mon Sep 17 00:00:00 2001 From: Evgeny Poberezkin Date: Wed, 16 Sep 2026 19:48:57 +0100 Subject: [PATCH 41/62] core: update bot api and query plans --- bots/api/TYPES.md | 98 ++++++++++ bots/src/API/Docs/Types.hs | 6 +- .../types/typescript/src/types.ts | 180 ++++++++++++++++++ .../src/simplex_chat/types/_types.py | 120 +++++++++++- .../SQLite/Migrations/chat_query_plans.txt | 2 +- 5 files changed, 403 insertions(+), 3 deletions(-) diff --git a/bots/api/TYPES.md b/bots/api/TYPES.md index 1fcec37e57..e79f8638ad 100644 --- a/bots/api/TYPES.md +++ b/bots/api/TYPES.md @@ -14,6 +14,8 @@ This file is generated automatically. - [AutoAccept](#autoaccept) - [BadgeInfo](#badgeinfo) - [BadgeProof](#badgeproof) +- [BadgeRedeemError](#badgeredeemerror) +- [BadgeServiceErrorCode](#badgeserviceerrorcode) - [BadgeStatus](#badgestatus) - [BadgeType](#badgetype) - [BlockingInfo](#blockinginfo) @@ -433,6 +435,98 @@ Remote controller app version range (min and max as version strings). - badgeInfo: [BadgeInfo](#badgeinfo) +--- + +## BadgeRedeemError + +**Discriminated union type**: + +InvalidCode: +- type: "invalidCode" + +ServiceNotConfigured: +- type: "serviceNotConfigured" + +BadgeActive: +- type: "badgeActive" + +ServiceError: +- type: "serviceError" +- serviceError: [BadgeServiceErrorCode](#badgeserviceerrorcode) + +InvalidResponse: +- type: "invalidResponse" +- message: string + +UnknownKeyIndex: +- type: "unknownKeyIndex" + +CredentialNotVerified: +- type: "credentialNotVerified" + + +--- + +## BadgeServiceErrorCode + +**Discriminated union type**: + +BadRequest: +- type: "badRequest" + +UnsupportedVersion: +- type: "unsupportedVersion" + +UnknownPurchaseKey: +- type: "unknownPurchaseKey" + +UnknownOfferId: +- type: "unknownOfferId" + +OfferDisabled: +- type: "offerDisabled" + +OfferMismatch: +- type: "offerMismatch" + +ProductUnavailable: +- type: "productUnavailable" + +PaymentNotEntitled: +- type: "paymentNotEntitled" + +PaymentPending: +- type: "paymentPending" + +ProviderUnavailable: +- type: "providerUnavailable" + +RateLimited: +- type: "rateLimited" + +CodeInvalid: +- type: "codeInvalid" + +CodeUsed: +- type: "codeUsed" + +CodeExpired: +- type: "codeExpired" + +ReceiptInvalid: +- type: "receiptInvalid" + +ReceiptUsed: +- type: "receiptUsed" + +Internal: +- type: "internal" + +Unknown: +- type: "unknown" +- : string + + --- ## BadgeStatus @@ -1361,6 +1455,10 @@ CommandError: - type: "commandError" - message: string +BadgeRedeemError: +- type: "badgeRedeemError" +- badgeRedeemError: [BadgeRedeemError](#badgeredeemerror) + AgentCommandError: - type: "agentCommandError" - message: string diff --git a/bots/src/API/Docs/Types.hs b/bots/src/API/Docs/Types.hs index 06d3903600..70777afa21 100644 --- a/bots/src/API/Docs/Types.hs +++ b/bots/src/API/Docs/Types.hs @@ -35,6 +35,7 @@ import Simplex.Chat.Store.Shared import Simplex.Chat.Operators import Simplex.Messaging.Agent.Store.Entity (DBStored (..)) import Simplex.Chat.Badges +import Simplex.Chat.Badges.Service import Simplex.Chat.Names import Simplex.Chat.Types import Simplex.Chat.Types.Preferences @@ -49,7 +50,6 @@ import Simplex.Messaging.Parsers (dropPrefix, fstToLower) import Simplex.Messaging.Protocol (BlockingInfo (..), BlockingReason (..), CommandError (..), ErrorType (..), NameErrorType (..), NetworkError (..), ProxyError (..)) import Simplex.Messaging.Protocol.Types (ClientNotice (..)) import Simplex.Messaging.Transport -import Simplex.Chat.Remote.AppVersion (AppVersion, AppVersionRange) import Simplex.Chat.Remote.Types (CtrlAppInfo (..)) import Simplex.RemoteControl.Types import System.Console.ANSI.Types (Color (..)) @@ -216,6 +216,8 @@ chatTypesDocsData = (STI "AppVersionRange" [RecordTypeInfo "AppVersionRange" [FieldInfo "minVersion" (TIType (ST TString [])), FieldInfo "maxVersion" (TIType (ST TString []))]], STRecord, "", [], "", "Remote controller app version range (min and max as version strings)."), (sti @AutoAccept, STRecord, "", [], "", ""), (sti @BadgeProof, STRecord, "", [], "", ""), + (sti @BadgeRedeemError, STUnion, "BRE", [], "", ""), + (sti @BadgeServiceErrorCode, STUnion, "BSE", [], "", ""), (sti @BlockingInfo, STRecord, "", [], "", ""), (sti @BlockingReason, STEnum, "BR", [], "", ""), (sti @BrokerErrorType, STUnion, "", [], "", ""), @@ -450,6 +452,8 @@ deriving instance Generic AgentErrorType deriving instance Generic AgentServiceError deriving instance Generic AutoAccept deriving instance Generic BadgeProof +deriving instance Generic BadgeRedeemError +deriving instance Generic BadgeServiceErrorCode deriving instance Generic BlockingInfo deriving instance Generic BlockingReason deriving instance Generic BrokerErrorType diff --git a/packages/simplex-chat-client/types/typescript/src/types.ts b/packages/simplex-chat-client/types/typescript/src/types.ts index eff59d5c8f..170f5c5504 100644 --- a/packages/simplex-chat-client/types/typescript/src/types.ts +++ b/packages/simplex-chat-client/types/typescript/src/types.ts @@ -247,6 +247,179 @@ export interface BadgeProof { badgeInfo: BadgeInfo } +export type BadgeRedeemError = + | BadgeRedeemError.InvalidCode + | BadgeRedeemError.ServiceNotConfigured + | BadgeRedeemError.BadgeActive + | BadgeRedeemError.ServiceError + | BadgeRedeemError.InvalidResponse + | BadgeRedeemError.UnknownKeyIndex + | BadgeRedeemError.CredentialNotVerified + +export namespace BadgeRedeemError { + export type Tag = + | "invalidCode" + | "serviceNotConfigured" + | "badgeActive" + | "serviceError" + | "invalidResponse" + | "unknownKeyIndex" + | "credentialNotVerified" + + interface Interface { + type: Tag + } + + export interface InvalidCode extends Interface { + type: "invalidCode" + } + + export interface ServiceNotConfigured extends Interface { + type: "serviceNotConfigured" + } + + export interface BadgeActive extends Interface { + type: "badgeActive" + } + + export interface ServiceError extends Interface { + type: "serviceError" + serviceError: BadgeServiceErrorCode + } + + export interface InvalidResponse extends Interface { + type: "invalidResponse" + message: string + } + + export interface UnknownKeyIndex extends Interface { + type: "unknownKeyIndex" + } + + export interface CredentialNotVerified extends Interface { + type: "credentialNotVerified" + } +} + +export type BadgeServiceErrorCode = + | BadgeServiceErrorCode.BadRequest + | BadgeServiceErrorCode.UnsupportedVersion + | BadgeServiceErrorCode.UnknownPurchaseKey + | BadgeServiceErrorCode.UnknownOfferId + | BadgeServiceErrorCode.OfferDisabled + | BadgeServiceErrorCode.OfferMismatch + | BadgeServiceErrorCode.ProductUnavailable + | BadgeServiceErrorCode.PaymentNotEntitled + | BadgeServiceErrorCode.PaymentPending + | BadgeServiceErrorCode.ProviderUnavailable + | BadgeServiceErrorCode.RateLimited + | BadgeServiceErrorCode.CodeInvalid + | BadgeServiceErrorCode.CodeUsed + | BadgeServiceErrorCode.CodeExpired + | BadgeServiceErrorCode.ReceiptInvalid + | BadgeServiceErrorCode.ReceiptUsed + | BadgeServiceErrorCode.Internal + | BadgeServiceErrorCode.Unknown + +export namespace BadgeServiceErrorCode { + export type Tag = + | "badRequest" + | "unsupportedVersion" + | "unknownPurchaseKey" + | "unknownOfferId" + | "offerDisabled" + | "offerMismatch" + | "productUnavailable" + | "paymentNotEntitled" + | "paymentPending" + | "providerUnavailable" + | "rateLimited" + | "codeInvalid" + | "codeUsed" + | "codeExpired" + | "receiptInvalid" + | "receiptUsed" + | "internal" + | "unknown" + + interface Interface { + type: Tag + } + + export interface BadRequest extends Interface { + type: "badRequest" + } + + export interface UnsupportedVersion extends Interface { + type: "unsupportedVersion" + } + + export interface UnknownPurchaseKey extends Interface { + type: "unknownPurchaseKey" + } + + export interface UnknownOfferId extends Interface { + type: "unknownOfferId" + } + + export interface OfferDisabled extends Interface { + type: "offerDisabled" + } + + export interface OfferMismatch extends Interface { + type: "offerMismatch" + } + + export interface ProductUnavailable extends Interface { + type: "productUnavailable" + } + + export interface PaymentNotEntitled extends Interface { + type: "paymentNotEntitled" + } + + export interface PaymentPending extends Interface { + type: "paymentPending" + } + + export interface ProviderUnavailable extends Interface { + type: "providerUnavailable" + } + + export interface RateLimited extends Interface { + type: "rateLimited" + } + + export interface CodeInvalid extends Interface { + type: "codeInvalid" + } + + export interface CodeUsed extends Interface { + type: "codeUsed" + } + + export interface CodeExpired extends Interface { + type: "codeExpired" + } + + export interface ReceiptInvalid extends Interface { + type: "receiptInvalid" + } + + export interface ReceiptUsed extends Interface { + type: "receiptUsed" + } + + export interface Internal extends Interface { + type: "internal" + } + + export interface Unknown extends Interface { + type: "unknown" + : string + } +} + export enum BadgeStatus { Active = "active", Expired = "expired", @@ -1153,6 +1326,7 @@ export type ChatErrorType = | ChatErrorType.AgentVersion | ChatErrorType.AgentNoSubResult | ChatErrorType.CommandError + | ChatErrorType.BadgeRedeemError | ChatErrorType.AgentCommandError | ChatErrorType.InvalidFileDescription | ChatErrorType.ConnectionIncognitoChangeProhibited @@ -1232,6 +1406,7 @@ export namespace ChatErrorType { | "agentVersion" | "agentNoSubResult" | "commandError" + | "badgeRedeemError" | "agentCommandError" | "invalidFileDescription" | "connectionIncognitoChangeProhibited" @@ -1576,6 +1751,11 @@ export namespace ChatErrorType { message: string } + export interface BadgeRedeemError extends Interface { + type: "badgeRedeemError" + badgeRedeemError: BadgeRedeemError + } + export interface AgentCommandError extends Interface { type: "agentCommandError" message: string diff --git a/packages/simplex-chat-python/src/simplex_chat/types/_types.py b/packages/simplex-chat-python/src/simplex_chat/types/_types.py index 15cdc842a0..38e0318af1 100644 --- a/packages/simplex-chat-python/src/simplex_chat/types/_types.py +++ b/packages/simplex-chat-python/src/simplex_chat/types/_types.py @@ -185,6 +185,119 @@ class BadgeProof(TypedDict): proof: str badgeInfo: "BadgeInfo" +class BadgeRedeemError_invalidCode(TypedDict): + type: Literal["invalidCode"] + +class BadgeRedeemError_serviceNotConfigured(TypedDict): + type: Literal["serviceNotConfigured"] + +class BadgeRedeemError_badgeActive(TypedDict): + type: Literal["badgeActive"] + +class BadgeRedeemError_serviceError(TypedDict): + type: Literal["serviceError"] + serviceError: "BadgeServiceErrorCode" + +class BadgeRedeemError_invalidResponse(TypedDict): + type: Literal["invalidResponse"] + message: str + +class BadgeRedeemError_unknownKeyIndex(TypedDict): + type: Literal["unknownKeyIndex"] + +class BadgeRedeemError_credentialNotVerified(TypedDict): + type: Literal["credentialNotVerified"] + +BadgeRedeemError = ( + BadgeRedeemError_invalidCode + | BadgeRedeemError_serviceNotConfigured + | BadgeRedeemError_badgeActive + | BadgeRedeemError_serviceError + | BadgeRedeemError_invalidResponse + | BadgeRedeemError_unknownKeyIndex + | BadgeRedeemError_credentialNotVerified +) + +BadgeRedeemError_Tag = Literal["invalidCode", "serviceNotConfigured", "badgeActive", "serviceError", "invalidResponse", "unknownKeyIndex", "credentialNotVerified"] + +class BadgeServiceErrorCode_badRequest(TypedDict): + type: Literal["badRequest"] + +class BadgeServiceErrorCode_unsupportedVersion(TypedDict): + type: Literal["unsupportedVersion"] + +class BadgeServiceErrorCode_unknownPurchaseKey(TypedDict): + type: Literal["unknownPurchaseKey"] + +class BadgeServiceErrorCode_unknownOfferId(TypedDict): + type: Literal["unknownOfferId"] + +class BadgeServiceErrorCode_offerDisabled(TypedDict): + type: Literal["offerDisabled"] + +class BadgeServiceErrorCode_offerMismatch(TypedDict): + type: Literal["offerMismatch"] + +class BadgeServiceErrorCode_productUnavailable(TypedDict): + type: Literal["productUnavailable"] + +class BadgeServiceErrorCode_paymentNotEntitled(TypedDict): + type: Literal["paymentNotEntitled"] + +class BadgeServiceErrorCode_paymentPending(TypedDict): + type: Literal["paymentPending"] + +class BadgeServiceErrorCode_providerUnavailable(TypedDict): + type: Literal["providerUnavailable"] + +class BadgeServiceErrorCode_rateLimited(TypedDict): + type: Literal["rateLimited"] + +class BadgeServiceErrorCode_codeInvalid(TypedDict): + type: Literal["codeInvalid"] + +class BadgeServiceErrorCode_codeUsed(TypedDict): + type: Literal["codeUsed"] + +class BadgeServiceErrorCode_codeExpired(TypedDict): + type: Literal["codeExpired"] + +class BadgeServiceErrorCode_receiptInvalid(TypedDict): + type: Literal["receiptInvalid"] + +class BadgeServiceErrorCode_receiptUsed(TypedDict): + type: Literal["receiptUsed"] + +class BadgeServiceErrorCode_internal(TypedDict): + type: Literal["internal"] + +class BadgeServiceErrorCode_unknown(TypedDict): + type: Literal["unknown"] + : str + +BadgeServiceErrorCode = ( + BadgeServiceErrorCode_badRequest + | BadgeServiceErrorCode_unsupportedVersion + | BadgeServiceErrorCode_unknownPurchaseKey + | BadgeServiceErrorCode_unknownOfferId + | BadgeServiceErrorCode_offerDisabled + | BadgeServiceErrorCode_offerMismatch + | BadgeServiceErrorCode_productUnavailable + | BadgeServiceErrorCode_paymentNotEntitled + | BadgeServiceErrorCode_paymentPending + | BadgeServiceErrorCode_providerUnavailable + | BadgeServiceErrorCode_rateLimited + | BadgeServiceErrorCode_codeInvalid + | BadgeServiceErrorCode_codeUsed + | BadgeServiceErrorCode_codeExpired + | BadgeServiceErrorCode_receiptInvalid + | BadgeServiceErrorCode_receiptUsed + | BadgeServiceErrorCode_internal + | BadgeServiceErrorCode_unknown +) + +BadgeServiceErrorCode_Tag = Literal["badRequest", "unsupportedVersion", "unknownPurchaseKey", "unknownOfferId", "offerDisabled", "offerMismatch", "productUnavailable", "paymentNotEntitled", "paymentPending", "providerUnavailable", "rateLimited", "codeInvalid", "codeUsed", "codeExpired", "receiptInvalid", "receiptUsed", "internal", "unknown"] + BadgeStatus = Literal["active", "expired", "expiredOld", "failed", "unknownKey"] BadgeType = Literal["supporter", "legend", "investor"] @@ -1029,6 +1142,10 @@ class ChatErrorType_commandError(TypedDict): type: Literal["commandError"] message: str +class ChatErrorType_badgeRedeemError(TypedDict): + type: Literal["badgeRedeemError"] + badgeRedeemError: "BadgeRedeemError" + class ChatErrorType_agentCommandError(TypedDict): type: Literal["agentCommandError"] message: str @@ -1127,6 +1244,7 @@ ChatErrorType = ( | ChatErrorType_agentVersion | ChatErrorType_agentNoSubResult | ChatErrorType_commandError + | ChatErrorType_badgeRedeemError | ChatErrorType_agentCommandError | ChatErrorType_invalidFileDescription | ChatErrorType_connectionIncognitoChangeProhibited @@ -1137,7 +1255,7 @@ ChatErrorType = ( | ChatErrorType_exception ) -ChatErrorType_Tag = Literal["noActiveUser", "noConnectionUser", "noSndFileUser", "noRcvFileUser", "userUnknown", "userExists", "chatRelayExists", "differentActiveUser", "cantDeleteActiveUser", "cantDeleteLastUser", "cantHideLastUser", "hiddenUserAlwaysMuted", "emptyUserPassword", "userAlreadyHidden", "userNotHidden", "invalidDisplayName", "chatNotStarted", "chatNotStopped", "chatStoreChanged", "invalidConnReq", "simplexDomainNotReady", "notResolvedLocally", "unsupportedConnReq", "connReqMessageProhibited", "contactNotReady", "contactNotActive", "contactDisabled", "connectionDisabled", "groupUserRole", "groupMemberInitialRole", "contactIncognitoCantInvite", "groupIncognitoCantInvite", "groupContactRole", "groupDuplicateMember", "groupDuplicateMemberId", "groupNotJoined", "groupMemberNotActive", "cantBlockMemberForSelf", "groupMemberUserRemoved", "groupMemberNotFound", "groupCantResendInvitation", "groupInternal", "fileNotFound", "fileSize", "fileAlreadyReceiving", "fileCancelled", "fileCancel", "fileAlreadyExists", "fileWrite", "fileSend", "fileRcvChunk", "fileInternal", "fileImageType", "fileImageSize", "fileNotReceived", "fileNotApproved", "fallbackToSMPProhibited", "inlineFileProhibited", "invalidForward", "invalidChatItemUpdate", "invalidChatItemDelete", "hasCurrentCall", "noCurrentCall", "callContact", "directMessagesProhibited", "agentVersion", "agentNoSubResult", "commandError", "agentCommandError", "invalidFileDescription", "connectionIncognitoChangeProhibited", "connectionUserChangeProhibited", "peerChatVRangeIncompatible", "relayTestError", "internalError", "exception"] +ChatErrorType_Tag = Literal["noActiveUser", "noConnectionUser", "noSndFileUser", "noRcvFileUser", "userUnknown", "userExists", "chatRelayExists", "differentActiveUser", "cantDeleteActiveUser", "cantDeleteLastUser", "cantHideLastUser", "hiddenUserAlwaysMuted", "emptyUserPassword", "userAlreadyHidden", "userNotHidden", "invalidDisplayName", "chatNotStarted", "chatNotStopped", "chatStoreChanged", "invalidConnReq", "simplexDomainNotReady", "notResolvedLocally", "unsupportedConnReq", "connReqMessageProhibited", "contactNotReady", "contactNotActive", "contactDisabled", "connectionDisabled", "groupUserRole", "groupMemberInitialRole", "contactIncognitoCantInvite", "groupIncognitoCantInvite", "groupContactRole", "groupDuplicateMember", "groupDuplicateMemberId", "groupNotJoined", "groupMemberNotActive", "cantBlockMemberForSelf", "groupMemberUserRemoved", "groupMemberNotFound", "groupCantResendInvitation", "groupInternal", "fileNotFound", "fileSize", "fileAlreadyReceiving", "fileCancelled", "fileCancel", "fileAlreadyExists", "fileWrite", "fileSend", "fileRcvChunk", "fileInternal", "fileImageType", "fileImageSize", "fileNotReceived", "fileNotApproved", "fallbackToSMPProhibited", "inlineFileProhibited", "invalidForward", "invalidChatItemUpdate", "invalidChatItemDelete", "hasCurrentCall", "noCurrentCall", "callContact", "directMessagesProhibited", "agentVersion", "agentNoSubResult", "commandError", "badgeRedeemError", "agentCommandError", "invalidFileDescription", "connectionIncognitoChangeProhibited", "connectionUserChangeProhibited", "peerChatVRangeIncompatible", "relayTestError", "internalError", "exception"] ChatFeature = Literal["timedMessages", "fullDelete", "reactions", "voice", "files", "calls", "sessions"] diff --git a/src/Simplex/Chat/Store/SQLite/Migrations/chat_query_plans.txt b/src/Simplex/Chat/Store/SQLite/Migrations/chat_query_plans.txt index 6726d2ffaf..10cf2b93c2 100644 --- a/src/Simplex/Chat/Store/SQLite/Migrations/chat_query_plans.txt +++ b/src/Simplex/Chat/Store/SQLite/Migrations/chat_query_plans.txt @@ -7723,7 +7723,7 @@ Query: SELECT xgrplinkmem_received FROM group_members WHERE group_member_id = ? Plan: SEARCH group_members USING INTEGER PRIMARY KEY (rowid=?) -Query: UPDATE badge_purchases SET alert_acked_kind = ?, alert_acked_episode = ?, alert_snooze_until = ? WHERE badge_purchase_id = ? +Query: UPDATE badge_purchases SET alert_acked_kind = ?, alert_acked_episode = ?, alert_snooze_until = ? WHERE badge_purchase_id = ? AND user_id = ? Plan: SEARCH badge_purchases USING INTEGER PRIMARY KEY (rowid=?) From e384063af0ae61439e9d309514eb6bf5b3dc2654 Mon Sep 17 00:00:00 2001 From: "Evgeny @ SimpleX Chat" <259188159+evgeny-simplex@users.noreply.github.com> Date: Thu, 17 Sep 2026 13:05:00 +0100 Subject: [PATCH 42/62] website: update crowdfunding page (#7528) --- website/src/crowdfunding.html | 95 +++----------- website/src/css/livestream.css | 221 +-------------------------------- website/src/js/livestream.js | 91 -------------- website/src/livestream.html | 112 +---------------- 4 files changed, 31 insertions(+), 488 deletions(-) diff --git a/website/src/crowdfunding.html b/website/src/crowdfunding.html index 53d23ab6c4..1f87477b3c 100644 --- a/website/src/crowdfunding.html +++ b/website/src/crowdfunding.html @@ -218,7 +218,6 @@ templateEngineOverride: njk color: #dfeaff; } - .cf-hero .cf-live-link { display: inline-block; margin-top: calc(var(--sec-vhu) * 5); font-size: calc(var(--sec-vwu) * 2.2); position: relative; top: calc(var(--sec-vhu) * 1.5); } /* ---- close: same left-aligned layout as the hero ---- */ .cf-close .area { position: relative; display: flex; align-items: flex-end; padding: 0 calc(var(--sec-vwu) * 7.5) calc(var(--sec-vhu) * 22) 0; } @@ -261,7 +260,6 @@ templateEngineOverride: njk width: fit-content; } .cf-close .cf-hero-cta { margin-top: calc(var(--sec-vhu) * 7); } - .cf-close .cf-live-link { display: inline-block; margin-top: calc(var(--sec-vhu) * 4.5); font-size: calc(var(--sec-vwu) * 2.2); position: relative; top: 0; } .cf-phone { position: absolute; @@ -315,10 +313,9 @@ templateEngineOverride: njk background: linear-gradient(180deg, #00F0FF 0%, #00C7FF 38%, #008FFF 100%); color: #ffffff; } - .cf-hero-invest-link { + .cf-cta-link { display: flex; align-items: center; - gap: calc(var(--sec-vwu) * 0.7); font-family: "Manrope", sans-serif; font-weight: 400; font-size: calc(var(--sec-vwu) * 1.5); @@ -329,10 +326,8 @@ templateEngineOverride: njk -webkit-text-fill-color: transparent; background-clip: text; color: transparent; - --wf-capital-nav-logo-fill: #64fdff; } - .cf-hero-invest-link svg { height: calc(var(--sec-vwu) * 2.1); width: auto; display: block; transform: translateY(calc(var(--sec-vwu) * -0.25)); } - .cf-hero-invest-link:focus-visible { outline: 2px solid #ffffff; outline-offset: 4px; border-radius: 4px; } + .cf-cta-link:focus-visible { outline: 2px solid #ffffff; outline-offset: 4px; border-radius: 4px; } /* the same link twice: beside the button (desktop), in the hero's top right corner (mobile). Only one of the two is ever displayed. */ .cf-hero-corner { display: none; } @@ -370,7 +365,6 @@ templateEngineOverride: njk .cf-pill:active { transform: translateY(1px); } .cf-top { top: 30px; } - .cf-bottom { bottom: 30px; } .cf-primary { background: linear-gradient(90deg, #019bfe 0%, #2e3fa0 100%); @@ -380,39 +374,16 @@ templateEngineOverride: njk .cf-primary:hover { filter: brightness(1.07); } .cf-primary:focus-visible { outline-color: #ffffff; } - .cf-secondary { - background: #ffffff; - color: #006cd7; - border: 1px solid rgba(2, 55, 137, .15); - --wf-capital-nav-logo-fill: #006cd7; - } - .cf-secondary:hover { box-shadow: 0 0 0 1px #80b6eb; } - .cf-pill svg { height: 30px; width: auto; display: block; transform: translateY(-3.5px); } @media screen and (min-width: 960px) { .cf-pill { width: 252px; justify-content: center; } } - .cf-live-link { - font-family: "Manrope", sans-serif; - font-weight: 300; - font-size: calc(var(--sec-vwu) * 1.9); - background: linear-gradient(90deg, #019bfe 0%, #64fdff 58%, #c8feff 100%); - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; - background-clip: text; - color: transparent; - text-decoration: none; - } - .cf-live-link:focus-visible { outline: 2px solid #019bfe; outline-offset: 2px; } - .cf-pill, - .cf-live-link, - .cf-hero-invest-link, + .cf-cta-link, .cf .text-container a.gradient-text { transition: none; } - .cf-live-link:hover, - .cf-hero-invest-link:hover, + .cf-cta-link:hover, .cf .text-container a.gradient-text:hover { filter: brightness(1.12); } @media screen and (min-width: 960px) { @@ -599,10 +570,8 @@ templateEngineOverride: njk .cf-hero h1, .cf-hero .lead, .cf-hero .cf-stats, - .cf-hero .cf-live-link, .cf-close h1, - .cf-close .cf-close-call, - .cf-close .cf-live-link { + .cf-close .cf-close-call { padding-left: var(--cf-text-inset); padding-right: var(--cf-text-inset); } @@ -653,8 +622,7 @@ templateEngineOverride: njk .cf-close .cf-hero-text { display: contents; } .cf-hero h1, .cf-hero .lead, - .cf-hero .cf-stats, - .cf-hero .cf-live-link { position: relative; z-index: 4; } + .cf-hero .cf-stats { position: relative; z-index: 4; } .cf-hero h1 { font-size: calc(var(--sec-vwu) * 9.7); } .cf-hero .lead { font-size: calc(var(--sec-vwu) * 3.55); max-width: none; margin-top: calc(var(--sec-vhu) * 2); } .cf-close .area { padding: calc(var(--cf-top) + var(--sec-vhu) * 14) var(--cf-gutter) 0; } @@ -664,8 +632,7 @@ templateEngineOverride: njk } /* centred like the home page, the two heading lines set apart */ .cf-close h1, - .cf-close .cf-close-call, - .cf-close .cf-live-link { text-align: center; } + .cf-close .cf-close-call { text-align: center; } /* the heading rides up with the arc; nothing below it moves */ .cf-close h1 { font-size: calc(var(--sec-vwu) * 8.7); font-weight: 700; position: relative; top: -32px; } .cf-close-l1 { font-size: calc(var(--sec-vwu) * 11.745); } @@ -684,12 +651,10 @@ templateEngineOverride: njk padding: calc(var(--sec-vhu) * 2.5) calc(var(--sec-vwu) * 5); } .cf-close-offer p { font-size: calc(var(--sec-vwu) * 3.6); } - .cf-close .cf-live-link { display: block; font-size: calc(var(--sec-vwu) * 5); margin-top: calc(var(--sec-vhu) * 2.5); top: 0; } .cf-stats { top: 0; gap: calc(var(--sec-vwu) * 8); margin-top: calc(var(--sec-vhu) * 3); } .cf-stat img { width: calc(var(--sec-vwu) * 8); } .cf-stat b { font-size: calc(var(--sec-vwu) * 6.5); } .cf-stat span { font-size: calc(var(--sec-vwu) * 3.4); } - .cf-hero .cf-live-link { margin-top: calc(var(--sec-vhu) * 2); top: 0; font-size: calc(var(--sec-vwu) * 5); } /* the pill sits on the bottom edge and rides with the chrome: dvh tracks the visible bottom, svh the box the area is sized from */ .cf-hero .cf-hero-cta, @@ -702,17 +667,16 @@ templateEngineOverride: njk } /* over the phone and the gradient covering it */ .cf-hero .cf-hero-cta { z-index: 5; } - .cf-hero-cta .cf-pill { width: 100%; height: 48px; font-size: 16px; } + .cf-hero-cta .cf-pill { width: 100%; height: 48px; font-size: 16px; gap: 9px; } + .cf-hero-cta .cf-pill svg { height: 30px; transform: translateY(-3.5px); } /* one link, two placements: the top right corner of the hero, and its own button-sized target above the pill on the closing section */ - .cf-hero-invest-link { + .cf-cta-link { height: 48px; font-size: calc(var(--sec-vwu) * 4.6); - gap: calc(var(--sec-vwu) * 1.9); } - .cf-hero-invest-link svg { height: calc(var(--sec-vwu) * 6.5); transform: translateY(calc(var(--sec-vwu) * -0.7)); } - .cf-close .cf-hero-invest-link { justify-content: center; } - .cf-hero .cf-hero-cta .cf-hero-invest-link { display: none; } + .cf-close .cf-cta-link { justify-content: center; } + .cf-hero .cf-hero-cta .cf-cta-link { display: none; } /* a child of the section, so its reference is the section's top edge, which the band raises by --cf-band-shift, as with the arc. z-index clears .area, which is 11 and covers this corner. */ @@ -752,9 +716,7 @@ templateEngineOverride: njk } .cf-pill { font-size: 16px; } - .cf-bottom { top: calc(5px + var(--cf-nav-shift)); right: 16px; bottom: auto; padding: 0 18px; } .cf-top { top: auto; left: 16px; right: 16px; bottom: var(--cf-cta-bottom); height: 48px; justify-content: center; } - .cf-live-link { font-size: calc(var(--sec-vwu) * 4.2); } .cf .text-container a.gradient-text { font-weight: 400; } } @@ -794,11 +756,9 @@ templateEngineOverride: njk .cf-hero h1 { font-size: calc(var(--sec-vwu) * 9.3); } } - /* narrow phones: keep the corner link and the pill clear of the logo */ + /* narrow phones: keep the corner link clear of the logo */ @media screen and (max-width: 389px) { header#navbar > a.logo img { height: 24px; } - .cf-bottom { font-size: 12px; padding: 0 12px; height: 40px; } - .cf-bottom svg { height: 22px; transform: translateY(-2.5px); } .cf-hero-corner { height: 40px; } .cf-tag .v { font-size: 2.96cqh; line-height: 1.4; } } @@ -986,10 +946,10 @@ templateEngineOverride: njk

      The first and the only messaging network without any user IDs

      SimpleX Chat is building a messaging network unlike every major platform — without phone numbers, usernames, emails, or any user identifiers.

      @@ -1001,15 +961,12 @@ templateEngineOverride: njk
      480KMonthly users
      - Join the livestream and Q&A on Sep 15
      - - Invest on {{ wfLogo() }} - + Subscribe for updates @@ -1118,12 +1075,11 @@ templateEngineOverride: njk

      Get a stake
      in SimpleX Chat

      We are building a network that people own.
      We invite you to invest and become part of it.

      - Join the livestream and Q&A on Sep 15

      Invest $500+ by September 22 and get a SimpleX public name for your channel or business for 7 years, ahead of public launch.

      @@ -1146,8 +1102,7 @@ templateEngineOverride: njk
      @@ -1195,16 +1150,6 @@ templateEngineOverride: njk window.addEventListener('resize', update); update(); })(); - - (function cfFlip() { - if (new URLSearchParams(location.search).get('action') !== 'invest') return; - var req = document.getElementById('cf-cta-request'); - var inv = document.getElementById('cf-cta-invest'); - req.classList.remove('cf-top', 'cf-primary'); - req.classList.add('cf-bottom', 'cf-secondary'); - inv.classList.remove('cf-bottom', 'cf-secondary'); - inv.classList.add('cf-top', 'cf-primary'); - })();
      @@ -1242,7 +1187,7 @@ templateEngineOverride: njk @@ -89,108 +88,7 @@ templateEngineOverride: njk {% include "footer.html" %}
      -
      - -
      - -
      - -
      - -
      - -
      - -
      - -
      - - - - From 746d33ff6dd5c3fe59111cb986cd0c7e06a35758 Mon Sep 17 00:00:00 2001 From: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com> Date: Thu, 17 Sep 2026 15:12:14 +0000 Subject: [PATCH 43/62] multiplatform: remove unused strings (#7529) --- .../commonMain/resources/MR/ar/strings.xml | 63 ------------------ .../commonMain/resources/MR/base/strings.xml | 62 ------------------ .../commonMain/resources/MR/bg/strings.xml | 64 ------------------- .../commonMain/resources/MR/bn/strings.xml | 1 - .../commonMain/resources/MR/ca/strings.xml | 62 ------------------ .../commonMain/resources/MR/cs/strings.xml | 63 ------------------ .../commonMain/resources/MR/da/strings.xml | 16 ----- .../commonMain/resources/MR/de/strings.xml | 64 ------------------- .../commonMain/resources/MR/el/strings.xml | 62 ------------------ .../commonMain/resources/MR/es/strings.xml | 64 ------------------- .../commonMain/resources/MR/fa/strings.xml | 63 ------------------ .../commonMain/resources/MR/fi/strings.xml | 57 ----------------- .../commonMain/resources/MR/fr/strings.xml | 62 ------------------ .../commonMain/resources/MR/hi/strings.xml | 8 --- .../commonMain/resources/MR/hr/strings.xml | 35 ---------- .../commonMain/resources/MR/hu/strings.xml | 62 ------------------ .../commonMain/resources/MR/in/strings.xml | 62 ------------------ .../commonMain/resources/MR/it/strings.xml | 64 ------------------- .../commonMain/resources/MR/iw/strings.xml | 62 ------------------ .../commonMain/resources/MR/ja/strings.xml | 64 ------------------- .../commonMain/resources/MR/ko/strings.xml | 37 ----------- .../commonMain/resources/MR/ku/strings.xml | 19 ------ .../commonMain/resources/MR/lt/strings.xml | 58 ----------------- .../commonMain/resources/MR/lv/strings.xml | 62 ------------------ .../commonMain/resources/MR/ml/strings.xml | 16 ----- .../resources/MR/nb-rNO/strings.xml | 3 - .../commonMain/resources/MR/nl/strings.xml | 63 ------------------ .../commonMain/resources/MR/pl/strings.xml | 64 ------------------- .../resources/MR/pt-rBR/strings.xml | 62 ------------------ .../commonMain/resources/MR/pt/strings.xml | 35 ---------- .../commonMain/resources/MR/ro/strings.xml | 62 ------------------ .../commonMain/resources/MR/ru/strings.xml | 64 ------------------- .../commonMain/resources/MR/sk/strings.xml | 23 ------- .../commonMain/resources/MR/th/strings.xml | 55 ---------------- .../commonMain/resources/MR/tr/strings.xml | 64 ------------------- .../commonMain/resources/MR/uk/strings.xml | 63 ------------------ .../commonMain/resources/MR/vi/strings.xml | 63 ------------------ .../resources/MR/zh-rCN/strings.xml | 63 ------------------ .../resources/MR/zh-rTW/strings.xml | 64 ------------------- 39 files changed, 2000 deletions(-) diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/ar/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/ar/strings.xml index 5aa9270e4b..4a3f7870fe 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/ar/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/ar/strings.xml @@ -14,20 +14,15 @@ اقبل لا يمكن التراجع عن هذا الإجراء - سيتم فقد ملف تعريفك وجهات اتصالك ورسائلك وملفاتك بشكل نهائي. هذه المجموعة لم تعد موجودة. - رمز QR هذا ليس رابطًا! - مستقبل المُراسلة لا يمكن التراجع عن هذا الإجراء - سيتم حذف جميع الملفات والوسائط المستلمة والمرسلة. ستبقى الصور منخفضة الدقة. لا يمكن التراجع عن هذا الإجراء - سيتم حذف الرسائل المرسلة والمستلمة قبل التحديد. قد تأخذ عدة دقائق. ينطبق هذا الإعداد على الرسائل الموجودة في ملف تعريف الدردشة الحالي الخاص بك - منصة الرسائل والتطبيقات تحمي خصوصيتك وأمنك. يتم مشاركة ملف التعريف مع جهات اتصالك فقط. سيتم تغيير الدور إلى "%s". سيتم إبلاغ كل فرد في المجموعة. سيتم تغيير الدور إلى "%s". سيستلم العضو دعوة جديدة. خوادم الاتصالات الجديدة لملف تعريف الدردشة الحالي الخاص بك سيتم تغيير عنوان الاستلام إلى خادم مختلف. سيتم إكمال تغيير العنوان بعد اتصال المرسل بالإنترنت. - هذا الرابط ليس رابط اتصال صالح! اسمح - أضِف خوادم مُعدة مسبقًا أضِف إلى جهاز آخر ستُحذف جميع الدردشات والرسائل - لا يمكن التراجع عن هذا! الوصول إلى الخوادم عبر وسيط SOCKS على المنفذ %d؟ يجب بدء تشغيل الوسيط قبل تفعيل هذا الخيار. @@ -108,8 +103,6 @@ انتهت المكالمة غيِّر لون إضافي ثانوي - " -\nمتوفر في v5.1" مكالمات الصوت/الفيديو ممنوعة. عن طريق ملف تعريف الدردشة (افتراضي) أو عن طريق الاتصال (تجريبي). يمكن تعطيله عبر الإعدادات
      - سيستمر عرض الإشعارات أثناء تشغيل التطبيق.]]> @@ -167,7 +160,6 @@ خطأ في حذف جهة الاتصال جهة الاتصال مخفية: انسخ - اتصل متصل انضمام إلى المجموعة؟ اتصل عبر رابط لمرة واحدة؟ @@ -305,15 +297,11 @@ متصل سيتم حذف جهة الاتصال وجميع الرسائل - لا يمكن التراجع عن هذا! الحد الأقصى لحجم الملف المدعوم حاليًا هو %1$s. - تواصل عبر الرابط / رمز QR - أنشئ رابط دعوة لمرة واحدة تحقق من عنوان الخادم وحاول مرة أخرى. امحُ التحقُّق - أنشئ عنوانًا للسماح للأشخاص بالتواصل معك. أدخل الخادم يدويًا ملون لدى جهة الاتصال التعمية بين الطرفين - أنشئ أنشئ ملف تعريفك مكالمة جارية فعّل التدمير الذاتي @@ -387,7 +375,6 @@ حذف جهة الاتصال؟ احذف بالنسبة لي وقت مخصّص - لامركزي عبارة مرور قاعدة البيانات عبارة المرور الحالية… سيتم تحديث عبارة مرور تعمية قاعدة البيانات وتخزينها في Keystore. @@ -483,7 +470,6 @@ ساعات السجل سيتم استلام الصورة عندما يكتمل جهة اتصالك من رفعِها. - اعرض رمز QR في مكالمة الفيديو، أو شارك الرابط.]]> ثبّت SimpleX Chat لطرفية إذا أكّدت، فستتمكن خوادم المُراسلة من رؤية عنوان IP الخاص بك ومزود خدمتك - أي الخوادم التي تتصل بها. إخفاء: @@ -505,8 +491,6 @@ معلومات إخفاء شاشة التطبيق في التطبيقات الحديثة. تحسن الخصوصية والأمان - مسح رمز QR في مكالمة الفيديو
      ، أو يمكن لجهة الاتصال مشاركة رابط الدعوة.]]> - محصن ضد الإزعاج (spam) التخفي عبر رابط لمرة واحدة أرسلت صورة صورة @@ -547,7 +531,6 @@ واجهة أستخدام يابانية وبرتغالية يمكن أن يحدث ذلك عندما تستخدم أنت أو اتصالك النُسخة الاحتياطية القديمة لقاعدة البيانات. انضم ك%s - رمز QR غير صالح الواجهة الإيطالية الرابط غير صالح! دعوة الأصدقاء @@ -647,18 +630,12 @@ %d ثانية قُطع الاتصال رسالة تختفي - لا تنشئ عنوانًا خطأ في تحديث تضبيط الشبكة خطأ في استلام الملف خطأ في تبديل ملف التعريف! حافظ على اتصالاتك - تأكد من أن عناوين خادم XFTP بالتنسيق الصحيح، وأن تكون مفصولة بأسطر وليست مكررة. عُلّم محذوف القوائم والتنبيهات - خطأ في حفظ خوادم XFTP - خطأ في تحميل خوادم SMP - خطأ في تحميل خوادم XFTP - تأكد من أن عناوين خادم SMP في التنسيق الصحيح، وأن تكون مفصولة بأسطر وليست مكررة. مساعدة ماركداون عضو ماركداون في الرسائل @@ -690,7 +667,6 @@ إصلاح التعمية بعد استعادة النُسخ الاحتياطية. اجعل رسالة واحدة تختفي خطأ في تفعيل إيصالات التسليم! - خطأ في حفظ خوادم SMP خطأ في إرسال الرسالة خطأ في الانضمام إلى المجموعة خطأ في مزامنة الاتصال @@ -777,7 +753,6 @@ ستكون مضيفات البصل مطلوبة للاتصال. \nيُرجى ملاحظة: أنك لن تتمكن من الاتصال بالخوادم بدون عنوان onion. اسم عرض جديد: عبارة مرور جديدة… - قيد الانتظار عبارة المرور مطلوبة ألصِق الرابط الذي استلمته فقط مالكي المجموعة يمكنهم تفعيل الملفات والوسائط. @@ -808,12 +783,9 @@ افتح وحدة تحكم الدردشة إدخال رمز المرور افتح SimpleX Chat لقبول المكالمة - يمكن لأي شخص استضافة الخوادم. كلمة المرور للإظهار ندّ لِندّ - أنت تقرر مَن يمكنه الاتصال. مكالمة قيد الانتظار - تقوم أجهزة العميل فقط بتخزين ملفات تعريف المستخدمين وجهات الاتصال والمجموعات والرسائل. صفّر الألوان احفظ عنوان الخادم المُعد مسبقًا @@ -836,7 +808,6 @@ قيم التطبيق منفذ احفظ إعدادات عنوان SimpleX - إعادة تعريف الخصوصية يُرجى إبلاغ المطوِّرين بذلك. الخصوصية والأمان أزل @@ -850,7 +821,6 @@ ستتم إزالة خوادم WebRTC ICE المحفوظة. امنع إرسال الملفات والوسائط. استلمت إجابة… - مستودع GitHub.]]> ارفض يحمي خادم المُرحل عنوان IP الخاص بك، ولكن يمكنه مراقبة مُدّة المكالمة. الرجاء إدخال كلمة المرور السابقة بعد استعادة نسخة احتياطية لقاعدة البيانات. لا يمكن التراجع عن هذا الإجراء. @@ -922,7 +892,6 @@ رمز QR صفّر المنفذ %d - خادم مُعد مسبقًا يُستخدم خادم المُرحل فقط إذا لزم الأمر. يمكن لطرف آخر مراقبة عنوان IP الخاص بك. حفظ وإشعار جهة الاتصال إعادة التشغيل @@ -934,7 +903,6 @@ رمز المرور للتدمير الذاتي إرسال الملفات غير مدعوم بعد أُلغيَ المرسل نقل الملف. - (امسح أو ألصق من الحافظة) ثانية حذف المُرسل طلب الاتصال. امسح رمز QR @@ -1007,7 +975,6 @@ قفل SimpleX لم يتحقق من %s قفل SimpleX - خوادم SMP مشاركة الوسائط… رسائل SimpleX Chat قفل SimpleX غير مفعّل! @@ -1024,7 +991,6 @@ إيقاف الدردشة؟ أظهر حدثت بعض الأخطاء غير الفادحة أثناء الاستيراد: - وسيط SOCKS تم تدقيق أمان SimpleX Chat بواسطة Trail of Bits. إيقاف أظهر المعاينة @@ -1077,20 +1043,15 @@ يجلب التطبيق الرسائل الجديدة بشكل دوري - يستخدم نسبة قليلة من البطارية يوميًا. لا يستخدم التطبيق إشعارات الدفع - لا يتم إرسال البيانات من جهازك إلى الخوادم. سيتم إلغاء الاتصال الذي قبلته! لن تتمكن جهة الاتصال التي شاركت هذا الرابط معها من الاتصال! - هذا النص متاح في الإعدادات - لحماية خصوصيتك، يستخدم SimpleX معرّفات منفصلة لكل جهة اتصال لديك. لحماية معلوماتك، فعّل قفل SimpleX \nسيُطلب منك إكمال المصادقة قبل تفعيل هذه الميزة. عزل النقل بفضل المستخدمين - ساهِم عبر Weblate! دعم البلوتوث وتحسينات أخرى. بفضل المستخدمين - ساهِم عبر Weblate! يتم تشغيل SimpleX في الخلفية بدلاً من استخدام إشعارات push.]]> - انقر لبدء محادثة جديدة - (للمشاركة مع جهة اتصالك) للتواصل عبر الرابط للاتصال، يمكن لجهة الاتصال مسح رمز QR أو استخدام الرابط في التطبيق. اختبر الخوادم - لا معرّفات مُستخدم دعم SimpleX Chat بدِّل العنوان الرئيسي @@ -1143,7 +1104,6 @@ ستتصل بجميع أعضاء المجموعة. ملفات تعريف دردشتك عنوان SimpleX الخاص بك - خوادم SMP الخاصة بك عندما يكون التطبيق قيد التشغيل عبر المُرحل لقد انضممت إلى هذه المجموعة @@ -1155,7 +1115,6 @@ سيتم استلام الفيديو عند اكتمال رفع جهة اتصالك. تحقق من رمز الأمان رسائل صوتية - عندما يطلب الأشخاص الاتصال، يمكنك قبوله أو رفضه. ستكون متصلاً بالمجموعة عندما يكون جهاز مضيف المجموعة متصلاً بالإنترنت، يُرجى الانتظار أو التحقق لاحقًا! ستكون متصلاً عندما يتم قبول طلب اتصالك، يُرجى الانتظار أو التحقق لاحقًا! تستخدم خوادم SimpleX Chat. @@ -1164,9 +1123,7 @@ استخدام وسيط SOCKS؟ عندما تكون متاحة ستبقى جهات اتصالك متصلة. - لا نقوم بتخزين أي من جهات اتصالك أو رسائلك (بمجرد تسليمها) على الخوادم. يمكنك استخدام تخفيض السعر لتنسيق الرسائل: - استخدم الدردشة أنت خطأ غير معروف غيّرتَ دور نفسك إلى %s @@ -1182,12 +1139,9 @@ في انتظار الملف عرض رمز الأمان لن تفقد جهات اتصالك إذا حذفت عنوانك لاحقًا. - خوادم XFTP الخاصة بك استخدم خوادم SimpleX Chat - خوادم XFTP خوادم ICE الخاصة بك هل تستخدم اتصالاً مباشرًا بالإنترنت؟ - أنت تتحكم في الدردشة! مكالماتك عبارة مرور خاطئة! تحذير: قد تفقد بعض البيانات! @@ -1211,7 +1165,6 @@ سيتم إرسال ملف تعريف الدردشة الخاص بك إلى أعضاء المجموعة مرحبًا! %1$s يريد الاتصال بك! - خوادم ICE الخاصة بك خصوصيتك حُدثت ملف تعريف المجموعة أنت: %1$s @@ -1233,7 +1186,6 @@ سيُطلب منك المصادقة عند بدء تشغيل التطبيق أو استئنافه بعد 30 ثانية في الخلفية. رسالة صوتية (%1$s) إعداداتك - تحديث وضع عزل النقل؟ يُخزن ملف التعريف وجهات الاتصال والرسائل التي سلُمت على جهازك. سيتم حذف قاعدة بيانات الدردشة الحالية واستبدالها بالقاعدة المستوردة. \nلا يمكن التراجع عن هذا الإجراء - سيتم فقد ملف التعريف وجهات الاتصال والرسائل والملفات الخاصة بك بشكل نهائي. @@ -1245,13 +1197,10 @@ ملف تعريفك الحالي عبر %1$s غير مقروءة - مرحبًا! في انتظار الصورة فيديو في انتظار الفيديو فيديو - يمكنك مشاركة عنوانك كرابط أو رمز QR - يمكن لأي شخص الاتصال بك. - يمكنك إنشاؤه لاحقًا أنت تحاول دعوة جهة اتصال شاركت ملف تعريف متخفي معها إلى المجموعة التي تستخدم فيها ملف تعريفك الرئيسي ألغِ الكتم ألغِ الكتم @@ -1259,7 +1208,6 @@ إلغاء إخفاء ملف تعريف يجب أن تكون جهة الاتصال متصلة بالإنترنت حتى يكتمل الاتصال. \nيمكنك إلغاء هذا الاتصال وإزالة جهة الاتصال (والمحاولة لاحقًا باستخدام رابط جديد). - فتح في تطبيق الجوّال.]]> استخدم للاتصالات الجديدة استخدم الخادم عنوان خادمك @@ -1281,7 +1229,6 @@ رسالة الترحيب عبر رابط عنوان الاتصال أُزيلت جهة اتصالك هذا الرابط، أو أنه كان رابطًا لمرة واحدة وقد استُخدِم بالفعل.\nللتواصل، اطلب من جهة اتصالك إنشاء رابط جديد. - سيتم إرسال ملف تعريف دردشتك\nإلى جهة اتصالك إلغاء الإخفاء ملفك التعريفي العشوائي ستستمر في استلام المكالمات والإشعارات من الملفات التعريفية المكتومة عندما تكون نشطة. @@ -1298,7 +1245,6 @@ تحتاج إلى السماح لجهة اتصالك بإرسال رسائل صوتية لتتمكن من إرسالها. أرسلت جهة اتصالك ملفًا أكبر من الحجم الأقصى المعتمد حاليًا (%1$s). الاتصال بمطوِّري SimpleX Chat لطرح أي أسئلة وتلقي التحديثات.]]> - خادمك يُخزن ملف تعريفك على جهازك ومشاركته فقط مع جهات اتصالك. لا تستطيع خوادم SimpleX رؤية ملف تعريفك. الفيديو مقفل الفيديو مُشغَّل @@ -1323,13 +1269,11 @@ مجموعات صغيرة (الحد الأقصى 20) تواصل مباشرةً؟ سيتم إرسال طلب الاتصال لعضو المجموعة هذا. - اتصال متخفي استخدم ملف التعريف الحالي عطّل الإشعارات افتح إعدادات التطبيق لا يمكن تشغيل SimpleX في الخلفية. ستستلم الإشعارات فقط عندما يكون التطبيق قيد التشغيل. سيتم مشاركة ملف تعريف عشوائي جديد. - ألصِق الرابط المُستلَم للتواصل مع جهة اتصالك… ستتم مشاركة ملفك التعريفي %1$s. قد يغلق التطبيق بعد دقيقة واحدة في الخلفية. اسمح @@ -1498,7 +1442,6 @@ خطأ في إظهار المحتوى خطأ في إظهار الرسالة انتهت المكالمة %1$s - يمكنك جعله مرئيًا لجهات اتصال SimpleX الخاصة بك عبر الإعدادات. لا يتم إرسال التاريخ إلى الأعضاء الجدد. حاول مجددًا الكاميرا غير متوفرة @@ -1845,10 +1788,6 @@ رسالة مُحوّلة لا يوجد اتصال مباشر حتى الآن، الرسالة مُحوّلة بواسطة المُدير. ألصِق رابط / امسح - خوادم SMP المهيأة - خوادم SMP أخرى - خوادم XFTP المهيأة - خوادم XFTP أخرى أظهِر النسبة المئوية مُعطَّل مستقرّ @@ -1894,7 +1833,6 @@ الملفات التي نُزّلت أخطاء التنزيل منتهية الصلاحيّة - افتح إعدادات الخادم أخرى موّكل مؤمن @@ -2178,7 +2116,6 @@ أضف أعضاء فريقك إلى المحادثات. يُمنع إرسال الرسائل المباشرة بين الأعضاء في هذه الدردشة. أجهزة Xiaomi
      : يُرجى تفعيل التشغيل التلقائي (Autostart) في إعدادات النظام لكي تعمل الإشعارات.]]> - مُعمَّاة بين الطرفين، مع أمان ما بعد الكم في الرسائل المباشرة.]]> تحقق من الرسائل كل 10 دقائق يُمنع إرسال الرسائل المباشرة بين الأعضاء. الدردشة diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/base/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/base/strings.xml index f5fc7f8278..f2f6555b78 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/base/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/base/strings.xml @@ -12,8 +12,6 @@ Use incognito profile Your profile will be sent to the contact that you received this link from. You will connect to all group members. - Connect - Connect incognito Open chat Join channel %s Connect to %s @@ -128,12 +126,6 @@ Another reason - Error saving SMP servers - Error saving XFTP servers - Make sure SMP server addresses are in correct format, line separated and are not duplicated. - Make sure XFTP server addresses are in correct format, line separated and are not duplicated. - Error loading SMP servers - Error loading XFTP servers Error updating network configuration Failed to load chat Failed to load chats @@ -486,8 +478,6 @@ Welcome %1$s! - Welcome! - This text is available in settings Chats Settings connecting… @@ -497,7 +487,6 @@ Join as %s rejected connecting… - Tap to start a new chat Chat with the developers You have no chats Talk to someone @@ -741,7 +730,6 @@ Connected Disconnected Error - Pending Change receiving address? Receiving address will be changed to a different server. Address change will complete after sender comes online. Abort changing address? @@ -803,12 +791,8 @@ Start new chat - Create one-time invitation link - Connect via link / QR code Scan QR code Create secret group - (to share with your contact) - (scan or paste from clipboard) (only stored by group members) @@ -920,19 +904,12 @@ Show QR code - Invalid QR code - This QR code is not a link! Invalid link! - This link is not a valid connection link! Connection request sent! You will be connected to group when the group host\'s device is online, please wait or check later! You will be connected when your connection request is accepted, please wait or check later! You will be connected when your contact\'s device is online, please wait or check later! - show QR code in the video call, or share the link.]]> - Your chat profile will be sent\nto your contact - scan QR code in the video call, or your contact can share an invitation link.]]> Share 1-time link - Paste the link you received to connect with your contact… Learn more About SimpleX address @@ -946,7 +923,6 @@ Share address publicly Share SimpleX address on social media. - You can share your address as a link or QR code - anybody can connect to you. You won\'t lose your contacts if you later delete your address. Share 1-time link with a friend with one contact only - share in person or via any messenger.]]> @@ -954,7 +930,6 @@ Connection security SimpleX address and 1-time links are safe to share via any messenger. To protect against your link being replaced, you can compare contact security codes. - When people request to connect, you can accept or reject it. User Guide.]]> Address or 1-time link? @@ -963,7 +938,6 @@ Connect Paste This string is not a connection link! - Open in mobile app button.]]> New chat @@ -1044,11 +1018,7 @@ SimpleX Lock Chat console Message servers - SMP servers - Configured SMP servers - Other SMP servers Preset server address - Add preset servers Add server Test server Test servers @@ -1058,8 +1028,6 @@ Scan server QR code Enter server manually New server - Preset server - Your server Your server address Use server Use for new connections @@ -1070,9 +1038,6 @@ The servers for new connections of your current chat profile Save servers? Media & file servers - XFTP servers - Configured XFTP servers - Other XFTP servers Show percentage Install SimpleX Chat for terminal Reset all hints @@ -1080,8 +1045,6 @@ Contribute Rate the app Use SimpleX Chat servers? - Your SMP servers - Your XFTP servers Using SimpleX Chat servers. How to How to use your servers @@ -1131,7 +1094,6 @@ New SOCKS credentials will be used every time you start the app. New SOCKS credentials will be used for each server. for each contact and group member.\nPlease note: if you have many connections, your battery and traffic consumption can be substantially higher and some connections may fail.]]> - Update transport isolation mode? Use .onion hosts
      to No if SOCKS proxy does not support them.]]> Please note: message and file relays are connected via SOCKS proxy. Calls use direct connection.]]> Private routing @@ -1207,7 +1169,6 @@ All your contacts will remain connected. Profile update will be sent to your contacts. Share link Add address to your profile, so that your SimpleX contacts can share it with other people. Profile update will be sent to your SimpleX contacts. - Create an address to let people connect with you. Create SimpleX address Share with SimpleX contacts Share address with SimpleX contacts? @@ -1248,9 +1209,6 @@ Continue - Don\'t create address - You can create it later - You can make it visible to your SimpleX contacts via Settings. Invite @@ -1284,16 +1242,12 @@ Error saving user password - You control your chat! - The messaging and application platform protecting your privacy and security. - We don\'t store any of your contacts or messages (once delivered) on the servers. Create profile Your profile, contacts and delivered messages are stored on your device. The profile is only shared with your contacts. Display name cannot contain whitespace. Enter your name: Your bio: - Create Create profile Create Invalid name! @@ -1349,13 +1303,6 @@ Error initializing WebView. Make sure you have WebView installed and it\'s supported architecture is arm64.\nError: %s - The future of messaging - Privacy redefined - No user identifiers. - Immune to spam - You decide who can connect. - Decentralized - Anybody can host servers. Create your profile Make a private connection Migrate from another device @@ -1381,13 +1328,8 @@ The oldest human freedom — to speak to another person without being watched — built on infrastructure that cannot betray it. Because we destroyed the power to know who you are. So that your power can never be taken. Be free in your network. - To protect your privacy, SimpleX uses separate IDs for each of your contacts. - Only client devices store user profiles, contacts, groups, and messages. - end-to-end encrypted, with post-quantum security in direct messages.]]> - GitHub repository.]]> - Use chat Private notifications How it affects battery When app is running @@ -1457,7 +1399,6 @@ Accept Show Disable - Your ICE servers WebRTC ICE servers Relay server protects your IP address, but it can observe the duration of the call. Relay server is only used if necessary. Another party can observe your IP address. @@ -1616,7 +1557,6 @@ Shutdown Developer tools Experimental features - SOCKS proxy Interface LANGUAGE App icon @@ -2362,7 +2302,6 @@ SimpleX links Visible history Audio/video calls - \nAvailable in v5.1 enabled enabled for you enabled for contact @@ -3030,7 +2969,6 @@ Downloaded files Download errors Server address - Open server settings You can mention up to %1$s members per message! diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/bg/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/bg/strings.xml index 75de2d72f1..5bf3ab7754 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/bg/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/bg/strings.xml @@ -33,7 +33,6 @@ Приеми Приеми инкогнито За SimpleX Chat - Добави предварително зададени сървъри Добави към друго устройство Разширени мрежови настройки За SimpleX @@ -48,7 +47,6 @@ Приеми Допълнителен акцент Админите могат да създадат линкове за присъединяване към групи. - покажете QR кода във видеоразговора или споделете линка.]]> Отворете SimpleX Chat, за да приемете повикването Поддръжка на bluetooth и други подобрения. Relay сървърът защитава вашия IP адрес, но може да наблюдава продължителността на разговора. @@ -103,7 +101,6 @@ Лош хеш на съобщението Деактивиране повикване… - да сканирате QR код във видеоразговора или вашият контакт може да сподели линк за покана.]]> Услугата във фонов режим винаги работи – известията ще се показват веднага щом съобщенията са налични. Може да бъде деактивирано през настройките – известията ще продължат да се показват, докато приложението работи.]]> SimpleX Chat разговори @@ -189,8 +186,6 @@ Позволи на вашите контакти да изпращат изчезващи съобщения. винаги Аудио/видео разговори - " -\nДостъпно в v5.1" Фон Позволи реакции на съобщения. Позволи изпращането на лични съобщения до членовете. @@ -248,7 +243,6 @@ Задайте го вместо системната идентификация. Код за достъп за самоунищожение Още няколко неща - Свързване свързан свързване връзка %1$d @@ -385,12 +379,9 @@ Грешка при декодиране Изтрий контакт Изтрий контакт\? - Свърване чрез линк/QR код Копирано в клипборда - Създай линк за еднократна покана Създай тайна група Персонализирано време - (сканирай или постави от клипборда) Контактът все още не е свързан! Изтрий Изтрий @@ -400,18 +391,15 @@ Продължи Версия на ядрото: v%s Създай адрес - Създайте адрес, за да позволите на хората да се свързват с вас. Създай SimpleX адрес Персонализирай темата Идентификатори в базата данни и опция за изолация на транспорта. Изтрий адрес Изтрий адрес\? Цветове на интерфейса - Създай Създай профил Изтрий изображение Създай профил - Децентрализиран контактът има e2e криптиране контактът няма e2e криптиране Изтрий всички файлове @@ -438,9 +426,7 @@ Сканирай QR кода на сървъра Въведи сървъра ръчно Изтрий сървър - Не създавай адрес Име на профила: - Само потребителските устройства съхраняват потребителски профили, контакти, групи и съобщения. Деактивирай потвърждениeто\? Активиране (запазване на промените) Активирай потвърждениeто\? @@ -594,7 +580,6 @@ Грешка при изтриване на група Грешка при изтриване на чакащата контактна връзка Грешка при запазване на ICE сървърите - Чакаща връзка със сървъра Вашият контакт трябва да бъде онлайн, за да осъществите връзката. \nМожете да откажете тази връзка и да премахнете контакта (и да опитате по -късно с нов линк). Грешка при експортиране на базата данни @@ -603,9 +588,6 @@ Грешка при импортиране на базата данни Грешка при отстраняване на член Грешка при запазване на профила на групата - Грешка при зареждане на SMP сървъри - Грешка при зареждане на XFTP сървъри - Грешка при запазване на SMP сървърите Грешка при присъединяване към група Грешка при зареждане на подробности Грешка при получаване на файл @@ -613,7 +595,6 @@ Грешка при запазване на потребителска парола Грешка при стартиране на чата Грешка при спиране на чата - Грешка при запазване на XFTP сървърите Грешка при изпращане на съобщение Грешка при задаване на адрес Грешка при смяна на профил! @@ -694,7 +675,6 @@ Само вашият контакт може да изпраща изчезващи съобщения. Забрани изпращането на изчезващи съобщения. Членовете могат да изпращат изчезващи съобщения. - Невалиден QR код Невалиден линк! Неправилен код за сигурност! Невалиден адрес на сървъра! @@ -764,7 +744,6 @@ Информация Инсталирай SimpleX Chat за терминал Как работи - Защитен от спам Игнорирай Покани членове Необратимото изтриване на съобщения е забранено в този чат. @@ -801,7 +780,6 @@ Няма се използват Onion хостове. Нека да поговорим в SimpleX Chat Парола за показване - GitHub хранилище.]]> Когато приложението работи Периодично Постави получения линк @@ -842,7 +820,6 @@ Записът е актуализиран на Научете повече Постави - Предварително зададен сървър Предварително зададен адрес на сървъра Поверителени известия Изключено @@ -875,7 +852,6 @@ (съхранено само на устройствата на членовете на групата) Паролата не е намерена в KeyStore, моля, въведете я ръчно. Това може да се е случило, ако възстановите данните на приложението с помощта на инструмент за резервни копия. Ако не е така, моля, свържете се с разработчиците. Моля, свържете се с груповия администартор. - Когато хората искат да се свържат с вас, можете да ги приемете или отхвърлите. Актуализацията на профила ще бъде изпратена до вашите контакти. Забрани необратимото изтриване на съобщения. Забрани изпращането на лични съобщения до членовете. @@ -937,8 +913,6 @@ х Отваряне на база данни… НА ЖИВО - Уверете се, че адресите на SMP сървъра са в правилен формат, разделени на редове и не са дублирани. - Уверете се, че адресите на XFTP сървъра са в правилен формат, разделени на редове и не са дублирани. маркирано като изтрито модерирано модерирано от %s @@ -977,9 +951,6 @@ Разрешение е отказано! профилно изображение запазено място за профилно изображение - Всеки може да оперира сървъри. - Вие решавате кой може да се свърже с вас. - Поверителността преосмислена Добави поверителна връзка Отвори Реле сървър се използва само ако е необходимо. Друга страна може да наблюдава вашия IP адрес. @@ -1036,7 +1007,6 @@ SimpleX Адрес SimpleX Лого SimpleX Екип - SMP сървъри Сподели адреса с контактите? Сподели линк Сподели с контактите @@ -1093,7 +1063,6 @@ Сподели медия… SimpleX адрес Сигурността на SimpleX Chat беше одитирана от Trail of Bits. - SOCKS прокси Рестартиране Изключване Рестартирайте приложението, за да създадете нов чат профил. @@ -1141,7 +1110,6 @@ За свързване чрез линк Връзката, която приехте, ще бъде отказана! Контактът, с когото споделихте този линк, НЯМА да може да се свърже! - Този линк не е валиден линк за връзка! Вашите чат профили Сървърите за нови връзки на текущия ви чат профил За да покажете скрития профил, въведете пълната парола в полето за търсене на страницата "Вашите чат профили". @@ -1150,18 +1118,13 @@ Докосни за активиране на профил. Системен Заглавие - (за споделяне с вашия контакт) Тази група вече не съществува. Подкрепете SimpleX Chat Вашият контакт изпрати файл, който е по-голям от поддържания в момента максимален размер (%1$s). Тази функция все още не се поддържа. Опитайте следващата версия. - Докосни за започване на нов чат - Този текст е достъпен в настройките Твърде много изображения! - Този QR код не е линк! Тествай сървър Транспортна изолация - Платформата за съобщения и приложения, защитаваща вашата поверителност и сигурност. Смени Благодарение на потребителите – допринесете през Weblate! Видео и файлове до 1gb @@ -1179,7 +1142,6 @@ Този текст не е линк за връзка! Твърде много видеоклипове! Тази настройка се прилага за съобщения в текущия ви профил - За да се защити поверителността, SimpleX използва идентификатори за опашки от съобщения, отделни за всеки от вашите контакти. Опит за свързване със сървъра, използван за получаване на съобщения от този контакт. Опит за свързване със сървъра, използван за получаване на съобщения от този контакт (грешка: %1$s). Тестът е неуспешен на стъпка %s. @@ -1188,8 +1150,6 @@ Докосни бутона Благодарим Ви, че инсталирахте SimpleX Chat! Запази и уведоми контактите - Бъдещето на комуникацията - Няма потребителски идентификатори. Системна Неправилно ID на следващото съобщение (по-малко или еднакво с предишното). \nТова може да се случи поради някаква грешка или когато връзката е компрометирана. @@ -1203,11 +1163,9 @@ Настройки SimpleX адрес Използвай за нови връзки - Вашите XFTP сървъри Използвай сървърите на SimpleX Chat\? Използват се сървърите на SimpleX Chat. Вашите ICE сървъри - Вашите SMP сървъри Използвай SOCKS прокси Използвай SOCKS прокси\? Използване на директна интернет връзка\? @@ -1215,7 +1173,6 @@ Когато са налични Вашият профил, контакти и доставени съобщения се съхраняват на вашето устройство. Можете да използвате markdown за форматиране на съобщенията: - Използвай чата Актуализация Трябва да въвеждате парола при всяко стартиране на приложението - тя не се съхранява на устройството. Неизвестна грешка в базата данни: %s @@ -1246,17 +1203,12 @@ Гласово съобщение… Гласовите съобщения са забранени. непрочетено - Добре дошли! Добре дошли %1$s! Нямате чатове вие сте наблюдател - Вашият сървър Използвай сървър Вашият адрес на сървъра - Можете да го създадете по-късно Вашите контакти ще останат свързани. - Ние не съхраняваме вашите контакти или съобщения (веднъж доставени) на сървърите. - Вие контролирате своя чат! Грешна парола! Гласови съобщения Настройки @@ -1269,11 +1221,8 @@ премахнахте %1$s Вашият автоматично генериран профил Уведомявай - Можете да споделите адреса си като линк или QR код - всеки може да се свърже с вас. променихте адреса получаване за %s Вашият чат профил ще бъде изпратен на членовете на групата - Вашият чат профил ще бъде изпратен -\nдо вашия контакт Вашата текуща база данни ще бъде ИЗТРИТА и ЗАМЕНЕНА с импортираната. \nТова действие не може да бъде отменено - вашият профил, контакти, съобщения и файлове ще бъдат безвъзвратно загубени. Актуализирането на настройките ще свърже отново клиента към всички сървъри. актуализиран профил на групата @@ -1309,15 +1258,11 @@ Видео се свържете с разработчиците на SimpleX Chat, за да задавате въпроси и да получавате актуализации;.]]> иска да се свърже с вас! - Отваряне в мобилно приложение.]]> - XFTP сървъри - Актуализиране на режима на изолация на транспорта\? Вашият текущ профил Вашият профил се съхранява на вашето устройство и се споделя само с вашите контакти. SimpleX сървърите не могат да видят вашия профил. Видеото е изключено Видеото е включено WebRTC ICE сървъри - Вашите ICE сървъри Вашата поверителност Трябва да използвате най-новата версия на вашата чат база данни САМО на едно устройство, в противен случай може да спрете да получавате съобщения от някои контакти. вие: %1$s @@ -1327,7 +1272,6 @@ - гласови съобщения до 5 минути. \n- персонализирано време за изчезване. \n- история на редактиране. - Свързване инкогнито Отвори настройките на приложението Позволи Нов автоматично генериран профил ще бъде споделен. @@ -1335,7 +1279,6 @@ Без фонови разговори Свързване директно\? Използвай текущия профил - Поставете линка, който сте получили, за да се свържете с вашия контакт… Вашият профил %1$s ще бъде споделен. SimpleX не може да работи във фонов режим. Ще получавате известията само когато приложението работи. Приложението може да се затвори след 1 минута във фонов режим. @@ -1506,7 +1449,6 @@ Потвърди връзка Няма свързано мобилно устройство блокиран - Можете да го направите видим за вашите контакти в SimpleX чрез Настройки. Историята не се изпраща на нови членове. Опитай отново Камерата е неодстъпна @@ -1856,14 +1798,12 @@ Свържете отново сървъра, за да принудите доставката на съобщенията. Това използва допълнителен трафик. Грешка при нулиране на статистиката Сканирай / Постави линк - Конфигурирани XFTP сървъри Размер на шрифта Статус на съобщението: %s Задай тема по подразбиране Потвърди файлове от неизвестни сървъри. Изпратени съобщения Грешка при стартиране на WebView. Актуализирайте системата си до новата версия. Моля, свържете се с разработчиците.\nГрешка: %s - Други XFTP сървъри Мащабиране Всички цветови режими Светъл режим @@ -1937,8 +1877,6 @@ Получени грешки Моля, проверете дали мобилното и настолното устройство са свързани към една и съща локална мрежа и дали защитната стена на настолното устройство позволява връзката.\nМоля, споделете всички други проблеми с разработчиците. Временна файлова грешка - Конфигурирани SMP сървъри - Други SMP сървъри Подобрена доставка на съобщения опити изтекли @@ -2069,7 +2007,6 @@ Контактът е изтрит! Архивирани контакти Достъпни панели - Отвори настройките на сървъра Продължи Отвори местоположението на файла Инсталиране на актуализация @@ -2164,7 +2101,6 @@ Xiaomi устройства : моля, активирайте Autostart в системните настройки, за да работят известията.]]> Няма съобщение Или сподели лично - криптирани от край до край, с постквантова сигурност в директните съобщения.]]> Без фонова услуга Проверявай за съобщения на всеки 10 минути Приложението винаги работи във фонов режим diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/bn/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/bn/strings.xml index dfcfb1685c..552df8e66e 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/bn/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/bn/strings.xml @@ -21,7 +21,6 @@ গ্রহণ করুন সংযোগের অনুরোধটি গ্রহণ করবেন কি\? কলটি গৃহীত হয়েছে - পূর্বনির্ধারিত সার্ভারগুলি যুক্ত করুন অ্যাডমিন আপনি একজন অ্যাডমিন স্বাগত বার্তা যুক্ত করুন diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/ca/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/ca/strings.xml index d5b8fb5fa0..9763bbaf88 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/ca/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/ca/strings.xml @@ -69,8 +69,6 @@ cancel·la la vista prèvia de l\'enllaç Es compartirà un nou perfil aleatori. només amb un contacte: compartiu-lo en persona o mitjançant qualsevol missatger.]]> - escanejar el codi QR a la videotrucada o el vostre contacte pot compartir un enllaç d\'invitació.]]> - mostra el codi QR a la videotrucada o comparteix l\'enllaç.]]> Contactes arxivats Guia de l\'usuari.]]> Configuració de xarxa avançada @@ -98,12 +96,9 @@ trucada en curs Càmera Càmera i micròfon - Qualsevol pot allotjar servidors. Bluetooth - xifrats d\'extrem a extrem, amb seguretat postquàntica als missatges directes.]]> El millor per a la bateria. Només rebràs notificacions quan l\'aplicació s\'està executant (Sense servei en segon pla).]]> Bo per a la bateria. L\'aplicació revisa els missatges cada 10 minuts. Podeu perdre trucades o missatges urgents.]]> - repositori GitHub.]]> %1$s vol connectar amb tu mitjançant Feu servir sempre el retransmisor App always runs in background @@ -171,7 +166,6 @@ Barres d\'eines d\'aplicació Desenfocar Trucades d\'àudio/vídeo - \nDisponible en v5.1 Permet trucades només si el vostre contacte ho permet. Permet la desaparició de missatges només si el vostre contacte ho permet. "Permet la supressió irreversible del missatge només si el teu contacte t\'ho permet. (24 hores)" @@ -237,7 +231,6 @@ s\'està connectant blocat k - Connecta error vostè EN DIRECTE @@ -291,7 +284,6 @@ Enllaç d\'un sol ús Afegiu un contacte Adreça o enllaç d\'un sol ús? - Afegiu servidors predefinits Afegeix servidor Quant a SimpleX trucada acceptada @@ -374,7 +366,6 @@ Esborrar adreça Suprimeix la imatge El nom mostrat no pot contenir espais en blanc. - Descentralitzada Desactivar Desactivar per a tothom Desactiva per a tots els grups @@ -485,7 +476,6 @@ Suprimides Errors d\'eliminació Mòbil connectat - Connectar en mode incògnit connexió %1$d Comprova si hi ha missatges cada 10 minuts durant un minut com a màxim Canvia el codi d\'accés @@ -501,7 +491,6 @@ Connecta Consola del xat Comproveu l\'adreça del servidor de i torneu a provar. - Servidors SMP configurats Configura els servidors ICE Perfil del xat Connexió @@ -547,7 +536,6 @@ Error en desar el fitxer Canviar l\'adreça de recepció? connectar amb els desenvolupadors de SimpleX Chat per fer qualsevol pregunta i rebre actualitzacions.]]> - Obre a l\'aplicació mòbil.]]> Error en desar els servidors ICE Error en desar el servidor intermediari Base de dades dels xats @@ -605,8 +593,6 @@ Introduïu la contrasenya error en mostrar el contingut error en mostrar el missatge - Error en desar els servidors SMP - Error en desar els servidors XFTP Error en enviar el missatge Errors en la configuració dels servidors. Error en canviar el perfil! @@ -658,8 +644,6 @@ Error en crear el missatge Error en crear el perfil! Error en reenviar els missatges - Error en carregar els servidors SMP - Error en carregar els servidors XFTP Error en afegir membre(s) Error en crear l\'adreça Error en unir-se al grup @@ -700,8 +684,6 @@ Crea un grup tot fent servir un perfil aleatori. Perfil actual Crea un enllaç d\'un sol ús - No crear cap adreça - Crea Crea perfil Cantonada Frase de pas actual… @@ -719,11 +701,9 @@ Crea un fitxer Codi d\'accés actual Ara per ara, la mida màxima per als fitxers és %1$s. - Crea un enllaç d\'invitació d\'un sol ús Crea un grupo secreto Temps personalitzat Crea un perfil de xat - Creeu una adreça perquè la gent pugui connectar amb vós. Crea una adreça SimpleX Crea perfil creador @@ -744,7 +724,6 @@ Missatges de xat de SimpleX enviat per llegir - Benvinguts! Envia Envia Restableix @@ -824,7 +803,6 @@ Conserva la conversa Marcar com ha llegit Enllaç no vàlid - El codi QR no és vàlid Més informació El codi QR no és vàlid Codi de seguretat incorrecte! @@ -911,11 +889,9 @@ Connectar amb %1$s? Descarregar La connexió requereix una renegociació del xifratge. - Connectar mitjançant enllaç/codi QR Habilita l\'accés a la càmera Seguretat de connexió Creant enllaç… - Servidors XFTP configurats No utilitzeu credencials amb servidor intermediari. Versió del nucli: v%s Personalitzar tema @@ -1157,7 +1133,6 @@ Canvia l\'aspecte dels teus xats! Màxim 40 segons, rebut a l\'instant. Només vos podreu suprimir els missatges de manera irreversible (el vostre contacte pot marcar-los per suprimir-los). (24 hores) - Obrir configuració del servidor altres errors - Notificació opcional als contactes suprimits.\n- Noms de perfil amb espais.\n- I més! Pendents @@ -1184,8 +1159,6 @@ Desar la configuració d\'adreça SimpleX Deixar de compartir O per compartir en privat - Podeu crear-la més tard - Podeu fer-lo visible per als vostres contactes de SimpleX mitjançant Configuració. Nom del perfil: Desa i notifica el contacte El teu perfil actual @@ -1196,7 +1169,6 @@ Contrasenya per mostrar Desa la contrasenya del perfil Per revelar el vostre perfil ocult introduïu una contrasenya completa al camp de cerca de la pàgina Els vostres perfils de xat. - Tu controles el teu xat! Pots utilitzar la sintaxi markdown per donar format als teus missatges: Com utilitzar la sintaxis markdown trucada rebutjada @@ -1206,13 +1178,6 @@ esperant confirmació… confirmació rebuda… Un navegador web predeterminat és necessari per a les trucades. Configura\'n un al sistema i comparteix més informació amb els desenvolupadors. - Privadesa redefinida - Tu decideixes qui es pot connectar. - Immune al correu brossa - Sense identificadors d\'usuari. - Per protegir la vostra privadesa SimpleX utilitza identificadors separats per a cadascun dels vostres contactes.. - Obrir SimpleX - Només els dispositius client emmagatzemen perfils d\'usuari, contactes, grups i missatges. Notificacions privades Com afecta la bateria Periòdic @@ -1262,7 +1227,6 @@ Enviar els rebus de lliurament a L\'enviament de rebuts està desactivat per a %d grups Reiniciar - Servidor intermediari SOCKS Imatges de perfil Temes Cua @@ -1579,8 +1543,6 @@ mitjançant enllaç d\'un sol ús has compartit un enllaç d\'un sol ús Nom mostrat no vàlid! - Assegureu-vos que les adreces del servidor SMP estiguin en el format correcte, que estiguin separades per línies i que no estiguin duplicades. - Assegureu-vos que les adreces del servidor XFTP estiguin en el format correcte, que estiguin separades per línies i que no estiguin duplicades. No hi ha servidors multimèdia ni de fitxers. No hi ha servidors de missatges. No hi ha servidors per a l\'encaminament de missatges privats. @@ -1681,11 +1643,9 @@ Encara no hi ha connexió directa, el missatge el reenvia l\'administrador. Revocar fitxer enviament no autoritzat - Aquest text està disponible a la configuració Benvingut %1$s! Entrar com a %s enviar per connectar - Toca per iniciar un xat nou Carregant xats… No hi ha xats filtrats Cerqueu o enganxeu l\'enllaç SimpleX @@ -1745,7 +1705,6 @@ Missatge de veu (%1$s ) Esperant el fitxer Només suprimeix la conversa - Pendente L\'adreça de recepció es canviarà per un servidor diferent. El canvi d\'adreça es completarà quan el remitent estigui en línia. Estableix el nom del contacte… Pots enviar missatges a %1$s des dels contactes arxivats. @@ -1769,7 +1728,6 @@ Envia un missatge que desapareix Envia missatge en directe Toqueu per escanejar - (per compartir amb el teu contacte) Missatges de veu prohibits! Gràcies per instal·lar SimpleX Xat! Per iniciar un xat nou @@ -1791,22 +1749,16 @@ Has convidat un contacte El vostre contacte ha d\'estar en línia perquè la connexió es completi.\nPots cancel·lar aquesta connexió i eliminar el contacte (i provar-ho més tard amb un enllaç nou). Mostrar codi QR - Aquest no és un enllaç de connexió vàlid! - Aquest codi QR no és un enllaç! Et connectaràs al grup quan el dispositiu de l\'amfitrió estigui en línia. Espereu o comproveu més tard! Et connectaràs quan s\'accepti la teva sol·licitud de connexió, si us plau, espera o consulta més tard! Si no pots trobar-te en persona, mostra el codi QR en una videotrucada o comparteix l\'enllaç. - Enganxeu l\'enllaç que heu rebut per connectar amb el vostre contacte… Compartir enllaç d\'un sol ús Compartir enllaç d\'un sol ús amb un amic Compartir adreça públicament Comparteix l\'adreça SimpleX a les xarxes socials. Per connectar-se, el vostre contacte pot escanejar el codi QR o utilitzar l\'enllaç de l\'aplicació. Per protegir-vos de la substitució del vostre enllaç, podeu comparar els codis de seguretat de contacte. - Quan algú sol·liciti la connexió, pots acceptar-la o rebutjar-la. Podeu definir el nom de la connexió per recordar amb qui s\'ha compartit l\'enllaç. - Pots compartir la teva adreça com a enllaç o codi QR; qualsevol es pot connectar amb tu. - S\'enviarà el teu perfil de xat\nal teu contacte El teu perfil %1$s es compartirà. Et connectaràs quan el dispositiu del teu contacte estigui en línia, si us plau, espera o consulta més tard! Si més tard decideixes eliminar la teva adreça els contactes no es perdran. @@ -1835,9 +1787,6 @@ Servidors de fitxers i mitjans Servidors de missatges Nou servidor - Altres servidors SMP - Altres servidors XFTP - Servidor preestablert Adreça predeterminada del servidor Preguntes i idees Contacta via email @@ -1852,7 +1801,6 @@ Utilitzar per a noves connexions Utilitzar servidor Perfils de xat - El teu servidor L\'adreça del teu servidor Configuració La teva adreça SimpleX @@ -1869,8 +1817,6 @@ Utilitzar servidors SimpleX Xat? Usant servidors SimpleX Xat. Servidors ICE - Servidors SMP - Servidors XFTP Xarxa i servidors Autenticació d\'intermediari Servidor intermediari SOCKS @@ -1887,7 +1833,6 @@ Encaminament privat Servidor Aïllament de transport - Actualitzar el mode d\'aïllament de transport? Utilitza credencials de servidors intermediari diferents per a cada connexió. Utilitza credencials de servidor intermediari diferents per a cada perfil. Utilitzar connexió a Internet directa? @@ -1916,12 +1861,9 @@ Mostrar trucades lentes d\'API Per rebre notificacions sobre les noves versions activeu la comprovació periòdica de les versions Estable o Beta. Compartir amb contactes - La plataforma de missatgeria i aplicacions que protegeix la vostra privadesa i seguretat. El perfil només es comparteix amb els teus contactes. - No emmagatzemem cap dels vostres contactes o missatges (un cop lliurats) als servidors. El vostre perfil, contactes i missatges lliurats s\'emmagatzemen al vostre dispositiu. Obrir configuració - El futur de la missatgeria Operadors de xarxa Notificacions i bateria La contrasenya aleatòria s\'emmagatzema a la configuració com a text pla.\nPodeu canviar-ho més tard. @@ -1931,7 +1873,6 @@ Obrir SimpleX Chat per acceptar la trucada El servidor de retransmissió protegeix la vostra adreça IP, però pot veure la durada de la trucada. Servidors WebRTC ICE - Servidors ICE Privacitat i seguretat Protegeix la pantalla de l\'aplicació Protegir l\'adreça IP @@ -2160,7 +2101,6 @@ Funció lenta Estat convidats(des) a un grup cerca - (escaneja o enganxa del porta-retalls) Escaneja un codi QR Comença una conversa nova Logo de SimpleX @@ -2171,8 +2111,6 @@ Codi de seguretat Voleu desar els servidors? Escaneja el codi QR del servidor - Servidors SMP - Servidors XFTP Altaveu Vós %s segon(s) diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/cs/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/cs/strings.xml index f8a6dd83dc..1d404ef94b 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/cs/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/cs/strings.xml @@ -5,7 +5,6 @@ Hlasové zprávy povoleny. Správci mohou vytvářet odkazy pro připojení ke skupinám. Přijmout - Přidat přednastavené servery Pokročilá nastavení sítě Přijmout Přidat server @@ -115,7 +114,6 @@ Úplný odkaz Prostřednictvím prohlížeče Otevření odkazu v prohlížeči může snížit soukromí a bezpečnost připojení. Nedůvěryhodné odkazy SimpleX budou červené. - Chyba ukládání serverů SMP Chyba změny konfigurace sítě Nepodařilo se načíst chat Nepodařilo se načíst chaty @@ -145,8 +143,6 @@ Kopírovat nepřečteno Vítejte %1$s! - Vítejte! - Tento text je k dispozici v nastavení odeslání se nezdařilo Sdílet soubor… Připojit @@ -179,7 +175,6 @@ Zkopírováno Nová konverzace Vytvořit tajnou skupinu - (sdílet s kontaktem) (uloženo pouze členy skupiny) Oprávnění zamítnuto! Fotoaparát @@ -210,7 +205,6 @@ Bezpečnostní kód %s ověřen Chat konzole - SMP servery Přednastavená adresa serveru Test serveru se nezdařil! Některé servery neprošly testem: @@ -234,15 +228,12 @@ Vytvořit adresu Uložit a upozornit členy skupiny Ukončit bez uložení - Platforma pro zasílání zpráv a aplikace chránící vaše soukromí a bezpečnost. Vytvořit profil Profil je sdílen pouze s vašimi kontakty. Zobrazované jméno nesmí obsahovat bílé znaky. tučně probíhající hovor - Decentralizovaná Jak to funguje - Pouze klientská zařízení ukládají uživatelské profily, kontakty, skupiny a zprávy. Soukromé oznámení Pravidelné Ignorovat @@ -264,7 +255,6 @@ Zařízení Konverzace Experimentální funkce - SOCKS proxy Ikona aplikace Témata Zprávy a soubory @@ -335,15 +325,12 @@ Instalovat SimpleX Chat terminál Hvězdu na GitHubu Ohodnoťte aplikaci - Vaše servery SMP Pokud potvrdíte, budou servery zasílající zprávy vidět vaši IP adresu a váš poskytovatel - ke kterým serverům se připojujete. barevné tajné volání… připojen ukončen - Budoucnost soukromé komunikace - Rozhodněte, kdo se může připojit. špatný kontrolní součet zprávy Databáze chatu importována Nová přístupová fráze… @@ -361,7 +348,6 @@ Smazat čekající připojení\? Nastavení QR kód - videohovoru QR kód nebo sdílejte odkaz.]]> Skenovat kód Nesprávný bezpečnostní kód! Naskenujte bezpečnostní kód z aplikace vašeho kontaktu. @@ -377,7 +363,6 @@ Servery ICE (jeden na řádek) Pro připojení budou vyžadováni Onion hostitelé. \nVezměte prosím na vědomí: nebudete mít možnost připojení k serverům bez adresy .onion. - Aktualizovat režim dopravní izolace\? Sestavení aplikace: %s Sdílet odkaz Smazat adresu @@ -423,13 +408,10 @@ Hlasové zprávy jsou zakázány! Prosím, požádejte kontaktní osobu, aby umožnila odesílání hlasových zpráv. Poslat živou zprávu - zpráva se bude aktualizovat pro příjemce během psaní. - Vytvořit jednorázovou pozvánku Skenovat QR kód - ( skenovat nebo vložit ze schránky) Upravit obrázek Smazat obrázek chyba volání - Servery může provozovat kdokoli. Vytvořte si svůj profil Vytvořte si soukromé připojení Videohovor šifrovaný e2e @@ -490,7 +472,6 @@ Izolace přenosu Podle profilu chatu (výchozí) nebo podle připojení (BETA). Připojtíte se ke všem členům skupiny. - Připojení Jste připojeni k serveru, který se používá k přijímání zpráv od tohoto kontaktu. Pokoušíte se připojit k serveru používaném pro příjem zpráv od tohoto kontaktu (chyba: %1$s). označeno jako smazáno @@ -501,7 +482,6 @@ neplatný formát zprávy ŽIVĚ inkognito přes skupinový odkaz - Ujistěte se, že adresy serverů SMP jsou ve správném formátu, oddělené na řádcích a nejsou duplicitní. Chyba vytváření profilu! Duplicitní zobrazované jméno! Chyba přepínání profilu! @@ -549,7 +529,6 @@ Jste pozváni do skupiny Připojit jako %s připojuji… - Začněte nový chat Chat s vývojáři Nemáte žádné konverzace Zrušit náhled obrázku @@ -560,13 +539,11 @@ Čekání na soubor Oznámení Smazat kontakt\? - Čeká na vyřízení Ověřit bezpečnostní kód Odeslat zprávu Pouze majitelé skupin mohou povolit zasílání hlasových zpráv. Odeslat živou zprávu Živá zpráva! - Připojit se prostřednictvím odkazu / QR kódu Děkujeme za instalaci SimpleX Chat! připojit k SimpleX Chat vývojářům, položit jim případné dotazy a získat aktualizace.]]> Připojení prostřednictvím odkazu @@ -592,24 +569,17 @@ E-mail Více Zobrazit QR kód - Neplatný QR kód - Tento QR kód není odkaz! Neplatný odkaz! - Tento odkaz není platným odkazem pro připojení! - skenovat QR kód ve videohovoru nebo může váš kontakt sdílet pozvánku.]]> Připojte se prostřednictvím odkazu Připojit Vložit Tento řetězec není odkazem na připojení! - Otevřít v mobilní aplikaci.]]> %s neověřen Návod k použití Nápověda k markdown Uložit servery Markdown ve zprávách Testovací servery - Přednastavený server - Váš server Adresa vašeho serveru Použít server Použít pro nová připojení @@ -640,11 +610,8 @@ Uložit předvolby\? Uložit a upozornit kontakt Uložit a upozornit kontakty - Kontrolujete konverzaci! - Na serverech neukládáme žádné vaše kontakty ani zprávy (po doručení). Váš profil, kontakty a doručené zprávy jsou uloženy ve vašem zařízení. Zadejte vaše jméno: - Vytvořit Jak používat markdown K formátování zpráv můžete použít markdown: kurzíva @@ -659,12 +626,6 @@ obdržel odpověď… obdržel potvrzení… připojování… - Nové vymezení soukromí - Bez uživatelských identifikátorů - Odolná vůči spamu - K ochraně soukromí, SimpleX používá ID pro každý z vašich kontaktů. - úložišti GitHub.]]> - Použijte chat Jak ovlivňuje baterii Když aplikace běží Okamžité @@ -682,7 +643,6 @@ Spojení přes relé Zobrazit Zakázat - Vaše servery ICE WebRTC servery ICE Přenosový server chrání vaši IP adresu, ale může sledovat dobu trvání hovoru. Přenosový server se používá pouze v případě potřeby. Jiná strana může sledovat vaši IP adresu. @@ -921,7 +881,6 @@ Italské rozhraní Díky uživatelům - překládejte prostřednictvím Weblate! Budete připojeni, jakmile bude zařízení vašeho kontaktu online, vyčkejte prosím nebo se podívejte později! - Váš profil chatu bude odeslán \nvašemu kontaktu Konverzace Sdílet jednorázovou pozvánku koncově šifrované @@ -1014,17 +973,12 @@ Video bude přijato, až kontakt dokončí jeho nahrávání. Video obdržíte, až bude váš kontakt online, vyčkejte prosím nebo zkontrolujte později! Čekám na video - Chyba načítání serverů SMP - Chyba načítání serverů XFTP - Chyba ukládání XFTP serverů - Ujistěte se, že adresy XFTP serverů jsou ve správném formátu s oddělenými řádky a nejsou duplicitní. Server vyžaduje autorizaci pro nahrávání, zkontrolujte heslo. Porovnat soubor Vytvořit soubor Smazat soubor Stáhnout soubor Nahrát soubor - XFTP servery Použít SOCKS proxy Host port %d @@ -1047,7 +1001,6 @@ Zámek SimpleX můžete zapnout v Nastavení. Port Použít .onion hostitele na Ne, pokud je SOCKS proxy nepodporuje.]]> - Vaše XFTP servery Povolit zámek Zamknout po Režim zámku @@ -1077,8 +1030,6 @@ Povolte hovory, pouze pokud je váš kontakt povolí. Povolte svým kontaktům vám volat. Audio/video hovory - " -\nDostupné ve verzi 5.1" Volat můžete vy i váš kontakt. Volat můžete pouze vy. Zákaz audio/video hovorů. @@ -1165,7 +1116,6 @@ Otevírání databáze… Chyba nastavení adresy Pro připojení může váš kontakt naskenovat QR kód, nebo použít odkaz v aplikaci. - Když někdo požádá o připojení, můžete žádost přijmout nebo odmítnout. Uživatelské příručce.]]> Adresa SimpleX Barvy motivu @@ -1173,12 +1123,9 @@ Aktualizace profilu bude zaslána vašim kontaktům. Sdílet adresu s kontakty? Přestat sdílet adresu\? - Vytvořit adresu, aby se s vámi lidé mohli spojit. Uložit nastavení SimpleX adresy Přestat sdílet Automaticky přijmout - Můžete vytvořit později - Nevytvářet adresu Ahoj! \nSpojte se se mnou přes SimpleX Chat: %s Promluvme si v SimpleX Chatu @@ -1224,7 +1171,6 @@ Reakce na zprávy může přidávat pouze váš kontakt. Vaše kontakty zůstanou připojeny. Tuto adresu můžete sdílet se svými kontakty, aby se mohli připojit k %s. - Svou adresu můžete sdílet jako odkaz nebo QR kód - kdokoli se k vám může připojit. Pokud později adresu odstraníte, o kontakty nepřijdete. Přístupový kód aplikace je nahrazen sebedestrukčním přístupovým heslem. žádný text @@ -1309,7 +1255,6 @@ Druhé zaškrtnutí jsme přehlédli! ✅ Přijímací adresa bude změněna na jiný server. Změna adresy bude dokončena po připojení odesílatele. Vybrat soubor - Spojit se inkognito Povolit Vypnout upozornění Otevřít nastavení aplikace @@ -1320,7 +1265,6 @@ Nový náhodný profil bude sdílen. Povolit pro všechny skupiny Žádný vybraný chat - Vložte odkaz který jste obdrželi, pro spojení se svým kontaktem… Žádné informace o doručení Odesílání doručenky je zakázáno pro %d skupin Vypnout pro všechny skupiny @@ -1421,7 +1365,6 @@ Obnovit Nový telefon Pouze jedno zařízení může pracovat současně - Můžete ji svým SimpleX kontaktům zviditelnit v Nastavení. %1$s.]]> Propojit mobilní a stolní aplikace! 🔗 To je váš vlastní jednorázový odkaz! @@ -1847,8 +1790,6 @@ Chyba připojení k přeposílajícímu serveru %1$s. Prosím, zkuste to později. Předávacímu serveru %1$s se nepodařilo připojit k cílovému serveru %2$s. Prosím, zkuste to později. Vybrané nastavení chatu zakazuje tuto zprávu. - Jiné SMP servery - Nastavené SMP servery Probíhá Části nahrány %1$d chyba souboru:\n%2$s @@ -1918,7 +1859,6 @@ Potvrzeno duplikáty Smazán - Otevřít nastavení serveru Nový zážitek z chatu 🎉 Nové možnosti médií Nová zpráva @@ -2022,10 +1962,8 @@ Vybrány %d Střední Příjem zpráv - Nastavené XFTP servery Servery médií a souborů Servery zpráv - Jiné FXTP servery Pozvat Pošlete zprávu pro povolení volání. Přijmout podmínky @@ -2190,7 +2128,6 @@ Opravit Opravit připojení? Nový server - koncovým šifrováním, s post-quantovým zabezpečením v přímých zprávách.]]> Žádné služba na pozadí Kontrolovat zprávy každých 10 minut Chyba vytváření hlášení diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/da/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/da/strings.xml index 8c7d92086c..9706c1b552 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/da/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/da/strings.xml @@ -66,7 +66,6 @@ Yderligere sekundær Tilføj liste Tilføj besked - Tilføj forudindstillede servere Tilføj profil Adresse Adresseændringen bliver annulleret. Den gamle modtageradresse bliver brugt. @@ -101,8 +100,6 @@ Brug ny inkognito -profil Din profil sendes til den kontakt, du har modtaget dette link fra. Du opretter forbindelse til alle gruppemedlemmer. - Forbinde - Tilslut inkognito Alle chats og meddelelser slettes - dette kan ikke fortrydes! Alle chats fjernes fra listen %s, og listen slettes Alle farvetilstande @@ -156,7 +153,6 @@ En ny tilfældig profil deles. En anden grund Svaropkald - Alle kan være vært for servere. App App løber altid i baggrunden App Build: %s @@ -241,12 +237,6 @@ Upassende indhold Overtrædelse af retningslinjer for fællesskabet Upassende profil - Fejl under lagring af SMP-servere - Fejl ved lagring af XFTP-servere - Sørg for, at SMP-serveradresserne er i korrekt format, linjeseparerede og ikke duplikerede. - Sørg for, at XFTP-serveradresserne er i korrekt format, linjeseparerede og ikke duplikerede. - Fejl ved indlæsning af SMP-servere - Fejl ved indlæsning af XFTP-servere Fejl ved opdatering af netværkskonfigurationen Chatten kunne ikke indlæses Kunne ikke indlæse chats @@ -520,8 +510,6 @@ afsendelse mislykkedes ulæst Velkommen %1$s! - Velkomst! - Denne tekst er tilgængelig i indstillinger Chats Indstillinger forbinder… @@ -531,7 +519,6 @@ Deltag som %s afvist forbinder… - Tryk for at starte en ny chat Chat med udviklerne Du har ingen chats Indlæser chats… @@ -699,7 +686,6 @@ Forbundet Afbrudt Fejl - Indtil Ændre modtageradresse? Modtageradressen vil blive ændret til en anden server. Adresseændringen vil blive gennemført, når afsenderen er online. Genforhandle kryptering? @@ -750,7 +736,6 @@ Auto-accept Auto-accept-kontaktanmodninger Auto-accept-billeder - \nFås i v5.1 Tilbage Baggrund Dårlig skrivebordsadresse @@ -824,7 +809,6 @@ Kan ikke sende besked til gruppemedlem Katalansk, indonesisk, rumænsk og vietnamesisk - takket være vores brugere! med kun en kontakt
      - Del personligt eller via enhver messenger.]]> - ende-til-ende krypteret med sikkerhed efter kvantet i direkte meddelelser.]]> for hver chatprofil, du har i appen.]]> til hvert kontakt- og gruppemedlem.\n Bemærk : Hvis du har mange forbindelser, kan dit batteri og trafikforbrug være væsentligt højere, og nogle forbindelser kan mislykkes.]]> Tilføj kontakt: Sådan opretter du et nyt invitationslink eller opretter forbindelse via et link, du har modtaget.]]> diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/de/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/de/strings.xml index f8fa2dbd66..6ea5d7686d 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/de/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/de/strings.xml @@ -8,7 +8,6 @@ Der Gruppe beitreten? Ihr Profil wird an den Kontakt gesendet, von dem Sie diesen Link erhalten haben. Sie werden mit allen Gruppenmitgliedern verbunden. - Verbinden Verbunden Fehler @@ -48,8 +47,6 @@ Über den Browser Das Öffnen des Links über den Browser kann die Privatsphäre und Sicherheit der Verbindung reduzieren. SimpleX-Links, denen nicht vertraut wird, werden rot markiert. - Fehler beim Speichern der SMP-Server - Stellen Sie sicher, dass die SMP-Server-Adressen das richtige Format haben, zeilenweise getrennt und nicht doppelt vorhanden sind. Fehler bei der Aktualisierung der Netzwerkkonfiguration. Verbindungszeitüberschreitung @@ -168,14 +165,11 @@ Ungelesen Willkommen %1$s! - Willkommen! - Dieser Text ist in den Einstellungen verfügbar. Chats Verbinde… Sie sind zu der Gruppe eingeladen Beitreten als %s Verbinde… - Tippen, um einen neuen Chat zu starten Chatten Sie mit den Entwicklern Sie haben keine Chats @@ -223,7 +217,6 @@ Verbunden Getrennt Fehler - Ausstehend Empfängeradresse wechseln\? Die Empfängeradresse wird auf einen anderen Server geändert. Der Adresswechsel wird abgeschlossen, wenn der Absender wieder online ist. @@ -245,12 +238,8 @@ In die Zwischenablage kopiert Neuen Chat starten - Einmal-Einladungslink teilen - Per Link / QR-Code verbinden QR-Code scannen Geheime Gruppe erstellen - (zum Teilen mit Ihrem Kontakt) - (Scannen oder Einfügen aus der Zwischenablage) (Wird nur von Gruppenmitgliedern gespeichert) Berechtigung verweigert! @@ -319,25 +308,17 @@ QR-Code anzeigen - Ungültiger QR-Code - Dieser QR-Code beschreibt keinen Link! Ungültiger Link! - Dieser Link ist kein gültiger Verbindungslink! Verbindungsanfrage gesendet! Sie werden mit der Gruppe verbunden, sobald das Endgerät des Gruppen-Hosts online ist. Bitte warten oder schauen Sie später nochmal nach! Sie werden verbunden, sobald Ihre Verbindungsanfrage angenommen wird. Bitte warten oder schauen Sie später nochmal nach! Sie werden verbunden, sobald das Endgerät Ihres Kontakts online ist. Bitte warten oder schauen Sie später nochmal nach! - den QR-Code während eines Videoanrufs anzeigen oder einen Einladungslink über einen anderen Kanal mit Ihrem Kontakt teilen.]]> - Ihr Chat-Profil wird -\nan Ihren Kontakt gesendet - den QR-Code während eines Videoanrufs scannen oder Ihr Kontakt kann einen Einladungslink über einen anderen Kanal mit Ihnen teilen.]]> Einmal-Einladungslink teilen Über einen Link verbinden Verbinden Einfügen Diese Zeichenfolge entspricht keinem gültigen Verbindungslink! - In mobiler App öffnen“.]]> Einmal-Einladungslink @@ -352,9 +333,7 @@ Senden Sie uns eine E-Mail SimpleX-Sperre Chat-Konsole - SMP-Server Voreingestellte Serveradresse - Voreingestellte Server hinzufügen Server hinzufügen Teste Server Teste alle Server @@ -363,8 +342,6 @@ Einige Server haben den Test nicht bestanden: Scannen Sie den QR-Code des Servers Geben Sie den Server manuell ein - Voreingestellter Server - Ihr Server Ihre Serveradresse Server nutzen Für neue Verbindungen nutzen @@ -377,7 +354,6 @@ Unterstützen Sie uns Bewerten Sie die App Verwenden Sie SimpleX-Chat-Server\? - Ihre SMP-Server Verwendung von SimpleX-Chat-Servern. Anleitung Wie Sie Ihre Server nutzen @@ -423,15 +399,11 @@ Speichern und Gruppenmitglieder benachrichtigen Beenden ohne Speichern - Sie haben volle Kontrolle über Ihren Chat! - Die Messaging- und Anwendungsplattform zum Schutz Ihrer Privatsphäre und Sicherheit. - Wir speichern auf den Servern keinen Ihrer Kontakte und keine Ihrer Nachrichten (sobald einmal zugestellt). Profil erstellen Ihr Profil, Ihre Kontakte und zugestellten Nachrichten werden auf Ihrem Gerät gespeichert. Das Profil wird nur mit Ihren Kontakten geteilt. Der angezeigte Name darf keine Leerzeichen enthalten. Geben Sie Ihren Namen ein: - Erstellen Über SimpleX Wie Sie Markdowns anwenden @@ -461,20 +433,10 @@ Verbunden Beendet - Die Zukunft des Messagings - Datenschutz neu definiert - Keine Benutzerkennungen. - Immun gegen Spam - Sie entscheiden, wer sich mit Ihnen verbinden kann. - Dezentral - Jeder kann seine eigenen Server aufsetzen. Ihr Profil erstellen Stellen Sie eine private Verbindung her Wie es funktioniert - SimpleX nutzt individuelle Kennungen für jeden Ihrer Kontakte, um Ihre Privatsphäre zu schützen. - Nur die Endgeräte speichern Benutzerprofile, Kontakte, Gruppen und Nachrichten. - GitHub-Repository mehr dazu.]]> Fügen Sie den erhaltenen Link ein @@ -499,7 +461,6 @@ Akzeptieren Anzeigen Deaktivieren - Ihre ICE-Server WebRTC-ICE-Server Relais-Server schützen Ihre IP-Adresse, können aber die Anrufdauer erfassen. Relais-Server werden nur genutzt, wenn sie benötigt werden. Ihre IP-Adresse kann von Anderen erfasst werden. @@ -556,7 +517,6 @@ Chats Entwicklertools Experimentelle Funktionen - SOCKS-Proxy App-Icon Design Nachrichten und Dateien @@ -933,7 +893,6 @@ %s wurde noch nicht überprüft Um die Ende-zu-Ende-Verschlüsselung mit Ihrem Kontakt zu überprüfen, müssen Sie den Sicherheitscode in Ihren Apps vergleichen oder scannen. Private Benachrichtigungen - Chat verwenden Ihr Kontakt und Sie können beide verschwindende Nachrichten versenden. %dh Gruppen-Links @@ -974,7 +933,6 @@ Es werden alle Chats und Nachrichten gelöscht. Dies kann nicht rückgängig gemacht werden! Chat-Profil löschen für PING-Zähler - Transport-Isolations-Modus aktualisieren\? Nachrichten-Server für neue Verbindungen über Ihr aktuelles Chat-Profil Dateien und Medien Transport-Isolation @@ -1098,10 +1056,7 @@ Auf das Video warten Auf das Video warten Das Video wird heruntergeladen, wenn Ihr Kontakt online ist. Bitte warten oder überprüfen Sie es später! - Ihre XFTP-Server Host - Fehler beim Speichern der XFTP-Server - Fehler beim Laden der SMP-Server Der Server erfordert zum Hochladen eine Autorisierung. Bitte überprüfen Sie das Passwort. Datei herunterladen Datei vergleichen @@ -1119,7 +1074,6 @@ Sperrmodus ändern Zugangscode wurde nicht geändert! Entschlüsselungsfehler - Fehler beim Laden der XFTP-Server Eingabe des Zugangscodes Zugangscode eingeben Kein App-Zugangscode @@ -1138,7 +1092,6 @@ Ungültiger Nachrichten-Hash Authentifizierung fehlgeschlagen Falsche Nachrichten-ID - Stellen Sie sicher, dass die XFTP-Server-Adressen das richtige Format haben, zeilenweise getrennt und nicht doppelt vorhanden sind. SOCKS-Proxy nutzen SimpleX-Sperrmodus SimpleX-Sperre ist nicht aktiviert! @@ -1146,7 +1099,6 @@ Bestätigen System Sie können nicht überprüft werden – bitte versuchen Sie es nochmal. - XFTP-Server Die ID der nächsten Nachricht ist falsch (kleiner oder gleich der vorherigen). \nDies kann passieren, wenn es einen Fehler gegeben hat oder die Verbindung kompromittiert wurde. %1$d Nachrichten konnten nicht entschlüsselt werden. @@ -1159,8 +1111,6 @@ Erlauben Sie Anrufe nur dann, wenn es Ihr Kontakt ebenfalls erlaubt. Erlaubt es Ihren Kontakten Sie anzurufen. Audio-/Video-Anrufe - " -\nVerfügbar in v5.1" Sowohl Sie als auch Ihr Kontakt können Anrufe tätigen. Nur Sie können Anrufe tätigen. Audio-/Video-Anrufe nicht erlauben. @@ -1192,13 +1142,11 @@ Mehr erfahren Um eine Verbindung herzustellen, kann Ihr Kontakt den QR-Code scannen oder den Link in der App verwenden. SimpleX-Adresse - Wenn Personen eine Verbindung anfordern, können Sie diese annehmen oder ablehnen. Sie werden Ihre damit verbundenen Kontakte nicht verlieren, wenn Sie diese Adresse später löschen. Design anpassen Interface-Farben Fügen Sie die Adresse Ihrem Profil hinzu, damit Ihre SimpleX-Kontakte sie mit anderen Personen teilen können. Es wird eine Profilaktualisierung an Ihre SimpleX-Kontakte gesendet. Alle Ihre Kontakte bleiben verbunden. Es wird eine Profilaktualisierung an Ihre Kontakte gesendet. - Erstellen Sie eine Adresse, damit sich Personen mit Ihnen verbinden können. SimpleX-Adresse erstellen Mit SimpleX-Kontakten teilen Ihre Kontakte bleiben weiterhin verbunden. @@ -1212,10 +1160,8 @@ Die Adresse mit SimpleX-Kontakten teilen? Teilen beenden Das Teilen der Adresse beenden\? - Keine Adresse erstellt Hallo! \nVerbinden Sie sich per SimpleX Chat mit mir: %s - Sie können dies später erstellen Geben Sie eine Begrüßungsmeldung ein … Vorschau Sie können diese Adresse mit Ihren Kontakten teilen, um sie mit %s verbinden zu lassen. @@ -1236,7 +1182,6 @@ Benutzeranleitung.]]> Stellen Sie sicher, dass die Datei die korrekte YAML-Syntax hat. Exportieren Sie das Design, um ein Beispiel für die Dateistruktur des Designs zu erhalten. Chat-Profile wechseln - Sie können Ihre Adresse als Link oder QR-Code teilen – jede Person kann sich mit Ihnen verbinden. Werden die App-Daten komplett gelöscht. Es wurde ein leeres Chat-Profil mit dem eingegebenen Namen erstellt und die App öffnet wie gewohnt. Wenn Sie Ihren Selbstzerstörungs-Zugangscode während des Öffnens der App eingeben: @@ -1412,11 +1357,9 @@ Es werden keine Empfangsbestätigungen gesendet, da diese Gruppe über %1$d Mitglieder hat. An dieses Gruppenmitglied wird eine Verbindungsanfrage gesendet. Direkt verbinden\? - Inkognito verbinden Aktuelles Chat-Profil nutzen Neues Inkognito-Profil nutzen App-Akkuverbrauch / Unbeschränkt , um Anrufe im Hintergrund zu führen.]]> - Fügen Sie den erhaltenen Link ein, um sich mit Ihrem Kontakt zu verbinden… Es wird ein neues Zufallsprofil geteilt. Ihr Profil %1$s wird geteilt. Erlauben @@ -1586,7 +1529,6 @@ Ansicht abgestürzt Fehler beim Anzeigen des Inhalts Fehler beim Anzeigen der Nachricht - Sie können sie über Einstellungen für Ihre SimpleX-Kontakte sichtbar machen. Der Nachrichtenverlauf wird nicht an neue Gruppenmitglieder gesendet. Wiederholen Kamera nicht verfügbar @@ -1933,10 +1875,6 @@ Fehler beim privaten Routing Die Nachricht kann später zugestellt werden, wenn das Mitglied aktiv wird. Bisher keine direkte Verbindung. Nachricht wird von einem Admin weitergeleitet. - Konfigurierte SMP-Server - Konfigurierte XFTP-Server - Andere SMP-Server - Andere XFTP-Server Abgeschlossen Inaktiv Verbunden @@ -1969,7 +1907,6 @@ Fehler beim Herunterladen Duplikate Abgelaufen - Server-Einstellungen öffnen Andere Fehler Proxy-vermittelt Fehler beim Empfang @@ -2269,7 +2206,6 @@ Der Text der aktuellen Nutzungsbedingungen konnte nicht geladen werden. Sie können die Nutzungsbedingungen unter diesem Link einsehen: Oder importieren Sie eine Archiv-Datei Hinweis für Geräte von Xiaomi: Bitte aktivieren Sie in den System-Einstellungen die Option "Autostart", damit Benachrichtigungen funktionieren.]]> - Ende-zu-Ende-verschlüsselt versendet. In Direktnachrichten sogar mit Post-Quantum-Security.]]> Team-Mitglieder aufnehmen Freunde aufnehmen Einladung angenommen diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/el/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/el/strings.xml index 66cd9cf03b..30b5dad519 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/el/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/el/strings.xml @@ -17,7 +17,6 @@ Επέτρεψε Αποδοχή Αποδοχή ανώνυμης περιήγησης - Προσθήκη προκαθορισμένου διακομιστή Προσθήκη σε άλλη συσκευή Όλες οι επαφές σου θα παραμείνουν ενεργές. Αποδοχή @@ -61,11 +60,9 @@ Αντίγραφο δεδομένων εφαρμογής 5 λεπτά Θα συνδεθείς όταν η συσκευή της επαφής σου είναι συνδεδεμένη, παρακαλώ περίμενε ή έλεγξε αργότερα! - Ο ICE διακομιστής σου Έκδοση εφαρμογής Έστειλες πρόσκληση ομάδας 1 λεπτό - Ο διακομιστής σου Διεύθυνση Ακύρωση Πίσω @@ -73,10 +70,8 @@ Θα συνδεθείς με όλα τα μέλη της ομάδας. %1$s θέλει να συνδεθεί μαζί σου μέσω Επέτρεψε τις αντιδράσεις σε μηνύματα. - Ο διακομιστής XFTP σου Η διεύθυνση του διακομιστή σου Το προφίλ, επαφές και παραδομένα μηνύματα σου είναι αποθηκευμένα στην συσκευή σου. - Ο διακομιστής SMP σου Επιτρέπεται να σταλούν αρχεία και μέσα. Το τυχαίο προφίλ σου %1$s ΜΕΛΗ @@ -103,7 +98,6 @@ Αλλαγή διεύθυνσης λήψης Πιστοποίηση μη διαθέσιμη Άλλαξε - \nΔιαθέσιμο στην έκδοση 5.1 Τέλος κλήσης Κλήσεις Αυτόματη αποδοχή @@ -146,7 +140,6 @@ Οι επαφές μπορούν να επισημάνουν μηνύματα προς διαγραφή, τα οποία θα μπορείς να τα δεις. Σύνδεση μέσω μιας εφάπαξ σύνδεσης; Δημιουργία σύνδεσμου - Σύνδεση μέσω σύνδεσμο/κωδικό γρήγορης ανταπόκρισης Σφάλμα σύνδεσης (πιστοποίηση) συνδέεται συνδέεται… @@ -169,7 +162,6 @@ Σύνδεση με %1$s? Δημιουργία του προφίλ σου συνδέεται… - Δημιουργία Προτιμήσεις επαφής Συνδεδεμένο κινητό Σύνδεση @@ -177,7 +169,6 @@ συνδέεται… Σύνδεση τερματίστηκε Συνδε - Σύνδεση ανώνυμης περιήγησης σύνδεση επετεύχθη η επαφή δεν έχει κρυπτογράφηση από άκρη-σε-άκρη Η επαφή επιτρέπει @@ -196,13 +187,11 @@ αιτούμενη σύνδεση Η ιδιωτικότητά σου Η επαφή σου έστειλε ένα αρχείο το οποίο είναι μεγαλύτερο από το παρόν υποστηριζόμενο μέγεθος (%1$s). - Το προφίλ της συνομιλίας σου θα σταλεί\nστην επαφή σου Χρήση νέου ανώνυμου προφίλ Ήδη συνδέεται Απέρριψες την πρόσκληση της ομάδας Σύνδεση μέσω διεύθυνση επαφής Χρήση του τρέχοντος προφίλ - Συνδέσου Το τρέχον προφίλ σου αφαίρεσες %1$s Συμμετοχή ομάδας; @@ -276,7 +265,6 @@ Πάντα Η ενημέρωση της εφαρμογής κατέβηκε Έλεγχος για ενημερώσεις - Οποιοσδήποτε μπορεί να φιλοξενήσει διακομιστές. κλήση ήχου (χωρίς κρυπτογράφηση e2e) Κλήσεις στην οθόνη κλειδώματος: Κλήση ήχου @@ -461,7 +449,6 @@ δεν μπορείς να στείλεις μηνύματα Καταλανικά, Ινδονησιακά, Ρουμανικά και Βιετναμέζικα – ευχαριστούμε τους χρήστες μας! με μία μόνο επαφή - προσωπικό διαμοιρασμό ή μέσω οποιασδήποτε εφαρμογής μηνυμάτων.]]> - με κρυπτογράφηση από άκρη-σε-άκρη και με μετα-κβαντική ασφάλεια σε άμεσα μηνύματα.]]> Επέτρεψε το στο επόμενο παράθυρο διαλόγου για να λαμβάνεις ειδοποιήσεις άμεσα.]]> Συσκευές Xiaomi: ενεργοποίησε το Αυτόματο Ξεκίνημα στις ρυθμίσεις συστήματος για να λειτουργούν οι ειδοποιήσεις.]]> %s.]]> @@ -471,8 +458,6 @@ %s βρίσκεται σε κακή κατάσταση]]> Σάρωση QR κωδικού.]]> %s με τον λόγο: %s]]> - σαρώσεις τον QR κωδικό στη βιντεοκλήση, ή η επαφή σου να διαμοιραστεί ένα σύνδεσμο πρόσκλησης.]]> - δείξε τον QR κωδικό στη βιντεοκλήση, ή μοιράσου το σύνδεσμο.]]> (νέο)]]> (αυτή η συσκευή v%s)
      ]]> κρυπτογράφηση από άκρη-σε-άκρη.]]> @@ -487,7 +472,6 @@ Άνοιγμα στην εφαρμογή κινητού, μετά πάτα Σύνδεση μέσα στην εφαρμογή.]]> Χρήση από τον υπολογιστή στην εφαρμογή του κινητού και σκάναρε τον QR κωδικό.]]> Οδηγό Χρήσης.]]> - αποθετήριό μας στο GitHub.]]> Χρήση .onion hosts σε Όχι, αν ο διακομιστής μεσολάβησης SOCKS δεν τα υποστηρίζει.]]> %s.]]> %s.]]> @@ -504,7 +488,6 @@ %1$s.]]> %1$s.]]> πρέπει να χρησιμοποιείς την ίδια βάση δεδομένων σε δύο συσκευές.]]> - Άνοιγμα στην εφαρμογή κινητού κουμπί.]]> συνδεθείς με τους δημιουργούς του SimpleX Chat για να κάνεις ερωτήσεις και να λαμβάνεις ενημερώσεις.]]> μόνο αφού γίνει αποδεκτό το αίτημά σου.]]> Να αλλάξεις την αυτόματη διαγραφή μηνυμάτων; @@ -545,8 +528,6 @@ Όροι χρήσης Οι όροι θα γίνουν αποδεκτοί στις: %s. Οι όροι θα γίνουν αυτόματα αποδεκτοί για τους ενεργούς χειριστές στις: %s. - Διαμορφωμένοι SMP διακομιστές - Διαμορφωμένοι XFTP διακομιστές Διαμορφωμένοι ICE διακομιστές Επιβεβαίωσε Επιβεβαίωση διαγραφής επαφής; @@ -615,13 +596,11 @@ Γωνία Δημιουργία Δημιουργία συνδέσμου 1-χρήσης - Δημιούργησε μια διεύθυνση για να μπορούν οι άλλοι να συνδεθούν μαζί σου. Δημιουργήθηκε Δημιουργήθηκε στις Δημιουργήθηκε στις: %s Δημιουργία λίστας Δημιουργία νέου προφίλ στην εφαρμογή υπολογιστή. 💻 - Δημιουργία συνδέσμου 1-χρήσης Δημιουργία ουράς Δημιούργησε τη διεύθυνσή σου Δημιουργία συνδέσμου αρχειοθέτησης @@ -673,7 +652,6 @@ %d ημέρα %d ημέρες Αποστολή για αποσφαλμάτωση - Αποκεντρωμένο Σφάλμα αποκωδικοποίησης Σφάλμα αποκρυπτογράφησης σφάλματα αποκρυπτογράφησης @@ -817,7 +795,6 @@ ΜΗΝ στέλνεις μηνύματα απευθείας, ακόμα κι αν ο δικός σου διακομιστής ή ο διακομιστής προορισμού δεν υποστηρίζει ιδιωτική δρομολόγηση. Μην χρησιμοποιείς διαπιστευτήρια με το διακομιστή μεσολάβησης (proxy). ΜΗΝ χρησιμοποιείς ιδιωτική δρομολόγηση. - Μην δημιουργήσεις διεύθυνση Μην ενεργοποιήσεις Μην χάσεις σημαντικά μηνύματα. Να μην εμφανιστεί ξανά @@ -1023,7 +1000,6 @@ Η εικόνα θα ληφθεί όταν η επαφή σου ολοκληρώσει τη μεταφόρτωσή της. Η εικόνα θα ληφθεί όταν η επαφή σου είναι συνδεδεμένη, περίμενε ή έλεγξε αργότερα! Άμεσα - Ανοσοποιημένο στο spam Εισαγωγή Εισαγωγή βάσης δεδομένων συνομιλίας; Εισαγωγή βάσης δεδομένων @@ -1078,7 +1054,6 @@ μη έγκυρη διαμόρφωση μηνύματος Μη έγκυρη επιβεβαίωση μετεγκατάστασης Μη έγκυρο όνομα! - Μη έγκυρος QR κωδικός Μη έγκυρος QR κωδικός Μη έγκυρη διεύθυνση διακομιστή! Η πρόσκληση έληξε! @@ -1158,10 +1133,8 @@ Εξαφάνισε ένα μήνυμα Κάνε το προφίλ ιδιωτικό! Βεβαιώσου ότι έχεις σωστή διαμόρφωση του διακομιστή μεσολάβησης. - Βεβαιώσου ότι οι διευθύνσεις του διακομιστή SMP έχουν σωστή μορφή, διαχωρίζονται με νέα γραμμή και δεν είναι διπλότυπες. Βεβαιώσου ότι το αρχείο έχει σωστή σύνταξη YAML. Κάνε εξαγωγή ενός θέματος για να έχεις παράδειγμα της δομής αρχείου των θεμάτων. "Βεβαιώσου ότι οι διευθύνσεις των διακομιστών WebRTC ICE έχουν σωστή μορφή, διαχωρίζονται με νέα γραμμή και δεν είναι διπλότυπες." - Βεβαιώσου ότι οι διευθύνσεις των διακομιστών XFTP έχουν σωστή μορφή, διαχωρίζονται με νέα γραμμή και δεν είναι διπλότυπες. Κάνε τις συνομιλίες σου να ξεχωρίζουν! Βοήθεια στη Markdown σύνταξη Σύνταξη Markdown στα μηνύματα @@ -1291,7 +1264,6 @@ Πάτα για ανώνυμη συμμετοχή Πάτα για επικόλληση συνδέσμου Πάτα για σάρωση - Πάτα για να ξεκινήσεις μία νέα συνομιλία Σύνδεση TCP Χρόνος λήξης σύνδεσης TCP στο παρασκήνιο Χρόνος λήξης σύνδεσης TCP @@ -1320,7 +1292,6 @@ Για τις κλήσεις απαιτείται ο προεπιλεγμένος περιηγητής. Ρύθμισε τον προεπιλεγμένο περιηγητή στο σύστημα σου και μοιράσου περισσότερες πληροφορίες με τους προγραμματιστές. Το όνομα της συσκευής θα κοινοποιηθεί στην εφαρμογή του συνδεδεμένου κινητού. Η κρυπτογράφηση λειτουργεί και η νέα κρυπτογράφηση δεν είναι απαραίτητη. Μπορεί να προκαλέσει σφάλματα σύνδεσης! - Το μέλλον στην ανταλλαγή μηνυμάτων Ο κωδικός ελέγχου του προηγούμενου μηνύματος είναι διαφορετικός. Ο αναγνωριστικός κωδικός του επόμενου μηνύματος είναι λανθασμένος (μικρότερος ή ίσος με τον προηγούμενο).\nΑυτό μπορεί να συμβεί λόγω κάποιου σφάλματος ή όταν η σύνδεση έχει παραβιαστεί. Η εικόνα δεν μπορεί να αποκωδικοποιηθεί. Δοκίμασε μια άλλη εικόνα ή επικοινώνησε με τους προγραμματιστές. @@ -1331,7 +1302,6 @@ Τα μηνύματα θα επισημαίνονται ως ελεγχόμενα για όλα τα μέλη. Το μήνυμα θα διαγραφεί για όλα τα μέλη. Το μήνυμα θα επισημανθεί ως υπό έλεγχο για όλα τα μέλη. - Η πλατφόρμα μηνυμάτων και εφαρμογών που προστατεύει το απόρρητο και την ασφάλειά σου. Η φράση πρόσβασης αποθηκεύεται στις ρυθμίσεις ως απλό κείμενο. Η φράση πρόσβασης θα αποθηκευτεί στις ρυθμίσεις ως απλό κείμενο μετά την αλλαγή της ή την επανεκκίνηση της εφαρμογής. Το προφίλ κοινοποιείται μόνο στις επαφές σου. @@ -1362,14 +1332,11 @@ Αυτή η ομάδα δεν υπάρχει πλέον. Αυτός είναι ο δικός σου σύνδεσμος 1-χρήσης! Αυτή είναι η διεύθυνση σου SimpeX! - Αυτός ο σύνδεσμος δεν είναι έγκυρος! Αυτός ο σύνδεσμος απαιτεί νεότερη έκδοση της εφαρμογής. Αναβάθμισε την εφαρμογή ή ζήτησε από την επαφή σου να σου στείλει ένα συμβατό σύνδεσμο. Αυτός ο σύνδεσμος χρησιμοποιήθηκε με άλλη κινητή συσκευή. Δημιούργησε ένα νέο σύνδεσμο στον υπολογιστή σου. Αυτό το μήνυμα διαγράφηκε ή δεν έχει ληφθεί ακόμα. - Αυτός ο κωδικός QR δεν είναι σύνδεσμος! Αυτή η ρύθμιση ισχύει για τα μηνύματα στο τρέχον προφίλ συνομιλίας σου. Αυτό το κείμενο δεν είναι σύνδεσμος! - Αυτό το κείμενο είναι διαθέσιμο στις ρυθμίσεις Εξαντλήθηκε ο χρόνος αναμονής κατά τη σύνδεση με τον υπολογιστή Ο χρόνος εξαφάνισης ορίζεται μόνο για τις νέες επαφές. Τίτλος @@ -1386,13 +1353,11 @@ Για την προστασία της ζώνης ώρας, τα αρχεία εικόνας/φωνής χρησιμοποιούν UTC ώρα. Για να προστατεύσεις τις πληροφορίες σου, ενεργοποίησε το SimpleX Lock.\nΘα σου ζητηθεί να ολοκληρώσεις την επαλήθευση ταυτότητας πριν ενεργοποιηθεί αυτή η λειτουργία. Για την προστασία της IP διεύθυνσής σου, η ιδιωτική δρομολόγηση χρησιμοποιεί τους διακομιστές SMP για την παράδοση μηνυμάτων. - Για την προστασία της ιδιωτικότητάς σου, το SimpleX χρησιμοποιεί ξεχωριστά αναγνωριστικά για κάθε μία από τις επαφές σου. Για λήψη Για να λαμβάνεις ειδοποιήσεις, παρακαλώ εισήγαγε τη φράση πρόσβασης της βάσης δεδομένων. Για να αποκαλύψεις το κρυφό προφίλ σου, εισήγαγε έναν πλήρη κωδικό στο πεδίο αναζήτησης στη σελίδα Τα προφίλ συνομιλίας σου. Για αποστολή Για αποστολή εντολών, θα πρέπει να είσαι συνδεδεμένος. - (για διαμοιρασμό με την επαφή σου) Για να ξεκινήσεις μία νέα συνομιλία Συνολικά Για να χρησιμοποιήσεις άλλο προφίλ μετά την προσπάθεια σύνδεσης, διέγραψε τη συνομιλία και χρησιμοποίησε ξανά τον σύνδεσμο. @@ -1440,7 +1405,6 @@ Η λήψη της ενημέρωσης ακυρώθηκε ενημερωμένο προφίλ Ενημέρωση ρυθμίσεων δικτύου; - Ενημέρωση της λειτουργίας απομόνωσης μεταφοράς; Ενημέρωσε τη διεύθυνσή σου Η ενημέρωση των ρυθμίσεων θα επανασυνδέσει την εφαρμογή με όλους τους διακομιστές. Αναβάθμιση @@ -1457,7 +1421,6 @@ Ανέβασμα αρχείου Ανεβαίνει το αρχείο αρχειοθέτησης Τα τελευταία 100 μηνύματα αποστέλλονται στα νέα μέλη. - Χρήση συνομιλίας Χρησιμοποίησε διαφορετικά διαπιστευτήρια διακομιστή μεσολάβησης για κάθε σύνδεση. Χρησιμοποίησε διαφορετικά διαπιστευτήρια διακομιστή μεσολάβησης για κάθε προφίλ. Χρήση απευθείας σύνδεσης στο Διαδίκτυο; @@ -1522,8 +1485,6 @@ Σφάλμα κατά τη συμμετοχή στην ομάδα Σφάλμα κατά τη φόρτωση των λιστών συνομιλιών Σφάλμα κατά τη φόρτωση των λεπτομερειών - Σφάλμα κατά τη φόρτωση των διακομιστών SMP - Σφάλμα κατά τη φόρτωση των διακομιστών XFTP Σφάλμα επισήμανσης ως αναγνωσμένου Σφάλμα κατά το άνοιγμα του προγράμματος περιήγησης Σφάλμα κατά το άνοιγμα της συνομιλίας @@ -1545,9 +1506,7 @@ Σφάλμα κατά την αποθήκευση διακομιστών Σφάλμα κατά την αποθήκευση των ρυθμίσεων Σφάλμα κατά την αποθήκευση των ρυθμίσεων - Σφάλμα κατά την αποθήκευση των διακομιστών SMP Σφάλμα κατά την αποθήκευση του κωδικού πρόσβασης χρήστη - Σφάλμα κατά την αποθήκευση διακομιστών XFTP Σφάλμα κατά την αποστολή της πρόσκλησης Σφάλμα κατά την αποστολή του μηνύματος Σφάλμα κατά τη ρύθμιση της διεύθυνσης @@ -1685,7 +1644,6 @@ Οι ειδοποιήσεις θα σταματήσουν να λειτουργούν μέχρι να επανεκκινήσεις την εφαρμογή. μη συγχρονισμένο Δεν υπάρχουν μη αναγνωσμένες συνομιλίες - Χωρίς αναγνωριστικά χρήστη. Τώρα οι διαχειριστές μπορούν:\n- να διαγράφουν τα μηνύματα των μελών.\n- να απενεργοποιούν μέλη (ρόλος παρατηρητή) παρατηρητής κλειστό` @@ -1706,7 +1664,6 @@ Μπορούν να σταλούν μόνο 10 εικόνες ταυτόχρονα Μπορούν να σταλούν μόνο 10 βίντεο ταυτόχρονα Μόνο οι ιδιοκτήτες του chat μπορούν να αλλάξουν τις προτιμήσεις. - Μόνο οι συσκευές αποθηκεύουν προφίλ χρηστών, επαφές, ομάδες και μηνύματα. Διαγραφή μόνο της συνομιλίας Μόνο οι ιδιοκτήτες ομάδων μπορούν να αλλάξουν τις προτιμήσεις της ομάδας. Μόνο οι ιδιοκτήτες ομάδων μπορούν να ενεργοποιήσουν αρχεία και πολυμέσα. @@ -1749,7 +1706,6 @@ Άνοιξε νέα ομάδα Άνοιγμα θύρας στο τείχος προστασίας Άνοιξε τις Ρυθμίσεις Safari / Ιστοσελίδες / Μικρόφωνο και στη συνέχεια επέλεξε Να επιτρέπεται για το localhost. - Άνοιγμα ρυθμίσεων διακομιστή Άνοιγμα ρυθμίσεων Άνοιξε το SimpleX Chat για να αποδεχθείς την κλήση Άνοιξε για να αποδεχθείς @@ -1771,8 +1727,6 @@ άλλο Άλλο άλλα σφάλματα - Άλλοι διακομιστές SMP - Άλλοι διακομιστές XFTP ιδιοκτήτης ιδιοκτήτες Κωδικός πρόσβασης @@ -1792,10 +1746,8 @@ Επικόλληση συνδέσμου Επικόλλησε το σύνδεσμο για να συνδεθείς! Επικόλλησε το σύνδεσμο που έλαβες - Επικόλλησε το σύνδεσμο που έλαβες για να συνδεθείς με την επαφή σου… από άκρη-σε-άκρη εκκρεμής - Εκκρεμής Εκκρεμής σε αναμονή έγκρισης Εκκρεμής κλήση @@ -1838,7 +1790,6 @@ Προετοιμασία λήψης Προετοιμασία μεταφόρτωσης Διατήρηση του τελευταίου πρόχειρου μηνύματος, με τα συνημμένα. - Προκαθορισμένος διακομιστής Διεύθυνση προκαθορισμένου διακομιστή Προκαθορισμένοι διακομιστές Προκαθορισμένοι διακομιστές @@ -1846,7 +1797,6 @@ Προηγούμενοι συνδεδεμένοι διακομιστές Προστασία της ιδιωτικότητας των πελατών σου. Πολιτική απορρήτου και όροι χρήσης. - Επαναπροσδιορισμός της ιδιωτικότητας Απόρρητο & ασφάλεια Οι ιδιωτικές συνομιλίες, οι ομάδες και οι επαφές σου δεν είναι προσβάσιμες στους χειριστές του διακομιστή. Ιδιωτικά ονόματα αρχείων @@ -2057,7 +2007,6 @@ Κλιμάκωση στην οθόνη Σάρωση κωδικού Σάρωση από κινητό - (σάρωσε ή επικόλλησε από το πρόχειρο) Σάρωση / Επικόλληση συνδέσμου Σάρωσε τον κωδικό QR από τον υπολογιστή %s συνδέθηκε @@ -2242,9 +2191,7 @@ Αργή λειτουργία Μικρές ομάδες (μέγιστο 20 άτομα) Διακομιστής SMP - Διακομιστές SMP Διακομιστής μεσολάβησης SOCKS - Διακομιστής μεσολάβησης SOCKS Ρυθμίσεις διακομιστή μεσολάβησης SOCKS Απαλό Κάποιο/α αρχείο/α δεν εξήχθησαν @@ -2361,9 +2308,7 @@ Προειδοποίηση: η έναρξη συνομιλίας σε πολλαπλές συσκευές δεν υποστηρίζεται και θα προκαλέσει σφάλματα στην παράδοση των μηνυμάτων. Προειδοποίηση: ενδέχεται να χάσεις ορισμένα δεδομένα! Διακομιστές WebRTC ICE - Δεν αποθηκεύουμε καμία από τις επαφές ή τα μηνύματά σου (αφού παραδοθούν) στους διακομιστές. εβδομάδες - Καλωσόρισες! Καλωσόρισες %1$s! Μήνυμα καλωσορίσματος Μήνυμα καλωσορίσματος @@ -2376,7 +2321,6 @@ Κατά τη σύνδεση κλήσεων ήχου και βίντεο. Όταν η IP είναι κρυφή Όταν είναι ενεργοποιημένοι περισσότεροι από ένας χειριστές, κανένας από αυτούς δεν διαθέτει μεταδεδομένα για να μάθει ποιος επικοινωνεί με ποιον. - Όταν κάποιος ζητήσει να συνδεθεί, μπορείς να αποδεχτείς ή να απορρίψεις το αίτημα. Όταν μοιράζεσε ένα ανώνυμο προφίλ με κάποιον, αυτό το προφίλ θα χρησιμοποιείται για τις ομάδες στις οποίες σε προσκαλούν. WiFi Θα ενεργοποιηθεί στις άμεσες συνομιλίες! @@ -2392,7 +2336,6 @@ Λανθασμένο κλειδί ή άγνωστη διεύθυνση τμήματος αρχείου - πιθανότατα το αρχείο έχει διαγραφεί. Λανθασμένη φράση πρόσβασης! Διακομιστής XFTP - Διακομιστές XFTP ναι Ναι Ναι @@ -2422,19 +2365,16 @@ Μπορείς να το αλλάξεις στις ρυθμίσεις Εμφάνισης. Μπορείς να διαμορφώσεις τους διακομιστές μέσω των ρυθμίσεων. Μπορείς να αντιγράψεις και να μειώσεις το μέγεθος του μηνύματος για να το στείλεις. - Μπορείς να το δημιουργήσεις αργότερα Μπορείς να το ενεργοποιήσεις αργότερα μέσω των Ρυθμίσεων. Μπορείς να τις ενεργοποιήσεις αργότερα μέσω των ρυθμίσεων απορρήτου και ασφάλειας της εφαρμογής. Μπορείς να δοκιμάσεις ξανά. Μπορείς να δοκιμάσεις ξανά. Μπορείς να αποκρύψεις ή να σιγάσεις ένα προφίλ χρήστη - κράτησέ το πατημένο για να εμφανιστεί το μενού. - Μπορείς να το κάνεις ορατό στις επαφές σου στο SimpleX μέσω των Ρυθμίσεων. Μπορείς να αναφέρεις εώς και %1$s μέλη ανά μήνυμα! Μπορείς να στείλεις μηνύματα στην επαφή %1$s από τις αρχειοθετημένες επαφές. Μπορείς να ορίσεις το όνομα της σύνδεσης για να θυμάσε με ποιον μοιράστηκες το σύνδεσμο. Μπορείς να μοιραστείς ένα σύνδεσμο ή έναν κωδικό QR - οποιοσδήποτε θα μπορεί να συμμετάσχει στην ομάδα. Δεν θα χάσεις μέλη της ομάδας αν τον διαγράψεις αργότερα. Μπορείς να μοιραστείς αυτήν τη διεύθυνση με τις επαφές σου για να τους επιτρέψεις να συνδεθούν με την επαφή %s. - Μπορείς να διαμοιραστείς τη διεύθυνσή σου ως σύνδεσμο ή κωδικό QR - οποιοσδήποτε θα μπορεί να συνδεθεί μαζί σου. Μπορείς να ξεκινήσεις τη συνομιλία μέσω της εφαρμογής Ρυθμίσεις / Βάση δεδομένων ή επανεκκινώντας την εφαρμογή. Μπορείς ακόμα να δεις τη συνομιλία με την επαφή %1$s, στη λίστα των συνομιλιών. Δεν μπορείς να στείλεις μηνύματα! @@ -2446,9 +2386,7 @@ άλλαξες διεύθυνση για %s άλλαξες ρόλο για τον εαυτό σου σε %s άλλαξες το ρόλο του μέλους %s σε %s - Έχεις τον έλεγχο της συνομιλίας σου! Δεν ήταν δυνατή η επαλήθευση. Παρακαλώ, δοκίμασε ξανά. - Εσύ αποφασίζεις ποιος μπορεί να συνδεθεί. Έχεις ήδη ζητήσει σύνδεση μέσω αυτής της διεύθυνσης! Δεν έχεις συνομιλίες Πρέπει να εισάγεις τη φράση πρόσβασης κάθε φορά που ξεκινά η εφαρμογή - δεν αποθηκεύεται στη συσκευή. diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/es/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/es/strings.xml index 5ba89e4df5..59b99534cd 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/es/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/es/strings.xml @@ -12,7 +12,6 @@ 1 semana Se permiten los mensajes temporales pero sólo si tu contacto también los permite. Añadir servidores mediante el escaneo de códigos QR. - Añadir servidores predefinidos Todos los miembros del grupo permanecerán conectados. Se permite la eliminación irreversible de mensajes pero sólo si tu contacto también lo permite. (24 horas) Android Keystore se usará para almacenar la frase de contraseña de forma segura después de cambiarla o reiniciar la aplicación - permitirá recibir notificaciones. @@ -77,7 +76,6 @@ ¡Consume más energía! La aplicación está siempre en segundo plano y las notificaciones se muestran de inmediato.]]> Tanto tú como tu contacto podéis eliminar los mensajes enviados de forma irreversible. (24 horas) Tanto tú como tu contacto podéis enviar mensajes temporales. - Crear Crea grupo secreto La contraseña de cifrado de la base de datos será actualizada. ID base de datos @@ -135,7 +133,6 @@ conectando (aceptado) conectando (anunciado) conexión %1$d - Conecta vía enlace / Código QR El contacto y todos los mensajes serán eliminados. ¡No puede deshacerse! Contacto verificado el contacto dispone de cifrado de extremo a extremo @@ -157,7 +154,6 @@ Desconectado Conectado Copiado en portapapeles - Crea enlace de invitación de un uso. Escanear código QR ]]> Eliminar Eliminar @@ -188,7 +184,6 @@ ¿Eliminar la dirección\? Nombre del perfil: conectando… - Descentralizada La base de datos será cifrada. Crear enlace de grupo Eliminar enlace @@ -225,7 +220,6 @@ ¿Conectar mediante dirección de contacto? ¿Te unes al grupo? ¿Conectar mediante enlace de invitación? - Conectar conectado conectando conectando… @@ -315,14 +309,12 @@ Cómo usar la sintaxis markdown en modo incógnito mediante enlace de un solo uso Dirección de contacto SimpleX - Error al guardar servidores SMP Abrir el enlace en el navegador puede reducir la privacidad y seguridad de la conexión. Los enlaces de SimpleX que no son de confianza aparecerán en rojo. Error al actualizar la configuración de red Error al crear dirección Error al eliminar perfil Activar Bloqueo SimpleX Enlace de invitación de un solo uso - Servidores SMP Características experimentales Error al importar base de datos Error al cambiar configuración @@ -348,8 +340,6 @@ Si has recibido un enlace de invitación a SimpleX Chat puedes abrirlo en tu navegador: Si seleccionas rechazar, el remitente NO será notificado. ¡Enlace no válido! - escanear el código QR por videollamada, o tu contacto puede compartir un enlace de invitación.]]> - muestra el código QR por videollamada, o comparte el enlace.]]> Cómo Ignorar Error al eliminar base de datos @@ -380,7 +370,6 @@ Error al guardar servidores ICE Servidores ICE (uno por línea) Nombre completo: - Tu decides quién se conecta. Colgar Archivos y multimedia ¡Grupo no encontrado! @@ -436,10 +425,8 @@ Invitar al grupo Para verificar el cifrado de extremo a extremo con tu contacto, compara (o escanea) el código en ambos dispositivos. La base de datos no está cifrada. Escribe una contraseña para protegerla. - Asegúrate de que las direcciones del servidor SMP tienen el formato correcto, están separadas por líneas y no están duplicadas. Notificaciones instantáneas Configuración avanzada - Sólo los dispositivos cliente almacenan perfiles de usuario, contactos, grupos y mensajes. Cómo afecta a la batería Instantánea Unirme @@ -469,7 +456,6 @@ Abrir en aplicación móvil, después pulsa Conectar en la aplicación.]]> Marcar como leído Marcar como no leído - Código QR no válido ¡Código de seguridad incorrecto! Sintaxis Markdown No @@ -501,7 +487,6 @@ Asegúrate de que las direcciones del servidor WebRTC ICE tienen el formato correcto, están separadas por líneas y no duplicadas. Se requieren hosts .onion para la conexión \nRecuerda: no podrás conectarte a servidores que no tengan dirección .onion. - Inmune al spam Videollamada entrante has salido has cambiado de servidor @@ -595,7 +580,6 @@ secreto Abrir SimpleX Chat para aceptar llamada Reiniciar a valores predetarminados - Pendiente Notificaciones periódicas Guarda la contraseña de forma segura, NO podrás cambiarla si la pierdes. Reinicia la aplicación para crear un perfil nuevo. @@ -604,7 +588,6 @@ imagen del perfil No se permiten mensajes de voz. Proteger pantalla de la aplicación - repositorio GitHub .]]> Grabar mensaje de voz ha expulsado a %1$s Enviar previsualizacion de enlaces @@ -622,7 +605,6 @@ Rechazar Obligatorio Guardar y notificar contactos - Cualquiera puede alojar servidores. Rol Intervalo PING Contador PING @@ -635,7 +617,6 @@ Mensaje en vivo Escanear código QR Enviar - (escanear o pegar desde el portapapeles) Espacio reservado para la imagen del perfil Código QR Consultas y sugerencias @@ -646,7 +627,6 @@ respuesta recibida… confirmación recibida… Periódico - Privacidad redefinida Rechazar Abrir Llamada pendiente @@ -688,7 +668,6 @@ Escanea el código de seguridad desde la aplicación de tu contacto. Guardar servidores Escanear código QR - Servidor predefinido Guardar y notificar contacto ¿Guardar preferencias\? Guardar y notificar grupo @@ -696,14 +675,11 @@ La aplicación recoge nuevos mensajes periódicamente lo que consume un pequeño porcentaje de batería al día. La aplicación no usa notificaciones push por tanto los datos de tu dispositivo no se envían a los servidores push. Bloqueo SimpleX Desbloquear - Este texto está disponible en Configuración La dirección de recepción pasará a otro servidor. El cambio se completará cuando el remitente esté en línea. Bloqueo SimpleX Usando servidores SimpleX Chat. Aislamiento de transporte tachado - Abrir SimpleX - Proxy SOCKS Temas Parar Esta acción es irreversible. Tu perfil, contactos, mensajes y archivos se perderán. @@ -724,15 +700,11 @@ Cámara ¡El contacto con el que has compartido este enlace NO podrá conectarse! Mostrar código QR - ¡El enlace no es un enlace de conexión válido! - ¡El código QR no es un enlace! Compartir enlace de un uso - ¿Actualizar el modo de aislamiento de transporte\? Altavoz activado ¡La conexión que has aceptado se cancelará! La base de datos no funciona correctamente. Pulsa para conocer más El mensaje será marcado como moderado para todos los miembros. - El futuro de la mensajería Esta acción es irreversible. Se eliminarán todos los archivos y multimedia recibidos y enviados. Las imágenes de baja resolución permanecerán. Esta acción es irreversible. Los mensajes enviados y recibidos anteriores a la selección serán eliminados. Podría tardar varios minutos. Esta configuración se aplica a los mensajes del perfil actual @@ -743,7 +715,6 @@ Inciar chat nuevo Para exportar, importar o eliminar la base de datos debes parar SimpleX. Mientra tanto no podrás enviar ni recibir mensajes. ¡Gracias por instalar SimpleX Chat! - Para proteger tu privacidad, SimpleX usa identificadores distintos para cada uno de tus contactos. Para proteger tu información, activa el Bloqueo SimpleX. \nSe te pedirá que completes la autenticación antes de activar esta función. Para actualizar la configuración el cliente se reconectará a todos los servidores. @@ -766,15 +737,12 @@ ¿Usa proxy SOCKS\? Usar hosts .onion simplexmq: v%s (%2s) - La plataforma de mensajería y aplicaciones que protege tu privacidad y seguridad. - Sin identificadores de usuario. Este grupo ya no existe. Establecer 1 día ¡Agradecimiento a los colaboradores! Puedes contribuir a través de Weblate. ¡Agradecimiento a los colaboradores! Puedes contribuir a través de Weblate. Para proteger la zona horaria, los archivos de imagen/voz usan la hora UTC. Aislamiento de transporte - (para compartir con tu contacto) Activar sonido %s está verificado %s no está verificado @@ -807,7 +775,6 @@ formato de mensaje desconocido Error al conectar con el servidor usado para recibir mensajes de esta conexión: (error: %1$s). Prueba no superada en el paso %s. - Pulsa para iniciar chat nuevo Compartir mensaje… Compartir medios… Mostrar @@ -839,9 +806,6 @@ Mensajes de voz no permitidos. Comprobar la seguridad de la conexión ¡Ya estás conectado con %1$s. - ¡Bienvenido! - Tu perfil será enviado -\na tu contacto Servidores ICE Has rechazado la invitación del grupo. has cambiado el rol de %s a %s @@ -852,7 +816,6 @@ Servidores WebRTC ICE %1$s quiere conectarse contigo mediante Ya tienes un perfil con este nombre mostrado. Por favor, selecciona otro nombre. - Abrir en aplicación móvil.]]> ponerte en contacto con los desarrolladores de SimpleX Chat para consultas y para recibir actualizaciones.]]> eres observador Puedes usar la sintaxis markdown para dar formato a tus mensajes: @@ -875,7 +838,6 @@ Esperando imagen Mensaje de voz (%1$s ) Si disponibles - No almacenamos ninguno de tus contactos o mensajes (una vez entregados) en los servidores. Has sido invitado a un grupo. Únete para conectar con sus miembros. has expulsado a %1$s Tú: %1$s @@ -889,15 +851,12 @@ Has invitado a tu contacto Te conectarás al grupo cuando el dispositivo anfitrión esté en línea, por favor espera o revisa más tarde. Configuración - Servidores SMP - ¡Tú controlas tu chat! Tu perfil, contactos y mensajes se almacenan en tu dispositivo. esperando respuesta… esperando confirmación… Cuando la aplicación se está ejecutando Videollamada Llamadas - Servidores ICE Privacidad Mis datos Base de datos @@ -933,7 +892,6 @@ Equipo SimpleX Mis perfiles Mi dirección SimpleX - Tu servidor Dirección de tu servidor Tu perfil actual Tu perfil se almacena en tu dispositivo y se comparte sólo con tus contactos. Los servidores SimpleX no pueden ver tu perfil. @@ -1011,17 +969,11 @@ El vídeo se recibirá cuando el contacto termine de subirlo. Sólo se pueden enviar 10 vídeos de forma simultánea Esperando el vídeo - Error al guardar servidores SMP - Error al cargar servidores XFTP - Error al cargar servidores SMP - Asegúrate de que las direcciones del servidor XFTP tienen el formato correcto, están separadas por líneas y no están duplicadas. El servidor requiere autorización para subir, comprueba la contraseña. Comparar archivo Crear archivo Eliminar archivo Subir archivo - Servidores XFTP - Servidores XFTP Puerto puerto %d Usar hosts .onion debe estar a No si el proxy SOCKS no los admite.]]> @@ -1083,8 +1035,6 @@ Permites que tus contactos te llamen. Llamadas y videollamadas Las llamadas y videollamadas no están permitidas. - " -\nDisponible en v5.1" Tanto tú como tu contacto podéis realizar llamadas. Sólo tú puedes realizar llamadas. Sólo tu contacto puede realizar llamadas. @@ -1107,7 +1057,6 @@ Guía de Usuario.]]> Enlace de un solo uso Dirección SimpleX - Cuando alguien solicite conectarse podrás aceptar o rechazar su solicitud. Compartir dirección… Deja un mensaje de bienvenida… SimpleX @@ -1124,8 +1073,6 @@ Tema oscuro Personalizar tema Deja un mensaje de bienvenida… (opcional) - Crea una dirección para que otras personas puedan conectar contigo. - No crear dirección SimpleX ¡Hola! \nConecta conmigo a través de SimpleX Chat: %s Importar tema @@ -1136,14 +1083,12 @@ La actualización del perfil se enviará a tus contactos SimpleX. Mensaje recibido Guardar configuración de dirección SimpleX - Puedes compartir tu dirección como enlace o código QR para que cualquiera pueda conectarse contigo. ¿Guardar configuración\? Secundario Mensaje enviado Dejar de compartir ¿Dejar de compartir la dirección\? Colores de la interfaz - Puedes crearla más tarde ¿Compartir la dirección con los contactos SimpleX? Compartir con contactos SimpleX Título @@ -1329,11 +1274,9 @@ Este grupo tiene más de %1$d miembros, no se enviarán confirmaciones de entrega. ¿Conectar directamente\? La solicitud se enviará a este miembro del grupo. - Conectar en incógnito Permitir Abrir configuración Compartirás un perfil nuevo aleatorio. - Pega el enlace recibido para conectar con tu contacto… El perfil %1$s será compartido. Desactivar notificaciones Sin llamadas en segundo plano. @@ -1507,7 +1450,6 @@ Error aplicación error al mostrar el contenido error al mostrar mensaje - Puedes hacerlo visible para tus contactos de SimpleX en Configuración. El historial no se envía a miembros nuevos. Reintentar Cámara no disponible @@ -1858,8 +1800,6 @@ Suscripciones ignoradas Para ser notificado sobre versiones nuevas, activa el chequeo periódico para las versiones Estable o Beta. Beta - Servidores SMP configurados - Servidores XFTP configurados Servidores conectados Conectando Perfil actual @@ -1903,8 +1843,6 @@ Descargado Servidor SMP Aún no hay conexión directa, los mensajes son reenviados por el administrador. - Otros servidores SMP - Otros servidores XFTP Pegar enlace / Escanear Mostrar porcentaje Desactivar @@ -1946,7 +1884,6 @@ Errores de descarga duplicados caducados - Abrir configuración del servidor otros otros errores Como proxy @@ -2226,7 +2163,6 @@ ¡El chat ya existe! Acerca de los operadores La aplicación siempre funciona en segundo plano - cifrados de extremo a extremo y con seguridad postcuántica en mensajes directos.]]> ¡Mensaje demasiado largo! Simplex Chat y Flux han acordado incluir en la aplicación servidores operados por Flux. Activar registros diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/fa/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/fa/strings.xml index 0051298873..65f1769787 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/fa/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/fa/strings.xml @@ -16,7 +16,6 @@ استفاده از پروفایل ناشناس جدید در حال باز کردن پایگاه داده… پروفایل شما به مخاطبی که این لینک را از او دریافت کردید، فرستاده خواهد شد. - اتصال ناشناس شما یک مسیر نامعتبر فایل به اشتراک گذاشتید. موضوع را به توسعه‌دهندگان برنامه گزارش دهید. هنوز از دریافت فایل پشتیبانی نمی‌شود قالب پیام نامعتبر @@ -32,7 +31,6 @@ به گروه می‌پیوندید؟ استفاده از پروفایل کنونی به تمام اعضای گروه متصل خواهید شد. - متصل شدن مسیر نامعتبر فایل برنامه از کار افتاد در حال تلاش برای اتصال به سرور مورد استفاده برای دریافت پیام‌ها از این مخاطب (خطا: %1$s). @@ -66,8 +64,6 @@ توصیف لینک کامل لینک‌های SimpleX - خطا در ذخیره کردن سرورهای SMP - خطا در ذخیره کردن سرورهای XFTP خطای تجدید مذاکره رمزنگاری اتصال %1$d اتصال برقرار شد @@ -82,7 +78,6 @@ دعوت یک بار مصرف SimpleX در حال اتصال… باز کردن لینک در مرورگر ممکن است حریم خصوصی و امنیت اتصال را کاهش دهد. لینک‌های SimpleX غیر قابل اعتماد به رنگ قرمز خواهند بود. - خطا در بارگیری سرورهای XFTP خطا در ایجاد پروفایل! خطا در تعویض پروفایل! توقف اتصال @@ -94,7 +89,6 @@ فرستنده انتقال فایل را لغو کرد. شما از قبل به %1$s متصل هستید. خطا در اتصال (تصدیق) - خطا در بارگیری سرورهای SMP عدم موفقیت در بارگیری چت‌ها لطفا برنامه را به‌روزرسانی کنید و با توسعه‌دهندگان تماس بگیرید. نام نمایشی همسان! @@ -106,13 +100,11 @@ مخاطب از قبل وجود دارد لینک اتصال نامعتبر لطفا بررسی کنید که از لینک صحیح استفاده کردید یا از مخاطبتان بخواهید لینک دیگری برایتان بفرستد. - مطمئن شوید قالب نشانی‌های سرور SMP صحیح است، در خط‌های جدا نوشته شده و تکرار نشده‌اند. خطا در به‌روزرسانی پیکربندی شبکه عدم موفقیت در بارگیری چت نام نمایشی نامعتبر! شما یک پروفایل چت با نام نمایشی یکسان دارید، لطفا نام دیگری انتخاب کنید. خطا در ایجاد نشانی - مطمئن شوید قالب نشانی‌های سرور XFTP صحیح است، در خط‌های جدا نوشته شده و تکرار نشده‌اند. خطا در پذیرش درخواست مخاطب فرستنده ممکن است درخواست اتصال را حذف کرده باشد. خطا در حذف یادداشت‌های خصوصی @@ -227,7 +219,6 @@ پیام برای تمام اعضا به عنوان حذف شده علامت‌گذاری خواهد شد. توقف دریافت فایل متوقف خواهد شد. - خوش آمدید! خطا در کدبرداری ارسال پیام مستقیم برای اتصال لطفا تا زمانی که فایل در حال بارگیری از موبایل متصل است، منتظر باشید. @@ -237,7 +228,6 @@ ارسال پیام ناپدید شونده لینک دعوت یک‌بارمصرف ایجاد گروه محرمانه - (برای اشتراک‌گذاری با مخاطبتان) اگر لینک دعوت SimpleX Chat دریافت کردید، می‌توانید آن را در مرورگر خود باز کنید: ورود کد عبور %d ثانیه @@ -297,7 +287,6 @@ ارسال غیرمجاز خوانده نشده خوش آمدید، %1$s! - این متن در تنظیمات دردسترس است چت با توسعه‌دهندگان چت فیلتر شده‌ای نیست به %1$s متصل شوید؟ @@ -370,13 +359,11 @@ شما به گروه دعوت شده‌اید پیوستن به عنوان %s جستجو یا الصاق لینک SimpleX - برای شروع چت جدید ضربه بزنید اشتراک‌گذاری پیام… در انتظار تصویر پیام صوتی… تعیین نام مخاطب… قطع شد - در حال انتظار نشانی‌ دریافت تغییر کند؟ تغییر نشانی‌ لغو خواهد شد. نشانی‌ دریافت پیشین استفاده خواهد شد. مذاکره مجدد @@ -384,7 +371,6 @@ تایید بازنشاندن اسکن کد QR - (اسکن یا الصاق از کلیپ بورد) (تنها ذخیره شده توسط اعضای گروه) فعال کردن دسترسی دوربین اجازه داده نشد! @@ -403,10 +389,8 @@ ضبط پیام صوتی ارسال پیام بدون جزئیات - اتصال به وسیله لینک / کد QR دوربین موجود نیست تصویر - ایجاد لینک دعوت یک‌بارمصرف برای پرسش هر سوال و دریافت اطلاعات به توسعه‌دهندگان SimpleX Chat متصل شوید.]]> افزودن مخاطب: برای ایجاد لینک دعوت جدید، یا اتصال از طریق لینکی که دریافت کردید.]]> اتصال از طریق لینک @@ -477,13 +461,11 @@ یا کد QR را اسکن کنید تلاش مجدد عبارت عبور و اکسپورت پایگاه داده - افزودن سرورهای از پیش تنظیم شده افزودن به دستگاه دیگر حذف سرور چگونه از سرورهای خود استفاده کنید تصویر پیش‌نمایش لینک پروفایل‌های چت شما - سرورهای SMP SimpleX Chat را برای ترمینال نصب کنید در GitHub ستاره بدهید همکاری کنید @@ -505,23 +487,17 @@ کمک لوگوی SimpleX ایمیل - این لینک، یک لینک اتصال معتبر نیست! درخواست اتصال ارسال شد! وقتی دستگاه میزبان گروه آنلاین شد، به گروه متصل خواهید شد، لطفا صبر کنید یا بعدا بررسی کنید! - لینکی که دریافت کردید را الصاق کنید تا به مخاطبتان متصل شوید… پروفایل شما %1$s به اشتراک گذاشته خواهد شد. برای اتصال، مخاطبتان می‌تواند کد QR را اسکن یا از لینک در برنامه استفاده کند. اگر نمی‌توانید ملاقات حضوری داشته باشید، کد QR را در یک تماس تصویری نمایش دهید، یا لینک را به اشتراک بگذارید. - می‌توانید نشانی خود را به صورت لینک یا کد QR به اشتراک بگذارید - هر کسی می‌تواند به شما متصل شود. - وقتی اشخاص درخواست اتصال کنند، شما می‌توانید آن را بپذیرید یا رد کنید. یا این کد را نشان دهید می‌توانید دوباره لینک دعوت را در جزئیات اتصال مشاهده کنید. نگه‌داشتن در حال ایجاد لینک… لینکی که دریافت کردید را الصاق کنید متن الصاقی شما یک لینک SimpleX نیست. - سرور شما - سرور از پیش تنظیم شده نشانی‌ سرور نامعتبر! به‌کارگیری برای اتصال‌های جدید کد QR نامعتبر @@ -530,13 +506,11 @@ علامت‌گذاری به عنوان تایید شده %s تایید نشده است برای تایید رمزنگاری انتها به انتها، روی دستگاه‌های خود، کد را با مخاطبتان مقایسه(یا اسکن) کنید. - سرورهای XFTP شما روش استفاده در حال استفاده از سرورهای SimpleX Chat. تنظیم سرورهای ICE می‌خواهد به شما متصل شود! وقتی دستگاه مخاطبتان آنلاین شد، متصل خواهید شد، لطفا صبر کنید یا بعدا بررسی کنید! - کد QR را در تماس تصویری اسکن کنید، یا مخاطبتان می‌تواند یک لینک دعوت به اشتراک بگذارد.]]> دعوت استعمال نشده نگه داشته شود؟ نشانی‌ SimpleX شما مارکداون در پیام‌ها @@ -549,14 +523,11 @@ عدم موفقیت آزمایش سرور! برخی از سرورها در تست ناموفق بودند: اسکن کد QR سرور - سرورهای SMP شما - سرورهای XFTP از سرورهای SimpleX Chat استفاده شود؟ سرورهای WebRTC ICE ذخیره شده حذف خواهند شد. سرورهای ICE شما اتصال الصاق - باز کردن در برنامه موبایل کلیک کنید.]]> افزودن مخاطب نشانی‌ SimpleX پاک‌سازی تایید @@ -571,7 +542,6 @@ لازم است مخاطبتان آنلاین باشد تا اتصال کامل شود. \nمی‌توانید این اتصال را لغو و مخاطب را حذف کنید (و بعدا با یک لینک جدید امتحان کنید). نشانی‌ SimpleX - این کد QR یک لینک نیست! راهنمای کاربر.]]> این رشته متن، یک لینک اتصال نیست! کدی که اسکن کردید یک کد QR لینک SimpleX نیست. @@ -579,10 +549,7 @@ تصویر پروفایل بیشتر نمایش کد QR - کد QR نامعتبر وقتی درخواست اتصال شما پذیرفته شد، متصل خواهید شد، لطفا صبر کنید یا بعدا بررسی کنید! - کد QR را در تماس تصویری نمایش دهید، یا لینک را به اشتراک بگذارید.]]> - پروفایل چت شما ارسال خواهد شد \nبه مخاطبتان اطلاعات بیشتر اگر بعدا نشانی‌ خود را حذف کنید، مخاطبان خود را از دست نخواهید داد. این لینک دعوت یک‌بارمصرف را به اشتراک بگذارید @@ -640,7 +607,6 @@ اگر تایید کنید، سرورهای پیام‌رسانی خواهند توانست نشانی‌ IP، و فراهم‌کننده شما را ببینند - و این که به چه سرورهایی متصل می‌شوید. مطمئن شوید قالب نشانی‌های سرور WebRTC ICE صحیح است، در خط‌های جدا نوشته شده و تکرار نشده‌اند. برای هر مخاطب و عضو گروه استفاده خواهد شد. \nلطفا توجه داشته باشید: اگر اتصال‌های زیادی داشته باشید، مصرف باتری و ترافیک شما می‌تواند به شکل قابل توجه بالاتر باشد و بعضی اتصال‌ها ممکن است با موفقیت انجام نشوند.]]> - حالت انزوای ترابری به روز شود؟ ویرایش تصویر ایجاد نشانی‌ SimpleX اشتراک‌گذاری با مخاطبان @@ -652,7 +618,6 @@ حذف نشانی سلام! \nبه وسیله SimpleX Chat به من متصل شوید: %s - نشانی ایجاد نشود ادامه پروفایل فعلی شما نام کامل: @@ -664,8 +629,6 @@ ذخیره کلمه عبور پروفایل اشتراک‌گذاری نشانی متوقف شود؟ توقف اشتراک‌گذاری - می‌توانید بعدا آن را ایجاد کنید - می‌توانید آن را از طریق تنظیمات برای مخاطبان SimpleX خود قابل رویت کنید. نام پروفایل: حذف تصویر ذخیره کردن و اطلاع به اعضای گروه @@ -677,7 +640,6 @@ کلمه عبور پروفایل پنهان به پروفایل خود نشانی اضافه کنید، تا مخاطبانتان بتوانند آن را با اشخاص دیگر به اشتراک بگذارند. به‌روزرسانی پروفایل به مخاطبانتان ارسال خواهد شد. نشانی با مخاطبان به اشتراک گذاشته شود؟ - یک نشانی ایجاد کنید تا اشخاص بتوانند به شما متصل شوند. پروفایل شما روی دستگاهتان ذخیره شده و فقط با مخاطبانتان به اشتراک گذاشته می‌شود. سرورهای SimpleX قادر به دیدن پروفایل شما نیستند. خطا در ذخیره کردن کلمه عبور کاربر تماس‌های صوتی و تصویری @@ -727,15 +689,11 @@ اکسپورت پایگاه داده پروفایل چت حذف شود؟ نام خود را وارد کنید: - ایجاد روش استفاده از مارکداون می‌توانید از مارکداون برای آرایش پیام‌ها استفاده کنید: تماس رد شده تماس پذیرفته - نامتمرکز پروفایل خود را ایجاد کنید - مخزن GitHub ما.]]> - استفاده از چت بهترین گزینه برای باتری. شما اعلان‌ها را فقط وقتی دریافت می‌کنید که برنامه در حال اجراست (بدون سرویس پس‌زمینه).]]> تماس‌ها روی صفحه قفل: پذیرفتن @@ -771,11 +729,9 @@ حذف پایگاه داده پایگاه داده چت ایمپورت شد %d فایل با اندازه کل %s - فقط دستگاه‌های کلاینت پروفایل‌های کاربری، مخاطبان، گروه‌ها و پیام‌ها را ذخیره می‌کنند. نادیده گرفتن بلوتوث وارد کردن پایگاه داده - شما تصمیم می‌گیرید که چه کسی می‌تواند متصل شود. تماس از پیش پایان یافته! هش پیام ناصحیح پذیرفتن خودکار تصاویر @@ -786,18 +742,15 @@ ارسال رسید برای %d گروه فعال است ارسال رسید برای %d گروه غیرفعال است حمایت از SimpleX Chat - پروکسی SOCKS استفاده از کامپیوتر آرشیو پایگاه داده جدید آرشیو پایگاه داده قدیمی خطا در شروع چت - مصونیت در برابر هرزنامه چگونه کار می‌کند تماس تصویری گوشی بلندگو هدفون‌ها - آینده پیام‌رسانی پایان یافت خطا در باز کردن مرورگر عبارت عبور برای اکسپورت را تعیین کنید @@ -808,7 +761,6 @@ چت متوقف شده است خطا در حذف پایگاه داده چت خطا در ایمپورت کردن پایگاه داده چت - شما چت خود را کنترل می‌کنید! پروفایل، مخاطبان و پیام‌های تحویل داده شده شما روی دستگاهتان ذخیره می‌شوند. پروفایل فقط با مخاطبانتان به اشتراک گذاشته می‌شود. نام نمایشی نمی‌تواند شامل نویسه‌های فاصله باشد. @@ -823,7 +775,6 @@ تعیین عبارت عبور پایگاه داده استفاده از عبارت عبور تصادفی تماس صوتی - سرورهای ICE شما تماس در جریان است شناسه پیام ناصحیح حریم خصوصی و امنیت @@ -839,7 +790,6 @@ آن‌ها در تنظیمات مخاطب و گروه قابل جایگزینی هستند. گروه‌های کوچک (حداکثر ۲۰) تنظیمات - هیچ شناسه کاربری وجود ندارد اعلان‌های خصوصی عبارت عبور تصادفی در تنظیمات به صورت متن آشکار ذخیره می‌شود. \nمی‌توانید بعدا آن را تغییر دهید. @@ -858,7 +808,6 @@ کد عبور تغییر نکرد! ایجاد پروفایل مورب - ما هیچکدام از مخاطبان و پیام‌های(وقتی تحویل داده شدند) شما را روی سرورها ذخیره نمی‌کنیم. رنگی محرمانه در حال تماس… @@ -882,7 +831,6 @@ اتصال شبکه آیکون برنامه پایگاه داده چت - بن‌سازه پیام‌رسانی و کاربردی که از حریم خصوصی و امنیت شما محافظت می‌کند. گزینه خوب برای باتری. سرویس پس‌زمینه هر ۱۰ دقیقه پیام‌ها را بررسی می‌کند. ممکن است تماس‌ها یا پیام‌های ضروری را از دست دهید.]]> پیام‌های نادیده گرفته شده مرورگر وب پیش‌فرض برای تماس‌ها لازم است. لطفا مرورگر پیش‌فرض را در سیستم تنظیم کنید، و اطلاعات بیشتر را با توسعه‌دهندگان به اشتراک بگذارید. @@ -919,7 +867,6 @@ اعطای اجازه‌ها در تنظیمات این مجوز را در تنظیمات اندروید پیدا و به صورت دستی آن را اعطا کنید. باز کردن تنظیمات - هر کسی می‌تواند سرویس‌دهنده میزبانی کند. رسیدها غیرفعال شوند؟ فعال کردن (نگه‌داشتن مقدارهای جایگزین شده) اعطای اجازه‌ها @@ -927,8 +874,6 @@ دوربین دوربین و میکروفون اعطای اجازه‌ها برای برقراری تماس‌ها - تعریف مجدد حریم خصوصی - برای حفظ حریم خصوصی شما، SimpleX از شناسه‌های جداگانه برای هر یک از مخاطبان شما استفاده می‌کند. از باتری بیشتر استفاده می‌کند! سرویس پس‌زمینه همیشه در حال اجراست - اعلان‌ها به محض موجود شدن، نمایش داده می‌شوند.]]> وقتی می‌تواند اتفاق بیفتد که: \n۱. پیام‌ها در کلاینت فرستنده بعد از ۲ روز یا روی سرور بعد از ۳۰ روز منقضی شده باشند. @@ -1339,8 +1284,6 @@ تنظیمات گفت‌و‌گو فایل‌ها و رسانه تماس‌های صوتی/تصویری - " -\nموجود در نسخه 5.1" به مخاطبان خود اجازه ارسال پیام‌های صوتی می‌دهید. فقط زمانی اجازه حذف پیام‌ها به صورت غیرقابل برگشت را می‌دهید که مخاطب شما این اجازه را به شما بدهد. (۲۴ ساعت) پیام‌های ناپدید شونده ممنوع است. @@ -1982,7 +1925,6 @@ باز کردن چت جدید باز کردن گروه جدید به منوی تنظیمات سافاری / وب‌سایت‌ها / و سپس میکروفن رفته و گزینه \"اجازه دادن برای localhost\" را انتخاب کنید. - باز کردن تنظیمات سرور باز کردن لینک باز کردن لینک‌ها از لیست چت‌ها باز کردن برای پذیرش @@ -1997,8 +1939,6 @@ یا به‌طور خصوصی به اشتراک بگذارید سایر سایر خطاها - سایر سرورهای SMP - سایر سرورهای XFTP عبارت عبور در کی‌استور قابل خواندن نیست، لطفاً آن را به‌صورت دستی وارد کنید. این ممکن است پس از یک به‌روزرسانی سیستم که با برنامه سازگار نیست، اتفاق افتاده باشد. اگر این مورد نیست، لطفاً با توسعه‌دهندگان تماس بگیرید. عبارت عبور در مخزن کلید قابل خواندن نیست. این ممکن است پس از به‌روزرسانی سیستم که با برنامه سازگار نیست، اتفاق افتاده باشد. اگر این طور نیست، لطفا با توسعه دهندگان تماس بگیرید. کلمه عبور @@ -2152,7 +2092,6 @@ با استفاده از SimpleX Chat شما موافقت می‌کنید که:\n- فقط محتوای قانونی را در گروه‌های عمومی ارسال کنید.\n- به سایر کاربران احترام بگذارید - از ارسال هرزنامه خودداری کنید. تماس با یک مخاطب استفاده شود - آن را به صورت حضوری یا از طریق هر پیام‌رسانی به اشتراک بگذارید.]]> - به صورت رمزنگاری انتها به انتهاو با امنیت پساکوانتومی در پیام‌های مستقیم ارسال می‌شوند.]]> %s.]]> %s.]]> رمزنگاری انتها به انتها محافظت می‌شوند.]]> @@ -2175,8 +2114,6 @@ شرایط استفاده شرایط در: %s پذیرفته خواهد شد. شرایط به‌طور خودکار برای اپراتورهای فعال در: %s پذیرفته خواهد شد. - سرورهای SMP پیکربندی‌شده - سرورهای XFTP پیکربندی‌شده سرورهای متصل شده اتصال نیاز به تجدید مذاکره رمزنگاری دارد. اتصالات diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/fi/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/fi/strings.xml index e5e7c525a5..5036d874d7 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/fi/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/fi/strings.xml @@ -50,7 +50,6 @@ Yhteyden aikakatkaisu Kontaktin asetukset Jatka - Luo osoite, jolla ihmiset voivat ottaa sinuun yhteyttä. Tietokannan salauksen tunnuslause päivitetään ja tallennetaan Keystoreen. Poista keskusteluprofiili käyttäjälle poistettu @@ -96,7 +95,6 @@ Yhdistetäänkö kontaktilinkin kautta\? Liitytäänkö ryhmään? Yhdistetäänkö kutsulinkin kautta\? - Yhdistä yhdistää Kuvaus Yhdistä @@ -106,7 +104,6 @@ Dekoodauksen virhe peruuta linkin esikatselu Tietoja SimpleX:stä - Hajautettu Ääni pois päältä Vaihda rooli Poista kaikilta @@ -166,7 +163,6 @@ Poista ryhmä\? Tumma Tunnistautuminen epäonnistui - Lisää esiasetettuja palvelimia poistettu ryhmä yhdistää yhdistäminen (hyväksytty) @@ -215,8 +211,6 @@ Chat on pysähtynyt Vahvista uusi tunnuslause… Poista keskusteluprofiili\? - " -\nSaatavilla v5.1:ssä" Yksityisviestit Yhdistetty Vahvista @@ -235,7 +229,6 @@ oletus (%s) Katoavat viestit Kopioitu leikepöydälle - Luo kertaluonteinen kutsulinkki tietokantaversio on uudempi kuin sovellus, mutta ei alaspäin siirtymistä: %s erilainen siirto sovelluksessa/tietokannassa: %s / %s Hyväksy yhteydenottopyynnöt automaattisesti @@ -263,7 +256,6 @@ Kontakti ja kaikki viestit poistetaan - tätä ei voi perua! Katkaistu Takaisin - Yhdistä linkillä / QR-koodilla Tyhjennä Skannaa QR-koodi.]]> Poistetaanko odottava yhteys\? @@ -272,7 +264,6 @@ Tietoja SimpleX Chatistä Tietokannan tunnuslause ja vienti Luo profiili - Luo Poista käytöstä Ääni päällä Vastaa puheluun @@ -346,11 +337,8 @@ Poista jälkeen %d tunti päivää - Virhe XFTP-palvelimien tallentamisessa Päällekkäinen näyttönimi! Virhe profiilin luomisessa! - Virhe SMP-palvelimia ladattaessa - Virhe XFTP-palvelimia ladattaessa Virhe profiilin vaihdossa! Virhe ryhmään liittymisessä Virhe käyttäjäprofiilin poistamisessa @@ -370,14 +358,12 @@ Ryhmälinkki Otetaanko automaattinen viestien poisto käyttöön\? Tiedosto vastaanotetaan, kun kontakti on online-tilassa, odota tai tarkista myöhemmin! - skannata QR-koodin videopuhelussa , tai kontaktisi voi jakaa kutsulinkin.]]> Jos päätät hylätä, lähettäjälle EI ilmoiteta. Jos syötät tämän pääsykoodin sovellusta avatessasi, kaikki sovelluksen tiedot poistetaan peruuttamattomasti! Ryhmäprofiili tallennetaan jäsenten laitteille, ei palvelimille. Tuo teema t virhe - Virhe SMP-palvelimien tallentamisessa Koko linkki Virhe verkkoasetuksia päivitettäessä Keskustelun lataaminen epäonnistui @@ -494,7 +480,6 @@ Kutsu ystäviä Hei! \nOta minuun yhteyttä SimpleX Chatin kautta: %s - Älä luo osoitetta Muokkaa kuvaa Poistu tallentamatta Virhe käyttäjän salasanan tallentamisessa @@ -548,8 +533,6 @@ Kuva Galleriasta Virheellinen linkki! - Virheellinen QR-koodi - näytä QR-koodi videopuhelussa tai jaa linkki.]]> Virheellinen palvelimen osoite! Kirjoita nimesi: Käännä kamera @@ -573,7 +556,6 @@ Kuva Sähköposti Näyttönimi ei saa sisältää välilyöntejä. - Immuuni roskapostille ja väärinkäytöksille Virhe vietäessä keskustelujen tietokantaa Piilota Konsoliin @@ -629,7 +611,6 @@ Aseta pääsykoodi SimpleX-linkit Linkin avaaminen selaimessa voi heikentää yhteyden yksityisyyttä ja turvallisuutta. Epäluotetut SimpleX-linkit näkyvät punaisina. - Varmista, että SMP-palvelinosoitteet ovat oikeassa muodossa, rivieroteltuina ja että ne eivät ole päällekkäisiä. Lähettäjä peruutti tiedoston siirron. Säännölliset ilmoitukset Viestejä vastaanotetaan… @@ -697,11 +678,9 @@ Paljasta Lähetetty viesti Vain ryhmän omistajat voivat ottaa ääniviestit käyttöön. - Vireillä Tallenna ääniviesti Lähetä katoava viesti Lähetä live-viesti - Aloita uusi keskustelu napauttamalla Lähetä Verkkoasetukset profiilikuvan paikka @@ -715,7 +694,6 @@ Itsetuho Itsetuhoutuva pääsykoodi vaihdettu! Itsetuhoutuva pääsykoodi käytössä! - SOCKS välityspalvelin Uusi tietokanta-arkisto Ei vastaanotettuja tai lähetettyjä tiedostoja Poistetaanko tunnuslause Keystoresta\? @@ -776,7 +754,6 @@ Skannaa QR-koodi Lue lisää %s on vahvistettu - SMP-palvelimet Esikatselu Tallenna sek @@ -817,7 +794,6 @@ Tallenna palvelimet Palvelintesti epäonnistui! Jotkut palvelimet epäonnistuivat testissä: - Esiasetettu palvelin Arvioi sovellus Skannaa palvelimen QR-koodi Profiilipäivitys lähetetään kontakteillesi. @@ -828,9 +804,7 @@ Tallenna asetukset\? Jutellaan SimpleX Chatissa vahvistus saatu… - GitHub-arkistostamme.]]> Säännölliset - 2-kerroksisella päästä päähän -salauksella.]]> Liitä vastaanotettu linkki Välityspalvelin suojaa IP-osoitteesi, mutta se voi tarkkailla puhelun kestoa. Avaa SimpleX Chat hyväksyäksesi puhelun @@ -845,7 +819,6 @@ Kiitos käyttäjille – osallistu Weblaten kautta! Lähetä Lupa evätty! - (skannaa tai liitä leikepöydältä) Napauta -painike Näytä QR-koodi Kertakutsulinkki @@ -888,7 +861,6 @@ Edellisen viestin tarkiste on erilainen. Live-viestit Suojaa keskusteluprofiilisi salasanalla! - Varmista, että XFTP-palvelinosoitteet ovat oikeassa muodossa, rivieroteltuina ja että ne eivät ole päällekkäisiä. SimpleX Chat -viestit SimpleX Chat -puhelut Näytä kontakti ja viesti @@ -946,10 +918,6 @@ QR-koodi Skannaa koodi alkaa… - Yksityisyys uudelleen määritettynä - Ensimmäinen alusta ilman käyttäjätunnisteita – suunniteltu yksityiseksi. - Avoimen lähdekoodin protokolla ja koodi - kuka tahansa voi käyttää palvelimia. - Ihmiset voivat ottaa sinuun yhteyttä vain jakamiesi linkkien kautta. Luo yksityinen yhteys Ilmoita siitä kehittäjille. Suojaa sovellusnäyttö @@ -1017,8 +985,6 @@ Ääniviestit kielletty! Palvelimet nykyisen keskusteluprofiilisi uusille yhteyksille Käytä palvelinta - XFTP-palvelimet - Palvelimesi Palvelimesi osoite Tätä toimintoa ei voi kumota - valittua aikaisemmin lähetetyt ja vastaanotetut viestit poistetaan. Tämä voi kestää useita minuutteja. Uusimmat @@ -1057,7 +1023,6 @@ Video vastaanotetaan, kun kontaktisi on ladannut sen. Keskustelusi Käytä SOCKS-välityspalvelinta\? - Hallitset keskustelujasi! Nykyinen profiilisi Profiilisi tallennetaan laitteeseesi ja jaetaan vain kontaktiesi kanssa. SimpleX -palvelimet eivät näe profiiliasi. Teemat @@ -1089,10 +1054,8 @@ Näytä turvakoodi Ääniviesti (%1$s) Video - Voit jakaa osoitteesi linkkinä tai QR-koodina - kuka tahansa voi muodostaa yhteyden sinuun. Voit tarkistaa päästä päähän -salauksen kontaktisi kanssa vertaamalla (tai skannaamalla) laitteidenne koodia. Kontaktisi pysyvät yhdistettyinä. - Viestintä- ja sovellusalusta, joka suojaa yksityisyyttäsi ja tietoturvaasi. videopuhelu %1$s JÄSENET Rooli muuttuu muotoon "%s". Kaikille ryhmän jäsenille ilmoitetaan asiasta. @@ -1110,17 +1073,10 @@ Kontaktin tulee olla online-tilassa, jotta yhteys voidaan muodostaa. \nVoit peruuttaa tämän yhteyden ja poistaa kontaktin (ja yrittää myöhemmin uudella linkillä). Kontaktisi voi muodostaa yhteyden skannaamalla QR-koodin tai käyttämällä sovelluksessa olevaa linkkiä. - Kun ihmiset pyytävät yhteyden muodostamista, voit hyväksyä tai hylätä sen. Asetuksesi - SMP-palvelimesi - XFTP-palvelimesi Käytä SimpleX Chat palvelimia\? Käyttöliittymän värit - Päivitä kuljetuksen eristystila\? - Voit luoda sen myöhemmin Voit paljastaa piilotetun profiilisi kirjoittamalla koko salasanan Keskusteluprofiilit-sivun hakukenttään. - Emme tallenna mitään kontaktejasi tai viestejäsi (kun ne on toimitettu) palvelimille. - Yksityisyyden suojaamiseksi kaikkien muiden alustojen käyttämien käyttäjätunnusten sijaan SimpleX käyttää viestijonojen tunnisteita, jotka ovat kaikille kontakteille erillisiä. %1$s haluaa olla yhteydessä sinuun kautta WebRTC ICE -palvelimet Keskustelut-tietokantasi @@ -1134,9 +1090,6 @@ Valinnaisella tervetuloviestillä. Sinulla ei ole keskusteluja Liikaa kuvia! - (jaa kontaktisi kanssa) - Keskusteluprofiilisi lähetetään -\nkontakteillesi ICE-palvelimesi Kun saatavilla Käytä .onion-isäntiä @@ -1158,12 +1111,9 @@ \n- muokattava kesto katoaville. \n- muokkaushistoria. Voit ottaa SimpleX Lockin käyttöön Asetusten kautta. - Tämä teksti on saatavilla asetuksista - Tervetuloa! lukematon SimpleX Logo SimpleX Tiimi - Tämä linkki ei ole kelvollinen yhteyslinkki! Keskusteluprofiilisi Lataa tiedosto SimpleX-taustapalvelu – se kuluttaa muutaman prosentin akusta päivässä.]]> @@ -1179,19 +1129,15 @@ Vastaanotto-osoite vaihdetaan toiseen palvelimeen. Osoitteenmuutos tehdään sen jälkeen, kun lähettäjä tulee verkkoon. Sinun on sallittava kontaktiesi lähettää ääniviestejä, jotta voit lähettää niitä. olla yhteydessä SimpleX Chatin -kehittäjiin kysyäksesi kysymyksiä ja saadaksesi päivityksiä.]]> - Tämä QR-koodi ei ole linkki! Sinut yhdistetään ryhmään, kun ryhmän isännän laite on online-tilassa, odota tai tarkista myöhemmin! Sinut yhdistetään, kun yhteyspyyntösi on hyväksytty, odota tai tarkista myöhemmin! Sinut yhdistetään, kun kontaktisi laite on online-tilassa, odota tai tarkista myöhemmin! - Avaa mobiilisovelluksessa -painiketta.]]> SimpleX-osoitteesi Käytä uusiin yhteyksiin Käytä SOCKS-välityspalvelinta Kuljetuksen eristäminen Profiilisi, kontaktisi ja toimitetut viestit tallennetaan laitteellesi. Profiili jaetaan vain kontaktiesi kanssa. - Käytä chattia - ICE-palvelimesi Video pois päältä Video päällä Et enää saa viestejä tästä ryhmästä. Keskusteluhistoria säilytetään. @@ -1209,7 +1155,6 @@ Varoitus: saatat menettää joitain tietoja! SimpleX Osoite odottaa vastaamista… - Seuraavan sukupolven yksityisviestit odottaa vahvistusta… %1$d viestit ohitettu. Seuraavan viestin tunnus on väärä (pienempi tai yhtä suuri kuin edellisen). @@ -1247,7 +1192,6 @@ Protokollan aikakatkaisu per KB Tiedostot ja media ovat tässä ryhmässä kiellettyjä. Ryhmän jäsenet voivat lähettää tiedostoja ja mediaa. - Yhdistä Incognito Käytä nykyistä profiilia Käytä uutta incognito-profiilia Salli @@ -1263,7 +1207,6 @@ Suosikki Epäsuosikki Uusi satunnainen profiili jaetaan. - Liitä linkki, jonka sait yhteydenottoon kontaktisi kanssa… Profiilisi %1$s jaetaan. Kuittaukset pois käytöstä ryhmiltä\? Tulossa pian! diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/fr/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/fr/strings.xml index 572b10c988..51cfa90ff1 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/fr/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/fr/strings.xml @@ -5,7 +5,6 @@ SimpleX Votre profil va être envoyé au contact qui vous a envoyé ce lien. Vous vous connecterez à tous les membres du groupe. - Se connecter Rejoindre le groupe ? Se connecter via un lien unique ? erreur @@ -45,7 +44,6 @@ vous avez partagé un lien unique via un lien unique mode incognito via un lien unique - Assurez-vous que les adresses des serveurs SMP sont au bon format, séparées par des lignes et ne sont pas dupliquées. Erreur lors de la mise à jour de la configuration réseau Erreur lors de la création de l\'adresse Contact déjà existant @@ -55,7 +53,6 @@ Tentative de connexion au serveur utilisé pour recevoir les messages de ce contact (erreur : %1$s). format de message invalide Lien entier - Erreur lors de la sauvegarde des serveurs SMP Impossible de recevoir le fichier Lien de connection invalide Délai de connexion @@ -137,11 +134,9 @@ Échec d’initialisation de la base de données Pour recevoir des notifications, veuillez entrer la phrase secrète de la base de données service SimpleX Chat - Ce texte est disponible dans les paramètres Rejoindre en tant que %s Vous êtes invité·e au groupe Discuter avec les développeurs - Appuyez ici pour démarrer une nouvelle conversation Vous n\'avez aucune conversation Trop d’images ! Partager le fichier… @@ -150,7 +145,6 @@ Annuler l’aperçu du fichier échec d’envoi non lu - Bienvenue ! connexion… connexion… Partager le message… @@ -192,11 +186,8 @@ aucun détail Lien d\'invitation unique Copié dans le presse-papiers - Créer un lien d\'invitation unique Commencer une nouvelle conversation - Se connecter via un lien / code QR Scanner un QR code - (à partager avec votre contact) Créer un groupe secret Depuis la Phototèque Fichier @@ -233,19 +224,14 @@ Équipe SimpleX Plus Afficher le code QR - Code QR invalide - Ce code QR n\'est pas un lien ! Vous serez connecté·e lorsque votre demande de connexion sera acceptée, veuillez attendre ou vérifier plus tard ! Vous serez connecté·e lorsque l\'appareil de votre contact sera en ligne, veuillez attendre ou vérifier plus tard ! - Votre profil de messagerie sera envoyé\nà votre contact Partager un lien unique Coller Cette chaîne n\'est pas un lien de connexion ! - Ouvrir dans l\'app mobile.]]> Définir le nom du contact… Déconnecté Erreur - En attente Accepter la demande de connexion \? Effacer Effacer la conversation @@ -261,7 +247,6 @@ Confirmer Réinitialisation OK - (scanner ou coller depuis le presse-papiers) (uniquement stocké par les membres du groupe) Votre contact a besoin d\'être en ligne pour completer la connexion. \nVous pouvez annuler la connexion et supprimer le contact (et réessayer plus tard avec un autre lien). @@ -297,7 +282,6 @@ Réactiver le son Le contact avec lequel vous avez partagé ce lien NE pourra PAS se connecter ! Lien invalide ! - Ce lien n\'est pas un lien de connexion valide ! Demande de connexion envoyée ! Le fichier sera reçu lorsque votre contact sera en ligne, veuillez patienter ou vérifier plus tard ! Message vocal… @@ -306,13 +290,10 @@ Notifications L\'adresse de réception sera changée pour un autre serveur. Le changement d\'adresse sera terminé lorsque l\'expéditeur sera en ligne. Vous serez connecté·e au groupe lorsque l\'appareil de l\'hôte sera en ligne, veuillez attendre ou vérifier plus tard ! - montrez le code QR lors d\'un appel vidéo, ou partagez le lien.]]> Scannez le code de sécurité depuis l\'application de votre contact. Pour vérifier le chiffrement de bout en bout avec votre contact, comparez (ou scannez) le code sur vos appareils. - scanner un QR code lors d\'un appel vidéo, ou votre contact peut partager un lien d\'invitation.]]> Ajouter un serveur Markdown dans les messages - Ajouter des serveurs prédéfinis Utiliser les serveurs SimpleX Chat \? Supprimer le serveur Assurez-vous que les adresses des serveurs WebRTC ICE sont au bon format et ne sont pas dupliquées, un par ligne. @@ -321,7 +302,6 @@ Vos paramètres Verrouillage SimpleX Console de la messagerie - Serveurs SMP Tester les serveurs Enregistrer les serveurs Scanner un QR code de serveur @@ -332,7 +312,6 @@ Star sur GitHub Contribuer Évaluer l\'app - Vos serveurs SMP Comment utiliser vos serveurs Les serveurs WebRTC ICE sauvegardés seront supprimés. Vos serveurs ICE @@ -354,7 +333,6 @@ Votre profil, vos contacts et les messages reçus sont stockés sur votre appareil. Le profil n\'est partagé qu\'avec vos contacts. Le nom d\'affichage ne peut pas contenir d\'espace. - Créer À propos de SimpleX Vous pouvez utiliser le format markdown pour mettre en forme les messages : gras @@ -366,10 +344,7 @@ réponse reçu… confimation reçu… connexion… - N\'importe qui peut heberger un serveur. - Pour protéger votre vie privée, SimpleX utilise des identifiants distincts pour chacun de vos contacts. Collez le lien que vous avez reçu - Utiliser la messagerie Notifications privées Comment il affecte la batterie Quand l\'application fonctionne @@ -398,8 +373,6 @@ Échec du test du serveur ! Certains serveurs n\'ont pas réussi le test : Entrer un serveur manuellement - Serveur prédéfini - Votre serveur Votre adresse de serveur Adresse de serveur invalide ! Vérifiez l\'adresse du serveur et réessayez. @@ -420,9 +393,6 @@ Votre profil est stocké sur votre appareil et partagé uniquement avec vos contacts. Les serveurs SimpleX ne peuvent pas voir votre profil. Supprimer l\'image Enregistrer les préférences ? - Vous contrôlez votre messagerie ! - La plateforme de messagerie et d\'applications qui protège votre vie privée et votre sécurité. - Nous ne stockons aucun de vos contacts ou messages (une fois délivrés) sur les serveurs. Créer le profil Saisissez votre nom : Comment utiliser markdown @@ -435,17 +405,9 @@ en attente de confirmation… connecté terminé - L\'avenir de la messagerie - La vie privée redéfinie - Aucun identifiant d\'utilisateur. - Protégé du spam - Vous choisissez qui peut se connecter. - Décentralisé Créez votre profil Établir une connexion privée Comment ça fonctionne - Seuls les appareils clients stockent les profils des utilisateurs, les contacts, les groupes et les messages. - GitHub repository.]]> Batterie peu utilisée. L\'app vérifie les messages toutes les 10 minutes. Vous risquez de manquer des appels ou des messages urgents.]]> Consomme davantage de batterie ! L’application fonctionne toujours en arrière-plan — les notifications sont affichées instantanément.]]> %1$d message(s) manqué(s) @@ -516,7 +478,6 @@ Appels audio et vidéo chiffré de bout en bout Fonctionnalités expérimentales - SOCKS proxy Thèmes Messages et fichiers Appels @@ -570,7 +531,6 @@ Appels sur l\'écran de verrouillage : Afficher Désactiver - Vos serveurs ICE Serveurs WebRTC ICE Le serveur relais protège votre adresse IP, mais il peut observer la durée de l\'appel. Le serveur relais n\'est utilisé que si nécessaire. Un tiers peut observer votre adresse IP. @@ -896,7 +856,6 @@ Effacer les fichiers de tous les profils de messagerie Profil et connexions au serveur Transport isolé - Mettre à jour le mode d\'isolement du transport \? pour chaque contact et membre de groupe. \nVeuillez noter : si vous avez de nombreuses connexions, votre consommation de batterie et de réseau peut être nettement plus élevée et certaines liaisons peuvent échouer.]]> Profil de messagerie Ajouter un profil @@ -1014,16 +973,10 @@ Seulement 10 vidéos peuvent être envoyées en même temps Créer un fichier Supprimer le fichier - Erreur lors de la sauvegarde des serveurs XFTP - Assurez-vous que les adresses des serveurs XFTP sont au bon format, séparées par des lignes et qu\'elles ne sont pas dupliquées. Le serveur requiert une autorisation pour téléverser, vérifiez le mot de passe. Téléverser le fichier - Serveurs XFTP - Vos serveurs XFTP Comparer le fichier Télécharger le fichier - Erreur lors du chargement des serveurs SMP - Erreur lors du chargement des serveurs XFTP Héberger Port port %d @@ -1064,7 +1017,6 @@ Autoriser les appels que si votre contact les autorise. Autorise vos contacts à vous appeler. Appels audio/vidéo - \nDisponible dans la v5.1 Interdire les appels audio/vidéo. Le fichier sera supprimé des serveurs. Révoquer @@ -1098,10 +1050,8 @@ Ouverture de la base de données… À propos de l\'adresse SimpleX En savoir plus - Vous pouvez partager votre adresse sous la forme d\'un lien ou d\'un code QR - tout le monde peut l\'utiliser pour vous contacter. Vous ne perdrez pas vos contacts si vous supprimez votre adresse ultérieurement. Adresse SimpleX - Vous pouvez accepter ou refuser les demandes de contacts. Couleurs de l\'interface Vos contacts resteront connectés. Partager l\'adresse avec les contacts SimpleX ? @@ -1112,7 +1062,6 @@ Inviter des amis Discutons sur SimpleX Chat Enregistrer les paramètres ? - Ne pas créer d\'adresse Adresse Partager l\'adresse… Vous pouvez partager cette adresse avec vos contacts pour leur permettre de se connecter avec %s. @@ -1136,9 +1085,7 @@ Personnaliser le thème Continuer Erreur lors du réglage de l\'adresse - Vous pouvez créer une adresse pour permettre aux autres utilisateurs de vous contacter. Entrez un message de bienvenue… - Vous pouvez la créer plus tard Salut !\nConnectez-vous avec moi via SimpleX Chat : %s Si vous ne pouvez pas vous rencontrer en personne, montrez le code QR lors d\'un appel vidéo ou partagez le lien. Modifier les profils de messagerie @@ -1333,10 +1280,8 @@ Désactiver les notifications Utilisation de la batterie de l\'app / Sans restriction dans les paramètres de l\'app.]]> Votre profil %1$s sera partagé. - Se connecter incognito Pas d\'appels en arrière-plan Ouvrir les paramètres de l\'app - Collez le lien que vous avez reçu pour vous connecter à votre contact… SimpleX ne peut pas fonctionner en arrière-plan. Vous ne recevrez les notifications que lorsque l\'application sera en cours d\'exécution. L\'application peut se fermer après 1 minute en arrière-plan. Utilisation de la batterie de l\'app / Sans restriction dans les paramètres de l\'app.]]> @@ -1504,7 +1449,6 @@ Ouvrir le port de votre pare-feu erreur d\'affichage de contenu erreur d\'affichage de message - Vous pouvez le rendre visible à vos contacts SimpleX via les Paramètres. L\'historique n\'est pas envoyé aux nouveaux membres. Réessayer Caméra non disponible @@ -1897,14 +1841,10 @@ Bêta Vérifier les mises à jour Vérifier les mises à jour - Serveurs SMP configurés - Serveurs XFTP configurés Désactivé Installé avec succès Installer la mise à jour Ouvrir l\'emplacement du fichier - Autres serveurs SMP - Autres serveurs XFTP Veuillez redémarrer l\'application. Rappeler plus tard Afficher le pourcentage @@ -1954,7 +1894,6 @@ Erreurs de suppression doublons expiré - Ouvrir les paramètres du serveur autre autres erreurs Sécurisées @@ -2134,7 +2073,6 @@ %s.]]> Les conditions seront acceptées le : %s. %s, acceptez les conditions d\'utilisation.]]> - chiffrés de bout en bout, avec une sécurité post-quantique dans les messages directs.]]> Réception des messages toutes les 10 minutes %s.]]> %s.]]> diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/hi/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/hi/strings.xml index 3f17a6d8a7..ed301675fd 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/hi/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/hi/strings.xml @@ -34,7 +34,6 @@ संबंध अनुरोध स्वीकार करें\? स्वीकृत कॉल गुप्त स्वीकार करें - पूर्वनिर्धारित सर्वर जोड़ें प्रोफ़ाइल जोड़ें सर्वर जोड़े हमेशा बने रहें @@ -51,7 +50,6 @@ रंगीन जुड़े हुए जुडिये - जुडिये जुड़े हुए स्वामी जुड़े हुए @@ -63,7 +61,6 @@ आप चले गए अज्ञात त्रुटि आप आज्ञा दें - स्वागत! चालू करो अज्ञात संदेश प्रारूप स्वागत %1$s! @@ -166,7 +163,6 @@ संपर्क नाम सेट करें ईमेल जवाब मिला… - चैट का प्रयोग करें गलती: %s संदेशों को बाद में हटाएं छवि @@ -212,7 +208,6 @@ विवरण ऐप केवल तभी सूचनाएं प्राप्त कर सकता है जब वह चल रहा हो, कोई पृष्ठभूमि सेवा प्रारंभ नहीं की जाएगी संपादन करना - विकेन्द्रीकृत कॉल समाप्त कॉल चल रहा है छवियों को स्वत: स्वीकार करें @@ -227,7 +222,6 @@ चैट कंसोल आपके सभी संपर्क जुड़े रहेंगे। चैट प्रोफ़ाइल - बनाएं कॉल त्रुटि कॉल चल रहा है हमेशा रिले का प्रयोग करें @@ -278,7 +272,6 @@ चालू प्रणाली प्रमाणीकरण प्रणाली - आपका एसएमपी सर्वर संदेशों सदस्य को समूह से निकाल दिया जाएगा - इसे पूर्ववत नहीं किया जा सकता! सदस्य @@ -296,7 +289,6 @@ गुप्त प्रोफ़ाइल का उपयोग करें आपकी प्रोफ़ाइल उस संपर्क को भेजी जाएगी जिससे आपको यह लिंक प्राप्त हुआ है। आप सभी ग्रुप मेंबर्स से कनेक्ट होंगे। - इनकॉग्निटो कनेक्ट करें चैट खोलें नया ग्रुप खोलें यह लिंक मान्य नहीं है diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/hr/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/hr/strings.xml index 7be983c71a..2f010d8aa9 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/hr/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/hr/strings.xml @@ -125,7 +125,6 @@ Razumeo Odstranjeno odstranjeno - Napraviti Poruke i datoteke Poruka Serveri @@ -170,7 +169,6 @@ Pristup na servere pomoću SOCKS proxy na portu %d? Proxy mora da bude uključen pre omogućavanja ove opcije. Prihvaćeni uslovi Dodaj server - Dodaj unapred postavljene servere Odstraniti adresu? odstranjena grupa Dodaj nalog @@ -222,9 +220,7 @@ blokirano administratorom Vi nepoznat status - Poveži se anonimno greška u pozivu - Poveži nepoznat format poruke Povezano %ds @@ -442,8 +438,6 @@ Video poziv Koristi server Adresa vašeg servera - Vaši SMP serveri - Vaši XFTP serveri Obaveštenja i baterija Prikazati e2e šifrovano @@ -460,7 +454,6 @@ Započeti novi razgovor Očistiti Očistiti razgovor - Tvoj server šifrovanje prihvaćeno za %s Glasovne poruke su zabranjene. veza %1$d @@ -654,8 +647,6 @@ Sistem Poslati direktnu poruku za povezivanje Slika - Na čekanju - SMP serveri Upišite Vaše ime: Otvoriti razgovor pozvan %1$s @@ -683,7 +674,6 @@ Otvoriti pomoću %s Ukloniti arhivu? Izabrano %d - Dobrodošli! Previše video snimaka! Poslati Obnoviti @@ -691,7 +681,6 @@ Izabrati profil razgovora Skenirati QR kod servera Napredna mrežna podešavanja - SOCKS proxy Anonimni režim broj PING Obnoviti statistiku? @@ -759,7 +748,6 @@ vlasnik Kopirati Predati - Ostali XFTP serveri Napraviti SimpleX adresu Šifrovati Kreirano u @@ -781,7 +769,6 @@ Dovršiti migraciju Ništa nije izabrano Konverzacija odstranjena! - Ostali SMP serveri Verzija jezgra: v%s Šifrovati bazu podataka Odstraniti vezu? @@ -794,7 +781,6 @@ Za primanje drugo Napraviti profil - Vi odlučujete ko se može povezati. Odstraniti grupu? Obnoviti Prebaciti @@ -904,7 +890,6 @@ Glasovna poruka (%1$s) Naučiti više Označiti da je verifikovano - Koristiti razgovor Označiti da nije pročitano Verifikovati vezu zahtev za povezivanje @@ -944,7 +929,6 @@ Odstraniti server blokirali ste %s Kvantno otporno šifrovanje - Ne praviti adresu Omogućiti svim grupama Ne prikazivati ponovo minuti @@ -1011,7 +995,6 @@ Operator servera blokira vezu:\n%1$s. Promeniti ulogu Ime ovog uređaja - Dodirnuti za početak novog razgovora pozvani ste u grupu Slika sačuvana u Galeriji vaša uloga je promenjena u %s @@ -1047,7 +1030,6 @@ Pozvani ste u grupu promenili ste vašu ulogu na %s Potvrda je onemogućena - Imunitet na spam duplikat poruke Da Greška u bazi podataka @@ -1078,7 +1060,6 @@ Proslediti poruku… Adresa ili jednokratna veza? Omogućiti pristup kameri - Nevažeći QR kod Jednokratna pozivnica Uneti poruku dobrodošlice… Čuvanje %1$s poruka @@ -1207,9 +1188,7 @@ Koristiti za poruke Greška pri kreiranju profila! Greška pri učitavanju detalja - Greška pri čuvanju XFTP servera Otpremljene datoteke - Otvoriti podešavanja servera Greška pri odstranjivanju privatnih beleški Greška pri prosleđivanju poruka Poruke su odstranjene nakon što ste ih odabrali. @@ -1224,7 +1203,6 @@ Onemogućiti potvrde? povezivanje (uvedeno) Uneti šifru u pretragu - Greška pri učitavanju XFTP servera Greška pri odstranjivanju grupe Nije moguće poslati poruku Poslati poruku koja nestaje @@ -1294,8 +1272,6 @@ Poslano putem proxy pozvan za povezivanje pomoću %1$s - Greška pri učitavanju SMP servera - Greška pri čuvanju SMP servera Greška pri promeni adrese Pristupnu frazu je potrebna Spomenuti članove 👋 @@ -1308,7 +1284,6 @@ Bez Informacija, pokušajte ponovo da učitate Komadi su odstranjeni SimpleX Chat pozivi - XFTP serveri Mreža i serveri Podesite ICE servere Koristiti direktnu internet vezu? @@ -1325,7 +1300,6 @@ Vremensko ograničenje protokola Greška pri slanju poruke Greška pri odstranjivanju kontakta - Napraviti jednokratnu pozivnicu Markdown pomoć Dozvoliti slanje datoteka i medijskog sadržaji. Pin kod promenjen! @@ -1380,7 +1354,6 @@ Zapis ažuriran u: %s Član će biti uklonjen iz grupe – ovo se ne može poništiti! Pozivi zabranjeni! - \nDostupno u v5.1 SimpleX veze Odstraniti za sve Dozvoliti slanje poruka koje nestaju. @@ -1396,13 +1369,11 @@ Dozvoliti vašim kontaktima da vas zovu. Prijem poruke Greška pri izvoženju baze podataka razgovora - Možete učiniti vidljivim vašim SimpleX kontaktima putem Podešavanja. Greška pri slanju pozivnice Preskočiti pozivanje članova Za privatno usmeravanje Dodatni sekundarni Pokretanje iz %s. - Vaši ICE serveri Koristiti nasumičnu pristupnu frazu Onemogućiti SimpleX Zaključavanje Ponovo povezati server? @@ -1415,15 +1386,12 @@ Neispravan hash poruke Ponovo povezati server kako biste prisilili dostavu poruke. To koristi dodatni saobraćaj. neispravan ID poruke - Konfigurisani XFTP serveri Upozorenje pri isporuci poruke - Povezati se pomoću linka / QR koda Već imate chat profil sa istim prikaznim imenom. Molimo vas da odaberete drugo ime. Greška u autentifikaciji Unapređena konfiguracija servera %1$d ostale greška datoteke(a). Autentifikacija nije dostupna - Konfigurisani SMP serveri Automatsko prihvatanje Sačuvati preference? Za pozive je potreban podrazumevani veb pretraživač. Molimo vas da konfigurišete podrazumevani pretraživač u sistemu i podelite više informacija sa programerima. @@ -1445,7 +1413,6 @@ Otvoriti fasciklu baze podataka Sačuvati i ažurirati grupni profil Uz smanjenu potrošnju baterije. - (skenirati ili nalepiti iz memorije) Greška u vezi Ažurirajte aplikaciju i kontaktirajte programere. Tokom uvoza došlo je do nekih nefatalnih grešaka: @@ -1458,11 +1425,9 @@ Uz smanjenu potrošnju baterije. Greška pri preuzimanju arhive Svi razgovori biće uklonjeni sa liste %s, a lista odstranjena - Ovaj QR kod nije link! Već se povezujete! Migriraj na drugi uređaj Otvoriti promene - Decentralizovano Nema informacija o prijem Povezati se pomoću linka Zadržati Vaše konekcije diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/hu/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/hu/strings.xml index 82518712da..8bc886865d 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/hu/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/hu/strings.xml @@ -36,7 +36,6 @@ Hitelesítés Egy üres csevegési profil lesz létrehozva a megadott névvel, és az alkalmazás a szokásos módon megnyílik. %s visszavonva - Előre beállított kiszolgálók hozzáadása A hívások kezdeményezése le van tiltva. Az összes partneréhez és csoporttaghoz külön TCP-kapcsolat (és SOCKS-hitelesítési adat) lesz használva.\nMegjegyzés: ha sok kapcsolata van, akkor az akkumulátor-használat és az adatforgalom jelentősen megnövekedhet, és néhány kapcsolódási kísérlet sikertelen lehet.]]> hivatkozáselőnézet visszavonása @@ -66,7 +65,6 @@ Alkalmazás verziója Üdvözlőüzenet hozzáadása titkosítás elfogadása %s számára… - \nElérhető az v5.1-es kiadásban Mindkét fél véglegesen törölheti az elküldött üzeneteket. (24 óra) Továbbfejlesztett csoportok Az összes üzenet törölve lesz – ez a művelet nem vonható vissza! Az üzenetek CSAK az Ön számára törlődnek. @@ -179,7 +177,6 @@ Zárolási mód módosítása Kapcsolódott kapcsolódott - Kapcsolódás kapcsolódott Társított hordozható eszköz kapcsolódott @@ -200,7 +197,6 @@ A partner és az összes üzenet törölve lesz – ez a művelet nem vonható vissza! A partnerei törlésre jelölhetnek üzeneteket; Ön majd meg tudja nézni azokat. Kapcsolódik az egyszer használható meghívón keresztül? - Kapcsolódás egy hivatkozáson vagy QR-kódon keresztül A kapcsolódási hivatkozás el lett távolítva Csak név Kapcsolódik a kapcsolattartási címen keresztül? @@ -219,7 +215,6 @@ Helyesbíti a nevet a következőre: %s? Időtúllépés kapcsolódáskor Kapcsolódik vele: %1$s? - Létrehozás Partnerbeállítások Kapcsolat Kapcsolat megszakítva @@ -240,7 +235,6 @@ törölt partner Törli a tag üzenetét? A csevegés fut - Egyszer használható meghívó létrehozása Törlés Új üzenetek ellenőrzése 10 percenként, legfeljebb 1 percen keresztül Adatbázis törlése @@ -312,7 +306,6 @@ Törli a hivatkozást? kapcsolódás Egyéni időköz - Kapcsolódás inkognitóban Csevegések Új profil létrehozása a számítógépes alkalmazásban. 💻 kapcsolódás (bejelentve) @@ -334,7 +327,6 @@ Elvetés Törli a partnert? Ürítés - Cím létrehozása, hogy az emberek kapcsolatba léphessenek Önnel. Biztonsági kódok összehasonlítása a partnerekével. Fájl-összehasonlítás Csevegések @@ -389,7 +381,6 @@ Csoportok felfedezése és csatlakozás %2$s %1$d üzenetet moderált Eltűnő üzenet - Ne hozzon létre címet Ne jelenjen meg újra SimpleX-zár kikapcsolása végpontok között titkosított @@ -437,7 +428,6 @@ Csoportprofil szerkesztése végpontok között titkosított hanghívás %d mp - Decentralizált Dekódolási hiba Kép szerkesztése Értesítések letiltása @@ -469,8 +459,6 @@ Hiba történt az ICE-kiszolgálók mentésekor Hiba Hiba - Hiba történt az XFTP-kiszolgálók betöltésekor - Hiba történt az SMP-kiszolgálók betöltésekor Hiba történt a hálózat konfigurációjának frissítésekor TCP életben tartása Kamera váltás @@ -497,7 +485,6 @@ Hiba történt a felhasználói adatvédelem frissítésekor Titkosítás Csoport nem található! - Hiba történt az SMP-kiszolgálók mentésekor Visszafejlesztés és a csevegés megnyitása A csoport inaktív Gyors és nem kell várni, amíg az üzenetküldő online lesz! @@ -563,7 +550,6 @@ Hiba történt a függőben lévő kapcsolat törlésekor Hiba történt a csevegési adatbázis importálásakor Hiba történt a kézbesítési jelentések engedélyezésekor! - Hiba történt az XFTP-kiszolgálók mentésekor A tagok küldhetnek egymásnak közvetlen üzeneteket. Hiba történt a tag eltávolításakor hívás vége @@ -660,10 +646,8 @@ Elrejtve: Hiba történt a partnerrel történő kapcsolat létrehozásában ICE-kiszolgálók (soronként egy) - beolvashatja a QR-kódot a videohívásban, vagy a partnere megoszthat egy meghívási hivatkozást.]]> Ha az alkalmazás megnyitásakor megadja ezt a jelkódot, az összes alkalmazásadat véglegesen el lesz távolítva! Ha nem tud személyesen találkozni, mutassa meg a QR-kódot egy videohívás közben, vagy ossza meg a hivatkozást. - mutassa meg a QR-kódot a videohívásban, vagy ossza meg a hivatkozást.]]> Megerősítés esetén az üzenetváltó-kiszolgálók látni fogják az IP-címét és a szolgáltatóját – azt, hogy mely kiszolgálókhoz kapcsolódik. A kép akkor érkezik meg, amikor a küldője befejezte annak feltöltését. QR-kód beolvasásával.]]> @@ -673,7 +657,6 @@ Számítógépek A markdown használata Csevegési profil létrehozása - Védett a kéretlen tartalmakkal szemben Hordozható eszközök leválasztása Különböző nevek, profilképek és átvitelelkülönítés. Elutasítás esetén a kérés küldője NEM kap értesítést. @@ -693,7 +676,6 @@ Nincsenek kézbesítési adatok moderált A tag el lesz távolítva a csoportból – ez a művelet nem vonható vissza! - Győződjön meg arról, hogy a megadott XFTP-kiszolgálók címei megfelelő formátumúak, soronként elkülönítettek, és nincsenek duplikálva. Nincs partner kiválasztva Nincsenek fogadott vagy küldött fájlok Megnyitás hordozható eszköz-alkalmazásban, majd koppintson a Kapcsolódás gombra az alkalmazásban.]]> @@ -732,7 +714,6 @@ k soha (új)]]> - Győződjön meg arról, hogy a megadott SMP-kiszolgálók címei megfelelő formátumúak, soronként elkülönítettek, és nincsenek duplikálva. Az onion kiszolgálók nem lesznek használva. perc Tudjon meg többet @@ -791,11 +772,9 @@ Hordozható eszköz társítása Értesítési szolgáltatás Csak a csoport tulajdonosai engedélyezhetik a hangüzenetek küldését. - A felhasználói profilok, partnerek, csoportok és üzenetek csak az eszközön vannak tárolva a kliensen belül. Érvénytelen átköltöztetési visszaigazolás Csak a csoport tulajdonosai módosíthatják a csoportbeállításokat. Nincsenek előzmények - Érvénytelen QR-kód Megjelölés olvasottként ÉLŐ Megjelölés olvasatlanként @@ -875,9 +854,7 @@ Szerepkör SimpleX kapcsolattartási cím Megállítás - Előre beállított kiszolgáló Új csevegés indítása - Bárki üzemeltethet kiszolgálókat. Megnyitás Protokoll időtúllépése titok @@ -892,7 +869,6 @@ Adatvédelem Profil SimpleX-címe Jelentse a fejlesztőknek. - Ön dönti el, hogy kivel beszélget. Az eltűnő üzenetek küldése le van tiltva. Csak Ön küldhet hangüzeneteket. Frissítés @@ -912,7 +888,6 @@ Csökkentett akkumulátor-használat Mentés és a partnerek értesítése Előnézet - SimpleX Chat használata Megosztás Fogadott üzenet Üdvözlőüzenet @@ -920,9 +895,7 @@ Csak a partnere kezdeményezhet hívásokat. Témák Túl sok videó! - Üdvözöljük! Önmegsemmisítő jelkód - (beolvasás vagy beillesztés a vágólapról) Várakozás a videóra Válasz Ez a saját egyszer használható meghívója! @@ -959,7 +932,6 @@ Kérje meg a partnerét, hogy engedélyezze a hangüzenetek küldését. Ön egy egyszer használható meghívót osztott meg A hivatkozás megnyitása a böngészőben gyengítheti az adatvédelmet és a biztonságot. A megbízhatatlan SimpleX-hivatkozások pirossal vannak kiemelve. - Saját ICE-kiszolgálók Ön elfogadta a kapcsolatot Elutasítás Partner nevének és az üzenet tartalmának megjelenítése @@ -976,7 +948,6 @@ Amikor elérhető Hangüzenet (%1$s) %s (jelenlegi) - Saját SMP-kiszolgáló Véletlen Megosztás a SimpleX partnerekkel Ön @@ -1075,15 +1046,12 @@ Kezelőfelület színei Adja meg a korábbi jelszót az adatbázis biztonsági mentésének visszaállítása után. Ez a művelet nem vonható vissza. Másodlagos szín - SOCKS proxy Mentés Újraindítás - SMP-kiszolgálók Videó SimpleX-címbeállítások mentése Újraegyeztetés Várakozás a videóra - Saját XFTP-kiszolgálók Videó kikapcsolva Privát fájlnevek Menti a beállításokat? @@ -1097,7 +1065,6 @@ Feloldja a tag letiltását? A kérés küldője törölte a kapcsolódási kérést. Érvénytelen adatbázis-jelmondat - Saját SMP-kiszolgálók A kézbesítési jelentések le vannak tiltva Adatbázismappa megnyitása egy egyszer használható meghívón keresztül @@ -1145,7 +1112,6 @@ Időszakos értesítések letiltva! A jelkód módosult! Akkor fut, amikor az alkalmazás meg van nyitva - Ez a QR-kód nem egy hivatkozás! Várakozás a fájlra simplexmq: v%s (%2s) Leválasztás @@ -1154,7 +1120,6 @@ A reakciók hozzáadása az üzenetekhez le van tiltva. Rendszer olvasatlan - Függőben Üdvözöljük %1$s! Eltávolítja a jelmondatot a Keystrore-ból? Feloldás @@ -1173,7 +1138,6 @@ Színek visszaállítása Mentés Váltás - A kapott hivatkozás beillesztése a partnerhez való kapcsolódáshoz… Beolvasás Port nyitása a tűzfalban hívás indítása… @@ -1181,7 +1145,6 @@ elküldve SOCKS proxy használata Élő üzenet küldése - Újraértelmezett adatvédelem Hangüzenet… Alkalmazás képernyőjének védelme QR-kód megjelenítése @@ -1200,7 +1163,6 @@ Felfedés Zárolási mód Fájl visszavonása - XFTP-kiszolgálók A fájlok és a médiatartalmak küldése le van tiltva. Fájl megosztása… Mentés @@ -1209,7 +1171,6 @@ Ön eltávolította őt: %1$s Jelmondat mentése és a csevegés megnyitása Menti a beállításokat? - Nincsenek felhasználói azonosítók. A közvetlen üzenetek küldése a tagok között le van tiltva. SOCKS proxy használata? Hangszóró kikapcsolva @@ -1274,9 +1235,7 @@ A jelenlegi csevegési adatbázis TÖRÖLVE és CSERÉLVE lesz az importáltra!\nEz a művelet nem vonható vissza – profiljai, partnerei, csevegési üzenetei és fájljai véglegesen törölve lesznek. Ötletek és javaslatok Figyelmeztetés: néhány adat elveszhet! - Koppintson ide az új csevegés indításához Várakozás a számítógép-alkalmazásra… - Az üzenetváltás jövője Módosítja a hálózati beállításokat? Várakozás a hordozható eszköz társítására: Biztonságos kapcsolat ellenőrzése @@ -1306,7 +1265,6 @@ Az alkalmazás elindításához vagy 30 másodpercnyi háttérben töltött idő után, az alkalmazáshoz való visszatéréshez hitelesítésre lesz szükség. Az üzenet az összes tag számára törölve lesz. A videó nem dekódolható. Próbálja ki egy másik videóval, vagy lépjen kapcsolatba a fejlesztőkkel. - Ez a szöveg a beállításokban érhető el A profilja el lesz küldve a partnere számára, akitől ezt a hivatkozást kapta. Az alkalmazás 1 perc után bezárható a háttérben. Ön meghívást kapott a csoportba @@ -1334,7 +1292,6 @@ különböző átköltöztetés az alkalmazásban/adatbázisban: %s / %s %1$s.]]> Profil felfedése - Ez nem egy érvényes kapcsolattartási hivatkozás! A végpontok közötti titkosítás ellenőrzéséhez hasonlítsa össze (vagy olvassa be a QR-kódot) a partnere eszközén lévő kóddal. A csevegési adatbázis legfrissebb verzióját CSAK egy eszközön kell használnia, ellenkező esetben előfordulhat, hogy az üzeneteket nem fogja megkapni valamennyi partnerétől. Ez a beállítás csak az Ön jelenlegi csevegési profiljában lévő üzenetekre vonatkozik @@ -1343,10 +1300,7 @@ A csatlakozás már folyamatban van a csoporthoz ezen a hivatkozáson keresztül. Ön meghívást kapott a csoportba A partnere a jelenleg támogatott legnagyobb (%1$s) fájlméretnél nagyobbat küldött. - A partnerei és az üzenetek (kézbesítés után) nem a SimpleX kiszolgálókon vannak tárolva. Üzenetek formázása a szövegbe szúrt speciális karakterekkel: - Megnyitás az alkalmazásban gombra.]]> - A csevegési profilja el lesz küldve\na partnere számára Egy olyan partnerét próbálja meghívni, akivel inkognitóprofilt osztott meg abban a csoportban, amelyben a fő profilja van használatban %1$s nevű csoporthoz.]]> Amikor az alkalmazás fut @@ -1362,15 +1316,10 @@ Akkor lesz kapcsolódva, amikor a partnerének az eszköze online lesz, várjon, vagy ellenőrizze később! Kéretlen üzenetek elrejtése. Onion kiszolgálók használata beállítást „Nemre”, ha a SOCKS proxy nem támogatja őket.]]> - Megoszthatja a címét egy hivatkozásként vagy egy QR-kódként – így bárki kapcsolódhat Önhöz. - Létrehozás később A profilja az eszközén van tárolva és csak a partnereivel van megosztva. A SimpleX kiszolgálók nem láthatják a profilját. Ön a következőre módosította %s szerepkörét: „%s” Csoportmeghívó elutasítva - Adatainak védelme érdekében a SimpleX külön azonosítókat használ minden egyes kapcsolatához. - (a megosztáshoz a partnerével) Csoportmeghívó elküldve - Frissíti az átvitelelkülönítési módot? Átvitelelkülönítés Nem fog több üzenetet kapni ebből a csoportból, de a csevegés előzményei megmaradnak. A csevegési adatbázis nem titkosított – állítson be egy jelmondatot annak védelméhez. @@ -1407,14 +1356,12 @@ Ön csatlakozott ehhez a csoporthoz %1$s nevű csoporthoz!]]> A hangüzenetek küldése le van tiltva ebben a csevegésben. - Ön irányítja csevegését! Kód ellenőrzése a számítógépen Az időzóna védelmének érdekében a kép-/hangfájlok UTC-t használnak. A csatlakozási kérése el lesz küldve ennek a csoporttagnak. Ha egy inkognitóprofilt oszt meg valamelyik partnerével, a rendszer ezt az inkognitóprofilt fogja használni azokban a csoportokban, ahová az adott partnere meghívja Önt. Már kért egy kapcsolódási kérést ezen a címen keresztül! Megoszthatja ezt a SimpleX-címet a partnereivel, hogy kapcsolatba léphessenek vele: %s. - Amikor az emberek kapcsolatot kérnek, Ön elfogadhatja vagy elutasíthatja azokat. Megjelenítendő üzenet beállítása az új tagok számára! Köszönet a felhasználóknak a Weblate-en való közreműködésért! A kézbesítési jelentések küldése az összes partnere számára engedélyezve lesz. @@ -1456,7 +1403,6 @@ A kézbesítési jelentések engedélyezve vannak %d csoportban A tag szerepköre a következőre fog módosulni: „%s”. A csoport összes tagja értesítést fog kapni. Profil és kiszolgálókapcsolatok - Egy üzenetváltó- és alkalmazásplatform, amely védi az adatait és biztonságát. Koppintson ide a profil aktiválásához. A kézbesítési jelentések le vannak tiltva %d partner számára Munkamenet kódja @@ -1484,10 +1430,8 @@ Az előző üzenet kivonata különbözik. Ezek a beállítások csak a jelenlegi csevegési profiljára vonatkoznak Várjon, amíg a fájl betöltődik a társított hordozható eszközről - GitHub-tárolónkban talál.]]> Hiba történt a tartalom megjelenítésekor Hiba történt az üzenet megjelenítésekor - Láthatóvá teheti a SimpleXbeli partnerei számára a beállításokban. Legfeljebb az utolsó 100 üzenet lesz elküldve az új tagok számára. A beolvasott QR-kód nem egy SimpleX-hivatkozás. A beillesztett szöveg nem egy SimpleX-hivatkozás. @@ -1827,9 +1771,6 @@ Az üzenet később is kézbesíthető, ha a tag aktívvá válik. Még nincs közvetlen kapcsolat, az üzenetet az adminisztrátor továbbítja. Hivatkozás megadása vagy QR-kód beolvasása - Konfigurált SMP-kiszolgálók - Egyéb SMP-kiszolgálók - Egyéb XFTP-kiszolgálók letiltva inaktív Nagyítás @@ -1875,7 +1816,6 @@ Feltöltött fájlok Letöltött töredékek Letöltött fájlok - Kiszolgáló-beállítások megnyitása Kiszolgáló címe Feltöltési hibák Visszaigazolva @@ -1886,7 +1826,6 @@ Feltöltött töredékek Elkészült Kapcsolódott kiszolgálók - Konfigurált XFTP-kiszolgálók Kapcsolódott Jelenlegi profil További részletek @@ -2163,7 +2102,6 @@ Másolhatja és csökkentheti az üzenet méretét a küldéshez. Adja hozzá a munkatársait a beszélgetésekhez. Üzleti cím - végpontok közötti titkosítással, a közvetlen üzenetek továbbá kvantumbiztos titkosítással is rendelkeznek.]]> Hogyan segíti az adatvédelmet Nincs háttérszolgáltatás Értesítések és akkumulátor diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/in/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/in/strings.xml index ea18b5e428..392c935575 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/in/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/in/strings.xml @@ -75,8 +75,6 @@ Gunakan profil penyamaran baru Profil Anda akan dikirim ke kontak yang menerima tautan ini. Anda akan terhubung ke semua anggota grup. - Hubungkan - Hubungkan penyamaran Membuka basis data… k Hubungkan melalui alamat kontak? @@ -137,7 +135,6 @@ Izinkan panggilan? Pesan baru Hanya kamu yang dapat mengirim pesan menghilang. - Tidak ada pengidentifikasi pengguna. Hanya pemilik grup yang dapat mengubah preferensi grup. dan %d peristiwa lainnya Peran baru anggota @@ -216,7 +213,6 @@ TIdak pernah Mati Hanya 10 video dapat dikirim pada saat bersamaan - Hanya perangkat klien yang menyimpan profil pengguna, kontak, grup, dan pesan. Hanya pemilik grup yang dapat mengaktifkan pesan suara. Seluruh pesan akan dihapus - ini tidak bisa dibatalkan! Izinkan turun versi @@ -322,7 +318,6 @@ Unduh diedit Obrolan - Selamat Datang! Chat dengan pengembang Setel nama kontak… Pengaturan @@ -373,15 +368,11 @@ Bersihkan verifikasi Konsol obrolan Server pesan - Server SMP Beri nilai aplikasi Bintang di GitHub Gunakan server SimpleX Chat? - Server SMP Anda - Server XFTP Kredensial Anda mungkin dikirim tidak terenkripsi. Username - Server XFTP Anda Gunakan server SimpleX Chat. Gunakan kredensial proxy yang berbeda untuk setiap koneksi. Kata sandi @@ -404,7 +395,6 @@ Tampilkan status pesan Terima otomatis Undang teman - Buat Nama tidak valid! Buat profil Masukkan nama Anda: @@ -417,8 +407,6 @@ berakhir Headphone Kesalahan saat menginisialisasi WebView. Perbarui sistem Anda ke versi baru. Mohon hubungi pengembang.\nKesalahan: %s - Anda pilih siapa yang dapat terhubung. - Kebal terhadap spam Buat profil Anda Buat koneksi pribadi Lewati @@ -534,9 +522,6 @@ Via peramban Gagal mengganti profil Buka tautan di peramban mengurangi privasi dan keamanan koneksi. Tautan SimpleX tidak tepercaya akan berwarna merah. - Gagal simpan server SMP - Pastikan alamat server SMP dalam format yang benar, pisahkan baris dan tidak terduplikasi. - Pastikan alamat server XFTP dalam format yang benar, pisahkan baris dan tidak terduplikasi. gagal terkirim belum dibaca Pesan dapat disampaikan kemudian jika anggota menjadi aktif. @@ -613,10 +598,7 @@ Statistik server akan direset - ini tidak dapat dibatalkan! Perbesar ukuran font. Sumber pesan tetap pribadi. - Siapa pun dapat menjadi pemegang server. - Terdesentralisasi Kesalahan saat menginisialisasi WebView. Pastikan Anda telah menginstal WebView dan arsitektur yang didukung adalah arm64.\nKesalahan: %s - Gunakan obrolan Bagaimana caranya Berkala Panggilan suara masuk @@ -658,7 +640,6 @@ Preferensi kontak diaktifkan diaktifkan untuk anda - \nTersedia di v5.1 Kirim pesan suara tidak diizinkan. Hingga 100 pesan terakhir dikirim ke anggota baru. Pesan suara @@ -696,7 +677,6 @@ Kunci SimpleX Bantuan Markdown Server media & berkas - Server Anda Alamat server ditetapkan Gunakan di koneksi baru Simpan server? @@ -712,7 +692,6 @@ Simpan kata sandi profil Kata sandi profil tersembunyi Mikrofon - Privasi didefinisikan ulang Hal yang mempengaruhi baterai Saat aplikasi sedang berjalan Notifikasi pribadi @@ -780,7 +759,6 @@ Tautan SimpleX Undangan 1-kali SimpleX via %1$s - Gagal simpan server XFTP Nama tampilan tidak valid! Gagal membuat profil! Kesalahan koneksi @@ -788,8 +766,6 @@ Gagal membuat pesan Waktu koneksi habis pengiriman tidak sah - Teks ini tersedia di pengaturan - Ketuk untuk memulai obrolan baru Anda diundang ke grup Gabung sebagai %s menghubungkan… @@ -820,12 +796,10 @@ Markdown dalam pesan Simpan server Tambah server - Tambah server prasetel Uji server gagal! Server uji Server uji Masukkan server manual - Server Prasetel Pindai kode QR server Beberapa server gagal dalam pengujian: Alamat server Anda @@ -870,7 +844,6 @@ Diaktifkan untuk %dh Alamat server tidak valid! - Server XFTP lainnya Gunakan kredensial proksi yang berbeda untuk setiap profil. Server penerusan %1$s gagal terhubung ke server tujuan %2$s. Coba lagi nanti. Cari atau tempel tautan SimpleX @@ -896,10 +869,7 @@ Pengaturan Anda Alamat SimpleX Anda Profil obrolan Anda - Server SMP dikonfigurasi - Server SMP lainnya Gunakan server - Server XFTP dikonfigurasi Periksa alamat server dan coba lagi. Tampilkan persentase Kontribusi @@ -979,7 +949,6 @@ Buat alamat ID Basis Data dan Opsi Isolasi Transport. panggilan tak terjawab - Anda dapat membuatnya terlihat oleh kontak SimpleX Anda melalui Pengaturan. Undang Hai!\nHubungi saya melalui SimpleX Chat: %s Konfirmasi kata sandi @@ -993,11 +962,9 @@ Panggilan pada layar terkunci: Speaker Izin dalam pengaturan - Perpesanan masa depan Temukan izin ini di pengaturan Android dan ubah secara manual. Earpiece Matikan - Server ICE Anda Server ICE WebRTC Jika Anda memasukkan kode sandi hapus otomatis saat membuka aplikasi: Ikon aplikasi @@ -1185,7 +1152,6 @@ Matikan (tetap ditimpa) Gagal memuat obrolan Gagal hapus kontak - Gagal memuat server SMP Gagal memuat obrolan Nama tampilan ini tidak valid. Silakan pilih nama lain. Pengirim mungkin telah hapus permintaan koneksi. @@ -1206,7 +1172,6 @@ Pengaturan ini untuk profil Anda saat ini Kirim tanda terima diaktifkan untuk %d kontak Kirim tanda terima dimatikan untuk %d kontak - Gagal memuat server XFTP Gagal memperbarui konfigurasi jaringan Mohon perbarui aplikasi dan hubungi pengembang. Anda sudah memiliki nama tampilan profil obrolan yang sama. Silakan pilih nama lain. @@ -1476,7 +1441,6 @@ Gagal hapus Perangkat Xiaomi: harap aktifkan Autostart di pengaturan sistem agar notifikasi berfungsi.]]> Hapus obrolan - Hubungkan via tautan / kode QR Profil acak baru akan dibagikan. Permintaan koneksi terkirim! Keamanan koneksi @@ -1540,7 +1504,6 @@ batal pratinjau tautan Tombol tutup Email - pindai kode QR dalam panggilan video, atau kontak Anda dapat bagikan tautan undangan.]]> Panduan Pengguna.]]> Aktifkan Ketika lebih dari satu operator diaktifkan, tidak satupun dari mereka memiliki metadata untuk mengetahui siapa yang berkomunikasi. @@ -1556,8 +1519,6 @@ Frasa sandi enkripsi basis data akan diperbarui dan disimpan di pengaturan. Frasa sandi enkripsi basis data akan diperbarui dan disimpan di Keystore. migrasi berbeda di aplikasi/basis data: %s / %s - tunjukkan kode QR dalam panggilan video, atau bagikan tautan.]]> - Jangan buat alamat Rincian Koneksi Terhubung ke ponsel @@ -1570,13 +1531,10 @@ Kapasitas terlampaui - penerima tidak menerima pesan yang dikirim sebelumnya. hanya dengan satu kontak - bagikan secara langsung atau melalui messenger apa pun.]]> Disalin ke papan klip - Buat tautan undangan satu-kali Saat ini maksimal ukuran berkas adalah %1$s. - Buka di ponsel.]]> Pengaturan alamat Tambahkan anggota tim Anda ke percakapan. Alamat bisnis - dengan enkripsi end-to-end, dengan keamanan post-quantum dalam pesan pribadi.]]> Buat tautan 1-kali Notifikasi dan baterai Tiada layanan latar belakang @@ -1586,14 +1544,12 @@ Bagaimana ini membantu privasi Lanjutkan Anda dapat konfigurasi server di pengaturan. - repositori GitHub kami.]]> Rincian tautan unduhan untuk setiap profil obrolan yang Anda miliki di aplikasi.]]> untuk setiap kontak dan anggota grup.\nHarap diperhatikan: jika Anda memiliki banyak koneksi, konsumsi baterai dan lalu lintas dapat jauh lebih tinggi dan beberapa koneksi mungkin gagal.]]> Mengunduh pembaruan aplikasi, jangan tutup aplikasi Mati Buat alamat SimpleX - Buat alamat agar orang dapat terhubung dengan Anda. Lanjutkan Hapus gambar Edit gambar @@ -1732,7 +1688,6 @@ Gagal memulai obrolan Mode samaran Gagal hapus basis data - Kode QR tidak valid Gagal enkripsi basis data Galat Impor @@ -1883,17 +1838,14 @@ Silakan hubungi admin grup. Memuat berkas Harap tunggu sementara berkas sedang dimuat dari ponsel yang terhubung - Tertunda Negosiasi ulang enkripsi? Negosiasi ulang Kirim pesan sementara Kirim Pindai kode QR - (pindai atau tempel dari papan klip) Izin Ditolak! Tandai dibaca tautan pratinjau gambar - Anda dapat bagikan alamat sebagai tautan atau kode QR - siapa pun dapat terhubung dengan Anda. Simpan Jadikan profil pribadi! Jalankan obrolan @@ -1905,14 +1857,12 @@ Hapus frasa sandi dari pengaturan? Simpan frasa sandi di pengaturan Diproxy - Tempel tautan yang Anda terima untuk terhubung dengan kontak… lainnya Kirim pesan langsung Pesan langsung! Kode QR Memindah Alamat server - Buka pengaturan server alamat kontak dihapus Putar dari daftar obrolan. Ponsel terhubung @@ -1939,7 +1889,6 @@ Mari bicara di SimpleX Chat Simpan dan beritahu kontak Simpan preferensi? - Anda dapat buat nanti Gabung ke grup? Bergabung dengan grup Minta kontak Anda untuk aktifkan panggilan. @@ -2008,18 +1957,12 @@ Untuk memulai obrolan baru Video Koneksi yang Anda terima akan dibatalkan! - Kode QR ini bukan tautan! Bunyikan Isolasi transport - Perbarui mode isolasi transport? Untuk melindungi alamat IP, routing pribadi menggunakan server SMP untuk mengirim pesan. Perlihat kesalahan internal Lihat panggilan API lambat - Kami tidak menyimpan kontak atau pesan Anda (setelah terkirim) di server. Profil, kontak, dan pesan terkirim Anda disimpan di perangkat Anda. - Platform perpesanan dan aplikasi yang melindungi privasi dan keamanan Anda. - Untuk melindungi privasi Anda, SimpleX gunakan ID terpisah untuk setiap kontak. - Proxy SOCKS Tingkatkan dan buka obrolan Ketuk untuk gabung ke samaran Anda memblokir %s @@ -2140,7 +2083,6 @@ Pesan suara (%1$s) Lihat kode keamanan Anda perlu mengizinkan kontak mengirim pesan suara agar dapat mengirimkannya. - (untuk dibagikan dengan kontak Anda) Ketuk untuk pindai Terima kasih telah memasang SimpleX Chat! Setel nama kontak @@ -2150,7 +2092,6 @@ Anda akan terhubung saat perangkat kontak Anda online, harap tunggu atau periksa nanti! Anda akan terhubung saat permintaan koneksi Anda diterima. Harap tunggu atau periksa nanti! Bagikan tautan 1-kali - Saat orang meminta untuk terhubung, Anda dapat terima atau menolaknya. Anda tidak akan kehilangan kontak jika menghapus alamat Anda nanti. Matikan? Hentikan obrolan? @@ -2165,7 +2106,6 @@ Perlihat profil Anda harus masukkan frasa sandi setiap aplikasi dibuka - frasa sandi tidak disimpan di perangkat. Server SMP - Profil obrolan Anda akan dikirim\nke kontak Anda Bagikan alamat Peran akan diubah menjadi %s. Anggota akan menerima undangan baru. Perbarui pengaturan jaringan? @@ -2192,14 +2132,12 @@ Profil Anda saat ini Anda menggunakan profil samaran untuk grup ini - untuk mencegah berbagi profil utama Anda, undang kontak tidak diizinkan Anda mengirim undangan grup - Tautan ini bukan tautan koneksi yang valid! Anda akan berhenti menerima pesan dari grup ini. Riwayat obrolan akan disimpan. Anda bergabung ke grup ini. Menghubungkan untuk undang anggota grup. Anda buka blokir %s Menunggu desktop… Ganti profil obrolan untuk undangan 1-kali. Untuk perlihat profil tersembunyi Anda, masukkan kata sandi lengkap di kolom pencarian di halaman Profil obrolan Anda. - Anda mengendalikan obrolan Anda! Untuk terima Perlihat Perbarui pengaturan akan menghubungkan ulang klien ke semua server. diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/it/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/it/strings.xml index 2f19777c2b..afaac45347 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/it/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/it/strings.xml @@ -14,7 +14,6 @@ Connettere via link una tantum? Entrare nel gruppo? Il tuo profilo verrà inviato al contatto da cui hai ricevuto questo link. - Connetti connesso errore in connessione @@ -46,8 +45,6 @@ Link gruppo SimpleX Link completo Via browser - Errore di salvataggio server SMP - Assicurati che gli indirizzi dei server SMP siano nel formato giusto, uno per riga e non doppi. Errore di aggiornamento della configurazione di rete Caricamento conversazione fallito Caricamento delle chat fallito @@ -143,13 +140,10 @@ invio fallito non letto Benvenuto/a %1$s! - Benvenuto/a! - Questo testo è disponibile nelle impostazioni Сhat Sei stato/a invitato/a in un gruppo Entra come %s in connessione… - Tocca per iniziare una conversazione Scrivi agli sviluppatori Non hai chat Condividi multimediale… @@ -182,7 +176,6 @@ Connesso Disconnesso Errore - In attesa Cambiare l\'indirizzo di ricezione\? Vedi codice di sicurezza Verifica codice di sicurezza @@ -247,7 +240,6 @@ Accettare la richiesta di connessione\? Accetta in incognito Tutti i messaggi verranno eliminati, non è reversibile! I messaggi verranno eliminati SOLO per te. - Aggiungi server preimpostati Aggiungi server Impostazioni di rete avanzate Riguardo SimpleX @@ -263,7 +255,6 @@ 1 mese Errore nell\'importazione del database della chat Nome completo del gruppo: - scansionare il codice QR nella videochiamata, oppure il tuo contatto può condividere un link di invito.]]> Backup dei dati dell\'app L\'archivio chiavi di Android è usato per memorizzare in modo sicuro la password; permette il funzionamento del servizio di notifica. Permetti ai tuoi contatti di inviare messaggi vocali. @@ -294,9 +285,7 @@ Svuota chat Svuotare la chat\? Svuota - Connetti via link / codice QR Copiato negli appunti - Crea link di invito una tantum Crea gruppo segreto Scansiona un codice QR.]]> Dalla Galleria @@ -310,7 +299,6 @@ Eliminare la connessione in attesa\? Email aiuto - mostra il codice QR nella videochiamata, oppure condividi il link.]]> Console della chat Annulla la verifica Connetti @@ -338,7 +326,6 @@ connesso connessione… connessione chiamata… - Crea Crea profilo Elimina immagine Nome del profilo: @@ -352,7 +339,6 @@ Buono per la batteria. L\'app cerca messaggi ogni 10 minuti. Potresti perdere chiamate o messaggi urgenti.]]> Chiamata già terminata! Crea il tuo profilo - Decentralizzato Chiamata crittografata e2e Videochiamata crittografata e2e terminata @@ -522,18 +508,15 @@ (memorizzato solo dai membri del gruppo) Autorizzazione negata! Rifiuta - (scansiona o incolla dagli appunti) Scansiona un codice QR Inizia una nuova conversazione Tocca il pulsante Grazie per aver installato SimpleX Chat! Per connettersi via link - (da condividere con il tuo contatto) Per iniziare una nuova chat Fotocamera connetterti con gli sviluppatori di SimpleX Chat per porre domande e ricevere aggiornamenti.]]> Link non valido! - Codice QR non valido immagine di anteprima link Segna come già letto Segna come non letta @@ -547,8 +530,6 @@ Mostra codice QR La connessione che hai accettato verrà annullata! Il contatto con cui hai condiviso questo link NON sarà in grado di connettersi! - Questo non è un link di connessione valido! - Questo codice QR non è un link! Riattiva notifiche vuole connettersi con te! Logo di SimpleX @@ -556,8 +537,6 @@ Squadra di SimpleX Hai accettato la connessione Hai invitato il contatto - Il tuo profilo di chat verrà inviato -\nal tuo contatto Il tuo contatto deve essere in linea per completare la connessione. \nPuoi annullare questa connessione e rimuovere il contatto (e riprovare più tardi con un link nuovo). Verrai connesso/a quando la tua richiesta di connessione verrà accettata, attendi o controlla più tardi! @@ -569,7 +548,6 @@ Segna come verificato/a Link di invito una tantum Incolla - Server preimpostato Indirizzo server preimpostato Salva i server Scansiona codice @@ -583,7 +561,6 @@ SimpleX Lock %s non è verificato/a %s è verificato/a - Server SMP Alcuni server hanno fallito il test: Prova server Prova i server @@ -591,8 +568,6 @@ Per verificare la crittografia end-to-end con il tuo contatto, confrontate (o scansionate) il codice sui vostri dispositivi. Usa per connessioni nuove Usa il server - Apri nell\'app mobile.]]> - Il tuo server L\'indirizzo del tuo server Il tuo indirizzo SimpleX Se confermi, i server di messaggistica saranno in grado di vedere il tuo indirizzo IP e il tuo fornitore, a quali server ti stai connettendo. @@ -618,7 +593,6 @@ Stai usando i server di SimpleX Chat. Quando disponibili I tuoi server ICE - I tuoi server SMP corsivo chiamata persa risposta ricevuta… @@ -631,36 +605,23 @@ segreto avvio… barrato - La piattaforma di messaggistica che protegge la tua privacy e sicurezza. Il profilo è condiviso solo con i tuoi contatti. in attesa di risposta… in attesa di conferma… - Non memorizziamo nessuno dei tuoi contatti o messaggi (una volta recapitati) sui server. Puoi usare il markdown per formattare i messaggi: - Sei tu a controllare la tua chat! Il tuo profilo attuale Il tuo profilo, i contatti e i messaggi recapitati sono memorizzati sul tuo dispositivo. Il tuo profilo è memorizzato sul tuo dispositivo e condiviso solo con i tuoi contatti. I server di SimpleX non possono vedere il tuo profilo. Ignora - Immune allo spam Chiamata in arrivo Videochiamata in arrivo Istantaneo Come influisce sulla batteria Crea una connessione privata - Solo i dispositivi client memorizzano i profili utente, i contatti, i gruppi e i messaggi. - Chiunque può installare i server. Incolla il link che hai ricevuto - Sei tu a decidere chi può connettersi. Periodico - Privacy ridefinita Notifiche private - repository GitHub.]]> Rifiuta - Nessun identificatore utente. - Il futuro dei messaggi - Per proteggere la tua privacy, SimpleX usa ID separati per ciascuno dei tuoi contatti. - Usa la chat videochiamata videochiamata (non crittografata e2e) Quando l\'app è in esecuzione @@ -690,7 +651,6 @@ Il server relay viene usato solo se necessario. Un altro utente può osservare il tuo indirizzo IP. %1$d messaggio/i saltato/i Le tue chiamate - I tuoi server ICE La tua privacy Importa Importare il database della chat\? @@ -705,7 +665,6 @@ Invia le anteprime dei link Imposta la password per esportare Impostazioni - Proxy SOCKS Ferma Fermare la chat\? Ferma la chat per esportare, importare o eliminare il database della chat. Non potrai ricevere e inviare messaggi mentre la chat è ferma. @@ -897,7 +856,6 @@ Solo dati del profilo locale Messaggi File e multimediali - Aggiornare la modalità di isolamento del trasporto\? Tutte le chat e i messaggi verranno eliminati. Non è reversibile! Profilo di chat per ogni contatto e membro del gruppo .\n Nota: : se hai molte connessioni, il consumo di batteria e traffico può essere notevolmente superiore e alcune connessioni potrebbero fallire.]]> @@ -1018,15 +976,11 @@ Il video verrà ricevuto quando il tuo contatto sarà in linea, attendi o controlla più tardi! In attesa del video In attesa del video - Errore nel caricamento dei server XFTP - Errore nel salvataggio dei server XFTP Il server richiede l\'autorizzazione per l\'invio, controlla la password. Confronta file Crea file Scarica file Invia file - Server XFTP - I tuoi server XFTP Impostazioni proxy SOCKS Usa proxy SOCKS Host @@ -1034,8 +988,6 @@ porta %d Usa gli host .onion su No se il proxy SOCKS non li supporta.]]> Elimina file - Errore nel caricamento dei server SMP - Assicurati che gli indirizzi del server XFTP siano nel formato corretto, uno per riga e non doppi. Autenticazione fallita Inserimento del codice di accesso Modalità di SimpleX Lock @@ -1093,8 +1045,6 @@ Solo il tuo contatto può effettuare chiamate. Proibisci le chiamate audio/video. Chiamate audio/video - " -\nDisponibile nella v5.1" Consenti ai tuoi contatti di chiamarti. Codice di accesso dell\'app Veloce e senza aspettare che il mittente sia in linea! @@ -1106,12 +1056,10 @@ Cambia i profili di chat Maggiori informazioni Per connettervi, il tuo contatto può scansionare il codice QR o usare il link nell\'app. - Quando le persone chiedono di connettersi, puoi accettare o rifiutare. Indirizzo SimpleX Colori dell\'interfaccia I tuoi contatti resteranno connessi. Aggiungi l\'indirizzo al tuo profilo, in modo che i tuoi contatti di SimpleX possano condividerlo con altre persone. L\'aggiornamento del profilo verrà inviato ai tuoi contatti di SimpleX. - Crea un indirizzo per consentire alle persone di connettersi con te. Crea indirizzo SimpleX Condividi con i contatti di SimpleX Condividere l\'indirizzo con i contatti di SimpleX? @@ -1121,7 +1069,6 @@ \nConnettiti a me tramite SimpleX Chat: %s Invita amici Salva le impostazioni dell\'indirizzo SimpleX - Puoi crearlo più tardi Condividi indirizzo… Inserisci il messaggio di benvenuto… Anteprima @@ -1144,7 +1091,6 @@ Sfondo Continua Errore di impostazione dell\'indirizzo - Non creare un indirizzo Personalizza il tema Tema scuro Se non potete incontrarvi di persona, mostra il codice QR in una videochiamata o condividi il link. @@ -1155,7 +1101,6 @@ Smettere di condividere l\'indirizzo\? Salvare le impostazioni\? Non perderai i contatti se in seguito elimini il tuo indirizzo. - Puoi condividere il tuo indirizzo come link o codice QR: chiunque può connettersi a te. Apertura del database… Cambia modalità di autodistruzione Attiva il codice di autodistruzione @@ -1336,13 +1281,11 @@ Questo gruppo ha più di %1$d membri, le ricevute di consegna non vengono inviate. Connettersi direttamente\? La richiesta di connessione verrà inviata a questo membro del gruppo. - Connetti in incognito Usa il profilo attuale Usa nuovo profilo in incognito Consenti Apri impostazioni app L\'app potrebbe venire chiusa dopo 1 minuto in secondo piano. - Incolla il link che hai ricevuto per connetterti con il contatto… Verrà condiviso il tuo profilo %1$s. Verrà condiviso un nuovo profilo casuale. Disattiva le notifiche @@ -1514,7 +1457,6 @@ Apri porta nel firewall errore di visualizzazione del contenuto errore di visualizzazione del messaggio - Puoi renderlo visibile ai tuoi contatti SimpleX nelle impostazioni. La cronologia non viene inviata ai nuovi membri. Riprova Fotocamera non disponibile @@ -1903,7 +1845,6 @@ Eliminato Errori di eliminazione File scaricati - Apri impostazioni server Protetto Indirizzo server Dimensione @@ -1916,8 +1857,6 @@ La versione del server non è compatibile con la tua app: %1$s. Membro inattivo Il messaggio può essere consegnato più tardi se il membro diventa attivo. - Server SMP configurati - Altri server SMP Mostra percentuale inattivo Zoom @@ -1935,7 +1874,6 @@ Sessioni di trasporto Tutti i profili tentativi - Server XFTP configurati Completato Server connessi disattivato @@ -1952,7 +1890,6 @@ Partendo da %s. \nTutti i dati sono privati, nel tuo dispositivo. Ancora nessuna connessione diretta, il messaggio viene inoltrato dall\'amministratore. Non sei connesso/a a questi server. L\'instradamento privato è usato per consegnare loro i messaggi. - Altri server XFTP Server precedentemente connessi Riprova più tardi. Beta @@ -2203,7 +2140,6 @@ Dispositivi Xiaomi: attiva l\'avvio automatico nelle impostazioni di sistema per fare funzionare le notifiche.]]> Aggiungi i membri del tuo team alle conversazioni. Indirizzo di lavoro - cifrati end-to-end, con sicurezza quantistica nei messaggi diretti.]]> Controlla i messaggi ogni 10 minuti Come aiuta la privacy Invita in chat diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/iw/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/iw/strings.xml index a2113482d9..e42232f93a 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/iw/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/iw/strings.xml @@ -17,7 +17,6 @@ אפשר כל ההודעות יימחקו – לא ניתן לבטל זאת! ההודעות יימחקו רק עבורך. אשר זהות נסתרת - הוסף שרתים מוגדרים מראש הוסף שרת לגשת לשרתים דרך פרוקסי SOCKS בפורט %d\? הפרוקסי חייב לפעול לפני הפעלת אפשרות זו. הגדרות רשת מתקדמות @@ -85,8 +84,6 @@ מזהה הודעה שגוי קבל אוטומטית תמונות שימו לב: לא ניתן יהיה לשחזר או לשנות את הסיסמה אם תאבדו אותה.]]> - " -\nזמין מ־v5.1" גם אתם וגם איש הקשר יכולים לשלוח הודעות קוליות. גם אתם וגם איש הקשר יכולים לבצע שיחות. אשר אוטומטית בקשות ליצירת קשר. @@ -117,7 +114,6 @@ השיחה הסתיימה %1$s בטל תצוגה מקדימה של קבצים להתחבר באמצעות קישור ליצירת קשר? - התחבר להצטרף לקבוצה? מחובר מתחבר @@ -197,7 +193,6 @@ להתחבר דרך קישור חד-פעמי? איש הקשר כבר קיים איש הקשר וכל ההודעות יימחקו – לא ניתן לבטל זאת! - התחברות באמצעות קישור / קוד QR התחברות באמצעות קישור איש הקשר מאפשר איש קשר מוסתר: @@ -211,12 +206,10 @@ העתק סמל מידע נוסף הועתק ללוח - צור קישור הזמנה חד־פעמי צור קבוצה סודית תרומה גרסת ליבה: v%s צור כתובת - צור צור פרופיל יצירת הפרופיל שלך צור קישור קבוצה @@ -246,8 +239,6 @@ מחק מחק מחק שרת - צרו כתובת כדי לאפשר לאנשים להתחבר אליכם. - מבוזר מסד הנתונים מוצפן באמצעות סיסמה אקראית. אנא שנו אותה לפני הייצוא. מחק פרופיל צ׳אט ברירת מחדל (%s) @@ -317,7 +308,6 @@ נעילת המכשיר אינה מופעלת. ניתן להפעיל את נעילת SimpleX, לאחר שתפעילו את נעילת המכשיר. %d קבצים בגודל כולל של %s שגיאה - שגיאה בטעינת שרתי SMP שגיאה ביצירת פרופיל! שם תצוגה כבר קיים! שגיאה ביצירת כתובת @@ -353,7 +343,6 @@ שגיאה בשינוי כתובת שגיאה במחיקת פרופיל משתמש השבתת נעילת SimpleX - לא ליצור כתובת מושבת הודעה כפולה שגיאה במחיקת מסד הנתונים של הצ׳אט @@ -399,7 +388,6 @@ הזינו הודעת פתיחה… שגיאה במחיקת איש קשר שגיאה במחיקת חיבור איש קשר ממתין - שגיאה בטעינת שרתי XFTP שגיאה בשליחת הודעה שגיאה בקבלת קובץ שגיאה בשמירת שרתי ICE @@ -410,8 +398,6 @@ שגיאה בשמירת קובץ יציאה ללא שמירה שגיאה בעצירת צ׳אט - שגיאה בשמירת שרתי SMP - שגיאה בשמירת שרתי XFTP שגיאה בהחלפת פרופיל! שגיאה בעדכון תצורת הרשת טעינת הצ׳אט נכשלה @@ -453,7 +439,6 @@ הקובץ יימחק מהשרתים. הפוך מצלמה עזרה - הציגו את קוד ה־QR בשיחת וידאו, או שתפו את הקישור.]]> איך איך להשתמש בשרתים שלך שרתי ICE (אחד בכל שורה) @@ -473,7 +458,6 @@ מוסתר הסתר איש קשר והודעה הסתר - לסרוק את קוד ה־QR בשיחת וידאו, או שאיש הקשר שלך ישתף קישור הזמנה.]]> אם לא ניתן להיפגש פנים אל פנים, הציגו את קוד ה־QR בשיחת וידאו, או שתפו את הקישור. איך להשתמש בזה היי! @@ -504,7 +488,6 @@ התעלם מיד ייבא מסד נתונים - חסין מפני ספאם לייבא מסד נתונים של צ׳אט\? תמונה נשלחה התמונה תתקבל כאשר איש הקשר יסיים להעלות אותה. @@ -541,7 +524,6 @@ התראות מיידיות התראות מיידיות! קישור לא תקין! - קוד QR לא תקין קוד אבטחה שגוי! מיידית שיחת שמע נכנסת @@ -576,8 +558,6 @@ עזוב הפוך את הפרופיל לפרטי! הודעה חיה - ודאו שכתובות שרתי ה־SMP הן בפורמט הנכון, מופרדות בשורה ולא משוכפלות. - ודאו שכתובות שרתי ה־XFTP הן בפורמט הנכון, מופרדות בשורה ולא משוכפלות. התחבר באמצעות האישור שלך למדו עוד עזרה במרקדאון @@ -662,7 +642,6 @@ \nשימו לב: לא תוכלו להתחבר לשרתים ללא כתובת .onion. לא ייעשה שימוש במארחי Onion. שיחה שלא נענתה - הצפנה מקצה־לקצה דו־שכבתית.]]> ללא הצפנה מקצה־לקצה שיחה שלא נענתה קוד גישה חדש @@ -730,10 +709,6 @@ אנא צרו קשר עם מנהל הקבוצה. אנא בקשו מאיש הקשר שלכם לאפשר שליחת הודעות קוליות. שומר מקום לתמונת פרופיל - שרת מוגדר מראש - פרטיות מוגדרת מחדש - אנשים יכולים להתחבר אליכם רק דרך הקישורים שאתם משתפים. - כל אחד יכול לארח שרתים. תקופתי נא להזין את הסיסמה הקודמת לאחר שחזור גיבוי מסד הנתונים, לא ניתן לבטל פעולה זו. לאסור מחיקה בלתי הפיכה של הודעות. @@ -743,7 +718,6 @@ ייתכן שטביעת האצבע של התעודה בכתובת השרת שגויה פתיחת מסוף צ׳אט שנה פרופילי צ׳אט - ממתין כתובת שרת מוגדר מראש סיסמה להצגה התראות פרטיות @@ -786,7 +760,6 @@ דחיה מדריך למשתמש.]]> דרגו את האפליקציה - GitHub repository שלנו.]]> יבוצע שימוש בשרת ממסר רק במידת הצורך. גורם אחר יכול לצפות בכתובת ה־IP שלך. שרת ממסר מגן על כתובת ה־IP שלך, אך הוא יכול לראות את משך השיחה. שיחה נדחתה @@ -853,7 +826,6 @@ הצג בטל קובץ שליחה נכשלה - (סירקו או הדביקו מהלוח) שלח סירקו קוד אבטחה מהאפליקציה של איש הקשר שלך. השמדה עצמית @@ -900,7 +872,6 @@ נשלח שלחו שאלות ורעיונות בדיקת השרתים נכשלה! - פרוקסי SOCKS נשלח ב: %s הגדרת שם איש קשר… שלח הודעה @@ -967,7 +938,6 @@ לעצור קבלת קובץ\? לשנות כתובת קבלה\? כתובת SimpleX - שרתי SMP שתף עם אנשי קשר הצג רמקול כבוי @@ -989,7 +959,6 @@ בזכות המשתמשים – תרמו באמצעות Weblate! בזכות המשתמשים – תרמו באמצעות Weblate! בזכות המשתמשים – תרמו באמצעות Weblate! - הקישו כדי להתחיל צ׳אט חדש בדוק שרת בדוק שרתים הקישו על הכפתור @@ -1003,20 +972,15 @@ האפליקציה בודקת הודעות חדשות מעת לעת - היא משתמשת בכמה אחוזים מהסוללה ביום. האפליקציה לא משתמשת בהתראות דחיפה - נתונים מהמכשיר שלך לא נשלחים לשרתים. התפקיד ישתנה ל־"%s". כל חברי הקבוצה יקבלו הודעה על כך. כדי להתחבר באמצעות קישור - פלטפורמת ההודעות והיישומים המגנה על הפרטיות והאבטחה שלך. המזהה של ההודעה הבאה שגוי (קטן או שווה להודעה הקודמת). \nזה יכול לקרות בגלל באג כלשהו או כאשר החיבור נפגע. ערכת נושא מסד הנתונים אינו פועל כראוי. הקישו למידע נוסף - טקסט זה זמין בהגדרות יותר מדי תמונות! תודה שהתקנתם את SimpleX Chat! - קישור זה אינו קישור חיבור תקין! צבעי ממשק התפקיד ישתנה ל־"%s". החבר יקבל הזמנה חדשה. השרתים לחיבורים חדשים של פרופיל הצ׳אט הנוכחי שלך - הפלטפורמה הראשונה ללא כל מזהי משתמש - פרטית בעיצובה. - הדור הבא של תקשורת פרטית הגיבוב של ההודעה הקודמת שונה. לא ניתן לבטל פעולה זו - ההודעות שנשלחו והתקבלו לפני הזמן שנבחר יימחקו. זה עשוי להימשך מספר דקות. הקבוצה הזו כבר לא קיימת. @@ -1025,7 +989,6 @@ כתובת הקבלה תשתנה לשרת אחר. שינוי הכתובת יושלם לאחר שהשולח יתחבר לאינטרנט. החיבור שאישרת יבוטל! איש הקשר שאיתו שיתפת את הקישור הזה לא יוכל להתחבר! - קוד QR זה אינו קישור! כדי להתחבר, איש הקשר שלך יכול לסרוק קוד QR או להשתמש בקישור באפליקציה. מחרוזת טקסט זו אינה קישור חיבור! הפרופיל משותף רק עם אנשי הקשר שלך. @@ -1036,7 +999,6 @@ הניסיון לשנות את סיסמת מסד הנתונים לא הושלם. כותרת הקבוצה מבוזרת לחלוטין - היא גלויה רק לחברי הקבוצה. - כדי לשמור על הפרטיות, במקום מזהי משתמש הקיימים בכל הפלטפורמות האחרות, ל־SimpleX יש מזהים לתורי הודעות, נפרדים עבור כל אחד מאנשי הקשר שלך. משתמש בשרתי SimpleX Chatז מנסה להתחבר לשרת המשמש לקבלת הודעות מאיש קשר זה. אלא אם איש הקשר שלכם מחק את החיבור או שהקישור הזה כבר היה בשימוש, זה עשוי להיות באג - אנא דווחו על כך. \nכדי להתחבר, אנא בקשו מאיש הקשר שלכם ליצור קישור חיבור נוסף ובידקו שיש לכם חיבור יציב לרשת. @@ -1055,12 +1017,10 @@ שליחה לא מורשית לא נקרא אימות קוד אבטחה - (כדי לשתף עם איש הקשר שלך) כדי להתחיל צ׳אט חדש השתמש עבור חיבורים חדשים כדי לאמת הצפנה מקצה־לקצה עם איש הקשר שלכם, יש להשוות (או לסרוק) את הקוד במכשירים שלכם. פרופילי צ׳אט - לעדכן מצב בידוד תעבורה\? מנסה להתחבר לשרת המשמש לקבלת הודעות מאיש קשר זה (שגיאה: %1$s). פורמט הודעה לא ידוע דרך הדפדפן @@ -1069,7 +1029,6 @@ להשתמש בשרתי SimpleX Chat\? להשתמש בחיבור ישיר לאינטרנט\? כדי לחשוף את הפרופיל המוסתר שלכם, הזינו סיסמה מלאה בשדה חיפוש בדף פרופילי צ׳אט. - שימוש בצ׳אט עדכן שגיאת מסד נתונים לא ידועה: %s עידכן את פרופיל הקבוצה @@ -1083,7 +1042,6 @@ בטל השתקה ממתין לאישור… ממתין למענה… - איננו מאחסנים את אנשי הקשר או ההודעות שלך (לאחר המסירה) בשרתים. SimpleX אתם באמצעות קישור לכתובת איש קשר @@ -1110,7 +1068,6 @@ אתם כבר מחוברים ל־%1$s. שירות SimpleX Chat לא ניתן היה לאמת אתכם; אנא נסו שוב. - ברוכים הבאים! ברוכ/ה הבא/ה %1$s! הוזמנת לקבוצה ממתין לתמונה @@ -1137,7 +1094,6 @@ הודעה קולית אישרת את החיבור סמל SimpleX - שרתי XFTP דילג על %1$d הודעות. סיסמת מסד נתונים שגויה הוזמנת לקבוצה @@ -1153,12 +1109,7 @@ ממתין לקובץ הודעות קוליות אסורות! הזמנת את איש הקשר שלך - באפשרותכם לשתף את הכתובת שלכם כקישור או כקוד QR – כל אחד יכול להתחבר אליכם. - כאשר אנשים מבקשים להתחבר, באפשרותך לקבל או לדחות זאת. - פתח באפליקציה.]]> כשזמין - תוכלו ליצור אותה מאוחר יותר - אתם שולטים בצ׳אט שלכם! באפשרותך להשתמש במרקדאון כדי לעצב הודעות: כאשר האפליקציה פועלת %1$s רוצה שתתחברו דרך @@ -1189,15 +1140,12 @@ הצ׳אטים איש הקשר שלך שלח קובץ גדול יותר מהגודל המרבי הנתמך כעת (%1$s). איש הקשר שלך צריך להיות מקוון כדי שהחיבור יושלם.\nניתן לבטל חיבור זה ולהסיר את איש הקשר (ולנסות מאוחר יותר עם קישור חדש). - פרופיל הצ׳אט שלך יישלח -\nלאיש הקשר שלך מסד הנתונים שלך דחית את ההזמנה לקבוצה מסד הנתונים הנוכחי שלך יימחק ויוחלף במסד הנתונים המיובא. \nלא ניתן לבטל פעולה זו – הפרופיל, אנשי הקשר, ההודעות והקבצים שלך ייאבדו באופן בלתי הפיך. הפרופיל הנוכחי שלך אנשי הקשר שלך יישארו מחוברים. - שרתי ה־ICE שלך אתם תהיו מחוברים כאשר בקשת החיבור תאושר, אנא חכו או בידקו מאוחר יותר! הפרופיל שלך יישלח לאיש הקשר ממנו קיבלת קישור זה. תתחבר לכל חברי הקבוצה. @@ -1210,16 +1158,13 @@ הפרטיות שלך תידרשו לבצע אימות כאשר תפעילו או תחזרו לאפליקציה לאחר 30 שניות ברקע. ההגדרות שלך - השרת שלך כתובת השרת שלך - שרתי XFTP שלך שלחת הזמנה לקבוצה שיתפת קישור חד־פעמי אתם תהיו מחוברים לקבוצה כאשר המכשיר של מארח הקבוצה יהיה מקוון, אנא חכו או בידקו מאוחר יותר! אתם תהיו מחוברים כאשר המכשיר של איש הקשר שלך יהיה מקוון, אנא חכו או בידקו מאוחר יותר! לא תאבדו את אנשי הקשר שלכם אם תמחקו מאוחר יותר את הכתובת שלכם. כתובת SimpleX שלך - שרתי SMP שלך הפרופיל שלך מאוחסן במכשירך ומשותף רק עם אנשי הקשר שלך.\nשרתי SimpleX אינם יכולים לראות את הפרופיל שלך. הפרופיל, אנשי הקשר וההודעות שנמסרו מאוחסנים במכשיר שלך. אתם תפסיקו לקבל הודעות מקבוצה זו. היסטוריית הצ׳אט תישמר. @@ -1309,14 +1254,12 @@ גם אם הוא מושבת בשיחה. שימרו על הקשרים שלכם בחר קובץ - התחבר בזהות נסתרת השתמש בפרופיל הנוכחי השתמש בפרופיל זהות נסתרת חדש השבת התראות פתח את הגדרות האפליקציה ללא שיחות ברקע ישותף פרופיל אקראי חדש. - הדבק את הקישור שקיבלת כדי להתחבר לאיש הקשר שלך… הפרופיל שלך %1$s ישותף. קבלות מושבתות %s :%s @@ -1396,7 +1339,6 @@ פתח מסך העברה הרחב הקוד שסרקת אינו קוד QR של קישור SimpleX. - תוכל להפוך אותו לגלוי לאנשי הקשר שלך ב-SimpleX דרך ההגדרות. שם לא חוקי! הגדר סיסמא לא ידוע @@ -1822,7 +1764,6 @@ שגיאה בהתחברות לשרת %1$s, אנא נסה מאוחר יותר אין עדיין חיבור ישיר, ההודעה תעובר ע"י מנהל. חבר לא פעיל - שרתי XFTP אחרים הצג אחוזים מושבת יציבה @@ -1872,7 +1813,6 @@ נשלח דרך פרוקסי קבצים שהורדו שגיאות בהורדה - פתח הגדרות שרת כתובת שרת חריגה מהקיבולת - הנמען לא קיבל הודעות שנשלחו בעבר. בדוק עבור עדכונים @@ -1889,7 +1829,6 @@ קישורי SimpleX לא מאופשרים בקבוצה הזו. סרוק/ הדבק קישור אנא נסה מאוחר יותר - שרתי SMP אחרים אפס הועלה סטטיסטיקה מפורטת @@ -1957,7 +1896,6 @@ %s.]]> מכשירי שיואמי: אנא תאפשר הפעלה אוטומטית בהגדרות הטלפון שלך כדי שההתראות על הודעות חדשות יפעלו.]]> %1$s ההודעות לא הועברו. - מוצפנים מקצה לקצה, עם אבטחה פוסט-קוונטית בהודעות ישירות.]]> טישטוש עסקי %s, קבל את תנאי השימוש.]]> diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/ja/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/ja/strings.xml index c28136d201..e5c425e7d7 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/ja/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/ja/strings.xml @@ -3,7 +3,6 @@ 1日 1週間 受けた通話 - 既存サーバを追加 管理者 管理者はグループの参加リンクを発行できます。 ネットワーク詳細設定 @@ -98,7 +97,6 @@ %d分 グループのリンク k - 接続 接続中 エラー 接続待ち @@ -121,7 +119,6 @@ 削除する ファイルを保存しました 連絡先を削除しますか? - リンク・QRコード経由で繋がる 検証済みにマーク 使い方 必須 @@ -137,7 +134,6 @@ グループリンク発行にエラー発生 役割変更にエラー発生 チャットデータベースの書き出しでエラー発生 - SMPサーバ保存でエラー発生 ICEサーバ保存でエラー発生 ネットワーク設定の更新にエラー発生 ファイル @@ -151,14 +147,12 @@ グループのプロフィールが更新されました。 連絡先とメッセージ内容をプライベートにする。 通知の常時受信 - SMPサーバのアドレスを正しく1行ずつに分けて、重複しないように、形式もご確認ください。 WebRTC ICEサーバのアドレスを正しく1行ずつに分けて、重複しないように、形式もご確認ください。 通話中 電池消費がより高い!非アクティブ時でもバックグラウンドのサービスが常に稼働します(着信してすぐに通知が出ます)。]]> 発信中 通話終了 %1$s 通話が終了しました。 - ビデオ通話中にQRコードを見せてもらうか、招待リンクを送ってもらえば相手に繋がります。]]> メンバーをグループから除名する (※元に戻せません※)! 通話をロック画面に表示 リンクのプレビューを中止 @@ -167,7 +161,6 @@ ファイル受信ができません。 連絡先を招待できません! 変更 - ビデオ通話にてQRコードを見せるか、招待リンクを送って、相手に繋がります。]]> あなたのアドレスを変えました。 アドレスを変更しています… チャットのデータベース @@ -217,7 +210,6 @@ オニオンのホストが利用可能時に使われます。 オニオンのホストが使われません。 画像を1回で最大10枚を送信できます。 - 2層エンドツーエンド暗号化で送信されたプロフィール、連絡先、グループ、メッセージは、クライント端末にしか保存されません。]]> グループ設定を変えられるのはグループのオーナーだけです。 音声メッセージを利用可能に設定できるのはグループのオーナーだけです。 プロフィールを作成する @@ -256,13 +248,11 @@ TCPキープアライブを有効にする メール 設定メニューでロック画面からの通話を有効にできます。 - あなたと繋がることができるのは、あなたからリンクを頂いた方のみです。 仮のプロフィール画像 QRコード リンクが正しいかどうかご確認ください。または、連絡相手にもう一度リンクをお求めください。 %1$s との接続を確認し、もう一度お試しください。 現在の正しいパスフレーズを入力してください。 - プレセットサーバ プレセットサーバのアドレス 接続待ち… 連絡先リンク経由でシークレットモード @@ -290,7 +280,6 @@ 全員用 ファイル保存でエラー発生 接続中 - 確認待ち キャンセル 使い捨ての招待リンク 音声メッセージを録音 @@ -298,7 +287,6 @@ 削除 ヘルプ 無効なリンク! - 無効なQRコード つづき 誤ったセキュリティコード! 貼り付け @@ -319,12 +307,9 @@ 接続中 発信中… 終了 - 誰でもサーバーをホストできます。 - プライバシーを再定義 技術の説明 プライベートな接続をする プライベートな通知 - GitHubリポジトリで詳細をご確認ください。]]> エンドツーエンド暗号化済みビデオ通話 無効にする エンドツーエンド暗号化がありません @@ -497,7 +482,6 @@ 詳細がありません 戻す クリップボードにコピー完了 - 使い捨てリンクを発行する シークレットグループを作成する (グループのメンバーのみに保存されてます) 「QRコードを読み取る」経由でアプリに表示されるQRコードを読み取る]]> @@ -522,12 +506,9 @@ アドレスを削除? プロフィール名: フルネーム: - 作成 あなたの名前を入力: 色付き 応答 - 分散型 - スパム耐性 常時受信 定期的に受信 通話は既に終了してます! @@ -651,9 +632,7 @@ リンク経由で接続 セキュリティコード %s は認証済み - SMPサーバ 保存 - トランスポート隔離モードを更新しますか? この設定でよろしいですか? ビデオオフ リレー経由 @@ -678,9 +657,7 @@ 起動時、または非アクティブ状態で30秒が経った後に戻ると、認証する必要となります。 共有する 非認証の送信 - このテキストは設定にあります。 画像数の上限を超えてます! - ようこそ! グループ招待が届きました チャット 連絡先を設定… @@ -688,8 +665,6 @@ 受信アドレスを変えますか? 送信する ライブメッセージを送信 (入力しながら宛先の画面で更新される) - (連絡先に共有) - (クリップボードから読み込むか、貼り付ける) SimpleX Chatをご利用いただきありがとうございます! カメラ 接続を承認しました @@ -698,12 +673,8 @@ あなたからリンクを受けた連絡先が接続できなくなります! SimpleXアドレス QRコードを表示 - このリンクは有効な接続リンクではありません! - このQRコードはリンクではありません! グループのホスト端末がオンラインになったら、接続されます。後でチェックするか、しばらくお待ちください。 連絡先がオンラインになったら、接続されます。後でチェックするか、しばらくお待ちください。 - あなたのチャットプロフィールが -\n連絡先に公開されます。 ワンタイムリンクを送る コードを読み込む 連絡相手のアプリからセキュリティコードを読み込む @@ -714,7 +685,6 @@ サーバを保存 サーバテスト失敗! サーバを使う - あなたのサーバ あなたのサーバアドレス 現在のチャットプロフィールの新しい接続のサーバ 新しい接続に使う @@ -728,20 +698,15 @@ 保存して連絡先に公開 現在のプロフィール 保存して連絡先に公開 - あなたのプライバシーとセキュリティを守るメッセージとアプリのプラットフォーム - 連絡先情報と届けたメッセージをサーバに保存することは一切ありません。 - あなたのチャットはあなたが決めます! あなたのプロフィール、連絡先、送信したメッセージがご自分の端末に保存されます。 プロフィールは連絡先にしか共有されません。 メッセージの書式をマークダウンで編集できます。 シークレット 取り消し線 接続中… - 次世代のプライベートメッセンジャー ビデオ通話 アプリがアクティブ時のみ WebRTC ICEサーバ - あなたのICEサーバ 設定 飛ばしたメッセージ あなた @@ -834,7 +799,6 @@ ロック解除 保存 開示する - タップして新しいチャットを始める 画像が解読できません。別のイメージで試すか、開発者に伝えてください。 画像を待機中 画像を待機中 @@ -847,7 +811,6 @@ ミュート解除 連絡先を設定 あなたと接続を希望しています! - Open in mobile app (アプリで開く)ボタンをクリックしてください。]]> チャットプロフィール サーバのQRコードを読み込む テストに失敗したサーバがあります: @@ -857,8 +820,6 @@ simplexmq: バージョン%s (%2s) 応答を待機中… 確認を待機中… - 世界初のユーザーIDのないプラットフォーム - プライバシーに配慮した設計 - チャット %1$sは次の方法であなたと繋がりたいです: ビデオ通話 (非エンドツーエンド暗号化) 表示 @@ -883,7 +844,6 @@ SimpleX Chatを支援 テストサーバ 受信アドレスは別のサーバーに変更されます。アドレス変更は送信者がオンラインになった後に完了します。 - あなたのプライバシーを守るために、他のアプリと違って、ユーザーIDの変わりに SimpleX メッセージ束毎にIDを配布し、各連絡先が別々と扱います。 あなたのチャットプロフィールが他のグループメンバーに公開されます。 エンドツーエンド暗号化を確認するには、ご自分の端末と連絡先の端末のコードを比べます (スキャンします)。 このコンタクトから受信するメッセージのサーバに接続しようとしてます。(エラー: %1$s)。 @@ -899,13 +859,11 @@ シークレットモードのプロフィールでこのグループに参加しています。メインのプロフィールを守るために、招待することができません。 使い捨てリンクを送りました リンクを送ってくれた連絡先にあなたのプロフィールを送ります。 - あなたのSMPサーバ あなたのSimpleXアドレス 連絡先が繋がりリクエストを承認したら、接続されます。後でチェックするか、しばらくお待ちください。 受信アドレスを変える あなたのランダム・プロフィール 音声メッセージ - SOCKSプロキシ データベースのエクスポート、読み込み、削除するにはチャット機能を停止する必要があります。チャット機能を停止すると送受信ができなくなります。 あなたのプロフィール、連絡先、メッセージ、ファイルが完全削除されます (※元に戻せません※)。 データベースパスフレーズを更新 @@ -915,7 +873,6 @@ 連絡先を選択 今はメンバーを招待しません %1$sメンバー - XFTPサーバ ウェルカムメッセージを保存しますか? 次から表示しない パスコードを変更 @@ -963,7 +920,6 @@ 音声/ビデオ通話 音声/ビデオ通話は禁止されています。 受信拒絶 - XFTPサーバーのアドレスが正しい形式で、行で区切られており、重複していないことを確認してください。 ファイルの削除 ビデオ待機中 ビデオを待機中 @@ -975,7 +931,6 @@ ビデオ ← から: SOCKSプロキシー設定 - あなたのXFTPサーバ プロフィールにアドレスを追加し、連絡先があなたのアドレスを他の人と共有できるようにします。プロフィールの更新は連絡先に送信されます。 自動承認 ロックモード @@ -1006,12 +961,9 @@ 音声/ビデオ通話を禁止する 。 連絡先からの通話を許可する。 連絡先が通話を許可している場合のみ通話を許可する。 - " -\nv5.1 で利用可能" 連絡先からのみ通話ができます。 あなたからも連絡先からも通話ができます。 システム - XFTP サーバーの保存中にエラーが発生しました ファイルを作成 メッセージはすべてのメンバーに対して削除されます。 確認できませんでした。 もう一度お試しください。 @@ -1025,7 +977,6 @@ インターフェースカラー 共有を停止 友人を招待する - 後からでも作成できます ここにパスワードを入力してください。 認証がキャンセルされました アドレスを共有する @@ -1047,9 +998,7 @@ 1GBまでのビデオとファイル %1$d メッセージの復号化に失敗しました。 %1$d メッセージをスキップしました - SMPサーバーのロード中にエラーが発生しました ユーザーパスワードの保存中にエラー発生 - XFTPサーバーのロード中にエラーが発生しました テーマのエクスポート ファイルはサーバーから削除されます。 直接会えない場合は、ビデオ通話で QR コードを表示するか、リンクを共有してください。 @@ -1078,7 +1027,6 @@ 次のメッセージの ID が正しくありません (前のメッセージより小さいか等しい)。 \n何らかのバグが原因で、または接続に問題があった場合に発生する可能性があります。 ユーザーに感謝します – Weblate 経由で貢献してください! - 接続が要求されたら、それを受け入れるか拒否するかを選択できます。 ビデオが送信されました 管理者は次のことができます。 \n- メンバーのメッセージを削除します。 @@ -1139,16 +1087,13 @@ 表示にする 非表示プロフィールのパスワード 表示する: - 人々があなたとつながるためのアドレスを作成します。 アドレス設定エラー - アドレスをリンクまたは QR コードとして共有すると、誰でもあなたに接続できます。 後でアドレスを削除しても、連絡先が失われることはありません。 連絡先との接続は維持されます。 連絡先との接続は維持されます。 プロフィールの更新が連絡先に共有されます。 SimpleX のアドレスを作成 連絡先に公開する プロフィールの更新は連絡先に送信されます。 - アドレスを作成しない SimpleXチャットで会話しよう 自動受け入れ設定を保存する プロフィールのパスワードを保存する @@ -1300,7 +1245,6 @@ ファイルやメディアを有効にできるのは、グループオーナーだけです。 再接続 再起動 - シークレットモードで接続 許可 直接接続しますか\? 新しいランダムなプロファイルが共有されます。 @@ -1321,7 +1265,6 @@ 配信通知の送信が%d件のグループで無効になっています 無効 バックグラウンド通話なし - 受信したリンクを貼り付け、連絡先に接続する。 %s と %s は接続中 SimpleXはバックグラウンドでは動作できません。アプリが起動している時のみ通知を受け取ることができます。 送信情報なし @@ -1454,7 +1397,6 @@ %sと%s 新規モバイルデバイス 同時に動作するのはひとつのデバイスだけです。 - 設定でSimpleXの連絡先に表示させることができます。 %1$sに参加しています。]]> これはあなた自身のワンタイムリンクです! チャットが停止しています。このデータベースを他のデバイスで既に使用している場合は、チャットを開始する前に転送し直してください。 @@ -1826,9 +1768,7 @@ アップデートを確認 アップデートを確認 完了 - SMPサーバーの構成 接続中 - XFTPサーバーの構成 連絡先 メッセージサーバ メディア&ファイルサーバ @@ -2290,9 +2230,7 @@ あなたのプロフィール プロフィールを変更できません 接続試行後に別のプロフィールを使用するには、チャットを削除してリンクをもう一度使用してください。 - その他のSMPサーバ 新しいサーバ - その他のXFTPサーバ プロキシ認証 ランダムな認証情報を使用 プロフィールごとに異なるプロキシ認証情報を使用します。 @@ -2368,7 +2306,6 @@ 監視されることなく他者と話すという、人類最古の自由を — それを裏切ることのできないインフラの上に築く。 私たちは、あなたが誰であるかを知る力を破壊したからだ。あなたの力が決して奪われないように。 あなたのネットワークで自由に。 - エンドツーエンドで暗号化されて送信され、ダイレクトメッセージではポスト量子暗号で保護されます。]]> 通知とバッテリー ネットワーク運営者 アプリは会話ごとに異なる運営者を使用することで、あなたのプライバシーを保護します。 @@ -2677,7 +2614,6 @@ サイズ アップロードエラー サーバアドレス - サーバ設定を開く 1つのメッセージにつき最大 %1$s 人のメンバーをメンションできます! 購読者 オーナーと貢献者 diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/ko/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/ko/strings.xml index a4fd13d137..880d328df6 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/ko/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/ko/strings.xml @@ -31,7 +31,6 @@ 라이브 메시지 취소 파일 확인 - 링크 / QR 코드로 연결 클립보드로 복사됨 비밀 그룹 생성 수락 @@ -42,7 +41,6 @@ 채팅을 지우겠습니까\? 연결 요청이 전송되었습니다! 링크로 연결 - 프리셋 서버 추가 서버 추가 채팅 콘솔 서버 주소를 확인 후 다시 시도해 주세요. @@ -62,7 +60,6 @@ 색깔 암호 확인 전화 연결 중… - 생성 프로필 생성 통화 오류 연결됨 @@ -128,7 +125,6 @@ 중국어 및 스페인어 인터페이스 SimpleX에 대하여 수락 - 일회용 초대 링크 생성 주소 생성 1일 SimpleX Chat에 대하여 @@ -184,7 +180,6 @@ 채팅이 멈춤 채팅 설정 개발자와 채팅 - 연결 연결 중… 닫기 버튼 연결 @@ -221,7 +216,6 @@ 주소 삭제 주소를 삭제할까요\? 이미지 삭제 - 탈중앙화 개발자 도구 기기 데이터베이스 암호 @@ -357,7 +351,6 @@ 부재 중 전화 사용 안 함 질문이나 아이디어 보내기 - (스캔하거나 클립보드에서 붙여넣기) 대화 상대가 현재 지원되는 최대 크기(%1$s)보다 큰 파일을 보냈습니다. 초대를 받았어요. 프로필 생성 오류! @@ -369,8 +362,6 @@ 상대의 연락처 링크로 익명 연결 상대의 연락처 링크로 연결 일회용 링크로 익명 연결 - SMP 서버 주소가 올바른 형식이고 줄로 구분되어 있고 중복이 없는지 확인해 주세요. - SMP 서버 저장 오류 네트워크 설정 업데이트 오류 프로필 변경 오류! 동일한 표시 이름을 가진 채팅 프로필이 있어요. 다른 이름을 선택해 주세요. @@ -516,7 +507,6 @@ 보내기 실패 비인증 전송 도움말 - 개인을 식별할 수 있는 어떠한 정보(임의의 숫자 포함)도 없는 첫 번째 플랫폼. 단순히 약속이 아니라 프로그램 설계상 완전한 익명성을 제공해요. 거절된 전화 대기 중인 전화 부재중 전화 @@ -526,7 +516,6 @@ 오류 사용법 이메일 - 대기 중 설정 이미지 기다리는 중 이미지를 디코딩할 수 없어요. 다른 이미지를 시도하거나 개발자에게 문의해 주세요. @@ -535,7 +524,6 @@ 동시에 최대 10개까지만 이미지를 보낼 수 있어요. 이미지 수가 너무 많아요! 거절해도 상대에게 알림이 전송되지 않아요. - 영상 통화에서 QR 코드를 보여주거나 링크를 공유해 주세요.]]> 영상 통화 영상 끄기 스피커 켜기 @@ -547,13 +535,11 @@ 대화 상대가 업로드를 완료하면 이미지가 수신될 거예요. 프로필 이미지 하나의 프로필로 여러 사람과 연락할 필요 없이 무수히 많은 익명 프로필로 연락할 수 있어요. - 스팸 방지 무시하기 SimpleX Chat 초대 링크를 받으면 브라우저에서 참여할 수 있어요 : 링크 미리보기 이미지 QR 코드 SimpleX 팀 - 영상 통화에서 QR 코드를 스캔하거나 상대에게 초대 링크를 공유할 수 있어요.]]> 동영상 보내짐 동영상 수신 요청됨 동영상 기다리는 중 @@ -588,7 +574,6 @@ 영상 통화 옴 잘못된 이전 확인 익명 모드로 참여 - 잘못된 QR 코드 잘못된 보안 코드! 잘못된 링크! 삭제됨으로 표시됨 @@ -657,7 +642,6 @@ 사용 가능한 경우 Onion 호스트가 사용될 거예요. Onion 호스트가 사용되지 않을 거예요. 전송 격리 - 차세대 사생활 보호 메시징 새 암호… TCP 연결 유지 활성화 %s의 새로운 기능 @@ -683,7 +667,6 @@ OK 거절 비밀번호 표시 - 2계층 종단 간 암호화 로 전송된 사용자 프로필, 연락처, 그룹 및 메시지를 저장되어요.]]> 개인 정보 보호 및 보안 알림은 앱이 중지되기 전까지만 전달될 거예요! 당신만 사라지는 메시지를 보낼 수 있습니다. @@ -708,10 +691,7 @@ 일회성 초대 링크 붙여넣기 프로필은 대화 상대들하고만 공유됩니다. - 프라이버시의 재정의 - 누구나 서버를 호스팅할 수 있습니다. 앱이 실행 중일 때 - GitHub 에서 확인해 주세요.]]> 릴레이 서버는 IP 주소를 숨겨주지만, 통화 시간을 관찰 할 수 있어요. 그룹 링크로 초대 설정을 통해 나중에 변경할 수 있어요. @@ -728,7 +708,6 @@ 받은 링크 붙여넣기 릴레이 서버는 필요한 경우에만 사용되어요. 릴레이 서버가 사용되지 않으면 제3자가 내 IP 주소를 관찰할 수 있어요. 채팅 열기 - 공유한 링크를 통해서만 나에게 연결할 수 있어요. 그룹 프로필 업데이트됨 프로필 비밀번호 보이기 @@ -824,7 +803,6 @@ 도움말 설정 링크 미리보기 보내기 - SOCKS 프록시 SimpleX Chat 도와주기 나 실험적 기능 @@ -832,7 +810,6 @@ 연락처 이름 설정 개발자에게 이메일 보내기 서버를 수동으로 입력 - 미리 설정된 서버 서버 저장하기 서버 테스트하기 현재 채팅 프로필의 새로운 연결을 위한 서버 @@ -843,9 +820,7 @@ 익명 모드 실험적 내보낼 암호 설정 - SMP 서버 미리 설정된 서버 주소 - 내 서버 내 서버 주소 %1$s을(를) 강퇴했어요. 채팅 데이터베이스를 내보내기, 가져오기 또는 삭제 하려면 채팅 기능을 중지해 주세요. 채팅 기능이 중지된 동안에는 메시지를 주고받을 수 없어요. @@ -862,8 +837,6 @@ 제공된 이름을 가진 빈 채팅 프로필이 생성되고, 앱이 정상적으로 열립니다. 데이터베이스 ID: %d 음성/영상 통화 - " -\nv5.1에서 사용 가능" 대화 상대가 허용하는 경우에만 통화를 허용합니다. 입력하면 모든 데이터가 삭제됩니다. 더 나은 메시지 @@ -881,7 +854,6 @@ 사용자 설정 기간 사라지는 메시지 사라지는 메시지 전송 - 다른 사용자와 연결할 수 있도록 주소를 만듭니다. 커스텀 테마 자동 수락 자체 소멸 모드 변경 @@ -1012,7 +984,6 @@ - 디렉터리 서비스(베타)에 연결하세요!\n- 전송 알림(최대 20명).\n- 더 빠르고 안정적입니다. 이전 취소 이전하려는 데이터베이스의 암호를 기억하고 있는지 확인합니다. - 익명 모드로 연결 베타 앱 패스코드 계속 @@ -1050,12 +1021,10 @@ 그룹 생성: 새로운 그룹을 생성합니다.]]> 연락처 추가 : 새 초대 링크를 만들거나 받은 링크를 통해 연결합니다.]]> 개인 메모를 지우시겠습니까? - XFTP 서버 구성 나중에 채팅할 수 있도록 연락처를 보관합니다. 연결된 데스크톱 일괄 업로드됨 보관된 연락처 - SMP 서버 구성 채팅 프로필 생성 그룹 멤버에 전화를 걸 수 없음 자동 연결 @@ -1085,7 +1054,6 @@ 암호화 OK 데스크톱 기능 처리 시간이: %1$d 초 이상: %2$s - 주소를 만들지 않음 기기 파일 및 미디어 금지됨! 링크 생성 중… @@ -1191,7 +1159,6 @@ 상대가 온라인 상태가 될 때까지 기다릴 필요가 없습니다! 그룹 멤버 차단 현재 프로필 - SMP 서버를 로드하는 중 오류 개인 메모를 삭제하는 동안 오류 데이터베이스를 삭제하는 동안 오류 다음과 같은 이유로 끊어졌습니다: %s @@ -1199,7 +1166,6 @@ 알림을 표시하는 동안 오류가 발생하였으니, 개발자에게 문의하십시오. %d 분 %d 개의 메시지가 삭제됨 - XFTP 서버를 저장하는 중 오류 알림 비활성화 패스코드 입력 주소를 설정하는 중 오류 @@ -1227,7 +1193,6 @@ 자체 소멸 환영 메시지 입력…(선택사항) WebView를 초기화하는 중 오류가 발생했습니다. WebView가 설치되어 있고 지원되는 아키텍처가 arm64인지 확인합니다.\n오류: %s - XFTP 서버를 로드하는 중 오류가 발생했습니다. 세부 정보를 로드하는 중 오류 통계를 재설정하는 중 오류 대화에서 비활성화 된 경우에도 마찬가지입니다. @@ -1423,7 +1388,6 @@ %1$s!]]> 사용해서는 안 됩니다.]]> 사용자 가이드에서 확인하세요.]]> - 모바일 앱에서 열기 버튼을 클릭합니다.]]> 운영자 %s.]]> 약관 수락 날짜: %s. @@ -1466,7 +1430,6 @@ 현재 약관 텍스트를 로드할 수 없습니다, 다음 링크를 통해 약관을 검토할 수 있습니다: 사용 약관 Flux 활성화 - 종단 간 암호화로 전송됩니다.]]> 앱이 항상 백그라운드에서 실행 팀 멤버 추가하기 친구 추가 diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/ku/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/ku/strings.xml index c429a8341a..f942077e4c 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/ku/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/ku/strings.xml @@ -50,8 +50,6 @@ şandin bi ser neket nexwendî Bi xêr hatî %1$s! - Bi xêr hatî! - Ev nivîs di eyaran de heye Eyar Bi navê %s bikeviyê redkirî @@ -318,7 +316,6 @@ Funksiyona hêdî Komên piçûk (herî zêde 20) Servera SMPyê - Serverên SMPyê Nerm Bêdeng Spam @@ -437,8 +434,6 @@ Şert di %s de hatin qebûlkirin. Şertên şuxulandinê Şert wê di %s de bên qebûlkirin. - Serverên SMPyê ên eyarkirî - Serverên XFTPyê ên eyarkirî Serverên ICEyê eyar bike Dosyayên ji serverên nenas qebûl bike. Eyarên torê tesdîq bike. @@ -446,7 +441,6 @@ Bi xwe re bikeve danûstandinê? Bi riya lînkê bikeve danûstandinê Bi riya lînkê bikeve danûstandinê? - Bi riya lînkê / koda QRyê bikeve danûstandinê Bi riya lînka yek carê bikeve danûstandinê? Bi %1$s re bikeve danûstandinê? Muhtewa ne li gora şertên şuxulandinê ye @@ -455,10 +449,8 @@ Beşdar bibe Tora xwe kontrol bike Xeletiyê kopî bike - Çêke Çêke Adres çêke - Adresekê çêke ji bo ko xelk karibin bi te re bikevin danûstandinê. Hat çêkirin Wextê çêkirinê Wextê çêkirinê: %s @@ -466,7 +458,6 @@ Kom çêke Lînka komê çêke Lînk çêke - Lînkeke dewetiyê ya yek carî çêke Profîl çêke Profîl çêke Dor çêke @@ -526,7 +517,6 @@ %d heyv %d heyv %d heyv - Adres çêneke Dîsa nîşan nede Daxe Daxistî @@ -564,21 +554,16 @@ Xeletî di guhertina profîlê de Xeletî di guhertina rolê de Xeletî di çêkirina adresê de - Serverên te yên XFTPyê Te dewetîke komê şand - Serverên te yên SMPyê Serverên te Adresa servera te - Servera te Profîla te yî %1$s wê bê parvekirin. Tercihên te - Serverên te yên ICEyê Serverên te yên ICEyê Koma te te %1$s derxist Te dewetiya komê red kir Profîla te yî niha - Tu karî dûvre wê çêkî Tu dikarî wê di Eyarên xuyakirinê de biguherî. te %s blok kir Tu hatiye dewetkirinî komê @@ -590,7 +575,6 @@ tu Erê erê - Serverên XFTPyê Servera XFTPyê Şîfra xelet! Şîfra xelet ya databasê @@ -634,7 +618,6 @@ Aplîkasyon Dosya Ji nû ve veke - Proksiya SOCKSê Sûretên profîlan Girêdana torê Ji kompîterê bişuxulîne @@ -780,8 +763,6 @@ Profîla siḧbetê çêke Ber serverên SimpleX Chatê werin şuxulandin? Profîla siḧbetê - Tu siḧbeta xwe qontrol dikî! - Siḧbetê bişuxulîne Siḧbet Rengên siḧbetê Siḧbet sekinandî ye diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/lt/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/lt/strings.xml index aa1da521bb..87144b710d 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/lt/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/lt/strings.xml @@ -45,7 +45,6 @@ Turėkite omenyje: jeigu prarasite slaptafrazę, NEBEGALĖSITE jos atkurti ar pakeisti.]]> Atsisakyti jungiamasi… - Prisijungti prisijungta jungiamasi ryšys užmegztas @@ -86,7 +85,6 @@ Grupių nuorodos klaida Aprašas - Klaida įrašant SMP serverius Klaida atnaujinant tinklo konfigūraciją Klaida kuriant profilį! Nepavyko įkelti pokalbio @@ -155,7 +153,6 @@ Sukurti adresą Ištrinti adresą Klaida įrašant naudotojo slaptažodį - Sukurti Kaip tai veikia Gaunamas garso skambutis Gaunamas vaizdo skambutis @@ -227,7 +224,6 @@ Patobulinta serverio konfigūracija Ištrinti pokalbio profilį Ištrinti profilį - Sukurti vienkartinio pakvietimo nuorodą Ištrinti Įrašyti ir pranešti kontaktui Įjungti automatinį žinučių ištrynimą\? @@ -237,7 +233,6 @@ Importuoti Įrašyti ir pranešti kontaktams pradedama… - Naudoti pokalbį Išjungti garsiakalbį Įjungti garsiakalbį Praleistos žinutės @@ -251,12 +246,10 @@ Rodyti peržiūrą Atrakinti Bendrinti - Bakstelėkite, norėdami pradėti naują pokalbį Bendrinti failą… Nustatymai Rodyti QR kodą Bendrinti pakvietimo nuorodą - SMP serveriai Naudoti SimpleX Chat serverius\? Naudoti tiesioginį interneto ryšį\? Atnaujinti @@ -306,16 +299,13 @@ Balso žinutė… Rodyti saugumo kodą SimpleX adresas - Jūsų SMP serveriai Jūsų ICE serveriai Pridėti profilį Visi pokalbiai ir žinutės bus ištrinti – to neįmanoma bus atšaukti! - Sveiki! Pridėti Jūs negalite siųsti žinučių! SimpleX logotipas Jūsų nustatymai - Jūsų serveris Jūsų serverio adresas Pridėti į kitą įrenginį Naudojami SimpleX Chat serveriai. @@ -325,7 +315,6 @@ vaizdo skambutis Jūsų skambučiai WebRTC ICE serveriai - Jūsų ICE serveriai išėjote administratorius Jūsų atsitiktinis profilis @@ -372,9 +361,6 @@ Didelis failas! Balso žinutės uždraustos! Siųsti - Klaida įkeliant SMP serverius - Klaida įrašant XFTP serverius - Klaida įkeliant XFTP serverius Nepavyksta gauti failo Sukurti eilę Gali būti, kad liudijimo kontrolinis kodas serverio adrese yra neteisingas @@ -382,8 +368,6 @@ Dekodavimo klaida Išvalyti pokalbį Įjungti pranešimus - Neteisingas QR kodas - Šis QR kodas nėra nuoroda! Prisijungti per nuorodą Saugumo kodas Žymėti kaip patvirtintą @@ -419,8 +403,6 @@ Neteisingas serverio adresas! Pokalbio profilis Profilis yra bendrinamas tik su jūsų kontaktais. - „GitHub“ saugykloje.]]> - SOCKS įgaliotasis serveris Įrašyti slaptafrazę ir atverti pokalbį Atkurti atsarginę duomenų bazės kopiją Atkurti atsarginę duomenų bazės kopiją\? @@ -463,7 +445,6 @@ Išvalyti Nebeslėpti profilio Per daug vaizdo įrašų! - Prisijungti per nuorodą / QR kodą Įrašyti profilio slaptažodį Iššifravimo klaida inkognito per grupės nuorodą @@ -494,7 +475,6 @@ Stabdyti failą Stabdyti failo gavimą\? Stabdyti failo siuntimą\? - Šis tekstas yra prieinamas nustatymuose Garso/vaizdo skambučiai yra uždrausti. Tiek jūs, tiek ir jūsų kontaktas gali skambinti. Žinutės juodraštis @@ -508,8 +488,6 @@ Profilis ir ryšiai su serveriu Tiesioginės žinutės tarp narių šioje grupėje yra uždraustos. Garso/vaizdo skambučiai - " -\nPrieinama versijoje v5.1" Vaizdo įrašas Vaizdo įrašai ir failai iki 1GB Ieškoti @@ -533,7 +511,6 @@ Programėlė galės gauti sistemos pranešimus tik tada, kai veiks. Jokia foninė tarnyba nebus paleidžiama Priimti Priimti inkognito režimu - Pridėti iš anksto parinktus serverius Administratoriai gali kurti prisijungimo prie grupių nuorodas. Foninė tarnyba visada veikia – pranešimai bus rodomi iš karto, kai tik bus prieinamos žinutės. Patvirtinti tapatybę @@ -765,7 +742,6 @@ Atkreipkite dėmesį: žinučių ir failų perdavimas yra prijungtas per SOCKS tarpinį serverį. Skambučiams ir nuorodų peržiūrų siuntimui naudojamas tiesioginis ryšys.]]> Netinkamas vardas! Sukurti savo profilį - Asmenys gali prisijungti prie jūsų tik per nuorodas kuriomis dalinatės. Tai gali būti pakeista vėliau nustatymuose. Tai gali įvykti kai: \n1. Žinutės galiojimo laikas baigėsi siuntėjo programoje po 2 dienų arba serveryje po 30 dienų. @@ -816,12 +792,10 @@ Prisijungti prie savęs? Kontaktas dar nėra susijungęs! Pataisyti pavadinimą į %s? - Laukiama Duomenų bazės šifravimo slaptafrazė bus atnaujinta ir saugoma raktų saugykloje. %s yra blogos būsenos]]> užblokuota administratoriaus Pilna nuoroda - Atsparu šlamštui ir piktnaudžiavimui Prašome pranešti tai kūrėjams. Prašome saugoti slaptafrazę saugiai, jūs NEGALĖSITE pasiekti pokalbių, jei ją prarasite. Duomenų bazės slaptafrazė yra reikalinga pokalbių atidarymui. @@ -852,7 +826,6 @@ Įrenginio autentifikacija išjungta. Išjungiamas SimpleX užraktas. %d failas (-ai), kurių bendras dydis yra %s %d valandos - Prisijungti inkognito režimu Reikalinga slaptafrazė Uždrausti siųsti balso žinutes. Eksperimentinis @@ -865,14 +838,12 @@ Paprašyta gauti vaizdo įrašą Labas! \nPrisijunk prie manęs per SimpleX Chat: %s - Privatumas apibrėžtas iš naujo Sukurta: %s jungiamasi (supažindinimo pakvietimas) Kaip naudoti markdown Savaiminio susinaikinimo prieigos kodas pakeistas! Pasilikti nepanaudotą pakvietimą? Pasilikti - Atviro kodo protokolas ir kodas - bet kas gali paleisti savo serverius. - pasirinktinai praneškite ištrintiems kontaktams. \n- profilių vardai su tarpais. \n- ir daugiau! @@ -890,7 +861,6 @@ Nuotrauka Įvertinti programėlę jungiamas skambutis… - Sukurkite adresą, kad leistumėte žmonėms prisijungti prie jūsų. Duomenų bazės ID ir transporto izoliacijos parinktis. kursyvinis Atsitiktinė slaptafrazė yra saugoma nustatymuose kaip paprastas tekstas. @@ -930,8 +900,6 @@ Nuotrauka išsaugota į galeriją Failas bus gautas kai jūsų kontaktas yra prisijungęs, palaukite arba patikrinkite vėliau! Iš anksto nustatyto serverio adresas - Iš anksto nustatytas serveris - Decentralizuota Pateikti Prisijungti inkognito režimu Pradinė rolė @@ -948,7 +916,6 @@ Nuotrauka išsiųsta Nuotrauka bus gauta kai jūsų kontaktas užbaigs jos įkėlimą. Pakeisti gavimo adresą? - nuskanuoti QR kodą vaizdo skambutyje, arba jūsų kontaktas gali pasidalinti pakvietimo nuoroda.]]> Arba parodykite šį kodą ICE serveriai (vienas per liniją) Įdiegti SimpleX Chat terminalui @@ -986,10 +953,8 @@ Momentiniai pranešimai! Momentiniai pranešimai yra išjungti! profilio nuotraukos vietos ženklas - parodykite QR kodą vaizdo skambutyje, arba pasidalinkite nuoroda.]]> naudotojo vadove.]]> Jei negalite susitikti asmeniškai, parodykite QR kodą vaizdo skambutyje, arba pasidalinkite nuoroda. - Įklijuokite nuorodą, kurią gavote prisijungimui prie savo kontakto… gautas atsakas… Jungiamas skambutis Tai gali įvykti kai jūs ar jūsų prisijungimas naudojo seną duomenų bazės atsarginę kopiją. @@ -1109,8 +1074,6 @@ Temos spalvos Rodyti lėtus API iškvietimus Nustoti bendrinti adresą? - Žinučių siuntimo ir programų platforma, apsauganti jūsų privatumą ir saugumą. - Pirma platforma neturinti jokių naudotojų identifikatorių - privati pagal sumanymą. Nustatyti duomenų bazės slaptafrazę Sistema Nustatyti slaptafrazę eksportui @@ -1128,7 +1091,6 @@ SimpleX Chat tarnyba Nustoti bendrinti Bendrinti su kontaktais - Naujos kartos privatus susirašinėjimas %s sekundė(s) Kodas kurį nuskanavote, nėra SimpleX nuorodos QR kodas. Kontaktas su kurio pasidalinote šia nuoroda NEGALĖS prisijungti! @@ -1197,7 +1159,6 @@ Ši galimybė dar nėra palaikoma. Išbandykite sekantį leidimą. %1$s!]]> Kad prisijungti su nuoroda - Ši nuoroda nėra tinkama prisijungimo nuoroda! Šie nustatymai yra jūsų dabartiniam profiliui Slaptafrazė saugoma nustatymuose kaip paprastas tekstas. Bakstelėkite, kad prisijungti kaip inkognito @@ -1233,8 +1194,6 @@ Sustabdomi pokalbiai %s įkeltas Jūsų pokalbių profiliai - Jūsų pokalbių profilis bus nusiųstas -\njūsų kontaktui Jūsų duomenų bazė Jūsų duomenų bazė nėra užšifruota - nustatykite slaptafrazę, kad ją apsaugoti. Jūsų pokalbių profilis bus nusiųstas grupės nariams @@ -1266,7 +1225,6 @@ Jūsų profilis, kontaktai ir gautos žinutės yra saugomi jūsų įrenginyje. Išnyks Rodomas vardas negali turėti tarpų. - Nekurti adreso Atsiuntimas nepavyko Atsiunčiamas archyvas visapusiškai užšifruotas balso skambutis @@ -1359,13 +1317,10 @@ neteisėtas siuntimas Ieškoti ar įklijuoti SimpleX nuorodą Jūs turite leisti savo kontaktui siųsti balso žinutes, kad galėtumėte siųsti jas. - (nuskanuokite ar įklijuokite iš iškarpinės) Priėmėte prisijungimą Jūs pakvietėte kontaktą Onion serveriai bus naudojami, kai tik bus. Išeiti neišsaugant - Jūs kontroliuojate savo pokalbį! - Mes nesaugome jokių jūsų kontaktu ar žinučių (po pristatymo) serveriuose. Nėra gautų ar išsiųstų failų Išsaugoti slaptafrazę raktų saugykloje Atnaujinti duomenų bazės slaptafrazę @@ -1428,8 +1383,6 @@ Nuskanuoti QR kodą iš darbastalio %s buvo atjungtas]]> %1$s.]]> - Galite bendrinti savo adresą kaip nuorodą ar QR kodą - bet kas galės prisijungti prie jūsų. - Atnaujinti transporto izoliacijos režimą? Išsaugoti automatinio priėmimo nustatymus Antrinis Žinučių reakcijos yra draudžiamos šiame pokalbyje. @@ -1439,7 +1392,6 @@ siuntimas nepavyko Per daug nuotraukų! Siųsti išnykstančią žinutę - (kad bendrinti su savo kontaktu) Kad pradėti naują pokalbį Pakartoti Naudoti .onion serverius @@ -1451,8 +1403,6 @@ Gavimo adresas bus pakeistas į kitą serverį. Adreso pakeitimas bus užbaigtas kai siuntėjas prisijungs. Įvyko klaida įkeliant archyvą Prisijunkite su savo kredencialais - Įsitikinkite, kad SMP serverių adresai yra tinkamu formatu, atskirose eilutėse ir nesikartojantys. - Įsitikinkite, kad XFTP serverių adresai yra tinkamu formatu, atskirose eilutėse ir nesikartojantys. Markdown pagalba Maks. 40 sekundžių, gaunama iš karto. Žinučių reakcijos @@ -1464,7 +1414,6 @@ Jūsų kontaktas turi būti prisijungęs, kad užbaigti prisijungimą. \nJūs galite atšaukti šį prisijungimą ir pašalinti kontaktą (ir vėliau bandyti su nauja nuoroda). Jūsų kontaktai išliks prisijungę. - Jūsų XFTP serveriai Prisijungsite kai jūsų prisijungimo užklausa bus patvirtinta, palaukite arba patikrinkite vėliau! %s yra užsiėmęs]]> %s yra neaktyvus]]> @@ -1484,7 +1433,6 @@ Su sumažintu akumuliatoriaus naudojimu. Esate kviečiami į grupę prisijungti prie SimpleX Chat kūrėjų, kad klausti klausimus ir gauti atnaujinimus.]]> - Galite padaryti tai matomą savo SimpleX kontaktams per nustatymus. Susieto darbastalio parinktys %1$s.]]> Pašalinti nutildymą @@ -1511,7 +1459,6 @@ Prisijungsite kai jūsų konktakto įrenginys bus prisijungęs, palaukite arba patikrinkite vėliau! Atidaryti mobilioje programėlėje, tada bakstelėkite Prisijungti programėlėje.]]> Naudoti naujiems prisijungimams - Atidaryti mobilioje programėlėje mygtuko.]]> Įvyko klaida atveriant naršyklę paslaptis Pranešimai nustos veikti iki tol kol paleisite programėlę iš naujo @@ -1581,11 +1528,9 @@ Laukiama nuotraukos Siųsti tiesioginę žinutę, kad prisijungti Laukiama nuotraukos - Kai asmenys išsiunčia užklausą prisijungti, galite ją priimti arba atmesti. Galite peržiūrėti pakvietimo nuorodą vėl, prisijungimo detalėse. Markdown žinutėse Norėdami patvirtinti visapusį šifravimą su savo kontaktu, palyginkite (ar nuskanuokite) kodą ant savo įrenginių. - XFTP serveriai Onion serveriai bus reikalingi ryšiui. \nAtkreipkite dėmesį: negalėsite prisijungti prie serverių be .onion adreso. Išsaugoti nustatymus? @@ -1598,8 +1543,6 @@ pakeitėte adresą %s Išplėsti rolių pasirinkimą %1$s.]]> - dviejų sluoksnių visapusiu šifravimu.]]> - Kad apsaugoti privatumą, vietoj naudotojų ID naudojamų visose kitose platformose, SimpleX turi identifikatorius žinučių eilėms, skirtingus kiekvienam jūsų kontaktui. Žinutės juodraštis Paleisti iš naujo narys @@ -1641,7 +1584,6 @@ %s ir %s Atnaujinti Įsitikinkite, kad WebRTC ICE serverių adresai yra tinkamu formatu, atskirose eilutėse ir nesikartojantys. - Galite sukurti tai vėliau Nėra pasirinkto pokalbio nežinoma būsena pašalintas diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/lv/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/lv/strings.xml index e09aef2162..b045044925 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/lv/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/lv/strings.xml @@ -10,7 +10,6 @@ Izmantot inkognito profilu Jūsu profils tiks nosūtīts kontaktpersonai, no kuras saņēmāt šo saiti. Jūs pievienosities visiem grupas dalībniekiem. - Pievienoties Atvērt tērzēšanu Atvērt jaunu tērzēšanu Atvērt grupu @@ -71,7 +70,6 @@ Saites atvēršana pārlūkprogrammā var samazināt savienojuma privātumu un drošību. Neuzticamas SimpleX saites būs sarkanas. uzaicināts pievienoties Savienoties, izmantojot kontaktpersonas saiti - Savienoties, izmantojot saiti inkognito režīmā Ziņot par vienuma redzamību moderatoriem Ziņot par vienuma arhivēšanu Ziņot par vienuma arhivēšanu, ko veica @@ -105,12 +103,6 @@ Ziņošanas iemesls: Kopienas noteikumu pārkāpums Ziņošanas iemesls: Profils Ziņošanas iemesls: Cits - Kļūda, saglabājot Smp serverus - Kļūda, saglabājot Xftp serverus - Pārliecinieties, vai Smp serveru adreses ir pareizā formātā un unikālas - Pārliecinieties, vai Xftp serveru adreses ir pareizā formātā un unikālas - Kļūda ielādējot Smp serverus - Kļūda ielādējot Xftp serverus Kļūda iestatot tīkla konfigurāciju Neizdevās parsēt čata nosaukumu Neizdevās parsēt čatu nosaukumus @@ -351,11 +343,7 @@ Čata slēdzene Čata konsole Ziņojumu serveri - Smp serveri - Konfigurēti Smp serveri - Citi Smp serveri Smp serveru iepriekš iestatīta adrese - Pievienot iepriekš iestatītu Smp serveri Pievienot Smp serveri Smp serveru testa serveris Smp serveru testēšana @@ -365,8 +353,6 @@ Smp serveru QR koda skenēšana Smp serveru ievadīšana manuāli Smp serveru jauns serveris - Smp serveru iepriekš iestatīts serveris - Smp serveru jūsu serveris Smp serveru jūsu servera adrese Smp serveru izmantot serveri Smp serveru izmantot serveri jaunam savienojumam @@ -377,9 +363,6 @@ Smp Serveri katram lietotājam Vai saglabāt Smp Serverus? Multivides un failu serveri - Xftp Serveri - Konfigurēti Xftp Serveri - Citi Xftp Serveri Abonēšanas Procentuālais Daudzums Instalēt SimpleX Chat Terminālim Atiestatīt Visus Padomus @@ -387,8 +370,6 @@ Ziedot Novērtēt Aplikāciju Izmantot SimpleX Chat Serverus? - Jūsu SMP Serveri - Jūsu XFTP Serveri Izmantojot SimpleX Chat Serverus Kā to darīt Kā lietot savus serverus @@ -451,7 +432,6 @@ Pieņemt zvanu bloķēšanas ekrānā Rādīt zvanu bloķēšanas ekrānā Zvans nav atļauts bloķēšanas ekrānā - Jūsu Ice Serveri Webrtc Ice Serveri Relay Serveris Aizsargā Ip Relay Serveris Ja Nepieciešams @@ -733,7 +713,6 @@ SimpleX Saites Nesenā Vēsture Audio Video Zvani - \nPieejams V51 versijā Funkcija Ieslēgta Funkcija Ieslēgta Jums Funkcija Ieslēgta Kontaktam @@ -1105,8 +1084,6 @@ Ziņas nosūtīšana neizdevās Saņemtā ziņa nav izlasīta Laipni lūdzam - Laipni lūdzam - Šis teksts ir pieejams iestatījumos Jūsu sarunas Rīkjoslas iestatījumi Kontakta savienojums gaida apstiprinājumu @@ -1116,7 +1093,6 @@ Grupas priekšskatījums, pievienojieties kā Grupas priekšskatījums noraidīts Grupas savienojums gaida apstiprinājumu - Noklikšķiniet, lai uzsāktu jaunu sarunu Sarunājieties ar izstrādātājiem Jums nav nevienas sarunas Ielādēju sarunas… @@ -1186,7 +1162,6 @@ Serveris ir savienots Serveris nav savienots Servera kļūda - Serveris gaida Vai vēlaties mainīt saņemšanas adresi? Mainīt saņemšanas adresi Pārtraukt saņemšanas adreses maiņu @@ -1224,12 +1199,8 @@ Pievienot kontaktu Kopēts Pievienot kontaktu vai izveidot grupu - Kopīgot vienreizēju saiti - Savienot, izmantojot saiti vai QR Nolasīt QR kodu Izveidot grupu - Lai kopīgotu ar savu kontaktu - Savienot, izmantojot saiti vai QR no starpliktuves vai klātienē Tikai saglabāts dalībnieku ierīcēs Iespējot kameras piekļuvi Noklikšķiniet, lai nolasītu @@ -1301,19 +1272,12 @@ E-pasts Vairāk Rādīt QR kodu - Nederīgs QR kods - Šis QR kods nav saite Nederīga kontaktu saite - Šī saite nav derīga savienojuma saite Savienojuma pieprasījums nosūtīts Jūs tiksiet savienots, kad grupas saimnieka ierīce būs tiešsaistē Jūs tiksiet savienots, kad jūsu savienojuma pieprasījums tiks pieņemts Jūs tiksiet savienots, kad jūsu kontaktu ierīce būs tiešsaistē - - Jūsu čata profils tiks nosūtīts jūsu kontaktam - Kopīgot ielūguma saiti - Ielīmējiet saiti, ko saņēmāt, lai savienotos ar savu kontaktu Uzzināt vairāk Uzzināt vairāk par adresi Savienojiet, tiks kopīgots jauns nejaušs profils @@ -1322,7 +1286,6 @@ Ja jūs nevarat tikties klātienē Kopīgot adresi publiski Kopīgot simplex adresi sociālajos tīklos - Jūs varat kopīgot savu adresi Jūs nezaudēsiet savus kontaktus, ja izdzēsīsiet adresi Kopīgot vienreizēju saiti ar draugu @@ -1330,14 +1293,12 @@ Savienojuma drošība Simplex adrese un vienreizējās saites ir drošas kopīgošanai Lai pasargātu no jūsu saites aizvietošanas, salīdziniet kodus - Jūs varat pieņemt vai noraidīt savienojumu Adrese vai vienreizēja saite Savienoties caur saiti Savienoties Ielīmēt Šī virkne nav savienojuma saite - Jauna saruna Jauns Pievienot kontaktu cilni @@ -1372,7 +1333,6 @@ Tīkla sesijas režīms sesija. Tīkla sesijas režīms serveris. - Atjaunināt tīkla sesijas režīmu? Tīkla smp proxy režīms privātā maršrutēšana @@ -1445,7 +1405,6 @@ Visi jūsu kontakti paliks savienoti, atjauninājums nosūtīts. Kopīgot saiti Pievienot adresi savai profilam - Izveidot adresi un ļaut cilvēkiem savienoties Izveidot simplex adresi Kopīgot ar kontaktiem Kopīgot adresi ar kontaktiem? @@ -1478,9 +1437,6 @@ Dalīties ar veco adresi Dalīties ar veco saiti Turpināt uz nākamo soli - Nekādā gadījumā neveidot adresi - Jūs varat to izveidot vēlāk - Jūs varat padarīt adresi redzamu caur iestatījumiem Aicināt draugus (īsi) Rādāmais vārds Pilns vārds @@ -1503,16 +1459,12 @@ Apstiprināt paroli Lai atklātu profilu, ievadiet paroli Kļūda, saglabājot lietotāja paroli - Jūs kontrolējat savu sarunu - Ziņojumu un lietotņu platforma, kas aizsargā jūsu privātumu un drošību - Mēs nesaglabājam kontaktus vai ziņas serveros Izveidot profilu Jūsu profils tiek saglabāts jūsu ierīcē Profils tiek koplietots tikai ar jūsu kontaktiem Parādāmā vārda laukā nedrīkst būt atstarpes Parādāmais vārds Īss - Izveidot profilu Izveidot citu profilu Izveidot adresi Nederīgs vārds @@ -1547,22 +1499,10 @@ Audio ierīce - Bluetooth Kļūda, inicializējot tīmekļa skatu WebView nav atbalstīts šajā ierīces arhitektūrā. - Nākamā paaudze privātajai ziņošanai - Privātums pārdefinēts - Pirmā platforma bez lietotāju ID - Imūna pret surogātpastu un ļaunprātīgu izmantošanu - Cilvēki var savienoties tikai caur saites, ko jūs kopīgojat - Decentralizēts - Atvērtā koda protokols un kods, ko ikviens var palaist serveros Izveidot savu profilu Izveidot privātu savienojumu Migrēt no citas ierīces Kā tas darbojas - Lai aizsargātu privātumu, SimpleX izmanto ID rindām - Tikai klientu ierīces glabā kontaktu grupas un e2e šifrētas ziņas - - - Izmantot čatu Ievada paziņojumu režīms Ievada paziņojumu režīma apakšvirsraksts Ievada paziņojumu režīms izslēgts @@ -1642,7 +1582,6 @@ Iestatījumi izslēgt Iestatījumi izstrādātāja rīki Iestatījumi eksperimentālās funkcijas - Iestatījumi zeķes Iestatījumi Tēmas Profila attēli @@ -2478,6 +2417,5 @@ Lejupielādētie faili Lejupielādes kļūdas Servera adrese - Atvērt servera iestatījumus Sasniegts maksimālais grupas pieminējumu skaits ziņā. diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/ml/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/ml/strings.xml index 008ad2bb81..02e93696b3 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/ml/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/ml/strings.xml @@ -59,14 +59,11 @@ ഉപയോക്താക്കൾക്ക് നന്ദി - Weblate വഴി സംഭാവന ചെയ്യുക! സ്വകാര്യതയും സുരക്ഷയും ബന്ധിപ്പിച്ചിരിക്കുന്നു - സ്വകാര്യത പുനർ നിർവചിച്ചു ബന്ധിപ്പിക്കുന്നു (പ്രഖ്യാപിച്ചു) വിലാസം സൃഷ്ടിക്കുക അജ്ഞാത പിശക് - നിങ്ങളുമായി ബന്ധപ്പെടാൻ ആളുകളെ അനുവദിക്കുന്നതിന് ഒരു വിലാസം സൃഷ്‌ടിക്കുക. ബന്ധിപ്പിക്കുന്നു പുനഃസ്ഥാപിക്കുക - ബന്ധിപ്പിക്കുക ബന്ധിപ്പിക്കുക ബന്ധിപ്പിച്ചിരിക്കുന്നു ബന്ധിപ്പിക്കുക @@ -130,8 +127,6 @@ പശ്ചാത്തലം ഇല്ല നേരിട്ടുള്ള സന്ദേശങ്ങൾ - " -\nപ5.1-ൽ ലഭ്യമാണ്" എപ്പോഴും നിങ്ങൾക്ക് മാത്രമേ ശബ്ദ സന്ദേശങ്ങൾ അയയ്ക്കാൻ കഴിയൂ. അയച്ച സന്ദേശങ്ങൾ മാറ്റാനാവാത്തവിധം ഇല്ലാതാക്കാൻ അനുവദിക്കുക. @@ -154,7 +149,6 @@ സന്ദേശം പങ്കിടുക… മറയ്ക്കുക: കാണിക്കുക: - വികേന്ദ്രീകൃതം ശബ്ദ സന്ദേശം ശബ്ദ സന്ദേശങ്ങൾ ശബ്ദ സന്ദേശം… @@ -214,12 +208,10 @@ കൂടുതലറിയുക ഉപയോക്തൃ മാര്‍ഗ്ഗദര്‍ശിയിൽ കൂടുതൽ വായിക്കുക.]]> സെർവർ വിലാസം പരിശോധിച്ച് വീണ്ടും ശ്രമിക്കുക. - നിങ്ങളുടെ SMP സെർവറുകൾ ബന്ധം വിലാസം പങ്കിടുന്നത് നിർത്തണോ\? തുടരുക SimpleX വിലാസം സൃഷ്ടിക്കുക - സൃഷ്ടിക്കുക നിറമുള്ള അവസാനിച്ചു നിങ്ങളുടെ വിളികൾ @@ -261,18 +253,15 @@ %1$s നീക്കം ചെയ്തു അപ്രത്യക്ഷമാകുന്ന സന്ദേശം അയയ്ക്കുക ഓരോ 10 നിമിഷവും ഒരു നിമിഷം വരെ പുതിയ സന്ദേശങ്ങൾ പരിശോധിക്കുന്നു - നിങ്ങൾക്ക് ഇത് പിന്നീട് സൃഷ്ടിക്കാൻ കഴിയും നിങ്ങൾ സ്വയം %s എന്ന കര്‍ത്തവ്യം മാറ്റി വീഡിയോ സ്വീകരിക്കാൻ ആവശ്യപ്പെട്ടു തത്സമയ സന്ദേശം റദ്ദാക്കുക വിളിക്കുന്നു… തത്സമയ സന്ദേശം! ഞങ്ങൾക്ക് ഇമെയിൽ അയയ്ക്കുക - നിങ്ങളുടെ സെർവർ അയച്ചു നിങ്ങളുടെ സെർവർ വിലാസം എന്ന വിലാസത്തിൽ അയച്ചു - നിങ്ങളുടെ XFTP സെർവറുകൾ കുറിച്ച് SimpleX Chat എല്ലാ സംഭാഷണങ്ങളും സന്ദേശങ്ങളും ഇല്ലാതാക്കപ്പെടും - ഇത് പഴയപടിയാക്കാനാകില്ല! സംഘത്തിലെ എല്ലാ അംഗങ്ങളുടെ ബന്ധം നിലനിർത്തും. @@ -292,13 +281,10 @@ എല്ലാ അംഗങ്ങൾക്കും സന്ദേശം ഇല്ലാതാക്കപ്പെടും. വെളിപ്പെടുത്തുക നിർത്തുക - സ്വാഗതം! - ഈ വാചകം ക്രമീകരണങ്ങളിൽ ലഭ്യമാണ് നിങ്ങൾ നിരീക്ഷകനാണ് നിങ്ങൾ നിരീക്ഷകനാണ് നിങ്ങൾ അംഗമാണ് നിങ്ങൾ ഉടമയാണ് - തീർപ്പാക്കാത്തത് സന്ദേശം അയയ്ക്കുക തത്സമയ സന്ദേശം അയയ്ക്കുക %s സ്ഥിരീകരിച്ചിട്ടില്ല @@ -311,7 +297,6 @@ മുൻഗണനകൾ സംരക്ഷിക്കണോ\? ആരംഭിക്കുന്നു ഉത്തരം ലഭിച്ചു… - സ്വകാര്യ സന്ദേശമയയ്ക്കലിന്റെ അടുത്ത തലമുറ ഒഴിവാക്കിയ സന്ദേശങ്ങൾ സംവിധാനം സ്വയം നശിപ്പിക്കുക @@ -380,7 +365,6 @@ %d മണിക്കൂർ %d മാസങ്ങള്‍ മണിക്കൂറുകൾ - വിലാസം സൃഷ്ടിക്കരുത് ചിത്രം തിരുത്തുക പരീക്ഷണാത്മക സവിശേഷതകൾ വിലാസം മാറ്റുന്നത് നിർത്തുക diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/nb-rNO/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/nb-rNO/strings.xml index eeddfd1b38..65614f25aa 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/nb-rNO/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/nb-rNO/strings.xml @@ -47,7 +47,6 @@ Legg til venner Legg til en liste Legg til en melding - Legg til forhåndsvalgte servere Legg til en profil Adresse Adresseendringen vil bli avbrutt. Den gamle mottakeradressen vil bli brukt. @@ -124,7 +123,6 @@ En ny tilfeldig profil vil bli delt. En annen grunn Svar anrop - Hvem som helst kan være vert for servere. App Appen kjører alltid i bakgrunnen App build: %s @@ -179,7 +177,6 @@ Godta automatisk Godta kontaktforespørsler automatisk Godta bilder automatisk - \nTilgjengelig i v5.1 Tilbake Bakgrunn Bakgrunnstjenesten kjører alltid - varsler vises så snart meldingene er tilgjengelige. diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/nl/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/nl/strings.xml index c2cc76fa50..988d0e73cc 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/nl/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/nl/strings.xml @@ -36,7 +36,6 @@ Verbindingsverzoek accepteren\? geaccepteerde oproep Accepteer incognito - Vooraf ingestelde servers toevoegen Profiel toevoegen Server toevoegen Toevoegen aan een ander apparaat @@ -135,7 +134,6 @@ verbinding gemaakt Verbindingsverzoek verzonden! Timeout verbinding - Maak een eenmalige uitnodiging link Adres aanmaken Groep link maken Maak een geheime groep aan @@ -147,7 +145,6 @@ %dd Verwijderen Verwijderen na - Verbind verbonden Verbinden Verbinden via contact link? @@ -160,7 +157,6 @@ Contact en alle berichten worden verwijderd, dit kan niet ongedaan worden gemaakt! Verbonden Bevestigen - Maak verbinding via link / QR-code Gekopieerd naar het klembord Bijdragen ICE servers configureren @@ -168,7 +164,6 @@ Core versie: v%s verbonden Verbinden… - Gedecentraliseerd Maak je profiel aan %d dag %d dagen @@ -200,7 +195,6 @@ Maak verbinding via link gekleurd Oproep verbinden… - Maak Maak een profiel aan Adres verwijderen Altijd relay gebruiken @@ -383,7 +377,6 @@ Fout bij aanmaken van adres help Draai camera - Fout bij opslaan van SMP servers Fout bij updaten van netwerk configuratie Kan het gesprek niet laden Kan de chats niet laden @@ -410,9 +403,6 @@ Markeer gelezen Markeer als ongelezen Dempen - de QR-code scannen in het video gesprek , of uw contact kan een uitnodiging link delen.]]> - toon je de QR-code in het video gesprek of deel je de link.]]> - Ongeldige QR-code Meer Onjuiste beveiligingscode! Markeer geverifieerd @@ -505,7 +495,6 @@ Zorg ervoor dat WebRTC ICE server adressen de juiste indeling hebben, regel gescheiden zijn en niet gedupliceerd zijn. Als u bevestigt, kunnen de berichten servers en uw provider uw IP-adres zien en met welke servers u verbinding maakt. Nee - Immuun voor spam Maak een privéverbinding Het definitief verwijderen van berichten is niet toegestaan in dit gesprek. Nieuw in %s @@ -523,11 +512,9 @@ ongeldig berichtformaat uitgenodigd om te verbinden LIVE - Zorg ervoor dat SMP server adressen de juiste indeling hebben, regel gescheiden zijn en niet gedupliceerd zijn. gemarkeerd als verwijderd Controleer of u de juiste link heeft gebruikt of vraag uw contact om u een andere te sturen. profielfoto - Privacy opnieuw gedefinieerd Privacy en beveiliging Controleer uw netwerkverbinding met %1$s en probeer het opnieuw. Mogelijk is de certificaat vingerafdruk in het server adres onjuist @@ -566,17 +553,13 @@ Eenmalige uitnodiging link Alleen groep eigenaren kunnen groep voorkeuren wijzigen. (alleen opgeslagen door groepsleden) - Vooraf ingestelde server Periodieke meldingen zijn uitgeschakeld! - In behandeling Alleen groep eigenaren kunnen spraak berichten inschakelen. Vraag uw contact om het verzenden van spraak berichten in te schakelen. OK Onion hosts zijn vereist voor verbinding. Onion hosts worden gebruikt indien beschikbaar. Onion hosts worden niet gebruikt. - Iedereen kan servers hosten. - Jij bepaalt wie er verbinding mag maken. Alleen uw contact kan berichten onherroepelijk verwijderen (u kunt ze markeren voor verwijdering). (24 uur) Alleen jij kunt spraak berichten verzenden. Alleen uw contact kan spraak berichten verzenden. @@ -589,7 +572,6 @@ Oproep in behandeling Het openen van de link in de browser kan de privacy en beveiliging van de verbinding verminderen. Niet vertrouwde SimpleX links worden rood weergegeven. Werk de app bij en neem contact op met de ontwikkelaars. - Alleen clientapparaten slaan gebruikersprofielen, contacten, groepen en berichten op. De afzender heeft mogelijk het verbindingsverzoek verwijderd. Schakel SimpleX Vergrendelen in om uw informatie te beschermen. \nU wordt gevraagd de authenticatie te voltooien voordat deze functie wordt ingeschakeld. @@ -600,13 +582,10 @@ Om een nieuw gesprek te starten Dempen opheffen SimpleX-Team - Deze QR-code is geen link! - Deze link is geen geldige link! Eenmalige link delen Code scannen Uw instellingen Deel link - Jij beheert je gesprek! Uw profiel, contacten en afgeleverde berichten worden op uw apparaat opgeslagen. beginnen… Video aan @@ -636,9 +615,6 @@ verstuurd ongeoorloofd verzenden Ongelezen - Tik hier om een nieuw gesprek te starten - Deze tekst is beschikbaar in instellingen - Welkom! je bent uitgenodigd voor de groep Je hebt geen chats Chats @@ -654,7 +630,6 @@ Controleer de beveiligingscode Beveiligingscode bekijken U moet uw contact toestemming geven om spraak berichten te verzenden om ze te kunnen verzenden. - (scannen of plakken vanaf klembord) Om verbinding te maken via een link Afwijzen Naam contact instellen @@ -670,7 +645,6 @@ SimpleX Adres Toon QR-code SimpleX-Logo - Je chatprofiel wordt verzonden naar uw contact Je wordt verbonden met de groep wanneer het apparaat van de groep host online is, even geduld a.u.b. of controleer het later! U wordt verbonden wanneer uw verbindingsverzoek wordt geaccepteerd, even geduld a.u.b. of controleer later! Je wordt verbonden wanneer het apparaat van je contact online is, even geduld a.u.b. of controleer het later! @@ -679,13 +653,11 @@ %s is niet geverifieerd %s is geverifieerd Vergelijk (of scan) de code op uw apparaten om end-to-end codering met uw contact te verifiëren. - Openen in mobiele app .]]> Uw chat profielen Uw SimpleX adres Stuur vragen en ideeën Stuur ons een e-mail SimpleX Vergrendelen - SMP servers Servers opslaan Servertest mislukt! Sommige servers hebben de test niet doorstaan: @@ -695,7 +667,6 @@ Gebruik server Gebruik SimpleX Chat servers. Uw server adres - Uw server Transport isolation Voorkeuren opslaan\? Opslaan en Contact melden @@ -703,16 +674,11 @@ Opslaan en Contacten melden Opslaan en groepsleden melden staking - Het berichten- en applicatieplatform dat uw privacy en veiligheid beschermt. Het profiel wordt alleen gedeeld met uw contacten. - We slaan geen van uw contacten of berichten (eenmaal afgeleverd) op de servers op. U kunt markdown gebruiken voor opmaak in berichten: geweigerde oproep geheim - De toekomst van berichtenuitwisseling wachten op antwoord… - Om uw privacy te beschermen, gebruikt SimpleX voor elk van uw contacten afzonderlijke ID\'s. - Gebruik chat Wanneer de app actief is video gesprek (niet e2e versleuteld) %1$s wil met je in contact komen via @@ -723,7 +689,6 @@ WebRTC ICE servers Relay server beschermt uw IP-adres, maar kan de duur van het gesprek observeren. Relay server wordt alleen gebruikt als dat nodig is. Een andere partij kan uw IP-adres zien. - Uw ICE servers Overgeslagen berichten via relay Video uit @@ -825,13 +790,11 @@ Resetten Verstuur Stuur een live bericht, het wordt bijgewerkt voor de ontvanger(s) terwijl u het typt - (om te delen met uw contact) Bedankt voor het installeren van SimpleX Chat! Camera Gebruik voor nieuwe verbindingen Star on GitHub De servers voor nieuwe verbindingen van je huidige chatprofiel - Uw SMP servers Opgeslagen WebRTC ICE servers worden verwijderd. Uw ICE servers Opslaan @@ -841,10 +804,8 @@ Wanneer beschikbaar Vereist simplexmq: v%s (%2s) - Transportisolatiemodus updaten\? bevestiging ontvangen… Wachten op bevestiging… - Geen gebruikers-ID\'s. Verbied het sturen van directe berichten naar leden. Verbieden het verzenden van spraak berichten. De beveiliging van SimpleX Chat is gecontroleerd door Trail of Bits. @@ -874,7 +835,6 @@ Bericht delen… SimpleX Vergrendelen Sla het wachtwoord op in Keychain - SOCKS proxy Dank aan de gebruikers – draag bij via Weblate! De app haalt regelmatig nieuwe berichten op - het gebruikt een paar procent van de batterij per dag. De app maakt geen gebruik van push meldingen, gegevens van uw apparaat worden niet naar de servers verzonden. De afbeelding kan niet worden gedecodeerd. Probeer een andere afbeelding of neem contact op met de ontwikkelaars. @@ -922,7 +882,6 @@ je hebt een eenmalige link gedeeld je hebt een eenmalige link incognito gedeeld Tik op de knop - GitHub repository.]]> %1$d bericht(en) overgeslagen gemodereerd gemodereerd door %s @@ -1013,23 +972,17 @@ Wachten op video Video De video wordt gedownload wanneer uw contact het uploaden heeft voltooid. - Fout bij opslaan van XFTP-servers - Fout bij het laden van XFTP servers Server vereist autorisatie om te uploaden, wachtwoord controleren Bestand vergelijken Bestand verwijderen Bestand downloaden Upload bestand - XFTP servers - Uw XFTP servers Host Poort SOCKS proxy instellingen Gebruik SOCKS proxy Use .onion hosts in op Nee als de SOCKS-proxy deze niet ondersteunt.]]> Bestand maken - Fout bij het laden van SMP servers - Zorg ervoor dat XFTP server adressen de juiste indeling hebben, regel gescheiden zijn en niet gedupliceerd zijn. poort %d Vergrendelen na Verificatie mislukt @@ -1087,8 +1040,6 @@ Sta oproepen alleen toe als uw contact dit toestaat. Sta toe dat uw contacten u bellen. Audio/video oproepen - " -\nBeschikbaar in v5.1" Audio/video gesprekken verbieden. Audio/video gesprekken zijn niet toegestaan. Snel en niet wachten tot de afzender online is! @@ -1106,10 +1057,8 @@ U kunt dit adres delen met uw contacten om ze verbinding te laten maken met %s. Exporteer thema Titel - Wanneer mensen vragen om verbinding te maken, kunt u dit accepteren of weigeren. U raakt uw contacten niet kwijt als u later uw adres verwijdert. SimpleX adres - Maak een adres aan zodat mensen contact met je kunnen opnemen. Maak een SimpleX adres aan Delen met contacten Uw contacten blijven verbonden. @@ -1122,10 +1071,8 @@ Sla instellingen voor automatisch accepteren op Instellingen opslaan\? Voer welkom bericht in... (optioneel) - Maak geen adres aan Hoi! \nMaak verbinding met mij via SimpleX Chat: %s - U kan het later maken Adres delen Welkom bericht invoeren… Thema importeren @@ -1151,7 +1098,6 @@ Database openen… Gebruikershandleiding.]]> Interface kleuren - U kunt uw adres delen als een link of QR-code - iedereen kan verbinding met u maken. Alle app-gegevens worden verwijderd. Er wordt een leeg chatprofiel met de opgegeven naam gemaakt en de app wordt zoals gewoonlijk geopend. Zelfvernietigings wachtwoord inschakelen @@ -1331,7 +1277,6 @@ Ontvangstbevestigingen zijn uitgeschakeld Verbind direct\? Toestaan - Verbind incognito Meldingen uitzetten Open app instellingen Een nieuw willekeurig profiel zal gedeeld worden. @@ -1342,7 +1287,6 @@ app -batterijgebruik / onbeperkt in de app -instellingen om met gesloten app te bellen.]]> Uw profiel %1$s wordt gedeeld. Verzoek voor het verbinden wordt naar dit groepslid verzonden. - Plak de link die je hebt ontvangen om verbinding te maken met je contact… App-batterijgebruik / Onbeperkt in de app-instellingen.]]> Gebruik een nieuw incognito profiel Concept bericht @@ -1509,7 +1453,6 @@ Open poort in firewall Fout bij het tonen van inhoud fout bij weergeven bericht - Je kunt het via Instellingen zichtbaar maken voor je SimpleX contacten. Geschiedenis wordt niet naar nieuwe leden gestuurd. Opnieuw proberen Camera niet beschikbaar @@ -1858,7 +1801,6 @@ Serverversie is niet compatibel met uw app: %1$s. Bericht doorgestuurd Nog geen directe verbinding, bericht wordt doorgestuurd door beheerder. - Overige XFTP servers Link scannen/plakken Zoom Huidig profiel @@ -1919,7 +1861,6 @@ Geüploade bestanden Upload fouten Downloadfouten - Server instellingen openen Server adres Alle profielen pogingen @@ -1938,15 +1879,12 @@ Het bericht kan later worden bezorgd als het lid actief wordt. Berichten verzonden Geen info, probeer opnieuw te laden - Overige SMP servers Totaal ontvangen Probeer het later. Maak opnieuw verbinding met alle verbonden servers om de bezorging van berichten te forceren. Er wordt gebruik gemaakt van extra data. Het serveradres is niet compatibel met de netwerkinstellingen: %1$s. Serverstatistieken worden gereset - dit kan niet ongedaan worden gemaakt! Beginnend vanaf %s. - Geconfigureerde SMP-servers - Geconfigureerde XFTP-servers Percentage weergeven Uitgeschakeld App update downloaden. Sluit de app niet @@ -2201,7 +2139,6 @@ U kunt het bericht kopiëren en verkleinen om het te verzenden. Voeg uw teamleden toe aan de gesprekken. Zakelijk adres - end-to-end-versleuteld verzonden, met post-kwantumbeveiliging in directe berichten.]]> App draait altijd op de achtergrond Controleer berichten elke 10 minuten Meldingen en batterij diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/pl/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/pl/strings.xml index 6b6c3ab3eb..b725bfab32 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/pl/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/pl/strings.xml @@ -3,7 +3,6 @@ Uwierzytelnianie urządzenia jest wyłączone. Wyłączanie blokady SimpleX. Uwierzytelnianie urządzenia nie jest włączone. Możesz włączyć blokadę SimpleX w Ustawieniach po włączeniu uwierzytelniania urządzenia. Bezpośrednie wiadomości - Połącz połączony łączenie łączenie… @@ -146,13 +145,10 @@ wyślij Udostępnij plik… Udostępnij media… - Dotknij, aby rozpocząć nowy czat Wiadomość zostanie usunięta dla wszystkich członków. - Ten tekst jest dostępny w ustawieniach Zbyt wiele obrazów! nieautoryzowane wysyłanie oznacz jako nieprzeczytane - Witaj! Witaj %1$s! Jesteś zaproszony do grupy Nie masz czatów @@ -198,7 +194,6 @@ Plik zostanie odebrany, gdy Twój kontakt będzie online, proszę czekać lub sprawdzić później! Duży plik! Powiadomienia - Oczekujące Nagraj wiadomość głosową Wyślij wiadomość Ustaw nazwę kontaktu… @@ -221,13 +216,11 @@ Wysyłaj wiadomości na żywo - będą one aktualizowane dla odbiorcy(ów) w trakcie ich wpisywania Wyślij wiadomość na żywo Skopiowano do schowka - Utwórz jednorazowy link do zaproszenia brak szczegółów Jednorazowy link zaproszenia (przechowywane tylko przez członków grupy) Zeskanuj kod QR Rozpocznij nowy czat - (aby udostępnić Twojemu kontaktowi) Plik Odmowa Uprawnienia! Aparatu @@ -269,10 +262,8 @@ Połącz się przez link Email pomoc - pokaż kod QR w rozmowie wideo, lub udostępnij link.]]> Nieprawidłowy kod bezpieczeństwa! Nieprawidłowy link! - Nieprawidłowy kod QR Oznacz jako zweryfikowane Więcej Jednorazowy link zaproszenia @@ -285,16 +276,11 @@ Udostępnij link jednorazowy Pokaż kod QR %s jest zweryfikowany - Ten kod QR nie jest linkiem! Ten ciąg nie jest linkiem połączenia! Adres SimpleX Logo SimpleX - Otwórz w aplikacji mobilnej.]]> - Twój profil czatu zostanie wysłany -\ndo Twojego kontaktu Zostaniesz połączony do grupy, gdy urządzenie gospodarza grupy będzie online, proszę czekać lub sprawdzić później! Zostaniesz połączony, gdy urządzenie Twojego kontaktu będzie online, proszę czekać lub sprawdzić później! - Dodaj gotowe serwery Dodaj serwer Dodaj do innego urządzenia Konsola czatu @@ -308,7 +294,6 @@ Nieprawidłowy adres serwera! Pomoc markdown Markdown w wiadomościach - Predefiniowany serwer Adres predefiniowanego serwera Oceń aplikację Zapisane serwery WebRTC ICE zostaną usunięte. @@ -320,7 +305,6 @@ Test serwera nie powiódł się! Blokada SimpleX %s nie jest zweryfikowany - Serwery SMP Daj gwiazdkę na GitHub Przetestuj serwer Przetestuj serwery @@ -329,7 +313,6 @@ Używanie serwerów SimpleX Chat. Twoje profile czatu Twoje serwery ICE - Twój serwer Twój adres serwera Twój adres SimpleX Przyczyń się @@ -357,7 +340,6 @@ Wymagane Zapisz Izolacja transportu - Zaktualizować tryb izolacji transportu\? Użyć bezpośredniego połączenia z Internetem\? Użyj hostów .onion Użyć proxy SOCKS\? @@ -390,11 +372,8 @@ Hasło ukrytego profilu Hasło do wyświetlenia Zapisz hasło profilu - Platforma komunikacyjna i aplikacyjna chroniąca Twoją prywatność i bezpieczeństwo. Profil jest udostępniany tylko Twoim kontaktom. Aby ujawnić Twój ukryty profil, wprowadź pełne hasło w pole wyszukiwania na stronie Twoich profili czatu. - Nie przechowujemy na serwerach żadnych Twoich kontaktów ani wiadomości (po ich dostarczeniu). - Ty kontrolujesz swój czat! Twój profil, kontakty i dostarczone wiadomości są przechowywane na Twoim urządzeniu. a + b O SimpleX @@ -408,24 +387,16 @@ połączony łączenie… łączenie połączenia… - Utwórz - Zdecentralizowane zakończona Jak korzystać z markdown - Odporność na spam kursywa nieodebrane połączenie - Każdy może hostować serwery. - Ty decydujesz, kto może się połączyć. - Redefinicja prywatności otrzymano odpowiedź… otrzymano potwierdzenie… odrzucone połączenie sekret uruchamianie… przekreślenie - Brak identyfikatorów użytkownika. - Następna generacja \nprywatnych wiadomości oczekiwanie na odpowiedź… oczekiwanie na potwierdzenie… Możesz używać markdown do formatowania wiadomości: @@ -434,11 +405,8 @@ Natychmiastowy Jak wpływa na baterię Nawiąż prywatne połączenie - Tylko urządzenia klienckie przechowują profile użytkowników, kontakty, grupy i wiadomości. Okresowo Prywatne powiadomienia - repozytorium GitHub.]]> - Użyj czatu Gdy aplikacja jest uruchomiona Zużywa więcej baterii! Aplikacja zawsze działa w tle - powiadomienia są wyświetlane natychmiastowo.]]> Przychodzące połączenie audio @@ -462,7 +430,6 @@ Serwer przekaźnikowy chroni Twój adres IP, ale może obserwować czas trwania połączenia Pokaż Serwery WebRTC ICE - Twoje serwery ICE Odbierz połączenie Dźwięk wyłączony Dźwięk włączony @@ -525,7 +492,6 @@ Uruchom czat Wyślij podgląd linku Ustawienia - Proxy SOCKS Zatrzymać czat\? Wspieraj SimpleX Chat Motywy @@ -918,7 +884,6 @@ łączenie… Kontakt i wszystkie wiadomości zostaną usunięte - nie można tego cofnąć! Błąd połączenia (UWIERZYTELNIANIE) - Połącz się przez link / kod QR Utwórz tajną grupę Utwórz tajną grupę Baza danych jest zaszyfrowana przy użyciu losowego hasła. Proszę zmienić je przed eksportem. @@ -928,7 +893,6 @@ Znikające wiadomości są zabronione. Błąd usuwania prośby o kontakt Nie znaleziono pliku - Błąd zapisu serwerów SMP Błąd aktualizacji linku grupy Błąd importu bazy danych czatu Błąd dołączenia do grupy @@ -948,7 +912,6 @@ Członkowie mogą wysyłać wiadomości głosowe. Grupa zostanie usunięta dla wszystkich członków - nie można tego cofnąć! Jak korzystać z Twoich serwerów - zeskanować kod QR w rozmowie wideo, lub Twój rozmówca może udostępnić link z zaproszeniem.]]> Jeśli odrzucisz nadawca NIE zostanie powiadomiony. incognito poprzez link adresu kontaktowego Jeśli otrzymałeś link do zaproszenia SimpleX Chat, możesz go otworzyć w swojej przeglądarce: @@ -961,7 +924,6 @@ zaproszenie do grupy %1$s Nieodwracalne usuwanie wiadomości Upewnij się, że adresy serwerów WebRTC ICE są w poprawnym formacie, rozdzielone liniami i nie są zduplikowane. - Upewnij się, że adresy serwerów SMP są w poprawnym formacie, rozdzielone liniami i nie są zduplikowane. Poproś Twój kontakt o włączenie wysyłania wiadomości głosowych. Sprawdź, czy użyłeś prawidłowego linku lub poproś Twój kontakt o przesłanie innego. Wiadomość zostanie usunięta - nie można tego cofnąć! @@ -976,7 +938,6 @@ Odbiorcy widzą aktualizacje podczas ich wpisywania. Uruchom ponownie aplikację, aby użyć zaimportowanej bazy danych czatu. Zapisz profil grupy - (zeskanuj lub wklej ze schowka) Ustaw preferencje grupy Udostępnij wiadomość… Bezpieczeństwo SimpleX Chat zostało zaudytowane przez Trail of Bits. @@ -988,9 +949,7 @@ Rola zostanie zmieniona na "%s". Wszyscy w grupie zostaną powiadomieni. Tego działania nie można cofnąć - wszystkie odebrane i wysłane pliki oraz media zostaną usunięte. Obrazy o niskiej rozdzielczości pozostaną. Adres odbiorczy zostanie zmieniony na inny serwer. Zmiana adresu zostanie zakończona gdy nadawca będzie online. - Ten link nie jest prawidłowym linkiem połączenia! SimpleX działa w tle zamiast korzystać z powiadomień push.]]> - Aby chronić Twoją prywatność, SimpleX używa oddzielnych identyfikatorów dla każdego z Twoich kontaktów. Aby zweryfikować szyfrowanie end-to-end z Twoim kontaktem porównaj (lub zeskanuj) kod na waszych urządzeniach. Użyj dla nowych połączeń O ile Twój kontakt nie usunął połączenia lub ten link był już użyty, może to być błąd - zgłoś go. \nAby się połączyć, poproś Twój kontakt o utworzenie kolejnego linku połączenia i sprawdź, czy masz stabilne połączenie z siecią. @@ -1014,26 +973,19 @@ Twój profil jest przechowywany na Twoim urządzeniu i udostępniany tylko Twoim kontaktom. Serwery SimpleX nie widzą Twojego profilu. udostępniłeś jednorazowy link incognito Zostaniesz połączony ze wszystkimi członkami grupy. - Twoje serwery SMP Zostaniesz połączony, gdy Twoje żądanie połączenia zostanie zaakceptowane, proszę czekać lub sprawdzić później! - Błąd ładowania serwerów SMP - Błąd ładowania serwerów XFTP - Błąd zapisu serwerów XFTP Utwórz plik Pobierz plik Serwer wymaga autoryzacji do przesłania, sprawdź hasło Prześlij plik Porównaj plik Usuń plik - Serwery XFTP - Twoje serwery XFTP Host Port port %d Użyj hostów .onion na Nie jeśli proxy SOCKS ich nie obsługuje.]]> Ustawienia PROXY SOCKS Użyj proxy SOCKS - Upewnij się, że adresy serwerów XFTP są w poprawnym formacie, rozdzielone liniami i nie są zduplikowane. Uwierzytelnianie nie powiodło się Wpis pinu Tryb blokady SimpleX @@ -1081,8 +1033,6 @@ Zezwalaj na połączenia tylko wtedy, gdy Twój kontakt na to pozwala. Zezwól swoim kontaktom na połączenia do Ciebie. Połączenia audio/wideo - " -\nDostępny w v5.1" Zarówno Ty, jak i Twój kontakt możecie nawiązywać połączenia. Zabroń połączeń audio/wideo. Tylko Twój kontakt może wykonywać połączenia. @@ -1124,7 +1074,6 @@ Zapisać ustawienia\? Przestań udostępniać Kontynuuj - Nie twórz adresu Cześć! \nPołącz się ze mną za pomocą SimpleX Chat: %s Zaproś znajomych @@ -1137,17 +1086,14 @@ link jednorazowy Podręczniku Użytkownika.]]> Adres SimpleX - Kiedy ludzie proszą o połączenie, możesz je zaakceptować lub odrzucić. Nie stracisz kontaktów, jeśli później usuniesz swój adres. Dostosuj motyw Kolory interfejsu Twoje kontakty pozostaną połączone. Dodaj adres do swojego profilu, aby Twoje kontakty mogły go udostępnić innym osobom. Aktualizacja profilu zostanie wysłana do Twoich kontaktów. - Utwórz adres, aby ludzie mogli się z Tobą połączyć. Utwórz adres SimpleX Zapisz ustawienia adresów SimpleX Udostępnij kontaktom - Możesz go utworzyć później Adres SimpleX Drugorzędny @@ -1166,7 +1112,6 @@ Wszystkie Twoje kontakty pozostaną połączone. Aktualizacja profilu zostanie wysłana do Twoich kontaktów. Wpisz wiadomość powitalną… Jeśli nie możesz spotkać się osobiście, pokaż kod QR w rozmowie wideo lub udostępnij link. - Możesz udostępnić swój adres jako link lub kod QR - każdy może się z Tobą połączyć. Pin samozniszczenia Pin samozniszczenia włączony! Aby się połączyć, Twój kontakt może zeskanować kod QR lub skorzystać z linku w aplikacji. @@ -1341,9 +1286,7 @@ Brak rozmów w tle SimpleX nie może działać w tle. Otrzymasz powiadomienia gdy aplikacja jest uruchomiona. Nowy losowy profil zostanie udostępniony. - Wklej otrzymany link w pole poniżej, aby połączyć się z kontaktem… Twój profil %1$s zostanie udostępniony. - Połącz incognito Aplikacja może zostać zamknięta po 1 minucie w tle. Optymalizacja baterii / Nieograniczony w ustawieniach aplikacji.]]> Optymalizacja baterii / Nieograniczony w ustawieniach aplikacji.]]> @@ -1501,7 +1444,6 @@ Proszę poczekać na załadowanie pliku z połączonego telefonu Zweryfikuj połączenie Odśwież - Możesz ustawić go jako widoczny dla swoich kontaktów SimpleX w Ustawieniach. Losowy błąd wyświetlania zawartości błąd wyświetlania wiadomości @@ -1888,13 +1830,11 @@ Fragmenty pobrane Fragmenty przesłane Pobrane pliki - Skonfigurowane serwery SMP Potwierdzono Błędy potwierdzenia Usunięto Aktywne połączenia Wszystkie profile - Skonfigurowane serwery XFTP błąd odszyfrowywania Szczegółowe statystyki Szczegóły @@ -1912,8 +1852,6 @@ wygasły Fragmenty usunięte Brak bezpośredniego połączenia, wiadomość została przekazana przez administratora. - Inne serwery SMP - Inne serwery XFTP Pokaż procent Stabilny Aktualizacja dostępna: %s @@ -1946,7 +1884,6 @@ Zabezpieczone Zasubskrybowano Przesłane pliki - Otwórz ustawienia serwera Adres serwera Wysłane wiadomości Ponownie połącz ze wszystkimi połączonymi serwerami w celu wymuszenia dostarczenia wiadomości. Wykorzystuje to dodatkowy ruch. @@ -2138,7 +2075,6 @@ Dodaj listę Dodaj do listy "Wszystkie konwersacje zostaną usunięte z list %s, oraz listy." - zaszyfrowanej, z post-kwantowym bezpieczeństwem w bezpośrednich wiadomościach.]]> Dodaj znajomych Dodane serwery plików i mediów Paski narzędziowe aplikacji diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/pt-rBR/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/pt-rBR/strings.xml index 5b54d0c452..01239d6049 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/pt-rBR/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/pt-rBR/strings.xml @@ -104,9 +104,7 @@ Permitir Permitir enviar mensagens temporárias. Permitir o envio de mensagens diretas para os membros. - Conectar via link/QR Code Todas as mensagens serão apagadas. Isso não pode ser desfeito! As mensagens serão apagadas APENAS para você. - Adicionar servidores predefinidos Adicionar servidor Crie seu perfil Ícone de contexto @@ -146,7 +144,6 @@ Contato verificado Contato ainda não está conectado! Contribuir - Criar Acessar os servidores por meio do proxy SOCKS na porta %d? O proxy deve ser iniciado antes de ativar esta opção. Permitir que seus contatos apaguem permanentemente as mensagens enviadas em até 24h. Adicionar a outro dispositivo @@ -156,7 +153,6 @@ Conexão Excluir perfil de chat\? Apagar para todos - Conectar conectado conectando apagado @@ -171,7 +167,6 @@ Apagar contato Configurar servidores ICE Excluir endereço\? - Descentralizado Excluir banco de dados O banco de dados é criptografado usando uma senha aleatória. Altere-a antes de exportar. Confirmar nova senha… @@ -281,7 +276,6 @@ Editar Ativar exclusão automática de mensagens\? %d seg - Erro ao salvar servidores SMP Erro ao aceitar solicitação de contato Erro ao excluir solicitação de contato Erro ao trocar de perfil! @@ -382,8 +376,6 @@ Ocultar contato e mensagem Como usar Como usar markdown - exiba o QR Code na videochamada ou compartilhe o link.]]> - escanear o QR Code em uma videochamada, ou pedir que o contato compartilhe um link de convite.]]> Se você confirmar, os servidores de mensagens poderão ver seu endereço IP e seu provedor - e quais servidores você está se conectando. Imagem Se você recebeu o link de convite SimpleX Chat, você pode abri-lo em seu navegador: @@ -391,13 +383,11 @@ anonimamente pelo link do grupo Chamada de vídeo recebida Permita na próxima caixa de diálogo para receber notificações instantaneamente.]]> - Gerar link de uso único Arquivo não encontrado Se você optar por rejeitar o remetente NÃO será notificado. Código de segurança incorreto! Instale o SimpleX para terminal Como funciona - Imune a spam Vire a câmera Desligar Modo anônimo @@ -439,7 +429,6 @@ Atualize o aplicativo e entre em contato com os desenvolvedores. O servidor exige autorização para criar filas. Verifique a senha. Revelar - Pendente Proibir o envio de mensagens diretas para os membros. Escanear QR Code Recusar @@ -449,7 +438,6 @@ Novo em %s Envie-nos um email Escanear QR Code do servidor - Seus servidores SMP nunca Restaurar backup do banco de dados? moderado @@ -459,7 +447,6 @@ Arquivo grande! Marcar como lida Você convidou seu contato - QR Code inválido Mais Você será conectado ao grupo quando o dispositivo que hospeda o grupo estiver online. Aguarde ou verifique mais tarde. Essa string não é um link de conexão! @@ -480,7 +467,6 @@ Notificações periódicas Câmera Seus servidores ICE - Seus servidores ICE Privacidade Entrar no grupo? Sair @@ -546,7 +532,6 @@ conversa inválida Abrir o link no navegador pode reduzir a privacidade e a segurança da conexão. Links SimpleX não confiáveis ficarão vermelhos. Link de conexão inválido - Certifique-se de que os endereços do servidor SMP estejam no formato correto, separados por linhas e não estejam duplicados. O remetente excluiu a solicitação de conexão. Notificações periódicas estão desativadas! As notificações instantâneas estão desativadas! @@ -582,7 +567,6 @@ observador Por favor, entre em contato com o administrador do grupo. Markdown em mensagens - Servidores SMP Endereço do servidor predefinido Rejeitar %1$d mensagem(ens) ignorada(s) @@ -621,22 +605,17 @@ Redefinir Mensagem ao vivo! Envie uma mensagem ao vivo: ela será atualizada para os destinatários enquanto você digita - (para compartilhar com seu contato) - (escanear ou colar da área de transferência) Você aceitou a conexão Marcar como não lida Silenciar Definir nome do contato Link inválido! - Esse QR Code não é um link! - Seu perfil de chat será enviado\nao seu contato Você será conectado quando o dispositivo do seu contato estiver online. Aguarde ou verifique mais tarde. Como Teste do servidor falhou! Os hosts .onion não serão usados. Os hosts .onion serão obrigatórios para a conexão.\nAtenção: você não conseguirá se conectar aos servidores sem um endereço .onion. Versão principal: v%s - repositório do GitHub.]]> Como isso afeta a bateria %1$s quer se conectar com você via sem criptografia de ponta a ponta @@ -745,14 +724,11 @@ Novidades Chamadas de áudio e vídeo Proteja seus perfis de chat com uma senha! - Este texto está disponível nas configurações Escanear código Os hosts .onion serão usados quando estiverem disponíveis. Seu perfil atual - Privacidade redefinida Notificações privadas Fazer uma conexão privada - Você decide quem pode se conectar. Isso pode acontecer quando:\n1. As mensagens expiraram no remetente após 2 dias ou no servidor após 30 dias.\n2. A descriptografia da mensagem falhou porque você ou seu contato usou um backup antigo do banco de dados.\n3. A conexão foi comprometida. Você deverá inserir a senha sempre que o aplicativo for iniciado – ela não fica armazenada no dispositivo. Salvar mensagem de boas-vindas\? @@ -781,7 +757,6 @@ Usar servidor Você precisa permitir que seu contato envie mensagens de voz para poder enviá-las também. Seus perfis de chat - Servidor predefinido Escaneie o código de segurança do aplicativo do seu contato. Enviar mensagem Requerido @@ -833,17 +808,12 @@ O banco de dados não está funcionando corretamente. Toque para saber mais Aguardando a imagem Mostrar QR Code - Abrir no aplicativo móvel.]]> Testar servidores - Atualizar o modo de isolamento de transporte\? Vídeo ativado Aguardando o arquivo Toque no botão Para começar uma nova conversa Ligar - Bem-vindo(a)! - O futuro da transmissão de mensagens - Proxy SOCKS Não foi possível concluir a alteração da senha do banco de dados. Pare o chat para exportar, importar ou excluir o banco de dados. Não será possível enviar ou receber mensagens enquanto o chat estiver parado. %s segundo(s) @@ -865,7 +835,6 @@ O teste falhou na etapa %s. Iniciar periodicamente envio não autorizado - Toque para iniciar uma nova conversa Você não tem conversas aguardando resposta… Seu banco de dados atual será EXCLUÍDO e SUBSTITUÍDO pelo importado.\nEsta ação não pode ser desfeita - seu perfil, contatos, mensagens e arquivos serão completamente destruídos. @@ -883,7 +852,6 @@ Você é um colaborador Mensagem de voz (%1$s) Compartilhar link - Para proteger sua privacidade, o SimpleX usa IDs separados para cada um dos seus contatos. chamada de vídeo Mostrar Servidores ICE WebRTC @@ -909,12 +877,9 @@ Alterar endereço de recebimento\? Ativar som Logo SimpleX - Esse link não é válido! Servidor de teste simplexmq: v%s (%2s) Isolar transporte - Você controla seu chat! - Sem identificadores de usuário. Alto-falante ligado Vídeo desativado Alto-falante desligado @@ -948,7 +913,6 @@ Compartilhar mensagem… Bem-vindo(a) %1$s! Você está convidado para o grupo - Usar chat Mensagens de voz são proibidas neste chat. Vídeo Vídeo enviado @@ -964,7 +928,6 @@ Mostrar: iniciando… aguardando confirmação… - Não armazenamos nenhum dos seus contatos nem suas mensagens (uma vez entregues) nos servidores. Mensagens ignoradas Toque para ativar o perfil. Mostrar perfil de chat @@ -972,7 +935,6 @@ Não foi possível conectar ao servidor que recebe mensagens desta conexão: %1$s. Tentando se conectar ao servidor utilizado para receber mensagens desta conexão. Você está conectado ao servidor usado para receber mensagens desta conexão. - Seu servidor Bloqueio SimpleX A impressão digital do endereço do servidor não corresponde à do certificado. Você enviou um convite de grupo @@ -983,7 +945,6 @@ imagem de pré-visualização do link Para proteger suas informações, ative o bloqueio SimpleX. \nVocê será solicitado a completar a autenticação antes que este recurso seja ativado. - Qualquer um pode hospedar os servidores. Claro O contato permite ativado @@ -1004,23 +965,16 @@ Apoie SimpleX Chat Esta ação não pode ser desfeita - as mensagens enviadas e recebidas antes do período selecionado serão excluídas. Isso pode levar vários minutos. Confirme as atualizações do banco de dados - Somente os dispositivos do usuário armazenam perfis, contatos, grupos e mensagens. Obrigado por instalar o SimpleX Chat! - A plataforma de mensagens que protege sua privacidade e segurança. Você está tentando convidar um contato com quem compartilhou um perfil anônimo para o grupo no qual está usando seu perfil principal. Fila segura imagem de perfil temporária - Erro ao carregar servidores SMP - Erro ao carregar servidores XFTP - Erro ao salvar servidores XFTP - Certifique-se de que os endereços dos servidores XFTP estejam no formato correto, separados por linha e não estão duplicados. Criar arquivo Baixar arquivo O servidor requer autorização para fazer upload, verifique a senha. Enviar arquivo Comparar arquivo Excluir arquivo - Seus servidores XFTP Autenticação falhou Mudar senha Senha atual @@ -1036,7 +990,6 @@ Você não pôde ser verificado; por favor, tente novamente. Autenticar Bloqueio SimpleX não ativado! - Servidores XFTP porta %d Configurações do proxy SOCKS Usar proxy SOCKS @@ -1077,7 +1030,6 @@ %1$d mensagens ignoradas. Chamadas de áudio/vídeo Chamadas de áudio/vídeo são proibidas. - \nDisponível em v5.1 Você e seu contato podem fazer chamadas. Somente você pode fazer chamadas. Somente seu contato pode fazer chamadas. @@ -1098,10 +1050,8 @@ Destaque adicional link de uso único Adicione o endereço ao seu perfil para que seus contatos possam compartilhá-lo com outras pessoas. A atualização do perfil será enviada aos seus contatos. - Crie um endereço para permitir que as pessoas se conectem com você. Criar endereço SimpleX Continuar - Não criar endereço Endereço Tema escuro Fundo @@ -1121,10 +1071,8 @@ Título Se não puderem se encontrar pessoalmente, exiba o QR Code na videochamada ou compartilhe o link. Para se conectar, seu contato pode ler o QR Code ou usar o link no aplicativo. - Você pode compartilhar seu endereço como link ou QR Code para que qualquer pessoa possa se conectar com você. Você não perderá seus contatos se, posteriormente, excluir seu endereço. Endereço SimpleX - Quando alguém solicitar conexão, você pode aceitar ou recusar. Cores da interface Compartilhar com contatos do SimpleX A atualização do perfil será enviada aos seus contatos. @@ -1135,7 +1083,6 @@ \nConecte-se comigo via SimpleX Chat: %s Convide amigos Vamos conversar no SimpleX - Você pode criá-lo mais tarde Compartilhar endereço… Você pode compartilhar este endereço com seus contatos para que eles se conectem com %s. Prévia @@ -1299,13 +1246,11 @@ As confirmações de entrega serão ativadas para todos os contatos. Ocorreu um erro ao ativar as confirmações de entrega! Escolher arquivo - Conexão anônima Permitir Desativar notificações Sem chamadas de fundo Abrir configurações do aplicativo Um novo perfil aleatório será compartilhado. - Cole o link que você recebeu para se conectar com seu contato… Desativar confirmações para grupos? Ativar confirmações para grupos? O envio de confirmações está desativado para %d grupos @@ -1401,7 +1346,6 @@ Você pode visualizar o código de convite novamente nos detalhes de conexão. Opções de desenvolvedor Mostrar chamadas de API lentas - Você pode torná-lo visível para seus contatos nas Configurações. Criptografar arquivos locais %s conectou Erro ao bloquear membro para todos @@ -1633,8 +1577,6 @@ Configurações avançadas Verificar atualizações Completas - Servidores SMP configurados - Servidores XFTP configurados Verifique sua conexão de internet e tente novamente Verificar atualizações Modo de cor @@ -1725,7 +1667,6 @@ \nErro: %2$s Destinatário(s) não podem ver de onde essa mensagem veio. A mensagem poderá ser entregue mais tarde se o membro se tornar ativo. - Outros servidores SMP Para proteger seu endereço IP, o roteamento privado usa seus servidores SMP para entregar mensagens. Pular essa versão Baixar %s (%s) @@ -1911,7 +1852,6 @@ Configurações Manter conversa Apenas apagar conversa - Outros servidores XFTP Use roteamento privado em servidores desconhecidos quando o endereço de IP não está protegido. Sim Instalar atualização @@ -2001,7 +1941,6 @@ Endereço do servidor Tamanho Erros de envio - Abrir configurações de servidor Selecione As mensagens serão apagadas para todos os membros. As mensagens serão marcadas como moderadas para todos os membros. @@ -2123,7 +2062,6 @@ %s.]]> Mensagens diretas entre membros são proibidas neste chat. Melhor desempenho de grupos - com criptografia de ponta a ponta, com segurança pós-quântica em mensagens diretas.]]> A conversa será apagada para você. Isso não pode ser desfeito! Condições aceitas em: %s. Mensagens diretas entre membros são proibidas. diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/pt/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/pt/strings.xml index 6ab12f76f6..8b43d5295d 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/pt/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/pt/strings.xml @@ -43,8 +43,6 @@ não Definir preferências de grupo Mensagens de voz - " -\nDisponível na v5.1" Aceitar Permitir que seus contatos enviem mensagens que desaparecem. Definir 1 dia @@ -71,10 +69,8 @@ As mensagens enviadas serão eliminadas após o tempo definido. Mensagem de rascunho Defina-o em vez de autenticação do sistema. - Conectar Você está conectado ao servidor usado para receber mensagens deste contacto. você - Certifique-se de que os endereços do servidor XFTP estão no formato correto, separados por linhas e não estão duplicados. Desconectar Possivelmente, a impressão digital do certificado no endereço do servidor está incorreta A senha é necessária @@ -128,7 +124,6 @@ Aceitar Aceitar pedido de ligação\? Aceitar modo anónimo - Adicionar servidores pré-definidos Aceder aos servidores via proxy SOCKS no porto %d\? O proxy tem de iniciar antes de ativar esta opção. Adicionar a outro dispositivo administrador @@ -157,14 +152,12 @@ Nome para Exibição: Mostrar código QR Mensagens temporárias são proibidas neste grupo. - Conectar via link / código QR Mensagens temporárias são proibidas nesta conversa. Enviar AO VIVO Enviar uma mensagem ao vivo - ela será atualizada para o(s) destinatário(s) à medida que você a digita Nome local Modo de bloqueio - Certifique-se de que os endereços do servidor SMP estão no formato correto, separados por linhas e não estão duplicados. Fazer uma conexão privada Tornar o perfil privado! Certifique-se de que os endereços do servidor WebRTC ICE estão no formato correto, separados por linhas e não estão duplicados. @@ -204,7 +197,6 @@ Você e o seu contato podem eliminar irreversivelmente as mensagens enviadas. Você já tem um perfil de chat com o mesmo nome para exibição. Por favor, escolha outro nome. Você está convidado para o grupo - Abrir na aplicação móvel.]]> Você está convidado para o grupo. Junte-se para se conectar com os membros do grupo. Grupo Áudio ligado @@ -325,7 +317,6 @@ Definir senha para exportar Pedido de conexão enviado! Criar endereço - Criar colorido conectando… Conectando chamada @@ -374,7 +365,6 @@ Se você recebeu convite de ligação do SimpleX Chat, você pode abri-lo no seu navegador: Toque para entrar no modo anônimo Salvar senha na Keystore - mostre o código QR na chamada de vídeo ou partilhe a ligação.]]> Salvar definições de aceitação automática Aceitar automaticamente Salvar e atualizar o perfil do grupo @@ -400,7 +390,6 @@ Ligação inválida! Guia de Utilizador.]]> Conexão - Crie um endereço para permitir que as pessoas se conectem consigo. Salvar e notificar contato Salvar e notificar contatos Salvar e notificar membros do grupo @@ -411,7 +400,6 @@ Todos os seus contatos permanecerão conectados. A atualização do perfil será enviada aos seus contatos. Adicione endereço ao seu perfil, para que os seus contatos possam partilhá-lo com outras pessoas. A atualização do perfil será enviada aos seus contatos. Os contactos podem marcar mensagens para eliminar; você será capaz de as ver. - Criar convite de ligação de utilização única anónimo via ligação de utilização única anónimo via ligação de grupo via ligação de utilização única @@ -419,15 +407,11 @@ Ligação para 1 utilização Criar ligação Apagar ligação\? - ler o código QR na chamada de vídeo , ou o seu contato pode partilhar um convite de ligação.]]> Se não se poderem encontrar pessoalmente, mostre o código QR numa chamada de vídeo ou partilhe a ligação. - As pessoas podem se conectar a si apenas por meio das ligações que você partilhe. Verifique se você usou a ligação correta ou peça ao seu contato para enviar outra. Partilhar ligação Enviar pré-visualizações de ligações - (ler ou colar da área de transferência) Partilhar ligação de utilização única - GitHub.]]> Criar perfil Criar o seu perfil %d contacto(s) selecionado(s) @@ -467,7 +451,6 @@ Eliminar servidor Personalizar tema Eliminar imagem - Não criar endereço Desativar Palavra-passe da base de dados Criar endereço SimpleX @@ -476,7 +459,6 @@ Eliminar contacto? Dispositivo Mensagens diretas - Descentralizado mensagem duplicada Ficheiro: %s você: %1$s @@ -498,7 +480,6 @@ Você não irá perder os seus contatos se eliminar o seu endereço mais tarde. Você pode esconder ou silenciar um perfil de utilizador - pressione-o para o menu. Vídeo ligado - Servidores XFTP %1$s quer conectar-se consigo via Junte-se Sair @@ -535,8 +516,6 @@ Endereço SimpleX Equipa SimpleX Saiba mais - Quando as pessoas solicitam conexão, você pode aceitá-la ou rejeitá-la. - Você pode criá-lo mais tarde Vamos conversar no SimpleX Chat Vídeo desligado %1$d mensagem(s) ignoradas @@ -573,7 +552,6 @@ Mais melhorias chegam brevemente! Pré-visualização de notificação Muito provavelmente este contato eliminou a conexão consigo. - Este texto está disponível nas definições Pode ser alterado mais tarde através das definições. Ajuda Suporte SimpleX Chat @@ -637,7 +615,6 @@ Para verificar a encriptação de ponta a ponta com o seu contato, compare (ou leia) o código nos seus dispositivos. Ler o código de segurança a partir da aplicação do seu contacto. Ler o código QR do servidor - Apenas dispositivos pessoais armazenam perfis de utilizador, contatos, grupos e mensagens. o contacto tem encriptação ponta a ponta sem encriptação ponta a ponta criador @@ -725,7 +702,6 @@ Pesquisar Desativado O teste falhou na etapa %s. - Servidor SMP Servidor de teste %s segundo(s) Parar conversa? @@ -741,7 +717,6 @@ %s, %s e %d outros membros conectados Iniciar conversa? Começa periodicamente - Toque para iniciar uma nova conversa Sistema de autenticação Parar de receber o arquivo? Servidores de teste @@ -798,9 +773,6 @@ A transferir detalhes de ligação A criar ligação de arquivo duplicados(as) - Abrir definições do servidor - O seu perfil de conversa será enviado -\npara o seu contacto Conectar com %1$s? Auricular Dispositivos @@ -818,7 +790,6 @@ Ativar Computador O seu contacto enviou um ficheiro que é maior que o tamanho máximo suportado atualmente (%1$s). - O seu servidor O endereço do seu servidor As tuas chamadas Não enviar histórico a novos membros. @@ -836,7 +807,6 @@ Os seus contactos podem permitir eliminação total de mensagens. Desconectado com a razão: %s Você já solicitou ligação através deste endereço! - Código e protocolo open-source - qualquer indivíduo pode ser anfitrião dos servidores. %d mensagens bloqueadas %d mensagens marcadas como eliminadas Você não pode ser verificado; por favor tente novamente. @@ -885,7 +855,6 @@ Transferir %s (%s) Os seus servidores ICE O seu perfil, contactos e mensagens entregues são armazenados no seu dispositivo. - Os seus servidores ICE Desativar (manter as sobreposições de grupo) Desativar (manter sobreposições) Desativar recibos? @@ -926,10 +895,7 @@ Você será conectado quando o dispositivo do seu contacto estiver online, por favor aguarde ou volte mais tarde! Desconectar Desativado - Os seus servidores XFTP - Você controla a conversa! Você poderá ver a conversa com %1$s na lista de conversas. - Os seus servidores SMP Você pode usar markdown para formatar mensagens: Você poderá enviar mensagens para %1$s através das conversas Eliminadas. O seu contacto precisa de estar online para a ligação ser completada. @@ -943,7 +909,6 @@ A tua base de dados de conversas Detalhes Você pode partilhar o seu endereço com os seus contactos para permitir que se conectem com %s. - Você pode partilhar o seu endereço como uma ligação ou código QR - qualquer pessoa pode conectar-se a si. Permitir Todas as novas mensagens de %s serão ocultadas! Somente você pode fazer ligações. diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/ro/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/ro/strings.xml index 3af5fbee19..8c7651fecd 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/ro/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/ro/strings.xml @@ -33,7 +33,6 @@ Accepți cererea de conectare? Adaugă contact apel acceptat - Adaugă servere presetate Adaugă profil Adresă Adaugă servere prin scanarea codurilor QR. @@ -104,7 +103,6 @@ Arhivează și încarcă Bază de date de arhivare Se creează un link de arhivare - Creează link de invitație de unică folosință Acceptă automat imagini Apel audio apel audio @@ -128,7 +126,6 @@ Autentificare anulată Cod de acces aplicație este înlocuit cu cod de acces de autodistrugere. Apeluri audio/video - \nDisponibil în v5.1 Cod de acces aplicație Migrare date aplicație Eroare critică @@ -285,7 +282,6 @@ Setează numele contactului… Trimite mesaj Trimiteți un mesaj care dispare - (scanează sau lipește din clipboard) Afișează codul QR Testul serverului a eșuat! Afișează: @@ -341,7 +337,6 @@ Pătrat, cerc, sau orice între. %s nu este verificat %s este verificat - Servere SMP %s, %s și %d alți membri s-au conectat %s, %s și %d membri Difuzor @@ -386,7 +381,6 @@ Migrează de pe alt dispozitiv pe noul dispozitiv și scanați codul QR.]]> Te conectezi prin adresa de contact? Vrei să te conectezi printr-un link unic? - Conectare incognito Contactul deja există Schimbă codul de acces Puteți activa SimpleX Lock din Setări. @@ -423,7 +417,6 @@ Profilurile tale de conversație Creează un profil de conversație apel încheiat %1$s - Creează Bluetooth Camera Apeluri pe ecranul blocat: @@ -457,13 +450,11 @@ Nu ați putut fi verificat; vă rugăm să încercați din nou. Copiază Anulează mesajul live - Conectare prin link / cod QR Contactele tale vor rămâne conectate. Parola pentru criptarea bazei de date va fi actualizată. Contactele tale pot permite ștergerea totală a mesajelor. Trebuie să îi permiți contactului tău să trimită mesaje vocale pentru a le putea trimite. Versiunea de bază: v%s - Creează o adresă pentru a permite oamenilor să se conecteze cu tine. %s blocat ați schimbat adresa ați schimbat adresa pentru %s @@ -478,7 +469,6 @@ Copiat Camera Ați invitat un contact - Profilul tău de conversație va fi trimis contactului tău. Contribuie Profil conversație aldin @@ -511,7 +501,6 @@ Contactul tău a trimis un fișier care este mai mare decât dimensiunea maximă acceptată în prezent (%1$s). anulează previzualizarea linkului Verifică adresa serverului și încearcă din nou. - Tu îți controlezi chatul! Apelul s-a încheiat deja! Apel încheiat Blochează pentru toți @@ -530,7 +519,6 @@ Confirmați fișiere de la servere necunoscute. am schimbat adresa pentru tine Confirmă noua parolă… - Conectare conexiune %1$d conexiune stabilită Eroare de conexiune @@ -617,7 +605,6 @@ Ștergeți mesajul membrului? Șterge grupul Șterge și notifică contactele - Descentralizat grup șters %d contact(e) selectat(e) Șters la: %s @@ -661,7 +648,6 @@ Șterge baza de date de pe acest dispozitiv Șterge profilul de conversație Șterge fișierele pentru toate profilurile de conversație - Oricine poate găzdui servere. Contacte arhivate Beta Apeluri interzise! @@ -673,7 +659,6 @@ Controlează-ți rețeaua Parola pentru criptarea bazei de date va fi actualizată și stocată în Keystore. Parola bazei de date - Servere XFTP configurate Baza de date este criptată folosind o parolă aleatorie. Trebuie schimbată înainte de exportare. apel Contact șters! @@ -702,7 +687,6 @@ Profil actual Confirmi ștergerea contactului? Contactul va fi șters - acest lucru nu poate fi anulat! - Servere SMP configurate Conectat Corectează numele la %s? Continuă @@ -747,9 +731,6 @@ Încălcarea liniilor directoare ale comunității Profil inadecvat Alt motiv - Eroare la salvarea serverelor SMP - Asigurați-vă că adresele serverelor XFTP sunt în format corect, separate pe linii și nu sunt duplicate. - Eroare la încărcarea serverlor XFTP Eroare la actualizarea configurației de rețea Nu s-au putut încărca conversațiile Vă rugăm să actualizați aplicația și contactați dezvoltatorii. @@ -771,12 +752,9 @@ incognito printr-un link de unică folosință a + b prin %1$s - Eroare la încărcarea serverlor SMP %1$d fișier(e) au fost șterse. raport arhivat de %s Invitație acceptată - Asigurați-vă că adresele serverelor SMP sunt în format corect, separate pe linii și nu sunt duplicate. - Eroare la salvarea serverelor XFTP %1$d fișier(e) sunt încă în curs de descărcare. %1$d fișier(e) nu au putut fi descărcate. %1$d fișier(e) nu au fost descărcate. @@ -850,7 +828,6 @@ Sau scanați codul QR Gazdă Cum se folosește marcarea - Imun la spam Baza de date va fi criptată. Grup inactiv Bună dimineaţa! @@ -984,7 +961,6 @@ Nume nevalid! Eroare la deschiderea browserului Cum funcționează - Doar dispozitivele client stochează profiluri de utilizator, contacte, grupuri și mesaje. Instalat cu succes Dezactivează Opțiuni dezvoltator @@ -1016,7 +992,6 @@ Erori la ștergere Dezactivați ștergerea mesajelor Păstrează conversația - Cod QR nevalid Cod de securitate incorect! Dispare la: %s Conectează-te cu datele tale de autentificare @@ -1302,7 +1277,6 @@ Încă nu există conexiune directă, mesajul a fost redirecționat de administrator. - Deschide conversația la primul mesaj necitit.\n- Mergi la mesajele citate. Oprit - Deschide setările serverului criptare ok pentru %s profilul grupului a fost actualizat proprietar @@ -1373,7 +1347,6 @@ Eroare la schimbarea profilului Nicio persoană de contact filtrată Servere media și fișiere - Alte servere XFTP NU utilizați rutare privată. Activează apelurile de pe ecranul de blocare prin Setări. Dezactivează (păstrează suprascrierile) @@ -1411,7 +1384,6 @@ expirat Descărcați %s (%s) Instalează actualizarea - Nu crea adresă De exemplu, dacă un contact al tău primește mesaje printr-un server SimpleX Chat, aplicația ta le va trimite printr-un server Flux. Deschide Setările Safari / Site-uri web / Microfon, apoi selectează Permite pentru localhost. Apel ratat @@ -1488,7 +1460,6 @@ Conversație nouă Link de invitație unic Servere mesaje - Alte servere SMP Introduceți serverul manual Servere ICE (unul pe linie) Rețea și servere @@ -1499,7 +1470,6 @@ Ieșire fără salvare Parolă profil ascuns italic - Fără identificatori de utilizator. Acest lucru se poate întâmpla atunci când:\n1. Mesajele au expirat în aplicația de trimitere după 2 zile sau pe server după 30 de zile.\n2. Decriptarea mesajului a eșuat, deoarece tu sau contactul tău ați folosit un backup vechi al bazei de date.\n3. Conexiunea a fost compromisă. Eroare la exportarea bazei de date a conversației Eroare la oprirea conversației @@ -1593,7 +1563,6 @@ Lipește Vă rugăm să rugați persoana de contact să activeze apelurile. Rutare privată - Confidențialitatea redefinită Vă rugăm să verificați conexiunea la rețea cu %1$s și să încercați din nou. Rutare mesaje private 🚀 Bara de instrumente pentru conversație, accesibilă @@ -1605,14 +1574,12 @@ Se pregătește încărcarea Acces refuzat! Vă rugăm să reduceți dimensiunea mesajului și să îl trimiteți din nou. - În așteptare peer-to-peer Vă rugăm să reporniți aplicația. Mesaje primite Lipește linkul pentru conectare! Interziceți reacțiile la mesaje. Interzicerea trimiterii de linkuri SimpleX - Lipește linkul primit pentru a te conecta cu contactul tău… Te rugăm să-i ceri persoanei tale de contact să activeze trimiterea de mesaje vocale. Cod QR portul %d @@ -1698,7 +1665,6 @@ substituent pentru imaginea de profil Lipește linkul Adresa prestabilită a serverului - Server presetat Evaluează aplicația Port Conversațiile private, grupurile și contactele tale nu sunt accesibile operatorilor serverului. @@ -1888,10 +1854,8 @@ Opriți fișierul trimitere neautorizată Bun venit, %1$s! - Atinge pentru a începe o conversație nouă Folosește acreditări proxy diferite pentru fiecare conexiune. Adresă SimpleX sau link de unică folosință? - Pentru a-ți proteja confidențialitatea, SimpleX folosește ID-uri separate pentru fiecare persoană de contact. Ai fost invitat în grup Pentru a primi Utilizare pentru fișiere @@ -1929,7 +1893,6 @@ Mod Blocare SimpleX Mesajele vor fi marcate ca moderate pentru toți membrii. necitit - Bun venit! Atingeți pentru conectare Mesajele vocale sunt interzise! Ați acceptat conexiunea @@ -1963,7 +1926,6 @@ Sistem Acestea pot fi ignorate în setările de contact și de grup. Suport SimpleX Chat - Proxy SOCKS Teme În timpul importului au apărut câteva erori non-fatale: Atingeți pentru a vă alătura @@ -1984,7 +1946,6 @@ Actualizează parola bazei de date Opriți trimiterea fișierului? tăiere - Viitorul mesageriei Pentru a efectua apeluri, permiteți utilizarea microfonului. Încheiați apelul și încercați să sunați din nou. Când sunt activați mai mulți operatori, niciunul dintre ei nu are metadate pentru a afla cine comunică cu cine. Video pornit @@ -2072,7 +2033,6 @@ Când partajezi un profil incognito cu cineva, acest profil va fi folosit pentru grupurile la care te invită. Mesaj vocal La conectarea apelurilor audio și video. - Când oamenii solicită conectarea, poți accepta sau respinge solicitarea. Acest grup are peste %1$d membri, confirmările de livrare nu sunt trimise. Comutați între audio și video în timpul apelului. Deconectați desktopul? @@ -2081,19 +2041,13 @@ Încarcă fișier Atinge butonul Atingeți pentru a scana - (pentru a partaja cu persoana de contact) Pentru a începe o nouă conversație Video Partajează link de unică folosință - Acest link nu este un link de conectare valid! - Acest cod QR nu este un link! Link scurt - Server XFTP - Actualizați modul de izolare a transportului? Folosește rutare privată cu servere necunoscute. Folosește rutare privată cu servere necunoscute atunci când adresa IP nu este protejată. Folosiți portul TCP %1$s atunci când nu este specificat niciun port. - Nu stocăm niciunul dintre contactele sau mesajele tale (odată livrate) pe servere. prin releu Soft Puternic @@ -2116,9 +2070,6 @@ Încărcat Folosiți portul TCP 443 doar pentru serverele presetate. Omiteți această versiune - O poți crea mai târziu - O poți face vizibilă contactelor tale SimpleX din Setări. - Platforma de mesagerie și aplicații care vă protejează confidențialitatea și securitatea. Profilul este partajat doar cu contactele tale. Pentru a-ți dezvălui profilul ascuns, introdu parola completă în câmpul de căutare de pe pagina Profilurile tale de conversație. Puteți configura serverele prin intermediul setărilor. @@ -2143,7 +2094,6 @@ Blocarea SimpleX nu este activă! Autentificare sistem Baza de date nu funcționează corect. Atingeți pentru a afla mai multe. - Acest text este disponibil în setări Ești invitat în grup Se așteaptă imaginea Se așteaptă imaginea @@ -2162,7 +2112,6 @@ Servere de testare Folosește credențiale aleatorii Actualizare disponibilă: %s - Folosește chatul Hash-ul mesajului anterior este diferit. Această acțiune nu poate fi anulată - mesajele trimise și primite anterior celei selectate vor fi șterse. Poate dura câteva minute. Parolă greșită! @@ -2231,13 +2180,11 @@ %1$d erori de fișier:\n%2$s Conexiune blocată Conexiunea este blocată de operatorul serverului:\n%1$s. - criptate end-to-end, cu securitate post-cuantică în mesajele directe.]]> Bările de instrumente ale aplicației Securitate îmbunătățită ✅ Toate conversațiile vor fi eliminate din lista %s, iar lista va fi ștearsă Conexiunea ta a fost mutată la %s, dar a apărut o eroare la schimbarea profilului. Puteți migra baza de date exportată. - Serverele tale XFTP Utilizați gazdele .onion la Nu dacă proxy-ul SOCKS nu le acceptă.]]> Profilul tău de chat va fi trimis membrilor chatului Vei primi în continuare apeluri și notificări de la profilurile dezactivate atunci când acestea sunt active. @@ -2305,7 +2252,6 @@ Adaugă prieteni Adaugă membri echipei Conversația există deja! - Deschide în aplicația mobilă.]]> Continuă %s a fost deconectat]]> Despre operatori @@ -2317,11 +2263,9 @@ contact dezactivat contactul nu este gata Profilul, contactele și mesajele livrate sunt stocate pe dispozitiv. - Serverele tale ICE Adaugă la listă Modificați lista invitație acceptată - Îți poți partaja adresa sub formă de link sau cod QR - oricine se poate conecta cu tine. Acceptă Confidențialitatea ta Acceptă condițiile @@ -2338,11 +2282,9 @@ Poți vizualiza rapoartele tale în conversația cu administratorii. Schimbă ordinea Te vei conecta atunci când dispozitivul contactului tău va fi online, te rugăm să aștepți sau să verifici mai târziu! - scana codul QR în timpul apelului video sau contactul tău poate partaja un link de invitație.]]> Profilul tău %1$s va fi distribuit. Nu îți vei pierde contactele dacă ulterior îți ștergi adresa. Securitatea conexiunii - Serverele tale SMP Toate serverele Profilul tău este stocat pe dispozitiv și este partajat doar cu contactele tale. Serverele SimpleX nu pot vedea profilul tău. Baza ta de date actuală de chat va fi ȘTERSĂ și ÎNLOCUITĂ cu cea importată.\nAceastă acțiune nu poate fi anulată - profilul, contactele, mesajele și fișierele tale vor fi pierdute iremediabil. @@ -2354,18 +2296,15 @@ %s cu motivul: %s]]> %s a fost deconectat]]> (nou)]]> - Serverul tău Trebuie să îi permiți contactului tău să te sune pentru a-l putea suna. Adresa serverului tău Serverele tale Vei fi conectat la grup atunci când dispozitivul gazdei grupului va fi online, te rugăm să aștepți sau să verifici mai târziu! - Tu decizi cine se poate conecta. Vei fi conectat când cererea ta de conectare va fi acceptată, te rugăm să aștepți sau să verifici mai târziu! Acceptați ca observator Experiență de utilizare îmbunătățită 1 chat cu un membru Toate rapoartele vor fi arhivate pentru tine. - depozitul nostru GitHub.]]> Permiteți în următoarea fereastră de dialog să primească notificări instantaneu.]]> Setări adresă Arhivare rapoarte @@ -2375,7 +2314,6 @@ Prin utilizarea SimpleX Chat ești de acord să:\n- trimiți doar conținut legal în grupurile publice.\n- respecți ceilalți utilizatori – fără spam. doar cu un singur contact - partajează-l personal sau prin orice aplicație de mesagerie.]]> Nu trebuie să utilizați aceeași bază de date pe două dispozitive. - arătați codul QR în apelul video sau distribuiți linkul.]]> Utilizare de pe desktop în aplicația mobilă și scanează codul QR.]]> SimpleX rulează în fundal în loc să utilizeze notificări push.]]> Utilizarea bateriei aplicației / Nerestricționat în setările aplicației.]]> diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/ru/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/ru/strings.xml index 9a4e550dbe..ba571e4d0a 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/ru/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/ru/strings.xml @@ -8,7 +8,6 @@ Вступить в группу? Ваш профиль будет отправлен контакту, от которого Вы получили эту ссылку. Вы соединитесь со всеми членами группы. - Соединиться соединен(а) ошибка @@ -48,8 +47,6 @@ В браузере Использование ссылки в браузере может уменьшить конфиденциальность и безопасность соединения. Ссылки на неизвестные сайты будут красными. - Ошибка при сохранении SMP-серверов - Пожалуйста, проверьте, что адреса SMP-серверов имеют правильный формат, каждый адрес на отдельной строке и не повторяется. Ошибка при сохранении настроек сети Превышено время соединения @@ -169,14 +166,11 @@ не прочитано Здравствуйте %1$s! - Здравствуйте! - Этот текст можно найти в Настройках Чаты соединяется… Вы приглашены в группу Вступить как %s соединяется… - Нажмите, чтобы начать чат Соединиться с разработчиками У Вас нет чатов @@ -224,7 +218,6 @@ Соединено Соединение с сервером не установлено Ошибка - Ожидает Поменять адрес получения? Адрес получения сообщений будет перемещён на другой сервер. Изменение адреса завершится после того как отправитель будет онлайн. @@ -246,12 +239,8 @@ Скопировано в буфер обмена Начать новый разговор - Создать ссылку-приглашение - Соединиться через ссылку или QR-код Сканировать QR-код Создать секретную группу - (чтобы отправить Вашему контакту) - (сканировать или вставить из буфера) (хранится только у членов группы) Разрешение не получено! @@ -320,18 +309,11 @@ Показать QR-код - Ошибка QR-кода - Этот QR-код не является ссылкой! Неверная ссылка! - Эта ссылка не является ссылкой-приглашением! Запрос на соединение отправлен! Соединение с группой будет установлено, когда хост группы будет онлайн. Пожалуйста, подождите или проверьте позже! Соединение будет установлено, когда Ваш запрос будет принят. Пожалуйста, подождите или проверьте позже! Соединение будет установлено, когда Ваш контакт будет онлайн. Пожалуйста, подождите или проверьте позже! - показать QR-код во время видеозвонка или поделиться ссылкой.]]> - Ваш профиль будет отправлен -\nВашему контакту - сосканировать QR-код во время видеозвонка, или Ваш контакт может отправить Вам ссылку.]]> Поделиться одноразовой ссылкой Соединиться @@ -350,9 +332,7 @@ Написать нам письмо Блокировка SimpleX Консоль - SMP-серверы Адрес сервера по умолчанию - Добавить серверы по умолчанию Добавить сервер Тестировать сервер Тестировать серверы @@ -361,8 +341,6 @@ Серверы не прошли тест: Сканировать QR-код сервера Ввести сервер вручную - Сервер по умолчанию - Ваш сервер Адрес Вашего сервера Использовать сервер Использовать для новых соединений @@ -375,7 +353,6 @@ Внести свой вклад Оценить приложение Использовать серверы, предоставленные SimpleX Chat? - Ваши SMP-серверы Используются серверы, предоставленные SimpleX Chat. Инфо Как использовать серверы @@ -421,15 +398,11 @@ Сохранить и уведомить членов группы Выйти без сохранения - Вы контролируете Ваш чат! - Платформа для сообщений и приложений, которая защищает Вашу личную информацию и безопасность. - Мы не храним Ваши контакты и сообщения (после доставки) на серверах. Создать профиль Ваш профиль, контакты и доставленные сообщения хранятся на Вашем устройстве. Профиль отправляется только Вашим контактам. Имя профиля не может содержать пробелы. Имя: - Создать О SimpleX Как форматировать @@ -442,7 +415,6 @@ секрет Соединиться через ссылку Эта строка не является ссылкой-приглашением! - Открыть в приложении.]]> входящий звонок… пропущенный звонок @@ -462,22 +434,11 @@ соединен(а) завершён - Будущее коммуникаций - Более конфиденциальный - Без идентификаторов пользователей. - Защищён от спама - Вы определяете, кто может соединиться. - Децентрализованный - Кто угодно может запустить сервер. Создать профиль Добавьте контакт Как это работает - Чтобы защитить Вашу конфиденциальность, SimpleX использует разные ID для каждого Вашего контакта. - Только пользовательские устройства хранят контакты, группы и сообщения. - GitHub репозитория.]]> - Использовать чат Вставьте полученную ссылку @@ -502,7 +463,6 @@ Принять Показывать Выключить - Ваши ICE-серверы WebRTC ICE-серверы Релей-сервер защищает Ваш IP-адрес, но может отслеживать продолжительность звонка. Релей-сервер используется только при необходимости. Другая сторона может видеть Ваш IP-адрес. @@ -556,7 +516,6 @@ Чаты Инструменты разработчика Экспериментальные функции - SOCKS-прокси Значок Темы Сообщения и файлы @@ -988,7 +947,6 @@ Удалить профиль чата для Эта настройка применяется к сообщениям в Вашем текущем профиле чата Отдельные транспортные сессии - Обновить режим отдельных сессий\? Имя профиля уже используется! Ошибка создания профиля! У Вас уже есть профиль с таким именем. Пожалуйста, выберите другое имя. @@ -1089,17 +1047,11 @@ Раскрыть профиль Видео будет получено, когда Ваш контакт будет онлайн, пожалуйста, подождите или проверьте позже! Раскрыть профиль чата - Ошибка при загрузке SMP-серверов - Ошибка при загрузке XFTP-серверов - Ошибка при сохранении XFTP-серверов - Проверьте, что адреса XFTP-серверов указаны в правильном формате и не дублируются. Сервер требует авторизации для загрузки, проверьте пароль. Сравнение файла Удалить файл Загрузка файла Загрузка файла - XFTP-серверы - Ваши XFTP-серверы Использовать .onion хосты в Нет если SOCKS-прокси их не поддерживает.]]> Ошибка аутентификации Нет кода доступа @@ -1154,8 +1106,6 @@ Разрешить Вашим контактам звонить Вам. Аудио/видео звонки Аудио/видео звонки запрещены. - " -\nДоступно в v5.1" Вы и Ваш контакт можете совершать звонки. Только Вы можете совершать звонки. Только Ваш контакт может совершать звонки. @@ -1177,7 +1127,6 @@ И Вы, и Ваш контакт можете добавлять реакции на сообщения. Одноразовая ссылка Адрес SimpleX - Когда Вы получите запрос на соединение, Вы можете принять или отклонить его. Включить код самоуничтожения Все данные приложения будут удалены. Если Вы введёте код самоуничтожения при открытии приложения: @@ -1234,11 +1183,9 @@ Если Вы не можете встретиться лично, покажите QR-код во время видеозвонка или поделитесь ссылкой. Чтобы соединиться с Вами, Ваш контакт может отсканировать QR-код или использовать ссылку в приложении. Вы не потеряете контакты, если позже удалите Ваш адрес. - Вы можете поделиться своим адресом в виде ссылки или QR-кода - любой может соединиться с Вами. Руководстве пользователя.]]> Ваши контакты сохранятся. Настроить тему - Создайте адрес, чтобы можно было соединиться с Вами. Все Ваши контакты сохранятся. Обновлённый профиль будет отправлен Вашим контактам. Добавьте адрес в свой профиль, чтобы Ваши SimpleX контакты могли поделиться им. Профиль будет отправлен Вашим SimpleX контактам. Создать адрес SimpleX @@ -1249,9 +1196,6 @@ Сохранить настройки\? Прекратить делиться Продолжить - Не создавать адрес - Вы можете создать его позже - Вы можете сделать его видимым для ваших контактов в SimpleX через Настройки. Адрес Введите приветственное сообщение… Просмотр @@ -1388,7 +1332,6 @@ Пересогласовать Пересогласовать шифрование\? Запретить отправлять файлы и медиа. - Соединиться Инкогнито Разрешить Открыть настройки приложения Выключить уведомления @@ -1396,7 +1339,6 @@ Звонки в фоне невозможны Приложение может быть выключено после 1 минуты в фоне. Нет информации от доставке - Вставьте полученную ссылку, чтобы соединиться с Вашим контактом… Будет отправлен новый случайный профиль. Ваш профиль %1$s будет отправлен. Выключить отчёты о доставке для групп\? @@ -1939,8 +1881,6 @@ Выбранные настройки чата запрещают это сообщение. Ошибка файла Вставить ссылку / Сканировать - Другие XFTP-серверы - Настроенные XFTP-серверы Загрузка %s (%s) Доступно обновление: %s Выключить @@ -2001,7 +1941,6 @@ Нет отфильтрованных контактов Ваши контакты Архивированные контакты - Настроенные SMP-серверы Показать процент Слабое Среднее @@ -2044,7 +1983,6 @@ Выбрано %d Настройки Вы по-прежнему можете просмотреть разговор с %1$s в списке чатов. - Другие SMP-серверы Выключено Установлено успешно Установить обновление @@ -2088,7 +2026,6 @@ Соединяйтесь с друзьями быстрее. Управляйте своей сетью Защищает ваш IP-адрес и соединения. - Открыть настройки серверов Полученные сообщения Ошибки приёма Архивируйте контакты чтобы продолжить переписку. @@ -2237,7 +2174,6 @@ Настройки адреса Добавьте сотрудников в разговор. Бизнес-адрес - сквозным шифрованием, с пост-квантовой безопасностью в прямых разговорах.]]> Приложение всегда выполняется в фоне Проверять сообщения каждые 10 минут Без фонового сервиса diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/sk/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/sk/strings.xml index dd8155f512..61b75fcf90 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/sk/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/sk/strings.xml @@ -9,8 +9,6 @@ Použiť inkognito profil Váš profil bude odoslaný kontaktu, od ktorého ste obdržali tento odkaz. Pripojíte sa ku všetkým členom skupiny. - Pripojiť sa - Spojiť sa inkognito Otvoriť chat Pripojiť sa na kanál %s Otvoriť nový chat @@ -92,7 +90,6 @@ Ďalšie sekundárne Pridať zoznam Pridať správu - Pridať prednastavené servery Pridať profil Pridať relé Pridať relé @@ -128,7 +125,6 @@ Všetky farebné režimy Všetky dáta sa pri zadaní vymažú. Všetky správy - end-to-end šifrovaním, s post-quantovým zabezpečením v priamych správach.]]> Všetky nové správy od %s budú skryté! Všetky nové správy od týchto členov budú skryté! Povoliť @@ -185,7 +181,6 @@ Verzia aplikácie: v%s Archivovať Archivované kontakty - \nDostupné vo verzii v5.1 Späť Pozadie Služba na pozadí je vždy spustená - notifikácie budú zobrazené hneď ako budú správy k dispozícii. @@ -220,7 +215,6 @@ Zrušiť náhľad súboru zrušené %s Zrušiť migráciu - Vytvoriť Vytvoriť Vytvoriť jednorazový odkaz Vytvoriť adresu @@ -230,7 +224,6 @@ Vytvoriť odkaz na skupinu Vytvoriť odkaz Vytvoriť zoznam - Vytvoriť jednorazovú pozvánku Vytvoriť profil Vytvoriť profil Vytvoriť tajnú skupinu @@ -256,7 +249,6 @@ %dd %d deň %d dní - Decentralizovaná Vymazať Vymazať Prijať @@ -296,7 +288,6 @@ Povoliť vašim kontaktom odosielať súbory a média. Povoliť vašim kontaktom posielať hlasové správy. Všetky hlásenia budú pre vás archivované. - Servery môže prevádzkovať ktokoľvek. arabčina, bulharčina, fínčina, hebrejčina, thajčina a ukrajinčina - vďaka používateľom a Weblate. Archivovať všetky hlásenia? Archivovať a nahrať @@ -466,8 +457,6 @@ Podmienky prijaté dňa: %s. %s.]]> Podmienky používania - Nastavené SMP servery - Nastavené XFTP servery Nastaviť relé Potvrdiť Potvrdiť vymazanie kontaktu? @@ -520,7 +509,6 @@ Verzia jadra: v%s Roh Opraviť meno na %s? - Vytvoriť adresu, aby sa s vami ľudia mohli spojiť. Vytvoriť chatový profil Vytvorený Vytvoriť nový profil v počítačovej aplikácii. 💻 @@ -910,7 +898,6 @@ %dmes Neposielať históriu novým členom. Neposielať históriu novým odberateľom. - Nevytvárať adresu Nepovoliť Nenechajte si ujsť dôležité správy. Znova nezobrazovať @@ -1294,8 +1281,6 @@ Chyba pri preposielaní správ Chyba inicializácie WebView. Ujistite sa, že máte nainštalovaní WebView ktorý podporuje architektúru arm64.\nChyba: %s Chyba pri načítavaní zoznamov chatov - Chyba pri načítavaní SMP serverov - Chyba pri načítavaní XFTP serverov Chyba pri označovaní ako prečítané Chyba pri otváraní prehliadača Chyba pri otváraní chatu @@ -1331,8 +1316,6 @@ Chyba pri ukladaní serverov Chyba pri ukladaní nastavení Chyba pri ukladaní nastavení - Chyba pri ukladaní SMP serverov - Chyba pri ukladaní XFTP serverov Chyba pri aktualizovaní zoznamu chatov Chyba pri aktualizovaní odkazu skupiny Chyba pri aktualizovaní konfigurácie siete @@ -1351,7 +1334,6 @@ Neplatný odkaz! neplatný formát správy Neplatné meno! - Neplatný QR kód Neplatný QR kód Neplatná adresa relé! Neplatná meno relé! @@ -1393,7 +1375,6 @@ Otvoriť priečinok databázy Otvoriť externý odkaz? Otvoriť celý odkaz - Otvoriť nastavenia serveru Otvoriť nastavenia Otvorte SimpleX Chat na prijatie hovoru Otvoriť webový odkaz? @@ -1401,8 +1382,6 @@ Alebo naskenovať QR kód Alebo vložiť odkaz archívu Chyba súboru - naskenovať QR kód vo video hovore, alebo váš kontakt môže zdieľať pozvánku.]]> - ukážte QR kód vo video hovore, alebo zdieľajte odkaz.]]> Ak sa nemôžte stretnúť osobne, ukážte QR kód vo video hovore, alebo zdieľajte odkaz. Ak ste dostali SimpleX Chat pozvánku, môžete ju otvoriť v prehliadači: Nesprávny bezpečnostný kód @@ -1445,8 +1424,6 @@ Uložiť nastavenia SimpleX adresy Uložiť SimpleX meno? Uložiť uvítaciu správu? - Vaše SMP servery - Vaše XFTP servery Vaše ICE servery ICE servery (jeden na riadok) Ujistite sa, že adresy WebRTC ICE serverov sú v správnom formáte, oddelené na riadkoch a nie sú duplikované. diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/th/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/th/strings.xml index da2aea2868..9e782ee24f 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/th/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/th/strings.xml @@ -75,7 +75,6 @@ ข้อมูลแอปทั้งหมดถูกลบแล้ว. รองเพิ่มเติม เพิ่มโปรไฟล์ - เพิ่มเซิร์ฟเวอร์ที่ตั้งไว้ล่วงหน้า แชทและข้อความทั้งหมดจะถูกลบ - การดำเนินการนี้ไม่สามารถยกเลิกได้! ที่อยู่ เพิ่มเซิร์ฟเวอร์โดยการสแกนรหัส QR @@ -92,8 +91,6 @@ อนุญาตข้อความเสียงเฉพาะเมื่อผู้ติดต่อของคุณอนุญาตเท่านั้น ผู้ติดต่อทั้งหมดของคุณจะยังคงเชื่อมต่ออยู่. การอัปเดตโปรไฟล์จะถูกส่งไปยังผู้ติดต่อของคุณ. เสมอ - " -\nพร้อมใช้งานใน v5.1" กลับ แฮชข้อความไม่ดี บริการพื้นหลังทำงานตลอดเวลา - การแจ้งเตือนจะแสดงทันทีที่มีข้อความ @@ -164,7 +161,6 @@ ธีมที่กำหนดเอง ID ฐานข้อมูลและตัวเลือกการแยกการส่งผ่าน ID ฐานข้อมูล - เชื่อมต่อ กำลังเชื่อมต่อ เชื่อมต่อผ่านลิงค์ติดต่อ\? เชื่อมต่อผ่านลิงค์เชิญ\? @@ -191,8 +187,6 @@ เวลาที่กําหนดเอง ยืนยัน คัดลอกไปที่คลิปบอร์ดแล้ว - เชื่อมต่อผ่านลิงค์ / คิวอาร์โค้ด - สร้างลิงก์เชิญแบบใช้ครั้งเดียว สร้างกลุ่มลับ ล้าง ล้างแชท\? @@ -211,10 +205,8 @@ เวอร์ชันหลัก: v%s ปรับแต่งธีม สร้างที่อยู่ - สร้างที่อยู่เพื่อให้ผู้อื่นเชื่อมต่อกับคุณ สร้างที่อยู่ SimpleX ดำเนินการต่อ - สร้าง สร้างโปรไฟล์ มีสี กําลังเชื่อมต่อสาย… @@ -277,14 +269,10 @@ ลบกลุ่ม\? การตรวจสอบอุปกรณ์ไม่ได้ถูกเปิดใช้งาน คุณสามารถเปิด SimpleX Lock ผ่านการตั้งค่าได้ เมื่อคุณเปิดใช้งานการตรวจสอบอุปกรณ์แล้ว ใส่ข้อความต้อนรับ… (ไม่บังคับ) - เกิดข้อผิดพลาดในการโหลดเซิร์ฟเวอร์ SMP - เกิดข้อผิดพลาดในการโหลดเซิร์ฟเวอร์ XFTP ข้อผิดพลาด ลบแล้ว ลิงค์เต็ม คำอธิบาย - เกิดข้อผิดพลาดในการบันทึกเซิร์ฟเวอร์ SMP - เกิดข้อผิดพลาดในการบันทึกเซิร์ฟเวอร์ XFTP เกิดข้อผิดพลาดในการอัปเดตการกำหนดค่าเครือข่าย ชื่อที่แสดงซ้ำ! เกิดข้อผิดพลาดในการสร้างโปรไฟล์! @@ -362,7 +350,6 @@ สวัสดี! \nเชื่อมต่อกับฉันผ่าน SimpleX Chat: %s ลบที่อยู่ - อย่าสร้างที่อยู่ ชื่อเต็ม: ชื่อที่แสดง: ออกโดยไม่บันทึก @@ -376,7 +363,6 @@ วิธีใช้มาร์กดาวน์ สิ้นสุดลงแล้ว มันทำงานอย่างไร - กระจายอำนาจแล้ว การโทรเสียงแบบ encrypted จากต้นจนจบ การโทรวิดีแบบ encrypted จากต้นจนจบ ปิดการใช้งาน @@ -517,8 +503,6 @@ เกิดข้อผิดพลาดในการรับไฟล์ หากคุณใส่รหัสผ่านนี้เมื่อเปิดแอป ข้อมูลแอปทั้งหมดจะถูกลบอย่างถาวร! หากคุณเลือกที่จะปฏิเสธ ผู้ส่งจะไม่ได้รับแจ้ง - หากคุณไม่สามารถพบกันในชีวิตจริงได้ คุณสามารถสแกนคิวอาร์โค้ดในวิดีโอคอล หรือผู้ติดต่อของคุณสามารถแชร์ลิงก์เชิญได้ - ให้แสดงคิวอาร์โค้ดในวิดีโอคอล หรือแชร์ลิงก์]]> หากคุณไม่สามารถพบกันในชีวิตจริงได้ ให้แสดงคิวอาร์โค้ดในวิดีโอคอล หรือแชร์ลิงก์ หากคุณยืนยัน เซิร์ฟเวอร์การส่งข้อความจะสามารถเห็นที่อยู่ IP ของคุณและผู้ให้บริการของคุณ - ซึ่งคือเซิร์ฟเวอร์ใดที่คุณกำลังเชื่อมต่ออยู่ หากคุณใส่รหัสผ่านทำลายตัวเองขณะเปิดแอป: @@ -558,7 +542,6 @@ ภาพ หากคุณได้รับลิงก์เชิญ SimpleX Chat คุณสามารถเปิดได้ในเบราว์เซอร์ของคุณ: ภาพตัวอย่างลิงค์ - รหัส QR ไม่ถูกต้อง ลิงค์ไม่ถูกต้อง! ศึกษาเพิ่มเติม รหัสความปลอดภัยไม่ถูกต้อง! @@ -566,7 +549,6 @@ เชิญเพื่อน ๆ มาคุยกันใน SimpleX Chat ตัวเอียง - มีภูมิคุ้มกันต่อสแปมและการละเมิด สร้างการเชื่อมต่อแบบส่วนตัว สามารถเปลี่ยนแปลงได้ในภายหลังผ่านการตั้งค่า สายวิดีโอเข้ามา @@ -617,7 +599,6 @@ กำลังเปิดฐานข้อมูล… ทำเครื่องหมายว่าลบแล้ว กลั่นกรองแล้ว - ตรวจสอบให้แน่ใจว่าที่อยู่เซิร์ฟเวอร์ XFTP อยู่ในรูปแบบที่ถูกต้อง แยกบรรทัดและไม่ซ้ำกัน การแจ้งเตือนเป็นระยะ จำเป็นต้องใช้รหัสผ่าน การแจ้งเตือนเป็นระยะปิดอยู่! @@ -637,7 +618,6 @@ สามารถส่งวิดีโอได้ครั้งละ 10 วิดีโอเท่านั้น โปรดติดต่อผู้ดูแลกลุ่ม การแจ้งเตือน - รอดำเนินการ โปรดขอให้ผู้ติดต่อของคุณเปิดใช้งานการส่งข้อความเสียง เฉพาะเจ้าของกลุ่มเท่านั้นที่สามารถเปิดใช้งานข้อความเสียงได้ ไม่มีรายละเอียด @@ -662,9 +642,6 @@ โฮสต์หัวหอมจะไม่ถูกใช้ รหัสผ่านที่จะแสดง สายที่ไม่ได้รับ - ผู้คนสามารถเชื่อมต่อกับคุณผ่านลิงก์ที่คุณแบ่งปันเท่านั้น - โปรโตคอลและโค้ดโอเพ่นซอร์ส – ใคร ๆ ก็สามารถเปิดใช้เซิร์ฟเวอร์ได้ - การเข้ารหัสแบบ encrypted จากต้นจนจบ 2 ชั้น]]> เป็นระยะ แปะลิงก์ที่ได้รับ ไม่มีการ encrypt จากต้นจนจบ @@ -744,7 +721,6 @@ กลั่นกรองโดย %s เป็นไปได้มากว่าผู้ติดต่อนี้ได้ลบการเชื่อมต่อกับคุณ ข้อผิดพลาดในการส่งข้อความ - ตรวจสอบให้แน่ใจว่าที่อยู่เซิร์ฟเวอร์ SMP อยู่ในรูปแบบที่ถูกต้อง แยกบรรทัดและไม่ซ้ำกัน โฮสต์หัวหอมจะถูกใช้เมื่อมี ผู้ติดต่อของคุณเท่านั้นที่สามารถส่งข้อความเสียงได้ การเปิดลิงก์ในเบราว์เซอร์อาจลดความเป็นส่วนตัวและความปลอดภัยของการเชื่อมต่อ ลิงก์ SimpleX ที่ไม่น่าเชื่อถือจะเป็นสีแดง @@ -758,14 +734,11 @@ คิวอาร์โค้ด คู่มือผู้ใช้ ]]> ที่อยู่เซิร์ฟเวอร์ที่ตั้งไว้ล่วงหน้า - เซิร์ฟเวอร์ที่ตั้งไว้ล่วงหน้า ให้คะแนนแอป พอร์ต พอร์ต %d ได้รับคำตอบ… ได้รับการยืนยัน… - นิยามความเป็นส่วนตัวใหม่ - GitHub repository ของเรา]]> การแจ้งเตือนส่วนตัว โปรดรายงานไปยังผู้พัฒนาแอป ความเป็นส่วนตัวและความปลอดภัย @@ -890,7 +863,6 @@ ส่งข้อความ ส่งข้อความสด ส่ง - (สแกนหรือวางจากคลิปบอร์ด) สแกนคิวอาร์โค้ด ตั้งชื่อผู้ติดต่อ การตั้งค่า @@ -972,7 +944,6 @@ หยุดส่งไฟล์ไหม\? หยุด หยุดรับไฟล์\? - แตะเพื่อเริ่มแชทใหม่ เปลี่ยนที่อยู่ผู้รับ\? เริ่มแชทใหม่ ขอบคุณสำหรับการติดตั้ง SimpleX Chat! @@ -984,20 +955,17 @@ %s ไม่ได้รับการยืนยัน %s ได้รับการยืนยันแล้ว ล็อค SimpleX - เซิร์ฟเวอร์ SMP เซิร์ฟเวอร์ทดสอบ เซิร์ฟเวอร์ทดสอบ บางเซิร์ฟเวอร์ผ่านการทดสอบล้มเหลว: การตั้งค่าพร็อกซี SOCKS Simplexmq: v%s (%2s) - แพลตฟอร์มแรกที่ไม่มีตัวระบุผู้ใช้ - ถูกออกแบบให้เป็นส่วนตัว ปิดลำโพง เปิดลำโพง ข้อความที่ข้ามไป ส่ง ระบบ สนับสนุน SimpleX Chat - พร็อกซี SOCKS หยุด หยุดแชท\? %s วินาที @@ -1008,8 +976,6 @@ ระบบ ขอบคุณผู้ใช้ – มีส่วนร่วมผ่าน Weblate! ขอบคุณผู้ใช้ – มีส่วนร่วมผ่าน Weblate! - แพลตฟอร์มการส่งข้อความและแอปพลิเคชันที่ปกป้องความเป็นส่วนตัวและความปลอดภัยของคุณ - การส่งข้อความส่วนตัวรุ่นต่อไป บทบาทจะถูกเปลี่ยนเป็น "%s" ทุกคนในกลุ่มจะได้รับแจ้ง การดำเนินการนี้ไม่สามารถยกเลิกได้ ไฟล์และสื่อที่ได้รับและส่งทั้งหมดจะถูกลบ รูปภาพความละเอียดต่ำจะยังคงอยู่ หากต้องการเปิดเผยโปรไฟล์ที่ซ่อนอยู่ของคุณ ให้ป้อนรหัสผ่านแบบเต็มในช่องค้นหาในหน้าโปรไฟล์แชทของคุณ @@ -1031,7 +997,6 @@ การ decrypt %1$d ข้อความล้มเหลว %1$s สมาชิก เชื่อมต่อกับ SimpleX Chat นักพัฒนาแอปเพื่อถามคำถามและรับการอัปเดต]]> - คุณสามารถแชร์ที่อยู่ของคุณเป็นลิงก์หรือรหัสคิวอาร์ - ใคร ๆ ก็สามารถเชื่อมต่อกับคุณได้ คุณเปลี่ยนที่อยู่ คุณเปลี่ยนบทบาทของตัวเองเป็น %s โปรไฟล์ปัจจุบันของคุณ @@ -1072,7 +1037,6 @@ ข้อความจะถูกทำเครื่องหมายว่ากลั่นกรองสำหรับสมาชิกทุกคน ยังไม่ได้อ่าน ส่งโดยไม่ได้รับอนุญาต - ยินดีต้อนรับ! ยินดีต้อนรับ %1$s! คุณได้รับเชิญให้เข้าร่วมกลุ่ม คุณไม่มีการแชท @@ -1101,7 +1065,6 @@ ดูรหัสความปลอดภัย ห้ามข้อความเสียง! คุณต้องอนุญาตให้ผู้ติดต่อของคุณส่งข้อความเสียงจึงจะสามารถส่งได้ - (เพื่อแบ่งปันกับผู้ติดต่อของคุณ) เพื่อเริ่มแชทใหม่ วิดีโอ เปิดเสียง @@ -1115,44 +1078,30 @@ SimpleX ทีม คุณจะเชื่อมต่อกับกลุ่มเมื่ออุปกรณ์โฮสต์ของกลุ่มออนไลน์อยู่ โปรดรอหรือตรวจสอบภายหลัง! คุณจะเชื่อมต่อเมื่อคำขอเชื่อมต่อของคุณได้รับการยอมรับ โปรดรอหรือตรวจสอบในภายหลัง! - โปรไฟล์แชทของคุณจะถูกส่ง -\nให้กับผู้ติดต่อของคุณ คุณจะเชื่อมต่อเมื่ออุปกรณ์ของผู้ติดต่อของคุณออนไลน์อยู่ โปรดรอหรือตรวจสอบภายหลัง! - เมื่อมีคนขอเชื่อมต่อ คุณสามารถยอมรับหรือปฏิเสธได้ - เปิดในแอปมือถือ]]> ในการตรวจสอบการเข้ารหัสแบบ encrypt จากต้นจนจบ กับผู้ติดต่อของคุณ ให้เปรียบเทียบ (หรือสแกน) รหัสบนอุปกรณ์ของคุณ การตั้งค่าของคุณ ที่อยู่ SimpleX ของคุณ โปรไฟล์แชทของคุณ ใช้เซิร์ฟเวอร์ - เซิร์ฟเวอร์ของคุณ ที่อยู่เซิร์ฟเวอร์ของคุณ เซิร์ฟเวอร์สำหรับการเชื่อมต่อใหม่ของโปรไฟล์การแชทปัจจุบันของคุณ ใช้สำหรับการเชื่อมต่อใหม่ - เซิร์ฟเวอร์ XFTP - เซิร์ฟเวอร์ SMP ของคุณ - เซิร์ฟเวอร์ XFTP ของคุณ เซิร์ฟเวอร์ ICE ของคุณ ใช้พร็อกซี SOCKS ใช้การเชื่อมต่ออินเทอร์เน็ตโดยตรงหรือไม่\? ใช้พร็อกซี SOCKS หรือไม่\? ใช้โฮสต์ .onion เมื่อพร้อมใช้งาน - อัปเดตโหมดการแยกการขนส่งไหม\? สีของธีม ผู้ติดต่อของคุณจะยังคงเชื่อมต่ออยู่ - คุณสามารถสร้างได้ในภายหลัง - คุณเป็นผู้ควบคุมการแชทของคุณ! โปรไฟล์นี้แชร์กับผู้ติดต่อของคุณเท่านั้น - เราไม่เก็บผู้ติดต่อหรือข้อความของคุณ (เมื่อส่งแล้ว) ไว้บนเซิร์ฟเวอร์ โปรไฟล์ รายชื่อผู้ติดต่อ และข้อความที่ส่งของคุณจะถูกจัดเก็บไว้ในอุปกรณ์ของคุณ คุณสามารถใช้มาร์กดาวน์เพื่อจัดรูปแบบข้อความ: รอคำตอบ… - ใช้แชท การสนทนาทางวิดีโอ การโทรของคุณ เซิร์ฟเวอร์ WebRTC ICE - เซิร์ฟเวอร์ ICE ของคุณ ผ่านรีเลย์ ปิดวิดีโอ เปิดวิดีโอ @@ -1216,16 +1165,12 @@ การดำเนินการนี้ไม่สามารถยกเลิกได้ - โปรไฟล์ ผู้ติดต่อ ข้อความ และไฟล์ของคุณจะสูญหายไปอย่างถาวร SimpleX – ใช้แบตเตอรี่เพียงไม่กี่เปอร์เซ็นต์ต่อวัน]]> คุณ: %1$s - เพื่อปกป้องความเป็นส่วนตัว แทนที่จะใช้ ID ผู้ใช้เหมือนที่แพลตฟอร์มอื่นๆใช้ SimpleX มีตัวระบุสำหรับคิวข้อความ โดยแยกจากกันสำหรับผู้ติดต่อแต่ละราย คุณจะต้องตรวจสอบสิทธิ์เมื่อคุณเริ่มหรือกลับมาใช้แอปพลิเคชันอีกครั้งหลังจากผ่านไป 30 วินาทีในพื้นหลัง คุณจะเข้าร่วมกลุ่มที่ลิงก์นี้อ้างถึงและเชื่อมต่อกับสมาชิกในกลุ่ม - ข้อความนี้มีอยู่ในการตั้งค่า รูปเยอะเกิน! วิดีโอเยอะเกิน! ที่อยู่ผู้รับจะถูกเปลี่ยนเป็นเซิร์ฟเวอร์อื่น การเปลี่ยนแปลงที่อยู่จะเสร็จสมบูรณ์หลังจากที่ผู้ส่งออนไลน์ เพื่อการเชื่อมต่อผ่านลิงค์ - ลิงค์นี้ไม่ใช่ลิงค์เชื่อมต่อที่ถูกต้อง! - รหัสคิวอาร์นี้ไม่ใช่ลิงก์! เพื่อการเชื่อมต่อ ผู้ติดต่อของคุณสามารถสแกนคิวอาร์โค้ดหรือใช้ลิงก์ในแอป คุณจะไม่สูญเสียรายชื่อผู้ติดต่อของคุณหากคุณลบที่อยู่ในภายหลัง สตริงนี้ไม่ใช่ลิงค์เชื่อมต่อ! diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/tr/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/tr/strings.xml index 7b05806ea6..88148f022f 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/tr/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/tr/strings.xml @@ -1,7 +1,6 @@ Bildirimler - Bağlantı ya da karekod ile bağlan Gizli grup oluştur SimpleX adresin cevapsız çağrı @@ -77,7 +76,6 @@ Ara Göster İptal - (kodu okut ya da panodan yapıştır) Karekodu okut SimpleX adresi Sunucuları kaydet @@ -93,7 +91,6 @@ Tercihleri kaydet\? Profil parolasını kaydet Profil sadece konuştuğun kişilerle paylaşılır. - Mesajlaşmanın geleceği Ses kapalı Doğrulama iptal edildi Yeniden başlat @@ -141,7 +138,6 @@ Kimlik doğrulama başarısız SimpleX Adresi Mesaj, tüm üyeler için silinecek. - Gizliliğinizi ve güvenliğinizi koruyan mesajlaşma ve uygulama platformu. Gizlilik kipi Yetki, "%s" olarak değiştirilecek. Üye, yeni bir davet alacak. Yetki @@ -179,7 +175,6 @@ Profiliniz, bu bağlantıyı aldığınız kişiye gönderilecek. Adres bağlantısı üzerinden bağlan? hata - Bağlan bağlanıldı silindi dosya alma henüz desteklenmiyor @@ -225,7 +220,6 @@ renklendirilmiş Parolayı onayla geri çevrilmiş çağrı - Oluştur arama hatası bağlanıldı bağlanılıyor… @@ -313,10 +307,6 @@ kişi adres bağlantısı ile SimpleX bağlantı adresi Bağlantıyı tarayıcıda açmak, bağlantı gizliliğini ve güvenliğini azaltabilir. Güvenilmeyen SimpleX bağlantıları kırmızı olacaktır. - SMP sunucuları kaydedilirken hata oluştu - XFTP sunucuları kaydedilirken hata oluştu - SMP sunucuları yüklenirken hata oluştu - XFTP sunucuları yüklenirken hata oluştu Bağlantı yapılandırması güncellenirken hata Konuşma yüklenemedi Konuşmalar yüklenemedi @@ -381,7 +371,6 @@ Hata Kişiselleştirilmiş süre Panoya kopyalandı - Tek seferlik davet bağlantısı oluştur Karekodu okut ile karekodu okut]]> Bekleyen bağlantıları sil\? Sil @@ -394,14 +383,11 @@ Renk temalarını kişiselleştir Çekirdek sürümü: v%s Adresi sil\? - Kişilerin sana bağlanması için bir adres oluştur. SimpleX adresi oluştur Adresi sil Devam et Görseli sil - Konuşman, senin elinde! Profil oluştur - Merkezi olmayan Erişim kodunu onayla Yanlış erişim kodu Yeni erişim kodu @@ -507,7 +493,6 @@ Profil adı: %day %dsn - Adres oluşturma Dosyayı indir Düzelt TCP keep-alive özelliğini etkinleştir @@ -587,7 +572,6 @@ Gizli profil parolası Markdown nasıl kullanılır Nasıl çalışıyor - Spamdan etkilenmez Çağırıyı bitir. Kameranın karşı yüzüne geç Konuşma veri tabanı içe aktarılsın mı? @@ -611,8 +595,6 @@ Gizle Konuşulan kişileri ve mesajları gizle Uygulamayı, son kullanılanlar kısmından gizle. - bir görüntülü aramada karşıdakine karekodunu gösterebilir ya da konuştuğun kişiye bir katılım bağlantısı paylaşabilirsin.]]> - bir görüntülü aramada karşıdakinin karekodunu okutabilirsin ya da konuştuğun kişi seninle bir katılım bağlantısı paylaşabilir.]]> Eğer yüz yüze görüşemiyorsanız bir görüntülü aramada karşıdakine karekodunu gösterebilir ya da konuştuğun kişiye bir katılım bağlantısı paylaşabilirsin. Eğer geri çevirmeyi seçersen göndericiye bildirilmeyecek. Eğer SimplexX Chat katılım bağlantısı alırsan bu bağlantıyı tarayıcında açabilirsin: @@ -663,7 +645,6 @@ saat Sadece uygulama çalışırken bildirim alabileceksiniz, hiçbir arka plan hizmeti başlatılmayacaktır yeni mesaj - Hoşgeldin! Hoşgeldin %1$s! Görsel bekleniyor Görsel bekleniyor @@ -672,10 +653,8 @@ Dosya bekleniyor Sesli mesajlar yasaktır! sana bağlanmak istiyor! - İnsanlar bağlantı talebinde bulunduğunda, kabul edebilir veya reddedebilirsiniz. Mevcut olduğunda Otomatik kabul etme - Kişilerinizin veya mesajlarınızın hiçbirini (teslim edildikten sonra) sunucularda saklamıyoruz. yanıt bekleniyor… onay bekleniyor… Uygulama çalışıyorken @@ -710,7 +689,6 @@ Şuna cevap olarak %s olarak katılın Geçersiz link! - Geçersiz QR kodu Geçersiz sunucu adresi! Terminal için SimpleX Chat\'i yükleyin Aramaya bağlanılıyor @@ -780,10 +758,7 @@ Kişinizin cihazı çevrimiçi olduğunda bağlanacaksınız, lütfen bekleyin veya daha sonra kontrol edin! Daha fazla bilgi edinin Eğer sonradan bağlantınızı silseniz bile kişilerinizi kaybetmeyeceksiniz. - Sunucunuz Sunucu adresiniz - SMP sunucularınız - XFTP sunucularınız ICE sunucularını yapılandır Hadi SimpleX Chat\'te konuşalım Profiliniz cihazınızda saklanır ve sadece kişilerinizle paylaşılır. SimpleX sunucuları profilinizi göremez. @@ -793,8 +768,6 @@ Bu gruptan artık mesaj almayacaksınız. Sohbet geçmişi korunacaktır. Gruptan ayrıl\? ayrıldı - " -\nv5.1\'de mevcut" Sohbet profili ile (varsayılan) veya bağlantı ile (BETA). bağlantı önizleme resmi Profiliniz, kişileriniz ve gönderilmiş mesajlar cihazınızda saklanır. @@ -852,12 +825,10 @@ sen gözlemcisin Güvenlik kodunu görüntüle Sesli mesaj gönderebilmeniz için kişinizin de sesli mesaj göndermesine izin vermeniz gerekir. - XFTP sunucuları ICE sunucularınız Nasıl Mevcut profiliniz video arama (uçtan uca şifreli değil) - ICE sunucularınız Video kapalı Video açık Uygulama her başladığında parola girmeniz gerekir - parola cihazınızda saklanmaz. @@ -866,7 +837,6 @@ Biriyle gizli bir profil paylaştığınızda, bu profil sizi davet ettikleri gruplar için kullanılacaktır. İsteğe bağlı karşılama mesajı ile. Kişileriniz bağlı kalacaktır. - Daha sonra oluşturabilirsiniz Mesajları biçimlendirmek için markdown kullanabilirsiniz: Sohbet veritabanınız Mevcut sohbet veritabanınız SİLİNECEK ve içe aktarılan veritabanıyla DEĞİŞTİRİLECEKTİR. @@ -884,7 +854,6 @@ Sesli mesaj Sesli mesaj (%1$s) Sesli mesaj… - Adresinizi bir bağlantı veya QR kodu olarak paylaşabilirsiniz - herkes size bağlanabilir. bağlantı değiştirdiniz Daha sonra Ayarlardan etkinleştirebilirsin Bunları daha sonra uygulamanın Gizlilik ayarlarından etkinleştirebilirsiniz. @@ -892,7 +861,6 @@ \nBu bağlantıyı iptal edebilir ve kişiyi kaldırabilirsiniz (ve daha sonra yeni bir bağlantıyla deneyebilirsiniz). Kişiniz desteklenen maksimum boyuttan (%1$s) daha büyük bir dosya gönderdi. Kişiniz yüklemeyi tamamladığında video alınacaktır. - mobil uygulamada aç seçeneğine tıklayın.]]> SimpleX Chat geliştiricilerine bağlanabilirsiniz.]]> Bir kullanıcının profilini gizleyebilir veya sessize alabilirsiniz - menü için basılı tutun. Sohbet veritabanınızın en son sürümünü SADECE bir cihazda kullanmalısınız, aksi takdirde bazı kişilerden daha fazla mesaj alamayabilirsiniz. @@ -937,7 +905,6 @@ - daha stabil mesaj iletimi. \n- biraz daha iyi gruplar. \n- ve daha fazlası! - Sadece istemci cihazlar kullanıcı profillerini, kişileri, grupları ve gönderilen mesajları depolar. Grup tercihlerini sadece grup sahipleri değiştirebilir. metin yok Ağ durumu @@ -956,17 +923,13 @@ Hatırlayın veya güvenli bir şekilde saklayın - kaybolan bir parolayı kurtarmanın bir yolu yoktur! Sohbet konsolunu aç Sohbet profillerini değiştir. - Bu metin ayarlarda mevcut Filtrelenmiş sohbet yok Çok fazla görsel! Çok fazla video! Lütfen grup yöneticisiyle iletişime geçin - Bekleniyor Lütfen irtibat kişinizden sesli mesaj göndermeyi etkinleştirmesini isteyin. Canlı mesaj! Link ile bağlanmak için - Bu geçerli bir bağlantı linki değil - Bu QR kodu bir bağlantı değil! Kullanıcı Kılavuzu.]]> Yapıştır Bu dize bir bağlantı linki değil! @@ -987,8 +950,6 @@ Zaman dilimi, görsel/ses korumak için UTC kullan. Özel dosya adları Yeni bir sohbet başlatmak için - Kimin bağlanabileceğine siz karar verirsiniz. - Gizlilik yeniden tanımlanıyor Periyodik Gizli bildirimler Aldığın bağlantıyı yapıştır @@ -1010,14 +971,12 @@ Favorilerden çıkar Sohbeti gizli yap! Profil güncellemesi SimpleX kişilerinize gönderilecektir. - GitHub repomuzda daha fazlasını okuyun.]]> Lütfen geliştiricilere bildirin. Profil ve sunucu bağlantıları gizlemeyi kaldır Maksimum 40 saniye, anında alınır. Sesli mesaj kaydet İzin Reddedildi! - (irtibat kişinizle paylaşmak için) profil resmi profil fotoğrafı yer tutucusu Kişinizle uçtan uca şifrelemeyi doğrulamak için cihazlarınızdaki kodu karşılaştırın (veya tarayın). @@ -1028,7 +987,6 @@ Mesaj taslağı Sohbet profillerini parola ile koru! Daha az pil kullanımı - Gizliliği korumak için, SimpleX her bir konuşma için farklı bir ID kullanır. Bu kişiden mesaj almak için kullanılan sunucuya bağlanılmaya çalışılıyor (hata: %1$s). Alıcılar güncellemeleri siz yazdıkça görürler. Bilgilerinizi kullanarak giriş yapın @@ -1062,7 +1020,6 @@ Bağlantı isteğini tekrarla? detay yok Veri tabanı düzgün çalışmıyor. Daha fazla bilgi için dokunun - Açık kaynaklı protokol ve kod - sunucuları herkes çalıştırabilir. Aç Önizlemeyi göster Depolanan dosyaları ve medyayı şifrele @@ -1076,7 +1033,6 @@ Seç Sadece sen arama yapabilirsin. Yeni mobil cihaz - Sohbeti kullan Otomatik olarak bağlan Paylaş %s, %s ve %d diğer üye bağlandı @@ -1141,9 +1097,7 @@ Bağlantı paylaş SimpleX Ekibi %s, %s ve %s bağlandı - SOCKS vekili Masaüstür cihazlar - SMP sunucuları Uyumlu değil! Bağlantı güvenliğini onayla %1$s ile bağlan? @@ -1171,7 +1125,6 @@ Kodu mobilde onayla Medya paylaş… Parola, siz onu değiştirdikten veya uygulamayı yeniden başlattıktan sonra ayarlarda düz metin olarak depolanacak. - Kişinizle bağlantı kurmak için aldığınız bağlantıyı yapıştırın… Kapat gönderildi Canlı mesaj gönder @@ -1184,7 +1137,6 @@ SimpleX Kilit modu Dosya paylaş… Uygulama yeni mesajları periyodik olarak alır - günde pilin yüzde birkaçını kullanır. Uygulama anlık bildirimleri kullanmaz - cihazınızdan gelen veriler sunuculara gönderilmez. - Herhangi bir kullanıcı tanımlayıcısı yok. Hoparlör kapalı Şifreleme çalışıyor ve yeni bir şifreleme anlaşması gerekli değil. Yoksa bağlantı hataları ortaya çıkabilir! Göster @@ -1218,8 +1170,6 @@ Profiliniz %1$s paylaşılacaktır. Rastgele bir profil kullanarak grup oluştur. Gruba zaten bu bağlantı üzerinden katılıyorsunuz. - Sohbet profiliniz kişinize -\ngönderilecek Gizli bir profil paylaştığınız kişiyi ana profilinizi kullandığınız gruba davet etmeye çalışıyorsunuz güvenlik kodu değiştirildi Bluetooth desteği ve diğer iyileştirmeler. @@ -1270,13 +1220,11 @@ alınmış, yasaklanmış Sunucu yükleme için yetki gerektiriyor, şifreyi kontrol edin. Şifreleme yeniden aşma hatası - Ön ayarlı sunucu %s iptal edildi silinmiş kişi TCP bağlantısı zaman aşımına uğradı uygulama/veritabanı içinde farklı değişim: %s / %s SimpleX Chat serverları kullanılıyor. - Ön ayarlı sunucular ekle gizli Bütün gruplar için devre dışı bırak Yeni üyeler için gösterilecek mesajı seç! @@ -1284,7 +1232,6 @@ yönetildi Üye bağlantısı oluşturulurken hata Tüm kişiler için iletim bilgisi gönderme özelliği etkinleştirilecek - XFTP sunucu adreslerinin doğru formatta olduğundan, satırın ayrılmış ve kopyalanmamış olduğundan emin olun. Yenile Lütfen dikkat: Mesaj ve dosya aktarımları SOCKS proxy üzerinden bağlanır. Aramalar doğrudan bağlantı kullanır.]]> Telefon uygulamasında aç seçeneğine tıkla, sonra uygulama içinden Bağlan seçeneğine tıkla.]]> @@ -1293,7 +1240,6 @@ %s ve %s Bağlantılarını koru Alınmış mesaj - Ayarlardan SimpleX kişilerinize görünür yapabilirsiniz. Grubuna bağlanılsın mı? Telefon veya bilgisayar uygulamalarını bağla! 🔗 Yeni bir rasgele profil paylaşılacaktır. @@ -1325,7 +1271,6 @@ .onion ana bilgisayarlarını kullan seçeneğini eğer SOCKS vekili destek vermiyorsa devre dışı bırak]]> Rasgele şifreler düz metin olarak ayarlarda saklanacaktır. \nBunu sonra değiştirebilirsin. - SMP sunucu adreslerinin doğru formatta olduğundan, satırın ayrılmış ve kopyalanmamış olduğundan emin olun. Sahte İsimle katılmak için tıkla Onion ana bilgisayarları kullanılmayacaktır. Dışarıya çıkarmak için parola belirle @@ -1338,7 +1283,6 @@ Bağlanmış bilgisayar ayarları Veritabanı kimlikleri ve Taşıma izolasyonu seçeneği. PING sayısı - Ulaşım izolasyonu modu güncellensin mi? Rasgele Bağlanmış bilgisayarlar Yerel ağ aracılığıyla keşfet @@ -1354,7 +1298,6 @@ %1$d mesaj %2$s tarafından yönetildi Ayarlardaki parola silinsin mi? Alıcılar etkinleştirilsin mi? - Yeni bir sohbet başlatmak için tıkla Kişinin engelini kaldır Yönlendirici sunucusu sadece lazım ise kullanılacak. Diğer taraf IP adresini görebilir. %s ın bağlantısı kesildi]]> @@ -1454,7 +1397,6 @@ Bir canlı mesaj gönder - bu yazdıklarını anlık olarak alıcıya(lara) güncelleyen bir mesajdır Şifre Yöneticisindeki parola silinsin mi? Lere gönder - Takma adla bağlan Her zaman yönlendirici kullan. Kilidini aç %s ten gelen mesajlar gösterilecek! @@ -1874,7 +1816,6 @@ ara Profil değiştirme sırasında hata oluştu. Sohbet profili seç - XFTP sunucuları yapılandırıldı Medya ve dosya sunucuları Kimlik bilgilerini proxy ile kullanmayın. Proxy kayıt edilirken hata oluştu. @@ -1953,10 +1894,8 @@ Tamamlandı Silindi Silme hatası - Sunucu ayarlarını aç Dosya durumu: %s Yeni mesaj - Diğer SMP sunucuları Yeniden bağlan Direkt gönderildi. Tüm Profiller @@ -1985,8 +1924,6 @@ Üye inaktif Henüz direkt bağlantı yok mesaj admin tarafından yönlendirildi. Mesaj sunucuları - SMP sunucları yapılandırıldı - Diğer XFTP sunucuları Medyayı bulanıklaştır. Kişiler silinecek - bu geri alınamaz ! Sohbeti sakla. @@ -2156,7 +2093,6 @@ %d raporu arşivleyelim mi? Arşiv Raporu arşivleyelim mi? - uçtan uca şifreli olarak gönderilir ve doğrudan mesajlarda kuantum sonrası güvenlik sağlanır.]]> Veritabanı şifresini okurken hata oluştu Sohbeti sil Sohbet silinsin mi? diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/uk/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/uk/strings.xml index 78a0b532df..4f49834c7f 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/uk/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/uk/strings.xml @@ -23,7 +23,6 @@ Дозволити безповоротне видалення повідомлень, тільки якщо ваш контакт дозволяє вам. (24 години) Дозволити голосові повідомлення\? Пароль застосунку замінено паролем самознищення. - Додати попередньо встановлені сервери Резервне копіювання даних застосунку Додати на інший пристрій Сховище ключів Android використовується для безпечного збереження ключової фрази - це дозволяє службі сповіщень працювати. @@ -108,8 +107,6 @@ Запит на отримання зображення Прикріпити Аудіо/відео дзвінки - " -\nДоступно в версії 5.1" Аудіо/відео дзвінки заборонені. SimpleX Як ви, так і ваш контакт можуть здійснювати дзвінки. @@ -119,7 +116,6 @@ Приєднатися до групи? Ваш профіль буде відправлено контакту, з якого ви отримали це посилання. Ви приєднаєтеся до всіх учасників групи. - Підключити підключено помилка підключення @@ -159,8 +155,6 @@ Через браузер Відкриття посилання в браузері може зменшити конфіденційність та безпеку з\'єднання. Ненадійні посилання SimpleX будуть виділені червоним кольором. Не вдалося завантажити чати - Помилка збереження серверів SMP - Переконайтеся, що адреси серверів SMP вірного формату, розділені переносами рядків і не дублюються. Помилка оновлення конфігурації мережі Не вдалося завантажити чат Будь ласка, оновіть додаток і зверніться до розробників. @@ -211,7 +205,6 @@ Голосове повідомлення Голосове повідомлення… Контакт і всі повідомлення будуть видалені - цього не можна скасувати! - Очікує Змінити адресу для отримання? Переглянути код безпеки Ви повинні дозволити вашому контакту надсилати голосові повідомлення, щоб мати змогу надсилати їх. @@ -227,8 +220,6 @@ аватар не встановлено QR-код довідка - покажіть QR-код у відеовиклику, або поділіться посиланням.]]> - Ваш профіль буде відправлено \nвашому контакту Одноразове запрошення Невірний код безпеки! Для перевірки end-to-end шифрування порівняйте (або скануйте) код на своїх пристроях. @@ -237,7 +228,6 @@ Допомога з Markdown Блокування SimpleX Консоль чату - Сервери SMP Сканувати QR-код сервера Використовувати для нових підключень Видалити сервер @@ -253,25 +243,18 @@ Якщо доступно Ні .Onion-хости будуть використовуватися, якщо доступні. - Оновити режим ізоляції транспорту? simplexmq: v%s (%2s) Створити адресу Поділитися посиланням Видалити адресу Повне ім\'я: - Ви керуєте своїм чатом! - Платформа обміну повідомленнями і застосунок, які захищають вашу конфіденційність та безпеку. Введіть своє ім\'я: дзвінок в процесі запуск… - Ніяких ідентифікаторів користувачів. - Децентралізована - Використовувати чат Як це впливає на батарею Миттєво Виклик вже завершено! Виклики - Ваші сервери ICE Відкрити через реле Динамік увімкнено @@ -279,7 +262,6 @@ Відхилений виклик %1$d пропущено повідомлень Чати - SOCKS-проксі Помилка при запуску чату Зупинити Імпортувати @@ -307,9 +289,6 @@ Заборонити надсилання повідомлень, які зникають. Забороняйте надсилання голосових повідомлень. Французький інтерфейс - Помилка збереження серверів XFTP - Переконайтеся, що адреси серверів XFTP вірного формату, розділені переносами рядків і не дублюються. - Помилка завантаження серверів XFTP Помилка додавання учасників Помилка приєднання до групи Неможливо отримати файл @@ -326,7 +305,6 @@ Чати підключення… підключення… - Торкніться, щоб розпочати новий чат Чат із розробниками У вас немає чатів ви спостерігач @@ -347,19 +325,14 @@ Якщо ви виберете відхилити, відправник НЕ буде повідомлений. Очистити чат Неправильне посилання! - Це посилання не є дійсним з\'єднувальним посиланням! Запит на з\'єднання відправлено! - Відкрити у мобільному додатку.]]> Сканувати код Скануйте код безпеки з додатка вашого контакту. Невірна адреса сервера! Перевірте адресу сервера і спробуйте ще раз. - Сервери XFTP Встановити SimpleX Chat для терміналу Внести вклад Оцініть додаток - Ваші сервери SMP - Ваші сервери XFTP Використання серверів SimpleX Chat. Як користуватися дзвінок… @@ -405,8 +378,6 @@ Видалити адресу\? Ім\'я профілю: очікування підтвердження… - Приватність перевизначена - Ви вирішуєте, хто може під\'єднатися. зашифрований e2e аудіовиклик Відкрийте SimpleX Chat для прийняття виклику e2e зашифровано @@ -455,7 +426,6 @@ Вийти без збереження Сховати профіль Пароль для відображення - Створити без зашифрування e2e контакт має зашифрування e2e Хеш попереднього повідомлення інший. @@ -517,7 +487,6 @@ аватар Більше Створити профіль - GitHub.]]> Відео увімкнено Це може трапитися, якщо ви або ваше з\'єднання використовували застарілу резервну копію бази даних. Відновити резервну копію бази даних @@ -531,7 +500,6 @@ хвилини Китайський та іспанський інтерфейс підключення %1$d - Помилка завантаження серверів SMP Дубль імені відображення! Помилка відправлення повідомлення Відправник скасував передачу файлу. @@ -568,8 +536,6 @@ Відкликати несанкціонована відправка Вітаємо, %1$s! - Вітаємо! - Цей текст доступний у налаштуваннях Запрошуємо вас до групи Поділитися повідомленням… Поділитися медіа… @@ -606,14 +572,12 @@ \nВи можете скасувати це з\'єднання і видалити контакт (і спробувати пізніше за допомогою нового посилання). Логотип SimpleX Електронна пошта - Цей QR-код не є посиланням! Ви будете підключені до групи, коли пристрій власник групи буде в мережі, зачекайте або перевірте пізніше! Підключення відбудеться, коли ваш запит на підключення буде прийнято. Будь ласка, зачекайте або спробуйте пізніше! Поділитися 1-разовим посиланням Дізнатися більше Щоб підключитися, ваш контакт може сканувати QR-код або використовувати посилання у додатку. Якщо ви не можете зустрітися особисто, покажіть QR-код у відеовиклику або поділіться посиланням. - Ви можете поділитися своєю адресою в якості посилання або QR-коду - кожен може підключитися до вас. Вставити Цей рядок не є з\'єднувальним посиланням! Код безпеки @@ -623,7 +587,6 @@ Markdown у повідомленнях Надсилайте питання та ідеї Ввести сервер вручну - Попередньо встановлений сервер Адреса вашого сервера Сервери для нових підключень до вашого поточного профілю Використовувати сервери SimpleX Chat? @@ -634,7 +597,6 @@ Показати параметри розробника Ідентифікатори бази даних та опція ізоляції транспорту. Сповіщення перестануть працювати, поки ви не перезапустите додаток - Ви можете створити його пізніше Ваш поточний профіль Видалити зображення Зберегти налаштування? @@ -647,7 +609,6 @@ Ви можете використовувати markdown для форматування повідомлень: Створіть свій профіль Створіть приватне підключення - Тільки клієнтські пристрої зберігають профілі, контакти, групи та повідомлення. Приватні сповіщення Споживає більше акумулятора! Додаток завжди працює у фоновому режимі – сповіщення відображаються миттєво.]]> Вставте отримане посилання @@ -822,7 +783,6 @@ Надіслати Підтвердити Інший час - Створити одноразове запрошення Сканувати QR-код Фото Відео @@ -830,7 +790,6 @@ Контакт ще не підключений! Тестувати сервери Зберегти сервери - Ваш сервер Тест сервера не вдався! Деякі сервери не пройшли тест: Використовувати сервер @@ -841,7 +800,6 @@ Налаштування теми Поділитися адресою з контактами SimpleX? підключення дзвінка… - Ми не зберігаємо жодні з ваших контактів чи повідомлень (після доставки) на серверах. очікування відповіді… Як це працює відеовиклик @@ -889,7 +847,6 @@ Дякуємо користувачам – приєднуйтеся через Weblate! Режим блокування SimpleX Системна аутентифікація - Для захисту вашої конфіденційності SimpleX використовує окремі ID для кожного вашого контакту. Коли додаток запущено Періодично контакт не має зашифрування e2e @@ -998,12 +955,9 @@ Скасувати живе повідомлення Скинути без деталей - Підключитися за посиланням / QR-кодом Очистити - Неправильний QR-код Підключення відбудеться, коли пристрій вашого контакту буде онлайн. Будь ласка, зачекайте або спробуйте пізніше! Ви не втратите свої контакти, якщо ви пізніше видалите свою адресу. - Коли люди просять про з\'єднання, ви можете його прийняти чи відхилити. Посібнику користувача.]]> SimpleX-адреса Скинути підтвердження @@ -1021,7 +975,6 @@ Порт Обов\'язково Кольори інтерфейсу - Створіть адресу, щоб дозволити людям підключатися до вас. Контакти залишатимуться підключеними. Створити SimpleX-адресу Оновлення профілю буде відправлено вашим SimpleX контактам. @@ -1035,13 +988,11 @@ Запросити друзів Давайте говорити в SimpleX Chat Продовжити - Не створювати адресу отримано відповідь… отримано підтвердження… підключення… підключено завершено - Стійкий до спаму %1$s хоче підключитися до вас через зашифрований e2e відеовиклик Ігнорувати @@ -1164,8 +1115,6 @@ кольоровий дзвінок завершено %1$s помилка дзвінка - Майбутнє обміну повідомленнями - Кожен може хостити сервери. Інструменти розробника Експериментальні функції Дзвінки @@ -1178,8 +1127,6 @@ Зупинити відправлення файлу Зупинити відправлення файлу? Створити секретну групу - (щоб поділитися з вашим контактом) - (сканувати або вставити з буферу обміну) підключитися до розробників SimpleX Chat, щоб задати будь-які питання і отримувати оновлення.]]> Сканувати QR-код.]]> Адреса SimpleX @@ -1218,7 +1165,6 @@ вас видалили власник видалено - сканувати QR-код у відеовиклику, або ваш контакт може поділитися посиланням на запрошення.]]> Як користуватися Підключення Використовувати .onion-хости на Ні, якщо SOCKS-проксі їх не підтримує.]]> @@ -1251,7 +1197,6 @@ Перервати зміну адреси Дозволити надсилання файлів та медіафайлів. Файли та медіа заборонені. - Підключити інкогніто Використовувати поточний профіль Дозволити Вимкнути сповіщення @@ -1333,7 +1278,6 @@ Навіть коли вимкнено в розмові. Чорновик повідомлення Тільки власники групи можуть включити файли та медіа. - Вставте посилання, яке ви отримали, щоб підключитися до свого контакту… Надсилання повідомлень про доставку вимкнено для %d груп %s, %s і %s підключилися Їх можна замінити в налаштуваннях контактів і груп. @@ -1539,7 +1483,6 @@ Створення посилання… Налаштування для розробників Показувати повільні виклики API - Ви можете зробити це видимим для ваших контактів у SimpleX через Налаштування. %s заблокований %s розблокований ви заблокували %s @@ -1841,7 +1784,6 @@ Адреса сервера призначення %1$s несумісна з налаштуваннями сервера переадресації %2$s. Файл не знайдено — ймовірно, файл був видалений або скасований. Вставити / Сканувати посилання - Налаштовані XFTP сервери Бета Статус файлу Надіслано повідомлень @@ -1876,7 +1818,6 @@ Сервер переадресації %1$s не зміг з\'єднатися з цільовим сервером %2$s. Будь ласка, спробуйте пізніше. Повідомлення може бути доставлено пізніше, якщо учасник стане активним. Нічого не вибрано - Відкрити налаштування сервера Версія сервера несумісна з вашим додатком: %1$s. Повідомлення будуть позначені як модеровані для всіх учасників. Оновлювати додаток автоматично @@ -1993,11 +1934,8 @@ Розмову видалено! Видалити без сповіщення Ви можете надсилати повідомлення %1$s з архівованих контактів. - Налаштовані SMP сервери Ніяких відфільтрованих контактів - Інші SMP сервери Ваші контакти - Інші XFTP сервери Показати відсоток Перевірити оновлення Вимкнено @@ -2202,7 +2140,6 @@ Без фонової служби Сповіщення та батарея Додаток завжди працює у фоні. - зашифрованими end-to-end, з пост-квантовою безпекою в особистих повідомленнях.]]> Покинути чат? Учасник буде видалений з чату — це неможливо скасувати! Бізнес чати diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/vi/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/vi/strings.xml index 4b8ec8c4b7..9c63cff9ee 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/vi/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/vi/strings.xml @@ -30,7 +30,6 @@ 30 giây Chấp nhận yêu cầu kết nối? Chấp nhận bằng hồ sơ ẩn danh - Thêm các máy chủ được cài sẵn Thêm vào một thiết bị khác cuộc gọi được chấp nhận đồng ý mã hóa… @@ -138,8 +137,6 @@ Địa chỉ máy tính xấu Thêm liên hệ: để tạo đường dẫn mời mới, hoặc kết nối qua đường dẫn bạn nhận được.]]> hàm băm tin nhắn xấu - " -\nCó sẵn ở v5.1" Tự động chấp nhận Quay về Tự động chấp nhận hình ảnh @@ -277,7 +274,6 @@ Đã kết nối đã kết nối Kết nối trực tiếp? - Kết nối đã kết nối Tự động kết nối đã kết nối @@ -293,7 +289,6 @@ đang kết nối đang kết nối… đang kết nối… - Kết nối ẩn danh đang kết nối Đã kết nối tới máy tính đang kết nối (đã được thông báo) @@ -302,7 +297,6 @@ đang kết nối (lời mời giới thiệu) Kết nối tới máy tính đang ở trong tình trạng không tốt Kết nối đã bị ngắt - Kết nối qua đường dẫn / mã QR Kết nối tới chính bạn? Yêu cầu kết nối đã được gửi! Kết nối qua đường dẫn @@ -340,7 +334,6 @@ liên hệ không có bảo mật đầu cuối Tùy chọn liên hệ Sao chép - Tạo Liên hệ có thể đánh dấu tin nhắn để xóa; bạn vẫn sẽ có thể xem được chúng. Biểu tượng ngữ cảnh Tiếp tục @@ -353,7 +346,6 @@ Tạo hồ sơ mới trong ứng dụng trên máy tính. 💻 Không thể gửi tin nhắn Tạo tệp - Tạo một địa chỉ để cho mọi người kết nối với bạn. Tạo đường dẫn nhóm Tạo đường dẫn Được tạo ra tại @@ -370,7 +362,6 @@ Các màu chế độ tối Tối Lỗi nghiêm trọng - Tạo đường dẫn lời mời dùng một lần Đang tạo đường dẫn… Tạo hồ sơ Tùy chỉnh và chia sẻ các chủ đề màu sắc. @@ -419,7 +410,6 @@ Xóa hồ sơ trò chuyện? Xóa %d tin nhắn? Xóa địa chỉ - Phi tập trung Xóa Xóa cơ sở dữ liệu khỏi thiết bị này Xóa sau @@ -482,8 +472,6 @@ Beta Kiểm tra cập nhật Đang kết nối - Các máy chủ SMP đã được cấu hình - Các máy chủ XFTP đã được cấu hình Bản cập nhật ứng dụng đã được tải xuống Kiểm tra cập nhật Đã kết nối @@ -555,7 +543,6 @@ Kiểm soát mạng của bạn Kết nối và trạng thái máy chủ. Cài đặt nâng cao - Bất kỳ ai cũng có thể tạo máy chủ. Tiếp tục Kết nối nhanh hơn với bạn bè. Cơ sở dữ liệu trò chuyện đã được xuất @@ -587,7 +574,6 @@ Tên hiển thị không thể chứa khoảng trắng. Khám phá qua mạng cục bộ Tải về không thành công - Không tạo địa chỉ Không hiển thị lại Tải về tệp tin Đang tải về kho lưu trữ @@ -711,8 +697,6 @@ Lỗi nhận tệp Lỗi lưu hồ sơ nhóm Lỗi lưu tệp - Lỗi tải máy chủ SMP - Lỗi tải máy chủ XFTP Lỗi kết nối lại máy chủ Lỗi kết nối lại máy chủ Lỗi @@ -721,8 +705,6 @@ lỗi hiển thị tin nhắn lỗi hiển thị nội dung Lỗi lưu máy chủ ICE - Lỗi lưu máy chủ XFTP - Lỗi lưu máy chủ SMP Lỗi gửi tin nhắn Lỗi khởi động kết nối trò chuyện Lỗi dừng kết nối trò chuyện @@ -895,7 +877,6 @@ Chuyển tiếp tối đa 20 tin nhắn cùng một lúc. Cách sử dụng máy chủ của bạn Giao diện Hungary và Thổ Nhĩ Kỳ - Miễn nhiễm với tin nhắn rác Nhập cơ sở dữ liệu trò chuyện? Nếu bạn nhập mã tự hủy của mình khi mở ứng dụng: Máy chủ ICE (một dòng mỗi máy) @@ -909,10 +890,8 @@ Hình ảnh Hình ảnh đã được lưu vào Thư viện Nếu bạn nhận được đường dẫn mời SimpleX Chat, bạn có thể mở nó trong trình duyệt của mình: - quét mã QR trong cuộc gọi video, hoặc liên hệ của bạn có thể chia sẻ một đường dẫn mời.]]> Nếu bạn xác nhận, các máy chủ truyền tin nhắn sẽ có thể biết địa chỉ IP, và nhà cung cấp của bạn - máy chủ nào mà bạn đang kết nối. Nếu bạn chọn từ chối người gửi sẽ KHÔNG được thông báo. - cho liên hệ của bạn xem mã QR trong cuộc gọi video, hoặc chia sẻ đường dẫn.]]> Nhập Bỏ qua không hoạt động @@ -963,7 +942,6 @@ Tên hiển thị không hợp lệ! Đường dẫn kết nối không hợp lệ Thông báo tức thời! - Mã QR không hợp lệ Thông báo tức thời Thông báo tức thời đã bị tắt! Đường dẫn tệp không hợp lệ @@ -977,8 +955,6 @@ Mời thành viên Tên cục bộ Cảnh báo chuyển gửi tin nhắn - Đảm bảo địa chỉ máy chủ SMP ở đúng định dạng, dòng được phân tách và không bị trùng lặp. - Đảm bảo địa chỉ máy chủ XFTP ở đúng định dạng, dòng được phân tách và không bị trùng lặp. Liên kết với điện thoại Thành viên không hoạt động Tin nhắn đã được chuyển tiếp @@ -1172,7 +1148,6 @@ bật Không có gì để chuyển tiếp! Thông báo sẽ dừng hoạt động cho đến khi bạn khởi động lại ứng dụng - Không có thông tin định danh người dùng. không có văn bản tắt tắt` @@ -1195,7 +1170,6 @@ OK Chỉ xóa cuộc trò chuyện Chỉ bạn mới có thể gửi tin nhắn thoại. - Chỉ thiết bị cuối mới lưu trữ các hồ sơ người dùng, liên hệ, nhóm, và tin nhắn Chỉ chủ nhóm mới có thể bật tính năng tin nhắn thoại. Chỉ bạn mới có thể gửi tin nhắn tự xóa. Đường dẫn lời mời dùng một lần @@ -1222,7 +1196,6 @@ Dịch vụ onion sẽ được sử dụng khi có sẵn. Chỉ liên hệ của bạn mới có thể gửi tin nhắn thoại. chủ sở hữu - Mở cài đặt máy chủ Mở đường dẫn trong trình duyệt có thể làm giảm sự riêng tư và bảo mật của kết nối. Đường dẫn SimpleX không đáng tin cậy sẽ được đánh dấu màu đỏ. Chỉ liên hệ của bạn mới có thể xóa tin nhắn mà không thể phục hồi (bạn có thể đánh dấu chúng để xóa). (24 giờ) Mở cài đặt ứng dụng @@ -1248,14 +1221,10 @@ Mở nhóm khác các lỗi khác - Các máy chủ SMP khác - Các máy chủ XFTP khác - Dán đường dẫn mà bạn nhận được để kết nối với liên hệ của bạn… Dán đường dẫn Mật khẩu Định kỳ Đang chờ xử lý - Đang chờ xử lý Không tìm thấy mật khẩu trong Keystore, vui lòng nhập thủ công. Điều này có thể xảy ra nếu bạn khôi phục dữ liệu ứng dụng bằng một công cụ sao lưu. Nếu không phải như vậy, xin vui lòng liên hệ với nhà phát triển. Thành viên trước đây %1$s Dán đường dẫn để kết nối! @@ -1301,14 +1270,12 @@ Lưu lại bản nháp tin nhắn cuối cùng, với các tệp đính kèm. Đang chuẩn bị tải xuống Xin vui lòng cập nhật ứng dụng và liên lạc với các nhà phát triển. - Máy chủ cài sẵn Xin vui lòng thử lại sau. Xem trước Xin vui lòng lưu trữ mật khẩu một cách an toàn, bạn sẽ KHÔNG thể thay đổi nếu bạn làm mất nó. Giao diện tiếng Ba Lan Xin vui lòng khởi động lại ứng dụng. Các máy chủ đã kết nối trước đó - Định hình lại sự riêng tư Quyền riêng tư & bảo mật Bản cập nhật hồ sơ sẽ được gửi đến các liên hệ của bạn. Cấm thả cảm xúc tin nhắn. @@ -1359,7 +1326,6 @@ Cài đặt địa chỉ %s.]]> %s.]]> - Kho lưu trữ GitHub của chúng tôi.]]> %s.]]> %s.]]> %s.]]> @@ -1374,7 +1340,6 @@ %1$s rồi.]]> %1$s!]]> %1$s rồi.]]> - Mở trong ứng dụng di động.]]> Các bên vận hành máy chủ kết nối với các nhà phát triển SimpleX Chat để hỏi bất kỳ câu hỏi nào và nhận thông tin cập nhật.]]> không được sử dụng cùng một cơ sở dữ liệu trên hai thiết .]]> @@ -1403,7 +1368,6 @@ Cuộc trò chuyện đã tồn tại! Thêm bạn bè đã chấp nhận lời mời - mã hóa đầu cuối, với bảo mật sau ượng tử trong các tin nhắn trực tiếp.]]> Giới thiệu về các nhà cung cấp Thêm các thành viên nhóm của bạn vào các cuộc trò chuyện. Địa chỉ doanh nghiệp @@ -1609,7 +1573,6 @@ Đã chọn %d Gửi tin nhắn trực tiếp để kết nối Đang lưu %1$s tin nhắn - (quét hoặc dán từ bảng nháp) Gửi tin nhắn trực tiếp Lưu lời chào? gửi thất bại @@ -1817,7 +1780,6 @@ Loa ngoài bật Âm thanh đã bị tắt Ổn định - Proxy SOCKS Các nhóm nhỏ (tối đa 20 thành viên) Một vài lỗi không nghiêm trọng đã xảy ra trong lúc nhập: Loa ngoài tắt @@ -1843,7 +1805,6 @@ Một số tệp đã không được xuất Loa ngoài Bắt đầu kết nối trò chuyện? - Các máy chủ SMP Bắt đầu kết nối trò chuyện Tin nhắn rác Mạnh @@ -1902,12 +1863,10 @@ Cảm ơn bạn đã cài đặt SimpleX Chat! Kiểm tra máy chủ Kiểm tra các máy chủ - Nhấn để bắt đầu một cuộc trò chuyện mới Nhấn để dán đường dẫn Đuôi Chuyển đổi Kết nối đã chạm giới hạn của các tin nhắn chưa được gửi đi, liên hệ của bạn có thể đang ngoại tuyến. - Tương lai của nhắn tin Hình ảnh không thể được giải mã. Xin vui lòng thử lại với một hình ảnh khác hoặc liên lạc với các nhà phát triển. Các tin nhắn sẽ bị xóa cho tất cả các thành viên. Mã hóa đang hoạt động và thỏa thuận mã hóa mới là không bắt buộc. Nó có thể dẫn đến các lỗi kết nối! @@ -1955,7 +1914,6 @@ Tính năng này chưa được hỗ trợ. Hãy thử bản phát hành tiếp theo. Dấu tick thứ hai mà chúng ta từng thiếu! ✅ Những máy chủ cho tệp mới của hồ sơ trò chuyện hiện tại của bạn - Nền tảng ứng dụng và nhắn tin bảo vệ sự riêng tư và bảo mật của bạn. Bên vận hành được cài sẵn thứ hai trong ứng dụng! Chức vụ sẽ được đổi thành %s. Tất cả mọi người trong cuộc trò chuyện sẽ được thông báo. Văn bản bạn vừa dán không phải là một đường dẫn SimpleX. @@ -1967,11 +1925,8 @@ Việc này không thể được hoàn tác - hồ sơ, các liên hệ, tin nhắn và tệp của bạn sẽ biến mất mà không thể khôi phục. Những máy chủ cho các kết nối mới của hồ sơ trò chuyện hiện tại của bạn Tin nhắn này đã bị xóa hoặc vẫn chưa được nhận. - Mã QR này không phải là một đường dẫn! - Đường dẫn này không phải là một đường dẫn kết nối hợp lệ! Thời gian chờ đã hết trong khi kết nối tới máy tính Để cho phép một ứng dụng di động kết nối tới máy tính, mở cổng này trong tường lửa của bạn, nếu bạn có bật nó lên - Để bảo vệ sự riêng tư của bạn, SimpleX sử dụng các ID riêng biệt cho mỗi liên hệ bạn có. Để nhận thông báo, xin vui lòng nhập mật khẩu cơ sở dữ liệu Quá nhiều ảnh! Quá nhiều video! @@ -1985,7 +1940,6 @@ Tiêu đề Chuyển đổi ẩn danh khi kết nối. Để bảo vệ múi giờ, các tệp hình ảnh/âm thanh sử dụng UTC. - Văn bản này có sẵn trong cài đặt Để được thông báo về các bản phát hành mới, bật kiểm tra định kỳ cho các phiên bản Ổn định hoặc Beta. Để ẩn các tin nhắn không mong muốn. Để tiết lộ hồ sơ ẩn của bạn, nhập đầy đủ mật khẩu vào trường tìm kiếm trong trang Các hồ sơ trò chuyện của bạn. @@ -2014,7 +1968,6 @@ Các phiên truyền tải Các máy chủ không xác định! gửi mà không được cho phép - (để chia sẻ với liên hệ của bạn) Bỏ ẩn Bật Tổng @@ -2028,7 +1981,6 @@ Tối đa tới 100 tin nhắn cuối cùng là được gửi tới các thành viên mới. Sử dụng các thông tin đăng nhập proxy khác cho mỗi kết nối. Sử dụng các thông tin đăng nhập proxy khác nhau cho mỗi hồ sơ. - Cập nhật chế độ cách ly truyền tải? Hủy liên kết máy tính? Tải lên tệp Có bản cập nhật: %s @@ -2076,7 +2028,6 @@ Sử dụng hồ sơ ẩn danh mới qua %1$s Sử dụng proxy SOCKS - Sử dụng SimpleX Chat Sử dụng cho các kết nối mới Sử dụng máy chủ Sử dụng proxy SOCKS? @@ -2117,7 +2068,6 @@ cuộc gọi video (không được mã hóa đầu cuối) qua đường dẫn địa chỉ liên lạc Video - Chúng tôi không lưu bất kỳ liên hệ hay tin nhắn nào của bạn (một khi đã được gửi) trên các máy chủ. Xin chào %1$s! Khi có sẵn Các tin nhắn thoại bị cấm! @@ -2132,7 +2082,6 @@ Màu nền hình nền Đang chờ máy tính… Đang chờ di động để kết nối: - Xin chào! Đang chờ video muốn kết nối với bạn! Đang chờ tệp @@ -2165,19 +2114,15 @@ Tắt tính năng xóa tin nhắn Đặt tên cuộc trò chuyện… Không có Tor hoặc VPN, địa chỉ IP của bạn sẽ bị lộ ra cho các relay XFTP sau đây:\n%1$s. - Các máy chủ XFTP Khi có nhiều hơn một bên vận hành được kích hoạt, không ai trong số họ có siêu dữ liệu để biết được ai trò chuyện với ai. Với các tệp và đa phương tiện được mã hóa. Mức sử dụng pin đã được giảm xuống. Mức sử dụng pin đã được giảm xuống. Với lời chào tùy chọn. - Khi mọi người gửi yêu cầu kết nối, bạn có thể chấp nhận hoặc từ chối nó. Khóa sai hoặc địa chỉ khối tệp không xác định - khả năng cao tệp đã bị xóa. 1 năm Việc này không thể được hoàn tác - các tin nhắn đã được gửi và nhận trong cuộc trò chuyện này sớm hơn thời gian được chọn sẽ bị xóa. có - Bạn có thể hiển thị nó cho các liên hệ SimpleX của mình thông qua Cài đặt. - Bạn có thể tạo nó sau Bạn có thể thay đổi nói trong cài đặt Giao diện. Bạn đang tham gia nhóm thông qua đường dẫn này. Bạn có thể bật vào lúc sau thông qua Cài đặt @@ -2228,9 +2173,7 @@ bạn đã thay đổi địa chỉ Bạn đã yêu cầu kết nối thông qua địa chỉ này rồi! Bạn đã mời một liên hệ - Bạn có thể chia sẻ địa chỉ của mình dưới dạng một đường dẫn hoặc mã QR - bất kỳ ai cũng có thể kết nối với bạn. Bạn có thể xem đường dẫn mời lần nữa trong chi tiết kết nối. - Bạn kiểm soát cuộc trò chuyện của mình! bạn là quan sát viên Bạn có thể chia sẻ địa chỉ này với các liên hệ của mình để họ kết nối với %s. Bạn cần cho phép liên hệ của mình gửi tin nhắn thoại để có thể gửi cho họ. @@ -2239,7 +2182,6 @@ bạn đã thay đổi địa chỉ cho %s Bạn có thể sử dụng markdown để định dạng tin nhắn: Bạn có thể bắt đầu kết nối trò chuyện thông qua phần Cài đặt / Cơ sở dữ liệu ở trên ứng dụng hoặc bằng cách khởi động lại ứng dụng. - Bạn quyết định ai có thể kết nối tới. Cơ sở dữ liệu trò chuyện của bạn Sự riêng tư của bạn Cơ sở dữ liệu trò chuyện hiện tại của bạn sẽ bị XÓA và THAY THẾ bằng cái được nhập vào.\nViệc này không thể được hoàn tác - hồ sơ, các liên hệ, tin nhắn và tệp của bạn sẽ biến mất mà không thể khôi phục. @@ -2248,7 +2190,6 @@ Hồ sơ, các liên hệ và những tin nhắn đã được gửi của bạn được lưu trữ trên thiết bị bạn dùng. Các liên hệ của bạn có thể cho phép xóa tin nhắn hoàn toàn. Thu phóng - Các máy chủ SMP của bạn Bạn đã chia sẻ đường dẫn dùng một lần Hồ sơ trò chuyện của bạn sẽ được gửi tới các thành viên nhóm Hồ sơ hiện tại của bạn @@ -2258,7 +2199,6 @@ Bạn đã gửi lời mời nhóm Bạn đã từ chối lời mời nhóm bạn đã bỏ chặn %s - Hồ sơ trò chuyện của bạn sẽ được gửi\ntới liên hệ của bạn bạn đã chia sẻ đường dẫn ẩn danh dùng một lần Địa chỉ SimpleX của bạn Liên hệ của bạn cần phải trực tuyến để cho kết nối hoàn thành.\nBạn có thể hủy kết nối này và xóa liên hệ (và thử lại sau với một đường dẫn mới). @@ -2267,7 +2207,6 @@ Hồ sơ trò chuyện của bạn sẽ được gửi tới các thành viên có liên lạc Bạn sẽ được kết nối khi yêu cầu kết nối của bạn được chấp nhận, xin vui lòng đợi hoặc kiểm tra sau! Hồ sơ %1$s sẽ được chia sẻ. - Các máy chủ XFTP của bạn Hồ sơ của bạn sẽ được gửi tới liên hệ mà bạn đã nhận từ người đó đường dẫn này. Bạn sẽ kết nối với tất cả các thành viên nhóm. Bạn đã chia sẻ một đường dẫn tệp không hợp lệ. Báo cáo vấn đề tới các nhà phát triển ứng dụng. @@ -2281,9 +2220,7 @@ Các liên hệ của bạn Các hồ sơ trò chuyện của bạn Cài đặt của bạn - Máy chủ của bạn Địa chỉ máy chủ của bạn - Các máy chủ ICE của bạn Thông tin định danh của bạn có thể bị gửi mà không được mã hóa. Hồ sơ của bạn được lưu trên thiết bị bạn dùng và chỉ được chia sẻ với các liên hệ bạn có. Các máy chủ SimpleX không thể xem hồ sơ của bạn. Kết nối của bạn đã bị chuyển tới %s nhưng một lỗi không mong muốn đã xảy ra trong khi chuyển hướng bạn đến hồ sơ. diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/zh-rCN/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/zh-rCN/strings.xml index 2d5ccbe4b9..804316d18c 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/zh-rCN/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/zh-rCN/strings.xml @@ -23,7 +23,6 @@ 接受连接请求? 接受隐身聊天 管理员可以创建链接以加入群。 - 添加预设服务器 通过链接连接 已建立连接 连接 %1$d @@ -64,7 +63,6 @@ 通过一次性链接进行连接? 通过联系人地址进行连接? 加入群? - 通过群链接/二维码连接 总是通过中继连接 允许你的联系人不不可逆地删除已发送消息。(24小时) 联系人允许 @@ -169,13 +167,11 @@ 只有群主可以改变群偏好设置。 保存偏好设置? 设置群偏好设置 - 重新定义隐私 改进的隐私和安全 隐身聊天 加入群中 加入隐身聊天 隐身模式 - 点击开始一个新聊天 你的随机资料 通过联系地址链接隐身 通过群链接隐身 @@ -223,7 +219,6 @@ 彩色 已连接 连接 - 连接 文件 聊天资料 按聊天资料(默认)或按连接(BETA)。 @@ -269,10 +264,7 @@ 扫描二维码 从应用程序扫描显示的二维码。]]> 删除待定连接? 如何使用 markdown - 创建 显示名不能包含空格。 - 分散式 - 不受垃圾和骚扰消息影响 端到端加密视频通话 忽视 视频通话来电 @@ -326,7 +318,6 @@ 创建群链接 创建私密群 创建链接 - 创建一次性邀请链接 创建队列 创建私密群 不同的名字、头像和传输隔离。 @@ -398,7 +389,6 @@ 更新网络配置错误 删除联系人请求错误 保存群资料错误 - 保存 SMP 服务器错误 保存 ICE 服务器错误 发送消息错误 完整链接 @@ -433,7 +423,6 @@ 邀请已过期! 实时消息! 链接预览图片 - 无效的二维码 它如何影响电量 它可能在以下情况发生: \n1. 消息在发送客户端 2 天后或在服务器上 30 天后过期。 \n2. 消息解密失败,因为你或你的联系人使用了旧的数据库备份。 \n3.连接被破坏。 离开群? @@ -484,7 +473,6 @@ 设置联系人姓名…… 已收到回复…… 已受到确认…… - 仅客户端设备存储用户个人资料、联系人、群和消息。 视频通话(非端到端加密) 定期 私密通知 @@ -556,7 +544,6 @@ 拒接来电 点对点 错误:%s - 扫描视频通话中的二维码,或者你的联系人可以分享邀请链接。]]> 你的通话 通过中继 未接来电 @@ -564,13 +551,11 @@ 语音消息 语音消息 SimpleX Chat 通话 - 在视频通话中出示二维码,或分享链接。]]> 你的聊天资料 未接来电 待定来电 你的联系人删除了此链接,或者其为已使用的一次性链接。\n要进行连接,请你的联系人创建新链接。 你已经连接到 %1$s。 - 你的聊天资料将被发送 \n给你的联系人 资料和服务器连接 更新网络设置? 只有你可以不可逆地删除消息(你的联系人可以将它们标记为删除)。(24小时) @@ -619,7 +604,6 @@ %d 月 %d 秒 确保 WebRTC ICE 服务器地址格式正确、每行分开且不重复。 - 确保 SMP 服务器地址格式正确、每行分开且不重复。 Markdown 帮助 标记为已验证 建立私密连接 @@ -674,7 +658,6 @@ 发送人已取消文件传输。 分享 发送实时消息 - 此文本在设置中可用 未读 保存的 WebRTC ICE 服务器将被删除。 %s 已验证 @@ -684,7 +667,6 @@ 保存并通知联系人 保存并通知联系人 拒绝 - 为了保护隐私,SimpleX 对你的每一个联系人使用不同的 ID。 TCP 连接超时 收到,禁止 设定1天 @@ -692,7 +674,6 @@ 在浏览器中打开链接可能会降低连接的隐私和安全性。SimpleX 上不受信任的链接将显示为红色。 恢复数据库备份后请输入之前的密码。 此操作无法撤消。 请更新应用程序并联系开发者。 - 任何人都可以托管服务器。 粘贴 PING 次数 禁止发送语音消息。 @@ -711,28 +692,22 @@ SimpleX 消息 %s 未验证 感谢用户——通过 Weblate 做出贡献! - 没有用户标识符。 完全去中心化 - 仅对成员可见。 图像无法解码。 请尝试不同的图像或联系开发者。 主题 此操作无法撤消——所有接收和发送的文件和媒体都将被删除。 低分辨率图片将保留。 角色将更改为%s。 该成员将收到新的邀请。 此操作无法撤消——早于所选的发送和接收的消息将被删除。 这可能需要几分钟时间。 - 此二维码不是链接! 接收地址将变更到不同的服务器。地址更改将在发件人上线后完成。 - 此链接不是有效的连接链接! 开始新的聊天 要与你的联系人验证端到端加密,请比较(或扫描)你设备上的代码。 取消静音 - 更新传输隔离模式? - (从剪贴板扫描或粘贴) 保护队列 揭示 打开 发送失败 未经授权发送 太多图片! - 待办的 更改接收地址? 请让你的联系人启用发送语音消息。 录制语音消息 @@ -741,22 +716,17 @@ 发送 发送实时消息——它会在你键入时为收件人更新 开始新聊天 - (与你的联系人分享) 通过链接连接 设置联系人姓名 你接受的连接将被取消! 你与之共享此链接的联系人将无法连接! 显示二维码 发送问题和想法 - 保护你的隐私和安全的消息传递和应用程序平台。 删去 - 你决定谁可以连接。 - 下一代私密通讯软件 粘贴你收到的链接 已跳过消息 支持 SimpleX Chat 发送链接预览 - SOCKS 代理 停止聊天程序? 停止聊天以便导出、导入或删除聊天数据库。在聊天停止期间,你将无法收发消息。 恢复数据库备份 @@ -774,7 +744,6 @@ 分享一次性链接 此字符串不是连接链接! 给我们发电子邮件 - SMP 服务器 尚不支持发送文件 尝试连接到用于从该连接接收消息的服务器。 尚不支持接收文件 @@ -786,7 +755,6 @@ SimpleX 群链接 SimpleX 链接 发送人已删除连接请求。 - 预设服务器 二维码 传输隔离 分享链接 @@ -810,8 +778,6 @@ 重置颜色 减少电池使用量 为了保护时区,图像/语音文件使用 UTC。 - 使用聊天 - GitHub 存储库 中阅读更多内容。]]> 打开聊天控制台 停止聊天程序 权限被拒绝! @@ -833,7 +799,6 @@ 查看安全码 语音消息 (%1$s) 等待图像中 - 欢迎! 欢迎 %1$s! 当你的联系人设备在线时,你将可以连接,请稍等或稍后查看! 评价此应用程序 @@ -856,7 +821,6 @@ 当你启动应用或在应用程序驻留后台超过30 秒后,你将需要进行身份验证。 连接到 SimpleX Chat 开发者提出任何问题并接收更新 。]]> 你已接受连接 - 你的 SMP 服务器 %1$d 条已跳过消息 %ds 更新内容 @@ -874,11 +838,9 @@ 你的 SimpleX 地址 为终端安装 SimpleX Chat 使用 SimpleX Chat 服务器? - 我们不会在服务器上存储你的任何联系人或消息(一旦发送)。 WebRTC ICE 服务器 中继服务器保护你的 IP 地址,但它可以观察通话的持续时间。 中继服务器仅在必要时使用。其他人可能会观察到你的IP地址。 - 你的 ICE 服务器 视频关闭 你可以通过应用设置/数据库或重启应用开始聊天。 你将 %s 的角色更改为 %s @@ -886,19 +848,16 @@ 你已更改地址 你可以共享链接或二维码——任何人都可以加入该群。如果你稍后将其删除,你不会失去该群的成员。 间接(%1$s) - 在移动应用程序中打开按钮。]]> SimpleX 你将连接到所有群成员。 通过群链接 通过一次性链接 通过联系地址链接 通过浏览器 - 你的服务器 当可用时 使用 .onion 主机 你的 ICE 服务器 simplexmq: v%s (%2s) - 你的聊天由你掌控! 你可以使用 markdown 来编排消息格式: %dh %d 天 @@ -1012,20 +971,14 @@ 视频将在你的联系人完成上传后收到。 服务器需要授权来上传,检查密码。 上传文件 - XFTP 服务器 - 你的 XFTP 服务器 Use .onion hosts 设置为否。]]> 使用 SOCKS 代理 端口 删除文件 对比文件 主机 - 确保 XFTP 服务器地址格式正确、行分隔且不重复。 创建文件 下载文件 - 加载 SMP 服务器错误 - 加载 XFTP 服务器错误 - 保存 SMP 服务器时出错 端口 %d SOCKS 代理设置 SimpleX 锁定模式 @@ -1079,8 +1032,6 @@ 文件将从服务器中删除。 吊销 音频/视频通话 - " -\n在 v5.1 版本中可用" 应用程序密码 波兰语界面 感谢用户——通过 Weblate 做出贡献! @@ -1127,10 +1078,8 @@ 消失于 设置地址错误 自定义主题 - 创建一个地址,让人们与你联系。 创建 SimpleX 地址 输入欢迎消息……(可选) - 不创建地址 输入欢迎消息…… 深色主题 导出主题 @@ -1169,10 +1118,8 @@ 打开数据库中…… 更改聊天资料 你的联系人可以扫描二维码或使用应用程序中的链接来建立连接。 - 你可以将你的地址作为链接或二维码共享——任何人都可以连接到你。 如果你不能亲自见面,可以在视频通话中展示二维码,或分享链接。 了解更多 - 当人们请求连接时,你可以接受或拒绝它。 如果你以后删除你的地址,你不会丢失你的联系人。 用户指南中阅读更多。]]> 界面颜色 @@ -1185,7 +1132,6 @@ 你好! \n用 SimpleX Chat 与我联系:%s 让我们一起在 SimpleX Chat 里聊天 - 你可以以后创建它 分享地址… 你可以与你的联系人分享该地址,让他们与 %s 联系。 预览 @@ -1262,7 +1208,6 @@ 与 %s 协调加密中… 该功能还没支持。请尝试下一个版本。 允许 - 隐身连接 确认发起私聊? 发送 %s: %s @@ -1334,7 +1279,6 @@ 将送达回执发送给 启用已读回执时出错! 更改密码或重启应用后,密码将以明文形式保存在设置中。 - 粘贴你收到的链接以与你的联系人联系… 送达回执 没有选中的聊天 可以加密 @@ -1501,7 +1445,6 @@ %2$s 审核了 %1$d 条消息 显示内容出错 显示消息出错 - 你可以通过设置让它对你的 SimpleX 联系人可见。 未发送历史消息给新成员。 重试 相机不可用 @@ -1849,8 +1792,6 @@ 私密路由出错 已转发的消息 尚无直接连接,消息由管理员转发。 - 其他 SMP 服务器 - 其他 XFTP 服务器 粘贴链接/扫描 显示百分比 不活跃 @@ -1931,8 +1872,6 @@ 总计 块已上传 订阅被忽略 - 已配置的 SMP 服务器 - 已配置的 XFTP 服务器 当前个人资料 传输会话 已上传 @@ -1941,7 +1880,6 @@ 成员不活跃 如果成员变得活跃,可能会在之后传输消息。 发送的消息 - 打开服务器设置 检查更新 检查更新 停用 @@ -2190,7 +2128,6 @@ 请减小消息大小或删除媒体并再次发送。 将你的团队成员加入对话。 企业地址 - 端到端加密,私信具备后量子密码安全性。]]> 无后台服务 每 10 分钟检查消息 它如何帮助隐私 diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/zh-rTW/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/zh-rTW/strings.xml index 2909f01636..357099ddef 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/zh-rTW/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/zh-rTW/strings.xml @@ -14,7 +14,6 @@ 要在端口啟用 SOCKS 代理伺服器嗎 %d?在啟用這個選項之前,必須先啟用代理伺服器。 管理員 然後,選按: - 新增預設伺服器 新增伺服器 接受 認證無效 @@ -166,8 +165,6 @@ 自動銷毀訊息 開啟新的對話 建立私密群組 - 建立一次性邀請連結 - (分享給你的聯絡人) 點擊按鈕 感謝你安裝 SimpleX Chat! 靜音 @@ -234,7 +231,6 @@ 加入群組? 你的個人檔案將傳送給你接收此連結的聯絡人。 你將連接至此群組內的所有成員。 - 連接 錯誤 連接中 你已連接到此聯絡人使用的伺服器以接收訊息。 @@ -243,8 +239,6 @@ 已刪除 已標記為已刪除 在瀏覽器中開啟連結可能會有隱私疑慮和不確定性。不受 SimpleX 信任的連結會顯示紅色。 - 儲存 SMP 伺服器時出錯 - 請確保 SMP 伺服器連結是正確的格式,每行也分隔且不重複。 更新網路配置時出錯 聊天載入失敗 多個聯絡人載入失敗 @@ -293,13 +287,10 @@ 未經授權傳送 傳送失敗 歡迎 %1$s! - 歡迎! - 在設定中可用這文字 連接中… 你被邀請加入至群組 以 %s 身份加入 連接中… - 點擊以開啟新的對話 找不到檔案 語音訊息 (%1$s) 語音訊息… @@ -356,7 +347,6 @@ 傳送實況的訊息 直播訊息! 傳送實況訊息 - 這會即時顯示你在輸入中的文字 - (掃描或使用剪貼薄貼上) 權限被拒絕! SimpleX 在背景運作而不是使用推送通知。]]> 定期通知 @@ -378,7 +368,6 @@ 已連接 已斷開連接 錯誤 - 待處理 切換接收的聯絡地址? 此功能目前還是實驗階段!對方需要使用 4.2 版本或更高的版本才能成功生效。地址修改後,你會在對話中看到新的訊息 - 請你於修改聯絡地址後,測試是否仍然能夠接收來自這聯絡人(或群組內的成員)的訊息。 查看安全碼 @@ -396,13 +385,11 @@ 沒有詳細資料 一次性邀請連結 已複製至你的剪貼薄 - 透過連結/QR 圖碼連接 掃描二維碼 (僅由群組成員儲存) 想和你對話! SimpleX 徽標 透過連結連接 - 預設伺服器 你的伺服器地址 刪除伺服器 你的 ICE 伺服器 @@ -416,7 +403,6 @@ 使用連結連接 掃描二維碼。]]> 設定 - 這個二維碼不是一個連結! 當可用時 核心版本:v%s simplexmq: v%s (%2s) @@ -454,20 +440,13 @@ 電郵 更多 顯示二維碼 - 無效的 QR 圖碼 無效的連結! - 這個連結不是一個有效的連接連結! 已傳送連接請求 當群組的建立人上線,你便會成功連接至群組,請耐心等待! 當你的連接請求已被接受,你便會連接成功,請耐心等待! 當你的聯絡人上線,你便會連接成功,請耐心等待! - 可於視訊通話中出示你的二維碼,或者分享連結。]]> - 你的個人檔案會傳送給 -\n你的聯絡人 - 視訊通話中掃描二維碼 ,或者你可以分享一個邀請連結給此聯絡人。]]> 貼上 這些字串不是連接連結! - 在電話應用程式內的開啟 按鈕。]]> 一次性邀請連結 掃描二維碼 錯誤的安全碼! @@ -481,7 +460,6 @@ 無效的伺服器地址! 此伺服器用於你目前的個人檔案 使用 SimpleX Chat 伺服器? - 你的 SMP 伺服器 目前使用 SimpleX Chat 伺服器。 如何 配置 ICE 伺服器 @@ -496,7 +474,6 @@ 儲存並通知你的多個聯絡人 你的個人檔案,聯絡人和傳送的訊息只會儲存於你的個人裝置內。 你的個人檔案只會和你的聯絡人分享。 - 建立 如何使用 Markdown 語法 你可以使用 Markdown 語法以更清楚標明訊息: 刪除線 @@ -510,9 +487,6 @@ 使用 SOCKS 代理伺服器 儲存並通知群組內的聯絡人 退出並且不儲存記錄 - 你的對話由你控制! - 一個保護你的隱私和傳送安全通訊的應用程式平台。 - 我們不會在伺服器內儲存你的任何聯絡人和訊息(一旦傳送)。 建立個人檔案 已確認回應… 連接到 SimpleX Chat 開發人員提出任何問題並同意更新。]]> @@ -535,7 +509,6 @@ 資料庫密碼和匯出 傳送電郵 SimpleX 鎖定 - SMP 伺服器 預設伺服器地址 測試伺服器 測試多個伺服器 @@ -543,7 +516,6 @@ 伺服器測試失敗! 有一些伺服器測試失敗: 掃描伺服器的二維碼 - 你的伺服器 連接時需要使用 Onion 主機。 \n請注意:如果沒有 .onion 地址,你將無法連接到伺服器。 聊天個人檔案 透過群組連結 @@ -638,16 +610,10 @@ 儲存群組檔案 語音訊息於這個聊天室是禁用的。 允許你的聯絡人可以完全刪除訊息。 - 沒有用戶識別符。 - 未來的訊息平台 - 去中心化的 - 你決定誰可以連接。 - 重新定義隱私 建立你的個人檔案 這是如何運作 它如何影響電池 私下連接 - 任何人都可以託管伺服器。 忽略 語音通話來電 貼上你收到的連結 @@ -670,7 +636,6 @@ 幫助 SimpleX Chat 聊天 開發者工具 - SOCKS 代理伺服器 重新啟動應用程式以匯入對話資料庫。 刪除所有檔案 啟用自動銷毀訊息? @@ -781,7 +746,6 @@ 聯絡人允許 %ds 私人通知 - GitHub內查看更多。]]> 視訊通話來電 掛斷 點對點 @@ -847,7 +811,6 @@ 正在修改聯絡地址為 %s … 受加密的資料庫密碼會再次更新和儲存於金鑰庫。 當發生: \n1. 訊息將在傳送至客戶端後兩天或在伺服器內三十天時過時。 \n2. 訊息解密失敗,因為你或你的聯絡人用了舊的資料庫備份 \n3. 連接被破壞。 - 只有客戶端裝置儲存個人檔案、聯絡人、群組,和訊息。 請放置你的密碼於安全的地方,如果你遺失了密碼,將不可能修改你的密碼。 停止聊天室以匯出對話,匯入或刪除對話資料庫。當聊天室停止後你將不能接收或傳送訊息。 你正在使用匿名聊天模式進入此群組 - 為了避免分享你的真實個人檔案,邀請聯絡人是不允許的。 @@ -860,8 +823,6 @@ 透過聯絡人的邀請連結連接 透過一次性連結連接 傳輸隔離 - 更新傳輸隔離模式? - 為了保護你的隱私,SimpleX 對你的每個聯絡人使用不同的 ID。 當應用程式是運行中 透過設定啟用於上鎖畫面顯示來電通知。 這操作不能還原 - 你目前的個人檔案,聯絡人,訊息和檔案將不可逆地遺失。 @@ -876,13 +837,11 @@ 你已拒絕加入群組 連接中(宣布階段) 已選擇%d 個聯絡人 - 你的 ICE 伺服器 WebRTC ICE 伺服器 更新 添加更多身份選項 聯絡人頭像 個人檔案頭像占位符 - 不受垃圾和騷擾訊息影響 %1$s 希望透過以下方式聯絡你 開啟視訊 翻轉相機 @@ -914,7 +873,6 @@ 更新群組檔案 你修改了 %s 的身份為 %s 連接中(介紹階段) - 使用聊天 透過轉送 關閉視訊 你修改了自己的身份為 %s @@ -1011,10 +969,6 @@ 資料庫 IDs 和傳輸隔離選項。 降級和開啟對話 個人檔案密碼 - 儲存 XFTP 伺服器時出錯 - 請確保 XFTP 伺服器連結格式正確,隔行顯示且不重複。 - 加載 SMP 伺服器時出錯 - 加載 XFTP 伺服器時出錯 建立檔案 伺服器需要認證後才能上載,檢查密碼 對比檔案 @@ -1079,11 +1033,8 @@ 修改鎖定模式 未修改密碼! 語言/視訊通話 - " -\n在 v5.1中可用" 允許你的聯絡人與你進行通話。 上載檔案 - XFTP 伺服器 系統認證 你未能通過認證;請再試一次。 你可以透過設定啟用 SimpleX 鎖定。 @@ -1092,7 +1043,6 @@ \n當一些錯誤出現或你的連結被破壞時會發生。 %1$d 條訊息解密失敗。 使用SOCKS 代理伺服器 - 你的 XFTP 伺服器 %1$d 條訊息已跳過。 影片和檔案和最大上限為1gb 影片 @@ -1110,7 +1060,6 @@ 停止分享聯絡地址? 自動接受 繼續 - 不用建立聯絡地址 輸入歡迎訊息… (可選擇的) 你好!  \n透過 SimpleX Chat 來和我連接吧:%s @@ -1134,7 +1083,6 @@ 外加的輔助 地址 背景 - 建立一個聯絡地址讓其他用戶與你連接。 自定義主題 黑暗主題 設定聯絡地址時出錯 @@ -1156,12 +1104,9 @@ 已刪除所有的應用程式數據。 設定密碼 你可以與聯絡人分享此地址,讓他們使用 %s 進行連接。 - 你可以在稍後建立它 為了連接,你的聯絡人可以掃描二維碼或使用此應用程式的連結。 如果你不能面對面接觸此聯絡人,可於視訊通話中出示你的二維碼,或者分享連結。 當你在稍後刪除你的聯絡地址時,你並不會遺失你的聯絡人。 - 你可以將你的地址作為連接或二維碼以分享 - 任何人都可以連接到你。 - 當有人向你發出連接請求,你可以接受或拒絕請求。 你的聯絡人會保持連接。 你的所有聯絡人會保持連接。更新了的個人檔案將傳送給你的聯絡人。 新增地址至你的個人檔案,以便你的聯絡人可以與其他人分享。更新了的個人檔案將傳送給你的聯絡人。 @@ -1328,13 +1273,11 @@ 應用程式將為新的本機檔案(影片除外)加密。 檢查你的網路連接並重試 所有個人檔案 - 已設定的 SMP 伺服器 聊天主題 通話 允許降級 始終使用私密路由。 以導出聊天資料庫 - 已設定的 XFTP 伺服器 色彩模式 已儲存的聯絡人 模糊媒體 @@ -1475,7 +1418,6 @@ 輸入密碼短語 傳送的訊息 PC版處理中 - 隱身模式連接 已刪除對話! 目標伺服器錯誤:%1$s 聊天載入中… @@ -1723,7 +1665,6 @@ 禁止傳送檔案和媒體。 打開群組 只有群組所有者才能啟用檔案和媒體。 - 貼上你收到的連結以與你的聯絡人聯絡… 先前連接的伺服器 其他 無 @@ -1741,13 +1682,10 @@ 正在準備下載 只刪除對話 貼上連結 - 其他 SMP 伺服器 - 其他 XFTP 伺服器 請讓你的聯絡人啟用通話。 畫中畫通話 或安全分享此文件連結 無資訊,試試重新加載 - 打開伺服器設定 私密路由出錯 尚無直接連接,訊息由管理員轉發。 什麼也沒選中 @@ -2377,7 +2315,6 @@ 連結將會變短,且群組檔案會透過此連結分享。 分享舊地址 分享舊連結 - 你可以透過設定,讓你的 SimpleX 聯絡人看見它。 簡介: 簡介太長 要儲存加入審批設定嗎? @@ -2403,7 +2340,6 @@ 人類最古老的自由——不被監視地與另一個人交談——建立在不會背叛它的基礎設施之上。 因為我們摧毀了識別你身份的能力,讓你的自主權永遠不會被奪走。 在你的網路中自由交流。 - 端對端加密傳送,直接訊息具備後量子安全性。]]> 營運商承諾:\n- 保持獨立\n- 盡量減少中繼資料使用\n- 執行已驗證的開源程式碼 你承諾:\n- 只在公開群組中發佈合法內容\n- 尊重其他使用者——不發送垃圾訊息 私隱政策與使用條件。 From c7b3e362ec2121742b7240f2dbe24b9cb128f973 Mon Sep 17 00:00:00 2001 From: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com> Date: Thu, 17 Sep 2026 16:18:04 +0000 Subject: [PATCH 44/62] core, ui: badge credential details in developer tools (#7527) --- apps/ios/Shared/Model/AppAPITypes.swift | 6 + apps/ios/Shared/Model/SimpleXAPI.swift | 6 + .../Views/Badges/BadgesLedgerView.swift | 156 +++++++++++++++++ .../Views/Badges/BadgesYourBadgeView.swift | 20 +++ apps/ios/SimpleX.xcodeproj/project.pbxproj | 4 + apps/ios/SimpleXChat/ChatTypes.swift | 158 ++++++++++++++++++ .../chat/simplex/common/model/ChatModel.kt | 132 +++++++++++++++ .../chat/simplex/common/model/SimpleXAPI.kt | 12 ++ .../common/views/badges/BadgesLedgerView.kt | 158 ++++++++++++++++++ .../views/badges/BadgesYourBadgeView.kt | 26 +++ .../commonMain/resources/MR/base/strings.xml | 19 +++ bots/src/API/Docs/Commands.hs | 1 + bots/src/API/Docs/Responses.hs | 1 + src/Simplex/Chat/Badges/Types.hs | 5 +- src/Simplex/Chat/Controller.hs | 4 +- src/Simplex/Chat/Library/Commands.hs | 6 +- src/Simplex/Chat/Store/Badges.hs | 31 +++- .../SQLite/Migrations/chat_query_plans.txt | 16 ++ src/Simplex/Chat/View.hs | 14 ++ tests/Bots/BadgeServiceTests.hs | 21 ++- 20 files changed, 785 insertions(+), 11 deletions(-) create mode 100644 apps/ios/Shared/Views/Badges/BadgesLedgerView.swift create mode 100644 apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesLedgerView.kt diff --git a/apps/ios/Shared/Model/AppAPITypes.swift b/apps/ios/Shared/Model/AppAPITypes.swift index 592ad2e041..4ae103d746 100644 --- a/apps/ios/Shared/Model/AppAPITypes.swift +++ b/apps/ios/Shared/Model/AppAPITypes.swift @@ -194,6 +194,7 @@ enum ChatCommand: ChatCmdProtocol { // badges case apiRedeemBadgeCode(userId: Int64, code: String) case apiGetBadgeState(userId: Int64) + case apiGetBadgeLedger(userId: Int64, badgePurchaseId: Int64) case apiAckBadgeAlert(userId: Int64, badgePurchaseId: Int64, alertKind: BadgeAlertKind, snooze: Bool, episode: String) // misc case showVersion @@ -419,6 +420,7 @@ enum ChatCommand: ChatCmdProtocol { case let .apiStandaloneFileInfo(link): return "/_download info \(link)" case let .apiRedeemBadgeCode(userId, code): return "/_redeem_badge_code \(userId) \(code)" case let .apiGetBadgeState(userId): return "/_badge state \(userId)" + case let .apiGetBadgeLedger(userId, badgePurchaseId): return "/_badge ledger \(userId) \(badgePurchaseId)" case let .apiAckBadgeAlert(userId, badgePurchaseId, alertKind, snooze, episode): return "/_badge ack \(userId) \(badgePurchaseId) \(badgeAlertKindParam(alertKind)) \(onOff(snooze)) \(episode)" case .showVersion: return "/version" @@ -610,6 +612,7 @@ enum ChatCommand: ChatCmdProtocol { case .apiStandaloneFileInfo: return "apiStandaloneFileInfo" case .apiRedeemBadgeCode: return "apiRedeemBadgeCode" case .apiGetBadgeState: return "apiGetBadgeState" + case .apiGetBadgeLedger: return "apiGetBadgeLedger" case .apiAckBadgeAlert: return "apiAckBadgeAlert" case .showVersion: return "showVersion" case .getAgentSubsTotal: return "getAgentSubsTotal" @@ -1048,6 +1051,7 @@ enum ChatResponse2: Decodable, ChatAPIResult { // the full user, not UserRef: its profile carries the badge that setUserBadge just stored case badgeRedeemed(user: User, redeemedBadge: LocalBadge, newBadge: Bool, badgeState: BadgeState?) case badgeState(user: UserRef, badgeState: BadgeState?) + case badgeLedger(user: UserRef, badgeLedger: [StatementEntry]) var responseType: String { switch self { @@ -1101,6 +1105,7 @@ enum ChatResponse2: Decodable, ChatAPIResult { case .appSettings: "appSettings" case .badgeRedeemed: "badgeRedeemed" case .badgeState: "badgeState" + case .badgeLedger: "badgeLedger" } } @@ -1156,6 +1161,7 @@ enum ChatResponse2: Decodable, ChatAPIResult { case let .appSettings(appSettings): return String(describing: appSettings) case let .badgeRedeemed(u, redeemedBadge, newBadge, badgeState): return withUser(u, "redeemedBadge: \(String(describing: redeemedBadge))\nnewBadge: \(newBadge)\nbadgeState: \(String(describing: badgeState))") case let .badgeState(u, badgeState): return withUser(u, String(describing: badgeState)) + case let .badgeLedger(u, badgeLedger): return withUser(u, String(describing: badgeLedger)) } } } diff --git a/apps/ios/Shared/Model/SimpleXAPI.swift b/apps/ios/Shared/Model/SimpleXAPI.swift index 31995a9d5c..d4de1205c7 100644 --- a/apps/ios/Shared/Model/SimpleXAPI.swift +++ b/apps/ios/Shared/Model/SimpleXAPI.swift @@ -2229,6 +2229,12 @@ func apiGetBadgeStateSync(_ userId: Int64) throws -> BadgeState? { throw r.unexpected } +func apiGetBadgeLedger(_ userId: Int64, _ badgePurchaseId: Int64) async throws -> [StatementEntry] { + let r: ChatResponse2 = try await chatSendCmd(.apiGetBadgeLedger(userId: userId, badgePurchaseId: badgePurchaseId)) + if case let .badgeLedger(_, badgeLedger) = r { return badgeLedger } + throw r.unexpected +} + func apiAckBadgeAlert(_ userId: Int64, _ badgePurchaseId: Int64, _ alertKind: BadgeAlertKind, snooze: Bool, episode: String) async throws -> BadgeState? { let r: ChatResponse2 = try await chatSendCmd(.apiAckBadgeAlert(userId: userId, badgePurchaseId: badgePurchaseId, alertKind: alertKind, snooze: snooze, episode: episode)) if case let .badgeState(_, badgeState) = r { return badgeState } diff --git a/apps/ios/Shared/Views/Badges/BadgesLedgerView.swift b/apps/ios/Shared/Views/Badges/BadgesLedgerView.swift new file mode 100644 index 0000000000..a89bcb1299 --- /dev/null +++ b/apps/ios/Shared/Views/Badges/BadgesLedgerView.swift @@ -0,0 +1,156 @@ +// +// BadgesLedgerView.swift +// SimpleX (iOS) +// +// Created by spaced4ndy on 17.09.2026. +// Copyright © 2026 SimpleX Chat. All rights reserved. +// + +import SwiftUI +import SimpleXChat + +struct BadgesLedgerView: View { + @EnvironmentObject var theme: AppTheme + @EnvironmentObject var chatModel: ChatModel + let badgeState: BadgeState + @State private var entries: [StatementEntry]? = nil + @State private var expanded: Set = [] + + var body: some View { + List { + if let entries { + Section { + if entries.isEmpty { + Text("No entries") + .foregroundColor(theme.colors.secondary) + } else { + ForEach(entries, id: \.entryId) { entry in + ledgerRow(entry) + } + } + } + } + } + .navigationTitle("Badge ledger") + .navigationBarTitleDisplayMode(.inline) + .modifier(ThemedBackground(grouped: true)) + .toolbar { + ToolbarItem(placement: .navigationBarTrailing) { + Button { showShareSheet(items: [ledgerShareText()]) } label: { + Image(systemName: "square.and.arrow.up") + } + .disabled(entries?.isEmpty ?? true) + } + } + .onAppear(perform: loadLedger) + } + + @ViewBuilder private func ledgerRow(_ entry: StatementEntry) -> some View { + let isExpanded = expanded.contains(entry.entryId) + Button { + withAnimation { + if isExpanded { expanded.remove(entry.entryId) } else { expanded.insert(entry.entryId) } + } + } label: { + HStack { + VStack(alignment: .leading, spacing: 4) { + Text(entry.entryType.text) + Text(dateText(entry.createdAt)) + .font(.caption) + .foregroundColor(theme.colors.secondary) + } + Spacer() + Text(changeText(entry)) + .foregroundStyle(.secondary) + Image(systemName: isExpanded ? "chevron.up" : "chevron.down") + .foregroundColor(theme.colors.secondary) + } + } + .foregroundColor(theme.colors.onBackground) + if isExpanded { + ForEach(entryFields(entry), id: \.0) { field in + infoRow(Text(field.0), field.1).padding(.leading, 24) + } + } + } + + private func changeText(_ entry: StatementEntry) -> String { + let n = entry.changeMonths + let months = abs(n) == 1 + ? String.localizedStringWithFormat(NSLocalizedString("%d month", comment: "time interval"), n) + : String.localizedStringWithFormat(NSLocalizedString("%d months", comment: "time interval"), n) + return n > 0 ? "+" + months : months + } + + private func entryFields(_ entry: StatementEntry) -> [(String, String)] { + var fields = [ + (NSLocalizedString("Date", comment: "ledger entry field"), dateTimeText(entry.createdAt)), + (NSLocalizedString("Balance", comment: "ledger entry field"), "\(entry.balanceMonths)"), + (NSLocalizedString("Balance start", comment: "ledger entry field"), dateTimeText(entry.balanceStartTs)), + (NSLocalizedString("Anchor", comment: "ledger entry field"), dateTimeText(entry.balanceAnchorTs)), + (NSLocalizedString("Badge type", comment: "ledger entry field"), entry.balanceBadgeType.text) + ] + if let pausedSince = entry.wasPausedSince { + fields.append((NSLocalizedString("Paused since", comment: "ledger entry field"), dateTimeText(pausedSince))) + } + fields.append((NSLocalizedString("Entry ID", comment: "ledger entry field"), entry.entryId)) + if let payload = payloadField(entry.entryType) { + fields.append(payload) + } + return fields + } + + private func payloadField(_ entryType: StatementEntryType) -> (String, String)? { + switch entryType { + case let .credit(credit): + switch credit { + case let .payment(invoiceId): + return invoiceId.map { (NSLocalizedString("Invoice ID", comment: "ledger entry field"), $0) } + case let .charge(chargeId): + return (NSLocalizedString("Charge ID", comment: "ledger entry field"), chargeId) + case let .transferIn(fromPurchaseKey): + return (NSLocalizedString("From purchase key", comment: "ledger entry field"), fromPurchaseKey) + case .code, .support, .opening, .unknown: + return nil + } + case let .debit(debit): + switch debit { + case let .upgrade(toPurchaseKey), let .transferOut(toPurchaseKey): + return (NSLocalizedString("To purchase key", comment: "ledger entry field"), toPurchaseKey) + case .refund, .support, .badge, .lapse, .unknown: + return nil + } + } + } + + // the JSON as core sent it: English field names and ISO dates, for support + private func ledgerShareText() -> String { + let encoder = getJSONEncoder() + encoder.outputFormatting = .prettyPrinted + let data = (try? encoder.encode(entries ?? [])) ?? Data() + return String(decoding: data, as: UTF8.self) + } + + private func dateText(_ date: Date) -> String { + DateFormatter.localizedString(from: date, dateStyle: .medium, timeStyle: .none) + } + + private func dateTimeText(_ date: Date) -> String { + DateFormatter.localizedString(from: date, dateStyle: .medium, timeStyle: .short) + } + + private func loadLedger() { + guard let user = chatModel.currentUser else { return } + Task { + do { + let ledger = try await apiGetBadgeLedger(user.userId, badgeState.badgePurchaseId) + await MainActor.run { entries = ledger } + } catch let e { + logger.error("apiGetBadgeLedger error: \(responseError(e))") + await MainActor.run { + showErrorAlert(e, NSLocalizedString("Error", comment: "")) + } + } + } + } +} diff --git a/apps/ios/Shared/Views/Badges/BadgesYourBadgeView.swift b/apps/ios/Shared/Views/Badges/BadgesYourBadgeView.swift index 07b6d7a3dc..59eeba7eac 100644 --- a/apps/ios/Shared/Views/Badges/BadgesYourBadgeView.swift +++ b/apps/ios/Shared/Views/Badges/BadgesYourBadgeView.swift @@ -11,6 +11,8 @@ import SimpleXChat struct BadgesYourBadgeView: View { @EnvironmentObject var theme: AppTheme + @EnvironmentObject var chatModel: ChatModel + @AppStorage(DEFAULT_DEVELOPER_TOOLS) private var developerTools = false let badgeState: BadgeState var showsAsSheet: Bool = false @@ -50,6 +52,24 @@ struct BadgesYourBadgeView: View { } } } + if developerTools { + Section(header: Text("Credential").foregroundColor(theme.colors.secondary)) { + if let badge = chatModel.currentUser?.profile.localBadge { + infoRow("Status", badge.status.rawValue) + infoRow("Expires", DateFormatter.localizedString(from: badge.badge.badgeExpiry, dateStyle: .medium, timeStyle: .short)) + } + infoRow("Months left", "\(badgeState.monthsLeft)") + infoRow("Purchase ID", "\(badgeState.badgePurchaseId)") + Button("Copy purchase key") { + UIPasteboard.general.string = badgeState.purchaseKey + } + NavigationLink { + BadgesLedgerView(badgeState: badgeState) + } label: { + Text("Badge ledger") + } + } + } } } .frame(maxHeight: .infinity) diff --git a/apps/ios/SimpleX.xcodeproj/project.pbxproj b/apps/ios/SimpleX.xcodeproj/project.pbxproj index 9d16c5c1f4..505552647b 100644 --- a/apps/ios/SimpleX.xcodeproj/project.pbxproj +++ b/apps/ios/SimpleX.xcodeproj/project.pbxproj @@ -155,6 +155,7 @@ 6442E0BE2880182D00CEC0F9 /* GroupChatInfoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6442E0BD2880182D00CEC0F9 /* GroupChatInfoView.swift */; }; 64466DCC29FFE3E800E3D48D /* MailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64466DCB29FFE3E800E3D48D /* MailView.swift */; }; 6448BBB628FA9D56000D2AB9 /* GroupLinkView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6448BBB528FA9D56000D2AB9 /* GroupLinkView.swift */; }; + 644CC229305BFAE400D2A571 /* BadgesLedgerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 644CC228305BFAE400D2A571 /* BadgesLedgerView.swift */; }; 644EFFDE292BCD9D00525D5B /* ComposeVoiceView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 644EFFDD292BCD9D00525D5B /* ComposeVoiceView.swift */; }; 644EFFE0292CFD7F00525D5B /* CIVoiceView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 644EFFDF292CFD7F00525D5B /* CIVoiceView.swift */; }; 644EFFE2292D089800525D5B /* FramedCIVoiceView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 644EFFE1292D089800525D5B /* FramedCIVoiceView.swift */; }; @@ -545,6 +546,7 @@ 6442E0BD2880182D00CEC0F9 /* GroupChatInfoView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupChatInfoView.swift; sourceTree = ""; }; 64466DCB29FFE3E800E3D48D /* MailView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MailView.swift; sourceTree = ""; }; 6448BBB528FA9D56000D2AB9 /* GroupLinkView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupLinkView.swift; sourceTree = ""; }; + 644CC228305BFAE400D2A571 /* BadgesLedgerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BadgesLedgerView.swift; sourceTree = ""; }; 644EFFDD292BCD9D00525D5B /* ComposeVoiceView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ComposeVoiceView.swift; sourceTree = ""; }; 644EFFDF292CFD7F00525D5B /* CIVoiceView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CIVoiceView.swift; sourceTree = ""; }; 644EFFE1292D089800525D5B /* FramedCIVoiceView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FramedCIVoiceView.swift; sourceTree = ""; }; @@ -1212,6 +1214,7 @@ 64C03BF8302F423300072BDE /* Badges */ = { isa = PBXGroup; children = ( + 644CC228305BFAE400D2A571 /* BadgesLedgerView.swift */, 64EB8A9A3054347A0089FFDF /* BadgesView.swift */, 64C03BF0302F423300072BDE /* BadgesHowItWorksView.swift */, 64C03BF1302F423300072BDE /* BadgesPayView.swift */, @@ -1577,6 +1580,7 @@ 5CB0BA9A2827FD8800B3292C /* HowItWorks.swift in Sources */, 5C13730B28156D2700F43030 /* ContactConnectionView.swift in Sources */, 644EFFE0292CFD7F00525D5B /* CIVoiceView.swift in Sources */, + 644CC229305BFAE400D2A571 /* BadgesLedgerView.swift in Sources */, 647B15EA2F4C8D5100EB431E /* ChatRelayView.swift in Sources */, 6432857C2925443C00FBE5C8 /* GroupPreferencesView.swift in Sources */, 8CC317462D4FEBA800292A20 /* ScrollViewCells.swift in Sources */, diff --git a/apps/ios/SimpleXChat/ChatTypes.swift b/apps/ios/SimpleXChat/ChatTypes.swift index c6e3bd5d74..ae3c8d662b 100644 --- a/apps/ios/SimpleXChat/ChatTypes.swift +++ b/apps/ios/SimpleXChat/ChatTypes.swift @@ -326,6 +326,7 @@ public struct LocalBadge: Codable, Hashable { // which outlives entitlement so the credential's window can cover a renewal. public struct BadgeState: Codable, Hashable { public var badgePurchaseId: Int64 + public var purchaseKey: String public var badgeType: BadgeType public var shown: Bool public var monthsLeft: Int @@ -337,6 +338,163 @@ public struct BadgeState: Codable, Hashable { public var paidThroughText: String { badgeDateText(paidThrough) } } +public struct StatementEntry: Codable, Hashable { + public var entryId: String + public var changeMonths: Int + public var balanceMonths: Int + public var balanceStartTs: Date + public var balanceAnchorTs: Date + public var balanceBadgeType: BadgeType + public var wasPausedSince: Date? + public var createdAt: Date + public var entryType: StatementEntryType +} + +public enum StatementEntryType: Codable, Hashable { + case credit(StatementCreditType) + case debit(StatementDebitType) + + enum CodingKeys: String, CodingKey { + case type + case credit + case debit + } + + public init(from decoder: Decoder) throws { + let container = try decoder.container(keyedBy: CodingKeys.self) + let type = try container.decode(String.self, forKey: .type) + switch type { + case "credit": self = .credit(try container.decode(StatementCreditType.self, forKey: .credit)) + case "debit": self = .debit(try container.decode(StatementDebitType.self, forKey: .debit)) + default: throw DecodingError.dataCorruptedError(forKey: .type, in: container, debugDescription: "unknown entry type \(type)") + } + } + + public func encode(to encoder: Encoder) throws { + var container = encoder.container(keyedBy: CodingKeys.self) + switch self { + case let .credit(c): + try container.encode("credit", forKey: .type) + try container.encode(c, forKey: .credit) + case let .debit(d): + try container.encode("debit", forKey: .type) + try container.encode(d, forKey: .debit) + } + } + + public var text: String { + switch self { + case let .credit(c): c.text + case let .debit(d): d.text + } + } +} + +// the service is deployed ahead of clients, so a type this version does not know keeps its tag +public enum StatementCreditType: Codable, Hashable { + case payment(invoiceId: String?) + case code + case charge(chargeId: String) + case support + case transferIn(fromPurchaseKey: String) + case opening + case unknown(type: String) + + enum CodingKeys: String, CodingKey { + case type + case invoiceId + case chargeId + case fromPurchaseKey + } + + public init(from decoder: Decoder) throws { + let container = try decoder.container(keyedBy: CodingKeys.self) + let type = try container.decode(String.self, forKey: .type) + switch type { + case "payment": self = .payment(invoiceId: try container.decodeIfPresent(String.self, forKey: .invoiceId)) + case "code": self = .code + case "charge": self = .charge(chargeId: try container.decode(String.self, forKey: .chargeId)) + case "support": self = .support + case "transferIn": self = .transferIn(fromPurchaseKey: try container.decode(String.self, forKey: .fromPurchaseKey)) + case "opening": self = .opening + default: self = .unknown(type: type) + } + } + + public func encode(to encoder: Encoder) throws { + var container = encoder.container(keyedBy: CodingKeys.self) + try container.encode(text, forKey: .type) + switch self { + case let .payment(invoiceId): try container.encodeIfPresent(invoiceId, forKey: .invoiceId) + case let .charge(chargeId): try container.encode(chargeId, forKey: .chargeId) + case let .transferIn(fromPurchaseKey): try container.encode(fromPurchaseKey, forKey: .fromPurchaseKey) + case .code, .support, .opening, .unknown: () + } + } + + public var text: String { + switch self { + case .payment: "payment" + case .code: "code" + case .charge: "charge" + case .support: "support" + case .transferIn: "transferIn" + case .opening: "opening" + case let .unknown(type): type + } + } +} + +public enum StatementDebitType: Codable, Hashable { + case refund + case upgrade(toPurchaseKey: String) + case transferOut(toPurchaseKey: String) + case support + case badge + case lapse + case unknown(type: String) + + enum CodingKeys: String, CodingKey { + case type + case toPurchaseKey + } + + public init(from decoder: Decoder) throws { + let container = try decoder.container(keyedBy: CodingKeys.self) + let type = try container.decode(String.self, forKey: .type) + switch type { + case "refund": self = .refund + case "upgrade": self = .upgrade(toPurchaseKey: try container.decode(String.self, forKey: .toPurchaseKey)) + case "transferOut": self = .transferOut(toPurchaseKey: try container.decode(String.self, forKey: .toPurchaseKey)) + case "support": self = .support + case "badge": self = .badge + case "lapse": self = .lapse + default: self = .unknown(type: type) + } + } + + public func encode(to encoder: Encoder) throws { + var container = encoder.container(keyedBy: CodingKeys.self) + try container.encode(text, forKey: .type) + switch self { + case let .upgrade(toPurchaseKey), let .transferOut(toPurchaseKey): try container.encode(toPurchaseKey, forKey: .toPurchaseKey) + case .refund, .support, .badge, .lapse, .unknown: () + } + } + + public var text: String { + switch self { + case .refund: "refund" + case .upgrade: "upgrade" + case .transferOut: "transferOut" + case .support: "support" + case .badge: "badge" + case .lapse: "lapse" + case let .unknown(type): type + } + } +} + public struct BadgeAlert: Codable, Hashable { public var kind: BadgeAlertKind public var episode: String diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/model/ChatModel.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/model/ChatModel.kt index b5c0f23c60..5bbb41e4dd 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/model/ChatModel.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/model/ChatModel.kt @@ -2225,6 +2225,7 @@ data class LocalBadge( @Serializable data class BadgeState( val badgePurchaseId: Long, + val purchaseKey: String, val badgeType: BadgeType, val shown: Boolean, val monthsLeft: Int, @@ -2236,6 +2237,137 @@ data class BadgeState( val paidThroughText: String get() = badgeDateText(paidThrough) } +@Serializable +data class StatementEntry( + val entryId: String, + val changeMonths: Int, + val balanceMonths: Int, + val balanceStartTs: Instant, + val balanceAnchorTs: Instant, + val balanceBadgeType: BadgeType, + val wasPausedSince: Instant? = null, + val createdAt: Instant, + val entryType: StatementEntryType +) + +@Serializable +sealed class StatementEntryType { + @Serializable @SerialName("credit") data class Credit(val credit: StatementCreditType): StatementEntryType() + @Serializable @SerialName("debit") data class Debit(val debit: StatementDebitType): StatementEntryType() + + val text: String + get() = when (this) { + is Credit -> credit.text + is Debit -> debit.text + } +} + +// the service is deployed ahead of clients, so a type this version does not know keeps its tag +@Serializable(with = StatementCreditTypeSerializer::class) +sealed class StatementCreditType { + @Serializable data class Payment(val invoiceId: String? = null): StatementCreditType() + object Code: StatementCreditType() + @Serializable data class Charge(val chargeId: String): StatementCreditType() + object Support: StatementCreditType() + @Serializable data class TransferIn(val fromPurchaseKey: String): StatementCreditType() + object Opening: StatementCreditType() + data class Unknown(val type: String): StatementCreditType() + + val text: String + get() = when (this) { + is Payment -> "payment" + is Code -> "code" + is Charge -> "charge" + is Support -> "support" + is TransferIn -> "transferIn" + is Opening -> "opening" + is Unknown -> type + } +} + +object StatementCreditTypeSerializer : KSerializer { + override val descriptor: SerialDescriptor = buildClassSerialDescriptor("StatementCreditType") + + override fun deserialize(decoder: Decoder): StatementCreditType { + require(decoder is JsonDecoder) + val json = decoder.decodeJsonElement().jsonObject + return when (val type = json["type"]?.jsonPrimitive?.content ?: "") { + "payment" -> decoder.json.decodeFromJsonElement(json) + "code" -> StatementCreditType.Code + "charge" -> decoder.json.decodeFromJsonElement(json) + "support" -> StatementCreditType.Support + "transferIn" -> decoder.json.decodeFromJsonElement(json) + "opening" -> StatementCreditType.Opening + else -> StatementCreditType.Unknown(type) + } + } + + override fun serialize(encoder: Encoder, value: StatementCreditType) { + require(encoder is JsonEncoder) + encoder.encodeJsonElement(buildJsonObject { + put("type", value.text) + when (value) { + is StatementCreditType.Payment -> value.invoiceId?.let { put("invoiceId", it) } + is StatementCreditType.Charge -> put("chargeId", value.chargeId) + is StatementCreditType.TransferIn -> put("fromPurchaseKey", value.fromPurchaseKey) + is StatementCreditType.Code, is StatementCreditType.Support, is StatementCreditType.Opening, is StatementCreditType.Unknown -> {} + } + }) + } +} + +@Serializable(with = StatementDebitTypeSerializer::class) +sealed class StatementDebitType { + object Refund: StatementDebitType() + @Serializable data class Upgrade(val toPurchaseKey: String): StatementDebitType() + @Serializable data class TransferOut(val toPurchaseKey: String): StatementDebitType() + object Support: StatementDebitType() + object Badge: StatementDebitType() + object Lapse: StatementDebitType() + data class Unknown(val type: String): StatementDebitType() + + val text: String + get() = when (this) { + is Refund -> "refund" + is Upgrade -> "upgrade" + is TransferOut -> "transferOut" + is Support -> "support" + is Badge -> "badge" + is Lapse -> "lapse" + is Unknown -> type + } +} + +object StatementDebitTypeSerializer : KSerializer { + override val descriptor: SerialDescriptor = buildClassSerialDescriptor("StatementDebitType") + + override fun deserialize(decoder: Decoder): StatementDebitType { + require(decoder is JsonDecoder) + val json = decoder.decodeJsonElement().jsonObject + return when (val type = json["type"]?.jsonPrimitive?.content ?: "") { + "refund" -> StatementDebitType.Refund + "upgrade" -> decoder.json.decodeFromJsonElement(json) + "transferOut" -> decoder.json.decodeFromJsonElement(json) + "support" -> StatementDebitType.Support + "badge" -> StatementDebitType.Badge + "lapse" -> StatementDebitType.Lapse + else -> StatementDebitType.Unknown(type) + } + } + + override fun serialize(encoder: Encoder, value: StatementDebitType) { + require(encoder is JsonEncoder) + encoder.encodeJsonElement(buildJsonObject { + put("type", value.text) + when (value) { + is StatementDebitType.Upgrade -> put("toPurchaseKey", value.toPurchaseKey) + is StatementDebitType.TransferOut -> put("toPurchaseKey", value.toPurchaseKey) + is StatementDebitType.Refund, is StatementDebitType.Support, is StatementDebitType.Badge, is StatementDebitType.Lapse, is StatementDebitType.Unknown -> {} + } + }) + } +} + @Serializable data class BadgeAlert( val kind: BadgeAlertKind, diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/model/SimpleXAPI.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/model/SimpleXAPI.kt index 8b4e4fc315..966a931208 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/model/SimpleXAPI.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/model/SimpleXAPI.kt @@ -606,6 +606,12 @@ object ChatController { throw Exception("apiGetBadgeState: unexpected ${r.responseType}") } + suspend fun apiGetBadgeLedger(rh: Long?, userId: Long, badgePurchaseId: Long): List { + val r = sendCmd(rh, CC.ApiGetBadgeLedger(userId, badgePurchaseId)) + if (r is API.Result && r.res is CR.BadgeLedger) return r.res.badgeLedger + throw Exception("apiGetBadgeLedger: unexpected ${r.responseType}") + } + suspend fun apiAckBadgeAlert(rh: Long?, userId: Long, badgePurchaseId: Long, alertKind: BadgeAlertKind, snooze: Boolean, episode: String): BadgeState? { val r = sendCmd(rh, CC.ApiAckBadgeAlert(userId, badgePurchaseId, alertKind, snooze, episode)) if (r is API.Result && r.res is CR.BadgeStateR) return r.res.badgeState @@ -4057,6 +4063,7 @@ sealed class CC { // badges class ApiRedeemBadgeCode(val userId: Long, val code: String): CC() class ApiGetBadgeState(val userId: Long): CC() + class ApiGetBadgeLedger(val userId: Long, val badgePurchaseId: Long): CC() class ApiAckBadgeAlert(val userId: Long, val badgePurchaseId: Long, val alertKind: BadgeAlertKind, val snooze: Boolean, val episode: String): CC() // misc class ShowVersion(): CC() @@ -4281,6 +4288,7 @@ sealed class CC { is ApiStandaloneFileInfo -> "/_download info $url" is ApiRedeemBadgeCode -> "/_redeem_badge_code $userId $code" is ApiGetBadgeState -> "/_badge state $userId" + is ApiGetBadgeLedger -> "/_badge ledger $userId $badgePurchaseId" is ApiAckBadgeAlert -> "/_badge ack $userId $badgePurchaseId ${badgeAlertKindParam(alertKind)} ${onOff(snooze)} $episode" is ShowVersion -> "/version" is ResetAgentServersStats -> "/reset servers stats" @@ -4464,6 +4472,7 @@ sealed class CC { is ApiStandaloneFileInfo -> "apiStandaloneFileInfo" is ApiRedeemBadgeCode -> "apiRedeemBadgeCode" is ApiGetBadgeState -> "apiGetBadgeState" + is ApiGetBadgeLedger -> "apiGetBadgeLedger" is ApiAckBadgeAlert -> "apiAckBadgeAlert" is ShowVersion -> "showVersion" is ResetAgentServersStats -> "resetAgentServersStats" @@ -6854,6 +6863,7 @@ sealed class CR { // the full user, not UserRef: its profile carries the badge that setUserBadge just stored @Serializable @SerialName("badgeRedeemed") class BadgeRedeemed(val user: User, val redeemedBadge: LocalBadge, val newBadge: Boolean, val badgeState: BadgeState?): CR() @Serializable @SerialName("badgeState") class BadgeStateR(val user: UserRef, val badgeState: BadgeState?): CR() + @Serializable @SerialName("badgeLedger") class BadgeLedger(val user: UserRef, val badgeLedger: List): CR() @Serializable @SerialName("badgeChanged") class BadgeChanged(val user: User, val badgeState: BadgeState?): CR() @Serializable @SerialName("badgeAlert") class BadgeAlertR(val user: UserRef, val badgeAlert: BadgeAlert): CR() // general @@ -7044,6 +7054,7 @@ sealed class CR { is AppSettingsR -> "appSettings" is BadgeRedeemed -> "badgeRedeemed" is BadgeStateR -> "badgeState" + is BadgeLedger -> "badgeLedger" is BadgeChanged -> "badgeChanged" is BadgeAlertR -> "badgeAlert" is Response -> "* $type" @@ -7251,6 +7262,7 @@ sealed class CR { is AppSettingsR -> json.encodeToString(appSettings) is BadgeRedeemed -> withUser(user, "redeemedBadge: ${json.encodeToString(redeemedBadge)}\nnewBadge: $newBadge\nbadgeState: ${json.encodeToString(badgeState)}") is BadgeStateR -> withUser(user, json.encodeToString(badgeState)) + is BadgeLedger -> withUser(user, json.encodeToString(badgeLedger)) is BadgeChanged -> withUser(user, json.encodeToString(badgeState)) is BadgeAlertR -> withUser(user, json.encodeToString(badgeAlert)) is Response -> json diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesLedgerView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesLedgerView.kt new file mode 100644 index 0000000000..2783727621 --- /dev/null +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesLedgerView.kt @@ -0,0 +1,158 @@ +package chat.simplex.common.views.badges + +import InfoRow +import SectionBottomSpacer +import SectionItemView +import SectionView +import itemHPadding +import androidx.compose.foundation.layout.* +import androidx.compose.material.Icon +import androidx.compose.material.MaterialTheme +import androidx.compose.material.Text +import androidx.compose.runtime.* +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.LocalClipboardManager +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import dev.icerock.moko.resources.compose.painterResource +import dev.icerock.moko.resources.compose.stringResource +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.withContext +import kotlinx.serialization.encodeToString +import chat.simplex.common.model.BadgeState +import chat.simplex.common.model.StatementCreditType +import chat.simplex.common.model.StatementDebitType +import chat.simplex.common.model.StatementEntry +import chat.simplex.common.model.StatementEntryType +import chat.simplex.common.model.json +import chat.simplex.common.model.localDate +import chat.simplex.common.model.localTimestamp +import chat.simplex.common.platform.ColumnWithScrollBar +import chat.simplex.common.platform.Log +import chat.simplex.common.platform.TAG +import chat.simplex.common.platform.chatModel +import chat.simplex.common.platform.shareText +import chat.simplex.common.views.helpers.AlertManager +import chat.simplex.common.views.helpers.AppBarTitle +import chat.simplex.common.views.helpers.ModalView +import chat.simplex.common.views.helpers.ShareButton +import chat.simplex.common.views.helpers.generalGetString +import chat.simplex.common.views.helpers.withBGApi +import chat.simplex.res.MR +import kotlin.math.abs + +@Composable +fun BadgesLedgerView(badgeState: BadgeState, close: () -> Unit) { + val entries = remember { mutableStateOf?>(null) } + val clipboard = LocalClipboardManager.current + + LaunchedEffect(Unit) { + val user = chatModel.currentUser.value ?: return@LaunchedEffect + withBGApi { + try { + val ledger = chatModel.controller.apiGetBadgeLedger(chatModel.remoteHostId(), user.userId, badgeState.badgePurchaseId) + withContext(Dispatchers.Main) { entries.value = ledger } + } catch (e: Exception) { + Log.e(TAG, "apiGetBadgeLedger: ${e.message}") + AlertManager.shared.showAlertMsg(generalGetString(MR.strings.error), e.message) + } + } + } + + ModalView( + close, + cardScreen = true, + endButtons = { + val loaded = entries.value + if (!loaded.isNullOrEmpty()) { + ShareButton { clipboard.shareText(ledgerShareText(loaded)) } + } + } + ) { + ColumnWithScrollBar { + AppBarTitle(stringResource(MR.strings.badges_ledger)) + val loaded = entries.value + if (loaded != null) { + SectionView { + if (loaded.isEmpty()) { + SectionItemView { + Text(stringResource(MR.strings.badges_ledger_no_entries), color = MaterialTheme.colors.secondary) + } + } else { + loaded.forEach { LedgerRow(it) } + } + } + } + SectionBottomSpacer() + } + } +} + +@Composable +private fun LedgerRow(entry: StatementEntry) { + val expanded = remember(entry.entryId) { mutableStateOf(false) } + SectionItemView(click = { expanded.value = !expanded.value }) { + Row( + Modifier.fillMaxWidth(), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(8.dp) + ) { + Column(Modifier.weight(1f), verticalArrangement = Arrangement.spacedBy(4.dp)) { + Text(entry.entryType.text) + Text(localDate(entry.createdAt), color = MaterialTheme.colors.secondary, fontSize = 12.sp) + } + Text(changeText(entry), color = MaterialTheme.colors.secondary) + Icon( + painterResource(if (expanded.value) MR.images.ic_chevron_up else MR.images.ic_chevron_down), + contentDescription = null, + tint = MaterialTheme.colors.secondary, + modifier = Modifier.size(20.dp) + ) + } + } + if (expanded.value) { + val indented = PaddingValues(start = 24.dp + itemHPadding, end = itemHPadding) + entryFields(entry).forEach { (label, value) -> InfoRow(label, value, padding = indented) } + } +} + +private fun changeText(entry: StatementEntry): String { + val n = entry.changeMonths + val months = String.format(generalGetString(if (abs(n) == 1) MR.strings.ttl_month else MR.strings.ttl_months), n) + return if (n > 0) "+$months" else months +} + +private fun entryFields(entry: StatementEntry): List> { + val fields = mutableListOf( + generalGetString(MR.strings.badges_ledger_date) to localTimestamp(entry.createdAt), + generalGetString(MR.strings.badges_ledger_balance) to entry.balanceMonths.toString(), + generalGetString(MR.strings.badges_ledger_balance_start) to localTimestamp(entry.balanceStartTs), + generalGetString(MR.strings.badges_ledger_anchor) to localTimestamp(entry.balanceAnchorTs), + generalGetString(MR.strings.badges_ledger_badge_type) to entry.balanceBadgeType.text, + ) + val pausedSince = entry.wasPausedSince + if (pausedSince != null) { + fields.add(generalGetString(MR.strings.badges_ledger_paused_since) to localTimestamp(pausedSince)) + } + fields.add(generalGetString(MR.strings.badges_ledger_entry_id) to entry.entryId) + payloadField(entry.entryType)?.let { fields.add(it) } + return fields +} + +private fun payloadField(entryType: StatementEntryType): Pair? = when (entryType) { + is StatementEntryType.Credit -> when (val credit = entryType.credit) { + is StatementCreditType.Payment -> credit.invoiceId?.let { generalGetString(MR.strings.badges_ledger_invoice_id) to it } + is StatementCreditType.Charge -> generalGetString(MR.strings.badges_ledger_charge_id) to credit.chargeId + is StatementCreditType.TransferIn -> generalGetString(MR.strings.badges_ledger_from_purchase_key) to credit.fromPurchaseKey + is StatementCreditType.Code, is StatementCreditType.Support, is StatementCreditType.Opening, is StatementCreditType.Unknown -> null + } + is StatementEntryType.Debit -> when (val debit = entryType.debit) { + is StatementDebitType.Upgrade -> generalGetString(MR.strings.badges_ledger_to_purchase_key) to debit.toPurchaseKey + is StatementDebitType.TransferOut -> generalGetString(MR.strings.badges_ledger_to_purchase_key) to debit.toPurchaseKey + is StatementDebitType.Refund, is StatementDebitType.Support, is StatementDebitType.Badge, is StatementDebitType.Lapse, is StatementDebitType.Unknown -> null + } +} + +// the JSON as core sent it: English field names and ISO dates, for support +private fun ledgerShareText(entries: List): String = json.encodeToString(entries) diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesYourBadgeView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesYourBadgeView.kt index c17559d5b0..035eb64846 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesYourBadgeView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesYourBadgeView.kt @@ -1,5 +1,7 @@ package chat.simplex.common.views.badges +import InfoRow +import SectionItemView import SectionSpacer import SectionTextFooter import SectionView @@ -11,12 +13,17 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.platform.LocalClipboardManager +import androidx.compose.ui.text.AnnotatedString import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import dev.icerock.moko.resources.compose.painterResource import dev.icerock.moko.resources.compose.stringResource import chat.simplex.common.model.BadgeState +import chat.simplex.common.model.ChatController.appPrefs +import chat.simplex.common.model.localTimestamp import chat.simplex.common.platform.ColumnWithScrollBar +import chat.simplex.common.platform.chatModel import chat.simplex.common.ui.theme.DEFAULT_PADDING import chat.simplex.common.views.helpers.AppBarTitle import chat.simplex.common.views.helpers.ModalManager @@ -47,6 +54,25 @@ fun BadgesYourBadgeView(badgeState: BadgeState) { ) } SectionSpacer() + if (appPrefs.developerTools.get()) { + val clipboard = LocalClipboardManager.current + SectionView(stringResource(MR.strings.badges_credential)) { + val badge = chatModel.currentUser.value?.profile?.localBadge + if (badge != null) { + InfoRow(stringResource(MR.strings.badges_credential_status), badge.status.name) + InfoRow(stringResource(MR.strings.badges_credential_expires), localTimestamp(badge.badge.badgeExpiry)) + } + InfoRow(stringResource(MR.strings.badges_credential_months_left), badgeState.monthsLeft.toString()) + InfoRow(stringResource(MR.strings.badges_credential_purchase_id), badgeState.badgePurchaseId.toString()) + SectionItemView({ clipboard.setText(AnnotatedString(badgeState.purchaseKey)) }) { + Text(stringResource(MR.strings.badges_copy_purchase_key), color = MaterialTheme.colors.primary) + } + SectionItemView({ ModalManager.start.showCustomModal { close -> BadgesLedgerView(badgeState, close) } }) { + Text(stringResource(MR.strings.badges_ledger)) + } + } + SectionSpacer() + } } } diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/base/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/base/strings.xml index f2f6555b78..e310834fda 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/base/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/base/strings.xml @@ -3205,6 +3205,25 @@ Your support ended on %1$s. Remind me later Dismiss + Credential + Status + Expires + Months left + Purchase ID + Copy purchase key + Badge ledger + No entries + Date + Balance + Balance start + Anchor + Badge type + Paused since + Entry ID + Invoice ID + Charge ID + From purchase key + To purchase key Supporter perks Supporter badge ❤️ Help keep the network running — send files up to 2 GB. diff --git a/bots/src/API/Docs/Commands.hs b/bots/src/API/Docs/Commands.hs index c389605f31..eb4804fa45 100644 --- a/bots/src/API/Docs/Commands.hs +++ b/bots/src/API/Docs/Commands.hs @@ -378,6 +378,7 @@ undocumentedCommands = "APIExportArchive", "APIForwardChatItems", "APIGetAppSettings", + "APIGetBadgeLedger", "APIGetBadgeState", "APIGetCallInvitations", "APIGetChat", diff --git a/bots/src/API/Docs/Responses.hs b/bots/src/API/Docs/Responses.hs index 5d01c03a39..18392ae1b5 100644 --- a/bots/src/API/Docs/Responses.hs +++ b/bots/src/API/Docs/Responses.hs @@ -134,6 +134,7 @@ undocumentedResponses = "CRAppSettings", "CRArchiveExported", "CRArchiveImported", + "CRBadgeLedger", "CRBadgeRedeemed", "CRBadgeState", "CRBroadcastSent", diff --git a/src/Simplex/Chat/Badges/Types.hs b/src/Simplex/Chat/Badges/Types.hs index 4c81cb50ac..cc205458c7 100644 --- a/src/Simplex/Chat/Badges/Types.hs +++ b/src/Simplex/Chat/Badges/Types.hs @@ -215,10 +215,11 @@ data BadgeAlertPrice = BadgeAlertPrice } deriving (Show) --- | The user's badge as the badge surfaces render it. The purchase keys are deliberately absent: --- this travels to the UI and over remote control, and they are secrets that stay in core. +-- | The user's badge as the badge surfaces render it. The private purchase key is deliberately +-- absent: this travels to the UI and over remote control, and it is a secret that stays in core. data BadgeState = BadgeState { badgePurchaseId :: Int64, + purchaseKey :: C.PublicKeyEd25519, -- the purchase's identifier on the service badgeType :: BadgeType, shown :: BoolDef, monthsLeft :: Int, diff --git a/src/Simplex/Chat/Controller.hs b/src/Simplex/Chat/Controller.hs index 6206e8ae50..a5f46faee2 100644 --- a/src/Simplex/Chat/Controller.hs +++ b/src/Simplex/Chat/Controller.hs @@ -84,7 +84,7 @@ import qualified Simplex.Messaging.Agent.Store.DB as DB import Simplex.Messaging.Client (HostMode (..), SMPProxyFallback (..), SMPProxyMode (..), SMPWebPortServers (..), SocksMode (..)) import qualified Simplex.Messaging.Crypto as C import Simplex.Chat.Badges (BadgeCredential, FileSizeLimits, LocalBadge) -import Simplex.Chat.Badges.Service (BadgeServiceErrorCode) +import Simplex.Chat.Badges.Service (BadgeServiceErrorCode, StatementEntry) import Simplex.Chat.Badges.Types (BadgeAlert (..), BadgeAlertKind, BadgeState (..)) import Simplex.Messaging.Crypto.BBS (BBSPublicKey) import Simplex.Messaging.Crypto.File (CryptoFile (..)) @@ -660,6 +660,7 @@ data ChatCommand | AddBadge BadgeCredential -- attach an issued badge credential (testing; credential from `simplex-chat badge sign`) | APIRedeemBadgeCode {userId :: UserId, code :: Text} -- redeem a badge code with the configured badge service | APIGetBadgeState {userId :: UserId} -- the user's badges, their balances and any current alert + | APIGetBadgeLedger {userId :: UserId, badgePurchaseId :: Int64} -- the purchase's ledger, oldest first -- episode is last because it is free text: it is the value that makes one occurrence of an -- alert distinct from the next, and the app returns whatever it was given | APIAckBadgeAlert {userId :: UserId, badgePurchaseId :: Int64, alertKind :: BadgeAlertKind, snooze :: Bool, episode :: Text} @@ -869,6 +870,7 @@ data ChatResponse | CRServiceReplyAccepted {user :: User, connectionId :: AgentConnId} | CRBadgeRedeemed {user :: User, redeemedBadge :: LocalBadge, newBadge :: Bool, badgeState :: Maybe BadgeState} | CRBadgeState {user :: User, badgeState :: Maybe BadgeState} + | CRBadgeLedger {user :: User, badgeLedger :: [StatementEntry]} | CRUserAcceptedGroupSent {user :: User, groupInfo :: GroupInfo, hostContact :: Maybe Contact} | CRUserDeletedMembers {user :: User, groupInfo :: GroupInfo, members :: [GroupMember], withMessages :: Bool, msgSigned :: Bool} | CRGroupsList {user :: User, groups :: [GroupInfo]} diff --git a/src/Simplex/Chat/Library/Commands.hs b/src/Simplex/Chat/Library/Commands.hs index c3d5624cb1..49df03a6d2 100644 --- a/src/Simplex/Chat/Library/Commands.hs +++ b/src/Simplex/Chat/Library/Commands.hs @@ -3567,6 +3567,8 @@ processChatCommand cxt nm = \case -- the read also signals the worker, whose results follow as CEvtBadgeChanged lift $ startBadgeWork user CRBadgeState user <$> getUserBadgeState user + APIGetBadgeLedger userId badgePurchaseId -> withUserId userId $ \user -> + CRBadgeLedger user <$> withStore' (\db -> getBadgeLedger db user badgePurchaseId) APIAckBadgeAlert userId badgePurchaseId alertKind snooze episode -> withUserId userId $ \user -> do now <- badgeNow let snoozeUntil = if snooze then Just (addUTCTime nominalDay now) else Nothing @@ -5417,9 +5419,10 @@ getUserBadgeState user = do Just p@UserBadgePurchase {badgePurchaseId} -> fmap (badgeStateOf now p) <$> withStore' (`getBadgeLedgerLastEntry` badgePurchaseId) where - badgeStateOf now p@UserBadgePurchase {badgePurchaseId, badgeType, shown} balance = + badgeStateOf now p@UserBadgePurchase {badgePurchaseId, purchaseKey, badgeType, shown} balance = BadgeState { badgePurchaseId, + purchaseKey, badgeType, shown = BoolDef shown, monthsLeft = balanceMonths balance, @@ -6039,6 +6042,7 @@ chatCommandP = "/_service_request " *> (APISendServiceRequest <$> A.decimal <* A.space <*> strP <*> optional (" timeout=" *> (realToFrac <$> A.double)) <*> optional (" sign_key=" *> strP) <* A.space <*> jsonP), "/_redeem_badge_code " *> (APIRedeemBadgeCode <$> A.decimal <* A.space <*> textP), "/_badge state " *> (APIGetBadgeState <$> A.decimal), + "/_badge ledger " *> (APIGetBadgeLedger <$> A.decimal <* A.space <*> A.decimal), "/_badge ack " *> (APIAckBadgeAlert <$> A.decimal <* A.space <*> A.decimal <* A.space <*> badgeAlertKindP <* A.space <*> onOffP <* A.space <*> textP), "/_service_response " *> (APISendServiceResponse <$> A.decimal <* A.space <*> strP <* A.space <*> jsonP), "/_call invite @" *> (APISendCallInvitation <$> A.decimal <* A.space <*> jsonP), diff --git a/src/Simplex/Chat/Store/Badges.hs b/src/Simplex/Chat/Store/Badges.hs index c17bd5f360..d581150df8 100644 --- a/src/Simplex/Chat/Store/Badges.hs +++ b/src/Simplex/Chat/Store/Badges.hs @@ -4,6 +4,7 @@ {-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE QuasiQuotes #-} +{-# LANGUAGE TypeOperators #-} module Simplex.Chat.Store.Badges ( BadgeCodeRedemption (..), @@ -22,6 +23,7 @@ module Simplex.Chat.Store.Badges getLatestIssuedCredential, storeBadgeStatement, getBadgeLedgerLastEntry, + getBadgeLedger, getBadgeLedgerEntryId, ) where @@ -31,7 +33,7 @@ import Crypto.Random (ChaChaDRG) import qualified Data.Aeson as J import qualified Data.ByteString.Lazy.Char8 as LB import Data.Int (Int64) -import Data.Maybe (isJust) +import Data.Maybe (isJust, mapMaybe) import Data.Text (Text) import Data.Time.Clock (UTCTime) import Simplex.Chat.Badges @@ -306,7 +308,7 @@ storeBadgeStatement db badgePurchaseId badgeType tip entries now = -- | The balance is the last row; nothing derives it by summing the history. getBadgeLedgerLastEntry :: DB.Connection -> Int64 -> IO (Maybe StatementEntry) getBadgeLedgerLastEntry db badgePurchaseId = - maybeFirstRow' Nothing toEntry $ + maybeFirstRow' Nothing toStatementEntry $ DB.query db [sql| @@ -318,10 +320,27 @@ getBadgeLedgerLastEntry db badgePurchaseId = LIMIT 1 |] (Only badgePurchaseId) - where - toEntry ((entryId, changeMonths, balanceMonths, balanceStartTs, balanceAnchorTs, balanceBadgeType) :. (wasPausedSince, createdAt, entryType_, credit_, debit_, value_)) = - (\entryType -> StatementEntry {entryId, changeMonths, balanceMonths, balanceStartTs, balanceAnchorTs, balanceBadgeType, wasPausedSince, createdAt, entryType}) - <$> maybe (entryTypeFromColumns entryType_ credit_ debit_) (entryTypeFromValue entryType_) value_ + +-- | Oldest first. A row whose type this version cannot rebuild is left out, as it is from the tip. +getBadgeLedger :: DB.Connection -> User -> Int64 -> IO [StatementEntry] +getBadgeLedger db User {userId} badgePurchaseId = + mapMaybe toStatementEntry + <$> DB.query + db + [sql| + SELECT l.entry_uuid, l.change_months, l.balance_months, l.balance_start_ts, l.balance_anchor_ts, l.balance_badge_type, + l.was_paused_since, l.service_created_at, l.entry_type, l.entry_credit_type, l.entry_debit_type, l.entry_type_value + FROM badge_ledger l + JOIN badge_purchases p ON p.badge_purchase_id = l.badge_purchase_id + WHERE l.badge_purchase_id = ? AND p.user_id = ? + ORDER BY l.entry_id + |] + (badgePurchaseId, userId) + +toStatementEntry :: (Text, Int, Int, UTCTime, UTCTime, BadgeType) :. (Maybe UTCTime, UTCTime, Text, Maybe Text, Maybe Text, Maybe Text) -> Maybe StatementEntry +toStatementEntry ((entryId, changeMonths, balanceMonths, balanceStartTs, balanceAnchorTs, balanceBadgeType) :. (wasPausedSince, createdAt, entryType_, credit_, debit_, value_)) = + (\entryType -> StatementEntry {entryId, changeMonths, balanceMonths, balanceStartTs, balanceAnchorTs, balanceBadgeType, wasPausedSince, createdAt, entryType}) + <$> maybe (entryTypeFromColumns entryType_ credit_ debit_) (entryTypeFromValue entryType_) value_ -- | Decodes the stored JSON rather than rebuilding from the tag, so a version that has since -- learnt the type reads it with its fields, and one that has not still gets it back verbatim. diff --git a/src/Simplex/Chat/Store/SQLite/Migrations/chat_query_plans.txt b/src/Simplex/Chat/Store/SQLite/Migrations/chat_query_plans.txt index 10cf2b93c2..fd518f855e 100644 --- a/src/Simplex/Chat/Store/SQLite/Migrations/chat_query_plans.txt +++ b/src/Simplex/Chat/Store/SQLite/Migrations/chat_query_plans.txt @@ -4024,6 +4024,18 @@ Query: Plan: SCAN group_members +Query: + SELECT l.entry_uuid, l.change_months, l.balance_months, l.balance_start_ts, l.balance_anchor_ts, l.balance_badge_type, + l.was_paused_since, l.service_created_at, l.entry_type, l.entry_credit_type, l.entry_debit_type, l.entry_type_value + FROM badge_ledger l + JOIN badge_purchases p ON p.badge_purchase_id = l.badge_purchase_id + WHERE l.badge_purchase_id = ? AND p.user_id = ? + ORDER BY l.entry_id + +Plan: +SEARCH p USING COVERING INDEX idx_badge_purchases_user (user_id=? AND rowid=?) +SEARCH l USING INDEX idx_badge_ledger_purchase (badge_purchase_id=?) + Query: SELECT m.group_member_id FROM group_members m @@ -7679,6 +7691,10 @@ Query: SELECT sent_inv_queue_info FROM group_members WHERE group_member_id = ? A Plan: SEARCH group_members USING INTEGER PRIMARY KEY (rowid=?) +Query: SELECT service_created_at, balance_start_ts FROM badge_ledger ORDER BY entry_id +Plan: +SCAN badge_ledger + Query: SELECT shared_msg_id FROM chat_items WHERE shared_msg_id IS NOT NULL ORDER BY chat_item_id DESC LIMIT 1 Plan: SCAN chat_items diff --git a/src/Simplex/Chat/View.hs b/src/Simplex/Chat/View.hs index 007dc8af0b..66158303f9 100644 --- a/src/Simplex/Chat/View.hs +++ b/src/Simplex/Chat/View.hs @@ -44,6 +44,8 @@ import Simplex.Chat.Help import Simplex.Chat.Library.Commands (badgeServiceErrorText, maxImageSize) import Simplex.Chat.Markdown import Simplex.Chat.Badges (BadgeInfo (..), BadgeStatus (..), BadgeType (..), LocalBadge, localBadgeInfo, localBadgeStatus) +import Simplex.Chat.Badges.Ledger (creditTypeTag, debitTypeTag) +import Simplex.Chat.Badges.Service (StatementEntry (..), StatementEntryType (..)) import Simplex.Chat.Badges.Types (BadgeAlert (..), BadgeState (..)) import Simplex.Chat.Messages hiding (NewChatItem (..)) import Simplex.Chat.Messages.CIContent @@ -192,6 +194,7 @@ chatResponseToView hu cfg@ChatConfig {logLevel, showReactions, showFullLinks, te -- the badge is only shown when it is the one now on the profile; a replayed code's badge may not be CRBadgeRedeemed u badge newBadge _ -> ttyUser u $ if newBadge then "badge redeemed" : viewContactBadge (Just badge) else ["badge already redeemed"] CRBadgeState u st -> ttyUser u $ viewUserBadgeState st + CRBadgeLedger u entries -> ttyUser u $ viewBadgeLedger entries CRGroupCreated u g -> ttyUser u $ viewGroupCreated g testView CRPublicGroupCreated u g _groupLink _relays -> ttyUser u $ viewGroupCreated g testView CRPublicGroupCreationFailed u results -> ttyUser u $ viewPublicGroupCreationFailed results @@ -1854,6 +1857,17 @@ viewUserBadgeState = maybe [] viewBadge viewBadgeAlert :: BadgeAlert -> [StyledString] viewBadgeAlert BadgeAlert {kind, date} = [plain $ "badge alert: " <> textEncode kind <> " " <> day date] +viewBadgeLedger :: [StatementEntry] -> [StyledString] +viewBadgeLedger [] = ["no ledger entries"] +viewBadgeLedger entries = map viewEntry entries + where + viewEntry StatementEntry {createdAt, entryType, changeMonths, balanceMonths, balanceStartTs} = + plain $ day createdAt <> " " <> entryKind entryType <> " " <> withSign changeMonths <> " -> " <> tshow balanceMonths <> ", from " <> day balanceStartTs + entryKind = \case + SECredit c -> creditTypeTag c + SEDebit d -> debitTypeTag d + withSign n = (if n >= 0 then "+" else "") <> tshow n + day :: UTCTime -> Text day = T.pack . formatTime defaultTimeLocale "%Y-%m-%d" diff --git a/tests/Bots/BadgeServiceTests.hs b/tests/Bots/BadgeServiceTests.hs index 640d0ba533..4897722683 100644 --- a/tests/Bots/BadgeServiceTests.hs +++ b/tests/Bots/BadgeServiceTests.hs @@ -17,7 +17,7 @@ import ChatTests.DBUtils import ChatTests.Utils import Control.Concurrent (forkIO, killThread, threadDelay) import Control.Concurrent.STM (atomically, readTMVar) -import Control.Monad (void, when) +import Control.Monad (forM_, void, when) import Control.Exception (finally) import qualified Data.Aeson as J import qualified Data.ByteString.Char8 as B @@ -32,6 +32,7 @@ import System.Timeout (timeout) import Data.Text (Text) import qualified Data.Text as T import Data.Time.Clock (NominalDiffTime, UTCTime, addUTCTime, diffUTCTime, getCurrentTime, nominalDay) +import Data.Time.Format (defaultTimeLocale, formatTime) import Simplex.Chat.Badges (BadgeCredential (..), BadgeInfo (..), BadgeMasterKey, BadgeType (..), generateMasterKey) import Simplex.Chat.Badges.Code (BadgeCode, badgeCodeText, formatBadgeCode, parseBadgeCode, randomBadgeCode) import Simplex.Chat.Badges.Ledger (addMonths, creditTypeTag, debitTypeTag, endOfMondayAfter) @@ -504,6 +505,12 @@ ledgerRows ChatController {chatStore} table = <> table <> " ORDER BY entry_id" +-- the two dates the CLI prints for each row +ledgerTimes :: ChatController -> IO [(UTCTime, UTCTime)] +ledgerTimes ChatController {chatStore} = + withTransaction chatStore $ \db -> + DB.query_ db "SELECT service_created_at, balance_start_ts FROM badge_ledger ORDER BY entry_id" + -- | The client's verdict on each row, in ledger order. The service has no such column: it computes -- the rows rather than checking what someone else computed. balanceChecks :: ChatController -> IO [Maybe Bool] @@ -539,6 +546,18 @@ testClientReplicatesLedger ps = -- nor a second issuance for the one month issued: the replay names a month already stored expiries <- issuedExpiries (chatController alice) length expiries `shouldBe` 1 + -- the CLI lists the rows oldest first, with the dates they carry + times <- ledgerTimes (chatController alice) + alice ##> "/_badge ledger 1 1" + forM_ (zip times [("code", "+3", "3"), ("badge", "-1", "2")]) $ \((createdAt, from), (kind, change, balance)) -> + alice <## (day createdAt <> " " <> kind <> " " <> change <> " -> " <> balance <> ", from " <> day from) + -- and nothing for a purchase that is another profile's + alice ##> "/create user alisa" + showActiveUser alice "alisa" + alice ##> "/_badge ledger 2 1" + alice <## "no ledger entries" + where + day = formatTime defaultTimeLocale "%Y-%m-%d" -- the balance start of the last row, which is when the next month falls due dueAtOf :: [ReplicatedRow] -> UTCTime From c8466b2010fde031421d72dd7b3ef6db1615ab1b Mon Sep 17 00:00:00 2001 From: Evgeny Date: Fri, 18 Sep 2026 10:18:10 +0100 Subject: [PATCH 45/62] core: refactor groups (#7503) * core: refactor groups * refactor * refactor * refactor * refactor * refactor * rename * refactor * remove * rename * diff * simplify * relay requests * bot types * check useRelays * refactor * query plans --------- Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com> --- .../src/Directory/Service.hs | 24 +- .../src/Directory/Store.hs | 20 +- bots/api/TYPES.md | 37 --- bots/src/API/Docs/Types.hs | 6 - .../types/typescript/src/types.ts | 31 -- .../src/simplex_chat/types/_types.py | 21 -- plans/2026-09-13-group-keys-sum-type.md | 252 ++++++++++++++++ src/Simplex/Chat/Bot/Store.hs | 7 +- src/Simplex/Chat/Controller.hs | 6 +- src/Simplex/Chat/Library/Commands.hs | 269 +++++++++-------- src/Simplex/Chat/Library/Internal.hs | 221 +++++++------- src/Simplex/Chat/Library/Subscriber.hs | 276 +++++++++--------- src/Simplex/Chat/Store/Connections.hs | 22 +- src/Simplex/Chat/Store/ContactRequest.hs | 18 +- src/Simplex/Chat/Store/Direct.hs | 2 +- src/Simplex/Chat/Store/Groups.hs | 117 ++++---- .../SQLite/Migrations/chat_query_plans.txt | 35 ++- src/Simplex/Chat/Store/Shared.hs | 57 +++- src/Simplex/Chat/Types.hs | 54 ++-- src/Simplex/Chat/Web.hs | 6 +- tests/ChatTests/Groups.hs | 55 ++++ tests/ChatTests/Profiles.hs | 14 +- tests/ChatTests/Utils.hs | 6 +- 23 files changed, 916 insertions(+), 640 deletions(-) create mode 100644 plans/2026-09-13-group-keys-sum-type.md diff --git a/apps/simplex-directory-service/src/Directory/Service.hs b/apps/simplex-directory-service/src/Directory/Service.hs index 0e04f154d1..f10cbf44fd 100644 --- a/apps/simplex-directory-service/src/Directory/Service.hs +++ b/apps/simplex-directory-service/src/Directory/Service.hs @@ -566,14 +566,12 @@ directoryServiceEvent opts@DirectoryOpts {adminUsers, superUsers, serviceName, o notifyAdminUsers $ "The group " <> groupReference toGroup <> " is updated" <> byMember <> "." checkRolesSendToApprove gr' n' processProfileChange gr byMember n' = - withDB' "getGroupLink" cc (\db -> runExceptT $ getGroupLink db user toGroup) >>= \case + getGroupAndRegLink cc user groupId >>= \case Left e -> linkReadError $ T.pack e - Right (Left SEGroupLinkNotFound {}) -> profileChange Nothing - Right (Left e) -> linkReadError $ tshow e - Right (Right gLink) -> profileChange $ Just gLink + Right (g, _, gLink_) -> profileChange g gLink_ where linkReadError e = logError $ "Error reading group link for " <> groupReference toGroup <> ": " <> e - profileChange gLink_ + profileChange g gLink_ | not (linkOnlyChange gLink_) = sendForApproval byMember n' | groupRegStatus gr == GRSActive = do notifyOwner gr $ @@ -581,7 +579,7 @@ directoryServiceEvent opts@DirectoryOpts {adminUsers, superUsers, serviceName, o <> "!\nThe group is listed in directory." notifyAdminUsers $ "The group " <> groupReference toGroup <> " is updated" <> byMember <> " - only link or whitespace changes.\nThe group remained listed in directory." forM_ gLink_ $ \gLink -> - updateGroupLinkData cc user toGroup gLink >>= \case + updateGroupLinkData cc user g gLink >>= \case Right _ -> pure () Left e -> logError $ "Error updating group link data for " <> groupReference toGroup <> ": " <> tshow e | otherwise = pure () @@ -1283,7 +1281,7 @@ directoryServiceEvent opts@DirectoryOpts {adminUsers, superUsers, serviceName, o deAdminCommand ct ciId cmd | knownCt `elem` adminUsers || knownCt `elem` superUsers = case cmd of DCApproveGroup {groupId, displayName = n, groupApprovalId, promote} -> - withGroupRegLink sendReply groupId n $ \g gr@GroupReg {userGroupRegId = ugrId, promoted} curLink_ -> + withGroupRegLink sendReply groupId n $ \gik@(GIK g _) gr@GroupReg {userGroupRegId = ugrId, promoted} curLink_ -> case groupRegStatus gr of GRSPendingApproval gaId | gaId == groupApprovalId -> do @@ -1300,7 +1298,7 @@ directoryServiceEvent opts@DirectoryOpts {adminUsers, superUsers, serviceName, o let grPromoted' | promoted || knownCt `elem` superUsers = fromMaybe promoted promote | otherwise = False - gLink_ <- if isPublicGroup_ then pure (Right Nothing) else approvedGroupLink g curLink_ + gLink_ <- if isPublicGroup_ then pure (Right Nothing) else approvedGroupLink gik curLink_ case gLink_ of Left e -> sendReply e Right gLink' -> @@ -1464,14 +1462,14 @@ directoryServiceEvent opts@DirectoryOpts {adminUsers, superUsers, serviceName, o mkSendReply :: Contact -> ChatItemId -> Text -> IO () mkSendReply ct ciId = sendComposedMessage cc ct (Just ciId) . MCText - withGroupRegLink :: (Text -> IO ()) -> GroupId -> GroupName -> (GroupInfo -> GroupReg -> Maybe GroupLink -> IO ()) -> IO () + withGroupRegLink :: (Text -> IO ()) -> GroupId -> GroupName -> (GroupInfoKeys -> GroupReg -> Maybe GroupLink -> IO ()) -> IO () withGroupRegLink sendReply gId = withGroupRegLink_ sendReply gId . Just - withGroupRegLink_ :: (Text -> IO ()) -> GroupId -> Maybe GroupName -> (GroupInfo -> GroupReg -> Maybe GroupLink -> IO ()) -> IO () + withGroupRegLink_ :: (Text -> IO ()) -> GroupId -> Maybe GroupName -> (GroupInfoKeys -> GroupReg -> Maybe GroupLink -> IO ()) -> IO () withGroupRegLink_ sendReply gId gName_ action = getGroupAndRegLink cc user gId >>= \case Left e -> sendReply $ "Group " <> tshow gId <> " error (getGroup): " <> T.pack e - Right (g@GroupInfo {groupProfile = GroupProfile {displayName}}, gr, gLink_) + Right (g@(GIK GroupInfo {groupProfile = GroupProfile {displayName}} _), gr, gLink_) | maybe False (displayName ==) gName_ -> action g gr gLink_ | otherwise -> @@ -1482,7 +1480,7 @@ directoryServiceEvent opts@DirectoryOpts {adminUsers, superUsers, serviceName, o withGroupAndReg_ :: (Text -> IO ()) -> GroupId -> Maybe GroupName -> (GroupInfo -> GroupReg -> IO ()) -> IO () withGroupAndReg_ sendReply gId gName_ action = - withGroupRegLink_ sendReply gId gName_ $ \g gr _ -> action g gr + withGroupRegLink_ sendReply gId gName_ $ \(GIK g _) gr _ -> action g gr getOwnersInfo :: [(GroupInfo, GroupReg)] -> IO [((GroupInfo, GroupReg), Maybe (Either String Contact))] getOwnersInfo gs = @@ -1560,7 +1558,7 @@ getGroupLink' :: ChatController -> User -> GroupInfo -> IO (Either String GroupL getGroupLink' cc user gInfo = withDB "getGroupLink" cc $ \db -> withExceptT groupDBError $ getGroupLink db user gInfo -updateGroupLinkData :: ChatController -> User -> GroupInfo -> GroupLink -> IO (Either ChatError GroupLink) +updateGroupLinkData :: ChatController -> User -> GroupInfoKeys -> GroupLink -> IO (Either ChatError GroupLink) updateGroupLinkData cc user gInfo gLink = runReaderT (runExceptT $ setGroupLinkData NRMBackground user gInfo gLink) cc setGroupLinkRole :: ChatController -> GroupInfo -> GroupMemberRole -> IO (Maybe CreatedLinkContact) diff --git a/apps/simplex-directory-service/src/Directory/Store.hs b/apps/simplex-directory-service/src/Directory/Store.hs index 5594b02bae..98226805bc 100644 --- a/apps/simplex-directory-service/src/Directory/Store.hs +++ b/apps/simplex-directory-service/src/Directory/Store.hs @@ -74,7 +74,7 @@ import Simplex.Chat.Names (claimDomain) import Simplex.Chat.Options.DB (FromField (..), ToField (..)) import Simplex.Chat.Store import Simplex.Chat.Store.Groups -import Simplex.Chat.Store.Shared (groupInfoQueryFields, groupInfoQueryFrom) +import Simplex.Chat.Store.Shared (GroupKeysRow, groupInfoQueryFields, groupInfoQueryFrom, mkGroupKeys, toGroupInfo_) import Simplex.Chat.Types import Simplex.Chat.Types.Shared (GroupMemberRole (..)) import Simplex.Messaging.Agent.Protocol (CreatedConnLink (..), SimplexDomain) @@ -309,12 +309,17 @@ getGroupReg_ db gId = |] (Only gId) -getGroupAndRegLink :: ChatController -> User -> GroupId -> IO (Either String (GroupInfo, GroupReg, Maybe GroupLink)) +getGroupAndRegLink :: ChatController -> User -> GroupId -> IO (Either String (GroupInfoKeys, GroupReg, Maybe GroupLink)) getGroupAndRegLink cc user@User {userId, userContactId} gId = withDB "getGroupAndRegLink" cc $ \db -> do currentTs <- liftIO getCurrentTime - ExceptT $ firstRow (toGroupInfoRegLink currentTs (storeCxt cc) user) ("group " ++ show gId ++ " not found") $ - DB.query db (groupReqQuery <> " AND g.group_id = ?") (userId, userContactId, gId) + (g, gksData, gr, gLink_) <- + ExceptT $ firstRow (toGroupInfoKeysRegLink currentTs cxt user) ("group " ++ show gId ++ " not found") $ + DB.query db (groupReqQuery <> " AND g.group_id = ?") (userId, userContactId, gId) + gks <- withExceptT groupDBError $ mkGroupKeys db cxt g gksData + pure (GIK g gks, gr, gLink_) + where + cxt = storeCxt cc getUserGroupReg :: ChatController -> User -> ContactId -> UserGroupRegId -> IO (Either String (GroupInfo, GroupReg)) getUserGroupReg cc user@User {userId, userContactId} ctId ugrId = @@ -438,7 +443,12 @@ toGroupInfoReg currentTs cxt user row = let (g, gr, _) = toGroupInfoRegLink curr toGroupInfoRegLink :: UTCTime -> StoreCxt -> User -> (GroupInfoRow :. GroupRegRow :. GroupLinkRow) -> (GroupInfo, GroupReg, Maybe GroupLink) toGroupInfoRegLink currentTs cxt User {userContactId} (groupRow :. grRow :. linkRow) = - (toGroupInfo currentTs cxt userContactId [] groupRow, rowToGroupReg grRow, toMaybeGroupLink linkRow) + (toGroupInfo_ currentTs cxt userContactId [] groupRow, rowToGroupReg grRow, toMaybeGroupLink linkRow) + +toGroupInfoKeysRegLink :: UTCTime -> StoreCxt -> User -> (GroupInfoRow :. GroupRegRow :. GroupLinkRow) -> (GroupInfo, GroupKeysRow, GroupReg, Maybe GroupLink) +toGroupInfoKeysRegLink currentTs cxt User {userContactId} (groupRow :. grRow :. linkRow) = + let (g, gksData) = toGroupInfo currentTs cxt userContactId [] groupRow + in (g, gksData, rowToGroupReg grRow, toMaybeGroupLink linkRow) type GroupRegRow = (GroupId, UserGroupRegId, ContactId, Maybe GroupMemberId, GroupRegStatus, BoolInt, UTCTime) diff --git a/bots/api/TYPES.md b/bots/api/TYPES.md index e79f8638ad..14ff04b08c 100644 --- a/bots/api/TYPES.md +++ b/bots/api/TYPES.md @@ -105,7 +105,6 @@ This file is generated automatically. - [GroupFeature](#groupfeature) - [GroupFeatureEnabled](#groupfeatureenabled) - [GroupInfo](#groupinfo) -- [GroupKeys](#groupkeys) - [GroupLink](#grouplink) - [GroupLinkOwner](#grouplinkowner) - [GroupLinkPlan](#grouplinkplan) @@ -120,7 +119,6 @@ This file is generated automatically. - [GroupPreferences](#grouppreferences) - [GroupProfile](#groupprofile) - [GroupRelay](#grouprelay) -- [GroupRootKey](#grouprootkey) - [GroupShortLinkData](#groupshortlinkdata) - [GroupShortLinkInfo](#groupshortlinkinfo) - [GroupSummary](#groupsummary) @@ -163,7 +161,6 @@ This file is generated automatically. - [ProxyError](#proxyerror) - [PublicGroupAccess](#publicgroupaccess) - [PublicGroupData](#publicgroupdata) -- [PublicGroupKeys](#publicgroupkeys) - [PublicGroupProfile](#publicgroupprofile) - [RCErrorType](#rcerrortype) - [RatchetSyncState](#ratchetsyncstate) @@ -2535,19 +2532,9 @@ MemberSupport: - rosterVersion: int64? - membersRequireAttention: int - viaGroupLinkUri: string? -- groupKeys: [GroupKeys](#groupkeys)? - groupDomainVerified: bool? ---- - -## GroupKeys - -**Record type**: -- publicGroupKeys: [PublicGroupKeys](#publicgroupkeys)? -- memberPrivKey: string - - --- ## GroupLink @@ -2769,21 +2756,6 @@ UpdateRequired: - relayCap: [RelayCapabilities](#relaycapabilities) ---- - -## GroupRootKey - -**Discriminated union type**: - -Private: -- type: "private" -- rootPrivKey: string - -Public: -- type: "public" -- rootPubKey: string - - --- ## GroupShortLinkData @@ -3413,15 +3385,6 @@ NO_SESSION: - publicMemberCount: int64 ---- - -## PublicGroupKeys - -**Record type**: -- publicGroupId: string -- groupRootKey: [GroupRootKey](#grouprootkey) - - --- ## PublicGroupProfile diff --git a/bots/src/API/Docs/Types.hs b/bots/src/API/Docs/Types.hs index 70777afa21..58298c44fb 100644 --- a/bots/src/API/Docs/Types.hs +++ b/bots/src/API/Docs/Types.hs @@ -291,8 +291,6 @@ chatTypesDocsData = (sti @GroupFeature, STEnum, "GF", [], "", ""), (sti @GroupFeatureEnabled, STEnum, "FE", [], "", ""), (sti @GroupInfo, STRecord, "", [], "", ""), - (sti @GroupKeys, STRecord, "", [], "", ""), - (sti @GroupRootKey, STUnion, "GRK", [], "", ""), (sti @GroupLink, STRecord, "", [], "", ""), (sti @GroupLinkOwner, STRecord, "", [], "", ""), (sti @GroupLinkPlan, STUnion, "GLP", [], "", ""), @@ -349,7 +347,6 @@ chatTypesDocsData = (sti @ProxyError, STUnion, "", [], "", ""), (sti @PublicGroupAccess, STRecord, "", [], "", ""), (sti @PublicGroupData, STRecord, "", [], "", ""), - (sti @PublicGroupKeys, STRecord, "", [], "", ""), (sti @PublicGroupProfile, STRecord, "", [], "", ""), (sti @RatchetSyncState, STEnum, "RS", [], "", ""), (sti @RCErrorType, STUnion, "RCE", [], "", ""), @@ -527,8 +524,6 @@ deriving instance Generic GroupChatScopeInfo deriving instance Generic GroupFeature deriving instance Generic GroupFeatureEnabled deriving instance Generic GroupInfo -deriving instance Generic GroupKeys -deriving instance Generic GroupRootKey deriving instance Generic GroupLink deriving instance Generic GroupLinkOwner deriving instance Generic GroupLinkPlan @@ -592,7 +587,6 @@ deriving instance Generic ProxyClientError deriving instance Generic ProxyError deriving instance Generic PublicGroupAccess deriving instance Generic PublicGroupData -deriving instance Generic PublicGroupKeys deriving instance Generic PublicGroupProfile deriving instance Generic RatchetSyncState deriving instance Generic RCErrorType diff --git a/packages/simplex-chat-client/types/typescript/src/types.ts b/packages/simplex-chat-client/types/typescript/src/types.ts index 170f5c5504..3bf3fdc831 100644 --- a/packages/simplex-chat-client/types/typescript/src/types.ts +++ b/packages/simplex-chat-client/types/typescript/src/types.ts @@ -2895,15 +2895,9 @@ export interface GroupInfo { rosterVersion?: number // int64 membersRequireAttention: number // int viaGroupLinkUri?: string - groupKeys?: GroupKeys groupDomainVerified?: boolean } -export interface GroupKeys { - publicGroupKeys?: PublicGroupKeys - memberPrivKey: string -} - export interface GroupLink { userContactLinkId: number // int64 connLinkContact: CreatedConnLink @@ -3097,26 +3091,6 @@ export interface GroupRelay { relayCap: RelayCapabilities } -export type GroupRootKey = GroupRootKey.Private | GroupRootKey.Public - -export namespace GroupRootKey { - export type Tag = "private" | "public" - - interface Interface { - type: Tag - } - - export interface Private extends Interface { - type: "private" - rootPrivKey: string - } - - export interface Public extends Interface { - type: "public" - rootPubKey: string - } -} - export interface GroupShortLinkData { groupProfile: GroupProfile publicGroupData?: PublicGroupData @@ -3747,11 +3721,6 @@ export interface PublicGroupData { publicMemberCount: number // int64 } -export interface PublicGroupKeys { - publicGroupId: string - groupRootKey: GroupRootKey -} - export interface PublicGroupProfile { groupType: GroupType groupLink: string diff --git a/packages/simplex-chat-python/src/simplex_chat/types/_types.py b/packages/simplex-chat-python/src/simplex_chat/types/_types.py index 38e0318af1..6a8fd96c87 100644 --- a/packages/simplex-chat-python/src/simplex_chat/types/_types.py +++ b/packages/simplex-chat-python/src/simplex_chat/types/_types.py @@ -2031,13 +2031,8 @@ class GroupInfo(TypedDict): rosterVersion: NotRequired[int] # int64 membersRequireAttention: int # int viaGroupLinkUri: NotRequired[str] - groupKeys: NotRequired["GroupKeys"] groupDomainVerified: NotRequired[bool] -class GroupKeys(TypedDict): - publicGroupKeys: NotRequired["PublicGroupKeys"] - memberPrivKey: str - class GroupLink(TypedDict): userContactLinkId: int # int64 connLinkContact: "CreatedConnLink" @@ -2172,18 +2167,6 @@ class GroupRelay(TypedDict): relayLink: NotRequired[str] relayCap: "RelayCapabilities" -class GroupRootKey_private(TypedDict): - type: Literal["private"] - rootPrivKey: str - -class GroupRootKey_public(TypedDict): - type: Literal["public"] - rootPubKey: str - -GroupRootKey = GroupRootKey_private | GroupRootKey_public - -GroupRootKey_Tag = Literal["private", "public"] - class GroupShortLinkData(TypedDict): groupProfile: "GroupProfile" publicGroupData: NotRequired["PublicGroupData"] @@ -2626,10 +2609,6 @@ class PublicGroupAccess(TypedDict): class PublicGroupData(TypedDict): publicMemberCount: int # int64 -class PublicGroupKeys(TypedDict): - publicGroupId: str - groupRootKey: "GroupRootKey" - class PublicGroupProfile(TypedDict): groupType: "GroupType" groupLink: str diff --git a/plans/2026-09-13-group-keys-sum-type.md b/plans/2026-09-13-group-keys-sum-type.md new file mode 100644 index 0000000000..5d8e8e98ab --- /dev/null +++ b/plans/2026-09-13-group-keys-sum-type.md @@ -0,0 +1,252 @@ +# Group keys as a sum type + +Branch: `master`, on top of `core: refactor groups`. + +## Summary + +`GroupInfo.groupKeys` is removed, and the user's private keys leave every API response and event. + +Group keys become a sum type with one constructor per kind of group, each holding the user's member key. + +A group and its keys come from one query. Every read of keys is a read of the group. + +The member key is written at every group insert, and generated at the first read of a row created before this change. `createUserMemberKey` is removed. + +## Terms + +- **p2p group** — `use_relays = 0`. The user's member key signs messages. +- **public group** — `use_relays = 1`. Identified by `public_group_id` and the group root key. +- **member key** — `groups.member_priv_key`, the user's own key in the group. +- **root key** — the group's identity key. The owner holds it as `GRKPrivate`; everyone else holds `GRKPublic`. +- **relay request** — a group row a relay creates on `XGrpRelayInv`, before it fetches the group link. +- **prepared channel** — a public group prepared from a link, before `APIConnectPreparedGroup` stores the root key. + +## 1. The type + +`Simplex/Chat/Types.hs`. + +```haskell +data GroupKeys + = GKGroup + { memberPrivKey :: C.PrivateKeyEd25519 + } + | GKPublicGroup + { groupRootKey :: GroupRootKey, + memberPrivKey :: C.PrivateKeyEd25519 + } + | GKRelayRequest + { memberPrivKey :: C.PrivateKeyEd25519 + } + | GKPreparedPublicGroup + { memberPrivKey :: C.PrivateKeyEd25519 + } + deriving (Eq, Show) + +isPublicGroup :: GroupKeys -> Bool + +data GroupInfoKeys = GIK GroupInfo GroupKeys +``` + +`GroupInfoKeys` is the group read with its keys. A function that signs takes it in place of `GroupInfo`; the name `gInfo` denotes whichever of the two a scope holds. + +`PublicGroupKeys` is removed. `GroupRootKey` is unchanged, and its JSON instance is removed with those of `GroupKeys` and `PublicGroupKeys`. + +`GroupInfo` loses `groupKeys` and keeps every other field, `rosterVersion` included. Its `deriveJSON` then emits public fields only. + +`RequestEntity` becomes `REBusinessChat GroupInfoKeys GroupMember`. + +`PreparedChatEntity` becomes `PCEGroup {groupInfo :: GroupInfoKeys, hostMember}`. + +`ReceivedGroupInvitation` gains `groupKeys :: GroupKeys`. + +## 2. Reading + +`Simplex/Chat/Store/Shared.hs`. + +`StoreCxt` gains the generator, named `drg` because `random` collides with `ChatController.random` wherever both records are in scope. + +```haskell +data StoreCxt = StoreCxt {vr :: VersionRangeChat, badgeKeys :: Map Int BBSPublicKey, drg :: TVar ChaChaDRG} +``` + +```haskell +storeCxt :: ChatController -> StoreCxt +``` + +`toGroupInfo` returns `(GroupInfo, GroupKeysRow)`; `toGroupInfo_` returns the group alone. + +```haskell +mkGroupKeys :: DB.Connection -> StoreCxt -> GroupInfo -> GroupKeysRow -> ExceptT StoreError IO GroupKeys +``` + +The member key is taken from the row, or generated and stored. The constructor follows: + +| `use_relays` | `public_group_id` | root key | result | +| --- | --- | --- | --- | +| 0 | — | — | `GKGroup` | +| 1 | present | present | `GKPublicGroup` | +| 1 | present | absent | `GKPreparedPublicGroup` | +| 1 | absent | — | `GKRelayRequest` | + +### Reads + +| function | returns | +| --- | --- | +| `getGroupInfoRow` | `(GroupInfo, GroupKeysRow)` | +| `getGroupInfoKeys` | `GroupInfoKeys` | +| `getGroupInfo` | `GroupInfo`, as `fst <$> getGroupInfoRow` | +| `getGroupKeys_` | `(Group, GroupKeys)` | +| `getGroup` | `Group`, as `fst <$> getGroupKeys_` | + +All five issue one `groupInfoQuery`. `getGroupKeys_` and `getGroup` add the member query. + +`getGroupInfoKeys` returns the group with `membership.memberPubKey` set from the member key it materialized, so the pair agrees on a row created before this change. + +A site that needs keys switches its existing read to `getGroupInfoKeys` or `getGroupKeys_`. + +### Reads that return keys with their entity + +| function | returns | +| --- | --- | +| `getConnectionEntityKeys` | `(ConnectionEntity, Maybe GroupKeysRow)` | +| `getConnectionEntity` | `ConnectionEntity`, as `fst <$> getConnectionEntityKeys` | +| `getGroupInvitation` | `ReceivedGroupInvitation`, with `groupKeys` | +| `createGroupInvitation` | `(GroupInfoKeys, GroupMemberId)` | +| `createBusinessRequestGroup` | `(GroupInfoKeys, GroupMember)` | +| `updatePreparedRelayedGroup` | `GroupInfoKeys` | +| `getRelayServedGroups` | `[GroupInfoKeys]` | +| `getAcceptedBusinessChat` | `Maybe (GroupInfo, GroupKeysRow)` | +| `getGroupAndRegLink` (directory service) | `(GroupInfoKeys, GroupReg, Maybe GroupLink)` | + +### Reads that discard the keys + +`toGroupInfo_` builds the group for `getBaseGroupDetails`, `getRelayInactiveGroups` and `toGroupInfoRegLink`. + +## 3. Message handling + +`getUserEntity` reads the entity with `getConnectionEntityKeys` and builds the keys from the row with `mkGroupKeys` in the same transaction; the first message on a row created before this change writes the member key. `processAgentMessageConn` takes `Maybe GroupKeys` and passes `GroupInfoKeys` to `processGroupMessage`. + +Handlers that send take `GroupInfoKeys`: `xGrpInfo`, `xGrpRosterAck`, `xGrpRosterRequest`, `xGrpLinkAcpt`, `xGrpMemNew`, `xGrpMemRole`, `xGrpMemDel`, `xGrpLeave`, `xGrpMsgForward`, `applyAtRosterVersion`, `bFileChunkGroup`, `receiveRosterChunk`, `rosterCompletion`, `sendRosterAck`. `updatePublicGroupData` in `Internal.hs` takes `GroupInfo` and `GroupKeys` and returns the updated `GroupInfo`. + +An entity of a group connection without keys raises `CEInternalError`. + +## 4. Writing the member key + +One statement writes `groups.member_priv_key` after this change, in `setUserMemberKey`: + +```sql +UPDATE groups +SET member_priv_key = COALESCE(member_priv_key, ?), updated_at = ? +WHERE group_id = ? +RETURNING member_priv_key +``` + +`group_members.member_pub_key` for the membership row is set from the returned key. + +```haskell +setUserMemberKey :: DB.Connection -> GroupId -> GroupMemberId -> C.PrivateKeyEd25519 -> ExceptT StoreError IO C.PrivateKeyEd25519 +``` + +### Inserts + +Every insert writes a member key. `createRelayRequestGroup` generates one and passes its public half to `createContactMemberInv_`, closing the TODO it held. + +`createNewGroup` takes a non-optional `GroupKeys` and derives `use_relays` from `isPublicGroup`. + +### Updates that stop writing the member key + +`updateGroupMemberKeys` is replaced by `setGroupRootKey`, which writes `root_pub_key` alone. `updateRelayGroupKeys` keeps `group_type`, `group_link` and `public_group_id`, and calls it. + +### Callers that stop generating keys + +| caller | change | +| --- | --- | +| `APIConnectPreparedGroup` | writes the root key alone | +| `createRelayLink` | signs the relay link with the stored member key | + +A relay's member key and its relay-link root key are the same key. Members read it from the link as `FixedLinkData.rootKey`. + +The owner keeps the split: the root key authorises owner keys through `OwnerAuth`, and the member key signs messages and shares. + +### `createUserMemberKey` + +Removed, with its six calls. Each caller takes `GroupKeys` from its own read. + +## 5. The error + +```haskell +| SEGroupNotFound {groupId :: GroupId} +``` + +A relay request and a prepared channel read as their own constructors, so every read returns them. + +## 6. Consumers of the keys + +`groupBindingData` reads `publicGroupId` from `groupProfile.publicGroup`, so it takes `GroupInfo`. Everything that verifies — `verifyGroupSig`, `withVerifiedMsg`, `xInfoMember`, `storeMemberKey`, `verifyKey`, `rcvGroupChatBinding` — takes `GroupInfo` alone. The receive path is unchanged. + +`sndGroupChatBinding` asserts the user's own member key, which `membership.memberPubKey` holds as the public half. + +```haskell +groupMemberKey :: GroupKeys -> MemberKey +``` + +| site | uses | +| --- | --- | +| `groupLinkData` | root key as `GRKPrivate`, member key | +| `groupMsgSigning` | member key | +| `groupMemberKey` | member key | +| `encodeXMemberConnInfo` | member key | +| `APIShareChatMsgContent` | root key as the owner test, member key to sign | + +### Functions that take `GroupInfoKeys` in place of `GroupInfo` + +`Internal.hs`: `acceptGroupJoinRequestAsync`, `acceptBusinessJoinRequestAsync`, `groupLinkData`, `setGroupLinkData`, `setGroupLinkData'`, `setGroupLinkDataAsync`, `introduceToModerators`, `introduceToAll`, `introduceToRemaining`, `introduceMember`, `introduceInChannel`, `serveRoster`, `sendInlineBlobChunks`, `sendRelayCapIfNeeded`, `sendGroupMemberMessages`, `sendGroupMessage`, `sendGroupMessage'`, `sendRoster`, `broadcastRoster`, `sendGroupRosterToRelay`, `sendGroupMessages`, `sendGroupSignedMessages`, `sendGroupProfileUpdate`, `sendGroupMessages_`, `groupMsgSigning`, `encodeXMemberConnInfo`, `allowAgentConnectionAsync` (as `Maybe GroupInfoKeys`). + +`Commands.hs`: `delEventSigned`, `changeRoleInvitedMems`, `deleteMemsSend`, `deletePendingMember`, `blockMembers`, `sendGroupContentMessages`, `sendGroupContentMessages_`, `getCommandGroupChatItems`, `delGroupChatItemsForMembers`, `sendGrpInvitation`, `connectToRelay`, `leaveChannelRelay`, `leaveGroupSendMsg`, `runUpdateGroupProfile`. `changeRoleCurrentMems` takes `Group` and `GroupKeys`. `newGroup` takes `GroupKeys` and loses its `Bool`. + +`joinContact` takes `Maybe (Maybe GroupInfoKeys)` and `Maybe MemberId`. + +`Subscriber.hs`: `processGroupMessage` and every handler under it that sends; `acceptJoin`, `getLinkDataCreateRelayLink`. + +Directory service: `updateGroupLinkData` and the `withGroupRegLink` callbacks. + +`saveConnInfo` returns `Maybe GroupInfoKeys`. + +## 7. Queries + +The query count is unchanged. Every site that needs keys takes them from a read it already performs: + +| site | before | after | +| --- | --- | --- | +| commands holding a group | `getGroupInfo` | `getGroupInfoKeys` | +| commands holding a group and members | `getGroup` | `getGroupKeys_` | +| `processAgentMessageConn` | `getConnectionEntity` | `getConnectionEntityKeys` | +| `APIJoinGroup` | `getGroupInvitation` | same, with `groupKeys` in the record | +| `APIConnectPreparedGroup` | `getGroupInfo` | `getGroupInfoRow` | +| business request | `getGroupInfo` | `getGroupInfoRow` | +| directory service link update | `getGroupLink` | `getGroupAndRegLink` | + +## 8. Schema + +The schema is unchanged. The columns keep their meaning: + +- `groups.member_priv_key` — written at insert, or at the first read of a row created before this change. +- `groups.root_priv_key` — the owner's root key. +- `groups.root_pub_key` — every other member's copy of the root key. +- `group_profiles.public_group_id` — the public group identity. + +## 9. Tests + +`testGroupMemberKeyGenerated` (`tests/ChatTests/Groups.hs`): a p2p group whose member key columns are NULL on both sides. The first send stores a key, the profile update carries and is signed by that key, the peer stores it from the update and verifies the next signed event with it, `member_pub_key` of the membership is the public half of `member_priv_key`, and a second send leaves the key unchanged. + +Covered by the existing suites: relay request and prepared channel flows (`chat relay tests`), relay link signing (`chat relay tests`), `GroupInfo` JSON (`Bot API docs`, once the generated files are writable). + +## Open + +`bots/api/TYPES.md`, `packages/simplex-chat-client/types/typescript/src/types.ts` and `packages/simplex-chat-python/src/simplex_chat/types/_types.py` still declare `GroupKeys`. The `Bot API docs` test regenerates them once they are writable; they are owned by root. + +## Out of scope + +- The sum type in API responses and events. +- Moving relay request data out of the `groups` row. +- `groupSummary.publicMemberCount` moving into `GKPublicGroup`, since both apps decode `GroupSummary`. diff --git a/src/Simplex/Chat/Bot/Store.hs b/src/Simplex/Chat/Bot/Store.hs index 1f5a2924d5..bfa5b04ebc 100644 --- a/src/Simplex/Chat/Bot/Store.hs +++ b/src/Simplex/Chat/Bot/Store.hs @@ -4,8 +4,7 @@ {-# LANGUAGE ScopedTypeVariables #-} module Simplex.Chat.Bot.Store - ( storeCxt, - withDB, + ( withDB, withDB', ) where @@ -20,10 +19,6 @@ import Simplex.Messaging.Agent.Store.Common (withTransaction) import qualified Simplex.Messaging.Agent.Store.DB as DB import Simplex.Messaging.Util (catchAll) -storeCxt :: ChatController -> StoreCxt -storeCxt ChatController {config} = mkStoreCxt config -{-# INLINE storeCxt #-} - withDB' :: Text -> ChatController -> (DB.Connection -> IO a) -> IO (Either String a) withDB' cxt cc a = withDB cxt cc $ ExceptT . fmap Right . a diff --git a/src/Simplex/Chat/Controller.hs b/src/Simplex/Chat/Controller.hs index a5f46faee2..9cc80fc54b 100644 --- a/src/Simplex/Chat/Controller.hs +++ b/src/Simplex/Chat/Controller.hs @@ -228,9 +228,9 @@ newWebPreviewState = do -- | Builds the read-only context threaded through store functions from chat config. -- The single construction point, so new store-wide config (e.g. server keys) is added in one place. -mkStoreCxt :: ChatConfig -> StoreCxt -mkStoreCxt ChatConfig {chatVRange, badgePublicKeys} = StoreCxt chatVRange badgePublicKeys -{-# INLINE mkStoreCxt #-} +storeCxt :: ChatController -> StoreCxt +storeCxt ChatController {config = ChatConfig {chatVRange, badgePublicKeys}, random} = StoreCxt chatVRange badgePublicKeys random +{-# INLINE storeCxt #-} data RandomAgentServers = RandomAgentServers { smpServers :: NonEmpty (ServerCfg 'PSMP), diff --git a/src/Simplex/Chat/Library/Commands.hs b/src/Simplex/Chat/Library/Commands.hs index 49df03a6d2..89c6305d73 100644 --- a/src/Simplex/Chat/Library/Commands.hs +++ b/src/Simplex/Chat/Library/Commands.hs @@ -753,8 +753,8 @@ processChatCommand cxt nm = \case Nothing -> pure () withGroupLock "sendMessage" chatId $ do (gInfo, cmrs) <- withFastStore $ \db -> do - g <- getGroupInfo db cxt user chatId - (g,) <$> mapM (composedMessageReqMentions db user g) cms + gik@(GIK g _) <- getGroupInfoKeys db cxt user chatId + (gik,) <$> mapM (composedMessageReqMentions db user g) cms sendGroupContentMessages user gInfo gsScope asGroup live itemTTL sign cmrs APICreateChatTag (ChatTagData emoji text) -> withUser $ \user -> withFastStore' $ \db -> do _ <- createChatTag db user emoji text @@ -783,7 +783,7 @@ processChatCommand cxt nm = \case createNoteFolderContentItems user folderId (L.map composedMessageReq cms) APIReportMessage gId reportedItemId reportReason reportText -> withUser $ \user -> withGroupLock "reportMessage" gId $ do - gInfo <- withFastStore $ \db -> getGroupInfo db cxt user gId + gInfo <- withFastStore $ \db -> getGroupInfoKeys db cxt user gId let mc = MCReport reportText reportReason cm = ComposedMessage {fileSource = Nothing, quotedItemId = Just reportedItemId, msgContent = mc, mentions = M.empty} sendGroupContentMessages user gInfo (Just $ GCSMemberSupport Nothing) False False Nothing False [composedMessageReq cm] @@ -818,7 +818,7 @@ processChatCommand cxt nm = \case _ -> throwChatError CEInvalidChatItemUpdate CChatItem SMDRcv _ -> throwChatError CEInvalidChatItemUpdate CTGroup -> withGroupLock "updateChatItem" chatId $ do - gInfo@GroupInfo {groupId, membership} <- withFastStore $ \db -> getGroupInfo db cxt user chatId + g@(GIK gInfo@GroupInfo {groupId, membership} _) <- withFastStore $ \db -> getGroupInfoKeys db cxt user chatId when (isNothing scope) $ assertUserGroupRole gInfo GRAuthor let (_, ft_) = msgContentTexts mc if prohibitedSimplexLinks gInfo membership mc ft_ @@ -840,7 +840,7 @@ processChatCommand cxt nm = \case mentions' = M.map (\CIMention {memberId} -> MsgMention {memberId}) ciMentions event = XMsgUpdate itemSharedMId mc mentions' (ttl' <$> itemTimed) (justTrue . (live &&) =<< itemLive) msgScope (Just showGroupAsSender) reuseSign = case msgVerified of Just (MVSigned _) -> True; _ -> False - SndMessage {msgId} <- sendGroupMessage user gInfo scope recipients reuseSign event + SndMessage {msgId} <- sendGroupMessage user g scope recipients reuseSign event ci' <- withFastStore' $ \db -> do currentTs <- liftIO getCurrentTime when changed $ @@ -886,7 +886,7 @@ processChatCommand cxt nm = \case else markDirectCIsDeleted user ct items =<< liftIO getCurrentTime pure $ CRChatItemsDeleted user deletions True False CTGroup -> withGroupLock "deleteChatItem" chatId $ do - (gInfo, items) <- getCommandGroupChatItems user chatId itemIds + (g@(GIK gInfo _), items) <- getCommandGroupChatItems user chatId itemIds -- TODO [knocking] check scope for all items? chatScopeInfo <- mapM (getChatScopeInfo cxt user) scope deletions <- case mode of @@ -899,14 +899,14 @@ processChatCommand cxt nm = \case recipients <- getGroupRecipients cxt user gInfo chatScopeInfo groupKnockingVersion assertDeletable items assertUserGroupRole gInfo GRObserver -- can still delete messages sent earlier - let signedEvents = L.nonEmpty $ mapMaybe (delEventSigned gInfo chatScopeInfo False) items - mapM_ (sendGroupSignedMessages user gInfo Nothing False recipients) signedEvents + let signedEvents = L.nonEmpty $ mapMaybe (delEventSigned g chatScopeInfo False) items + mapM_ (sendGroupSignedMessages user g Nothing False recipients) signedEvents delGroupChatItems user gInfo chatScopeInfo items False CIDMHistory -> do unless (publicGroupEditor gInfo (membership gInfo)) $ throwChatError CEInvalidChatItemDelete recipients <- getGroupRecipients cxt user gInfo chatScopeInfo groupKnockingVersion - let signedEvents = L.nonEmpty $ mapMaybe (delEventSigned gInfo chatScopeInfo True) items - mapM_ (sendGroupSignedMessages user gInfo Nothing False recipients) signedEvents + let signedEvents = L.nonEmpty $ mapMaybe (delEventSigned g chatScopeInfo True) items + mapM_ (sendGroupSignedMessages user g Nothing False recipients) signedEvents delGroupChatItems user gInfo chatScopeInfo items False pure $ CRChatItemsDeleted user deletions True False CTLocal -> do @@ -929,20 +929,20 @@ processChatCommand cxt nm = \case itemsMsgIds :: [CChatItem c] -> [SharedMsgId] itemsMsgIds = mapMaybe (\(CChatItem _ ChatItem {meta = CIMeta {itemSharedMsgId}}) -> itemSharedMsgId) -- history delete always signs (attributable owner action); self-delete signs iff the target was held signed (deniability) - delEventSigned :: GroupInfo -> Maybe GroupChatScopeInfo -> Bool -> CChatItem 'CTGroup -> Maybe (Maybe MsgSigning, ChatMsgEvent 'Json) - delEventSigned gInfo chatScopeInfo onlyHistory (CChatItem _ ChatItem {meta = CIMeta {itemSharedMsgId, msgVerified}}) = + delEventSigned :: GroupInfoKeys -> Maybe GroupChatScopeInfo -> Bool -> CChatItem 'CTGroup -> Maybe (Maybe MsgSigning, ChatMsgEvent 'Json) + delEventSigned g@(GIK gInfo _) chatScopeInfo onlyHistory (CChatItem _ ChatItem {meta = CIMeta {itemSharedMsgId, msgVerified}}) = delEvent <$> itemSharedMsgId where delEvent msgId = let evt = XMsgDel msgId Nothing (toMsgScope gInfo <$> chatScopeInfo) onlyHistory - in (groupMsgSigning (onlyHistory || itemSigned) gInfo evt, evt) + in (groupMsgSigning (onlyHistory || itemSigned) g evt, evt) itemSigned = case msgVerified of Just (MVSigned _) -> True; _ -> False APIDeleteMemberChatItem gId itemIds -> withUser $ \user -> withGroupLock "deleteChatItem" gId $ do - (gInfo, items) <- getCommandGroupChatItems user gId itemIds + (g@(GIK gInfo _), items) <- getCommandGroupChatItems user gId itemIds -- TODO [knocking] check scope is Nothing for all items? (prohibit moderation in support chats?) ms <- withFastStore' $ \db -> getGroupMembers db cxt user gInfo let recipients = filter memberCurrent ms - deletions <- delGroupChatItemsForMembers user gInfo Nothing recipients items + deletions <- delGroupChatItemsForMembers user g Nothing recipients items pure $ CRChatItemsDeleted user deletions True False APIArchiveReceivedReports gId -> withUser $ \user -> withFastStore $ \db -> do g <- getGroupInfo db cxt user gId @@ -950,7 +950,7 @@ processChatCommand cxt nm = \case ciIds <- liftIO $ markReceivedGroupReportsDeleted db user g deleteTs pure $ CRGroupChatItemsDeleted user g ciIds True (Just $ membership g) APIDeleteReceivedReports gId itemIds mode -> withUser $ \user -> withGroupLock "deleteReports" gId $ do - (gInfo, items) <- getCommandGroupChatItems user gId itemIds + (g@(GIK gInfo _), items) <- getCommandGroupChatItems user gId itemIds unless (all isRcvReport items) $ throwCmdError "some items are not received reports" -- TODO [knocking] scope can be different for each item if reports are from different members -- TODO (currently we pass Nothing as scope which is wrong) @@ -961,7 +961,7 @@ processChatCommand cxt nm = \case CIDMBroadcast -> do ms <- withFastStore' $ \db -> getGroupModerators db cxt user gInfo let recipients = filter memberCurrent ms - delGroupChatItemsForMembers user gInfo Nothing recipients items + delGroupChatItemsForMembers user g Nothing recipients items pure $ CRChatItemsDeleted user deletions True False where isRcvReport = \case @@ -990,9 +990,9 @@ processChatCommand cxt nm = \case CTGroup -> withGroupLock "chatItemReaction" chatId $ do -- TODO [knocking] check chat item scope? - (g@GroupInfo {membership}, CChatItem md ci) <- withFastStore $ \db -> do - g <- getGroupInfo db cxt user chatId - (g,) <$> getGroupCIWithReactions db user g itemId + (gik@(GIK g@GroupInfo {membership} _), CChatItem md ci) <- withFastStore $ \db -> do + gik@(GIK g _) <- getGroupInfoKeys db cxt user chatId + (gik,) <$> getGroupCIWithReactions db user g itemId chatScopeInfo <- mapM (getChatScopeInfo cxt user) scope recipients <- getGroupRecipients cxt user g chatScopeInfo groupKnockingVersion case ci of @@ -1004,7 +1004,7 @@ processChatCommand cxt nm = \case let itemMemberId = memberId' <$> chatItemMember g ci rs <- withFastStore' $ \db -> getGroupReactions db g membership itemMemberId itemSharedMId True checkReactionAllowed rs - SndMessage {msgId} <- sendGroupMessage user g scope recipients False (XMsgReact itemSharedMId itemMemberId (toMsgScope g <$> chatScopeInfo) reaction add) + SndMessage {msgId} <- sendGroupMessage user gik scope recipients False (XMsgReact itemSharedMId itemMemberId (toMsgScope g <$> chatScopeInfo) reaction add) createdAt <- liftIO getCurrentTime reactions <- withFastStore' $ \db -> do setGroupReaction db g membership itemMemberId itemSharedMId True reaction add msgId createdAt @@ -1089,7 +1089,7 @@ processChatCommand cxt nm = \case case L.nonEmpty cmrs of Just cmrs' -> withGroupLock "forwardChatItem, to group" toChatId $ do - gInfo <- withFastStore $ \db -> getGroupInfo db cxt user toChatId + gInfo <- withFastStore $ \db -> getGroupInfoKeys db cxt user toChatId sendGroupContentMessages user gInfo toScope sendAsGroup False itemTTL False cmrs' Nothing -> pure $ CRNewChatItems user [] CTLocal -> do @@ -1119,7 +1119,7 @@ processChatCommand cxt nm = \case | otherwise = displayName -- TODO [knocking] from scope? CTGroup -> withGroupLock "forwardChatItem, from group" fromChatId $ do - (gInfo, items) <- getCommandGroupChatItems user fromChatId itemIds + (GIK gInfo _, items) <- getCommandGroupChatItems user fromChatId itemIds catMaybes <$> mapM (\ci -> ciComposeMsgReq gInfo ci <$$> prepareMsgReq ci) items where ciComposeMsgReq :: GroupInfo -> CChatItem 'CTGroup -> (MsgContent, Maybe CryptoFile) -> ComposedMessageReq @@ -1226,16 +1226,16 @@ processChatCommand cxt nm = \case let ext = takeExtension fileName pure $ prefix <> formattedDate <> ext APIShareChatMsgContent (ChatRef CTGroup groupId _) toSendRef -> withUser $ \user -> do - GroupInfo {groupProfile = gp@GroupProfile {publicGroup}, membership = GroupMember {memberId, memberRole}, groupKeys} <- - withFastStore $ \db -> getGroupInfo db cxt user groupId + GIK GroupInfo {groupProfile = gp@GroupProfile {publicGroup}, membership = GroupMember {memberId, memberRole}} gks <- + withFastStore $ \db -> getGroupInfoKeys db cxt user groupId case publicGroup of Nothing -> throwCmdError "not a public group" Just PublicGroupProfile {groupLink} -> do - let signingKeys = case (memberRole, groupKeys) of - (GROwner, Just gk@GroupKeys {publicGroupKeys = Just PublicGroupKeys {groupRootKey = GRKPrivate _}}) -> Just gk + let signingKeys = case (memberRole, gks) of + (GROwner, GKPublicGroup {groupRootKey = GRKPrivate _, memberPrivKey}) -> Just memberPrivKey _ -> Nothing ownerSig <- - pure signingKeys $>>= \GroupKeys {memberPrivKey} -> + pure signingKeys $>>= \memberPrivKey -> mkLinkOwnerSig memberPrivKey groupLink (Just memberId) <$$> shareChatBinding user toSendRef let text = safeDecodeUtf8 $ strEncode groupLink pure $ CRChatMsgContent user MCChat {text, chatLink = MCLGroup groupLink gp, ownerSig} @@ -1378,7 +1378,7 @@ processChatCommand cxt nm = \case withFastStore' $ \db -> deletePendingContactConnection db userId chatId pure $ CRContactConnectionDeleted user conn CTGroup | isNothing scope -> do - gInfo@GroupInfo {membership} <- withFastStore $ \db -> getGroupInfo db cxt user chatId + g@(GIK gInfo@GroupInfo {membership} _) <- withFastStore $ \db -> getGroupInfoKeys db cxt user chatId let isOwner = memberRole' membership == GROwner canDelete = isOwner || not (memberCurrent membership) unless canDelete $ throwChatError $ CEGroupUserRole gInfo GROwner @@ -1391,7 +1391,7 @@ processChatCommand cxt nm = \case let doSendDel = memberActive membership && isOwner msgSigned <- if doSendDel - then (\SndMessage {signedMsg_} -> isJust signedMsg_) <$> sendGroupMessage' user gInfo recipients XGrpDel + then (\SndMessage {signedMsg_} -> isJust signedMsg_) <$> sendGroupMessage' user g recipients XGrpDel else pure False deleteGroupLinkIfExists user gInfo deleteMembersConnections' user members doSendDel @@ -2293,7 +2293,7 @@ processChatCommand cxt nm = \case pure $ CRStartedConnectionToContact user ct' customUserProfile CVRConnectedContact ct' -> pure $ CRContactAlreadyExists user ct' APIConnectPreparedGroup {groupId, incognito, ownerContact, msgContent_} -> withUser $ \user -> do - gInfo <- withFastStore $ \db -> getGroupInfo db cxt user groupId + g@(GIK gInfo _) <- withFastStore $ \db -> getGroupInfoKeys db cxt user groupId case gInfo of GroupInfo {preparedGroup = Nothing} -> throwCmdError "group doesn't have link to connect" GroupInfo {useRelays = BoolDef True, preparedGroup = Just PreparedGroup {connLinkToConnect}} -> do @@ -2313,9 +2313,8 @@ processChatCommand cxt nm = \case -- set group link info and incognito profile, generate and store membership keys incognitoProfile <- if incognito then Just <$> liftIO generateRandomProfile else pure Nothing let cReqHash = contactCReqHash $ CRContactUri crData {crScheme = SSSimplex} e2e - (_, memberPrivKey) <- atomically . C.generateKeyPair =<< asks random - gInfo' <- withFastStore $ \db -> do - gInfo' <- updatePreparedRelayedGroup db cxt user gInfo mainCReq cReqHash incognitoProfile rootKey memberPrivKey publicMemberCount_ + g'@(GIK gInfo' _) <- withFastStore $ \db -> do + g'@(GIK gInfo' _) <- updatePreparedRelayedGroup db cxt user gInfo mainCReq cReqHash incognitoProfile rootKey publicMemberCount_ -- Pre-emptively create owner members with trusted keys from link data forM_ owners $ \OwnerAuth {ownerId, ownerKey} -> do let ctId_ = case ownerContact of @@ -2323,9 +2322,9 @@ processChatCommand cxt nm = \case | memberId == MemberId ownerId -> Just contactId _ -> Nothing void $ createLinkOwnerMember db cxt user gInfo' ctId_ (MemberId ownerId) ownerKey - pure gInfo' + pure g' rs <- withGroupLock "connectPreparedGroup" groupId $ - mapConcurrently (connectToRelay user gInfo') relays + mapConcurrently (connectToRelay user g') relays let relayFailed = \case (_, _, Left _) -> True; _ -> False (failed, succeeded) = partition relayFailed rs if null succeeded @@ -2367,7 +2366,7 @@ processChatCommand cxt nm = \case smId <- getSharedMsgId withFastStore' $ \db -> setRequestSharedMsgIdForGroup db groupId smId pure (smId, mc) - r <- connectViaContact user (Just $ PCEGroup gInfo hostMember) incognito connLinkToConnect welcomeSharedMsgId msg_ `catchAllErrors` \e -> do + r <- connectViaContact user (Just $ PCEGroup g hostMember) incognito connLinkToConnect welcomeSharedMsgId msg_ `catchAllErrors` \e -> do -- get updated group info, in case connection was started (connLinkPreparedConnection) - in UI it would lock ability to change -- user or incognito profile for group or business chat, in case server received request while client got network error gInfo' <- withFastStore $ \db -> getGroupInfo db cxt user groupId @@ -2699,14 +2698,14 @@ processChatCommand cxt nm = \case g <- asks random memberId <- liftIO $ MemberId <$> encodedRandomBytes g 12 (_, memberPrivKey) <- atomically $ C.generateKeyPair g - gInfo <- newGroup user incognito gProfile False memberId (Just GroupKeys {publicGroupKeys = Nothing, memberPrivKey}) Nothing + gInfo <- newGroup user incognito gProfile memberId GKGroup {memberPrivKey} Nothing createNewGroupItems user gInfo pure $ CRGroupCreated user gInfo NewGroup incognito gProfile -> withUser $ \User {userId} -> processChatCommand cxt nm $ APINewGroup userId incognito gProfile APINewPublicGroup userId incognito relayIds groupProfile -> withUserId userId $ \user -> do (gProfile', memberId, groupKeys, setupLink) <- prepareGroupLink user - gInfo <- newGroup user incognito gProfile' True memberId (Just groupKeys) (Just 1) + gInfo <- newGroup user incognito gProfile' memberId groupKeys (Just 1) (gLink, results) <- setupLink gInfo `catchAllErrors` \e -> do deleteInProgressGroup user gInfo throwError e @@ -2753,8 +2752,7 @@ processChatCommand cxt nm = \case userLinkData = UserContactLinkData UserContactData {direct = False, owners = [ownerAuth], relays = [], userData, ratchetKeys = Nothing} -- create connection with prepared link (single network call) connId <- withAgent $ \a -> createConnectionForLink a nm (aUserId user) True ccLink preparedParams userLinkData subMode - let groupKeys = GroupKeys {publicGroupKeys, memberPrivKey} - publicGroupKeys = Just PublicGroupKeys {publicGroupId = B64UrlByteString entityId, groupRootKey = GRKPrivate rootPrivKey} + let groupKeys = GKPublicGroup {groupRootKey = GRKPrivate rootPrivKey, memberPrivKey} setupLink gInfo = do -- TODO [relays] starting role should be communicated in protocol from owner to relays subRole <- asks $ channelSubscriberRole . config @@ -2804,7 +2802,7 @@ processChatCommand cxt nm = \case _ -> False APIAddMember groupId contactId memRole -> withUser $ \user -> withGroupLock "addMember" groupId $ do -- TODO for large groups: no need to load all members to determine if contact is a member - (group, contact) <- withFastStore $ \db -> (,) <$> getGroup db cxt user groupId <*> getContact db cxt user contactId + ((group, gks), contact) <- withFastStore $ \db -> (,) <$> getGroupKeys_ db cxt user groupId <*> getContact db cxt user contactId let Group gInfo members = group Contact {localDisplayName = cName} = contact when (useRelays' gInfo) $ throwCmdError "can't invite contact to channel" @@ -2814,7 +2812,7 @@ processChatCommand cxt nm = \case when (contactConnIncognito contact) $ throwChatError CEContactIncognitoCantInvite -- [incognito] forbid to invite contacts if user joined the group using an incognito profile when (incognitoMembership gInfo) $ throwChatError CEGroupIncognitoCantInvite - let sendInvitation = sendGrpInvitation user contact gInfo + let sendInvitation = sendGrpInvitation user contact (GIK gInfo gks) case contactMember contact members of Nothing -> do gVar <- asks random @@ -2837,13 +2835,13 @@ processChatCommand cxt nm = \case (invitation, ct) <- withFastStore $ \db -> do inv@ReceivedGroupInvitation {fromMember} <- getGroupInvitation db cxt user groupId (inv,) <$> getContactViaMember db cxt user fromMember - let ReceivedGroupInvitation {fromMember, connRequest, groupInfo = g@GroupInfo {membership, chatSettings}} = invitation + let ReceivedGroupInvitation {fromMember, connRequest, groupInfo = g@GroupInfo {membership, chatSettings}, groupKeys = gks} = invitation GroupMember {memberId = membershipMemId} = membership Contact {activeConn} = ct case activeConn of Just Connection {peerChatVRange} -> do subMode <- chatReadVar subscriptionMode - dm <- encodeConnInfo $ XGrpAcpt membershipMemId (groupMemberKey g) + dm <- encodeConnInfo $ XGrpAcpt membershipMemId (Just $ groupMemberKey gks) agentConnId <- case memberConn fromMember of Nothing -> do agentConnId <- withAgent $ \a -> prepareConnectionToJoin a (aUserId user) True connRequest PQSupportOff @@ -2866,7 +2864,7 @@ processChatCommand cxt nm = \case pure $ CRUserAcceptedGroupSent user g {membership = membership {memberStatus = GSMemAccepted}} Nothing Nothing -> throwChatError $ CEContactNotActive ct APIAcceptMember groupId gmId role -> withUser $ \user@User {userId} -> do - (gInfo, m) <- withFastStore $ \db -> (,) <$> getGroupInfo db cxt user groupId <*> getGroupMemberById db cxt user gmId + (g@(GIK gInfo _), m) <- withFastStore $ \db -> (,) <$> getGroupInfoKeys db cxt user groupId <*> getGroupMemberById db cxt user gmId assertUserGroupRole gInfo $ max GRModerator role case memberStatus m of GSMemPendingApproval | memberCategory m == GCInviteeMember -> do -- only host can approve @@ -2875,14 +2873,14 @@ processChatCommand cxt nm = \case Just mConn -> case memberAdmission >>= review of Just MCAll -> do - introduceToModerators cxt user gInfo m + introduceToModerators cxt user g m withFastStore' $ \db -> updateGroupMemberStatus db userId m GSMemPendingReview let m' = m {memberStatus = GSMemPendingReview} pure $ CRMemberAccepted user gInfo m' Nothing -> do let msg = XGrpLinkAcpt GAAccepted role (memberId' m) void $ sendDirectMemberMessage mConn msg groupId - introduceToRemaining cxt user gInfo m {memberRole = role} + introduceToRemaining cxt user g m {memberRole = role} when (groupFeatureAllowed SGFHistory gInfo) $ sendHistory user gInfo m (m', gInfo') <- withFastStore' $ \db -> do m' <- updateGroupMemberAccepted db user m GSMemConnected role @@ -2900,13 +2898,13 @@ processChatCommand cxt nm = \case modMs <- withFastStore' $ \db -> getGroupModerators db cxt user gInfo let rcpModMs' = filter memberCurrent modMs msg = XGrpLinkAcpt GAAccepted role (memberId' m) - void $ sendGroupMessage user gInfo scope ([m] <> rcpModMs') False msg + void $ sendGroupMessage user g scope ([m] <> rcpModMs') False msg when (maxVersion (memberChatVRange m) < groupKnockingVersion) $ forM_ (memberConn m) $ \mConn -> do let msg2 = XMsgNew $ mcSimple (MCText acceptedToGroupMessage) void $ sendDirectMemberMessage mConn msg2 groupId when (memberCategory m == GCInviteeMember) $ do - introduceToRemaining cxt user gInfo m {memberRole = role} + introduceToRemaining cxt user g m {memberRole = role} when (groupFeatureAllowed SGFHistory gInfo) $ sendHistory user gInfo m (m', gInfo') <- withFastStore' $ \db -> do m' <- updateGroupMemberAccepted db user m newMemberStatus role @@ -2938,7 +2936,7 @@ processChatCommand cxt nm = \case APIMembersRole groupId memberIds newRole -> withUser $ \user -> withGroupLock "memberRole" groupId $ do -- TODO [relays] possible optimization is to read only required members + relays - g@(Group gInfo members) <- withFastStore $ \db -> getGroup db cxt user groupId + (g@(Group gInfo members), gks) <- withFastStore $ \db -> getGroupKeys_ db cxt user groupId when (selfSelected gInfo) $ throwCmdError "can't change role for self" let (invitedMems, currentMems, unchangedMems, maxRole, anyAdmin, anyPending, anyPrivilegedTarget, anyRelay, anyRosterChange, finalPrivilegedCount) = selectMembers members when (length invitedMems + length currentMems + length unchangedMems /= length memberIds) $ throwChatError CEGroupMemberNotFound @@ -2954,11 +2952,11 @@ processChatCommand cxt nm = \case throwCmdError "only the group owner can change moderator and admin roles" when (useRelays' gInfo && isRosterRole newRole && finalPrivilegedCount > maxGroupRosterSize) $ throwCmdError $ "the number of members, moderators and admins would exceed the limit of " <> show maxGroupRosterSize - (errs1, changed1) <- changeRoleInvitedMems user gInfo invitedMems + (errs1, changed1) <- changeRoleInvitedMems user (GIK gInfo gks) invitedMems let doBumpRoster = useRelays' gInfo && memberRole' (membership gInfo) == GROwner && anyRosterChange -- roster (with the change projected in) before the delta, so a relay stores the blob at this version before forwarding the delta - rosterVer <- if doBumpRoster then Just <$> broadcastRoster user gInfo (RDRoleChanged newRole currentMems) else pure Nothing - (errs2, changed2, acis, msgSigned) <- changeRoleCurrentMems user g rosterVer currentMems + rosterVer <- if doBumpRoster then Just <$> broadcastRoster user (GIK gInfo gks) (RDRoleChanged newRole currentMems) else pure Nothing + (errs2, changed2, acis, msgSigned) <- changeRoleCurrentMems user g gks rosterVer currentMems unless (null acis) $ toView $ CEvtNewChatItems user acis let errs = errs1 <> errs2 unless (null errs) $ toView $ CEvtChatErrors errs @@ -2985,8 +2983,8 @@ processChatCommand cxt nm = \case -- a current member's role actually changes here; it alters the roster iff the old or new role is on it | otherwise -> (invited, m : current, unchanged, maxRole', anyAdmin', anyPending', anyPrivTarget', anyRelay', anyRosterChange || isRosterRole newRole || isRosterRole memberRole, privCount') | otherwise = (invited, current, unchanged, maxRole, anyAdmin, anyPending, anyPrivTarget, anyRelay, anyRosterChange, if isRosterRole memberRole then privCount + 1 else privCount) - changeRoleInvitedMems :: User -> GroupInfo -> [GroupMember] -> CM ([ChatError], [GroupMember]) - changeRoleInvitedMems user gInfo memsToChange = do + changeRoleInvitedMems :: User -> GroupInfoKeys -> [GroupMember] -> CM ([ChatError], [GroupMember]) + changeRoleInvitedMems user gInfo@(GIK g _) memsToChange = do -- not batched, as we need to send different invitations to different connections anyway mems_ <- forM memsToChange $ \m -> (Right <$> changeRole m) `catchAllErrors` (pure . Left) pure $ partitionEithers mems_ @@ -2998,15 +2996,15 @@ processChatCommand cxt nm = \case sendGrpInvitation user ct gInfo (m :: GroupMember) {memberRole = newRole} cReq withFastStore' $ \db -> updateGroupMemberRole db user m newRole pure (m :: GroupMember) {memberRole = newRole} - _ -> throwChatError $ CEGroupCantResendInvitation gInfo cName - changeRoleCurrentMems :: User -> Group -> Maybe VersionRoster -> [GroupMember] -> CM ([ChatError], [GroupMember], [AChatItem], Bool) - changeRoleCurrentMems user (Group gInfo members) rosterVer memsToChange = case L.nonEmpty memsToChange of + _ -> throwChatError $ CEGroupCantResendInvitation g cName + changeRoleCurrentMems :: User -> Group -> GroupKeys -> Maybe VersionRoster -> [GroupMember] -> CM ([ChatError], [GroupMember], [AChatItem], Bool) + changeRoleCurrentMems user (Group gInfo members) gks rosterVer memsToChange = case L.nonEmpty memsToChange of Nothing -> pure ([], [], [], False) Just memsToChange' -> do let mKey m = if isJust rosterVer then MemberKey <$> memberPubKey m else Nothing events = L.map (\m@GroupMember {memberId} -> XGrpMemRole memberId newRole (mKey m) rosterVer) memsToChange' recipients = filter memberCurrent members - (msgs_, _gsr) <- sendGroupMessages user gInfo Nothing False recipients False events + (msgs_, _gsr) <- sendGroupMessages user (GIK gInfo gks) Nothing False recipients False events let signed = any (either (const False) (\SndMessage {signedMsg_} -> isJust signedMsg_)) msgs_ itemsData = zipWith (fmap . sndItemData) memsToChange (L.toList msgs_) cis_ <- saveSndChatItems user (CDGroupSnd gInfo Nothing) False itemsData Nothing False @@ -3026,7 +3024,7 @@ processChatCommand cxt nm = \case APIBlockMembersForAll groupId memberIds blockFlag -> withUser $ \user -> withGroupLock "blockForAll" groupId $ do -- TODO [relays] possible optimization is to read only required members + relays - Group gInfo members <- withFastStore $ \db -> getGroup db cxt user groupId + (Group gInfo members, gks) <- withFastStore $ \db -> getGroupKeys_ db cxt user groupId when (selfSelected gInfo) $ throwCmdError "can't block/unblock self" -- TODO [relays] consider sending restriction to all members (remove filtering), as we do in delivery jobs let (blockMems, remainingMems, maxRole, anyAdmin, anyPending) = selectMembers members @@ -3034,7 +3032,7 @@ processChatCommand cxt nm = \case when (length memberIds > 1 && anyAdmin) $ throwCmdError "can't block/unblock multiple members when admins selected" when anyPending $ throwCmdError "can't block/unblock members pending approval" assertUserGroupRole gInfo $ max GRModerator maxRole - blockMembers user gInfo blockMems remainingMems + blockMembers user (GIK gInfo gks) blockMems remainingMems where selfSelected GroupInfo {membership} = elem (groupMemberId' membership) memberIds selectMembers :: [GroupMember] -> ([GroupMember], [GroupMember], GroupMemberRole, Bool, Bool) @@ -3047,14 +3045,14 @@ processChatCommand cxt nm = \case anyPending' = anyPending || memberPending m in (m : block, remaining, maxRole', anyAdmin', anyPending') | otherwise = (block, m : remaining, maxRole, anyAdmin, anyPending) - blockMembers :: User -> GroupInfo -> [GroupMember] -> [GroupMember] -> CM ChatResponse - blockMembers user gInfo blockMems remainingMems = case L.nonEmpty blockMems of + blockMembers :: User -> GroupInfoKeys -> [GroupMember] -> [GroupMember] -> CM ChatResponse + blockMembers user g@(GIK gInfo _) blockMems remainingMems = case L.nonEmpty blockMems of Nothing -> throwCmdError "no members to block/unblock" Just blockMems' -> do let mrs = if blockFlag then MRSBlocked else MRSUnrestricted events = L.map (\GroupMember {memberId} -> XGrpMemRestrict memberId MemberRestrictions {restriction = mrs}) blockMems' recipients = filter memberCurrent remainingMems - (msgs_, _gsr) <- sendGroupMessages_ user gInfo recipients False events + (msgs_, _gsr) <- sendGroupMessages_ user g recipients False events let msgSigned = any (either (const False) (\SndMessage {signedMsg_} -> isJust signedMsg_)) msgs_ itemsData = zipWith (fmap . sndItemData) blockMems (L.toList msgs_) cis_ <- saveSndChatItems user (CDGroupSnd gInfo Nothing) False itemsData Nothing False @@ -3075,7 +3073,7 @@ processChatCommand cxt nm = \case APIRemoveMembers {groupId, groupMemberIds, withMessages} -> withUser $ \user -> withGroupLock "removeMembers" groupId $ do -- TODO [relays] possible optimization is to read only required members + relays - Group gInfo members <- withFastStore $ \db -> getGroup db cxt user groupId + (Group gInfo members, gks) <- withFastStore $ \db -> getGroupKeys_ db cxt user groupId let (count, invitedMems, pendingApprvMems, pendingRvwMems, currentMems, maxRole, anyAdmin, anyPrivilegedRemoved, anyRosterRemoved) = selectMembers gmIds members gmIds = S.fromList $ L.toList groupMemberIds memCount = length groupMemberIds @@ -3088,13 +3086,13 @@ processChatCommand cxt nm = \case let recipients = filter memberCurrent members let doBumpRoster = useRelays' gInfo && memberRole' (membership gInfo) == GROwner && anyRosterRemoved -- roster (excluding the removed members) before the delta, so a relay stores the blob at this version before forwarding the delta - rosterVer <- if doBumpRoster then Just <$> broadcastRoster user gInfo (RDRemoved currentMems) else pure Nothing - (errs2, deleted2, acis2, signed2) <- deleteMemsSend user gInfo Nothing rosterVer recipients currentMems + rosterVer <- if doBumpRoster then Just <$> broadcastRoster user (GIK gInfo gks) (RDRemoved currentMems) else pure Nothing + (errs2, deleted2, acis2, signed2) <- deleteMemsSend user (GIK gInfo gks) Nothing rosterVer recipients currentMems (errs3, deleted3, acis3, signed3) <- - foldM (\acc m -> deletePendingMember acc user gInfo [m] m) ([], [], [], False) pendingApprvMems + foldM (\acc m -> deletePendingMember acc user (GIK gInfo gks) [m] m) ([], [], [], False) pendingApprvMems let moderators = filter (\GroupMember {memberRole} -> memberRole >= GRModerator) members (errs4, deleted4, acis4, signed4) <- - foldM (\acc m -> deletePendingMember acc user gInfo (m : moderators) m) ([], [], [], False) pendingRvwMems + foldM (\acc m -> deletePendingMember acc user (GIK gInfo gks) (m : moderators) m) ([], [], [], False) pendingRvwMems let acis = acis2 <> acis3 <> acis4 errs = errs1 <> errs2 <> errs3 <> errs4 deleted = deleted1 <> deleted2 <> deleted3 <> deleted4 @@ -3102,7 +3100,7 @@ processChatCommand cxt nm = \case -- Read group info with updated membersRequireAttention and publicMemberCount gInfo' <- if useRelays' gInfo - then updatePublicGroupData user gInfo + then updatePublicGroupData user gInfo gks else withFastStore $ \db -> getGroupInfo db cxt user groupId let acis' = map (updateACIGroupInfo gInfo') acis unless (null acis') $ toView $ CEvtNewChatItems user acis' @@ -3136,18 +3134,18 @@ processChatCommand cxt nm = \case delMember db m = do deleteGroupMember db user m pure m {memberStatus = GSMemRemoved} - deletePendingMember :: ([ChatError], [GroupMember], [AChatItem], Bool) -> User -> GroupInfo -> [GroupMember] -> GroupMember -> CM ([ChatError], [GroupMember], [AChatItem], Bool) + deletePendingMember :: ([ChatError], [GroupMember], [AChatItem], Bool) -> User -> GroupInfoKeys -> [GroupMember] -> GroupMember -> CM ([ChatError], [GroupMember], [AChatItem], Bool) deletePendingMember (accErrs, accDeleted, accACIs, accSigned) user gInfo recipients m = do (m', scopeInfo) <- mkMemberSupportChatInfo m (errs, deleted, acis, signed) <- deleteMemsSend user gInfo (Just scopeInfo) Nothing recipients [m'] pure (errs <> accErrs, deleted <> accDeleted, acis <> accACIs, accSigned || signed) - deleteMemsSend :: User -> GroupInfo -> Maybe GroupChatScopeInfo -> Maybe VersionRoster -> [GroupMember] -> [GroupMember] -> CM ([ChatError], [GroupMember], [AChatItem], Bool) - deleteMemsSend user gInfo chatScopeInfo rosterVer recipients memsToDelete = case L.nonEmpty memsToDelete of + deleteMemsSend :: User -> GroupInfoKeys -> Maybe GroupChatScopeInfo -> Maybe VersionRoster -> [GroupMember] -> [GroupMember] -> CM ([ChatError], [GroupMember], [AChatItem], Bool) + deleteMemsSend user g@(GIK gInfo _) chatScopeInfo rosterVer recipients memsToDelete = case L.nonEmpty memsToDelete of Nothing -> pure ([], [], [], False) Just memsToDelete' -> do let chatScope = toChatScope <$> chatScopeInfo events = L.map (\GroupMember {memberId} -> XGrpMemDel memberId withMessages rosterVer) memsToDelete' - (msgs_, _gsr) <- sendGroupMessages user gInfo chatScope False recipients False events + (msgs_, _gsr) <- sendGroupMessages user g chatScope False recipients False events let signed = any (either (const False) (\SndMessage {signedMsg_} -> isJust signedMsg_)) msgs_ itemsData_ = zipWith (fmap . sndItemData) memsToDelete (L.toList msgs_) skipUnwantedItem = \case @@ -3184,14 +3182,14 @@ processChatCommand cxt nm = \case | groupFeatureUserAllowed SGFFullDelete gInfo = deleteGroupMembersCIs user gInfo ms | otherwise = markGroupMembersCIsDeleted user gInfo ms membership APILeaveGroup groupId -> withUser $ \user@User {userId} -> do - gInfo@GroupInfo {membership} <- withFastStore $ \db -> getGroupInfo db cxt user groupId + g@(GIK gInfo@GroupInfo {membership} _) <- withFastStore $ \db -> getGroupInfoKeys db cxt user groupId filesInfo <- withFastStore' $ \db -> getGroupFileInfo db user gInfo withGroupLock "leaveGroup" groupId $ do cancelFilesInProgress user filesInfo msg <- if useRelays' gInfo && isRelay membership - then leaveChannelRelay gInfo - else leaveGroupSendMsg user gInfo + then leaveChannelRelay g + else leaveGroupSendMsg user g (gInfo', scopeInfo) <- mkLocalGroupChatScope gInfo ci <- saveSndChatItem user (CDGroupSnd gInfo' scopeInfo) msg (CISndGroupEvent SGEUserLeft) toView $ CEvtNewChatItems user [AChatItem SCTGroup SMDSnd (GroupChat gInfo' scopeInfo) ci] @@ -3206,9 +3204,9 @@ processChatCommand cxt nm = \case pure $ CRLeftMemberUser user gInfo' {membership = membership {memberStatus = GSMemLeft}, relayOwnStatus = relayOwnStatus'} where -- Relay leaving channel: create delivery job for cursor-based sending and async connection cleanup. - leaveChannelRelay gInfo = do + leaveChannelRelay g@(GIK gInfo _) = do msg@SndMessage {msgBody, signedMsg_} <- - liftEither . runIdentity =<< lift (createSndMessages $ Identity (GroupId groupId, groupMsgSigning False gInfo XGrpLeave, XGrpLeave)) + liftEither . runIdentity =<< lift (createSndMessages $ Identity (GroupId groupId, groupMsgSigning False g XGrpLeave, XGrpLeave)) let body = encodeBatchElement signedMsg_ msgBody withFastStore' $ \db -> do deleteGroupDeliveryTasks db gInfo @@ -3216,9 +3214,9 @@ processChatCommand cxt nm = \case createMsgDeliveryJob db gInfo (DJSGroup {jobSpec = DJRelayRemoved}) [] body lift . void $ getDeliveryJobWorker True (groupId, DWSGroup) pure msg - leaveGroupSendMsg user gInfo = do + leaveGroupSendMsg user g@(GIK gInfo _) = do (members, recipients) <- getRecipients user gInfo - msg <- sendGroupMessage' user gInfo recipients XGrpLeave + msg <- sendGroupMessage' user g recipients XGrpLeave deleteMembersConnections' user members True pure msg getRecipients user gInfo @@ -3278,7 +3276,7 @@ processChatCommand cxt nm = \case ct_ <- forM cName_ $ \cName -> withFastStore $ \db -> getContactByName db cxt user cName processChatCommand cxt nm $ APIListGroups userId (contactId' <$> ct_) search_ APIUpdateGroupProfile groupId p' -> withUser $ \user -> do - gInfo <- withFastStore $ \db -> getGroupInfo db cxt user groupId + gInfo <- withFastStore $ \db -> getGroupInfoKeys db cxt user groupId runUpdateGroupProfile user gInfo p' False UpdateGroupNames gName GroupProfile {displayName, fullName, shortDescr} -> updateGroupProfileByName gName $ \p -> p {displayName, fullName, shortDescr} @@ -3289,7 +3287,7 @@ processChatCommand cxt nm = \case ShowGroupDescription gName -> withUser $ \user -> CRGroupDescription user <$> withFastStore (\db -> getGroupInfoByName db cxt user gName) APISetPublicGroupAccess gId access@PublicGroupAccess {groupDomainClaim = newClaim} -> withUser $ \user -> do - gInfo@GroupInfo {groupProfile = p@GroupProfile {publicGroup}} <- withStore $ \db -> getGroupInfo db cxt user gId + gInfo@(GIK GroupInfo {groupProfile = p@GroupProfile {publicGroup}} _) <- withStore $ \db -> getGroupInfoKeys db cxt user gId case publicGroup of Just pg@PublicGroupProfile {groupLink, publicGroupAccess = existingAccess} -> do let domainChanged = (claimDomain <$> newClaim) /= (claimDomain <$> (existingAccess >>= groupDomainClaim)) @@ -3332,11 +3330,11 @@ processChatCommand cxt nm = \case gLnk <- withFastStore $ \db -> getGroupLink db user gInfo pure $ CRGroupLink user gInfo gLnk APIAddGroupShortLink groupId -> withUser $ \user -> do - (gInfo, gLink) <- withFastStore $ \db -> do - gInfo <- getGroupInfo db cxt user groupId + (g@(GIK gInfo _), gLink) <- withFastStore $ \db -> do + g@(GIK gInfo _) <- getGroupInfoKeys db cxt user groupId gLink <- getGroupLink db user gInfo - pure (gInfo, gLink) - gLink' <- setGroupLinkData nm user gInfo gLink + pure (g, gLink) + gLink' <- setGroupLinkData nm user g gLink pure $ CRGroupLink user gInfo gLink' APICreateMemberContact gId gMemberId -> withUser $ \user -> do (g, m) <- withFastStore $ \db -> (,) <$> getGroupInfo db cxt user gId <*> getGroupMember db cxt user gId gMemberId @@ -3522,10 +3520,10 @@ processChatCommand cxt nm = \case void . sendDirectContactMessage user contact $ XFileCancel sharedMsgId pure $ CRSndFileCancelled user (Just aci) ftm fts (Just (ChatRef CTGroup groupId scope), Just aci) -> do - (gInfo, sharedMsgId) <- withFastStore $ \db -> (,) <$> getGroupInfo db cxt user groupId <*> getSharedMsgIdByFileId db userId fileId + (g@(GIK gInfo _), sharedMsgId) <- withFastStore $ \db -> (,) <$> getGroupInfoKeys db cxt user groupId <*> getSharedMsgIdByFileId db userId fileId chatScopeInfo <- mapM (getChatScopeInfo cxt user) scope recipients <- getGroupRecipients cxt user gInfo chatScopeInfo groupKnockingVersion - void . sendGroupMessage user gInfo scope recipients False $ XFileCancel sharedMsgId + void . sendGroupMessage user g scope recipients False $ XFileCancel sharedMsgId pure $ CRSndFileCancelled user (Just aci) ftm fts (Just _, _) -> throwChatError $ CEFileInternal "invalid chat ref for file transfer" where @@ -3873,7 +3871,7 @@ processChatCommand cxt nm = \case -- relay-group joins (only via connectToRelay) carry the target relay member in preparedEntity_; -- its memberId binds the join signature so a sibling relay can't replay it relayMemberId_ = case preparedEntity_ of - Just (PCEGroup gInfo m) | useRelays' gInfo -> Just (memberId' m) + Just (PCEGroup (GIK gInfo _) m) | useRelays' gInfo -> Just (memberId' m) _ -> Nothing joinPreparedConn' xContactId_ conn@Connection {customUserProfileId} gInfo_ = do when (incognito /= isJust customUserProfileId) $ throwCmdError "incognito mode is different from prepared connection" @@ -3890,7 +3888,7 @@ processChatCommand cxt nm = \case xContactId <- mkXContactId xContactId_ -- [incognito] generate profile to send, or use membership profile for relay groups incognitoProfile_ <- case gInfo_ of - Just (Just gInfo) | useRelays' gInfo -> pure $ ExistingIncognito <$> incognitoMembershipProfile gInfo + Just (Just (GIK gInfo _)) | useRelays' gInfo -> pure $ ExistingIncognito <$> incognitoMembershipProfile gInfo _ -> if incognito then Just . NewIncognito <$> liftIO generateRandomProfile else pure Nothing let incognitoProfile = fromIncognitoProfile <$> incognitoProfile_ subMode <- chatReadVar subscriptionMode @@ -3924,8 +3922,8 @@ processChatCommand cxt nm = \case ct' <- withStore $ \db -> getContact db cxt user contactId pure $ CRSentInvitationToContact user ct' incognitoProfile _ -> throwCmdError "contact already has connection" - connectToRelay :: User -> GroupInfo -> ShortLinkContact -> CM (ShortLinkContact, GroupMember, Either ChatError ()) - connectToRelay user gInfo relayLink = do + connectToRelay :: User -> GroupInfoKeys -> ShortLinkContact -> CM (ShortLinkContact, GroupMember, Either ChatError ()) + connectToRelay user g@(GIK gInfo _) relayLink = do gVar <- asks random -- Save relayLink to re-use relay member record on retry (check by relayLink) relayMember <- withFastStore $ \db -> getCreateRelayForMember db cxt gVar user gInfo relayLink @@ -3938,7 +3936,7 @@ processChatCommand cxt nm = \case pure $ MemberId entityId _ -> throwChatError $ CEException "relay link: no relay link data or entity id" let relayLinkToConnect = CCLink cReq (Just relayLink) - void $ connectViaContact user (Just $ PCEGroup gInfo (relayMember {memberId = relayMemberId})) (incognitoMembership gInfo) relayLinkToConnect Nothing Nothing + void $ connectViaContact user (Just $ PCEGroup g (relayMember {memberId = relayMemberId})) (incognitoMembership gInfo) relayLinkToConnect Nothing Nothing relayMember' <- withFastStore $ \db -> getGroupMember db cxt user (groupId' gInfo) (groupMemberId' relayMember) pure (relayLink, relayMember', r) syncSubscriberRelays :: User -> GroupInfo -> [ShortLinkContact] -> CM () @@ -3971,21 +3969,19 @@ processChatCommand cxt nm = \case pure (connId, chatV) mkXContactId :: Maybe XContactId -> CM XContactId mkXContactId = maybe (XContactId <$> drgRandomBytes 16) pure - joinContact :: User -> Connection -> ConnReqContact -> Maybe Profile -> XContactId -> Maybe SharedMsgId -> Maybe (SharedMsgId, MsgContent) -> Maybe (Maybe GroupInfo) -> Maybe MemberId -> PQSupport -> CM Connection + joinContact :: User -> Connection -> ConnReqContact -> Maybe Profile -> XContactId -> Maybe SharedMsgId -> Maybe (SharedMsgId, MsgContent) -> Maybe (Maybe GroupInfoKeys) -> Maybe MemberId -> PQSupport -> CM Connection joinContact user conn cReq incognitoProfile xContactId welcomeSharedMsgId msg_ gInfo_ relayMemberId_ pqSup = do -- gInfo_ is Maybe (Maybe GroupInfo), where Just Nothing means "some unknown group", e.g. when joining via link without profile profileToSend <- presentUserBadge user incognitoProfile $ case gInfo_ of - Just gInfo_' -> userProfileInGroup' user gInfo_' incognitoProfile + Just gInfo_' -> userProfileInGroup' user ((\(GIK g _) -> g) <$> gInfo_') incognitoProfile Nothing -> userProfileDirect user incognitoProfile Nothing True dm <- case gInfo_ of - Just (Just gInfo) - | useRelays' gInfo -> case relayMemberId_ of + Just (Just gInfo@(GIK g gks)) + | useRelays' g -> case relayMemberId_ of Just relayMemberId -> encodeXMemberConnInfo gInfo relayMemberId profileToSend Nothing -> throwChatError $ CEInternalError "relay group join without target relay memberId" - | otherwise -> do - gInfo' <- createUserMemberKey gInfo - encodeConnInfoPQ pqSup $ XContact profileToSend (groupMemberKey gInfo') (Just xContactId) welcomeSharedMsgId msg_ + | otherwise -> encodeConnInfoPQ pqSup $ XContact profileToSend (Just $ groupMemberKey gks) (Just xContactId) welcomeSharedMsgId msg_ _ -> encodeConnInfoPQ pqSup $ XContact profileToSend Nothing (Just xContactId) welcomeSharedMsgId msg_ subMode <- chatReadVar subscriptionMode @@ -4100,8 +4096,8 @@ processChatCommand cxt nm = \case void (sendDirectContactMessage user ct' $ XInfo p Nothing) `catchAllErrors` eToView lift . when (directOrUsed ct') $ createSndFeatureItems user ct ct' pure $ CRContactPrefsUpdated user ct ct' - runUpdateGroupProfile :: User -> GroupInfo -> GroupProfile -> Bool -> CM ChatResponse - runUpdateGroupProfile user gInfo@GroupInfo {businessChat, groupProfile = p@GroupProfile {displayName = n}} p'@GroupProfile {displayName = n', image = img', memberAdmission = ma'} domainVerified = do + runUpdateGroupProfile :: User -> GroupInfoKeys -> GroupProfile -> Bool -> CM ChatResponse + runUpdateGroupProfile user (GIK gInfo@GroupInfo {businessChat, groupProfile = p@GroupProfile {displayName = n}} gks) p'@GroupProfile {displayName = n', image = img', memberAdmission = ma'} domainVerified = do assertUserGroupRole gInfo GROwner when (n /= n') $ checkValidName n' checkProfileImageSize img' @@ -4121,14 +4117,14 @@ processChatCommand cxt nm = \case withStore $ \db -> getGroupMemberByMemberId db cxt user gInfo' businessId let p'' = p' {displayName, fullName, shortDescr, image} :: GroupProfile recipients = filter memberCurrentOrPending oldMs - void $ sendGroupMessage user gInfo' Nothing recipients False (XGrpInfo p'') + void $ sendGroupMessage user (GIK gInfo' gks) Nothing recipients False (XGrpInfo p'') let ps' = fromMaybe defaultBusinessGroupPrefs $ groupPreferences p' recipients = filter memberCurrentOrPending newMs - sendGroupMessage user gInfo' Nothing recipients False $ XGrpPrefs ps' + sendGroupMessage user (GIK gInfo' gks) Nothing recipients False $ XGrpPrefs ps' Nothing -> do - void $ setGroupLinkData' nm user gInfo' + void $ setGroupLinkData' nm user (GIK gInfo' gks) recipients <- getRecipients - sendGroupMessage user gInfo' Nothing recipients False (XGrpInfo p') + sendGroupMessage user (GIK gInfo' gks) Nothing recipients False (XGrpInfo p') where getRecipients | useRelays' gInfo' = withFastStore' $ \db -> getGroupRelayMembers db cxt user gInfo' @@ -4152,13 +4148,13 @@ processChatCommand cxt nm = \case when (memberStatus membership == GSMemInvited) $ throwChatError (CEGroupNotJoined g) when (memberRemoved membership) $ throwChatError CEGroupMemberUserRemoved unless (memberActive membership) $ throwChatError CEGroupMemberNotActive - delGroupChatItemsForMembers :: User -> GroupInfo -> Maybe GroupChatScopeInfo -> [GroupMember] -> [CChatItem 'CTGroup] -> CM [ChatItemDeletion] - delGroupChatItemsForMembers user gInfo chatScopeInfo ms items = do + delGroupChatItemsForMembers :: User -> GroupInfoKeys -> Maybe GroupChatScopeInfo -> [GroupMember] -> [CChatItem 'CTGroup] -> CM [ChatItemDeletion] + delGroupChatItemsForMembers user g@(GIK gInfo _) chatScopeInfo ms items = do assertDeletable gInfo items assertUserGroupRole gInfo GRModerator let msgMemIds = itemsMsgMemIds gInfo items -- moderation deletes always sign (attributable; avoids the catch-up-moderator divergence) - signedEvents = L.nonEmpty $ map (\(msgId, memId) -> let evt = XMsgDel msgId memId (toMsgScope gInfo <$> chatScopeInfo) False in (groupMsgSigning True gInfo evt, evt)) msgMemIds + signedEvents = L.nonEmpty $ map (\(msgId, memId) -> let evt = XMsgDel msgId memId (toMsgScope gInfo <$> chatScopeInfo) False in (groupMsgSigning True g evt, evt)) msgMemIds mapM_ (sendGroupSignedMessages_ gInfo ms) signedEvents delGroupChatItems user gInfo chatScopeInfo items True where @@ -4196,10 +4192,10 @@ processChatCommand cxt nm = \case updateGroupProfileByName = updateGroupProfileByName_ Nothing updateGroupProfileByName_ :: Maybe GroupFeature -> GroupName -> (GroupProfile -> GroupProfile) -> CM ChatResponse updateGroupProfileByName_ feature_ gName update = withUser $ \user -> do - gInfo@GroupInfo {groupProfile = p} <- withStore $ \db -> - getGroupIdByName db user gName >>= getGroupInfo db cxt user + gInfo@(GIK g@GroupInfo {groupProfile = p} _) <- withStore $ \db -> + getGroupIdByName db user gName >>= getGroupInfoKeys db cxt user forM_ feature_ $ \feature -> do - let channel = useRelays' gInfo + let channel = useRelays' g applicable = if channel then groupFeatureInChannel feature else groupFeatureInRegularGroup feature unless applicable $ throwCmdError $ T.unpack (groupFeatureNameText feature) <> " is not available in " <> (if channel then "channels" else "groups") @@ -4257,29 +4253,30 @@ processChatCommand cxt nm = \case groupId <- getGroupIdByName db user gName groupMemberId <- getGroupMemberIdByName db user groupId groupMemberName pure (groupId, groupMemberId) - newGroup :: User -> IncognitoEnabled -> GroupProfile -> Bool -> MemberId -> Maybe GroupKeys -> Maybe Int64 -> CM GroupInfo - newGroup user incognito gProfile@GroupProfile {displayName, image, memberAdmission} useRelays memberId groupKeys_ publicMemberCount_ = do + newGroup :: User -> IncognitoEnabled -> GroupProfile -> MemberId -> GroupKeys -> Maybe Int64 -> CM GroupInfo + newGroup user incognito gProfile@GroupProfile {displayName, image, memberAdmission, publicGroup} memberId groupKeys publicMemberCount_ = do checkValidName displayName checkProfileImageSize image checkGroupProfileSize gProfile - when (useRelays && isJust (memberAdmission >>= review)) $ throwCmdError "Admission review is not supported in channels" + when (isPublicGroup groupKeys && isJust (memberAdmission >>= review)) $ throwCmdError "Admission review is not supported in channels" + when (not (isPublicGroup groupKeys) && isJust publicGroup) $ throwCmdError "publicGroup is not allowed in groups" -- [incognito] generate incognito profile for group membership incognitoProfile <- if incognito then Just <$> liftIO generateRandomProfile else pure Nothing - withFastStore $ \db -> createNewGroup db cxt user gProfile incognitoProfile useRelays memberId groupKeys_ publicMemberCount_ + withFastStore $ \db -> createNewGroup db cxt user gProfile incognitoProfile memberId groupKeys publicMemberCount_ createNewGroupItems :: User -> GroupInfo -> CM () createNewGroupItems user gInfo = do let cd = CDGroupSnd gInfo Nothing createInternalChatItem user cd CIChatBanner (Just epochStart) createInternalChatItem user cd (CISndGroupE2EEInfo $ e2eInfoGroup gInfo) Nothing createGroupFeatureItems user cd CISndGroupFeature gInfo - sendGrpInvitation :: User -> Contact -> GroupInfo -> GroupMember -> ConnReqInvitation -> CM () - sendGrpInvitation user ct@Contact {contactId, localDisplayName} gInfo@GroupInfo {groupId, groupProfile, membership, businessChat} m@GroupMember {groupMemberId, memberId, memberRole = memRole} cReq = do + sendGrpInvitation :: User -> Contact -> GroupInfoKeys -> GroupMember -> ConnReqInvitation -> CM () + sendGrpInvitation user ct@Contact {contactId, localDisplayName} (GIK gInfo@GroupInfo {groupId, groupProfile, membership, businessChat} gks) m@GroupMember {groupMemberId, memberId, memberRole = memRole} cReq = do let currentMemCount = fromIntegral $ currentMembers $ groupSummary gInfo GroupMember {memberRole = userRole, memberId = userMemberId} = membership groupInv = GroupInvitation { fromMember = MemberIdRole userMemberId userRole, - fromMemberKey = groupMemberKey gInfo, + fromMemberKey = Just $ groupMemberKey gks, invitedMember = MemberIdRole memberId memRole, connRequest = cReq, groupProfile, @@ -4826,19 +4823,17 @@ processChatCommand cxt nm = \case quoteData ChatItem {content = CISndMsgContent qmc} = pure (qmc, CIQDirectSnd, True) quoteData ChatItem {content = CIRcvMsgContent qmc} = pure (qmc, CIQDirectRcv, False) quoteData _ = throwError SEInvalidQuote - sendGroupContentMessages :: User -> GroupInfo -> Maybe GroupChatScope -> ShowGroupAsSender -> Bool -> Maybe Int -> Bool -> NonEmpty ComposedMessageReq -> CM ChatResponse - sendGroupContentMessages user gInfo scope showGroupAsSender live itemTTL sign cmrs = do + sendGroupContentMessages :: User -> GroupInfoKeys -> Maybe GroupChatScope -> ShowGroupAsSender -> Bool -> Maybe Int -> Bool -> NonEmpty ComposedMessageReq -> CM ChatResponse + sendGroupContentMessages user gInfo@(GIK g _) scope showGroupAsSender live itemTTL sign cmrs = do assertMultiSendable live cmrs chatScopeInfo <- mapM (getChatScopeInfo cxt user) scope - -- the member key is created before the send, so that signatures and file badge proofs assert the same key - gInfo' <- createUserMemberKey gInfo - recipients <- getGroupRecipients cxt user gInfo' chatScopeInfo modsCompatVersion - sendGroupContentMessages_ user gInfo' scope showGroupAsSender chatScopeInfo recipients live itemTTL sign cmrs + recipients <- getGroupRecipients cxt user g chatScopeInfo modsCompatVersion + sendGroupContentMessages_ user gInfo scope showGroupAsSender chatScopeInfo recipients live itemTTL sign cmrs where hasReport = any (\(ComposedMessage {msgContent}, _, _, _) -> isReport msgContent) cmrs modsCompatVersion = if hasReport then contentReportsVersion else groupKnockingVersion - sendGroupContentMessages_ :: User -> GroupInfo -> Maybe GroupChatScope -> ShowGroupAsSender -> Maybe GroupChatScopeInfo -> [GroupMember] -> Bool -> Maybe Int -> Bool -> NonEmpty ComposedMessageReq -> CM ChatResponse - sendGroupContentMessages_ user gInfo@GroupInfo {groupId, membership} scope showGroupAsSender chatScopeInfo recipients live itemTTL sign cmrs = do + sendGroupContentMessages_ :: User -> GroupInfoKeys -> Maybe GroupChatScope -> ShowGroupAsSender -> Maybe GroupChatScopeInfo -> [GroupMember] -> Bool -> Maybe Int -> Bool -> NonEmpty ComposedMessageReq -> CM ChatResponse + sendGroupContentMessages_ user g@(GIK gInfo@GroupInfo {groupId, membership} _) scope showGroupAsSender chatScopeInfo recipients live itemTTL sign cmrs = do forM_ allowedRole $ assertUserGroupRole gInfo assertGroupContentAllowed processComposedMessages @@ -4868,7 +4863,7 @@ processChatCommand cxt nm = \case (fInvs_, ciFiles_) <- L.unzip <$> setupSndFileTransfers (length recipients) timed_ <- sndGroupCITimed live gInfo itemTTL (chatMsgEvents, quotedItems_) <- L.unzip <$> prepareMsgs (L.zip cmrs fInvs_) timed_ - (msgs_, gsr) <- sendGroupMessages user gInfo Nothing showGroupAsSender recipients signMsgs chatMsgEvents + (msgs_, gsr) <- sendGroupMessages user g Nothing showGroupAsSender recipients signMsgs chatMsgEvents let itemsData = prepareSndItemsData (L.toList cmrs) (L.toList ciFiles_) (L.toList quotedItems_) (L.toList msgs_) cis_ <- saveSndChatItems user (CDGroupSnd gInfo chatScopeInfo) showGroupAsSender itemsData timed_ live when (length cis_ /= length cmrs) $ logError "sendGroupContentMessages: cmrs and cis_ length mismatch" @@ -4992,12 +4987,12 @@ processChatCommand cxt nm = \case where getDirectCI :: DB.Connection -> ChatItemId -> IO (Either ChatError (CChatItem 'CTDirect)) getDirectCI db itemId = runExceptT . withExceptT ChatErrorStore $ getDirectChatItem db user ctId itemId - getCommandGroupChatItems :: User -> Int64 -> NonEmpty ChatItemId -> CM (GroupInfo, [CChatItem 'CTGroup]) + getCommandGroupChatItems :: User -> Int64 -> NonEmpty ChatItemId -> CM (GroupInfoKeys, [CChatItem 'CTGroup]) getCommandGroupChatItems user gId itemIds = do - gInfo <- withFastStore $ \db -> getGroupInfo db cxt user gId + g@(GIK gInfo _) <- withFastStore $ \db -> getGroupInfoKeys db cxt user gId (errs, items) <- lift $ partitionEithers <$> withStoreBatch (\db -> map (getGroupCI db gInfo) (L.toList itemIds)) unless (null errs) $ toView $ CEvtChatErrors errs - pure (gInfo, items) + pure (g, items) where getGroupCI :: DB.Connection -> GroupInfo -> ChatItemId -> IO (Either ChatError (CChatItem 'CTGroup)) getGroupCI db gInfo itemId = runExceptT . withExceptT ChatErrorStore $ getGroupCIWithReactions db user gInfo itemId @@ -5206,7 +5201,7 @@ presentUserBadgeToContacts user'@User {userId, profile = LocalProfile {localBadg Just User {userId = activeId} | activeId == userId -> Just user' active_ -> active_ lift $ withAgent' $ \a -> setUserEntitlement a (aUserId user') (badgeServerCredential localBadge) - cxt <- asks $ mkStoreCxt . config + cxt <- chatStoreCxt contacts <- withFastStore' $ \db -> getUserContacts db cxt user' withChatLock "presentUserBadge" $ forM_ contacts $ \ct -> case contactSendConn_ ct of @@ -5839,8 +5834,8 @@ runRelayGroupLinkChecks user = do where checkRelayServedGroups = do cxt <- chatStoreCxt - relayGroups <- withStore' $ \db -> getRelayServedGroups db cxt user - forM_ relayGroups $ \gInfo@GroupInfo {groupProfile = gp} -> flip catchAllErrors eToView $ do + relayGroups <- withStore $ \db -> getRelayServedGroups db cxt user + forM_ relayGroups $ \g@(GIK gInfo@GroupInfo {groupProfile = gp} _) -> flip catchAllErrors eToView $ do case publicGroup gp of Just PublicGroupProfile {groupLink = sLnk} -> do (_, ContactLinkData _ UserContactData {relays = relayLinks}, _) <- @@ -5856,7 +5851,7 @@ runRelayGroupLinkChecks user = do else void $ withStore' $ \db -> updateRelayOwnStatusFromTo db gInfo RSActive RSInactive _ -> pure () _ -> pure () - sendRelayCapIfNeeded user gInfo + sendRelayCapIfNeeded user g checkRelayInactiveGroups = do cxt <- chatStoreCxt ttl <- asks (relayInactiveTTL . config) diff --git a/src/Simplex/Chat/Library/Internal.hs b/src/Simplex/Chat/Library/Internal.hs index 441d52ffe4..e40e2466a5 100644 --- a/src/Simplex/Chat/Library/Internal.hs +++ b/src/Simplex/Chat/Library/Internal.hs @@ -470,9 +470,9 @@ sndBadgeProof_ User {profile = LocalProfile {localBadge}} ph = case localBadge o _ -> pure Nothing sndGroupChatBinding :: GroupInfo -> ShowGroupAsSender -> Maybe ByteString -sndGroupChatBinding GroupInfo {groupKeys, membership = GroupMember {memberId}} asGroup - | asGroup = (\PublicGroupKeys {publicGroupId} -> encodeChatBinding CBChannel $ smpEncode publicGroupId) <$> (groupKeys >>= publicGroupKeys) - | otherwise = (\GroupKeys {memberPrivKey} -> encodeChatBinding CBGroup $ groupBindingData groupKeys memberId (C.publicKey memberPrivKey)) <$> groupKeys +sndGroupChatBinding gInfo@GroupInfo {membership = GroupMember {memberId, memberPubKey}} asGroup + | asGroup = (\PublicGroupProfile {publicGroupId} -> encodeChatBinding CBChannel $ smpEncode publicGroupId) <$> publicGroup' gInfo + | otherwise = (\k -> encodeChatBinding CBGroup $ groupBindingData gInfo memberId k) <$> memberPubKey cryptoFileDigest :: CryptoFile -> CM FD.FileDigest cryptoFileDigest (CryptoFile filePath cfArgs) = do @@ -1020,11 +1020,11 @@ acceptContactRequestAsync agentAcceptContactAsync cmdId acId True cReqInvId (XInfo profileToSend Nothing) cReqPQSup subMode pure ct' -acceptGroupJoinRequestAsync :: User -> Int64 -> GroupInfo -> InvitationId -> VersionRangeChat -> Profile -> Maybe XContactId -> Maybe MemberId -> Maybe SharedMsgId -> GroupAcceptance -> GroupMemberRole -> Maybe IncognitoProfile -> Maybe MemberKey -> Maybe GroupMember -> CM GroupMember +acceptGroupJoinRequestAsync :: User -> Int64 -> GroupInfoKeys -> InvitationId -> VersionRangeChat -> Profile -> Maybe XContactId -> Maybe MemberId -> Maybe SharedMsgId -> GroupAcceptance -> GroupMemberRole -> Maybe IncognitoProfile -> Maybe MemberKey -> Maybe GroupMember -> CM GroupMember acceptGroupJoinRequestAsync user@User {userId} uclId - gInfo@GroupInfo {groupProfile, membership, businessChat} + (GIK gInfo@GroupInfo {groupProfile, membership, businessChat} gks) cReqInvId cReqChatVRange cReqProfile @@ -1058,7 +1058,7 @@ acceptGroupJoinRequestAsync GroupLinkInvitation { fromMember = MemberIdRole userMemberId userRole, fromMemberName = displayName, - fromMemberKey = groupMemberKey gInfo, + fromMemberKey = Just $ groupMemberKey gks, invitedMember = MemberIdRole memberId gLinkMemRole, groupProfile, accepted = Just gAccepted, @@ -1106,11 +1106,11 @@ acceptGroupJoinSendRejectAsync agentAcceptContactAsync cmdId acId False cReqInvId msg PQSupportOff subMode pure m -acceptBusinessJoinRequestAsync :: User -> Int64 -> GroupInfo -> GroupMember -> UserContactRequest -> CM (GroupInfo, GroupMember) +acceptBusinessJoinRequestAsync :: User -> Int64 -> GroupInfoKeys -> GroupMember -> UserContactRequest -> CM (GroupInfo, GroupMember) acceptBusinessJoinRequestAsync user uclId - gInfo@GroupInfo {membership = GroupMember {memberRole = userRole, memberId = userMemberId}} + (GIK gInfo@GroupInfo {membership = GroupMember {memberRole = userRole, memberId = userMemberId}} gks) clientMember@GroupMember {groupMemberId, memberId} UserContactRequest {agentInvitationId = AgentInvId cReqInvId, cReqChatVRange, xContactId} = do cxt <- chatStoreCxt @@ -1122,7 +1122,7 @@ acceptBusinessJoinRequestAsync GroupLinkInvitation { fromMember = MemberIdRole userMemberId userRole, fromMemberName = displayName, - fromMemberKey = groupMemberKey gInfo, + fromMemberKey = Just $ groupMemberKey gks, invitedMember = MemberIdRole memberId GRMember, groupProfile = businessGroupProfile userProfile groupPreferences, accepted = Just GAAccepted, @@ -1197,15 +1197,15 @@ businessGroupProfile :: Profile -> GroupPreferences -> GroupProfile businessGroupProfile Profile {displayName, fullName, shortDescr, description, image} groupPreferences = GroupProfile {displayName, fullName, description, shortDescr, image, publicGroup = Nothing, groupPreferences = Just groupPreferences, memberAdmission = Nothing} -introduceToModerators :: StoreCxt -> User -> GroupInfo -> GroupMember -> CM () -introduceToModerators cxt user gInfo@GroupInfo {groupId} m@GroupMember {memberRole, memberId} = do +introduceToModerators :: StoreCxt -> User -> GroupInfoKeys -> GroupMember -> CM () +introduceToModerators cxt user gInfo@(GIK g@GroupInfo {groupId} _) m@GroupMember {memberRole, memberId} = do forM_ (memberConn m) $ \mConn -> do let msg = if maxVersion (memberChatVRange m) >= groupKnockingVersion then XGrpLinkAcpt GAPendingReview memberRole memberId else XMsgNew $ mcSimple (MCText pendingReviewMessage) void $ sendDirectMemberMessage mConn msg groupId - modMs <- withStore' $ \db -> getGroupModerators db cxt user gInfo + modMs <- withStore' $ \db -> getGroupModerators db cxt user g let rcpModMs = filter shouldIntroduceToMod modMs introduceMember user gInfo m rcpModMs (Just $ MSMember $ memberId' m) where @@ -1215,15 +1215,15 @@ introduceToModerators cxt user gInfo@GroupInfo {groupId} m@GroupMember {memberRo && groupMemberId' mem /= groupMemberId' m && maxVersion (memberChatVRange mem) >= groupKnockingVersion -introduceToAll :: StoreCxt -> User -> GroupInfo -> GroupMember -> CM () -introduceToAll cxt user gInfo m = do - (members, vector) <- withStore $ \db -> liftM2 (,) (liftIO $ getGroupMembers db cxt user gInfo) (getMemberRelationsVector db m) +introduceToAll :: StoreCxt -> User -> GroupInfoKeys -> GroupMember -> CM () +introduceToAll cxt user gInfo@(GIK g _) m = do + (members, vector) <- withStore $ \db -> liftM2 (,) (liftIO $ getGroupMembers db cxt user g) (getMemberRelationsVector db m) let recipients = filter (shouldIntroduce m vector) members introduceMember user gInfo m recipients Nothing -introduceToRemaining :: StoreCxt -> User -> GroupInfo -> GroupMember -> CM () -introduceToRemaining cxt user gInfo m = do - (members, vector) <- withStore $ \db -> liftM2 (,) (liftIO $ getGroupMembers db cxt user gInfo) (getMemberRelationsVector db m) +introduceToRemaining :: StoreCxt -> User -> GroupInfoKeys -> GroupMember -> CM () +introduceToRemaining cxt user gInfo@(GIK g _) m = do + (members, vector) <- withStore $ \db -> liftM2 (,) (liftIO $ getGroupMembers db cxt user g) (getMemberRelationsVector db m) let recipients = filter (shouldIntroduce m vector) members introduceMember user gInfo m recipients Nothing @@ -1233,17 +1233,17 @@ shouldIntroduce m vec mem = && groupMemberId' mem /= groupMemberId' m && getRelation (indexInGroup mem) vec == MRNew -introduceMember :: User -> GroupInfo -> GroupMember -> [GroupMember] -> Maybe MsgScope -> CM () +introduceMember :: User -> GroupInfoKeys -> GroupMember -> [GroupMember] -> Maybe MsgScope -> CM () introduceMember _ _ GroupMember {activeConn = Nothing} _ _ = throwChatError $ CEInternalError "member connection not active" -introduceMember user gInfo toMember@GroupMember {activeConn = Just conn} introduceToMembers msgScope = do - void . sendGroupMessage' user gInfo introduceToMembers $ XGrpMemNew (memberInfo gInfo toMember) msgScope +introduceMember user gInfo@(GIK g _) toMember@GroupMember {activeConn = Just conn} introduceToMembers msgScope = do + void . sendGroupMessage' user gInfo introduceToMembers $ XGrpMemNew (memberInfo g toMember) msgScope sendIntroductions introduceToMembers where sendIntroductions reMembers = do updateToMemberVector reMembers updateReMembersVectors reMembers shuffledReMembers <- liftIO $ shuffleMembers reMembers - let events = map (memberIntroEvt gInfo) shuffledReMembers + let events = map (memberIntroEvt g) shuffledReMembers forM_ (L.nonEmpty events) $ \events' -> sendGroupMemberMessages user gInfo conn events' updateToMemberVector :: [GroupMember] -> CM () @@ -1272,11 +1272,11 @@ memberIntroEvt gInfo reMember = -- Forward the saved owner-signed roster verbatim (reusing its signed shared_msg_id), then the -- blob chunks, so the recipient verifies the owner signature. -serveRoster :: User -> GroupInfo -> GroupMember -> CM () -serveRoster user gInfo member = +serveRoster :: User -> GroupInfoKeys -> GroupMember -> CM () +serveRoster user gInfo@(GIK g _) member = when (member `supportsVersion` groupRosterVersion) $ do cxt <- chatStoreCxt - withStore' (\db -> getStoredGroupRoster db gInfo) >>= \case + withStore' (\db -> getStoredGroupRoster db g) >>= \case Just (ownerGMId, brokerTs, sm@SignedMsg {signedBody}, blob_, storedVer_) -> case J.eitherDecodeStrict' signedBody :: Either String (ChatMessage 'Json) of Left e -> logError $ "serveRoster: cannot decode saved roster message: " <> tshow e @@ -1297,24 +1297,24 @@ serveRoster user gInfo member = -- Used in groups with relays to introduce moderators and above to a new member, -- and to announce the new member to moderators and above. -- This doesn't create introduction records in db, compared to above methods. -introduceInChannel :: StoreCxt -> User -> GroupInfo -> GroupMember -> CM () +introduceInChannel :: StoreCxt -> User -> GroupInfoKeys -> GroupMember -> CM () introduceInChannel _ _ _ GroupMember {activeConn = Nothing} = throwChatError $ CEInternalError "member connection not active" -introduceInChannel cxt user gInfo subscriber@GroupMember {activeConn = Just conn, indexInGroup = subscriberIdx} = do +introduceInChannel cxt user g@(GIK gInfo _) subscriber@GroupMember {activeConn = Just conn, indexInGroup = subscriberIdx} = do (owners, adminsMods) <- withStore' $ \db -> (,) <$> getGroupOwners db cxt user gInfo <*> getGroupAdminsMods db cxt user gInfo let modMs = owners <> adminsMods - void $ sendGroupMessage' user gInfo modMs $ XGrpMemNew (memberInfo gInfo subscriber) Nothing + void $ sendGroupMessage' user g modMs $ XGrpMemNew (memberInfo gInfo subscriber) Nothing withStore' $ \db -> setMemberVectorNewRelations db subscriber [(indexInGroup m, (IDSubjectIntroduced, MRIntroduced)) | m <- modMs] -- owner intros first so the joiner has the owner profile loaded before applying the saved roster (signed by the owner) sendIntros owners - serveRoster user gInfo subscriber + serveRoster user g subscriber sendIntros adminsMods withStore' $ \db -> setMembersVectorsNewRelation db modMs subscriberIdx IDSubjectIntroduced MRIntroduced where sendIntros ms = forM_ (L.nonEmpty $ map (memberIntroEvt gInfo) ms) $ \evts -> - sendGroupMemberMessages user gInfo conn evts + sendGroupMemberMessages user g conn evts userProfileInGroup :: User -> GroupInfo -> Maybe Profile -> Profile userProfileInGroup user g = userProfileInGroup' user (Just g) @@ -1558,29 +1558,29 @@ splitFileDescr partSize lastSize rfdText = splitParts 1 rfdText then fileDescr :| [] else fileDescr <| splitParts (partNo + 1) rest -setGroupLinkData' :: NetworkRequestMode -> User -> GroupInfo -> CM (Maybe GroupLink) -setGroupLinkData' nm user gInfo = - withFastStore' (\db -> runExceptT $ getGroupLink db user gInfo) >>= \case +setGroupLinkData' :: NetworkRequestMode -> User -> GroupInfoKeys -> CM (Maybe GroupLink) +setGroupLinkData' nm user gInfo@(GIK g _) = + withFastStore' (\db -> runExceptT $ getGroupLink db user g) >>= \case Right gLink@GroupLink {shortLinkDataSet} | shortLinkDataSet -> Just <$> setGroupLinkData nm user gInfo gLink _ -> pure Nothing -setGroupLinkData :: NetworkRequestMode -> User -> GroupInfo -> GroupLink -> CM GroupLink -setGroupLinkData nm user gInfo gLink = do +setGroupLinkData :: NetworkRequestMode -> User -> GroupInfoKeys -> GroupLink -> CM GroupLink +setGroupLinkData nm user g@(GIK gInfo _) gLink = do cxt <- chatStoreCxt (conn, groupRelays) <- withFastStore $ \db -> (,) <$> getGroupLinkConnection db cxt user gInfo <*> liftIO (getPublishableGroupRelays db cxt user gInfo) - let (userLinkData, crClientData) = groupLinkData gInfo gLink groupRelays + let (userLinkData, crClientData) = groupLinkData g gLink groupRelays linkType = if useRelays' gInfo then CCTChannel else CCTGroup sLnk <- shortenShortLink' . setShortLinkType_ linkType =<< withAgent (\a -> setConnShortLink a nm (aConnId conn) SCMContact userLinkData (Just crClientData) False Nothing) withFastStore' $ \db -> setGroupLinkShortLink db gLink sLnk -setGroupLinkDataAsync :: User -> GroupInfo -> GroupLink -> CM () -setGroupLinkDataAsync user gInfo gLink = do +setGroupLinkDataAsync :: User -> GroupInfoKeys -> GroupLink -> CM () +setGroupLinkDataAsync user g@(GIK gInfo _) gLink = do cxt <- chatStoreCxt (conn, groupRelays) <- withStore $ \db -> (,) <$> getGroupLinkConnection db cxt user gInfo <*> liftIO (getPublishableGroupRelays db cxt user gInfo) - let (userLinkData, crClientData) = groupLinkData gInfo gLink groupRelays + let (userLinkData, crClientData) = groupLinkData g gLink groupRelays setAgentConnShortLinkAsync user conn userLinkData (Just crClientData) connectToRelayAsync :: User -> GroupInfo -> ShortLinkContact -> CM () @@ -1595,15 +1595,15 @@ connectToRelayAsync user gInfo relayLink = do newConnIds <- getAgentConnShortLinkAsync user CFGetRelayDataJoin Nothing relayLink withFastStore' $ \db -> createRelayMemberConnectionAsync db user gInfo relayMember relayLink newConnIds subMode -updatePublicGroupData :: User -> GroupInfo -> CM GroupInfo -updatePublicGroupData user gInfo +updatePublicGroupData :: User -> GroupInfo -> GroupKeys -> CM GroupInfo +updatePublicGroupData user gInfo gks | useRelays' gInfo && memberRole' (membership gInfo) == GROwner = do cxt <- chatStoreCxt (gInfo', gLink) <- withStore $ \db -> do gInfo' <- updatePublicMemberCount db cxt user gInfo gLink <- getGroupLink db user gInfo' pure (gInfo', gLink) - setGroupLinkDataAsync user gInfo' gLink + setGroupLinkDataAsync user (GIK gInfo' gks) gLink pure gInfo' | useRelays' gInfo && isRelay (membership gInfo) = do cxt <- chatStoreCxt @@ -1647,14 +1647,14 @@ updateContactFromLinkData user ct@Contact {profile = profile@LocalProfile {conta verifyChanged = contactDomainVerified /= Just True || claimChanged -- TODO [relays] owner: set owners on updating link data (multi-owner) -groupLinkData :: GroupInfo -> GroupLink -> [GroupRelay] -> (UserConnLinkData 'CMContact, CRClientData) -groupLinkData gInfo@GroupInfo {groupProfile, groupSummary = GroupSummary {publicMemberCount}, membership = GroupMember {memberId}, groupKeys} GroupLink {groupLinkId} groupRelays = +groupLinkData :: GroupInfoKeys -> GroupLink -> [GroupRelay] -> (UserConnLinkData 'CMContact, CRClientData) +groupLinkData (GIK gInfo@GroupInfo {groupProfile, groupSummary = GroupSummary {publicMemberCount}, membership = GroupMember {memberId}} gks) GroupLink {groupLinkId} groupRelays = let direct = not $ useRelays' gInfo relays = mapMaybe (\GroupRelay {relayLink} -> relayLink) groupRelays publicGroupData_ = PublicGroupData <$> publicMemberCount userData = encodeShortLinkData $ GroupShortLinkData {groupProfile, publicGroupData = publicGroupData_} - owners = case groupKeys of - Just GroupKeys {publicGroupKeys = Just PublicGroupKeys {groupRootKey = GRKPrivate rootPrivKey}, memberPrivKey} -> + owners = case gks of + GKPublicGroup {groupRootKey = GRKPrivate rootPrivKey, memberPrivKey} -> let ownerId = unMemberId memberId ownerKey = C.publicKey memberPrivKey authOwnerSig = C.sign' rootPrivKey (ownerId <> C.encodePubKey ownerKey) @@ -2308,18 +2308,19 @@ createSndMessages idsEvents = do encodeMessage sharedMsgId = encodeChatMessage maxEncodedMsgLength ChatMessage {chatVRange = vr, msgId = Just sharedMsgId, chatMsgEvent = evnt} -groupMsgSigning :: Bool -> GroupInfo -> ChatMsgEvent e -> Maybe MsgSigning -groupMsgSigning sign GroupInfo {membership = GroupMember {memberId}, groupKeys} evt = case groupKeys of - Just gks@GroupKeys {memberPrivKey} | shouldSign -> Just $ MsgSigning CBGroup bindingData KRMember memberPrivKey - where - tag = toCMEventTag evt - shouldSign = requiresSignature tag || (sign && signableContent tag) - bindingData = groupBindingData (Just gks) memberId (C.publicKey memberPrivKey) - _ -> Nothing - -groupBindingData :: Maybe GroupKeys -> MemberId -> C.PublicKeyEd25519 -> ByteString -groupBindingData gks memberId memberKey = case gks >>= publicGroupKeys of - Just PublicGroupKeys {publicGroupId} -> smpEncode (publicGroupId, memberId) +groupMsgSigning :: Bool -> GroupInfoKeys -> ChatMsgEvent e -> Maybe MsgSigning +groupMsgSigning sign (GIK gInfo@GroupInfo {membership = GroupMember {memberId}} gks) evt + | shouldSign = Just $ MsgSigning CBGroup bindingData KRMember memberPrivKey' + | otherwise = Nothing + where + memberPrivKey' = memberPrivKey gks + tag = toCMEventTag evt + shouldSign = requiresSignature tag || (sign && signableContent tag) + bindingData = groupBindingData gInfo memberId (C.publicKey memberPrivKey') + +groupBindingData :: GroupInfo -> MemberId -> C.PublicKeyEd25519 -> ByteString +groupBindingData gInfo memberId memberKey = case publicGroup' gInfo of + Just PublicGroupProfile {publicGroupId} -> smpEncode (publicGroupId, memberId) Nothing -> smpEncode (memberId, memberKey) type HistoryFile = (FileInvitation, RcvFileDescrText, Maybe UTCTime, Maybe BadgeProof) @@ -2330,11 +2331,11 @@ directChatBinding ct = encodeChatBinding CBDirect <$> withAgent (`getConnectionRatchetAdHash` aConnId conn) rcvGroupChatBinding :: GroupInfo -> Maybe GroupMember -> ShowGroupAsSender -> Maybe BadgeProof -> Maybe ByteString -rcvGroupChatBinding GroupInfo {groupKeys} m_ asGroup badge_ = - case (groupKeys >>= publicGroupKeys, asGroup, m_) of - (Just PublicGroupKeys {publicGroupId}, True, _) -> +rcvGroupChatBinding gInfo m_ asGroup badge_ = + case (publicGroup' gInfo, asGroup, m_) of + (Just PublicGroupProfile {publicGroupId}, True, _) -> Just $ encodeChatBinding CBChannel $ smpEncode publicGroupId - (Just PublicGroupKeys {publicGroupId}, False, Just GroupMember {memberId}) -> + (Just PublicGroupProfile {publicGroupId}, False, Just GroupMember {memberId}) -> Just $ encodeChatBinding CBGroup $ smpEncode (publicGroupId, memberId) (Nothing, False, Just GroupMember {memberId, memberPubKey}) -> (\k -> encodeChatBinding CBGroup $ smpEncode (memberId, k)) <$> (memberPubKey <|> proofMemberKey memberId badge_) @@ -2387,21 +2388,13 @@ rcvFileProhibited binding_ FileInvitation {fileSize, fileBadge} = do then Nothing else Just FileProhibited {maxSize, badgeStatus = Just st} -createUserMemberKey :: GroupInfo -> CM GroupInfo -createUserMemberKey gInfo@GroupInfo {groupId, membership, groupKeys} - | useRelays' gInfo || isJust groupKeys = pure gInfo - | otherwise = do - (_, memberPrivKey) <- atomically . C.generateKeyPair =<< asks random - withStore' $ \db -> setUserMemberKey db groupId (groupMemberId' membership) memberPrivKey - pure gInfo {groupKeys = Just GroupKeys {publicGroupKeys = Nothing, memberPrivKey}} +groupMemberKey :: GroupKeys -> MemberKey +groupMemberKey gks = MemberKey $ C.publicKey $ memberPrivKey gks -groupMemberKey :: GroupInfo -> Maybe MemberKey -groupMemberKey GroupInfo {groupKeys} = MemberKey . C.publicKey . memberPrivKey <$> groupKeys - -sendGroupMemberMessages :: forall e. MsgEncodingI e => User -> GroupInfo -> Connection -> NonEmpty (ChatMsgEvent e) -> CM () -sendGroupMemberMessages user gInfo@GroupInfo {groupId} conn events = do +sendGroupMemberMessages :: forall e. MsgEncodingI e => User -> GroupInfoKeys -> Connection -> NonEmpty (ChatMsgEvent e) -> CM () +sendGroupMemberMessages user g@(GIK gInfo@GroupInfo {groupId} _) conn events = do when (connDisabled conn) $ throwChatError (CEConnectionDisabled conn) - let idsEvts = L.map (\evt -> (GroupId groupId, groupMsgSigning False gInfo evt, evt)) events + let idsEvts = L.map (\evt -> (GroupId groupId, groupMsgSigning False g evt, evt)) events (errs, msgs) <- lift $ partitionEithers . L.toList <$> createSndMessages idsEvts unless (null errs) $ toView $ CEvtChatErrors errs forM_ (L.nonEmpty msgs) $ \msgs' -> @@ -2468,15 +2461,13 @@ encodeSignedConnInfo signing chatMsgEvent = do -- signed XMember for a relay-group join: proves the joiner holds the member key it asserts, and carries -- viaRelay = the target relay's memberId inside the signed body so a sibling relay can't accept a replay -encodeXMemberConnInfo :: GroupInfo -> MemberId -> Profile -> CM ByteString -encodeXMemberConnInfo GroupInfo {membership = GroupMember {memberId}, groupKeys} relayMemberId profileToSend = - case groupKeys of - Just gks@GroupKeys {memberPrivKey} -> - let xMemberEvt = XMember profileToSend memberId (MemberKey $ C.publicKey memberPrivKey) (Just relayMemberId) - bindingData = groupBindingData (Just gks) memberId (C.publicKey memberPrivKey) - signing = MsgSigning CBGroup bindingData KRMember memberPrivKey - in encodeSignedConnInfo signing xMemberEvt - Nothing -> throwChatError $ CEInternalError "no group keys for channel membership" +encodeXMemberConnInfo :: GroupInfoKeys -> MemberId -> Profile -> CM ByteString +encodeXMemberConnInfo (GIK gInfo@GroupInfo {membership = GroupMember {memberId}} gks) relayMemberId profileToSend = + let memberPrivKey' = memberPrivKey gks + xMemberEvt = XMember profileToSend memberId (MemberKey $ C.publicKey memberPrivKey') (Just relayMemberId) + bindingData = groupBindingData gInfo memberId (C.publicKey memberPrivKey') + signing = MsgSigning CBGroup bindingData KRMember memberPrivKey' + in encodeSignedConnInfo signing xMemberEvt deliverMessage :: Connection -> CMEventTag e -> MsgBody -> MessageId -> CM (Int64, PQEncryption) deliverMessage conn cmEventTag msgBody msgId = do @@ -2539,13 +2530,13 @@ deliverMessagesB msgReqs = do where updatePQ = updateConnPQSndEnabled db connId pqSndEnabled' -sendGroupMessage :: MsgEncodingI e => User -> GroupInfo -> Maybe GroupChatScope -> [GroupMember] -> Bool -> ChatMsgEvent e -> CM SndMessage +sendGroupMessage :: MsgEncodingI e => User -> GroupInfoKeys -> Maybe GroupChatScope -> [GroupMember] -> Bool -> ChatMsgEvent e -> CM SndMessage sendGroupMessage user gInfo gcScope members sign chatMsgEvent = do sendGroupMessages user gInfo gcScope False members sign (chatMsgEvent :| []) >>= \case ((Right msg) :| [], _) -> pure msg _ -> throwChatError $ CEInternalError "sendGroupMessage: expected 1 message" -sendGroupMessage' :: MsgEncodingI e => User -> GroupInfo -> [GroupMember] -> ChatMsgEvent e -> CM SndMessage +sendGroupMessage' :: MsgEncodingI e => User -> GroupInfoKeys -> [GroupMember] -> ChatMsgEvent e -> CM SndMessage sendGroupMessage' user gInfo members chatMsgEvent = sendGroupMessages_ user gInfo members False (chatMsgEvent :| []) >>= \case ((Right msg) :| [], _) -> pure msg @@ -2571,8 +2562,8 @@ applyRosterDelta delta current = case delta of -- advances past a version the owner hasn't recorded), then broadcast the matching blob with the change projected -- onto the served roster (so it excludes demoted/removed members). Returns the reserved version for the delta -- that follows. The blob send is best-effort - a failed send heals on the next change or on resume. -broadcastRoster :: User -> GroupInfo -> RosterDelta -> CM VersionRoster -broadcastRoster user gInfo delta = do +broadcastRoster :: User -> GroupInfoKeys -> RosterDelta -> CM VersionRoster +broadcastRoster user g@(GIK gInfo _) delta = do let rosterVer = maybe (VersionRoster 0) (\(VersionRoster n) -> VersionRoster (n + 1)) (rosterVersion gInfo) withStore' $ \db -> setGroupRosterVersion db gInfo rosterVer sendRosterBlob rosterVer `catchAllErrors` eToView @@ -2583,18 +2574,18 @@ broadcastRoster user gInfo delta = do (relays, rosterMems) <- withStore' $ \db -> (,) <$> getGroupRelayMembers db cxt user gInfo <*> getGroupRosterMembers db cxt user gInfo forM_ (L.nonEmpty relays) $ \relays' -> - sendRoster user gInfo (L.toList relays') rosterVer (buildGroupRoster $ applyRosterDelta delta rosterMems) + sendRoster user g (L.toList relays') rosterVer (buildGroupRoster $ applyRosterDelta delta rosterMems) -- Send the current roster (no version bump) to a newly added relay so it can serve joiners. -sendGroupRosterToRelay :: User -> GroupInfo -> GroupMember -> CM () -sendGroupRosterToRelay user gInfo relayMember = +sendGroupRosterToRelay :: User -> GroupInfoKeys -> GroupMember -> CM () +sendGroupRosterToRelay user g@(GIK gInfo _) relayMember = forM_ (rosterVersion gInfo) $ \rosterVer -> do cxt <- chatStoreCxt rosterMems <- withStore' $ \db -> getGroupRosterMembers db cxt user gInfo - sendRoster user gInfo [relayMember] rosterVer (buildGroupRoster rosterMems) + sendRoster user g [relayMember] rosterVer (buildGroupRoster rosterMems) -- Row-less send (no files/snd_files rows, so no send-side cleanup); redelivery is the agent's. -sendRoster :: User -> GroupInfo -> [GroupMember] -> VersionRoster -> [RosterMember] -> CM () +sendRoster :: User -> GroupInfoKeys -> [GroupMember] -> VersionRoster -> [RosterMember] -> CM () sendRoster user gInfo members rosterVer roster = do let blob = encodeRosterBlob roster fileInv = InlineFileInvitation {fileSize = fromIntegral (B.length blob), fileDigest = FD.FileDigest $ LC.sha512Hash $ LB.fromStrict blob} @@ -2602,7 +2593,7 @@ sendRoster user gInfo members rosterVer roster = do sendInlineBlobChunks user gInfo members sharedMsgId blob -- Send a binary blob as BFileChunks under a shared_msg_id to the given members (chunked by fileChunkSize). -sendInlineBlobChunks :: User -> GroupInfo -> [GroupMember] -> SharedMsgId -> ByteString -> CM () +sendInlineBlobChunks :: User -> GroupInfoKeys -> [GroupMember] -> SharedMsgId -> ByteString -> CM () sendInlineBlobChunks user gInfo members sharedMsgId blob = do chSize <- fromIntegral <$> asks (fileChunkSize . config) go chSize 1 blob @@ -2615,8 +2606,8 @@ sendInlineBlobChunks user gInfo members sharedMsgId blob = do -- Relay advertises its current web preview capability to channel owners. -- Idempotent: sends only when the configured web domain differs from what was last sent, and only to -- owners whose recorded chat version supports relayWebCapVersion (older apps can't parse XGrpRelayCap). -sendRelayCapIfNeeded :: User -> GroupInfo -> CM () -sendRelayCapIfNeeded user gInfo = do +sendRelayCapIfNeeded :: User -> GroupInfoKeys -> CM () +sendRelayCapIfNeeded user g@(GIK gInfo _) = do ChatConfig {webPreviewConfig} <- asks config let currentWebDomain = (\WebPreviewConfig {webDomain} -> webDomain) <$> webPreviewConfig sentWebDomain <- withStore' (`getRelaySentWebDomain` gInfo) @@ -2625,24 +2616,22 @@ sendRelayCapIfNeeded user gInfo = do owners <- withStore' $ \db -> getGroupOwners db cxt user gInfo let capableOwners = filter (\m -> memberCurrent m && m `supportsVersion` relayWebCapVersion) owners unless (null capableOwners) $ do - void $ sendGroupMessage' user gInfo capableOwners (XGrpRelayCap RelayCapabilities {webDomain = currentWebDomain}) + void $ sendGroupMessage' user g capableOwners (XGrpRelayCap RelayCapabilities {webDomain = currentWebDomain}) withStore' $ \db -> updateRelaySentWebDomain db gInfo currentWebDomain -sendGroupMessages :: MsgEncodingI e => User -> GroupInfo -> Maybe GroupChatScope -> ShowGroupAsSender -> [GroupMember] -> Bool -> NonEmpty (ChatMsgEvent e) -> CM (NonEmpty (Either ChatError SndMessage), GroupSndResult) -sendGroupMessages user gInfo' scope asGroup members sign events = do - gInfo <- createUserMemberKey gInfo' +sendGroupMessages :: MsgEncodingI e => User -> GroupInfoKeys -> Maybe GroupChatScope -> ShowGroupAsSender -> [GroupMember] -> Bool -> NonEmpty (ChatMsgEvent e) -> CM (NonEmpty (Either ChatError SndMessage), GroupSndResult) +sendGroupMessages user gInfo scope asGroup members sign events = do sendGroupProfileUpdate user gInfo scope asGroup members sendGroupMessages_ user gInfo members sign events -- per-item signer variant of sendGroupMessages (used for per-item delete signing); preserves the profile-update prelude -sendGroupSignedMessages :: MsgEncodingI e => User -> GroupInfo -> Maybe GroupChatScope -> ShowGroupAsSender -> [GroupMember] -> NonEmpty (Maybe MsgSigning, ChatMsgEvent e) -> CM (NonEmpty (Either ChatError SndMessage), GroupSndResult) -sendGroupSignedMessages user gInfo' scope asGroup members signedEvents = do - gInfo <- createUserMemberKey gInfo' +sendGroupSignedMessages :: MsgEncodingI e => User -> GroupInfoKeys -> Maybe GroupChatScope -> ShowGroupAsSender -> [GroupMember] -> NonEmpty (Maybe MsgSigning, ChatMsgEvent e) -> CM (NonEmpty (Either ChatError SndMessage), GroupSndResult) +sendGroupSignedMessages user gInfo@(GIK g _) scope asGroup members signedEvents = do sendGroupProfileUpdate user gInfo scope asGroup members - sendGroupSignedMessages_ gInfo members signedEvents + sendGroupSignedMessages_ g members signedEvents -sendGroupProfileUpdate :: User -> GroupInfo -> Maybe GroupChatScope -> ShowGroupAsSender -> [GroupMember] -> CM () -sendGroupProfileUpdate user gInfo scope asGroup members = +sendGroupProfileUpdate :: User -> GroupInfoKeys -> Maybe GroupChatScope -> ShowGroupAsSender -> [GroupMember] -> CM () +sendGroupProfileUpdate user g@(GIK gInfo gks) scope asGroup members = -- TODO [knocking] send current profile to pending member after approval? when shouldSendProfileUpdate $ sendProfileUpdate `catchAllErrors` eToView @@ -2661,7 +2650,7 @@ sendGroupProfileUpdate user gInfo scope asGroup members = sendProfileUpdate = do -- shouldSendProfileUpdate excludes incognito membership, so the badge is presented profileUpdate <- presentUserBadge user Nothing $ redactedMemberProfile gInfo (membership gInfo) $ fromLocalProfile p - void $ sendGroupMessage' user gInfo members $ XInfo profileUpdate (groupMemberKey gInfo) + void $ sendGroupMessage' user g members $ XInfo profileUpdate (Just $ groupMemberKey gks) currentTs <- liftIO getCurrentTime withStore' $ \db -> updateUserMemberProfileSentAt db user gInfo currentTs @@ -2671,9 +2660,9 @@ data GroupSndResult = GroupSndResult forwarded :: [GroupMember] } -sendGroupMessages_ :: MsgEncodingI e => User -> GroupInfo -> [GroupMember] -> Bool -> NonEmpty (ChatMsgEvent e) -> CM (NonEmpty (Either ChatError SndMessage), GroupSndResult) -sendGroupMessages_ _user gInfo recipientMembers sign events = - sendGroupSignedMessages_ gInfo recipientMembers $ L.map (\evt -> (groupMsgSigning sign gInfo evt, evt)) events +sendGroupMessages_ :: MsgEncodingI e => User -> GroupInfoKeys -> [GroupMember] -> Bool -> NonEmpty (ChatMsgEvent e) -> CM (NonEmpty (Either ChatError SndMessage), GroupSndResult) +sendGroupMessages_ _user gInfo@(GIK g _) recipientMembers sign events = + sendGroupSignedMessages_ g recipientMembers $ L.map (\evt -> (groupMsgSigning sign gInfo evt, evt)) events sendGroupSignedMessages_ :: MsgEncodingI e => GroupInfo -> [GroupMember] -> NonEmpty (Maybe MsgSigning, ChatMsgEvent e) -> CM (NonEmpty (Either ChatError SndMessage), GroupSndResult) sendGroupSignedMessages_ gInfo@GroupInfo {groupId} recipientMembers signedEvents = do @@ -3046,10 +3035,10 @@ joinAgentConnectionAsync :: CommandId -> Bool -> ConnId -> Bool -> ConnectionReq joinAgentConnectionAsync cmdId updateConn connId enableNtfs cReqUri cInfo subMode = withAgent $ \a -> joinConnectionAsync a (aCorrId cmdId) updateConn connId enableNtfs cReqUri cInfo PQSupportOff subMode -allowAgentConnectionAsync :: MsgEncodingI e => User -> Connection -> ConfirmationId -> Maybe GroupInfo -> ChatMsgEvent e -> CM () +allowAgentConnectionAsync :: MsgEncodingI e => User -> Connection -> ConfirmationId -> Maybe GroupInfoKeys -> ChatMsgEvent e -> CM () allowAgentConnectionAsync user conn@Connection {pqSupport} confId gInfo_ msg = do let signing_ = case gInfo_ of - Just gInfo | useRelays' gInfo || maxVersion (peerChatVRange conn) >= relayWebCapVersion -> groupMsgSigning False gInfo msg + Just gInfo@(GIK g _) | useRelays' g || maxVersion (peerChatVRange conn) >= relayWebCapVersion -> groupMsgSigning False gInfo msg _ -> Nothing dm <- case signing_ of Just signing -> encodeSignedConnInfo signing msg @@ -3292,7 +3281,7 @@ createChatItems :: createChatItems user itemTs_ dirsCIContents = do createdAt <- liftIO getCurrentTime let itemTs = fromMaybe createdAt itemTs_ - cxt <- chatStoreCxt' + cxt <- asks storeCxt void . withStoreBatch' $ \db -> map (updateChat db cxt createdAt) dirsCIContents withStoreBatch' $ \db -> concatMap (createACIs db itemTs createdAt) dirsCIContents where @@ -3390,13 +3379,9 @@ waitChatStartedAndActivated = do unless (isJust started && activated) retry chatStoreCxt :: CM StoreCxt -chatStoreCxt = lift chatStoreCxt' +chatStoreCxt = asks storeCxt {-# INLINE chatStoreCxt #-} -chatStoreCxt' :: CM' StoreCxt -chatStoreCxt' = mkStoreCxt <$> asks config -{-# INLINE chatStoreCxt' #-} - chatVersionRange :: CM VersionRangeChat chatVersionRange = lift chatVersionRange' {-# INLINE chatVersionRange #-} diff --git a/src/Simplex/Chat/Library/Subscriber.hs b/src/Simplex/Chat/Library/Subscriber.hs index 1514418847..2288763791 100644 --- a/src/Simplex/Chat/Library/Subscriber.hs +++ b/src/Simplex/Chat/Library/Subscriber.hs @@ -115,9 +115,9 @@ smallGroupsRcptsMemLimit = 20 -- Verifies member signatures over CBGroup <> (publicGroupId, memberId) or (memberId, pubKey) <> signedBody under the given key. -- signatures is NonEmpty so the verification can't be vacuously true. -verifyGroupSig :: C.PublicKeyEd25519 -> Maybe GroupKeys -> MemberId -> NonEmpty MsgSignature -> ByteString -> Bool -verifyGroupSig key gks memberId signatures signedBody = - let prefix = encodeChatBinding CBGroup $ groupBindingData gks memberId key +verifyGroupSig :: C.PublicKeyEd25519 -> GroupInfo -> MemberId -> NonEmpty MsgSignature -> ByteString -> Bool +verifyGroupSig key gInfo memberId signatures signedBody = + let prefix = encodeChatBinding CBGroup $ groupBindingData gInfo memberId key in all (\case (MsgSignature KRMember sig) -> C.verify (C.APublicVerifyKey C.SEd25519 key) sig (prefix <> signedBody)) signatures processAgentMessage :: ACorrId -> ConnId -> AEvent 'AEConn -> CM () @@ -138,13 +138,18 @@ processAgentMessage corrId connId msg = do -- Missing connection/entity errors here will be sent to the view but not shown as CRITICAL alert, -- as in this case no need to ACK message - we can't process messages for this connection anyway. critical connId (withStore $ getUserEntity cxt) >>= \case - Just (user, entity) -> processAgentMessageConn cxt user entity corrId connId msg `catchAllErrors` eToView + Just (user, entity, gks_) -> processAgentMessageConn cxt user entity gks_ corrId connId msg `catchAllErrors` eToView _ -> throwChatError $ CENoConnectionUser (AgentConnId connId) where - getUserEntity :: StoreCxt -> DB.Connection -> ExceptT StoreError IO (Maybe (User, ConnectionEntity)) + getUserEntity :: StoreCxt -> DB.Connection -> ExceptT StoreError IO (Maybe (User, ConnectionEntity, Maybe GroupKeys)) getUserEntity cxt db = liftIO (getUserByAConnId db $ AgentConnId connId) - >>= mapM (\user -> (user,) <$> (getConnectionEntity db cxt user (AgentConnId connId) >>= liftIO . updateConnStatus db)) + >>= mapM (\user -> do + (entity, groupKeysData_) <- getConnectionEntityKeys db cxt user (AgentConnId connId) + gks_ <- case entity of + RcvGroupMsgConnection _ gInfo _ -> mapM (mkGroupKeys db cxt gInfo) groupKeysData_ + _ -> pure Nothing + (user,,gks_) <$> liftIO (updateConnStatus db entity)) updateConnStatus :: DB.Connection -> ConnectionEntity -> IO ConnectionEntity updateConnStatus db acEntity = case agentMsgConnStatus (entityConnection acEntity) msg of @@ -431,8 +436,8 @@ processAgentMsgRcvFile _corrId aFileId msg = do type ShouldDeleteGroupConns = Bool -processAgentMessageConn :: StoreCxt -> User -> ConnectionEntity -> ACorrId -> ConnId -> AEvent 'AEConn -> CM () -processAgentMessageConn cxt user@User {userId} entity corrId agentConnId agentMessage = +processAgentMessageConn :: StoreCxt -> User -> ConnectionEntity -> Maybe GroupKeys -> ACorrId -> ConnId -> AEvent 'AEConn -> CM () +processAgentMessageConn cxt user@User {userId} entity gks_ corrId agentConnId agentMessage = case agentMessage of END -> case entity of RcvDirectMsgConnection _ (Just ct) -> toView $ CEvtContactAnotherClient user ct @@ -441,8 +446,9 @@ processAgentMessageConn cxt user@User {userId} entity corrId agentConnId agentMe _ -> case entity of RcvDirectMsgConnection conn contact_ -> processDirectMessage agentMessage entity conn contact_ - RcvGroupMsgConnection conn gInfo m -> - processGroupMessage agentMessage entity conn gInfo m + RcvGroupMsgConnection conn gInfo m -> case gks_ of + Just gks -> processGroupMessage agentMessage entity conn (GIK gInfo gks) m + Nothing -> throwChatError $ CEInternalError "group connection entity without group keys" UserContactConnection conn uc -> processContactConnMessage agentMessage entity conn uc where @@ -497,10 +503,10 @@ processAgentMessageConn cxt user@User {userId} entity corrId agentConnId agentMe incognitoProfile <- forM customUserProfileId $ \profileId -> withStore (\db -> getProfileById db userId profileId) profileToSend <- presentUserBadge user incognitoProfile $ case gInfo_ of - Just gInfo -> userProfileInGroup user gInfo (fromLocalProfile <$> incognitoProfile) + Just (GIK gInfo _) -> userProfileInGroup user gInfo (fromLocalProfile <$> incognitoProfile) Nothing -> userProfileDirect user (fromLocalProfile <$> incognitoProfile) Nothing True -- [async agent commands] no continuation needed, but command should be asynchronous for stability - allowAgentConnectionAsync user conn'' confId gInfo_ $ XInfo profileToSend (groupMemberKey =<< gInfo_) + allowAgentConnectionAsync user conn'' confId gInfo_ $ XInfo profileToSend ((\(GIK _ gks) -> groupMemberKey gks) <$> gInfo_) INFO pqSupport connInfo -> do processINFOpqSupport conn pqSupport void $ saveConnInfo conn connInfo @@ -620,6 +626,7 @@ processAgentMessageConn cxt user@User {userId} entity corrId agentConnId agentMe void $ withStore' $ \db -> resetMemberContactFields db ct' XGrpLinkInv glInv -> do -- XGrpLinkInv here means we are connecting via business contact card, so we replace contact with group + when (isPublicGroupInv glInv) $ throwChatError $ CEInvalidChatMessage conn'' Nothing (safeDecodeUtf8 connInfo) "x.grp.link.inv: publicGroup not allowed in p2p groups" memberKeys <- atomically . C.generateKeyPair =<< asks random (gInfo, host) <- withStore $ \db -> do liftIO $ deleteContactCardKeepConn db connId ct @@ -628,7 +635,8 @@ processAgentMessageConn cxt user@User {userId} entity corrId agentConnId agentMe -- [incognito] send saved profile incognitoProfile <- forM customUserProfileId $ \pId -> withStore (\db -> getProfileById db userId pId) profileToSend <- presentUserBadge user incognitoProfile $ userProfileInGroup user gInfo (fromLocalProfile <$> incognitoProfile) - allowAgentConnectionAsync user conn'' confId (Just gInfo) $ XInfo profileToSend (groupMemberKey gInfo) + let gks = GKGroup {memberPrivKey = snd memberKeys} + allowAgentConnectionAsync user conn'' confId (Just $ GIK gInfo gks) $ XInfo profileToSend (Just $ groupMemberKey gks) toView $ CEvtBusinessLinkConnecting user gInfo host ct _ -> messageError "CONF for existing contact must have x.grp.mem.info or x.info" INFO pqSupport connInfo -> do @@ -754,8 +762,8 @@ processAgentMessageConn cxt user@User {userId} entity corrId agentConnId agentMe ci <- saveSndChatItem user (CDDirectSnd ct) msg (CISndMsgContent mc) toView $ CEvtNewChatItems user [AChatItem SCTDirect SMDSnd (DirectChat ct) ci] - processGroupMessage :: AEvent e -> ConnectionEntity -> Connection -> GroupInfo -> GroupMember -> CM () - processGroupMessage agentMsg connEntity conn@Connection {connId, customUserProfileId, connectionCode} gInfo@GroupInfo {groupId, groupProfile, membership, chatSettings} m = case agentMsg of + processGroupMessage :: AEvent e -> ConnectionEntity -> Connection -> GroupInfoKeys -> GroupMember -> CM () + processGroupMessage agentMsg connEntity conn@Connection {connId, customUserProfileId, connectionCode} g@(GIK gInfo@GroupInfo {groupId, groupProfile, membership, chatSettings} gks) m = case agentMsg of INV (ACR _ cReq) -> withCompletedCommand conn agentMsg $ \CommandData {cmdFunction} -> case cReq of @@ -780,7 +788,7 @@ processAgentMessageConn cxt user@User {userId} entity corrId agentConnId agentMe withStore $ \db -> liftIO $ updateGroupMemberStatus db userId m GSMemAccepted forM_ mKey $ \(MemberKey k) -> withStore' $ \db -> setMemberPubKey db (groupMemberId' m) k -- [async agent commands] no continuation needed, but command should be asynchronous for stability - allowAgentConnectionAsync user conn' confId (Just gInfo) XOk + allowAgentConnectionAsync user conn' confId (Just g) XOk | otherwise -> messageError "x.grp.acpt: memberId is different from expected" XGrpRelayAcpt relayLink relayCap | memberRole' membership == GROwner && isRelay m -> do @@ -800,7 +808,7 @@ processAgentMessageConn cxt user@User {userId} entity corrId agentConnId agentMe liftIO $ updateGroupMemberStatus db userId m GSMemLeft pure (relay', m {memberStatus = GSMemLeft}) -- complete the contact handshake so the relay receives INFO and cleans up its transient bookkeeping - allowAgentConnectionAsync user conn' confId (Just gInfo) XOk + allowAgentConnectionAsync user conn' confId (Just g) XOk toView $ CEvtGroupRelayUpdated user gInfo m' relay' toViewTE $ TERelayRejected user gInfo reason | otherwise -> messageError "x.grp.relay.reject: only owner should receive relay rejection" @@ -812,12 +820,11 @@ processAgentMessageConn cxt user@User {userId} entity corrId agentConnId agentMe pgId = fmap (\PublicGroupProfile {publicGroupId} -> publicGroupId), useRelays' gInfo == isJust rcvPG && pgId rcvPG == pgId curPG -> do -- XGrpLinkInv here means we are connecting via prepared group, and we have to update user and host member records - (gInfo'', m') <- withStore $ \db -> updatePreparedUserAndHostMembersInvited db cxt user gInfo m glInv - gInfo' <- createUserMemberKey gInfo'' + (gInfo', m') <- withStore $ \db -> updatePreparedUserAndHostMembersInvited db cxt user gInfo m glInv -- [incognito] send saved profile incognitoProfile <- forM customUserProfileId $ \pId -> withStore (\db -> getProfileById db userId pId) profileToSend <- presentUserBadge user incognitoProfile $ userProfileInGroup user gInfo' (fromLocalProfile <$> incognitoProfile) - allowAgentConnectionAsync user conn' confId (Just gInfo') $ XInfo profileToSend (groupMemberKey gInfo') + allowAgentConnectionAsync user conn' confId (Just $ GIK gInfo' gks) $ XInfo profileToSend (Just $ groupMemberKey gks) toView $ CEvtGroupLinkConnecting user gInfo' m' | otherwise -> messageError "x.grp.link.inv: publicGroupId mismatch" XGrpLinkReject glRjct@GroupLinkRejection {rejectionReason} -> do @@ -833,7 +840,7 @@ processAgentMessageConn cxt user@User {userId} entity corrId agentConnId agentMe membershipProfile <- presentUserBadge user (incognitoMembershipProfile gInfo) $ redactedMemberProfile gInfo membership $ fromLocalProfile $ memberProfile membership -- TODO update member profile -- [async agent commands] no continuation needed, but command should be asynchronous for stability - allowAgentConnectionAsync user conn' confId (Just gInfo) $ XGrpMemInfo membershipMemId membershipProfile + allowAgentConnectionAsync user conn' confId (Just g) $ XGrpMemInfo membershipMemId membershipProfile | otherwise -> messageError "x.grp.mem.info: memberId is different from expected" _ -> messageError "CONF from member must have x.grp.mem.info" INFO _pqSupport connInfo -> do @@ -914,12 +921,12 @@ processAgentMessageConn cxt user@User {userId} entity corrId agentConnId agentMe Nothing -> do withStore' $ \db -> setGroupRosterVersion db gInfo (VersionRoster 0) pure gInfo {rosterVersion = Just (VersionRoster 0)} - sendGroupRosterToRelay user gInfo' m + sendGroupRosterToRelay user (GIK gInfo' gks) m else do -- a relay below groupRosterVersion can't ack a roster; publish it on connect as before -- the handshake (getPublishableGroupRelays and the LINK handler include/activate it by version) gLink <- withStore $ \db -> getGroupLink db user gInfo - setGroupLinkDataAsync user gInfo gLink + setGroupLinkDataAsync user g gLink | otherwise -> do (gInfo', mStatus) <- if not (memberPending m) @@ -940,26 +947,25 @@ processAgentMessageConn cxt user@User {userId} entity corrId agentConnId agentMe when (isJust viaUserContactLink && isNothing (memberContactId m')) $ sendXGrpLinkMem gInfo'' m' if useRelays' gInfo'' then do - introduceInChannel cxt user gInfo'' m' + introduceInChannel cxt user (GIK gInfo'' gks) m' case mStatus of GSMemPendingApproval -> pure () GSMemPendingReview -> pure () _ -> when (groupFeatureAllowed SGFHistory gInfo'') $ sendHistory user gInfo'' m' else case mStatus of GSMemPendingApproval -> pure () - GSMemPendingReview -> introduceToModerators cxt user gInfo'' m' + GSMemPendingReview -> introduceToModerators cxt user (GIK gInfo'' gks) m' _ -> do - introduceToAll cxt user gInfo'' m' + introduceToAll cxt user (GIK gInfo'' gks) m' let memberIsCustomer = case businessChat gInfo'' of Just BusinessChatInfo {chatType = BCCustomer, customerId} -> memberId' m' == customerId _ -> False when (groupFeatureAllowed SGFHistory gInfo'' && not memberIsCustomer) $ sendHistory user gInfo'' m' where - sendXGrpLinkMem gInfo''' m' = do - gInfo'' <- createUserMemberKey gInfo''' + sendXGrpLinkMem gInfo'' m' = do let incognitoProfile = ExistingIncognito <$> incognitoMembershipProfile gInfo'' profileToSend <- presentUserBadge user incognitoProfile $ userProfileInGroup user gInfo'' (fromIncognitoProfile <$> incognitoProfile) - sendGroupMemberMessages user gInfo'' conn [XGrpLinkMem profileToSend (groupMemberKey gInfo'')] + sendGroupMemberMessages user (GIK gInfo'' gks) conn [XGrpLinkMem profileToSend (Just $ groupMemberKey gks)] _ -> do unless (memberPending m) $ withStore' $ \db -> updateGroupMemberStatus db userId m GSMemConnected notifyMemberConnected gInfo m Nothing @@ -1023,7 +1029,7 @@ processAgentMessageConn cxt user@User {userId} entity corrId agentConnId agentMe case fwd_ of Just fwd | SJson <- enc -> do logInfo $ "group fwd=" <> tshow tag <> " " <> eInfo - xGrpMsgForward gInfo' scopeInfo m' fwd parsedMsg brokerTs + xGrpMsgForward (GIK gInfo' gks) scopeInfo m' fwd parsedMsg brokerTs `catchAllErrors` \e -> eToView e pure newDeliveryTasks -- direct JSON and binary messages; binary events don't produce delivery tasks @@ -1074,36 +1080,36 @@ processAgentMessageConn cxt user@User {userId} entity corrId agentConnId agentMe XFileAcptInv sharedMsgId fileConnReq_ fName -> Nothing <$ xFileAcptInvGroup gInfo' m'' sharedMsgId fileConnReq_ fName XInfo p mKey -> fmap ctx <$> xInfoMember gInfo' m'' p mKey msg brokerTs XGrpLinkMem p mKey -> Nothing <$ xGrpLinkMem gInfo' m'' conn' p mKey msg - XGrpLinkAcpt acceptance role memberId -> Nothing <$ xGrpLinkAcpt gInfo' m'' acceptance role memberId msg brokerTs + XGrpLinkAcpt acceptance role memberId -> Nothing <$ xGrpLinkAcpt (GIK gInfo' gks) m'' acceptance role memberId msg brokerTs XGrpRelayNew rl -> fmap ctx <$> xGrpRelayNew gInfo' m'' rl XGrpRelayCap relayCap | memberRole' membership == GROwner && isRelay m'' -> Nothing <$ withStore' (\db -> updateRelayCapabilities db m'' relayCap) | otherwise -> Nothing <$ messageWarning "x.grp.relay.cap: only owner should receive relay capabilities" - XGrpMemNew memInfo msgScope -> fmap ctx <$> xGrpMemNew gInfo' m'' memInfo msgScope msg brokerTs + XGrpMemNew memInfo msgScope -> fmap ctx <$> xGrpMemNew (GIK gInfo' gks) m'' memInfo msgScope msg brokerTs XGrpMemIntro memInfo memRestrictions_ -> Nothing <$ xGrpMemIntro gInfo' m'' memInfo memRestrictions_ XGrpMemInv memId introInv -> Nothing <$ xGrpMemInv gInfo' m'' memId introInv XGrpMemFwd memInfo introInv -> Nothing <$ xGrpMemFwd gInfo' m'' memInfo introInv - XGrpMemRole memId memRole memberKey rosterVer -> fmap ctx <$> xGrpMemRole gInfo' Nothing m'' memId memRole memberKey rosterVer msg brokerTs + XGrpMemRole memId memRole memberKey rosterVer -> fmap ctx <$> xGrpMemRole (GIK gInfo' gks) Nothing m'' memId memRole memberKey rosterVer msg brokerTs XGrpMemRestrict memId memRestrictions -> fmap ctx <$> xGrpMemRestrict gInfo' m'' memId memRestrictions msg brokerTs XGrpMemCon memId -> Nothing <$ xGrpMemCon gInfo' m'' memId XGrpMemDel memId withMessages rosterVer -> case encoding @e of - SJson -> fmap ctx <$> xGrpMemDel gInfo' Nothing m'' memId withMessages rosterVer verifiedMsg msg brokerTs False + SJson -> fmap ctx <$> xGrpMemDel (GIK gInfo' gks) Nothing m'' memId withMessages rosterVer verifiedMsg msg brokerTs False SBinary -> pure Nothing - XGrpLeave -> fmap ctx <$> xGrpLeave gInfo' m'' msg brokerTs + XGrpLeave -> fmap ctx <$> xGrpLeave (GIK gInfo' gks) m'' msg brokerTs XGrpDel -> Just (DeliveryTaskContext (DJSGroup {jobSpec = DJRelayRemoved}) False) <$ xGrpDel gInfo' m'' msg brokerTs - XGrpInfo p' -> fmap ctx <$> xGrpInfo gInfo' m'' p' msg brokerTs + XGrpInfo p' -> fmap ctx <$> xGrpInfo (GIK gInfo' gks) m'' p' msg brokerTs XGrpPrefs ps' -> fmap ctx <$> xGrpPrefs gInfo' m'' ps' msg XGrpRoster gr -> fmap ctx <$> xGrpRoster gInfo' m'' m'' gr verifiedMsg sharedMsgId_ brokerTs - XGrpRosterAck ackVer ackErr -> Nothing <$ xGrpRosterAck gInfo' m'' ackVer ackErr - XGrpRosterRequest reqVer -> Nothing <$ xGrpRosterRequest gInfo' m'' reqVer + XGrpRosterAck ackVer ackErr -> Nothing <$ xGrpRosterAck (GIK gInfo' gks) m'' ackVer ackErr + XGrpRosterRequest reqVer -> Nothing <$ xGrpRosterRequest (GIK gInfo' gks) m'' reqVer -- TODO [knocking] why don't we forward these messages? XGrpDirectInv connReq mContent_ msgScope -> memberCanSend (Just m'') msgScope $ Nothing <$ xGrpDirectInv gInfo' m'' conn' connReq mContent_ msg brokerTs - XGrpMsgForward fwd msg' -> Nothing <$ xGrpMsgForward gInfo' Nothing m'' fwd (ParsedMsg Nothing Nothing msg') brokerTs + XGrpMsgForward fwd msg' -> Nothing <$ xGrpMsgForward (GIK gInfo' gks) Nothing m'' fwd (ParsedMsg Nothing Nothing msg') brokerTs XInfoProbe probe -> Nothing <$ xInfoProbe (COMGroupMember m'') probe XInfoProbeCheck probeHash -> Nothing <$ xInfoProbeCheck (COMGroupMember m'') probeHash XInfoProbeOk probe -> Nothing <$ xInfoProbeOk (COMGroupMember m'') probe - BFileChunk sharedMsgId chunk -> Nothing <$ bFileChunkGroup gInfo' m'' sharedMsgId chunk msgMeta + BFileChunk sharedMsgId chunk -> Nothing <$ bFileChunkGroup (GIK gInfo' gks) m'' sharedMsgId chunk msgMeta _ -> Nothing <$ messageError ("unsupported message: " <> tshow event) forM deliveryTaskContext_ $ \taskContext -> do let contentChanged :: CM () @@ -1170,7 +1176,7 @@ processAgentMessageConn cxt user@User {userId} entity corrId agentConnId agentMe mapM_ toView fileEvent_ unless (null acis) $ toView $ CEvtChatItemsStatusesUpdated user acis when continued $ do - when (isUserGrpFwdRelay gInfo) $ serveRoster user gInfo m -- roster ahead of the resumed backlog + when (isUserGrpFwdRelay gInfo) $ serveRoster user g m -- roster ahead of the resumed backlog sendPendingGroupMessages user gInfo m conn SWITCH qd phase cStats -> do toView $ CEvtGroupMemberSwitch user gInfo m (SwitchProgress qd phase cStats) @@ -1241,7 +1247,7 @@ processAgentMessageConn cxt user@User {userId} entity corrId agentConnId agentMe withStore' $ \db -> updateConnLinkData db user conn cReq cReqHash groupLinkId chatV pqSup let incognitoProfile = fromLocalProfile <$> incognitoMembershipProfile gInfo profileToSend <- presentUserBadge user incognitoProfile $ userProfileInGroup user gInfo incognitoProfile - dm <- encodeXMemberConnInfo gInfo relayMemberId profileToSend + dm <- encodeXMemberConnInfo g relayMemberId profileToSend subMode <- chatReadVar subscriptionMode (cmdId, connId') <- prepareAgentJoin user (Just conn) True cReq joinAgentConnectionAsync cmdId True connId' True cReq dm subMode @@ -1257,7 +1263,7 @@ processAgentMessageConn cxt user@User {userId} entity corrId agentConnId agentMe liftIO $ updateGroupMemberStatus db userId m GSMemAccepted (m', relay) <- setRelayLinkAccepted db cxt user m (MemberKey relayKey) relayProfile pure (confId, m', relay) - allowAgentConnectionAsync user conn confId (Just gInfo) XOk + allowAgentConnectionAsync user conn confId (Just g) XOk toView $ CEvtGroupRelayUpdated user gInfo m' relay else -- TODO [relays] owner: TBC failed RelayStatus? @@ -1266,7 +1272,7 @@ processAgentMessageConn cxt user@User {userId} entity corrId agentConnId agentMe QCONT -> do continued <- continueSending connEntity conn when continued $ do - when (isUserGrpFwdRelay gInfo) $ serveRoster user gInfo m -- roster ahead of the resumed backlog + when (isUserGrpFwdRelay gInfo) $ serveRoster user g m -- roster ahead of the resumed backlog sendPendingGroupMessages user gInfo m conn MWARN msgId err -> do withStore' $ \db -> updateGroupItemsErrorStatus db msgId (groupMemberId' m) (GSSWarning $ agentSndError err) @@ -1311,9 +1317,9 @@ processAgentMessageConn cxt user@User {userId} entity corrId agentConnId agentMe _ -> pure Nothing sendGroupAutoReply mc = \case Just UserContactRequest {welcomeSharedMsgId = Just smId} -> - void $ sendGroupMessage' user gInfo [m] $ XMsgUpdate smId mc M.empty Nothing Nothing Nothing Nothing + void $ sendGroupMessage' user g [m] $ XMsgUpdate smId mc M.empty Nothing Nothing Nothing Nothing _ -> do - msg <- sendGroupMessage' user gInfo [m] $ XMsgNew $ mcSimple mc + msg <- sendGroupMessage' user g [m] $ XMsgNew $ mcSimple mc ci <- saveSndChatItem user (CDGroupSnd gInfo Nothing) msg (CISndMsgContent mc) withStore' $ \db -> createGroupSndStatus db (chatItemId' ci) (groupMemberId' m) GSSNew toView $ CEvtNewChatItems user [AChatItem SCTGroup SMDSnd (GroupChat gInfo Nothing) ci] @@ -1340,7 +1346,7 @@ processAgentMessageConn cxt user@User {userId} entity corrId agentConnId agentMe r n'' = Just (ci, CIRcvDecryptionError mde n'') mdeUpdatedCI _ _ = Nothing - receiveFileChunk :: Maybe GroupInfo -> RcvFileTransfer -> Maybe Connection -> MsgMeta -> FileChunk -> CM () + receiveFileChunk :: Maybe GroupInfoKeys -> RcvFileTransfer -> Maybe Connection -> MsgMeta -> FileChunk -> CM () receiveFileChunk gInfo_ ft@RcvFileTransfer {fileId, fileType, chunkSize} conn_ MsgMeta {recipient = (msgId, _), integrity} = \case FileChunkCancel -> case fileType of -- cancel only this source's transfer; other relays' in-flight transfers are independent @@ -1408,13 +1414,13 @@ processAgentMessageConn cxt user@User {userId} entity corrId agentConnId agentMe CFSetShortLink -> case (ucGroupId_, auData) of (Just groupId, UserContactLinkData UserContactData {relays = relayLinks}) -> do - (gInfo, gLink, relays, relaysChanged, newlyActiveLinks) <- withStore $ \db -> do - gInfo <- getGroupInfo db cxt user groupId + (g@(GIK gInfo _), gLink, relays, relaysChanged, newlyActiveLinks) <- withStore $ \db -> do + g@(GIK gInfo _) <- getGroupInfoKeys db cxt user groupId gLink <- getGroupLink db user gInfo relays <- liftIO $ getGroupRelays db gInfo (relays', changed, newlyActiveLinks) <- liftIO $ foldrM (updateRelay db) ([], False, []) relays liftIO $ setGroupInProgressDone db gInfo - pure (gInfo, gLink, relays', changed, newlyActiveLinks) + pure (g, gLink, relays', changed, newlyActiveLinks) toView $ CEvtGroupLinkDataUpdated user gInfo gLink relays relaysChanged let GroupSummary {publicMemberCount} = groupSummary gInfo -- Owner is counted in publicMemberCount; > 1 means at least one subscriber. @@ -1430,7 +1436,7 @@ processAgentMessageConn cxt user@User {userId} entity corrId agentConnId agentMe allRelayMembers events = XGrpRelayNew <$> newlyActive unless (null recipients) $ - void $ sendGroupMessages user gInfo Nothing False recipients False events + void $ sendGroupMessages user g Nothing False recipients False events where updateRelay :: DB.Connection -> GroupRelay -> ([GroupRelay], Bool, [ShortLinkContact]) -> IO ([GroupRelay], Bool, [ShortLinkContact]) updateRelay db relay@GroupRelay {relayLink, relayStatus} (acc, changed, newlyActiveLinks) = @@ -1479,7 +1485,7 @@ processAgentMessageConn cxt user@User {userId} entity corrId agentConnId agentMe REContact ct -> -- TODO [short links] update request msg toView $ CEvtContactRequestAlreadyAccepted user ct - REBusinessChat gInfo _clientMember -> + REBusinessChat (GIK gInfo _) _clientMember -> -- TODO [short links] update request msg toView $ CEvtBusinessRequestAlreadyAccepted user gInfo RSCurrentRequest prevUcr_ ucr@UserContactRequest {welcomeSharedMsgId} re_ -> case re_ of @@ -1513,8 +1519,8 @@ processAgentMessageConn cxt user@User {userId} entity corrId agentConnId agentMe else pure Nothing ct' <- acceptContactRequestAsync user uclId ct ucr incognitoProfile toView $ CEvtAcceptingContactRequest user ct' - Just (REBusinessChat gInfo clientMember) -> do - (_gInfo', _clientMember') <- acceptBusinessJoinRequestAsync user uclId gInfo clientMember ucr + Just (REBusinessChat g@(GIK gInfo _) clientMember) -> do + (_gInfo', _clientMember') <- acceptBusinessJoinRequestAsync user uclId g clientMember ucr let cd = CDGroupRcv gInfo Nothing clientMember void $ case prevUcr_ of Just UserContactRequest {requestSharedMsgId = prevSharedMsgId_} -> @@ -1606,7 +1612,7 @@ processAgentMessageConn cxt user@User {userId} entity corrId agentConnId agentMe -- ##### Group link join requests (don't create contact requests) ##### Just gli@GroupLinkInfo {groupId, memberRole = gLinkMemRole} -> do -- TODO [short links] deduplicate request by xContactId? - gInfo <- withStore $ \db -> getGroupInfo db cxt user groupId + g@(GIK gInfo _) <- withStore $ \db -> getGroupInfoKeys db cxt user groupId if | useRelays' gInfo -> messageWarning $ "processContactConnMessage (group " <> groupName' gInfo <> "): ignored direct join request from " <> displayName <> " (group uses relays)" @@ -1617,7 +1623,7 @@ processAgentMessageConn cxt user@User {userId} entity corrId agentConnId agentMe maybe (pure $ Right (GAAccepted, gLinkMemRole)) (\am -> liftIO $ am gInfo gli p) acceptMember_ >>= \case Right (acceptance, useRole) -> do let profileMode = ExistingIncognito <$> incognitoMembershipProfile gInfo - mem <- acceptGroupJoinRequestAsync user uclId gInfo invId chatVRange p xContactId_ Nothing welcomeMsgId_ acceptance useRole profileMode memberKey_ Nothing + mem <- acceptGroupJoinRequestAsync user uclId g invId chatVRange p xContactId_ Nothing welcomeMsgId_ acceptance useRole profileMode memberKey_ Nothing (gInfo', mem', scopeInfo) <- mkGroupChatScope gInfo mem createInternalChatItem user (CDGroupRcv gInfo' scopeInfo mem') (CIRcvGroupEvent RGEInvitedViaGroupLink) Nothing toView $ CEvtAcceptingGroupJoinRequestMember user gInfo' mem' @@ -1661,7 +1667,7 @@ processAgentMessageConn cxt user@User {userId} entity corrId agentConnId agentMe (_ucl, gLinkInfo_) <- withStore $ \db -> getUserContactLinkById db userId uclId case gLinkInfo_ of Just GroupLinkInfo {groupId, memberRole = gLinkMemRole} -> do - gInfo <- withStore $ \db -> getGroupInfo db cxt user groupId + g@(GIK gInfo _) <- withStore $ \db -> getGroupInfoKeys db cxt user groupId existing_ <- withStore' $ \db -> eitherToMaybe <$> runExceptT (getGroupMemberByMemberId db cxt user gInfo joiningMemberId) case existing_ of Just rosterMem @@ -1669,21 +1675,21 @@ processAgentMessageConn cxt user@User {userId} entity corrId agentConnId agentMe -- possession of that exact key, otherwise this is an attempt to impersonate it | isRosterRole (memberRole' rosterMem) -> if verifyKey gInfo rosterMem - then acceptJoin gInfo (Just rosterMem) (memberRole' rosterMem) + then acceptJoin g (Just rosterMem) (memberRole' rosterMem) else messageError "memberJoinRequestViaRelay: rejected join claiming privileged memberId (key mismatch or invalid signature)" - _ -> acceptJoin gInfo Nothing gLinkMemRole + _ -> acceptJoin g Nothing gLinkMemRole Nothing -> messageError "memberJoinRequestViaRelay: no group link info for relay link" where -- replay defense: the viaRelay == own memberId check (viaRelay is in the signed body); without it a sibling relay could replay a privileged member's signed join - verifyKey gInfo rosterMem = case (signedMsg_, groupKeys gInfo) of - (Just SignedMsg {chatBinding = CBGroup, signatures, signedBody}, Just gks) -> + verifyKey gInfo rosterMem = case signedMsg_ of + Just SignedMsg {chatBinding = CBGroup, signatures, signedBody} -> memberPubKey rosterMem == Just joiningKey - && verifyGroupSig joiningKey (Just gks) joiningMemberId signatures signedBody + && verifyGroupSig joiningKey gInfo joiningMemberId signatures signedBody && viaRelay == Just (memberId' (membership gInfo)) _ -> False - acceptJoin gInfo existingMem_ acceptRole = do - mem <- acceptGroupJoinRequestAsync user uclId gInfo invId chatVRange p Nothing (Just joiningMemberId) Nothing GAAccepted acceptRole Nothing (Just joiningMemberKey) existingMem_ + acceptJoin g@(GIK gInfo _) existingMem_ acceptRole = do + mem <- acceptGroupJoinRequestAsync user uclId g invId chatVRange p Nothing (Just joiningMemberId) Nothing GAAccepted acceptRole Nothing (Just joiningMemberKey) existingMem_ (gInfo', mem', scopeInfo) <- mkGroupChatScope gInfo mem createInternalChatItem user (CDGroupRcv gInfo' scopeInfo mem') (CIRcvGroupEvent RGEInvitedViaGroupLink) Nothing toView $ CEvtAcceptingGroupJoinRequestMember user gInfo' mem' @@ -2592,8 +2598,8 @@ processAgentMessageConn cxt user@User {userId} entity corrId agentConnId agentMe -- A group BFileChunk is a normal inline file chunk or a roster blob chunk, both located by -- (group_id, shared_msg_id). A chunk matching no in-flight transfer (an orphaned re-served roster -- chunk, or a missing normal file) is ignored; the outer withAckMessage acks it. - bFileChunkGroup :: GroupInfo -> GroupMember -> SharedMsgId -> FileChunk -> MsgMeta -> CM () - bFileChunkGroup gInfo@GroupInfo {groupId} fromMember sharedMsgId chunk meta = do + bFileChunkGroup :: GroupInfoKeys -> GroupMember -> SharedMsgId -> FileChunk -> MsgMeta -> CM () + bFileChunkGroup gInfo@(GIK GroupInfo {groupId} _) fromMember sharedMsgId chunk meta = do fileId_ <- withStore' $ \db -> getGroupRcvFileId db userId groupId (groupMemberId' fromMember) sharedMsgId forM_ fileId_ $ \fileId -> do ft <- withStore $ \db -> getRcvFileTransfer db user fileId @@ -2613,7 +2619,7 @@ processAgentMessageConn cxt user@User {userId} entity corrId agentConnId agentMe -- A roster re-serve re-sends the blob from chunk 1; discard any partial first, else chunk 1 over a -- partial is out-of-order (RcvChunkError) and appending after the stale prefix corrupts the blob. - receiveRosterChunk :: GroupInfo -> RcvFileTransfer -> MsgMeta -> FileChunk -> CM () + receiveRosterChunk :: GroupInfoKeys -> RcvFileTransfer -> MsgMeta -> FileChunk -> CM () receiveRosterChunk gInfo ft meta chunk = do case chunk of FileChunk {chunkNo} | chunkNo == 1 -> do @@ -2678,14 +2684,14 @@ processAgentMessageConn cxt user@User {userId} entity corrId agentConnId agentMe when (fromMemId == memId) $ throwChatError CEGroupDuplicateMemberId -- [incognito] if direct connection with host is incognito, create membership using the same incognito profile memberKeys <- atomically . C.generateKeyPair =<< asks random - (gInfo@GroupInfo {groupId, localDisplayName, groupProfile, membership}, hostId) <- withStore $ \db -> createGroupInvitation db cxt user ct inv customUserProfileId memberKeys + (GIK gInfo@GroupInfo {groupId, localDisplayName, groupProfile, membership} gks, hostId) <- withStore $ \db -> createGroupInvitation db cxt user ct inv customUserProfileId memberKeys void $ createChatItem user (CDGroupSnd gInfo Nothing) False CIChatBanner Nothing Nothing (Just epochStart) let GroupMember {groupMemberId, memberId = membershipMemId} = membership -- hostContact is only reported for group links, where the client replaces -- the transient host connection view with the group and removes its chat joinGroupAsync hostContact_ sameLink = do subMode <- chatReadVar subscriptionMode - dm <- encodeConnInfo $ XGrpAcpt membershipMemId (groupMemberKey gInfo) + dm <- encodeConnInfo $ XGrpAcpt membershipMemId (Just $ groupMemberKey gks) connIds@(cmdId, acId) <- prepareAgentJoin user Nothing True connRequest withStore' $ \db -> do when sameLink $ setViaGroupLinkUri db groupId connId @@ -2815,11 +2821,11 @@ processAgentMessageConn cxt user@User {userId} entity corrId agentConnId agentMe | otherwise -> messageError "member key not signed by that key, ignored" where signed = case signedMsg_ of - Just SignedMsg {chatBinding = CBGroup, signatures, signedBody} -> verifyGroupSig k (groupKeys gInfo) memberId signatures signedBody + Just SignedMsg {chatBinding = CBGroup, signatures, signedBody} -> verifyGroupSig k gInfo memberId signatures signedBody _ -> False - xGrpLinkAcpt :: GroupInfo -> GroupMember -> GroupAcceptance -> GroupMemberRole -> MemberId -> RcvMessage -> UTCTime -> CM () - xGrpLinkAcpt gInfo@GroupInfo {membership} m acceptance role memberId msg brokerTs + xGrpLinkAcpt :: GroupInfoKeys -> GroupMember -> GroupAcceptance -> GroupMemberRole -> MemberId -> RcvMessage -> UTCTime -> CM () + xGrpLinkAcpt g@(GIK gInfo@GroupInfo {membership} _) m acceptance role memberId msg brokerTs | memberRole' m < GRModerator || memberRole' m < role = messageError "x.grp.link.acpt with insufficient member permissions" | sameMemberId memberId membership = processUserAccepted @@ -2868,7 +2874,7 @@ processAgentMessageConn cxt user@User {userId} entity corrId agentConnId agentMe GAPendingApproval -> messageWarning "x.grp.link.acpt: unexpected group acceptance - pending approval" introduceToRemainingMembers acceptedMember = do - introduceToRemaining cxt user gInfo acceptedMember + introduceToRemaining cxt user g acceptedMember when (groupFeatureAllowed SGFHistory gInfo) $ sendHistory user gInfo acceptedMember maybeCreateGroupDescrLocal :: GroupInfo -> GroupMember -> CM () @@ -3144,7 +3150,7 @@ processAgentMessageConn cxt user@User {userId} entity corrId agentConnId agentMe toView $ CEvtContactAndMemberAssociated user c2 g m1 c2' pure c2' - saveConnInfo :: Connection -> ConnInfo -> CM (Connection, Maybe GroupInfo) + saveConnInfo :: Connection -> ConnInfo -> CM (Connection, Maybe GroupInfoKeys) saveConnInfo activeConn connInfo = do ChatMessage {chatVRange, chatMsgEvent} <- parseChatMessage activeConn connInfo conn' <- updatePeerChatVRange activeConn chatVRange @@ -3154,21 +3160,25 @@ processAgentMessageConn cxt user@User {userId} entity corrId agentConnId agentMe toView $ CEvtContactConnecting user ct pure (conn', Nothing) XGrpLinkInv glInv -> do + when (isPublicGroupInv glInv) $ throwChatError $ CEInvalidChatMessage conn' Nothing (safeDecodeUtf8 connInfo) "x.grp.link.inv: publicGroup not allowed in p2p groups" memberKeys <- atomically . C.generateKeyPair =<< asks random (gInfo, host) <- withStore $ \db -> createGroupInvitedViaLink db cxt user conn' memberKeys glInv toView $ CEvtGroupLinkConnecting user gInfo host - pure (conn', Just gInfo) + pure (conn', Just $ GIK gInfo GKGroup {memberPrivKey = snd memberKeys}) XGrpLinkReject glRjct@GroupLinkRejection {rejectionReason} -> do memberKeys <- atomically . C.generateKeyPair =<< asks random (gInfo, host) <- withStore $ \db -> createGroupRejectedViaLink db cxt user conn' memberKeys glRjct toView $ CEvtGroupLinkConnecting user gInfo host toViewTE $ TEGroupLinkRejected user gInfo rejectionReason - pure (conn', Just gInfo) + pure (conn', Just $ GIK gInfo GKGroup {memberPrivKey = snd memberKeys}) -- TODO show/log error, other events in SMP confirmation _ -> pure (conn', Nothing) - xGrpMemNew :: GroupInfo -> GroupMember -> MemberInfo -> Maybe MsgScope -> RcvMessage -> UTCTime -> CM (Maybe DeliveryJobScope) - xGrpMemNew gInfo m memInfo@(MemberInfo memId memRole _ _ assertedKey_) msgScope_ msg brokerTs = do + isPublicGroupInv :: GroupLinkInvitation -> Bool + isPublicGroupInv GroupLinkInvitation {groupProfile = GroupProfile {publicGroup}} = isJust publicGroup + + xGrpMemNew :: GroupInfoKeys -> GroupMember -> MemberInfo -> Maybe MsgScope -> RcvMessage -> UTCTime -> CM (Maybe DeliveryJobScope) + xGrpMemNew (GIK gInfo gks) m memInfo@(MemberInfo memId memRole _ _ assertedKey_) msgScope_ msg brokerTs = do unless (useRelays' gInfo) $ checkHostRole m memRole if sameMemberId memId (membership gInfo) then pure Nothing @@ -3188,7 +3198,7 @@ processAgentMessageConn cxt user@User {userId} entity corrId agentConnId agentMe messageWarning $ "x.grp.mem.new: relay asserted key differs from roster-established key, keeping roster key, memberId=" <> safeDecodeUtf8 (strEncode memId) updatedMember <- withStore $ \db -> updateRosterMemberAnnounced db cxt user m unknownMember memInfo initialStatus -- roster members can't be pending, so no members-require-attention update - gInfo' <- updatePublicGroupData user gInfo + gInfo' <- updatePublicGroupData user gInfo gks toView $ CEvtUnknownMemberAnnounced user gInfo' m unknownMember updatedMember memberAnnouncedToView updatedMember gInfo' pure $ deliveryJobScope updatedMember @@ -3203,7 +3213,7 @@ processAgentMessageConn cxt user@User {userId} entity corrId agentConnId agentMe then liftIO $ increaseGroupMembersRequireAttention db user gInfo else pure gInfo pure (updatedMember, gInfo') - gInfo'' <- updatePublicGroupData user gInfo' + gInfo'' <- updatePublicGroupData user gInfo' gks toView $ CEvtUnknownMemberAnnounced user gInfo'' m unknownMember updatedMember memberAnnouncedToView updatedMember gInfo'' pure $ deliveryJobScope updatedMember @@ -3221,7 +3231,7 @@ processAgentMessageConn cxt user@User {userId} entity corrId agentConnId agentMe then liftIO $ increaseGroupMembersRequireAttention db user gInfo else pure gInfo pure (newMember, gInfo') - gInfo'' <- updatePublicGroupData user gInfo' + gInfo'' <- updatePublicGroupData user gInfo' gks memberAnnouncedToView newMember gInfo'' pure $ deliveryJobScope newMember where @@ -3341,8 +3351,8 @@ processAgentMessageConn cxt user@User {userId} entity corrId agentConnId agentMe -- batch), then advance it in the same transaction; a strictly lower version is a replay and is ignored. -- Only an owner sender may advance it: a non-owner signed event is rejected by the action that follows, -- but must not bump roster_version first, or every later owner roster at a lower version is dropped. - applyAtRosterVersion :: GroupInfo -> Maybe GroupMember -> GroupMember -> Maybe VersionRoster -> CM (Maybe DeliveryJobScope) -> CM (Maybe DeliveryJobScope) - applyAtRosterVersion gInfo fwdRelay_ sender rosterVer_ action + applyAtRosterVersion :: GroupInfoKeys -> Maybe GroupMember -> GroupMember -> Maybe VersionRoster -> CM (Maybe DeliveryJobScope) -> CM (Maybe DeliveryJobScope) + applyAtRosterVersion g@(GIK gInfo _) fwdRelay_ sender rosterVer_ action | not (useRelays' gInfo) = action | otherwise = case rosterVer_ of Nothing -> action @@ -3380,19 +3390,19 @@ processAgentMessageConn cxt user@User {userId} entity corrId agentConnId agentMe | otherwise = case fwdRelay_ of Just relay | gap, relay `supportsVersion` groupRosterVersion -> - void $ sendGroupMessage' user gInfo [relay] (XGrpRosterRequest prevComplete) + void $ sendGroupMessage' user g [relay] (XGrpRosterRequest prevComplete) _ -> pure () where gap = v > nextCompleteVersion prevComplete - xGrpMemRole :: GroupInfo -> Maybe GroupMember -> GroupMember -> MemberId -> GroupMemberRole -> Maybe MemberKey -> Maybe VersionRoster -> RcvMessage -> UTCTime -> CM (Maybe DeliveryJobScope) - xGrpMemRole gInfo@GroupInfo {membership} fwdRelay_ m@GroupMember {memberRole = senderRole} memId memRole memberKey_ rosterVer_ msg@RcvMessage {msgSigned} brokerTs + xGrpMemRole :: GroupInfoKeys -> Maybe GroupMember -> GroupMember -> MemberId -> GroupMemberRole -> Maybe MemberKey -> Maybe VersionRoster -> RcvMessage -> UTCTime -> CM (Maybe DeliveryJobScope) + xGrpMemRole g@(GIK gInfo@GroupInfo {membership} _) fwdRelay_ m@GroupMember {memberRole = senderRole} memId memRole memberKey_ rosterVer_ msg@RcvMessage {msgSigned} brokerTs | memRole == GRRelay = messageError "x.grp.mem.role: relay role can't be assigned" $> Nothing | membershipMemId == memId = - applyAtRosterVersion gInfo fwdRelay_ m rosterVer_ $ + applyAtRosterVersion g fwdRelay_ m rosterVer_ $ let gInfo' = gInfo {membership = membership {memberRole = memRole}} in changeMemberRole gInfo' membership False (\db -> updateGroupMemberRole db user membership memRole) (RGEUserRole memRole) True - | otherwise = applyAtRosterVersion gInfo fwdRelay_ m rosterVer_ $ do + | otherwise = applyAtRosterVersion g fwdRelay_ m rosterVer_ $ do defaultRole <- unknownMemberRole gInfo -- an owner-signed event with a key TOFU-creates an unknown member only for a roster role; else a plain lookup let allowCreate = useRelays' gInfo && senderRole == GROwner && isRosterRole memRole && isJust memberKey_ @@ -3486,8 +3496,8 @@ processAgentMessageConn cxt user@User {userId} entity corrId agentConnId agentMe -- Blob arrived: verify the owner-attested digest over the plaintext and guard against -- downgrade before applying; on a relay, ack the owner and re-serve to members. - rosterCompletion :: GroupInfo -> RcvFileTransfer -> CM () - rosterCompletion gInfo RcvFileTransfer {fileId, fileStatus} = + rosterCompletion :: GroupInfoKeys -> RcvFileTransfer -> CM () + rosterCompletion g@(GIK gInfo _) RcvFileTransfer {fileId, fileStatus} = withStore' (\db -> getRosterTransfer db fileId) >>= \case -- defensive: the file always has its transfer (created together, deleted together) Nothing -> lift (closeFileHandle fileId rcvFiles) >> forM_ (rosterFilePath fileStatus) removeFsFile @@ -3497,7 +3507,7 @@ processAgentMessageConn cxt user@User {userId} entity corrId agentConnId agentMe let isRelay' = isUserGrpFwdRelay gInfo ackErr err = do cleanupRosterTransferById transferId - when isRelay' $ forM_ owner_ $ \owner -> sendRosterAck gInfo owner pendingVer (Just err) + when isRelay' $ forM_ owner_ $ \owner -> sendRosterAck g owner pendingVer (Just err) if FD.FileDigest (LC.sha512Hash (LB.fromStrict blob)) /= pendingDigest then ackErr "relay could not verify the roster blob" else case parseAll rosterBlobP blob of @@ -3522,7 +3532,7 @@ processAgentMessageConn cxt user@User {userId} entity corrId agentConnId agentMe emitRosterResults gInfo author rosterBrokerTs results -- ack while setting up (own status accepted/acknowledged); a serving (active) relay must not ack broadcasts. when (isRelay' && (relayOwnStatus gInfo == Just RSAccepted || relayOwnStatus gInfo == Just RSAcknowledgedRoster)) $ do - sendRosterAck gInfo author pendingVer Nothing + sendRosterAck g author pendingVer Nothing withStore' $ \db -> void $ updateRelayOwnStatusFromTo db gInfo RSAccepted RSAcknowledgedRoster where rosterFilePath = \case @@ -3588,11 +3598,11 @@ processAgentMessageConn cxt user@User {userId} entity corrId agentConnId agentMe else pure (gInfo, author) toView CEvtMemberRole {user, groupInfo = gInfo', byMember = author', member, fromRole, toRole, msgSigned = Just MSSVerified} - sendRosterAck :: GroupInfo -> GroupMember -> VersionRoster -> Maybe Text -> CM () + sendRosterAck :: GroupInfoKeys -> GroupMember -> VersionRoster -> Maybe Text -> CM () sendRosterAck gInfo owner ackVer err = void $ sendGroupMessage' user gInfo [owner] (XGrpRosterAck ackVer err) - xGrpRosterAck :: GroupInfo -> GroupMember -> VersionRoster -> Maybe Text -> CM () - xGrpRosterAck gInfo m ackVer err = do + xGrpRosterAck :: GroupInfoKeys -> GroupMember -> VersionRoster -> Maybe Text -> CM () + xGrpRosterAck g@(GIK gInfo _) m ackVer err = do relay_ <- withStore' $ \db -> eitherToMaybe <$> runExceptT (getGroupRelayByGMId db (groupMemberId' m)) case relay_ of Just relay@GroupRelay {relayStatus = RSAccepted} -> case err of @@ -3602,7 +3612,7 @@ processAgentMessageConn cxt user@User {userId} entity corrId agentConnId agentMe relay' <- liftIO $ updateRelayStatus db relay RSAcknowledgedRoster gLink <- getGroupLink db user gInfo pure (relay', gLink) - setGroupLinkDataAsync user gInfo gLink + setGroupLinkDataAsync user g gLink toView $ CEvtGroupRelayUpdated user gInfo m relay' | otherwise -> messageWarning "x.grp.roster.ack: stale version, awaiting ack for the current roster" Just e -> do @@ -3616,13 +3626,13 @@ processAgentMessageConn cxt user@User {userId} entity corrId agentConnId agentMe -- - the latter bounds reflected amplification (a member can't re-trigger a full serve). Gating on the stored -- blob (not roster_version, the gate) means the relay serves only a blob the requester will accept. -- serveRoster records the served version (on all serve paths) and is a no-op without a roster. - xGrpRosterRequest :: GroupInfo -> GroupMember -> Maybe VersionRoster -> CM () - xGrpRosterRequest gInfo m reqVer_ = + xGrpRosterRequest :: GroupInfoKeys -> GroupMember -> Maybe VersionRoster -> CM () + xGrpRosterRequest g@(GIK gInfo _) m reqVer_ = when (isUserGrpFwdRelay gInfo) $ do (stored_, served_) <- withStore' $ \db -> (,) <$> getStoredRosterVersion db gInfo <*> getMemberRosterServedVersion db m forM_ stored_ $ \stored -> - when (maybe True (stored >) reqVer_ && maybe True (stored >) served_) $ serveRoster user gInfo m + when (maybe True (stored >) reqVer_ && maybe True (stored >) served_) $ serveRoster user g m checkHostRole :: GroupMember -> GroupMemberRole -> CM () checkHostRole GroupMember {memberRole, localDisplayName} memRole = @@ -3668,11 +3678,11 @@ processAgentMessageConn cxt user@User {userId} entity corrId agentConnId agentMe withStore $ \db -> setMemberVectorRelationConnected db sendingMem refMem MRSubjectConnected withStore $ \db -> setMemberVectorRelationConnected db refMem sendingMem MRReferencedConnected - xGrpMemDel :: GroupInfo -> Maybe GroupMember -> GroupMember -> MemberId -> Bool -> Maybe VersionRoster -> VerifiedMsg 'Json -> RcvMessage -> UTCTime -> Bool -> CM (Maybe DeliveryJobScope) - xGrpMemDel gInfo@GroupInfo {membership} fwdRelay_ m@GroupMember {memberRole = senderRole} memId withMessages rosterVer_ verifiedMsg msg@RcvMessage {msgSigned} brokerTs forwarded = do + xGrpMemDel :: GroupInfoKeys -> Maybe GroupMember -> GroupMember -> MemberId -> Bool -> Maybe VersionRoster -> VerifiedMsg 'Json -> RcvMessage -> UTCTime -> Bool -> CM (Maybe DeliveryJobScope) + xGrpMemDel g@(GIK gInfo@GroupInfo {membership} gks) fwdRelay_ m@GroupMember {memberRole = senderRole} memId withMessages rosterVer_ verifiedMsg msg@RcvMessage {msgSigned} brokerTs forwarded = do let GroupMember {memberId = membershipMemId} = membership if membershipMemId == memId - then applyAtRosterVersion gInfo fwdRelay_ m rosterVer_ $ checkRole membership $ do + then applyAtRosterVersion g fwdRelay_ m rosterVer_ $ checkRole membership $ do deleteGroupLinkIfExists user gInfo -- TODO [relays] possible improvement is to immediately delete rcv queues if isUserGrpFwdRelay unless (isUserGrpFwdRelay gInfo) $ deleteGroupConnections user gInfo False @@ -3684,7 +3694,7 @@ processAgentMessageConn cxt user@User {userId} entity corrId agentConnId agentMe deleteMemberItem msg gInfo RGEUserDeleted toView $ CEvtDeletedMemberUser user gInfo {membership = membership'} m withMessages msgSigned pure $ Just DJSGroup {jobSpec = DJRelayRemoved} - else applyAtRosterVersion gInfo fwdRelay_ m rosterVer_ $ + else applyAtRosterVersion g fwdRelay_ m rosterVer_ $ withStore' (\db -> runExceptT $ getGroupMemberByMemberId db cxt user gInfo memId) >>= \case Left _ -> do messageError "x.grp.mem.del with unknown member ID" @@ -3710,7 +3720,7 @@ processAgentMessageConn cxt user@User {userId} entity corrId agentConnId agentMe fullyDeleteMemberRecord user gInfo deletedMember -- Undeleted "member connected" chat item will prevent deletion of member record. | otherwise -> deleteOrUpdateMemberRecord user gInfo deletedMember - gInfo'' <- updatePublicGroupData user gInfo' + gInfo'' <- updatePublicGroupData user gInfo' gks let wasDeleted = memberStatus == GSMemRemoved || memberStatus == GSMemLeft -- Clear forwardedByMember if it references the deleted member, -- as the member record was already deleted above. @@ -3752,12 +3762,12 @@ processAgentMessageConn cxt user@User {userId} entity corrId agentConnId agentMe | useRelays' gInfo = asks $ channelSubscriberRole . config | otherwise = pure GRAuthor - xGrpLeave :: GroupInfo -> GroupMember -> RcvMessage -> UTCTime -> CM (Maybe DeliveryJobScope) - xGrpLeave gInfo m msg@RcvMessage {msgSigned} brokerTs = do + xGrpLeave :: GroupInfoKeys -> GroupMember -> RcvMessage -> UTCTime -> CM (Maybe DeliveryJobScope) + xGrpLeave (GIK gInfo gks) m msg@RcvMessage {msgSigned} brokerTs = do deleteMemberConnection m -- member record is not deleted to allow creation of "member left" chat item gInfo' <- updateMemberRecordDeleted user gInfo m GSMemLeft - gInfo'' <- updatePublicGroupData user gInfo' + gInfo'' <- updatePublicGroupData user gInfo' gks unless (muteEventInChannel gInfo'' m) $ do (gInfo''', m', scopeInfo) <- mkGroupChatScope gInfo'' m (ci, cInfo) <- saveRcvChatItemNoParse user (CDGroupRcv gInfo''' scopeInfo m') msg brokerTs (CIRcvGroupEvent RGEMemberLeft) @@ -3777,8 +3787,8 @@ processAgentMessageConn cxt user@User {userId} entity corrId agentConnId agentMe groupMsgToView cInfo ci toView $ CEvtGroupDeleted user gInfo'' {membership = membership {memberStatus = GSMemGroupDeleted}} m' msgSigned - xGrpInfo :: GroupInfo -> GroupMember -> GroupProfile -> RcvMessage -> UTCTime -> CM (Maybe DeliveryJobScope) - xGrpInfo g@GroupInfo {groupProfile = p@GroupProfile {publicGroup = pg}, businessChat} m@GroupMember {memberRole} p'@GroupProfile {publicGroup = pg'} msg@RcvMessage {msgSigned} brokerTs + xGrpInfo :: GroupInfoKeys -> GroupMember -> GroupProfile -> RcvMessage -> UTCTime -> CM (Maybe DeliveryJobScope) + xGrpInfo gik@(GIK g@GroupInfo {groupProfile = p@GroupProfile {publicGroup = pg}, businessChat} gks) m@GroupMember {memberRole} p'@GroupProfile {publicGroup = pg'} msg@RcvMessage {msgSigned} brokerTs | memberRole < GROwner = messageError "x.grp.info with insufficient member permissions" $> Nothing | let pgId = fmap (\PublicGroupProfile {publicGroupId} -> publicGroupId), useRelays' g && (isNothing pg' || pgId pg' /= pgId pg) = messageError "x.grp.info: publicGroupId mismatch for channel" $> Nothing @@ -3798,10 +3808,10 @@ processAgentMessageConn cxt user@User {userId} entity corrId agentConnId agentMe -- other owners receiving the update do not refresh the same link ChatConfig {updateGroupLinksFromApp} <- asks config unless (useRelays' g'' || updateGroupLinksFromApp) $ - void $ forkIO $ void $ setGroupLinkData' NRMBackground user g'' + void $ forkIO $ void $ setGroupLinkData' NRMBackground user (GIK g'' gks) Just _ -> updateGroupPrefs_ msgSigned g m $ fromMaybe defaultBusinessGroupPrefs $ groupPreferences p' -- relay advertises its web capability now that the owner's version is known (bumped by saveGroupRcvMsg) - when (isRelay (membership g)) $ sendRelayCapIfNeeded user g + when (isRelay (membership g)) $ sendRelayCapIfNeeded user gik pure $ Just DJSGroup {jobSpec = DJDeliveryJob {includePending = True}} xGrpPrefs :: GroupInfo -> GroupMember -> GroupPreferences -> RcvMessage -> CM (Maybe DeliveryJobScope) @@ -3916,8 +3926,8 @@ processAgentMessageConn cxt user@User {userId} entity corrId agentConnId agentMe toViewTE $ TEContactVerificationReset user ct createInternalChatItem user (CDDirectRcv ct) (CIRcvConnEvent RCEVerificationCodeReset) Nothing - xGrpMsgForward :: GroupInfo -> Maybe GroupChatScopeInfo -> GroupMember -> GrpMsgForward -> ParsedMsg 'Json -> UTCTime -> CM () - xGrpMsgForward gInfo scopeInfo m@GroupMember {localDisplayName} GrpMsgForward {fwdSender, fwdBrokerTs = msgTs} parsedMsg@(ParsedMsg _ _ chatMsg@ChatMessage {chatMsgEvent}) brokerTs = do + xGrpMsgForward :: GroupInfoKeys -> Maybe GroupChatScopeInfo -> GroupMember -> GrpMsgForward -> ParsedMsg 'Json -> UTCTime -> CM () + xGrpMsgForward g@(GIK gInfo _) scopeInfo m@GroupMember {localDisplayName} GrpMsgForward {fwdSender, fwdBrokerTs = msgTs} parsedMsg@(ParsedMsg _ _ chatMsg@ChatMessage {chatMsgEvent}) brokerTs = do unless (isMemberGrpFwdRelay gInfo m) $ throwChatError (CEGroupContactRole localDisplayName) case fwdSender of FwdMember memberId memberName -> do @@ -3961,13 +3971,13 @@ processAgentMessageConn cxt user@User {userId} entity corrId agentConnId agentMe XFileCancel sharedMsgId -> void $ xFileCancelGroup gInfo author_ sharedMsgId XInfo p mKey -> withAuthor XInfo_ $ \author -> void $ xInfoMember gInfo author p mKey rcvMsg msgTs XGrpRelayNew rl -> withAuthor XGrpRelayNew_ $ \author -> void $ xGrpRelayNew gInfo author rl - XGrpMemNew memInfo msgScope -> withAuthor XGrpMemNew_ $ \author -> void $ xGrpMemNew gInfo author memInfo msgScope rcvMsg msgTs - XGrpMemRole memId memRole memberKey rosterVer -> withAuthor XGrpMemRole_ $ \author -> void $ xGrpMemRole gInfo (Just m) author memId memRole memberKey rosterVer rcvMsg msgTs + XGrpMemNew memInfo msgScope -> withAuthor XGrpMemNew_ $ \author -> void $ xGrpMemNew g author memInfo msgScope rcvMsg msgTs + XGrpMemRole memId memRole memberKey rosterVer -> withAuthor XGrpMemRole_ $ \author -> void $ xGrpMemRole g (Just m) author memId memRole memberKey rosterVer rcvMsg msgTs XGrpMemRestrict memId memRestrictions -> withAuthor XGrpMemRestrict_ $ \author -> void $ xGrpMemRestrict gInfo author memId memRestrictions rcvMsg msgTs - XGrpMemDel memId withMessages rosterVer -> withAuthor XGrpMemDel_ $ \author -> void $ xGrpMemDel gInfo (Just m) author memId withMessages rosterVer verifiedMsg rcvMsg msgTs True - XGrpLeave -> withAuthor XGrpLeave_ $ \author -> void $ xGrpLeave gInfo author rcvMsg msgTs + XGrpMemDel memId withMessages rosterVer -> withAuthor XGrpMemDel_ $ \author -> void $ xGrpMemDel g (Just m) author memId withMessages rosterVer verifiedMsg rcvMsg msgTs True + XGrpLeave -> withAuthor XGrpLeave_ $ \author -> void $ xGrpLeave g author rcvMsg msgTs XGrpDel -> withAuthor XGrpDel_ $ \author -> void $ xGrpDel gInfo author rcvMsg msgTs - XGrpInfo p' -> withAuthor XGrpInfo_ $ \author -> void $ xGrpInfo gInfo author p' rcvMsg msgTs + XGrpInfo p' -> withAuthor XGrpInfo_ $ \author -> void $ xGrpInfo g author p' rcvMsg msgTs XGrpPrefs ps' -> withAuthor XGrpPrefs_ $ \author -> void $ xGrpPrefs gInfo author ps' rcvMsg XGrpRoster gr -> withAuthor XGrpRoster_ $ \author -> void $ xGrpRoster gInfo m author gr verifiedMsg sharedMsgId_ msgTs _ -> messageError $ "x.grp.msg.forward: unsupported forwarded event " <> T.pack (show $ toCMEventTag event) @@ -3978,7 +3988,7 @@ processAgentMessageConn cxt user@User {userId} entity corrId agentConnId agentMe Nothing -> messageError $ "x.grp.msg.forward: event " <> tshow tag <> " requires author" withVerifiedMsg :: GroupInfo -> Maybe GroupChatScopeInfo -> GroupMember -> ParsedMsg e -> UTCTime -> (VerifiedMsg e -> CM a) -> CM (Maybe a) - withVerifiedMsg gInfo@GroupInfo {membership, groupKeys} scopeInfo member@GroupMember {memberPubKey, memberId} (ParsedMsg _ signedMsg_ chatMsg@ChatMessage {chatMsgEvent}) ts action = + withVerifiedMsg gInfo@GroupInfo {membership} scopeInfo member@GroupMember {memberPubKey, memberId} (ParsedMsg _ signedMsg_ chatMsg@ChatMessage {chatMsgEvent}) ts action = case verified of Just verifiedMsg -> Just <$> action verifiedMsg Nothing -> do @@ -3988,7 +3998,7 @@ processAgentMessageConn cxt user@User {userId} entity corrId agentConnId agentMe verified = case signedMsg_ of Just sm@SignedMsg {chatBinding, signatures, signedBody} -> case memberPubKey of Just pubKey -> case chatBinding of - CBGroup -> signed MSSVerified <$ guard (verifyGroupSig pubKey groupKeys memberId signatures signedBody) + CBGroup -> signed MSSVerified <$ guard (verifyGroupSig pubKey gInfo memberId signatures signedBody) _ -> signed MSSSignedNoKey <$ guard signatureOptional Nothing -> signed MSSSignedNoKey <$ guard (signatureOptional || unverifiedAllowed membership member tag) where @@ -4476,10 +4486,10 @@ runRelayRequestWorker a Worker {doWork} = do eToView e processRelayRequest :: GroupId -> RelayRequestData -> CM () processRelayRequest groupId rrd = do - (gInfo, groupLink_) <- withStore $ \db -> do - gInfo <- getGroupInfo db cxt user groupId + (g@(GIK gInfo _), groupLink_) <- withStore $ \db -> do + g@(GIK gInfo _) <- getGroupInfoKeys db cxt user groupId groupLink_ <- liftIO $ runExceptT $ getGroupLink db user gInfo - pure (gInfo, groupLink_) + pure (g, groupLink_) -- Check if relay link already exists (recovery case) case groupLink_ of Right GroupLink {connLinkContact = CCLink _ sLnk_} -> @@ -4487,11 +4497,14 @@ runRelayRequestWorker a Worker {doWork} = do Just sLnk -> acceptOwnerConnection rrd gInfo sLnk Nothing -> throwChatError $ CEException "processRelayRequest: relay link doesn't have short link" Left _ -> do - (gInfo', sLnk) <- getLinkDataCreateRelayLink rrd gInfo + (gInfo', sLnk) <- getLinkDataCreateRelayLink rrd g acceptOwnerConnection rrd gInfo' sLnk where - getLinkDataCreateRelayLink :: RelayRequestData -> GroupInfo -> CM (GroupInfo, ShortLinkContact) - getLinkDataCreateRelayLink RelayRequestData {reqGroupLink} gInfo = do + getLinkDataCreateRelayLink :: RelayRequestData -> GroupInfoKeys -> CM (GroupInfo, ShortLinkContact) + getLinkDataCreateRelayLink RelayRequestData {reqGroupLink} (GIK gInfo gks) = do + memberPrivKey' <- case gks of + GKRelayRequest {memberPrivKey} -> pure memberPrivKey + _ -> throwChatError $ CEException "getLinkDataCreateRelayLink: group is not a relay request" (FixedLinkData {linkEntityId, rootKey}, cData@(ContactLinkData _ UserContactData {owners}), _) <- getShortLinkConnReq' NRMBackground user reqGroupLink liftIO (decodeLinkUserData cData) >>= \case Nothing -> throwChatError $ CEException "getLinkDataCreateRelayLink: no group link data" @@ -4501,10 +4514,10 @@ runRelayRequestWorker a Worker {doWork} = do | B64UrlByteString entityId == publicGroupId -> pure pg _ -> throwChatError $ CEException "getLinkDataCreateRelayLink: linkEntityId does not match profile publicGroupId" validateGroupProfile gp - ((_, memberPrivKey), sLnk) <- createRelayLink gInfo + sLnk <- createRelayLink gInfo (C.publicKey memberPrivKey', memberPrivKey') gInfo' <- withStore $ \db -> do void $ updateGroupProfile db user gInfo gp - updateRelayGroupKeys db user gInfo pg rootKey memberPrivKey owners + updateRelayGroupKeys db user gInfo pg rootKey owners getGroupInfo db cxt user groupId pure (gInfo', sLnk) where @@ -4512,14 +4525,13 @@ runRelayRequestWorker a Worker {doWork} = do validateGroupProfile _groupProfile = do -- TODO [relays] relay: validate group profile, verify owner's signature pure () - createRelayLink :: GroupInfo -> CM (C.KeyPairEd25519, ShortLinkContact) - createRelayLink gi = do + createRelayLink :: GroupInfo -> C.KeyPairEd25519 -> CM ShortLinkContact + createRelayLink gi sigKeys = do let GroupInfo {membership} = gi GroupMember {memberId = MemberId relayMemId, memberProfile = p} = membership gVar <- asks random groupLinkId <- GroupLinkId <$> drgRandomBytes 16 subMode <- chatReadVar subscriptionMode - sigKeys <- atomically $ C.generateKeyPair gVar let crClientData = encodeJSON $ CRDataGroup groupLinkId -- prepare link with relayMemId as linkEntityId (no server request) (ccLink, preparedParams) <- withAgent $ \a' -> prepareConnectionLink a' (aUserId user) sigKeys relayMemId True (Just crClientData) CR.IKPQOff False Nothing @@ -4534,7 +4546,7 @@ runRelayRequestWorker a Worker {doWork} = do -- TODO [relays] starting role should be communicated in protocol from owner to relays subRole <- asks $ channelSubscriberRole . config void $ withFastStore $ \db -> createGroupLink db gVar user gi connId ccLink' groupLinkId subRole subMode - pure (sigKeys, sLnk) + pure sLnk acceptOwnerConnection :: RelayRequestData -> GroupInfo -> ShortLinkContact -> CM () acceptOwnerConnection RelayRequestData {relayInvId, reqChatVRange} gi relayLink = do ownerMember <- withStore $ \db -> getHostMember db cxt user groupId diff --git a/src/Simplex/Chat/Store/Connections.hs b/src/Simplex/Chat/Store/Connections.hs index fe7539fad7..1057a71a02 100644 --- a/src/Simplex/Chat/Store/Connections.hs +++ b/src/Simplex/Chat/Store/Connections.hs @@ -12,6 +12,7 @@ module Simplex.Chat.Store.Connections ( getChatLockEntity, getConnectionEntity, + getConnectionEntityKeys, getConnectionEntityByConnReq, getConnectionEntityViaShortLink, getContactConnEntityByConnReqHash, @@ -76,18 +77,23 @@ getChatLockEntity db agentConnId = do -- - from receiving: getConnectionEntity, getContactConnEntityByConnReqHash -- - from subscribing: getContactConnsToSub, getUCLConnsToSub, getMemberConnsToSub, getPendingConnsToSub getConnectionEntity :: DB.Connection -> StoreCxt -> User -> AgentConnId -> ExceptT StoreError IO ConnectionEntity -getConnectionEntity db cxt user@User {userId, userContactId} agentConnId = do +getConnectionEntity db cxt user agentConnId = fst <$> getConnectionEntityKeys db cxt user agentConnId + +getConnectionEntityKeys :: DB.Connection -> StoreCxt -> User -> AgentConnId -> ExceptT StoreError IO (ConnectionEntity, Maybe GroupKeysRow) +getConnectionEntityKeys db cxt user@User {userId, userContactId} agentConnId = do c@Connection {connType, entityId} <- getConnection_ case entityId of Nothing -> if connType == ConnContact - then pure $ RcvDirectMsgConnection c Nothing + then pure (RcvDirectMsgConnection c Nothing, Nothing) else throwError $ SEInternalError $ "connection " <> show connType <> " without entity" Just entId -> case connType of - ConnMember -> uncurry (RcvGroupMsgConnection c) <$> getGroupAndMember_ entId c - ConnContact -> RcvDirectMsgConnection c . Just <$> getContactRec_ entId c - ConnUserContact -> UserContactConnection c <$> getUserContact_ entId + ConnMember -> do + ((gInfo, keysData), m) <- getGroupAndMember_ entId c + pure (RcvGroupMsgConnection c gInfo m, Just keysData) + ConnContact -> (,Nothing) . RcvDirectMsgConnection c . Just <$> getContactRec_ entId c + ConnUserContact -> (,Nothing) . UserContactConnection c <$> getUserContact_ entId where getConnection_ :: ExceptT StoreError IO Connection getConnection_ = ExceptT $ do @@ -134,7 +140,7 @@ getConnectionEntity db cxt user@User {userId, userContactId} agentConnId = do contactRequest = UserContactRequestRef <$> contactRequestId <*> (unBI <$> rejectionSupported_) groupDirectInv = toGroupDirectInvitation groupDirectInvRow in Contact {contactId, localDisplayName, profile, activeConn, contactUsed, contactStatus, chatSettings, userPreferences, mergedPreferences, createdAt, updatedAt, chatTs, preparedContact, contactRequestId, contactRequest, contactGroupMemberId, contactGrpInvSent, groupDirectInv, chatTags, chatItemTTL, uiThemes, chatDeleted, customData} - getGroupAndMember_ :: Int64 -> Connection -> ExceptT StoreError IO (GroupInfo, GroupMember) + getGroupAndMember_ :: Int64 -> Connection -> ExceptT StoreError IO ((GroupInfo, GroupKeysRow), GroupMember) getGroupAndMember_ groupMemberId c = do currentTs <- liftIO getCurrentTime gm <- @@ -178,8 +184,8 @@ getConnectionEntity db cxt user@User {userId, userContactId} agentConnId = do AND mu.member_status NOT IN (?,?,?) |] (groupMemberId, userId, userContactId, GSMemRemoved, GSMemLeft, GSMemGroupDeleted) - liftIO $ bitraverse (addGroupChatTags db) pure gm - toGroupAndMember :: UTCTime -> Connection -> GroupInfoRow :. GroupMemberRow -> (GroupInfo, GroupMember) + liftIO $ bitraverse (\(g, keysData) -> (,keysData) <$> addGroupChatTags db g) pure gm + toGroupAndMember :: UTCTime -> Connection -> GroupInfoRow :. GroupMemberRow -> ((GroupInfo, GroupKeysRow), GroupMember) toGroupAndMember currentTs c (groupInfoRow :. memberRow) = let groupInfo = toGroupInfo currentTs cxt userContactId [] groupInfoRow member = toGroupMember currentTs userContactId memberRow diff --git a/src/Simplex/Chat/Store/ContactRequest.hs b/src/Simplex/Chat/Store/ContactRequest.hs index 146f957947..f87a1e242a 100644 --- a/src/Simplex/Chat/Store/ContactRequest.hs +++ b/src/Simplex/Chat/Store/ContactRequest.hs @@ -91,11 +91,12 @@ createOrUpdateContactRequest pure $ RSAcceptedRequest cr (REContact ct) Nothing -> liftIO (getAcceptedBusinessChat xContactId) >>= \case - Just gInfo@GroupInfo {businessChat = Just BusinessChatInfo {customerId}} -> do + Just (gInfo@GroupInfo {businessChat = Just BusinessChatInfo {customerId}}, keysData) -> do clientMember <- getGroupMemberByMemberId db cxt user gInfo customerId cr <- liftIO $ getContactRequestByXContactId xContactId - pure $ RSAcceptedRequest cr (REBusinessChat gInfo clientMember) - Just GroupInfo {businessChat = Nothing} -> throwError SEInvalidBusinessChatContactRequest + gks <- mkGroupKeys db cxt gInfo keysData + pure $ RSAcceptedRequest cr (REBusinessChat (GIK gInfo gks) clientMember) + Just (GroupInfo {businessChat = Nothing}, _) -> throwError SEInvalidBusinessChatContactRequest -- 2) if no legacy accepted contact or business chat was found, next we try to find an existing request Nothing -> liftIO (getContactRequestByXContactId xContactId) >>= \case @@ -131,7 +132,7 @@ createOrUpdateContactRequest |] (userId, xContactId) mapM (addDirectChatTags db) ct_ - getAcceptedBusinessChat :: XContactId -> IO (Maybe GroupInfo) + getAcceptedBusinessChat :: XContactId -> IO (Maybe (GroupInfo, GroupKeysRow)) getAcceptedBusinessChat xContactId = do currentTs <- getCurrentTime g_ <- @@ -140,7 +141,7 @@ createOrUpdateContactRequest db (groupInfoQuery <> " WHERE g.business_xcontact_id = ? AND g.user_id = ? AND mu.contact_id = ?") (xContactId, userId, userContactId) - mapM (addGroupChatTags db) g_ + forM g_ $ \(g, keysData) -> (,keysData) <$> addGroupChatTags db g getContactRequestByXContactId :: XContactId -> IO (Maybe UserContactRequest) getContactRequestByXContactId xContactId = do currentTs <- getCurrentTime @@ -214,7 +215,7 @@ createOrUpdateContactRequest pure $ RSCurrentRequest Nothing ucr (Just $ REContact ct) createBusinessChat = do let groupPreferences = maybe defaultBusinessGroupPrefs businessGroupPrefs $ preferences' user - (gInfo@GroupInfo {groupId}, clientMember) <- + (gInfo@(GIK GroupInfo {groupId} _), clientMember) <- createBusinessRequestGroup db cxt gVar user cReqChatVRange profile profileId ldn groupPreferences liftIO $ DB.execute @@ -302,11 +303,12 @@ createOrUpdateContactRequest ct <- getContact db cxt user contactId pure $ Just (REContact ct) (Nothing, Just businessGroupId) -> do - gInfo <- getGroupInfo db cxt user businessGroupId + (gInfo, keysData) <- getGroupInfoRow db cxt user businessGroupId case gInfo of GroupInfo {businessChat = Just BusinessChatInfo {customerId}} -> do clientMember <- getGroupMemberByMemberId db cxt user gInfo customerId - pure $ Just (REBusinessChat gInfo clientMember) + gks <- mkGroupKeys db cxt gInfo keysData + pure $ Just (REBusinessChat (GIK gInfo gks) clientMember) _ -> throwError SEInvalidBusinessChatContactRequest (Nothing, Nothing) -> pure Nothing _ -> throwError $ SEInvalidContactRequestEntity contactRequestId diff --git a/src/Simplex/Chat/Store/Direct.hs b/src/Simplex/Chat/Store/Direct.hs index 53d5cd619e..a87d266b03 100644 --- a/src/Simplex/Chat/Store/Direct.hs +++ b/src/Simplex/Chat/Store/Direct.hs @@ -188,7 +188,7 @@ createConnReqConnection db userId acId preparedEntity_ cReq cReqHash sLnk xConta connId <- insertedRowId db case preparedEntity_ of -- For relay groups, setPreparedGroupLinkInfo_ is called via updatePreparedRelayedGroup before the relay loop - Just (PCEGroup gInfo _) | not (useRelays' gInfo) -> + Just (PCEGroup (GIK gInfo _) _) | not (useRelays' gInfo) -> setPreparedGroupLinkInfo_ db gInfo cReq cReqHash customUserProfileId Nothing currentTs _ -> pure () pure diff --git a/src/Simplex/Chat/Store/Groups.hs b/src/Simplex/Chat/Store/Groups.hs index 84a58fb222..2c0b2dc080 100644 --- a/src/Simplex/Chat/Store/Groups.hs +++ b/src/Simplex/Chat/Store/Groups.hs @@ -40,6 +40,7 @@ module Simplex.Chat.Store.Groups createGroupRejectedViaLink, setGroupInvitationChatItemId, getGroup, + getGroupKeys_, getGroupInfoByUserContactLinkConnReq, getGroupInfoViaUserTarget, getGroupViaShortLinkToConnect, @@ -144,7 +145,7 @@ module Simplex.Chat.Store.Groups updatePreparedRelayedGroup, updatePublicMemberCount, setPublicMemberCount, - updateGroupMemberKeys, + setGroupRootKey, updateRelayGroupKeys, updateGroupMemberStatus, updateGroupMemberStatusById, @@ -376,26 +377,24 @@ setGroupLinkShortLink db gLnk@GroupLink {userContactLinkId, connLinkContact = CC pure gLnk {connLinkContact = CCLink connFullLink (Just shortLink), shortLinkDataSet = True, shortLinkLargeDataSet = BoolDef True} -- | creates completely new group with a single member - the current user -createNewGroup :: DB.Connection -> StoreCxt -> User -> GroupProfile -> Maybe Profile -> Bool -> MemberId -> Maybe GroupKeys -> Maybe Int64 -> ExceptT StoreError IO GroupInfo -createNewGroup db cxt user@User {userId} groupProfile incognitoProfile useRelays memberId groupKeys publicMemberCount_ = ExceptT $ do +createNewGroup :: DB.Connection -> StoreCxt -> User -> GroupProfile -> Maybe Profile -> MemberId -> GroupKeys -> Maybe Int64 -> ExceptT StoreError IO GroupInfo +createNewGroup db cxt user@User {userId} groupProfile incognitoProfile memberId groupKeys publicMemberCount_ = ExceptT $ do let GroupProfile {displayName, fullName, shortDescr, description, image, publicGroup, groupPreferences, memberAdmission} = groupProfile (groupType_, groupLink_, publicGroupId_) = case publicGroup of Just PublicGroupProfile {groupType, groupLink, publicGroupId} -> (Just groupType, Just groupLink, Just publicGroupId) Nothing -> (Nothing, Nothing, Nothing) fullGroupPreferences = mergeGroupPreferences groupPreferences + useRelays = isPublicGroup groupKeys rosterVersion0 = if useRelays then Just (VersionRoster 0) else Nothing currentTs <- getCurrentTime customUserProfileId <- mapM (createIncognitoProfile_ db userId currentTs) incognitoProfile withLocalDisplayName db userId displayName $ \ldn -> runExceptT $ do - let (rootPrivKey_, rootPubKey_, memberPrivKey_) = case groupKeys of - Nothing -> (Nothing, Nothing, Nothing) - Just GroupKeys {publicGroupKeys, memberPrivKey} -> - let (rpk, rpub) = case publicGroupKeys of - Just PublicGroupKeys {groupRootKey} -> case groupRootKey of - GRKPrivate pk -> (Just pk, Nothing) - GRKPublic k -> (Nothing, Just k) - Nothing -> (Nothing, Nothing) - in (rpk, rpub, Just memberPrivKey) + let (rootPrivKey_, rootPubKey_) = case groupKeys of + GKPublicGroup {groupRootKey} -> case groupRootKey of + GRKPrivate pk -> (Just pk, Nothing) + GRKPublic k -> (Nothing, Just k) + _ -> (Nothing, Nothing) + memberPrivKey_ = Just $ memberPrivKey groupKeys groupId <- liftIO $ do DB.execute db @@ -423,7 +422,7 @@ createNewGroup db cxt user@User {userId} groupProfile incognitoProfile useRelays :. (rootPrivKey_, rootPubKey_, memberPrivKey_, publicMemberCount_, rosterVersion0) ) insertedRowId db - let memberPubKey = C.publicKey . memberPrivKey <$> groupKeys + let memberPubKey = Just $ C.publicKey $ memberPrivKey groupKeys membership <- createContactMemberInv_ db user groupId Nothing user (MemberIdRole memberId GROwner) GCUserMember GSMemCreator IBUser customUserProfileId memberPubKey currentTs (vr cxt) let chatSettings = ChatSettings {enableNtfs = MFAll, sendRcpts = Nothing, favorite = False} pure @@ -451,18 +450,17 @@ createNewGroup db cxt user@User {userId} groupProfile incognitoProfile useRelays customData = Nothing, membersRequireAttention = 0, viaGroupLinkUri = Nothing, - groupKeys, groupDomainVerified = Nothing } -- | creates a new group record for the group the current user was invited to, or returns an existing one -createGroupInvitation :: DB.Connection -> StoreCxt -> User -> Contact -> GroupInvitation -> Maybe ProfileId -> C.KeyPairEd25519 -> ExceptT StoreError IO (GroupInfo, GroupMemberId) +createGroupInvitation :: DB.Connection -> StoreCxt -> User -> Contact -> GroupInvitation -> Maybe ProfileId -> C.KeyPairEd25519 -> ExceptT StoreError IO (GroupInfoKeys, GroupMemberId) createGroupInvitation _ _ _ Contact {localDisplayName, activeConn = Nothing} _ _ _ = throwError $ SEContactNotReady localDisplayName createGroupInvitation db cxt user@User {userId} contact@Contact {contactId, activeConn = Just Connection {peerChatVRange}} GroupInvitation {fromMember, fromMemberKey, invitedMember, connRequest, groupProfile, business} incognitoProfileId memberKeys = do liftIO getInvitationGroupId_ >>= \case Nothing -> createGroupInvitation_ Just gId -> do - gInfo@GroupInfo {membership, groupProfile = p'} <- getGroupInfo db cxt user gId + GIK gInfo@GroupInfo {membership, groupProfile = p'} gks <- getGroupInfoKeys db cxt user gId hostId <- getHostMemberId_ db user gId let GroupMember {groupMemberId, memberId, memberRole} = membership MemberIdRole {memberId = invMemberId, memberRole = invMemberRole} = invitedMember @@ -472,13 +470,13 @@ createGroupInvitation db cxt user@User {userId} contact@Contact {contactId, acti if p' == groupProfile then pure gInfo else updateGroupProfile db user gInfo groupProfile - pure (gInfo', hostId) + pure (GIK gInfo' gks, hostId) where getInvitationGroupId_ :: IO (Maybe Int64) getInvitationGroupId_ = maybeFirstRow fromOnly $ DB.query db "SELECT group_id FROM groups WHERE inv_queue_info = ? AND user_id = ? LIMIT 1" (connRequest, userId) - createGroupInvitation_ :: ExceptT StoreError IO (GroupInfo, GroupMemberId) + createGroupInvitation_ :: ExceptT StoreError IO (GroupInfoKeys, GroupMemberId) createGroupInvitation_ = do let GroupProfile {displayName, fullName, shortDescr, description, image, groupPreferences, memberAdmission} = groupProfile fullGroupPreferences = mergeGroupPreferences groupPreferences @@ -530,9 +528,9 @@ createGroupInvitation db cxt user@User {userId} contact@Contact {contactId, acti customData = Nothing, membersRequireAttention = 0, viaGroupLinkUri = Nothing, - groupKeys = Just GroupKeys {publicGroupKeys = Nothing, memberPrivKey = snd memberKeys}, groupDomainVerified = Nothing - }, + } + `GIK` GKGroup {memberPrivKey = snd memberKeys}, groupMemberId ) @@ -946,10 +944,13 @@ setGroupInvitationChatItemId db User {userId} groupId chatItemId = do -- TODO return the last connection that is ready, not any last connection -- requires updating connection status getGroup :: DB.Connection -> StoreCxt -> User -> GroupId -> ExceptT StoreError IO Group -getGroup db cxt user groupId = do - gInfo <- getGroupInfo db cxt user groupId +getGroup db cxt user groupId = fst <$> getGroupKeys_ db cxt user groupId + +getGroupKeys_ :: DB.Connection -> StoreCxt -> User -> GroupId -> ExceptT StoreError IO (Group, GroupKeys) +getGroupKeys_ db cxt user groupId = do + GIK gInfo gks <- getGroupInfoKeys db cxt user groupId members <- liftIO $ getGroupMembers db cxt user gInfo - pure $ Group gInfo members + pure (Group gInfo members, gks) deleteGroupChatItems :: DB.Connection -> User -> GroupInfo -> IO () deleteGroupChatItems db User {userId} GroupInfo {groupId} = @@ -1054,7 +1055,7 @@ getInProgressGroups db cxt user@User {userId} createdAtCutoff = do getBaseGroupDetails :: DB.Connection -> StoreCxt -> User -> Maybe ContactId -> Maybe Text -> IO [GroupInfo] getBaseGroupDetails db cxt User {userId, userContactId} _contactId_ search_ = do currentTs <- getCurrentTime - map (toGroupInfo currentTs cxt userContactId []) + map (toGroupInfo_ currentTs cxt userContactId []) <$> DB.query db (groupInfoQuery <> " " <> condition) (userId, userContactId, search, search, search, search) where condition = @@ -1361,11 +1362,11 @@ getGroupInvitation :: DB.Connection -> StoreCxt -> User -> GroupId -> ExceptT St getGroupInvitation db cxt user groupId = getConnRec_ user >>= \case Just connRequest -> do - groupInfo@GroupInfo {membership} <- getGroupInfo db cxt user groupId + GIK groupInfo@GroupInfo {membership} groupKeys <- getGroupInfoKeys db cxt user groupId when (memberStatus membership /= GSMemInvited) $ throwError SEGroupAlreadyJoined hostId <- getHostMemberId_ db user groupId fromMember <- getGroupMember db cxt user groupId hostId - pure ReceivedGroupInvitation {fromMember, connRequest, groupInfo} + pure ReceivedGroupInvitation {fromMember, connRequest, groupInfo, groupKeys} _ -> throwError SEGroupInvitationNotFound where getConnRec_ :: User -> ExceptT StoreError IO (Maybe ConnReqInvitation) @@ -1695,12 +1696,6 @@ setGroupMemberKeyRole db GroupMember {groupMemberId} pubKey role = do currentTs <- getCurrentTime DB.execute db "UPDATE group_members SET member_pub_key = ?, member_role = ?, updated_at = ? WHERE group_member_id = ?" (pubKey, role, currentTs, groupMemberId) -setUserMemberKey :: DB.Connection -> GroupId -> GroupMemberId -> C.PrivateKeyEd25519 -> IO () -setUserMemberKey db groupId membershipId memberPrivKey = do - currentTs <- getCurrentTime - DB.execute db "UPDATE groups SET member_priv_key = ?, updated_at = ? WHERE group_id = ?" (memberPrivKey, currentTs, groupId) - DB.execute db "UPDATE group_members SET member_pub_key = ?, updated_at = ? WHERE group_member_id = ?" (C.publicKey memberPrivKey, currentTs, membershipId) - setMemberPubKey :: DB.Connection -> GroupMemberId -> C.PublicKeyEd25519 -> IO () setMemberPubKey db groupMemberId pubKey = do currentTs <- getCurrentTime @@ -1914,13 +1909,13 @@ createRelayRequestGroup db cxt user@User {userId} GroupRelayInvitation {fromMemb groupPreferences = Nothing, memberAdmission = Nothing } - (groupId, _groupLDN) <- createGroup_ db userId placeholderProfile Nothing Nothing True (Just relayStatus) Nothing Nothing currentTs + (_, memberPrivKey) <- atomically $ C.generateKeyPair (drg cxt) + (groupId, _groupLDN) <- createGroup_ db userId placeholderProfile Nothing Nothing True (Just relayStatus) Nothing (Just memberPrivKey) currentTs -- Store relay request data for recovery liftIO $ setRelayRequestData_ groupId currentTs ownerMemberId <- insertOwner_ currentTs groupId let relayMember = MemberIdRole relayMemberId GRRelay - -- TODO [member keys] should relays use member keys? - _membership <- createContactMemberInv_ db user groupId (Just ownerMemberId) user relayMember GCUserMember memberStatus IBUnknown Nothing Nothing currentTs (vr cxt) + _membership <- createContactMemberInv_ db user groupId (Just ownerMemberId) user relayMember GCUserMember memberStatus IBUnknown Nothing (Just $ C.publicKey memberPrivKey) currentTs (vr cxt) ownerMember <- getGroupMember db cxt user groupId ownerMemberId g <- getGroupInfo db cxt user groupId pure (g, ownerMember) @@ -2015,16 +2010,17 @@ isRelayGroupRejected db User {userId} groupLink = (userId, groupLink, RSRejected) ) -getRelayServedGroups :: DB.Connection -> StoreCxt -> User -> IO [GroupInfo] +getRelayServedGroups :: DB.Connection -> StoreCxt -> User -> ExceptT StoreError IO [GroupInfoKeys] getRelayServedGroups db cxt User {userId, userContactId} = do - currentTs <- getCurrentTime - map (toGroupInfo currentTs cxt userContactId []) + currentTs <- liftIO getCurrentTime + rows <- liftIO $ map (toGroupInfo currentTs cxt userContactId []) <$> DB.query db ( groupInfoQuery <> " WHERE g.user_id = ? AND mu.contact_id = ? AND g.relay_own_status IN (?, ?, ?)" ) (userId, userContactId, RSAccepted, RSAcknowledgedRoster, RSActive) + forM rows $ \(g, keysData) -> GIK g <$> mkGroupKeys db cxt g keysData getRelayPublishableGroups :: DB.Connection -> User -> IO [(Int64, B64UrlByteString, Maybe PublicGroupAccess)] getRelayPublishableGroups db User {userId, userContactId} = @@ -2062,7 +2058,7 @@ getRelayInactiveGroups :: DB.Connection -> StoreCxt -> User -> NominalDiffTime - getRelayInactiveGroups db cxt User {userId, userContactId} ttl = do currentTs <- getCurrentTime let cutoffTs = addUTCTime (- ttl) currentTs - map (toGroupInfo currentTs cxt userContactId []) + map (toGroupInfo_ currentTs cxt userContactId []) <$> DB.query db ( groupInfoQuery @@ -2149,7 +2145,7 @@ createJoiningMemberConnection Connection {connId} <- createConnection_ db userId ConnMember (Just groupMemberId) agentConnId ConnNew chatV cReqChatVRange Nothing (Just uclId) Nothing 0 createdAt subMode PQSupportOff setCommandConnId db user cmdId connId -createBusinessRequestGroup :: DB.Connection -> StoreCxt -> TVar ChaChaDRG -> User -> VersionRangeChat -> Profile -> Int64 -> Text -> GroupPreferences -> ExceptT StoreError IO (GroupInfo, GroupMember) +createBusinessRequestGroup :: DB.Connection -> StoreCxt -> TVar ChaChaDRG -> User -> VersionRangeChat -> Profile -> Int64 -> Text -> GroupPreferences -> ExceptT StoreError IO (GroupInfoKeys, GroupMember) createBusinessRequestGroup db cxt @@ -2164,7 +2160,7 @@ createBusinessRequestGroup (groupId, membership@GroupMember {memberId = userMemberId}) <- insertGroup_ currentTs (groupMemberId, memberId) <- insertClientMember_ currentTs groupId membership liftIO $ DB.execute db "UPDATE groups SET business_member_id = ?, customer_member_id = ? WHERE group_id = ?" (userMemberId, memberId, groupId) - groupInfo <- getGroupInfo db cxt user groupId + groupInfo <- getGroupInfoKeys db cxt user groupId clientMember <- getGroupMemberById db cxt user groupMemberId pure (groupInfo, clientMember) where @@ -2250,14 +2246,14 @@ createMemberConnectionAsync db user@User {userId} groupMemberId (cmdId, agentCon -- which is used in single-connection flows. updatePreparedRelayedGroup :: DB.Connection -> StoreCxt -> User -> GroupInfo -> ConnReqContact -> ConnReqUriHash -> Maybe Profile -> - C.PublicKeyEd25519 -> C.PrivateKeyEd25519 -> Maybe Int64 -> - ExceptT StoreError IO GroupInfo -updatePreparedRelayedGroup db cxt user@User {userId} gInfo cReq cReqHash incognitoProfile rootPubKey memberPrivKey publicMemberCount_ = do + C.PublicKeyEd25519 -> Maybe Int64 -> + ExceptT StoreError IO GroupInfoKeys +updatePreparedRelayedGroup db cxt user@User {userId} gInfo cReq cReqHash incognitoProfile rootPubKey publicMemberCount_ = do currentTs <- liftIO getCurrentTime customUserProfileId <- liftIO $ mapM (createIncognitoProfile_ db userId currentTs) incognitoProfile liftIO $ setPreparedGroupLinkInfo_ db gInfo cReq cReqHash customUserProfileId publicMemberCount_ currentTs - liftIO $ updateGroupMemberKeys db (groupId' gInfo) rootPubKey memberPrivKey (groupMemberId' $ membership gInfo) - getGroupInfo db cxt user (groupId' gInfo) + liftIO $ setGroupRootKey db (groupId' gInfo) rootPubKey + getGroupInfoKeys db cxt user (groupId' gInfo) updatePublicMemberCount :: DB.Connection -> StoreCxt -> User -> GroupInfo -> ExceptT StoreError IO GroupInfo updatePublicMemberCount db cxt user GroupInfo {groupId} = do @@ -2284,23 +2280,15 @@ setPublicMemberCount db cxt user GroupInfo {groupId} publicCount = do liftIO $ DB.execute db "UPDATE groups SET public_member_count = ?, updated_at = ? WHERE group_id = ?" (publicCount, currentTs, groupId) getGroupInfo db cxt user groupId -updateGroupMemberKeys :: DB.Connection -> GroupId -> C.PublicKeyEd25519 -> C.PrivateKeyEd25519 -> GroupMemberId -> IO () -updateGroupMemberKeys db groupId rootPubKey memberPrivKey membershipGMId = do +setGroupRootKey :: DB.Connection -> GroupId -> C.PublicKeyEd25519 -> IO () +setGroupRootKey db groupId rootPubKey = do currentTs <- getCurrentTime - DB.execute - db - "UPDATE groups SET root_pub_key = ?, member_priv_key = ?, updated_at = ? WHERE group_id = ?" - (rootPubKey, memberPrivKey, currentTs, groupId) - DB.execute - db - "UPDATE group_members SET member_pub_key = ?, updated_at = ? WHERE group_member_id = ?" - (C.publicKey memberPrivKey, currentTs, membershipGMId) + DB.execute db "UPDATE groups SET root_pub_key = ?, updated_at = ? WHERE group_id = ?" (rootPubKey, currentTs, groupId) -updateRelayGroupKeys :: DB.Connection -> User -> GroupInfo -> PublicGroupProfile -> C.PublicKeyEd25519 -> C.PrivateKeyEd25519 -> [OwnerAuth] -> ExceptT StoreError IO () -updateRelayGroupKeys db user@User {userId} gInfo PublicGroupProfile {groupType, groupLink, publicGroupId} rootPubKey memberPrivKey owners = do +updateRelayGroupKeys :: DB.Connection -> User -> GroupInfo -> PublicGroupProfile -> C.PublicKeyEd25519 -> [OwnerAuth] -> ExceptT StoreError IO () +updateRelayGroupKeys db user@User {userId} gInfo PublicGroupProfile {groupType, groupLink, publicGroupId} rootPubKey owners = do currentTs <- liftIO getCurrentTime - let membershipGMId = groupMemberId' $ membership gInfo - groupId = groupId' gInfo + let groupId = groupId' gInfo liftIO $ do DB.execute db @@ -2309,14 +2297,7 @@ updateRelayGroupKeys db user@User {userId} gInfo PublicGroupProfile {groupType, WHERE group_profile_id IN (SELECT group_profile_id FROM groups WHERE user_id = ? AND group_id = ?) |] (groupType, groupLink, publicGroupId, currentTs, userId, groupId) - DB.execute - db - "UPDATE groups SET root_pub_key = ?, member_priv_key = ?, updated_at = ? WHERE group_id = ?" - (rootPubKey, memberPrivKey, currentTs, groupId) - DB.execute - db - "UPDATE group_members SET member_pub_key = ?, updated_at = ? WHERE group_member_id = ?" - (C.publicKey memberPrivKey, currentTs, membershipGMId) + setGroupRootKey db groupId rootPubKey -- TODO [relays] relay: if not found, create owner record (multi-owner) forM_ owners $ \OwnerAuth {ownerId, ownerKey} -> do ownerGMId <- getGroupMemberIdViaMemberId db user gInfo (MemberId ownerId) diff --git a/src/Simplex/Chat/Store/SQLite/Migrations/chat_query_plans.txt b/src/Simplex/Chat/Store/SQLite/Migrations/chat_query_plans.txt index fd518f855e..e887bb2548 100644 --- a/src/Simplex/Chat/Store/SQLite/Migrations/chat_query_plans.txt +++ b/src/Simplex/Chat/Store/SQLite/Migrations/chat_query_plans.txt @@ -1870,6 +1870,15 @@ Query: Plan: SEARCH group_members USING INTEGER PRIMARY KEY (rowid=?) +Query: + UPDATE groups + SET member_priv_key = COALESCE(member_priv_key, ?), updated_at = ? + WHERE group_id = ? + RETURNING member_priv_key + +Plan: +SEARCH groups USING INTEGER PRIMARY KEY (rowid=?) + Query: UPDATE groups SET relay_request_inv_id = ?, @@ -7587,10 +7596,22 @@ Query: SELECT member_id FROM group_members WHERE member_role = ? LIMIT 1 Plan: SCAN group_members +Query: SELECT member_priv_key FROM groups +Plan: +SCAN groups + Query: SELECT member_pub_key FROM group_members WHERE local_display_name = ? Plan: SCAN group_members +Query: SELECT member_pub_key FROM group_members WHERE member_category = 'host' +Plan: +SCAN group_members + +Query: SELECT member_pub_key FROM group_members WHERE member_category = 'user' +Plan: +SCAN group_members + Query: SELECT member_pub_key FROM group_members WHERE member_role = 'moderator' Plan: SCAN group_members @@ -7967,6 +7988,14 @@ Query: UPDATE group_members SET member_pub_key = ?, updated_at = ? WHERE group_m Plan: SEARCH group_members USING INTEGER PRIMARY KEY (rowid=?) +Query: UPDATE group_members SET member_pub_key = NULL WHERE member_category = 'host' +Plan: +SCAN group_members + +Query: UPDATE group_members SET member_pub_key = NULL WHERE member_category = 'user' +Plan: +SCAN group_members + Query: UPDATE group_members SET member_relations_vector = set_member_vector_new_relation(member_relations_vector, ?, ?, ?), updated_at = ? WHERE group_member_id = ? Plan: SEARCH group_members USING INTEGER PRIMARY KEY (rowid=?) @@ -8059,6 +8088,10 @@ Query: UPDATE groups SET local_display_name = ?, updated_at = ? WHERE user_id = Plan: SEARCH groups USING INTEGER PRIMARY KEY (rowid=?) +Query: UPDATE groups SET member_priv_key = NULL +Plan: +SCAN groups + Query: UPDATE groups SET members_require_attention=1 WHERE group_id=? Plan: SEARCH groups USING INTEGER PRIMARY KEY (rowid=?) @@ -8079,7 +8112,7 @@ Query: UPDATE groups SET request_shared_msg_id = ? WHERE group_id = ? Plan: SEARCH groups USING INTEGER PRIMARY KEY (rowid=?) -Query: UPDATE groups SET root_pub_key = ?, member_priv_key = ?, updated_at = ? WHERE group_id = ? +Query: UPDATE groups SET root_pub_key = ?, updated_at = ? WHERE group_id = ? Plan: SEARCH groups USING INTEGER PRIMARY KEY (rowid=?) diff --git a/src/Simplex/Chat/Store/Shared.hs b/src/Simplex/Chat/Store/Shared.hs index c98609a065..8eeefa328f 100644 --- a/src/Simplex/Chat/Store/Shared.hs +++ b/src/Simplex/Chat/Store/Shared.hs @@ -694,18 +694,21 @@ type GroupMemberRow = (GroupMemberId, GroupId, Int64, MemberId, VersionChat, Ver type ProfileRow = (ProfileId, ContactName, Text, Maybe Text, Maybe Text, Maybe ImageData, Maybe ConnLinkContact, Maybe ChatPeerType, LocalAlias, Maybe Preferences) :. BadgeRow :. ContactDomainRow -toGroupInfo :: UTCTime -> StoreCxt -> Int64 -> [ChatTagId] -> GroupInfoRow -> GroupInfo +toGroupInfo :: UTCTime -> StoreCxt -> Int64 -> [ChatTagId] -> GroupInfoRow -> (GroupInfo, GroupKeysRow) toGroupInfo now cxt userContactId chatTags ((groupId, localDisplayName, displayName, fullName, shortDescr, localAlias, description, image, groupType_, groupLink_, publicGroupId_) :. accessRow :. (enableNtfs_, sendRcpts, BI favorite, groupPreferences, memberAdmission) :. (createdAt, updatedAt, chatTs, userMemberProfileSentAt) :. preparedGroupRow :. businessRow :. (BI useRelays, relayOwnStatus, uiThemes, currentMembers, publicMemberCount, rosterVersion, customData, chatItemTTL, membersRequireAttention, viaGroupLinkUri, groupDomainVerified) :. groupKeysRow :. userMemberRow) = let membership = (toGroupMember now userContactId userMemberRow) {memberChatVRange = vr cxt} chatSettings = ChatSettings {enableNtfs = fromMaybe MFAll enableNtfs_, sendRcpts = unBI <$> sendRcpts, favorite} fullGroupPreferences = mergeGroupPreferences groupPreferences publicGroup = toPublicGroupProfile groupType_ groupLink_ publicGroupId_ (toPublicGroupAccess accessRow) - groupKeys = toGroupKeys publicGroupId_ groupKeysRow groupProfile = GroupProfile {displayName, fullName, shortDescr, description, image, publicGroup, groupPreferences, memberAdmission} businessChat = toBusinessChatInfo (toPublicGroupAccess accessRow >>= groupDomainClaim) businessRow preparedGroup = toPreparedGroup preparedGroupRow groupSummary = GroupSummary {currentMembers, publicMemberCount} - in GroupInfo {groupId, useRelays = BoolDef useRelays, relayOwnStatus, localDisplayName, groupProfile, localAlias, businessChat, fullGroupPreferences, membership, chatSettings, createdAt, updatedAt, chatTs, userMemberProfileSentAt, preparedGroup, chatTags, chatItemTTL, uiThemes, groupSummary, rosterVersion, customData, membersRequireAttention, viaGroupLinkUri, groupKeys, groupDomainVerified = unBI <$> groupDomainVerified} + gInfo = GroupInfo {groupId, useRelays = BoolDef useRelays, relayOwnStatus, localDisplayName, groupProfile, localAlias, businessChat, fullGroupPreferences, membership, chatSettings, createdAt, updatedAt, chatTs, userMemberProfileSentAt, preparedGroup, chatTags, chatItemTTL, uiThemes, groupSummary, rosterVersion, customData, membersRequireAttention, viaGroupLinkUri, groupDomainVerified = unBI <$> groupDomainVerified} + in (gInfo, groupKeysRow) + +toGroupInfo_ :: UTCTime -> StoreCxt -> Int64 -> [ChatTagId] -> GroupInfoRow -> GroupInfo +toGroupInfo_ now cxt userContactId chatTags row = fst $ toGroupInfo now cxt userContactId chatTags row toPreparedGroup :: PreparedGroupRow -> Maybe PreparedGroup toPreparedGroup = \case @@ -733,13 +736,35 @@ toPublicGroupAccess (groupWebPage, groupDomain_, domainWebPage_, allowEmbedding_ domainWebPage = maybe False unBI domainWebPage_ allowEmbedding = maybe False unBI allowEmbedding_ -toGroupKeys :: Maybe B64UrlByteString -> GroupKeysRow -> Maybe GroupKeys -toGroupKeys publicGroupId_ (rootPrivKey, rootPubKey, memberPrivKey) = - let publicGroupKeys = case (publicGroupId_, GRKPrivate <$> rootPrivKey <|> GRKPublic <$> rootPubKey) of - (Just publicGroupId, Just groupRootKey) -> Just $ Just PublicGroupKeys {publicGroupId, groupRootKey} - (Nothing, Nothing) -> Just Nothing - _ -> Nothing -- invalid state, in which case messages won't be signed even if memberPrivKey is present - in GroupKeys <$> publicGroupKeys <*> memberPrivKey +mkGroupKeys :: DB.Connection -> StoreCxt -> GroupInfo -> GroupKeysRow -> ExceptT StoreError IO GroupKeys +mkGroupKeys db cxt g@GroupInfo {groupId, groupProfile = GroupProfile {publicGroup}, membership} (rootPrivKey, rootPubKey, memberPrivKey_) = do + memberPrivKey <- case memberPrivKey_ of + Just k -> pure k + Nothing -> do + (_, k) <- atomically $ C.generateKeyPair (drg cxt) + setUserMemberKey db groupId (groupMemberId' membership) k + pure $ case (useRelays' g, isJust publicGroup, GRKPrivate <$> rootPrivKey <|> GRKPublic <$> rootPubKey) of + (False, _, _) -> GKGroup {memberPrivKey} + (True, True, Just groupRootKey) -> GKPublicGroup {groupRootKey, memberPrivKey} + (True, True, Nothing) -> GKPreparedPublicGroup {memberPrivKey} + (True, False, _) -> GKRelayRequest {memberPrivKey} + +setUserMemberKey :: DB.Connection -> GroupId -> GroupMemberId -> C.PrivateKeyEd25519 -> ExceptT StoreError IO C.PrivateKeyEd25519 +setUserMemberKey db groupId membershipId newKey = do + currentTs <- liftIO getCurrentTime + memberPrivKey <- + ExceptT . firstRow fromOnly (SEGroupNotFound groupId) $ + DB.query + db + [sql| + UPDATE groups + SET member_priv_key = COALESCE(member_priv_key, ?), updated_at = ? + WHERE group_id = ? + RETURNING member_priv_key + |] + (newKey, currentTs, groupId) + liftIO $ DB.execute db "UPDATE group_members SET member_pub_key = ?, updated_at = ? WHERE group_member_id = ?" (C.publicKey memberPrivKey, currentTs, membershipId) + pure memberPrivKey toGroupMember :: UTCTime -> Int64 -> GroupMemberRow -> GroupMember toGroupMember now userContactId ((groupMemberId, groupId, indexInGroup, memberId, minVer, maxVer, memberRole, memberCategory, memberStatus, BI showMessages, memberRestriction_) :. (invitedById, invitedByGroupMemberId, localDisplayName, memberContactId, memberContactProfileId) :. profileRow :. (createdAt, updatedAt) :. (supportChatTs_, supportChatUnread, supportChatMemberAttention, supportChatMentions, supportChatLastMsgFromMemberTs, memberPubKey, relayLink, memberCode_, memberCodeVerifiedAt_)) = @@ -901,8 +926,18 @@ addGroupChatTags db g@GroupInfo {groupId} = do chatTags <- getGroupChatTags db groupId pure (g :: GroupInfo) {chatTags} +getGroupInfoKeys :: DB.Connection -> StoreCxt -> User -> Int64 -> ExceptT StoreError IO GroupInfoKeys +getGroupInfoKeys db cxt user groupId = do + (g@GroupInfo {membership}, keysData) <- getGroupInfoRow db cxt user groupId + gks <- mkGroupKeys db cxt g keysData + let membership' = membership {memberPubKey = Just $ C.publicKey $ memberPrivKey gks} :: GroupMember + pure $ GIK (g :: GroupInfo) {membership = membership'} gks + getGroupInfo :: DB.Connection -> StoreCxt -> User -> Int64 -> ExceptT StoreError IO GroupInfo -getGroupInfo db cxt User {userId, userContactId} groupId = ExceptT $ do +getGroupInfo db cxt user groupId = fst <$> getGroupInfoRow db cxt user groupId + +getGroupInfoRow :: DB.Connection -> StoreCxt -> User -> Int64 -> ExceptT StoreError IO (GroupInfo, GroupKeysRow) +getGroupInfoRow db cxt User {userId, userContactId} groupId = ExceptT $ do currentTs <- getCurrentTime chatTags <- getGroupChatTags db groupId firstRow (toGroupInfo currentTs cxt userContactId chatTags) (SEGroupNotFound groupId) $ diff --git a/src/Simplex/Chat/Types.hs b/src/Simplex/Chat/Types.hs index 7bfd2f299d..282d6b2fda 100644 --- a/src/Simplex/Chat/Types.hs +++ b/src/Simplex/Chat/Types.hs @@ -30,7 +30,9 @@ module Simplex.Chat.Types where import Control.Applicative ((<|>)) +import Control.Concurrent.STM (TVar) import Crypto.Number.Serialize (os2ip) +import Crypto.Random (ChaChaDRG) import Data.Aeson (FromJSON (..), ToJSON (..)) import qualified Data.Aeson as J import qualified Data.Aeson.Encoding as JE @@ -437,7 +439,7 @@ instance ToJSON ConnReqUriHash where data RequestEntity = REContact Contact - | REBusinessChat GroupInfo GroupMember + | REBusinessChat GroupInfoKeys GroupMember type RepeatRequest = Bool @@ -479,17 +481,30 @@ groupRootPubKey :: GroupRootKey -> C.PublicKeyEd25519 groupRootPubKey (GRKPrivate pk) = C.publicKey pk groupRootPubKey (GRKPublic pk) = pk -data GroupKeys = GroupKeys - { publicGroupKeys :: Maybe PublicGroupKeys, - memberPrivKey :: C.PrivateKeyEd25519 - } +data GroupKeys + = GKGroup + { memberPrivKey :: C.PrivateKeyEd25519 + } + | GKPublicGroup + { groupRootKey :: GroupRootKey, + memberPrivKey :: C.PrivateKeyEd25519 + } + | GKRelayRequest + { memberPrivKey :: C.PrivateKeyEd25519 + } + | GKPreparedPublicGroup + { memberPrivKey :: C.PrivateKeyEd25519 + } deriving (Eq, Show) -data PublicGroupKeys = PublicGroupKeys - { publicGroupId :: B64UrlByteString, - groupRootKey :: GroupRootKey - } - deriving (Eq, Show) +isPublicGroup :: GroupKeys -> Bool +isPublicGroup = \case + GKGroup {} -> False + GKPublicGroup {} -> True + GKRelayRequest {} -> True + GKPreparedPublicGroup {} -> True + +data GroupInfoKeys = GIK GroupInfo GroupKeys data GroupInfo = GroupInfo { groupId :: GroupId, @@ -515,7 +530,6 @@ data GroupInfo = GroupInfo rosterVersion :: Maybe VersionRoster, membersRequireAttention :: Int, viaGroupLinkUri :: Maybe ConnReqContact, - groupKeys :: Maybe GroupKeys, groupDomainVerified :: Maybe Bool } deriving (Eq, Show) @@ -523,6 +537,9 @@ data GroupInfo = GroupInfo useRelays' :: GroupInfo -> Bool useRelays' GroupInfo {useRelays} = isTrue useRelays +publicGroup' :: GroupInfo -> Maybe PublicGroupProfile +publicGroup' g@GroupInfo {groupProfile = GroupProfile {publicGroup}} = if useRelays' g then publicGroup else Nothing + relayServesGroup :: GroupInfo -> Bool relayServesGroup GroupInfo {relayOwnStatus} = case relayOwnStatus of Just RSInactive -> False @@ -595,7 +612,7 @@ data GroupLink = GroupLink data ContactOrGroup = CGContact Contact | CGGroup GroupInfo [GroupMember] -data PreparedChatEntity = PCEContact Contact | PCEGroup {groupInfo :: GroupInfo, hostMember :: GroupMember} +data PreparedChatEntity = PCEContact Contact | PCEGroup {groupInfo :: GroupInfoKeys, hostMember :: GroupMember} contactAndGroupIds :: ContactOrGroup -> (Maybe ContactId, Maybe GroupId) contactAndGroupIds = \case @@ -1145,7 +1162,8 @@ memberRestrictions m data ReceivedGroupInvitation = ReceivedGroupInvitation { fromMember :: GroupMember, connRequest :: ConnReqInvitation, - groupInfo :: GroupInfo + groupInfo :: GroupInfo, + groupKeys :: GroupKeys } deriving (Eq, Show) @@ -2240,8 +2258,8 @@ type VersionChat = Version ChatVersion type VersionRangeChat = VersionRange ChatVersion -- | Store-wide context passed to store functions in place of the bare `vr` --- parameter. Built from config by mkStoreCxt; more fields are added here over time. -data StoreCxt = StoreCxt {vr :: VersionRangeChat, badgeKeys :: Map Int BBSPublicKey} +-- parameter. Built from config by storeCxt; more fields are added here over time. +data StoreCxt = StoreCxt {vr :: VersionRangeChat, badgeKeys :: Map Int BBSPublicKey, drg :: TVar ChaChaDRG} pattern VersionChat :: Word16 -> VersionChat pattern VersionChat v = Version v @@ -2347,12 +2365,6 @@ instance FromJSON GroupSummary where parseJSON = $(JQ.mkParseJSON defaultJSON ''GroupSummary) omittedField = Just GroupSummary {currentMembers = 0, publicMemberCount = Nothing} -$(JQ.deriveJSON (sumTypeJSON $ dropPrefix "GRK") ''GroupRootKey) - -$(JQ.deriveJSON defaultJSON ''PublicGroupKeys) - -$(JQ.deriveJSON defaultJSON ''GroupKeys) - $(JQ.deriveJSON defaultJSON ''GroupInfo) $(JQ.deriveJSON defaultJSON ''Group) diff --git a/src/Simplex/Chat/Web.hs b/src/Simplex/Chat/Web.hs index 9720116d91..30d674d55f 100644 --- a/src/Simplex/Chat/Web.hs +++ b/src/Simplex/Chat/Web.hs @@ -42,7 +42,7 @@ import Data.Text (Text) import qualified Data.Text as T import qualified Data.Text.IO as TIO import Data.Time.Clock (UTCTime, getCurrentTime) -import Simplex.Chat.Controller (ChatController (..), CorsOrigin (..), PublishableGroup (..), WebPreviewConfig (..), WebPreviewState (..), mkStoreCxt) +import Simplex.Chat.Controller (ChatController (..), CorsOrigin (..), PublishableGroup (..), WebPreviewConfig (..), WebPreviewState (..), storeCxt) import Simplex.Chat.Markdown (FormattedText (..), MarkdownList, parseMaybeMarkdownList) import Simplex.Chat.Messages ( CChatItem (..), @@ -137,7 +137,7 @@ webPreviewWorker cfg@WebPreviewConfig {webJsonDir, webCorsFile, webUpdateInterva seedRoutinePending wps forever $ workerLoop wps `catchOwn` \e -> logError ("web preview worker error: " <> tshow e) where - cxt = mkStoreCxt (config cc) + cxt = storeCxt cc workerLoop wps@WebPreviewState {priorityRender, filesToRemove, corsNeeded, routinePending, wakeSignal} = do drainRemovals @@ -262,7 +262,7 @@ renderGroupPreview WebPreviewConfig {webJsonDir, webPreviewItemCount} cc user gI pure $ corsEntry publicGroupId <$> publicGroupAccess Nothing -> pure Nothing where - cxt = mkStoreCxt (config cc) + cxt = storeCxt cc channelContentChanged :: ChatController -> Int64 -> STM () channelContentChanged cc gId = diff --git a/tests/ChatTests/Groups.hs b/tests/ChatTests/Groups.hs index e17de3a766..66deaae225 100644 --- a/tests/ChatTests/Groups.hs +++ b/tests/ChatTests/Groups.hs @@ -114,6 +114,7 @@ chatGroupTests = do it "shared batch body reference across binary and json members" testGroupSharedBatchBodyMixedModes it "shared batch body reused across binary and json members" testSharedBatchBodyMixed it "all old members group upgrades to current version" testGroupAllOldThenUpgrade + it "member key is generated at the first read of a group created without one" testGroupMemberKeyGenerated describe "async group connections" $ do xit "create and join group when clients go offline" testGroupAsync describe "group links" $ do @@ -2594,6 +2595,60 @@ testGroupAllOldThenUpgrade ps = where oldCfg = testCfg {chatVRange = mkVersionRange (VersionChat 9) (VersionChat 17)} +testGroupMemberKeyGenerated :: HasCallStack => TestParams -> IO () +testGroupMemberKeyGenerated = + testChat2 aliceProfile bobProfile $ \alice bob -> do + alice ##> "/g team" + alice <## "group #team is created" + alice <## "to add members use /a team or /create link #team" + alice ##> "/create link #team" + gLink <- getGroupLink alice "team" GRMember True + bob ##> ("/c " <> gLink) + bob <## "connection request sent!" + alice <## "bob (Bob): accepting request to join group #team..." + concurrentlyN_ + [ alice <## "#team: bob joined the group", + do + bob <## "#team: joining the group..." + bob <## "#team: you joined the group" + ] + alice #> "#team hi0" + bob <# "#team alice> hi0" + void $ withCCTransaction alice $ \db -> do + DB.execute_ db "UPDATE groups SET member_priv_key = NULL" + DB.execute_ db "UPDATE group_members SET member_pub_key = NULL WHERE member_category = 'user'" + void $ withCCTransaction bob $ \db -> + DB.execute_ db "UPDATE group_members SET member_pub_key = NULL WHERE member_category = 'host'" + alice ##> "/p alisa" + alice <## "user profile is changed to alisa (your 0 contacts are notified)" + alice #> "#team hi1" + bob <# "#team alisa> hi1" + bob ##> "/_get chat #1 count=100" + r <- chat <$> getTermLine bob + r `shouldContain` [(0, "updated profile (signed, no key to verify)")] + privKey1 <- alicePrivKey alice + pubKey1 <- alicePubKey alice + bobKnownKey <- withCCTransaction bob $ \db -> + DB.query_ db "SELECT member_pub_key FROM group_members WHERE member_category = 'host'" :: IO [Only (Maybe C.PublicKeyEd25519)] + (C.publicKey <$> privKey1) `shouldBe` pubKey1 + bobKnownKey `shouldBe` [Only pubKey1] + alice ##> "/p alisa2" + alice <## "user profile is changed to alisa2 (your 0 contacts are notified)" + alice #> "#team hi2" + bob <# "#team alisa2> hi2" + bob ##> "/_get chat #1 count=100" + r' <- chat <$> getTermLine bob + r' `shouldContain` [(0, "updated profile (signed)")] + privKey2 <- alicePrivKey alice + privKey2 `shouldBe` privKey1 + where + alicePrivKey alice = do + [Only k] <- withCCTransaction alice $ \db -> DB.query_ db "SELECT member_priv_key FROM groups" :: IO [Only (Maybe C.PrivateKeyEd25519)] + pure k + alicePubKey alice = do + [Only k] <- withCCTransaction alice $ \db -> DB.query_ db "SELECT member_pub_key FROM group_members WHERE member_category = 'user'" :: IO [Only (Maybe C.PublicKeyEd25519)] + pure k + testGroupAsync :: HasCallStack => TestParams -> IO () testGroupAsync ps = do withNewTestChat ps "alice" aliceProfile $ \alice -> do diff --git a/tests/ChatTests/Profiles.hs b/tests/ChatTests/Profiles.hs index 743bd5be52..10cb6e45ff 100644 --- a/tests/ChatTests/Profiles.hs +++ b/tests/ChatTests/Profiles.hs @@ -24,7 +24,7 @@ import Data.Time.Clock.POSIX (posixSecondsToUTCTime) import Data.Time.Format (defaultTimeLocale, formatTime) import qualified Data.Map.Strict as M import Simplex.Chat.Badges (BadgeCredential, BadgeInfo (..), BadgePurchase (..), BadgeRequest (..), BadgeType (..), generateMasterKey, issueBadge, verifyPayment) -import Simplex.Chat.Controller (ChatConfig (..), ChatController (..), ChatHooks (..), defaultChatHooks, mkStoreCxt) +import Simplex.Chat.Controller (ChatConfig (..), ChatHooks (..), defaultChatHooks, storeCxt) import Simplex.Chat.Options (ChatOpts (..), CoreChatOpts (..)) import Simplex.Chat.Protocol (LinkOwnerSig, MsgChatLink (..), MsgContent (..)) import Simplex.Chat.Store.Shared (createContact) @@ -1611,13 +1611,13 @@ testPlanAddressContactViaAddress = Left _ -> error "error parsing contact link" Right cReq -> do let profile = aliceProfile {contactLink = Just cReq} - void $ withCCUser bob $ \user -> withCCTransaction bob $ \db -> let TestCC {chatController = ChatController {config}} = bob in runExceptT $ createContact db (mkStoreCxt config) user profile + void $ withCCUser bob $ \user -> withCCTransaction bob $ \db -> runExceptT $ createContact db (storeCxt $ chatController bob) user profile bob @@@ [("@alice", "")] bob ##> "/delete @alice" bob <## "alice: contact is deleted" - void $ withCCUser bob $ \user -> withCCTransaction bob $ \db -> let TestCC {chatController = ChatController {config}} = bob in runExceptT $ createContact db (mkStoreCxt config) user profile + void $ withCCUser bob $ \user -> withCCTransaction bob $ \db -> runExceptT $ createContact db (storeCxt $ chatController bob) user profile bob @@@ [("@alice", "")] bob ##> ("/_connect plan 1 " <> cLink) @@ -1632,7 +1632,7 @@ testPlanAddressContactViaAddress = alice ##> "/delete @bob" alice <## "bob: contact is deleted" - void $ withCCUser bob $ \user -> withCCTransaction bob $ \db -> let TestCC {chatController = ChatController {config}} = bob in runExceptT $ createContact db (mkStoreCxt config) user profile + void $ withCCUser bob $ \user -> withCCTransaction bob $ \db -> runExceptT $ createContact db (storeCxt $ chatController bob) user profile bob @@@ [("@alice", "")] -- GUI api @@ -1673,13 +1673,13 @@ testPlanAddressContactViaShortAddress = Left _ -> error "error parsing contact link" Right shortLink -> do let profile = aliceProfile {contactLink = Just shortLink} - void $ withCCUser bob $ \user -> withCCTransaction bob $ \db -> let TestCC {chatController = ChatController {config}} = bob in runExceptT $ createContact db (mkStoreCxt config) user profile + void $ withCCUser bob $ \user -> withCCTransaction bob $ \db -> runExceptT $ createContact db (storeCxt $ chatController bob) user profile bob @@@ [("@alice", "")] bob ##> "/delete @alice" bob <## "alice: contact is deleted" - void $ withCCUser bob $ \user -> withCCTransaction bob $ \db -> let TestCC {chatController = ChatController {config}} = bob in runExceptT $ createContact db (mkStoreCxt config) user profile + void $ withCCUser bob $ \user -> withCCTransaction bob $ \db -> runExceptT $ createContact db (storeCxt $ chatController bob) user profile bob @@@ [("@alice", "")] bob ##> ("/_connect plan 1 " <> sLink) @@ -1694,7 +1694,7 @@ testPlanAddressContactViaShortAddress = alice ##> "/delete @bob" alice <## "bob: contact is deleted" - void $ withCCUser bob $ \user -> withCCTransaction bob $ \db -> let TestCC {chatController = ChatController {config}} = bob in runExceptT $ createContact db (mkStoreCxt config) user profile + void $ withCCUser bob $ \user -> withCCTransaction bob $ \db -> runExceptT $ createContact db (storeCxt $ chatController bob) user profile bob @@@ [("@alice", "")] -- GUI api diff --git a/tests/ChatTests/Utils.hs b/tests/ChatTests/Utils.hs index f16b3ac090..305207fef6 100644 --- a/tests/ChatTests/Utils.hs +++ b/tests/ChatTests/Utils.hs @@ -23,7 +23,7 @@ import Data.List (isPrefixOf, isSuffixOf) import Data.Maybe (fromMaybe) import Data.String import qualified Data.Text as T -import Simplex.Chat.Controller (ChatConfig (..), ChatController (..), mkStoreCxt) +import Simplex.Chat.Controller (ChatConfig (..), ChatController (..), storeCxt) import Simplex.Chat.Library.Commands (maxProfileImageSize) import Simplex.Chat.Markdown (viewName) import Simplex.Chat.Messages.CIContent (e2eInfoNoPQText, e2eInfoPQText) @@ -709,10 +709,10 @@ getCtConn cc contactId = getTestCCContact cc contactId >>= maybe (fail "no conne getTestCCContact :: TestCC -> ContactId -> IO Contact getTestCCContact cc contactId = do - let TestCC {chatController = ChatController {config}} = cc + let TestCC {chatController} = cc withCCTransaction cc $ \db -> withCCUser cc $ \user -> - runExceptT (getContact db (mkStoreCxt config) user contactId) >>= either (fail . show) pure + runExceptT (getContact db (storeCxt chatController) user contactId) >>= either (fail . show) pure lastItemId :: HasCallStack => TestCC -> IO String lastItemId cc = do From 6f85f1d4f0ba96c7b9550eb58de201fc383913d0 Mon Sep 17 00:00:00 2001 From: Narasimha-sc <166327228+Narasimha-sc@users.noreply.github.com> Date: Sat, 19 Sep 2026 07:13:05 +0000 Subject: [PATCH 46/62] android, desktop: offer key verification when member profile is opened from chat (#7486) In channels members are usually connected via relays, so they are memberCurrent but not memberActive, and #7255 widened the condition for requesting the member security code to cover them. It updated GroupChatInfoView and MemberSupportChatView, but not the same code in ChatView, so "Verify security code" is not offered when the profile is opened by tapping member avatar in the chat, while it is offered for the same member in the members list. --- .../kotlin/chat/simplex/common/views/chat/ChatView.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/ChatView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/ChatView.kt index cb36d86230..7e43db2e98 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/ChatView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/ChatView.kt @@ -502,7 +502,7 @@ fun ChatView( groupMembersJob = scope.launch(Dispatchers.Default) { val r = chatModel.controller.apiGroupMemberInfo(chatRh, groupInfo.groupId, member.groupMemberId) val stats = r?.second - val (updatedMember, code) = if (member.memberActive) { + val (updatedMember, code) = if ((member.memberActive || (groupInfo.useRelays && member.memberCurrent)) && member.memberRole != GroupMemberRole.Relay) { val memCode = chatModel.controller.apiGetGroupMemberCode(chatRh, groupInfo.apiId, member.groupMemberId) (memCode?.first ?: r?.first ?: member) to memCode?.second } else { From 463761cc8e883316392bcdfa19edeae8c3e4920f Mon Sep 17 00:00:00 2001 From: Narasimha-sc <166327228+Narasimha-sc@users.noreply.github.com> Date: Sat, 19 Sep 2026 07:31:52 +0000 Subject: [PATCH 47/62] ui: use backward compatible Java api in stripFormattedTextLink (#7464) --- .../kotlin/chat/simplex/common/views/chat/item/TextItemView.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/item/TextItemView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/item/TextItemView.kt index 7e66c15937..da64862c03 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/item/TextItemView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/item/TextItemView.kt @@ -622,7 +622,7 @@ fun stripFormattedTextLink(ft: List?, link: String): List= 0 && result[i].format == null && result[i].text.endsWith("\n")) { result[i] = FormattedText(result[i].text.dropLast(1), null) - if (result[i].text.isEmpty()) result.removeLast() + if (result[i].text.isEmpty()) result.removeAt(result.lastIndex) } return result.ifEmpty { null } } From edd44c5d54f6cae962e71196876b96d082f28282 Mon Sep 17 00:00:00 2001 From: Evgeny Date: Sat, 19 Sep 2026 08:43:49 +0100 Subject: [PATCH 48/62] test: fix compilation in ghc8.10.7 (#7541) Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com> --- tests/ChatTests/Files.hs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/ChatTests/Files.hs b/tests/ChatTests/Files.hs index 55766e905a..14851444a7 100644 --- a/tests/ChatTests/Files.hs +++ b/tests/ChatTests/Files.hs @@ -920,8 +920,8 @@ testFileBadgeProofStatus ps = do withNewTestChatCfg ps (badgeFileCfg pk) "alice" aliceProfile $ \alice -> do now <- getCurrentTime let ph = PHFileInv {chatBinding = "Dalice-binding", fileSize = 272376} - otherBinding = (ph :: ProofPresHeader) {chatBinding = "Dbob-binding"} - otherSize = (ph :: ProofPresHeader) {fileSize = 1} + otherBinding = PHFileInv {chatBinding = "Dbob-binding", fileSize = 272376} + otherSize = PHFileInv {chatBinding = "Dalice-binding", fileSize = 1} proofFor expiry = do cred <- issueTestBadge sk expiry Right badge <- badgeProof pk cred ph From 000244f9a6e7ac1125a13557a01bba49d0694790 Mon Sep 17 00:00:00 2001 From: Evgeny Date: Sat, 19 Sep 2026 09:26:01 +0100 Subject: [PATCH 49/62] docs: supporter badges technical overview (#7535) * docs: supporter badges * improve * update * update * improve * update * correction * update * simplify * revise * corrections --------- Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com> --- docs/protocol/badges-overview.md | 291 +++++++++++++++++++++++++++++++ 1 file changed, 291 insertions(+) create mode 100644 docs/protocol/badges-overview.md diff --git a/docs/protocol/badges-overview.md b/docs/protocol/badges-overview.md new file mode 100644 index 0000000000..7864c6fd0e --- /dev/null +++ b/docs/protocol/badges-overview.md @@ -0,0 +1,291 @@ +Revision 1, 2026-09-18 + +# SimpleX Supporter Badges + +## Table of contents + +- [Introduction](#introduction) + - [What is a badge](#what-is-a-badge) + - [What a badge grants](#what-a-badge-grants) + - [What a badge discloses](#what-a-badge-discloses) + - [Comparison with Signal badges](#comparison-with-signal-badges) + - [Non-goals](#non-goals) +- [Architecture](#architecture) + - [Participants](#participants) + - [Service requests](#service-requests) + - [Buying and redeeming](#buying-and-redeeming) + - [Monthly issuance](#monthly-issuance) + - [Presentation](#presentation) + - [Servers](#servers) +- [Cryptographic primitives](#cryptographic-primitives) +- [Security](#security) + - [Design objectives](#design-objectives) + - [Threat model](#threat-model) +- [Future work](#future-work) + + +## Introduction + +The goal is for SimpleX Chat to be partly funded by its users, who buy supporter badges. A badge is shown on the profile of the person who bought it, and it raises the limits that other users and servers apply to that person's files. This document describes what a badge is, what it grants, how it is issued and presented, and what it discloses about the holder. + +In an ordinary messenger a paid feature is attached to an account, and the operator sees in one record who paid and what they did with the feature. The SimpleX network has no accounts, so there is nothing to attach a purchase to, and introducing an account for this purpose would remove the privacy that the rest of the design provides. A badge is therefore designed so that the purchase, which the badge service necessarily records, cannot be connected with the profile, the conversations or the servers of the person who made it. + +### What is a badge + +A badge is a credential issued by the badge service, a bot operated by SimpleX Chat. The credential is a [BBS signature](https://datatracker.ietf.org/doc/draft-irtf-cfrg-bbs-signatures/) over four values: a master key generated by the app; the expiry date; the badge type, currently `supporter` or `legend`; and a reserved field that is currently empty. + +The holder of a BBS signature can prove that the issuer signed certain values, disclose some of those values, and keep the other values and the signature itself secret. The credential itself is therefore not sent to anyone. When the badge is to be shown or used, the app generates a proof that discloses the badge type, the expiry date and the reserved field, names the issuer key by its index, and hides the master key and the signature. Two proofs from the same credential cannot be linked to each other, by the issuer or by anyone else. Each proof is generated for one context, whether a conversation, a file or a session with a server, and is not accepted in any other. + +The transport protocols of the network call the same credential an entitlement: a name, an expiry and an extra string, disclosed in a proof. The chat application puts the badge type into the name, so a server that verifies an entitlement and a contact who sees a badge are looking at different zero-knowledge proofs of the same credential. + +### What a badge grants + +- A badge is shown on the profile to contacts, to the members of groups, and to the subscribers of channels. +- A badge allows larger files. The default limit is 1GB; a supporter can send files up to 2GB, and a legend up to 5GB. The limit is applied by the recipient, whose app verifies the sender's proof before it accepts a file above the default size. +- A badge extends the storage of files on servers. An XFTP server stores a file for 48 hours by default. It may be configured to store files for longer when they are uploaded by the holder of a badge of a given type; the example values in the server configuration file are 7 and 21 days for supporter and legend badge holders, respectively. + +Two other uses are planned and described under [Future work](#future-work): + +- A backup will be a link whose content the app replaces each time it makes a new backup, so that the same link restores the latest state. A badge will raise the size of the backup and the time it is stored, and the storage time is then the period the app can remain offline before the backup is lost. +- Servers that verify the proof will apply higher rate limits when creating messaging queues, file chunks and notification tokens. + +### What a badge discloses + +The badge service holds the purchase key, the number of months bought, and the payment record of the purchase. A card payment is linked to the purchase, as in any other service; a user who wants the payment itself to be private may pay with cryptocurrency. In either case the record is held by the service alone, and the service does not learn where the badge is later shown or used, because a zero-knowledge proof contains nothing that refers back to the credential or the purchase. + +A party that verifies a proof learns the badge type and the expiry date. Since all credentials expiring in the same week have the same expiry date, these two values place the holder among the supporters whose badges expire that week. + +### Comparison with Signal badges + +Signal sells donation badges using [receipt credentials](https://eprint.iacr.org/2019/1416.pdf). The client obtains a credential against a payment without revealing its account, and then presents the credential once to the account server, which records its serial number, level and expiry against the account and attaches the badge to the account. The payment is not linked to the account cryptographically. The same mechanism is used for Signal's paid backups. + +The differences follow from Signal having accounts and SimpleX not having them. + +In Signal: + +- The server holds the list of accounts that have badges. +- The credential can be verified only by the server that issued it. +- The credential is presented once, after which the badge is a property of the account. +- The client requests the credential and redeems it in a single sequence of jobs without delay, so the server can match the request made under the payment with the redemption made under the account by their times and by network address. +- The expiry of a credential is rounded up to the next day. + +In SimpleX: + +- A server verifies a proof for one session and cannot link that session to any other. +- A credential can be verified against the issuer's public key by contacts, channel relays and independently operated servers. +- A credential is presented every time the badge is shown or used, with a new proof each time. +- The request for a renewed credential and the profile update that presents it are made on different days. +- All credentials expiring in the same week have the same expiry. + +| Property | Signal badges | SimpleX badges | +|---|---|---| +| Account required | Yes | No | +| Operator holds the list of badge holders | Yes | No | +| Verified by | The issuing server | Any party with the issuer's public key | +| Presentations per credential | One | Unlimited | +| Proof bound to the context of presentation | No | Yes | +| Expiry rounded up to | The next day | The end of the following Monday | +| Issuance and presentation on different days | No | Yes | +| Usable on independently operated servers | No | Yes | + +### Non-goals + +- A badge does not restrict anything that is available today: the defaults are unchanged, and a badge only raises them. +- A badge does not create an identity: it has no persistent identifier, it is not linked across conversations, and an incognito profile does not show it. +- A badge cannot be transferred: a code can be redeemed once, and the credential obtained with it is usable only with the master key it was issued for. +- A badge does not exempt its holder from the limits a server applies: it lowers the cost of a resource without removing the limit on it. +- A badge cannot be revoked; credentials are issued for one month at a time instead. + +## Architecture + +``` + ┌─────────────────┐ code ┌──────────────┐ purchase ┌──────────┐ + │ Web purchase │ ────────> │ Holder │ ────────────> │ Issuer │ + └─────────────────┘ │ (the app) │ <──────────── └──────────┘ + └──────┬───────┘ credential + │ every month + │ a new proof each time + ┌─────────────────────────┼───────────────────────┐ + │ │ │ + ┌────▼─────┐ ┌─────▼──────┐ ┌─────▼──────┐ + │ Contacts,│ │ File │ │ The user's │ + │ groups, │ │ recipients │ │ own servers│ + │ channels │ └────────────┘ └────────────┘ + └──────────┘ +``` + +### Participants + +- The issuer is the badge service, a bot on the SimpleX network with a contact address. It holds the secret key with which credentials are signed. Apps and servers hold a list of eight issuer public keys, and every credential includes the index of the key that signed it, so the service can move to the next key without a release of apps or servers. +- The holder is the app. It keeps the credential in the user's profile, generates proofs on the device, and renews the credential every month. +- The verifiers are contacts, group members, channel relays, the recipients of files, and the user's own servers. A verifier holds the issuer public keys and no other information about badges. + +### Service requests + +The app and the badge service communicate through one-off service requests, a primitive of the SimpleX agent described in [One-off requests to service addresses](https://github.com/simplex-chat/simplexmq/blob/master/rfcs/2026-07-11-service-rpc.md). Although the service has a contact address, it is not a contact of the app, and no conversation with it exists. + +A request is a single message to the service's address. The app establishes a double ratchet, with post-quantum key agreement, from the keys published in the service's address link, encrypts the request with the double ratchet, and sends it to the address queue on the service's server in the same way as any message to a server chosen by another party, that is, through a proxy server when private routing is enabled (which is the default). With the request the app sends the address of a reply queue that it created for this request on one of its own servers. The service decrypts the request with a receiving ratchet initialised from its private keys, sends the reply to the reply queue under the same ratchet, and deletes its state; the app deletes the reply queue and the ratchet when it has the reply or when the request times out. + +This exchange has the following properties: + +- Unlike a request made directly to the service over HTTP, the app does not connect to the service, nor the service to the app. Each communicates only with SMP servers, so the service does not see the app's network address, and with private routing the service's server does not see it either. +- Unlike a chat connection, which is a persistent channel through which all requests made over it can be linked to each other, a service request does not create persistent state. Each request uses new keys and a new reply queue, so two requests from the same app cannot be linked by the service or by servers. +- A reply that decrypts proves that it came from the holder of the keys published in the service's link and signed by its root key, so a server cannot substitute a reply. +- The badge service answers a repeated request with the same result and does not execute the operation twice, so the app can repeat a request whose reply was lost. + +A purchase is identified by an Ed25519 key pair that the app generates for it and does not use for any other purpose. Every request concerning the purchase, the redemption and each monthly renewal, is signed with this key, and the signature covers the request together with a value derived from the ratchet of that exchange, so it is valid for that exchange only and cannot be replayed. The agent verifies the signature and delivers the verified public key to the service with the request, and the service accepts a request about a purchase only when the verified key is the purchase key. + +### Buying and redeeming + +A badge is bought for one or more months, either on the web or in the app. + +On the web the purchase produces a code, which is then redeemed in the app. The code is the only data passed from the web site to the app: the web site does not learn which app redeems a code, and the app does not see the payment. The code is generated in the buyer's browser, and the service stores only its hash; at redemption the app presents the code itself, and the service matches it against the stored hash. A badge issued without a sale, for example in compensation for a problem, is a code generated by the operator and redeemed in the same way. + +In the app, the user pays by card, in cryptocurrency, or through the app store. The app requests an invoice from the service, or presents the receipt of the app store, and the service issues the credential once the payment is confirmed. + +In both cases the app generates the master key and the purchase key pair before the purchase. To redeem a code, the app sends the code and the master key to the service, which issues the credential. A code redeemed a second time with the same purchase key returns the same credential; a code redeemed with a different purchase key is refused. + +### Monthly issuance + +A credential is issued for one month at a time, however many months were bought. The service keeps a count of the months remaining for each purchase key, and issues the next credential when the app asks for it. Unused months, e.g. if the app was offline, lapse at the next badge issuance. + +Credentials are issued monthly to limit what the expiry date discloses. If credentials were issued for the whole term, a user who bought a year would hold a credential expiring on a day a year ahead, when few other credentials expire, and this date would be disclosed in every proof for a year. Instead, every credential is issued for one month, and its expiry is rounded to the end of the Monday following the end of the paid month (UTC). For example, if the paid month ends on Wednesday 14 October 2026, the credential expires at the end of Monday 19 October, and so does every credential whose month ends between Monday 12 and Sunday 18 October. All credentials whose paid month ends in the same week thus expire at the same instant. + +The renewal is split over two days for the same reason. The app requests the next credential on the day before the current one expires, and when the current one expires, it switches to the new one and sends its updated profile to its contacts. In the example above, the app asks the service for the new credential on Monday 19 October and starts showing it on Tuesday 20 October, so an observer of both the request and the profile update cannot correlate them by time. + +The renewal runs in the background and does not require any action from the user. Recipients accept a badge for seven days after its expiry, and servers for one day, so a renewal delayed by a few days is not visible to contacts. + +### Presentation + +A BBS proof is generated over a string, called the presentation header, and is verified only against the same string. The string binds the proof to the context in which it is presented. Without it, a proof received in one conversation could be copied and presented in another. Between apps the string is sent with the proof, and the recipient checks that it is the string it expects; servers know the string already, so it is not sent to them. + +The context of a conversation is the same string over which message signatures are computed: + +- In a direct chat it is a hash derived from the state of the end-to-end encryption, which only the two sides hold. +- In a group it is the member's identifier together with the member's signing key. +- In a channel it is the channel's identifier together with the member's identifier, or the channel's identifier alone when a message is sent in the name of the channel. + +A session with a server is identified by the TLS session identifier, which both sides derive from the TLS handshake and which differs on every connection. + +Each time the app sends its profile, whether to a new contact, to a group it joins, or to everyone when the profile is updated, it generates a new proof and includes it. The proof is bound to the conversation in which the profile is sent: in a direct chat to the connection with the contact, in a group to the member's identity in that group, and in a channel to the member's identity established by the channel's roster. In a group the badge is accepted only from a message signed with the member's key, and in a channel it is verified against the key that the roster establishes for the member. + +A file larger than the default limit is sent with two proofs. The first is placed in the file invitation, the message that announces the file, and is bound to the conversation and to the size of the file; the recipient's app verifies it when the invitation arrives. The second is placed in the file description, the record of where the chunks of the file are stored and how they are decrypted, and is bound in addition to a hash of the description and to the storage time of the file; the app verifies it before the download begins. + +### Servers + +The client presents the entitlement proof in the transport handshake, bound to the TLS session identifier. The server verifies it once, when the session is established, and applies the result to every command in the session. + +The client presents the proof only to its own servers, that is, to those configured for the profile, which are identified by the certificate fingerprint pinned in TLS. It does not present the proof to a server whose address it received from a contact or found in a file description, because a file description names the servers on which the chunks are stored, and these are chosen by the sender. If the app presented its proof to every server it connected to, a sender could store a file on a server of their own and learn, when the file is downloaded, that the person downloading it holds a badge. + +On XFTP servers the proof extends the storage time of files. The server grants the smaller of the time requested by the client and the maximum configured for the badge type, and returns the resulting expiry. SMP servers and notification servers accept the same proof in their handshakes but do not yet make use of it. + +The exchange between the app and the badge service, that is, the commands, responses and errors, is described in the [badge service protocol](./badges-rpc.md). + + +## Cryptographic primitives + +Badges are built on [BBS signatures](https://datatracker.ietf.org/doc/draft-irtf-cfrg-bbs-signatures/), in the BLS12-381-SHA-256 suite, implemented by [libbbs](https://github.com/Fraunhofer-AISEC/libbbs) over [blst](https://github.com/supranational/blst). A credential is a signature over four values under the header `SimpleX badges v1`; a proof discloses three of them and is 304 bytes long. BBS was chosen for four properties that the design needs together: + +- A proof can be verified by anyone who holds the issuer's public key, so contacts and independently operated servers verify badges without consulting the issuer. +- A proof discloses only the values selected. +- A proof cannot be linked to any other proof of the same credential. +- A proof is generated over a presentation header, so it can be bound to the context in which it is presented. + +Credentials of the kind Signal uses can be verified only by their issuer, and a receipt credential discloses its serial number when presented, so it is presented once. Single-use tokens, such as blind signatures and the tokens of Privacy Pass, are likewise spent when presented and do not include values such as an expiry or a type. + +Service requests are protected by the double ratchet of the [SimpleX agent](https://github.com/simplex-chat/simplexmq/blob/stable/protocol/agent-protocol.md), with X448 key agreement and the sntrup761 KEM, established from keys published in the service's link. The purchase keys with which requests are signed, and the member keys that form part of the conversation context in groups, are Ed25519 keys. Codes are hashed with SHA-256, and the file description in the context of a file proof with SHA-512. + + +## Security + +### Design objectives + +1. A proof discloses no value that links it to another proof or to the purchase. +2. A proof used in one context, whether a session, a conversation or a file, cannot be used in another context. +3. The timing of presentations does not identify the holder: all credentials expiring in the same week share the same expiry, and the renewal request and the profile update are made on different days. +4. Requests to the badge service cannot be linked to each other, to a profile or to a network address, and a request about a purchase can be made only by the holder of the purchase key. +5. A credential cannot be forged: the issuer keys are fixed in apps and servers, and the app verifies a credential before storing it. +6. A missing or failed proof leaves the default limit in place, and a server cannot be configured to grant a badge type less than the default. + +### Threat model + +This threat model assumes the [SimpleX network threat model](https://github.com/simplex-chat/simplexmq/blob/stable/protocol/security.md) and addresses the threats specific to badges. + +**The badge service** + +*can:* + +- See the purchase key of every badge, the master key generated for it, the number of months bought, and the payment record. +- Issue any credential, or refuse to issue one, as it holds the issuer key. + +*cannot:* + +- Connect a purchase with a profile, a contact, a group or a session with a server - a proof contains nothing that refers back to the purchase. +- Learn where a badge is shown or used. +- Learn the network address of the app - requests reach the service through SMP servers, on connections created for the request. + +**A contact, a group member or a channel relay** + +*can:* + +- See the badge type and the expiry date. + +*cannot:* + +- Tell whether a badge seen in another conversation belongs to the same person. +- Reuse a profile proof or a file proof in another context. +- Distinguish the holder from the other supporters whose badges expire in the same week. + +**A server operator** + +*can:* + +- See the badge type and the expiry date once in each session. +- Group together the sessions of the supporters whose badges expire in the same week. + +*cannot:* + +- Reuse the proof on another connection. +- Link a session to the purchase, to a profile or to sessions on other servers, except through the week of expiry. +- Obtain a proof from a client that does not use the server. + +**The server that hosts the badge service's address** + +*can:* + +- See that requests arrive for the service. + +*cannot:* + +- See the content of requests. +- See the network address of the app when private routing is used. +- See the replies, which are sent to a queue on a server chosen by the app. + +**One badge on many machines** + +Since proofs are unlinkable, a server cannot count the sessions of a single credential, so the benefit granted by a badge must be limited without counting sessions. For this reason a badge lowers the cost of a resource without removing the limit on it, and limits per session remain in force. + +**Compromise of the user's device or backup** + +An attacker who obtains the credential and the purchase key can use the badge until it expires and renew it while months remain. There is no revocation, so the loss is limited to the months bought. + +**Interception of a code** + +A code is a bearer secret until it is redeemed; once redeemed, it is refused to any other purchase key. + +**A passive network observer** + +*can:* + +- Observe SimpleX traffic between clients and servers. + +*cannot:* + +- See a proof - proofs to servers are inside TLS, in a handshake block of fixed size, and proofs to other users and requests to the badge service are inside end-to-end encrypted messages. +- Distinguish a session in which a proof was presented from a session without one. + +## Future work + +- Backups will be stored on XFTP servers, and a badge will raise their size and their storage time, as described under [What a badge grants](#what-a-badge-grants). +- SMP servers and notification servers will verify the proof. A server that verifies it can charge the holder of a badge less for creating queues, file chunks and notification tokens (under the planned proof-of-work scheme, the required effort is divided by a factor configured for each badge type), and can apply higher rate limits and larger quotas. +- Subscriptions that renew automatically, the transfer of remaining months to a new device, and the pausing of a prepaid badge are planned. From 176e55895ac58af5292f49c3103388374148b84f Mon Sep 17 00:00:00 2001 From: Evgeny Date: Sat, 19 Sep 2026 10:10:10 +0100 Subject: [PATCH 50/62] blog: supporter badges (#7538) * blog: supporter badges * update post * update date, add video image * add image * update * update * update post, add to lists * update video * add preview * images * update post and overview * update --------- Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com> --- README.md | 2 + blog/20260919-simplex-supporter-badges.md | 64 ++++++++++++++++++ blog/README.md | 9 +++ blog/images/20260919-badge-screen.png | Bin 0 -> 320087 bytes blog/images/20260919-buy-badge.jpg | Bin 0 -> 91553 bytes .../images/20260919-phone-supporter-light.png | Bin 0 -> 324524 bytes blog/images/20260919-phone-supporter.png | Bin 0 -> 300721 bytes docs/protocol/badges-overview.md | 2 +- .../src/_includes/blog_previews/20260919.html | 5 ++ 9 files changed, 81 insertions(+), 1 deletion(-) create mode 100644 blog/20260919-simplex-supporter-badges.md create mode 100644 blog/images/20260919-badge-screen.png create mode 100644 blog/images/20260919-buy-badge.jpg create mode 100644 blog/images/20260919-phone-supporter-light.png create mode 100644 blog/images/20260919-phone-supporter.png create mode 100644 website/src/_includes/blog_previews/20260919.html diff --git a/README.md b/README.md index f7c2ccd514..fa4247caf8 100644 --- a/README.md +++ b/README.md @@ -220,6 +220,8 @@ You can use SimpleX with your own servers and still communicate with people usin Recent and important updates: +[Sep 19, 2026. SimpleX Supporter Badges — Send Larger Files That Stay Available Longer, Without Being Identified](./blog/20260919-simplex-supporter-badges.md) + [Aug 20, 2026. Equity Crowdfunding Launched - You Can Get a Stake in SimpleX Chat](./blog/20260819-simplex-chat-crowdfunding.md) [Jul 22, 2026. SimpleX Public Names — a Name Nobody Can Take From You](./blog/20260722-simplex-public-names.md) diff --git a/blog/20260919-simplex-supporter-badges.md b/blog/20260919-simplex-supporter-badges.md new file mode 100644 index 0000000000..bd2774404b --- /dev/null +++ b/blog/20260919-simplex-supporter-badges.md @@ -0,0 +1,64 @@ +--- +layout: layouts/article.html +title: "SimpleX Supporter Badges — Send Larger Files That Stay Available Longer, Without Being Identified" +date: 2026-09-19 +previewBody: blog_previews/20260919.html +image: images/20260919-badge-screen.png +permalink: "/blog/20260919-simplex-supporter-badges.html" +--- + +# SimpleX Supporter Badges — Send Larger Files That Stay Available Longer, Without Being Identified + +**Published:** Sep 19, 2026 + +You can now support SimpleX Chat and get a supporter badge, larger files and longer file storage — from v7.1 beta[^beta]. Watch how to buy a badge. + +## A paid feature that cannot identify you + + + + +A supporter badge is shown on your profile to your contacts, group members and channel subscribers. With a badge you can send files up to 2GB, or 5GB with a legend badge, instead of 1GB, and servers keep your files for longer — 7 days with a supporter badge and 21 days with a legend badge. + +A badge is a credential stored in your profile on your device. The credential itself is not sent to anyone: to show the badge to a contact or to present it to a server, the app generates a new zero-knowledge proof that reveals only the badge type and the expiry date, and no two proofs can be linked to each other or to the purchase, by the badge service, your contacts or servers. Credentials are issued for one month at a time, and all badges expire on the same day of the week, so a badge places you among all supporters of that week and nothing more. + +This is only possible because the network has no user identifiers — in other messengers a paid feature is attached to the account, so the operator knows who paid and what they do with the feature. + +Read more about badges in the [whitepaper](https://github.com/simplex-chat/simplex-chat/blob/master/docs/protocol/badges-overview.md): what they grant, how they are issued and presented, and their privacy and security model. + +## How to get a badge + + + +Buy a code on [simplex.chat/badges](https://simplex.chat/badges/), paying by card, Bitcoin or Monero, and redeem it in the app: open Settings, tap **Supporter perks**, and enter the code. The badge appears on your profile. The badge does not renew by itself, and no account is created. + +The v7.1 release will add purchases in the app: via the app store, or by card or cryptocurrency if you downloaded the app from GitHub or F-Droid. + +## What badges will do next + +The same mechanism will be used for other resources that cost the network more than the default. Two uses are coming: + +- **Backups.** A backup will be a link whose content the app updates in place, so the same link restores the latest state. A badge will extend how long the backup is kept on the servers — that is, how long the app can stay offline before the backup is lost. +- **Better limits on servers.** Servers that verify the badge will apply higher rate limits for creating messaging queues, uploading file chunks, and registering notification tokens. + +## Community Crowdfunding + + + +Investors in our [equity crowdfunding on Wefunder](https://wefunder.com/simplex.chat?utm_source=blog) receive badges as perks: + +| Investment | Badge | +|---|---| +| $100 | supporter, 1 month | +| $250 | supporter, 3 months | +| $1,000 | supporter, 12 months, or legend, 1 month | +| $2,500 | supporter, 12 months, or legend, 3 months | +| $10,000 | legend, 12 months | + +If you invest $500 or more by September 22, you will also receive [a public SimpleX name](https://simplex.domains?utm_source=blog) for 7 years[^name]. + +Learn more and invest on Wefunder: [https://wefunder.com/simplex.chat](https://wefunder.com/simplex.chat?utm_source=blog) + +[^name]: After September 22, investors of $500 or more receive a name for 5 years as early bird investors, and for 3 years after that — ahead of the public launch of names on December 12. + +[^beta]: v7.1 beta is available via [Play Store](https://play.google.com/store/apps/details?id=chat.simplex.app) (Android beta), [TestFlight](https://testflight.apple.com/join/DWuT2LQu) (iOS), our [F-Droid repo](https://simplex.chat/fdroid/) and [GitHub](https://github.com/simplex-chat/simplex-chat/releases) (Android and desktop). diff --git a/blog/README.md b/blog/README.md index 3a1c545b4f..b7940a370d 100644 --- a/blog/README.md +++ b/blog/README.md @@ -1,5 +1,14 @@ # Blog +Sep 19, 2026 [SimpleX Supporter Badges - Send Larger Files That Stay Available Longer, Without Being Identified](./20260919-simplex-supporter-badges.md) + +Supporter badges are available in v7.1 beta: a badge on your profile, larger files and longer file storage - and the purchase cannot be linked to your profile. + +Investors in our equity crowdfunding receive badges as perks. If you invest $500 or more by September 22, you will also receive a public SimpleX name for 7 years. + + +--- + Aug 20, 2026 [Equity Crowdfunding Launched - You Can Get a Stake in SimpleX Chat](./20260819-simplex-chat-crowdfunding.md) SimpleX is the first and the only messaging network without user identifiers of any kind. Our equity crowdfunding round is now launched on Wefunder, so network users, and anybody else, can get a stake in SimpleX Chat - the company that builds it. diff --git a/blog/images/20260919-badge-screen.png b/blog/images/20260919-badge-screen.png new file mode 100644 index 0000000000000000000000000000000000000000..c4a7994e957a152771e37c9a213d2cfe91d82973 GIT binary patch literal 320087 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 z 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

      v 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

      M#kd9ly( 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

      I1f7Uv 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 literal 0 HcmV?d00001 diff --git a/blog/images/20260919-buy-badge.jpg b/blog/images/20260919-buy-badge.jpg new file mode 100644 index 0000000000000000000000000000000000000000..da7625aee9597b8e54cd5a5ee9f323aa64fc2761 GIT binary patch literal 91553 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

      LI3r- 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 B6ORA@ literal 0 HcmV?d00001 diff --git a/blog/images/20260919-phone-supporter-light.png b/blog/images/20260919-phone-supporter-light.png new file mode 100644 index 0000000000000000000000000000000000000000..07362c870d6d3ef97dbc81554050c48498ee801f GIT binary patch literal 324524 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

      !8n(?GF`HRcbJ4@&NV8m=xGW*9yRraKFY`l; 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 z z!=lfJI^|S-cj(X%9fb9<5DkL3m_lAJbKkw6#(5{O*mI~kVG;3);{+T$%p&L~_5|+P z(ke@xTubFO-7)9n{uOTPPeHu$niJR&xLcKs6fPlM&gZVS z)lpw9UALkn#XX*)@U~6N4qZ;KjU4W%@C<54QEFJ0JPgwPzfi7BK5}w#X}SsfBefX} z4E*l~L=%*%prIB{sRbSa^9zUTs2vL2%*fE% z4L9mZ=7i2Ej!divYU~S12H^5c;k4@q!!FJSmHD;N#SNP3qv~BjI>ZPybKsm@8x-(W zsY4kus8e>fJ{#NjfO#RNz;3bi<%~{afV?s7^Q-Caxq}O9{^<+*D-qcORpt^Taw?^n z;8u2J9lk8CSYPGy2X2sEWX6T*@kBB8AvI*k<#B71qhbK*IyiI-3z&#cDB<9UtTQ)9 zxIzfr#wtHK@fJ>=5($LznK-ZJHsN}V(Jy8FC>K5RoY3TIK-FPWs+IGbf+%vBkW)X6 zT4I!yLXj9uK;Vz**XbZC6r>23h26;OZ>Gccv8tu<&9_hS|I_;HXY&rhUDD8lWzY9G zzw79|Mzgb3b(AnNF)=W)fRVsNu_R!L?JI*PQ(>v(1`(Yi!$AT8``NQ&7NhhV4s6cA zNW)p0hm{gn%Y!04P6SQuiLyfAJA;dzA&WRG??%k1ba=ik3{3G}_eXaB89h|{S`D>p zz1`F4a1jM|kX41~ZC zG>@hL-4vhVIcC-XXsSDKeMw7Hg^;PkyXD8E%Mbr}^CB;aNjf)GW+cC&v6VVy#rQoW zG32X?7Fk;~CO=kiQ<%}0V{~xtK9V%`aMLCnfWGNMvj=sjH18(Og#I0Raz}e`mUJWD zXp`|&LAh$OX%k=s5D>yWO{Ce;cpXbuTK;@_1u2YOtp_|bE^E3!XFSsKFuEnO=>~o= zCN{pyt|zps5^BNk)^|GWf&vj*D=-T{?Ee-j`66jtj7YsugCQOB0S(O$Ks;<{-IkXh zPAG;?*ylUwZyW|01!~Y z15;5v{3op|9m)YgIjIl=@a&VWT;Yu*rwE;2vWpgzl0vHTF~iD^l^k(Ev^;#W)qOTFUc-PI=&j z4OlaXOr>c%5+;0|!L0cn3GM##sG^1+2skL{xsi0AU>qL!Vb%w6+(59$lL5)nvGV@L zrG%H77*9`mu@r%Zut~5Xfg2`2bX8%^(V)IaQ5`+o&*CbSTPHv>N6U062&ExA&zT%H z4xKhlg~3oGgf&QeH9WqV5|R`Jgbs|gC@{gv4w|$1aIjbxywHUDroK1oO$X`E{&Qcd zijeuDsjFJr_L{PJcs>vOk#})amLL!uyodA5Sm(8X=S`m!h*QrYWZ+y7*c_{BR4p

      }|h(!pi@qi2%;s@CAPDWQY8%FbTZ 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 o^!o3s{wvgfHEAK^Ydz2De^H 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�)i&v4GO=A=fYrRNF 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�Q0C_aRcmlel0ZBmICnv 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 literal 0 HcmV?d00001 diff --git a/docs/protocol/badges-overview.md b/docs/protocol/badges-overview.md index 7864c6fd0e..41ed3c5eaa 100644 --- a/docs/protocol/badges-overview.md +++ b/docs/protocol/badges-overview.md @@ -28,7 +28,7 @@ Revision 1, 2026-09-18 The goal is for SimpleX Chat to be partly funded by its users, who buy supporter badges. A badge is shown on the profile of the person who bought it, and it raises the limits that other users and servers apply to that person's files. This document describes what a badge is, what it grants, how it is issued and presented, and what it discloses about the holder. -In an ordinary messenger a paid feature is attached to an account, and the operator sees in one record who paid and what they did with the feature. The SimpleX network has no accounts, so there is nothing to attach a purchase to, and introducing an account for this purpose would remove the privacy that the rest of the design provides. A badge is therefore designed so that the purchase, which the badge service necessarily records, cannot be connected with the profile, the conversations or the servers of the person who made it. +A badge is stored in the user's profile on the device, and it is presented as proofs that cannot be linked to each other or to the purchase. The SimpleX network has no accounts, and a paid feature must not introduce one: in other messengers a paid feature is attached to an account, and the operator sees in one record who paid and what they did with the feature. ### What is a badge diff --git a/website/src/_includes/blog_previews/20260919.html b/website/src/_includes/blog_previews/20260919.html new file mode 100644 index 0000000000..d6333c3c62 --- /dev/null +++ b/website/src/_includes/blog_previews/20260919.html @@ -0,0 +1,5 @@ +

      Supporter badges are available in v7.1 beta: a badge on your profile, larger files and longer file storage — and the purchase cannot be linked to your profile.

      + +

      Investors in our equity crowdfunding receive badges as perks.

      + +

      If you invest $500 or more by September 22, you will also receive a public SimpleX name for 7 years. Learn more and invest on Wefunder.

      From ecb9d8715792c8dc915ecb00f4bda1d32f4d1e0e Mon Sep 17 00:00:00 2001 From: Narasimha-sc <166327228+Narasimha-sc@users.noreply.github.com> Date: Sat, 19 Sep 2026 09:13:52 +0000 Subject: [PATCH 51/62] android, desktop: fix Submit button not visible in passcode view in split screen (#7497) Co-authored-by: Evgeny Poberezkin --- .../common/views/localauth/PasscodeView.kt | 8 +- .../common/views/localauth/PasswordEntry.kt | 3 +- ...-09-12-fix-passcode-submit-split-screen.md | 147 ++++++++++++++++++ 3 files changed, 153 insertions(+), 5 deletions(-) create mode 100644 plans/2026-09-12-fix-passcode-submit-split-screen.md diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/localauth/PasscodeView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/localauth/PasscodeView.kt index 9b25e9b5e0..669847c3a9 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/localauth/PasscodeView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/localauth/PasscodeView.kt @@ -64,7 +64,7 @@ fun PasscodeView( @Composable fun VerticalLayout() { Column( - Modifier.handleKeyboard().focusRequester(focusRequester), + Modifier.systemBarsPadding().handleKeyboard().focusRequester(focusRequester), horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.SpaceEvenly ) { @@ -74,7 +74,7 @@ fun PasscodeView( Text(reason, Modifier.padding(top = 5.dp), style = MaterialTheme.typography.subtitle1) } } - PasscodeEntry(passcode, true) + PasscodeEntry(passcode, true, Modifier.weight(1f, fill = false)) Row(Modifier.heightIn(min = 70.dp), verticalAlignment = Alignment.CenterVertically) { SimpleButton(generalGetString(MR.strings.cancel_verb), icon = painterResource(MR.images.ic_close), disabled = !buttonsEnabled.value, click = cancel) Spacer(Modifier.size(20.dp)) @@ -85,9 +85,9 @@ fun PasscodeView( @Composable fun HorizontalLayout() { - Row(Modifier.padding(horizontal = DEFAULT_PADDING).handleKeyboard().focusRequester(focusRequester), horizontalArrangement = Arrangement.Center) { + Row(Modifier.systemBarsPadding().padding(horizontal = DEFAULT_PADDING).handleKeyboard().focusRequester(focusRequester), horizontalArrangement = Arrangement.Center) { Column( - Modifier.padding(start = DEFAULT_PADDING, end = DEFAULT_PADDING, top = DEFAULT_PADDING), + Modifier.weight(1f, fill = false).padding(start = DEFAULT_PADDING, end = DEFAULT_PADDING, top = DEFAULT_PADDING), horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.SpaceBetween ) { diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/localauth/PasswordEntry.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/localauth/PasswordEntry.kt index f76b82c31e..d16f0a2a38 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/localauth/PasswordEntry.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/localauth/PasswordEntry.kt @@ -22,8 +22,9 @@ import chat.simplex.res.MR fun PasscodeEntry( password: MutableState, vertical: Boolean, + modifier: Modifier = Modifier, ) { - Column(horizontalAlignment = Alignment.CenterHorizontally) { + Column(modifier, horizontalAlignment = Alignment.CenterHorizontally) { PasscodeView(password) BoxWithConstraints { if (vertical) { diff --git a/plans/2026-09-12-fix-passcode-submit-split-screen.md b/plans/2026-09-12-fix-passcode-submit-split-screen.md new file mode 100644 index 0000000000..f5051e6721 --- /dev/null +++ b/plans/2026-09-12-fix-passcode-submit-split-screen.md @@ -0,0 +1,147 @@ +# Fix Submit button not visible in passcode view in split screen + +## Problem + +On Android in **split screen**, the "Enter Passcode" view shows the title and the +keypad but **no Cancel/Submit buttons** — the app cannot be unlocked with a passcode +without leaving split screen. + +The same `PasscodeView` also backs `SetAppPasscodeView`, so "New Passcode" / +"Confirm passcode" (Privacy & security → passcode, and the passcode onboarding in +`AppLock.setPasscode`) are affected identically. + +Desktop is affected too whenever the window is short (below ~590dp of height at a +typical width), since desktop always uses the vertical layout. + +## Cause + +Two independent defects, both invisible at full screen. + +### 1. The keypad consumes the space the buttons need + +`PasscodeView.VerticalLayout` is a `Column` of three children — title, keypad, +buttons `Row` — and the keypad's size is derived from the constraints it is offered +(`PasswordEntry.kt`): + +```kotlin +val s = if (appPlatform.isAndroid) minOf(maxWidth, maxHeight) / 4 - 1.dp else ... +``` + +`Column` measures unweighted children in order, each with `maxHeight` reduced by what +the previous ones took, so the keypad — the **second** child — is offered *all* +remaining height and a 4-row grid then occupies exactly that. The buttons `Row` is +measured last, from what is left, and `Modifier.heightIn(min = 70.dp)` cannot rescue +it: `heightIn` constrains its target into the incoming constraints, so a 70dp minimum +against a 1dp maximum yields 1dp. + +At full screen the bug is dormant because `maxWidth` is the smaller term there — the +keypad is sized by width and the leftover height goes to the buttons. It appears as +soon as the remaining height drops below the width, which every split-screen half does. + +Measured with a Compose harness that renders these composables at fixed window sizes +(411dp wide, density 1, `Surface(Modifier.fillMaxSize())` as in `LocalAuthentication.kt`): + +| window | keypad `maxHeight` | key size | buttons Row height | Submit | +|---|---|---|---|---| +| 411×914 (full screen) | 805 | 101.75 | 70 @ y=763 | 108×40 ✓ | +| 411×520 | 411 | 101.75 | **0** | 108×0 | +| 411×480 | 371 | 91.75 | **0** | 108×0 | +| 411×445 (split half) | 336 | 83.0 | **1** @ y=444 | 108×**1** | +| 411×400 | 291 | 71.75 | **0** | 108×0 | + +`HorizontalLayout` has the same defect in the width axis: its keypad is 4 keys wide +and sized `minOf(maxWidth, maxHeight) / 3.5f`, so the keypad's *width* grows with the +available *height*, and the Cancel/Submit `Column` — the **second** child of the `Row` +— gets the remainder. At 411×365 it is offered `maxWidth = 24dp` and Submit measures +**0×0**; at 411×445 it is offered **0dp** and Submit is placed at **x=441**, outside a +411dp-wide window. + +This branch matters in split screen because `windowOrientation()` reads +`Configuration.orientation`, which is computed from the *activity window* bounds, not +the device: a split half of a tall phone is `PORTRAIT` (~411×445) while a half of a +16:9 phone is `LANDSCAPE` (~411×365). Both layouts are reachable, and both were broken. + +### 2. No window insets + +`MainActivity` calls `enableEdgeToEdge()`, and this screen never applied insets — at +full screen `SpaceEvenly` happened to leave the buttons ~80dp clear of the navigation +bar. Once the buttons are laid out correctly in a split half, they land at the window +edge: with fix 1 alone, Submit occupies y=390…430 of a 445dp window, and a 48dp +3-button navigation bar covers y=397…445 — **33 of its 40dp**, so the button is drawn +but not reliably tappable in the bottom split window. + +## Fix + +`Modifier.weight(1f, fill = false)` on the keypad in the vertical layout and on the +keypad column in the horizontal layout (`PasscodeView.kt`), which requires a `modifier` +parameter on `PasscodeEntry` (`PasswordEntry.kt`): + +```kotlin +PasscodeEntry(passcode, true, Modifier.weight(1f, fill = false)) +``` + +`Column`/`Row` measure **weighted children after all unweighted ones**, so the title +and the buttons are measured first at their natural size and the keypad receives what +is left — the inverse of the current order, with no size constant to keep in sync. +`fill = false` keeps the keypad at its own size rather than stretching it, and because +a weighted child makes the container expand to the incoming bounded maximum, the +`SpaceEvenly` / `SpaceBetween` distribution at full screen is unchanged. + +Plus `Modifier.systemBarsPadding()` on both layout roots. + +Measured after the fix: + +| window | branch | key size | Submit | +|---|---|---|---| +| 411×445, 24dp status bar (top split half) | vertical | 59.5 | 108×40 @ y=390…430 ✓ | +| 411×445, 48dp nav bar (bottom split half) | vertical | 53.5 | 108×40 @ y=342…382, clear of the bar ✓ | +| 411×365, 48dp nav bar | horizontal | 29.3 | 108×40 @ x=263…371 ✓ | +| 411×914 (full screen) | vertical | **101.75 (unchanged)** | 108×40, column y=24…866 | + +The insets go on the `Column`/`Row` themselves rather than a wrapping `Box`: Material +`Surface` lays its content out with `propagateMinConstraints = true`, so the layout root +receives the window size as a *minimum*. A plain `Box` in between drops that minimum +(its own default is `false`), the `Column` becomes wrap-content, `SpaceEvenly` has no +slack left to distribute, and the whole screen top-aligns — measured as the buttons +moving from y=763 to y=544 at full screen. Keeping the padding on the root preserves +the propagation. + +## Scope / non-goals + +- Both files are `commonMain`, so the fix covers Android and desktop; on desktop + `systemBarsPadding()` resolves to zero insets and only the `weight` change has an + effect (short desktop windows). +- The keypad necessarily gets smaller in a small window: 53.5–59.5dp keys in a portrait + split half, 29.3dp in the 411×365 horizontal case, where the title, reason and + passcode text consume ~170dp before the keypad is measured. Making the passcode + screen itself more compact below some height (smaller title, dropping the reason + line) is a separate design change and is not attempted here. +- `systemBarsPadding()` also shrinks the keypad in full-screen landscape (79.6 → 59.0dp). + That is the same 72dp the bars always occupied — previously the keypad's bottom row + extended ~8dp under the navigation bar — but it is a visible change on a screen that + did not show the reported bug. +- Not changed: `windowOrientation()` branching on `Configuration.orientation`. Selecting + the layout from the measured aspect ratio (as iOS does) would be a better fit for + resizable windows, but it changes behaviour on every device rather than fixing this bug. + +## iOS + +Not affected, and for a structural reason worth recording: iOS picks its layout from the +*measured* geometry rather than an orientation flag — +`if g.size.width < g.size.height * 2 / 3` (`PasscodeView.swift`) — so a short, wide +window (the geometry that breaks Android's vertical layout) selects iOS's horizontal +layout, whose keypad is sized from height (`s = height / 5`) with the buttons column +explicitly bounded to `height / 5 * 3 * 0.97`. The vertical layout's width-driven keypad +(`s = width / 3`) is only ever used when the window is at least 1.5× taller than wide, +where it fits by construction. No iOS change required. + +## Verification + +- Compose measurement harness at the window sizes tabulated above, before and after, + for both layout branches and for 24dp/48dp/72dp inset combinations. +- Android arm64 debug APK (`bash ~/build/android.sh`) — manual check of Submit in both + the top and the bottom split-screen half, and no visual change at full screen. +- Linux x86_64 AppImage (`bash ~/build/linux.sh`) — manual check with the window resized + short, confirming the desktop vertical layout keeps Cancel/Submit visible. +- Also exercise "New Passcode" / "Confirm passcode" (`SetAppPasscodeView`) in split + screen, which share `PasscodeView`. From c8f20bcc9150e5f7883b210c53d5c9838c06ae0c Mon Sep 17 00:00:00 2001 From: sh <37271604+shumvgolove@users.noreply.github.com> Date: Sat, 19 Sep 2026 15:18:46 +0400 Subject: [PATCH 52/62] core, libs: configurable queue size, library fixes (#7542) * core: add chat_migrate_init_queue FFI export * bots: fix BadgeServiceErrorCode API type * nodejs: pass required command fields * nodejs: fix migration error types * nodejs: install libsimplex from SIMPLEX_LIBS_DIR * nodejs: add queue size option * nodejs: regenerate docs * python: add queue size option * bots: pass incognito in APIConnect * nodejs: accept documented success responses * python: accept documented success responses * nodejs: dispatch each bot message once * nodejs: fix startChat events loop lifecycle * nodejs, python: parse multi-line bot commands * nodejs: fix file buffer handling in addon * nodejs: keep events loop when chat stop fails * python: fix send_and_wait race, load lib off loop * python: make queue size export optional * nodejs: receive events on a dedicated thread * nodejs: release haskell thread after receive * python: receive on a dedicated thread per chat * python: test receive shutdown order * nodejs: one receive thread per chat controller * nodejs: harden receiver shutdown and tests * nodejs: stop chat before closing store * python: stop chat before closing store * nodejs, python: harden close regression and retry * python: free results with ucrt on windows * nodejs: enable c++ exceptions on mac and windows --- bots/api/COMMANDS.md | 6 +- bots/api/TYPES.md | 74 ++--- bots/src/API/Docs/Commands.hs | 2 +- bots/src/API/Docs/Types.hs | 2 +- flake.nix | 2 + libsimplex.dll.def | 2 + .../types/typescript/src/commands.ts | 2 +- .../types/typescript/src/types.ts | 135 ++------ packages/simplex-chat-nodejs/binding.gyp | 2 + packages/simplex-chat-nodejs/cpp/simplex.cc | 292 ++++++++++++++++-- packages/simplex-chat-nodejs/cpp/simplex.h | 2 + .../simplex-chat-nodejs/docs/Namespace.bot.md | 1 + .../docs/api.Class.ChatApi.md | 200 +++++++----- .../docs/bot.Function.run.md | 2 +- .../docs/bot.Function.subscribeChatItems.md | 27 ++ .../docs/bot.Interface.BotConfig.md | 14 +- .../docs/bot.Interface.BotOptions.md | 20 +- .../docs/bot.TypeAlias.BotDbOpts.md | 4 + .../docs/core.Class.ChatAPIError.md | 8 +- .../docs/core.Class.ChatInitError.md | 8 +- ...MigrationError.Interface.ErrorMigration.md | 8 +- ...rationError.Interface.ErrorNotADatabase.md | 6 +- ...ore.DBMigrationError.Interface.ErrorSQL.md | 8 +- ...tionError.Interface.InvalidConfirmation.md | 4 +- ...grationError.Interface.InvalidQueueSize.md | 25 ++ .../core.DBMigrationError.TypeAlias.Tag.md | 4 +- .../core.Enumeration.MigrationConfirmation.md | 10 +- .../docs/core.Function.chatCloseStore.md | 2 +- .../docs/core.Function.chatDecryptFile.md | 2 +- .../docs/core.Function.chatEncryptFile.md | 2 +- .../docs/core.Function.chatMigrateInit.md | 10 +- .../docs/core.Function.chatReadFile.md | 6 +- .../docs/core.Function.chatRecvMsgWait.md | 2 +- .../docs/core.Function.chatSendCmd.md | 2 +- .../docs/core.Function.chatWriteFile.md | 4 +- .../docs/core.Interface.APIResult.md | 6 +- .../docs/core.Interface.CryptoArgs.md | 6 +- .../docs/core.Interface.UpMigration.md | 6 +- .../core.MTRError.Interface.MTREDifferent.md | 6 +- .../core.MTRError.Interface.MTRENoDown.md | 20 +- .../docs/core.MTRError.TypeAlias.Tag.md | 2 +- ...re.MigrationError.Interface.MEDowngrade.md | 6 +- ...core.MigrationError.Interface.MEUpgrade.md | 8 +- ...MigrationError.Interface.MigrationError.md | 6 +- .../docs/core.MigrationError.TypeAlias.Tag.md | 2 +- .../docs/core.Namespace.DBMigrationError.md | 1 + .../docs/core.TypeAlias.DBMigrationError.md | 4 +- .../docs/core.TypeAlias.MTRError.md | 2 +- .../docs/core.TypeAlias.MigrationError.md | 2 +- packages/simplex-chat-nodejs/src/api.ts | 62 ++-- packages/simplex-chat-nodejs/src/bot.ts | 47 +-- packages/simplex-chat-nodejs/src/core.ts | 22 +- .../simplex-chat-nodejs/src/download-libs.js | 27 ++ packages/simplex-chat-nodejs/src/simplex.d.ts | 5 +- packages/simplex-chat-nodejs/src/util.ts | 2 +- .../simplex-chat-nodejs/tests/api.test.ts | 4 +- .../tests/api.unit.test.ts | 102 ++++++ .../tests/bot.unit.test.ts | 50 +++ .../tests/commands.test.ts | 13 + .../simplex-chat-nodejs/tests/core.test.ts | 158 +++++++++- .../simplex-chat-nodejs/tests/util.test.ts | 4 + .../src/simplex_chat/_native.py | 21 +- .../src/simplex_chat/api.py | 43 ++- .../src/simplex_chat/bot.py | 2 + .../src/simplex_chat/client.py | 20 +- .../src/simplex_chat/core.py | 38 ++- .../src/simplex_chat/types/_commands.py | 2 +- .../src/simplex_chat/types/_types.py | 78 +---- .../src/simplex_chat/util.py | 2 +- .../simplex-chat-python/tests/test_api.py | 44 +++ .../tests/test_client_and_waiters.py | 110 ++++++- .../simplex-chat-python/tests/test_codegen.py | 6 + .../tests/test_core_migrate_init.py | 123 ++++++++ .../tests/test_native_cache.py | 10 + .../tests/test_recv_executor.py | 207 +++++++++++++ .../simplex-chat-python/tests/test_util.py | 5 + src/Simplex/Chat/Mobile.hs | 34 +- tests/MobileTests.hs | 23 +- 78 files changed, 1670 insertions(+), 571 deletions(-) create mode 100644 packages/simplex-chat-nodejs/docs/bot.Function.subscribeChatItems.md create mode 100644 packages/simplex-chat-nodejs/docs/core.DBMigrationError.Interface.InvalidQueueSize.md create mode 100644 packages/simplex-chat-nodejs/tests/api.unit.test.ts create mode 100644 packages/simplex-chat-nodejs/tests/bot.unit.test.ts create mode 100644 packages/simplex-chat-nodejs/tests/commands.test.ts create mode 100644 packages/simplex-chat-python/tests/test_core_migrate_init.py create mode 100644 packages/simplex-chat-python/tests/test_recv_executor.py diff --git a/bots/api/COMMANDS.md b/bots/api/COMMANDS.md index 5f49b26653..f90e8e08da 100644 --- a/bots/api/COMMANDS.md +++ b/bots/api/COMMANDS.md @@ -1537,15 +1537,15 @@ Connect via prepared SimpleX link. The link can be 1-time invitation link, conta **Syntax**: ``` -/_connect [ ] +/_connect [ incognito=on][ ] ``` ```javascript -'/_connect ' + userId + (preparedLink_ ? ' ' + CreatedConnLink.cmdString(preparedLink_) : '') // JavaScript +'/_connect ' + userId + (incognito ? ' incognito=on' : '') + (preparedLink_ ? ' ' + CreatedConnLink.cmdString(preparedLink_) : '') // JavaScript ``` ```python -'/_connect ' + str(userId) + ((' ' + CreatedConnLink_cmd_string(preparedLink_)) if preparedLink_ is not None else '') # Python +'/_connect ' + str(userId) + (' incognito=on' if incognito else '') + ((' ' + CreatedConnLink_cmd_string(preparedLink_)) if preparedLink_ is not None else '') # Python ``` **Responses**: diff --git a/bots/api/TYPES.md b/bots/api/TYPES.md index 14ff04b08c..f1122979a9 100644 --- a/bots/api/TYPES.md +++ b/bots/api/TYPES.md @@ -466,62 +466,24 @@ CredentialNotVerified: ## BadgeServiceErrorCode -**Discriminated union type**: - -BadRequest: -- type: "badRequest" - -UnsupportedVersion: -- type: "unsupportedVersion" - -UnknownPurchaseKey: -- type: "unknownPurchaseKey" - -UnknownOfferId: -- type: "unknownOfferId" - -OfferDisabled: -- type: "offerDisabled" - -OfferMismatch: -- type: "offerMismatch" - -ProductUnavailable: -- type: "productUnavailable" - -PaymentNotEntitled: -- type: "paymentNotEntitled" - -PaymentPending: -- type: "paymentPending" - -ProviderUnavailable: -- type: "providerUnavailable" - -RateLimited: -- type: "rateLimited" - -CodeInvalid: -- type: "codeInvalid" - -CodeUsed: -- type: "codeUsed" - -CodeExpired: -- type: "codeExpired" - -ReceiptInvalid: -- type: "receiptInvalid" - -ReceiptUsed: -- type: "receiptUsed" - -Internal: -- type: "internal" - -Unknown: -- type: "unknown" -- : string +**Enum type**: +- "bad_request" +- "unsupported_version" +- "unknown_purchase_key" +- "unknown_offer_id" +- "offer_disabled" +- "offer_mismatch" +- "product_unavailable" +- "payment_not_entitled" +- "payment_pending" +- "provider_unavailable" +- "rate_limited" +- "code_invalid" +- "code_used" +- "code_expired" +- "receipt_invalid" +- "receipt_used" +- "internal" --- diff --git a/bots/src/API/Docs/Commands.hs b/bots/src/API/Docs/Commands.hs index eb4804fa45..4ffba7bfbe 100644 --- a/bots/src/API/Docs/Commands.hs +++ b/bots/src/API/Docs/Commands.hs @@ -140,7 +140,7 @@ chatCommandsDocsData = [ ("APIAddContact", [], "Create 1-time invitation link.", ["CRInvitation", "CRChatCmdError"], [], Just UNInteractive, "/_connect " <> Param "userId" <> OnOffParam "incognito" "incognito" (Just False)), -- `Maybe` in `connectTarget :: Maybe ConnectTarget` is used to signal parse failure to the runtime (the handler returns CEInvalidConnReq on Nothing); it is NOT API-level optionality. The parameter is required from callers. ("APIConnectPlan", [], "Determine SimpleX link type and if the bot is already connected via this link or name.", ["CRConnectionPlan", "CRChatCmdError"], [], Just UNInteractive, "/_connect plan " <> Param "userId" <> " " <> Param "connectTarget"), - ("APIConnect", [], "Connect via prepared SimpleX link. The link can be 1-time invitation link, contact address or group link.", ["CRSentConfirmation", "CRContactAlreadyExists", "CRSentInvitation", "CRChatCmdError"], [], Just UNInteractive, "/_connect " <> Param "userId" <> Optional "" (" " <> Param "$0") "preparedLink_"), + ("APIConnect", [], "Connect via prepared SimpleX link. The link can be 1-time invitation link, contact address or group link.", ["CRSentConfirmation", "CRContactAlreadyExists", "CRSentInvitation", "CRChatCmdError"], [], Just UNInteractive, "/_connect " <> Param "userId" <> OnOffParam "incognito" "incognito" (Just False) <> Optional "" (" " <> Param "$0") "preparedLink_"), ("Connect", [], "Connect via SimpleX link or name as string in the active user profile.", ["CRSentConfirmation", "CRContactAlreadyExists", "CRSentInvitation", "CRConnectionPlan", "CRSentInvitationToContact", "CRStartedConnectionToContact", "CRStartedConnectionToGroup", "CRChatCmdError"], [], Just UNInteractive, "/connect" <> Optional "" (" " <> Param "$0") "connTarget_"), ("APIAcceptContact", ["incognito"], "Accept contact request.", ["CRAcceptingContactRequest", "CRChatCmdError"], [], Just UNInteractive, "/_accept " <> Param "contactReqId"), ("APIRejectContact", [], "Reject contact request. The user who sent the request is **not notified**.", ["CRContactRequestRejected", "CRChatCmdError"], [], Nothing, "/_reject " <> Param "contactReqId") diff --git a/bots/src/API/Docs/Types.hs b/bots/src/API/Docs/Types.hs index 58298c44fb..792f3e6fd5 100644 --- a/bots/src/API/Docs/Types.hs +++ b/bots/src/API/Docs/Types.hs @@ -217,7 +217,7 @@ chatTypesDocsData = (sti @AutoAccept, STRecord, "", [], "", ""), (sti @BadgeProof, STRecord, "", [], "", ""), (sti @BadgeRedeemError, STUnion, "BRE", [], "", ""), - (sti @BadgeServiceErrorCode, STUnion, "BSE", [], "", ""), + (sti @BadgeServiceErrorCode, STEnum' (consSep "BSE" '_'), "", ["BSEUnknown"], "", ""), (sti @BlockingInfo, STRecord, "", [], "", ""), (sti @BlockingReason, STEnum, "BR", [], "", ""), (sti @BrokerErrorType, STUnion, "", [], "", ""), diff --git a/flake.nix b/flake.nix index 0863222c92..84f84c34ec 100644 --- a/flake.nix +++ b/flake.nix @@ -393,6 +393,7 @@ "chat_encrypt_file" "chat_encrypt_media" "chat_migrate_init" + "chat_migrate_init_queue" "chat_parse_markdown" "chat_parse_server" "chat_parse_uri" @@ -515,6 +516,7 @@ "chat_encrypt_file" "chat_encrypt_media" "chat_migrate_init" + "chat_migrate_init_queue" "chat_parse_markdown" "chat_parse_server" "chat_parse_uri" diff --git a/libsimplex.dll.def b/libsimplex.dll.def index a7a66992a6..79b88dc782 100644 --- a/libsimplex.dll.def +++ b/libsimplex.dll.def @@ -2,7 +2,9 @@ LIBRARY libsimplex EXPORTS hs_init hs_init_with_rtsopts + hs_thread_done chat_migrate_init + chat_migrate_init_queue chat_close_store chat_send_cmd chat_send_cmd_retry diff --git a/packages/simplex-chat-client/types/typescript/src/commands.ts b/packages/simplex-chat-client/types/typescript/src/commands.ts index fbde8ce9ac..c217ef944c 100644 --- a/packages/simplex-chat-client/types/typescript/src/commands.ts +++ b/packages/simplex-chat-client/types/typescript/src/commands.ts @@ -570,7 +570,7 @@ export namespace APIConnect { export type Response = CR.SentConfirmation | CR.ContactAlreadyExists | CR.SentInvitation | CR.ChatCmdError export function cmdString(self: APIConnect): string { - return '/_connect ' + self.userId + (self.preparedLink_ ? ' ' + T.CreatedConnLink.cmdString(self.preparedLink_) : '') + return '/_connect ' + self.userId + (self.incognito ? ' incognito=on' : '') + (self.preparedLink_ ? ' ' + T.CreatedConnLink.cmdString(self.preparedLink_) : '') } } diff --git a/packages/simplex-chat-client/types/typescript/src/types.ts b/packages/simplex-chat-client/types/typescript/src/types.ts index 3bf3fdc831..d7db7f259f 100644 --- a/packages/simplex-chat-client/types/typescript/src/types.ts +++ b/packages/simplex-chat-client/types/typescript/src/types.ts @@ -301,123 +301,24 @@ export namespace BadgeRedeemError { } } -export type BadgeServiceErrorCode = - | BadgeServiceErrorCode.BadRequest - | BadgeServiceErrorCode.UnsupportedVersion - | BadgeServiceErrorCode.UnknownPurchaseKey - | BadgeServiceErrorCode.UnknownOfferId - | BadgeServiceErrorCode.OfferDisabled - | BadgeServiceErrorCode.OfferMismatch - | BadgeServiceErrorCode.ProductUnavailable - | BadgeServiceErrorCode.PaymentNotEntitled - | BadgeServiceErrorCode.PaymentPending - | BadgeServiceErrorCode.ProviderUnavailable - | BadgeServiceErrorCode.RateLimited - | BadgeServiceErrorCode.CodeInvalid - | BadgeServiceErrorCode.CodeUsed - | BadgeServiceErrorCode.CodeExpired - | BadgeServiceErrorCode.ReceiptInvalid - | BadgeServiceErrorCode.ReceiptUsed - | BadgeServiceErrorCode.Internal - | BadgeServiceErrorCode.Unknown - -export namespace BadgeServiceErrorCode { - export type Tag = - | "badRequest" - | "unsupportedVersion" - | "unknownPurchaseKey" - | "unknownOfferId" - | "offerDisabled" - | "offerMismatch" - | "productUnavailable" - | "paymentNotEntitled" - | "paymentPending" - | "providerUnavailable" - | "rateLimited" - | "codeInvalid" - | "codeUsed" - | "codeExpired" - | "receiptInvalid" - | "receiptUsed" - | "internal" - | "unknown" - - interface Interface { - type: Tag - } - - export interface BadRequest extends Interface { - type: "badRequest" - } - - export interface UnsupportedVersion extends Interface { - type: "unsupportedVersion" - } - - export interface UnknownPurchaseKey extends Interface { - type: "unknownPurchaseKey" - } - - export interface UnknownOfferId extends Interface { - type: "unknownOfferId" - } - - export interface OfferDisabled extends Interface { - type: "offerDisabled" - } - - export interface OfferMismatch extends Interface { - type: "offerMismatch" - } - - export interface ProductUnavailable extends Interface { - type: "productUnavailable" - } - - export interface PaymentNotEntitled extends Interface { - type: "paymentNotEntitled" - } - - export interface PaymentPending extends Interface { - type: "paymentPending" - } - - export interface ProviderUnavailable extends Interface { - type: "providerUnavailable" - } - - export interface RateLimited extends Interface { - type: "rateLimited" - } - - export interface CodeInvalid extends Interface { - type: "codeInvalid" - } - - export interface CodeUsed extends Interface { - type: "codeUsed" - } - - export interface CodeExpired extends Interface { - type: "codeExpired" - } - - export interface ReceiptInvalid extends Interface { - type: "receiptInvalid" - } - - export interface ReceiptUsed extends Interface { - type: "receiptUsed" - } - - export interface Internal extends Interface { - type: "internal" - } - - export interface Unknown extends Interface { - type: "unknown" - : string - } +export enum BadgeServiceErrorCode { + Bad_request = "bad_request", + Unsupported_version = "unsupported_version", + Unknown_purchase_key = "unknown_purchase_key", + Unknown_offer_id = "unknown_offer_id", + Offer_disabled = "offer_disabled", + Offer_mismatch = "offer_mismatch", + Product_unavailable = "product_unavailable", + Payment_not_entitled = "payment_not_entitled", + Payment_pending = "payment_pending", + Provider_unavailable = "provider_unavailable", + Rate_limited = "rate_limited", + Code_invalid = "code_invalid", + Code_used = "code_used", + Code_expired = "code_expired", + Receipt_invalid = "receipt_invalid", + Receipt_used = "receipt_used", + Internal = "internal", } export enum BadgeStatus { diff --git a/packages/simplex-chat-nodejs/binding.gyp b/packages/simplex-chat-nodejs/binding.gyp index 09c63cecba..cfa6d61039 100644 --- a/packages/simplex-chat-nodejs/binding.gyp +++ b/packages/simplex-chat-nodejs/binding.gyp @@ -11,6 +11,8 @@ ], "cflags!": [ "-fno-exceptions" ], "cflags_cc!": [ "-fno-exceptions" ], + "xcode_settings": { "GCC_ENABLE_CPP_EXCEPTIONS": "YES" }, + "msvs_settings": { "VCCLCompilerTool": { "ExceptionHandling": 1 } }, "defines": [ "NAPI_DISABLE_CPP_EXCEPTIONS" ], "conditions": [ ["OS=='mac'", { diff --git a/packages/simplex-chat-nodejs/cpp/simplex.cc b/packages/simplex-chat-nodejs/cpp/simplex.cc index 97233eff6f..bcca2b994a 100644 --- a/packages/simplex-chat-nodejs/cpp/simplex.cc +++ b/packages/simplex-chat-nodejs/cpp/simplex.cc @@ -3,6 +3,14 @@ #include #include #include +#include +#include +#include +#include +#include +#include +#include +#include #include "simplex.h" namespace simplex { @@ -81,6 +89,11 @@ class ResultAsyncWorker : public AsyncWorker { return ctrl_; } + // the worker thread reads this object's memory until the worker completes + void KeepAlive(Object obj) { + keep_alive_ = Persistent(obj); + } + protected: std::string result_; uintptr_t ctrl_ = 0; @@ -88,6 +101,7 @@ class ResultAsyncWorker : public AsyncWorker { private: ExecuteFn execute_fn_; ResultProcessor result_processor_; + ObjectReference keep_alive_; }; class BinaryAsyncWorker : public AsyncWorker { @@ -97,21 +111,25 @@ class BinaryAsyncWorker : public AsyncWorker { BinaryAsyncWorker(Function& callback, ExecuteFn execute_fn) : AsyncWorker(callback), execute_fn_(std::move(execute_fn)) {} + ~BinaryAsyncWorker() { + free(original_buf); + } + void Execute() override { execute_fn_(this); } void OnOK() override { HandleScope scope(Env()); - if (original_buf == nullptr || binary_len == 0) { - Callback().Call({Env().Null(), Env().Undefined()}); + char* buf = original_buf; + original_buf = nullptr; + if (binary_len == 0) { + free(buf); + Callback().Call({Env().Null(), Buffer::New(Env(), 0)}); return; } - char* data_ptr = original_buf + 5; - auto finalizer = [](Napi::Env env, char* finalize_data, char* orig) { - free(orig); - }; - Napi::Buffer buffer = Napi::Buffer::New(Env(), data_ptr, binary_len, finalizer, original_buf); + // Copies when the runtime forbids external buffers (Electron); the finalizer then runs immediately. + Buffer buffer = Buffer::NewOrCopy(Env(), buf + 5, binary_len, [](Napi::Env, char*, char* orig) { free(orig); }, buf); Callback().Call({Env().Null(), buffer}); } @@ -176,6 +194,159 @@ Napi::Promise CreatePromiseAndCallback(Env env, Function& cb_out) { return deferred.Promise(); } +const char* const RECEIVER_STOPPED = "chat receiver stopped"; + +struct RecvRequest { + int wait = 0; + std::shared_ptr deferred; +}; + +// Holds the event loop open only while receives are pending; used only on the JS main thread. +class PendingReceives { + public: + explicit PendingReceives(ThreadSafeFunction tsfn) : tsfn_(tsfn) {} + + const ThreadSafeFunction& Tsfn() const { + return tsfn_; + } + + void Add(Napi::Env env) { + if (count_++ == 0) tsfn_.Ref(env); + } + + void Remove(Napi::Env env) { + if (--count_ == 0) tsfn_.Unref(env); + } + + private: + ThreadSafeFunction tsfn_; + size_t count_ = 0; +}; + +// A blocking receive would hold a libuv pool thread for up to `wait`, stalling fs, dns and crypto. +class Receiver { + public: + // Returns nullptr with a pending JS exception if the TSFN cannot be created, throws std::system_error if the thread cannot start. + static std::shared_ptr Start(Napi::Env env, chat_ctrl ctrl) { + ThreadSafeFunction tsfn = ThreadSafeFunction::New(env, Function::New(env, [](const CallbackInfo&) {}), "chat_recv_msg_wait", 0, 1); + if (env.IsExceptionPending()) { + return nullptr; + } + auto receiver = std::make_shared(ctrl, tsfn); + try { + receiver->thread_ = std::thread(&Receiver::Run, receiver.get()); + } catch (const std::system_error&) { + tsfn.Release(); + throw; + } + return receiver; + } + + Receiver(chat_ctrl ctrl, ThreadSafeFunction tsfn) : ctrl_(ctrl), pending_(std::make_shared(tsfn)) {} + + Receiver(const Receiver&) = delete; + Receiver& operator=(const Receiver&) = delete; + + ~Receiver() { + Stop(); + } + + void Enqueue(Napi::Env env, RecvRequest request) { + pending_->Add(env); + { + std::lock_guard lock(mutex_); + queue_.push_back(std::move(request)); + } + cv_.notify_one(); + } + + void RequestStop() { + { + std::lock_guard lock(mutex_); + stop_ = true; + } + cv_.notify_one(); + } + + // Waits for the receive in progress, so it must not run on the JS main thread outside env teardown. + void Stop() { + RequestStop(); + if (thread_.joinable()) { + thread_.join(); + } + } + + private: + void Run() { + for (;;) { + RecvRequest request; + { + std::unique_lock lock(mutex_); + cv_.wait(lock, [this] { return stop_ || !queue_.empty(); }); + if (stop_) break; + request = std::move(queue_.front()); + queue_.pop_front(); + } + char* c_res = chat_recv_msg_wait(ctrl_, request.wait); + napi_status status = Settle(request.deferred, [c_res](Napi::Env env, Promise::Deferred& deferred) { + if (c_res == nullptr) { + deferred.Reject(Error::New(env, "chat_recv_msg_wait failed").Value()); + } else { + deferred.Resolve(String::New(env, c_res)); + free(c_res); + } + }); + if (status != napi_ok) { + free(c_res); + } + } + std::deque unserved; + { + std::lock_guard lock(mutex_); + unserved.swap(queue_); + } + for (RecvRequest& request : unserved) { + Settle(request.deferred, [](Napi::Env env, Promise::Deferred& deferred) { + deferred.Reject(Error::New(env, RECEIVER_STOPPED).Value()); + }); + } + pending_->Tsfn().Release(); + // Each OS thread that enters Haskell keeps an RTS task record until it calls hs_thread_done. + hs_thread_done(); + } + + template + napi_status Settle(std::shared_ptr deferred, SettleFn settle) { + // The callback may run after this Receiver is destroyed, so it owns the pending count. + std::shared_ptr pending = pending_; + return pending->Tsfn().BlockingCall([pending, deferred, settle](Napi::Env env, Function) { + settle(env, *deferred); + pending->Remove(env); + }); + } + + const chat_ctrl ctrl_; + const std::shared_ptr pending_; + std::mutex mutex_; + std::condition_variable cv_; + std::deque queue_; + bool stop_ = false; + std::thread thread_; +}; + +// Keyed by chat_ctrl, accessed only on the JS main thread. +using Receivers = std::unordered_map>; + +std::shared_ptr TakeReceiver(Receivers& receivers, chat_ctrl ctrl) { + auto it = receivers.find(reinterpret_cast(ctrl)); + if (it == receivers.end()) { + return nullptr; + } + std::shared_ptr receiver = std::move(it->second); + receivers.erase(it); + return receiver; +} + // Common result processors ResultAsyncWorker::ResultProcessor MigrateResultProcessor() { return [](ResultAsyncWorker* worker, Napi::Env env) { @@ -215,6 +386,39 @@ Value ChatMigrateInit(const CallbackInfo& args) { return promise; } +Value ChatMigrateInitQueue(const CallbackInfo& args) { + Env env = args.Env(); + if (args.Length() < 4 || !args[0].IsString() || !args[1].IsString() || !args[2].IsString() || !args[3].IsNumber()) { + TypeError::New(env, "Expected three string arguments and number").ThrowAsJavaScriptException(); + return env.Undefined(); + } + + std::string path = args[0].As().Utf8Value(); + std::string key = args[1].As().Utf8Value(); + std::string confirm = args[2].As().Utf8Value(); + Number queue_size_arg = args[3].As(); + int queue_size = queue_size_arg.Int32Value(); + if (static_cast(queue_size) != queue_size_arg.DoubleValue()) { + RangeError::New(env, "Expected 32-bit integer queue size").ThrowAsJavaScriptException(); + return env.Undefined(); + } + + Function cb; + Promise promise = CreatePromiseAndCallback(env, cb); + + auto execute_fn = [path, key, confirm, queue_size](ResultAsyncWorker* worker) { + chat_ctrl ctrl = nullptr; + char* c_res = chat_migrate_init_queue(path.c_str(), key.c_str(), confirm.c_str(), queue_size, &ctrl); + worker->SetCtrl(reinterpret_cast(ctrl)); + HandleCResult(worker, c_res, "chat_migrate_init_queue"); + }; + + ResultAsyncWorker* worker = new ResultAsyncWorker(cb, std::move(execute_fn), MigrateResultProcessor()); + worker->Queue(); + + return promise; +} + Value ChatCloseStore(const CallbackInfo& args) { Env env = args.Env(); if (args.Length() < 1 || !args[0].IsBigInt()) { @@ -223,11 +427,15 @@ Value ChatCloseStore(const CallbackInfo& args) { } chat_ctrl ctrl = FromChatCtrlBigInt(args[0]); + std::shared_ptr receiver = TakeReceiver(*static_cast(args.Data()), ctrl); Function cb; Promise promise = CreatePromiseAndCallback(env, cb); - auto execute_fn = [ctrl](ResultAsyncWorker* worker) { + auto execute_fn = [ctrl, receiver](ResultAsyncWorker* worker) { + if (receiver) { + receiver->Stop(); + } char* c_res = chat_close_store(ctrl); HandleCResult(worker, c_res, "chat_close_store"); }; @@ -271,44 +479,63 @@ Value ChatRecvMsgWait(const CallbackInfo& args) { chat_ctrl ctrl = FromChatCtrlBigInt(args[0]); int wait = static_cast(args[1].As().Int32Value()); + Receivers& receivers = *static_cast(args.Data()); - Function cb; - Promise promise = CreatePromiseAndCallback(env, cb); + auto deferred = std::make_shared(Promise::Deferred::New(env)); + auto it = receivers.find(reinterpret_cast(ctrl)); + if (it == receivers.end()) { + std::shared_ptr receiver; + try { + receiver = Receiver::Start(env, ctrl); + } catch (const std::system_error& e) { + deferred->Reject(Error::New(env, e.what()).Value()); + return deferred->Promise(); + } + if (!receiver) { + return env.Undefined(); + } + it = receivers.emplace(reinterpret_cast(ctrl), std::move(receiver)).first; + } + it->second->Enqueue(env, {wait, deferred}); - auto execute_fn = [ctrl, wait](ResultAsyncWorker* worker) { - char* c_res = chat_recv_msg_wait(ctrl, wait); - HandleCResult(worker, c_res, "chat_recv_msg_wait"); - }; - - ResultAsyncWorker* worker = new ResultAsyncWorker(cb, std::move(execute_fn)); - worker->Queue(); - - return promise; + return deferred->Promise(); } Value ChatWriteFile(const CallbackInfo& args) { Env env = args.Env(); - if (args.Length() < 3 || !args[0].IsBigInt() || !args[1].IsString() || !args[2].IsArrayBuffer()) { - TypeError::New(env, "Expected bigint (ctrl), string (path), ArrayBuffer").ThrowAsJavaScriptException(); + if (args.Length() < 3 || !args[0].IsBigInt() || !args[1].IsString() || !(args[2].IsArrayBuffer() || args[2].IsTypedArray())) { + TypeError::New(env, "Expected bigint (ctrl), string (path), ArrayBuffer or Uint8Array").ThrowAsJavaScriptException(); return env.Undefined(); } chat_ctrl ctrl = FromChatCtrlBigInt(args[0]); std::string path = args[1].As().Utf8Value(); - ArrayBuffer ab = args[2].As(); - char* data = static_cast(ab.Data()); - size_t len = ab.ByteLength(); + char* data; + size_t len; + if (args[2].IsArrayBuffer()) { + ArrayBuffer ab = args[2].As(); + data = static_cast(ab.Data()); + len = ab.ByteLength(); + } else { + TypedArray view = args[2].As(); + data = static_cast(view.ArrayBuffer().Data()) + view.ByteOffset(); + len = view.ByteLength(); + } + if (len > static_cast(INT_MAX)) { + RangeError::New(env, "Buffer is too large").ThrowAsJavaScriptException(); + return env.Undefined(); + } Function cb; Promise promise = CreatePromiseAndCallback(env, cb); - auto execute_fn = [ctrl, path, ab, data, len](ResultAsyncWorker* worker) { - (void)ab; // to keep ArrayBuffer alive + auto execute_fn = [ctrl, path, data, len](ResultAsyncWorker* worker) { char* c_res = chat_write_file(ctrl, path.c_str(), data, static_cast(len)); HandleCResult(worker, c_res, "chat_write_file"); }; ResultAsyncWorker* worker = new ResultAsyncWorker(cb, std::move(execute_fn)); + worker->KeepAlive(args[2].As()); worker->Queue(); return promise; @@ -410,10 +637,19 @@ Value ChatDecryptFile(const CallbackInfo& args) { Object Init(Env env, Object exports) { haskell_init(); + auto* receivers = new Receivers(); + // Stopping all receivers before joining any bounds teardown by the longest in-flight receive. + env.AddCleanupHook([receivers]() { + for (auto& entry : *receivers) { + entry.second->RequestStop(); + } + delete receivers; + }); exports.Set("chat_migrate_init", Function::New(env, ChatMigrateInit)); - exports.Set("chat_close_store", Function::New(env, ChatCloseStore)); + exports.Set("chat_migrate_init_queue", Function::New(env, ChatMigrateInitQueue)); + exports.Set("chat_close_store", Function::New(env, ChatCloseStore, "chat_close_store", receivers)); exports.Set("chat_send_cmd", Function::New(env, ChatSendCmd)); - exports.Set("chat_recv_msg_wait", Function::New(env, ChatRecvMsgWait)); + exports.Set("chat_recv_msg_wait", Function::New(env, ChatRecvMsgWait, "chat_recv_msg_wait", receivers)); exports.Set("chat_write_file", Function::New(env, ChatWriteFile)); exports.Set("chat_read_file", Function::New(env, ChatReadFile)); exports.Set("chat_encrypt_file", Function::New(env, ChatEncryptFile)); diff --git a/packages/simplex-chat-nodejs/cpp/simplex.h b/packages/simplex-chat-nodejs/cpp/simplex.h index 8e579626ed..ddc052946a 100644 --- a/packages/simplex-chat-nodejs/cpp/simplex.h +++ b/packages/simplex-chat-nodejs/cpp/simplex.h @@ -11,11 +11,13 @@ extern "C" void hs_init(int argc, char **argv[]); extern "C" void hs_init_with_rtsopts(int * argc, char **argv[]); +extern "C" void hs_thread_done(void); typedef long* chat_ctrl; // the last parameter is used to return the pointer to chat controller extern "C" char *chat_migrate_init(const char *path, const char *key, const char *confirm, chat_ctrl *ctrl); +extern "C" char *chat_migrate_init_queue(const char *path, const char *key, const char *confirm, const int queueSize, chat_ctrl *ctrl); extern "C" char *chat_close_store(chat_ctrl ctrl); extern "C" char *chat_reopen_store(chat_ctrl ctrl); extern "C" char *chat_send_cmd(chat_ctrl ctrl, const char *cmd); diff --git a/packages/simplex-chat-nodejs/docs/Namespace.bot.md b/packages/simplex-chat-nodejs/docs/Namespace.bot.md index 4b9171d0f7..7adeeec0c7 100644 --- a/packages/simplex-chat-nodejs/docs/Namespace.bot.md +++ b/packages/simplex-chat-nodejs/docs/Namespace.bot.md @@ -21,3 +21,4 @@ It automates creating and updating of the bot profile, address and bot commands ## Functions - [run](bot.Function.run.md) +- [subscribeChatItems](bot.Function.subscribeChatItems.md) diff --git a/packages/simplex-chat-nodejs/docs/api.Class.ChatApi.md b/packages/simplex-chat-nodejs/docs/api.Class.ChatApi.md index b81677b976..287099906b 100644 --- a/packages/simplex-chat-nodejs/docs/api.Class.ChatApi.md +++ b/packages/simplex-chat-nodejs/docs/api.Class.ChatApi.md @@ -26,7 +26,7 @@ Defined in: [src/api.ts:103](../src/api.ts#L103) > **get** **ctrl**(): `bigint` -Defined in: [src/api.ts:329](../src/api.ts#L329) +Defined in: [src/api.ts:344](../src/api.ts#L344) Chat controller reference @@ -42,7 +42,7 @@ Chat controller reference > **get** **initialized**(): `boolean` -Defined in: [src/api.ts:315](../src/api.ts#L315) +Defined in: [src/api.ts:330](../src/api.ts#L330) Chat controller is initialized @@ -58,7 +58,7 @@ Chat controller is initialized > **get** **started**(): `boolean` -Defined in: [src/api.ts:322](../src/api.ts#L322) +Defined in: [src/api.ts:337](../src/api.ts#L337) Chat controller is started @@ -72,7 +72,7 @@ Chat controller is started > **apiAcceptContactRequest**(`contactReqId`): `Promise`\<`Contact`\> -Defined in: [src/api.ts:731](../src/api.ts#L731) +Defined in: [src/api.ts:750](../src/api.ts#L750) Accept contact request. Network usage: interactive. @@ -93,7 +93,7 @@ Network usage: interactive. > **apiAcceptMember**(`groupId`, `groupMemberId`, `memberRole`): `Promise`\<`GroupMember`\> -Defined in: [src/api.ts:551](../src/api.ts#L551) +Defined in: [src/api.ts:570](../src/api.ts#L570) Accept group member. Requires Admin role. Network usage: background. @@ -122,7 +122,7 @@ Network usage: background. > **apiAddMember**(`groupId`, `contactId`, `memberRole`): `Promise`\<`GroupMember`\> -Defined in: [src/api.ts:531](../src/api.ts#L531) +Defined in: [src/api.ts:550](../src/api.ts#L550) Add contact to group. Requires bot to have Admin role. Network usage: interactive. @@ -151,7 +151,7 @@ Network usage: interactive. > **apiBlockMembersForAll**(`groupId`, `groupMemberIds`, `blocked`): `Promise`\<`void`\> -Defined in: [src/api.ts:571](../src/api.ts#L571) +Defined in: [src/api.ts:590](../src/api.ts#L590) Block members. Requires Moderator role. Network usage: background. @@ -180,7 +180,7 @@ Network usage: background. > **apiCancelFile**(`fileId`): `Promise`\<`void`\> -Defined in: [src/api.ts:521](../src/api.ts#L521) +Defined in: [src/api.ts:540](../src/api.ts#L540) Cancel file. Network usage: background. @@ -199,9 +199,9 @@ Network usage: background. ### apiChatItemReaction() -> **apiChatItemReaction**(`chatType`, `chatId`, `chatItemId`, `add`, `reaction`): `Promise`\<`ChatItemDeletion`[]\> +> **apiChatItemReaction**(`chatType`, `chatId`, `chatItemId`, `add`, `reaction`): `Promise`\<`ACIReaction`\> -Defined in: [src/api.ts:495](../src/api.ts#L495) +Defined in: [src/api.ts:513](../src/api.ts#L513) Add/remove message reaction. Network usage: background. @@ -230,15 +230,15 @@ Network usage: background. #### Returns -`Promise`\<`ChatItemDeletion`[]\> +`Promise`\<`ACIReaction`\> *** ### apiConnect() -> **apiConnect**(`userId`, `incognito`, `preparedLink?`): `Promise`\<[`ConnReqType`](api.Enumeration.ConnReqType.md)\> +> **apiConnect**(`userId`, `incognito`, `preparedLink`): `Promise`\<[`ConnReqType`](api.Enumeration.ConnReqType.md)\> -Defined in: [src/api.ts:700](../src/api.ts#L700) +Defined in: [src/api.ts:719](../src/api.ts#L719) Connect via prepared SimpleX link. The link can be 1-time invitation link, contact address or group link Network usage: interactive. @@ -253,7 +253,7 @@ Network usage: interactive. `boolean` -##### preparedLink? +##### preparedLink `CreatedConnLink` @@ -267,7 +267,7 @@ Network usage: interactive. > **apiConnectActiveUser**(`connLink`): `Promise`\<[`ConnReqType`](api.Enumeration.ConnReqType.md)\> -Defined in: [src/api.ts:709](../src/api.ts#L709) +Defined in: [src/api.ts:728](../src/api.ts#L728) Connect via SimpleX link as string in the active user profile. Network usage: interactive. @@ -288,7 +288,7 @@ Network usage: interactive. > **apiConnectPlan**(`userId`, `connectionLink`): `Promise`\<\[`ConnectionPlan`, `CreatedConnLink`\]\> -Defined in: [src/api.ts:690](../src/api.ts#L690) +Defined in: [src/api.ts:709](../src/api.ts#L709) Determine SimpleX link type and if the bot is already connected via this link. Network usage: interactive. @@ -313,7 +313,7 @@ Network usage: interactive. > **apiCreateActiveUser**(`profile?`): `Promise`\<`User`\> -Defined in: [src/api.ts:849](../src/api.ts#L849) +Defined in: [src/api.ts:887](../src/api.ts#L887) Create new user profile Network usage: no. @@ -334,7 +334,7 @@ Network usage: no. > **apiCreateGroupLink**(`groupId`, `memberRole`): `Promise`\<`string`\> -Defined in: [src/api.ts:631](../src/api.ts#L631) +Defined in: [src/api.ts:650](../src/api.ts#L650) Create group link. Network usage: interactive. @@ -359,7 +359,7 @@ Network usage: interactive. > **apiCreateLink**(`userId`): `Promise`\<`string`\> -Defined in: [src/api.ts:677](../src/api.ts#L677) +Defined in: [src/api.ts:696](../src/api.ts#L696) Create 1-time invitation link. Network usage: interactive. @@ -380,7 +380,7 @@ Network usage: interactive. > **apiCreateMemberContact**(`groupId`, `groupMemberId`): `Promise`\<`Contact`\> -Defined in: [src/api.ts:915](../src/api.ts#L915) +Defined in: [src/api.ts:953](../src/api.ts#L953) Create a direct message contact with a group member. Returns the created contact. @@ -406,7 +406,7 @@ Network usage: interactive. > **apiCreateUserAddress**(`userId`): `Promise`\<`CreatedConnLink`\> -Defined in: [src/api.ts:346](../src/api.ts#L346) +Defined in: [src/api.ts:361](../src/api.ts#L361) Create bot address. Network usage: interactive. @@ -427,7 +427,7 @@ Network usage: interactive. > **apiDeleteChat**(`chatType`, `chatId`, `deleteMode?`): `Promise`\<`void`\> -Defined in: [src/api.ts:771](../src/api.ts#L771) +Defined in: [src/api.ts:809](../src/api.ts#L809) Delete chat. Network usage: background. @@ -456,7 +456,7 @@ Network usage: background. > **apiDeleteChatItems**(`chatType`, `chatId`, `chatItemIds`, `deleteMode`): `Promise`\<`ChatItemDeletion`[]\> -Defined in: [src/api.ts:470](../src/api.ts#L470) +Defined in: [src/api.ts:488](../src/api.ts#L488) Delete message. Network usage: background. @@ -489,7 +489,7 @@ Network usage: background. > **apiDeleteGroupLink**(`groupId`): `Promise`\<`void`\> -Defined in: [src/api.ts:653](../src/api.ts#L653) +Defined in: [src/api.ts:672](../src/api.ts#L672) Delete group link. Network usage: background. @@ -510,7 +510,7 @@ Network usage: background. > **apiDeleteMemberChatItem**(`groupId`, `chatItemIds`): `Promise`\<`ChatItemDeletion`[]\> -Defined in: [src/api.ts:485](../src/api.ts#L485) +Defined in: [src/api.ts:503](../src/api.ts#L503) Moderate message. Requires Moderator role (and higher than message author's). Network usage: background. @@ -535,7 +535,7 @@ Network usage: background. > **apiDeleteUser**(`userId`, `delSMPQueues`, `viewPwd?`): `Promise`\<`void`\> -Defined in: [src/api.ts:879](../src/api.ts#L879) +Defined in: [src/api.ts:917](../src/api.ts#L917) Delete user profile. Network usage: background. @@ -564,7 +564,7 @@ Network usage: background. > **apiDeleteUserAddress**(`userId`): `Promise`\<`void`\> -Defined in: [src/api.ts:356](../src/api.ts#L356) +Defined in: [src/api.ts:371](../src/api.ts#L371) Deletes a user address. Network usage: background. @@ -585,7 +585,7 @@ Network usage: background. > **apiGetActiveUser**(): `Promise`\<`User` \| `undefined`\> -Defined in: [src/api.ts:829](../src/api.ts#L829) +Defined in: [src/api.ts:867](../src/api.ts#L867) Get active user profile Network usage: no. @@ -600,7 +600,7 @@ Network usage: no. > **apiGetChat**(`chatType`, `chatId`, `count`): `Promise`\<`any`\> -Defined in: [src/api.ts:819](../src/api.ts#L819) +Defined in: [src/api.ts:857](../src/api.ts#L857) Get chat items. Network usage: no. @@ -625,11 +625,48 @@ Network usage: no. *** +### apiGetChats() + +> **apiGetChats**(`userId`, `pagination`, `query?`, `pendingConnections?`): `Promise`\<`AChat`[]\> + +Defined in: [src/api.ts:794](../src/api.ts#L794) + +Get chat previews (paginated). +Network usage: no. + +Prefer this over apiListContacts / apiListGroups for any scan: those +methods load every record into memory in a single response and will fail +on large databases. + +#### Parameters + +##### userId + +`number` + +##### pagination + +`Last` + +##### query? + +`ChatListQuery` = `...` + +##### pendingConnections? + +`boolean` = `false` + +#### Returns + +`Promise`\<`AChat`[]\> + +*** + ### apiGetGroupLink() > **apiGetGroupLink**(`groupId`): `Promise`\<`GroupLink`\> -Defined in: [src/api.ts:662](../src/api.ts#L662) +Defined in: [src/api.ts:681](../src/api.ts#L681) Get group link. Network usage: no. @@ -650,7 +687,7 @@ Network usage: no. > **apiGetGroupLinkStr**(`groupId`): `Promise`\<`string`\> -Defined in: [src/api.ts:668](../src/api.ts#L668) +Defined in: [src/api.ts:687](../src/api.ts#L687) #### Parameters @@ -668,7 +705,7 @@ Defined in: [src/api.ts:668](../src/api.ts#L668) > **apiGetUserAddress**(`userId`): `Promise`\<`UserContactLink` \| `undefined`\> -Defined in: [src/api.ts:366](../src/api.ts#L366) +Defined in: [src/api.ts:381](../src/api.ts#L381) Get bot address and settings. Network usage: no. @@ -689,7 +726,7 @@ Network usage: no. > **apiJoinGroup**(`groupId`): `Promise`\<`GroupInfo`\> -Defined in: [src/api.ts:541](../src/api.ts#L541) +Defined in: [src/api.ts:560](../src/api.ts#L560) Join group. Network usage: interactive. @@ -710,7 +747,7 @@ Network usage: interactive. > **apiLeaveGroup**(`groupId`): `Promise`\<`GroupInfo`\> -Defined in: [src/api.ts:591](../src/api.ts#L591) +Defined in: [src/api.ts:610](../src/api.ts#L610) Leave group. Network usage: background. @@ -731,7 +768,7 @@ Network usage: background. > **apiListContacts**(`userId`): `Promise`\<`Contact`[]\> -Defined in: [src/api.ts:751](../src/api.ts#L751) +Defined in: [src/api.ts:770](../src/api.ts#L770) Get contacts. Network usage: no. @@ -752,7 +789,7 @@ Network usage: no. > **apiListGroups**(`userId`, `contactId?`, `search?`): `Promise`\<`GroupInfo`[]\> -Defined in: [src/api.ts:761](../src/api.ts#L761) +Defined in: [src/api.ts:780](../src/api.ts#L780) Get groups. Network usage: no. @@ -781,7 +818,7 @@ Network usage: no. > **apiListMembers**(`groupId`): `Promise`\<`GroupMember`[]\> -Defined in: [src/api.ts:601](../src/api.ts#L601) +Defined in: [src/api.ts:620](../src/api.ts#L620) Get group members. Network usage: no. @@ -802,7 +839,7 @@ Network usage: no. > **apiListUsers**(): `Promise`\<`UserInfo`[]\> -Defined in: [src/api.ts:859](../src/api.ts#L859) +Defined in: [src/api.ts:897](../src/api.ts#L897) Get all user profiles Network usage: no. @@ -817,7 +854,7 @@ Network usage: no. > **apiNewGroup**(`userId`, `groupProfile`): `Promise`\<`GroupInfo`\> -Defined in: [src/api.ts:611](../src/api.ts#L611) +Defined in: [src/api.ts:630](../src/api.ts#L630) Create group. Network usage: no. @@ -842,7 +879,7 @@ Network usage: no. > **apiReceiveFile**(`fileId`): `Promise`\<`AChatItem`\> -Defined in: [src/api.ts:511](../src/api.ts#L511) +Defined in: [src/api.ts:529](../src/api.ts#L529) Receive file. Network usage: no. @@ -863,7 +900,7 @@ Network usage: no. > **apiRejectContactRequest**(`contactReqId`): `Promise`\<`void`\> -Defined in: [src/api.ts:741](../src/api.ts#L741) +Defined in: [src/api.ts:760](../src/api.ts#L760) Reject contact request. The user who sent the request is **not notified**. Network usage: no. @@ -884,7 +921,7 @@ Network usage: no. > **apiRemoveMembers**(`groupId`, `memberIds`, `withMessages?`): `Promise`\<`GroupMember`[]\> -Defined in: [src/api.ts:581](../src/api.ts#L581) +Defined in: [src/api.ts:600](../src/api.ts#L600) Remove members. Requires Admin role. Network usage: background. @@ -913,7 +950,7 @@ Network usage: background. > **apiSendMemberContactInvitation**(`contactId`, `message?`): `Promise`\<`Contact`\> -Defined in: [src/api.ts:926](../src/api.ts#L926) +Defined in: [src/api.ts:964](../src/api.ts#L964) Send a direct message invitation to a group member contact. The contact must have been created with [apiCreateMemberContact](#apicreatemembercontact). @@ -939,7 +976,7 @@ Network usage: interactive. > **apiSendMessages**(`chat`, `messages`, `liveMessage?`): `Promise`\<`AChatItem`[]\> -Defined in: [src/api.ts:415](../src/api.ts#L415) +Defined in: [src/api.ts:432](../src/api.ts#L432) Send messages. Network usage: background. @@ -968,7 +1005,7 @@ Network usage: background. > **apiSendTextMessage**(`chat`, `text`, `inReplyTo?`): `Promise`\<`AChatItem`[]\> -Defined in: [src/api.ts:437](../src/api.ts#L437) +Defined in: [src/api.ts:455](../src/api.ts#L455) Send text message. Network usage: background. @@ -997,7 +1034,7 @@ Network usage: background. > **apiSendTextReply**(`chatItem`, `text`): `Promise`\<`AChatItem`[]\> -Defined in: [src/api.ts:445](../src/api.ts#L445) +Defined in: [src/api.ts:463](../src/api.ts#L463) Send text message in reply to received message. Network usage: background. @@ -1022,7 +1059,7 @@ Network usage: background. > **apiSetActiveUser**(`userId`, `viewPwd?`): `Promise`\<`User`\> -Defined in: [src/api.ts:869](../src/api.ts#L869) +Defined in: [src/api.ts:907](../src/api.ts#L907) Set active user profile Network usage: no. @@ -1047,7 +1084,7 @@ Network usage: no. > **apiSetAddressSettings**(`userId`, `__namedParameters`): `Promise`\<`void`\> -Defined in: [src/api.ts:398](../src/api.ts#L398) +Defined in: [src/api.ts:415](../src/api.ts#L415) Set bot address settings. Network usage: interactive. @@ -1072,7 +1109,7 @@ Network usage: interactive. > **apiSetAutoAcceptMemberContacts**(`userId`, `onOff`): `Promise`\<`void`\> -Defined in: [src/api.ts:808](../src/api.ts#L808) +Defined in: [src/api.ts:846](../src/api.ts#L846) Set auto-accept member contacts. Network usage: no. @@ -1097,7 +1134,7 @@ Network usage: no. > **apiSetContactCustomData**(`contactId`, `customData?`): `Promise`\<`void`\> -Defined in: [src/api.ts:798](../src/api.ts#L798) +Defined in: [src/api.ts:836](../src/api.ts#L836) Set contact custom data. Network usage: no. @@ -1122,7 +1159,7 @@ Network usage: no. > **apiSetContactPrefs**(`contactId`, `preferences`): `Promise`\<`void`\> -Defined in: [src/api.ts:905](../src/api.ts#L905) +Defined in: [src/api.ts:943](../src/api.ts#L943) Configure chat preference overrides for the contact. Network usage: background. @@ -1147,7 +1184,7 @@ Network usage: background. > **apiSetGroupCustomData**(`groupId`, `customData?`): `Promise`\<`void`\> -Defined in: [src/api.ts:788](../src/api.ts#L788) +Defined in: [src/api.ts:826](../src/api.ts#L826) Set group custom data. Network usage: no. @@ -1172,7 +1209,7 @@ Network usage: no. > **apiSetGroupLinkMemberRole**(`groupId`, `memberRole`): `Promise`\<`void`\> -Defined in: [src/api.ts:644](../src/api.ts#L644) +Defined in: [src/api.ts:663](../src/api.ts#L663) Set member role for group link. Network usage: no. @@ -1197,7 +1234,7 @@ Network usage: no. > **apiSetMembersRole**(`groupId`, `groupMemberIds`, `memberRole`): `Promise`\<`void`\> -Defined in: [src/api.ts:561](../src/api.ts#L561) +Defined in: [src/api.ts:580](../src/api.ts#L580) Set members role. Requires Admin role. Network usage: background. @@ -1226,7 +1263,7 @@ Network usage: background. > **apiSetProfileAddress**(`userId`, `enable`): `Promise`\<`UserProfileUpdateSummary`\> -Defined in: [src/api.ts:384](../src/api.ts#L384) +Defined in: [src/api.ts:399](../src/api.ts#L399) Add address to bot profile. Network usage: interactive. @@ -1251,7 +1288,7 @@ Network usage: interactive. > **apiUpdateChatItem**(`chatType`, `chatId`, `chatItemId`, `msgContent`, `liveMessage`): `Promise`\<`ChatItem`\> -Defined in: [src/api.ts:453](../src/api.ts#L453) +Defined in: [src/api.ts:471](../src/api.ts#L471) Update message. Network usage: background. @@ -1288,7 +1325,7 @@ Network usage: background. > **apiUpdateGroupProfile**(`groupId`, `groupProfile`): `Promise`\<`GroupInfo`\> -Defined in: [src/api.ts:621](../src/api.ts#L621) +Defined in: [src/api.ts:640](../src/api.ts#L640) Update group profile. Network usage: background. @@ -1313,7 +1350,7 @@ Network usage: background. > **apiUpdateProfile**(`userId`, `profile`): `Promise`\<`UserProfileUpdateSummary` \| `undefined`\> -Defined in: [src/api.ts:889](../src/api.ts#L889) +Defined in: [src/api.ts:927](../src/api.ts#L927) Update user profile. Network usage: background. @@ -1338,9 +1375,10 @@ Network usage: background. > **close**(): `Promise`\<`void`\> -Defined in: [src/api.ts:148](../src/api.ts#L148) +Defined in: [src/api.ts:158](../src/api.ts#L158) -Close chat database. +Stop chat controller and close chat database. +The database is not closed if stopping fails. Usually doesn't need to be called in chat bots. #### Returns @@ -1353,7 +1391,7 @@ Usually doesn't need to be called in chat bots. > **off**\<`K`\>(`event`, `subscriber?`): `void` -Defined in: [src/api.ts:287](../src/api.ts#L287) +Defined in: [src/api.ts:302](../src/api.ts#L302) Unsubscribe all or a specific handler from a specific event. @@ -1387,7 +1425,7 @@ An optional subscriber function for the event. > **offAny**(`receiver?`): `void` -Defined in: [src/api.ts:303](../src/api.ts#L303) +Defined in: [src/api.ts:318](../src/api.ts#L318) Unsubscribe all or a specific handler from any events. @@ -1411,7 +1449,7 @@ An optional subscriber function for the event. > **on**\<`K`\>(`subscribers`): `void` -Defined in: [src/api.ts:197](../src/api.ts#L197) +Defined in: [src/api.ts:212](../src/api.ts#L212) Subscribe multiple event handlers at once. @@ -1441,7 +1479,7 @@ If the same function is subscribed to event. > **on**\<`K`\>(`event`, `subscriber`): `void` -Defined in: [src/api.ts:205](../src/api.ts#L205) +Defined in: [src/api.ts:220](../src/api.ts#L220) Subscribe a handler to a specific event. @@ -1479,7 +1517,7 @@ If the same function is subscribed to event. > **onAny**(`receiver`): `void` -Defined in: [src/api.ts:228](../src/api.ts#L228) +Defined in: [src/api.ts:243](../src/api.ts#L243) Subscribe a handler to any event. @@ -1505,7 +1543,7 @@ If the same function is subscribed to event. > **once**\<`K`\>(`event`, `subscriber`): `void` -Defined in: [src/api.ts:239](../src/api.ts#L239) +Defined in: [src/api.ts:254](../src/api.ts#L254) Subscribe a handler to a specific event to be delivered one time. @@ -1543,13 +1581,13 @@ If the same function is subscribed to event. > **recvChatEvent**(`wait?`): `Promise`\<`ChatEvent` \| `undefined`\> -Defined in: [src/api.ts:338](../src/api.ts#L338) +Defined in: [src/api.ts:353](../src/api.ts#L353) #### Parameters ##### wait? -`number` = `5_000_000` +`number` = `500_000` #### Returns @@ -1561,7 +1599,7 @@ Defined in: [src/api.ts:338](../src/api.ts#L338) > **sendChatCmd**(`cmd`): `Promise`\<`ChatResponse`\> -Defined in: [src/api.ts:334](../src/api.ts#L334) +Defined in: [src/api.ts:349](../src/api.ts#L349) #### Parameters @@ -1579,7 +1617,7 @@ Defined in: [src/api.ts:334](../src/api.ts#L334) > **startChat**(): `Promise`\<`void`\> -Defined in: [src/api.ts:122](../src/api.ts#L122) +Defined in: [src/api.ts:124](../src/api.ts#L124) Start chat controller. Must be called with the existing user profile. @@ -1593,10 +1631,10 @@ Start chat controller. Must be called with the existing user profile. > **stopChat**(): `Promise`\<`void`\> -Defined in: [src/api.ts:136](../src/api.ts#L136) +Defined in: [src/api.ts:147](../src/api.ts#L147) Stop chat controller. -Must be called before closing the database. +`close` calls it before closing the database. Usually doesn't need to be called in chat bots. #### Returns @@ -1611,7 +1649,7 @@ Usually doesn't need to be called in chat bots. > **wait**\<`K`\>(`event`): `Promise`\<`ChatEvent` & `object`\> -Defined in: [src/api.ts:247](../src/api.ts#L247) +Defined in: [src/api.ts:262](../src/api.ts#L262) Waits for specific event, with an optional predicate. Returns `undefined` on timeout if specified. @@ -1636,7 +1674,7 @@ Returns `undefined` on timeout if specified. > **wait**\<`K`\>(`event`, `predicate`): `Promise`\<`ChatEvent` & `object`\> -Defined in: [src/api.ts:248](../src/api.ts#L248) +Defined in: [src/api.ts:263](../src/api.ts#L263) Waits for specific event, with an optional predicate. Returns `undefined` on timeout if specified. @@ -1665,7 +1703,7 @@ Returns `undefined` on timeout if specified. > **wait**\<`K`\>(`event`, `timeout`): `Promise`\ -Defined in: [src/api.ts:249](../src/api.ts#L249) +Defined in: [src/api.ts:264](../src/api.ts#L264) Waits for specific event, with an optional predicate. Returns `undefined` on timeout if specified. @@ -1694,7 +1732,7 @@ Returns `undefined` on timeout if specified. > **wait**\<`K`\>(`event`, `predicate`, `timeout`): `Promise`\ -Defined in: [src/api.ts:250](../src/api.ts#L250) +Defined in: [src/api.ts:265](../src/api.ts#L265) Waits for specific event, with an optional predicate. Returns `undefined` on timeout if specified. @@ -1727,9 +1765,9 @@ Returns `undefined` on timeout if specified. ### init() -> `static` **init**(`db`, `confirm?`): `Promise`\<`ChatApi`\> +> `static` **init**(`db`, `confirm?`, `queueSize?`): `Promise`\<`ChatApi`\> -Defined in: [src/api.ts:110](../src/api.ts#L110) +Defined in: [src/api.ts:111](../src/api.ts#L111) Initializes the ChatApi. @@ -1747,6 +1785,12 @@ Database configuration (sqlite or postgres). Migration confirmation mode. +##### queueSize? + +`number` + +Size of internal queues, the core default is used when omitted. + #### Returns `Promise`\<`ChatApi`\> diff --git a/packages/simplex-chat-nodejs/docs/bot.Function.run.md b/packages/simplex-chat-nodejs/docs/bot.Function.run.md index 3c33e6c7d4..0af2644bc2 100644 --- a/packages/simplex-chat-nodejs/docs/bot.Function.run.md +++ b/packages/simplex-chat-nodejs/docs/bot.Function.run.md @@ -8,7 +8,7 @@ > **run**(`__namedParameters`): `Promise`\<\[[`ChatApi`](api.Class.ChatApi.md), `User`, `UserContactLink` \| `undefined`\]\> -Defined in: [src/bot.ts:47](../src/bot.ts#L47) +Defined in: [src/bot.ts:48](../src/bot.ts#L48) ## Parameters diff --git a/packages/simplex-chat-nodejs/docs/bot.Function.subscribeChatItems.md b/packages/simplex-chat-nodejs/docs/bot.Function.subscribeChatItems.md new file mode 100644 index 0000000000..5397cf3aeb --- /dev/null +++ b/packages/simplex-chat-nodejs/docs/bot.Function.subscribeChatItems.md @@ -0,0 +1,27 @@ +[**simplex-chat**](README.md) + +*** + +[simplex-chat](README.md) / [bot](Namespace.bot.md) / subscribeChatItems + +# Function: subscribeChatItems() + +> **subscribeChatItems**(`bot`, `onMessage`, `commands`): `void` + +Defined in: [src/bot.ts:108](../src/bot.ts#L108) + +## Parameters + +### bot + +[`ChatApi`](api.Class.ChatApi.md) + +### onMessage + +((`chatItem`, `content`) => `void` \| `Promise`\<`void`\>) \| `undefined` + +### commands + +## Returns + +`void` diff --git a/packages/simplex-chat-nodejs/docs/bot.Interface.BotConfig.md b/packages/simplex-chat-nodejs/docs/bot.Interface.BotConfig.md index 4624b1608b..f763f414da 100644 --- a/packages/simplex-chat-nodejs/docs/bot.Interface.BotConfig.md +++ b/packages/simplex-chat-nodejs/docs/bot.Interface.BotConfig.md @@ -6,7 +6,7 @@ # Interface: BotConfig -Defined in: [src/bot.ts:35](../src/bot.ts#L35) +Defined in: [src/bot.ts:36](../src/bot.ts#L36) ## Properties @@ -14,7 +14,7 @@ Defined in: [src/bot.ts:35](../src/bot.ts#L35) > **dbOpts**: [`BotDbOpts`](bot.TypeAlias.BotDbOpts.md) -Defined in: [src/bot.ts:37](../src/bot.ts#L37) +Defined in: [src/bot.ts:38](../src/bot.ts#L38) *** @@ -22,7 +22,7 @@ Defined in: [src/bot.ts:37](../src/bot.ts#L37) > `optional` **events?**: [`EventSubscribers`](api.TypeAlias.EventSubscribers.md) -Defined in: [src/bot.ts:44](../src/bot.ts#L44) +Defined in: [src/bot.ts:45](../src/bot.ts#L45) *** @@ -30,7 +30,7 @@ Defined in: [src/bot.ts:44](../src/bot.ts#L44) > `optional` **onCommands?**: `object` -Defined in: [src/bot.ts:41](../src/bot.ts#L41) +Defined in: [src/bot.ts:42](../src/bot.ts#L42) #### Index Signature @@ -42,7 +42,7 @@ Defined in: [src/bot.ts:41](../src/bot.ts#L41) > `optional` **onMessage?**: (`chatItem`, `content`) => `void` \| `Promise`\<`void`\> -Defined in: [src/bot.ts:39](../src/bot.ts#L39) +Defined in: [src/bot.ts:40](../src/bot.ts#L40) #### Parameters @@ -64,7 +64,7 @@ Defined in: [src/bot.ts:39](../src/bot.ts#L39) > **options**: [`BotOptions`](bot.Interface.BotOptions.md) -Defined in: [src/bot.ts:38](../src/bot.ts#L38) +Defined in: [src/bot.ts:39](../src/bot.ts#L39) *** @@ -72,4 +72,4 @@ Defined in: [src/bot.ts:38](../src/bot.ts#L38) > **profile**: `Profile` -Defined in: [src/bot.ts:36](../src/bot.ts#L36) +Defined in: [src/bot.ts:37](../src/bot.ts#L37) diff --git a/packages/simplex-chat-nodejs/docs/bot.Interface.BotOptions.md b/packages/simplex-chat-nodejs/docs/bot.Interface.BotOptions.md index eee56b879a..c5d5df5193 100644 --- a/packages/simplex-chat-nodejs/docs/bot.Interface.BotOptions.md +++ b/packages/simplex-chat-nodejs/docs/bot.Interface.BotOptions.md @@ -6,7 +6,7 @@ # Interface: BotOptions -Defined in: [src/bot.ts:11](../src/bot.ts#L11) +Defined in: [src/bot.ts:12](../src/bot.ts#L12) ## Properties @@ -14,7 +14,7 @@ Defined in: [src/bot.ts:11](../src/bot.ts#L11) > `optional` **addressSettings?**: [`BotAddressSettings`](api.Interface.BotAddressSettings.md) -Defined in: [src/bot.ts:15](../src/bot.ts#L15) +Defined in: [src/bot.ts:16](../src/bot.ts#L16) *** @@ -22,7 +22,7 @@ Defined in: [src/bot.ts:15](../src/bot.ts#L15) > `optional` **allowFiles?**: `boolean` -Defined in: [src/bot.ts:16](../src/bot.ts#L16) +Defined in: [src/bot.ts:17](../src/bot.ts#L17) *** @@ -30,7 +30,7 @@ Defined in: [src/bot.ts:16](../src/bot.ts#L16) > `optional` **commands?**: `ChatBotCommand`[] -Defined in: [src/bot.ts:17](../src/bot.ts#L17) +Defined in: [src/bot.ts:18](../src/bot.ts#L18) *** @@ -38,7 +38,7 @@ Defined in: [src/bot.ts:17](../src/bot.ts#L17) > `optional` **createAddress?**: `boolean` -Defined in: [src/bot.ts:12](../src/bot.ts#L12) +Defined in: [src/bot.ts:13](../src/bot.ts#L13) *** @@ -46,7 +46,7 @@ Defined in: [src/bot.ts:12](../src/bot.ts#L12) > `optional` **logContacts?**: `boolean` -Defined in: [src/bot.ts:19](../src/bot.ts#L19) +Defined in: [src/bot.ts:20](../src/bot.ts#L20) *** @@ -54,7 +54,7 @@ Defined in: [src/bot.ts:19](../src/bot.ts#L19) > `optional` **logNetwork?**: `boolean` -Defined in: [src/bot.ts:20](../src/bot.ts#L20) +Defined in: [src/bot.ts:21](../src/bot.ts#L21) *** @@ -62,7 +62,7 @@ Defined in: [src/bot.ts:20](../src/bot.ts#L20) > `optional` **updateAddress?**: `boolean` -Defined in: [src/bot.ts:13](../src/bot.ts#L13) +Defined in: [src/bot.ts:14](../src/bot.ts#L14) *** @@ -70,7 +70,7 @@ Defined in: [src/bot.ts:13](../src/bot.ts#L13) > `optional` **updateProfile?**: `boolean` -Defined in: [src/bot.ts:14](../src/bot.ts#L14) +Defined in: [src/bot.ts:15](../src/bot.ts#L15) *** @@ -78,4 +78,4 @@ Defined in: [src/bot.ts:14](../src/bot.ts#L14) > `optional` **useBotProfile?**: `boolean` -Defined in: [src/bot.ts:18](../src/bot.ts#L18) +Defined in: [src/bot.ts:19](../src/bot.ts#L19) diff --git a/packages/simplex-chat-nodejs/docs/bot.TypeAlias.BotDbOpts.md b/packages/simplex-chat-nodejs/docs/bot.TypeAlias.BotDbOpts.md index b035f41355..5aeb298a09 100644 --- a/packages/simplex-chat-nodejs/docs/bot.TypeAlias.BotDbOpts.md +++ b/packages/simplex-chat-nodejs/docs/bot.TypeAlias.BotDbOpts.md @@ -15,3 +15,7 @@ Defined in: [src/bot.ts:7](../src/bot.ts#L7) ### confirmMigrations? > `optional` **confirmMigrations?**: [`MigrationConfirmation`](core.Enumeration.MigrationConfirmation.md) + +### queueSize? + +> `optional` **queueSize?**: `number` diff --git a/packages/simplex-chat-nodejs/docs/core.Class.ChatAPIError.md b/packages/simplex-chat-nodejs/docs/core.Class.ChatAPIError.md index 5bd0722f0c..3953d777da 100644 --- a/packages/simplex-chat-nodejs/docs/core.Class.ChatAPIError.md +++ b/packages/simplex-chat-nodejs/docs/core.Class.ChatAPIError.md @@ -6,7 +6,7 @@ # Class: ChatAPIError -Defined in: [src/core.ts:92](../src/core.ts#L92) +Defined in: [src/core.ts:95](../src/core.ts#L95) ## Extends @@ -18,7 +18,7 @@ Defined in: [src/core.ts:92](../src/core.ts#L92) > **new ChatAPIError**(`message`, `chatError?`): `ChatAPIError` -Defined in: [src/core.ts:93](../src/core.ts#L93) +Defined in: [src/core.ts:96](../src/core.ts#L96) #### Parameters @@ -44,7 +44,7 @@ Defined in: [src/core.ts:93](../src/core.ts#L93) > **chatError**: `ChatError` \| `undefined` = `undefined` -Defined in: [src/core.ts:93](../src/core.ts#L93) +Defined in: [src/core.ts:96](../src/core.ts#L96) *** @@ -52,7 +52,7 @@ Defined in: [src/core.ts:93](../src/core.ts#L93) > **message**: `string` -Defined in: [src/core.ts:93](../src/core.ts#L93) +Defined in: [src/core.ts:96](../src/core.ts#L96) #### Inherited from diff --git a/packages/simplex-chat-nodejs/docs/core.Class.ChatInitError.md b/packages/simplex-chat-nodejs/docs/core.Class.ChatInitError.md index 0feceae4fd..649090e3ac 100644 --- a/packages/simplex-chat-nodejs/docs/core.Class.ChatInitError.md +++ b/packages/simplex-chat-nodejs/docs/core.Class.ChatInitError.md @@ -6,7 +6,7 @@ # Class: ChatInitError -Defined in: [src/core.ts:116](../src/core.ts#L116) +Defined in: [src/core.ts:119](../src/core.ts#L119) ## Extends @@ -18,7 +18,7 @@ Defined in: [src/core.ts:116](../src/core.ts#L116) > **new ChatInitError**(`message`, `dbMigrationError`): `ChatInitError` -Defined in: [src/core.ts:117](../src/core.ts#L117) +Defined in: [src/core.ts:120](../src/core.ts#L120) #### Parameters @@ -44,7 +44,7 @@ Defined in: [src/core.ts:117](../src/core.ts#L117) > **dbMigrationError**: [`DBMigrationError`](core.TypeAlias.DBMigrationError.md) -Defined in: [src/core.ts:117](../src/core.ts#L117) +Defined in: [src/core.ts:120](../src/core.ts#L120) *** @@ -52,7 +52,7 @@ Defined in: [src/core.ts:117](../src/core.ts#L117) > **message**: `string` -Defined in: [src/core.ts:117](../src/core.ts#L117) +Defined in: [src/core.ts:120](../src/core.ts#L120) #### Inherited from diff --git a/packages/simplex-chat-nodejs/docs/core.DBMigrationError.Interface.ErrorMigration.md b/packages/simplex-chat-nodejs/docs/core.DBMigrationError.Interface.ErrorMigration.md index 02cf84b763..fea7bfb531 100644 --- a/packages/simplex-chat-nodejs/docs/core.DBMigrationError.Interface.ErrorMigration.md +++ b/packages/simplex-chat-nodejs/docs/core.DBMigrationError.Interface.ErrorMigration.md @@ -6,7 +6,7 @@ # Interface: ErrorMigration -Defined in: [src/core.ts:144](../src/core.ts#L144) +Defined in: [src/core.ts:152](../src/core.ts#L152) ## Extends @@ -18,7 +18,7 @@ Defined in: [src/core.ts:144](../src/core.ts#L144) > **dbFile**: `string` -Defined in: [src/core.ts:146](../src/core.ts#L146) +Defined in: [src/core.ts:154](../src/core.ts#L154) *** @@ -26,7 +26,7 @@ Defined in: [src/core.ts:146](../src/core.ts#L146) > **migrationError**: [`MigrationError`](core.TypeAlias.MigrationError.md) -Defined in: [src/core.ts:147](../src/core.ts#L147) +Defined in: [src/core.ts:155](../src/core.ts#L155) *** @@ -34,7 +34,7 @@ Defined in: [src/core.ts:147](../src/core.ts#L147) > **type**: `"errorMigration"` -Defined in: [src/core.ts:145](../src/core.ts#L145) +Defined in: [src/core.ts:153](../src/core.ts#L153) #### Overrides diff --git a/packages/simplex-chat-nodejs/docs/core.DBMigrationError.Interface.ErrorNotADatabase.md b/packages/simplex-chat-nodejs/docs/core.DBMigrationError.Interface.ErrorNotADatabase.md index 18e2429081..eb0bfb11cb 100644 --- a/packages/simplex-chat-nodejs/docs/core.DBMigrationError.Interface.ErrorNotADatabase.md +++ b/packages/simplex-chat-nodejs/docs/core.DBMigrationError.Interface.ErrorNotADatabase.md @@ -6,7 +6,7 @@ # Interface: ErrorNotADatabase -Defined in: [src/core.ts:139](../src/core.ts#L139) +Defined in: [src/core.ts:147](../src/core.ts#L147) ## Extends @@ -18,7 +18,7 @@ Defined in: [src/core.ts:139](../src/core.ts#L139) > **dbFile**: `string` -Defined in: [src/core.ts:141](../src/core.ts#L141) +Defined in: [src/core.ts:149](../src/core.ts#L149) *** @@ -26,7 +26,7 @@ Defined in: [src/core.ts:141](../src/core.ts#L141) > **type**: `"errorNotADatabase"` -Defined in: [src/core.ts:140](../src/core.ts#L140) +Defined in: [src/core.ts:148](../src/core.ts#L148) #### Overrides diff --git a/packages/simplex-chat-nodejs/docs/core.DBMigrationError.Interface.ErrorSQL.md b/packages/simplex-chat-nodejs/docs/core.DBMigrationError.Interface.ErrorSQL.md index 4d85b04197..ffaa364f9b 100644 --- a/packages/simplex-chat-nodejs/docs/core.DBMigrationError.Interface.ErrorSQL.md +++ b/packages/simplex-chat-nodejs/docs/core.DBMigrationError.Interface.ErrorSQL.md @@ -6,7 +6,7 @@ # Interface: ErrorSQL -Defined in: [src/core.ts:150](../src/core.ts#L150) +Defined in: [src/core.ts:158](../src/core.ts#L158) ## Extends @@ -18,7 +18,7 @@ Defined in: [src/core.ts:150](../src/core.ts#L150) > **dbFile**: `string` -Defined in: [src/core.ts:152](../src/core.ts#L152) +Defined in: [src/core.ts:160](../src/core.ts#L160) *** @@ -26,7 +26,7 @@ Defined in: [src/core.ts:152](../src/core.ts#L152) > **migrationSQLError**: `string` -Defined in: [src/core.ts:153](../src/core.ts#L153) +Defined in: [src/core.ts:161](../src/core.ts#L161) *** @@ -34,7 +34,7 @@ Defined in: [src/core.ts:153](../src/core.ts#L153) > **type**: `"errorSQL"` -Defined in: [src/core.ts:151](../src/core.ts#L151) +Defined in: [src/core.ts:159](../src/core.ts#L159) #### Overrides diff --git a/packages/simplex-chat-nodejs/docs/core.DBMigrationError.Interface.InvalidConfirmation.md b/packages/simplex-chat-nodejs/docs/core.DBMigrationError.Interface.InvalidConfirmation.md index 34dea63aed..67711030da 100644 --- a/packages/simplex-chat-nodejs/docs/core.DBMigrationError.Interface.InvalidConfirmation.md +++ b/packages/simplex-chat-nodejs/docs/core.DBMigrationError.Interface.InvalidConfirmation.md @@ -6,7 +6,7 @@ # Interface: InvalidConfirmation -Defined in: [src/core.ts:135](../src/core.ts#L135) +Defined in: [src/core.ts:139](../src/core.ts#L139) ## Extends @@ -18,7 +18,7 @@ Defined in: [src/core.ts:135](../src/core.ts#L135) > **type**: `"invalidConfirmation"` -Defined in: [src/core.ts:136](../src/core.ts#L136) +Defined in: [src/core.ts:140](../src/core.ts#L140) #### Overrides diff --git a/packages/simplex-chat-nodejs/docs/core.DBMigrationError.Interface.InvalidQueueSize.md b/packages/simplex-chat-nodejs/docs/core.DBMigrationError.Interface.InvalidQueueSize.md new file mode 100644 index 0000000000..9093b5e9b1 --- /dev/null +++ b/packages/simplex-chat-nodejs/docs/core.DBMigrationError.Interface.InvalidQueueSize.md @@ -0,0 +1,25 @@ +[**simplex-chat**](README.md) + +*** + +[simplex-chat](README.md) / [core](Namespace.core.md) / [DBMigrationError](core.Namespace.DBMigrationError.md) / InvalidQueueSize + +# Interface: InvalidQueueSize + +Defined in: [src/core.ts:143](../src/core.ts#L143) + +## Extends + +- `Interface` + +## Properties + +### type + +> **type**: `"invalidQueueSize"` + +Defined in: [src/core.ts:144](../src/core.ts#L144) + +#### Overrides + +`Interface.type` diff --git a/packages/simplex-chat-nodejs/docs/core.DBMigrationError.TypeAlias.Tag.md b/packages/simplex-chat-nodejs/docs/core.DBMigrationError.TypeAlias.Tag.md index a3ef341601..b04f2f5af1 100644 --- a/packages/simplex-chat-nodejs/docs/core.DBMigrationError.TypeAlias.Tag.md +++ b/packages/simplex-chat-nodejs/docs/core.DBMigrationError.TypeAlias.Tag.md @@ -6,6 +6,6 @@ # Type Alias: Tag -> **Tag** = `"invalidConfirmation"` \| `"errorNotADatabase"` \| `"errorMigration"` \| `"errorSQL"` +> **Tag** = `"invalidConfirmation"` \| `"invalidQueueSize"` \| `"errorNotADatabase"` \| `"errorMigration"` \| `"errorSQL"` -Defined in: [src/core.ts:129](../src/core.ts#L129) +Defined in: [src/core.ts:133](../src/core.ts#L133) diff --git a/packages/simplex-chat-nodejs/docs/core.Enumeration.MigrationConfirmation.md b/packages/simplex-chat-nodejs/docs/core.Enumeration.MigrationConfirmation.md index 7dfd4991bf..48e250c7d4 100644 --- a/packages/simplex-chat-nodejs/docs/core.Enumeration.MigrationConfirmation.md +++ b/packages/simplex-chat-nodejs/docs/core.Enumeration.MigrationConfirmation.md @@ -6,7 +6,7 @@ # Enumeration: MigrationConfirmation -Defined in: [src/core.ts:101](../src/core.ts#L101) +Defined in: [src/core.ts:104](../src/core.ts#L104) Migration confirmation mode @@ -16,7 +16,7 @@ Migration confirmation mode > **Console**: `"console"` -Defined in: [src/core.ts:104](../src/core.ts#L104) +Defined in: [src/core.ts:107](../src/core.ts#L107) *** @@ -24,7 +24,7 @@ Defined in: [src/core.ts:104](../src/core.ts#L104) > **Error**: `"error"` -Defined in: [src/core.ts:105](../src/core.ts#L105) +Defined in: [src/core.ts:108](../src/core.ts#L108) *** @@ -32,7 +32,7 @@ Defined in: [src/core.ts:105](../src/core.ts#L105) > **YesUp**: `"yesUp"` -Defined in: [src/core.ts:102](../src/core.ts#L102) +Defined in: [src/core.ts:105](../src/core.ts#L105) *** @@ -40,4 +40,4 @@ Defined in: [src/core.ts:102](../src/core.ts#L102) > **YesUpDown**: `"yesUpDown"` -Defined in: [src/core.ts:103](../src/core.ts#L103) +Defined in: [src/core.ts:106](../src/core.ts#L106) diff --git a/packages/simplex-chat-nodejs/docs/core.Function.chatCloseStore.md b/packages/simplex-chat-nodejs/docs/core.Function.chatCloseStore.md index deeb3213fd..4b0324b92c 100644 --- a/packages/simplex-chat-nodejs/docs/core.Function.chatCloseStore.md +++ b/packages/simplex-chat-nodejs/docs/core.Function.chatCloseStore.md @@ -8,7 +8,7 @@ > **chatCloseStore**(`ctrl`): `Promise`\<`void`\> -Defined in: [src/core.ts:17](../src/core.ts#L17) +Defined in: [src/core.ts:20](../src/core.ts#L20) Close chat store diff --git a/packages/simplex-chat-nodejs/docs/core.Function.chatDecryptFile.md b/packages/simplex-chat-nodejs/docs/core.Function.chatDecryptFile.md index 434aeeaae8..b6786fe1cb 100644 --- a/packages/simplex-chat-nodejs/docs/core.Function.chatDecryptFile.md +++ b/packages/simplex-chat-nodejs/docs/core.Function.chatDecryptFile.md @@ -8,7 +8,7 @@ > **chatDecryptFile**(`fromPath`, `__namedParameters`, `toPath`): `Promise`\<`void`\> -Defined in: [src/core.ts:73](../src/core.ts#L73) +Defined in: [src/core.ts:76](../src/core.ts#L76) Decrypt file diff --git a/packages/simplex-chat-nodejs/docs/core.Function.chatEncryptFile.md b/packages/simplex-chat-nodejs/docs/core.Function.chatEncryptFile.md index 6aa0ad2923..9e30e55a23 100644 --- a/packages/simplex-chat-nodejs/docs/core.Function.chatEncryptFile.md +++ b/packages/simplex-chat-nodejs/docs/core.Function.chatEncryptFile.md @@ -8,7 +8,7 @@ > **chatEncryptFile**(`ctrl`, `fromPath`, `toPath`): `Promise`\<[`CryptoArgs`](core.Interface.CryptoArgs.md)\> -Defined in: [src/core.ts:65](../src/core.ts#L65) +Defined in: [src/core.ts:68](../src/core.ts#L68) Encrypt file diff --git a/packages/simplex-chat-nodejs/docs/core.Function.chatMigrateInit.md b/packages/simplex-chat-nodejs/docs/core.Function.chatMigrateInit.md index 9116026f56..dbe4912520 100644 --- a/packages/simplex-chat-nodejs/docs/core.Function.chatMigrateInit.md +++ b/packages/simplex-chat-nodejs/docs/core.Function.chatMigrateInit.md @@ -6,9 +6,9 @@ # Function: chatMigrateInit() -> **chatMigrateInit**(`dbPath`, `dbKey`, `confirm`): `Promise`\<`bigint`\> +> **chatMigrateInit**(`dbPath`, `dbKey`, `confirm`, `queueSize?`): `Promise`\<`bigint`\> -Defined in: [src/core.ts:7](../src/core.ts#L7) +Defined in: [src/core.ts:8](../src/core.ts#L8) Initialize chat controller @@ -26,6 +26,12 @@ Initialize chat controller [`MigrationConfirmation`](core.Enumeration.MigrationConfirmation.md) +### queueSize? + +`number` + +Size of internal queues, the core default is used when omitted. + ## Returns `Promise`\<`bigint`\> diff --git a/packages/simplex-chat-nodejs/docs/core.Function.chatReadFile.md b/packages/simplex-chat-nodejs/docs/core.Function.chatReadFile.md index 27de43e63c..f6713f22d8 100644 --- a/packages/simplex-chat-nodejs/docs/core.Function.chatReadFile.md +++ b/packages/simplex-chat-nodejs/docs/core.Function.chatReadFile.md @@ -6,9 +6,9 @@ # Function: chatReadFile() -> **chatReadFile**(`path`, `__namedParameters`): `Promise`\<`ArrayBuffer`\> +> **chatReadFile**(`path`, `__namedParameters`): `Promise`\<`Buffer`\<`ArrayBufferLike`\>\> -Defined in: [src/core.ts:58](../src/core.ts#L58) +Defined in: [src/core.ts:61](../src/core.ts#L61) Read buffer from encrypted file @@ -24,4 +24,4 @@ Read buffer from encrypted file ## Returns -`Promise`\<`ArrayBuffer`\> +`Promise`\<`Buffer`\<`ArrayBufferLike`\>\> diff --git a/packages/simplex-chat-nodejs/docs/core.Function.chatRecvMsgWait.md b/packages/simplex-chat-nodejs/docs/core.Function.chatRecvMsgWait.md index 9bf44d6523..719cf610a1 100644 --- a/packages/simplex-chat-nodejs/docs/core.Function.chatRecvMsgWait.md +++ b/packages/simplex-chat-nodejs/docs/core.Function.chatRecvMsgWait.md @@ -8,7 +8,7 @@ > **chatRecvMsgWait**(`ctrl`, `wait`): `Promise`\<`ChatEvent` \| `undefined`\> -Defined in: [src/core.ts:37](../src/core.ts#L37) +Defined in: [src/core.ts:40](../src/core.ts#L40) Receive chat event diff --git a/packages/simplex-chat-nodejs/docs/core.Function.chatSendCmd.md b/packages/simplex-chat-nodejs/docs/core.Function.chatSendCmd.md index 2dfcba45b4..4296a714cf 100644 --- a/packages/simplex-chat-nodejs/docs/core.Function.chatSendCmd.md +++ b/packages/simplex-chat-nodejs/docs/core.Function.chatSendCmd.md @@ -8,7 +8,7 @@ > **chatSendCmd**(`ctrl`, `cmd`): `Promise`\<`ChatResponse`\> -Defined in: [src/core.ts:25](../src/core.ts#L25) +Defined in: [src/core.ts:28](../src/core.ts#L28) Send chat command as string diff --git a/packages/simplex-chat-nodejs/docs/core.Function.chatWriteFile.md b/packages/simplex-chat-nodejs/docs/core.Function.chatWriteFile.md index 3b1d770fbb..4ca640d8c4 100644 --- a/packages/simplex-chat-nodejs/docs/core.Function.chatWriteFile.md +++ b/packages/simplex-chat-nodejs/docs/core.Function.chatWriteFile.md @@ -8,7 +8,7 @@ > **chatWriteFile**(`ctrl`, `path`, `buffer`): `Promise`\<[`CryptoArgs`](core.Interface.CryptoArgs.md)\> -Defined in: [src/core.ts:50](../src/core.ts#L50) +Defined in: [src/core.ts:53](../src/core.ts#L53) Write buffer to encrypted file @@ -24,7 +24,7 @@ Write buffer to encrypted file ### buffer -`ArrayBuffer` +`ArrayBuffer` \| `Uint8Array`\<`ArrayBufferLike`\> ## Returns diff --git a/packages/simplex-chat-nodejs/docs/core.Interface.APIResult.md b/packages/simplex-chat-nodejs/docs/core.Interface.APIResult.md index 8d18997ec4..2ede6d9ffb 100644 --- a/packages/simplex-chat-nodejs/docs/core.Interface.APIResult.md +++ b/packages/simplex-chat-nodejs/docs/core.Interface.APIResult.md @@ -6,7 +6,7 @@ # Interface: APIResult\ -Defined in: [src/core.ts:87](../src/core.ts#L87) +Defined in: [src/core.ts:90](../src/core.ts#L90) ## Type Parameters @@ -20,7 +20,7 @@ Defined in: [src/core.ts:87](../src/core.ts#L87) > `optional` **error?**: `ChatError` -Defined in: [src/core.ts:89](../src/core.ts#L89) +Defined in: [src/core.ts:92](../src/core.ts#L92) *** @@ -28,4 +28,4 @@ Defined in: [src/core.ts:89](../src/core.ts#L89) > `optional` **result?**: `R` -Defined in: [src/core.ts:88](../src/core.ts#L88) +Defined in: [src/core.ts:91](../src/core.ts#L91) diff --git a/packages/simplex-chat-nodejs/docs/core.Interface.CryptoArgs.md b/packages/simplex-chat-nodejs/docs/core.Interface.CryptoArgs.md index eddcb0bc5a..51a55b86b6 100644 --- a/packages/simplex-chat-nodejs/docs/core.Interface.CryptoArgs.md +++ b/packages/simplex-chat-nodejs/docs/core.Interface.CryptoArgs.md @@ -6,7 +6,7 @@ # Interface: CryptoArgs -Defined in: [src/core.ts:111](../src/core.ts#L111) +Defined in: [src/core.ts:114](../src/core.ts#L114) File encryption key and nonce @@ -16,7 +16,7 @@ File encryption key and nonce > **fileKey**: `string` -Defined in: [src/core.ts:112](../src/core.ts#L112) +Defined in: [src/core.ts:115](../src/core.ts#L115) *** @@ -24,4 +24,4 @@ Defined in: [src/core.ts:112](../src/core.ts#L112) > **fileNonce**: `string` -Defined in: [src/core.ts:113](../src/core.ts#L113) +Defined in: [src/core.ts:116](../src/core.ts#L116) diff --git a/packages/simplex-chat-nodejs/docs/core.Interface.UpMigration.md b/packages/simplex-chat-nodejs/docs/core.Interface.UpMigration.md index 32f6c267aa..9e1fca49b4 100644 --- a/packages/simplex-chat-nodejs/docs/core.Interface.UpMigration.md +++ b/packages/simplex-chat-nodejs/docs/core.Interface.UpMigration.md @@ -6,7 +6,7 @@ # Interface: UpMigration -Defined in: [src/core.ts:185](../src/core.ts#L185) +Defined in: [src/core.ts:193](../src/core.ts#L193) ## Properties @@ -14,7 +14,7 @@ Defined in: [src/core.ts:185](../src/core.ts#L185) > **upName**: `string` -Defined in: [src/core.ts:186](../src/core.ts#L186) +Defined in: [src/core.ts:194](../src/core.ts#L194) *** @@ -22,4 +22,4 @@ Defined in: [src/core.ts:186](../src/core.ts#L186) > **withDown**: `boolean` -Defined in: [src/core.ts:187](../src/core.ts#L187) +Defined in: [src/core.ts:195](../src/core.ts#L195) diff --git a/packages/simplex-chat-nodejs/docs/core.MTRError.Interface.MTREDifferent.md b/packages/simplex-chat-nodejs/docs/core.MTRError.Interface.MTREDifferent.md index 8dab81a3a3..f85fb492be 100644 --- a/packages/simplex-chat-nodejs/docs/core.MTRError.Interface.MTREDifferent.md +++ b/packages/simplex-chat-nodejs/docs/core.MTRError.Interface.MTREDifferent.md @@ -6,7 +6,7 @@ # Interface: MTREDifferent -Defined in: [src/core.ts:206](../src/core.ts#L206) +Defined in: [src/core.ts:214](../src/core.ts#L214) ## Extends @@ -18,7 +18,7 @@ Defined in: [src/core.ts:206](../src/core.ts#L206) > **downMigrations**: `string`[] -Defined in: [src/core.ts:208](../src/core.ts#L208) +Defined in: [src/core.ts:216](../src/core.ts#L216) *** @@ -26,7 +26,7 @@ Defined in: [src/core.ts:208](../src/core.ts#L208) > **type**: `"different"` -Defined in: [src/core.ts:207](../src/core.ts#L207) +Defined in: [src/core.ts:215](../src/core.ts#L215) #### Overrides diff --git a/packages/simplex-chat-nodejs/docs/core.MTRError.Interface.MTRENoDown.md b/packages/simplex-chat-nodejs/docs/core.MTRError.Interface.MTRENoDown.md index 1de634e40e..f031ac8982 100644 --- a/packages/simplex-chat-nodejs/docs/core.MTRError.Interface.MTRENoDown.md +++ b/packages/simplex-chat-nodejs/docs/core.MTRError.Interface.MTRENoDown.md @@ -6,7 +6,7 @@ # Interface: MTRENoDown -Defined in: [src/core.ts:201](../src/core.ts#L201) +Defined in: [src/core.ts:209](../src/core.ts#L209) ## Extends @@ -14,20 +14,20 @@ Defined in: [src/core.ts:201](../src/core.ts#L201) ## Properties +### dbMigrations + +> **dbMigrations**: `string`[] + +Defined in: [src/core.ts:211](../src/core.ts#L211) + +*** + ### type > **type**: `"noDown"` -Defined in: [src/core.ts:202](../src/core.ts#L202) +Defined in: [src/core.ts:210](../src/core.ts#L210) #### Overrides `Interface.type` - -*** - -### upMigrations - -> **upMigrations**: [`UpMigration`](core.Interface.UpMigration.md) - -Defined in: [src/core.ts:203](../src/core.ts#L203) diff --git a/packages/simplex-chat-nodejs/docs/core.MTRError.TypeAlias.Tag.md b/packages/simplex-chat-nodejs/docs/core.MTRError.TypeAlias.Tag.md index 768baa0068..59501b539a 100644 --- a/packages/simplex-chat-nodejs/docs/core.MTRError.TypeAlias.Tag.md +++ b/packages/simplex-chat-nodejs/docs/core.MTRError.TypeAlias.Tag.md @@ -8,4 +8,4 @@ > **Tag** = `"noDown"` \| `"different"` -Defined in: [src/core.ts:195](../src/core.ts#L195) +Defined in: [src/core.ts:203](../src/core.ts#L203) diff --git a/packages/simplex-chat-nodejs/docs/core.MigrationError.Interface.MEDowngrade.md b/packages/simplex-chat-nodejs/docs/core.MigrationError.Interface.MEDowngrade.md index a2742cbff2..f6202b9456 100644 --- a/packages/simplex-chat-nodejs/docs/core.MigrationError.Interface.MEDowngrade.md +++ b/packages/simplex-chat-nodejs/docs/core.MigrationError.Interface.MEDowngrade.md @@ -6,7 +6,7 @@ # Interface: MEDowngrade -Defined in: [src/core.ts:174](../src/core.ts#L174) +Defined in: [src/core.ts:182](../src/core.ts#L182) ## Extends @@ -18,7 +18,7 @@ Defined in: [src/core.ts:174](../src/core.ts#L174) > **downMigrations**: `string`[] -Defined in: [src/core.ts:176](../src/core.ts#L176) +Defined in: [src/core.ts:184](../src/core.ts#L184) *** @@ -26,7 +26,7 @@ Defined in: [src/core.ts:176](../src/core.ts#L176) > **type**: `"downgrade"` -Defined in: [src/core.ts:175](../src/core.ts#L175) +Defined in: [src/core.ts:183](../src/core.ts#L183) #### Overrides diff --git a/packages/simplex-chat-nodejs/docs/core.MigrationError.Interface.MEUpgrade.md b/packages/simplex-chat-nodejs/docs/core.MigrationError.Interface.MEUpgrade.md index 08fe7d56e3..7467895b74 100644 --- a/packages/simplex-chat-nodejs/docs/core.MigrationError.Interface.MEUpgrade.md +++ b/packages/simplex-chat-nodejs/docs/core.MigrationError.Interface.MEUpgrade.md @@ -6,7 +6,7 @@ # Interface: MEUpgrade -Defined in: [src/core.ts:169](../src/core.ts#L169) +Defined in: [src/core.ts:177](../src/core.ts#L177) ## Extends @@ -18,7 +18,7 @@ Defined in: [src/core.ts:169](../src/core.ts#L169) > **type**: `"upgrade"` -Defined in: [src/core.ts:170](../src/core.ts#L170) +Defined in: [src/core.ts:178](../src/core.ts#L178) #### Overrides @@ -28,6 +28,6 @@ Defined in: [src/core.ts:170](../src/core.ts#L170) ### upMigrations -> **upMigrations**: [`UpMigration`](core.Interface.UpMigration.md) +> **upMigrations**: [`UpMigration`](core.Interface.UpMigration.md)[] -Defined in: [src/core.ts:171](../src/core.ts#L171) +Defined in: [src/core.ts:179](../src/core.ts#L179) diff --git a/packages/simplex-chat-nodejs/docs/core.MigrationError.Interface.MigrationError.md b/packages/simplex-chat-nodejs/docs/core.MigrationError.Interface.MigrationError.md index cd811a5747..7b2546fcd5 100644 --- a/packages/simplex-chat-nodejs/docs/core.MigrationError.Interface.MigrationError.md +++ b/packages/simplex-chat-nodejs/docs/core.MigrationError.Interface.MigrationError.md @@ -6,7 +6,7 @@ # Interface: MigrationError -Defined in: [src/core.ts:179](../src/core.ts#L179) +Defined in: [src/core.ts:187](../src/core.ts#L187) ## Extends @@ -18,7 +18,7 @@ Defined in: [src/core.ts:179](../src/core.ts#L179) > **mtrError**: [`MTRError`](core.TypeAlias.MTRError.md) -Defined in: [src/core.ts:181](../src/core.ts#L181) +Defined in: [src/core.ts:189](../src/core.ts#L189) *** @@ -26,7 +26,7 @@ Defined in: [src/core.ts:181](../src/core.ts#L181) > **type**: `"migrationError"` -Defined in: [src/core.ts:180](../src/core.ts#L180) +Defined in: [src/core.ts:188](../src/core.ts#L188) #### Overrides diff --git a/packages/simplex-chat-nodejs/docs/core.MigrationError.TypeAlias.Tag.md b/packages/simplex-chat-nodejs/docs/core.MigrationError.TypeAlias.Tag.md index 5ef6e70b08..e2e1dcb33f 100644 --- a/packages/simplex-chat-nodejs/docs/core.MigrationError.TypeAlias.Tag.md +++ b/packages/simplex-chat-nodejs/docs/core.MigrationError.TypeAlias.Tag.md @@ -8,4 +8,4 @@ > **Tag** = `"upgrade"` \| `"downgrade"` \| `"migrationError"` -Defined in: [src/core.ts:163](../src/core.ts#L163) +Defined in: [src/core.ts:171](../src/core.ts#L171) diff --git a/packages/simplex-chat-nodejs/docs/core.Namespace.DBMigrationError.md b/packages/simplex-chat-nodejs/docs/core.Namespace.DBMigrationError.md index 95ddfa5b24..889a10ddba 100644 --- a/packages/simplex-chat-nodejs/docs/core.Namespace.DBMigrationError.md +++ b/packages/simplex-chat-nodejs/docs/core.Namespace.DBMigrationError.md @@ -12,6 +12,7 @@ - [ErrorNotADatabase](core.DBMigrationError.Interface.ErrorNotADatabase.md) - [ErrorSQL](core.DBMigrationError.Interface.ErrorSQL.md) - [InvalidConfirmation](core.DBMigrationError.Interface.InvalidConfirmation.md) +- [InvalidQueueSize](core.DBMigrationError.Interface.InvalidQueueSize.md) ## Type Aliases diff --git a/packages/simplex-chat-nodejs/docs/core.TypeAlias.DBMigrationError.md b/packages/simplex-chat-nodejs/docs/core.TypeAlias.DBMigrationError.md index 6473b3ef60..3f4797fb8e 100644 --- a/packages/simplex-chat-nodejs/docs/core.TypeAlias.DBMigrationError.md +++ b/packages/simplex-chat-nodejs/docs/core.TypeAlias.DBMigrationError.md @@ -6,6 +6,6 @@ # Type Alias: DBMigrationError -> **DBMigrationError** = [`InvalidConfirmation`](core.DBMigrationError.Interface.InvalidConfirmation.md) \| [`ErrorNotADatabase`](core.DBMigrationError.Interface.ErrorNotADatabase.md) \| [`ErrorMigration`](core.DBMigrationError.Interface.ErrorMigration.md) \| [`ErrorSQL`](core.DBMigrationError.Interface.ErrorSQL.md) +> **DBMigrationError** = [`InvalidConfirmation`](core.DBMigrationError.Interface.InvalidConfirmation.md) \| [`InvalidQueueSize`](core.DBMigrationError.Interface.InvalidQueueSize.md) \| [`ErrorNotADatabase`](core.DBMigrationError.Interface.ErrorNotADatabase.md) \| [`ErrorMigration`](core.DBMigrationError.Interface.ErrorMigration.md) \| [`ErrorSQL`](core.DBMigrationError.Interface.ErrorSQL.md) -Defined in: [src/core.ts:122](../src/core.ts#L122) +Defined in: [src/core.ts:125](../src/core.ts#L125) diff --git a/packages/simplex-chat-nodejs/docs/core.TypeAlias.MTRError.md b/packages/simplex-chat-nodejs/docs/core.TypeAlias.MTRError.md index 11aa5b7c24..66d6a092dc 100644 --- a/packages/simplex-chat-nodejs/docs/core.TypeAlias.MTRError.md +++ b/packages/simplex-chat-nodejs/docs/core.TypeAlias.MTRError.md @@ -8,4 +8,4 @@ > **MTRError** = [`MTRENoDown`](core.MTRError.Interface.MTRENoDown.md) \| [`MTREDifferent`](core.MTRError.Interface.MTREDifferent.md) -Defined in: [src/core.ts:190](../src/core.ts#L190) +Defined in: [src/core.ts:198](../src/core.ts#L198) diff --git a/packages/simplex-chat-nodejs/docs/core.TypeAlias.MigrationError.md b/packages/simplex-chat-nodejs/docs/core.TypeAlias.MigrationError.md index c15b679769..6c0ba77541 100644 --- a/packages/simplex-chat-nodejs/docs/core.TypeAlias.MigrationError.md +++ b/packages/simplex-chat-nodejs/docs/core.TypeAlias.MigrationError.md @@ -8,4 +8,4 @@ > **MigrationError** = [`MEUpgrade`](core.MigrationError.Interface.MEUpgrade.md) \| [`MEDowngrade`](core.MigrationError.Interface.MEDowngrade.md) \| [`MigrationError`](core.MigrationError.Interface.MigrationError.md) -Defined in: [src/core.ts:157](../src/core.ts#L157) +Defined in: [src/core.ts:165](../src/core.ts#L165) diff --git a/packages/simplex-chat-nodejs/src/api.ts b/packages/simplex-chat-nodejs/src/api.ts index 958304a8ea..8c11e9fde3 100644 --- a/packages/simplex-chat-nodejs/src/api.ts +++ b/packages/simplex-chat-nodejs/src/api.ts @@ -106,13 +106,15 @@ export class ChatApi { * Initializes the ChatApi. * @param {DbConfig} db - Database configuration (sqlite or postgres). * @param {core.MigrationConfirmation} [confirm=core.MigrationConfirmation.YesUp] - Migration confirmation mode. + * @param {number} [queueSize] - Size of internal queues, the core default is used when omitted. */ static async init( db: DbConfig, - confirm = core.MigrationConfirmation.YesUp + confirm = core.MigrationConfirmation.YesUp, + queueSize?: number ): Promise { const [path, key] = dbConfigToMigrateArgs(db) - const ctrl = await core.chatMigrateInit(path, key, confirm) + const ctrl = await core.chatMigrateInit(path, key, confirm, queueSize) return new ChatApi(ctrl) } @@ -120,39 +122,52 @@ export class ChatApi { * Start chat controller. Must be called with the existing user profile. */ async startChat(): Promise { + if (this.eventsLoop) throw new Error("chat already started") + const ctrl = this.ctrl this.receiveEvents = true this.eventsLoop = this.runEventsLoop() - const r = await this.sendChatCmd(CC.StartChat.cmdString({mainApp: true, enableSndFiles: true})) + let r: ChatResponse + try { + r = await core.chatSendCmd(ctrl, CC.StartChat.cmdString({mainApp: true, enableSndFiles: true, serviceRequests: false})) + } catch (e) { + await this.stopEventsLoop() + throw e + } if (r.type !== "chatStarted" && r.type !== "chatRunning") { + await this.stopEventsLoop() throw new ChatCommandError("error starting chat", r) } } - + /** * Stop chat controller. - * Must be called before closing the database. + * `close` calls it before closing the database. * Usually doesn't need to be called in chat bots. */ async stopChat(): Promise { const r = await this.sendChatCmd("/_stop") - if (r.type !== "chatStopped") throw new ChatCommandError("error starting chat", r) - this.receiveEvents = false - if (this.eventsLoop) await this.eventsLoop - this.eventsLoop = undefined + if (r.type !== "chatStopped") throw new ChatCommandError("error stopping chat", r) + await this.stopEventsLoop() } /** - * Close chat database. + * Stop chat controller and close chat database. + * The database is not closed if stopping fails. * Usually doesn't need to be called in chat bots. */ async close(): Promise { - this.receiveEvents = false - if (this.eventsLoop) await this.eventsLoop - this.eventsLoop = undefined + // a running controller keeps using the database connections that closing frees + await this.stopChat() await core.chatCloseStore(this.ctrl) this.ctrl_ = undefined } - + + private async stopEventsLoop(): Promise { + this.receiveEvents = false + if (this.eventsLoop) await this.eventsLoop + this.eventsLoop = undefined + } + private async runEventsLoop(): Promise { while (this.receiveEvents) { try { @@ -335,7 +350,7 @@ export class ChatApi { return await core.chatSendCmd(this.ctrl, cmd) } - async recvChatEvent(wait: number = 5_000_000): Promise { + async recvChatEvent(wait: number = 500_000): Promise { return await core.chatRecvMsgWait(this.ctrl, wait) } @@ -386,8 +401,10 @@ export class ChatApi { switch (r.type) { case "userProfileUpdated": return r.updateSummary + case "userProfileNoChange": + return {updateSuccesses: 0, updateFailures: 0, changedContacts: []} default: - throw new ChatCommandError("error loading user address", r) + throw new ChatCommandError("error setting profile address", r) } } @@ -460,7 +477,7 @@ export class ChatApi { updatedMessage: {msgContent, mentions: {}}, }) ) - if (r.type === "chatItemUpdated") return r.chatItem.chatItem + if (r.type === "chatItemUpdated" || r.type === "chatItemNotChanged") return r.chatItem.chatItem throw new ChatCommandError("error updating chat item", r) } @@ -499,10 +516,10 @@ export class ChatApi { chatItemId: number, add: boolean, reaction: T.MsgReaction - ) { + ): Promise { const r = await this.sendChatCmd(CC.APIChatItemReaction.cmdString({chatRef: {chatType, chatId}, chatItemId, add, reaction})) - if (r.type === "chatItemsDeleted") return r.chatItemDeletions - throw new ChatCommandError("error setting item reaction", r) + if (r.type === "chatItemReaction") return r.reaction + throw new ChatCommandError("error setting item reaction", r) } /** @@ -512,6 +529,7 @@ export class ChatApi { async apiReceiveFile(fileId: number): Promise { const r = await this.sendChatCmd(CC.ReceiveFile.cmdString({fileId, userApprovedRelays: true})) if (r.type === "rcvFileAccepted") return r.chatItem + if (r.type === "rcvFileAcceptedSndCancelled") throw new ChatCommandError("file cancelled by sender", r) throw new ChatCommandError("error receiving file", r) } @@ -698,7 +716,7 @@ export class ChatApi { * Connect via prepared SimpleX link. The link can be 1-time invitation link, contact address or group link * Network usage: interactive. */ - async apiConnect(userId: number, incognito: boolean, preparedLink?: T.CreatedConnLink): Promise { + async apiConnect(userId: number, incognito: boolean, preparedLink: T.CreatedConnLink): Promise { const r = await this.sendChatCmd(CC.APIConnect.cmdString({userId, incognito, preparedLink_: preparedLink})) return this.handleConnectResult(r) } @@ -740,7 +758,7 @@ export class ChatApi { * Network usage: no. */ async apiRejectContactRequest(contactReqId: number): Promise { - const r = await this.sendChatCmd(CC.APIRejectContact.cmdString({contactReqId})) + const r = await this.sendChatCmd(CC.APIRejectContact.cmdString({contactReqId, notify: false})) if (r.type === "contactRequestRejected") return throw new ChatCommandError("error rejecting contact request", r) } diff --git a/packages/simplex-chat-nodejs/src/bot.ts b/packages/simplex-chat-nodejs/src/bot.ts index f6cb753d27..68e787ca3e 100644 --- a/packages/simplex-chat-nodejs/src/bot.ts +++ b/packages/simplex-chat-nodejs/src/bot.ts @@ -6,6 +6,7 @@ import equal = require("fast-deep-equal") export type BotDbOpts = api.DbConfig & { confirmMigrations?: core.MigrationConfirmation + queueSize?: number } export interface BotOptions { @@ -45,10 +46,9 @@ export interface BotConfig { } export async function run({profile, dbOpts, options = defaultOpts, onMessage, onCommands = {}, events = {}}: BotConfig): Promise<[api.ChatApi, T.User, T.UserContactLink | undefined]> { - const bot = await api.ChatApi.init(dbOpts, dbOpts.confirmMigrations || core.MigrationConfirmation.YesUp) + const bot = await api.ChatApi.init(dbOpts, dbOpts.confirmMigrations || core.MigrationConfirmation.YesUp, dbOpts.queueSize) const opts = fullOptions(options) - if (onMessage) subscribeMessages(bot, onMessage) - if (Object.keys(onCommands).length > 0) subscribeCommands(bot, onCommands) + if (onMessage || Object.keys(onCommands).length > 0) subscribeChatItems(bot, onMessage, onCommands) if (Object.keys(events).length > 0) bot.on(events) subscribeLogEvents(bot, opts) const botProfile = mkBotProfile(profile, opts) @@ -105,40 +105,27 @@ function mkBotProfile(profile: T.Profile, opts: Required): T.Profile return profile } -function subscribeMessages(bot: api.ChatApi, onMessage: (chatItem: T.AChatItem, content: T.MsgContent) => void | Promise) { +export function subscribeChatItems( + bot: api.ChatApi, + onMessage: ((chatItem: T.AChatItem, content: T.MsgContent) => void | Promise) | undefined, + commands: {[K in string]?: ((chatItem: T.AChatItem, command: util.BotCommand) => void | Promise)} +) { bot.on("newChatItems", async ({chatItems}) => { for (const ci of chatItems) { - if (ci.chatItem.content.type === "rcvMsgContent") { - try { - const p = onMessage(ci, ci.chatItem.content.msgContent) - if (p instanceof Promise) await p - } catch (e) { - console.log("message processing error", e) - } + const content = ci.chatItem.content + if (content.type !== "rcvMsgContent") continue + const cmd = util.ciBotCommand(ci.chatItem) + const cmdFunc = cmd && (commands[cmd.keyword] || commands[""]) + try { + if (cmd && cmdFunc) await cmdFunc(ci, cmd) + else if (onMessage) await onMessage(ci, content.msgContent) + } catch (e) { + console.log(cmd && cmdFunc ? `${cmd.keyword} command processing error` : "message processing error", e) } } }) } -function subscribeCommands(bot: api.ChatApi, commands: {[K in string]?: ((chatItem: T.AChatItem, command: util.BotCommand) => void | Promise)}) { - bot.on("newChatItems", async (evt) => { - for (const ci of evt.chatItems) { - const cmd = util.ciBotCommand(ci.chatItem) - if (cmd) { - const cmdFunc = commands[cmd.keyword] || commands[""] - if (cmdFunc) { - try { - const p = cmdFunc(ci, cmd) - if (p instanceof Promise) await p - } catch(e) { - console.log(`${cmd} command processing error`, e) - } - } - } - } - }) -} - function subscribeLogEvents(bot: api.ChatApi, opts: Required) { if (opts.logContacts) { bot.on({ diff --git a/packages/simplex-chat-nodejs/src/core.ts b/packages/simplex-chat-nodejs/src/core.ts index 949c2356af..49664fed71 100644 --- a/packages/simplex-chat-nodejs/src/core.ts +++ b/packages/simplex-chat-nodejs/src/core.ts @@ -3,9 +3,12 @@ import * as simplex from "./simplex" /** * Initialize chat controller + * @param {number} [queueSize] - Size of internal queues, the core default is used when omitted. */ -export async function chatMigrateInit(dbPath: string, dbKey: string, confirm: MigrationConfirmation): Promise { - const [ctrl, res] = await simplex.chat_migrate_init(dbPath, dbKey, confirm) +export async function chatMigrateInit(dbPath: string, dbKey: string, confirm: MigrationConfirmation, queueSize?: number): Promise { + const [ctrl, res] = queueSize === undefined + ? await simplex.chat_migrate_init(dbPath, dbKey, confirm) + : await simplex.chat_migrate_init_queue(dbPath, dbKey, confirm, queueSize) const json = JSON.parse(res) if (json.type === 'ok') return ctrl throw new ChatInitError("Database or migration error (see dbMigrationError property)", json as DBMigrationError) @@ -47,7 +50,7 @@ export async function chatRecvMsgWait(ctrl: bigint, wait: number): Promise { +export async function chatWriteFile(ctrl: bigint, path: string, buffer: ArrayBuffer | Uint8Array): Promise { const res = await simplex.chat_write_file(ctrl, path, buffer) return cryptoArgsResult(res) } @@ -55,7 +58,7 @@ export async function chatWriteFile(ctrl: bigint, path: string, buffer: ArrayBuf /** * Read buffer from encrypted file */ -export async function chatReadFile(path: string, {fileKey, fileNonce}: CryptoArgs): Promise { +export async function chatReadFile(path: string, {fileKey, fileNonce}: CryptoArgs): Promise { return await simplex.chat_read_file(path, fileKey, fileNonce) } @@ -121,12 +124,13 @@ export class ChatInitError extends Error { export type DBMigrationError = | DBMigrationError.InvalidConfirmation + | DBMigrationError.InvalidQueueSize | DBMigrationError.ErrorNotADatabase // invalid/corrupt database file or incorrect encryption key | DBMigrationError.ErrorMigration | DBMigrationError.ErrorSQL export namespace DBMigrationError { - export type Tag = "invalidConfirmation" | "errorNotADatabase" | "errorMigration" | "errorSQL" + export type Tag = "invalidConfirmation" | "invalidQueueSize" | "errorNotADatabase" | "errorMigration" | "errorSQL" interface Interface { type: Tag @@ -136,6 +140,10 @@ export namespace DBMigrationError { type: "invalidConfirmation" } + export interface InvalidQueueSize extends Interface { + type: "invalidQueueSize" + } + export interface ErrorNotADatabase extends Interface { type: "errorNotADatabase" dbFile: string @@ -168,7 +176,7 @@ export namespace MigrationError { export interface MEUpgrade extends Interface { type: "upgrade" - upMigrations: UpMigration + upMigrations: UpMigration[] } export interface MEDowngrade extends Interface { @@ -200,7 +208,7 @@ export namespace MTRError { export interface MTRENoDown extends Interface { type: "noDown" - upMigrations: UpMigration + dbMigrations: string[] } export interface MTREDifferent extends Interface { diff --git a/packages/simplex-chat-nodejs/src/download-libs.js b/packages/simplex-chat-nodejs/src/download-libs.js index 0acff40daf..e0debebea8 100644 --- a/packages/simplex-chat-nodejs/src/download-libs.js +++ b/packages/simplex-chat-nodejs/src/download-libs.js @@ -6,6 +6,10 @@ const extract = require('extract-zip'); const GITHUB_REPO = 'simplex-chat/simplex-chat-libs'; const RELEASE_TAG = 'v7.1.0-beta.3'; const BACKEND = (process.env.SIMPLEX_BACKEND || process.env.npm_config_simplex_backend || 'sqlite').toLowerCase(); +// A locally built libsimplex, copied into libs/ rather than loaded in place: +// the addon's RUNPATH is $ORIGIN/../../libs. +const LIBS_DIR_OVERRIDE = process.env.SIMPLEX_LIBS_DIR || process.env.npm_config_simplex_libs_dir; +const LIB_NAMES = ['libsimplex.so', 'libsimplex.dylib', 'libsimplex.dll']; if (BACKEND !== 'sqlite' && BACKEND !== 'postgres') { console.error(`✗ Invalid SIMPLEX_BACKEND: "${BACKEND}". Must be "sqlite" or "postgres".`); @@ -83,8 +87,31 @@ function isAlreadyInstalled() { } } +// No version check: the files behind SIMPLEX_LIBS_DIR change on every rebuild. +function installFromOverride() { + if (!fs.existsSync(LIBS_DIR_OVERRIDE)) { + throw new Error(`SIMPLEX_LIBS_DIR does not exist: ${LIBS_DIR_OVERRIDE}`); + } + const lib = LIB_NAMES.find((name) => fs.existsSync(path.join(LIBS_DIR_OVERRIDE, name))); + if (!lib) { + throw new Error(`No ${LIB_NAMES.join(' / ')} in SIMPLEX_LIBS_DIR: ${LIBS_DIR_OVERRIDE}`); + } + console.log(`Using libraries from SIMPLEX_LIBS_DIR: ${LIBS_DIR_OVERRIDE}`); + cleanLibsDirectory(); + copyDirSync(LIBS_DIR_OVERRIDE, LIBS_DIR); + // Not a release tag: a later install without the variable sees a mismatch + // and replaces these files with the released ones. + fs.writeFileSync(INSTALLED_FILE, `${LIBS_DIR_OVERRIDE}:${BACKEND}`, 'utf-8'); + console.log(`✓ Installed ${lib} and its runtime libraries from ${LIBS_DIR_OVERRIDE}`); +} + async function install() { try { + if (LIBS_DIR_OVERRIDE) { + installFromOverride(); + return; + } + // Check if already installed if (isAlreadyInstalled()) { return; diff --git a/packages/simplex-chat-nodejs/src/simplex.d.ts b/packages/simplex-chat-nodejs/src/simplex.d.ts index 10c2f6608a..1e0ca825a6 100644 --- a/packages/simplex-chat-nodejs/src/simplex.d.ts +++ b/packages/simplex-chat-nodejs/src/simplex.d.ts @@ -1,10 +1,11 @@ // These functions are defined in CPP add-on ../cpp/simplex.cc export function chat_migrate_init(dbPath: string, dbKey: string, confirm: string): Promise<[bigint, string]> +export function chat_migrate_init_queue(dbPath: string, dbKey: string, confirm: string, queueSize: number): Promise<[bigint, string]> export function chat_close_store(ctrl: bigint): Promise export function chat_send_cmd(ctrl: bigint, cmd: string): Promise export function chat_recv_msg_wait(ctrl: bigint, wait: number): Promise -export function chat_write_file(ctrl: bigint, path: string, buffer: ArrayBuffer): Promise -export function chat_read_file(path: string, key: string, nonce: string): Promise +export function chat_write_file(ctrl: bigint, path: string, buffer: ArrayBuffer | Uint8Array): Promise +export function chat_read_file(path: string, key: string, nonce: string): Promise export function chat_encrypt_file(ctrl: bigint, fromPath: string, toPath: string): Promise export function chat_decrypt_file(fromPath: string, key: string, nonce: string, toPath: string): Promise diff --git a/packages/simplex-chat-nodejs/src/util.ts b/packages/simplex-chat-nodejs/src/util.ts index f7365e731c..dffb0ce1bc 100644 --- a/packages/simplex-chat-nodejs/src/util.ts +++ b/packages/simplex-chat-nodejs/src/util.ts @@ -78,7 +78,7 @@ export interface BotCommand { export function ciBotCommand(chatItem: T.ChatItem): BotCommand | undefined { const msg = ciContentText(chatItem)?.trim() if (msg) { - const r = msg.match(/^\/([^\s]+)(.*)/) + const r = msg.match(/^\/([^\s]+)([\s\S]*)/) if (r && r.length >= 3) { return {keyword: r[1], params: r[2].trim()} } diff --git a/packages/simplex-chat-nodejs/tests/api.test.ts b/packages/simplex-chat-nodejs/tests/api.test.ts index 99d511371c..e3ddca2440 100644 --- a/packages/simplex-chat-nodejs/tests/api.test.ts +++ b/packages/simplex-chat-nodejs/tests/api.test.ts @@ -58,8 +58,8 @@ describe("API tests (use preset servers)", () => { await bob.stopChat() await alice.close() await bob.close() - await expect(alice.startChat).rejects.toThrow() - await expect(bob.startChat).rejects.toThrow() + await expect(alice.startChat()).rejects.toThrow("chat api controller not initialized") + await expect(bob.startChat()).rejects.toThrow("chat api controller not initialized") expect(servers.length).toBe(2) expect(servers[0] !== servers[1]).toBe(true) expect(eventCount > 0).toBe(true) diff --git a/packages/simplex-chat-nodejs/tests/api.unit.test.ts b/packages/simplex-chat-nodejs/tests/api.unit.test.ts new file mode 100644 index 0000000000..c5a4367b11 --- /dev/null +++ b/packages/simplex-chat-nodejs/tests/api.unit.test.ts @@ -0,0 +1,102 @@ +import {ChatResponse, T} from "@simplex-chat/types" +import * as api from "../src/api" +import * as core from "../src/core" + +const user = {userId: 1} as T.User + +async function chatWithResponse(response: object): Promise { + jest.spyOn(core, "chatMigrateInit").mockResolvedValue(BigInt(1)) + jest.spyOn(core, "chatSendCmd").mockResolvedValue(response as ChatResponse) + return api.ChatApi.init({type: "sqlite", filePrefix: "unused"}) +} + +afterEach(() => jest.restoreAllMocks()) + +describe("documented success responses", () => { + it("apiChatItemReaction returns the reaction", async () => { + const reaction = {chatReaction: {reaction: {type: "emoji", emoji: "👍"}}} + const chat = await chatWithResponse({type: "chatItemReaction", user, added: true, reaction}) + await expect(chat.apiChatItemReaction(T.ChatType.Direct, 1, 2, true, {type: "emoji", emoji: "👍"})).resolves.toEqual(reaction) + }) + + it("apiUpdateChatItem accepts chatItemNotChanged", async () => { + const chatItem = {meta: {itemId: 2}} + const chat = await chatWithResponse({type: "chatItemNotChanged", user, chatItem: {chatItem}}) + await expect(chat.apiUpdateChatItem(T.ChatType.Direct, 1, 2, {type: "text", text: "same"}, false)).resolves.toEqual(chatItem) + }) + + it("apiSetProfileAddress accepts userProfileNoChange", async () => { + const chat = await chatWithResponse({type: "userProfileNoChange", user}) + await expect(chat.apiSetProfileAddress(1, true)).resolves.toEqual({updateSuccesses: 0, updateFailures: 0, changedContacts: []}) + }) + + it("apiReceiveFile reports a file cancelled by sender", async () => { + const chat = await chatWithResponse({type: "rcvFileAcceptedSndCancelled", user, rcvFileTransfer: {}}) + await expect(chat.apiReceiveFile(3)).rejects.toThrow("file cancelled by sender") + }) +}) + +describe("startChat lifecycle", () => { + function chatWithResponses(...responses: object[]): Promise { + jest.spyOn(core, "chatMigrateInit").mockResolvedValue(BigInt(1)) + jest.spyOn(core, "chatRecvMsgWait").mockImplementation(() => new Promise(resolve => setTimeout(() => resolve(undefined), 10))) + const send = jest.spyOn(core, "chatSendCmd") + for (const r of responses) send.mockResolvedValueOnce(r as ChatResponse) + return api.ChatApi.init({type: "sqlite", filePrefix: "unused"}) + } + + it("rejects a second start", async () => { + const chat = await chatWithResponses({type: "chatStarted"}, {type: "chatStopped"}) + await chat.startChat() + await expect(chat.startChat()).rejects.toThrow("chat already started") + await chat.stopChat() + }) + + it("stops the events loop when start fails", async () => { + const chat = await chatWithResponses({type: "chatCmdError"}) + await expect(chat.startChat()).rejects.toThrow("error starting chat") + expect(chat.started).toBe(false) + }) + + it("rejects start after close", async () => { + const chat = await chatWithResponses({type: "chatStopped"}) + jest.spyOn(core, "chatCloseStore").mockResolvedValue() + await chat.close() + await expect(chat.startChat()).rejects.toThrow("chat api controller not initialized") + }) + + it("stops the chat before closing the store", async () => { + const chat = await chatWithResponses() + const calls: string[] = [] + jest.mocked(core.chatSendCmd).mockImplementation(async (_ctrl, cmd) => { + calls.push(`send ${cmd}`) + return {type: "chatStopped"} as ChatResponse + }) + jest.spyOn(core, "chatCloseStore").mockImplementation(async () => { calls.push("closeStore") }) + await chat.close() + expect(calls).toEqual(["send /_stop", "closeStore"]) + expect(chat.initialized).toBe(false) + }) + + it("does not close the store when stopping fails", async () => { + const chat = await chatWithResponses({type: "chatCmdError"}) + const closeStore = jest.spyOn(core, "chatCloseStore").mockResolvedValue() + await expect(chat.close()).rejects.toThrow("error stopping chat") + expect(closeStore).not.toHaveBeenCalled() + expect(chat.initialized).toBe(true) + }) + + it("reports stop failures as stop errors", async () => { + const chat = await chatWithResponses({type: "chatStarted"}, {type: "chatCmdError"}, {type: "chatStopped"}) + await chat.startChat() + await expect(chat.stopChat()).rejects.toThrow("error stopping chat") + expect(chat.started).toBe(true) + await chat.stopChat() + }) + + it("receives with a 500 ms wait", async () => { + const chat = await chatWithResponses() + await chat.recvChatEvent() + expect(core.chatRecvMsgWait).toHaveBeenCalledWith(BigInt(1), 500_000) + }) +}) diff --git a/packages/simplex-chat-nodejs/tests/bot.unit.test.ts b/packages/simplex-chat-nodejs/tests/bot.unit.test.ts new file mode 100644 index 0000000000..39f9358996 --- /dev/null +++ b/packages/simplex-chat-nodejs/tests/bot.unit.test.ts @@ -0,0 +1,50 @@ +import {ChatEvent, T} from "@simplex-chat/types" +import * as api from "../src/api" +import {subscribeChatItems} from "../src/bot" + +type Handler = (evt: ChatEvent) => Promise + +function fakeBot(): {bot: api.ChatApi, deliver: (items: T.AChatItem[]) => Promise} { + let handler: Handler | undefined + const bot = {on: (_event: string, h: Handler) => { handler = h }} as unknown as api.ChatApi + const deliver = (chatItems: T.AChatItem[]) => handler!({type: "newChatItems", chatItems} as unknown as ChatEvent) + return {bot, deliver} +} + +function item(type: "rcvMsgContent" | "sndMsgContent", text: string): T.AChatItem { + return {chatItem: {content: {type, msgContent: {type: "text", text}}}} as unknown as T.AChatItem +} + +describe("subscribeChatItems", () => { + it("sends a known command only to its handler", async () => { + const {bot, deliver} = fakeBot() + const calls: string[] = [] + subscribeChatItems(bot, async () => { calls.push("message") }, {help: async () => { calls.push("help") }}) + await deliver([item("rcvMsgContent", "/help")]) + expect(calls).toEqual(["help"]) + }) + + it("sends an unknown command to the fallback handler", async () => { + const {bot, deliver} = fakeBot() + const calls: string[] = [] + subscribeChatItems(bot, async () => { calls.push("message") }, {"": async (_ci, cmd) => { calls.push(`fallback:${cmd.keyword}`) }}) + await deliver([item("rcvMsgContent", "/unknown")]) + expect(calls).toEqual(["fallback:unknown"]) + }) + + it("sends unhandled commands and text to onMessage", async () => { + const {bot, deliver} = fakeBot() + const calls: string[] = [] + subscribeChatItems(bot, async (_ci, content) => { calls.push(`message:${(content as T.MsgContent & {text: string}).text}`) }, {help: async () => { calls.push("help") }}) + await deliver([item("rcvMsgContent", "/unknown"), item("rcvMsgContent", "hello")]) + expect(calls).toEqual(["message:/unknown", "message:hello"]) + }) + + it("ignores sent items", async () => { + const {bot, deliver} = fakeBot() + const calls: string[] = [] + subscribeChatItems(bot, async () => { calls.push("message") }, {help: async () => { calls.push("help") }}) + await deliver([item("sndMsgContent", "/help"), item("sndMsgContent", "hello")]) + expect(calls).toEqual([]) + }) +}) diff --git a/packages/simplex-chat-nodejs/tests/commands.test.ts b/packages/simplex-chat-nodejs/tests/commands.test.ts new file mode 100644 index 0000000000..61ce43bd63 --- /dev/null +++ b/packages/simplex-chat-nodejs/tests/commands.test.ts @@ -0,0 +1,13 @@ +import {CC} from "@simplex-chat/types" + +describe("APIConnect.cmdString", () => { + const preparedLink_ = {connFullLink: "L"} + + it("renders incognito=on", () => { + expect(CC.APIConnect.cmdString({userId: 1, incognito: true, preparedLink_})).toBe("/_connect 1 incognito=on L") + }) + + it("omits incognito when off", () => { + expect(CC.APIConnect.cmdString({userId: 1, incognito: false, preparedLink_})).toBe("/_connect 1 L") + }) +}) diff --git a/packages/simplex-chat-nodejs/tests/core.test.ts b/packages/simplex-chat-nodejs/tests/core.test.ts index 141f35746d..8eb106a5b5 100644 --- a/packages/simplex-chat-nodejs/tests/core.test.ts +++ b/packages/simplex-chat-nodejs/tests/core.test.ts @@ -1,3 +1,4 @@ +import {execFile, spawnSync} from "child_process"; import * as fs from "fs"; import * as path from "path"; import {core} from "../src/index"; @@ -9,17 +10,34 @@ describe("Core tests", () => { beforeEach(() => fs.mkdirSync(tmpDir, {recursive: true})); afterEach(() => fs.rmSync(tmpDir, {recursive: true, force: true})); + async function stopAndClose(ctrl: bigint): Promise { + await expect(core.chatSendCmd(ctrl, "/_stop")).resolves.toMatchObject({type: "chatStopped"}); + await core.chatCloseStore(ctrl); + } + it("should initialize chat controller", async () => { const ctrl = await core.chatMigrateInit(dbPath, "key", core.MigrationConfirmation.YesUp); expect(typeof ctrl).toBe("bigint"); - await expect(core.chatCloseStore(ctrl)).resolves.toBe(undefined); + await expect(stopAndClose(ctrl)).resolves.toBe(undefined); await expect(core.chatMigrateInit(dbPath, "wrong_key", core.MigrationConfirmation.YesUp)).rejects.toMatchObject({ message: "Database or migration error (see dbMigrationError property)", dbMigrationError: expect.objectContaining({type: "errorNotADatabase"}) }); }); - + + it("should initialize chat controller with queue size", async () => { + const ctrl = await core.chatMigrateInit(dbPath, "key", core.MigrationConfirmation.YesUp, 65536); + expect(typeof ctrl).toBe("bigint"); + await expect(stopAndClose(ctrl)).resolves.toBe(undefined); + + await expect(core.chatMigrateInit(dbPath, "key", core.MigrationConfirmation.YesUp, 0)).rejects.toMatchObject({ + dbMigrationError: {type: "invalidQueueSize"} + }); + await expect(core.chatMigrateInit(dbPath, "key", core.MigrationConfirmation.YesUp, 2 ** 31)).rejects.toThrow("Expected 32-bit integer queue size"); + await expect(core.chatMigrateInit(dbPath, "key", core.MigrationConfirmation.YesUp, 1.5)).rejects.toThrow("Expected 32-bit integer queue size"); + }); + it("should send command and receive event", async () => { const ctrl = await core.chatMigrateInit(dbPath, "key", core.MigrationConfirmation.YesUp); @@ -41,7 +59,7 @@ describe("Core tests", () => { chatError: expect.objectContaining({type: "error"}) }); - await core.chatCloseStore(ctrl); + await stopAndClose(ctrl); }); it("should write/read encrypted file from/to buffer", async () => { @@ -59,7 +77,25 @@ describe("Core tests", () => { await expect(core.chatWriteFile(ctrl, path.join(tmpDir, "unknown", "unknown.txt"), buffer)).rejects.toThrow(); await expect(core.chatReadFile(path.join(tmpDir, "unknown.txt"), cryptoArgs)).rejects.toThrow(); - await core.chatCloseStore(ctrl); + await stopAndClose(ctrl); + }); + + it("should write the view of a Uint8Array and read an empty file", async () => { + const ctrl = await core.chatMigrateInit(dbPath, "key", core.MigrationConfirmation.YesUp); + + const viewPath = path.join(tmpDir, "view.txt"); + const viewArgs = await core.chatWriteFile(ctrl, viewPath, Buffer.from("xxabcxx").subarray(2, 5)); + const view = await core.chatReadFile(viewPath, viewArgs); + expect(Buffer.isBuffer(view)).toBe(true); + expect(view.toString()).toBe("abc"); + + const emptyPath = path.join(tmpDir, "empty.txt"); + const emptyArgs = await core.chatWriteFile(ctrl, emptyPath, new Uint8Array(0)); + const empty = await core.chatReadFile(emptyPath, emptyArgs); + expect(Buffer.isBuffer(empty)).toBe(true); + expect(empty.length).toBe(0); + + await stopAndClose(ctrl); }); it("should encrypt/decrypt file", async () => { @@ -80,6 +116,118 @@ describe("Core tests", () => { await expect(core.chatEncryptFile(ctrl, path.join(tmpDir, "unknown.txt"), encryptedPath)).rejects.toThrow(); await expect(core.chatDecryptFile(path.join(tmpDir, "unknown.txt"), cryptoArgs, decryptedPath)).rejects.toThrow(); - await core.chatCloseStore(ctrl); + await stopAndClose(ctrl); }); + + it("should not block the libuv pool while receiving", async () => { + const ctrl = await core.chatMigrateInit(dbPath, "key", core.MigrationConfirmation.YesUp); + const receives = [1, 2, 3, 4].map(() => core.chatRecvMsgWait(ctrl, 2_000_000)); + const start = Date.now(); + await fs.promises.stat(tmpDir); + expect(Date.now() - start).toBeLessThan(200); + await Promise.all(receives); + await stopAndClose(ctrl); + }, 10000); + + const itOnLinux = process.platform === "linux" ? it : it.skip; + + // Thread count is read from /proc/self/task, which only exists on Linux. + itOnLinux("should keep the thread count constant while receiving", async () => { + const ctrl = await core.chatMigrateInit(dbPath, "key", core.MigrationConfirmation.YesUp); + for (let i = 0; i < 10; i++) await core.chatRecvMsgWait(ctrl, 1); + const threadCount = () => fs.readdirSync("/proc/self/task").length; + const warmCount = threadCount(); + const counts = new Set(); + for (let i = 0; i < 200; i++) { + await core.chatRecvMsgWait(ctrl, 1); + counts.add(threadCount()); + } + expect({warmCount, counts: [...counts]}).toEqual({warmCount, counts: [warmCount]}); + await stopAndClose(ctrl); + }, 30000); + + it("should receive on two controllers concurrently", async () => { + const ctrlA = await core.chatMigrateInit(path.join(tmpDir, "simplex_a"), "key", core.MigrationConfirmation.YesUp); + const ctrlB = await core.chatMigrateInit(path.join(tmpDir, "simplex_b"), "key", core.MigrationConfirmation.YesUp); + const start = Date.now(); + await expect(Promise.all([core.chatRecvMsgWait(ctrlA, 1_000_000), core.chatRecvMsgWait(ctrlB, 1_000_000)])) + .resolves.toEqual([undefined, undefined]); + const elapsed = Date.now() - start; + expect(elapsed).toBeGreaterThanOrEqual(900); + expect(elapsed).toBeLessThan(1800); + await stopAndClose(ctrlA); + await stopAndClose(ctrlB); + }, 10000); + + it("should receive events of one controller in order", async () => { + const ctrl = await core.chatMigrateInit(dbPath, "key", core.MigrationConfirmation.YesUp); + for (const action of ["first", "second"]) { + await expect(core.chatSendCmd(ctrl, `/debug event {"type": "timedAction", "action": "${action}", "durationMilliseconds": 1}`)) + .resolves.toMatchObject({type: "cmdOk"}); + } + const events = await Promise.all([core.chatRecvMsgWait(ctrl, 500_000), core.chatRecvMsgWait(ctrl, 500_000)]); + expect(events).toMatchObject([ + {type: "timedAction", action: "first"}, + {type: "timedAction", action: "second"} + ]); + await stopAndClose(ctrl); + }, 10000); + + it("should close the store while a receive is in flight", async () => { + const ctrl = await core.chatMigrateInit(dbPath, "key", core.MigrationConfirmation.YesUp); + // starts the receiver thread, so the next request only has to wake it + await core.chatRecvMsgWait(ctrl, 1); + const settle = (p: Promise) => p.then((event) => ({event}), (e: Error) => ({error: e.message})); + const receives = Promise.all([settle(core.chatRecvMsgWait(ctrl, 3_000_000)), settle(core.chatRecvMsgWait(ctrl, 3_000_000))]); + // the thread enters the first receive within this margin even under load, so the second one is still queued at close + await new Promise((resolve) => setTimeout(resolve, 500)); + await expect(core.chatSendCmd(ctrl, "/_stop")).resolves.toMatchObject({type: "chatStopped"}); + let closed = false; + const close = core.chatCloseStore(ctrl).then(() => { closed = true; }); + const timerStart = Date.now(); + const timerDelay = await new Promise((resolve) => setTimeout(() => resolve(Date.now() - timerStart), 10)); + expect({closed, timerDelayBelow100ms: timerDelay < 100}).toEqual({closed: false, timerDelayBelow100ms: true}); + await close; + expect(await receives).toEqual([{event: undefined}, {error: "chat receiver stopped"}]); + }, 10000); + + it("should let the process exit while a receiver is idle", () => { + const childDbPath = path.resolve(tmpDir, "simplex_child"); + const script = ` + const simplex = require("./build/Release/simplex.node"); + simplex.chat_migrate_init(${JSON.stringify(childDbPath)}, "key", "yesUp") + .then(([ctrl]) => simplex.chat_recv_msg_wait(ctrl, 1)) + .then((res) => console.log("received " + JSON.stringify(res))); + `; + const child = spawnSync(process.execPath, ["-e", script], {cwd: path.join(__dirname, ".."), timeout: 10000, encoding: "utf8"}); + if (child.status !== 0 || child.signal !== null) console.log("child stderr:", child.stderr); + expect({status: child.status, signal: child.signal, stdout: child.stdout.trim()}) + .toEqual({status: 0, signal: null, stdout: 'received ""'}); + }, 15000); + + it("should not crash when closing stopped controllers repeatedly", async () => { + const script = ` + const fs = require("fs"), path = require("path"); + const simplex = require("./build/Release/simplex.node"); + (async () => { + for (let i = 0; i < 40; i++) { + const dir = fs.mkdtempSync(path.join(${JSON.stringify(path.resolve(tmpDir))}, "close-")); + const [ctrl] = await simplex.chat_migrate_init(path.join(dir, "simplex"), "key", "yesUp"); + await simplex.chat_send_cmd(ctrl, "/v"); + await simplex.chat_send_cmd(ctrl, "/_stop"); + const res = await simplex.chat_close_store(ctrl); + fs.rmSync(dir, {recursive: true, force: true}); + if (res !== "") throw new Error("close failed: " + res); + } + })(); + `; + const runChild = () => new Promise<{code: number | null, signal: NodeJS.Signals | null, stderr: string}>((resolve) => { + const child = execFile(process.execPath, ["-e", script], {cwd: path.join(__dirname, ".."), timeout: 150000}, (_error, _stdout, stderr) => + resolve({code: child.exitCode, signal: child.signalCode, stderr})); + }); + const childCount = 3; + const results = await Promise.all(Array.from({length: childCount}, runChild)); + for (const r of results) if (r.code !== 0 || r.signal !== null) console.log("child stderr:", r.stderr); + expect(results.map(({code, signal}) => ({code, signal}))).toEqual(Array(childCount).fill({code: 0, signal: null})); + }, 180000); }); diff --git a/packages/simplex-chat-nodejs/tests/util.test.ts b/packages/simplex-chat-nodejs/tests/util.test.ts index 4fe3140edc..29224cf1cc 100644 --- a/packages/simplex-chat-nodejs/tests/util.test.ts +++ b/packages/simplex-chat-nodejs/tests/util.test.ts @@ -34,4 +34,8 @@ describe("ciBotCommand", () => { const ci = {content: {type: "rcvDeleted"}} as T.ChatItem expect(ciBotCommand(ci)).toBeUndefined() }) + + it("keeps multi-line params", () => { + expect(ciBotCommand(rcvText("/review line1\nline2"))).toEqual({keyword: "review", params: "line1\nline2"}) + }) }) diff --git a/packages/simplex-chat-python/src/simplex_chat/_native.py b/packages/simplex-chat-python/src/simplex_chat/_native.py index 4c408479bb..009ff9a1e0 100644 --- a/packages/simplex-chat-python/src/simplex_chat/_native.py +++ b/packages/simplex-chat-python/src/simplex_chat/_native.py @@ -16,7 +16,7 @@ import urllib.request import zipfile from ctypes import POINTER, c_char_p, c_int, c_uint8, c_void_p from pathlib import Path -from typing import Literal +from typing import Any, Literal from ._version import LIBS_VERSION @@ -166,7 +166,8 @@ _backend: Backend | None = None def _load_libc() -> ctypes.CDLL: if sys.platform == "win32": - return ctypes.CDLL("msvcrt") + # libsimplex.dll allocates results with UCRT malloc; msvcrt free would corrupt the heap. + return ctypes.CDLL("ucrtbase") return ctypes.CDLL(None) # libc on POSIX is the process's own symbol table @@ -255,3 +256,19 @@ def lib() -> ctypes.CDLL: if _lib is None: raise RuntimeError("lib_for() must be called before lib()") return _lib + + +QUEUE_SIZE_UNSUPPORTED = ( + "loaded libsimplex does not export chat_migrate_init_queue; queue size needs a newer libsimplex" +) + + +def migrate_init_queue() -> Any: + """`chat_migrate_init_queue`, which older libsimplex releases do not export.""" + try: + fn = lib().chat_migrate_init_queue + except AttributeError as e: + raise RuntimeError(QUEUE_SIZE_UNSUPPORTED) from e + fn.argtypes = [c_char_p, c_char_p, c_char_p, c_int, POINTER(c_void_p)] + fn.restype = c_void_p + return fn diff --git a/packages/simplex-chat-python/src/simplex_chat/api.py b/packages/simplex-chat-python/src/simplex_chat/api.py index e3d36c45df..876230ef39 100644 --- a/packages/simplex-chat-python/src/simplex_chat/api.py +++ b/packages/simplex-chat-python/src/simplex_chat/api.py @@ -2,7 +2,9 @@ from __future__ import annotations +import asyncio import json +from concurrent.futures import ThreadPoolExecutor from dataclasses import dataclass from typing import Any, Literal @@ -65,17 +67,20 @@ class ChatApi: def __init__(self, ctrl: int): self._ctrl: int | None = ctrl self._started = False + self._recv_executor: ThreadPoolExecutor | None = None @classmethod async def init( cls, db: Db, confirm: MigrationConfirmation = MigrationConfirmation.YES_UP, + queue_size: int | None = None, ) -> ChatApi: path_or_prefix, key_or_conn, backend = _db_to_migrate_args(db) # Trigger lazy lib load with the right backend BEFORE chat_migrate_init. - _native.lib_for(backend) - ctrl = await core.chat_migrate_init(path_or_prefix, key_or_conn, confirm) + # It may download ~100 MB, so it must not block the event loop. + await asyncio.to_thread(_native.lib_for, backend) + ctrl = await core.chat_migrate_init(path_or_prefix, key_or_conn, confirm, queue_size) return cls(ctrl) @property @@ -114,6 +119,14 @@ class ChatApi: self._started = False async def close(self) -> None: + """Stop the chat and close its store; the store stays open if stopping fails.""" + # a running controller keeps using the database connections that closing frees + await self.stop_chat() + if self._recv_executor is not None: + # Waits for a receive already in flight (up to wait_us) so the store + # never closes underneath one; run off-loop since shutdown blocks. + await asyncio.to_thread(self._recv_executor.shutdown, wait=True) + self._recv_executor = None await core.chat_close_store(self.ctrl) self._ctrl = None self._started = False @@ -122,7 +135,14 @@ class ChatApi: return await core.chat_send_cmd(self.ctrl, cmd) async def recv_chat_event(self, wait_us: int = 500_000) -> CEvt.ChatEvent | None: - return await core.chat_recv_msg_wait(self.ctrl, wait_us) + ctrl = self.ctrl # raises before touching the executor if close() was called + if self._recv_executor is None: + # A receive blocks for up to wait_us almost back to back, so it would + # otherwise pin one of the default executor's few worker threads. + self._recv_executor = ThreadPoolExecutor( + max_workers=1, thread_name_prefix="simplex-recv" + ) + return await core.chat_recv_msg_wait(ctrl, wait_us, self._recv_executor) # ------------------------------------------------------------------ # # Address commands @@ -158,6 +178,8 @@ class ChatApi: ) if r["type"] == "userProfileUpdated": return r["updateSummary"] + if r["type"] == "userProfileNoChange": + return {"updateSuccesses": 0, "updateFailures": 0, "changedContacts": []} raise ChatCommandError("error setting profile address", r) async def api_set_address_settings(self, user_id: int, settings: T.AddressSettings) -> None: @@ -236,6 +258,8 @@ class ChatApi: ) if r["type"] == "chatItemUpdated": return r["chatItem"]["chatItem"] + if r["type"] == "chatItemNotChanged": + return r["chatItem"]["chatItem"] raise ChatCommandError("error updating chat item", r) async def api_delete_chat_items( @@ -302,6 +326,8 @@ class ChatApi: ) if r["type"] == "rcvFileAccepted": return r["chatItem"] + if r["type"] == "rcvFileAcceptedSndCancelled": + raise ChatCommandError("file cancelled by sender", r) raise ChatCommandError("error receiving file", r) async def api_cancel_file(self, file_id: int) -> None: @@ -477,12 +503,13 @@ class ChatApi: self, user_id: int, incognito: bool, - prepared_link: T.CreatedConnLink | None = None, + prepared_link: T.CreatedConnLink, ) -> ConnReqType: - args: CC.APIConnect = {"userId": user_id, "incognito": incognito} - if prepared_link is not None: - args["preparedLink_"] = prepared_link - r = await self.send_chat_cmd(CC.APIConnect_cmd_string(args)) + r = await self.send_chat_cmd( + CC.APIConnect_cmd_string( + {"userId": user_id, "incognito": incognito, "preparedLink_": prepared_link} + ) + ) return self._handle_connect_result(r) async def api_connect_active_user(self, conn_link: str) -> ConnReqType: diff --git a/packages/simplex-chat-python/src/simplex_chat/bot.py b/packages/simplex-chat-python/src/simplex_chat/bot.py index b3e5b5ec03..2fa0ed39b4 100644 --- a/packages/simplex-chat-python/src/simplex_chat/bot.py +++ b/packages/simplex-chat-python/src/simplex_chat/bot.py @@ -90,6 +90,7 @@ class Bot(Client): welcome: str | T.MsgContent | None = None, commands: list[BotCommand] | None = None, confirm_migrations: MigrationConfirmation = MigrationConfirmation.YES_UP, + queue_size: int | None = None, create_address: bool = True, update_address: bool = True, update_profile: bool = True, @@ -103,6 +104,7 @@ class Bot(Client): profile=profile, db=db, confirm_migrations=confirm_migrations, + queue_size=queue_size, update_profile=update_profile, log_contacts=log_contacts, log_network=log_network, diff --git a/packages/simplex-chat-python/src/simplex_chat/client.py b/packages/simplex-chat-python/src/simplex_chat/client.py index 8ec955b54a..476dd70ac3 100644 --- a/packages/simplex-chat-python/src/simplex_chat/client.py +++ b/packages/simplex-chat-python/src/simplex_chat/client.py @@ -149,6 +149,7 @@ class Client: profile: Profile, db: Db, confirm_migrations: MigrationConfirmation = MigrationConfirmation.YES_UP, + queue_size: int | None = None, update_profile: bool = True, log_contacts: bool = False, log_network: bool = False, @@ -156,6 +157,7 @@ class Client: self._profile = profile self._db = db self._confirm_migrations = confirm_migrations + self._queue_size = queue_size self._update_profile = update_profile self._log_contacts = log_contacts self._log_network = log_network @@ -343,7 +345,7 @@ class Client: # do post-start setup (profile sync; Bot adds address sync). # `_stop_event` is never cleared: a stop requested during startup has # to survive into the receive loop. A stopped client is spent. - self._api = await ChatApi.init(self._db, self._confirm_migrations) + self._api = await ChatApi.init(self._db, self._confirm_migrations, self._queue_size) try: user = await self._ensure_active_user() await self._api.start_chat() @@ -362,11 +364,6 @@ class Client: api = self._api if api is None: return - if api.started: - try: - await api.stop_chat() - except Exception: - log.exception("stop_chat failed during init rollback") try: await api.close() except Exception: @@ -379,13 +376,16 @@ class Client: if api is None: return # Null out the reference up-front so the Client appears closed even - # if stop_chat / close raise — otherwise `client.api` would still + # if close raises — otherwise `client.api` would still # hand back a half-shutdown controller after `async with` exits. self._api = None try: - await api.stop_chat() - finally: await api.close() + except BaseException: + # A failed stop leaves the store open; keep it so the caller can retry. + if api.initialized: + self._api = api + raise async def _post_start(self, user: T.User) -> None: """Hook for subclasses to add work between `start_chat` and serving. @@ -617,7 +617,7 @@ class Client: # message resolve a future no one is waiting on. if waiter in waiters: waiters.remove(waiter) - if not waiters: + if not waiters and self._reply_waiters.get(contact_id) is waiters: self._reply_waiters.pop(contact_id, None) async def _receive_loop(self) -> None: diff --git a/packages/simplex-chat-python/src/simplex_chat/core.py b/packages/simplex-chat-python/src/simplex_chat/core.py index 4fc847f7de..adebde1b56 100644 --- a/packages/simplex-chat-python/src/simplex_chat/core.py +++ b/packages/simplex-chat-python/src/simplex_chat/core.py @@ -9,6 +9,7 @@ from __future__ import annotations import asyncio import ctypes import json +from concurrent.futures import Executor from enum import StrEnum from typing import Any, TypedDict @@ -102,7 +103,9 @@ async def chat_send_cmd(ctrl: int, cmd: str) -> CR.ChatResponse: raise ChatAPIError(f"invalid chat command result: {raw[:200]}") -async def chat_recv_msg_wait(ctrl: int, wait_us: int = 500_000) -> CEvt.ChatEvent | None: +async def chat_recv_msg_wait( + ctrl: int, wait_us: int = 500_000, executor: Executor | None = None +) -> CEvt.ChatEvent | None: def _call() -> str: # On timeout, the C side returns a non-NULL pointer to a single NUL byte # (see Mobile.hs `fromMaybe ""`), so `_read_and_free` returns "" — no @@ -110,7 +113,10 @@ async def chat_recv_msg_wait(ctrl: int, wait_us: int = 500_000) -> CEvt.ChatEven ptr = _native.lib().chat_recv_msg_wait(ctrl, wait_us) return _read_and_free(ptr) - raw = await asyncio.to_thread(_call) + if executor is None: + raw = await asyncio.to_thread(_call) + else: + raw = await asyncio.get_running_loop().run_in_executor(executor, _call) if not raw: return None parsed = json.loads(raw) @@ -122,17 +128,29 @@ async def chat_recv_msg_wait(ctrl: int, wait_us: int = 500_000) -> CEvt.ChatEven raise ChatAPIError(f"invalid chat event: {raw[:200]}") -async def chat_migrate_init(db_path: str, db_key: str, confirm: MigrationConfirmation) -> int: - """Initialize chat controller. Returns opaque ctrl pointer as Python int.""" +async def chat_migrate_init( + db_path: str, + db_key: str, + confirm: MigrationConfirmation, + queue_size: int | None = None, +) -> int: + """Initialize chat controller. Returns opaque ctrl pointer as Python int. + + `queue_size` is the size of internal queues; the core default is used when None. + """ + # ctypes silently wraps ints that do not fit C int. + if queue_size is not None and ctypes.c_int(queue_size).value != queue_size: + raise ValueError(f"queue_size {queue_size} does not fit C int") + + init_queue = _native.migrate_init_queue() if queue_size is not None else None def _call() -> tuple[int, str]: ctrl = ctypes.c_void_p() - ptr = _native.lib().chat_migrate_init( - db_path.encode("utf-8"), - db_key.encode("utf-8"), - confirm.encode("utf-8"), - ctypes.byref(ctrl), - ) + args = (db_path.encode("utf-8"), db_key.encode("utf-8"), confirm.encode("utf-8")) + if init_queue is None: + ptr = _native.lib().chat_migrate_init(*args, ctypes.byref(ctrl)) + else: + ptr = init_queue(*args, queue_size, ctypes.byref(ctrl)) return (ctrl.value or 0, _read_and_free(ptr)) ctrl_val, raw = await asyncio.to_thread(_call) diff --git a/packages/simplex-chat-python/src/simplex_chat/types/_commands.py b/packages/simplex-chat-python/src/simplex_chat/types/_commands.py index fd4f561c3d..e6155c9ce7 100644 --- a/packages/simplex-chat-python/src/simplex_chat/types/_commands.py +++ b/packages/simplex-chat-python/src/simplex_chat/types/_commands.py @@ -498,7 +498,7 @@ class APIConnect(TypedDict): def APIConnect_cmd_string(self: APIConnect) -> str: - return '/_connect ' + str(self['userId']) + ((' ' + T.CreatedConnLink_cmd_string(self.get('preparedLink_'))) if self.get('preparedLink_') is not None else '') + return '/_connect ' + str(self['userId']) + (' incognito=on' if self['incognito'] else '') + ((' ' + T.CreatedConnLink_cmd_string(self.get('preparedLink_'))) if self.get('preparedLink_') is not None else '') APIConnect_Response = CR.SentConfirmation | CR.ContactAlreadyExists | CR.SentInvitation | CR.ChatCmdError diff --git a/packages/simplex-chat-python/src/simplex_chat/types/_types.py b/packages/simplex-chat-python/src/simplex_chat/types/_types.py index 6a8fd96c87..ab06a24f53 100644 --- a/packages/simplex-chat-python/src/simplex_chat/types/_types.py +++ b/packages/simplex-chat-python/src/simplex_chat/types/_types.py @@ -220,83 +220,7 @@ BadgeRedeemError = ( BadgeRedeemError_Tag = Literal["invalidCode", "serviceNotConfigured", "badgeActive", "serviceError", "invalidResponse", "unknownKeyIndex", "credentialNotVerified"] -class BadgeServiceErrorCode_badRequest(TypedDict): - type: Literal["badRequest"] - -class BadgeServiceErrorCode_unsupportedVersion(TypedDict): - type: Literal["unsupportedVersion"] - -class BadgeServiceErrorCode_unknownPurchaseKey(TypedDict): - type: Literal["unknownPurchaseKey"] - -class BadgeServiceErrorCode_unknownOfferId(TypedDict): - type: Literal["unknownOfferId"] - -class BadgeServiceErrorCode_offerDisabled(TypedDict): - type: Literal["offerDisabled"] - -class BadgeServiceErrorCode_offerMismatch(TypedDict): - type: Literal["offerMismatch"] - -class BadgeServiceErrorCode_productUnavailable(TypedDict): - type: Literal["productUnavailable"] - -class BadgeServiceErrorCode_paymentNotEntitled(TypedDict): - type: Literal["paymentNotEntitled"] - -class BadgeServiceErrorCode_paymentPending(TypedDict): - type: Literal["paymentPending"] - -class BadgeServiceErrorCode_providerUnavailable(TypedDict): - type: Literal["providerUnavailable"] - -class BadgeServiceErrorCode_rateLimited(TypedDict): - type: Literal["rateLimited"] - -class BadgeServiceErrorCode_codeInvalid(TypedDict): - type: Literal["codeInvalid"] - -class BadgeServiceErrorCode_codeUsed(TypedDict): - type: Literal["codeUsed"] - -class BadgeServiceErrorCode_codeExpired(TypedDict): - type: Literal["codeExpired"] - -class BadgeServiceErrorCode_receiptInvalid(TypedDict): - type: Literal["receiptInvalid"] - -class BadgeServiceErrorCode_receiptUsed(TypedDict): - type: Literal["receiptUsed"] - -class BadgeServiceErrorCode_internal(TypedDict): - type: Literal["internal"] - -class BadgeServiceErrorCode_unknown(TypedDict): - type: Literal["unknown"] - : str - -BadgeServiceErrorCode = ( - BadgeServiceErrorCode_badRequest - | BadgeServiceErrorCode_unsupportedVersion - | BadgeServiceErrorCode_unknownPurchaseKey - | BadgeServiceErrorCode_unknownOfferId - | BadgeServiceErrorCode_offerDisabled - | BadgeServiceErrorCode_offerMismatch - | BadgeServiceErrorCode_productUnavailable - | BadgeServiceErrorCode_paymentNotEntitled - | BadgeServiceErrorCode_paymentPending - | BadgeServiceErrorCode_providerUnavailable - | BadgeServiceErrorCode_rateLimited - | BadgeServiceErrorCode_codeInvalid - | BadgeServiceErrorCode_codeUsed - | BadgeServiceErrorCode_codeExpired - | BadgeServiceErrorCode_receiptInvalid - | BadgeServiceErrorCode_receiptUsed - | BadgeServiceErrorCode_internal - | BadgeServiceErrorCode_unknown -) - -BadgeServiceErrorCode_Tag = Literal["badRequest", "unsupportedVersion", "unknownPurchaseKey", "unknownOfferId", "offerDisabled", "offerMismatch", "productUnavailable", "paymentNotEntitled", "paymentPending", "providerUnavailable", "rateLimited", "codeInvalid", "codeUsed", "codeExpired", "receiptInvalid", "receiptUsed", "internal", "unknown"] +BadgeServiceErrorCode = Literal["bad_request", "unsupported_version", "unknown_purchase_key", "unknown_offer_id", "offer_disabled", "offer_mismatch", "product_unavailable", "payment_not_entitled", "payment_pending", "provider_unavailable", "rate_limited", "code_invalid", "code_used", "code_expired", "receipt_invalid", "receipt_used", "internal"] BadgeStatus = Literal["active", "expired", "expiredOld", "failed", "unknownKey"] diff --git a/packages/simplex-chat-python/src/simplex_chat/util.py b/packages/simplex-chat-python/src/simplex_chat/util.py index e5fbbf3fab..92f2fa52cf 100644 --- a/packages/simplex-chat-python/src/simplex_chat/util.py +++ b/packages/simplex-chat-python/src/simplex_chat/util.py @@ -101,7 +101,7 @@ def ci_content_text(chat_item: T.ChatItem) -> str | None: return None -_BOT_COMMAND_RE = re.compile(r"^/([^\s]+)(.*)$") +_BOT_COMMAND_RE = re.compile(r"^/([^\s]+)(.*)$", re.DOTALL) def ci_bot_command(chat_item: T.ChatItem) -> tuple[str, str] | None: diff --git a/packages/simplex-chat-python/tests/test_api.py b/packages/simplex-chat-python/tests/test_api.py index 09b5ce4c03..1b20ec0639 100644 --- a/packages/simplex-chat-python/tests/test_api.py +++ b/packages/simplex-chat-python/tests/test_api.py @@ -7,6 +7,7 @@ shape it accepts. from __future__ import annotations +import asyncio from typing import Any import pytest @@ -172,3 +173,46 @@ async def test_a_failed_custom_data_write_raises(): api = FakeCtrl({"type": "chatCmdError"}) with pytest.raises(ChatCommandError): await api.api_merge_group_custom_data({"groupId": 9}, "mine", 1) + + +# ---------------------------------------------------------------------- # +# Documented success responses +# ---------------------------------------------------------------------- # + + +def test_update_chat_item_accepts_not_changed(): + chat_item = {"meta": {"itemId": 2}} + api = FakeCtrl({"type": "chatItemNotChanged", "chatItem": {"chatItem": chat_item}}) + msg_content = {"type": "text", "text": "same"} + assert asyncio.run(api.api_update_chat_item("direct", 1, 2, msg_content)) == chat_item + + +def test_set_profile_address_accepts_no_change(): + api = FakeCtrl({"type": "userProfileNoChange"}) + summary = asyncio.run(api.api_set_profile_address(1, True)) + assert summary == {"updateSuccesses": 0, "updateFailures": 0, "changedContacts": []} + + +def test_receive_file_reports_cancelled_by_sender(): + api = FakeCtrl({"type": "rcvFileAcceptedSndCancelled", "rcvFileTransfer": {}}) + with pytest.raises(ChatCommandError, match="file cancelled by sender"): + asyncio.run(api.api_receive_file(3)) + + +async def test_init_loads_library_off_the_event_loop(monkeypatch): + import threading + + from simplex_chat import _native, core + from simplex_chat.api import SqliteDb + + threads: list[int] = [] + monkeypatch.setattr(_native, "lib_for", lambda _backend: threads.append(threading.get_ident())) + + async def fake_migrate_init(*_args): + return 1 + + monkeypatch.setattr(core, "chat_migrate_init", fake_migrate_init) + + loop_thread = threading.get_ident() + await ChatApi.init(SqliteDb(file_prefix="/tmp/unused")) + assert threads and threads[0] != loop_thread diff --git a/packages/simplex-chat-python/tests/test_client_and_waiters.py b/packages/simplex-chat-python/tests/test_client_and_waiters.py index d40c74a0eb..1ecf146ec3 100644 --- a/packages/simplex-chat-python/tests/test_client_and_waiters.py +++ b/packages/simplex-chat-python/tests/test_client_and_waiters.py @@ -14,11 +14,13 @@ import pytest from simplex_chat import ( Bot, BotProfile, + ChatCommandError, Client, ContactAlreadyExistsError, Profile, SqliteDb, ) +from simplex_chat.core import MigrationConfirmation class FakeApi: @@ -292,6 +294,31 @@ def test_send_and_wait_parallel_different_contacts(): assert (a, b) == ("A", "B") +def test_send_and_wait_keeps_waiter_registered_during_previous_cleanup(): + bot, _api = _bot_with_fake_api() + + def reply(text: str) -> dict[str, Any]: + return {"type": "newChatItems", "chatItems": [ + { + "chatInfo": {"type": "direct", "contact": {"contactId": 42}}, + "chatItem": {"content": {"type": "rcvMsgContent", "msgContent": {"type": "text", "text": text}}}, + } + ]} + + async def go() -> tuple[str, str]: + first = asyncio.create_task(bot.send_and_wait(42, "a", timeout=2.0)) + await asyncio.sleep(0) + # Created before the reply is dispatched, so it registers before `first` runs its cleanup. + second = asyncio.create_task(bot.send_and_wait(42, "b", timeout=2.0)) + await bot._dispatch_event(reply("ra")) # type: ignore[arg-type] + await asyncio.sleep(0) + await asyncio.sleep(0) + await bot._dispatch_event(reply("rb")) # type: ignore[arg-type] + return (await first).text or "", (await second).text or "" + + assert asyncio.run(go()) == ("ra", "rb") + + # --------------------------------------------------------------------------- # connect_to # --------------------------------------------------------------------------- @@ -466,6 +493,10 @@ def test_aexit_nulls_api_even_if_close_raises(monkeypatch): async def stop_chat(self): pass + @property + def initialized(self): + return False + async def close(self): raise RuntimeError("close failed") @@ -498,6 +529,83 @@ def test_aexit_nulls_api_even_if_close_raises(monkeypatch): asyncio.run(go()) +def test_aexit_keeps_api_for_retry_when_stop_fails(monkeypatch): + """A failed stop leaves the store open, so the Client must keep the + controller: dropping it would leak the store with no way to close it.""" + import simplex_chat.client as client_mod + + stop_results = ["chatCmdError", "chatStopped"] + closed: list[bool] = [False] + + class _FailingStopApi: + @classmethod + async def init(cls, *_a, **_kw): + return cls() + + @property + def initialized(self): + return not closed[0] + + async def start_chat(self): + pass + + async def close(self): + response = stop_results.pop(0) + if response != "chatStopped": + raise ChatCommandError("error stopping chat", {"type": response}) + closed[0] = True + + async def api_get_active_user(self): + return {"userId": 1, "profile": {"displayName": "x"}} + + async def send_chat_cmd(self, _cmd): + return {"type": "cmdOk"} + + monkeypatch.setattr(client_mod, "ChatApi", _FailingStopApi) + + c = Client(profile=Profile(display_name="x"), db=SqliteDb(file_prefix="/tmp/test")) + + async def go(): + with pytest.raises(ChatCommandError, match="error stopping chat"): + async with c: + pass + assert c._api is not None, "controller dropped while its store is still open" + assert closed == [False] + await c.__aexit__(None, None, None) + assert closed == [True] + assert c._api is None + + asyncio.run(go()) + + +@pytest.mark.parametrize("queue_size", [None, 65536]) +def test_bot_passes_queue_size_to_chat_api_init(monkeypatch, queue_size): + import simplex_chat.client as client_mod + + init_args: list[tuple[Any, ...]] = [] + + class StopInit(RuntimeError): + pass + + class FakeChatApi: + @classmethod + async def init(cls, *args): + init_args.append(args) + raise StopInit + + monkeypatch.setattr(client_mod, "ChatApi", FakeChatApi) + db = SqliteDb(file_prefix="/tmp/test") + bot = Bot(profile=BotProfile(display_name="x"), db=db, queue_size=queue_size) + + async def go(): + with pytest.raises(StopInit): + async with bot: + pytest.fail("should not enter the with-block") + + asyncio.run(go()) + assert init_args == [(db, MigrationConfirmation.YES_UP, queue_size)] + + def test_aenter_rolls_back_partial_init_on_post_start_failure(monkeypatch): """If anything in __aenter__ raises after ChatApi.init succeeded — including _post_start — the controller must be closed. Otherwise the with-block isn't @@ -550,7 +658,7 @@ def test_aenter_rolls_back_partial_init_on_post_start_failure(monkeypatch): pytest.fail("should not enter the with-block") asyncio.run(go()) - assert closed == ["stop", "close"], f"controller not cleaned up: {closed}" + assert closed == ["close"], f"controller not cleaned up: {closed}" assert c._api is None, "Client._api should be reset to None after rollback" diff --git a/packages/simplex-chat-python/tests/test_codegen.py b/packages/simplex-chat-python/tests/test_codegen.py index c5842f5d56..20a9400d18 100644 --- a/packages/simplex-chat-python/tests/test_codegen.py +++ b/packages/simplex-chat-python/tests/test_codegen.py @@ -39,3 +39,9 @@ def test_chat_ref_cmd_string_direct(): """Sanity check the codegen fix for ChatRef-bearing commands.""" assert T.ChatRef_cmd_string({"chatType": "direct", "chatId": 7}) == "@7" assert T.ChatRef_cmd_string({"chatType": "group", "chatId": 42}) == "#42" + + +def test_api_connect_cmd_string_renders_incognito(): + link = {"connFullLink": "L"} + assert CC.APIConnect_cmd_string({"userId": 1, "incognito": True, "preparedLink_": link}) == "/_connect 1 incognito=on L" + assert CC.APIConnect_cmd_string({"userId": 1, "incognito": False, "preparedLink_": link}) == "/_connect 1 L" diff --git a/packages/simplex-chat-python/tests/test_core_migrate_init.py b/packages/simplex-chat-python/tests/test_core_migrate_init.py new file mode 100644 index 0000000000..f18b6d34f0 --- /dev/null +++ b/packages/simplex-chat-python/tests/test_core_migrate_init.py @@ -0,0 +1,123 @@ +"""core.chat_migrate_init picks the FFI export by queue_size, with a fake libsimplex.""" + +from __future__ import annotations + +import asyncio +import json +from typing import Any + +import pytest + +from simplex_chat import core +from simplex_chat.core import ChatInitError, MigrationConfirmation + +CTRL = 42 + + +class FakeLib: + """Records calls; each export writes CTRL to the out-param and returns the JSON result.""" + + def __init__(self, result: dict[str, Any]) -> None: + self.result = json.dumps(result) + self.calls: list[tuple[str, tuple[Any, ...]]] = [] + + def _init(self, name: str, args: tuple[Any, ...]) -> str: + *call_args, ctrl_ref = args + self.calls.append((name, tuple(call_args))) + ctrl_ref._obj.value = CTRL + return self.result + + def chat_migrate_init(self, *args: Any) -> str: + return self._init("chat_migrate_init", args) + + @property + def chat_migrate_init_queue(self) -> Any: + lib = self + + class Fn: + argtypes: Any = None + restype: Any = None + + def __call__(self, *args: Any) -> str: + return lib._init("chat_migrate_init_queue", args) + + return Fn() + + +class OldLib(FakeLib): + """A libsimplex released before chat_migrate_init_queue existed.""" + + def __getattribute__(self, name: str) -> Any: + if name == "chat_migrate_init_queue": + raise AttributeError(name) + return super().__getattribute__(name) + + +@pytest.fixture +def fake_lib(monkeypatch: pytest.MonkeyPatch): + def install(result: dict[str, Any]) -> FakeLib: + lib = FakeLib(result) + monkeypatch.setattr(core._native, "lib", lambda: lib) + monkeypatch.setattr(core, "_read_and_free", lambda ptr: ptr) + return lib + + return install + + +def migrate_init(queue_size: int | None = None) -> int: + return asyncio.run( + core.chat_migrate_init("/tmp/db", "key", MigrationConfirmation.YES_UP, queue_size) + ) + + +def test_without_queue_size_uses_chat_migrate_init(fake_lib): + lib = fake_lib({"type": "ok"}) + assert migrate_init() == CTRL + assert lib.calls == [("chat_migrate_init", (b"/tmp/db", b"key", b"yesUp"))] + + +def test_with_queue_size_uses_chat_migrate_init_queue(fake_lib): + lib = fake_lib({"type": "ok"}) + assert migrate_init(65536) == CTRL + assert lib.calls == [("chat_migrate_init_queue", (b"/tmp/db", b"key", b"yesUp", 65536))] + + +def test_invalid_queue_size_result_raises_init_error(fake_lib): + fake_lib({"type": "invalidQueueSize"}) + with pytest.raises(ChatInitError) as e: + migrate_init(0) + assert e.value.db_migration_error == {"type": "invalidQueueSize"} + + +@pytest.mark.parametrize("queue_size", [2**31, -(2**31) - 1]) +def test_queue_size_outside_c_int_is_rejected_before_ffi(fake_lib, queue_size): + lib = fake_lib({"type": "ok"}) + with pytest.raises(ValueError, match="does not fit C int"): + migrate_init(queue_size) + assert lib.calls == [] + + +def test_queue_size_on_old_lib_raises_clear_error(monkeypatch): + lib = OldLib({"type": "ok"}) + monkeypatch.setattr(core._native, "lib", lambda: lib) + with pytest.raises(RuntimeError, match="does not export chat_migrate_init_queue"): + migrate_init(65536) + assert lib.calls == [] + + +def test_setup_signatures_accepts_old_lib(): + class Fn: + argtypes: Any = None + restype: Any = None + + class Lib: + def __getattr__(self, name: str) -> Fn: + if name == "chat_migrate_init_queue": + raise AttributeError(name) + fn = Fn() + setattr(self, name, fn) + return fn + + from simplex_chat import _native + + _native._setup_signatures(Lib()) # type: ignore[arg-type] diff --git a/packages/simplex-chat-python/tests/test_native_cache.py b/packages/simplex-chat-python/tests/test_native_cache.py index c2938ee3e4..6c4f2a923d 100644 --- a/packages/simplex-chat-python/tests/test_native_cache.py +++ b/packages/simplex-chat-python/tests/test_native_cache.py @@ -91,3 +91,13 @@ def test_atomic_install(tmp_path, monkeypatch): _download(target, "sqlite") assert (target / "libsimplex.so").read_text() == "fake-so" assert (target / "libHS-stub.so").read_text() == "fake-hs" + + +def test_libc_on_windows_is_ucrt(monkeypatch): + loaded: list[str | None] = [] + monkeypatch.setattr("sys.platform", "win32") + monkeypatch.setattr("ctypes.CDLL", lambda name: loaded.append(name)) + from simplex_chat import _native + + _native._load_libc() + assert loaded == ["ucrtbase"] diff --git a/packages/simplex-chat-python/tests/test_recv_executor.py b/packages/simplex-chat-python/tests/test_recv_executor.py new file mode 100644 index 0000000000..ef160d5cf9 --- /dev/null +++ b/packages/simplex-chat-python/tests/test_recv_executor.py @@ -0,0 +1,207 @@ +"""ChatApi receives run on a dedicated per-instance thread, not the default pool. + +Uses a fake libsimplex (see tests/test_core_migrate_init.py for the pattern): +`core._native.lib` and `core._read_and_free` are monkeypatched so `chat_recv_msg_wait` +sleeps for a controlled time and returns a scripted result. +""" + +from __future__ import annotations + +import asyncio +import json +import threading +import time +from concurrent.futures import ThreadPoolExecutor +from typing import Any + +import pytest + +from simplex_chat import ChatApi, ChatCommandError + +RECV_SLEEP = 0.3 + + +class FakeRecvLib: + """Fake chat_recv_msg_wait: blocks for `sleep` seconds, then returns a scripted result. + + `events` records "stop" / "recv_start" / "recv_end" / "close_store" in call order, across + all ChatApi instances sharing this fake, so tests can assert ordering between stop, receive + and store-close calls (not just that they happened). + """ + + def __init__( + self, + sleep: float = RECV_SLEEP, + results: list[str] | None = None, + stop_response: str = "chatStopped", + ) -> None: + self.sleep = sleep + self._results = iter(results or []) + self._stop_response = stop_response + self.calls: list[tuple[int, int]] = [] # (ctrl, thread ident) + self.events: list[str] = [] + self._lock = threading.Lock() + + def chat_recv_msg_wait(self, ctrl: int, wait_us: int) -> str: + with self._lock: + self.events.append("recv_start") + time.sleep(self.sleep) + with self._lock: + self.events.append("recv_end") + self.calls.append((ctrl, threading.get_ident())) + return next(self._results, "") + + def chat_send_cmd(self, ctrl: int, cmd: bytes) -> str: + assert cmd == b"/_stop", f"unexpected command {cmd!r}" + with self._lock: + self.events.append("stop") + return json.dumps({"result": {"type": self._stop_response}}) + + def chat_close_store(self, ctrl: int) -> str: + with self._lock: + self.events.append("close_store") + return "" + + +@pytest.fixture +def fake_lib(monkeypatch: pytest.MonkeyPatch): + def install( + sleep: float = RECV_SLEEP, + results: list[str] | None = None, + stop_response: str = "chatStopped", + ) -> FakeRecvLib: + lib = FakeRecvLib(sleep=sleep, results=results, stop_response=stop_response) + monkeypatch.setattr("simplex_chat.core._native.lib", lambda: lib) + monkeypatch.setattr("simplex_chat.core._read_and_free", lambda ptr: ptr) + return lib + + return install + + +def _recv_thread_names() -> list[str]: + return [t.name for t in threading.enumerate() if t.name.startswith("simplex-recv")] + + +async def test_receives_do_not_use_the_default_executor(fake_lib): + fake_lib(sleep=RECV_SLEEP) + loop = asyncio.get_running_loop() + loop.set_default_executor(ThreadPoolExecutor(max_workers=1)) + + apis = [ChatApi(ctrl=i) for i in range(3)] + recv_tasks = [asyncio.create_task(api.recv_chat_event()) for api in apis] + try: + await asyncio.sleep(0.05) # let all three receives claim their own thread + + start = time.monotonic() + await asyncio.to_thread(lambda: None) + elapsed = time.monotonic() - start + + await asyncio.gather(*recv_tasks) + finally: + for api in apis: + await api.close() + + assert elapsed < 0.1 + + +async def test_one_receive_thread_per_chatapi_reused(fake_lib): + lib = fake_lib(sleep=0.02) + api = ChatApi(ctrl=1) + other_api = ChatApi(ctrl=2) + try: + for _ in range(3): + await api.recv_chat_event() + + idents = {ident for ctrl, ident in lib.calls if ctrl == 1} + assert len(idents) == 1 + recv_ident = idents.pop() + thread = next(t for t in threading.enumerate() if t.ident == recv_ident) + assert thread.name.startswith("simplex-recv") + assert thread.ident != threading.get_ident() + + await other_api.recv_chat_event() + other_idents = {ident for ctrl, ident in lib.calls if ctrl == 2} + assert other_idents and other_idents != {thread.ident} + finally: + await api.close() + await other_api.close() + + +def test_no_thread_until_first_receive(): + # A bare ThreadPoolExecutor spawns no worker thread until the first submit, + # so the real assertion is the attribute itself, not threading.enumerate(). + api = ChatApi(ctrl=1) + assert api._recv_executor is None + + +async def test_close_shuts_down_the_executor_without_blocking_the_loop(fake_lib): + fake_lib(sleep=RECV_SLEEP) + api = ChatApi(ctrl=1) + recv_task = asyncio.create_task(api.recv_chat_event()) + await asyncio.sleep(0.05) # let the receive claim its executor thread + assert _recv_thread_names() != [] + + sleep_task = asyncio.create_task(asyncio.sleep(0.01)) + close_task = asyncio.create_task(api.close()) + + await asyncio.wait_for(sleep_task, timeout=0.2) + assert not close_task.done() # shutdown still waiting on the in-flight receive + + await close_task + await recv_task + + assert _recv_thread_names() == [] + + +async def test_close_shuts_down_executor_before_closing_the_store(fake_lib): + lib = fake_lib(sleep=RECV_SLEEP) + api = ChatApi(ctrl=1) + recv_task = asyncio.create_task(api.recv_chat_event()) + try: + await asyncio.sleep(0.05) # ensure the receive is in flight before close() starts + await api.close() + await recv_task + finally: + if not recv_task.done(): + recv_task.cancel() + + # recv_end (executor drained) must precede close_store: a receive must never + # be in flight while the store closes underneath it. + assert lib.events == ["recv_start", "stop", "recv_end", "close_store"] + + +async def test_close_stops_the_chat_before_closing_the_store(fake_lib): + lib = fake_lib() + api = ChatApi(ctrl=1) + await api.close() + assert lib.events == ["stop", "close_store"] + assert not api.initialized + + +async def test_close_does_not_close_the_store_when_stop_fails(fake_lib): + lib = fake_lib(stop_response="chatCmdError") + api = ChatApi(ctrl=1) + with pytest.raises(ChatCommandError, match="error stopping chat"): + await api.close() + assert lib.events == ["stop"] + assert api.initialized + + +async def test_recv_chat_event_after_close_raises_before_touching_executor(fake_lib): + fake_lib() + api = ChatApi(ctrl=1) + await api.close() + with pytest.raises(RuntimeError, match="controller not initialized"): + await api.recv_chat_event() + assert api._recv_executor is None + + +async def test_receive_parses_event_json_and_none_on_timeout(fake_lib): + event: dict[str, Any] = {"type": "chatItemUpdated", "chatItem": {}} + fake_lib(sleep=0.01, results=[json.dumps({"result": event}), ""]) + api = ChatApi(ctrl=1) + try: + assert await api.recv_chat_event() == event + assert await api.recv_chat_event() is None + finally: + await api.close() diff --git a/packages/simplex-chat-python/tests/test_util.py b/packages/simplex-chat-python/tests/test_util.py index 3ea0d87e6d..d5a43eabaa 100644 --- a/packages/simplex-chat-python/tests/test_util.py +++ b/packages/simplex-chat-python/tests/test_util.py @@ -167,6 +167,11 @@ def test_ci_bot_command_no_text(): assert util.ci_bot_command(ci) is None +def test_ci_bot_command_multiline_params(): + ci = {"content": {"type": "rcvMsgContent", "msgContent": {"type": "text", "text": "/review line1\nline2"}}} + assert util.ci_bot_command(ci) == ("review", "line1\nline2") + + def test_reaction_text_emoji(): r = {"chatReaction": {"reaction": {"type": "emoji", "emoji": "🎉"}}} assert util.reaction_text(r) == "🎉" diff --git a/src/Simplex/Chat/Mobile.hs b/src/Simplex/Chat/Mobile.hs index d2e1d8460d..085df84956 100644 --- a/src/Simplex/Chat/Mobile.hs +++ b/src/Simplex/Chat/Mobile.hs @@ -12,6 +12,7 @@ module Simplex.Chat.Mobile where import Control.Concurrent.STM import Control.Exception (SomeException, catch) +import Control.Monad import Control.Monad.Except import Control.Monad.Reader import Data.Aeson (ToJSON (..)) @@ -35,6 +36,7 @@ import Foreign.Ptr import Foreign.StablePtr import Foreign.Storable (poke) import GHC.IO.Encoding (setFileSystemEncoding, setForeignEncoding, setLocaleEncoding) +import Numeric.Natural (Natural) import Simplex.Chat import Simplex.Chat.Badges.Code (badgeCodeText, parseBadgeCode) import Simplex.Chat.Controller @@ -73,6 +75,7 @@ import qualified Simplex.Messaging.Agent.Store.DB as DB data DBMigrationResult = DBMOk | DBMInvalidConfirmation + | DBMInvalidQueueSize | DBMErrorNotADatabase {dbFile :: String} | DBMErrorMigration {dbFile :: String, migrationError :: MigrationError} | DBMErrorSQL {dbFile :: String, migrationSQLError :: String} @@ -113,6 +116,8 @@ foreign export ccall "chat_migrate_init" cChatMigrateInit :: CString -> CString foreign export ccall "chat_migrate_init_key" cChatMigrateInitKey :: CString -> CString -> CInt -> CString -> CInt -> Ptr (StablePtr ChatController) -> IO CJSONString +foreign export ccall "chat_migrate_init_queue" cChatMigrateInitQueue :: CString -> CString -> CString -> CInt -> Ptr (StablePtr ChatController) -> IO CJSONString + foreign export ccall "chat_close_store" cChatCloseStore :: StablePtr ChatController -> IO CString foreign export ccall "chat_reopen_store" cChatReopenStore :: StablePtr ChatController -> IO CString @@ -166,7 +171,14 @@ cChatMigrateInit fp key conf = cChatMigrateInitKey fp key 0 conf 0 -- For postgres first param is schema prefix, second param is database connection string. cChatMigrateInitKey :: CString -> CString -> CInt -> CString -> CInt -> Ptr (StablePtr ChatController) -> IO CJSONString -cChatMigrateInitKey fp key keepKey conf background ctrl = do +cChatMigrateInitKey fp key keepKey conf background = cChatMigrateInit_ fp key (keepKey /= 0) conf (background /= 0) mobileQueueSize + +-- | queueSize is the size of internal queues, same as terminal option --queue-size +cChatMigrateInitQueue :: CString -> CString -> CString -> CInt -> Ptr (StablePtr ChatController) -> IO CJSONString +cChatMigrateInitQueue fp key conf queueSize = cChatMigrateInit_ fp key False conf False (fromIntegral queueSize) + +cChatMigrateInit_ :: CString -> CString -> Bool -> CString -> Bool -> Int -> Ptr (StablePtr ChatController) -> IO CJSONString +cChatMigrateInit_ fp key keepKey conf background queueSize ctrl = do -- ensure we are set to UTF-8; iOS does not have locale, and will default to -- US-ASCII all the time. setLocaleEncoding utf8 @@ -176,7 +188,7 @@ cChatMigrateInitKey fp key keepKey conf background ctrl = do chatDbOpts <- mobileDbOpts fp key confirm <- peekCAString conf r <- - chatMigrateInitKey chatDbOpts (keepKey /= 0) confirm (background /= 0) >>= \case + chatMigrateInitKey chatDbOpts keepKey confirm background queueSize >>= \case Right cc -> (newStablePtr cc >>= poke ctrl) $> DBMOk Left e -> pure e newCStringFromLazyBS $ J.encode r @@ -254,8 +266,11 @@ cChatParseBadgeCode cCode = do cChatJsonLength :: CString -> IO CInt cChatJsonLength s = fromIntegral . subtract 2 . LB.length . J.encode . safeDecodeUtf8 <$> B.packCString s -mobileChatOpts :: ChatDbOpts -> ChatOpts -mobileChatOpts dbOptions = +mobileQueueSize :: Int +mobileQueueSize = 4096 + +mobileChatOpts :: ChatDbOpts -> Natural -> ChatOpts +mobileChatOpts dbOptions tbqSize = ChatOpts { coreOptions = CoreChatOpts @@ -268,7 +283,7 @@ mobileChatOpts dbOptions = logServerHosts = True, logAgent = Nothing, logFile = Nothing, - tbqSize = 4096, + tbqSize, maxChats = 5000, deviceName = Nothing, chatRelay = False, @@ -313,18 +328,19 @@ getActiveUser_ st = find activeUser <$> withTransaction st getUsers chatMigrateInit :: String -> ScrubbedBytes -> String -> IO (Either DBMigrationResult ChatController) chatMigrateInit dbFilePrefix dbKey confirm = do let chatDBOpts = ChatDbOpts {dbFilePrefix, dbKey, trackQueries = DB.TQSlow 5000, vacuumOnMigration = True} - chatMigrateInitKey chatDBOpts False confirm False + chatMigrateInitKey chatDBOpts False confirm False mobileQueueSize #endif -chatMigrateInitKey :: ChatDbOpts -> Bool -> String -> Bool -> IO (Either DBMigrationResult ChatController) -chatMigrateInitKey chatDbOpts keepKey confirm backgroundMode = runExceptT $ do +chatMigrateInitKey :: ChatDbOpts -> Bool -> String -> Bool -> Int -> IO (Either DBMigrationResult ChatController) +chatMigrateInitKey chatDbOpts keepKey confirm backgroundMode queueSize = runExceptT $ do + unless (queueSize > 0) $ throwError DBMInvalidQueueSize confirmMigrations <- liftEitherWith (const DBMInvalidConfirmation) $ strDecode $ B.pack confirm let migrationConfig = MigrationConfig confirmMigrations (Just "") chatStore <- migrate createChatStore (toDBOpts chatDbOpts chatSuffix keepKey chatDBFunctions) migrationConfig agentStore <- migrate createAgentStore (toDBOpts chatDbOpts agentSuffix keepKey []) migrationConfig ExceptT $ initialize chatStore ChatDatabase {chatStore, agentStore} where - opts = mobileChatOpts $ removeDbKey chatDbOpts + opts = mobileChatOpts (removeDbKey chatDbOpts) (fromIntegral queueSize) initialize st db = do user_ <- liftIO $ getActiveUser_ st first DBMAgentError <$> newChatController db user_ defaultMobileConfig opts backgroundMode diff --git a/tests/MobileTests.hs b/tests/MobileTests.hs index e6aecfd295..b93e1c8c8c 100644 --- a/tests/MobileTests.hs +++ b/tests/MobileTests.hs @@ -25,7 +25,7 @@ import qualified Data.ByteString.Lazy.Char8 as LB import Data.Time.Clock (getCurrentTime) import Data.Word (Word8, Word32) import Foreign.C -import Foreign.Marshal.Alloc (mallocBytes) +import Foreign.Marshal.Alloc (alloca, mallocBytes) import Foreign.Marshal.Utils (copyBytes) import Foreign.Ptr import Foreign.StablePtr @@ -34,7 +34,7 @@ import GHC.IO.Encoding (setLocaleEncoding, setFileSystemEncoding, setForeignEnco import JSONFixtures import Simplex.Chat import Simplex.Chat.Badges (BadgeInfo (..), BadgeRequest (..), BadgeType (..), generateMasterKey, verifyCredential) -import Simplex.Chat.Controller (ChatController (..), ChatDatabase (..)) +import Simplex.Chat.Controller (ChatConfig (..), ChatController (..), ChatDatabase (..)) import Simplex.Chat.Mobile hiding (error) import Simplex.Chat.Mobile.Badges hiding (error) import Simplex.Chat.Mobile.File @@ -44,6 +44,8 @@ import Simplex.Chat.Options.DB import Simplex.Chat.Store import Simplex.Chat.Store.Profiles import Simplex.Chat.Types (AgentUserId (..), Profile (..)) +import Simplex.Messaging.Agent.Client (AgentClient (..)) +import Simplex.Messaging.Agent.Env.SQLite (AgentConfig (..), Env (..)) import Simplex.Messaging.Agent.Store.Shared (MigrationConfig (..), MigrationConfirmation (..)) import qualified Simplex.Messaging.Agent.Store.SQLite.DB as DB import qualified Simplex.Messaging.Crypto as C @@ -65,6 +67,7 @@ mobileTests = do setForeignEncoding utf8 it "start new chat without user" testChatApiNoUser it "start new chat with existing user" testChatApi + it "should set queue size via C API" testChatMigrateInitQueueCApi it "should encrypt/decrypt WebRTC frames" testMediaApi it "should encrypt/decrypt WebRTC frames via C API" testMediaCApi describe "should read/write encrypted files via C API" $ do @@ -165,6 +168,22 @@ testChatApi ps = do chatParseMarkdown "hello" `shouldBe` "{}" chatParseMarkdown "*hello*" `shouldBe` parsedMarkdown +testChatMigrateInitQueueCApi :: TestParams -> IO () +testChatMigrateInitQueueCApi ps = do + cPath <- newCString $ tmpPath ps "1" + cKey <- newCString "" + cConfirm <- newCString "yesUp" + alloca $ \ctrlPtr -> do + let migrateInit queueSize = peekCAString =<< cChatMigrateInitQueue cPath cKey cConfirm queueSize ctrlPtr + migrateInit 0 `shouldReturn` jsonStr DBMInvalidQueueSize + migrateInit (-1) `shouldReturn` jsonStr DBMInvalidQueueSize + migrateInit 65536 `shouldReturn` jsonStr DBMOk + ChatController {config = ChatConfig {tbqSize}, smpAgent = AgentClient {agentEnv = Env {config = AgentConfig {tbqSize = agentQSize}}}} <- deRefStablePtr =<< peek ctrlPtr + tbqSize `shouldBe` 65536 + agentQSize `shouldBe` 65536 + where + jsonStr = LB.unpack . J.encode + testMediaApi :: HasCallStack => TestParams -> IO () testMediaApi ps = do let tmp = tmpPath ps From 683fd675550c9a29b2b8c94c475c81007ac06a2b Mon Sep 17 00:00:00 2001 From: sh <37271604+shumvgolove@users.noreply.github.com> Date: Sat, 19 Sep 2026 15:19:45 +0400 Subject: [PATCH 53/62] scripts: re-init submodules in reproduce builds (#7508) --- scripts/simplex-chat-reproduce-builds.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/simplex-chat-reproduce-builds.sh b/scripts/simplex-chat-reproduce-builds.sh index d0f121c6ea..5d18b226a8 100755 --- a/scripts/simplex-chat-reproduce-builds.sh +++ b/scripts/simplex-chat-reproduce-builds.sh @@ -148,8 +148,9 @@ for os_pair in ${oses}; do -t "${container_name}" \ sh -c 'rm -rf ./dist-newstyle ./apps/multiplatform' - # Also restore git to previous state + # Also restore git to previous state + re-initialize submodules git reset --hard && git clean -dfx + git submodule update --init --recursive # Stop containers, delete images docker stop "${container_name}" From faedb0328e3e5cc58f5f0f161ac91719f34ed56d Mon Sep 17 00:00:00 2001 From: Simplex Operations Date: Sat, 19 Sep 2026 11:39:26 +0000 Subject: [PATCH 54/62] core: 7.1.0.7 (simplexmq 7.1.0.8) --- cabal.project | 2 +- scripts/nix/sha256map.nix | 2 +- simplex-chat.cabal | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cabal.project b/cabal.project index 81a7dc7e6f..5e00d0764b 100644 --- a/cabal.project +++ b/cabal.project @@ -21,7 +21,7 @@ constraints: zip +disable-bzip2 +disable-zstd source-repository-package type: git location: https://github.com/simplex-chat/simplexmq.git - tag: ea43df2349f6d3dedd60d5e4aed21fd99316cad9 + tag: 900c45ffaee5eb7eef8ec9402bc4971e4eb7ef33 source-repository-package type: git diff --git a/scripts/nix/sha256map.nix b/scripts/nix/sha256map.nix index 64a6dce26f..926d6e8860 100644 --- a/scripts/nix/sha256map.nix +++ b/scripts/nix/sha256map.nix @@ -1,5 +1,5 @@ { - "https://github.com/simplex-chat/simplexmq.git"."ea43df2349f6d3dedd60d5e4aed21fd99316cad9" = "1jkh6zfyfxbx49s0pggina1yadk3zlb0ls5crgka6aiw1w25dxr0"; + "https://github.com/simplex-chat/simplexmq.git"."900c45ffaee5eb7eef8ec9402bc4971e4eb7ef33" = "1iygb9hkc86ky553jg5apc8vfbjj0lghjaywikc0m7h1yk7zibxg"; "https://github.com/simplex-chat/hs-socks.git"."a30cc7a79a08d8108316094f8f2f82a0c5e1ac51" = "0yasvnr7g91k76mjkamvzab2kvlb1g5pspjyjn2fr6v83swjhj38"; "https://github.com/simplex-chat/direct-sqlcipher.git"."f814ee68b16a9447fbb467ccc8f29bdd3546bfd9" = "1ql13f4kfwkbaq7nygkxgw84213i0zm7c1a8hwvramayxl38dq5d"; "https://github.com/simplex-chat/sqlcipher-simple.git"."a46bd361a19376c5211f1058908fc0ae6bf42446" = "1z0r78d8f0812kxbgsm735qf6xx8lvaz27k1a0b4a2m0sshpd5gl"; diff --git a/simplex-chat.cabal b/simplex-chat.cabal index 576ccf128e..f5fda29685 100644 --- a/simplex-chat.cabal +++ b/simplex-chat.cabal @@ -5,7 +5,7 @@ cabal-version: 1.12 -- see: https://github.com/sol/hpack name: simplex-chat -version: 7.1.0.6 +version: 7.1.0.7 category: Web, System, Services, Cryptography homepage: https://github.com/simplex-chat/simplex-chat#readme author: simplex.chat From 0183a36058b75632b0ff9591b1ec3746f109e97f Mon Sep 17 00:00:00 2001 From: Evgeny Date: Sat, 19 Sep 2026 14:16:39 +0100 Subject: [PATCH 55/62] ui: update text about badges (#7544) * ui: update text about badges * update * update * update * update * update * update * update kotlin --------- Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com> --- .../Views/Badges/BadgesHowItWorksView.swift | 9 ++++---- .../Views/Badges/BadgesRedeemCodeView.swift | 2 +- .../Badges/BadgesSupportSimplexView.swift | 4 ++-- .../Views/Badges/BadgesYourBadgeView.swift | 2 +- .../Views/Badges/BadgesYourLevelView.swift | 2 +- .../Views/Badges/SupportSimpleXBanner.swift | 2 +- .../Shared/Views/ChatList/ChatListView.swift | 6 +++--- .../views/badges/BadgesHowItWorksView.kt | 3 ++- .../commonMain/resources/MR/base/strings.xml | 21 ++++++++++--------- blog/20260919-simplex-supporter-badges.md | 2 +- 10 files changed, 28 insertions(+), 25 deletions(-) diff --git a/apps/ios/Shared/Views/Badges/BadgesHowItWorksView.swift b/apps/ios/Shared/Views/Badges/BadgesHowItWorksView.swift index bca1f7da40..5758ceb12c 100644 --- a/apps/ios/Shared/Views/Badges/BadgesHowItWorksView.swift +++ b/apps/ios/Shared/Views/Badges/BadgesHowItWorksView.swift @@ -14,7 +14,7 @@ struct BadgesHowItWorksView: View { var body: some View { VStack(alignment: .leading) { - Text("How private badges work") + Text("How badges protect your privacy") .font(.largeTitle) .bold() .foregroundColor(theme.colors.primary) @@ -22,9 +22,10 @@ struct BadgesHowItWorksView: View { .padding(.bottom, 16) ScrollView { VStack(alignment: .leading, spacing: 12) { - Text("A badge is not an account. It is a signed credential stored on your device. It does not identify you, and no one keeps a record of who holds which badge.") - Text("Your contacts see the badge and its expiry date, and nothing else. The badge carries no identifier, so it cannot be used to find out who you are or to match you across chats.") - Text("Payment and badge are kept apart. Paying is one step; the badge is issued in another, under a key that exists only for that badge. Whoever handles the payment cannot see where the badge ends up.") + Text("A badge is an anonymous credential stored in your profile on your device. This credential is never sent to anyone.") + Text("To prove to a contact or a server that you have a badge, the app generates a new proof that reveals only the badge type and the expiry date, rounded to a week.") + Text("Nobody can link two different proofs to each other or to the purchase.") + ExternalLink("Read more in our blog.", destination: URL(string: "https://simplex.chat/blog/20260919-simplex-supporter-badges.html")!) } .lineLimit(nil) .fixedSize(horizontal: false, vertical: true) diff --git a/apps/ios/Shared/Views/Badges/BadgesRedeemCodeView.swift b/apps/ios/Shared/Views/Badges/BadgesRedeemCodeView.swift index 16e1796e96..6ea0c58edb 100644 --- a/apps/ios/Shared/Views/Badges/BadgesRedeemCodeView.swift +++ b/apps/ios/Shared/Views/Badges/BadgesRedeemCodeView.swift @@ -80,7 +80,7 @@ struct BadgesRedeemCodeView: View { .multilineTextAlignment(.center) .fixedSize(horizontal: false, vertical: true) - Text("Paste the code from your receipt.") + Text("Paste the code you received.") .font(.body) .multilineTextAlignment(.center) .fixedSize(horizontal: false, vertical: true) diff --git a/apps/ios/Shared/Views/Badges/BadgesSupportSimplexView.swift b/apps/ios/Shared/Views/Badges/BadgesSupportSimplexView.swift index 2fc904197d..55d05f2615 100644 --- a/apps/ios/Shared/Views/Badges/BadgesSupportSimplexView.swift +++ b/apps/ios/Shared/Views/Badges/BadgesSupportSimplexView.swift @@ -29,7 +29,7 @@ struct BadgesSupportSimplexView: View { .multilineTextAlignment(.center) .fixedSize(horizontal: false, vertical: true) - Text("SimpleX doesn't sell ads or data. It's funded by its users and by investors who share the mission. You can support the project and show a badge on your profile.") + Text("Get a badge to send larger files (2-5GB) that stay available longer (7-21 days), and to show it on your profile.") .font(.body) .multilineTextAlignment(.center) .fixedSize(horizontal: false, vertical: true) @@ -110,7 +110,7 @@ struct BadgesSupportSimplexView: View { Button { howItWorksActive = true } label: { HStack(spacing: 4) { Image(systemName: "info.circle") - Text("How private badges work").fontWeight(.medium) + Text("How badges protect your privacy").fontWeight(.medium) } .font(.body) } diff --git a/apps/ios/Shared/Views/Badges/BadgesYourBadgeView.swift b/apps/ios/Shared/Views/Badges/BadgesYourBadgeView.swift index 59eeba7eac..5654d6e5aa 100644 --- a/apps/ios/Shared/Views/Badges/BadgesYourBadgeView.swift +++ b/apps/ios/Shared/Views/Badges/BadgesYourBadgeView.swift @@ -48,7 +48,7 @@ struct BadgesYourBadgeView: View { .modifier(ThemedBackground()) } label: { settingsRow("info.circle", color: theme.colors.secondary) { - Text("How private badges work") + Text("How badges protect your privacy") } } } diff --git a/apps/ios/Shared/Views/Badges/BadgesYourLevelView.swift b/apps/ios/Shared/Views/Badges/BadgesYourLevelView.swift index eb2396c655..d47bcaa0a7 100644 --- a/apps/ios/Shared/Views/Badges/BadgesYourLevelView.swift +++ b/apps/ios/Shared/Views/Badges/BadgesYourLevelView.swift @@ -162,7 +162,7 @@ struct BadgesYourLevelView: View { } label: { HStack(spacing: 4) { Image(systemName: "info.circle") - Text("How private badges work").fontWeight(.medium) + Text("How badges protect your privacy").fontWeight(.medium) } .font(.body) } diff --git a/apps/ios/Shared/Views/Badges/SupportSimpleXBanner.swift b/apps/ios/Shared/Views/Badges/SupportSimpleXBanner.swift index dad3bb1b0a..c2f6136d31 100644 --- a/apps/ios/Shared/Views/Badges/SupportSimpleXBanner.swift +++ b/apps/ios/Shared/Views/Badges/SupportSimpleXBanner.swift @@ -13,7 +13,7 @@ struct SupportSimpleXBanner: View { @EnvironmentObject var theme: AppTheme @Environment(\.colorScheme) var colorScheme: ColorScheme var title: LocalizedStringKey = "Support SimpleX" - var subtitle: LocalizedStringKey = "Get badge + files up to 5GB" + var subtitle: LocalizedStringKey = "Get badge + better files" let onTap: () -> Void let onDismiss: () -> Void diff --git a/apps/ios/Shared/Views/ChatList/ChatListView.swift b/apps/ios/Shared/Views/ChatList/ChatListView.swift index 61f29485a7..ab3ffdd191 100644 --- a/apps/ios/Shared/Views/ChatList/ChatListView.swift +++ b/apps/ios/Shared/Views/ChatList/ChatListView.swift @@ -387,7 +387,7 @@ struct ChatListView: View { } private func showSupportEndedDismissAlert() { - showAlert(NSLocalizedString("Support ended", comment: "alert title")) { + showAlert(NSLocalizedString("Your badge expired", comment: "alert title")) { [ UIAlertAction(title: NSLocalizedString("Remind me later", comment: "alert button"), style: .default) { _ in Task { await ackBadgeAlert(snooze: true) } @@ -464,8 +464,8 @@ struct ChatListView: View { // one slot: a badge the user paid for ending outranks the pitch to get one if supportEnded, let alert = badgeModel.alert { SupportSimpleXBanner( - title: "Support ended", - subtitle: "Your support ended on \(alert.dateText).", + title: "Your badge expired", + subtitle: "Your badge expired on \(alert.dateText).", onTap: { showBadgesSheet = true }, onDismiss: showSupportEndedDismissAlert ) diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesHowItWorksView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesHowItWorksView.kt index 7c16bee763..cb300b183d 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesHowItWorksView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesHowItWorksView.kt @@ -10,9 +10,9 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import dev.icerock.moko.resources.compose.stringResource import chat.simplex.common.platform.ColumnWithScrollBar +import chat.simplex.common.views.onboarding.ReadableTextWithLink import chat.simplex.res.MR -// TODO [badges]: replace lorem ipsum with the real copy once the badge protocol and privacy properties are documented. @Composable fun BadgesHowItWorksView() { ColumnWithScrollBar( @@ -30,5 +30,6 @@ fun BadgesHowItWorksView() { Text(stringResource(MR.strings.badges_how_it_works_p1), style = MaterialTheme.typography.body1) Text(stringResource(MR.strings.badges_how_it_works_p2), style = MaterialTheme.typography.body1) Text(stringResource(MR.strings.badges_how_it_works_p3), style = MaterialTheme.typography.body1) + ReadableTextWithLink(MR.strings.badges_how_it_works_read_more_with_link, "https://simplex.chat/blog/20260919-simplex-supporter-badges.html") } } diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/base/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/base/strings.xml index e310834fda..f305ffc13f 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/base/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/base/strings.xml @@ -3159,19 +3159,20 @@ Ends on %1$s. Your level Support SimpleX - SimpleX doesn\'t sell ads or data. It\'s funded by its users and by investors who share the mission. You can support the project and show a badge on your profile. + Get a badge to send larger files (2-5GB) that stay available longer (7-21 days), and to show it on your profile. Why SimpleX is built. Choose your level Redeem badge code Continue - How private badges work - How private badges work - A badge is not an account. It is a signed credential stored on your device. It does not identify you, and no one keeps a record of who holds which badge. - Your contacts see the badge and its expiry date, and nothing else. The badge carries no identifier, so it cannot be used to find out who you are or to match you across chats. - Payment and badge are kept apart. Paying is one step; the badge is issued in another, under a key that exists only for that badge. Whoever handles the payment cannot see where the badge ends up. + How badges protect your privacy + How badges protect your privacy + A badge is an anonymous credential stored in your profile on your device. This credential is never sent to anyone. + To prove to a contact or a server that you have a badge, the app generates a new proof that reveals only the badge type and the expiry date, rounded to a week. + Nobody can link two different proofs to each other or to the purchase. + our blog.]]> My nickname Support SimpleX - Get badge + files up to 5GB + Get badge + better files You can support SimpleX later in Settings. Purchase successful Purchase pending @@ -3179,7 +3180,7 @@ Purchase error Get your code Redeem code - Paste the code from your receipt. + Paste the code you received. SB-XXXXX-XXXXX-XXXXX-XXXXX Redeem Cannot redeem code @@ -3197,12 +3198,12 @@ The code could not be redeemed. The code you scanned is not a badge code. Your badge - Support ended + Your badge expired shown on your profile Ends Prepaid months have no billing date. The badge is reissued each month from the balance you already paid for, and ends when it runs out. Investor - Your support ended on %1$s. + Your badge expired on %1$s. Remind me later Dismiss Credential diff --git a/blog/20260919-simplex-supporter-badges.md b/blog/20260919-simplex-supporter-badges.md index bd2774404b..ebe19ef431 100644 --- a/blog/20260919-simplex-supporter-badges.md +++ b/blog/20260919-simplex-supporter-badges.md @@ -20,7 +20,7 @@ You can now support SimpleX Chat and get a supporter badge, larger files and lon A supporter badge is shown on your profile to your contacts, group members and channel subscribers. With a badge you can send files up to 2GB, or 5GB with a legend badge, instead of 1GB, and servers keep your files for longer — 7 days with a supporter badge and 21 days with a legend badge. -A badge is a credential stored in your profile on your device. The credential itself is not sent to anyone: to show the badge to a contact or to present it to a server, the app generates a new zero-knowledge proof that reveals only the badge type and the expiry date, and no two proofs can be linked to each other or to the purchase, by the badge service, your contacts or servers. Credentials are issued for one month at a time, and all badges expire on the same day of the week, so a badge places you among all supporters of that week and nothing more. +A badge is an anonymous credential stored in your profile on your device. The credential itself is not sent to anyone: to show the badge to a contact or to present it to a server, the app generates a new zero-knowledge proof that reveals only the badge type and the expiry date, and no two proofs can be linked to each other or to the purchase, by the badge service, your contacts or servers. Credentials are issued for one month at a time, and all badges expire on the same day of the week, so a badge places you among all supporters of that week and nothing more. This is only possible because the network has no user identifiers — in other messengers a paid feature is attached to the account, so the operator knows who paid and what they do with the feature. From 3326f9db2a4a833bb40b4f00aa62f4c639eb0358 Mon Sep 17 00:00:00 2001 From: SimpleX Chat Date: Sat, 19 Sep 2026 13:21:07 +0000 Subject: [PATCH 56/62] 7.1-beta.4: android 379, desktop 162, ios 357 --- apps/ios/SimpleX.xcodeproj/project.pbxproj | 36 +++++++++---------- apps/multiplatform/gradle.properties | 8 ++--- .../types/typescript/package.json | 2 +- packages/simplex-chat-nodejs/package.json | 4 +-- .../simplex-chat-nodejs/src/download-libs.js | 2 +- .../src/simplex_chat/_version.py | 4 +-- 6 files changed, 28 insertions(+), 28 deletions(-) diff --git a/apps/ios/SimpleX.xcodeproj/project.pbxproj b/apps/ios/SimpleX.xcodeproj/project.pbxproj index 505552647b..dfab20ec8a 100644 --- a/apps/ios/SimpleX.xcodeproj/project.pbxproj +++ b/apps/ios/SimpleX.xcodeproj/project.pbxproj @@ -192,8 +192,8 @@ 64C3B0212A0D359700E19930 /* CustomTimePicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64C3B0202A0D359700E19930 /* CustomTimePicker.swift */; }; 64C8299D2D54AEEE006B9E89 /* libgmp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C829982D54AEED006B9E89 /* libgmp.a */; }; 64C8299E2D54AEEE006B9E89 /* libffi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C829992D54AEEE006B9E89 /* libffi.a */; }; - 64C8299F2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.6-ErPlbJcf1H358Yh01XLorw-ghc9.6.3.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C8299A2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.6-ErPlbJcf1H358Yh01XLorw-ghc9.6.3.a */; }; - 64C829A02D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.6-ErPlbJcf1H358Yh01XLorw.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C8299B2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.6-ErPlbJcf1H358Yh01XLorw.a */; }; + 64C8299F2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.7-KLlSPSHmTF28mDmnoCMp3f-ghc9.6.3.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C8299A2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.7-KLlSPSHmTF28mDmnoCMp3f-ghc9.6.3.a */; }; + 64C829A02D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.7-KLlSPSHmTF28mDmnoCMp3f.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C8299B2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.7-KLlSPSHmTF28mDmnoCMp3f.a */; }; 64C829A12D54AEEE006B9E89 /* libgmpxx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64C8299C2D54AEEE006B9E89 /* libgmpxx.a */; }; 64D0C2C029F9688300B38D5F /* UserAddressView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64D0C2BF29F9688300B38D5F /* UserAddressView.swift */; }; 64D0C2C229FA57AB00B38D5F /* UserAddressLearnMore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64D0C2C129FA57AB00B38D5F /* UserAddressLearnMore.swift */; }; @@ -584,8 +584,8 @@ 64C3B0202A0D359700E19930 /* CustomTimePicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomTimePicker.swift; sourceTree = ""; }; 64C829982D54AEED006B9E89 /* libgmp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmp.a; sourceTree = ""; }; 64C829992D54AEEE006B9E89 /* libffi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libffi.a; sourceTree = ""; }; - 64C8299A2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.6-ErPlbJcf1H358Yh01XLorw-ghc9.6.3.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-7.1.0.6-ErPlbJcf1H358Yh01XLorw-ghc9.6.3.a"; sourceTree = ""; }; - 64C8299B2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.6-ErPlbJcf1H358Yh01XLorw.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-7.1.0.6-ErPlbJcf1H358Yh01XLorw.a"; sourceTree = ""; }; + 64C8299A2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.7-KLlSPSHmTF28mDmnoCMp3f-ghc9.6.3.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-7.1.0.7-KLlSPSHmTF28mDmnoCMp3f-ghc9.6.3.a"; sourceTree = ""; }; + 64C8299B2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.7-KLlSPSHmTF28mDmnoCMp3f.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-7.1.0.7-KLlSPSHmTF28mDmnoCMp3f.a"; sourceTree = ""; }; 64C8299C2D54AEEE006B9E89 /* libgmpxx.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmpxx.a; sourceTree = ""; }; 64D0C2BF29F9688300B38D5F /* UserAddressView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserAddressView.swift; sourceTree = ""; }; 64D0C2C129FA57AB00B38D5F /* UserAddressLearnMore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserAddressLearnMore.swift; sourceTree = ""; }; @@ -758,8 +758,8 @@ 64C8299D2D54AEEE006B9E89 /* libgmp.a in Frameworks */, 64C8299E2D54AEEE006B9E89 /* libffi.a in Frameworks */, 64C829A12D54AEEE006B9E89 /* libgmpxx.a in Frameworks */, - 64C8299F2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.6-ErPlbJcf1H358Yh01XLorw-ghc9.6.3.a in Frameworks */, - 64C829A02D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.6-ErPlbJcf1H358Yh01XLorw.a in Frameworks */, + 64C8299F2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.7-KLlSPSHmTF28mDmnoCMp3f-ghc9.6.3.a in Frameworks */, + 64C829A02D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.7-KLlSPSHmTF28mDmnoCMp3f.a in Frameworks */, CE38A29C2C3FCD72005ED185 /* SwiftyGif in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -846,8 +846,8 @@ 64C829992D54AEEE006B9E89 /* libffi.a */, 64C829982D54AEED006B9E89 /* libgmp.a */, 64C8299C2D54AEEE006B9E89 /* libgmpxx.a */, - 64C8299A2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.6-ErPlbJcf1H358Yh01XLorw-ghc9.6.3.a */, - 64C8299B2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.6-ErPlbJcf1H358Yh01XLorw.a */, + 64C8299A2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.7-KLlSPSHmTF28mDmnoCMp3f-ghc9.6.3.a */, + 64C8299B2D54AEEE006B9E89 /* libHSsimplex-chat-7.1.0.7-KLlSPSHmTF28mDmnoCMp3f.a */, ); path = Libraries; sourceTree = ""; @@ -2135,7 +2135,7 @@ CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES; CODE_SIGN_ENTITLEMENTS = "SimpleX (iOS).entitlements"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 356; + CURRENT_PROJECT_VERSION = 357; DEAD_CODE_STRIPPING = YES; DEVELOPMENT_TEAM = 5NN7GUYB6T; ENABLE_BITCODE = NO; @@ -2185,7 +2185,7 @@ CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES; CODE_SIGN_ENTITLEMENTS = "SimpleX (iOS).entitlements"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 356; + CURRENT_PROJECT_VERSION = 357; DEAD_CODE_STRIPPING = YES; DEVELOPMENT_TEAM = 5NN7GUYB6T; ENABLE_BITCODE = NO; @@ -2227,7 +2227,7 @@ buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 356; + CURRENT_PROJECT_VERSION = 357; DEVELOPMENT_TEAM = 5NN7GUYB6T; GENERATE_INFOPLIST_FILE = YES; IPHONEOS_DEPLOYMENT_TARGET = 15.0; @@ -2247,7 +2247,7 @@ buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 356; + CURRENT_PROJECT_VERSION = 357; DEVELOPMENT_TEAM = 5NN7GUYB6T; GENERATE_INFOPLIST_FILE = YES; IPHONEOS_DEPLOYMENT_TARGET = 15.0; @@ -2272,7 +2272,7 @@ CODE_SIGN_ENTITLEMENTS = "SimpleX NSE/SimpleX NSE.entitlements"; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 356; + CURRENT_PROJECT_VERSION = 357; DEVELOPMENT_TEAM = 5NN7GUYB6T; ENABLE_BITCODE = NO; GCC_OPTIMIZATION_LEVEL = s; @@ -2309,7 +2309,7 @@ CODE_SIGN_ENTITLEMENTS = "SimpleX NSE/SimpleX NSE.entitlements"; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 356; + CURRENT_PROJECT_VERSION = 357; DEVELOPMENT_TEAM = 5NN7GUYB6T; ENABLE_BITCODE = NO; ENABLE_CODE_COVERAGE = NO; @@ -2346,7 +2346,7 @@ CLANG_TIDY_BUGPRONE_REDUNDANT_BRANCH_CONDITION = YES; CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 356; + CURRENT_PROJECT_VERSION = 357; DEFINES_MODULE = YES; DEVELOPMENT_TEAM = 5NN7GUYB6T; DYLIB_COMPATIBILITY_VERSION = 1; @@ -2397,7 +2397,7 @@ CLANG_TIDY_BUGPRONE_REDUNDANT_BRANCH_CONDITION = YES; CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 356; + CURRENT_PROJECT_VERSION = 357; DEFINES_MODULE = YES; DEVELOPMENT_TEAM = 5NN7GUYB6T; DYLIB_COMPATIBILITY_VERSION = 1; @@ -2451,7 +2451,7 @@ CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; CODE_SIGN_ENTITLEMENTS = "SimpleX SE/SimpleX SE.entitlements"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 356; + CURRENT_PROJECT_VERSION = 357; DEVELOPMENT_TEAM = 5NN7GUYB6T; ENABLE_USER_SCRIPT_SANDBOXING = YES; GCC_C_LANGUAGE_STANDARD = gnu17; @@ -2485,7 +2485,7 @@ CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; CODE_SIGN_ENTITLEMENTS = "SimpleX SE/SimpleX SE.entitlements"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 356; + CURRENT_PROJECT_VERSION = 357; DEVELOPMENT_TEAM = 5NN7GUYB6T; ENABLE_USER_SCRIPT_SANDBOXING = YES; GCC_C_LANGUAGE_STANDARD = gnu17; diff --git a/apps/multiplatform/gradle.properties b/apps/multiplatform/gradle.properties index b7807cb4c0..b8975d80f8 100644 --- a/apps/multiplatform/gradle.properties +++ b/apps/multiplatform/gradle.properties @@ -24,11 +24,11 @@ android.nonTransitiveRClass=true kotlin.mpp.androidSourceSetLayoutVersion=2 kotlin.jvm.target=11 -android.version_name=7.1-beta.3 -android.version_code=378 +android.version_name=7.1-beta.4 +android.version_code=379 -desktop.version_name=7.1-beta.3 -desktop.version_code=161 +desktop.version_name=7.1-beta.4 +desktop.version_code=162 kotlin.version=2.1.20 gradle.plugin.version=8.7.0 diff --git a/packages/simplex-chat-client/types/typescript/package.json b/packages/simplex-chat-client/types/typescript/package.json index 7fdad94741..4d353cbdae 100644 --- a/packages/simplex-chat-client/types/typescript/package.json +++ b/packages/simplex-chat-client/types/typescript/package.json @@ -1,6 +1,6 @@ { "name": "@simplex-chat/types", - "version": "0.11.3", + "version": "0.11.4", "description": "TypeScript types for SimpleX Chat bot libraries", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/packages/simplex-chat-nodejs/package.json b/packages/simplex-chat-nodejs/package.json index 0960334edc..f405be260d 100644 --- a/packages/simplex-chat-nodejs/package.json +++ b/packages/simplex-chat-nodejs/package.json @@ -1,6 +1,6 @@ { "name": "simplex-chat", - "version": "7.1.0-beta.3", + "version": "7.1.0-beta.4", "main": "dist/index.js", "types": "dist/index.d.ts", "files": [ @@ -24,7 +24,7 @@ "docs": "typedoc" }, "dependencies": { - "@simplex-chat/types": "^0.11.3", + "@simplex-chat/types": "^0.11.4", "extract-zip": "^2.0.1", "fast-deep-equal": "^3.1.3", "node-addon-api": "^8.5.0" diff --git a/packages/simplex-chat-nodejs/src/download-libs.js b/packages/simplex-chat-nodejs/src/download-libs.js index e0debebea8..cb92699e69 100644 --- a/packages/simplex-chat-nodejs/src/download-libs.js +++ b/packages/simplex-chat-nodejs/src/download-libs.js @@ -4,7 +4,7 @@ const path = require('path'); const extract = require('extract-zip'); const GITHUB_REPO = 'simplex-chat/simplex-chat-libs'; -const RELEASE_TAG = 'v7.1.0-beta.3'; +const RELEASE_TAG = 'v7.1.0-beta.4'; const BACKEND = (process.env.SIMPLEX_BACKEND || process.env.npm_config_simplex_backend || 'sqlite').toLowerCase(); // A locally built libsimplex, copied into libs/ rather than loaded in place: // the addon's RUNPATH is $ORIGIN/../../libs. diff --git a/packages/simplex-chat-python/src/simplex_chat/_version.py b/packages/simplex-chat-python/src/simplex_chat/_version.py index e3f2fa5338..9c60a54bb1 100644 --- a/packages/simplex-chat-python/src/simplex_chat/_version.py +++ b/packages/simplex-chat-python/src/simplex_chat/_version.py @@ -5,5 +5,5 @@ Bump both together for normal releases. For wrapper-only fixes use a PEP 440 post-release: __version__ = "6.5.2.post1", LIBS_VERSION unchanged. """ -__version__ = "7.1.0b3" # PEP 440 — read by hatchling for wheel metadata -LIBS_VERSION = "7.1.0-beta.3" # simplex-chat-libs release tag (no 'v' prefix) +__version__ = "7.1.0b4" # PEP 440 — read by hatchling for wheel metadata +LIBS_VERSION = "7.1.0-beta.4" # simplex-chat-libs release tag (no 'v' prefix) From 6075021aa128ed7c065f0a98269379272c4d701b Mon Sep 17 00:00:00 2001 From: Evgeny Poberezkin Date: Sat, 19 Sep 2026 22:43:19 +0100 Subject: [PATCH 57/62] blog: update image --- blog/images/20260919-badge-screen.png | Bin 320087 -> 315435 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/blog/images/20260919-badge-screen.png b/blog/images/20260919-badge-screen.png index c4a7994e957a152771e37c9a213d2cfe91d82973..beece83da62c0428548175b5701e445f5f26bd9c 100644 GIT binary patch literal 315435 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 z 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

      v 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

      M#kd9ly( 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

      I1f7Uv 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 From 5ff4c89f046f8296863ffc017927ff789b9172a9 Mon Sep 17 00:00:00 2001 From: Evgeny Date: Sun, 20 Sep 2026 21:20:29 +0100 Subject: [PATCH 58/62] website: update cf page (#7549) * website: update cf page * tooltip * mobile * landscape * update user count --------- Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com> --- website/src/crowdfunding.html | 386 ++++++++++++++++++++++++++++++++-- 1 file changed, 365 insertions(+), 21 deletions(-) diff --git a/website/src/crowdfunding.html b/website/src/crowdfunding.html index 1f87477b3c..f2f8a6ab3d 100644 --- a/website/src/crowdfunding.html +++ b/website/src/crowdfunding.html @@ -64,7 +64,7 @@ templateEngineOverride: njk --cf-area-off: calc((var(--sec-h) - 100svh) / 2); } - @media screen and (max-width: 959px) { + @media screen and (max-width: 959px) and (orientation: portrait) { :root { --cf-grad-light: linear-gradient(30deg, #e8f3ff 0%, #c0e2ff 40%, #e9ffff 80%, #ffefd6 90%); --cf-grad-dark: linear-gradient(30deg, #000000 0%, #131d49 52%, #3f5598 65%, #c3faff 85%, #fff6e0 90%); @@ -193,11 +193,12 @@ templateEngineOverride: njk margin-top: calc(var(--sec-vhu) * 3); max-width: calc(var(--sec-vwu) * 40); } + .cf-hero .lead-short { display: none; } .cf-stats { display: flex; gap: calc(var(--sec-vwu) * 5); - margin-top: calc(var(--sec-vhu) * 6); + margin-top: calc(var(--sec-vhu) * 4.67); position: relative; top: calc(var(--sec-vhu) * 2); } @@ -218,6 +219,61 @@ templateEngineOverride: njk color: #dfeaff; } + .cf-hero-offer { + position: relative; + margin-top: calc(var(--sec-vhu) * 6.3); + width: calc(var(--sec-vwu) * 56); + } + .cf-hero-offer p { font-family: "Manrope", sans-serif; } + .cf-hero-offer .cf-offer-lead { + font-weight: 600; + font-size: calc(var(--sec-vwu) * 2.1); + line-height: 1.4; + color: #ffffff; + font-variant-numeric: tabular-nums; + } + .cf-hero-offer .cf-offer-lead b { + font-weight: 700; + background: linear-gradient(90deg, #019bfe 0%, #64fdff 58%, #c8feff 100%); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; + color: transparent; + } + .cf-hero-offer .cf-offer-lead span { white-space: nowrap; } + .cf-hero-offer .cf-offer-terms { + font-weight: 300; + font-size: calc(var(--sec-vwu) * 1.55); + line-height: 1.55; + color: #dfeaff; + margin-top: calc(var(--sec-vhu) * 0.4); + } + .cf-hero-offer .cf-offer-terms a { position: relative; color: inherit; text-decoration: none; } + .cf-hero-offer .cf-offer-terms abbr { text-decoration: underline dotted; text-underline-offset: 3px; cursor: pointer; } + .cf-hero-offer .cf-offer-terms a::after { + content: attr(data-tip); + position: absolute; + left: calc(100% + 12px); + top: 50%; + transform: translateY(-50%); + white-space: nowrap; + padding: 7px 12px; + border-radius: 8px; + border: 1px solid rgba(255, 255, 255, .18); + background: rgba(5, 9, 32, .96); + color: #dfeaff; + font-family: "Manrope", sans-serif; + font-weight: 400; + font-size: calc(var(--sec-vwu) * 1.1); + line-height: 1.4; + opacity: 0; + visibility: hidden; + transition: opacity .12s ease; + pointer-events: none; + } + .cf-hero-offer .cf-offer-terms a:hover::after, + .cf-hero-offer .cf-offer-terms a:focus-visible::after { opacity: 1; visibility: visible; } + /* ---- close: same left-aligned layout as the hero ---- */ .cf-close .area { position: relative; display: flex; align-items: flex-end; padding: 0 calc(var(--sec-vwu) * 7.5) calc(var(--sec-vhu) * 22) 0; } @@ -376,7 +432,7 @@ templateEngineOverride: njk .cf-pill svg { height: 30px; width: auto; display: block; transform: translateY(-3.5px); } - @media screen and (min-width: 960px) { + @media screen and (min-width: 960px), screen and (max-width: 959px) and (orientation: landscape) { .cf-pill { width: 252px; justify-content: center; } } @@ -386,7 +442,7 @@ templateEngineOverride: njk .cf-cta-link:hover, .cf .text-container a.gradient-text:hover { filter: brightness(1.12); } - @media screen and (min-width: 960px) { + @media screen and (min-width: 960px), screen and (max-width: 959px) and (orientation: landscape) { .cf-network .text-container h2 { max-width: calc(var(--sec-vwu) * 23.5) !important; } .cf-network .text-container p { max-width: calc(var(--sec-vwu) * 31) !important; } .cf-network .text-container a { max-width: calc(var(--sec-vwu) * 31) !important; } @@ -426,7 +482,7 @@ templateEngineOverride: njk #navbar.on-light > a.logo.logo-light { display: flex; } #navbar.on-light > a.logo.logo-dark { display: none; } - @media screen and (min-width: 960px) { + @media screen and (min-width: 960px), screen and (max-width: 959px) and (orientation: landscape) { header#navbar { height: 74px; } header#navbar > a.logo { top: 0; @@ -446,15 +502,17 @@ templateEngineOverride: njk opacity: 1 !important; transform: none !important; background: transparent !important; - height: 54px !important; } + } + @media screen and (max-width: 959px) and (orientation: portrait) { + header#navbar { height: 54px !important; } header#navbar > a.logo { top: 0 !important; height: 100% !important; align-items: center; transform: translateY(var(--cf-nav-shift)); } [dir="ltr"] header#navbar > a.logo { padding-left: var(--cf-text-pad); } header#navbar > a.logo img { height: 31.5px; } } /* ---- mobile: portrait art on top, text at the bottom (home page system) ---- */ - @media screen and (max-width: 959px) { + @media screen and (max-width: 959px) and (orientation: portrait) { .cf .text-container h2 { font-size: calc(var(--sec-vwu) * 9.4); } .cf .text-container { margin-left: 0 !important; @@ -596,12 +654,12 @@ templateEngineOverride: njk --cf-phone-h: calc(var(--cf-phone-w) / 0.4914); --cf-phone-part: 0.55; /* bottom of the hero text block, measured from the section top */ - --cf-hero-text-b: calc(var(--cf-top-base) + max(0px, calc(-1 * var(--cf-area-off))) + 78.5vw); + --cf-hero-text-b: calc(var(--cf-top-base) + max(0px, calc(-1 * var(--cf-area-off))) + 76.7vw); /* the arc crest starts 0.2678 down the cover image, which is 2.349 phone widths tall and sits 0.4034 phone heights above the phone top: the phone may rise no higher than this */ --cf-phone-ceiling: calc(var(--cf-hero-text-b) + var(--cf-phone-w) * 0.1917); - --cf-phone-show: max(calc(var(--cf-phone-h) * 0.15), min(calc(var(--cf-phone-h) * var(--cf-phone-part)), calc(100svh - var(--cf-phone-ceiling)))); + --cf-phone-show: max(52vw, min(calc(var(--cf-phone-h) * var(--cf-phone-part)), calc(100svh - var(--cf-phone-ceiling)))); --cf-phone-top: calc(100svh - var(--cf-phone-show) + var(--cf-area-off)); --cf-fade-ext: max(0px, calc(110lvh - 100svh)); /* dvh so the fade rides with the button as the chrome moves */ @@ -623,8 +681,10 @@ templateEngineOverride: njk .cf-hero h1, .cf-hero .lead, .cf-hero .cf-stats { position: relative; z-index: 4; } - .cf-hero h1 { font-size: calc(var(--sec-vwu) * 9.7); } + .cf-hero h1 { font-size: calc(var(--sec-vwu) * 8.54); } .cf-hero .lead { font-size: calc(var(--sec-vwu) * 3.55); max-width: none; margin-top: calc(var(--sec-vhu) * 2); } + .cf-hero .lead:not(.lead-short) { display: none; } + .cf-hero .lead-short { display: block; font-size: calc(var(--sec-vwu) * 4.5); white-space: nowrap; } .cf-close .area { padding: calc(var(--cf-top) + var(--sec-vhu) * 14) var(--cf-gutter) 0; } /* crest a fixed 78px from the section top */ section.page.cf.cf-close { @@ -652,6 +712,19 @@ templateEngineOverride: njk } .cf-close-offer p { font-size: calc(var(--sec-vwu) * 3.6); } .cf-stats { top: 0; gap: calc(var(--sec-vwu) * 8); margin-top: calc(var(--sec-vhu) * 3); } + .cf-hero .cf-hero-offer { + position: relative; + top: 0; + width: auto; + z-index: 4; + margin-top: calc(var(--sec-vhu) * 2); + padding: 10px var(--cf-text-pad) 12px; + margin-left: calc(-1 * var(--cf-gutter)); + margin-right: calc(-1 * var(--cf-gutter)); + background: linear-gradient(to bottom, rgba(2, 7, 29, 0) 0%, rgba(2, 7, 29, var(--cf-offer-veil, 0)) 22%, rgba(2, 7, 29, var(--cf-offer-veil, 0)) 78%, rgba(2, 7, 29, 0) 100%); + } + .cf-hero-offer .cf-offer-lead { font-size: calc(var(--sec-vwu) * 4.2); line-height: 1.3; white-space: nowrap; } + .cf-hero-offer .cf-offer-terms { font-size: calc(var(--sec-vwu) * 4); margin-top: calc(var(--sec-vhu) * 0.8); } .cf-stat img { width: calc(var(--sec-vwu) * 8); } .cf-stat b { font-size: calc(var(--sec-vwu) * 6.5); } .cf-stat span { font-size: calc(var(--sec-vwu) * 3.4); } @@ -743,21 +816,21 @@ templateEngineOverride: njk .cf-tag .n { font-weight: 700; font-size: calc(var(--sec-vwu) * 1.5); line-height: 1.35; } .cf-tag .v { font-weight: 500; font-size: calc(var(--sec-vwu) * 1.2); line-height: 1.45; } .cf-tag .v b { font-weight: 700; } - @media screen and (min-width: 960px) { + @media screen and (min-width: 960px), screen and (max-width: 959px) and (orientation: landscape) { .cf-tags-art, .cf-art { display: none; } } - @media screen and (max-width: 959px) { + @media screen and (max-width: 959px) and (orientation: portrait) { .cf-tag .n { font-size: 3.54cqh; line-height: 1.3; } } /* 320pt phones: keep the headline at three lines */ - @media screen and (max-width: 330px) { - .cf-hero h1 { font-size: calc(var(--sec-vwu) * 9.3); } + @media screen and (max-width: 330px) and (orientation: portrait) { + .cf-hero h1 { font-size: calc(var(--sec-vwu) * 8.18); } } /* narrow phones: keep the corner link clear of the logo */ - @media screen and (max-width: 389px) { + @media screen and (max-width: 389px) and (orientation: portrait) { header#navbar > a.logo img { height: 24px; } .cf-hero-corner { height: 40px; } .cf-tag .v { font-size: 2.96cqh; line-height: 1.4; } @@ -787,7 +860,7 @@ templateEngineOverride: njk .cf-fine-links a { color: #9fb2d8; text-decoration: none; } .cf-fine-links a:hover { color: #ffffff; } - @media screen and (max-width: 959px) { + @media screen and (max-width: 959px) and (orientation: portrait) { /* padding-bottom comes from .safari-ios section.page, which a fit-content footer does not need */ section.page.cf.cf-footer { height: fit-content; min-height: fit-content; padding-bottom: 0; } @@ -917,11 +990,73 @@ templateEngineOverride: njk .cf-modal-panel h2 { font-size: 1.4rem; } } /* 320pt phones: the card's text column is narrower than the submit label */ - @media screen and (max-width: 389px) { + @media screen and (max-width: 389px) and (orientation: portrait) { .cf-modal { padding: 24px 12px; } .cf-modal-panel { padding: 28px 20px; } .cf-form-submit { padding: 0 12px; font-size: 15px; } } + @media screen and (max-width: 959px) and (orientation: landscape) { + :root { + --cover-bg-w: calc(min((3200 / 1920) * 100vw, (3200 / 1080) * 100svh)); + --cover-bg-h: calc(min((1800 / 1920) * 100vw, (1800 / 1080) * 100svh)); + --sec-w: calc(min((1920 / 1920) * 100vw, (1920 / 1080) * 100svh)); + --sec-h: calc(min((1080 / 1920) * 100vw, (1080 / 1080) * 100svh)); + --sec-vwu: calc(var(--sec-w) / 100); + --sec-vhu: calc(var(--sec-h) / 100); + } + html { scroll-snap-type: none; } + section.page.cf:not(.cf-footer), + html.safari-ios section.page.cf:not(.cf-footer), + html.chrome-ios section.page.cf:not(.cf-footer), + html.chrome-android section.page.cf:not(.cf-footer), + html.safari-ios section.page.cf.cf-current:not(.cf-footer), + html.chrome-ios section.page.cf.cf-current:not(.cf-footer) { + height: auto; + min-height: 100dvh; + margin-top: 0; + padding: 74px 0 0; + align-items: flex-start; + } + section.page.cf .area { + height: auto; + min-height: calc(100dvh - 74px); + } + .page .text-container { + height: auto; + min-height: calc(100dvh - 74px); + padding-top: calc(var(--sec-vhu) * 3); + padding-bottom: calc(var(--sec-vhu) * 3); + } + .page .text-container { + justify-content: center; + gap: calc(var(--sec-vhu) * 3.25); + margin-right: calc(var(--sec-vwu) * 7.5) !important; + margin-left: calc(var(--sec-vwu) * 7.5) !important; + padding-bottom: 0; + max-width: none !important; + } + .cf-right .text-container { margin-left: auto !important; } + .cf-left .text-container { margin-right: auto !important; } + .page .text-container h2 { font-size: calc(var(--sec-vwu) * 4.94); line-height: 1.05; } + .page .text-container p { font-weight: 200; font-size: calc(var(--sec-vwu) * 1.62); } + .page .text-container p span { font-weight: 500; } + .page .text-container a { font-weight: 200; font-size: calc(var(--sec-vwu) * 1.62); } + .cf-hero h1 { font-size: calc(var(--sec-vwu) * 4.4); } + .cf-hero .lead:not(.lead-short) { display: none; } + .cf-hero .lead-short { display: block; margin-top: calc(var(--sec-vhu) * 2); } + .cf-hero .cf-hero-cta { margin-top: calc(var(--sec-vhu) * 3); } + .cf-hero .cf-stats { margin-top: calc(var(--sec-vhu) * 3); } + .cf-hero .area { + align-items: center; + padding: calc(var(--sec-vhu) * 2) 0 calc(var(--sec-vhu) * 6); + } + .cf-phone { top: calc(var(--sec-vhu) * 27.1); bottom: auto; } + section.page.cf.cf-hero, + section.page.cf.cf-close { + background-position: calc(50% + var(--sec-vwu) * 40.3) calc(74px + var(--sec-h) / 2 + var(--sec-vhu) * 2.2 - var(--cover-bg-h) / 2); + } + .cf-close .area { padding-bottom: calc(var(--sec-vhu) * 8); } + } @@ -945,6 +1080,7 @@ templateEngineOverride: njk

      + @@ -973,8 +1113,8 @@ templateEngineOverride: njk
      -

      480,000+ users with zero marketing spend

      -

      Hundreds of user posts, podcasts and videos and $650,000 in user donations, before any paid features.

      +

      520,000
      monthly users

      +

      Grown with zero marketing spend: hundreds of user posts, podcasts and videos, and $650,000 in user donations, before any paid features.

      Only $1.7M investment over 4 years — more capital efficient than most startups.

      @@ -999,7 +1139,7 @@ templateEngineOverride: njk
      Users
      -
      480,000 active monthly,
      +
      520,000 active monthly,
      organic growth
      @@ -1238,6 +1378,210 @@ templateEngineOverride: njk
      + + -