export type * from './types.ts' export { 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_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_CLIENT_ID_SECRET, DEFAULT_ZOOM_INTEGRATION_NAME, DEFAULT_ZOOM_S2S_CLIENT_SECRET, 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, s2sAccountId: 'Pass accountId (the plain Zoom account ID, not a secret) on every Server-to-Server call.', s2sSecrets: { clientId: DEFAULT_ZOOM_CLIENT_ID_SECRET, clientSecret: DEFAULT_ZOOM_S2S_CLIENT_SECRET, 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).', }, } }