"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _os = require("os");

// NOTE: Don't use 'config_file' as cli option it was reserved
var _default = {
  context: {
    value: 'app',
    cli: 'context'
  },
  devtool: 'hidden-cheap-source-map',
  enableChunkHash: {
    value: false,
    cli: 'enable_hash'
  },
  bundleAnalyze: {
    value: false,
    cli: 'bundle_analyze'
  },
  enableMockReplace: {
    value: false,
    cli: 'enable_mock_replace'
  },
  noPublicPath: {
    value: false,
    cli: 'no_public_path'
  },
  output: {
    value: 'build',
    cli: 'output'
  },
  mode: {
    value: null,
    cli: 'mode'
  },
  printProgress: {
    value: false,
    cli: 'print_progress'
  },
  server: {
    httpsCerts: {
      value: '',
      cli: 'https_certs'
    },
    host: {
      value: (0, _os.hostname)(),
      cli: 'host'
    },
    port: {
      value: 9090,
      cli: 'port'
    },
    domain: {
      value: 'tsi',
      cli: 'domain'
    },
    disableContextURL: {
      value: false,
      cli: 'disable_context'
    }
  },
  mockServer: {
    enable: {
      value: false,
      cli: 'enable_mock'
    },
    separateSeverPort: {
      value: null,
      cli: 'mock_port'
    },
    disableNodemon: {
      value: false,
      cli: 'disable_nodemon'
    },
    mockEntryFile: 'mockapi/index.js',
    mockPrefix: {
      value: '/api',
      cli: 'mock_prefix'
    }
  },
  css: {
    classNameOptions: {
      customizations: [{
        enable: true,
        blob: '[local]',
        patterns: ['*.plain.css']
      }, {
        enable: true,
        blob: '[prefix]-[filename]-[local]',
        patterns: []
      }],
      classNamePrefix: 'zd'
    },
    // NOTE: Suggestions
    // Name Suggestions  `customizations` this will be easier then `plugin` to understand for developers
    plugins: {
      rtlSplit: {
        enableRTLSplit: false,
        templateLabel: '{{--dir}}',
        disableMinifySelector: false,
        dirVarName: 'document.dir'
      },
      selectorWeight: {
        enable: false,
        patterns: [],
        configFile: null,
        defaultSelector: '',
        customFileDetails: '',
        excludeStrings: []
      },
      // postcss plugins start
      // NOTE: These we have putted names of post-css-plugins in array
      // packages/client_build_tool/src/shared/bundler/webpack/custom_postcss_loaders/PostCssOptionConstants.js
      valueReplacer: {
        enable: false,
        patterns: [],
        config: []
      },
      selectorReplace: {
        enable: false,
        patterns: [],
        before: [],
        after: []
      },
      hoverActive: {
        enable: false,
        patterns: [],
        hover: '(hover: hover)',
        active: '(hover: none)'
      },
      cssVariableReplacement: {
        enable: false,
        patterns: [],
        configFile: null
      },
      rtl: {
        enable: false,
        patterns: []
      } // postcss - plugins end

    },
    customPlugins: []
  },
  i18nChunkSplit: {
    chunkSplitEnable: {
      value: false,
      cli: 'i18n_split'
    },
    disableDefault: false,
    templateLabel: '{{--user-locale}}',
    localeVarName: 'document.documentElement.lang',
    jsonpFunc: 'console.log',
    jsResource: null,
    propertiesFolder: null
  },
  publicFolders: ['...'],
  app: {
    entryFile: {
      value: 'src/index.js',
      cli: 'entry'
    }
  },
  resolve: {
    preferLocalFirst: false,
    defaultAlias: true,
    moduleResolvePath: {
      value: '',
      cli: 'module_resolve_path'
    },
    alias: null
  },
  htmlTemplate: {
    templateFile: {
      value: 'src/index.html',
      cli: 'initial_html'
    },
    minify: null,
    inject: true
  },
  efc: {
    hasEFC: {
      value: false,
      cli: 'enable_efc',
      type: 'boolean'
    },
    entryPointName: 'efc',
    entryFile: {
      value: 'src/efc.js',
      cli: 'efc_entry'
    },
    version: {
      value: 'v1',
      cli: 'efc_version'
    },
    createSDkFile: {
      value: false,
      cli: 'create_efc_sdk'
    },
    templateFilePath: 'efcTemplate.js',
    outputFile: {
      value: 'efc-sdk-[version].js',
      cli: 'efc_output'
    }
  },
  enableSMap: {
    value: false,
    cli: 'source_map_enable'
  },
  babelCustomizations: {
    browserList: null,
    // NOTE: need to consider
    // presets: [],
    plugins: []
  },
  webpackPlugins: [],
  vendorPatterns: [],
  customChunks: [{
    name: 'styles',
    patterns: ['*.css']
  }],
  cdnMapping: {
    isCdnEnabled: false,
    variableName: '',
    cssTemplate: '',
    jsTemplate: '',
    i18nTemplate: ''
  },
  manifestJson: {
    enable: true
  },
  changeRuntimeChunkChar: '~',
  serviceWorker: {
    enable: false,
    templateFilePath: 'sw.js',
    outputFilePath: '/v1.js',
    replaceText: '//<!--AssetsFromBuild -->'
  }
};
exports.default = _default;