{"version":3,"file":"index.mjs","sources":["../../src/configuration/index.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-var-requires */\nimport os from 'os';\nimport path from 'path';\nimport _ from 'lodash';\nimport { omit } from 'lodash/fp';\nimport dotenv from 'dotenv';\nimport type { Core } from '@strapi/types';\nimport { strings } from '@strapi/utils';\n\nimport { getConfigUrls, getAbsoluteAdminUrl, getAbsoluteServerUrl } from './urls';\nimport loadConfigDir from './config-loader';\nimport { getDirs } from './get-dirs';\n\nimport type { StrapiOptions } from '../Strapi';\nimport { version as strapiVersion } from '../../package.json';\n\ndotenv.config({ path: process.env.ENV_PATH });\n\nprocess.env.NODE_ENV = process.env.NODE_ENV || 'development';\n\nconst defaultConfig = {\n  server: {\n    host: process.env.HOST || os.hostname() || 'localhost',\n    port: Number(process.env.PORT) || 1337,\n    proxy: false,\n    cron: { enabled: false },\n    admin: { autoOpen: false },\n    dirs: { public: './public' },\n    transfer: {\n      remote: {\n        enabled: true,\n      },\n    },\n    logger: {\n      updates: {\n        enabled: true,\n      },\n      startup: {\n        enabled: true,\n      },\n    },\n  } satisfies Partial<Core.Config.Server>,\n  admin: {} satisfies Partial<Core.Config.Admin>,\n  api: {\n    rest: {\n      prefix: '/api',\n    },\n  } satisfies Partial<Core.Config.Api>,\n};\n\nexport const loadConfiguration = (opts: StrapiOptions) => {\n  const { appDir, distDir, autoReload = false, serveAdminPanel = true } = opts;\n\n  const pkgJSON = require(path.resolve(appDir, 'package.json'));\n\n  const configDir = path.resolve(distDir || process.cwd(), 'config');\n\n  const rootConfig = {\n    launchedAt: Date.now(),\n    autoReload,\n    environment: process.env.NODE_ENV,\n    uuid: _.get(pkgJSON, 'strapi.uuid'),\n    installId: _.get(pkgJSON, 'strapi.installId'),\n    packageJsonStrapi: _.omit(_.get(pkgJSON, 'strapi', {}), 'uuid'),\n    info: {\n      ...pkgJSON,\n      strapi: strapiVersion,\n    },\n    admin: {\n      serveAdminPanel,\n    },\n  };\n\n  // See packages/core/core/src/domain/module/index.ts for plugin config loading\n  const baseConfig = omit('plugins', loadConfigDir(configDir)); // plugin config will be loaded later\n\n  const envDir = path.resolve(configDir, 'env', process.env.NODE_ENV as string);\n  const envConfig = loadConfigDir(envDir);\n\n  const config = _.merge(rootConfig, defaultConfig, baseConfig, envConfig);\n\n  const { serverUrl, adminUrl } = getConfigUrls(config);\n\n  const serverAbsoluteUrl = getAbsoluteServerUrl(config);\n  const adminAbsoluteUrl = getAbsoluteAdminUrl(config);\n\n  const sameOrigin = new URL(adminAbsoluteUrl).origin === new URL(serverAbsoluteUrl).origin;\n\n  const adminPath = sameOrigin\n    ? adminUrl.replace(strings.getCommonPath(serverUrl, adminUrl), '')\n    : new URL(adminUrl).pathname;\n\n  _.set(config, 'server.url', serverUrl);\n  _.set(config, 'server.absoluteUrl', serverAbsoluteUrl);\n  _.set(config, 'admin.url', adminUrl);\n  _.set(config, 'admin.path', adminPath);\n  _.set(config, 'admin.absoluteUrl', adminAbsoluteUrl);\n  _.set(config, 'dirs', getDirs(opts, config));\n\n  return config;\n};\n"],"names":["dotenv","config","path","process","env","ENV_PATH","NODE_ENV","defaultConfig","server","host","HOST","os","hostname","port","Number","PORT","proxy","cron","enabled","admin","autoOpen","dirs","public","transfer","remote","logger","updates","startup","api","rest","prefix","loadConfiguration","opts","appDir","distDir","autoReload","serveAdminPanel","pkgJSON","require","resolve","configDir","cwd","rootConfig","launchedAt","Date","now","environment","uuid","_","get","installId","packageJsonStrapi","omit","info","strapi","strapiVersion","baseConfig","loadConfigDir","envDir","envConfig","merge","serverUrl","adminUrl","getConfigUrls","serverAbsoluteUrl","getAbsoluteServerUrl","adminAbsoluteUrl","getAbsoluteAdminUrl","sameOrigin","URL","origin","adminPath","replace","strings","getCommonPath","pathname","set","getDirs"],"mappings":"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"}