Skip to content

Built for people who want to own their automations. Join the waitlist for an invite.

Package listing

@kody/zoom

src/index.ts

88 lines · 2.9 KB · TypeScript
export type * from './types.ts'
export {
	DEFAULT_ZOOM_ACCOUNT_ID_SECRET,
	DEFAULT_ZOOM_API_BASE_URL,
	DEFAULT_ZOOM_API_HOST,
	DEFAULT_ZOOM_CLIENT_ID_SECRET,
	DEFAULT_ZOOM_INTEGRATION_NAME,
	DEFAULT_ZOOM_S2S_CLIENT_SECRET,
	SUGGESTED_ZOOM_OAUTH_SCOPES,
	SUGGESTED_ZOOM_S2S_SCOPES,
	ZOOM_ACCOUNT_ID_SETUP_URL,
	ZOOM_CLIENT_ID_SETUP_URL,
	ZOOM_MARKETPLACE_CREATE_URL,
	ZOOM_OAUTH_AUTHORIZE_URL,
	ZOOM_OAUTH_CONNECT_URL,
	ZOOM_OAUTH_DOCS_URL,
	ZOOM_OAUTH_TOKEN_URL,
	ZOOM_S2S_CLIENT_SECRET_SETUP_URL,
	ZOOM_S2S_DOCS_URL,
	ZoomRequestError,
	accounts,
	buildOauthConnectUrl,
	buildSecretSetupUrl,
	getCurrentUser,
	paginate,
	request,
	resolveZoomAuth,
} from './core.ts'

import {
	DEFAULT_ZOOM_ACCOUNT_ID_SECRET,
	DEFAULT_ZOOM_CLIENT_ID_SECRET,
	DEFAULT_ZOOM_INTEGRATION_NAME,
	DEFAULT_ZOOM_S2S_CLIENT_SECRET,
	ZOOM_ACCOUNT_ID_SETUP_URL,
	ZOOM_CLIENT_ID_SETUP_URL,
	ZOOM_OAUTH_CONNECT_URL,
	ZOOM_S2S_CLIENT_SECRET_SETUP_URL,
	accounts,
} from './core.ts'

/**
 * Describe the Zoom package and its documented export surface.
 */
export default async function describeZoomPackage() {
	return {
		package: '@kody/zoom',
		kodyId: 'zoom',
		publicUrl: 'https://kody.codes/@kody/zoom',
		purpose:
			'Zoom REST helpers for users, meetings, recordings, and webinars, using user OAuth or Server-to-Server secrets.',
		defaultIntegrationName: DEFAULT_ZOOM_INTEGRATION_NAME,
		oauthConnectUrl: ZOOM_OAUTH_CONNECT_URL,
		s2sSecrets: {
			accountId: DEFAULT_ZOOM_ACCOUNT_ID_SECRET,
			clientId: DEFAULT_ZOOM_CLIENT_ID_SECRET,
			clientSecret: DEFAULT_ZOOM_S2S_CLIENT_SECRET,
			accountIdSetupUrl: ZOOM_ACCOUNT_ID_SETUP_URL,
			clientIdSetupUrl: ZOOM_CLIENT_ID_SETUP_URL,
			clientSecretSetupUrl: ZOOM_S2S_CLIENT_SECRET_SETUP_URL,
		},
		accounts: accounts(),
		jobs: {
			'upcoming-meetings': 'Disabled by default. Lists upcoming meetings when enabled.',
		},
		exports: {
			request: 'Make a normalized Zoom REST request.',
			paginate: 'Follow Zoom next_page_token pagination.',
			getCurrentUser: 'Verify which Zoom identity the selected lane uses.',
			accounts: 'List OAuth vs Server-to-Server lanes and selection guidance.',
			'smoke-test': 'Local helper checks plus optional live /users/me read.',
			'users/list': 'List users on the account (admin / S2S).',
			'users/get': 'Fetch one user (default me).',
			'meetings/list': 'List meetings for a user.',
			'meetings/get': 'Fetch one meeting.',
			'meetings/create': 'Create a meeting (dryRun or confirm).',
			'meetings/update': 'Update a meeting (dryRun or confirm).',
			'meetings/delete': 'Delete a meeting (dryRun or confirm).',
			'recordings/list': 'List cloud recordings for a user.',
			'recordings/get': 'Fetch recordings for one meeting.',
			'webinars/list': 'List webinars for a user.',
			'webinars/get': 'Fetch one webinar.',
			'webinars/create': 'Create a webinar (dryRun or confirm).',
			'webinars/update': 'Update a webinar (dryRun or confirm).',
			'webinars/delete': 'Delete a webinar (dryRun or confirm).',
		},
	}
}