Driftwatch

Square / Square API /

Breakingdirection flip: their tools call this safe

value can now return "DEPOSIT_FEE_REVERSED", "SQUARE_PAYROLL_TRANSFER", "SQUARE_PAYROLL_TRANSFER_REVERSED"

What changed

Producer-side tools call this additive. It breaks exhaustive switches, strict parsers and generated client enums.

Affects this value on ActivityType reachable from 1 operation.

New values: DEPOSIT_FEE_REVERSED, SQUARE_PAYROLL_TRANSFER, SQUARE_PAYROLL_TRANSFER_REVERSED.

can now return "DEPOSIT_FEE_REVERSED", "SQUARE_PAYROLL_TRANSFER", "SQUARE_PAYROLL_TRANSFER_REVERSED"

Who is affected

Code that reads Square's ActivityType objects, used by 1 Square operation.

Before and after

WhereBeforeAfter
ActivityType"ADJUSTMENT", "APP_FEE_REFUND", "APP_FEE_REVENUE", "AUTOMATIC_BITCOIN_CONVERSIONS", "AUTOMATIC_BITCOIN_CONVERSIONS_REVERSED", "AUTOMATIC_SAVINGS", "AUTOMATIC_SAVINGS_REVERSED", "BALANCE_FOLDERS_TRANSFER", "BALANCE_FOLDERS_TRANSFER_REVERSED", "CHARGE", "CREDIT_CARD_REPAYMENT", "CREDIT_CARD_REPAYMENT_REVERSED", "DEPOSIT_FEE", "DISPUTE", "ESCHEATMENT", "FEE", "FREE_PROCESSING", "GIFT_CARD_LOAD_FEE", "GIFT_CARD_LOAD_FEE_REFUND", "GIFT_CARD_POOL_TRANSFER", "GIFT_CARD_POOL_TRANSFER_REVERSED", "HOLD_ADJUSTMENT", "INITIAL_BALANCE_CHANGE", "LOCAL_OFFERS_CASHBACK", "LOCAL_OFFERS_FEE", "MONEY_TRANSFER", "MONEY_TRANSFER_REVERSAL", "OPEN_DISPUTE", "OTHER", "OTHER_ADJUSTMENT", "PAID_SERVICE_FEE", "PAID_SERVICE_FEE_REFUND", "PAYOUT", "PERCENTAGE_PROCESSING_DEACTIVATION", "PERCENTAGE_PROCESSING_ENROLLMENT", "PERCENTAGE_PROCESSING_REPAYMENT", "PERCENTAGE_PROCESSING_REPAYMENT_REVERSED", "PROCESSING_FEE", "PROCESSING_FEE_REFUND", "REDEMPTION_CODE", "REFUND", "RELEASE_ADJUSTMENT", "RESERVE_HOLD", "RESERVE_RELEASE", "RETURNED_PAYOUT", "SQUARE_CAPITAL_PAYMENT", "SQUARE_CAPITAL_REVERSED_PAYMENT", "SUBSCRIPTION_FEE", "SUBSCRIPTION_FEE_PAID_REFUND", "SUBSCRIPTION_FEE_REFUND", "TAX_ON_FEE", "THIRD_PARTY_FEE", "THIRD_PARTY_FEE_REFUND", "UNDO_GIFT_CARD_LOAD_FEE_REFUND", "UNDO_PROCESSING_FEE_REFUND""ADJUSTMENT", "APP_FEE_REFUND", "APP_FEE_REVENUE", "AUTOMATIC_BITCOIN_CONVERSIONS", "AUTOMATIC_BITCOIN_CONVERSIONS_REVERSED", "AUTOMATIC_SAVINGS", "AUTOMATIC_SAVINGS_REVERSED", "BALANCE_FOLDERS_TRANSFER", "BALANCE_FOLDERS_TRANSFER_REVERSED", "CHARGE", "CREDIT_CARD_REPAYMENT", "CREDIT_CARD_REPAYMENT_REVERSED", "DEPOSIT_FEE", "DEPOSIT_FEE_REVERSED", "DISPUTE", "ESCHEATMENT", "FEE", "FREE_PROCESSING", "GIFT_CARD_LOAD_FEE", "GIFT_CARD_LOAD_FEE_REFUND", "GIFT_CARD_POOL_TRANSFER", "GIFT_CARD_POOL_TRANSFER_REVERSED", "HOLD_ADJUSTMENT", "INITIAL_BALANCE_CHANGE", "LOCAL_OFFERS_CASHBACK", "LOCAL_OFFERS_FEE", "MONEY_TRANSFER", "MONEY_TRANSFER_REVERSAL", "OPEN_DISPUTE", "OTHER", "OTHER_ADJUSTMENT", "PAID_SERVICE_FEE", "PAID_SERVICE_FEE_REFUND", "PAYOUT", "PERCENTAGE_PROCESSING_DEACTIVATION", "PERCENTAGE_PROCESSING_ENROLLMENT", "PERCENTAGE_PROCESSING_REPAYMENT", "PERCENTAGE_PROCESSING_REPAYMENT_REVERSED", "PROCESSING_FEE", "PROCESSING_FEE_REFUND", "REDEMPTION_CODE", "REFUND", "RELEASE_ADJUSTMENT", "RESERVE_HOLD", "RESERVE_RELEASE", "RETURNED_PAYOUT", "SQUARE_CAPITAL_PAYMENT", "SQUARE_CAPITAL_REVERSED_PAYMENT", "SQUARE_PAYROLL_TRANSFER", "SQUARE_PAYROLL_TRANSFER_REVERSED", "SUBSCRIPTION_FEE", "SUBSCRIPTION_FEE_PAID_REFUND", "SUBSCRIPTION_FEE_REFUND", "TAX_ON_FEE", "THIRD_PARTY_FEE", "THIRD_PARTY_FEE_REFUND", "UNDO_GIFT_CARD_LOAD_FEE_REFUND", "UNDO_PROCESSING_FEE_REFUND"

Code that breaks

switch (response) {
  // existing branches …
  // no branch for "DEPOSIT_FEE_REVERSED"
  // no branch for "SQUARE_PAYROLL_TRANSFER"
  // no branch for "SQUARE_PAYROLL_TRANSFER_REVERSED"
  default:
    throw new Error("unexpected value");
}

Based on Square’s published API specification. How severity is decided.