whole_func_string: function We (options) {
    if (!options) options = {};
  
    const we = this;
  
    this.packageJSON = require('../package.json');
  
    this.config = options;
  
    this.childProcesses = [];
  
    this.plugins = {};
    this.pluginPaths = [];
    this.pluginNames = [];
    // controllers
    this.controllers = {};
  
    this.projectPath = options.projectPath || process.cwd();
  
    this.projectPackageJSON = require(path.resolve(this.projectPath, 'package.json'));
  
    this.projectConfigFolder = options.projectConfigFolder || path.join(this.projectPath, 'config');
  
    // start configs with static configs
    this.config = staticConfig(this.projectPath, this);
    // enviroment config prod | dev | test
    we.env = options.env || require('./getEnv.js')();
    // winston logger
    we.log = require('./log')(we);
    // hooks and events
    we.hooks = new Hooks();
  
    we.events = new EventEmiter();
    // we.js events is controlled then we will use an max of 70 listenners in every event:
    we.events.setMaxListeners(70);
    // we.js sanitizer
    we.sanitizer = new Sanitizer(this);
    // The we.js router
    we.router = new Router(this);
    // we.js prototypes
    we.class = {
      Controller: require('./class/Controller.js'),
      Theme: require('./class/Theme.js')(we),
      Plugin: require('./class/Plugin.js')(we)
    };
    // database logic and models is avaible in we.db.models
    we.db = new Database(this);
    // - init database
    we.db.defaultConnection = we.db.connect(we.env);
    //set for more compatbility with sequelize docs
    we.db.sequelize = we.db.defaultConnection;
    // plugin manager and plugins vars
    we.pluginManager = new PluginManager(this);
  
    switch (we.config.bootstrapMode) {
      case 'install':
      case 'installation':
      case 'update':
        we.hooks.on('bootstrap', [
          we.bootstrapFunctions.checkDBConnection,
          we.bootstrapFunctions.loadCoreFeatures,
          we.bootstrapFunctions.loadPluginFeatures,
          we.bootstrapFunctions.initI18n,
          we.bootstrapFunctions.loadTemplateCache,
          we.bootstrapFunctions.instantiateModels,
          we.bootstrapFunctions.syncModels,
          we.bootstrapFunctions.loadControllers,
          we.bootstrapFunctions.installAndRegisterPlugins
        ]);
        break;
      case 'complete':
      case 'full':
      case 'test':
        // full load, usefull for tests
        we.hooks.on('bootstrap', [
          we.bootstrapFunctions.checkDBConnection,
          we.bootstrapFunctions.loadCoreFeatures,
          we.bootstrapFunctions.loadPluginFeatures,
          we.bootstrapFunctions.initI18n,
          we.bootstrapFunctions.loadTemplateCache,
          we.bootstrapFunctions.instantiateModels,
          we.bootstrapFunctions.syncModels,
          we.bootstrapFunctions.loadControllers,
          we.bootstrapFunctions.installAndRegisterPlugins,
          we.bootstrapFunctions.setExpressApp,
          we.bootstrapFunctions.passport,
          we.bootstrapFunctions.createDefaultFolders,
          we.bootstrapFunctions.registerAllViewTemplates,
          we.bootstrapFunctions.mergeRoutes,
          we.bootstrapFunctions.bindResources,
          we.bootstrapFunctions.bindRoutes
        ]);
        break;
      default:
        // defaults to load for run
        we.hooks.on('bootstrap', [
          we.bootstrapFunctions.checkDBConnection,
          we.bootstrapFunctions.loadCoreFeatures,
          we.bootstrapFunctions.loadPluginFeatures,
          we.bootstrapFunctions.initI18n,
          we.bootstrapFunctions.loadTemplateCache,
          we.bootstrapFunctions.instantiateModels,
          we.bootstrapFunctions.syncModels,
          we.bootstrapFunctions.loadControllers,
          we.bootstrapFunctions.installAndRegisterPlugins,
          we.bootstrapFunctions.setExpressApp,
          we.bootstrapFunctions.passport,
          we.bootstrapFunctions.createDefaultFolders,
          we.bootstrapFunctions.registerAllViewTemplates,
          we.bootstrapFunctions.mergeRoutes,
          we.bootstrapFunctions.bindResources,
          we.bootstrapFunctions.bindRoutes
        ]);
    }
  }
func_code_string: function We (options) {
    if (!options) options = {};
  
    const we = this;
  
    this.packageJSON = require('../package.json');
  
    this.config = options;
  
    this.childProcesses = [];
  
    this.plugins = {};
    this.pluginPaths = [];
    this.pluginNames = [];
    // controllers
    this.controllers = {};
  
    this.projectPath = options.projectPath || process.cwd();
  
    this.projectPackageJSON = require(path.resolve(this.projectPath, 'package.json'));
  
    this.projectConfigFolder = options.projectConfigFolder || path.join(this.projectPath, 'config');
  
    // start configs with static configs
    this.config = staticConfig(this.projectPath, this);
    // enviroment config prod | dev | test
    we.env = options.env || require('./getEnv.js')();
    // winston logger
    we.log = require('./log')(we);
    // hooks and events
    we.hooks = new Hooks();
  
    we.events = new EventEmiter();
    // we.js events is controlled then we will use an max of 70 listenners in every event:
    we.events.setMaxListeners(70);
    // we.js sanitizer
    we.sanitizer = new Sanitizer(this);
    // The we.js router
    we.router = new Router(this);
    // we.js prototypes
    we.class = {
      Controller: require('./class/Controller.js'),
      Theme: require('./class/Theme.js')(we),
      Plugin: require('./class/Plugin.js')(we)
    };
    // database logic and models is avaible in we.db.models
    we.db = new Database(this);
    // - init database
    we.db.defaultConnection = we.db.connect(we.env);
    //set for more compatbility with sequelize docs
    we.db.sequelize = we.db.defaultConnection;
    // plugin manager and plugins vars
    we.pluginManager = new PluginManager(this);
  
    switch (we.config.bootstrapMode) {
      case 'install':
      case 'installation':
      case 'update':
        we.hooks.on('bootstrap', [
          we.bootstrapFunctions.checkDBConnection,
          we.bootstrapFunctions.loadCoreFeatures,
          we.bootstrapFunctions.loadPluginFeatures,
          we.bootstrapFunctions.initI18n,
          we.bootstrapFunctions.loadTemplateCache,
          we.bootstrapFunctions.instantiateModels,
          we.bootstrapFunctions.syncModels,
          we.bootstrapFunctions.loadControllers,
          we.bootstrapFunctions.installAndRegisterPlugins
        ]);
        break;
      case 'complete':
      case 'full':
      case 'test':
        // full load, usefull for tests
        we.hooks.on('bootstrap', [
          we.bootstrapFunctions.checkDBConnection,
          we.bootstrapFunctions.loadCoreFeatures,
          we.bootstrapFunctions.loadPluginFeatures,
          we.bootstrapFunctions.initI18n,
          we.bootstrapFunctions.loadTemplateCache,
          we.bootstrapFunctions.instantiateModels,
          we.bootstrapFunctions.syncModels,
          we.bootstrapFunctions.loadControllers,
          we.bootstrapFunctions.installAndRegisterPlugins,
          we.bootstrapFunctions.setExpressApp,
          we.bootstrapFunctions.passport,
          we.bootstrapFunctions.createDefaultFolders,
          we.bootstrapFunctions.registerAllViewTemplates,
          we.bootstrapFunctions.mergeRoutes,
          we.bootstrapFunctions.bindResources,
          we.bootstrapFunctions.bindRoutes
        ]);
        break;
      default:
        // defaults to load for run
        we.hooks.on('bootstrap', [
          we.bootstrapFunctions.checkDBConnection,
          we.bootstrapFunctions.loadCoreFeatures,
          we.bootstrapFunctions.loadPluginFeatures,
          we.bootstrapFunctions.initI18n,
          we.bootstrapFunctions.loadTemplateCache,
          we.bootstrapFunctions.instantiateModels,
          we.bootstrapFunctions.syncModels,
          we.bootstrapFunctions.loadControllers,
          we.bootstrapFunctions.installAndRegisterPlugins,
          we.bootstrapFunctions.setExpressApp,
          we.bootstrapFunctions.passport,
          we.bootstrapFunctions.createDefaultFolders,
          we.bootstrapFunctions.registerAllViewTemplates,
          we.bootstrapFunctions.mergeRoutes,
          we.bootstrapFunctions.bindResources,
          we.bootstrapFunctions.bindRoutes
        ]);
    }
  }
func_documentation_string: We.js object
  
  @type {Object}