{
  version:                                  "1.1.53-a2",
  site:                                     "http://localhost",
  friendlySite:                             "FCF",
  mailService:                              "smtp.gmail.com",
  mailAddress:                              "mail@gmail.com",
  mailUser:                                 "user",
  mailPassword:                             "password",
  logFile:                                  "log/node-log-",
  logLifeTime:                              30,
  cacheDirectory:                           ":cache",
  directorySystemProjections:               ":projections/fcfsystem",
  packageDirectories:                       [":packages"],
  projectionDirectories:                    ["fcf:projections"],
  maxSizeReceived:                          "100mb",
  maxUrlCountParametersReceived:            1000,
  maxFileSendTime:                          60*60,
  loginUncreatedUser:                       false,
  userProjectionName:                       "___fcf___users",
  sessionLifetime:                          30, // in days. if 0 the lifetime is not limited
  lifetimeNotInitializedUser:               7,  // in days. if 0 the lifetime is not limited
  numberInvalidLoginAttemptsBeforeWaiting:  3,
  waitingLogin:                             60,
  enableBabel:                              true,
  maxReqursionRender:                       100,
  maxFSQLBufferQuerySize:                   1000,
  public: [
  ],
  systemVariables: {
    "fcf:packageVersions": { value: {fcf: "0.0.0"}, description: "Package versions", }
  },
  nodeDependencies:{
    "fs": {},
    "mkdirp": {},
    "path": {},
    "mysql2": {},
    "match-all": {},
    "express": {},
    "net": {},
    "child_process": {},
    "prompt": {},
    "mime-types": {},
    "body-parser": {},
    "cookie-parser": {},
    "formidable": {},
    "crypto-js": {},
    "nodemailer": {},
    "@babel/core": {},
    "@babel/preset-env": {},
    "@babel/plugin-transform-block-scoped-functions": {},
    "@babel/plugin-transform-arrow-functions": {},
    "@babel/plugin-transform-duplicate-keys": {},
    "@babel/plugin-transform-block-scoping": {},
    "@babel/plugin-transform-classes": {},
    "@babel/plugin-transform-for-of": {},
    "@babel/plugin-transform-destructuring": {},
    "@babel/plugin-transform-computed-properties": {},
    "@babel/plugin-transform-function-name": {},
    "@babel/plugin-transform-instanceof": {},
    "@babel/plugin-transform-object-super": {},
    "@babel/plugin-transform-literals": {},
    "@babel/plugin-transform-parameters": {},
    "@babel/plugin-transform-shorthand-properties": {},
    "@babel/plugin-transform-spread": {},
    "@babel/plugin-transform-sticky-regex": {},
    "@babel/plugin-transform-template-literals": {},
    "@babel/plugin-transform-typeof-symbol": {},
    "@babel/plugin-transform-unicode-regex": {},
    "@babel/plugin-transform-async-to-generator": {},
    "@babel/plugin-transform-regenerator": {},
    "@babel/plugin-transform-property-mutators": {},
    "@babel/plugin-transform-member-expression-literals": {},
  },

  aliases: {
    "page:page404"            : "fcf:templates/page404.tmpl",
    "page:system-error-page"  : "fcf:templates/system-error-page.tmpl",
    "page:system-page"        : "fcf:templates/system-page.tmpl",
    "url:fcfWrapper"          : "fcfpackages/fcf/wrapper",
    "url:fcfRender"           : "fcfpackages/fcf/render",
    "url:fcfReceive"          : "fcfpackages/fcf/receive",
    "path:files"              : ":files",
    "controls:lock"           : "fcf:templates/locker.tmpl",
  },
  usageViews:{
    // List of types and templates
    // EXAMPLE:
    // "TYPE":{
    //   "read.*": { template: "TEMPLATE_PATH" },
    //   "edit.*": { template: "TEMPLATE_PATH" },
    //   "add.*":  { template: "TEMPLATE_PATH" },
    // },
  },
  filters: {
    "enum":         "fcf:NFSQL/NFilter/Enum.js",
    "int":          "fcf:NFSQL/NFilter/Int.js",
    "bigint":       "fcf:NFSQL/NFilter/BigInt.js",
    "float":        "fcf:NFSQL/NFilter/Float.js",
    "boolean":      "fcf:NFSQL/NFilter/Boolean.js",
    "string":       "fcf:NFSQL/NFilter/String.js",
    "text":         "fcf:NFSQL/NFilter/Text.js",
    "password":     "fcf:NFSQL/NFilter/Password.js",
    "datetime":     "fcf:NFSQL/NFilter/Datetime.js",
    "file":         "fcf:NFSQL/NFilter/File.js",
    "singleRef":    "fcf:NFSQL/NFilter/SingleRef.js",
    "backRef":      "fcf:NFSQL/NFilter/BackRef.js",
    "externalRef":  "fcf:NFSQL/NFilter/ExternalRef.js"
  },
  functions: {
    "count":        "fcf:NFSQL/NFunction/Count.js",
    "key":          "fcf:NFSQL/NFunction/Key.js",
    "concat":       "fcf:NFSQL/NFunction/Concat.js",
    "title":        "fcf:NFSQL/NFunction/Title.js",
    "description":  "fcf:NFSQL/NFunction/Description.js",
    "coalesce":     "fcf:NFSQL/NFunction/Coalesce.js",
  },
  html: {
    include: {
      "base-styles": "fcf:templates/css/base-styles.css",
    },
  },
  inheritanceModes: {
    "read.subfull": "read.full",
    "edit.subfull": "edit.full",
    "add.subfull":  "add.full",
  },
  routes: [
    {
      uri:        "fcfpackages/fcf/*",
      controller: "fcf:NServer/NControllers/File.js",
      source:     "fcf:",
    },
    {
      uri:        "/files/*",
      controller: "fcf:NServer/NControllers/File.js",
      source:     ":files",
    },
    {
      uri:        "/sitemap/*",
      controller: "fcf:NServer/NControllers/File.js",
      source:     ":sitemap",
    },
    {
      uri:        "fcfpackages/fcf/login",
      controller: "fcf:NServer/NControllers/Login.js",
    },
    {
      uri:        "fcfpackages/fcf/render",
      controller: "fcf:NServer/NControllers/Render.js",
    },
    {
      uri:        "fcfpackages/fcf/route",
      controller: "fcf:NServer/NControllers/Route.js",
    },
    {
      uri:        "fcfpackages/fcf/settings.js",
      controller: "fcf:NServer/NControllers/Settings.js",
    },
    {
      uri:        "fcfpackages/fcf/Translations.js",
      controller: "fcf:NServer/NControllers/Translations.js",
    },
    {
      uri:        "fcfpackages/fcf/receive",
      controller: "fcf:NServer/NControllers/Receive.js",
    },
    {
      uri:        "fcfpackages/fcf/theme",
      controller: "fcf:NServer/NControllers/Theme.js",
    },
    {
      uri:        "fcfpackages/fcf/translations/*",
      controller: "fcf:NServer/NControllers/File.js",
      source:     "fcf:translations",
    },
  ]
}
