@bounded-sh/core 0.0.113 → 0.0.115
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/dist/client/operations.d.ts +14 -0
- package/dist/client/reconcile.d.ts +18 -0
- package/dist/client/venue-grant-write.d.ts +62 -0
- package/dist/client/write-outcome.d.ts +1 -0
- package/dist/{index-WIHuQp4L.js → index-5TMFraRK.js} +230 -61
- package/dist/index-5TMFraRK.js.map +1 -0
- package/dist/{index-CkgEqMkJ.mjs → index-BilGFb3V.mjs} +229 -62
- package/dist/index-BilGFb3V.mjs.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/{realtime-store-BIB8v265.mjs → realtime-store-Bc71mTWr.mjs} +2 -2
- package/dist/{realtime-store-BIB8v265.mjs.map → realtime-store-Bc71mTWr.mjs.map} +1 -1
- package/dist/{realtime-store-7itLaAao.js → realtime-store-BiChlioj.js} +2 -2
- package/dist/{realtime-store-7itLaAao.js.map → realtime-store-BiChlioj.js.map} +1 -1
- package/dist/{solana-message-BBMxFFjM.mjs → solana-message-BNGEBst_.mjs} +2 -2
- package/dist/{solana-message-BBMxFFjM.mjs.map → solana-message-BNGEBst_.mjs.map} +1 -1
- package/dist/{solana-message-Ce6_jR6H.js → solana-message-BVwD6WVm.js} +2 -2
- package/dist/{solana-message-Ce6_jR6H.js.map → solana-message-BVwD6WVm.js.map} +1 -1
- package/dist/{solana-operations-CNeO_lJ2.js → solana-operations-B3u6Arbf.js} +3 -3
- package/dist/{solana-operations-CNeO_lJ2.js.map → solana-operations-B3u6Arbf.js.map} +1 -1
- package/dist/{solana-operations-Cshh2EfH.mjs → solana-operations-BLbRO1rE.mjs} +3 -3
- package/dist/{solana-operations-Cshh2EfH.mjs.map → solana-operations-BLbRO1rE.mjs.map} +1 -1
- package/dist/{solana-v1-operations-c0p0YESV.js → solana-v1-operations-BxTmxUMN.js} +3 -3
- package/dist/{solana-v1-operations-c0p0YESV.js.map → solana-v1-operations-BxTmxUMN.js.map} +1 -1
- package/dist/{solana-v1-operations-B8vV5teG.mjs → solana-v1-operations-b1rmLBUP.mjs} +3 -3
- package/dist/{solana-v1-operations-B8vV5teG.mjs.map → solana-v1-operations-b1rmLBUP.mjs.map} +1 -1
- package/dist/utils/refresh-error.d.ts +4 -0
- package/package.json +2 -2
- package/dist/index-CkgEqMkJ.mjs.map +0 -1
- package/dist/index-WIHuQp4L.js.map +0 -1
package/dist/{solana-v1-operations-B8vV5teG.mjs.map → solana-v1-operations-b1rmLBUP.mjs.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"solana-v1-operations-B8vV5teG.mjs","sources":["../.rollup-tmp/client/solana-v1-operations.js"],"sourcesContent":["// solana-v1-operations.ts - the SIMD-0385 v1 half of the pre-built write lane.\n//\n// The realtime worker hands the SDK a serialized, possibly partially-signed\n// transaction (sponsor and attestation signatures may already be attached). For\n// v1 wires (first byte 0x81) @solana/web3.js's legacy/v0 classes cannot even\n// deserialize the bytes, so this lane decodes with @solana/kit, runs the SAME\n// semantic validation the v0 lane runs (program allow-list, setup-shape\n// recomputation, OA-0001 intent binding), refreshes the lifetime only while the\n// transaction is still unsigned, signs through the provider's `signTransactionV1`,\n// and submits base64 over the same RPC handle the v0 lane uses.\n//\n// Lazy-loaded: `@solana/kit` must never enter the SDK's initial chunk.\nimport { Buffer } from 'buffer';\nimport { getConfig } from './config';\nimport { markWriteNotApplied } from './write-outcome';\nimport { BoundedOnchainRuleRejection, decodeBase58, encodeBase58, errorText, isBoundedOnchainRuleRejection, isDefinitiveSolanaSendFailure, validateServerTransactionSemantics, } from './solana-operations';\nimport { getTransactionJson } from './solana-transaction-read';\nfunction transactionHasSignature(transaction) {\n return Object.values(transaction.signatures).some((sig) => !!sig && sig.some((byte) => byte !== 0));\n}\nfunction sameBytes(a, b) {\n if (a.length !== b.length)\n return false;\n for (let i = 0; i < a.length; i += 1)\n if (a[i] !== b[i])\n return false;\n return true;\n}\nasync function decodeAndValidate(serializedTransaction, options) {\n const kit = await import('@solana/kit');\n const transaction = kit.getTransactionDecoder().decode(Buffer.from(serializedTransaction, 'base64'));\n const compiledMessage = kit.getCompiledTransactionMessageDecoder().decode(transaction.messageBytes);\n if (compiledMessage.version !== 1) {\n throw new Error(`${options.label} announced SIMD-0385 v1 but decoded as version ${String(compiledMessage.version)}`);\n }\n if (compiledMessage.instructionHeaders.length !== compiledMessage.instructionPayloads.length) {\n throw new Error(`${options.label} has mismatched v1 instruction headers and payloads`);\n }\n const { PublicKey } = await import('@solana/web3.js');\n const accountKeys = compiledMessage.staticAccounts.map((key) => new PublicKey(key));\n const instructions = compiledMessage.instructionHeaders.map((header, index) => {\n if (header.programAccountIndex >= accountKeys.length)\n throw new Error(`${options.label} has an invalid program account index`);\n const payload = compiledMessage.instructionPayloads[index];\n return {\n programId: accountKeys[header.programAccountIndex].toBase58(),\n accountKeyIndexes: [...payload.instructionAccountIndices],\n data: Uint8Array.from(payload.instructionData),\n };\n });\n validateServerTransactionSemantics(Object.assign(Object.assign({}, options), { accountKeys, isAccountSigner: (index) => index >= 0 && index < compiledMessage.header.numSignerAccounts, instructions, PublicKeyCtor: PublicKey }));\n return { transaction, compiledMessage, kit };\n}\n/**\n * LF-003 parity with the v0 lane: an UNSIGNED transaction is re-based on a live\n * blockhash before the wallet signs it; a transaction that already carries a\n * co-signer's signature must keep the exact message it was co-signed against,\n * and its fence must name that same blockhash.\n */\nasync function refreshLifetime(transaction, compiledMessage, kit, rpc, serverFence) {\n var _a;\n const fence = { blockhash: serverFence.blockhash, lastValidBlockHeight: serverFence.lastValidBlockHeight };\n if (transactionHasSignature(transaction)) {\n if (String(compiledMessage.lifetimeToken) !== fence.blockhash) {\n throw new Error(`The pre-built v1 transaction was co-signed against blockhash ${String(compiledMessage.lifetimeToken)} ` +\n `but its expiry fence names ${fence.blockhash}. Nothing was signed.`);\n }\n return { transaction, fence };\n }\n if (!rpc)\n return { transaction, fence };\n if (typeof rpc.getLatestBlockhash !== 'function') {\n throw new Error('Pre-built v1 signing needs a current blockhash, but the configured Solana RPC cannot report one. Nothing was signed.');\n }\n const latest = await rpc.getLatestBlockhash('confirmed');\n const decoded = decodeBase58(String((_a = latest === null || latest === void 0 ? void 0 : latest.blockhash) !== null && _a !== void 0 ? _a : ''));\n if (decoded === null || decoded.length !== 32) {\n throw new Error(`The configured Solana RPC returned \"${latest === null || latest === void 0 ? void 0 : latest.blockhash}\" as the current blockhash, which is not a 32-byte base58 value. Nothing was signed.`);\n }\n const decompiled = kit.decompileTransactionMessage(compiledMessage, { lastValidBlockHeight: BigInt(serverFence.lastValidBlockHeight) });\n const refreshed = kit.setTransactionMessageLifetimeUsingBlockhash({ blockhash: kit.blockhash(latest.blockhash), lastValidBlockHeight: BigInt(latest.lastValidBlockHeight) }, decompiled);\n return {\n transaction: kit.compileTransaction(refreshed),\n fence: { blockhash: latest.blockhash, lastValidBlockHeight: latest.lastValidBlockHeight },\n };\n}\nexport async function handlePreBuiltV1Transaction(tx, authProvider, options, expectedIntent, beforeBroadcast) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\n const config = (_b = (_a = options === null || options === void 0 ? void 0 : options._overrides) === null || _a === void 0 ? void 0 : _a._config) !== null && _b !== void 0 ? _b : await getConfig();\n const decoded = await decodeAndValidate(tx.serializedTransaction, {\n label: 'Pre-built v1 transaction', expectedAppId: config.appId, expectedIntent,\n });\n if (typeof authProvider.signTransactionV1 !== 'function') {\n // The worker only builds v1 for a client that advertised it; reaching this\n // means the provider changed underneath the write. Refuse before any RPC.\n throw new Error('The write came back as a Solana transaction v1 (SIMD-0385) but this auth provider cannot sign v1. Nothing was signed.');\n }\n const shouldSubmit = (options === null || options === void 0 ? void 0 : options.shouldSubmitTx) !== false;\n const rpcUrl = (_c = config.rpcUrl) === null || _c === void 0 ? void 0 : _c.trim();\n const injectedRpc = (_d = options === null || options === void 0 ? void 0 : options._overrides) === null || _d === void 0 ? void 0 : _d._solanaRpc;\n if (shouldSubmit && !rpcUrl && !injectedRpc) {\n throw new Error(`Pre-built Solana transaction submission requires init({ rpcUrl }) for ${tx.network}. ` +\n `Pass a TOP-LEVEL rpcUrl (with chain) to init(), e.g. ` +\n `init({ appId, chain: '${tx.network}', rpcUrl: '<your ${tx.network} RPC endpoint>' }); ` +\n `a nested walletLogin.rpcUrl only configures wallet login and does not enable submission.`);\n }\n const { Connection } = await import('@solana/web3.js');\n const connection = injectedRpc !== null && injectedRpc !== void 0 ? injectedRpc : (rpcUrl ? new Connection(rpcUrl, 'confirmed') : null);\n const refreshed = await refreshLifetime(decoded.transaction, decoded.compiledMessage, decoded.kit, connection, tx);\n const signedTx = await authProvider.signTransactionV1(refreshed.transaction);\n if (!sameBytes(signedTx.messageBytes, refreshed.transaction.messageBytes)) {\n throw new Error('The signer changed the v1 transaction message instead of signing the exact transaction. Nothing was submitted.');\n }\n const feePayerAddress = String((_e = decoded.compiledMessage.staticAccounts[0]) !== null && _e !== void 0 ? _e : '');\n const feePayerSignature = signedTx.signatures[feePayerAddress];\n const rawTx = Uint8Array.from(decoded.kit.getTransactionEncoder().encode(signedTx));\n const signedTransaction = Buffer.from(rawTx).toString('base64');\n if (!shouldSubmit) {\n return { outcome: 'signed', lane: 'solana', transactionSignature: null, signedTransaction, fence: refreshed.fence };\n }\n if (!feePayerSignature || feePayerSignature.every((byte) => byte === 0)) {\n throw new Error('The signed v1 transaction carries no fee-payer signature; it cannot be submitted.');\n }\n // The transaction id is the fee payer's signature, derived from the signed bytes\n // BEFORE broadcasting so a lost send response still yields a reconcilable id.\n const signature = encodeBase58(Uint8Array.from(feePayerSignature));\n const submitRpc = connection;\n await (beforeBroadcast === null || beforeBroadcast === void 0 ? void 0 : beforeBroadcast({ transactionSignature: signature, signedTransaction, fence: refreshed.fence }));\n try {\n await submitRpc.sendRawTransaction(rawTx, { skipPreflight: false, maxRetries: 3 });\n }\n catch (error) {\n if (isDefinitiveSolanaSendFailure(error)) {\n if (isBoundedOnchainRuleRejection(error))\n throw markWriteNotApplied(new BoundedOnchainRuleRejection(error), 'broadcast_rejected');\n throw markWriteNotApplied(error, 'broadcast_rejected');\n }\n return {\n outcome: 'submitted', lane: 'solana', transactionSignature: signature, signedTransaction, fence: refreshed.fence,\n reason: `Broadcast response was lost or inconclusive: ${errorText(error)}`,\n };\n }\n let confirmation;\n try {\n confirmation = await submitRpc.confirmTransaction({ signature, blockhash: refreshed.fence.blockhash, lastValidBlockHeight: refreshed.fence.lastValidBlockHeight }, 'confirmed');\n }\n catch (error) {\n return {\n outcome: 'submitted', lane: 'solana', transactionSignature: signature, signedTransaction, fence: refreshed.fence,\n reason: `Confirmation outcome unknown: ${errorText(error)}`,\n };\n }\n if ((_f = confirmation.value) === null || _f === void 0 ? void 0 : _f.err) {\n let logMessages;\n try {\n logMessages = (_h = (_g = (await getTransactionJson(submitRpc, signature, 'confirmed'))) === null || _g === void 0 ? void 0 : _g.meta) === null || _h === void 0 ? void 0 : _h.logMessages;\n }\n catch (_l) {\n // Diagnostic only; the on-chain error is the verdict.\n }\n if (isBoundedOnchainRuleRejection(confirmation.value.err, logMessages)) {\n throw markWriteNotApplied(new BoundedOnchainRuleRejection(confirmation.value.err, logMessages), 'failed_onchain');\n }\n throw markWriteNotApplied(new Error(`Transaction failed: ${logMessages ? JSON.stringify(logMessages) : JSON.stringify(confirmation.value.err)}`), 'failed_onchain');\n }\n return {\n outcome: 'confirmed', lane: 'solana', transactionSignature: signature, signedTransaction, fence: refreshed.fence,\n confirmationContextSlot: (_k = (_j = confirmation.context) === null || _j === void 0 ? void 0 : _j.slot) !== null && _k !== void 0 ? _k : 0,\n };\n}\n"],"names":["Buffer"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"solana-v1-operations-b1rmLBUP.mjs","sources":["../.rollup-tmp/client/solana-v1-operations.js"],"sourcesContent":["// solana-v1-operations.ts - the SIMD-0385 v1 half of the pre-built write lane.\n//\n// The realtime worker hands the SDK a serialized, possibly partially-signed\n// transaction (sponsor and attestation signatures may already be attached). For\n// v1 wires (first byte 0x81) @solana/web3.js's legacy/v0 classes cannot even\n// deserialize the bytes, so this lane decodes with @solana/kit, runs the SAME\n// semantic validation the v0 lane runs (program allow-list, setup-shape\n// recomputation, OA-0001 intent binding), refreshes the lifetime only while the\n// transaction is still unsigned, signs through the provider's `signTransactionV1`,\n// and submits base64 over the same RPC handle the v0 lane uses.\n//\n// Lazy-loaded: `@solana/kit` must never enter the SDK's initial chunk.\nimport { Buffer } from 'buffer';\nimport { getConfig } from './config';\nimport { markWriteNotApplied } from './write-outcome';\nimport { BoundedOnchainRuleRejection, decodeBase58, encodeBase58, errorText, isBoundedOnchainRuleRejection, isDefinitiveSolanaSendFailure, validateServerTransactionSemantics, } from './solana-operations';\nimport { getTransactionJson } from './solana-transaction-read';\nfunction transactionHasSignature(transaction) {\n return Object.values(transaction.signatures).some((sig) => !!sig && sig.some((byte) => byte !== 0));\n}\nfunction sameBytes(a, b) {\n if (a.length !== b.length)\n return false;\n for (let i = 0; i < a.length; i += 1)\n if (a[i] !== b[i])\n return false;\n return true;\n}\nasync function decodeAndValidate(serializedTransaction, options) {\n const kit = await import('@solana/kit');\n const transaction = kit.getTransactionDecoder().decode(Buffer.from(serializedTransaction, 'base64'));\n const compiledMessage = kit.getCompiledTransactionMessageDecoder().decode(transaction.messageBytes);\n if (compiledMessage.version !== 1) {\n throw new Error(`${options.label} announced SIMD-0385 v1 but decoded as version ${String(compiledMessage.version)}`);\n }\n if (compiledMessage.instructionHeaders.length !== compiledMessage.instructionPayloads.length) {\n throw new Error(`${options.label} has mismatched v1 instruction headers and payloads`);\n }\n const { PublicKey } = await import('@solana/web3.js');\n const accountKeys = compiledMessage.staticAccounts.map((key) => new PublicKey(key));\n const instructions = compiledMessage.instructionHeaders.map((header, index) => {\n if (header.programAccountIndex >= accountKeys.length)\n throw new Error(`${options.label} has an invalid program account index`);\n const payload = compiledMessage.instructionPayloads[index];\n return {\n programId: accountKeys[header.programAccountIndex].toBase58(),\n accountKeyIndexes: [...payload.instructionAccountIndices],\n data: Uint8Array.from(payload.instructionData),\n };\n });\n validateServerTransactionSemantics(Object.assign(Object.assign({}, options), { accountKeys, isAccountSigner: (index) => index >= 0 && index < compiledMessage.header.numSignerAccounts, instructions, PublicKeyCtor: PublicKey }));\n return { transaction, compiledMessage, kit };\n}\n/**\n * LF-003 parity with the v0 lane: an UNSIGNED transaction is re-based on a live\n * blockhash before the wallet signs it; a transaction that already carries a\n * co-signer's signature must keep the exact message it was co-signed against,\n * and its fence must name that same blockhash.\n */\nasync function refreshLifetime(transaction, compiledMessage, kit, rpc, serverFence) {\n var _a;\n const fence = { blockhash: serverFence.blockhash, lastValidBlockHeight: serverFence.lastValidBlockHeight };\n if (transactionHasSignature(transaction)) {\n if (String(compiledMessage.lifetimeToken) !== fence.blockhash) {\n throw new Error(`The pre-built v1 transaction was co-signed against blockhash ${String(compiledMessage.lifetimeToken)} ` +\n `but its expiry fence names ${fence.blockhash}. Nothing was signed.`);\n }\n return { transaction, fence };\n }\n if (!rpc)\n return { transaction, fence };\n if (typeof rpc.getLatestBlockhash !== 'function') {\n throw new Error('Pre-built v1 signing needs a current blockhash, but the configured Solana RPC cannot report one. Nothing was signed.');\n }\n const latest = await rpc.getLatestBlockhash('confirmed');\n const decoded = decodeBase58(String((_a = latest === null || latest === void 0 ? void 0 : latest.blockhash) !== null && _a !== void 0 ? _a : ''));\n if (decoded === null || decoded.length !== 32) {\n throw new Error(`The configured Solana RPC returned \"${latest === null || latest === void 0 ? void 0 : latest.blockhash}\" as the current blockhash, which is not a 32-byte base58 value. Nothing was signed.`);\n }\n const decompiled = kit.decompileTransactionMessage(compiledMessage, { lastValidBlockHeight: BigInt(serverFence.lastValidBlockHeight) });\n const refreshed = kit.setTransactionMessageLifetimeUsingBlockhash({ blockhash: kit.blockhash(latest.blockhash), lastValidBlockHeight: BigInt(latest.lastValidBlockHeight) }, decompiled);\n return {\n transaction: kit.compileTransaction(refreshed),\n fence: { blockhash: latest.blockhash, lastValidBlockHeight: latest.lastValidBlockHeight },\n };\n}\nexport async function handlePreBuiltV1Transaction(tx, authProvider, options, expectedIntent, beforeBroadcast) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\n const config = (_b = (_a = options === null || options === void 0 ? void 0 : options._overrides) === null || _a === void 0 ? void 0 : _a._config) !== null && _b !== void 0 ? _b : await getConfig();\n const decoded = await decodeAndValidate(tx.serializedTransaction, {\n label: 'Pre-built v1 transaction', expectedAppId: config.appId, expectedIntent,\n });\n if (typeof authProvider.signTransactionV1 !== 'function') {\n // The worker only builds v1 for a client that advertised it; reaching this\n // means the provider changed underneath the write. Refuse before any RPC.\n throw new Error('The write came back as a Solana transaction v1 (SIMD-0385) but this auth provider cannot sign v1. Nothing was signed.');\n }\n const shouldSubmit = (options === null || options === void 0 ? void 0 : options.shouldSubmitTx) !== false;\n const rpcUrl = (_c = config.rpcUrl) === null || _c === void 0 ? void 0 : _c.trim();\n const injectedRpc = (_d = options === null || options === void 0 ? void 0 : options._overrides) === null || _d === void 0 ? void 0 : _d._solanaRpc;\n if (shouldSubmit && !rpcUrl && !injectedRpc) {\n throw new Error(`Pre-built Solana transaction submission requires init({ rpcUrl }) for ${tx.network}. ` +\n `Pass a TOP-LEVEL rpcUrl (with chain) to init(), e.g. ` +\n `init({ appId, chain: '${tx.network}', rpcUrl: '<your ${tx.network} RPC endpoint>' }); ` +\n `a nested walletLogin.rpcUrl only configures wallet login and does not enable submission.`);\n }\n const { Connection } = await import('@solana/web3.js');\n const connection = injectedRpc !== null && injectedRpc !== void 0 ? injectedRpc : (rpcUrl ? new Connection(rpcUrl, 'confirmed') : null);\n const refreshed = await refreshLifetime(decoded.transaction, decoded.compiledMessage, decoded.kit, connection, tx);\n const signedTx = await authProvider.signTransactionV1(refreshed.transaction);\n if (!sameBytes(signedTx.messageBytes, refreshed.transaction.messageBytes)) {\n throw new Error('The signer changed the v1 transaction message instead of signing the exact transaction. Nothing was submitted.');\n }\n const feePayerAddress = String((_e = decoded.compiledMessage.staticAccounts[0]) !== null && _e !== void 0 ? _e : '');\n const feePayerSignature = signedTx.signatures[feePayerAddress];\n const rawTx = Uint8Array.from(decoded.kit.getTransactionEncoder().encode(signedTx));\n const signedTransaction = Buffer.from(rawTx).toString('base64');\n if (!shouldSubmit) {\n return { outcome: 'signed', lane: 'solana', transactionSignature: null, signedTransaction, fence: refreshed.fence };\n }\n if (!feePayerSignature || feePayerSignature.every((byte) => byte === 0)) {\n throw new Error('The signed v1 transaction carries no fee-payer signature; it cannot be submitted.');\n }\n // The transaction id is the fee payer's signature, derived from the signed bytes\n // BEFORE broadcasting so a lost send response still yields a reconcilable id.\n const signature = encodeBase58(Uint8Array.from(feePayerSignature));\n const submitRpc = connection;\n await (beforeBroadcast === null || beforeBroadcast === void 0 ? void 0 : beforeBroadcast({ transactionSignature: signature, signedTransaction, fence: refreshed.fence }));\n try {\n await submitRpc.sendRawTransaction(rawTx, { skipPreflight: false, maxRetries: 3 });\n }\n catch (error) {\n if (isDefinitiveSolanaSendFailure(error)) {\n if (isBoundedOnchainRuleRejection(error))\n throw markWriteNotApplied(new BoundedOnchainRuleRejection(error), 'broadcast_rejected');\n throw markWriteNotApplied(error, 'broadcast_rejected');\n }\n return {\n outcome: 'submitted', lane: 'solana', transactionSignature: signature, signedTransaction, fence: refreshed.fence,\n reason: `Broadcast response was lost or inconclusive: ${errorText(error)}`,\n };\n }\n let confirmation;\n try {\n confirmation = await submitRpc.confirmTransaction({ signature, blockhash: refreshed.fence.blockhash, lastValidBlockHeight: refreshed.fence.lastValidBlockHeight }, 'confirmed');\n }\n catch (error) {\n return {\n outcome: 'submitted', lane: 'solana', transactionSignature: signature, signedTransaction, fence: refreshed.fence,\n reason: `Confirmation outcome unknown: ${errorText(error)}`,\n };\n }\n if ((_f = confirmation.value) === null || _f === void 0 ? void 0 : _f.err) {\n let logMessages;\n try {\n logMessages = (_h = (_g = (await getTransactionJson(submitRpc, signature, 'confirmed'))) === null || _g === void 0 ? void 0 : _g.meta) === null || _h === void 0 ? void 0 : _h.logMessages;\n }\n catch (_l) {\n // Diagnostic only; the on-chain error is the verdict.\n }\n if (isBoundedOnchainRuleRejection(confirmation.value.err, logMessages)) {\n throw markWriteNotApplied(new BoundedOnchainRuleRejection(confirmation.value.err, logMessages), 'failed_onchain');\n }\n throw markWriteNotApplied(new Error(`Transaction failed: ${logMessages ? JSON.stringify(logMessages) : JSON.stringify(confirmation.value.err)}`), 'failed_onchain');\n }\n return {\n outcome: 'confirmed', lane: 'solana', transactionSignature: signature, signedTransaction, fence: refreshed.fence,\n confirmationContextSlot: (_k = (_j = confirmation.context) === null || _j === void 0 ? void 0 : _j.slot) !== null && _k !== void 0 ? _k : 0,\n };\n}\n"],"names":["Buffer"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA,SAAS,uBAAuB,CAAC,WAAW,EAAE;AAC9C,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC;AACvG;AACA,SAAS,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE;AACzB,IAAI,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;AAC7B,QAAQ,OAAO,KAAK;AACpB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC;AACxC,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACzB,YAAY,OAAO,KAAK;AACxB,IAAI,OAAO,IAAI;AACf;AACA,eAAe,iBAAiB,CAAC,qBAAqB,EAAE,OAAO,EAAE;AACjE,IAAI,MAAM,GAAG,GAAG,MAAM,OAAO,aAAa,CAAC;AAC3C,IAAI,MAAM,WAAW,GAAG,GAAG,CAAC,qBAAqB,EAAE,CAAC,MAAM,CAACA,oBAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC;AACxG,IAAI,MAAM,eAAe,GAAG,GAAG,CAAC,oCAAoC,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC;AACvG,IAAI,IAAI,eAAe,CAAC,OAAO,KAAK,CAAC,EAAE;AACvC,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,+CAA+C,EAAE,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC5H,IAAI;AACJ,IAAI,IAAI,eAAe,CAAC,kBAAkB,CAAC,MAAM,KAAK,eAAe,CAAC,mBAAmB,CAAC,MAAM,EAAE;AAClG,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;AAC9F,IAAI;AACJ,IAAI,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,OAAO,iBAAiB,CAAC;AACzD,IAAI,MAAM,WAAW,GAAG,eAAe,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;AACvF,IAAI,MAAM,YAAY,GAAG,eAAe,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,KAAK;AACnF,QAAQ,IAAI,MAAM,CAAC,mBAAmB,IAAI,WAAW,CAAC,MAAM;AAC5D,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;AACpF,QAAQ,MAAM,OAAO,GAAG,eAAe,CAAC,mBAAmB,CAAC,KAAK,CAAC;AAClE,QAAQ,OAAO;AACf,YAAY,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,QAAQ,EAAE;AACzE,YAAY,iBAAiB,EAAE,CAAC,GAAG,OAAO,CAAC,yBAAyB,CAAC;AACrE,YAAY,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;AAC1D,SAAS;AACT,IAAI,CAAC,CAAC;AACN,IAAI,kCAAkC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,IAAI,KAAK,GAAG,eAAe,CAAC,MAAM,CAAC,iBAAiB,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,CAAC;AACtO,IAAI,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,EAAE;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe,CAAC,WAAW,EAAE,eAAe,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE;AACpF,IAAI,IAAI,EAAE;AACV,IAAI,MAAM,KAAK,GAAG,EAAE,SAAS,EAAE,WAAW,CAAC,SAAS,EAAE,oBAAoB,EAAE,WAAW,CAAC,oBAAoB,EAAE;AAC9G,IAAI,IAAI,uBAAuB,CAAC,WAAW,CAAC,EAAE;AAC9C,QAAQ,IAAI,MAAM,CAAC,eAAe,CAAC,aAAa,CAAC,KAAK,KAAK,CAAC,SAAS,EAAE;AACvE,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,6DAA6D,EAAE,MAAM,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;AACpI,gBAAgB,CAAC,2BAA2B,EAAE,KAAK,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;AACrF,QAAQ;AACR,QAAQ,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE;AACrC,IAAI;AACJ,IAAI,IAAI,CAAC,GAAG;AACZ,QAAQ,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE;AACrC,IAAI,IAAI,OAAO,GAAG,CAAC,kBAAkB,KAAK,UAAU,EAAE;AACtD,QAAQ,MAAM,IAAI,KAAK,CAAC,sHAAsH,CAAC;AAC/I,IAAI;AACJ,IAAI,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,kBAAkB,CAAC,WAAW,CAAC;AAC5D,IAAI,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,SAAS,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;AACrJ,IAAI,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,MAAM,KAAK,EAAE,EAAE;AACnD,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,oCAAoC,EAAE,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,oFAAoF,CAAC,CAAC;AACtN,IAAI;AACJ,IAAI,MAAM,UAAU,GAAG,GAAG,CAAC,2BAA2B,CAAC,eAAe,EAAE,EAAE,oBAAoB,EAAE,MAAM,CAAC,WAAW,CAAC,oBAAoB,CAAC,EAAE,CAAC;AAC3I,IAAI,MAAM,SAAS,GAAG,GAAG,CAAC,2CAA2C,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,oBAAoB,EAAE,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAE,EAAE,UAAU,CAAC;AAC5L,IAAI,OAAO;AACX,QAAQ,WAAW,EAAE,GAAG,CAAC,kBAAkB,CAAC,SAAS,CAAC;AACtD,QAAQ,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,oBAAoB,EAAE,MAAM,CAAC,oBAAoB,EAAE;AACjG,KAAK;AACL;AACO,eAAe,2BAA2B,CAAC,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE;AAC9G,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9C,IAAI,MAAM,MAAM,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,UAAU,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,MAAM,SAAS,EAAE;AACxM,IAAI,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,EAAE,CAAC,qBAAqB,EAAE;AACtE,QAAQ,KAAK,EAAE,0BAA0B,EAAE,aAAa,EAAE,MAAM,CAAC,KAAK,EAAE,cAAc;AACtF,KAAK,CAAC;AACN,IAAI,IAAI,OAAO,YAAY,CAAC,iBAAiB,KAAK,UAAU,EAAE;AAC9D;AACA;AACA,QAAQ,MAAM,IAAI,KAAK,CAAC,uHAAuH,CAAC;AAChJ,IAAI;AACJ,IAAI,MAAM,YAAY,GAAG,CAAC,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,cAAc,MAAM,KAAK;AAC7G,IAAI,MAAM,MAAM,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,IAAI,EAAE;AACtF,IAAI,MAAM,WAAW,GAAG,CAAC,EAAE,GAAG,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,UAAU,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,UAAU;AACtJ,IAAI,IAAI,YAAY,IAAI,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE;AACjD,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,sEAAsE,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;AAC/G,YAAY,CAAC,qDAAqD,CAAC;AACnE,YAAY,CAAC,sBAAsB,EAAE,EAAE,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,OAAO,CAAC,oBAAoB,CAAC;AACpG,YAAY,CAAC,wFAAwF,CAAC,CAAC;AACvG,IAAI;AACJ,IAAI,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,OAAO,iBAAiB,CAAC;AAC1D,IAAI,MAAM,UAAU,GAAG,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,MAAM,GAAG,WAAW,IAAI,MAAM,GAAG,IAAI,UAAU,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,IAAI,CAAC;AAC3I,IAAI,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,eAAe,EAAE,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,EAAE,CAAC;AACtH,IAAI,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,iBAAiB,CAAC,SAAS,CAAC,WAAW,CAAC;AAChF,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE;AAC/E,QAAQ,MAAM,IAAI,KAAK,CAAC,gHAAgH,CAAC;AACzI,IAAI;AACJ,IAAI,MAAM,eAAe,GAAG,MAAM,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,EAAE,CAAC;AACxH,IAAI,MAAM,iBAAiB,GAAG,QAAQ,CAAC,UAAU,CAAC,eAAe,CAAC;AAClE,IAAI,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACvF,IAAI,MAAM,iBAAiB,GAAGA,oBAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;AACnE,IAAI,IAAI,CAAC,YAAY,EAAE;AACvB,QAAQ,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,oBAAoB,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE;AAC3H,IAAI;AACJ,IAAI,IAAI,CAAC,iBAAiB,IAAI,iBAAiB,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,EAAE;AAC7E,QAAQ,MAAM,IAAI,KAAK,CAAC,mFAAmF,CAAC;AAC5G,IAAI;AACJ;AACA;AACA,IAAI,MAAM,SAAS,GAAG,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;AACtE,IAAI,MAAM,SAAS,GAAG,UAAU;AAChC,IAAI,OAAO,eAAe,KAAK,IAAI,IAAI,eAAe,KAAK,MAAM,GAAG,MAAM,GAAG,eAAe,CAAC,EAAE,oBAAoB,EAAE,SAAS,EAAE,iBAAiB,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC;AAC7K,IAAI,IAAI;AACR,QAAQ,MAAM,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;AAC1F,IAAI;AACJ,IAAI,OAAO,KAAK,EAAE;AAClB,QAAQ,IAAI,6BAA6B,CAAC,KAAK,CAAC,EAAE;AAClD,YAAY,IAAI,6BAA6B,CAAC,KAAK,CAAC;AACpD,gBAAgB,MAAM,mBAAmB,CAAC,IAAI,2BAA2B,CAAC,KAAK,CAAC,EAAE,oBAAoB,CAAC;AACvG,YAAY,MAAM,mBAAmB,CAAC,KAAK,EAAE,oBAAoB,CAAC;AAClE,QAAQ;AACR,QAAQ,OAAO;AACf,YAAY,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,oBAAoB,EAAE,SAAS,EAAE,iBAAiB,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK;AAC5H,YAAY,MAAM,EAAE,CAAC,6CAA6C,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AACtF,SAAS;AACT,IAAI;AACJ,IAAI,IAAI,YAAY;AACpB,IAAI,IAAI;AACR,QAAQ,YAAY,GAAG,MAAM,SAAS,CAAC,kBAAkB,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,SAAS,EAAE,oBAAoB,EAAE,SAAS,CAAC,KAAK,CAAC,oBAAoB,EAAE,EAAE,WAAW,CAAC;AACvL,IAAI;AACJ,IAAI,OAAO,KAAK,EAAE;AAClB,QAAQ,OAAO;AACf,YAAY,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,oBAAoB,EAAE,SAAS,EAAE,iBAAiB,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK;AAC5H,YAAY,MAAM,EAAE,CAAC,8BAA8B,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AACvE,SAAS;AACT,IAAI;AACJ,IAAI,IAAI,CAAC,EAAE,GAAG,YAAY,CAAC,KAAK,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,GAAG,EAAE;AAC/E,QAAQ,IAAI,WAAW;AACvB,QAAQ,IAAI;AACZ,YAAY,WAAW,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,MAAM,kBAAkB,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,WAAW;AACtM,QAAQ;AACR,QAAQ,OAAO,EAAE,EAAE;AACnB;AACA,QAAQ;AACR,QAAQ,IAAI,6BAA6B,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE;AAChF,YAAY,MAAM,mBAAmB,CAAC,IAAI,2BAA2B,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE,gBAAgB,CAAC;AAC7H,QAAQ;AACR,QAAQ,MAAM,mBAAmB,CAAC,IAAI,KAAK,CAAC,CAAC,oBAAoB,EAAE,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,gBAAgB,CAAC;AAC3K,IAAI;AACJ,IAAI,OAAO;AACX,QAAQ,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,oBAAoB,EAAE,SAAS,EAAE,iBAAiB,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK;AACxH,QAAQ,uBAAuB,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,YAAY,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,IAAI,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,CAAC;AACnJ,KAAK;AACL;;;;"}
|
|
@@ -7,3 +7,7 @@ export declare const TRANSPORT_RETENTION_GRACE_MS: number;
|
|
|
7
7
|
* non-numeric expiry is not a usable bound, so such a session is never retained.
|
|
8
8
|
*/
|
|
9
9
|
export declare function mayRetainAfterTransportFailure(expSeconds: unknown, now?: number): boolean;
|
|
10
|
+
/** Throws a non-definitive `refresh_backoff` error while `key` is still backing off. */
|
|
11
|
+
export declare function assertRefreshAllowed(key: string, now?: number): void;
|
|
12
|
+
/** Record the outcome of a refresh attempt for `key`. */
|
|
13
|
+
export declare function recordRefreshOutcome(key: string, err: unknown, now?: number): void;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bounded-sh/core",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.115",
|
|
4
4
|
"description": "Shared client, data-plane, and transport primitives for Bounded, the full-stack app builder and runtime for AI-built apps: policy-enforced operations, files, functions, and realtime.",
|
|
5
5
|
"homepage": "https://bounded.sh/docs/sdk",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"scripts": {
|
|
17
17
|
"build": "rm -rf ./dist ./.rollup-tmp && tsc -p tsconfig.build.json --outDir .rollup-tmp --declarationDir .rollup-tmp --emitDeclarationOnly false && rollup -c && tsc -p tsconfig.build.json --emitDeclarationOnly --declarationDir dist && rm -rf ./.rollup-tmp",
|
|
18
18
|
"watch": "rollup -c -w",
|
|
19
|
-
"test": "node src/client/run-config-network-test.mjs && node src/client/run-read-principal-test.mjs && node src/client/run-principal-collision-test.mjs && node src/client/run-abortable-read-test.mjs && node src/utils/run-api-abort-test.mjs && node src/utils/run-api-transient-get-retry-test.mjs && node src/utils/run-api-rule-evaluation-failed-test.mjs && node src/utils/run-auth-api-issuer-switch-test.mjs && node src/utils/run-auth-api-server-credential-test.mjs && node src/utils/run-auth-api-revoke-test.mjs && node src/utils/run-session-manager-binding-test.mjs && node src/utils/run-web-session-manager-signout-test.mjs && node src/utils/run-web-session-manager-refresh-transport-test.mjs && node src/utils/refresh-error.source.test.mjs && node src/utils/run-auth-api-refresh-per-token-test.mjs && node src/utils/run-core-platform-encode-test.mjs && node src/utils/rn-session-manager-example.source.test.mjs && node src/utils/run-session-protocol-test.mjs && node src/utils/run-auth-token-freshness-test.mjs && node src/utils/run-api-401-recovery-test.mjs && node src/utils/run-server-session-manager-test.mjs && node src/utils/api-refresh-inflight-key.source.test.mjs && node src/client/run-row-shape-test.mjs && node src/client/run-transport-test.mjs && node src/client/run-queries-coalesce-test.mjs && node src/client/run-runexpression-overrides-test.mjs && node src/client/run-subscribe-query-test.mjs && node src/client/run-public-export-surface-test.mjs && node src/client/run-decline-cause-test.mjs && node src/client/run-live-auth-test.mjs && node src/client/run-live-view-principal-test.mjs && node src/client/run-subscription-auth-error-test.mjs && node src/client/run-subscription-reconnect-dependency-test.mjs && node src/client/run-subscription-auth-change-clear-test.mjs && node src/client/run-reconnect-backoff-test.mjs && node src/client/run-socket-heartbeat-test.mjs && node src/client/run-subscription-heartbeat-test.mjs && node src/client/run-subscription-confirmation-retry-test.mjs && node src/client/run-subscription-shard-test.mjs && node src/client/run-onchain-validation-test.mjs && node src/client/run-set-result-test.mjs && node src/client/run-solana-prebuilt-blockhash-test.mjs && node src/client/run-reconcile-set-result-test.mjs && node src/client/run-set-file-result-test.mjs && node src/client/run-set-result-types-test.mjs && node src/utils/evm/run-evm-utils-test.mjs && node src/client/websocket-auth-url.test.mjs && node src/client/run-create-client-http-test.mjs && node src/client/run-create-client-subscribe-test.mjs && node src/client/run-app-token-test.mjs && node src/client/run-wallet-config-binding-test.mjs && node src/client/run-functions-timeout-test.mjs && node src/run-user-address-nullable-test.mjs && node src/utils/sol/run-solana-sign-in-message-test.mjs",
|
|
19
|
+
"test": "node src/client/run-config-network-test.mjs && node src/client/run-read-principal-test.mjs && node src/client/run-principal-collision-test.mjs && node src/client/run-abortable-read-test.mjs && node src/utils/run-api-abort-test.mjs && node src/utils/run-api-transient-get-retry-test.mjs && node src/utils/run-api-rule-evaluation-failed-test.mjs && node src/utils/run-auth-api-issuer-switch-test.mjs && node src/utils/run-auth-api-server-credential-test.mjs && node src/utils/run-auth-api-revoke-test.mjs && node src/utils/run-session-manager-binding-test.mjs && node src/utils/run-web-session-manager-signout-test.mjs && node src/utils/run-web-session-manager-refresh-transport-test.mjs && node src/utils/refresh-error.source.test.mjs && node src/utils/run-auth-api-refresh-per-token-test.mjs && node src/utils/run-core-platform-encode-test.mjs && node src/utils/rn-session-manager-example.source.test.mjs && node src/utils/run-session-protocol-test.mjs && node src/utils/run-auth-token-freshness-test.mjs && node src/utils/run-api-401-recovery-test.mjs && node src/utils/run-server-session-manager-test.mjs && node src/utils/api-refresh-inflight-key.source.test.mjs && node src/client/run-row-shape-test.mjs && node src/client/run-transport-test.mjs && node src/client/run-queries-coalesce-test.mjs && node src/client/run-runexpression-overrides-test.mjs && node src/client/run-subscribe-query-test.mjs && node src/client/run-public-export-surface-test.mjs && node src/client/run-decline-cause-test.mjs && node src/client/run-live-auth-test.mjs && node src/client/run-live-view-principal-test.mjs && node src/client/run-subscription-auth-error-test.mjs && node src/client/run-subscription-reconnect-dependency-test.mjs && node src/client/run-subscription-auth-change-clear-test.mjs && node src/client/run-reconnect-backoff-test.mjs && node src/client/run-socket-heartbeat-test.mjs && node src/client/run-subscription-heartbeat-test.mjs && node src/client/run-subscription-confirmation-retry-test.mjs && node src/client/run-subscription-shard-test.mjs && node src/client/run-onchain-validation-test.mjs && node src/client/run-set-result-test.mjs && node src/client/run-venue-grant-write-test.mjs && node src/client/run-venue-grant-write-http-test.mjs && node src/client/run-solana-prebuilt-blockhash-test.mjs && node src/client/run-reconcile-set-result-test.mjs && node src/client/run-set-file-result-test.mjs && node src/client/run-set-result-types-test.mjs && node src/utils/evm/run-evm-utils-test.mjs && node src/client/websocket-auth-url.test.mjs && node src/client/run-create-client-http-test.mjs && node src/client/run-create-client-subscribe-test.mjs && node src/client/run-app-token-test.mjs && node src/client/run-wallet-config-binding-test.mjs && node src/client/run-functions-timeout-test.mjs && node src/run-user-address-nullable-test.mjs && node src/utils/sol/run-solana-sign-in-message-test.mjs",
|
|
20
20
|
"prepare": "npm run build"
|
|
21
21
|
},
|
|
22
22
|
"files": [
|