{
  "version": 3,
  "sources": ["../src/loadenv.ts"],
  "sourcesContent": ["import fs from 'fs';\nimport path from 'path';\nimport dotenv from 'dotenv';\n\nfunction getEnvFromArgv() {\n  const envIndex = process.argv.indexOf(\"--env\");\n  return (envIndex !== -1) ? process.argv[envIndex + 1] : undefined;\n}\n\nfunction getNodeEnv() {\n  return process.env.NODE_ENV || getEnvFromArgv() || \"development\";\n}\n\nfunction getRegion() {\n  // EU, NA, AS, AF, AU, SA, UNKNOWN\n  return (process.env.REGION || \"unknown\").toLowerCase();\n}\n\nfunction loadEnvFile(envFileOptions: string[], log: 'none' | 'success' | 'both'  = 'none', override: boolean = false) {\n    const envPaths = [];\n    envFileOptions.forEach((envFilename) => {\n      if (envFilename.startsWith(\"/\")) {\n        envPaths.push(envFilename);\n      } else {\n        envPaths.push(path.resolve(path.dirname(typeof(require) !== \"undefined\" && require?.main?.filename || process.cwd()), \"..\", envFilename));\n        envPaths.push(path.resolve(process.cwd(), envFilename));\n      }\n    });\n\n    // return the first .env path found\n    const envPath = envPaths.find((envPath) => fs.existsSync(envPath));\n\n    if (envPath) {\n        dotenv.config({ path: envPath, override });\n\n        if (log !== \"none\") {\n            console.info(`\u2705 ${path.basename(envPath)} loaded.`);\n        }\n\n    } else if (log === \"both\") {\n        console.info(`\u2139\uFE0F  optional .env file not found: ${envFileOptions.join(\", \")}`);\n    }\n}\n\n// reload /etc/environment, if exists\nif (fs.existsSync(\"/etc/environment\")) {\n  dotenv.config({ path: \"/etc/environment\", override: true })\n}\n\n// (overrides previous env configs)\nloadEnvFile([`.env.${getNodeEnv()}`, `.env`], 'both');\n\n// load .env.cloud defined on admin panel\nif (process.env.COLYSEUS_CLOUD !== undefined) {\n    const cloudEnvFileNames = [\".env.cloud\"];\n\n    // prepend .env.cloud file from APP_ROOT_PATH\n    if (process.env.APP_ROOT_PATH) {\n      cloudEnvFileNames.unshift(`${process.env.APP_ROOT_PATH}${(process.env.APP_ROOT_PATH.endsWith(\"/\") ? \"\" : \"/\")}.env.cloud`);\n    }\n\n    // .env.cloud can override previously loaded environment variables\n    loadEnvFile(cloudEnvFileNames, 'none', true);\n}\n\nif (process.env.REGION !== undefined) {\n  loadEnvFile([`.env.${getRegion()}.${getNodeEnv()}`], 'success');\n}\n"],
  "mappings": ";;;;;;;;AAAA,OAAO,QAAQ;AACf,OAAO,UAAU;AACjB,OAAO,YAAY;AAEnB,SAAS,iBAAiB;AACxB,QAAM,WAAW,QAAQ,KAAK,QAAQ,OAAO;AAC7C,SAAQ,aAAa,KAAM,QAAQ,KAAK,WAAW,CAAC,IAAI;AAC1D;AAEA,SAAS,aAAa;AACpB,SAAO,QAAQ,IAAI,YAAY,eAAe,KAAK;AACrD;AAEA,SAAS,YAAY;AAEnB,UAAQ,QAAQ,IAAI,UAAU,WAAW,YAAY;AACvD;AAEA,SAAS,YAAY,gBAA0B,MAAoC,QAAQ,WAAoB,OAAO;AAClH,QAAM,WAAW,CAAC;AAClB,iBAAe,QAAQ,CAAC,gBAAgB;AACtC,QAAI,YAAY,WAAW,GAAG,GAAG;AAC/B,eAAS,KAAK,WAAW;AAAA,IAC3B,OAAO;AACL,eAAS,KAAK,KAAK,QAAQ,KAAK,QAAQ,OAAO,cAAa,eAAe,WAAS,MAAM,YAAY,QAAQ,IAAI,CAAC,GAAG,MAAM,WAAW,CAAC;AACxI,eAAS,KAAK,KAAK,QAAQ,QAAQ,IAAI,GAAG,WAAW,CAAC;AAAA,IACxD;AAAA,EACF,CAAC;AAGD,QAAM,UAAU,SAAS,KAAK,CAACA,aAAY,GAAG,WAAWA,QAAO,CAAC;AAEjE,MAAI,SAAS;AACT,WAAO,OAAO,EAAE,MAAM,SAAS,SAAS,CAAC;AAEzC,QAAI,QAAQ,QAAQ;AAChB,cAAQ,KAAK,UAAK,KAAK,SAAS,OAAO,CAAC,UAAU;AAAA,IACtD;AAAA,EAEJ,WAAW,QAAQ,QAAQ;AACvB,YAAQ,KAAK,+CAAqC,eAAe,KAAK,IAAI,CAAC,EAAE;AAAA,EACjF;AACJ;AAGA,IAAI,GAAG,WAAW,kBAAkB,GAAG;AACrC,SAAO,OAAO,EAAE,MAAM,oBAAoB,UAAU,KAAK,CAAC;AAC5D;AAGA,YAAY,CAAC,QAAQ,WAAW,CAAC,IAAI,MAAM,GAAG,MAAM;AAGpD,IAAI,QAAQ,IAAI,mBAAmB,QAAW;AAC1C,QAAM,oBAAoB,CAAC,YAAY;AAGvC,MAAI,QAAQ,IAAI,eAAe;AAC7B,sBAAkB,QAAQ,GAAG,QAAQ,IAAI,aAAa,GAAI,QAAQ,IAAI,cAAc,SAAS,GAAG,IAAI,KAAK,GAAI,YAAY;AAAA,EAC3H;AAGA,cAAY,mBAAmB,QAAQ,IAAI;AAC/C;AAEA,IAAI,QAAQ,IAAI,WAAW,QAAW;AACpC,cAAY,CAAC,QAAQ,UAAU,CAAC,IAAI,WAAW,CAAC,EAAE,GAAG,SAAS;AAChE;",
  "names": ["envPath"]
}
