import type { IntegrationScopeRequirement } from "../../automation/integrations" /** * Builds OAuth and personal-access-token alternatives for one Airtable scope. * * @param requiredScope - Least-privilege provider scope expression. */ export function airtableAccountRequirement( requiredScope: IntegrationScopeRequirement, ) { return { connections: [ { connectionMethodId: "oauth", requiredScope }, { connectionMethodId: "personal-access-token", requiredScope }, ], } as const } /** * Builds the personal-access-token-only requirement for Airtable Sync CSV. * * @param requiredScope - Least-privilege provider scope expression. */ export function airtablePersonalAccessTokenRequirement( requiredScope: IntegrationScopeRequirement, ) { return { connections: [ { connectionMethodId: "personal-access-token", requiredScope }, ], } as const } /** * Encodes one provider path segment without changing Airtable's path shape. * * @param value - Provider identifier or name. */ export function airtablePathSegment(value: string) { return encodeURIComponent(value) }