@bigmi/core 0.6.0 → 0.6.2

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/CHANGELOG.md CHANGED
@@ -2,6 +2,15 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ### [0.6.2](https://github.com/lifinance/bigmi/compare/v0.6.1...v0.6.2) (2025-11-13)
6
+
7
+
8
+ ### Bug Fixes
9
+
10
+ * **leather-wallet:** cache wallet connection with daily expiry and improve wallet reconnection reliability ([#36](https://github.com/lifinance/bigmi/issues/36)) ([fcff06e](https://github.com/lifinance/bigmi/commit/fcff06e19426154750b775f7a1b83f5c6db038dd))
11
+
12
+ ### [0.6.1](https://github.com/lifinance/bigmi/compare/v0.6.0...v0.6.1) (2025-10-29)
13
+
5
14
  ## [0.6.0](https://github.com/lifinance/bigmi/compare/v0.5.4...v0.6.0) (2025-10-06)
6
15
 
7
16
 
@@ -73,6 +73,7 @@ export { modifyFee } from './utils/modifyFee.js';
73
73
  export { cleanupCache, listenersCache, observe } from './utils/observe.js';
74
74
  export { parseAccount } from './utils/parseAccount.js';
75
75
  export { poll } from './utils/poll.js';
76
+ export { retryUntil } from './utils/retryUntil.js';
76
77
  export { uid } from './utils/uid.js';
77
78
  export { withRetry } from './utils/withRetry.js';
78
79
  export { withTimeout } from './utils/withTimeout.js';
package/dist/cjs/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.utxo = exports.mempoolMethods = exports.mempool = exports.http = exports.getRpcProviderMethods = exports.getHttpRpcClient = exports.fallback = exports.custom = exports.blockcypherMethods = exports.blockcypher = exports.blockchairMethods = exports.blockchair = exports.ankrMethods = exports.ankr = exports.rpcSchema = exports.createClient = exports.InsufficientUTXOBalanceError = exports.UrlRequiredError = exports.AllTransportsFailedError = exports.WaitForTransactionReceiptTimeoutError = exports.TransactionReceiptNotFoundError = exports.TransactionNotFoundError = exports.UserRejectedRequestError = exports.RpcErrorCode = exports.ParseError = exports.MethodNotSupportedRpcError = exports.TimeoutError = exports.SocketClosedError = exports.RpcRequestError = exports.HttpRequestError = exports.ProviderNotFoundError = exports.BlockNotFoundError = exports.BaseError = exports.InvalidAddressError = exports.walletActions = exports.publicActions = exports.defineChain = exports.bitcoin = exports.watchBlockNumber = exports.waitForTransaction = exports.signPsbt = exports.sendUTXOTransaction = exports.getUTXOTransaction = exports.getUTXOs = exports.getTransactions = exports.getTransactionFee = exports.getBlockStats = exports.getBlockCount = exports.getBlock = exports.getBalance = void 0;
4
- exports.version = exports.withTimeout = exports.withRetry = exports.uid = exports.poll = exports.parseAccount = exports.observe = exports.listenersCache = exports.cleanupCache = exports.modifyFee = exports.isUTXOAddress = exports.getAddressInfo = exports.getAddressChainId = exports.deepEqual = exports.stringToHex = exports.hexToUnit8Array = exports.hexToBase64 = exports.base64urlEncode = exports.base64ToHex = exports.cancelTransaction = exports.Network = exports.ChainId = exports.AddressType = void 0;
4
+ exports.version = exports.withTimeout = exports.withRetry = exports.uid = exports.retryUntil = exports.poll = exports.parseAccount = exports.observe = exports.listenersCache = exports.cleanupCache = exports.modifyFee = exports.isUTXOAddress = exports.getAddressInfo = exports.getAddressChainId = exports.deepEqual = exports.stringToHex = exports.hexToUnit8Array = exports.hexToBase64 = exports.base64urlEncode = exports.base64ToHex = exports.cancelTransaction = exports.Network = exports.ChainId = exports.AddressType = void 0;
5
5
  var getBalance_js_1 = require("./actions/getBalance.js");
6
6
  Object.defineProperty(exports, "getBalance", { enumerable: true, get: function () { return getBalance_js_1.getBalance; } });
7
7
  var getBlock_js_1 = require("./actions/getBlock.js");
@@ -122,6 +122,8 @@ var parseAccount_js_1 = require("./utils/parseAccount.js");
122
122
  Object.defineProperty(exports, "parseAccount", { enumerable: true, get: function () { return parseAccount_js_1.parseAccount; } });
123
123
  var poll_js_1 = require("./utils/poll.js");
124
124
  Object.defineProperty(exports, "poll", { enumerable: true, get: function () { return poll_js_1.poll; } });
125
+ var retryUntil_js_1 = require("./utils/retryUntil.js");
126
+ Object.defineProperty(exports, "retryUntil", { enumerable: true, get: function () { return retryUntil_js_1.retryUntil; } });
125
127
  var uid_js_1 = require("./utils/uid.js");
126
128
  Object.defineProperty(exports, "uid", { enumerable: true, get: function () { return uid_js_1.uid; } });
127
129
  var withRetry_js_1 = require("./utils/withRetry.js");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare function retryUntil<T>(condition: () => Promise<T | undefined | null | false>, options?: {
2
+ timeout?: number;
3
+ interval?: number;
4
+ }): Promise<T | undefined>;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.retryUntil = retryUntil;
4
+ const withRetry_js_1 = require("./withRetry.js");
5
+ async function retryUntil(condition, options = {}) {
6
+ const { timeout = 5000, interval = 100 } = options;
7
+ const retryCount = Math.ceil(timeout / interval) - 1;
8
+ return Promise.race([
9
+ (0, withRetry_js_1.withRetry)(async () => {
10
+ const result = await condition();
11
+ if (!result) {
12
+ throw new Error('Condition not met');
13
+ }
14
+ return result;
15
+ }, {
16
+ delay: interval,
17
+ retryCount,
18
+ shouldRetry: ({ error }) => error.message === 'Condition not met',
19
+ }).catch(() => undefined),
20
+ new Promise((resolve) => {
21
+ setTimeout(() => resolve(undefined), timeout);
22
+ }),
23
+ ]);
24
+ }
25
+ //# sourceMappingURL=retryUntil.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retryUntil.js","sourceRoot":"","sources":["../../../src/utils/retryUntil.ts"],"names":[],"mappings":";;AAiBA,gCAkCC;AAnDD,iDAA0C;AAiBnC,KAAK,UAAU,UAAU,CAC9B,SAAsD,EACtD,UAKI,EAAE;IAEN,MAAM,EAAE,OAAO,GAAG,IAAI,EAAE,QAAQ,GAAG,GAAG,EAAE,GAAG,OAAO,CAAA;IAClD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAA;IAEpD,OAAO,OAAO,CAAC,IAAI,CAAC;QAElB,IAAA,wBAAS,EACP,KAAK,IAAI,EAAE;YACT,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAA;YAChC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;YACtC,CAAC;YACD,OAAO,MAAM,CAAA;QACf,CAAC,EACD;YACE,KAAK,EAAE,QAAQ;YACf,UAAU;YACV,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,mBAAmB;SAClE,CACF,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;QAGxB,IAAI,OAAO,CAAY,CAAC,OAAO,EAAE,EAAE;YACjC,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,CAAA;QAC/C,CAAC,CAAC;KACH,CAAC,CAAA;AACJ,CAAC"}
@@ -1,2 +1,2 @@
1
1
  export declare const name = "@bigmi/core";
2
- export declare const version = "0.6.0";
2
+ export declare const version = "0.6.2";
@@ -2,5 +2,5 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.version = exports.name = void 0;
4
4
  exports.name = '@bigmi/core';
5
- exports.version = '0.6.0';
5
+ exports.version = '0.6.2';
6
6
  //# sourceMappingURL=version.js.map
@@ -73,6 +73,7 @@ export { modifyFee } from './utils/modifyFee.js';
73
73
  export { cleanupCache, listenersCache, observe } from './utils/observe.js';
74
74
  export { parseAccount } from './utils/parseAccount.js';
75
75
  export { poll } from './utils/poll.js';
76
+ export { retryUntil } from './utils/retryUntil.js';
76
77
  export { uid } from './utils/uid.js';
77
78
  export { withRetry } from './utils/withRetry.js';
78
79
  export { withTimeout } from './utils/withTimeout.js';
package/dist/esm/index.js CHANGED
@@ -56,6 +56,7 @@ export { modifyFee } from './utils/modifyFee.js';
56
56
  export { cleanupCache, listenersCache, observe } from './utils/observe.js';
57
57
  export { parseAccount } from './utils/parseAccount.js';
58
58
  export { poll } from './utils/poll.js';
59
+ export { retryUntil } from './utils/retryUntil.js';
59
60
  export { uid } from './utils/uid.js';
60
61
  export { withRetry } from './utils/withRetry.js';
61
62
  export { withTimeout } from './utils/withTimeout.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAKpD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAEhD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAK1D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAK1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAKlE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAK9D,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAKhD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AAKpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAQhD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AAOpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAChE,mBAAmB;AACnB,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,oBAAoB;AACpB,OAAO,EAEL,aAAa,GACd,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAEL,aAAa,GACd,MAAM,gCAAgC,CAAA;AACvC,mBAAmB;AACnB,OAAO,EACL,mBAAmB,GAEpB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,SAAS,EAAsB,MAAM,kBAAkB,CAAA;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAEtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,YAAY,GACb,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,0BAA0B,EAC1B,UAAU,EACV,YAAY,EACZ,wBAAwB,GACzB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,wBAAwB,EACxB,+BAA+B,EAC/B,qCAAqC,GACtC,MAAM,yBAAyB,CAAA;AAMhC,OAAO,EACL,wBAAwB,EACxB,gBAAgB,GACjB,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EACL,4BAA4B,GAE7B,MAAM,kBAAkB,CAAA;AACzB,sBAAsB;AACtB,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AACrE,OAAO,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAA;AAChD,uBAAuB;AACvB,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAA;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAA;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAA;AACxE,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAC/C,OAAO,EAIL,QAAQ,GACT,MAAM,0BAA0B,CAAA;AAMjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAA;AAC7E,OAAO,EAIL,IAAI,GACL,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAA;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAYhE,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAG3C,OAAO,EAIL,WAAW,GACZ,MAAM,oBAAoB,CAAA;AAG3B,OAAO,EAKL,OAAO,EACP,OAAO,GACR,MAAM,kBAAkB,CAAA;AAgCzB,kBAAkB;AAClB,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAChE,OAAO,EACL,WAAW,EACX,eAAe,EACf,WAAW,EACX,eAAe,EACf,WAAW,GACZ,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAChD,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC7E,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AACtC,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Retries a condition until it's met or timeout is reached.
3
+ * Polls the condition function at regular intervals.
4
+ *
5
+ * @param condition - Function that returns a truthy value when condition is met
6
+ * @param options - Configuration options for retry behavior
7
+ * @returns Promise that resolves to the condition result or undefined if timeout
8
+ *
9
+ * @example
10
+ * // Wait for a value to become available
11
+ * const value = await retryUntil(
12
+ * async () => await checkCondition(),
13
+ * { timeout: 5000, interval: 100 }
14
+ * )
15
+ */
16
+ export declare function retryUntil<T>(condition: () => Promise<T | undefined | null | false>, options?: {
17
+ /** Maximum time to wait in milliseconds (default: 5000ms) */
18
+ timeout?: number;
19
+ /** Interval between checks in milliseconds (default: 100ms) */
20
+ interval?: number;
21
+ }): Promise<T | undefined>;
@@ -0,0 +1,39 @@
1
+ import { withRetry } from './withRetry.js';
2
+ /**
3
+ * Retries a condition until it's met or timeout is reached.
4
+ * Polls the condition function at regular intervals.
5
+ *
6
+ * @param condition - Function that returns a truthy value when condition is met
7
+ * @param options - Configuration options for retry behavior
8
+ * @returns Promise that resolves to the condition result or undefined if timeout
9
+ *
10
+ * @example
11
+ * // Wait for a value to become available
12
+ * const value = await retryUntil(
13
+ * async () => await checkCondition(),
14
+ * { timeout: 5000, interval: 100 }
15
+ * )
16
+ */
17
+ export async function retryUntil(condition, options = {}) {
18
+ const { timeout = 5000, interval = 100 } = options;
19
+ const retryCount = Math.ceil(timeout / interval) - 1; // -1 because first attempt is immediate
20
+ return Promise.race([
21
+ // The retry logic
22
+ withRetry(async () => {
23
+ const result = await condition();
24
+ if (!result) {
25
+ throw new Error('Condition not met');
26
+ }
27
+ return result;
28
+ }, {
29
+ delay: interval,
30
+ retryCount,
31
+ shouldRetry: ({ error }) => error.message === 'Condition not met',
32
+ }).catch(() => undefined),
33
+ // Timeout fallback
34
+ new Promise((resolve) => {
35
+ setTimeout(() => resolve(undefined), timeout);
36
+ }),
37
+ ]);
38
+ }
39
+ //# sourceMappingURL=retryUntil.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retryUntil.js","sourceRoot":"","sources":["../../../src/utils/retryUntil.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,SAAsD,EACtD,UAKI,EAAE;IAEN,MAAM,EAAE,OAAO,GAAG,IAAI,EAAE,QAAQ,GAAG,GAAG,EAAE,GAAG,OAAO,CAAA;IAClD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAA,CAAC,wCAAwC;IAE7F,OAAO,OAAO,CAAC,IAAI,CAAC;QAClB,kBAAkB;QAClB,SAAS,CACP,KAAK,IAAI,EAAE;YACT,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAA;YAChC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;YACtC,CAAC;YACD,OAAO,MAAM,CAAA;QACf,CAAC,EACD;YACE,KAAK,EAAE,QAAQ;YACf,UAAU;YACV,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,mBAAmB;SAClE,CACF,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;QAExB,mBAAmB;QACnB,IAAI,OAAO,CAAY,CAAC,OAAO,EAAE,EAAE;YACjC,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,CAAA;QAC/C,CAAC,CAAC;KACH,CAAC,CAAA;AACJ,CAAC"}
@@ -1,2 +1,2 @@
1
1
  export declare const name = "@bigmi/core";
2
- export declare const version = "0.6.0";
2
+ export declare const version = "0.6.2";
@@ -1,3 +1,3 @@
1
1
  export const name = '@bigmi/core';
2
- export const version = '0.6.0';
2
+ export const version = '0.6.2';
3
3
  //# sourceMappingURL=version.js.map
@@ -73,6 +73,7 @@ export { modifyFee } from './utils/modifyFee.js';
73
73
  export { cleanupCache, listenersCache, observe } from './utils/observe.js';
74
74
  export { parseAccount } from './utils/parseAccount.js';
75
75
  export { poll } from './utils/poll.js';
76
+ export { retryUntil } from './utils/retryUntil.js';
76
77
  export { uid } from './utils/uid.js';
77
78
  export { withRetry } from './utils/withRetry.js';
78
79
  export { withTimeout } from './utils/withTimeout.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,YAAY,EACV,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,YAAY,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAA;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,YAAY,EACV,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,YAAY,EACV,2BAA2B,EAC3B,2BAA2B,GAC5B,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAClE,YAAY,EACV,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAC9D,YAAY,EACV,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,YAAY,EACV,4BAA4B,EAC5B,4BAA4B,GAC7B,MAAM,iCAAiC,CAAA;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AACpE,YAAY,EACV,6BAA6B,EAC7B,6BAA6B,GAC9B,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,YAAY,EACV,iBAAiB,EACjB,qBAAqB,EACrB,mCAAmC,EACnC,mCAAmC,EACnC,mBAAmB,GACpB,MAAM,iCAAiC,CAAA;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AACpE,YAAY,EACV,eAAe,EACf,sBAAsB,EACtB,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAEhE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAErD,OAAO,EACL,KAAK,aAAa,EAClB,aAAa,GACd,MAAM,gCAAgC,CAAA;AACvC,OAAO,EACL,KAAK,aAAa,EAClB,aAAa,GACd,MAAM,gCAAgC,CAAA;AAEvC,OAAO,EACL,mBAAmB,EACnB,KAAK,uBAAuB,GAC7B,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,SAAS,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAEtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,YAAY,GACb,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,0BAA0B,EAC1B,UAAU,EACV,YAAY,EACZ,wBAAwB,GACzB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,wBAAwB,EACxB,+BAA+B,EAC/B,qCAAqC,GACtC,MAAM,yBAAyB,CAAA;AAChC,YAAY,EACV,4BAA4B,EAC5B,oCAAoC,EACpC,oBAAoB,GACrB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EACL,wBAAwB,EACxB,gBAAgB,GACjB,MAAM,uBAAuB,CAAA;AAC9B,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EACL,4BAA4B,EAC5B,KAAK,gCAAgC,GACtC,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AACrE,OAAO,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAA;AAEhD,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAA;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAA;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAA;AACxE,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAC/C,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAC5B,KAAK,0BAA0B,EAC/B,QAAQ,GACT,MAAM,0BAA0B,CAAA;AACjC,YAAY,EACV,qBAAqB,EACrB,aAAa,EACb,UAAU,GACX,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAA;AAC7E,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,IAAI,GACL,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAA;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAChE,YAAY,EACV,WAAW,EACX,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,UAAU,EACV,gBAAgB,GACjB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAE3C,YAAY,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,WAAW,GACZ,MAAM,oBAAoB,CAAA;AAC3B,YAAY,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAChD,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACvE,OAAO,EACL,KAAK,KAAK,EACV,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,OAAO,EACP,OAAO,GACR,MAAM,kBAAkB,CAAA;AACzB,YAAY,EACV,MAAM,EACN,YAAY,EACZ,qBAAqB,GACtB,MAAM,mBAAmB,CAAA;AAC1B,YAAY,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAC3C,YAAY,EACV,eAAe,EACf,oBAAoB,EACpB,aAAa,EACb,SAAS,EACT,iBAAiB,GAClB,MAAM,oBAAoB,CAAA;AAC3B,YAAY,EACV,iBAAiB,EACjB,eAAe,GAChB,MAAM,gBAAgB,CAAA;AACvB,YAAY,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAC7D,YAAY,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AACrD,YAAY,EACV,MAAM,EACN,OAAO,EACP,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,SAAS,EACT,SAAS,EACT,KAAK,EACL,eAAe,EACf,eAAe,GAChB,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAChE,OAAO,EACL,WAAW,EACX,eAAe,EACf,WAAW,EACX,eAAe,EACf,WAAW,GACZ,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAChD,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC7E,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Retries a condition until it's met or timeout is reached.
3
+ * Polls the condition function at regular intervals.
4
+ *
5
+ * @param condition - Function that returns a truthy value when condition is met
6
+ * @param options - Configuration options for retry behavior
7
+ * @returns Promise that resolves to the condition result or undefined if timeout
8
+ *
9
+ * @example
10
+ * // Wait for a value to become available
11
+ * const value = await retryUntil(
12
+ * async () => await checkCondition(),
13
+ * { timeout: 5000, interval: 100 }
14
+ * )
15
+ */
16
+ export declare function retryUntil<T>(condition: () => Promise<T | undefined | null | false>, options?: {
17
+ /** Maximum time to wait in milliseconds (default: 5000ms) */
18
+ timeout?: number;
19
+ /** Interval between checks in milliseconds (default: 100ms) */
20
+ interval?: number;
21
+ }): Promise<T | undefined>;
22
+ //# sourceMappingURL=retryUntil.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retryUntil.d.ts","sourceRoot":"","sources":["../../../src/utils/retryUntil.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,UAAU,CAAC,CAAC,EAChC,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,GAAG,KAAK,CAAC,EACtD,OAAO,GAAE;IACP,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAA;CACb,GACL,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CA0BxB"}
@@ -1,3 +1,3 @@
1
1
  export declare const name = "@bigmi/core";
2
- export declare const version = "0.6.0";
2
+ export declare const version = "0.6.2";
3
3
  //# sourceMappingURL=version.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bigmi/core",
3
- "version": "0.6.0",
3
+ "version": "0.6.2",
4
4
  "description": "TypeScript library for Bitcoin apps.",
5
5
  "type": "module",
6
6
  "main": "./dist/esm/index.js",
package/package.json.tmp CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bigmi/core",
3
- "version": "0.6.0",
3
+ "version": "0.6.2",
4
4
  "description": "TypeScript library for Bitcoin apps.",
5
5
  "type": "module",
6
6
  "main": "./src/index.ts",
@@ -53,11 +53,11 @@
53
53
  "zustand": "^5.0.8"
54
54
  },
55
55
  "devDependencies": {
56
- "@vitest/coverage-v8": "^3.2.4",
56
+ "@vitest/coverage-v8": "^4.0.8",
57
57
  "cpy-cli": "^6.0.0",
58
58
  "madge": "^8.0.0",
59
59
  "typescript": "^5.9.3",
60
- "vitest": "^3.2.4"
60
+ "vitest": "^4.0.8"
61
61
  },
62
62
  "peerDependencies": {
63
63
  "bs58": "^6.0.0"
package/src/index.ts CHANGED
@@ -213,6 +213,7 @@ export { modifyFee } from './utils/modifyFee.js'
213
213
  export { cleanupCache, listenersCache, observe } from './utils/observe.js'
214
214
  export { parseAccount } from './utils/parseAccount.js'
215
215
  export { poll } from './utils/poll.js'
216
+ export { retryUntil } from './utils/retryUntil.js'
216
217
  export { uid } from './utils/uid.js'
217
218
  export { withRetry } from './utils/withRetry.js'
218
219
  export { withTimeout } from './utils/withTimeout.js'
@@ -0,0 +1,52 @@
1
+ import { withRetry } from './withRetry.js'
2
+
3
+ /**
4
+ * Retries a condition until it's met or timeout is reached.
5
+ * Polls the condition function at regular intervals.
6
+ *
7
+ * @param condition - Function that returns a truthy value when condition is met
8
+ * @param options - Configuration options for retry behavior
9
+ * @returns Promise that resolves to the condition result or undefined if timeout
10
+ *
11
+ * @example
12
+ * // Wait for a value to become available
13
+ * const value = await retryUntil(
14
+ * async () => await checkCondition(),
15
+ * { timeout: 5000, interval: 100 }
16
+ * )
17
+ */
18
+ export async function retryUntil<T>(
19
+ condition: () => Promise<T | undefined | null | false>,
20
+ options: {
21
+ /** Maximum time to wait in milliseconds (default: 5000ms) */
22
+ timeout?: number
23
+ /** Interval between checks in milliseconds (default: 100ms) */
24
+ interval?: number
25
+ } = {}
26
+ ): Promise<T | undefined> {
27
+ const { timeout = 5000, interval = 100 } = options
28
+ const retryCount = Math.ceil(timeout / interval) - 1 // -1 because first attempt is immediate
29
+
30
+ return Promise.race([
31
+ // The retry logic
32
+ withRetry(
33
+ async () => {
34
+ const result = await condition()
35
+ if (!result) {
36
+ throw new Error('Condition not met')
37
+ }
38
+ return result
39
+ },
40
+ {
41
+ delay: interval,
42
+ retryCount,
43
+ shouldRetry: ({ error }) => error.message === 'Condition not met',
44
+ }
45
+ ).catch(() => undefined),
46
+
47
+ // Timeout fallback
48
+ new Promise<undefined>((resolve) => {
49
+ setTimeout(() => resolve(undefined), timeout)
50
+ }),
51
+ ])
52
+ }
package/src/version.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  export const name = '@bigmi/core'
2
- export const version = '0.6.0'
2
+ export const version = '0.6.2'