/** * Describe the Origin package, required Origin App setup, and export map. * * Use this when you need setup guidance before calling repos, pulls, or request. * * @returns Package name, auth secret/storage, and export purposes. * @example * import describeOriginPackage from 'kody:@kentcdodds/origin' * const info = await describeOriginPackage() * // => { name: '@kentcdodds/origin', kodyId: 'origin', auth: { secret: 'originAppPrivateKey', ... }, exports: [...] } */ export default async function describeOriginPackage() { return { name: '@kentcdodds/origin', kodyId: 'origin', auth: { secret: 'originAppPrivateKey', storage: ['originAppId', 'originInstallationId'], algorithm: 'EdDSA', docs: 'coding_guide_get({ guide: "provider_origin" })', }, exports: [ { name: '.', purpose: 'Describe this package and required setup.' }, { name: './rate-limit', purpose: 'Zero-cost Origin rate-limit smoke test (app JWT).', }, { name: './auth', purpose: 'Sign an app JWT and mint an installation token (no token value).', }, { name: './installations', purpose: 'List app installations and installation-visible repos.', }, { name: './repos', purpose: 'List or get Origin repositories.' }, { name: './pulls', purpose: 'List or get Origin pull requests.' }, { name: './request', purpose: 'Raw authenticated request to any /v1/origin path.', }, { name: './migrate-from-values', purpose: 'Copy leftover originAppId / originInstallationId values into package storage.', }, ], } }