@hs-x/cli 0.3.6 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +126 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +58 -59
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/kit.d.ts.map +1 -1
- package/dist/cli/kit.js +1 -1
- package/dist/cli/kit.js.map +1 -1
- package/dist/cloudflare-auth.d.ts +19 -0
- package/dist/cloudflare-auth.d.ts.map +1 -1
- package/dist/cloudflare-auth.js +83 -2
- package/dist/cloudflare-auth.js.map +1 -1
- package/dist/cloudflare-oauth.d.ts.map +1 -1
- package/dist/cloudflare-oauth.js +18 -19
- package/dist/cloudflare-oauth.js.map +1 -1
- package/dist/cloudflare-scoped-resource.d.ts +41 -0
- package/dist/cloudflare-scoped-resource.d.ts.map +1 -0
- package/dist/cloudflare-scoped-resource.js +74 -0
- package/dist/cloudflare-scoped-resource.js.map +1 -0
- package/dist/command-catalog.d.ts +13 -0
- package/dist/command-catalog.d.ts.map +1 -0
- package/dist/command-catalog.js +50 -0
- package/dist/command-catalog.js.map +1 -0
- package/dist/commands/completion.d.ts.map +1 -1
- package/dist/commands/completion.js +287 -47
- package/dist/commands/completion.js.map +1 -1
- package/dist/commands/connect.d.ts.map +1 -1
- package/dist/commands/connect.js +274 -38
- package/dist/commands/connect.js.map +1 -1
- package/dist/commands/control-plane-read.d.ts +31 -3
- package/dist/commands/control-plane-read.d.ts.map +1 -1
- package/dist/commands/control-plane-read.js +136 -37
- package/dist/commands/control-plane-read.js.map +1 -1
- package/dist/commands/deploy-retry.d.ts +20 -0
- package/dist/commands/deploy-retry.d.ts.map +1 -0
- package/dist/commands/deploy-retry.js +106 -0
- package/dist/commands/deploy-retry.js.map +1 -0
- package/dist/commands/deploy.d.ts +16 -8
- package/dist/commands/deploy.d.ts.map +1 -1
- package/dist/commands/deploy.js +1027 -373
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/dev.d.ts +19 -1
- package/dist/commands/dev.d.ts.map +1 -1
- package/dist/commands/dev.js +1378 -88
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +27 -10
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/flags.d.ts +9 -4
- package/dist/commands/flags.d.ts.map +1 -1
- package/dist/commands/flags.js +208 -80
- package/dist/commands/flags.js.map +1 -1
- package/dist/commands/help-command.d.ts.map +1 -1
- package/dist/commands/help-command.js +177 -86
- package/dist/commands/help-command.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +5 -0
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/link.d.ts.map +1 -1
- package/dist/commands/link.js +74 -15
- package/dist/commands/link.js.map +1 -1
- package/dist/commands/project.d.ts +107 -0
- package/dist/commands/project.d.ts.map +1 -0
- package/dist/commands/project.js +586 -0
- package/dist/commands/project.js.map +1 -0
- package/dist/commands/secrets.d.ts +2 -2
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +15 -5
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/validate.d.ts +19 -0
- package/dist/commands/validate.d.ts.map +1 -1
- package/dist/commands/validate.js +26 -7
- package/dist/commands/validate.js.map +1 -1
- package/dist/constants.d.ts +1 -1
- package/dist/constants.js +1 -1
- package/dist/control-plane-tenant-provisioning.d.ts +24 -0
- package/dist/control-plane-tenant-provisioning.d.ts.map +1 -0
- package/dist/control-plane-tenant-provisioning.js +85 -0
- package/dist/control-plane-tenant-provisioning.js.map +1 -0
- package/dist/deploy-targets.d.ts +24 -0
- package/dist/deploy-targets.d.ts.map +1 -0
- package/dist/deploy-targets.js +38 -0
- package/dist/deploy-targets.js.map +1 -0
- package/dist/dev/account-selection.d.ts +16 -0
- package/dist/dev/account-selection.d.ts.map +1 -0
- package/dist/dev/account-selection.js +22 -0
- package/dist/dev/account-selection.js.map +1 -0
- package/dist/dev/browser-log-bridge.d.ts +32 -0
- package/dist/dev/browser-log-bridge.d.ts.map +1 -0
- package/dist/dev/browser-log-bridge.js +156 -0
- package/dist/dev/browser-log-bridge.js.map +1 -0
- package/dist/dev/compat-shim.d.ts +3 -3
- package/dist/dev/compat-shim.d.ts.map +1 -1
- package/dist/dev/compat-shim.js +29 -4
- package/dist/dev/compat-shim.js.map +1 -1
- package/dist/dev/component-selection.d.ts +25 -0
- package/dist/dev/component-selection.d.ts.map +1 -0
- package/dist/dev/component-selection.js +79 -0
- package/dist/dev/component-selection.js.map +1 -0
- package/dist/dev/console-capture.d.ts +18 -0
- package/dist/dev/console-capture.d.ts.map +1 -0
- package/dist/dev/console-capture.js +57 -0
- package/dist/dev/console-capture.js.map +1 -0
- package/dist/dev/event-bus.d.ts +1 -1
- package/dist/dev/event-bus.js +1 -1
- package/dist/dev/frontend-log-relay.d.ts +27 -0
- package/dist/dev/frontend-log-relay.d.ts.map +1 -0
- package/dist/dev/frontend-log-relay.js +102 -0
- package/dist/dev/frontend-log-relay.js.map +1 -0
- package/dist/dev/invoke.d.ts +3 -4
- package/dist/dev/invoke.d.ts.map +1 -1
- package/dist/dev/invoke.js +9 -4
- package/dist/dev/invoke.js.map +1 -1
- package/dist/dev/keyboard.d.ts +1 -0
- package/dist/dev/keyboard.d.ts.map +1 -1
- package/dist/dev/keyboard.js +9 -3
- package/dist/dev/keyboard.js.map +1 -1
- package/dist/dev/log-server.js +3 -0
- package/dist/dev/log-server.js.map +1 -1
- package/dist/dev/loopback-http-listener.d.ts +18 -0
- package/dist/dev/loopback-http-listener.d.ts.map +1 -0
- package/dist/dev/loopback-http-listener.js +91 -0
- package/dist/dev/loopback-http-listener.js.map +1 -0
- package/dist/dev/managed-session.d.ts +124 -0
- package/dist/dev/managed-session.d.ts.map +1 -0
- package/dist/dev/managed-session.js +597 -0
- package/dist/dev/managed-session.js.map +1 -0
- package/dist/dev/port-process.d.ts +21 -0
- package/dist/dev/port-process.d.ts.map +1 -0
- package/dist/dev/port-process.js +145 -0
- package/dist/dev/port-process.js.map +1 -0
- package/dist/dev/session-manager.d.ts +11 -1
- package/dist/dev/session-manager.d.ts.map +1 -1
- package/dist/dev/session-manager.js +65 -14
- package/dist/dev/session-manager.js.map +1 -1
- package/dist/dev/stream-event-format.d.ts +14 -0
- package/dist/dev/stream-event-format.d.ts.map +1 -0
- package/dist/dev/stream-event-format.js +262 -0
- package/dist/dev/stream-event-format.js.map +1 -0
- package/dist/dev/stream-filter.d.ts.map +1 -1
- package/dist/dev/stream-filter.js +16 -1
- package/dist/dev/stream-filter.js.map +1 -1
- package/dist/dev/stream-renderer.d.ts +4 -2
- package/dist/dev/stream-renderer.d.ts.map +1 -1
- package/dist/dev/stream-renderer.js +224 -84
- package/dist/dev/stream-renderer.js.map +1 -1
- package/dist/errors-registry.d.ts.map +1 -1
- package/dist/errors-registry.js +246 -0
- package/dist/errors-registry.js.map +1 -1
- package/dist/help.d.ts.map +1 -1
- package/dist/help.js +20 -3
- package/dist/help.js.map +1 -1
- package/dist/hubspot-app-logs.d.ts +38 -5
- package/dist/hubspot-app-logs.d.ts.map +1 -1
- package/dist/hubspot-app-logs.js +88 -17
- package/dist/hubspot-app-logs.js.map +1 -1
- package/dist/hubspot-auth.d.ts +19 -1
- package/dist/hubspot-auth.d.ts.map +1 -1
- package/dist/hubspot-auth.js +228 -83
- package/dist/hubspot-auth.js.map +1 -1
- package/dist/hubspot-developer-client.d.ts +87 -0
- package/dist/hubspot-developer-client.d.ts.map +1 -1
- package/dist/hubspot-developer-client.js +232 -1
- package/dist/hubspot-developer-client.js.map +1 -1
- package/dist/hubspot-project-archive.d.ts +21 -0
- package/dist/hubspot-project-archive.d.ts.map +1 -0
- package/dist/hubspot-project-archive.js +281 -0
- package/dist/hubspot-project-archive.js.map +1 -0
- package/dist/hubspot-project.d.ts +32 -0
- package/dist/hubspot-project.d.ts.map +1 -0
- package/dist/hubspot-project.js +269 -0
- package/dist/hubspot-project.js.map +1 -0
- package/dist/local-project-picker.js +1 -1
- package/dist/local-project-picker.js.map +1 -1
- package/dist/machine-artifact.d.ts +16 -0
- package/dist/machine-artifact.d.ts.map +1 -0
- package/dist/machine-artifact.js +18 -0
- package/dist/machine-artifact.js.map +1 -0
- package/dist/machine-id.d.ts +15 -0
- package/dist/machine-id.d.ts.map +1 -1
- package/dist/machine-id.js +53 -0
- package/dist/machine-id.js.map +1 -1
- package/dist/mutation-consent.d.ts +20 -0
- package/dist/mutation-consent.d.ts.map +1 -0
- package/dist/mutation-consent.js +9 -0
- package/dist/mutation-consent.js.map +1 -0
- package/dist/output-context.d.ts +3 -0
- package/dist/output-context.d.ts.map +1 -1
- package/dist/output-context.js +7 -1
- package/dist/output-context.js.map +1 -1
- package/dist/prompt.d.ts.map +1 -1
- package/dist/prompt.js +123 -48
- package/dist/prompt.js.map +1 -1
- package/dist/reporter/index.js +1 -1
- package/dist/reporter/index.js.map +1 -1
- package/dist/reporter/style.d.ts.map +1 -1
- package/dist/reporter/style.js +5 -0
- package/dist/reporter/style.js.map +1 -1
- package/dist/services/hubspot-dev-client.js +3 -0
- package/dist/services/hubspot-dev-client.js.map +1 -1
- package/dist/services/telemetry.d.ts +1 -2
- package/dist/services/telemetry.d.ts.map +1 -1
- package/dist/services/telemetry.js +1 -10
- package/dist/services/telemetry.js.map +1 -1
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/telemetry.js +1 -7
- package/dist/telemetry.js.map +1 -1
- package/dist/tenant-data-plane-provisioning.d.ts +35 -0
- package/dist/tenant-data-plane-provisioning.d.ts.map +1 -0
- package/dist/tenant-data-plane-provisioning.js +38 -0
- package/dist/tenant-data-plane-provisioning.js.map +1 -0
- package/package.json +14 -12
package/dist/hubspot-app-logs.js
CHANGED
|
@@ -2,6 +2,8 @@ import { readFile } from 'node:fs/promises';
|
|
|
2
2
|
import { join } from 'node:path';
|
|
3
3
|
import { createHubSpotDeveloperClient, } from '@hs-x/hubspot-cli';
|
|
4
4
|
import { discoverHubSpotAccounts } from './hubspot-auth.js';
|
|
5
|
+
import { resolveDirectHubSpotContext, } from './hubspot-developer-client.js';
|
|
6
|
+
import { detectLocalProjectMode, readHubSpotProjectDescriptor } from './hubspot-project.js';
|
|
5
7
|
/**
|
|
6
8
|
* HubSpot's per-app log store (`developers/logs/*`) — the half of the timeline
|
|
7
9
|
* Workers Logs cannot see: card/extension renders, production frontend
|
|
@@ -63,24 +65,66 @@ export function parseHubSpotLogSystemTypes(values) {
|
|
|
63
65
|
return { ok: true, systemTypes };
|
|
64
66
|
}
|
|
65
67
|
/**
|
|
66
|
-
* Resolve
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
|
|
68
|
+
* Resolve a `project logs` account and client once, then derive its app source
|
|
69
|
+
* without another config/default discovery pass. The returned account is safe
|
|
70
|
+
* to render; the credential remains encapsulated in `client`.
|
|
71
|
+
*/
|
|
72
|
+
export async function resolveDirectHubSpotLogsContext(input) {
|
|
73
|
+
const accountInput = {
|
|
74
|
+
argv: input.argv,
|
|
75
|
+
...(input.cwd ? { cwd: input.cwd } : {}),
|
|
76
|
+
...(input.env ? { env: input.env } : {}),
|
|
77
|
+
...(input.home ? { home: input.home } : {}),
|
|
78
|
+
};
|
|
79
|
+
const context = await resolveDirectHubSpotContext(accountInput);
|
|
80
|
+
const client = context.createClient();
|
|
81
|
+
const sourceResolution = await resolveHubSpotLogsSource({
|
|
82
|
+
cwd: input.cwd ?? process.cwd(),
|
|
83
|
+
...(input.appId ? { appId: input.appId } : {}),
|
|
84
|
+
...(input.env ? { env: input.env } : {}),
|
|
85
|
+
account: context.account,
|
|
86
|
+
client,
|
|
87
|
+
});
|
|
88
|
+
const resolution = sourceResolution.ok
|
|
89
|
+
? {
|
|
90
|
+
ok: true,
|
|
91
|
+
source: {
|
|
92
|
+
appId: sourceResolution.source.appId,
|
|
93
|
+
developerAccountId: sourceResolution.source.developerAccountId,
|
|
94
|
+
...(sourceResolution.source.projectName
|
|
95
|
+
? { projectName: sourceResolution.source.projectName }
|
|
96
|
+
: {}),
|
|
97
|
+
},
|
|
98
|
+
}
|
|
99
|
+
: sourceResolution;
|
|
100
|
+
return { account: context.account, resolution, client };
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Resolve the app-log source identity. Legacy callers discover their PAK from
|
|
104
|
+
* local state; `project logs` supplies a canonical account/client pair and
|
|
105
|
+
* bypasses that discovery entirely. No control plane or link is required.
|
|
70
106
|
*/
|
|
71
107
|
export async function resolveHubSpotLogsSource(input) {
|
|
72
108
|
const env = input.env ?? process.env;
|
|
73
109
|
const binding = await readHubSpotAppBinding(input.cwd);
|
|
74
|
-
|
|
75
|
-
if (appId === undefined) {
|
|
110
|
+
let appId = parsePositiveInt(input.appId ?? env.HSX_HUBSPOT_APP_ID) ?? binding?.appId;
|
|
111
|
+
if (appId === undefined && (await detectLocalProjectMode(input.cwd)) !== 'hubspot-direct') {
|
|
76
112
|
return {
|
|
77
113
|
ok: false,
|
|
78
114
|
reason: 'no HubSpot app binding — deploy once with `hs-x deploy` (which records .hs-x/hubspot.json) or pass --app-id',
|
|
79
115
|
};
|
|
80
116
|
}
|
|
81
|
-
let developerAccountId =
|
|
82
|
-
|
|
83
|
-
|
|
117
|
+
let developerAccountId = input.account
|
|
118
|
+
? parsePositiveInt(input.account.id)
|
|
119
|
+
: (parsePositiveInt(env.HSX_HUBSPOT_DEVELOPER_ACCOUNT_ID) ?? binding?.developerAccountId);
|
|
120
|
+
let personalAccessKey = input.account ? undefined : nonEmpty(env.HSX_HUBSPOT_PAK);
|
|
121
|
+
if (input.account && !input.client) {
|
|
122
|
+
return {
|
|
123
|
+
ok: false,
|
|
124
|
+
reason: 'the resolved HubSpot account was not paired with its credential-bound client',
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
if (!input.account && (developerAccountId === undefined || personalAccessKey === undefined)) {
|
|
84
128
|
const discovered = await discoverHubSpotAccounts(input.cwd);
|
|
85
129
|
const account = discovered?.accounts.find((candidate) => developerAccountId !== undefined && candidate.portalId === developerAccountId) ??
|
|
86
130
|
discovered?.accounts.find((candidate) => candidate.isDefault) ??
|
|
@@ -96,22 +140,53 @@ export async function resolveHubSpotLogsSource(input) {
|
|
|
96
140
|
reason: 'no HubSpot developer account id — set HSX_HUBSPOT_DEVELOPER_ACCOUNT_ID or configure a HubSpot CLI account (see `hs-x doctor`)',
|
|
97
141
|
};
|
|
98
142
|
}
|
|
99
|
-
if (personalAccessKey === undefined) {
|
|
143
|
+
if (!input.account && personalAccessKey === undefined) {
|
|
100
144
|
return {
|
|
101
145
|
ok: false,
|
|
102
146
|
reason: 'no HubSpot personal access key — set HSX_HUBSPOT_PAK or configure a HubSpot CLI account (see `hs-x doctor`)',
|
|
103
147
|
};
|
|
104
148
|
}
|
|
149
|
+
let projectName = binding?.projectName;
|
|
150
|
+
if (appId === undefined) {
|
|
151
|
+
try {
|
|
152
|
+
const descriptor = await readHubSpotProjectDescriptor(input.cwd);
|
|
153
|
+
projectName = descriptor.name;
|
|
154
|
+
const client = input.client ??
|
|
155
|
+
createHubSpotDeveloperClient({
|
|
156
|
+
developerAccountId,
|
|
157
|
+
personalAccessKey: personalAccessKey,
|
|
158
|
+
});
|
|
159
|
+
appId = await client.projects.resolveAppId({
|
|
160
|
+
projectName: descriptor.name,
|
|
161
|
+
...(descriptor.appUid ? { appUid: descriptor.appUid } : {}),
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
catch (cause) {
|
|
165
|
+
return {
|
|
166
|
+
ok: false,
|
|
167
|
+
reason: `could not resolve the HubSpot app from hsproject.json — ${cause instanceof Error ? cause.message : String(cause)}; pass --app-id to select it explicitly`,
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
}
|
|
105
171
|
return {
|
|
106
172
|
ok: true,
|
|
107
173
|
source: {
|
|
108
174
|
appId,
|
|
109
175
|
developerAccountId,
|
|
110
|
-
personalAccessKey,
|
|
111
|
-
...(
|
|
176
|
+
...(personalAccessKey ? { personalAccessKey } : {}),
|
|
177
|
+
...(projectName ? { projectName } : {}),
|
|
112
178
|
},
|
|
113
179
|
};
|
|
114
180
|
}
|
|
181
|
+
function createLegacyHubSpotLogsClient(source) {
|
|
182
|
+
if (!source.personalAccessKey) {
|
|
183
|
+
throw new Error('HubSpot app logs require the credential-bound client from the selected account resolution.');
|
|
184
|
+
}
|
|
185
|
+
return createHubSpotDeveloperClient({
|
|
186
|
+
developerAccountId: source.developerAccountId,
|
|
187
|
+
personalAccessKey: source.personalAccessKey,
|
|
188
|
+
});
|
|
189
|
+
}
|
|
115
190
|
/**
|
|
116
191
|
* One merged pull of the HubSpot app-log store: every system type queried in
|
|
117
192
|
* parallel (surface as much as possible by default; `--filter` narrows). With
|
|
@@ -121,11 +196,7 @@ export async function resolveHubSpotLogsSource(input) {
|
|
|
121
196
|
* `hs-x logs --trace` shows the actual log lines.
|
|
122
197
|
*/
|
|
123
198
|
export async function fetchHubSpotLogsPayload(input) {
|
|
124
|
-
const client = input.client ??
|
|
125
|
-
createHubSpotDeveloperClient({
|
|
126
|
-
developerAccountId: input.source.developerAccountId,
|
|
127
|
-
personalAccessKey: input.source.personalAccessKey,
|
|
128
|
-
});
|
|
199
|
+
const client = input.client ?? createLegacyHubSpotLogsClient(input.source);
|
|
129
200
|
const endTime = input.now ?? Date.now();
|
|
130
201
|
const startTime = endTime - input.sinceMinutes * 60_000;
|
|
131
202
|
const systemTypes = input.systemTypes ?? HUBSPOT_LOG_SYSTEM_TYPES;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hubspot-app-logs.js","sourceRoot":"","sources":["../src/hubspot-app-logs.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hubspot-app-logs.js","sourceRoot":"","sources":["../src/hubspot-app-logs.ts"],"names":[],"mappings":"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"}
|
package/dist/hubspot-auth.d.ts
CHANGED
|
@@ -7,14 +7,32 @@ export interface HubSpotAccount {
|
|
|
7
7
|
readonly portalId: number;
|
|
8
8
|
readonly personalAccessKey?: string;
|
|
9
9
|
readonly authType?: string;
|
|
10
|
+
readonly accountType?: string;
|
|
11
|
+
readonly parentAccountId?: number;
|
|
10
12
|
readonly isDefault: boolean;
|
|
11
13
|
}
|
|
12
14
|
export interface HubSpotAccountsDiscovery {
|
|
13
15
|
readonly source: string;
|
|
14
16
|
readonly defaultPortal?: string;
|
|
17
|
+
readonly defaultSource?: string;
|
|
15
18
|
readonly accounts: readonly HubSpotAccount[];
|
|
16
19
|
}
|
|
17
|
-
export
|
|
20
|
+
export type HubSpotAccountConfigErrorCode = 'HSX_E_HUBSPOT_ACCOUNT_CONFIG_NOT_FOUND' | 'HSX_E_HUBSPOT_ACCOUNT_CONFIG_UNREADABLE' | 'HSX_E_HUBSPOT_ACCOUNT_CONFIG_INVALID';
|
|
21
|
+
/**
|
|
22
|
+
* A hard failure for an explicitly selected HubSpot CLI config. Ambient config
|
|
23
|
+
* discovery is intentionally best-effort, but `--config` is an authority
|
|
24
|
+
* boundary: once selected, no other project/global config may be consulted.
|
|
25
|
+
*/
|
|
26
|
+
export declare class HubSpotAccountConfigError extends Error {
|
|
27
|
+
readonly code: HubSpotAccountConfigErrorCode;
|
|
28
|
+
readonly configPath: string;
|
|
29
|
+
readonly name = "HubSpotAccountConfigError";
|
|
30
|
+
constructor(code: HubSpotAccountConfigErrorCode, configPath: string, message: string);
|
|
31
|
+
}
|
|
32
|
+
export declare function discoverHubSpotAccounts(cwd: string, options?: {
|
|
33
|
+
readonly home?: string;
|
|
34
|
+
readonly configPath?: string;
|
|
35
|
+
}): Promise<HubSpotAccountsDiscovery | undefined>;
|
|
18
36
|
export declare const HUBSPOT_PAK_GENERATION_URL = "https://app.hubspot.com/l/personal-access-key";
|
|
19
37
|
export interface ExchangedPak {
|
|
20
38
|
readonly pak: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hubspot-auth.d.ts","sourceRoot":"","sources":["../src/hubspot-auth.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hubspot-auth.d.ts","sourceRoot":"","sources":["../src/hubspot-auth.ts"],"names":[],"mappings":"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"}
|
package/dist/hubspot-auth.js
CHANGED
|
@@ -3,14 +3,34 @@ import { homedir } from 'node:os';
|
|
|
3
3
|
import { dirname, join, resolve } from 'node:path';
|
|
4
4
|
import { HsxHttpClientRaw, HttpClient, HttpClientRequest, HttpClientResponse } from '@hs-x/types';
|
|
5
5
|
import { Cause, Effect, Exit, Option, Schema } from 'effect';
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
import { parse as parseYaml } from 'yaml';
|
|
7
|
+
/**
|
|
8
|
+
* A hard failure for an explicitly selected HubSpot CLI config. Ambient config
|
|
9
|
+
* discovery is intentionally best-effort, but `--config` is an authority
|
|
10
|
+
* boundary: once selected, no other project/global config may be consulted.
|
|
11
|
+
*/
|
|
12
|
+
export class HubSpotAccountConfigError extends Error {
|
|
13
|
+
code;
|
|
14
|
+
configPath;
|
|
15
|
+
name = 'HubSpotAccountConfigError';
|
|
16
|
+
constructor(code, configPath, message) {
|
|
17
|
+
super(message);
|
|
18
|
+
this.code = code;
|
|
19
|
+
this.configPath = configPath;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
export async function discoverHubSpotAccounts(cwd, options = {}) {
|
|
23
|
+
const home = options.home ?? homedir();
|
|
24
|
+
const explicitConfigPath = options.configPath ? resolve(cwd, options.configPath) : undefined;
|
|
25
|
+
if (explicitConfigPath) {
|
|
26
|
+
return readExplicitHubSpotAccounts(explicitConfigPath);
|
|
27
|
+
}
|
|
28
|
+
const globalConfigPaths = [
|
|
10
29
|
join(home, '.hscli', 'config.yml'),
|
|
11
30
|
join(home, '.hscli', 'hubspot.config.yml'),
|
|
12
31
|
join(home, 'hubspot.config.yml'),
|
|
13
32
|
];
|
|
33
|
+
const candidates = [...walkUp(cwd, 'hubspot.config.yml'), ...globalConfigPaths];
|
|
14
34
|
const seen = new Set();
|
|
15
35
|
for (const path of candidates) {
|
|
16
36
|
if (seen.has(path))
|
|
@@ -19,101 +39,226 @@ export async function discoverHubSpotAccounts(cwd) {
|
|
|
19
39
|
const content = await tryRead(path);
|
|
20
40
|
if (content === undefined)
|
|
21
41
|
continue;
|
|
22
|
-
|
|
42
|
+
let parsed;
|
|
43
|
+
try {
|
|
44
|
+
parsed = parseHubSpotConfig(content);
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
23
49
|
if (parsed.accounts.length > 0) {
|
|
24
|
-
|
|
50
|
+
const isGlobalConfig = globalConfigPaths.some((globalPath) => resolve(globalPath) === resolve(path));
|
|
51
|
+
if (!isGlobalConfig)
|
|
52
|
+
return { source: path, ...parsed };
|
|
53
|
+
const override = await readDefaultAccountOverride(cwd, parsed.accounts);
|
|
54
|
+
if (!override)
|
|
55
|
+
return { source: path, ...parsed };
|
|
56
|
+
return {
|
|
57
|
+
source: path,
|
|
58
|
+
defaultPortal: String(override.portalId),
|
|
59
|
+
defaultSource: override.source,
|
|
60
|
+
accounts: parsed.accounts.map((account) => ({
|
|
61
|
+
...account,
|
|
62
|
+
isDefault: account.portalId === override.portalId,
|
|
63
|
+
})),
|
|
64
|
+
};
|
|
25
65
|
}
|
|
26
66
|
}
|
|
27
67
|
return undefined;
|
|
28
68
|
}
|
|
29
|
-
function
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
69
|
+
async function readExplicitHubSpotAccounts(configPath) {
|
|
70
|
+
let content;
|
|
71
|
+
try {
|
|
72
|
+
content = await readFile(configPath, 'utf8');
|
|
73
|
+
}
|
|
74
|
+
catch (cause) {
|
|
75
|
+
const code = isNodeErrorCode(cause, 'ENOENT')
|
|
76
|
+
? 'HSX_E_HUBSPOT_ACCOUNT_CONFIG_NOT_FOUND'
|
|
77
|
+
: 'HSX_E_HUBSPOT_ACCOUNT_CONFIG_UNREADABLE';
|
|
78
|
+
throw new HubSpotAccountConfigError(code, configPath, code === 'HSX_E_HUBSPOT_ACCOUNT_CONFIG_NOT_FOUND'
|
|
79
|
+
? `Explicit HubSpot config ${configPath} does not exist.`
|
|
80
|
+
: `Explicit HubSpot config ${configPath} could not be read.`);
|
|
81
|
+
}
|
|
82
|
+
let parsed;
|
|
83
|
+
try {
|
|
84
|
+
parsed = parseHubSpotConfig(content);
|
|
85
|
+
}
|
|
86
|
+
catch {
|
|
87
|
+
throw new HubSpotAccountConfigError('HSX_E_HUBSPOT_ACCOUNT_CONFIG_INVALID', configPath, `Explicit HubSpot config ${configPath} is malformed or contains an invalid accounts/portals structure.`);
|
|
88
|
+
}
|
|
89
|
+
if (parsed.accounts.length === 0) {
|
|
90
|
+
throw new HubSpotAccountConfigError('HSX_E_HUBSPOT_ACCOUNT_CONFIG_INVALID', configPath, `Explicit HubSpot config ${configPath} is malformed or contains no valid accounts.`);
|
|
91
|
+
}
|
|
92
|
+
if (parsed.defaultPortal &&
|
|
93
|
+
!parsed.accounts.some((account) => account.name === parsed.defaultPortal || String(account.portalId) === parsed.defaultPortal)) {
|
|
94
|
+
throw new HubSpotAccountConfigError('HSX_E_HUBSPOT_ACCOUNT_CONFIG_INVALID', configPath, `Explicit HubSpot config ${configPath} selects unknown default account ${parsed.defaultPortal}.`);
|
|
95
|
+
}
|
|
96
|
+
return { source: configPath, ...parsed };
|
|
97
|
+
}
|
|
98
|
+
function isNodeErrorCode(cause, code) {
|
|
99
|
+
return (typeof cause === 'object' &&
|
|
100
|
+
cause !== null &&
|
|
101
|
+
'code' in cause &&
|
|
102
|
+
cause.code === code);
|
|
103
|
+
}
|
|
104
|
+
async function readDefaultAccountOverride(cwd, accounts) {
|
|
105
|
+
for (const path of walkUp(cwd, '.hsaccount')) {
|
|
106
|
+
const content = await tryRead(path);
|
|
107
|
+
if (content === undefined)
|
|
53
108
|
continue;
|
|
109
|
+
const portalId = Number.parseInt(content, 10);
|
|
110
|
+
if (!Number.isFinite(portalId)) {
|
|
111
|
+
throw new Error(`Error in ${path}: expected a HubSpot account id.`);
|
|
54
112
|
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
commit();
|
|
58
|
-
itemIndent = (itemMatch[1] ?? '').length;
|
|
59
|
-
current = {};
|
|
60
|
-
const firstField = (itemMatch[2] ?? '').match(/^(\w+)\s*:\s*(.*)$/);
|
|
61
|
-
if (firstField)
|
|
62
|
-
applyField(current, firstField[1] ?? '', firstField[2] ?? '', lines, i);
|
|
63
|
-
continue;
|
|
113
|
+
if (!accounts.some((account) => account.portalId === portalId)) {
|
|
114
|
+
throw new Error(`Error in ${path}: HubSpot account ${portalId} is not present in the active CLI config.`);
|
|
64
115
|
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
116
|
+
return { portalId, source: path };
|
|
117
|
+
}
|
|
118
|
+
return undefined;
|
|
119
|
+
}
|
|
120
|
+
function parseHubSpotConfig(yaml) {
|
|
121
|
+
let parsed;
|
|
122
|
+
try {
|
|
123
|
+
parsed = parseYaml(yaml, {
|
|
124
|
+
maxAliasCount: 0,
|
|
125
|
+
prettyErrors: false,
|
|
126
|
+
uniqueKeys: true,
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
catch {
|
|
130
|
+
throw new Error('HubSpot config is not valid YAML.');
|
|
131
|
+
}
|
|
132
|
+
if (!isYamlRecord(parsed)) {
|
|
133
|
+
throw new Error('HubSpot config must contain a YAML mapping.');
|
|
134
|
+
}
|
|
135
|
+
const containerKeys = ['accounts', 'portals'].filter((key) => Object.hasOwn(parsed, key));
|
|
136
|
+
if (containerKeys.length !== 1) {
|
|
137
|
+
throw new Error('HubSpot config must contain exactly one accounts or portals sequence.');
|
|
138
|
+
}
|
|
139
|
+
const rawAccounts = parsed[containerKeys[0]];
|
|
140
|
+
if (!Array.isArray(rawAccounts)) {
|
|
141
|
+
throw new Error('HubSpot config accounts or portals must be a sequence.');
|
|
142
|
+
}
|
|
143
|
+
const defaultSelectors = ['defaultPortal', 'defaultAccount', 'defaultHubId']
|
|
144
|
+
.filter((key) => Object.hasOwn(parsed, key) && parsed[key] !== null)
|
|
145
|
+
.map((key) => readHubSpotSelector(parsed[key], key));
|
|
146
|
+
const uniqueDefaultSelectors = [...new Set(defaultSelectors)];
|
|
147
|
+
if (uniqueDefaultSelectors.length > 1) {
|
|
148
|
+
throw new Error('HubSpot config contains conflicting default account selectors.');
|
|
149
|
+
}
|
|
150
|
+
const defaultPortal = uniqueDefaultSelectors[0];
|
|
151
|
+
const accounts = rawAccounts.map((value, index) => parseHubSpotAccount(value, index));
|
|
152
|
+
const accountNames = new Set();
|
|
153
|
+
const accountIds = new Set();
|
|
154
|
+
for (const account of accounts) {
|
|
155
|
+
if (accountNames.has(account.name)) {
|
|
156
|
+
throw new Error('HubSpot config contains duplicate account names.');
|
|
76
157
|
}
|
|
158
|
+
if (accountIds.has(account.portalId)) {
|
|
159
|
+
throw new Error('HubSpot config contains duplicate account ids.');
|
|
160
|
+
}
|
|
161
|
+
accountNames.add(account.name);
|
|
162
|
+
accountIds.add(account.portalId);
|
|
77
163
|
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
164
|
+
for (const account of accounts) {
|
|
165
|
+
const numericNameOwner = accounts.find((candidate) => candidate !== account && String(candidate.portalId) === account.name);
|
|
166
|
+
if (numericNameOwner) {
|
|
167
|
+
throw new Error('HubSpot config contains an account name that conflicts with another id.');
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
if (defaultPortal) {
|
|
171
|
+
const matches = accounts.filter((account) => account.name === defaultPortal || String(account.portalId) === defaultPortal);
|
|
172
|
+
if (matches.length > 1) {
|
|
173
|
+
throw new Error('HubSpot config default account selector is ambiguous.');
|
|
174
|
+
}
|
|
175
|
+
for (let index = 0; index < accounts.length; index += 1) {
|
|
176
|
+
const account = accounts[index];
|
|
177
|
+
if (account && matches[0] === account)
|
|
178
|
+
accounts[index] = { ...account, isDefault: true };
|
|
85
179
|
}
|
|
86
180
|
}
|
|
87
181
|
return { ...(defaultPortal ? { defaultPortal } : {}), accounts };
|
|
88
182
|
}
|
|
89
|
-
function
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
const baseIndent = ((lines[index] ?? '').match(/^(\s*)/)?.[1]?.length ?? 0) + 1;
|
|
93
|
-
const parts = [];
|
|
94
|
-
for (let j = index + 1; j < lines.length; j++) {
|
|
95
|
-
const cont = lines[j] ?? '';
|
|
96
|
-
if (cont.trim() === '')
|
|
97
|
-
continue;
|
|
98
|
-
const contIndent = (cont.match(/^(\s*)/)?.[1] ?? '').length;
|
|
99
|
-
if (contIndent < baseIndent)
|
|
100
|
-
break;
|
|
101
|
-
parts.push(cont.trim());
|
|
102
|
-
}
|
|
103
|
-
value = parts.join('');
|
|
183
|
+
function parseHubSpotAccount(value, index) {
|
|
184
|
+
if (!isYamlRecord(value)) {
|
|
185
|
+
throw new Error(`HubSpot config account ${index + 1} must be a mapping.`);
|
|
104
186
|
}
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
187
|
+
const name = readRequiredHubSpotString(value.name, `account ${index + 1} name`);
|
|
188
|
+
const portalId = readAliasedHubSpotInteger(value, ['portalId', 'accountId', 'hubId'], `account ${index + 1} id`);
|
|
189
|
+
if (portalId === undefined)
|
|
190
|
+
throw new Error(`HubSpot config account ${index + 1} id is required.`);
|
|
191
|
+
const personalAccessKey = readOptionalHubSpotString(value.personalAccessKey, `account ${index + 1} personalAccessKey`);
|
|
192
|
+
const authType = readOptionalHubSpotString(value.authType, `account ${index + 1} authType`);
|
|
193
|
+
const accountType = readAliasedOptionalHubSpotString(value, ['accountType', 'sandboxAccountType'], `account ${index + 1} accountType`);
|
|
194
|
+
const parentAccountId = readAliasedHubSpotInteger(value, ['parentAccountId', 'parentPortalId'], `account ${index + 1} parent id`, true);
|
|
195
|
+
return {
|
|
196
|
+
name,
|
|
197
|
+
portalId,
|
|
198
|
+
...(personalAccessKey ? { personalAccessKey } : {}),
|
|
199
|
+
...(authType ? { authType } : {}),
|
|
200
|
+
...(accountType ? { accountType } : {}),
|
|
201
|
+
...(parentAccountId !== undefined ? { parentAccountId } : {}),
|
|
202
|
+
isDefault: false,
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
function readHubSpotSelector(value, field) {
|
|
206
|
+
if (typeof value === 'number' && Number.isSafeInteger(value) && value > 0)
|
|
207
|
+
return String(value);
|
|
208
|
+
if (typeof value === 'string' && value.trim().length > 0)
|
|
209
|
+
return value.trim();
|
|
210
|
+
throw new Error(`HubSpot config ${field} must be a non-empty account name or id.`);
|
|
211
|
+
}
|
|
212
|
+
function readRequiredHubSpotString(value, field) {
|
|
213
|
+
const result = readOptionalHubSpotString(value, field);
|
|
214
|
+
if (result)
|
|
215
|
+
return result;
|
|
216
|
+
throw new Error(`HubSpot config ${field} must be a non-empty string.`);
|
|
217
|
+
}
|
|
218
|
+
function readOptionalHubSpotString(value, field) {
|
|
219
|
+
if (value === undefined || value === null || value === '')
|
|
220
|
+
return undefined;
|
|
221
|
+
if (typeof value !== 'string')
|
|
222
|
+
throw new Error(`HubSpot config ${field} must be a string.`);
|
|
223
|
+
const result = value.trim();
|
|
224
|
+
return result.length > 0 ? result : undefined;
|
|
225
|
+
}
|
|
226
|
+
function readAliasedOptionalHubSpotString(value, keys, field) {
|
|
227
|
+
const supplied = keys
|
|
228
|
+
.filter((key) => Object.hasOwn(value, key) && value[key] !== null)
|
|
229
|
+
.map((key) => readOptionalHubSpotString(value[key], field))
|
|
230
|
+
.filter((item) => item !== undefined);
|
|
231
|
+
const unique = [...new Set(supplied)];
|
|
232
|
+
if (unique.length > 1)
|
|
233
|
+
throw new Error(`HubSpot config ${field} aliases conflict.`);
|
|
234
|
+
return unique[0];
|
|
235
|
+
}
|
|
236
|
+
function readAliasedHubSpotInteger(value, keys, field, optional = false) {
|
|
237
|
+
const supplied = keys
|
|
238
|
+
.filter((key) => Object.hasOwn(value, key) && value[key] !== null)
|
|
239
|
+
.map((key) => readHubSpotInteger(value[key], field));
|
|
240
|
+
const unique = [...new Set(supplied)];
|
|
241
|
+
if (unique.length > 1)
|
|
242
|
+
throw new Error(`HubSpot config ${field} aliases conflict.`);
|
|
243
|
+
if (unique[0] !== undefined)
|
|
244
|
+
return unique[0];
|
|
245
|
+
if (optional)
|
|
246
|
+
return undefined;
|
|
247
|
+
throw new Error(`HubSpot config ${field} is required.`);
|
|
248
|
+
}
|
|
249
|
+
function readHubSpotInteger(value, field) {
|
|
250
|
+
const parsed = typeof value === 'number'
|
|
251
|
+
? value
|
|
252
|
+
: typeof value === 'string' && /^\d+$/u.test(value.trim())
|
|
253
|
+
? Number(value.trim())
|
|
254
|
+
: Number.NaN;
|
|
255
|
+
if (!Number.isSafeInteger(parsed) || parsed <= 0) {
|
|
256
|
+
throw new Error(`HubSpot config ${field} must be a positive integer.`);
|
|
112
257
|
}
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
258
|
+
return parsed;
|
|
259
|
+
}
|
|
260
|
+
function isYamlRecord(value) {
|
|
261
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
117
262
|
}
|
|
118
263
|
export const HUBSPOT_PAK_GENERATION_URL = 'https://app.hubspot.com/l/personal-access-key';
|
|
119
264
|
const HubSpotPakExchangeBody = Schema.Record({ key: Schema.String, value: Schema.Unknown });
|