@revfleet/hscli 0.5.3

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.
Files changed (329) hide show
  1. package/CHANGELOG.md +466 -0
  2. package/LICENSE +21 -0
  3. package/README.md +287 -0
  4. package/SECURITY.md +68 -0
  5. package/dist/cli.d.ts +8 -0
  6. package/dist/cli.js +192 -0
  7. package/dist/cli.js.map +1 -0
  8. package/dist/commands/account/index.d.ts +3 -0
  9. package/dist/commands/account/index.js +65 -0
  10. package/dist/commands/account/index.js.map +1 -0
  11. package/dist/commands/api/index.d.ts +3 -0
  12. package/dist/commands/api/index.js +35 -0
  13. package/dist/commands/api/index.js.map +1 -0
  14. package/dist/commands/auth/index.d.ts +3 -0
  15. package/dist/commands/auth/index.js +229 -0
  16. package/dist/commands/auth/index.js.map +1 -0
  17. package/dist/commands/automation/index.d.ts +3 -0
  18. package/dist/commands/automation/index.js +119 -0
  19. package/dist/commands/automation/index.js.map +1 -0
  20. package/dist/commands/cms/blog-settings.d.ts +3 -0
  21. package/dist/commands/cms/blog-settings.js +70 -0
  22. package/dist/commands/cms/blog-settings.js.map +1 -0
  23. package/dist/commands/cms/content-ops.d.ts +13 -0
  24. package/dist/commands/cms/content-ops.js +262 -0
  25. package/dist/commands/cms/content-ops.js.map +1 -0
  26. package/dist/commands/cms/hubdb.d.ts +3 -0
  27. package/dist/commands/cms/hubdb.js +55 -0
  28. package/dist/commands/cms/hubdb.js.map +1 -0
  29. package/dist/commands/cms/index.d.ts +3 -0
  30. package/dist/commands/cms/index.js +119 -0
  31. package/dist/commands/cms/index.js.map +1 -0
  32. package/dist/commands/cms/source-code.d.ts +3 -0
  33. package/dist/commands/cms/source-code.js +101 -0
  34. package/dist/commands/cms/source-code.js.map +1 -0
  35. package/dist/commands/communication-preferences/index.d.ts +3 -0
  36. package/dist/commands/communication-preferences/index.js +107 -0
  37. package/dist/commands/communication-preferences/index.js.map +1 -0
  38. package/dist/commands/conversations/index.d.ts +3 -0
  39. package/dist/commands/conversations/index.js +233 -0
  40. package/dist/commands/conversations/index.js.map +1 -0
  41. package/dist/commands/crm/associations.d.ts +3 -0
  42. package/dist/commands/crm/associations.js +180 -0
  43. package/dist/commands/crm/associations.js.map +1 -0
  44. package/dist/commands/crm/cards.d.ts +3 -0
  45. package/dist/commands/crm/cards.js +72 -0
  46. package/dist/commands/crm/cards.js.map +1 -0
  47. package/dist/commands/crm/carts.d.ts +3 -0
  48. package/dist/commands/crm/carts.js +5 -0
  49. package/dist/commands/crm/carts.js.map +1 -0
  50. package/dist/commands/crm/communications.d.ts +3 -0
  51. package/dist/commands/crm/communications.js +5 -0
  52. package/dist/commands/crm/communications.js.map +1 -0
  53. package/dist/commands/crm/companies.d.ts +3 -0
  54. package/dist/commands/crm/companies.js +5 -0
  55. package/dist/commands/crm/companies.js.map +1 -0
  56. package/dist/commands/crm/contacts.d.ts +3 -0
  57. package/dist/commands/crm/contacts.js +5 -0
  58. package/dist/commands/crm/contacts.js.map +1 -0
  59. package/dist/commands/crm/custom-objects.d.ts +3 -0
  60. package/dist/commands/crm/custom-objects.js +83 -0
  61. package/dist/commands/crm/custom-objects.js.map +1 -0
  62. package/dist/commands/crm/dated.d.ts +9 -0
  63. package/dist/commands/crm/dated.js +247 -0
  64. package/dist/commands/crm/dated.js.map +1 -0
  65. package/dist/commands/crm/deals.d.ts +3 -0
  66. package/dist/commands/crm/deals.js +5 -0
  67. package/dist/commands/crm/deals.js.map +1 -0
  68. package/dist/commands/crm/describe.d.ts +3 -0
  69. package/dist/commands/crm/describe.js +89 -0
  70. package/dist/commands/crm/describe.js.map +1 -0
  71. package/dist/commands/crm/discounts.d.ts +3 -0
  72. package/dist/commands/crm/discounts.js +5 -0
  73. package/dist/commands/crm/discounts.js.map +1 -0
  74. package/dist/commands/crm/engagements.d.ts +3 -0
  75. package/dist/commands/crm/engagements.js +8 -0
  76. package/dist/commands/crm/engagements.js.map +1 -0
  77. package/dist/commands/crm/fees.d.ts +3 -0
  78. package/dist/commands/crm/fees.js +5 -0
  79. package/dist/commands/crm/fees.js.map +1 -0
  80. package/dist/commands/crm/goals.d.ts +3 -0
  81. package/dist/commands/crm/goals.js +30 -0
  82. package/dist/commands/crm/goals.js.map +1 -0
  83. package/dist/commands/crm/imports.d.ts +3 -0
  84. package/dist/commands/crm/imports.js +45 -0
  85. package/dist/commands/crm/imports.js.map +1 -0
  86. package/dist/commands/crm/index.d.ts +3 -0
  87. package/dist/commands/crm/index.js +64 -0
  88. package/dist/commands/crm/index.js.map +1 -0
  89. package/dist/commands/crm/invoices.d.ts +3 -0
  90. package/dist/commands/crm/invoices.js +5 -0
  91. package/dist/commands/crm/invoices.js.map +1 -0
  92. package/dist/commands/crm/leads.d.ts +3 -0
  93. package/dist/commands/crm/leads.js +5 -0
  94. package/dist/commands/crm/leads.js.map +1 -0
  95. package/dist/commands/crm/line-items.d.ts +3 -0
  96. package/dist/commands/crm/line-items.js +5 -0
  97. package/dist/commands/crm/line-items.js.map +1 -0
  98. package/dist/commands/crm/orders.d.ts +3 -0
  99. package/dist/commands/crm/orders.js +5 -0
  100. package/dist/commands/crm/orders.js.map +1 -0
  101. package/dist/commands/crm/owners.d.ts +3 -0
  102. package/dist/commands/crm/owners.js +22 -0
  103. package/dist/commands/crm/owners.js.map +1 -0
  104. package/dist/commands/crm/payments.d.ts +3 -0
  105. package/dist/commands/crm/payments.js +5 -0
  106. package/dist/commands/crm/payments.js.map +1 -0
  107. package/dist/commands/crm/pipelines.d.ts +3 -0
  108. package/dist/commands/crm/pipelines.js +70 -0
  109. package/dist/commands/crm/pipelines.js.map +1 -0
  110. package/dist/commands/crm/products.d.ts +3 -0
  111. package/dist/commands/crm/products.js +5 -0
  112. package/dist/commands/crm/products.js.map +1 -0
  113. package/dist/commands/crm/properties.d.ts +3 -0
  114. package/dist/commands/crm/properties.js +103 -0
  115. package/dist/commands/crm/properties.js.map +1 -0
  116. package/dist/commands/crm/quotes.d.ts +3 -0
  117. package/dist/commands/crm/quotes.js +5 -0
  118. package/dist/commands/crm/quotes.js.map +1 -0
  119. package/dist/commands/crm/shared.d.ts +17 -0
  120. package/dist/commands/crm/shared.js +256 -0
  121. package/dist/commands/crm/shared.js.map +1 -0
  122. package/dist/commands/crm/subscriptions.d.ts +3 -0
  123. package/dist/commands/crm/subscriptions.js +5 -0
  124. package/dist/commands/crm/subscriptions.js.map +1 -0
  125. package/dist/commands/crm/sync.d.ts +3 -0
  126. package/dist/commands/crm/sync.js +116 -0
  127. package/dist/commands/crm/sync.js.map +1 -0
  128. package/dist/commands/crm/taxes.d.ts +3 -0
  129. package/dist/commands/crm/taxes.js +5 -0
  130. package/dist/commands/crm/taxes.js.map +1 -0
  131. package/dist/commands/crm/tickets.d.ts +3 -0
  132. package/dist/commands/crm/tickets.js +5 -0
  133. package/dist/commands/crm/tickets.js.map +1 -0
  134. package/dist/commands/crm/users.d.ts +3 -0
  135. package/dist/commands/crm/users.js +5 -0
  136. package/dist/commands/crm/users.js.map +1 -0
  137. package/dist/commands/doctor/index.d.ts +3 -0
  138. package/dist/commands/doctor/index.js +232 -0
  139. package/dist/commands/doctor/index.js.map +1 -0
  140. package/dist/commands/domains/shared.d.ts +13 -0
  141. package/dist/commands/domains/shared.js +56 -0
  142. package/dist/commands/domains/shared.js.map +1 -0
  143. package/dist/commands/email-events/index.d.ts +3 -0
  144. package/dist/commands/email-events/index.js +77 -0
  145. package/dist/commands/email-events/index.js.map +1 -0
  146. package/dist/commands/events/index.d.ts +3 -0
  147. package/dist/commands/events/index.js +80 -0
  148. package/dist/commands/events/index.js.map +1 -0
  149. package/dist/commands/exports/index.d.ts +3 -0
  150. package/dist/commands/exports/index.js +45 -0
  151. package/dist/commands/exports/index.js.map +1 -0
  152. package/dist/commands/extensions/index.d.ts +3 -0
  153. package/dist/commands/extensions/index.js +118 -0
  154. package/dist/commands/extensions/index.js.map +1 -0
  155. package/dist/commands/feature-flags/index.d.ts +3 -0
  156. package/dist/commands/feature-flags/index.js +65 -0
  157. package/dist/commands/feature-flags/index.js.map +1 -0
  158. package/dist/commands/files/folders.d.ts +3 -0
  159. package/dist/commands/files/folders.js +74 -0
  160. package/dist/commands/files/folders.js.map +1 -0
  161. package/dist/commands/files/index.d.ts +3 -0
  162. package/dist/commands/files/index.js +30 -0
  163. package/dist/commands/files/index.js.map +1 -0
  164. package/dist/commands/forms/index.d.ts +3 -0
  165. package/dist/commands/forms/index.js +37 -0
  166. package/dist/commands/forms/index.js.map +1 -0
  167. package/dist/commands/integrations/index.d.ts +3 -0
  168. package/dist/commands/integrations/index.js +64 -0
  169. package/dist/commands/integrations/index.js.map +1 -0
  170. package/dist/commands/integrators/index.d.ts +3 -0
  171. package/dist/commands/integrators/index.js +79 -0
  172. package/dist/commands/integrators/index.js.map +1 -0
  173. package/dist/commands/legacy/index.d.ts +13 -0
  174. package/dist/commands/legacy/index.js +254 -0
  175. package/dist/commands/legacy/index.js.map +1 -0
  176. package/dist/commands/legacy-v1/index.d.ts +29 -0
  177. package/dist/commands/legacy-v1/index.js +568 -0
  178. package/dist/commands/legacy-v1/index.js.map +1 -0
  179. package/dist/commands/lists/index.d.ts +3 -0
  180. package/dist/commands/lists/index.js +148 -0
  181. package/dist/commands/lists/index.js.map +1 -0
  182. package/dist/commands/marketing/ads.d.ts +3 -0
  183. package/dist/commands/marketing/ads.js +45 -0
  184. package/dist/commands/marketing/ads.js.map +1 -0
  185. package/dist/commands/marketing/behavioral-events.d.ts +3 -0
  186. package/dist/commands/marketing/behavioral-events.js +38 -0
  187. package/dist/commands/marketing/behavioral-events.js.map +1 -0
  188. package/dist/commands/marketing/events.d.ts +3 -0
  189. package/dist/commands/marketing/events.js +69 -0
  190. package/dist/commands/marketing/events.js.map +1 -0
  191. package/dist/commands/marketing/index.d.ts +3 -0
  192. package/dist/commands/marketing/index.js +55 -0
  193. package/dist/commands/marketing/index.js.map +1 -0
  194. package/dist/commands/marketing/landing-pages.d.ts +3 -0
  195. package/dist/commands/marketing/landing-pages.js +48 -0
  196. package/dist/commands/marketing/landing-pages.js.map +1 -0
  197. package/dist/commands/marketing/seo.d.ts +3 -0
  198. package/dist/commands/marketing/seo.js +35 -0
  199. package/dist/commands/marketing/seo.js.map +1 -0
  200. package/dist/commands/marketing/social.d.ts +3 -0
  201. package/dist/commands/marketing/social.js +45 -0
  202. package/dist/commands/marketing/social.js.map +1 -0
  203. package/dist/commands/marketing/subscriptions.d.ts +3 -0
  204. package/dist/commands/marketing/subscriptions.js +27 -0
  205. package/dist/commands/marketing/subscriptions.js.map +1 -0
  206. package/dist/commands/marketing/transactional.d.ts +3 -0
  207. package/dist/commands/marketing/transactional.js +30 -0
  208. package/dist/commands/marketing/transactional.js.map +1 -0
  209. package/dist/commands/marketing-emails-v1/index.d.ts +3 -0
  210. package/dist/commands/marketing-emails-v1/index.js +72 -0
  211. package/dist/commands/marketing-emails-v1/index.js.map +1 -0
  212. package/dist/commands/mcp.d.ts +2 -0
  213. package/dist/commands/mcp.js +10 -0
  214. package/dist/commands/mcp.js.map +1 -0
  215. package/dist/commands/media-bridge/index.d.ts +3 -0
  216. package/dist/commands/media-bridge/index.js +209 -0
  217. package/dist/commands/media-bridge/index.js.map +1 -0
  218. package/dist/commands/reporting/index.d.ts +3 -0
  219. package/dist/commands/reporting/index.js +73 -0
  220. package/dist/commands/reporting/index.js.map +1 -0
  221. package/dist/commands/sales/calling.d.ts +3 -0
  222. package/dist/commands/sales/calling.js +32 -0
  223. package/dist/commands/sales/calling.js.map +1 -0
  224. package/dist/commands/sales/index.d.ts +3 -0
  225. package/dist/commands/sales/index.js +10 -0
  226. package/dist/commands/sales/index.js.map +1 -0
  227. package/dist/commands/sales/meetings.d.ts +3 -0
  228. package/dist/commands/sales/meetings.js +37 -0
  229. package/dist/commands/sales/meetings.js.map +1 -0
  230. package/dist/commands/sales/sequences.d.ts +3 -0
  231. package/dist/commands/sales/sequences.js +78 -0
  232. package/dist/commands/sales/sequences.js.map +1 -0
  233. package/dist/commands/seed/cms.d.ts +6 -0
  234. package/dist/commands/seed/cms.js +204 -0
  235. package/dist/commands/seed/cms.js.map +1 -0
  236. package/dist/commands/seed/commerce.d.ts +3 -0
  237. package/dist/commands/seed/commerce.js +117 -0
  238. package/dist/commands/seed/commerce.js.map +1 -0
  239. package/dist/commands/seed/context.d.ts +8 -0
  240. package/dist/commands/seed/context.js +76 -0
  241. package/dist/commands/seed/context.js.map +1 -0
  242. package/dist/commands/seed/crm-core.d.ts +3 -0
  243. package/dist/commands/seed/crm-core.js +137 -0
  244. package/dist/commands/seed/crm-core.js.map +1 -0
  245. package/dist/commands/seed/data.d.ts +73 -0
  246. package/dist/commands/seed/data.js +49 -0
  247. package/dist/commands/seed/data.js.map +1 -0
  248. package/dist/commands/seed/engagements.d.ts +3 -0
  249. package/dist/commands/seed/engagements.js +89 -0
  250. package/dist/commands/seed/engagements.js.map +1 -0
  251. package/dist/commands/seed/index.d.ts +3 -0
  252. package/dist/commands/seed/index.js +95 -0
  253. package/dist/commands/seed/index.js.map +1 -0
  254. package/dist/commands/seed/infra.d.ts +6 -0
  255. package/dist/commands/seed/infra.js +163 -0
  256. package/dist/commands/seed/infra.js.map +1 -0
  257. package/dist/commands/seed/marketing.d.ts +3 -0
  258. package/dist/commands/seed/marketing.js +172 -0
  259. package/dist/commands/seed/marketing.js.map +1 -0
  260. package/dist/commands/seed/shared.d.ts +8 -0
  261. package/dist/commands/seed/shared.js +37 -0
  262. package/dist/commands/seed/shared.js.map +1 -0
  263. package/dist/commands/seed/types.d.ts +44 -0
  264. package/dist/commands/seed/types.js +2 -0
  265. package/dist/commands/seed/types.js.map +1 -0
  266. package/dist/commands/service/chatflows.d.ts +3 -0
  267. package/dist/commands/service/chatflows.js +30 -0
  268. package/dist/commands/service/chatflows.js.map +1 -0
  269. package/dist/commands/service/index.d.ts +3 -0
  270. package/dist/commands/service/index.js +25 -0
  271. package/dist/commands/service/index.js.map +1 -0
  272. package/dist/commands/service/knowledge-base.d.ts +3 -0
  273. package/dist/commands/service/knowledge-base.js +19 -0
  274. package/dist/commands/service/knowledge-base.js.map +1 -0
  275. package/dist/commands/service/pipelines.d.ts +3 -0
  276. package/dist/commands/service/pipelines.js +36 -0
  277. package/dist/commands/service/pipelines.js.map +1 -0
  278. package/dist/commands/settings/index.d.ts +3 -0
  279. package/dist/commands/settings/index.js +149 -0
  280. package/dist/commands/settings/index.js.map +1 -0
  281. package/dist/commands/site-search/index.d.ts +3 -0
  282. package/dist/commands/site-search/index.js +36 -0
  283. package/dist/commands/site-search/index.js.map +1 -0
  284. package/dist/commands/timeline/index.d.ts +3 -0
  285. package/dist/commands/timeline/index.js +32 -0
  286. package/dist/commands/timeline/index.js.map +1 -0
  287. package/dist/commands/webhooks/index.d.ts +3 -0
  288. package/dist/commands/webhooks/index.js +41 -0
  289. package/dist/commands/webhooks/index.js.map +1 -0
  290. package/dist/commands/workflows/index.d.ts +3 -0
  291. package/dist/commands/workflows/index.js +13 -0
  292. package/dist/commands/workflows/index.js.map +1 -0
  293. package/dist/core/auth.d.ts +33 -0
  294. package/dist/core/auth.js +137 -0
  295. package/dist/core/auth.js.map +1 -0
  296. package/dist/core/capabilities.d.ts +60 -0
  297. package/dist/core/capabilities.js +559 -0
  298. package/dist/core/capabilities.js.map +1 -0
  299. package/dist/core/http.d.ts +47 -0
  300. package/dist/core/http.js +433 -0
  301. package/dist/core/http.js.map +1 -0
  302. package/dist/core/output.d.ts +23 -0
  303. package/dist/core/output.js +197 -0
  304. package/dist/core/output.js.map +1 -0
  305. package/dist/core/permissions.d.ts +9 -0
  306. package/dist/core/permissions.js +27 -0
  307. package/dist/core/permissions.js.map +1 -0
  308. package/dist/core/plugins.d.ts +42 -0
  309. package/dist/core/plugins.js +94 -0
  310. package/dist/core/plugins.js.map +1 -0
  311. package/dist/core/policy.d.ts +2 -0
  312. package/dist/core/policy.js +38 -0
  313. package/dist/core/policy.js.map +1 -0
  314. package/dist/core/schema-cache.d.ts +56 -0
  315. package/dist/core/schema-cache.js +338 -0
  316. package/dist/core/schema-cache.js.map +1 -0
  317. package/dist/core/schemas.d.ts +96 -0
  318. package/dist/core/schemas.js +104 -0
  319. package/dist/core/schemas.js.map +1 -0
  320. package/dist/core/urls.d.ts +50 -0
  321. package/dist/core/urls.js +122 -0
  322. package/dist/core/urls.js.map +1 -0
  323. package/dist/core/vault.d.ts +37 -0
  324. package/dist/core/vault.js +143 -0
  325. package/dist/core/vault.js.map +1 -0
  326. package/dist/mcp/server.d.ts +5 -0
  327. package/dist/mcp/server.js +680 -0
  328. package/dist/mcp/server.js.map +1 -0
  329. package/package.json +84 -0
@@ -0,0 +1,107 @@
1
+ import { getToken } from "../../core/auth.js";
2
+ import { HubSpotClient } from "../../core/http.js";
3
+ import { printResult } from "../../core/output.js";
4
+ import { encodePathSegment, maybeWrite, parseJsonPayload } from "../crm/shared.js";
5
+ export function registerCommunicationPreferences(program, getCtx) {
6
+ const commPrefs = program.command("communication-preferences").description("HubSpot communication preferences / subscription management");
7
+ commPrefs
8
+ .command("subscription-types")
9
+ .description("List subscription types")
10
+ .action(async () => {
11
+ const ctx = getCtx();
12
+ const client = new HubSpotClient(getToken(ctx.profile));
13
+ const res = await client.request("/communication-preferences/v3/definitions");
14
+ printResult(ctx, res);
15
+ });
16
+ commPrefs
17
+ .command("status")
18
+ .argument("<email>")
19
+ .description("Get subscription status for an email address")
20
+ .action(async (email) => {
21
+ const ctx = getCtx();
22
+ const client = new HubSpotClient(getToken(ctx.profile));
23
+ const res = await client.request(`/communication-preferences/v3/status/email/${encodePathSegment(email, "email")}`);
24
+ printResult(ctx, res);
25
+ });
26
+ commPrefs
27
+ .command("subscribe")
28
+ .requiredOption("--data <payload>", "Subscribe payload JSON (emailAddress, subscriptionId)")
29
+ .description("Subscribe a contact")
30
+ .action(async (opts) => {
31
+ const ctx = getCtx();
32
+ const client = new HubSpotClient(getToken(ctx.profile));
33
+ const payload = parseJsonPayload(opts.data);
34
+ const res = await maybeWrite(ctx, client, "POST", "/communication-preferences/v3/subscribe", payload);
35
+ printResult(ctx, res);
36
+ });
37
+ commPrefs
38
+ .command("unsubscribe")
39
+ .requiredOption("--data <payload>", "Unsubscribe payload JSON (emailAddress, subscriptionId)")
40
+ .description("Unsubscribe a contact")
41
+ .action(async (opts) => {
42
+ const ctx = getCtx();
43
+ const client = new HubSpotClient(getToken(ctx.profile));
44
+ const payload = parseJsonPayload(opts.data);
45
+ const res = await maybeWrite(ctx, client, "POST", "/communication-preferences/v3/unsubscribe", payload);
46
+ printResult(ctx, res);
47
+ });
48
+ // V4 batch endpoints (latest API, for portals using the new contact-centric preferences model)
49
+ const v4 = commPrefs.command("v4").description("Communication Preferences v4 (contact-centric, batch-capable)");
50
+ v4.command("status-batch-read")
51
+ .description("Batch-read subscription statuses for up to 100 contacts")
52
+ .requiredOption("--data <payload>", "Batch input JSON: { inputs: [{ subscriberIdString, channel, subscriptionId }, ...] }")
53
+ .action(async (opts) => {
54
+ const ctx = getCtx();
55
+ const client = new HubSpotClient(getToken(ctx.profile));
56
+ const payload = parseJsonPayload(opts.data);
57
+ const res = await client.request("/communication/preferences/v4/statuses/batch-read", { method: "POST", body: payload });
58
+ printResult(ctx, res);
59
+ });
60
+ v4.command("status-update-batch")
61
+ .description("Batch-update subscription statuses")
62
+ .requiredOption("--data <payload>", "Batch update payload JSON")
63
+ .action(async (opts) => {
64
+ const ctx = getCtx();
65
+ const client = new HubSpotClient(getToken(ctx.profile));
66
+ const payload = parseJsonPayload(opts.data);
67
+ const res = await maybeWrite(ctx, client, "POST", "/communication/preferences/v4/statuses/batch-update", payload);
68
+ printResult(ctx, res);
69
+ });
70
+ v4.command("subscribe-batch")
71
+ .description("Batch-subscribe")
72
+ .requiredOption("--data <payload>", "Batch subscribe payload JSON")
73
+ .action(async (opts) => {
74
+ const ctx = getCtx();
75
+ const client = new HubSpotClient(getToken(ctx.profile));
76
+ const payload = parseJsonPayload(opts.data);
77
+ const res = await maybeWrite(ctx, client, "POST", "/communication/preferences/v4/subscribe-batch", payload);
78
+ printResult(ctx, res);
79
+ });
80
+ v4.command("unsubscribe-batch")
81
+ .description("Batch-unsubscribe")
82
+ .requiredOption("--data <payload>", "Batch unsubscribe payload JSON")
83
+ .action(async (opts) => {
84
+ const ctx = getCtx();
85
+ const client = new HubSpotClient(getToken(ctx.profile));
86
+ const payload = parseJsonPayload(opts.data);
87
+ const res = await maybeWrite(ctx, client, "POST", "/communication/preferences/v4/unsubscribe-batch", payload);
88
+ printResult(ctx, res);
89
+ });
90
+ v4.command("subscriptions-list")
91
+ .description("List subscription definitions (v4)")
92
+ .action(async () => {
93
+ const ctx = getCtx();
94
+ const client = new HubSpotClient(getToken(ctx.profile));
95
+ const res = await client.request("/communication/preferences/v4/subscriptions");
96
+ printResult(ctx, res);
97
+ });
98
+ v4.command("channels-list")
99
+ .description("List supported channels (email, sms, whatsapp, etc.)")
100
+ .action(async () => {
101
+ const ctx = getCtx();
102
+ const client = new HubSpotClient(getToken(ctx.profile));
103
+ const res = await client.request("/communication/preferences/v4/channels");
104
+ printResult(ctx, res);
105
+ });
106
+ }
107
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/communication-preferences/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from "commander";
2
+ import type { CliContext } from "../../core/output.js";
3
+ export declare function registerConversations(program: Command, getCtx: () => CliContext): void;
@@ -0,0 +1,233 @@
1
+ import { createClient } from "../../core/http.js";
2
+ import { printResult } from "../../core/output.js";
3
+ import { appendOptional, encodePathSegment, maybeWrite, parseJsonPayload, parseNumberFlag } from "../crm/shared.js";
4
+ export function registerConversations(program, getCtx) {
5
+ const conversations = program.command("conversations").description("HubSpot Conversations APIs (threads & messages)");
6
+ const threads = conversations.command("threads").description("Conversation threads");
7
+ threads
8
+ .command("list")
9
+ .option("--limit <n>", "Max records", "50")
10
+ .option("--after <cursor>", "Paging cursor")
11
+ .action(async (opts) => {
12
+ const ctx = getCtx();
13
+ const client = createClient(ctx.profile);
14
+ const params = new URLSearchParams();
15
+ params.set("limit", String(parseNumberFlag(opts.limit, "--limit")));
16
+ appendOptional(params, "after", opts.after);
17
+ const res = await client.request(`/conversations/v3/conversations/threads?${params.toString()}`);
18
+ printResult(ctx, res);
19
+ });
20
+ threads
21
+ .command("get")
22
+ .argument("<threadId>")
23
+ .action(async (threadId) => {
24
+ const ctx = getCtx();
25
+ const client = createClient(ctx.profile);
26
+ const id = encodePathSegment(threadId, "threadId");
27
+ const res = await client.request(`/conversations/v3/conversations/threads/${id}`);
28
+ printResult(ctx, res);
29
+ });
30
+ const messages = conversations.command("messages").description("Thread messages");
31
+ messages
32
+ .command("list")
33
+ .argument("<threadId>")
34
+ .option("--limit <n>", "Max records", "50")
35
+ .option("--after <cursor>", "Paging cursor")
36
+ .action(async (threadId, opts) => {
37
+ const ctx = getCtx();
38
+ const client = createClient(ctx.profile);
39
+ const id = encodePathSegment(threadId, "threadId");
40
+ const params = new URLSearchParams();
41
+ params.set("limit", String(parseNumberFlag(opts.limit, "--limit")));
42
+ appendOptional(params, "after", opts.after);
43
+ const res = await client.request(`/conversations/v3/conversations/threads/${id}/messages?${params.toString()}`);
44
+ printResult(ctx, res);
45
+ });
46
+ const inboxes = conversations.command("inboxes").description("Conversation inboxes (channel routing destinations)");
47
+ inboxes
48
+ .command("list")
49
+ .option("--limit <n>", "Max records", "50")
50
+ .option("--after <cursor>", "Paging cursor")
51
+ .action(async (opts) => {
52
+ const ctx = getCtx();
53
+ const client = createClient(ctx.profile);
54
+ const params = new URLSearchParams();
55
+ params.set("limit", String(parseNumberFlag(opts.limit, "--limit")));
56
+ appendOptional(params, "after", opts.after);
57
+ const res = await client.request(`/conversations/v3/conversations/inboxes?${params.toString()}`);
58
+ printResult(ctx, res);
59
+ });
60
+ inboxes
61
+ .command("get")
62
+ .argument("<inboxId>")
63
+ .action(async (inboxId) => {
64
+ const ctx = getCtx();
65
+ const client = createClient(ctx.profile);
66
+ const id = encodePathSegment(inboxId, "inboxId");
67
+ const res = await client.request(`/conversations/v3/conversations/inboxes/${id}`);
68
+ printResult(ctx, res);
69
+ });
70
+ const channels = conversations.command("channels").description("Conversation channels (email, chat, FB, forms, etc.)");
71
+ channels
72
+ .command("list")
73
+ .option("--limit <n>", "Max records", "50")
74
+ .option("--after <cursor>", "Paging cursor")
75
+ .action(async (opts) => {
76
+ const ctx = getCtx();
77
+ const client = createClient(ctx.profile);
78
+ const params = new URLSearchParams();
79
+ params.set("limit", String(parseNumberFlag(opts.limit, "--limit")));
80
+ appendOptional(params, "after", opts.after);
81
+ const res = await client.request(`/conversations/v3/conversations/channels?${params.toString()}`);
82
+ printResult(ctx, res);
83
+ });
84
+ channels
85
+ .command("get")
86
+ .argument("<channelId>")
87
+ .action(async (channelId) => {
88
+ const ctx = getCtx();
89
+ const client = createClient(ctx.profile);
90
+ const id = encodePathSegment(channelId, "channelId");
91
+ const res = await client.request(`/conversations/v3/conversations/channels/${id}`);
92
+ printResult(ctx, res);
93
+ });
94
+ const channelAccounts = conversations.command("channel-accounts").description("Conversation channel accounts (specific connected mailboxes/inboxes on a channel)");
95
+ channelAccounts
96
+ .command("list")
97
+ .option("--limit <n>", "Max records", "50")
98
+ .option("--after <cursor>", "Paging cursor")
99
+ .option("--channel-id <id>", "Filter by channel id")
100
+ .option("--inbox-id <id>", "Filter by inbox id")
101
+ .action(async (opts) => {
102
+ const ctx = getCtx();
103
+ const client = createClient(ctx.profile);
104
+ const params = new URLSearchParams();
105
+ params.set("limit", String(parseNumberFlag(opts.limit, "--limit")));
106
+ appendOptional(params, "after", opts.after);
107
+ appendOptional(params, "channelId", opts.channelId);
108
+ appendOptional(params, "inboxId", opts.inboxId);
109
+ const res = await client.request(`/conversations/v3/conversations/channel-accounts?${params.toString()}`);
110
+ printResult(ctx, res);
111
+ });
112
+ channelAccounts
113
+ .command("get")
114
+ .argument("<channelAccountId>")
115
+ .action(async (channelAccountId) => {
116
+ const ctx = getCtx();
117
+ const client = createClient(ctx.profile);
118
+ const id = encodePathSegment(channelAccountId, "channelAccountId");
119
+ const res = await client.request(`/conversations/v3/conversations/channel-accounts/${id}`);
120
+ printResult(ctx, res);
121
+ });
122
+ const actors = conversations.command("actors").description("Conversation actors (agents, bots, visitors) for hydrating threads");
123
+ actors
124
+ .command("get")
125
+ .argument("<actorId>")
126
+ .description("Get actor details by actor id (e.g. A-12345, V-abcdef)")
127
+ .action(async (actorId) => {
128
+ const ctx = getCtx();
129
+ const client = createClient(ctx.profile);
130
+ const id = encodePathSegment(actorId, "actorId");
131
+ const res = await client.request(`/conversations/v3/conversations/actors/${id}`);
132
+ printResult(ctx, res);
133
+ });
134
+ actors
135
+ .command("batch-read")
136
+ .description("Batch-read actor details for up to 100 actor ids in one call")
137
+ .requiredOption("--ids <csv>", "Comma-separated list of actor ids")
138
+ .action(async (opts) => {
139
+ const ctx = getCtx();
140
+ const client = createClient(ctx.profile);
141
+ const ids = String(opts.ids).split(",").map((s) => s.trim()).filter(Boolean);
142
+ const res = await client.request(`/conversations/v3/conversations/actors/batch/read`, {
143
+ method: "POST",
144
+ body: { inputs: ids.map((id) => ({ id })) },
145
+ });
146
+ printResult(ctx, res);
147
+ });
148
+ // Custom Channels — app-dev defined channels (SMS/Slack/custom integrations)
149
+ const customChannels = conversations.command("custom-channels").description("Custom conversation channels (app-dev defined integrations)");
150
+ customChannels.command("list").option("--limit <n>", "Max records", "50").option("--after <cursor>", "Paging cursor").action(async (opts) => {
151
+ const ctx = getCtx();
152
+ const client = createClient(ctx.profile);
153
+ const params = new URLSearchParams();
154
+ params.set("limit", String(parseNumberFlag(opts.limit, "--limit")));
155
+ appendOptional(params, "after", opts.after);
156
+ const res = await client.request(`/conversations/v3/custom-channels?${params.toString()}`);
157
+ printResult(ctx, res);
158
+ });
159
+ customChannels.command("get").argument("<channelId>").action(async (channelId) => {
160
+ const ctx = getCtx();
161
+ const client = createClient(ctx.profile);
162
+ const seg = encodePathSegment(channelId, "channelId");
163
+ const res = await client.request(`/conversations/v3/custom-channels/${seg}`);
164
+ printResult(ctx, res);
165
+ });
166
+ customChannels.command("create").requiredOption("--data <payload>", "Custom channel payload JSON").action(async (o) => {
167
+ const ctx = getCtx();
168
+ const client = createClient(ctx.profile);
169
+ const res = await maybeWrite(ctx, client, "POST", `/conversations/v3/custom-channels`, parseJsonPayload(o.data));
170
+ printResult(ctx, res);
171
+ });
172
+ customChannels.command("update").argument("<channelId>").requiredOption("--data <payload>", "Custom channel patch JSON").action(async (channelId, o) => {
173
+ const ctx = getCtx();
174
+ const client = createClient(ctx.profile);
175
+ const seg = encodePathSegment(channelId, "channelId");
176
+ const res = await maybeWrite(ctx, client, "PATCH", `/conversations/v3/custom-channels/${seg}`, parseJsonPayload(o.data));
177
+ printResult(ctx, res);
178
+ });
179
+ customChannels.command("delete").argument("<channelId>").action(async (channelId) => {
180
+ const ctx = getCtx();
181
+ const client = createClient(ctx.profile);
182
+ const seg = encodePathSegment(channelId, "channelId");
183
+ const res = await maybeWrite(ctx, client, "DELETE", `/conversations/v3/custom-channels/${seg}`);
184
+ printResult(ctx, res);
185
+ });
186
+ // Custom channels: channel-accounts subresource
187
+ const customAccounts = customChannels.command("channel-accounts").description("Channel accounts associated with a custom channel");
188
+ customAccounts.command("list").argument("<channelId>").option("--limit <n>", "Max records", "50").action(async (channelId, opts) => {
189
+ const ctx = getCtx();
190
+ const client = createClient(ctx.profile);
191
+ const seg = encodePathSegment(channelId, "channelId");
192
+ const params = new URLSearchParams();
193
+ params.set("limit", String(parseNumberFlag(opts.limit, "--limit")));
194
+ const res = await client.request(`/conversations/v3/custom-channels/${seg}/channel-accounts?${params.toString()}`);
195
+ printResult(ctx, res);
196
+ });
197
+ customAccounts.command("create").argument("<channelId>").requiredOption("--data <payload>", "Channel account payload JSON").action(async (channelId, o) => {
198
+ const ctx = getCtx();
199
+ const client = createClient(ctx.profile);
200
+ const seg = encodePathSegment(channelId, "channelId");
201
+ const res = await maybeWrite(ctx, client, "POST", `/conversations/v3/custom-channels/${seg}/channel-accounts`, parseJsonPayload(o.data));
202
+ printResult(ctx, res);
203
+ });
204
+ customAccounts.command("update").argument("<channelId>").argument("<channelAccountId>").requiredOption("--data <payload>", "Channel account patch JSON").action(async (channelId, channelAccountId, o) => {
205
+ const ctx = getCtx();
206
+ const client = createClient(ctx.profile);
207
+ const seg = encodePathSegment(channelId, "channelId");
208
+ const accSeg = encodePathSegment(channelAccountId, "channelAccountId");
209
+ const res = await maybeWrite(ctx, client, "PATCH", `/conversations/v3/custom-channels/${seg}/channel-accounts/${accSeg}`, parseJsonPayload(o.data));
210
+ printResult(ctx, res);
211
+ });
212
+ customAccounts.command("delete").argument("<channelId>").argument("<channelAccountId>").action(async (channelId, channelAccountId) => {
213
+ const ctx = getCtx();
214
+ const client = createClient(ctx.profile);
215
+ const seg = encodePathSegment(channelId, "channelId");
216
+ const accSeg = encodePathSegment(channelAccountId, "channelAccountId");
217
+ const res = await maybeWrite(ctx, client, "DELETE", `/conversations/v3/custom-channels/${seg}/channel-accounts/${accSeg}`);
218
+ printResult(ctx, res);
219
+ });
220
+ // Messages: send a new inbound/outbound message on an existing thread
221
+ messages.command("send")
222
+ .argument("<threadId>")
223
+ .description("Send a message into an existing thread (inbound/outbound)")
224
+ .requiredOption("--data <payload>", "Message payload JSON")
225
+ .action(async (threadId, o) => {
226
+ const ctx = getCtx();
227
+ const client = createClient(ctx.profile);
228
+ const id = encodePathSegment(threadId, "threadId");
229
+ const res = await maybeWrite(ctx, client, "POST", `/conversations/v3/conversations/threads/${id}/messages`, parseJsonPayload(o.data));
230
+ printResult(ctx, res);
231
+ });
232
+ }
233
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/conversations/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from "commander";
2
+ import type { CliContext } from "../../core/output.js";
3
+ export declare function registerAssociations(crm: Command, getCtx: () => CliContext): void;
@@ -0,0 +1,180 @@
1
+ import { createClient } from "../../core/http.js";
2
+ import { CliError, printResult } from "../../core/output.js";
3
+ import { encodePathSegment, maybeWrite, parseJsonPayload, parseNumberFlag } from "./shared.js";
4
+ const KNOWN_OBJECT_TYPES = new Set([
5
+ "contacts", "companies", "deals", "tickets",
6
+ "notes", "calls", "tasks", "emails", "meetings",
7
+ ]);
8
+ let customObjectCache = null;
9
+ async function fetchCustomObjectMap(client) {
10
+ if (customObjectCache)
11
+ return customObjectCache;
12
+ customObjectCache = new Map();
13
+ try {
14
+ const res = await client.request("/crm/v3/schemas");
15
+ for (const schema of res.results ?? []) {
16
+ if (schema.name && schema.objectTypeId) {
17
+ customObjectCache.set(schema.name.toLowerCase(), schema.objectTypeId);
18
+ if (schema.labels?.singular)
19
+ customObjectCache.set(schema.labels.singular.toLowerCase(), schema.objectTypeId);
20
+ if (schema.labels?.plural)
21
+ customObjectCache.set(schema.labels.plural.toLowerCase(), schema.objectTypeId);
22
+ }
23
+ }
24
+ }
25
+ catch {
26
+ // If schema fetch fails, we'll just pass through the raw value
27
+ }
28
+ return customObjectCache;
29
+ }
30
+ async function resolveObjectType(raw, client, flagName) {
31
+ const value = raw?.trim().toLowerCase();
32
+ if (!value) {
33
+ throw new CliError("UNSUPPORTED_OBJECT_TYPE", `${flagName} cannot be empty`);
34
+ }
35
+ // Known standard/engagement types — pass through
36
+ if (KNOWN_OBJECT_TYPES.has(value))
37
+ return value;
38
+ // Already an objectTypeId (e.g. 2-199622513) — pass through
39
+ if (/^\d+-\d+$/.test(value))
40
+ return value;
41
+ // Try to resolve from custom object schemas
42
+ const map = await fetchCustomObjectMap(client);
43
+ const resolved = map.get(value);
44
+ if (resolved)
45
+ return resolved;
46
+ // Pass through as-is — let HubSpot API validate
47
+ return value;
48
+ }
49
+ export function registerAssociations(crm, getCtx) {
50
+ const associations = crm.command("associations").description("Associations between CRM objects");
51
+ associations
52
+ .command("list")
53
+ .argument("<fromObjectType>")
54
+ .argument("<fromObjectId>")
55
+ .argument("<toObjectType>")
56
+ .option("--limit <n>", "Max records", "100")
57
+ .option("--after <cursor>", "Paging cursor")
58
+ .action(async (fromObjectType, fromObjectId, toObjectType, opts) => {
59
+ const ctx = getCtx();
60
+ const client = createClient(ctx.profile);
61
+ const fromObjectTypeValue = await resolveObjectType(fromObjectType, client, "fromObjectType");
62
+ const toObjectTypeValue = await resolveObjectType(toObjectType, client, "toObjectType");
63
+ const fromObjectTypeSegment = encodePathSegment(fromObjectTypeValue, "fromObjectType");
64
+ const fromObjectIdSegment = encodePathSegment(fromObjectId, "fromObjectId");
65
+ const toObjectTypeSegment = encodePathSegment(toObjectTypeValue, "toObjectType");
66
+ const params = new URLSearchParams();
67
+ params.set("limit", String(parseNumberFlag(opts.limit, "--limit")));
68
+ if (opts.after)
69
+ params.set("after", opts.after);
70
+ const path = `/crm/v4/objects/${fromObjectTypeSegment}/${fromObjectIdSegment}/associations/${toObjectTypeSegment}?${params.toString()}`;
71
+ const res = await client.request(path);
72
+ printResult(ctx, res);
73
+ });
74
+ associations
75
+ .command("create")
76
+ .argument("<fromObjectType>")
77
+ .argument("<fromObjectId>")
78
+ .argument("<toObjectType>")
79
+ .argument("<toObjectId>")
80
+ .action(async (fromObjectType, fromObjectId, toObjectType, toObjectId) => {
81
+ const ctx = getCtx();
82
+ const client = createClient(ctx.profile);
83
+ const fromObjectTypeValue = await resolveObjectType(fromObjectType, client, "fromObjectType");
84
+ const toObjectTypeValue = await resolveObjectType(toObjectType, client, "toObjectType");
85
+ const fromObjectTypeSegment = encodePathSegment(fromObjectTypeValue, "fromObjectType");
86
+ const fromObjectIdSegment = encodePathSegment(fromObjectId, "fromObjectId");
87
+ const toObjectTypeSegment = encodePathSegment(toObjectTypeValue, "toObjectType");
88
+ const toObjectIdSegment = encodePathSegment(toObjectId, "toObjectId");
89
+ const path = `/crm/v4/objects/${fromObjectTypeSegment}/${fromObjectIdSegment}/associations/default/${toObjectTypeSegment}/${toObjectIdSegment}`;
90
+ const res = await maybeWrite(ctx, client, "PUT", path);
91
+ printResult(ctx, res);
92
+ });
93
+ associations
94
+ .command("remove")
95
+ .argument("<fromObjectType>")
96
+ .argument("<fromObjectId>")
97
+ .argument("<toObjectType>")
98
+ .argument("<toObjectId>")
99
+ .action(async (fromObjectType, fromObjectId, toObjectType, toObjectId) => {
100
+ const ctx = getCtx();
101
+ const client = createClient(ctx.profile);
102
+ const fromObjectTypeValue = await resolveObjectType(fromObjectType, client, "fromObjectType");
103
+ const toObjectTypeValue = await resolveObjectType(toObjectType, client, "toObjectType");
104
+ const fromObjectTypeSegment = encodePathSegment(fromObjectTypeValue, "fromObjectType");
105
+ const fromObjectIdSegment = encodePathSegment(fromObjectId, "fromObjectId");
106
+ const toObjectTypeSegment = encodePathSegment(toObjectTypeValue, "toObjectType");
107
+ const toObjectIdSegment = encodePathSegment(toObjectId, "toObjectId");
108
+ const path = `/crm/v4/objects/${fromObjectTypeSegment}/${fromObjectIdSegment}/associations/default/${toObjectTypeSegment}/${toObjectIdSegment}`;
109
+ const res = await maybeWrite(ctx, client, "DELETE", path);
110
+ printResult(ctx, res);
111
+ });
112
+ const labels = associations.command("labels").description("Association label/type definitions between two object types");
113
+ labels
114
+ .command("list")
115
+ .description("List all association labels/types between two object types")
116
+ .argument("<fromObjectType>")
117
+ .argument("<toObjectType>")
118
+ .action(async (fromObjectType, toObjectType) => {
119
+ const ctx = getCtx();
120
+ const client = createClient(ctx.profile);
121
+ const fromValue = await resolveObjectType(fromObjectType, client, "fromObjectType");
122
+ const toValue = await resolveObjectType(toObjectType, client, "toObjectType");
123
+ const fromSeg = encodePathSegment(fromValue, "fromObjectType");
124
+ const toSeg = encodePathSegment(toValue, "toObjectType");
125
+ const res = await client.request(`/crm/v4/associations/${fromSeg}/${toSeg}/labels`);
126
+ printResult(ctx, res);
127
+ });
128
+ labels
129
+ .command("create")
130
+ .description("Create a user-defined association label between two object types")
131
+ .argument("<fromObjectType>")
132
+ .argument("<toObjectType>")
133
+ .requiredOption("--data <payload>", "Label payload JSON: { label, name? }")
134
+ .action(async (fromObjectType, toObjectType, opts) => {
135
+ const ctx = getCtx();
136
+ const client = createClient(ctx.profile);
137
+ const fromValue = await resolveObjectType(fromObjectType, client, "fromObjectType");
138
+ const toValue = await resolveObjectType(toObjectType, client, "toObjectType");
139
+ const fromSeg = encodePathSegment(fromValue, "fromObjectType");
140
+ const toSeg = encodePathSegment(toValue, "toObjectType");
141
+ const payload = parseJsonPayload(opts.data);
142
+ const res = await maybeWrite(ctx, client, "POST", `/crm/v4/associations/${fromSeg}/${toSeg}/labels`, payload);
143
+ printResult(ctx, res);
144
+ });
145
+ labels
146
+ .command("update")
147
+ .description("Update a user-defined association label")
148
+ .argument("<fromObjectType>")
149
+ .argument("<toObjectType>")
150
+ .requiredOption("--data <payload>", "Label update payload JSON: { associationTypeId, label, name? }")
151
+ .action(async (fromObjectType, toObjectType, opts) => {
152
+ const ctx = getCtx();
153
+ const client = createClient(ctx.profile);
154
+ const fromValue = await resolveObjectType(fromObjectType, client, "fromObjectType");
155
+ const toValue = await resolveObjectType(toObjectType, client, "toObjectType");
156
+ const fromSeg = encodePathSegment(fromValue, "fromObjectType");
157
+ const toSeg = encodePathSegment(toValue, "toObjectType");
158
+ const payload = parseJsonPayload(opts.data);
159
+ const res = await maybeWrite(ctx, client, "PUT", `/crm/v4/associations/${fromSeg}/${toSeg}/labels`, payload);
160
+ printResult(ctx, res);
161
+ });
162
+ labels
163
+ .command("delete")
164
+ .description("Delete a user-defined association label by associationTypeId")
165
+ .argument("<fromObjectType>")
166
+ .argument("<toObjectType>")
167
+ .argument("<associationTypeId>")
168
+ .action(async (fromObjectType, toObjectType, associationTypeId) => {
169
+ const ctx = getCtx();
170
+ const client = createClient(ctx.profile);
171
+ const fromValue = await resolveObjectType(fromObjectType, client, "fromObjectType");
172
+ const toValue = await resolveObjectType(toObjectType, client, "toObjectType");
173
+ const fromSeg = encodePathSegment(fromValue, "fromObjectType");
174
+ const toSeg = encodePathSegment(toValue, "toObjectType");
175
+ const idSeg = encodePathSegment(associationTypeId, "associationTypeId");
176
+ const res = await maybeWrite(ctx, client, "DELETE", `/crm/v4/associations/${fromSeg}/${toSeg}/labels/${idSeg}`);
177
+ printResult(ctx, res);
178
+ });
179
+ }
180
+ //# sourceMappingURL=associations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"associations.js","sourceRoot":"","sources":["../../../src/commands/crm/associations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from "commander";
2
+ import type { CliContext } from "../../core/output.js";
3
+ export declare function registerCards(crm: Command, getCtx: () => CliContext): void;