@bananapus/nana-sdk-core 6.1.0 → 6.2.0

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.
Files changed (101) hide show
  1. package/dist/cjs/review/heldWrite.d.ts +6 -1
  2. package/dist/cjs/review/heldWrite.d.ts.map +1 -1
  3. package/dist/cjs/review/heldWrite.js +13 -6
  4. package/dist/cjs/review/heldWrite.js.map +1 -1
  5. package/dist/cjs/review/locks.d.ts +61 -2
  6. package/dist/cjs/review/locks.d.ts.map +1 -1
  7. package/dist/cjs/review/locks.js +115 -16
  8. package/dist/cjs/review/locks.js.map +1 -1
  9. package/dist/cjs/review/react/useReviewedRun.d.ts +17 -3
  10. package/dist/cjs/review/react/useReviewedRun.d.ts.map +1 -1
  11. package/dist/cjs/review/react/useReviewedRun.js +142 -31
  12. package/dist/cjs/review/react/useReviewedRun.js.map +1 -1
  13. package/dist/cjs/review/react/useSavedAttempt.d.ts.map +1 -1
  14. package/dist/cjs/review/react/useSavedAttempt.js +12 -0
  15. package/dist/cjs/review/react/useSavedAttempt.js.map +1 -1
  16. package/dist/cjs/review/relayrSend.d.ts +5 -0
  17. package/dist/cjs/review/relayrSend.d.ts.map +1 -1
  18. package/dist/cjs/review/relayrSend.js +126 -104
  19. package/dist/cjs/review/relayrSend.js.map +1 -1
  20. package/dist/cjs/review/runStatus.d.ts +6 -2
  21. package/dist/cjs/review/runStatus.d.ts.map +1 -1
  22. package/dist/cjs/review/runStatus.js +3 -1
  23. package/dist/cjs/review/runStatus.js.map +1 -1
  24. package/dist/cjs/review/safeRelayr.d.ts +11 -2
  25. package/dist/cjs/review/safeRelayr.d.ts.map +1 -1
  26. package/dist/cjs/review/safeRelayr.js +232 -156
  27. package/dist/cjs/review/safeRelayr.js.map +1 -1
  28. package/dist/cjs/review/savedAttempt.d.ts.map +1 -1
  29. package/dist/cjs/review/savedAttempt.js +7 -2
  30. package/dist/cjs/review/savedAttempt.js.map +1 -1
  31. package/dist/cjs/review/send.d.ts +27 -5
  32. package/dist/cjs/review/send.d.ts.map +1 -1
  33. package/dist/cjs/review/send.js +67 -24
  34. package/dist/cjs/review/send.js.map +1 -1
  35. package/dist/cjs/review/sign.d.ts +6 -1
  36. package/dist/cjs/review/sign.d.ts.map +1 -1
  37. package/dist/cjs/review/sign.js +10 -4
  38. package/dist/cjs/review/sign.js.map +1 -1
  39. package/dist/cjs/review/wallet.d.ts +16 -4
  40. package/dist/cjs/review/wallet.d.ts.map +1 -1
  41. package/dist/cjs/review/wallet.js +60 -17
  42. package/dist/cjs/review/wallet.js.map +1 -1
  43. package/dist/cjs/review/writeHold.d.ts +18 -3
  44. package/dist/cjs/review/writeHold.d.ts.map +1 -1
  45. package/dist/cjs/review/writeHold.js +37 -10
  46. package/dist/cjs/review/writeHold.js.map +1 -1
  47. package/dist/cjs/review/writeRecovery.d.ts +12 -2
  48. package/dist/cjs/review/writeRecovery.d.ts.map +1 -1
  49. package/dist/cjs/review/writeRecovery.js +64 -15
  50. package/dist/cjs/review/writeRecovery.js.map +1 -1
  51. package/dist/esm/review/heldWrite.d.ts +6 -1
  52. package/dist/esm/review/heldWrite.d.ts.map +1 -1
  53. package/dist/esm/review/heldWrite.js +13 -6
  54. package/dist/esm/review/heldWrite.js.map +1 -1
  55. package/dist/esm/review/locks.d.ts +61 -2
  56. package/dist/esm/review/locks.d.ts.map +1 -1
  57. package/dist/esm/review/locks.js +111 -16
  58. package/dist/esm/review/locks.js.map +1 -1
  59. package/dist/esm/review/react/useReviewedRun.d.ts +17 -3
  60. package/dist/esm/review/react/useReviewedRun.d.ts.map +1 -1
  61. package/dist/esm/review/react/useReviewedRun.js +143 -32
  62. package/dist/esm/review/react/useReviewedRun.js.map +1 -1
  63. package/dist/esm/review/react/useSavedAttempt.d.ts.map +1 -1
  64. package/dist/esm/review/react/useSavedAttempt.js +12 -0
  65. package/dist/esm/review/react/useSavedAttempt.js.map +1 -1
  66. package/dist/esm/review/relayrSend.d.ts +5 -0
  67. package/dist/esm/review/relayrSend.d.ts.map +1 -1
  68. package/dist/esm/review/relayrSend.js +127 -105
  69. package/dist/esm/review/relayrSend.js.map +1 -1
  70. package/dist/esm/review/runStatus.d.ts +6 -2
  71. package/dist/esm/review/runStatus.d.ts.map +1 -1
  72. package/dist/esm/review/runStatus.js +3 -1
  73. package/dist/esm/review/runStatus.js.map +1 -1
  74. package/dist/esm/review/safeRelayr.d.ts +11 -2
  75. package/dist/esm/review/safeRelayr.d.ts.map +1 -1
  76. package/dist/esm/review/safeRelayr.js +232 -156
  77. package/dist/esm/review/safeRelayr.js.map +1 -1
  78. package/dist/esm/review/savedAttempt.d.ts.map +1 -1
  79. package/dist/esm/review/savedAttempt.js +7 -2
  80. package/dist/esm/review/savedAttempt.js.map +1 -1
  81. package/dist/esm/review/send.d.ts +27 -5
  82. package/dist/esm/review/send.d.ts.map +1 -1
  83. package/dist/esm/review/send.js +67 -24
  84. package/dist/esm/review/send.js.map +1 -1
  85. package/dist/esm/review/sign.d.ts +6 -1
  86. package/dist/esm/review/sign.d.ts.map +1 -1
  87. package/dist/esm/review/sign.js +10 -4
  88. package/dist/esm/review/sign.js.map +1 -1
  89. package/dist/esm/review/wallet.d.ts +16 -4
  90. package/dist/esm/review/wallet.d.ts.map +1 -1
  91. package/dist/esm/review/wallet.js +60 -17
  92. package/dist/esm/review/wallet.js.map +1 -1
  93. package/dist/esm/review/writeHold.d.ts +18 -3
  94. package/dist/esm/review/writeHold.d.ts.map +1 -1
  95. package/dist/esm/review/writeHold.js +37 -10
  96. package/dist/esm/review/writeHold.js.map +1 -1
  97. package/dist/esm/review/writeRecovery.d.ts +12 -2
  98. package/dist/esm/review/writeRecovery.d.ts.map +1 -1
  99. package/dist/esm/review/writeRecovery.js +63 -16
  100. package/dist/esm/review/writeRecovery.js.map +1 -1
  101. package/package.json +1 -1
@@ -1,4 +1,61 @@
1
1
  import { TAB } from "./tabState.js";
2
+ /** Thrown by {@link LockHandle.assertHeld} once this tab no longer holds the lock. */
3
+ export class LockLostError extends Error {
4
+ constructor(lock) {
5
+ super(`The "${lock}" lock was lost. Its work must stop before writing.`);
6
+ this.lock = lock;
7
+ this.name = "LockLostError";
8
+ this.code = "LOCK_LOST";
9
+ }
10
+ }
11
+ /**
12
+ * Throws {@link LockLostError} unless every given lock is still this tab's,
13
+ * on a fresh read; `null` and `undefined` are skipped. One line before a
14
+ * write under several locks: `await assertLocksHeld([a, b]); save()`.
15
+ */
16
+ export async function assertLocksHeld(locks) {
17
+ await Promise.all((locks ?? []).map((lock) => lock?.assertHeld()));
18
+ }
19
+ const NEVER = new AbortController().signal;
20
+ function handle(name, mode, held, signal = NEVER) {
21
+ return {
22
+ name,
23
+ mode,
24
+ signal,
25
+ held,
26
+ async assertHeld() {
27
+ if (!(await held()))
28
+ throw new LockLostError(name);
29
+ },
30
+ };
31
+ }
32
+ function isHandle(lock) {
33
+ return typeof lock.assertHeld === "function";
34
+ }
35
+ /** `request`'s two shapes, as `navigator.locks` takes them. */
36
+ function shaped(options, work) {
37
+ return typeof options === "function" ? [{}, options] : [options, work];
38
+ }
39
+ /**
40
+ * Any Web Locks manager (`navigator.locks`, a test's) handing a
41
+ * {@link LockHandle}: a handle it hands already passes through; any other
42
+ * lock is never lost while its work runs.
43
+ */
44
+ export function fencedLocks(locks) {
45
+ return {
46
+ request(name, options, work) {
47
+ const [opts, run] = shaped(options, work);
48
+ return locks.request(name, opts, (lock) => {
49
+ if (!lock)
50
+ return run(null);
51
+ if (isHandle(lock))
52
+ return run(lock);
53
+ let running = true;
54
+ return Promise.resolve(run(handle(lock.name, lock.mode, async () => running))).finally(() => (running = false));
55
+ });
56
+ },
57
+ };
58
+ }
2
59
  const TAB_QUEUES = TAB.queues;
3
60
  // Without Web Locks, writes in this tab still run one at a time per action,
4
61
  // across every copy of this module loaded in the tab.
@@ -14,10 +71,12 @@ const tabLocks = {
14
71
  const queue = (held ?? Promise.resolve()).then(() => mine);
15
72
  tabQueues.set(name, queue);
16
73
  await held;
74
+ let running = true;
17
75
  try {
18
- return await work({ name, mode: "exclusive" });
76
+ return await work(handle(name, "exclusive", async () => running));
19
77
  }
20
78
  finally {
79
+ running = false;
21
80
  release();
22
81
  if (tabQueues.get(name) === queue)
23
82
  tabQueues.delete(name);
@@ -26,39 +85,53 @@ const tabLocks = {
26
85
  };
27
86
  // Without Web Locks, tabs share an IndexedDB lease per action. A readwrite
28
87
  // transaction is atomic across the origin's tabs, so claiming a lease is a
29
- // compare-and-set. The holder renews it while it works; a tab that closed or
30
- // froze loses it once it lapses.
88
+ // compare-and-set. Each acquisition has its own owner token. The holder
89
+ // renews it while it works, only while it is still its own and unexpired; a
90
+ // tab that closed or froze loses it once it lapses, and its handle then
91
+ // reads as lost.
31
92
  const LEASE_DB = "nana-sdk-write-locks";
32
93
  const LEASE_STORE = "leases";
33
94
  const LEASE_MS = 15_000;
34
95
  const LEASE_RENEW_MS = 5_000;
35
96
  const LEASE_POLL_MS = 50;
36
- function leaseTransaction(db, run) {
97
+ function leaseTransaction(db, mode, run) {
37
98
  return new Promise((resolve, reject) => {
38
- const transaction = db.transaction(LEASE_STORE, "readwrite");
99
+ const transaction = db.transaction(LEASE_STORE, mode);
39
100
  let result;
40
101
  run(transaction.objectStore(LEASE_STORE), (value) => (result = value));
41
102
  transaction.oncomplete = () => resolve(result);
42
103
  transaction.onerror = transaction.onabort = () => reject(transaction.error);
43
104
  });
44
105
  }
45
- /** Take or renew `name`'s lease for `owner`; false while another tab holds it. */
46
- function claimLease(db, name, owner) {
47
- return leaseTransaction(db, (store, done) => {
106
+ /** Whether `lease` is `owner`'s and unexpired. */
107
+ const owns = (lease, owner) => lease?.owner === owner && lease.expires > Date.now();
108
+ /**
109
+ * Take `name`'s lease for `owner` (`renew`: only extend it while still
110
+ * `owner`'s); false while another tab holds it, or once a renewal finds it lost.
111
+ */
112
+ function claimLease(db, name, owner, renew = false) {
113
+ return leaseTransaction(db, "readwrite", (store, done) => {
48
114
  done(false);
49
115
  const read = store.get(name);
50
116
  read.onsuccess = () => {
51
117
  const lease = read.result;
52
118
  const now = Date.now();
53
- if (lease && lease.owner !== owner && lease.expires > now)
119
+ if (renew ? !owns(lease, owner) : lease && lease.expires > now)
54
120
  return;
55
121
  store.put({ owner, expires: now + LEASE_MS }, name);
56
122
  done(true);
57
123
  };
58
124
  });
59
125
  }
126
+ function readLease(db, name) {
127
+ return leaseTransaction(db, "readonly", (store, done) => {
128
+ const read = store.get(name);
129
+ read.onsuccess = () => done(read.result);
130
+ });
131
+ }
132
+ /** Drop `name`'s lease only while it is still `owner`'s. */
60
133
  function dropLease(db, name, owner) {
61
- return leaseTransaction(db, (store) => {
134
+ return leaseTransaction(db, "readwrite", (store) => {
62
135
  const read = store.get(name);
63
136
  read.onsuccess = () => {
64
137
  if (read.result?.owner === owner)
@@ -95,28 +168,50 @@ function leaseLocks(factory) {
95
168
  return work(null);
96
169
  await new Promise((resolve) => setTimeout(resolve, LEASE_POLL_MS));
97
170
  }
98
- const renew = setInterval(() => void claimLease(db, name, owner).catch(() => { }), LEASE_RENEW_MS);
171
+ const lost = new AbortController();
172
+ let running = true;
173
+ const held = async () => {
174
+ if (!running || lost.signal.aborted)
175
+ return false;
176
+ // Never cached: a tab back from suspension reads what is there now.
177
+ const mine = owns(await readLease(db, name).catch(() => undefined), owner);
178
+ if (!mine)
179
+ lost.abort(new LockLostError(name));
180
+ return mine && running;
181
+ };
182
+ const renew = setInterval(() => void claimLease(db, name, owner, true)
183
+ .then((kept) => kept || lost.abort(new LockLostError(name)))
184
+ .catch(() => { }), LEASE_RENEW_MS);
99
185
  try {
100
- return await work(tabLock);
186
+ return await work(handle(name, "exclusive", held, lost.signal));
101
187
  }
102
188
  finally {
189
+ running = false;
103
190
  clearInterval(renew);
104
191
  await dropLease(db, name, owner).catch(() => { });
105
192
  }
106
193
  }),
107
194
  };
108
195
  }
109
- let fallbackLocks;
196
+ const inTabLocks = fencedLocks(tabLocks);
197
+ let leasedLocks;
110
198
  /**
111
199
  * The browser's Web Locks. Where a browser or wallet webview has none, an
112
200
  * IndexedDB lease shared by the origin's tabs (one transaction, no visible
113
201
  * delay; it waits only while another tab holds the action), with a one-time
114
202
  * console note. With neither, a lock within this tab. Never refuses.
203
+ *
204
+ * `request(name, work)` or `request(name, options, work)`, as on
205
+ * `navigator.locks`; `work` gets a {@link LockHandle}. Call its
206
+ * `assertHeld()` immediately before every journal write and every wallet
207
+ * submission inside the lock: a lease can lapse while the tab is suspended
208
+ * (as while the user is in a wallet app) and pass to another tab. The check
209
+ * narrows that window to the time between the check and the write.
115
210
  */
116
211
  export function browserLocks() {
117
212
  const native = globalThis.navigator?.locks;
118
213
  if (native)
119
- return native;
214
+ return fencedLocks(native);
120
215
  if (!tabLocksNoted) {
121
216
  tabLocksNoted = true;
122
217
  console.info(globalThis.indexedDB
@@ -124,7 +219,7 @@ export function browserLocks() {
124
219
  : "Web Locks are unavailable, so wallet writes are coordinated within this tab only.");
125
220
  }
126
221
  if (!globalThis.indexedDB)
127
- return tabLocks;
128
- return (fallbackLocks ??= leaseLocks(globalThis.indexedDB));
222
+ return inTabLocks;
223
+ return (leasedLocks ??= fencedLocks(leaseLocks(globalThis.indexedDB)));
129
224
  }
130
225
  //# sourceMappingURL=locks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"locks.js","sourceRoot":"","sources":["../../../src/review/locks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"locks.js","sourceRoot":"","sources":["../../../src/review/locks.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { type HeldWriteView, type ReviewedAction, type ReviewedProgress, type ReviewedResult, type ReviewedRunStatus, type ReviewedSendDeps, type completeReviewedStep, type resumeReviewed, type sendReviewed } from "../index.js";
1
+ import { type HeldWriteView, type ReviewedAction, type ReviewedCall, type ReviewedProgress, type ReviewedResult, type ReviewedRunStatus, type ReviewedSendDeps, type completeReviewedStep, type resumeReviewed, type sendReviewed } from "../index.js";
2
2
  import { type HeldViewActions } from "./heldView.js";
3
3
  import type { Address, Hex, TransactionReceipt } from "viem";
4
4
  /** The send engine: the review model, its decoder and the ABIs it reads. */
@@ -17,6 +17,8 @@ export type UseReviewedRunDeps = ReviewedSendDeps & {
17
17
  * again only after a load failed.
18
18
  */
19
19
  engine: () => Promise<ReviewedEngine>;
20
+ /** A held step `dismiss` closed later succeeded: refresh its reads. */
21
+ onDismissedSettled?: (call: ReviewedCall) => void;
20
22
  };
21
23
  /** A run that failed: `error` is the line to show, `failure` the value thrown. */
22
24
  export type ReviewedRunFailed = {
@@ -59,11 +61,13 @@ export type UseReviewedRunResult = {
59
61
  * `follow.timeoutMs` (2 minutes by default); only then does the run resolve
60
62
  * `receipt`, and the hook follows the hold until it settles.
61
63
  * `onCancelled` runs once when the run ends `cancelled`: nothing sent and
62
- * nothing held.
64
+ * nothing held; `onStopped` once when it ends `stopped`, with the last step
65
+ * sent. Both are told once that state rendered.
63
66
  */
64
67
  run: (action: Omit<ReviewedAction, "account" | "guard"> & {
65
68
  account?: Address;
66
69
  onCancelled?: () => void;
70
+ onStopped?: (step: number) => void;
67
71
  }) => Promise<ReviewedResult | ReviewedRunReceipt | ReviewedRunFailed | null>;
68
72
  /**
69
73
  * The highest step of the action whose hash the wallet returned in the
@@ -73,8 +77,10 @@ export type UseReviewedRunResult = {
73
77
  lastSubmittedStep: number | null;
74
78
  /** The run's status, from `reviewedRunStatus`: the one every app shows. */
75
79
  status: ReviewedRunStatus;
76
- /** Reviewing, simulating, signing or confirming a receipt: the action waits. */
80
+ /** Reviewing, simulating, signing or confirming in place (not `following`). */
77
81
  busy: boolean;
82
+ /** The run only follows a sent step's hold: the confirm can close. */
83
+ following: boolean;
78
84
  phase: ReviewedProgress["phase"] | "idle";
79
85
  step: number;
80
86
  total: number;
@@ -109,6 +115,14 @@ export type UseReviewedRunResult = {
109
115
  */
110
116
  held: HeldWriteView | null;
111
117
  reset: () => void;
118
+ /**
119
+ * Closes the confirm; false while the review or wallet is open. A held
120
+ * earlier step ends the run (nothing more reviewed; its hold followed
121
+ * detached, `onDismissedSettled`). A held last step only ends the wait
122
+ * (`ended()` null) and stays shown. Otherwise it resets, following any hold
123
+ * it showed detached. Never evidence a step can be resent.
124
+ */
125
+ dismiss: () => boolean;
112
126
  /**
113
127
  * Loads the send engine now (on hover, focus or pointerdown of the action),
114
128
  * so the review opens without a wait. Safe to call any number of times: it
@@ -1 +1 @@
1
- {"version":3,"file":"useReviewedRun.d.ts","sourceRoot":"","sources":["../../../../src/review/react/useReviewedRun.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useReviewedRun.d.ts","sourceRoot":"","sources":["../../../../src/review/react/useReviewedRun.ts"],"names":[],"mappings":"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"}