@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.
- package/CHANGELOG.md +466 -0
- package/LICENSE +21 -0
- package/README.md +287 -0
- package/SECURITY.md +68 -0
- package/dist/cli.d.ts +8 -0
- package/dist/cli.js +192 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/account/index.d.ts +3 -0
- package/dist/commands/account/index.js +65 -0
- package/dist/commands/account/index.js.map +1 -0
- package/dist/commands/api/index.d.ts +3 -0
- package/dist/commands/api/index.js +35 -0
- package/dist/commands/api/index.js.map +1 -0
- package/dist/commands/auth/index.d.ts +3 -0
- package/dist/commands/auth/index.js +229 -0
- package/dist/commands/auth/index.js.map +1 -0
- package/dist/commands/automation/index.d.ts +3 -0
- package/dist/commands/automation/index.js +119 -0
- package/dist/commands/automation/index.js.map +1 -0
- package/dist/commands/cms/blog-settings.d.ts +3 -0
- package/dist/commands/cms/blog-settings.js +70 -0
- package/dist/commands/cms/blog-settings.js.map +1 -0
- package/dist/commands/cms/content-ops.d.ts +13 -0
- package/dist/commands/cms/content-ops.js +262 -0
- package/dist/commands/cms/content-ops.js.map +1 -0
- package/dist/commands/cms/hubdb.d.ts +3 -0
- package/dist/commands/cms/hubdb.js +55 -0
- package/dist/commands/cms/hubdb.js.map +1 -0
- package/dist/commands/cms/index.d.ts +3 -0
- package/dist/commands/cms/index.js +119 -0
- package/dist/commands/cms/index.js.map +1 -0
- package/dist/commands/cms/source-code.d.ts +3 -0
- package/dist/commands/cms/source-code.js +101 -0
- package/dist/commands/cms/source-code.js.map +1 -0
- package/dist/commands/communication-preferences/index.d.ts +3 -0
- package/dist/commands/communication-preferences/index.js +107 -0
- package/dist/commands/communication-preferences/index.js.map +1 -0
- package/dist/commands/conversations/index.d.ts +3 -0
- package/dist/commands/conversations/index.js +233 -0
- package/dist/commands/conversations/index.js.map +1 -0
- package/dist/commands/crm/associations.d.ts +3 -0
- package/dist/commands/crm/associations.js +180 -0
- package/dist/commands/crm/associations.js.map +1 -0
- package/dist/commands/crm/cards.d.ts +3 -0
- package/dist/commands/crm/cards.js +72 -0
- package/dist/commands/crm/cards.js.map +1 -0
- package/dist/commands/crm/carts.d.ts +3 -0
- package/dist/commands/crm/carts.js +5 -0
- package/dist/commands/crm/carts.js.map +1 -0
- package/dist/commands/crm/communications.d.ts +3 -0
- package/dist/commands/crm/communications.js +5 -0
- package/dist/commands/crm/communications.js.map +1 -0
- package/dist/commands/crm/companies.d.ts +3 -0
- package/dist/commands/crm/companies.js +5 -0
- package/dist/commands/crm/companies.js.map +1 -0
- package/dist/commands/crm/contacts.d.ts +3 -0
- package/dist/commands/crm/contacts.js +5 -0
- package/dist/commands/crm/contacts.js.map +1 -0
- package/dist/commands/crm/custom-objects.d.ts +3 -0
- package/dist/commands/crm/custom-objects.js +83 -0
- package/dist/commands/crm/custom-objects.js.map +1 -0
- package/dist/commands/crm/dated.d.ts +9 -0
- package/dist/commands/crm/dated.js +247 -0
- package/dist/commands/crm/dated.js.map +1 -0
- package/dist/commands/crm/deals.d.ts +3 -0
- package/dist/commands/crm/deals.js +5 -0
- package/dist/commands/crm/deals.js.map +1 -0
- package/dist/commands/crm/describe.d.ts +3 -0
- package/dist/commands/crm/describe.js +89 -0
- package/dist/commands/crm/describe.js.map +1 -0
- package/dist/commands/crm/discounts.d.ts +3 -0
- package/dist/commands/crm/discounts.js +5 -0
- package/dist/commands/crm/discounts.js.map +1 -0
- package/dist/commands/crm/engagements.d.ts +3 -0
- package/dist/commands/crm/engagements.js +8 -0
- package/dist/commands/crm/engagements.js.map +1 -0
- package/dist/commands/crm/fees.d.ts +3 -0
- package/dist/commands/crm/fees.js +5 -0
- package/dist/commands/crm/fees.js.map +1 -0
- package/dist/commands/crm/goals.d.ts +3 -0
- package/dist/commands/crm/goals.js +30 -0
- package/dist/commands/crm/goals.js.map +1 -0
- package/dist/commands/crm/imports.d.ts +3 -0
- package/dist/commands/crm/imports.js +45 -0
- package/dist/commands/crm/imports.js.map +1 -0
- package/dist/commands/crm/index.d.ts +3 -0
- package/dist/commands/crm/index.js +64 -0
- package/dist/commands/crm/index.js.map +1 -0
- package/dist/commands/crm/invoices.d.ts +3 -0
- package/dist/commands/crm/invoices.js +5 -0
- package/dist/commands/crm/invoices.js.map +1 -0
- package/dist/commands/crm/leads.d.ts +3 -0
- package/dist/commands/crm/leads.js +5 -0
- package/dist/commands/crm/leads.js.map +1 -0
- package/dist/commands/crm/line-items.d.ts +3 -0
- package/dist/commands/crm/line-items.js +5 -0
- package/dist/commands/crm/line-items.js.map +1 -0
- package/dist/commands/crm/orders.d.ts +3 -0
- package/dist/commands/crm/orders.js +5 -0
- package/dist/commands/crm/orders.js.map +1 -0
- package/dist/commands/crm/owners.d.ts +3 -0
- package/dist/commands/crm/owners.js +22 -0
- package/dist/commands/crm/owners.js.map +1 -0
- package/dist/commands/crm/payments.d.ts +3 -0
- package/dist/commands/crm/payments.js +5 -0
- package/dist/commands/crm/payments.js.map +1 -0
- package/dist/commands/crm/pipelines.d.ts +3 -0
- package/dist/commands/crm/pipelines.js +70 -0
- package/dist/commands/crm/pipelines.js.map +1 -0
- package/dist/commands/crm/products.d.ts +3 -0
- package/dist/commands/crm/products.js +5 -0
- package/dist/commands/crm/products.js.map +1 -0
- package/dist/commands/crm/properties.d.ts +3 -0
- package/dist/commands/crm/properties.js +103 -0
- package/dist/commands/crm/properties.js.map +1 -0
- package/dist/commands/crm/quotes.d.ts +3 -0
- package/dist/commands/crm/quotes.js +5 -0
- package/dist/commands/crm/quotes.js.map +1 -0
- package/dist/commands/crm/shared.d.ts +17 -0
- package/dist/commands/crm/shared.js +256 -0
- package/dist/commands/crm/shared.js.map +1 -0
- package/dist/commands/crm/subscriptions.d.ts +3 -0
- package/dist/commands/crm/subscriptions.js +5 -0
- package/dist/commands/crm/subscriptions.js.map +1 -0
- package/dist/commands/crm/sync.d.ts +3 -0
- package/dist/commands/crm/sync.js +116 -0
- package/dist/commands/crm/sync.js.map +1 -0
- package/dist/commands/crm/taxes.d.ts +3 -0
- package/dist/commands/crm/taxes.js +5 -0
- package/dist/commands/crm/taxes.js.map +1 -0
- package/dist/commands/crm/tickets.d.ts +3 -0
- package/dist/commands/crm/tickets.js +5 -0
- package/dist/commands/crm/tickets.js.map +1 -0
- package/dist/commands/crm/users.d.ts +3 -0
- package/dist/commands/crm/users.js +5 -0
- package/dist/commands/crm/users.js.map +1 -0
- package/dist/commands/doctor/index.d.ts +3 -0
- package/dist/commands/doctor/index.js +232 -0
- package/dist/commands/doctor/index.js.map +1 -0
- package/dist/commands/domains/shared.d.ts +13 -0
- package/dist/commands/domains/shared.js +56 -0
- package/dist/commands/domains/shared.js.map +1 -0
- package/dist/commands/email-events/index.d.ts +3 -0
- package/dist/commands/email-events/index.js +77 -0
- package/dist/commands/email-events/index.js.map +1 -0
- package/dist/commands/events/index.d.ts +3 -0
- package/dist/commands/events/index.js +80 -0
- package/dist/commands/events/index.js.map +1 -0
- package/dist/commands/exports/index.d.ts +3 -0
- package/dist/commands/exports/index.js +45 -0
- package/dist/commands/exports/index.js.map +1 -0
- package/dist/commands/extensions/index.d.ts +3 -0
- package/dist/commands/extensions/index.js +118 -0
- package/dist/commands/extensions/index.js.map +1 -0
- package/dist/commands/feature-flags/index.d.ts +3 -0
- package/dist/commands/feature-flags/index.js +65 -0
- package/dist/commands/feature-flags/index.js.map +1 -0
- package/dist/commands/files/folders.d.ts +3 -0
- package/dist/commands/files/folders.js +74 -0
- package/dist/commands/files/folders.js.map +1 -0
- package/dist/commands/files/index.d.ts +3 -0
- package/dist/commands/files/index.js +30 -0
- package/dist/commands/files/index.js.map +1 -0
- package/dist/commands/forms/index.d.ts +3 -0
- package/dist/commands/forms/index.js +37 -0
- package/dist/commands/forms/index.js.map +1 -0
- package/dist/commands/integrations/index.d.ts +3 -0
- package/dist/commands/integrations/index.js +64 -0
- package/dist/commands/integrations/index.js.map +1 -0
- package/dist/commands/integrators/index.d.ts +3 -0
- package/dist/commands/integrators/index.js +79 -0
- package/dist/commands/integrators/index.js.map +1 -0
- package/dist/commands/legacy/index.d.ts +13 -0
- package/dist/commands/legacy/index.js +254 -0
- package/dist/commands/legacy/index.js.map +1 -0
- package/dist/commands/legacy-v1/index.d.ts +29 -0
- package/dist/commands/legacy-v1/index.js +568 -0
- package/dist/commands/legacy-v1/index.js.map +1 -0
- package/dist/commands/lists/index.d.ts +3 -0
- package/dist/commands/lists/index.js +148 -0
- package/dist/commands/lists/index.js.map +1 -0
- package/dist/commands/marketing/ads.d.ts +3 -0
- package/dist/commands/marketing/ads.js +45 -0
- package/dist/commands/marketing/ads.js.map +1 -0
- package/dist/commands/marketing/behavioral-events.d.ts +3 -0
- package/dist/commands/marketing/behavioral-events.js +38 -0
- package/dist/commands/marketing/behavioral-events.js.map +1 -0
- package/dist/commands/marketing/events.d.ts +3 -0
- package/dist/commands/marketing/events.js +69 -0
- package/dist/commands/marketing/events.js.map +1 -0
- package/dist/commands/marketing/index.d.ts +3 -0
- package/dist/commands/marketing/index.js +55 -0
- package/dist/commands/marketing/index.js.map +1 -0
- package/dist/commands/marketing/landing-pages.d.ts +3 -0
- package/dist/commands/marketing/landing-pages.js +48 -0
- package/dist/commands/marketing/landing-pages.js.map +1 -0
- package/dist/commands/marketing/seo.d.ts +3 -0
- package/dist/commands/marketing/seo.js +35 -0
- package/dist/commands/marketing/seo.js.map +1 -0
- package/dist/commands/marketing/social.d.ts +3 -0
- package/dist/commands/marketing/social.js +45 -0
- package/dist/commands/marketing/social.js.map +1 -0
- package/dist/commands/marketing/subscriptions.d.ts +3 -0
- package/dist/commands/marketing/subscriptions.js +27 -0
- package/dist/commands/marketing/subscriptions.js.map +1 -0
- package/dist/commands/marketing/transactional.d.ts +3 -0
- package/dist/commands/marketing/transactional.js +30 -0
- package/dist/commands/marketing/transactional.js.map +1 -0
- package/dist/commands/marketing-emails-v1/index.d.ts +3 -0
- package/dist/commands/marketing-emails-v1/index.js +72 -0
- package/dist/commands/marketing-emails-v1/index.js.map +1 -0
- package/dist/commands/mcp.d.ts +2 -0
- package/dist/commands/mcp.js +10 -0
- package/dist/commands/mcp.js.map +1 -0
- package/dist/commands/media-bridge/index.d.ts +3 -0
- package/dist/commands/media-bridge/index.js +209 -0
- package/dist/commands/media-bridge/index.js.map +1 -0
- package/dist/commands/reporting/index.d.ts +3 -0
- package/dist/commands/reporting/index.js +73 -0
- package/dist/commands/reporting/index.js.map +1 -0
- package/dist/commands/sales/calling.d.ts +3 -0
- package/dist/commands/sales/calling.js +32 -0
- package/dist/commands/sales/calling.js.map +1 -0
- package/dist/commands/sales/index.d.ts +3 -0
- package/dist/commands/sales/index.js +10 -0
- package/dist/commands/sales/index.js.map +1 -0
- package/dist/commands/sales/meetings.d.ts +3 -0
- package/dist/commands/sales/meetings.js +37 -0
- package/dist/commands/sales/meetings.js.map +1 -0
- package/dist/commands/sales/sequences.d.ts +3 -0
- package/dist/commands/sales/sequences.js +78 -0
- package/dist/commands/sales/sequences.js.map +1 -0
- package/dist/commands/seed/cms.d.ts +6 -0
- package/dist/commands/seed/cms.js +204 -0
- package/dist/commands/seed/cms.js.map +1 -0
- package/dist/commands/seed/commerce.d.ts +3 -0
- package/dist/commands/seed/commerce.js +117 -0
- package/dist/commands/seed/commerce.js.map +1 -0
- package/dist/commands/seed/context.d.ts +8 -0
- package/dist/commands/seed/context.js +76 -0
- package/dist/commands/seed/context.js.map +1 -0
- package/dist/commands/seed/crm-core.d.ts +3 -0
- package/dist/commands/seed/crm-core.js +137 -0
- package/dist/commands/seed/crm-core.js.map +1 -0
- package/dist/commands/seed/data.d.ts +73 -0
- package/dist/commands/seed/data.js +49 -0
- package/dist/commands/seed/data.js.map +1 -0
- package/dist/commands/seed/engagements.d.ts +3 -0
- package/dist/commands/seed/engagements.js +89 -0
- package/dist/commands/seed/engagements.js.map +1 -0
- package/dist/commands/seed/index.d.ts +3 -0
- package/dist/commands/seed/index.js +95 -0
- package/dist/commands/seed/index.js.map +1 -0
- package/dist/commands/seed/infra.d.ts +6 -0
- package/dist/commands/seed/infra.js +163 -0
- package/dist/commands/seed/infra.js.map +1 -0
- package/dist/commands/seed/marketing.d.ts +3 -0
- package/dist/commands/seed/marketing.js +172 -0
- package/dist/commands/seed/marketing.js.map +1 -0
- package/dist/commands/seed/shared.d.ts +8 -0
- package/dist/commands/seed/shared.js +37 -0
- package/dist/commands/seed/shared.js.map +1 -0
- package/dist/commands/seed/types.d.ts +44 -0
- package/dist/commands/seed/types.js +2 -0
- package/dist/commands/seed/types.js.map +1 -0
- package/dist/commands/service/chatflows.d.ts +3 -0
- package/dist/commands/service/chatflows.js +30 -0
- package/dist/commands/service/chatflows.js.map +1 -0
- package/dist/commands/service/index.d.ts +3 -0
- package/dist/commands/service/index.js +25 -0
- package/dist/commands/service/index.js.map +1 -0
- package/dist/commands/service/knowledge-base.d.ts +3 -0
- package/dist/commands/service/knowledge-base.js +19 -0
- package/dist/commands/service/knowledge-base.js.map +1 -0
- package/dist/commands/service/pipelines.d.ts +3 -0
- package/dist/commands/service/pipelines.js +36 -0
- package/dist/commands/service/pipelines.js.map +1 -0
- package/dist/commands/settings/index.d.ts +3 -0
- package/dist/commands/settings/index.js +149 -0
- package/dist/commands/settings/index.js.map +1 -0
- package/dist/commands/site-search/index.d.ts +3 -0
- package/dist/commands/site-search/index.js +36 -0
- package/dist/commands/site-search/index.js.map +1 -0
- package/dist/commands/timeline/index.d.ts +3 -0
- package/dist/commands/timeline/index.js +32 -0
- package/dist/commands/timeline/index.js.map +1 -0
- package/dist/commands/webhooks/index.d.ts +3 -0
- package/dist/commands/webhooks/index.js +41 -0
- package/dist/commands/webhooks/index.js.map +1 -0
- package/dist/commands/workflows/index.d.ts +3 -0
- package/dist/commands/workflows/index.js +13 -0
- package/dist/commands/workflows/index.js.map +1 -0
- package/dist/core/auth.d.ts +33 -0
- package/dist/core/auth.js +137 -0
- package/dist/core/auth.js.map +1 -0
- package/dist/core/capabilities.d.ts +60 -0
- package/dist/core/capabilities.js +559 -0
- package/dist/core/capabilities.js.map +1 -0
- package/dist/core/http.d.ts +47 -0
- package/dist/core/http.js +433 -0
- package/dist/core/http.js.map +1 -0
- package/dist/core/output.d.ts +23 -0
- package/dist/core/output.js +197 -0
- package/dist/core/output.js.map +1 -0
- package/dist/core/permissions.d.ts +9 -0
- package/dist/core/permissions.js +27 -0
- package/dist/core/permissions.js.map +1 -0
- package/dist/core/plugins.d.ts +42 -0
- package/dist/core/plugins.js +94 -0
- package/dist/core/plugins.js.map +1 -0
- package/dist/core/policy.d.ts +2 -0
- package/dist/core/policy.js +38 -0
- package/dist/core/policy.js.map +1 -0
- package/dist/core/schema-cache.d.ts +56 -0
- package/dist/core/schema-cache.js +338 -0
- package/dist/core/schema-cache.js.map +1 -0
- package/dist/core/schemas.d.ts +96 -0
- package/dist/core/schemas.js +104 -0
- package/dist/core/schemas.js.map +1 -0
- package/dist/core/urls.d.ts +50 -0
- package/dist/core/urls.js +122 -0
- package/dist/core/urls.js.map +1 -0
- package/dist/core/vault.d.ts +37 -0
- package/dist/core/vault.js +143 -0
- package/dist/core/vault.js.map +1 -0
- package/dist/mcp/server.d.ts +5 -0
- package/dist/mcp/server.js +680 -0
- package/dist/mcp/server.js.map +1 -0
- package/package.json +84 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { createClient } from "../../core/http.js";
|
|
2
|
+
import { printResult } from "../../core/output.js";
|
|
3
|
+
import { encodePathSegment } from "../crm/shared.js";
|
|
4
|
+
export function registerSubscriptions(marketing, getCtx) {
|
|
5
|
+
const subs = marketing.command("subscriptions").description("Communication subscription preferences");
|
|
6
|
+
const types = subs.command("types").description("Subscription types");
|
|
7
|
+
types
|
|
8
|
+
.command("list")
|
|
9
|
+
.action(async () => {
|
|
10
|
+
const ctx = getCtx();
|
|
11
|
+
const client = createClient(ctx.profile);
|
|
12
|
+
const res = await client.request("/communication-preferences/v3/definitions");
|
|
13
|
+
printResult(ctx, res);
|
|
14
|
+
});
|
|
15
|
+
subs
|
|
16
|
+
.command("status")
|
|
17
|
+
.argument("<email>")
|
|
18
|
+
.description("Get subscription status for an email")
|
|
19
|
+
.action(async (email) => {
|
|
20
|
+
const ctx = getCtx();
|
|
21
|
+
const client = createClient(ctx.profile);
|
|
22
|
+
const emailSegment = encodePathSegment(email, "email");
|
|
23
|
+
const res = await client.request(`/communication-preferences/v3/status/email/${emailSegment}`);
|
|
24
|
+
printResult(ctx, res);
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=subscriptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subscriptions.js","sourceRoot":"","sources":["../../../src/commands/marketing/subscriptions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,MAAM,UAAU,qBAAqB,CAAC,SAAkB,EAAE,MAAwB;IAChF,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,WAAW,CAAC,wCAAwC,CAAC,CAAC;IAEtG,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC;IACtE,KAAK;SACF,OAAO,CAAC,MAAM,CAAC;SACf,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC;QAC9E,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;IAEL,IAAI;SACD,OAAO,CAAC,QAAQ,CAAC;SACjB,QAAQ,CAAC,SAAS,CAAC;SACnB,WAAW,CAAC,sCAAsC,CAAC;SACnD,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACtB,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,YAAY,GAAG,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACvD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,8CAA8C,YAAY,EAAE,CAAC,CAAC;QAC/F,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { createClient } from "../../core/http.js";
|
|
2
|
+
import { printResult } from "../../core/output.js";
|
|
3
|
+
import { appendOptional, maybeWrite, parseJsonPayload, parseNumberFlag } from "../crm/shared.js";
|
|
4
|
+
export function registerTransactional(marketing, getCtx) {
|
|
5
|
+
const tx = marketing.command("transactional").description("Transactional email APIs");
|
|
6
|
+
tx.command("send")
|
|
7
|
+
.requiredOption("--data <payload>", "JSON payload")
|
|
8
|
+
.action(async (opts) => {
|
|
9
|
+
const ctx = getCtx();
|
|
10
|
+
const client = createClient(ctx.profile);
|
|
11
|
+
const body = parseJsonPayload(opts.data);
|
|
12
|
+
const res = await maybeWrite(ctx, client, "POST", "/marketing/v3/transactional/single-email/send", body);
|
|
13
|
+
printResult(ctx, res);
|
|
14
|
+
});
|
|
15
|
+
const templates = tx.command("templates").description("Transactional SMTP tokens");
|
|
16
|
+
templates
|
|
17
|
+
.command("list")
|
|
18
|
+
.option("--limit <n>", "Max records", "50")
|
|
19
|
+
.option("--after <cursor>", "Paging cursor")
|
|
20
|
+
.action(async (opts) => {
|
|
21
|
+
const ctx = getCtx();
|
|
22
|
+
const client = createClient(ctx.profile);
|
|
23
|
+
const params = new URLSearchParams();
|
|
24
|
+
params.set("limit", String(parseNumberFlag(opts.limit, "--limit")));
|
|
25
|
+
appendOptional(params, "after", opts.after);
|
|
26
|
+
const res = await client.request(`/marketing/v3/transactional/smtp-tokens?${params.toString()}`);
|
|
27
|
+
printResult(ctx, res);
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=transactional.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transactional.js","sourceRoot":"","sources":["../../../src/commands/marketing/transactional.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEjG,MAAM,UAAU,qBAAqB,CAAC,SAAkB,EAAE,MAAwB;IAChF,MAAM,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,WAAW,CAAC,0BAA0B,CAAC,CAAC;IAEtF,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;SACf,cAAc,CAAC,kBAAkB,EAAE,cAAc,CAAC;SAClD,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,+CAA+C,EAAE,IAAI,CAAC,CAAC;QACzG,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;IAEL,MAAM,SAAS,GAAG,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC,2BAA2B,CAAC,CAAC;IACnF,SAAS;SACN,OAAO,CAAC,MAAM,CAAC;SACf,MAAM,CAAC,aAAa,EAAE,aAAa,EAAE,IAAI,CAAC;SAC1C,MAAM,CAAC,kBAAkB,EAAE,eAAe,CAAC;SAC3C,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;QACpE,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,2CAA2C,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACjG,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1,72 @@
|
|
|
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 registerMarketingEmailsV1(program, getCtx) {
|
|
5
|
+
const me = program.command("marketing-emails-v1").description("Legacy marketing emails v1 API (for portals still using v1 email campaigns)");
|
|
6
|
+
me.command("list").option("--limit <n>", "Max records", "50").option("--offset <n>", "Paging offset").option("--search <text>", "Search term").action(async (o) => {
|
|
7
|
+
const ctx = getCtx();
|
|
8
|
+
const client = createClient(ctx.profile);
|
|
9
|
+
const params = new URLSearchParams();
|
|
10
|
+
params.set("limit", String(parseNumberFlag(o.limit, "--limit")));
|
|
11
|
+
appendOptional(params, "offset", o.offset);
|
|
12
|
+
appendOptional(params, "search", o.search);
|
|
13
|
+
const res = await client.request(`/marketing-emails/v1/emails?${params.toString()}`);
|
|
14
|
+
printResult(ctx, res);
|
|
15
|
+
});
|
|
16
|
+
me.command("get").argument("<emailId>").action(async (emailId) => {
|
|
17
|
+
const ctx = getCtx();
|
|
18
|
+
const client = createClient(ctx.profile);
|
|
19
|
+
const seg = encodePathSegment(emailId, "emailId");
|
|
20
|
+
const res = await client.request(`/marketing-emails/v1/emails/${seg}`);
|
|
21
|
+
printResult(ctx, res);
|
|
22
|
+
});
|
|
23
|
+
me.command("create").requiredOption("--data <payload>", "Email payload JSON").action(async (o) => {
|
|
24
|
+
const ctx = getCtx();
|
|
25
|
+
const client = createClient(ctx.profile);
|
|
26
|
+
const res = await maybeWrite(ctx, client, "POST", `/marketing-emails/v1/emails`, parseJsonPayload(o.data));
|
|
27
|
+
printResult(ctx, res);
|
|
28
|
+
});
|
|
29
|
+
me.command("update").argument("<emailId>").requiredOption("--data <payload>", "Email patch JSON").action(async (emailId, o) => {
|
|
30
|
+
const ctx = getCtx();
|
|
31
|
+
const client = createClient(ctx.profile);
|
|
32
|
+
const seg = encodePathSegment(emailId, "emailId");
|
|
33
|
+
const res = await maybeWrite(ctx, client, "PUT", `/marketing-emails/v1/emails/${seg}`, parseJsonPayload(o.data));
|
|
34
|
+
printResult(ctx, res);
|
|
35
|
+
});
|
|
36
|
+
me.command("delete").argument("<emailId>").action(async (emailId) => {
|
|
37
|
+
const ctx = getCtx();
|
|
38
|
+
const client = createClient(ctx.profile);
|
|
39
|
+
const seg = encodePathSegment(emailId, "emailId");
|
|
40
|
+
const res = await maybeWrite(ctx, client, "DELETE", `/marketing-emails/v1/emails/${seg}`);
|
|
41
|
+
printResult(ctx, res);
|
|
42
|
+
});
|
|
43
|
+
me.command("clone").argument("<emailId>").requiredOption("--data <payload>", "Clone payload JSON (typically { name })").action(async (emailId, o) => {
|
|
44
|
+
const ctx = getCtx();
|
|
45
|
+
const client = createClient(ctx.profile);
|
|
46
|
+
const seg = encodePathSegment(emailId, "emailId");
|
|
47
|
+
const res = await maybeWrite(ctx, client, "POST", `/marketing-emails/v1/emails/${seg}/clone`, parseJsonPayload(o.data));
|
|
48
|
+
printResult(ctx, res);
|
|
49
|
+
});
|
|
50
|
+
me.command("publish").argument("<emailId>").action(async (emailId) => {
|
|
51
|
+
const ctx = getCtx();
|
|
52
|
+
const client = createClient(ctx.profile);
|
|
53
|
+
const seg = encodePathSegment(emailId, "emailId");
|
|
54
|
+
const res = await maybeWrite(ctx, client, "POST", `/marketing-emails/v1/emails/${seg}/publish`);
|
|
55
|
+
printResult(ctx, res);
|
|
56
|
+
});
|
|
57
|
+
me.command("unpublish").argument("<emailId>").action(async (emailId) => {
|
|
58
|
+
const ctx = getCtx();
|
|
59
|
+
const client = createClient(ctx.profile);
|
|
60
|
+
const seg = encodePathSegment(emailId, "emailId");
|
|
61
|
+
const res = await maybeWrite(ctx, client, "POST", `/marketing-emails/v1/emails/${seg}/unpublish`);
|
|
62
|
+
printResult(ctx, res);
|
|
63
|
+
});
|
|
64
|
+
me.command("statistics").argument("<emailId>").action(async (emailId) => {
|
|
65
|
+
const ctx = getCtx();
|
|
66
|
+
const client = createClient(ctx.profile);
|
|
67
|
+
const seg = encodePathSegment(emailId, "emailId");
|
|
68
|
+
const res = await client.request(`/marketing-emails/v1/emails/${seg}/statistics`);
|
|
69
|
+
printResult(ctx, res);
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/marketing-emails-v1/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,MAAM,UAAU,WAAW,CAAC,OAAgB;IAC1C,OAAO;SACJ,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,2BAA2B,CAAC;SACxC,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,YAAY,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1,209 @@
|
|
|
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 registerMediaBridge(program, getCtx) {
|
|
5
|
+
const mb = program.command("media-bridge").description("HubSpot Media Bridge API (video/media partner integration)");
|
|
6
|
+
// Properties under an app
|
|
7
|
+
const props = mb.command("properties").description("Media object properties for an app");
|
|
8
|
+
props.command("list").argument("<appId>").option("--limit <n>", "Max records", "50").option("--after <cursor>", "Paging cursor").action(async (appId, o) => {
|
|
9
|
+
const ctx = getCtx();
|
|
10
|
+
const client = createClient(ctx.profile);
|
|
11
|
+
const appSeg = encodePathSegment(appId, "appId");
|
|
12
|
+
const params = new URLSearchParams();
|
|
13
|
+
params.set("limit", String(parseNumberFlag(o.limit, "--limit")));
|
|
14
|
+
appendOptional(params, "after", o.after);
|
|
15
|
+
const res = await client.request(`/media-bridge/v1/${appSeg}/properties?${params.toString()}`);
|
|
16
|
+
printResult(ctx, res);
|
|
17
|
+
});
|
|
18
|
+
props.command("get").argument("<appId>").argument("<propertyName>").action(async (appId, propertyName) => {
|
|
19
|
+
const ctx = getCtx();
|
|
20
|
+
const client = createClient(ctx.profile);
|
|
21
|
+
const appSeg = encodePathSegment(appId, "appId");
|
|
22
|
+
const nameSeg = encodePathSegment(propertyName, "propertyName");
|
|
23
|
+
const res = await client.request(`/media-bridge/v1/${appSeg}/properties/${nameSeg}`);
|
|
24
|
+
printResult(ctx, res);
|
|
25
|
+
});
|
|
26
|
+
props.command("create").argument("<appId>").requiredOption("--data <payload>", "Property payload JSON").action(async (appId, o) => {
|
|
27
|
+
const ctx = getCtx();
|
|
28
|
+
const client = createClient(ctx.profile);
|
|
29
|
+
const appSeg = encodePathSegment(appId, "appId");
|
|
30
|
+
const res = await maybeWrite(ctx, client, "POST", `/media-bridge/v1/${appSeg}/properties`, parseJsonPayload(o.data));
|
|
31
|
+
printResult(ctx, res);
|
|
32
|
+
});
|
|
33
|
+
props.command("update").argument("<appId>").argument("<propertyName>").requiredOption("--data <payload>", "Patch JSON").action(async (appId, propertyName, o) => {
|
|
34
|
+
const ctx = getCtx();
|
|
35
|
+
const client = createClient(ctx.profile);
|
|
36
|
+
const appSeg = encodePathSegment(appId, "appId");
|
|
37
|
+
const nameSeg = encodePathSegment(propertyName, "propertyName");
|
|
38
|
+
const res = await maybeWrite(ctx, client, "PATCH", `/media-bridge/v1/${appSeg}/properties/${nameSeg}`, parseJsonPayload(o.data));
|
|
39
|
+
printResult(ctx, res);
|
|
40
|
+
});
|
|
41
|
+
props.command("delete").argument("<appId>").argument("<propertyName>").action(async (appId, propertyName) => {
|
|
42
|
+
const ctx = getCtx();
|
|
43
|
+
const client = createClient(ctx.profile);
|
|
44
|
+
const appSeg = encodePathSegment(appId, "appId");
|
|
45
|
+
const nameSeg = encodePathSegment(propertyName, "propertyName");
|
|
46
|
+
const res = await maybeWrite(ctx, client, "DELETE", `/media-bridge/v1/${appSeg}/properties/${nameSeg}`);
|
|
47
|
+
printResult(ctx, res);
|
|
48
|
+
});
|
|
49
|
+
// Property batch ops
|
|
50
|
+
const propsBatch = props.command("batch").description("Batch property ops");
|
|
51
|
+
for (const op of ["read", "create", "archive"]) {
|
|
52
|
+
propsBatch.command(op).argument("<appId>").argument("<objectType>").requiredOption("--data <payload>", `Batch ${op} payload JSON`).action(async (appId, objectType, o) => {
|
|
53
|
+
const ctx = getCtx();
|
|
54
|
+
const client = createClient(ctx.profile);
|
|
55
|
+
const appSeg = encodePathSegment(appId, "appId");
|
|
56
|
+
const objSeg = encodePathSegment(objectType, "objectType");
|
|
57
|
+
const method = op === "read" ? "POST" : "POST";
|
|
58
|
+
const action = op === "read" ? client.request(`/media-bridge/v1/${appSeg}/properties/${objSeg}/batch-${op}`, { method, body: parseJsonPayload(o.data) }) : maybeWrite(ctx, client, "POST", `/media-bridge/v1/${appSeg}/properties/${objSeg}/batch-${op}`, parseJsonPayload(o.data));
|
|
59
|
+
const res = await action;
|
|
60
|
+
printResult(ctx, res);
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
// Property groups per app/objectType
|
|
64
|
+
const groups = mb.command("property-groups").description("Media property groups (schema grouping)");
|
|
65
|
+
groups.command("list").argument("<appId>").argument("<objectType>").action(async (appId, objectType) => {
|
|
66
|
+
const ctx = getCtx();
|
|
67
|
+
const client = createClient(ctx.profile);
|
|
68
|
+
const appSeg = encodePathSegment(appId, "appId");
|
|
69
|
+
const objSeg = encodePathSegment(objectType, "objectType");
|
|
70
|
+
const res = await client.request(`/media-bridge/v1/${appSeg}/properties/${objSeg}/groups`);
|
|
71
|
+
printResult(ctx, res);
|
|
72
|
+
});
|
|
73
|
+
for (const action of ["create", "update", "delete"]) {
|
|
74
|
+
groups.command(action).argument("<appId>").argument("<objectType>").option("--group-name <name>", "Group name (for update/delete)").option("--data <payload>", "Payload JSON (for create/update)").action(async (appId, objectType, o) => {
|
|
75
|
+
const ctx = getCtx();
|
|
76
|
+
const client = createClient(ctx.profile);
|
|
77
|
+
const appSeg = encodePathSegment(appId, "appId");
|
|
78
|
+
const objSeg = encodePathSegment(objectType, "objectType");
|
|
79
|
+
const method = action === "create" ? "POST" : action === "update" ? "PATCH" : "DELETE";
|
|
80
|
+
const path = action === "create"
|
|
81
|
+
? `/media-bridge/v1/${appSeg}/properties/${objSeg}/groups`
|
|
82
|
+
: `/media-bridge/v1/${appSeg}/properties/${objSeg}/groups/${encodePathSegment(o.groupName || "", "groupName")}`;
|
|
83
|
+
const body = o.data ? parseJsonPayload(o.data) : undefined;
|
|
84
|
+
const res = await maybeWrite(ctx, client, method, path, body);
|
|
85
|
+
printResult(ctx, res);
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
// Schemas
|
|
89
|
+
const schemas = mb.command("schemas").description("Media object schemas");
|
|
90
|
+
schemas.command("list").argument("<appId>").action(async (appId) => {
|
|
91
|
+
const ctx = getCtx();
|
|
92
|
+
const client = createClient(ctx.profile);
|
|
93
|
+
const seg = encodePathSegment(appId, "appId");
|
|
94
|
+
const res = await client.request(`/media-bridge/v1/${seg}/schemas`);
|
|
95
|
+
printResult(ctx, res);
|
|
96
|
+
});
|
|
97
|
+
schemas.command("update").argument("<appId>").requiredOption("--data <payload>", "Schema patch JSON").action(async (appId, o) => {
|
|
98
|
+
const ctx = getCtx();
|
|
99
|
+
const client = createClient(ctx.profile);
|
|
100
|
+
const seg = encodePathSegment(appId, "appId");
|
|
101
|
+
const res = await maybeWrite(ctx, client, "PATCH", `/media-bridge/v1/${seg}/schemas`, parseJsonPayload(o.data));
|
|
102
|
+
printResult(ctx, res);
|
|
103
|
+
});
|
|
104
|
+
schemas.command("associations-create").argument("<appId>").argument("<objectType>").requiredOption("--data <payload>", "Association payload JSON").action(async (appId, objectType, o) => {
|
|
105
|
+
const ctx = getCtx();
|
|
106
|
+
const client = createClient(ctx.profile);
|
|
107
|
+
const appSeg = encodePathSegment(appId, "appId");
|
|
108
|
+
const objSeg = encodePathSegment(objectType, "objectType");
|
|
109
|
+
const res = await maybeWrite(ctx, client, "POST", `/media-bridge/v1/${appSeg}/schemas/${objSeg}/associations`, parseJsonPayload(o.data));
|
|
110
|
+
printResult(ctx, res);
|
|
111
|
+
});
|
|
112
|
+
schemas.command("associations-delete").argument("<appId>").argument("<objectType>").requiredOption("--association-id <id>", "Association id").action(async (appId, objectType, o) => {
|
|
113
|
+
const ctx = getCtx();
|
|
114
|
+
const client = createClient(ctx.profile);
|
|
115
|
+
const appSeg = encodePathSegment(appId, "appId");
|
|
116
|
+
const objSeg = encodePathSegment(objectType, "objectType");
|
|
117
|
+
const params = new URLSearchParams();
|
|
118
|
+
params.set("associationId", String(o.associationId));
|
|
119
|
+
const res = await maybeWrite(ctx, client, "DELETE", `/media-bridge/v1/${appSeg}/schemas/${objSeg}/associations?${params.toString()}`);
|
|
120
|
+
printResult(ctx, res);
|
|
121
|
+
});
|
|
122
|
+
// Settings
|
|
123
|
+
const settings = mb.command("settings").description("Media bridge partner settings");
|
|
124
|
+
settings.command("register").argument("<appId>").requiredOption("--data <payload>", "Registration payload JSON").action(async (appId, o) => {
|
|
125
|
+
const ctx = getCtx();
|
|
126
|
+
const client = createClient(ctx.profile);
|
|
127
|
+
const seg = encodePathSegment(appId, "appId");
|
|
128
|
+
const res = await maybeWrite(ctx, client, "POST", `/media-bridge/v1/${seg}/settings/register`, parseJsonPayload(o.data));
|
|
129
|
+
printResult(ctx, res);
|
|
130
|
+
});
|
|
131
|
+
settings.command("update").argument("<appId>").requiredOption("--data <payload>", "Settings payload JSON").action(async (appId, o) => {
|
|
132
|
+
const ctx = getCtx();
|
|
133
|
+
const client = createClient(ctx.profile);
|
|
134
|
+
const seg = encodePathSegment(appId, "appId");
|
|
135
|
+
const res = await maybeWrite(ctx, client, "PUT", `/media-bridge/v1/${seg}/settings`, parseJsonPayload(o.data));
|
|
136
|
+
printResult(ctx, res);
|
|
137
|
+
});
|
|
138
|
+
settings.command("event-visibility-get").argument("<appId>").action(async (appId) => {
|
|
139
|
+
const ctx = getCtx();
|
|
140
|
+
const client = createClient(ctx.profile);
|
|
141
|
+
const seg = encodePathSegment(appId, "appId");
|
|
142
|
+
const res = await client.request(`/media-bridge/v1/${seg}/settings/event/visibility`);
|
|
143
|
+
printResult(ctx, res);
|
|
144
|
+
});
|
|
145
|
+
settings.command("event-visibility-set").argument("<appId>").requiredOption("--data <payload>", "Visibility patch JSON").action(async (appId, o) => {
|
|
146
|
+
const ctx = getCtx();
|
|
147
|
+
const client = createClient(ctx.profile);
|
|
148
|
+
const seg = encodePathSegment(appId, "appId");
|
|
149
|
+
const res = await maybeWrite(ctx, client, "PATCH", `/media-bridge/v1/${seg}/settings/event/visibility`, parseJsonPayload(o.data));
|
|
150
|
+
printResult(ctx, res);
|
|
151
|
+
});
|
|
152
|
+
settings.command("object-definitions-get").argument("<appId>").action(async (appId) => {
|
|
153
|
+
const ctx = getCtx();
|
|
154
|
+
const client = createClient(ctx.profile);
|
|
155
|
+
const seg = encodePathSegment(appId, "appId");
|
|
156
|
+
const res = await client.request(`/media-bridge/v1/${seg}/settings/object/definitions`);
|
|
157
|
+
printResult(ctx, res);
|
|
158
|
+
});
|
|
159
|
+
settings.command("object-definitions-create").argument("<appId>").requiredOption("--data <payload>", "Object definitions payload JSON").action(async (appId, o) => {
|
|
160
|
+
const ctx = getCtx();
|
|
161
|
+
const client = createClient(ctx.profile);
|
|
162
|
+
const seg = encodePathSegment(appId, "appId");
|
|
163
|
+
const res = await maybeWrite(ctx, client, "POST", `/media-bridge/v1/${seg}/settings/object/definitions`, parseJsonPayload(o.data));
|
|
164
|
+
printResult(ctx, res);
|
|
165
|
+
});
|
|
166
|
+
const oembed = settings.command("oembed-domains").description("OEmbed domain whitelist");
|
|
167
|
+
for (const op of ["list", "get", "create", "update", "delete"]) {
|
|
168
|
+
oembed.command(op).argument("<appId>").option("--domain <domain>", "Domain (for get/update/delete)").option("--data <payload>", "Payload JSON (for create/update)").action(async (appId, o) => {
|
|
169
|
+
const ctx = getCtx();
|
|
170
|
+
const client = createClient(ctx.profile);
|
|
171
|
+
const seg = encodePathSegment(appId, "appId");
|
|
172
|
+
if (op === "list") {
|
|
173
|
+
const res = await client.request(`/media-bridge/v1/${seg}/settings/oembed/domains`);
|
|
174
|
+
return printResult(ctx, res);
|
|
175
|
+
}
|
|
176
|
+
const domainSeg = o.domain ? encodePathSegment(o.domain, "domain") : "";
|
|
177
|
+
const path = `/media-bridge/v1/${seg}/settings/oembed/domains${domainSeg ? `/${domainSeg}` : ""}`;
|
|
178
|
+
if (op === "get") {
|
|
179
|
+
const res = await client.request(path);
|
|
180
|
+
return printResult(ctx, res);
|
|
181
|
+
}
|
|
182
|
+
const method = op === "create" ? "POST" : op === "update" ? "PATCH" : "DELETE";
|
|
183
|
+
const body = o.data ? parseJsonPayload(o.data) : undefined;
|
|
184
|
+
const res = await maybeWrite(ctx, client, method, path, body);
|
|
185
|
+
printResult(ctx, res);
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
// Events
|
|
189
|
+
const events = mb.command("events").description("Media playback events");
|
|
190
|
+
events.command("attention-span").requiredOption("--data <payload>", "Attention span payload JSON").action(async (o) => {
|
|
191
|
+
const ctx = getCtx();
|
|
192
|
+
const client = createClient(ctx.profile);
|
|
193
|
+
const res = await maybeWrite(ctx, client, "POST", `/media-bridge/v1/events/attention/span`, parseJsonPayload(o.data));
|
|
194
|
+
printResult(ctx, res);
|
|
195
|
+
});
|
|
196
|
+
events.command("media-played").requiredOption("--data <payload>", "Media-played payload JSON").action(async (o) => {
|
|
197
|
+
const ctx = getCtx();
|
|
198
|
+
const client = createClient(ctx.profile);
|
|
199
|
+
const res = await maybeWrite(ctx, client, "POST", `/media-bridge/v1/events/media/played`, parseJsonPayload(o.data));
|
|
200
|
+
printResult(ctx, res);
|
|
201
|
+
});
|
|
202
|
+
events.command("media-played-percent").requiredOption("--data <payload>", "Percent payload JSON").action(async (o) => {
|
|
203
|
+
const ctx = getCtx();
|
|
204
|
+
const client = createClient(ctx.profile);
|
|
205
|
+
const res = await maybeWrite(ctx, client, "POST", `/media-bridge/v1/events/media/played/percent`, parseJsonPayload(o.data));
|
|
206
|
+
printResult(ctx, res);
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/media-bridge/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { createClient } from "../../core/http.js";
|
|
2
|
+
import { printResult } from "../../core/output.js";
|
|
3
|
+
import { encodePathSegment, parseNumberFlag } from "../crm/shared.js";
|
|
4
|
+
export function registerReporting(program, getCtx) {
|
|
5
|
+
const reporting = program.command("reporting").description("HubSpot Reporting & Analytics");
|
|
6
|
+
// Feedback submissions (available on all tiers)
|
|
7
|
+
const feedback = reporting.command("feedback").description("Feedback submissions");
|
|
8
|
+
feedback
|
|
9
|
+
.command("list")
|
|
10
|
+
.option("--limit <n>", "Max records", "100")
|
|
11
|
+
.option("--after <cursor>", "Paging cursor")
|
|
12
|
+
.action(async (opts) => {
|
|
13
|
+
const ctx = getCtx();
|
|
14
|
+
const client = createClient(ctx.profile);
|
|
15
|
+
const params = new URLSearchParams();
|
|
16
|
+
params.set("limit", String(parseNumberFlag(opts.limit, "--limit")));
|
|
17
|
+
if (opts.after)
|
|
18
|
+
params.set("after", opts.after);
|
|
19
|
+
const res = await client.request(`/crm/v3/objects/feedback_submissions?${params.toString()}`);
|
|
20
|
+
printResult(ctx, res);
|
|
21
|
+
});
|
|
22
|
+
feedback.command("get").argument("<submissionId>").action(async (submissionId) => {
|
|
23
|
+
const ctx = getCtx();
|
|
24
|
+
const client = createClient(ctx.profile);
|
|
25
|
+
const submissionIdSegment = encodePathSegment(submissionId, "submissionId");
|
|
26
|
+
const res = await client.request(`/crm/v3/objects/feedback_submissions/${submissionIdSegment}`);
|
|
27
|
+
printResult(ctx, res);
|
|
28
|
+
});
|
|
29
|
+
// Content analytics
|
|
30
|
+
const content = reporting.command("content").description("Content analytics");
|
|
31
|
+
content
|
|
32
|
+
.command("totals")
|
|
33
|
+
.description("Content performance totals")
|
|
34
|
+
.requiredOption("--type <type>", "Content type: landing-pages, standard-pages, blog-posts, listing-pages, knowledge-articles")
|
|
35
|
+
.option("--start <date>", "Start date (YYYY-MM-DD)")
|
|
36
|
+
.option("--end <date>", "End date (YYYY-MM-DD)")
|
|
37
|
+
.option("--period <period>", "Time period: total, daily, weekly, monthly", "total")
|
|
38
|
+
.action(async (opts) => {
|
|
39
|
+
const ctx = getCtx();
|
|
40
|
+
const client = createClient(ctx.profile);
|
|
41
|
+
const typeSegment = encodePathSegment(opts.type, "type");
|
|
42
|
+
const params = new URLSearchParams();
|
|
43
|
+
if (opts.start)
|
|
44
|
+
params.set("start", opts.start);
|
|
45
|
+
if (opts.end)
|
|
46
|
+
params.set("end", opts.end);
|
|
47
|
+
if (opts.period)
|
|
48
|
+
params.set("period", opts.period);
|
|
49
|
+
const qs = params.toString();
|
|
50
|
+
const res = await client.request(`/analytics/v2/reports/${typeSegment}/total${qs ? `?${qs}` : ""}`);
|
|
51
|
+
printResult(ctx, res);
|
|
52
|
+
});
|
|
53
|
+
// Email analytics
|
|
54
|
+
const email = reporting.command("email").description("Email analytics");
|
|
55
|
+
email
|
|
56
|
+
.command("stats")
|
|
57
|
+
.description("Email performance stats")
|
|
58
|
+
.option("--start <date>", "Start date (YYYY-MM-DD)")
|
|
59
|
+
.option("--end <date>", "End date (YYYY-MM-DD)")
|
|
60
|
+
.action(async (opts) => {
|
|
61
|
+
const ctx = getCtx();
|
|
62
|
+
const client = createClient(ctx.profile);
|
|
63
|
+
const params = new URLSearchParams();
|
|
64
|
+
if (opts.start)
|
|
65
|
+
params.set("startTimestamp", opts.start);
|
|
66
|
+
if (opts.end)
|
|
67
|
+
params.set("endTimestamp", opts.end);
|
|
68
|
+
const qs = params.toString();
|
|
69
|
+
const res = await client.request(`/marketing/v3/emails/statistics/list${qs ? `?${qs}` : ""}`);
|
|
70
|
+
printResult(ctx, res);
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/reporting/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { createClient } from "../../core/http.js";
|
|
2
|
+
import { printResult } from "../../core/output.js";
|
|
3
|
+
import { parseNumberFlag, appendOptional } from "../crm/shared.js";
|
|
4
|
+
export function registerCalling(sales, getCtx) {
|
|
5
|
+
const calling = sales.command("calling").description("HubSpot Calling");
|
|
6
|
+
calling
|
|
7
|
+
.command("settings")
|
|
8
|
+
.description("Get calling extension settings")
|
|
9
|
+
.action(async () => {
|
|
10
|
+
const ctx = getCtx();
|
|
11
|
+
const client = createClient(ctx.profile);
|
|
12
|
+
const res = await client.request("/crm/v3/extensions/calling/settings");
|
|
13
|
+
printResult(ctx, res);
|
|
14
|
+
});
|
|
15
|
+
const recordings = calling.command("recordings").description("Call recordings");
|
|
16
|
+
recordings
|
|
17
|
+
.command("list")
|
|
18
|
+
.option("--limit <n>", "Max records", "10")
|
|
19
|
+
.option("--after <cursor>", "Paging cursor")
|
|
20
|
+
.option("--properties <csv>", "Properties CSV")
|
|
21
|
+
.action(async (opts) => {
|
|
22
|
+
const ctx = getCtx();
|
|
23
|
+
const client = createClient(ctx.profile);
|
|
24
|
+
const params = new URLSearchParams();
|
|
25
|
+
params.set("limit", String(parseNumberFlag(opts.limit, "--limit")));
|
|
26
|
+
appendOptional(params, "after", opts.after);
|
|
27
|
+
appendOptional(params, "properties", opts.properties);
|
|
28
|
+
const res = await client.request(`/crm/v3/objects/calls?${params.toString()}`);
|
|
29
|
+
printResult(ctx, res);
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=calling.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calling.js","sourceRoot":"","sources":["../../../src/commands/sales/calling.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEnE,MAAM,UAAU,eAAe,CAAC,KAAc,EAAE,MAAwB;IACtE,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;IAExE,OAAO;SACJ,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,gCAAgC,CAAC;SAC7C,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC;QACxE,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;IAEL,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;IAEhF,UAAU;SACP,OAAO,CAAC,MAAM,CAAC;SACf,MAAM,CAAC,aAAa,EAAE,aAAa,EAAE,IAAI,CAAC;SAC1C,MAAM,CAAC,kBAAkB,EAAE,eAAe,CAAC;SAC3C,MAAM,CAAC,oBAAoB,EAAE,gBAAgB,CAAC;SAC9C,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;QACpE,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5C,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACtD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,yBAAyB,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC/E,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { registerSequences } from "./sequences.js";
|
|
2
|
+
import { registerMeetings } from "./meetings.js";
|
|
3
|
+
import { registerCalling } from "./calling.js";
|
|
4
|
+
export function registerSales(program, getCtx) {
|
|
5
|
+
const sales = program.command("sales").description("HubSpot Sales tools");
|
|
6
|
+
registerSequences(sales, getCtx);
|
|
7
|
+
registerMeetings(sales, getCtx);
|
|
8
|
+
registerCalling(sales, getCtx);
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/sales/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,UAAU,aAAa,CAAC,OAAgB,EAAE,MAAwB;IACtE,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC;IAC1E,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACjC,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAChC,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACjC,CAAC"}
|