// pkg/dist-src/index.js import { getUserAgent } from "universal-user-agent"; import { request } from "@octokit/request"; // pkg/dist-src/auth.js import { createOAuthUserAuth } from "@octokit/auth-oauth-user"; async function auth(state, authOptions) { if (authOptions.type === "oauth-app") { return { type: "oauth-app", clientId: state.clientId, clientSecret: state.clientSecret, clientType: state.clientType, headers: { authorization: `basic ${btoa( `${state.clientId}:${state.clientSecret}` )}` } }; } if ("factory" in authOptions) { const { type, ...options } = { ...authOptions, ...state }; return authOptions.factory(options); } const common = { clientId: state.clientId, clientSecret: state.clientSecret, request: state.request, ...authOptions }; const userAuth = state.clientType === "oauth-app" ? await createOAuthUserAuth({ ...common, clientType: state.clientType }) : await createOAuthUserAuth({ ...common, clientType: state.clientType }); return userAuth(); } // pkg/dist-src/hook.js import { requiresBasicAuth } from "@octokit/auth-oauth-user"; async function hook(state, request2, route, parameters) { let endpoint = request2.endpoint.merge( route, parameters ); if (/\/login\/(oauth\/access_token|device\/code)$/.test(endpoint.url)) { return request2(endpoint); } if (state.clientType === "github-app" && !requiresBasicAuth(endpoint.url)) { throw new Error( `[@octokit/auth-oauth-app] GitHub Apps cannot use their client ID/secret for basic authentication for endpoints other than "/applications/{client_id}/**". "${endpoint.method} ${endpoint.url}" is not supported.` ); } const credentials = btoa(`${state.clientId}:${state.clientSecret}`); endpoint.headers.authorization = `basic ${credentials}`; try { return await request2(endpoint); } catch (error) { if (error.status !== 401) throw error; error.message = `[@octokit/auth-oauth-app] "${endpoint.method} ${endpoint.url}" does not support clientId/clientSecret basic authentication.`; throw error; } } // pkg/dist-src/version.js var VERSION = "0.0.0-development"; // pkg/dist-src/index.js import { createOAuthUserAuth as createOAuthUserAuth2 } from "@octokit/auth-oauth-user"; function createOAuthAppAuth(options) { const state = Object.assign( { request: request.defaults({ headers: { "user-agent": `octokit-auth-oauth-app.js/${VERSION} ${getUserAgent()}` } }), clientType: "oauth-app" }, options ); return Object.assign(auth.bind(null, state), { hook: hook.bind(null, state) }); } export { createOAuthAppAuth, createOAuthUserAuth2 as createOAuthUserAuth };