@revfleet/hscli 0.8.6 → 0.8.10
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/CHANGELOG.md +240 -0
- package/CONTRIBUTING.md +120 -0
- package/README.md +14 -6
- package/brand/readme-hero.svg +25 -0
- package/dist/cli.js +10 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/account/index.js +5 -6
- package/dist/commands/account/index.js.map +1 -1
- package/dist/commands/api/index.js +43 -3
- package/dist/commands/api/index.js.map +1 -1
- package/dist/commands/auth/index.js +32 -6
- package/dist/commands/auth/index.js.map +1 -1
- package/dist/commands/cms/hubdb.js +64 -1
- package/dist/commands/cms/hubdb.js.map +1 -1
- package/dist/commands/cms/index.js +27 -0
- package/dist/commands/cms/index.js.map +1 -1
- package/dist/commands/cms/source-code.js +21 -0
- package/dist/commands/cms/source-code.js.map +1 -1
- package/dist/commands/communication-preferences/index.js +11 -12
- package/dist/commands/communication-preferences/index.js.map +1 -1
- package/dist/commands/crm/shared.d.ts +1 -0
- package/dist/commands/crm/shared.js +3 -4
- package/dist/commands/crm/shared.js.map +1 -1
- package/dist/commands/events/index.js +7 -8
- package/dist/commands/events/index.js.map +1 -1
- package/dist/commands/marketing/index.js +58 -3
- package/dist/commands/marketing/index.js.map +1 -1
- package/dist/commands/settings/index.js +12 -13
- package/dist/commands/settings/index.js.map +1 -1
- package/dist/commands/workflows/index.js +43 -0
- package/dist/commands/workflows/index.js.map +1 -1
- package/dist/core/http.d.ts +27 -0
- package/dist/core/http.js +102 -18
- package/dist/core/http.js.map +1 -1
- package/dist/core/plugins.d.ts +5 -2
- package/dist/core/plugins.js +18 -1
- package/dist/core/plugins.js.map +1 -1
- package/dist/core/telemetry-context.d.ts +13 -0
- package/dist/core/telemetry-context.js +30 -0
- package/dist/core/telemetry-context.js.map +1 -0
- package/dist/mcp/hubspot-modules.d.ts +30 -0
- package/dist/mcp/hubspot-modules.js +305 -0
- package/dist/mcp/hubspot-modules.js.map +1 -0
- package/dist/mcp/server.d.ts +2 -0
- package/dist/mcp/server.js +30 -26
- package/dist/mcp/server.js.map +1 -1
- package/docs/ARCHITECTURE.md +39 -0
- package/docs/CAPABILITY_LIBRARY.md +638 -0
- package/docs/CMS_SETUP.md +349 -0
- package/docs/COMMAND_COMPATIBILITY.md +24 -0
- package/docs/COMMAND_TREE.md +183 -0
- package/docs/COMMERCE_SETUP.md +400 -0
- package/docs/COMPARISON.md +146 -0
- package/docs/COOKBOOK.md +800 -0
- package/docs/INTEGRATIONS_NOTIFICATIONS_SETUP.md +352 -0
- package/docs/MARKETING_SETUP.md +503 -0
- package/docs/MCP.md +171 -0
- package/docs/OPERATIONAL_PLAYBOOKS.md +322 -0
- package/docs/OPERATIONS_SETUP.md +362 -0
- package/docs/PLUGIN_GUIDE.md +158 -0
- package/docs/POLICY_EXAMPLE.json +57 -0
- package/docs/PORTAL_SETUP.md +683 -0
- package/docs/PUBLISHING.md +154 -0
- package/docs/RELEASE_GOVERNANCE.md +34 -0
- package/docs/REPORTING_SETUP.md +310 -0
- package/docs/ROADMAP-DATE-BASED-API.md +103 -0
- package/docs/ROADMAP_PHASE1_TO_3.md +96 -0
- package/docs/SAFETY_MODEL.md +37 -0
- package/docs/SALES_SETUP.md +369 -0
- package/docs/SERVICE_SETUP.md +403 -0
- package/docs/TESTING_PLAN.md +89 -0
- package/docs/TIERS.md +320 -0
- package/docs/TUTORIALS/audit-portal-writes.md +150 -0
- package/docs/TUTORIALS/secure-agent-writes.md +177 -0
- package/docs/TUTORIALS/trace-replay-repro.md +147 -0
- package/docs/WHY_HOW_WHAT.md +81 -0
- package/package.json +7 -2
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { HubSpotClient } from "../../core/http.js";
|
|
1
|
+
import { createClient } from "../../core/http.js";
|
|
3
2
|
import { printResult } from "../../core/output.js";
|
|
4
3
|
import { encodePathSegment, maybeWrite, parseJsonPayload, parseNumberFlag } from "../crm/shared.js";
|
|
5
4
|
export function registerEvents(program, getCtx) {
|
|
@@ -10,7 +9,7 @@ export function registerEvents(program, getCtx) {
|
|
|
10
9
|
.description("Send a custom behavioral event")
|
|
11
10
|
.action(async (opts) => {
|
|
12
11
|
const ctx = getCtx();
|
|
13
|
-
const client =
|
|
12
|
+
const client = createClient(ctx.profile);
|
|
14
13
|
const payload = parseJsonPayload(opts.data);
|
|
15
14
|
const res = await maybeWrite(ctx, client, "POST", "/events/v3/send", payload);
|
|
16
15
|
printResult(ctx, res);
|
|
@@ -24,7 +23,7 @@ export function registerEvents(program, getCtx) {
|
|
|
24
23
|
.description("List custom behavioral events")
|
|
25
24
|
.action(async (opts) => {
|
|
26
25
|
const ctx = getCtx();
|
|
27
|
-
const client =
|
|
26
|
+
const client = createClient(ctx.profile);
|
|
28
27
|
const params = new URLSearchParams();
|
|
29
28
|
params.set("limit", String(parseNumberFlag(opts.limit, "--limit")));
|
|
30
29
|
if (opts.after)
|
|
@@ -43,7 +42,7 @@ export function registerEvents(program, getCtx) {
|
|
|
43
42
|
.option("--after <cursor>", "Paging cursor")
|
|
44
43
|
.action(async (opts) => {
|
|
45
44
|
const ctx = getCtx();
|
|
46
|
-
const client =
|
|
45
|
+
const client = createClient(ctx.profile);
|
|
47
46
|
const params = new URLSearchParams();
|
|
48
47
|
params.set("limit", String(parseNumberFlag(opts.limit, "--limit")));
|
|
49
48
|
if (opts.after)
|
|
@@ -53,7 +52,7 @@ export function registerEvents(program, getCtx) {
|
|
|
53
52
|
});
|
|
54
53
|
definitions.command("get").argument("<eventName>").action(async (eventName) => {
|
|
55
54
|
const ctx = getCtx();
|
|
56
|
-
const client =
|
|
55
|
+
const client = createClient(ctx.profile);
|
|
57
56
|
const res = await client.request(`/events/v3/event-definitions/${encodePathSegment(eventName, "eventName")}`);
|
|
58
57
|
printResult(ctx, res);
|
|
59
58
|
});
|
|
@@ -62,7 +61,7 @@ export function registerEvents(program, getCtx) {
|
|
|
62
61
|
.requiredOption("--data <payload>", "Event definition JSON")
|
|
63
62
|
.action(async (opts) => {
|
|
64
63
|
const ctx = getCtx();
|
|
65
|
-
const client =
|
|
64
|
+
const client = createClient(ctx.profile);
|
|
66
65
|
const payload = parseJsonPayload(opts.data);
|
|
67
66
|
const res = await maybeWrite(ctx, client, "POST", "/events/v3/event-definitions", payload);
|
|
68
67
|
printResult(ctx, res);
|
|
@@ -72,7 +71,7 @@ export function registerEvents(program, getCtx) {
|
|
|
72
71
|
.argument("<eventName>")
|
|
73
72
|
.action(async (eventName) => {
|
|
74
73
|
const ctx = getCtx();
|
|
75
|
-
const client =
|
|
74
|
+
const client = createClient(ctx.profile);
|
|
76
75
|
const res = await maybeWrite(ctx, client, "DELETE", `/events/v3/event-definitions/${encodePathSegment(eventName, "eventName")}`);
|
|
77
76
|
printResult(ctx, res);
|
|
78
77
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/events/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/events/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { registerResource } from "../domains/shared.js";
|
|
2
2
|
import { encodePathSegment, maybeWrite } from "../crm/shared.js";
|
|
3
|
-
import {
|
|
4
|
-
import { createClient, HubSpotClient } from "../../core/http.js";
|
|
3
|
+
import { createClient } from "../../core/http.js";
|
|
5
4
|
import { printResult } from "../../core/output.js";
|
|
6
5
|
import { CliError } from "../../core/output.js";
|
|
7
6
|
import { registerAds } from "./ads.js";
|
|
@@ -31,7 +30,7 @@ export function registerMarketing(program, getCtx) {
|
|
|
31
30
|
.description("Per-email engagement metrics (opens, clicks, bounces, unsubscribes)")
|
|
32
31
|
.action(async (emailId) => {
|
|
33
32
|
const ctx = getCtx();
|
|
34
|
-
const client =
|
|
33
|
+
const client = createClient(ctx.profile);
|
|
35
34
|
const res = await client.request(`/marketing/v3/emails/${encodePathSegment(emailId, "emailId")}/statistics`);
|
|
36
35
|
printResult(ctx, res);
|
|
37
36
|
});
|
|
@@ -52,6 +51,62 @@ export function registerMarketing(program, getCtx) {
|
|
|
52
51
|
const res = await maybeWrite(ctx, client, "POST", `/marketing/v3/emails/${id}/publish`, {});
|
|
53
52
|
printResult(ctx, res);
|
|
54
53
|
});
|
|
54
|
+
// Revision history for a marketing email. Useful for diffing
|
|
55
|
+
// edits across time or recovering a prior version.
|
|
56
|
+
emails
|
|
57
|
+
.command("revisions")
|
|
58
|
+
.argument("<emailId>", "Marketing email ID")
|
|
59
|
+
.option("--limit <n>", "Max revisions", "20")
|
|
60
|
+
.description("Get the revision history of a marketing email")
|
|
61
|
+
.action(async (emailId, opts) => {
|
|
62
|
+
const ctx = getCtx();
|
|
63
|
+
const client = createClient(ctx.profile);
|
|
64
|
+
const id = encodePathSegment(emailId, "emailId");
|
|
65
|
+
const lim = encodeURIComponent(String(opts.limit ?? "20"));
|
|
66
|
+
const res = await client.request(`/marketing/v3/emails/${id}/revisions?limit=${lim}`);
|
|
67
|
+
printResult(ctx, res);
|
|
68
|
+
});
|
|
69
|
+
// Restore a previous revision to draft. Endpoint verified live:
|
|
70
|
+
// POST /marketing/v3/emails/{id}/revisions/{revisionId}/restore-to-draft
|
|
71
|
+
// Surfaced from HubSpot's nodejs SDK (MarketingEmailsApi.ts) —
|
|
72
|
+
// not in the public dev-docs navigation.
|
|
73
|
+
emails
|
|
74
|
+
.command("revision-restore")
|
|
75
|
+
.argument("<emailId>", "Marketing email ID")
|
|
76
|
+
.argument("<revisionId>", "Revision ID to restore")
|
|
77
|
+
.description("Restore a past email revision to DRAFT")
|
|
78
|
+
.action(async (emailId, revisionId) => {
|
|
79
|
+
const ctx = getCtx();
|
|
80
|
+
const client = createClient(ctx.profile);
|
|
81
|
+
const id = encodePathSegment(emailId, "emailId");
|
|
82
|
+
const rid = encodePathSegment(revisionId, "revisionId");
|
|
83
|
+
const res = await maybeWrite(ctx, client, "POST", `/marketing/v3/emails/${id}/revisions/${rid}/restore-to-draft`, {});
|
|
84
|
+
printResult(ctx, res);
|
|
85
|
+
});
|
|
86
|
+
// Unpublish a sent/scheduled email. Endpoint verified live.
|
|
87
|
+
emails
|
|
88
|
+
.command("unpublish")
|
|
89
|
+
.argument("<emailId>", "Marketing email ID")
|
|
90
|
+
.description("Unpublish a published email")
|
|
91
|
+
.action(async (emailId) => {
|
|
92
|
+
const ctx = getCtx();
|
|
93
|
+
const client = createClient(ctx.profile);
|
|
94
|
+
const id = encodePathSegment(emailId, "emailId");
|
|
95
|
+
const res = await maybeWrite(ctx, client, "POST", `/marketing/v3/emails/${id}/unpublish`, {});
|
|
96
|
+
printResult(ctx, res);
|
|
97
|
+
});
|
|
98
|
+
// Reset draft back to last-published state.
|
|
99
|
+
emails
|
|
100
|
+
.command("draft-reset")
|
|
101
|
+
.argument("<emailId>", "Marketing email ID")
|
|
102
|
+
.description("Reset email draft to the last-published state")
|
|
103
|
+
.action(async (emailId) => {
|
|
104
|
+
const ctx = getCtx();
|
|
105
|
+
const client = createClient(ctx.profile);
|
|
106
|
+
const id = encodePathSegment(emailId, "emailId");
|
|
107
|
+
const res = await maybeWrite(ctx, client, "POST", `/marketing/v3/emails/${id}/draft/reset`, {});
|
|
108
|
+
printResult(ctx, res);
|
|
109
|
+
});
|
|
55
110
|
// Clone a marketing email — v3 endpoint rediscovered via a
|
|
56
111
|
// docs re-audit (the id goes in the request body, not the path).
|
|
57
112
|
emails
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/marketing/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/marketing/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { HubSpotClient } from "../../core/http.js";
|
|
1
|
+
import { createClient } from "../../core/http.js";
|
|
3
2
|
import { printResult } from "../../core/output.js";
|
|
4
3
|
import { encodePathSegment, maybeWrite, parseJsonPayload, parseNumberFlag } from "../crm/shared.js";
|
|
5
4
|
export function registerSettings(program, getCtx) {
|
|
@@ -12,7 +11,7 @@ export function registerSettings(program, getCtx) {
|
|
|
12
11
|
.option("--after <cursor>", "Paging cursor")
|
|
13
12
|
.action(async (opts) => {
|
|
14
13
|
const ctx = getCtx();
|
|
15
|
-
const client =
|
|
14
|
+
const client = createClient(ctx.profile);
|
|
16
15
|
const params = new URLSearchParams();
|
|
17
16
|
params.set("limit", String(parseNumberFlag(opts.limit, "--limit")));
|
|
18
17
|
if (opts.after)
|
|
@@ -22,7 +21,7 @@ export function registerSettings(program, getCtx) {
|
|
|
22
21
|
});
|
|
23
22
|
users.command("get").argument("<userId>").action(async (userId) => {
|
|
24
23
|
const ctx = getCtx();
|
|
25
|
-
const client =
|
|
24
|
+
const client = createClient(ctx.profile);
|
|
26
25
|
const res = await client.request(`/settings/v3/users/${encodePathSegment(userId, "userId")}`);
|
|
27
26
|
printResult(ctx, res);
|
|
28
27
|
});
|
|
@@ -31,7 +30,7 @@ export function registerSettings(program, getCtx) {
|
|
|
31
30
|
.requiredOption("--data <payload>", "User creation payload JSON")
|
|
32
31
|
.action(async (opts) => {
|
|
33
32
|
const ctx = getCtx();
|
|
34
|
-
const client =
|
|
33
|
+
const client = createClient(ctx.profile);
|
|
35
34
|
const payload = parseJsonPayload(opts.data);
|
|
36
35
|
const res = await maybeWrite(ctx, client, "POST", "/settings/v3/users/", payload);
|
|
37
36
|
printResult(ctx, res);
|
|
@@ -42,7 +41,7 @@ export function registerSettings(program, getCtx) {
|
|
|
42
41
|
.requiredOption("--data <payload>", "User update payload JSON")
|
|
43
42
|
.action(async (userId, opts) => {
|
|
44
43
|
const ctx = getCtx();
|
|
45
|
-
const client =
|
|
44
|
+
const client = createClient(ctx.profile);
|
|
46
45
|
const payload = parseJsonPayload(opts.data);
|
|
47
46
|
const res = await maybeWrite(ctx, client, "PUT", `/settings/v3/users/${encodePathSegment(userId, "userId")}`, payload);
|
|
48
47
|
printResult(ctx, res);
|
|
@@ -52,7 +51,7 @@ export function registerSettings(program, getCtx) {
|
|
|
52
51
|
.argument("<userId>")
|
|
53
52
|
.action(async (userId) => {
|
|
54
53
|
const ctx = getCtx();
|
|
55
|
-
const client =
|
|
54
|
+
const client = createClient(ctx.profile);
|
|
56
55
|
const res = await maybeWrite(ctx, client, "DELETE", `/settings/v3/users/${encodePathSegment(userId, "userId")}`);
|
|
57
56
|
printResult(ctx, res);
|
|
58
57
|
});
|
|
@@ -61,7 +60,7 @@ export function registerSettings(program, getCtx) {
|
|
|
61
60
|
.description("List available user roles")
|
|
62
61
|
.action(async () => {
|
|
63
62
|
const ctx = getCtx();
|
|
64
|
-
const client =
|
|
63
|
+
const client = createClient(ctx.profile);
|
|
65
64
|
const res = await client.request("/settings/v3/users/roles");
|
|
66
65
|
printResult(ctx, res);
|
|
67
66
|
});
|
|
@@ -73,7 +72,7 @@ export function registerSettings(program, getCtx) {
|
|
|
73
72
|
.option("--after <cursor>", "Paging cursor")
|
|
74
73
|
.action(async (opts) => {
|
|
75
74
|
const ctx = getCtx();
|
|
76
|
-
const client =
|
|
75
|
+
const client = createClient(ctx.profile);
|
|
77
76
|
const params = new URLSearchParams();
|
|
78
77
|
params.set("limit", String(parseNumberFlag(opts.limit, "--limit")));
|
|
79
78
|
if (opts.after)
|
|
@@ -87,7 +86,7 @@ export function registerSettings(program, getCtx) {
|
|
|
87
86
|
.command("list")
|
|
88
87
|
.action(async () => {
|
|
89
88
|
const ctx = getCtx();
|
|
90
|
-
const client =
|
|
89
|
+
const client = createClient(ctx.profile);
|
|
91
90
|
const res = await client.request("/settings/v3/users/teams");
|
|
92
91
|
printResult(ctx, res);
|
|
93
92
|
});
|
|
@@ -97,7 +96,7 @@ export function registerSettings(program, getCtx) {
|
|
|
97
96
|
.command("list")
|
|
98
97
|
.action(async () => {
|
|
99
98
|
const ctx = getCtx();
|
|
100
|
-
const client =
|
|
99
|
+
const client = createClient(ctx.profile);
|
|
101
100
|
const res = await client.request("/settings/v3/currencies");
|
|
102
101
|
printResult(ctx, res);
|
|
103
102
|
});
|
|
@@ -115,7 +114,7 @@ export function registerSettings(program, getCtx) {
|
|
|
115
114
|
.option("--object-type <type>", "Filter by the object type the action was performed on")
|
|
116
115
|
.action(async (opts) => {
|
|
117
116
|
const ctx = getCtx();
|
|
118
|
-
const client =
|
|
117
|
+
const client = createClient(ctx.profile);
|
|
119
118
|
const params = new URLSearchParams();
|
|
120
119
|
params.set("limit", String(parseNumberFlag(opts.limit, "--limit")));
|
|
121
120
|
if (opts.after)
|
|
@@ -140,7 +139,7 @@ export function registerSettings(program, getCtx) {
|
|
|
140
139
|
.requiredOption("--data <payload>", "GDPR delete payload JSON")
|
|
141
140
|
.action(async (opts) => {
|
|
142
141
|
const ctx = getCtx();
|
|
143
|
-
const client =
|
|
142
|
+
const client = createClient(ctx.profile);
|
|
144
143
|
const payload = parseJsonPayload(opts.data);
|
|
145
144
|
const res = await maybeWrite(ctx, client, "POST", "/crm/v3/objects/contacts/gdpr-delete", payload);
|
|
146
145
|
printResult(ctx, res);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/settings/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/settings/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,49 @@ export function registerWorkflows(program, getCtx) {
|
|
|
12
12
|
createPath: "/automation/v4/flows",
|
|
13
13
|
updatePath: (id) => `/automation/v4/flows/${id}`,
|
|
14
14
|
});
|
|
15
|
+
// id-map — reconcile the v3 workflowId ↔ v4 flowId pair. Both
|
|
16
|
+
// values live inside the flow's `migrationStatus` object (v4
|
|
17
|
+
// response includes `workflowId`; v3 response includes `flowId`).
|
|
18
|
+
// HubSpot doesn't expose a dedicated mapping endpoint, so this
|
|
19
|
+
// wrapper does the lookup for you: pass either id, get both back.
|
|
20
|
+
workflows
|
|
21
|
+
.command("id-map")
|
|
22
|
+
.argument("<id>", "v3 workflowId or v4 flowId (auto-detected)")
|
|
23
|
+
.description("Resolve v3 workflowId ↔ v4 flowId pair for a workflow")
|
|
24
|
+
.action(async (id) => {
|
|
25
|
+
const ctx = getCtx();
|
|
26
|
+
const client = createClient(ctx.profile);
|
|
27
|
+
const segId = encodePathSegment(id, "id");
|
|
28
|
+
// Try v4 first (flowIds are numeric but can be distinguished by
|
|
29
|
+
// trying both endpoints; v4 flowIds tend to be 10-digit whereas
|
|
30
|
+
// v3 workflowIds are 8-digit — not reliable, so probe both).
|
|
31
|
+
let v3Id;
|
|
32
|
+
let v4Id;
|
|
33
|
+
let name;
|
|
34
|
+
try {
|
|
35
|
+
const v4 = (await client.request(`/automation/v4/flows/${segId}`));
|
|
36
|
+
v4Id = v4.id ?? id;
|
|
37
|
+
name = v4.name;
|
|
38
|
+
v3Id = v4.migrationStatus?.workflowId !== undefined
|
|
39
|
+
? String(v4.migrationStatus.workflowId)
|
|
40
|
+
: undefined;
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
// Not a v4 flowId — try v3
|
|
44
|
+
try {
|
|
45
|
+
const v3 = (await client.request(`/automation/v3/workflows/${segId}`));
|
|
46
|
+
v3Id = String(v3.id ?? id);
|
|
47
|
+
name = v3.name;
|
|
48
|
+
v4Id = v3.migrationStatus?.flowId !== undefined
|
|
49
|
+
? String(v3.migrationStatus.flowId)
|
|
50
|
+
: undefined;
|
|
51
|
+
}
|
|
52
|
+
catch {
|
|
53
|
+
// Give up
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
printResult(ctx, { name, v3: v3Id, v4: v4Id });
|
|
57
|
+
});
|
|
15
58
|
// Enable/disable a v4 flow. Requires PUT (not PATCH — 405 on PATCH)
|
|
16
59
|
// with the full flow body including `revisionId`. Rediscovered via
|
|
17
60
|
// the docs re-audit after earlier probes that used PATCH.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/workflows/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/workflows/index.ts"],"names":[],"mappings":"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"}
|
package/dist/core/http.d.ts
CHANGED
|
@@ -17,7 +17,34 @@ export interface RequestOptions {
|
|
|
17
17
|
contentType?: string;
|
|
18
18
|
/** Raw body string used when `contentType` is non-JSON. */
|
|
19
19
|
rawBody?: string;
|
|
20
|
+
/**
|
|
21
|
+
* Multipart form data. When set, the request is sent as
|
|
22
|
+
* `multipart/form-data` with a boundary generated by the runtime —
|
|
23
|
+
* explicit `contentType` is ignored. Each entry is either:
|
|
24
|
+
* - `string`: added as a text field.
|
|
25
|
+
* - `{ path, filename?, contentType? }`: file field; the local
|
|
26
|
+
* file at `path` is read and attached as a binary part.
|
|
27
|
+
*
|
|
28
|
+
* HubSpot endpoints that require multipart bodies (and fail with
|
|
29
|
+
* 415 on JSON or plain-text bodies) include:
|
|
30
|
+
* - `PUT /cms/v3/source-code/{env}/content/{path}` — template
|
|
31
|
+
* source uploads
|
|
32
|
+
* - `POST /cms/v3/hubdb/tables/{id}/draft/import` — CSV row
|
|
33
|
+
* import, parts: `config` (JSON string) + `file` (binary)
|
|
34
|
+
* - `POST /content/filemapper/v1/upload/{dest}` — the legacy
|
|
35
|
+
* endpoint `hs upload` uses
|
|
36
|
+
* - `POST /file-transport/v1/hubfiles/object-schemas` — HubFiles
|
|
37
|
+
* custom-object schemas
|
|
38
|
+
* - `POST /project-components-external/v3/upload/new-api` —
|
|
39
|
+
* project zip + IR (3 parts)
|
|
40
|
+
*/
|
|
41
|
+
multipart?: Record<string, MultipartPart>;
|
|
20
42
|
}
|
|
43
|
+
export type MultipartPart = string | {
|
|
44
|
+
path: string;
|
|
45
|
+
filename?: string;
|
|
46
|
+
contentType?: string;
|
|
47
|
+
};
|
|
21
48
|
interface HubSpotClientOptions {
|
|
22
49
|
requestId?: string;
|
|
23
50
|
telemetryFile?: string;
|
package/dist/core/http.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { CliError } from "./output.js";
|
|
1
|
+
import { CliError, redactSensitive } from "./output.js";
|
|
2
|
+
import { getTelemetryContext } from "./telemetry-context.js";
|
|
2
3
|
import { appendFileSync, existsSync, readFileSync } from "node:fs";
|
|
3
4
|
import { join } from "node:path";
|
|
4
5
|
import { homedir } from "node:os";
|
|
@@ -22,6 +23,26 @@ function readActiveTraceSession() {
|
|
|
22
23
|
import { mapEndpointAvailabilityError, preflightEndpointCapability, recordEndpointSuccess } from "./capabilities.js";
|
|
23
24
|
import { getToken, getApiBaseUrl } from "./auth.js";
|
|
24
25
|
import { enforcePermissionProfile } from "./permissions.js";
|
|
26
|
+
/**
|
|
27
|
+
* Paths where HubSpot embeds a raw token in the URL (notably
|
|
28
|
+
* `/oauth/v1/access-tokens/{token}`). We replace the trailing segment
|
|
29
|
+
* so trace/audit JSONL never captures the token verbatim.
|
|
30
|
+
*/
|
|
31
|
+
const TOKEN_IN_PATH_PREFIXES = [
|
|
32
|
+
"/oauth/v1/access-tokens/",
|
|
33
|
+
"/oauth/v1/refresh-tokens/",
|
|
34
|
+
];
|
|
35
|
+
function redactTokenPath(path) {
|
|
36
|
+
for (const prefix of TOKEN_IN_PATH_PREFIXES) {
|
|
37
|
+
if (path.startsWith(prefix)) {
|
|
38
|
+
const after = path.slice(prefix.length);
|
|
39
|
+
const next = after.indexOf("/");
|
|
40
|
+
const rest = next >= 0 ? after.slice(next) : "";
|
|
41
|
+
return `${prefix}[REDACTED]${rest}`;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return path;
|
|
45
|
+
}
|
|
25
46
|
/**
|
|
26
47
|
* Create a HubSpotClient that is hublet-aware.
|
|
27
48
|
* Automatically resolves the API base URL from the profile's hublet setting.
|
|
@@ -88,6 +109,21 @@ const ALLOWED_PATH_SCOPES = [
|
|
|
88
109
|
"goals",
|
|
89
110
|
// CMS content folder tree listing (used by design-manager tooling)
|
|
90
111
|
"content-folders",
|
|
112
|
+
// App dev + portal install analytics (undocumented —
|
|
113
|
+
// /apps-dev/external/public/v3/{appId}/test-portal-installs,
|
|
114
|
+
// /full/portal, /install-counts-without-test-portals)
|
|
115
|
+
"apps-dev",
|
|
116
|
+
// Hublets static-token app install (undocumented)
|
|
117
|
+
"apps-hublets",
|
|
118
|
+
// Developer file system — projects upload, deploy, logs, migrations
|
|
119
|
+
// (used by `hs project upload` under the hood)
|
|
120
|
+
"dfs",
|
|
121
|
+
// New v3 project upload-with-IR endpoint (replaces dfs/v1 for apps)
|
|
122
|
+
"project-components-external",
|
|
123
|
+
// HubFiles custom-object schemas (used by `hs hubfiles`)
|
|
124
|
+
"file-transport",
|
|
125
|
+
// Local-dev-auth link flow (account linking)
|
|
126
|
+
"localdevauth",
|
|
91
127
|
];
|
|
92
128
|
export class HubSpotClient {
|
|
93
129
|
token;
|
|
@@ -147,20 +183,50 @@ export class HubSpotClient {
|
|
|
147
183
|
strict: this.strictCapabilities,
|
|
148
184
|
});
|
|
149
185
|
try {
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
186
|
+
// Multipart takes precedence. When set, we build a FormData
|
|
187
|
+
// instance and hand it to fetch — Node 20+ emits the correct
|
|
188
|
+
// `multipart/form-data; boundary=…` Content-Type automatically.
|
|
189
|
+
// We MUST omit the Content-Type header ourselves; hardcoding
|
|
190
|
+
// `multipart/form-data` without a boundary is the #1 cause of
|
|
191
|
+
// HubSpot's 415 "Unsupported Media Type" responses.
|
|
192
|
+
let bodyToSend;
|
|
193
|
+
const headers = {
|
|
194
|
+
Authorization: `Bearer ${this.token}`,
|
|
195
|
+
"X-Hubcli-Request-Id": this.requestId,
|
|
196
|
+
...(idempotencyKey ? { "Idempotency-Key": idempotencyKey } : {}),
|
|
197
|
+
};
|
|
198
|
+
if (options.multipart) {
|
|
199
|
+
const { readFile } = await import("node:fs/promises");
|
|
200
|
+
const { basename } = await import("node:path");
|
|
201
|
+
const form = new FormData();
|
|
202
|
+
for (const [field, part] of Object.entries(options.multipart)) {
|
|
203
|
+
if (typeof part === "string") {
|
|
204
|
+
form.append(field, part);
|
|
205
|
+
}
|
|
206
|
+
else {
|
|
207
|
+
const bytes = await readFile(part.path);
|
|
208
|
+
const filename = part.filename ?? basename(part.path);
|
|
209
|
+
const type = part.contentType ?? "application/octet-stream";
|
|
210
|
+
// Node 20+ Blob accepts Uint8Array; fetch auto-sets
|
|
211
|
+
// Content-Type + boundary when body is FormData.
|
|
212
|
+
form.append(field, new Blob([bytes], { type }), filename);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
bodyToSend = form;
|
|
216
|
+
}
|
|
217
|
+
else {
|
|
218
|
+
const contentType = options.contentType ?? "application/json";
|
|
219
|
+
headers["Content-Type"] = contentType;
|
|
220
|
+
bodyToSend =
|
|
221
|
+
options.rawBody !== undefined
|
|
222
|
+
? options.rawBody
|
|
223
|
+
: options.body !== undefined
|
|
224
|
+
? JSON.stringify(options.body)
|
|
225
|
+
: undefined;
|
|
226
|
+
}
|
|
156
227
|
const response = await fetch(url, {
|
|
157
228
|
method,
|
|
158
|
-
headers
|
|
159
|
-
Authorization: `Bearer ${this.token}`,
|
|
160
|
-
"Content-Type": contentType,
|
|
161
|
-
"X-Hubcli-Request-Id": this.requestId,
|
|
162
|
-
...(idempotencyKey ? { "Idempotency-Key": idempotencyKey } : {}),
|
|
163
|
-
},
|
|
229
|
+
headers,
|
|
164
230
|
body: bodyToSend,
|
|
165
231
|
signal: AbortSignal.timeout(REQUEST_TIMEOUT_MS),
|
|
166
232
|
});
|
|
@@ -268,15 +334,33 @@ export class HubSpotClient {
|
|
|
268
334
|
return;
|
|
269
335
|
}
|
|
270
336
|
try {
|
|
271
|
-
//
|
|
272
|
-
//
|
|
273
|
-
//
|
|
337
|
+
// Redact path (e.g. /oauth/v1/access-tokens/<TOKEN>) and bodies
|
|
338
|
+
// before persisting to disk. The trace help text advertises
|
|
339
|
+
// "redacted for secrets" — this is where that guarantee is kept.
|
|
340
|
+
const safePath = redactTokenPath(event.path);
|
|
341
|
+
const safeEvent = {
|
|
342
|
+
...event,
|
|
343
|
+
path: safePath,
|
|
344
|
+
...(event.requestBody !== undefined ? { requestBody: redactSensitive(event.requestBody) } : {}),
|
|
345
|
+
...(event.responseBody !== undefined ? { responseBody: redactSensitive(event.responseBody) } : {}),
|
|
346
|
+
...(event.error ? { error: redactSensitive(event.error) } : {}),
|
|
347
|
+
};
|
|
348
|
+
// Baseline event: always includes ts + requestId + profile.
|
|
349
|
+
// toolName comes from AsyncLocalStorage (set by the MCP handler
|
|
350
|
+
// wrapper) so concurrent MCP calls don't race on a process-global.
|
|
351
|
+
const tcx = getTelemetryContext();
|
|
352
|
+
// changeTicket: ALS wins for MCP (race-safe), env fallback for CLI
|
|
353
|
+
// (single-invocation per process, preAction sets HSCLI_CHANGE_TICKET).
|
|
354
|
+
const changeTicket = tcx?.changeTicket
|
|
355
|
+
|| process.env.HSCLI_CHANGE_TICKET?.trim()
|
|
356
|
+
|| undefined;
|
|
274
357
|
appendFileSync(this.telemetryFile, JSON.stringify({
|
|
275
358
|
ts: new Date().toISOString(),
|
|
276
359
|
requestId: this.requestId,
|
|
277
360
|
profile: this.profile,
|
|
278
|
-
toolName:
|
|
279
|
-
|
|
361
|
+
toolName: tcx?.toolName,
|
|
362
|
+
changeTicket,
|
|
363
|
+
...safeEvent,
|
|
280
364
|
}) + "\n", "utf8");
|
|
281
365
|
}
|
|
282
366
|
catch {
|