@graph8/sdk 0.15.0 → 0.17.0

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/react.d.mts CHANGED
@@ -1642,11 +1642,14 @@ interface DealUpdateParams {
1642
1642
  */
1643
1643
  close_date?: string | null;
1644
1644
  /**
1645
- * Reassign the deal owner (user id or email). Pass null to clear, except on
1646
- * a deal sitting in a closed stage (HTTP 400, marker
1647
- * `owner_required_for_closed_stage`).
1645
+ * Reassign the deal owner. Pass a member id, email, or provider uid — it is
1646
+ * resolved to a real team member (HTTP 422 if it matches none). Omit to
1647
+ * leave the owner unchanged. Ownership is reassign-only and CANNOT be
1648
+ * cleared: passing `null` is rejected with HTTP 422 (#18469). A deal's owner
1649
+ * is a required invariant. (The closed-stage gate still applies when moving
1650
+ * into Closed Won/Lost — see `stage_id`.)
1648
1651
  */
1649
- owner_id?: string | null;
1652
+ owner_id?: string;
1650
1653
  /**
1651
1654
  * mashup_contact_ids to link. Must belong to the deal's company (if the deal
1652
1655
  * has none yet, the added contacts' company is adopted); a cross-company add
@@ -1655,7 +1658,26 @@ interface DealUpdateParams {
1655
1658
  add_contact_ids?: number[];
1656
1659
  /** mashup_contact_ids to unlink. Idempotent. */
1657
1660
  remove_contact_ids?: number[];
1661
+ /**
1662
+ * Buying-committee role per contact on this deal, keyed by
1663
+ * mashup_contact_id. JSON object keys are strings, so the key type is
1664
+ * `string` even though the id is numeric: `{ "5500429": "champion" }`.
1665
+ * `null` clears a contact's role.
1666
+ *
1667
+ * Applies to contacts already linked to the deal, and to contacts linked by
1668
+ * `add_contact_ids` in the same call (roles are applied after the link). An
1669
+ * id that is neither already linked nor being added is rejected with HTTP
1670
+ * 422 naming the id, and the whole update is rolled back. A role outside the
1671
+ * vocabulary is HTTP 422.
1672
+ */
1673
+ contact_roles?: Record<string, DealContactRole | null>;
1658
1674
  }
1675
+ /**
1676
+ * Role a contact plays in a deal's buying committee
1677
+ * (`cb_deal_contacts.role`). The same person can hold different roles on
1678
+ * different deals, so this lives on the deal-contact link, not the contact.
1679
+ */
1680
+ type DealContactRole = "champion" | "decision_maker" | "influencer" | "blocker" | "coach" | "end_user";
1659
1681
  interface DealListParams {
1660
1682
  page?: number;
1661
1683
  limit?: number;
package/dist/react.d.ts CHANGED
@@ -1642,11 +1642,14 @@ interface DealUpdateParams {
1642
1642
  */
1643
1643
  close_date?: string | null;
1644
1644
  /**
1645
- * Reassign the deal owner (user id or email). Pass null to clear, except on
1646
- * a deal sitting in a closed stage (HTTP 400, marker
1647
- * `owner_required_for_closed_stage`).
1645
+ * Reassign the deal owner. Pass a member id, email, or provider uid — it is
1646
+ * resolved to a real team member (HTTP 422 if it matches none). Omit to
1647
+ * leave the owner unchanged. Ownership is reassign-only and CANNOT be
1648
+ * cleared: passing `null` is rejected with HTTP 422 (#18469). A deal's owner
1649
+ * is a required invariant. (The closed-stage gate still applies when moving
1650
+ * into Closed Won/Lost — see `stage_id`.)
1648
1651
  */
1649
- owner_id?: string | null;
1652
+ owner_id?: string;
1650
1653
  /**
1651
1654
  * mashup_contact_ids to link. Must belong to the deal's company (if the deal
1652
1655
  * has none yet, the added contacts' company is adopted); a cross-company add
@@ -1655,7 +1658,26 @@ interface DealUpdateParams {
1655
1658
  add_contact_ids?: number[];
1656
1659
  /** mashup_contact_ids to unlink. Idempotent. */
1657
1660
  remove_contact_ids?: number[];
1661
+ /**
1662
+ * Buying-committee role per contact on this deal, keyed by
1663
+ * mashup_contact_id. JSON object keys are strings, so the key type is
1664
+ * `string` even though the id is numeric: `{ "5500429": "champion" }`.
1665
+ * `null` clears a contact's role.
1666
+ *
1667
+ * Applies to contacts already linked to the deal, and to contacts linked by
1668
+ * `add_contact_ids` in the same call (roles are applied after the link). An
1669
+ * id that is neither already linked nor being added is rejected with HTTP
1670
+ * 422 naming the id, and the whole update is rolled back. A role outside the
1671
+ * vocabulary is HTTP 422.
1672
+ */
1673
+ contact_roles?: Record<string, DealContactRole | null>;
1658
1674
  }
1675
+ /**
1676
+ * Role a contact plays in a deal's buying committee
1677
+ * (`cb_deal_contacts.role`). The same person can hold different roles on
1678
+ * different deals, so this lives on the deal-contact link, not the contact.
1679
+ */
1680
+ type DealContactRole = "champion" | "decision_maker" | "influencer" | "blocker" | "coach" | "end_user";
1659
1681
  interface DealListParams {
1660
1682
  page?: number;
1661
1683
  limit?: number;