{"version":3,"sources":["jsdelivr-header.js","/npm/pomjs@0.1.27/dist/app.js"],"names":[],"mappings":"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","file":"/npm/pomjs@0.1.27/dist/app.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/pomjs@0.1.27/dist/app.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","'use strict';\n\nvar middleware = function () {\n  var _ref = _asyncToGenerator(function* (opts) {\n    _grpc2.default.grpcOptions = Object.assign(_grpc2.default.grpcOptions, opts.saluki.grpcOptions);\n    yield _grpc2.default.init(opts);\n  });\n\n  return function middleware(_x) {\n    return _ref.apply(this, arguments);\n  };\n}();\n\n/**\n * 合并环境变量和配置变量，以环境变量为准\n * 将 pomjs_ 开头的环境变量作为config参数给应用\n * 如 pomjs_saluki.group=123\n * @param opts\n */\n\n\nvar _koaCsrf = require('koa-csrf');\n\nvar _koaCsrf2 = _interopRequireDefault(_koaCsrf);\n\nvar _lruCache = require('lru-cache');\n\nvar _lruCache2 = _interopRequireDefault(_lruCache);\n\nvar _http = require('./middleware/http');\n\nvar _http2 = _interopRequireDefault(_http);\n\nvar _route = require('./middleware/route');\n\nvar _route2 = _interopRequireDefault(_route);\n\nvar _render = require('./middleware/render');\n\nvar _render2 = _interopRequireDefault(_render);\n\nvar _error = require('./middleware/error');\n\nvar _error2 = _interopRequireDefault(_error);\n\nvar _bundle = require('./middleware/bundle');\n\nvar _bundle2 = _interopRequireDefault(_bundle);\n\nvar _multer = require('./middleware/multer');\n\nvar _multer2 = _interopRequireDefault(_multer);\n\nvar _user = require('./middleware/user');\n\nvar _user2 = _interopRequireDefault(_user);\n\nvar _saluki = require('./middleware/saluki');\n\nvar _saluki2 = _interopRequireDefault(_saluki);\n\nvar _cache = require('./middleware/cache');\n\nvar _cache2 = _interopRequireDefault(_cache);\n\nvar _logger = require('./middleware/logger');\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _healthCheck = require('./middleware/healthCheck');\n\nvar _healthCheck2 = _interopRequireDefault(_healthCheck);\n\nvar _spartaSession = require('./middleware/spartaSession');\n\nvar _spartaSession2 = _interopRequireDefault(_spartaSession);\n\nvar _grpc = require('./grpc');\n\nvar _grpc2 = _interopRequireDefault(_grpc);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; }\n\n/**\n * Created by joe on 16/9/22.\n */\n\nvar Koa = require('koa');\nvar convert = require('koa-convert');\nvar bodyParser = require('koa-bodyparser');\nvar cors = require('koa-cors');\nvar session = require('koa-session');\nvar Raven = require('raven');\n\nvar Path = require('path');\n\nvar app = new Koa();\nvar serve = require('koa-static');\n\nvar root = {};\n\nfunction mergeEnv(opts) {\n  var env = process.env;\n  Object.assign(process.env, opts);\n  //用环境变量替换当前配置\n  for (var i in env) {\n    if (i.startsWith('pomjs_')) {\n      var config = i.substring(6);\n      if (config.indexOf('_') == -1) {\n        opts[config] = env[i];\n      } else {\n        var temp = 'opts';\n        var vs = config.split('_');\n        // 替换 xxx_xxx_xxx --> {'xxx':{'xxx':'xxx'}}\n        for (var index = 0; index < vs.length; index++) {\n          temp += '.' + vs[index];\n          if (!eval(temp) || index === vs.length - 1) {\n            var tempValue = index < vs.length - 1 ? '{}' : \"'\" + env[i] + \"'\";\n            eval(temp + '=' + tempValue);\n          }\n        }\n      }\n    }\n  }\n}\n\nmodule.exports = function () {\n  var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n  if (!opts.root) {\n    var index = __dirname.indexOf('node_modules');\n    if (index != -1) {\n      opts.root = __dirname.substring(0, index);\n    } else {\n      throw new Error('the opts.root can not null');\n    }\n  }\n  mergeEnv(opts);\n  console.log('start pomjs with config:', opts);\n  root = opts.root;\n  var staticPath = opts.static || Path.join(root, 'static');\n\n  middleware(opts);\n\n  app.use((0, _logger2.default)(opts));\n\n  app.use(convert(serve(staticPath, { maxage: 60 * 60 * 24 * 365 })));\n  // set the session keys\n  app.keys = ['qc'];\n  // add session support\n  var sessionConfig = {\n    key: 'pomjs' /** (string) cookie key (default is koa:sess) */\n    , maxAge: 86400000 /** (number) maxAge in ms (default is 1 days) */\n    , overwrite: true /** (boolean) can overwrite or not (default true) */\n    , httpOnly: true /** (boolean) httpOnly or not (default true) */\n    , signed: true /** (boolean) signed or not (default true) */\n  };\n  if (opts.auth && opts.auth.domain) {\n    sessionConfig.domain = opts.auth.domain;\n  }\n  app.use(convert(session(Object.assign(sessionConfig, opts.session), app)));\n\n  //如果配置了cors（解决跨域问题）, 则加入中间件\n  if (opts.cors) {\n    app.use(cors(opts.cors));\n  }\n\n  var appCache = (0, _lruCache2.default)(opts.cache || { maxAge: 1000 * 60 * 60, max: 10000 });\n  app.use((0, _cache2.default)({\n    cache: appCache\n  }));\n  // add multipart/form-data parsing\n  app.use((0, _multer2.default)(opts.uploadConfig || {}));\n\n  // add body parsing\n  app.use(bodyParser({\n    jsonLimit: '10mb',\n    textLimit: '10mb'\n  }));\n\n  // add the CSRF middleware\n  app.use(new _koaCsrf2.default(Object.assign({\n    invalidSessionSecretMessage: 'Invalid session secret',\n    invalidSessionSecretStatusCode: 403,\n    invalidTokenMessage: 'Invalid CSRF token',\n    invalidTokenStatusCode: 403,\n    excludedMethods: ['GET', 'HEAD', 'OPTIONS'],\n    disableQuery: false\n  }, opts.csrf)));\n\n  app.use((0, _error2.default)(opts));\n  app.use((0, _saluki2.default)(opts));\n  app.use((0, _http2.default)(opts));\n  app.use((0, _bundle2.default)(opts));\n  app.use((0, _healthCheck2.default)(opts));\n\n  if (opts.sparta) {\n    app.use((0, _spartaSession2.default)(opts));\n  }\n\n  app.use((0, _user2.default)(opts));\n\n  //外接中间件\n  if (opts.middlewares) {\n    opts.middlewares.forEach(function (js) {\n      var t = function () {\n        var _ref2 = _asyncToGenerator(function* (ctx, next) {\n          var m = js.split('/').pop();\n          var timer = new ctx.logger.Timer({\n            group: 'middleware',\n            path: m\n          });\n          yield convert(require(js)(opts))(ctx, next);\n          timer.split();\n        });\n\n        return function t(_x3, _x4) {\n          return _ref2.apply(this, arguments);\n        };\n      }();\n      app.use(t);\n    });\n  }\n\n  app.use((0, _route2.default)(opts));\n  app.use((0, _render2.default)(opts));\n  var port = opts.port || 3000;\n  if (typeof port === 'string') {\n    port = parseInt(port);\n  }\n  app.listen(port);\n  console.log('listening on ', port);\n};\n\nprocess.on('unhandledRejection', function (e) {\n  console.log('');\n  console.error('app meets an unhandledRejection!!');\n  console.log('');\n  console.error(e);\n});"]}