@dvmkit/sdk 0.20.0 → 0.21.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.
@@ -1031,6 +1031,7 @@ function attachCreditMenu(body, menu) {
1031
1031
  function toCreditTerms(menu) {
1032
1032
  return {
1033
1033
  ...menu.balance_payment && { balance_payment: true },
1034
+ ...menu.jit_refund_park && { jit_refund_park: true },
1034
1035
  min_micro: menu.min_micro,
1035
1036
  max_micro: menu.max_micro,
1036
1037
  ttl_ms: menu.ttl_ms,
@@ -18479,6 +18480,16 @@ function waitForInlineResult(store, jobId, localJob, seconds, signal) {
18479
18480
  notify();
18480
18481
  });
18481
18482
  }
18483
+ var INLINE_RESULT_MESSAGES_MAX_BYTES = 1048576;
18484
+ async function inlineResultMessages(store, job) {
18485
+ if (job.status !== "completed" || job.redactedAt !== void 0 || !job.messages.some((message) => message.type === "artifact")) return void 0;
18486
+ let messages = job.messages.filter((message) => message.seq > 0);
18487
+ if (isStreamableJobStore(store)) {
18488
+ const durable = await store.getMessages(job.id, 0, { includeHeld: true });
18489
+ if (durable.length > 0) messages = durable;
18490
+ }
18491
+ return Buffer.byteLength(JSON.stringify(messages), "utf8") <= INLINE_RESULT_MESSAGES_MAX_BYTES ? messages : void 0;
18492
+ }
18482
18493
 
18483
18494
  // src/sdk/server/job-read-response.ts
18484
18495
  async function withJobReadAvailability(read) {
@@ -19027,7 +19038,15 @@ async function handleBitcoinLiability(c, opts) {
19027
19038
  async function handleParkDrain(c, opts) {
19028
19039
  const auth = await requireAuth(c, opts);
19029
19040
  if ("response" in auth) return auth.response;
19030
- if (!opts.accumulatorWired) {
19041
+ let body = null;
19042
+ try {
19043
+ body = await c.req.json();
19044
+ } catch {
19045
+ body = null;
19046
+ }
19047
+ const earlyEvidence = typeof body === "object" && body !== null ? parseMintEvidence(body.mint_evidence) : void 0;
19048
+ const accumulatorFree = earlyEvidence !== void 0 && earlyEvidence !== "invalid";
19049
+ if (!opts.accumulatorWired && !accumulatorFree) {
19031
19050
  return c.json(
19032
19051
  {
19033
19052
  error: "accumulator_not_wired",
@@ -19036,10 +19055,7 @@ async function handleParkDrain(c, opts) {
19036
19055
  503
19037
19056
  );
19038
19057
  }
19039
- let body;
19040
- try {
19041
- body = await c.req.json();
19042
- } catch {
19058
+ if (typeof body !== "object" || body === null) {
19043
19059
  return c.json({ error: "invalid_body", message: "Request body must be JSON." }, 400);
19044
19060
  }
19045
19061
  const creditId = body.credit_id;
@@ -19211,7 +19227,7 @@ async function handleParkDrain(c, opts) {
19211
19227
  502
19212
19228
  );
19213
19229
  }
19214
- const consumed = await fetchRowsForMelt(opts.db, opts.dvmId, rowIds);
19230
+ const consumed = mintEvidence ? [] : await fetchRowsForMelt(opts.db, opts.dvmId, rowIds);
19215
19231
  if (consumed.length !== rowIds.length) {
19216
19232
  const found = new Set(consumed.map((r) => r.id));
19217
19233
  return c.json(
@@ -19240,7 +19256,7 @@ async function handleParkDrain(c, opts) {
19240
19256
  const client = await opts.db.connect();
19241
19257
  try {
19242
19258
  await client.query("BEGIN");
19243
- await markRowsDrained(client, rowIds, drainId, nowMs);
19259
+ if (!mintEvidence) await markRowsDrained(client, rowIds, drainId, nowMs);
19244
19260
  if (keepProofs.length > 0) {
19245
19261
  await insertAccumulatorRows(opts.db, {
19246
19262
  dvmId: opts.dvmId,
@@ -22515,7 +22531,7 @@ var DVMServer = class {
22515
22531
  this.app.post("/v1/job/:id/messages", (c) => this.handlePostMessage(c));
22516
22532
  this.app.delete("/v1/job/:id", (c) => this.handleDeleteJob(c));
22517
22533
  this.app.post("/v1/credit", (c) => this.handleCredit(c));
22518
- if (this.opts.db && this.opts.dvmId && this.opts.lockPubkey) {
22534
+ if (this.adminCreditRoutesMounted()) {
22519
22535
  const db = this.opts.db;
22520
22536
  const dvmId = this.opts.dvmId;
22521
22537
  const payoutReporter = this.opts.payoutReporter;
@@ -23090,6 +23106,10 @@ var DVMServer = class {
23090
23106
  creditTtlMs: this.descriptor.credit ? this.descriptor.credit.ttlSeconds * 1e3 : void 0
23091
23107
  };
23092
23108
  }
23109
+ /** Builder-lock admin routes (including JIT refund park) need only these three. */
23110
+ adminCreditRoutesMounted() {
23111
+ return !!(this.opts.db && this.opts.dvmId && this.opts.lockPubkey);
23112
+ }
23093
23113
  balancePaymentSupported(includeDisabled = false) {
23094
23114
  return (includeDisabled || this.opts.env.DVMKIT_BALANCE_PAYMENTS !== "false") && !!this.descriptor.credit && !!this.opts.db && this.creditLedger instanceof CreditLedger && this.jobManager.store instanceof PostgresJobStore && !!this.authAudience && !!this.descriptor.auth;
23095
23115
  }
@@ -23123,6 +23143,7 @@ var DVMServer = class {
23123
23143
  callerPubkey
23124
23144
  });
23125
23145
  if (menu && this.balancePaymentSupported()) menu.balance_payment = true;
23146
+ if (menu && this.adminCreditRoutesMounted()) menu.jit_refund_park = true;
23126
23147
  return menu;
23127
23148
  }
23128
23149
  async handleCredit(c) {
@@ -24691,7 +24712,8 @@ var DVMServer = class {
24691
24712
  return snapshot;
24692
24713
  }
24693
24714
  async submitResponse(c, job, jobToken) {
24694
- if (job.paymentRail === "cashu" && job.paymentTxHash?.startsWith(DERIVED_REQUEST_ID_PREFIX) && !job.requesterPubkey && c.req.header("X-Cashu") && !c.req.header("X-Cashu-Request-Id")) {
24715
+ const inlineResult = job.paymentRail === "cashu" && job.paymentTxHash?.startsWith(DERIVED_REQUEST_ID_PREFIX) && !job.requesterPubkey && c.req.header("X-Cashu") && !c.req.header("X-Cashu-Request-Id");
24716
+ if (inlineResult) {
24695
24717
  await waitForInlineResult(
24696
24718
  this.jobManager.store,
24697
24719
  job.id,
@@ -24701,7 +24723,10 @@ var DVMServer = class {
24701
24723
  );
24702
24724
  }
24703
24725
  const snapshot = await this.readJobSnapshot(job, !("listeners" in job));
24704
- return buildSubmitResponse(c, snapshot, jobToken, await this.contentFields(snapshot));
24726
+ const messages = inlineResult ? await inlineResultMessages(this.jobManager.store, snapshot) : void 0;
24727
+ const fields = await this.contentFields(snapshot);
24728
+ if (messages && fields.content_available !== false) fields.messages = messages;
24729
+ return buildSubmitResponse(c, snapshot, jobToken, fields);
24705
24730
  }
24706
24731
  async contentFields(job) {
24707
24732
  const store = this.jobManager.store;
@@ -4754,6 +4754,11 @@ declare function unknownRouteNotFound(c: Context): Response;
4754
4754
  interface CreditTerms {
4755
4755
  /** Signed balance payments on the job messages endpoint are supported. */
4756
4756
  balance_payment?: true;
4757
+ /**
4758
+ * The authenticated builder park-drain route accepts a validated just-in-time mint refund
4759
+ * even when Cashu receiving is off. Absent or false means unsupported; never infer it.
4760
+ */
4761
+ jit_refund_park?: true;
4757
4762
  /** Smallest funding accepted, in 1e-6 units of `currency`. */
4758
4763
  min_micro: number;
4759
4764
  /** Largest residual balance a caller may hold, in 1e-6 units of `currency`. */
@@ -1139,6 +1139,11 @@ interface Quote {
1139
1139
  interface CreditTerms {
1140
1140
  /** Signed balance payments on the job messages endpoint are supported. */
1141
1141
  balance_payment?: true;
1142
+ /**
1143
+ * The authenticated builder park-drain route accepts a validated just-in-time mint refund
1144
+ * even when Cashu receiving is off. Absent or false means unsupported; never infer it.
1145
+ */
1146
+ jit_refund_park?: true;
1142
1147
  /** Smallest funding accepted, in 1e-6 units of `currency`. */
1143
1148
  min_micro: number;
1144
1149
  /** Largest residual balance a caller may hold, in 1e-6 units of `currency`. */
@@ -1103,6 +1103,7 @@ function parseCreditTerms(raw) {
1103
1103
  if (credit.x402 !== void 0 && !x402) return void 0;
1104
1104
  return {
1105
1105
  ...credit.balance_payment === true && { balance_payment: true },
1106
+ ...credit.jit_refund_park === true && { jit_refund_park: true },
1106
1107
  min_micro: credit.min_micro,
1107
1108
  max_micro: credit.max_micro,
1108
1109
  ttl_ms: credit.ttl_ms,
@@ -6,8 +6,8 @@ import { Env, BlankSchema } from 'hono/types';
6
6
  import { Pool } from 'pg';
7
7
  export { Pool } from 'pg';
8
8
  import { g as getWallet } from '../wallet-Dwjs5n_M.js';
9
- import { C as ConsumedCredentialStore, L as LockPubkeyStateLoader } from '../credit-menu-BpPa43Co.js';
10
- export { A as AccumulatorPool, a as AppEnv, b as CreditFundingReport, D as DEFAULT_LOCK_PUBKEY_GRACE_SECONDS, F as FiatDenomination, c as FiatDenominationFailure, d as FundOnlyRequest, I as IncomingPaymentOpts, J as JobCancelledError, e as LockPubkeyPool, f as LockPubkeyState, M as MintHealthTracker, P as PAYMENT_PROOF_KEYS, g as PaymentErrorCode, h as PaymentErrorDetail, i as PaymentInfo, j as PostgresTempoChargeStore, R as ReporterBannerOpts, k as ResolvedFx, l as RevenueBootCheckOpts, S as SDKServerOpts, m as ServerJob, n as ShortPayForfeit, T as TempoChannelReport, o as TempoObserverHealth, p as TempoSessionChannelMismatchError, U as UpfrontPaymentOpts, V as VerifiedIncomingPayment, q as VerifyIncomingSnapshot, X as X402BatchChannelObservation, r as X402FacilitatorHealth, s as X402SettlementEvidenceOutcome, t as X402SettlementRepair, u as X402SettlementRepairRefusal, v as X402SettlementRepaired, w as X402WedgedSettlement, x as X402WedgedSettlementPage, y as X402_BATCH_SETTLEMENT_MAINNET_NETWORK, z as abortJob, B as activePubkeySet, E as applyPaymentInfoToJob, G as assertRevenueReporterReady, H as buildPaymentErrorResponse, K as clearAccumulatorForDvm, N as createDVMServer, O as creditDepositPayload, Q as derivedFundCreditId, W as devModeSkipsPaymentVerification, Y as fromJobRecord, Z as fundedMicroFor, _ as hasPaymentProof, $ as hashLockKey, a0 as implicitCreditId, a1 as initLockPubkeyTable, a2 as initWalletAccumulatorTable, a3 as insertAccumulatorRows, a4 as isDerivedCreditId, a5 as isTerminal, a6 as isYieldMessage, a7 as issueUpfrontChallenges, a8 as loadLockPubkeyState, a9 as msatsToFiatMicro, aa as paymentErrorBody, ab as pinAskFiat, ac as priceFiatMicro, ad as processIncomingPayment, ae as providerMessage, af as pruneRetired, ag as repairX402ExactSettlementEffect, ah as resolveFxSnapshot, ai as resolvePriceFiat, aj as revenueReporterBannerState, ak as rotateLockPubkey, al as seedLockPubkeyState, am as toCreditTerms, an as toJobRecord, ao as unknownRouteNotFound, ap as verifyIncomingPayment, aq as verifyTempoSessionManagementCredential, ar as verifyUpfrontPayment, as as x402RequiredUsdcMicro, at as x402SettledShare } from '../credit-menu-BpPa43Co.js';
9
+ import { C as ConsumedCredentialStore, L as LockPubkeyStateLoader } from '../credit-menu-DbjmA1vK.js';
10
+ export { A as AccumulatorPool, a as AppEnv, b as CreditFundingReport, D as DEFAULT_LOCK_PUBKEY_GRACE_SECONDS, F as FiatDenomination, c as FiatDenominationFailure, d as FundOnlyRequest, I as IncomingPaymentOpts, J as JobCancelledError, e as LockPubkeyPool, f as LockPubkeyState, M as MintHealthTracker, P as PAYMENT_PROOF_KEYS, g as PaymentErrorCode, h as PaymentErrorDetail, i as PaymentInfo, j as PostgresTempoChargeStore, R as ReporterBannerOpts, k as ResolvedFx, l as RevenueBootCheckOpts, S as SDKServerOpts, m as ServerJob, n as ShortPayForfeit, T as TempoChannelReport, o as TempoObserverHealth, p as TempoSessionChannelMismatchError, U as UpfrontPaymentOpts, V as VerifiedIncomingPayment, q as VerifyIncomingSnapshot, X as X402BatchChannelObservation, r as X402FacilitatorHealth, s as X402SettlementEvidenceOutcome, t as X402SettlementRepair, u as X402SettlementRepairRefusal, v as X402SettlementRepaired, w as X402WedgedSettlement, x as X402WedgedSettlementPage, y as X402_BATCH_SETTLEMENT_MAINNET_NETWORK, z as abortJob, B as activePubkeySet, E as applyPaymentInfoToJob, G as assertRevenueReporterReady, H as buildPaymentErrorResponse, K as clearAccumulatorForDvm, N as createDVMServer, O as creditDepositPayload, Q as derivedFundCreditId, W as devModeSkipsPaymentVerification, Y as fromJobRecord, Z as fundedMicroFor, _ as hasPaymentProof, $ as hashLockKey, a0 as implicitCreditId, a1 as initLockPubkeyTable, a2 as initWalletAccumulatorTable, a3 as insertAccumulatorRows, a4 as isDerivedCreditId, a5 as isTerminal, a6 as isYieldMessage, a7 as issueUpfrontChallenges, a8 as loadLockPubkeyState, a9 as msatsToFiatMicro, aa as paymentErrorBody, ab as pinAskFiat, ac as priceFiatMicro, ad as processIncomingPayment, ae as providerMessage, af as pruneRetired, ag as repairX402ExactSettlementEffect, ah as resolveFxSnapshot, ai as resolvePriceFiat, aj as revenueReporterBannerState, ak as rotateLockPubkey, al as seedLockPubkeyState, am as toCreditTerms, an as toJobRecord, ao as unknownRouteNotFound, ap as verifyIncomingPayment, aq as verifyTempoSessionManagementCredential, ar as verifyUpfrontPayment, as as x402RequiredUsdcMicro, at as x402SettledShare } from '../credit-menu-DbjmA1vK.js';
11
11
  export { O as OutgoingMessage, S as StaleJobReapable, i as isStaleJobReapable } from '../job-store-p45j28px.js';
12
12
  import { z } from 'zod';
13
13
  export { f as LockPubkeyStoreLockPubkey, t as lockPubkeyStoreToLockPubkey } from '../lightning-backend-DO7G7VqP.js';
@@ -61,7 +61,7 @@ import {
61
61
  verifyUpfrontPayment,
62
62
  x402RequiredUsdcMicro,
63
63
  x402SettledShare
64
- } from "../chunk-NWOSJFZX.js";
64
+ } from "../chunk-MUMZPUYD.js";
65
65
  import "../chunk-XRLKGCAW.js";
66
66
  import {
67
67
  PayoutReporter
@@ -1,8 +1,8 @@
1
1
  import { ai as CashuMode, bT as CreditLedgerQuerier, bU as CreditDrainEnqueue, bV as HostedSettlementReportObligations, w as ResolvedCreditConfig, bW as DVMAuthScheme, F as SignedRequestDomain, bX as CreditLedgerLike, bY as X402RefundSettlementGate, bZ as CreditSnapshot, b_ as CreditDrawRefundArgs, b$ as CreditDrawRefundResult, c0 as DrawResult, c1 as X402SettlementStatus, c2 as X402UnresolvedRefund, c3 as GrownDrawResult, c4 as DrawResolution, c5 as FundingRecord, c6 as CreditFundingEvidence, c7 as CreditInvoiceRecord, c8 as InvoiceSettlement, c9 as BlockedInvoiceCursor, ca as InvoiceReconciliation, cb as InvoiceWriteOff, cc as DrawRecord, cd as StalePendingDrawCursor, ce as TempoCreditLossEvidence, cf as TempoCreditLoss, cg as X402CreditLossEvidence, ch as X402CreditLoss, ci as DrainMethod, cj as DrainRequestResult, ck as BitcoinDepositLiability, bx as FundingLot, cl as CreditDrainRecord, cm as ChannelDrainCursor, cn as DrainWriteOff, co as DrainTransitionResult, cp as DrainReleaseResult, cq as DrainFulfilment, cr as HostingCleanupFence, aC as StepRecord, a4 as JobReceipt, a9 as Message, K as KVStore, M as SignedRequestReplayStore, Z as ZodLike, a as DVMDescriptor } from '../step-cache-CcCjpZm1.js';
2
2
  export { cs as CLIENT_COMPATIBILITY_HEADERS, d as CanonicalEnvelope, ct as ClientCompatibility, cu as ClientCompatibilityEnv, cv as ClientCompatibilityGate, cw as ClientCompatibilityRequirement, cx as ClientSemVer, g as CreateSignedRequestVerifierOpts, cy as CreditFundingBasis, cz as CreditInvoiceStatus, cA as CreditLedger, cB as CreditLedgerError, cC as CreditLedgerErrorCode, cD as CreditLedgerErrorDetails, cE as CreditLedgerPool, cF as CreditStatus, cG as DRAIN_DELIVERY_RESERVE_SATS, cH as DVM_PROTOCOL_VERSION, cI as DrainConflictReason, cJ as DrawRailValue, cK as DrawStatus, cL as HostedTempoCloseReportWriteOff, cM as JobCostReportPayload, cN as JobTerminalReportPayload, cO as PostgresX402ChannelStorage, cP as ReplayStoreBackend, cQ as RevenueSkippedNoRailPayload, cR as RevenueSkippedNoRailReason, z as SIGNED_REQUEST_AUTH_ID, B as SIGNED_REQUEST_STATEMENT_VERSION, cS as Secp256k1AuthOpts, E as SignedRequestAudience, G as SignedRequestError, H as SignedRequestFailure, N as SignedRequestSignOpts, O as SignedRequestStatementHeader, T as SignedRequestVerifier, cT as TempoDrainDecision, cU as TempoDrainDecisionArgs, cV as TempoDrainDecisionResult, cW as TempoDrainHoldReason, V as UpfrontPayment, cX as X402ChannelStorageOpts, cY as X402RelayLockHolder, cZ as X402RelaySubmissionLock, c_ as X402RelaySubmissionLockError, c$ as allocateDrawValue, d0 as clientCompatibilityAttributes, d1 as clientCompatibilityMiddleware, d2 as clientUpgradeRequired, W as createSignedRequestVerifier, d3 as parseClientCapabilities, d4 as parseClientCompatibility, d5 as parseDvmClient, d6 as parseProtocolVersion, d7 as requireClientCompatibility, d8 as retryHostedTempoCloseReport, d9 as secp256k1Auth, da as signedRequestInput, Y as signedRequestStatementHeader, db as writeOffHostedTempoCloseReport } from '../step-cache-CcCjpZm1.js';
3
3
  import { Pool } from 'pg';
4
- import { au as CreditMenu, a as AppEnv, U as UpfrontPaymentOpts, i as PaymentInfo, av as ReceiptIssuer, aw as LightningReceive, ax as TempoSettlementReadiness, ay as DVMHostOpts, az as DVMServeResult, L as LockPubkeyStateLoader, C as ConsumedCredentialStore } from '../credit-menu-BpPa43Co.js';
5
- export { aA as BuildCreditMenuArgs, aB as BuilderIdentity, aC as CREDIT_ENVELOPE_KEYS, aD as CreateX402BatchSettlementServerOpts, aE as CreditEnvelope, aF as CreditEnvelopeError, aG as CreditFundCommitment, aH as CreditTerms, aI as DEFAULT_INVOICE_TTL_SECONDS, aJ as DVMHost, aK as HostingClosureCommand, aL as HostingClosureEvidence, aM as HostingControlCommand, aN as HostingControlConfig, aO as HostingControlStatus, aP as JobManager, aQ as JobManagerOpts, aR as LightningReceiveConfig, aS as MIN_INVOICE_TTL_SECONDS, aT as MemoryConsumedCredentialStore, aU as MemoryConsumedCredentialStoreOpts, aV as MemoryProcessedPaymentStore, aW as MemoryX402ExactSettlementStore, aX as MountOpts, aY as OwnerDisplay, aZ as PaidJobCompletion, a_ as PaymentMode, a$ as PlatformReporterOpts, b0 as PostgresProcessedPaymentStore, b1 as PostgresX402ExactSettlementStore, b2 as PriceFiat, b3 as ProcessedPaymentQuerier, b4 as ProcessedPaymentRail, b5 as ProcessedPaymentRecord, b6 as ProcessedPaymentReplayError, b7 as ProcessedPaymentStore, b8 as X402BatchAcceptance, b9 as X402BatchFunding, ba as X402BatchRefusal, bb as X402BatchSettlementServer, bc as X402ExactAcceptance, bd as X402ExactIntentConflictError, be as X402ExactSettlementAttempt, bf as X402ExactSettlementChainEvidence, bg as X402ExactSettlementEffect, bh as X402ExactSettlementEvidenceMissingError, bi as X402ExactSettlementEvidenceReader, bj as X402ExactSettlementIntent, bk as X402ExactSettlementNotReadyError, bl as X402ExactSettlementServer, bm as X402ExactSettlementServerOpts, bn as X402ExactSettlementStatus, bo as X402ExactSettlementStore, bp as X402SettlementChainEvidence, bq as X402SettlementEvidenceReader, br as X402SettlementSubmissionError, bs as X402_BATCH_AUTO_SETTLEMENT, bt as X402_BATCH_MIN_WITHDRAW_DELAY_SECONDS, bu as X402_BATCH_SETTLEMENT_NETWORK, bv as attachCreditMenu, bw as buildCreditMenu, bx as createDVMHost, by as createX402BatchSettlementServer, bz as creditEnvelopeIgnoreFields, bA as drawSettlementRef, bB as extractCreditEnvelope, bC as fundingCommitment, bD as selectPrimaryCredit, bE as signHostingClosure, bF as signHostingControl, bG as stripCreditEnvelope, bH as toCreditView } from '../credit-menu-BpPa43Co.js';
4
+ import { au as CreditMenu, a as AppEnv, U as UpfrontPaymentOpts, i as PaymentInfo, av as ReceiptIssuer, aw as LightningReceive, ax as TempoSettlementReadiness, ay as DVMHostOpts, az as DVMServeResult, L as LockPubkeyStateLoader, C as ConsumedCredentialStore } from '../credit-menu-DbjmA1vK.js';
5
+ export { aA as BuildCreditMenuArgs, aB as BuilderIdentity, aC as CREDIT_ENVELOPE_KEYS, aD as CreateX402BatchSettlementServerOpts, aE as CreditEnvelope, aF as CreditEnvelopeError, aG as CreditFundCommitment, aH as CreditTerms, aI as DEFAULT_INVOICE_TTL_SECONDS, aJ as DVMHost, aK as HostingClosureCommand, aL as HostingClosureEvidence, aM as HostingControlCommand, aN as HostingControlConfig, aO as HostingControlStatus, aP as JobManager, aQ as JobManagerOpts, aR as LightningReceiveConfig, aS as MIN_INVOICE_TTL_SECONDS, aT as MemoryConsumedCredentialStore, aU as MemoryConsumedCredentialStoreOpts, aV as MemoryProcessedPaymentStore, aW as MemoryX402ExactSettlementStore, aX as MountOpts, aY as OwnerDisplay, aZ as PaidJobCompletion, a_ as PaymentMode, a$ as PlatformReporterOpts, b0 as PostgresProcessedPaymentStore, b1 as PostgresX402ExactSettlementStore, b2 as PriceFiat, b3 as ProcessedPaymentQuerier, b4 as ProcessedPaymentRail, b5 as ProcessedPaymentRecord, b6 as ProcessedPaymentReplayError, b7 as ProcessedPaymentStore, b8 as X402BatchAcceptance, b9 as X402BatchFunding, ba as X402BatchRefusal, bb as X402BatchSettlementServer, bc as X402ExactAcceptance, bd as X402ExactIntentConflictError, be as X402ExactSettlementAttempt, bf as X402ExactSettlementChainEvidence, bg as X402ExactSettlementEffect, bh as X402ExactSettlementEvidenceMissingError, bi as X402ExactSettlementEvidenceReader, bj as X402ExactSettlementIntent, bk as X402ExactSettlementNotReadyError, bl as X402ExactSettlementServer, bm as X402ExactSettlementServerOpts, bn as X402ExactSettlementStatus, bo as X402ExactSettlementStore, bp as X402SettlementChainEvidence, bq as X402SettlementEvidenceReader, br as X402SettlementSubmissionError, bs as X402_BATCH_AUTO_SETTLEMENT, bt as X402_BATCH_MIN_WITHDRAW_DELAY_SECONDS, bu as X402_BATCH_SETTLEMENT_NETWORK, bv as attachCreditMenu, bw as buildCreditMenu, bx as createDVMHost, by as createX402BatchSettlementServer, bz as creditEnvelopeIgnoreFields, bA as drawSettlementRef, bB as extractCreditEnvelope, bC as fundingCommitment, bD as selectPrimaryCredit, bE as signHostingClosure, bF as signHostingControl, bG as stripCreditEnvelope, bH as toCreditView } from '../credit-menu-DbjmA1vK.js';
6
6
  import { Context, Hono } from 'hono';
7
7
  import { z } from 'zod';
8
8
  import { F as FxFetcher } from '../fx-DfzQ0Lge.js';
@@ -82,7 +82,7 @@ import {
82
82
  toCreditView,
83
83
  unknownRouteNotFound,
84
84
  writeOffHostedTempoCloseReport
85
- } from "../chunk-NWOSJFZX.js";
85
+ } from "../chunk-MUMZPUYD.js";
86
86
  import {
87
87
  MemoryProcessedPaymentStore,
88
88
  PostgresProcessedPaymentStore,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dvmkit/sdk",
3
- "version": "0.20.0",
3
+ "version": "0.21.1",
4
4
  "description": "SDK for building Digital Vending Machines: pay-per-use HTTPS services AI agents can find, pay, and call with no account or API key",
5
5
  "author": "DVM Technologies Ltd",
6
6
  "keywords": [