@t3b/hub-guard 0.10.0 → 0.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -308,6 +308,9 @@ const r2 = await guard.memoAct(session, "reply", id, { text, lang: "ar" });
308
308
 
309
309
  ## Changes
310
310
 
311
+ - **0.10.1** (owner, 2026-10-11): the memo window's Arabic button reads **تمت القراءة و تم إبلاغي** (was "قرأت وأوافق"). Nothing else
312
+ changes but one fix: the accept button wraps onto a second line on a narrow screen instead of running past its card
313
+ (found by the Stores Sync session at 390 px). An app on 0.10.0 keeps working and shows the old words until it takes 0.10.1.
311
314
  - **0.10.0** (WORKFLOWS §22, D-088): memos - the pass's and the 15-minute check's `memos` (the waiting number) is kept in
312
315
  the session (`session.memos`, `readMemoCount`); `guard.memoBell`, `guard.memoData`, `guard.memoAct`, `memoFragment`,
313
316
  `MEMO_TEXTS` (Arabic and English), `memosCall`; for the module that holds the memos `verifyMemosCall`, `memosRefusal`
package/dist/memos.d.ts CHANGED
@@ -43,7 +43,7 @@ export declare const MEMO_TEXTS: {
43
43
  readonly state_read: "مقروء";
44
44
  readonly state_accepted: "تمت الموافقة";
45
45
  readonly state_withdrawn: "مسحوب";
46
- readonly accept: "قرأت وأوافق";
46
+ readonly accept: "تمت القراءة و تم إبلاغي";
47
47
  readonly accepted_on: "تمت الموافقة";
48
48
  readonly accept_note: "ضغطة واحدة، تُسجَّل مع الوقت واسم هذا التطبيق.";
49
49
  readonly replies: "ردودك";
package/dist/memos.js CHANGED
@@ -44,7 +44,7 @@ export const MEMO_TEXTS = {
44
44
  state_read: "مقروء",
45
45
  state_accepted: "تمت الموافقة",
46
46
  state_withdrawn: "مسحوب",
47
- accept: "قرأت وأوافق",
47
+ accept: "تمت القراءة و تم إبلاغي", // owner 2026-10-11 (was "قرأت وأوافق")
48
48
  accepted_on: "تمت الموافقة",
49
49
  accept_note: "ضغطة واحدة، تُسجَّل مع الوقت واسم هذا التطبيق.",
50
50
  replies: "ردودك",
@@ -190,7 +190,7 @@ export function memoFragment(data, opts = {}) {
190
190
  ? `<div class="alert success" role="status"><div class="txt"><b>${t("accepted_on")} · ${esc(memoText(lang === "ar" ? "en" : "ar", "accept"))}</b>${o.accepted_at ? esc(memoWhen(o.accepted_at)) : ""}</div></div>`
191
191
  : o.state === "withdrawn"
192
192
  ? `<div class="alert info" role="status"><div class="txt">${t("state_withdrawn")}</div></div>`
193
- : `<form method="post" action="${esc(`${base}/${encodeURIComponent(o.id)}/accept`)}" style="display: flex; gap: var(--s-3); align-items: center; flex-wrap: wrap; padding-block: var(--s-3); border-block: 1px solid var(--line)"><button type="submit" class="btn btn-primary" style="font-size: var(--fs-body); padding-block: var(--s-3)">${t("accept")} · ${esc(memoText(lang === "ar" ? "en" : "ar", "accept"))}</button><span class="help-2">${t("accept_note")}</span></form>`) +
193
+ : `<form method="post" action="${esc(`${base}/${encodeURIComponent(o.id)}/accept`)}" style="display: flex; gap: var(--s-3); align-items: center; flex-wrap: wrap; padding-block: var(--s-3); border-block: 1px solid var(--line)"><button type="submit" class="btn btn-primary" style="font-size: var(--fs-body); padding-block: var(--s-3); white-space: normal; block-size: auto; min-block-size: var(--touch-min, 44px); max-inline-size: 100%; text-align: center; line-height: 1.4;">${t("accept")} · ${esc(memoText(lang === "ar" ? "en" : "ar", "accept"))}</button><span class="help-2">${t("accept_note")}</span></form>`) +
194
194
  `<div style="display: grid; gap: var(--s-3); margin-block-start: var(--s-4)"><div class="section-head"><h3 style="margin: 0">${t("replies")} <span class="help-2" style="font-weight: 400">· ${t("replies_note")}</span></h3></div>` +
195
195
  o.replies
196
196
  .map((r) => `<div style="border-inline-start: 3px solid var(--line); padding-inline-start: var(--s-3); display: grid; gap: 4px; font-size: var(--fs-body-sm)"><span class="help-2">${esc(memoWhen(r.at))}</span><span style="white-space: pre-line">${esc(r.text)}</span></div>` +
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@t3b/hub-guard",
3
- "version": "0.10.0",
3
+ "version": "0.10.1",
4
4
  "description": "The3Beez Hub guard: a module opens only by a Hub-signed ticket and refuses everything else. No key from the Hub: towards the Hub the app shows its own Vercel ID; from the Hub it accepts only what is signed by the key the Hub publishes. Entry route, refusal page, module session, idle rule, 15-minute re-check, Cloudflare Access proof, broker and audit clients, manifest and health answers for the Hub only, the memo bell and window (0.10.0). Web Crypto only: runs in Node 20+ and in edge runtimes.",
5
5
  "license": "UNLICENSED",
6
6
  "type": "module",