{"version":3,"sources":["../../src/commands/downloadCommand.ts"],"sourcesContent":["// @ts-nocheck\n\n/* eslint-disable no-console */\nimport Err from '@lskjs/err';\nimport axios from 'axios';\nimport { map } from 'fishbird';\nimport fs from 'fs/promises';\n\nexport async function downloadCommand(dir, { force, ...options } = {}) {\n  if (force) {\n    // TODO: something\n  }\n  let config;\n  try {\n    // eslint-disable-next-line import/no-dynamic-require\n    config = require(`${dir}/__config.js`);\n  } catch (err) {\n    console.error('err', err);\n    config = {};\n  }\n  const service = options.service || config.service;\n  if (service === 'github') {\n    throw new Err('Downloading secrets from github is not supported');\n  }\n\n  const server = options.server || config.server;\n  const id = options.id || config.id;\n  const token = options.token || config.token;\n  const projectName = options.project || config.project;\n  const url = `https://${server}/api/v4/projects/${id}/variables`;\n\n  const { data: variables } = await axios({\n    method: 'get',\n    url,\n    headers: {\n      'PRIVATE-TOKEN': token,\n    },\n  });\n\n  await map(variables, async ({ key, value, variable_type: type }) => {\n    try {\n      if (type !== 'file') {\n        console.log(`[IGNORE] Project ${projectName} ${key}`);\n        return;\n      }\n      let ext;\n      if (key.endsWith('env_file')) {\n        ext = 'env';\n      } else if (key.endsWith('env_json')) {\n        ext = 'json';\n      } else if (key.endsWith('env_js')) {\n        ext = 'js';\n      }\n      const file = [key, ext].filter(Boolean).join('.');\n      const filename = `${dir}/${file}`;\n      await fs.writeFile(filename, value);\n      console.log(`[OK] ${server}/${projectName} (${key}) => ${dir}/${file}`);\n    } catch (err) {\n      console.error(\n        `[ERR] Project ${projectName} ${key}`,\n        (err && err.response && err.response.data && err.response.data.message) || err,\n      );\n    }\n  });\n}\n"],"mappings":"oUAGA,OAAOA,MAAS,aAChB,OAAOC,MAAW,QAClB,OAASC,OAAAA,MAAW,WACpB,OAAOC,MAAQ,cAEf,eAAsBC,EAAgBC,EAAK,CAAEC,MAAAA,EAAO,GAAGC,CAAAA,EAAY,CAAC,EAAC,CAInE,IAAIC,EACJ,GAAI,CAEFA,EAASC,EAAQ,GAAGJ,CAAAA,cAAiB,CACvC,OAASK,EAAK,CACZC,QAAQC,MAAM,MAAOF,CAAAA,EACrBF,EAAS,CAAC,CACZ,CAEA,IADgBD,EAAQM,SAAWL,EAAOK,WAC1B,SACd,MAAM,IAAIC,EAAI,kDAAA,EAGhB,IAAMC,EAASR,EAAQQ,QAAUP,EAAOO,OAClCC,EAAKT,EAAQS,IAAMR,EAAOQ,GAC1BC,EAAQV,EAAQU,OAAST,EAAOS,MAChCC,EAAcX,EAAQY,SAAWX,EAAOW,QACxCC,EAAM,WAAWL,CAAAA,oBAA0BC,CAAAA,aAE3C,CAAEK,KAAMC,CAAS,EAAK,MAAMC,EAAM,CACtCC,OAAQ,MACRJ,IAAAA,EACAK,QAAS,CACP,gBAAiBR,CACnB,CACF,CAAA,EAEA,MAAMS,EAAIJ,EAAW,MAAO,CAAEK,IAAAA,EAAKC,MAAAA,EAAOC,cAAeC,CAAI,IAAE,CAC7D,GAAI,CACF,GAAIA,IAAS,OAAQ,CACnBnB,QAAQoB,IAAI,oBAAoBb,CAAAA,IAAeS,CAAAA,EAAK,EACpD,MACF,CACA,IAAIK,EACAL,EAAIM,SAAS,UAAA,EACfD,EAAM,MACGL,EAAIM,SAAS,UAAA,EACtBD,EAAM,OACGL,EAAIM,SAAS,QAAA,IACtBD,EAAM,MAER,IAAME,EAAO,CAACP,EAAKK,GAAKG,OAAOC,OAAAA,EAASC,KAAK,GAAA,EACvCC,EAAW,GAAGjC,CAAAA,IAAO6B,CAAAA,GAC3B,MAAMK,EAAGC,UAAUF,EAAUV,CAAAA,EAC7BjB,QAAQoB,IAAI,QAAQhB,CAAAA,IAAUG,CAAAA,KAAgBS,CAAAA,QAAWtB,CAAAA,IAAO6B,CAAAA,EAAM,CACxE,OAASxB,EAAK,CACZC,QAAQC,MACN,iBAAiBM,CAAAA,IAAeS,CAAAA,GAC/BjB,GAAOA,EAAI+B,UAAY/B,EAAI+B,SAASpB,MAAQX,EAAI+B,SAASpB,KAAKqB,SAAYhC,CAAAA,CAE/E,CACF,CAAA,CACF,CAxDsBN,EAAAA,EAAAA","names":["Err","axios","map","fs","downloadCommand","dir","force","options","config","require","err","console","error","service","Err","server","id","token","projectName","project","url","data","variables","axios","method","headers","map","key","value","variable_type","type","log","ext","endsWith","file","filter","Boolean","join","filename","fs","writeFile","response","message"]}