{"version":3,"sources":["../src/auth.ts","../src/log.ts"],"sourcesContent":["/* eslint-disable camelcase */\nimport { createInterface } from 'node:readline/promises';\n\nimport { set } from '@lskjs/algos';\nimport { getLskConfig } from '@lskjs/cli-utils';\nimport { Err } from '@lskjs/err';\nimport { jsonToFile } from '@lskjs/stringify';\nimport { OAuth2Client } from 'google-auth-library';\nimport { google } from 'googleapis';\n\nimport { log } from './log';\n\nconst SCOPES = ['https://www.googleapis.com/auth/drive.readonly'];\n\nexport const setLskConfig = async (key, value, { path }: any = {}) => {\n  const cwd = process.cwd();\n  // eslint-disable-next-line no-param-reassign\n  if (!path) path = `${cwd}/.lskjs.js`;\n  let config = {};\n  log.debug(`${path}`, key, value);\n  try {\n    // eslint-disable-next-line import/no-dynamic-require\n    config = require(`${path}`);\n  } catch (err) {\n    log.error('[setLskConfig]', err);\n    config = {};\n  }\n  set(config, key, value);\n  await jsonToFile(`${path}`, config, { type: 'js' });\n};\n\n// 1. open google cloud\n// 2. create app with oAutg 2.0 Client ID for Desktop\n// 3. copy creds in .lskjs.js .getspreadsheet.app\n\nexport async function auth2(): Promise<OAuth2Client> {\n  const lskjsrc = getLskConfig();\n  if (!lskjsrc?.getspreadsheet) throw new Err('!lskjsrc.getspreadsheet');\n  if (!lskjsrc?.getspreadsheet?.app) {\n    throw new Err('!lskjsrc.getspreadsheet.app');\n  }\n  const { client_secret, client_id, redirect_uris } = lskjsrc?.getspreadsheet?.app || {};\n\n  const oAuth2Client = new google.auth.OAuth2(client_id, client_secret, redirect_uris[0]);\n  let token = lskjsrc?.getspreadsheet?.token;\n  if (!token) {\n    const authUrl = oAuth2Client.generateAuthUrl({\n      access_type: 'offline',\n      scope: SCOPES,\n    });\n    log.warn('Authorize this app by visiting this url:\\n\\n', authUrl, '\\n\\n');\n    const rl = createInterface({\n      input: process.stdin,\n      output: process.stdout,\n    });\n    const code = await rl.question('Enter the code from that page here: ');\n    const { tokens } = await oAuth2Client.getToken(code);\n    token = tokens;\n    await setLskConfig('getspreadsheet.token', token, { path: lskjsrc.path });\n    const cwd = process.cwd();\n    log.debug('Token stored to', `${cwd}/.lskjs.js`);\n  }\n  oAuth2Client.setCredentials(token);\n  return oAuth2Client;\n}\n\nexport default auth2;\n","/* eslint-disable no-console */\nimport { Logger } from '@lskjs/log';\n\nexport const log = new Logger({ ns: 'getspreadsheet' });\n\nexport default log;\n"],"mappings":"oUACA,OAASA,mBAAAA,MAAuB,yBAEhC,OAASC,OAAAA,MAAW,eACpB,OAASC,gBAAAA,MAAoB,mBAC7B,OAASC,OAAAA,MAAW,aACpB,OAASC,cAAAA,MAAkB,mBAE3B,OAASC,UAAAA,MAAc,aCPvB,OAASC,UAAAA,MAAc,aAEhB,IAAMC,EAAM,IAAID,EAAO,CAAEE,GAAI,gBAAiB,CAAA,EDSrD,IAAMC,EAAS,CAAC,kDAEHC,EAAeC,EAAA,MAAOC,EAAKC,EAAO,CAAEC,KAAAA,CAAI,EAAU,CAAC,IAAC,CAC/D,IAAMC,EAAMC,QAAQD,IAAG,EAElBD,IAAMA,EAAO,GAAGC,CAAAA,cACrB,IAAIE,EAAS,CAAC,EACdC,EAAIC,MAAM,GAAGL,CAAAA,GAAQF,EAAKC,CAAAA,EAC1B,GAAI,CAEFI,EAASG,EAAQ,GAAGN,CAAAA,EAAM,CAC5B,OAASO,EAAK,CACZH,EAAII,MAAM,iBAAkBD,CAAAA,EAC5BJ,EAAS,CAAC,CACZ,CACAM,EAAIN,EAAQL,EAAKC,CAAAA,EACjB,MAAMW,EAAW,GAAGV,CAAAA,GAAQG,EAAQ,CAAEQ,KAAM,IAAK,CAAA,CACnD,EAf4B,gBAqB5B,eAAsBC,GAAAA,CACpB,IAAMC,EAAUC,EAAAA,EAChB,GAAI,CAACD,GAASE,eAAgB,MAAM,IAAIC,EAAI,yBAAA,EAC5C,GAAI,CAACH,GAASE,gBAAgBE,IAC5B,MAAM,IAAID,EAAI,6BAAA,EAEhB,GAAM,CAAEE,cAAAA,EAAeC,UAAAA,EAAWC,cAAAA,CAAa,EAAKP,GAASE,gBAAgBE,KAAO,CAAC,EAE/EI,EAAe,IAAIC,EAAOC,KAAKC,OAAOL,EAAWD,EAAeE,EAAc,CAAA,CAAE,EAClFK,EAAQZ,GAASE,gBAAgBU,MACrC,GAAI,CAACA,EAAO,CACV,IAAMC,EAAUL,EAAaM,gBAAgB,CAC3CC,YAAa,UACbC,MAAOlC,CACT,CAAA,EACAS,EAAI0B,KAAK;;EAAgDJ,EAAS;;CAAA,EAKlE,IAAMK,EAAO,MAJFC,EAAgB,CACzBC,MAAO/B,QAAQgC,MACfC,OAAQjC,QAAQkC,MAClB,CAAA,EACsBC,SAAS,sCAAA,EACzB,CAAEC,OAAAA,CAAM,EAAK,MAAMjB,EAAakB,SAASR,CAAAA,EAC/CN,EAAQa,EACR,MAAM1C,EAAa,uBAAwB6B,EAAO,CAAEzB,KAAMa,EAAQb,IAAK,CAAA,EACvE,IAAMC,EAAMC,QAAQD,IAAG,EACvBG,EAAIC,MAAM,kBAAmB,GAAGJ,CAAAA,YAAe,CACjD,CACAoB,OAAAA,EAAamB,eAAef,CAAAA,EACrBJ,CACT,CA7BsBT,EAAAA,EAAAA,SA+BtB,IAAA6B,EAAe7B","names":["createInterface","set","getLskConfig","Err","jsonToFile","google","Logger","log","ns","SCOPES","setLskConfig","__name","key","value","path","cwd","process","config","log","debug","require","err","error","set","jsonToFile","type","auth2","lskjsrc","getLskConfig","getspreadsheet","Err","app","client_secret","client_id","redirect_uris","oAuth2Client","google","auth","OAuth2","token","authUrl","generateAuthUrl","access_type","scope","warn","code","createInterface","input","stdin","output","stdout","question","tokens","getToken","setCredentials","auth_default"]}