@zkp2p/cash 0.7.1 → 0.7.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/AGENTS.md CHANGED
@@ -352,8 +352,9 @@ Run `cash.prepareVenmoGmailConnect(handle)` when the user selects Venmo, then
352
352
  call `cash.openVenmoGmailConnect(link.payeeDetails)` directly from a separate
353
353
  button click. Re-prepare when the selected handle changes. Use
354
354
  `cash.isVenmoGmailConnected(link.payeeDetails)` after returning from a mobile
355
- tab or an ambiguous closure; service errors reject, and only an active Gmail or
356
- Outlook credential counts as connected. Persist the hash with its environment and user.
355
+ tab or an ambiguous closure; service errors reject, and any active Gmail,
356
+ Outlook or iCloud Mail credential counts as connected (`@zkp2p/sdk` 0.14.7
357
+ `isMailboxSellerCredentialType`). Persist the hash with its environment and user.
357
358
 
358
359
  For native apps, use `prepareVenmoGmailConnect(handle, { returnUrl })` and
359
360
  open `link.url` with Expo's `openAuthSessionAsync(link.url, returnUrl)`.
@@ -361,9 +362,10 @@ Register the scheme in your app binary; no registration with Peer is needed.
361
362
  Peer appends no data to the callback. Omitted/empty callbacks attempt closure;
362
363
  tabs that block it keep the success page. Always re-check status on return.
363
364
 
364
- The hosted flow offers Gmail, including Google-hosted custom domains, and
365
- personal Outlook, then verifies actual Venmo receipts. `VenmoGmailConnectError`
366
- is separate from `CashError`; no emails or mailbox tokens reach the partner. Configure `venmoGmail: { appearance, popup }`
365
+ The hosted flow offers Gmail, including Google-hosted custom domains, personal
366
+ Outlook, and iCloud Mail, then verifies actual Venmo receipts.
367
+ `VenmoGmailConnectError` is separate from `CashError`; no emails, mailbox
368
+ tokens or app-specific passwords reach the partner. Configure `venmoGmail: { appearance, popup }`
367
369
  for branding and desktop dimensions; omission keeps Peer defaults.
368
370
  See the README for error codes, native callbacks, package-free URLs, and
369
371
  customization, plus `examples/venmo-link.ts`.
package/README.md CHANGED
@@ -154,7 +154,7 @@ arbitrary protocol operations.
154
154
  | -------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
155
155
  | `prepareVenmoGmailConnect(payee, { returnUrl }?)` | Optional Venmo handle registration; returns the payee hash and hosted URL, with an optional app callback |
156
156
  | `openVenmoGmailConnect(payeeDetails)` | Optional browser popup/tab; call directly from a click |
157
- | `isVenmoGmailConnected(payeeDetails)` | Read whether an active Gmail or Outlook receipt credential exists |
157
+ | `isVenmoGmailConnected(payeeDetails)` | Read whether an active Gmail, Outlook or iCloud Mail receipt credential exists |
158
158
  | `capabilities()` | Sync discovery: Base USDC destination/default source, platforms × currencies × payee hints × amount bounds |
159
159
  | `capabilities({ includeRelaySources: true })` | Async discovery: adds live Relay SDK EVM source chains/tokens |
160
160
  | `capabilities({ includeNearIntentsSources: true })` | Async discovery: adds live NEAR Intents 1Click source assets |
@@ -196,7 +196,7 @@ mixed historical deposit.
196
196
  ## Optional Venmo receipt linking
197
197
 
198
198
  Partners such as Tailgate can offer **Link Venmo** separately from cash-out.
199
- `cashout()` and `prepare()` never open Gmail or Outlook, check receipt
199
+ `cashout()` and `prepare()` never open a mailbox, check receipt
200
200
  credentials, or require this step. Skipping or cancelling linking leaves cash-out available.
201
201
 
202
202
  ```ts
@@ -233,19 +233,23 @@ Preparation and status reads also work on the server.
233
233
  Desktop opens a popup; mobile requests a new browser tab (including Safari).
234
234
  The browser controls presentation and may sever the opener connection. In that
235
235
  case check status rather than assuming `connection_closed` or
236
- `connection_timeout` means verification failed. Status is true only for an
237
- active `google_oauth` or `microsoft_oauth` credential; lookup failures reject.
238
- Versions before `0.6.3-rc.2` count only `google_oauth`.
236
+ `connection_timeout` means verification failed. Status is true for any active
237
+ mailbox credential (`google_oauth`, `microsoft_oauth` or `icloud_mail`, per
238
+ `isMailboxSellerCredentialType` in `@zkp2p/sdk` 0.14.7); lookup failures
239
+ reject. Versions before `0.7.2` do not count `icloud_mail`, and versions before
240
+ `0.6.3-rc.2` count only `google_oauth`.
239
241
 
240
242
  The hosted page offers Gmail, including Google-hosted school/custom-domain
241
- inboxes, and personal Outlook. It verifies actual receipts; there is no
242
- email-domain precheck. A missing receipt reports
243
- `venmo_google_oauth_receipt_not_found` (Gmail) or
244
- `VENMO_MICROSOFT_OAUTH_RECEIPT_NOT_FOUND` (Outlook) through
245
- `VenmoGmailConnectError.code`. Cancellation, popup blocking, and other hosted
246
- errors retain their codes. This error class is separate from `CashError`;
247
- registration and status service errors also reject. Emails and mailbox tokens
248
- never pass through the partner app or Cash SDK.
243
+ inboxes, personal Outlook, and iCloud Mail (with an Apple app-specific
244
+ password). It verifies actual receipts; there is no email-domain precheck. A
245
+ missing receipt reports `venmo_google_oauth_receipt_not_found` (Gmail),
246
+ `VENMO_MICROSOFT_OAUTH_RECEIPT_NOT_FOUND` (Outlook) or
247
+ `icloud_receipt_not_found` (iCloud Mail) through `VenmoGmailConnectError.code`;
248
+ other iCloud Mail failures use `icloud_<reason>` codes. Cancellation, popup
249
+ blocking, and other hosted errors retain their codes. This error class is
250
+ separate from `CashError`; registration and status service errors also reject.
251
+ Emails, mailbox tokens and app-specific passwords never pass through the
252
+ partner app or Cash SDK.
249
253
 
250
254
  See [the browser example](examples/venmo-link.ts). JSON codecs are exported for
251
255
  `PreparedVenmoGmailConnect` and `VenmoGmailConnectResult`.
@@ -850,7 +850,7 @@ interface CashClient {
850
850
  }): Promise<PreparedVenmoGmailConnect>;
851
851
  /** Optional, browser-only: call directly from a click handler with the prepared payee hash. */
852
852
  openVenmoGmailConnect(payeeDetails: Hash): Promise<VenmoGmailConnectResult>;
853
- /** True only for an active Gmail or Outlook receipt credential; errors reject instead of reporting unlinked. */
853
+ /** True only for an active Gmail, Outlook or iCloud Mail receipt credential; errors reject instead of reporting unlinked. */
854
854
  isVenmoGmailConnected(payeeDetails: Hash): Promise<boolean>;
855
855
  /** 0 - Discovery: sync, static. */
856
856
  capabilities(): CashCapabilities;
@@ -850,7 +850,7 @@ interface CashClient {
850
850
  }): Promise<PreparedVenmoGmailConnect>;
851
851
  /** Optional, browser-only: call directly from a click handler with the prepared payee hash. */
852
852
  openVenmoGmailConnect(payeeDetails: Hash): Promise<VenmoGmailConnectResult>;
853
- /** True only for an active Gmail or Outlook receipt credential; errors reject instead of reporting unlinked. */
853
+ /** True only for an active Gmail, Outlook or iCloud Mail receipt credential; errors reject instead of reporting unlinked. */
854
854
  isVenmoGmailConnected(payeeDetails: Hash): Promise<boolean>;
855
855
  /** 0 - Discovery: sync, static. */
856
856
  capabilities(): CashCapabilities;
package/dist/index.cjs CHANGED
@@ -3246,7 +3246,7 @@ function createCashClient(options) {
3246
3246
  processorName: "venmo",
3247
3247
  payeeDetails
3248
3248
  });
3249
- return responseObject.status === "active" && (responseObject.credentialType === "google_oauth" || responseObject.credentialType === "microsoft_oauth");
3249
+ return responseObject.status === "active" && sdk.isMailboxSellerCredentialType(responseObject.credentialType);
3250
3250
  },
3251
3251
  capabilities,
3252
3252
  async sourceCapabilities() {
package/dist/index.d.cts CHANGED
@@ -1,5 +1,5 @@
1
- import { C as CashPayoutInfo, I as IntentEntity, a as CashBuyerProfile, b as CashDepositInput, c as CreateDepositParamsArg, d as CashOrder, e as CashFill, f as CashCapabilities, g as CashoutResult, h as CashEstimate, i as CashFillStats, N as NearIntentsSourceCapabilities, j as NearIntentsDepositInput, k as NearIntentsQuote, l as NearIntentsQuoteInput, m as NearIntentsStatus, n as NearIntentsStatusInput, P as PrepareResult, o as CashPreparedStep, p as PreparedVenmoGmailConnect, R as RelayExecutionResult, q as RelayQuote, r as RelayStatus, s as CashSourceCapabilities, T as TopUpResult, W as WithdrawResult } from './createCashClient-lYL_Vx2Z.cjs';
2
- export { B as BASE_CHAIN_ID, t as BASE_USDC_ADDRESS, u as CASH_ATTRIBUTION_CODE, v as CASH_ORDER_POLL_INTERVAL_MS, w as CASH_ORDER_STATUSES, x as CASH_REFERRAL_ATTRIBUTION_PREFIX, y as CASH_RETAIN_ON_EMPTY, z as CashAsset, A as CashChain, D as CashClient, E as CashClientOptions, F as CashCorridorPricing, G as CashFillEta, H as CashLeg, J as CashMultiCurrencyLeg, K as CashNextAction, L as CashOrderState, M as CashPairFillStats, O as CashPayeeInput, Q as CashPayout, S as CashPayoutPricing, U as CashPlatformCapability, V as CashPreparedStepKind, X as CashReceiveLeg, Y as CashoutInput, Z as CashoutOptions, _ as CuratorPayeeDataInput, $ as EstimateInput, a0 as EstimateOptions, a1 as MARKET_SPREAD_BPS, a2 as MIN_CASHOUT_AMOUNT, a3 as NEAR_INTENTS_API_URL, a4 as NEAR_INTENTS_BASE_USDC_ASSET_ID, a5 as NEAR_INTENTS_DEFAULT_SLIPPAGE_BPS, a6 as NEAR_INTENTS_STATUSES, a7 as NearIntentsClient, a8 as NearIntentsOptions, a9 as NearIntentsQuoteRequest, aa as NearIntentsStatusCode, ab as NearIntentsToken, ac as NearIntentsTradeType, ad as NearIntentsTransaction, ae as ORACLE_MIN_CONVERSION_RATE_SENTINEL, af as OrdersOptions, ag as PreparedCashoutReceipt, ah as RECOMMENDED_MIN_CASHOUT_AMOUNT, ai as RelayOptions, aj as RelayQuoteInput, ak as RelaySourceInput, al as RelayTransaction, am as SignerOptions, an as USDC_DECIMALS, ao as WatchOptions, ap as WithdrawOptions, aq as buildCapabilities, ar as createCashClient, as as createNearIntentsClient, at as normalizeCashPayee, au as quoteNearIntentsToBaseUsdc, av as readNearIntentsSourceCapabilities, aw as readNearIntentsStatus, ax as submitNearIntentsDeposit, ay as toCashReferralAttributionCode } from './createCashClient-lYL_Vx2Z.cjs';
1
+ import { C as CashPayoutInfo, I as IntentEntity, a as CashBuyerProfile, b as CashDepositInput, c as CreateDepositParamsArg, d as CashOrder, e as CashFill, f as CashCapabilities, g as CashoutResult, h as CashEstimate, i as CashFillStats, N as NearIntentsSourceCapabilities, j as NearIntentsDepositInput, k as NearIntentsQuote, l as NearIntentsQuoteInput, m as NearIntentsStatus, n as NearIntentsStatusInput, P as PrepareResult, o as CashPreparedStep, p as PreparedVenmoGmailConnect, R as RelayExecutionResult, q as RelayQuote, r as RelayStatus, s as CashSourceCapabilities, T as TopUpResult, W as WithdrawResult } from './createCashClient-Dtqz4TXw.cjs';
2
+ export { B as BASE_CHAIN_ID, t as BASE_USDC_ADDRESS, u as CASH_ATTRIBUTION_CODE, v as CASH_ORDER_POLL_INTERVAL_MS, w as CASH_ORDER_STATUSES, x as CASH_REFERRAL_ATTRIBUTION_PREFIX, y as CASH_RETAIN_ON_EMPTY, z as CashAsset, A as CashChain, D as CashClient, E as CashClientOptions, F as CashCorridorPricing, G as CashFillEta, H as CashLeg, J as CashMultiCurrencyLeg, K as CashNextAction, L as CashOrderState, M as CashPairFillStats, O as CashPayeeInput, Q as CashPayout, S as CashPayoutPricing, U as CashPlatformCapability, V as CashPreparedStepKind, X as CashReceiveLeg, Y as CashoutInput, Z as CashoutOptions, _ as CuratorPayeeDataInput, $ as EstimateInput, a0 as EstimateOptions, a1 as MARKET_SPREAD_BPS, a2 as MIN_CASHOUT_AMOUNT, a3 as NEAR_INTENTS_API_URL, a4 as NEAR_INTENTS_BASE_USDC_ASSET_ID, a5 as NEAR_INTENTS_DEFAULT_SLIPPAGE_BPS, a6 as NEAR_INTENTS_STATUSES, a7 as NearIntentsClient, a8 as NearIntentsOptions, a9 as NearIntentsQuoteRequest, aa as NearIntentsStatusCode, ab as NearIntentsToken, ac as NearIntentsTradeType, ad as NearIntentsTransaction, ae as ORACLE_MIN_CONVERSION_RATE_SENTINEL, af as OrdersOptions, ag as PreparedCashoutReceipt, ah as RECOMMENDED_MIN_CASHOUT_AMOUNT, ai as RelayOptions, aj as RelayQuoteInput, ak as RelaySourceInput, al as RelayTransaction, am as SignerOptions, an as USDC_DECIMALS, ao as WatchOptions, ap as WithdrawOptions, aq as buildCapabilities, ar as createCashClient, as as createNearIntentsClient, at as normalizeCashPayee, au as quoteNearIntentsToBaseUsdc, av as readNearIntentsSourceCapabilities, aw as readNearIntentsStatus, ax as submitNearIntentsDeposit, ay as toCashReferralAttributionCode } from './createCashClient-Dtqz4TXw.cjs';
3
3
  import { PaymentMethodCatalog, CurrencyType, OracleAdapterOverrides, OnchainCurrency, Zkp2pClient, PreparedTransaction, VenmoGmailConnectResult } from '@zkp2p/sdk';
4
4
  export { CurrencyType, PreparedTransaction, RuntimeEnv, VenmoGmailAppearance, VenmoGmailConnectError, VenmoGmailConnectResult, VenmoGmailPopupOptions } from '@zkp2p/sdk';
5
5
  import { Log, Abi } from 'viem';
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { C as CashPayoutInfo, I as IntentEntity, a as CashBuyerProfile, b as CashDepositInput, c as CreateDepositParamsArg, d as CashOrder, e as CashFill, f as CashCapabilities, g as CashoutResult, h as CashEstimate, i as CashFillStats, N as NearIntentsSourceCapabilities, j as NearIntentsDepositInput, k as NearIntentsQuote, l as NearIntentsQuoteInput, m as NearIntentsStatus, n as NearIntentsStatusInput, P as PrepareResult, o as CashPreparedStep, p as PreparedVenmoGmailConnect, R as RelayExecutionResult, q as RelayQuote, r as RelayStatus, s as CashSourceCapabilities, T as TopUpResult, W as WithdrawResult } from './createCashClient-lYL_Vx2Z.js';
2
- export { B as BASE_CHAIN_ID, t as BASE_USDC_ADDRESS, u as CASH_ATTRIBUTION_CODE, v as CASH_ORDER_POLL_INTERVAL_MS, w as CASH_ORDER_STATUSES, x as CASH_REFERRAL_ATTRIBUTION_PREFIX, y as CASH_RETAIN_ON_EMPTY, z as CashAsset, A as CashChain, D as CashClient, E as CashClientOptions, F as CashCorridorPricing, G as CashFillEta, H as CashLeg, J as CashMultiCurrencyLeg, K as CashNextAction, L as CashOrderState, M as CashPairFillStats, O as CashPayeeInput, Q as CashPayout, S as CashPayoutPricing, U as CashPlatformCapability, V as CashPreparedStepKind, X as CashReceiveLeg, Y as CashoutInput, Z as CashoutOptions, _ as CuratorPayeeDataInput, $ as EstimateInput, a0 as EstimateOptions, a1 as MARKET_SPREAD_BPS, a2 as MIN_CASHOUT_AMOUNT, a3 as NEAR_INTENTS_API_URL, a4 as NEAR_INTENTS_BASE_USDC_ASSET_ID, a5 as NEAR_INTENTS_DEFAULT_SLIPPAGE_BPS, a6 as NEAR_INTENTS_STATUSES, a7 as NearIntentsClient, a8 as NearIntentsOptions, a9 as NearIntentsQuoteRequest, aa as NearIntentsStatusCode, ab as NearIntentsToken, ac as NearIntentsTradeType, ad as NearIntentsTransaction, ae as ORACLE_MIN_CONVERSION_RATE_SENTINEL, af as OrdersOptions, ag as PreparedCashoutReceipt, ah as RECOMMENDED_MIN_CASHOUT_AMOUNT, ai as RelayOptions, aj as RelayQuoteInput, ak as RelaySourceInput, al as RelayTransaction, am as SignerOptions, an as USDC_DECIMALS, ao as WatchOptions, ap as WithdrawOptions, aq as buildCapabilities, ar as createCashClient, as as createNearIntentsClient, at as normalizeCashPayee, au as quoteNearIntentsToBaseUsdc, av as readNearIntentsSourceCapabilities, aw as readNearIntentsStatus, ax as submitNearIntentsDeposit, ay as toCashReferralAttributionCode } from './createCashClient-lYL_Vx2Z.js';
1
+ import { C as CashPayoutInfo, I as IntentEntity, a as CashBuyerProfile, b as CashDepositInput, c as CreateDepositParamsArg, d as CashOrder, e as CashFill, f as CashCapabilities, g as CashoutResult, h as CashEstimate, i as CashFillStats, N as NearIntentsSourceCapabilities, j as NearIntentsDepositInput, k as NearIntentsQuote, l as NearIntentsQuoteInput, m as NearIntentsStatus, n as NearIntentsStatusInput, P as PrepareResult, o as CashPreparedStep, p as PreparedVenmoGmailConnect, R as RelayExecutionResult, q as RelayQuote, r as RelayStatus, s as CashSourceCapabilities, T as TopUpResult, W as WithdrawResult } from './createCashClient-Dtqz4TXw.js';
2
+ export { B as BASE_CHAIN_ID, t as BASE_USDC_ADDRESS, u as CASH_ATTRIBUTION_CODE, v as CASH_ORDER_POLL_INTERVAL_MS, w as CASH_ORDER_STATUSES, x as CASH_REFERRAL_ATTRIBUTION_PREFIX, y as CASH_RETAIN_ON_EMPTY, z as CashAsset, A as CashChain, D as CashClient, E as CashClientOptions, F as CashCorridorPricing, G as CashFillEta, H as CashLeg, J as CashMultiCurrencyLeg, K as CashNextAction, L as CashOrderState, M as CashPairFillStats, O as CashPayeeInput, Q as CashPayout, S as CashPayoutPricing, U as CashPlatformCapability, V as CashPreparedStepKind, X as CashReceiveLeg, Y as CashoutInput, Z as CashoutOptions, _ as CuratorPayeeDataInput, $ as EstimateInput, a0 as EstimateOptions, a1 as MARKET_SPREAD_BPS, a2 as MIN_CASHOUT_AMOUNT, a3 as NEAR_INTENTS_API_URL, a4 as NEAR_INTENTS_BASE_USDC_ASSET_ID, a5 as NEAR_INTENTS_DEFAULT_SLIPPAGE_BPS, a6 as NEAR_INTENTS_STATUSES, a7 as NearIntentsClient, a8 as NearIntentsOptions, a9 as NearIntentsQuoteRequest, aa as NearIntentsStatusCode, ab as NearIntentsToken, ac as NearIntentsTradeType, ad as NearIntentsTransaction, ae as ORACLE_MIN_CONVERSION_RATE_SENTINEL, af as OrdersOptions, ag as PreparedCashoutReceipt, ah as RECOMMENDED_MIN_CASHOUT_AMOUNT, ai as RelayOptions, aj as RelayQuoteInput, ak as RelaySourceInput, al as RelayTransaction, am as SignerOptions, an as USDC_DECIMALS, ao as WatchOptions, ap as WithdrawOptions, aq as buildCapabilities, ar as createCashClient, as as createNearIntentsClient, at as normalizeCashPayee, au as quoteNearIntentsToBaseUsdc, av as readNearIntentsSourceCapabilities, aw as readNearIntentsStatus, ax as submitNearIntentsDeposit, ay as toCashReferralAttributionCode } from './createCashClient-Dtqz4TXw.js';
3
3
  import { PaymentMethodCatalog, CurrencyType, OracleAdapterOverrides, OnchainCurrency, Zkp2pClient, PreparedTransaction, VenmoGmailConnectResult } from '@zkp2p/sdk';
4
4
  export { CurrencyType, PreparedTransaction, RuntimeEnv, VenmoGmailAppearance, VenmoGmailConnectError, VenmoGmailConnectResult, VenmoGmailPopupOptions } from '@zkp2p/sdk';
5
5
  import { Log, Abi } from 'viem';
package/dist/index.js CHANGED
@@ -2,7 +2,7 @@ import { MARKET_SPREAD_BPS, ORACLE_MIN_CONVERSION_RATE_SENTINEL, CASH_RETAIN_ON_
2
2
  export { BASE_CHAIN_ID, BASE_USDC_ADDRESS, CASH_ORDER_POLL_INTERVAL_MS, CASH_ORDER_STATUSES, CASH_RETAIN_ON_EMPTY, CashError, MARKET_SPREAD_BPS, ORACLE_MIN_CONVERSION_RATE_SENTINEL, USDC_DECIMALS, errors, isCashError, isUserRejectedError } from './chunk-UIELF4TY.js';
3
3
  import { parseAbi, parseEventLogs, isAddress, http, createWalletClient, encodeFunctionData } from 'viem';
4
4
  import { base } from 'viem/chains';
5
- import { getSpreadOracleConfig, currencyInfo, getGatingServiceAddress, resolvePaymentMethodNameFromHash, getCurrencyCodeFromHash, createCompositeDepositId, appendAttributionToCalldata, openVenmoGmailConnect, getVenmoGmailConnectUrl, Zkp2pClient, getPaymentMethodsCatalog, resolvePaymentMethodHashFromCatalog, defaultIndexerEndpoint, IndexerClient, CHAINLINK_ORACLE_FEEDS } from '@zkp2p/sdk';
5
+ import { getSpreadOracleConfig, currencyInfo, getGatingServiceAddress, resolvePaymentMethodNameFromHash, getCurrencyCodeFromHash, createCompositeDepositId, appendAttributionToCalldata, isMailboxSellerCredentialType, openVenmoGmailConnect, getVenmoGmailConnectUrl, Zkp2pClient, getPaymentMethodsCatalog, resolvePaymentMethodHashFromCatalog, defaultIndexerEndpoint, IndexerClient, CHAINLINK_ORACLE_FEEDS } from '@zkp2p/sdk';
6
6
  export { VenmoGmailConnectError } from '@zkp2p/sdk';
7
7
  import { createClient, MAINNET_RELAY_API } from '@relayprotocol/relay-sdk';
8
8
  import { fetchChainConfigs, configureDynamicChains } from '@relayprotocol/relay-sdk/chain-utils';
@@ -2753,7 +2753,7 @@ function createCashClient(options) {
2753
2753
  processorName: "venmo",
2754
2754
  payeeDetails
2755
2755
  });
2756
- return responseObject.status === "active" && (responseObject.credentialType === "google_oauth" || responseObject.credentialType === "microsoft_oauth");
2756
+ return responseObject.status === "active" && isMailboxSellerCredentialType(responseObject.credentialType);
2757
2757
  },
2758
2758
  capabilities,
2759
2759
  async sourceCapabilities() {
package/dist/react.d.cts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { CurrencyType } from '@zkp2p/sdk';
2
- import { D as CashClient, $ as EstimateInput, h as CashEstimate, Z as CashoutOptions, g as CashoutResult, Y as CashoutInput, T as TopUpResult, W as WithdrawResult, d as CashOrder } from './createCashClient-lYL_Vx2Z.cjs';
2
+ import { D as CashClient, $ as EstimateInput, h as CashEstimate, Z as CashoutOptions, g as CashoutResult, Y as CashoutInput, T as TopUpResult, W as WithdrawResult, d as CashOrder } from './createCashClient-Dtqz4TXw.cjs';
3
3
  import { WalletClient } from 'viem';
4
4
  import '@relayprotocol/relay-sdk';
5
5
 
package/dist/react.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { CurrencyType } from '@zkp2p/sdk';
2
- import { D as CashClient, $ as EstimateInput, h as CashEstimate, Z as CashoutOptions, g as CashoutResult, Y as CashoutInput, T as TopUpResult, W as WithdrawResult, d as CashOrder } from './createCashClient-lYL_Vx2Z.js';
2
+ import { D as CashClient, $ as EstimateInput, h as CashEstimate, Z as CashoutOptions, g as CashoutResult, Y as CashoutInput, T as TopUpResult, W as WithdrawResult, d as CashOrder } from './createCashClient-Dtqz4TXw.js';
3
3
  import { WalletClient } from 'viem';
4
4
  import '@relayprotocol/relay-sdk';
5
5
 
package/dist/tools.cjs CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  // package.json
4
4
  var package_default = {
5
- version: "0.7.1"};
5
+ version: "0.7.2"};
6
6
 
7
7
  // src/tools/index.ts
8
8
  var bigintString = {
package/dist/tools.js CHANGED
@@ -1,6 +1,6 @@
1
1
  // package.json
2
2
  var package_default = {
3
- version: "0.7.1"};
3
+ version: "0.7.2"};
4
4
 
5
5
  // src/tools/index.ts
6
6
  var bigintString = {
@@ -147,8 +147,9 @@ Run `cash.prepareVenmoGmailConnect(handle)` when the user selects Venmo, then
147
147
  call `cash.openVenmoGmailConnect(link.payeeDetails)` directly from a separate
148
148
  button click. Re-prepare when the selected handle changes. Use
149
149
  `cash.isVenmoGmailConnected(link.payeeDetails)` after returning from a mobile
150
- tab or an ambiguous closure; service errors reject, and only an active Gmail or
151
- Outlook credential counts as connected. Persist the hash with its environment and user.
150
+ tab or an ambiguous closure; service errors reject, and any active Gmail,
151
+ Outlook or iCloud Mail credential counts as connected (`@zkp2p/sdk` 0.14.7
152
+ `isMailboxSellerCredentialType`). Persist the hash with its environment and user.
152
153
 
153
154
  For native apps, use `prepareVenmoGmailConnect(handle, { returnUrl })` and
154
155
  open `link.url` with Expo's `openAuthSessionAsync(link.url, returnUrl)`.
@@ -156,9 +157,10 @@ Register the scheme in your app binary; no registration with Peer is needed.
156
157
  Peer appends no data to the callback. Omitted/empty callbacks attempt closure;
157
158
  tabs that block it keep the success page. Always re-check status on return.
158
159
 
159
- The hosted flow offers Gmail, including Google-hosted custom domains, and
160
- personal Outlook, then verifies actual Venmo receipts. `VenmoGmailConnectError`
161
- is separate from `CashError`; no emails or mailbox tokens reach the partner. Configure `venmoGmail: { appearance, popup }`
160
+ The hosted flow offers Gmail, including Google-hosted custom domains, personal
161
+ Outlook, and iCloud Mail, then verifies actual Venmo receipts.
162
+ `VenmoGmailConnectError` is separate from `CashError`; no emails, mailbox
163
+ tokens or app-specific passwords reach the partner. Configure `venmoGmail: { appearance, popup }`
162
164
  for branding and desktop dimensions; omission keeps Peer defaults.
163
165
  See the README for error codes, native callbacks, package-free URLs, and
164
166
  customization, plus `examples/venmo-link.ts`.
@@ -4,7 +4,7 @@
4
4
  "type": "module",
5
5
  "description": "Peer Cash Demo: the express sell flow stored entirely onchain on Base, after zSwap by z0r0z",
6
6
  "dependencies": {
7
- "@zkp2p/cash": "0.7.1",
7
+ "@zkp2p/cash": "0.7.2",
8
8
  "esbuild": "0.28.2",
9
9
  "solc": "0.8.36",
10
10
  "viem": "2.55.18"
package/llms.txt CHANGED
@@ -15,19 +15,22 @@ Key facts:
15
15
  - Optional Venmo receipt linking: prepareVenmoGmailConnect(handle) registers
16
16
  the selected handle and returns { payeeDetails, url }. From a separate click,
17
17
  openVenmoGmailConnect(payeeDetails) opens the environment's hosted flow.
18
- isVenmoGmailConnected(payeeDetails) checks for an active Gmail or Outlook
19
- credential;
20
- lookup errors reject. Cashout and prepare never call or require these steps.
18
+ isVenmoGmailConnected(payeeDetails) is true for any active mailbox
19
+ credential (Gmail, Outlook or iCloud Mail, per @zkp2p/sdk 0.14.7
20
+ isMailboxSellerCredentialType); lookup errors reject. Cashout and prepare
21
+ never call or require these steps.
21
22
  Native hosts use prepareVenmoGmailConnect(handle, { returnUrl }) and open
22
23
  link.url with Expo openAuthSessionAsync(link.url, returnUrl). Register the
23
24
  app scheme in the binary; Peer needs no callback registration and appends
24
25
  no data. Omitted/empty callbacks attempt closure; blocked tabs keep the
25
26
  success page. Always check status on return or ambiguous popup closure.
26
27
  The hosted page offers Gmail, including Google-hosted school/custom domains,
27
- and personal Outlook. Receipt failures use VenmoGmailConnectError.code:
28
- venmo_google_oauth_receipt_not_found or VENMO_MICROSOFT_OAUTH_RECEIPT_NOT_FOUND.
29
- Partner apps receive neither emails nor mailbox tokens. Re-prepare when the
30
- handle changes; persist payee hash with environment and user account.
28
+ personal Outlook, and iCloud Mail (Apple app-specific password). Receipt
29
+ failures use VenmoGmailConnectError.code: venmo_google_oauth_receipt_not_found,
30
+ VENMO_MICROSOFT_OAUTH_RECEIPT_NOT_FOUND or icloud_receipt_not_found.
31
+ Partner apps receive no emails, mailbox tokens or app-specific passwords.
32
+ Re-prepare when the handle changes; persist payee hash with environment and
33
+ user account.
31
34
  Optional createCashClient({ venmoGmail: { appearance, popup } }) shares branding
32
35
  between the prepared URL and popup. Defaults use Peer branding; desktop popup
33
36
  dimensions do not control mobile tab sizing. See the README customization example.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zkp2p/cash",
3
- "version": "0.7.1",
3
+ "version": "0.7.2",
4
4
  "description": "Peer Cash - offramp-only SDK for routing Relay or NEAR Intents assets to Base USDC, then cashing out to fiat at zero-spread on-chain oracle market rates.",
5
5
  "license": "MIT",
6
6
  "author": "Peer (https://peer.xyz)",
@@ -108,7 +108,7 @@
108
108
  },
109
109
  "dependencies": {
110
110
  "@relayprotocol/relay-sdk": "^7.0.1",
111
- "@zkp2p/sdk": "0.14.6",
111
+ "@zkp2p/sdk": "0.14.7",
112
112
  "zod": "^4.4.3"
113
113
  },
114
114
  "peerDependencies": {
@@ -291,8 +291,9 @@ Run `cash.prepareVenmoGmailConnect(handle)` when the user selects Venmo, then
291
291
  call `cash.openVenmoGmailConnect(link.payeeDetails)` directly from a separate
292
292
  button click. Re-prepare when the selected handle changes. Use
293
293
  `cash.isVenmoGmailConnected(link.payeeDetails)` after returning from a mobile
294
- tab or an ambiguous closure; service errors reject, and only an active Gmail or
295
- Outlook credential counts as connected. Persist the hash with its environment and user.
294
+ tab or an ambiguous closure; service errors reject, and any active Gmail,
295
+ Outlook or iCloud Mail credential counts as connected (`@zkp2p/sdk` 0.14.7
296
+ `isMailboxSellerCredentialType`). Persist the hash with its environment and user.
296
297
 
297
298
  For native apps, use `prepareVenmoGmailConnect(handle, { returnUrl })` and
298
299
  open `link.url` with Expo's `openAuthSessionAsync(link.url, returnUrl)`.
@@ -300,9 +301,10 @@ Register the scheme in your app binary; no registration with Peer is needed.
300
301
  Peer appends no data to the callback. Omitted/empty callbacks attempt closure;
301
302
  tabs that block it keep the success page. Always re-check status on return.
302
303
 
303
- The hosted flow offers Gmail, including Google-hosted custom domains, and
304
- personal Outlook, then verifies actual Venmo receipts. `VenmoGmailConnectError`
305
- is separate from `CashError`; no emails or mailbox tokens reach the partner. Configure `venmoGmail: { appearance, popup }`
304
+ The hosted flow offers Gmail, including Google-hosted custom domains, personal
305
+ Outlook, and iCloud Mail, then verifies actual Venmo receipts.
306
+ `VenmoGmailConnectError` is separate from `CashError`; no emails, mailbox
307
+ tokens or app-specific passwords reach the partner. Configure `venmoGmail: { appearance, popup }`
306
308
  for branding and desktop dimensions; omission keeps Peer defaults.
307
309
  See the README for error codes, native callbacks, package-free URLs, and
308
310
  customization, plus `examples/venmo-link.ts`.