{"version":3,"file":"env.mjs","sources":["../../../../src/node/core/env.ts"],"sourcesContent":["import path from 'node:path';\nimport dotenv from 'dotenv';\nimport { pathExists } from './files';\n\n/**\n * This is the base of _any_ env set for a strapi project,\n * to build a strapi admin panel we require these env variables.\n */\ninterface DefaultEnv {\n ADMIN_PATH: string;\n STRAPI_ADMIN_BACKEND_URL: string;\n STRAPI_TELEMETRY_DISABLED: string;\n STRAPI_AI_URL: string;\n STRAPI_ADMIN_AI_API_KEY?: string;\n STRAPI_ANALYTICS_URL?: string;\n}\n\n/**\n * @internal\n *\n * @description Load the .env file if it exists\n */\nconst loadEnv = async (cwd: string) => {\n const pathToEnv = path.resolve(cwd, '.env');\n\n if (await pathExists(pathToEnv)) {\n dotenv.config({ path: pathToEnv });\n }\n};\n\n/**\n * @internal\n *\n * @description Get all the environment variables that start with `STRAPI_ADMIN_`\n */\nconst getStrapiAdminEnvVars = (defaultEnv: DefaultEnv): Record => {\n return Object.keys(process.env)\n .filter((key) => key.toUpperCase().startsWith('STRAPI_ADMIN_'))\n .reduce(\n (acc, key) => {\n acc[key] = process.env[key] as string;\n\n return acc;\n },\n defaultEnv as unknown as Record\n );\n};\n\nexport { getStrapiAdminEnvVars, loadEnv };\n"],"names":["loadEnv","cwd","pathToEnv","path","resolve","pathExists","dotenv","config","getStrapiAdminEnvVars","defaultEnv","Object","keys","process","env","filter","key","toUpperCase","startsWith","reduce","acc"],"mappings":";;;;AAiBA;;;;IAKA,MAAMA,UAAU,OAAOC,GAAAA,GAAAA;AACrB,IAAA,MAAMC,SAAYC,GAAAA,IAAAA,CAAKC,OAAO,CAACH,GAAK,EAAA,MAAA,CAAA;IAEpC,IAAI,MAAMI,WAAWH,SAAY,CAAA,EAAA;AAC/BI,QAAAA,MAAAA,CAAOC,MAAM,CAAC;YAAEJ,IAAMD,EAAAA;AAAU,SAAA,CAAA;AAClC;AACF;AAEA;;;;IAKA,MAAMM,wBAAwB,CAACC,UAAAA,GAAAA;AAC7B,IAAA,OAAOC,OAAOC,IAAI,CAACC,QAAQC,GAAG,CAAA,CAC3BC,MAAM,CAAC,CAACC,MAAQA,GAAIC,CAAAA,WAAW,GAAGC,UAAU,CAAC,kBAC7CC,MAAM,CACL,CAACC,GAAKJ,EAAAA,GAAAA,GAAAA;AACJI,QAAAA,GAAG,CAACJ,GAAI,CAAA,GAAGH,OAAQC,CAAAA,GAAG,CAACE,GAAI,CAAA;QAE3B,OAAOI,GAAAA;KAETV,EAAAA,UAAAA,CAAAA;AAEN;;;;"}