{
  "version": 3,
  "sources": ["../dist-src/index.js", "../dist-src/version.js", "../dist-src/get-authentication.js", "../dist-src/auth.js", "../dist-src/hook.js", "../dist-src/requires-basic-auth.js"],
  "sourcesContent": ["import { getUserAgent } from \"universal-user-agent\";\nimport { request as octokitRequest } from \"@octokit/request\";\nimport { VERSION } from \"./version\";\nimport { auth } from \"./auth\";\nimport { hook } from \"./hook\";\nimport { requiresBasicAuth } from \"./requires-basic-auth\";\nfunction createOAuthUserAuth({\n  clientId,\n  clientSecret,\n  clientType = \"oauth-app\",\n  request = octokitRequest.defaults({\n    headers: {\n      \"user-agent\": `octokit-auth-oauth-app.js/${VERSION} ${getUserAgent()}`\n    }\n  }),\n  onTokenCreated,\n  ...strategyOptions\n}) {\n  const state = Object.assign({\n    clientType,\n    clientId,\n    clientSecret,\n    onTokenCreated,\n    strategyOptions,\n    request\n  });\n  return Object.assign(auth.bind(null, state), {\n    // @ts-expect-error not worth the extra code needed to appease TS\n    hook: hook.bind(null, state)\n  });\n}\ncreateOAuthUserAuth.VERSION = VERSION;\nexport {\n  createOAuthUserAuth,\n  requiresBasicAuth\n};\n", "const VERSION = \"4.0.1\";\nexport {\n  VERSION\n};\n", "import { createOAuthDeviceAuth } from \"@octokit/auth-oauth-device\";\nimport { exchangeWebFlowCode } from \"@octokit/oauth-methods\";\nasync function getAuthentication(state) {\n  if (\"code\" in state.strategyOptions) {\n    const { authentication } = await exchangeWebFlowCode({\n      clientId: state.clientId,\n      clientSecret: state.clientSecret,\n      clientType: state.clientType,\n      onTokenCreated: state.onTokenCreated,\n      ...state.strategyOptions,\n      request: state.request\n    });\n    return {\n      type: \"token\",\n      tokenType: \"oauth\",\n      ...authentication\n    };\n  }\n  if (\"onVerification\" in state.strategyOptions) {\n    const deviceAuth = createOAuthDeviceAuth({\n      clientType: state.clientType,\n      clientId: state.clientId,\n      onTokenCreated: state.onTokenCreated,\n      ...state.strategyOptions,\n      request: state.request\n    });\n    const authentication = await deviceAuth({\n      type: \"oauth\"\n    });\n    return {\n      clientSecret: state.clientSecret,\n      ...authentication\n    };\n  }\n  if (\"token\" in state.strategyOptions) {\n    return {\n      type: \"token\",\n      tokenType: \"oauth\",\n      clientId: state.clientId,\n      clientSecret: state.clientSecret,\n      clientType: state.clientType,\n      onTokenCreated: state.onTokenCreated,\n      ...state.strategyOptions\n    };\n  }\n  throw new Error(\"[@octokit/auth-oauth-user] Invalid strategy options\");\n}\nexport {\n  getAuthentication\n};\n", "import { getAuthentication } from \"./get-authentication\";\nimport {\n  checkToken,\n  deleteAuthorization,\n  deleteToken,\n  refreshToken,\n  resetToken\n} from \"@octokit/oauth-methods\";\nasync function auth(state, options = {}) {\n  if (!state.authentication) {\n    state.authentication = state.clientType === \"oauth-app\" ? await getAuthentication(state) : await getAuthentication(state);\n  }\n  if (state.authentication.invalid) {\n    throw new Error(\"[@octokit/auth-oauth-user] Token is invalid\");\n  }\n  const currentAuthentication = state.authentication;\n  if (\"expiresAt\" in currentAuthentication) {\n    if (options.type === \"refresh\" || new Date(currentAuthentication.expiresAt) < /* @__PURE__ */ new Date()) {\n      const { authentication } = await refreshToken({\n        clientType: \"github-app\",\n        clientId: state.clientId,\n        clientSecret: state.clientSecret,\n        refreshToken: currentAuthentication.refreshToken,\n        request: state.request\n      });\n      state.authentication = {\n        tokenType: \"oauth\",\n        type: \"token\",\n        ...authentication\n      };\n    }\n  }\n  if (options.type === \"refresh\") {\n    if (state.clientType === \"oauth-app\") {\n      throw new Error(\n        \"[@octokit/auth-oauth-user] OAuth Apps do not support expiring tokens\"\n      );\n    }\n    if (!currentAuthentication.hasOwnProperty(\"expiresAt\")) {\n      throw new Error(\"[@octokit/auth-oauth-user] Refresh token missing\");\n    }\n    await state.onTokenCreated?.(state.authentication, {\n      type: options.type\n    });\n  }\n  if (options.type === \"check\" || options.type === \"reset\") {\n    const method = options.type === \"check\" ? checkToken : resetToken;\n    try {\n      const { authentication } = await method({\n        // @ts-expect-error making TS happy would require unnecessary code so no\n        clientType: state.clientType,\n        clientId: state.clientId,\n        clientSecret: state.clientSecret,\n        token: state.authentication.token,\n        request: state.request\n      });\n      state.authentication = {\n        tokenType: \"oauth\",\n        type: \"token\",\n        // @ts-expect-error TBD\n        ...authentication\n      };\n      if (options.type === \"reset\") {\n        await state.onTokenCreated?.(state.authentication, {\n          type: options.type\n        });\n      }\n      return state.authentication;\n    } catch (error) {\n      if (error.status === 404) {\n        error.message = \"[@octokit/auth-oauth-user] Token is invalid\";\n        state.authentication.invalid = true;\n      }\n      throw error;\n    }\n  }\n  if (options.type === \"delete\" || options.type === \"deleteAuthorization\") {\n    const method = options.type === \"delete\" ? deleteToken : deleteAuthorization;\n    try {\n      await method({\n        // @ts-expect-error making TS happy would require unnecessary code so no\n        clientType: state.clientType,\n        clientId: state.clientId,\n        clientSecret: state.clientSecret,\n        token: state.authentication.token,\n        request: state.request\n      });\n    } catch (error) {\n      if (error.status !== 404)\n        throw error;\n    }\n    state.authentication.invalid = true;\n    return state.authentication;\n  }\n  return state.authentication;\n}\nexport {\n  auth\n};\n", "import btoa from \"btoa-lite\";\nimport { auth } from \"./auth\";\nimport { requiresBasicAuth } from \"./requires-basic-auth\";\nasync function hook(state, request, route, parameters = {}) {\n  const endpoint = request.endpoint.merge(\n    route,\n    parameters\n  );\n  if (/\\/login\\/(oauth\\/access_token|device\\/code)$/.test(endpoint.url)) {\n    return request(endpoint);\n  }\n  if (requiresBasicAuth(endpoint.url)) {\n    const credentials = btoa(`${state.clientId}:${state.clientSecret}`);\n    endpoint.headers.authorization = `basic ${credentials}`;\n    return request(endpoint);\n  }\n  const { token } = state.clientType === \"oauth-app\" ? await auth({ ...state, request }) : await auth({ ...state, request });\n  endpoint.headers.authorization = \"token \" + token;\n  return request(endpoint);\n}\nexport {\n  hook\n};\n", "const ROUTES_REQUIRING_BASIC_AUTH = /\\/applications\\/[^/]+\\/(token|grant)s?/;\nfunction requiresBasicAuth(url) {\n  return url && ROUTES_REQUIRING_BASIC_AUTH.test(url);\n}\nexport {\n  requiresBasicAuth\n};\n"],
  "mappings": "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",
  "names": ["import_oauth_methods", "btoa", "octokitRequest"]
}
