@zkp2p/cash 0.6.3-rc.1 → 0.6.3-rc.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
@@ -356,8 +356,8 @@ Run `cash.prepareVenmoGmailConnect(handle)` when the user selects Venmo, then
356
356
  call `cash.openVenmoGmailConnect(link.payeeDetails)` directly from a separate
357
357
  button click. Re-prepare when the selected handle changes. Use
358
358
  `cash.isVenmoGmailConnected(link.payeeDetails)` after returning from a mobile
359
- tab or an ambiguous closure; service errors reject, and only an active Google
360
- credential counts as connected. Persist the hash with its environment and user.
359
+ tab or an ambiguous closure; service errors reject, and only an active Gmail or
360
+ Outlook credential counts as connected. Persist the hash with its environment and user.
361
361
 
362
362
  For native apps, use `prepareVenmoGmailConnect(handle, { returnUrl })` and
363
363
  open `link.url` with Expo's `openAuthSessionAsync(link.url, returnUrl)`.
@@ -365,9 +365,9 @@ Register the scheme in your app binary; no registration with Peer is needed.
365
365
  Peer appends no data to the callback. Omitted/empty callbacks attempt closure;
366
366
  tabs that block it keep the success page. Always re-check status on return.
367
367
 
368
- The hosted flow verifies actual Venmo receipts, including Google-hosted custom
369
- inboxes. `VenmoGmailConnectError` is separate from `CashError`; no emails or
370
- Google tokens reach the partner. Configure `venmoGmail: { appearance, popup }`
368
+ The hosted flow offers Gmail, including Google-hosted custom domains, and
369
+ personal Outlook, then verifies actual Venmo receipts. `VenmoGmailConnectError`
370
+ is separate from `CashError`; no emails or mailbox tokens reach the partner. Configure `venmoGmail: { appearance, popup }`
371
371
  for branding and desktop dimensions; omission keeps Peer defaults.
372
372
  See the README for error codes, native callbacks, package-free URLs, and
373
373
  customization, plus `examples/venmo-link.ts`.
package/README.md CHANGED
@@ -146,7 +146,7 @@ arbitrary protocol operations.
146
146
  | -------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
147
147
  | `prepareVenmoGmailConnect(payee, { returnUrl }?)` | Optional Venmo handle registration; returns the payee hash and hosted URL, with an optional app callback |
148
148
  | `openVenmoGmailConnect(payeeDetails)` | Optional browser popup/tab; call directly from a click |
149
- | `isVenmoGmailConnected(payeeDetails)` | Read whether an active Google receipt credential exists |
149
+ | `isVenmoGmailConnected(payeeDetails)` | Read whether an active Gmail or Outlook receipt credential exists |
150
150
  | `capabilities()` | Sync discovery: Base USDC destination/default source, platforms × currencies × payee hints × amount bounds |
151
151
  | `capabilities({ includeRelaySources: true })` | Async discovery: adds live Relay SDK EVM source chains/tokens |
152
152
  | `capabilities({ includeNearIntentsSources: true })` | Async discovery: adds live NEAR Intents 1Click source assets |
@@ -188,8 +188,8 @@ mixed historical deposit.
188
188
  ## Optional Venmo receipt linking
189
189
 
190
190
  Partners such as Tailgate can offer **Link Venmo** separately from cash-out.
191
- `cashout()` and `prepare()` never open Gmail, check receipt credentials, or
192
- require this step. Skipping or cancelling linking leaves cash-out available.
191
+ `cashout()` and `prepare()` never open Gmail or Outlook, check receipt
192
+ credentials, or require this step. Skipping or cancelling linking leaves cash-out available.
193
193
 
194
194
  ```ts
195
195
  import { createCashClient, VenmoGmailConnectError } from '@zkp2p/cash';
@@ -226,14 +226,17 @@ Desktop opens a popup; mobile requests a new browser tab (including Safari).
226
226
  The browser controls presentation and may sever the opener connection. In that
227
227
  case check status rather than assuming `connection_closed` or
228
228
  `connection_timeout` means verification failed. Status is true only for an
229
- active `google_oauth` credential; lookup failures reject.
230
-
231
- Gmail and Google-hosted school/custom-domain inboxes are accepted. The hosted
232
- flow verifies actual receipts; there is no email-domain precheck. A missing
233
- receipt reports `venmo_google_oauth_receipt_not_found` through
229
+ active `google_oauth` or `microsoft_oauth` credential; lookup failures reject.
230
+ Versions before `0.6.3-rc.2` count only `google_oauth`.
231
+
232
+ The hosted page offers Gmail, including Google-hosted school/custom-domain
233
+ inboxes, and personal Outlook. It verifies actual receipts; there is no
234
+ email-domain precheck. A missing receipt reports
235
+ `venmo_google_oauth_receipt_not_found` (Gmail) or
236
+ `VENMO_MICROSOFT_OAUTH_RECEIPT_NOT_FOUND` (Outlook) through
234
237
  `VenmoGmailConnectError.code`. Cancellation, popup blocking, and other hosted
235
238
  errors retain their codes. This error class is separate from `CashError`;
236
- registration and status service errors also reject. Emails and Google tokens
239
+ registration and status service errors also reject. Emails and mailbox tokens
237
240
  never pass through the partner app or Cash SDK.
238
241
 
239
242
  See [the browser example](examples/venmo-link.ts). JSON codecs are exported for
@@ -259,7 +262,7 @@ const connected = await cash.isVenmoGmailConnected(link.payeeDetails);
259
262
  Register the callback scheme in your app binary and test on iOS and Android;
260
263
  see [Expo's callback requirements](https://docs.expo.dev/versions/latest/sdk/webbrowser/#webbrowseropenauthsessionasyncurl-redirecturl-options).
261
264
  Peer requires no callback registration or deployment configuration. After
262
- verification, the hosted page navigates to `returnUrl` unchanged: no Google
265
+ verification, the hosted page navigates to `returnUrl` unchanged: no mailbox
263
266
  credentials, email, account hash, or status are appended. Errors remain on
264
267
  the page with a manual return button. Always re-check connection status on
265
268
  return or dismissal; a browser return alone is not proof of linking.
@@ -867,7 +867,7 @@ interface CashClient {
867
867
  }): Promise<PreparedVenmoGmailConnect>;
868
868
  /** Optional, browser-only: call directly from a click handler with the prepared payee hash. */
869
869
  openVenmoGmailConnect(payeeDetails: Hash): Promise<VenmoGmailConnectResult>;
870
- /** True only for an active Google receipt credential; errors reject instead of reporting unlinked. */
870
+ /** True only for an active Gmail or Outlook receipt credential; errors reject instead of reporting unlinked. */
871
871
  isVenmoGmailConnected(payeeDetails: Hash): Promise<boolean>;
872
872
  /** 0 - Discovery: sync, static. */
873
873
  capabilities(): CashCapabilities;
@@ -867,7 +867,7 @@ interface CashClient {
867
867
  }): Promise<PreparedVenmoGmailConnect>;
868
868
  /** Optional, browser-only: call directly from a click handler with the prepared payee hash. */
869
869
  openVenmoGmailConnect(payeeDetails: Hash): Promise<VenmoGmailConnectResult>;
870
- /** True only for an active Google receipt credential; errors reject instead of reporting unlinked. */
870
+ /** True only for an active Gmail or Outlook receipt credential; errors reject instead of reporting unlinked. */
871
871
  isVenmoGmailConnected(payeeDetails: Hash): Promise<boolean>;
872
872
  /** 0 - Discovery: sync, static. */
873
873
  capabilities(): CashCapabilities;
package/dist/index.cjs CHANGED
@@ -3458,7 +3458,7 @@ function createCashClient(options) {
3458
3458
  processorName: "venmo",
3459
3459
  payeeDetails
3460
3460
  });
3461
- return responseObject.status === "active" && responseObject.credentialType === "google_oauth";
3461
+ return responseObject.status === "active" && (responseObject.credentialType === "google_oauth" || responseObject.credentialType === "microsoft_oauth");
3462
3462
  },
3463
3463
  capabilities,
3464
3464
  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-p7RZVUmC.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-p7RZVUmC.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-Cwsu0xKW.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-Cwsu0xKW.cjs';
3
3
  import { PublicClient, Log, Abi } from 'viem';
4
4
  import { PaymentMethodCatalog, CurrencyType, OracleAdapterOverrides, OnchainCurrency, Zkp2pClient, PreparedTransaction, VenmoGmailConnectResult } from '@zkp2p/sdk';
5
5
  export { CurrencyType, PreparedTransaction, RuntimeEnv, VenmoGmailAppearance, VenmoGmailConnectError, VenmoGmailConnectResult, VenmoGmailPopupOptions } from '@zkp2p/sdk';
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-p7RZVUmC.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-p7RZVUmC.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-Cwsu0xKW.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-Cwsu0xKW.js';
3
3
  import { PublicClient, Log, Abi } from 'viem';
4
4
  import { PaymentMethodCatalog, CurrencyType, OracleAdapterOverrides, OnchainCurrency, Zkp2pClient, PreparedTransaction, VenmoGmailConnectResult } from '@zkp2p/sdk';
5
5
  export { CurrencyType, PreparedTransaction, RuntimeEnv, VenmoGmailAppearance, VenmoGmailConnectError, VenmoGmailConnectResult, VenmoGmailPopupOptions } from '@zkp2p/sdk';
package/dist/index.js CHANGED
@@ -2965,7 +2965,7 @@ function createCashClient(options) {
2965
2965
  processorName: "venmo",
2966
2966
  payeeDetails
2967
2967
  });
2968
- return responseObject.status === "active" && responseObject.credentialType === "google_oauth";
2968
+ return responseObject.status === "active" && (responseObject.credentialType === "google_oauth" || responseObject.credentialType === "microsoft_oauth");
2969
2969
  },
2970
2970
  capabilities,
2971
2971
  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-p7RZVUmC.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-Cwsu0xKW.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-p7RZVUmC.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-Cwsu0xKW.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.6.3-rc.1"};
5
+ version: "0.6.3-rc.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.6.3-rc.1"};
3
+ version: "0.6.3-rc.2"};
4
4
 
5
5
  // src/tools/index.ts
6
6
  var bigintString = {
@@ -147,8 +147,8 @@ 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 Google
151
- credential counts as connected. Persist the hash with its environment and user.
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.
152
152
 
153
153
  For native apps, use `prepareVenmoGmailConnect(handle, { returnUrl })` and
154
154
  open `link.url` with Expo's `openAuthSessionAsync(link.url, returnUrl)`.
@@ -156,9 +156,9 @@ Register the scheme in your app binary; no registration with Peer is needed.
156
156
  Peer appends no data to the callback. Omitted/empty callbacks attempt closure;
157
157
  tabs that block it keep the success page. Always re-check status on return.
158
158
 
159
- The hosted flow verifies actual Venmo receipts, including Google-hosted custom
160
- inboxes. `VenmoGmailConnectError` is separate from `CashError`; no emails or
161
- Google tokens reach the partner. Configure `venmoGmail: { appearance, popup }`
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 }`
162
162
  for branding and desktop dimensions; omission keeps Peer defaults.
163
163
  See the README for error codes, native callbacks, package-free URLs, and
164
164
  customization, plus `examples/venmo-link.ts`.
@@ -41,4 +41,4 @@ export function checkVenmoLink(link: PreparedVenmoGmailConnect) {
41
41
  }
42
42
 
43
43
  // cash.cashout(...) remains a separate action and does not require these helpers.
44
- // No Gmail address is taken here: receipt verification belongs to the hosted flow.
44
+ // No email address is taken here: receipt verification belongs to the hosted flow.
package/llms.txt CHANGED
@@ -15,16 +15,18 @@ 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 Google credential;
18
+ isVenmoGmailConnected(payeeDetails) checks for an active Gmail or Outlook
19
+ credential;
19
20
  lookup errors reject. Cashout and prepare never call or require these steps.
20
21
  Native hosts use prepareVenmoGmailConnect(handle, { returnUrl }) and open
21
22
  link.url with Expo openAuthSessionAsync(link.url, returnUrl). Register the
22
23
  app scheme in the binary; Peer needs no callback registration and appends
23
24
  no data. Omitted/empty callbacks attempt closure; blocked tabs keep the
24
25
  success page. Always check status on return or ambiguous popup closure.
25
- Google-hosted school/custom domains are supported; actual receipt failures
26
- use VenmoGmailConnectError.code, including venmo_google_oauth_receipt_not_found.
27
- Partner apps receive neither emails nor Google tokens. Re-prepare when the
26
+ 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
28
30
  handle changes; persist payee hash with environment and user account.
29
31
  Optional createCashClient({ venmoGmail: { appearance, popup } }) shares branding
30
32
  between the prepared URL and popup. Defaults use Peer branding; desktop popup
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zkp2p/cash",
3
- "version": "0.6.3-rc.1",
3
+ "version": "0.6.3-rc.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 Chainlink market rates.",
5
5
  "license": "MIT",
6
6
  "author": "Peer (https://peer.xyz)",
@@ -296,8 +296,8 @@ Run `cash.prepareVenmoGmailConnect(handle)` when the user selects Venmo, then
296
296
  call `cash.openVenmoGmailConnect(link.payeeDetails)` directly from a separate
297
297
  button click. Re-prepare when the selected handle changes. Use
298
298
  `cash.isVenmoGmailConnected(link.payeeDetails)` after returning from a mobile
299
- tab or an ambiguous closure; service errors reject, and only an active Google
300
- credential counts as connected. Persist the hash with its environment and user.
299
+ tab or an ambiguous closure; service errors reject, and only an active Gmail or
300
+ Outlook credential counts as connected. Persist the hash with its environment and user.
301
301
 
302
302
  For native apps, use `prepareVenmoGmailConnect(handle, { returnUrl })` and
303
303
  open `link.url` with Expo's `openAuthSessionAsync(link.url, returnUrl)`.
@@ -305,9 +305,9 @@ Register the scheme in your app binary; no registration with Peer is needed.
305
305
  Peer appends no data to the callback. Omitted/empty callbacks attempt closure;
306
306
  tabs that block it keep the success page. Always re-check status on return.
307
307
 
308
- The hosted flow verifies actual Venmo receipts, including Google-hosted custom
309
- inboxes. `VenmoGmailConnectError` is separate from `CashError`; no emails or
310
- Google tokens reach the partner. Configure `venmoGmail: { appearance, popup }`
308
+ The hosted flow offers Gmail, including Google-hosted custom domains, and
309
+ personal Outlook, then verifies actual Venmo receipts. `VenmoGmailConnectError`
310
+ is separate from `CashError`; no emails or mailbox tokens reach the partner. Configure `venmoGmail: { appearance, popup }`
311
311
  for branding and desktop dimensions; omission keeps Peer defaults.
312
312
  See the README for error codes, native callbacks, package-free URLs, and
313
313
  customization, plus `examples/venmo-link.ts`.