import {
privateAppSetupUrl,
oauthConnectUrl,
DEFAULT_OAUTH_SCOPES,
HUBSPOT_CALLBACK_URL,
HUBSPOT_REQUIRED_HOSTS,
HUBSPOT_SCOPES,
} from './setup.ts'
/**
* Describe the HubSpot package, auth lanes, and export surface.
* @example
* import hubspot from 'kody:@kody/hubspot'
* const overview = await hubspot()
*/
export default async function hubspotOverview() {
return {
name: 'HubSpot',
auth: {
oauth: {
defaultIntegration: 'hubspot',
connectUrl: oauthConnectUrl('hubspot'),
callbackUrl: HUBSPOT_CALLBACK_URL,
scopes: HUBSPOT_SCOPES,
defaultScopes: [...DEFAULT_OAUTH_SCOPES],
scopeSeparator: ' ',
requiredHosts: [...HUBSPOT_REQUIRED_HOSTS],
},
privateApp: {
defaultSecret: 'hubspotPrivateAppToken',
setupUrl: privateAppSetupUrl('hubspotPrivateAppToken'),
requiredHosts: [...HUBSPOT_REQUIRED_HOSTS],
},
},
safety: 'Mutating operations require confirm: true and support dryRun: true.',
exports: {
setup: ['accounts', 'smoke-test', 'account'],
generic: ['objects', 'list-objects', 'get-object', 'search-objects'],
contacts: [
'list-contacts',
'get-contact',
'search-contacts',
'create-contact',
'update-contact',
],
companies: [
'list-companies',
'get-company',
'search-companies',
'create-company',
'update-company',
],
deals: ['list-deals', 'get-deal', 'search-deals', 'create-deal', 'update-deal'],
tickets: [
'list-tickets',
'get-ticket',
'search-tickets',
'create-ticket',
'update-ticket',
],
advanced: ['request'],
},
}
}