{"version":3,"sources":["../../../src/envVariables/getConfiguration.ts"],"sourcesContent":["import type {\n  AiConfig,\n  BuildConfig,\n  ContentConfig,\n  DictionaryOutput,\n  InternationalizationConfig,\n  IntlayerConfig,\n  LogConfig,\n  MiddlewareConfig,\n  ServerSetCookieRule,\n  StrictMode,\n} from '../types/config';\nimport type { Locales } from '../types/locales';\nimport {\n  extractEnvVariable,\n  type ExtractEnvVariableOptions,\n} from './extractEnvVariable/index';\nimport { getEnvValue } from './utils';\n\n/**\n * Get all configuration values using environment variables\n * Can be used in the client side as the server side\n * To use it, be sure to have the environment variables set\n */\nexport const getConfiguration = (\n  options?: ExtractEnvVariableOptions\n): IntlayerConfig => {\n  const env = extractEnvVariable(options);\n\n  const intlayerIntlConfiguration: InternationalizationConfig = {\n    locales: getEnvValue<Locales>(env.internationalization.locales, 'array')!,\n    requiredLocales: getEnvValue<Locales>(\n      env.internationalization.requiredLocales,\n      'array'\n    )!,\n    strictMode: getEnvValue<StrictMode>(\n      env.internationalization.strictMode,\n      'string'\n    )!,\n    defaultLocale: getEnvValue<Locales>(\n      env?.internationalization.defaultLocale,\n      'string'\n    )!,\n  };\n\n  const intlayerMiddlewareConfiguration: MiddlewareConfig = {\n    headerName: getEnvValue(env.middleware.headerName, 'string')!,\n    cookieName: getEnvValue(env.middleware.cookieName, 'string')!,\n    prefixDefault: getEnvValue(env.middleware.prefixDefault, 'boolean')!,\n    basePath: getEnvValue(env.middleware.basePath, 'string')!,\n    serverSetCookie: getEnvValue<ServerSetCookieRule>(\n      env.middleware.serverSetCookie,\n      'string'\n    )!,\n    noPrefix: getEnvValue(env.middleware.noPrefix, 'boolean')!,\n  };\n\n  const intlayerContentConfiguration: ContentConfig = {\n    fileExtensions: getEnvValue<string>(env.content.fileExtensions, 'array')!,\n    baseDir: getEnvValue(env.content.baseDir, 'string')!,\n    contentDir: getEnvValue<string>(env.content.contentDir, 'array')!,\n    excludedPath: getEnvValue<string>(env.content.excludedPath, 'array')!,\n    dictionariesDir: getEnvValue(env.content.dictionariesDir, 'string')!,\n    moduleAugmentationDir: getEnvValue(\n      env.content.moduleAugmentationDir,\n      'string'\n    )!,\n    dictionaryOutput: getEnvValue<DictionaryOutput>(\n      env.content.dictionaryOutput,\n      'array'\n    )!,\n    unmergedDictionariesDir: getEnvValue(\n      env.content.unmergedDictionariesDir,\n      'string'\n    )!,\n    dynamicDictionariesDir: getEnvValue(\n      env.content.dynamicDictionariesDir,\n      'string'\n    )!,\n    i18nextResourcesDir: getEnvValue(\n      env.content.i18nextResourcesDir,\n      'string'\n    )!,\n    reactIntlMessagesDir: getEnvValue(\n      env.content.reactIntlMessagesDir,\n      'string'\n    )!,\n    typesDir: getEnvValue(env.content.typesDir, 'string')!,\n    mainDir: getEnvValue(env.content.mainDir, 'string')!,\n    configDir: getEnvValue(env.content.configDir, 'string')!,\n    watchedFilesPattern: getEnvValue<string>(\n      env.content.watchedFilesPattern,\n      'array'\n    )!,\n    watchedFilesPatternWithPath: getEnvValue<string>(\n      env.content.watchedFilesPatternWithPath,\n      'array'\n    )!,\n    outputFilesPatternWithPath: getEnvValue(\n      env.content.outputFilesPatternWithPath,\n      'string'\n    )!,\n    watch: getEnvValue(env.content.watch, 'boolean')!,\n  };\n\n  const intlayerEditorConfiguration = {\n    applicationURL: getEnvValue(env.editor.applicationURL, 'string')!,\n    editorURL: getEnvValue(env.editor.editorURL, 'string')!,\n    cmsURL: getEnvValue(env.editor.cmsURL, 'string')!,\n    backendURL: getEnvValue(env.editor.backendURL, 'string')!,\n    port: getEnvValue(env.editor.port, 'number')!,\n    enabled: getEnvValue(env.editor.enabled, 'boolean')!,\n    clientId: getEnvValue(env.editor.clientId, 'string')!,\n    clientSecret: getEnvValue(env.editor.clientSecret, 'string')!,\n    dictionaryPriorityStrategy: getEnvValue(\n      env.editor.dictionaryPriorityStrategy,\n      'string'\n    )! as 'local_first' | 'distant_first',\n    hotReload: getEnvValue(env.editor.hotReload, 'boolean')!,\n  };\n\n  const logConfiguration: LogConfig = {\n    mode: getEnvValue(env.log.mode, 'string')!,\n    prefix: getEnvValue(env.log.prefix, 'string')!,\n  };\n\n  const aiConfiguration: AiConfig = {\n    provider: getEnvValue(env.ai?.provider, 'string')!,\n    model: getEnvValue(env.ai?.model, 'string')!,\n    temperature: getEnvValue(env.ai?.temperature, 'number')!,\n    apiKey: getEnvValue(env.ai?.apiKey, 'string')!,\n  };\n\n  const buildConfiguration: BuildConfig = {\n    optimize: getEnvValue(env.build.optimize, 'boolean')!,\n    activateDynamicImport: getEnvValue(\n      env.build.activateDynamicImport,\n      'boolean'\n    )!,\n    traversePattern: getEnvValue<string>(env.build.traversePattern, 'array')!,\n  };\n\n  const intlayerConfiguration: IntlayerConfig = {\n    internationalization: intlayerIntlConfiguration,\n    middleware: intlayerMiddlewareConfiguration,\n    content: intlayerContentConfiguration,\n    editor: intlayerEditorConfiguration,\n    log: logConfiguration,\n    ai: aiConfiguration,\n    build: buildConfiguration,\n  };\n\n  return intlayerConfiguration;\n};\n"],"mappings":"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","names":[]}